Measuring Channel Throughput¶
Goals¶
In this example we explore the channel throughput statistics of wired and wireless transmission mediums.
4.4
The Model¶
The channel throughput is measured by observing the packets that are transmitted through the transmission medium over time. For both wired and wireless channels, the throughput is measured for any pair of communicating network interfaces, separately for both directions.
Channel throughput is a statistic of transmitter modules, such as the PacketTransmitter in EthernetPhyLayer.
Throughput is measured with a sliding window. By default, the window is 0.1s or 100 packets, whichever comes first.
The parameters of the window, such as the window interval, are configurable from the ini file, as module.statistic.parameter
. For example:
*.host.eth[0].phyLayer.transmitter.throughput.interval = 0.2s
Here is the network:
Here is the configuration:
[General]
network = ChannelThroughputMeasurementShowcase
description = "Measure throughput between source and destination"
sim-time-limit = 1s
# source application with roughly ~48Mbps throughput
*.source.numApps = 1
*.source.app[0].typename = "UdpSourceApp"
*.source.app[0].source.packetLength = 1200B
*.source.app[0].source.productionInterval = exponential(200us)
*.source.app[0].io.destAddress = "destination"
*.source.app[0].io.destPort = 1000
# destination application
*.destination.numApps = 1
*.destination.app[0].typename = "UdpSinkApp"
*.destination.app[0].io.localPort = 1000
# enable modular Ethernet model
*.*.ethernet.typename = "EthernetLayer"
*.*.eth[*].typename = "LayeredEthernetInterface"
# data rate of all network interfaces
*.*.eth[*].bitrate = 100Mbps
Results¶
Here are the results:
The frequency of data points is denser than 0.1s, so the statistic is emitted more frequently, after 100 packets.
Sources: omnetpp.ini
, ChannelThroughputMeasurementShowcase.ned
Try It Yourself¶
If you already have INET and OMNeT++ installed, start the IDE by typing
omnetpp
, import the INET project into the IDE, then navigate to the
inet/showcases/measurement/throughput
folder in the Project Explorer. There, you can view
and edit the showcase files, run simulations, and analyze results.
Otherwise, there is an easy way to install INET and OMNeT++ using opp_env, and run the simulation interactively.
Ensure that opp_env
is installed on your system, then execute:
$ opp_env run inet-4.4 --init -w inet-workspace --install --chdir \
-c 'cd inet-4.4.*/showcases/measurement/throughput && inet'
This command creates an inet-workspace
directory, installs the appropriate
versions of INET and OMNeT++ within it, and launches the inet
command in the
showcase directory for interactive simulation.
Alternatively, for a more hands-on experience, you can first set up the workspace and then open an interactive shell:
$ opp_env install --init -w inet-workspace inet-4.4
$ cd inet-workspace
$ opp_env shell
Inside the shell, start the IDE by typing omnetpp
, import the INET project,
then start exploring.