MAC throughtput and bitrate

173 views
Skip to first unread message

Teo Iliadis

unread,
Aug 16, 2014, 4:45:32 AM8/16/14
to omn...@googlegroups.com
Hello , 

I am running some examples in INET Framework and I am trying to test the throughtput

I have a few questions. 
1) In the .sca result file there is the "throughtput AC" option. This measures the throuput in bps or kbps ? Where can I find in the src how and by which module it is measured? Does this measures mac throughtput as it said in the Module Name in the vector file (e.g. fixhost[0].wlan[0].mac)? 
In my .ini file I have **mac.bitrate =  54 Mbps but in the result vector the mean value of throughtput is 49345.56576 
2) I want to put a throuputMeter in the topology AdhocHost.ned to check the MAC avg throughtput but I dont know where. I've tried in the Ieee80211Nic.ned between the "mac" and "radio" but it gives me an error while running it : "trying to send a message while already transmitting. " How can I handle this ?

Thanks in advance !!! 

Teo Iliadis

unread,
Aug 18, 2014, 6:07:38 AM8/18/14
to omn...@googlegroups.com
I am posting my .ini file and I've attached my AdhocHost.ned and my results files. I have 3 host "UDPBasicBurst" and 1 fixhost "UDPSInk"
In results files BitRate is measured 5.4e+07 and in my ini as you can see I have 54Mbps (this is correct) .
But measured with thruputmeter avg throughtput (udp) is approximately 41150(bit/s) for the hosts transmitters and 123510(bit/s) for the dest fixhost[0] 
the mean throughtput AC0 (mac as it is refered) is: 
fixhost: 5.751
host0-host1 : 48025 (approximately)
host2 :  142841
What is going wrong with the results?Did I misunderstand something?? Please give me some help with the results .
Thanks in advance!!

[General]
#debug-on-errors = true
fname-append-host = false
record-eventlog = false
sim-time-limit = 3000s
seed-0-mt = 5
network = Net80211_control
num-rngs = 2
cmdenv-express-mode = true
tkenv-plugin-path = ../../../etc/plugins

description = "Aodv Simple test"

**.vector-recording = true
**.constraintAreaMinX = 0m
**.constraintAreaMinY = 0m
**.constraintAreaMinZ = 0m
**.constraintAreaMaxX = 1000m
**.constraintAreaMaxY = 1000m
**.constraintAreaMaxZ = 0m
*.numFixHosts = 1
*.numHosts = 3
**.debug = true
**.channelNumber = 0

# channel physical parameters
*.channelControl.pMax = 2.0mW

**.mobility.initFromDisplayString = false

**.host[*].mobilityType = "StationaryMobility"
**.host*.mobility.traceFile = "escen_v5_t500-1.txt"

# udp apps (on)
#**.host[*].udpApp[*].typename = "UDPBasicApp"
#**.udpApp[0].message_freq = 0.2


**.host[*].udpApp[*].typename = "UDPBasicBurst" #arxiko
**.host[*].numUdpApps = 1 #arxiko
**.host[*].udpApp[0].startTime = uniform(20s,35s) #arxiko
**.host[*].udpApp[0].destAddresses = "fixhost[0]" #teo
**.udpApp[0].localPort = 1234
**.udpApp[0].destPort = 1234
**.udpApp[0].messageLength = 512B  # 1024
**.udpApp[0].sendInterval = 0.1s #arxiko
**.udpApp[0].burstDuration = 0s
#**.udpApp[0].activeBurst = true #arxika itan se sxolio
**.udpApp[0].chooseDestAddrMode = "perBurst"
**.udpApp[0].sleepDuration = 1s
# **.udpApp[0].burstDuration = uniform(1s,4s,1)
# **.udpApp[0].time_off = uniform(20s,40s,1)
##**.udpApp[0].time_begin = uniform(0s,4s,1)
#**.udpApp[0].delayLimit = 1000s #arxiko
**.udpApp[0].delayLimit = 20s
**.udpApp[0].destAddrRNG = 1

**.fixhost[*].udpApp[*].typename = "UDPSink"
**.fixhost[*].numUdpApps = 1 #arxiko itan 0 kai auta ta 3 se sxolia
**.fixhost[*].udpApp[0].localPort = 1234

# tcp apps (off)
**.numTcpApps = 0
**.tcpAppType = "TelnetApp"

# ping app (off)
**.numPingApps = 0

# tcp settings
**.tcp.mss = 1024
**.tcp.advertisedWindow = 14336  # 14*mss
**.tcp.sendQueueClass = "TCPMsgBasedSendQueue"
**.tcp.receiveQueueClass = "TCPMsgBasedRcvQueue"
**.tcp.tcpAlgorithmClass = "TCPReno"
**.tcp.recordStats = true

# ip settings
**.routingFile = ""
**.ip.procDelay = 10us
# **.IPForward = false

# ARP configuration
**.arp.retryTimeout = 1s
**.arp.retryCount = 3
**.arp.cacheTimeout = 100s
#**.networklayer.proxyARP = true  # Host's is hardwired "false"

# manet routing
**.routingProtocol = "OLSR" #arxiko

# nic settings
**.wlan[*].mgmt.frameCapacity = 10

**.bitrate = 54Mbps #teo

# nic settings
**.wlan[*].bitrate = 54Mbps #eite to exw eite oxi den exei diafora

**.wlan[*].typename="Ieee80211Nic"
**.wlan[*].opMode="g"
**.wlan[*].mac.EDCA = false
**.wlan[*].mgmt.frameCapacity = 10
**.wlan[*].mac.address = "auto"
**.wlan[*].mac.maxQueueSize = 14
**.wlan[*].mac.rtsThresholdBytes = 3000B
**.wlan[*].mac.basicBitrate = 6Mbps  # 24Mbps   #ack msg
#**.wlan[*].mac.bitrate = 54Mbps #teo
**.wlan[*].mac.retryLimit = 7
**.wlan[*].mac.cwMinData = 31
**.wlan[*].mac.cwMinBroadcast = 31
**.wlan[*].mac.slotTime = 9us #
**.wlan[*].mac.AIFSN = 2 #DIFS

# channel physical parameters
*.channelControl.carrierFrequency = 2.4GHz
*.channelControl.pMax = 2.0mW
*.channelControl.sat = -110dBm
*.channelControl.alpha = 2
*.channelControl.numChannels = 1

**.wlan[*].radio.transmitterPower = 2.0mW
**.wlan[*].radio.pathLossAlpha = 2
**.wlan[*].radio.snirThreshold = 4dB  # in dB
**.wlan[*].radio.thermalNoise = -110dBm
**.wlan[*].radio.sensitivity = -90dBm
**.wlan[*].radio.channelModel = "RAYLEIGH" #1/2  rayleigh/awgn
**.wlan[*].radio.berTableFile = "per_table_80211g_Trivellato.dat"
**.wlan[*].radio.bitrate = 54 Mbps #arxiko
#**.wlan[*].radio.transmissionRange = 250m #teo
#**.mac.bitrate = 54Mbps #teo

**.broadcastDelay=uniform(0s,0.005s)

AdhocHost.ned.jpg
DSRUU.anf
omnetpp.ini
AdhocHost.ned.txt
DSRUU_avg_throughtout_bps.svg
DSRUU_timeavg_throughtoutAC0.svg

Michael Kirsche

unread,
Aug 18, 2014, 6:38:37 AM8/18/14
to omn...@googlegroups.com
Well what do you expect?
54Mbps is the gross data rate, you actually never achieve this in practice.

And in your case, data can only be transmitted as fast as it is generated.
You are generating data with a sendInterval and a sleep time. Data is not generated continuously but in intervals and the packet size is also not the maximum amount, so that's basically why you won't achieve anything near those ominous 54Mbps.

Teo Iliadis

unread,
Aug 18, 2014, 6:47:44 AM8/18/14
to omn...@googlegroups.com
First of all thanks Michael for your answer!! 

With sendInterval = 0.1s and msgLength = 512B, We have approximatelly 40kbps. In this case the results are pretty much logical.

So, there is no reason to take into consideration and change the parameter bitrate? 

Kindest Regards
 


--
You received this message because you are subscribed to a topic in the Google Groups "omnetpp" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/omnetpp/0uQVW-wPTyI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to omnetpp+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Michael Kirsche

unread,
Aug 18, 2014, 6:53:37 AM8/18/14
to omn...@googlegroups.com
Why should you change the bit rate?
If you want to achieve maximum throughput, start by changing your traffic generator values...

Teo Iliadis

unread,
Aug 18, 2014, 6:59:53 AM8/18/14
to omn...@googlegroups.com
Can you give me some examples ?

Thanx in advance!

Michael Kirsche

unread,
Aug 18, 2014, 7:41:50 AM8/18/14
to omn...@googlegroups.com
There's an INET example on wireless throughput calculation, where a layer 2 traffic generator is used to create messages and measure theoretical and practical throughput.

Teo Iliadis

unread,
Aug 18, 2014, 9:20:44 AM8/18/14
to omn...@googlegroups.com
Thanks again Michael for your time and your help!!!

adhi rizal

unread,
Sep 16, 2015, 7:33:07 PM9/16/15
to OMNeT++ Users
hi Teo, have you found the correct answer to explains those throughput or how to the correct throughput value from "result" folder (scalars or vector) ?
because that i know throughput measured by "received data / observation time"
i confused too.

i was set up the bitrate " **.wlan*.bitrate = 1Mbps ", but the throughput i got ("throughput AC0" in vectors) was :
sender node = (mean) 131651.604
receiver node = (mean) 71.264



Message has been deleted

Teo Iliadis

unread,
Sep 17, 2015, 4:16:32 AM9/17/15
to omn...@googlegroups.com
Hello adhi rizal, 

the bitrate that you send you have to calculate with the variables :
**.udpApp[0].messageLength  
**.udpApp[0].sendInterval 
**.udpApp[0].burstDuration..
and then you should put an extra throughput meter to your enviroment from the .ned file .. in order to measure the throughput (eather in mac layer , eather in higher layer) right ! 
In general read the libraries of these variables to learn what they represent and to know what bitrate you should expect

receiver node = (mean) 131651.60471.264



--
You received this message because you are subscribed to a topic in the Google Groups "OMNeT++ Users" group.

To unsubscribe from this topic, visit https://groups.google.com/d/topic/omnetpp/0uQVW-wPTyI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to omnetpp+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Teo Iliadis

M.Sc. in Economics and Management

of Tel. Networks

  698 16 84 738

Reply all
Reply to author
Forward
0 new messages