Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Low Throughput for Wireless Network with TCP

91 views
Skip to first unread message

Shahrukh Khan Kasi

unread,
Aug 20, 2019, 11:39:56 AM8/20/19
to OMNeT++ Users
Hi,

I have simulated a wireless network scenario in which hosts transmit data to a specfic server using FTP. I am using bitrate of 12Mbps for the network, yet at best the maximum throughput achieved is around 1.5Mbps. Can anyone please guide me what is it that I am doing wrong?

Picture1.png

I am attaching the ned, ini and xml files below:

.ned Script:

import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.inet.Router;
import inet.node.inet.WirelessHost;
import inet.node.wireless.AccessPoint;
import inet.physicallayer.ieee80211.packetlevel.Ieee80211ScalarRadioMedium;
import inet.visualizer.contract.IIntegratedVisualizer;

network Wirelesscongestion
{
    @display("bgb=800,400");

    submodules:
        visualizer: <default("IntegratedCanvasVisualizer")> like IIntegratedVisualizer if hasVisualizer() {
            parameters:
                @display("p=50,103;is=s");
        }
        radioMedium: Ieee80211ScalarRadioMedium {
            parameters:
                @display("p=49,59;is=s");
        }
        configurator: Ipv4NetworkConfigurator {
            parameters:
                @display("p=50,17;is=s");
        }
        Host1: WirelessHost {
            parameters:
                @display("p=230,100");
        }
        Host2: WirelessHost {
            parameters:
                @display("p=230,160");
        }
        Host3: WirelessHost {
            parameters:
                @display("p=230,220");
        }
        Host4: WirelessHost {
            parameters:
                @display("p=230,280");
        }
        ap1: AccessPoint {
            parameters:
                @display("p=310,190");
        }
        router: Router {
            parameters:
                @display("p=410,190");
        }
        ap2: AccessPoint {
            parameters:
                @display("p=510,190");
        }
        Server1: WirelessHost {
            parameters:
                @display("p=590,100");
        }
        Server2: WirelessHost {
            parameters:
                @display("p=590,160");
        }
        Server3: WirelessHost {
            parameters:
                @display("p=590,220");
        }
        Server4: WirelessHost {
            parameters:
                @display("p=590,280");
        }
}

.ini Script:

[General]
network = Wirelesscongestion
sim-time-limit = 1000s

record-eventlog = true
#debug-on-errors = true
**.vector-recording = true

*.*.ipv4.arp.typename = "GlobalArp"

# mobility
**.constraintAreaMinX = 0m
**.constraintAreaMinY = 0m
**.constraintAreaMinZ = 0m
**.constraintAreaMaxX = 800m
**.constraintAreaMaxY = 400m
**.constraintAreaMaxZ = 0m

# analog model
**.analogModel.ignorePartialInterference = true

# access point configuration
*.ap1.wlan[0].address = "001111111111"
*.ap1.wlan[0].radio.channelNumber = 0
*.ap2.wlan[0].address = "002222222222"
*.ap2.wlan[0].radio.channelNumber = 1

# router is associated with both AP's using two different radios
*.router*.numWlanInterfaces = 2
*.router*.wlan[0].mgmt.accessPointAddress = "001111111111"
*.router*.wlan[0].radio.channelNumber = 0
*.router*.wlan[1].mgmt.accessPointAddress = "002222222222"
*.router*.wlan[1].radio.channelNumber = 1

# Hosts are associated with AP1 on channel 0
**.Host*.wlan[0].mgmt.accessPointAddress = "001111111111"
**.Host*.wlan[0].radio.channelNumber = 0

# Servers are associated with AP2 on channel 1
**.Server*.wlan[0].mgmt.accessPointAddress = "002222222222"
**.Server*.wlan[0].radio.channelNumber = 1

# use simplified ieee802.11 management (no association, authentication etc.)
**.Host*.**.mgmt.typename = "Ieee80211MgmtStaSimplified"
**.Host*.**.agent.typename = ""
**.Server*.**.mgmt.typename = "Ieee80211MgmtStaSimplified"
**.Server*.**.agent.typename = ""
*.router*.**.mgmt.typename = "Ieee80211MgmtStaSimplified"
*.router*.**.agent.typename = ""
*.ap*.**.mgmt.typename = "Ieee80211MgmtApSimplified"

# global data rates
*.*.wlan[*].bitrate = ${bitrate = 12}Mbps

# tcp apps
**.Host*.numApps = 1
**.Host*.app[*].typename = "TcpSessionApp"  # ftp
**.Host*.app[0].active = true
**.Host*.app[0].localPort = -1
**.Host1.app[0].localAddress = "Host1"
**.Host2.app[0].localAddress = "Host2"
**.Host3.app[0].localAddress = "Host3"
**.Host4.app[0].localAddress = "Host4"
**.Host1.app[0].connectAddress = "Server1"
**.Host2.app[0].connectAddress = "Server2"
**.Host3.app[0].connectAddress = "Server3"
**.Host4.app[0].connectAddress = "Server4"
**.Host*.app[0].connectPort = 1000
**.Host*.app[0].tOpen = exponential(0.1s)
**.Host*.app[0].tSend = 0s
**.Host1.app[0].sendBytes = ${packetLength1 = 4000000}byte
**.Host2.app[0].sendBytes = ${packetLength2 = 2000000}byte
**.Host3.app[0].sendBytes = ${packetLength3 = 1000000}byte
**.Host4.app[0].sendBytes = ${packetLength4 = 1000000}byte
**.Host*.app[0].tClose = 0s
**.Host1.app[0].sendInterval = ${packetLength1} * 8 / ${bitrate} * 1us
**.Host2.app[0].sendInterval = ${packetLength2} * 8 / ${bitrate} * 1us
**.Host3.app[0].sendInterval = ${packetLength3} * 8 / ${bitrate} * 1us
**.Host4.app[0].sendInterval = ${packetLength4} * 8 / ${bitrate} * 1us
**.Host*.sendScript = ""

**.Server*.numApps = 1
**.Server*.app[*].typename = "TcpSinkApp"
**.Server*.app[0].localPort = 1000
**.Server*.app[0].localAddress = ""

# tcp settings
**.app[*].dataTransferMode = "object"

# Network configuration
*.configurator.config = xmldoc("network.xml")

# Radio configuration
**.wlan[*].radio.transmitter.power = 0.485mW
**.wlan[*].radio.displayCommunicationRange = true
**.wlan[*].radio.transmitter.bitrate = 12Mbps
**.wlan[*].radio.transmitter.communicationRange = 80m
**.wlan[*].radio.transmitter.interferenceRange = 0m
**.wlan[*].radio.transmitter.detectionRange = 0m
**.radioMedium.rangeFilter = "communicationRange"

# NIC configuration
**.ppp[*].queue.typename = "DropTailQueue" # in routers
**.ppp[*].queue.frameCapacity = 10  # in routers

.xml Script:

<config>
  <interface hosts="Host1" address="192.168.1.1" netmask="255.255.255.0" />
  <interface hosts="Host2" address="192.168.1.2" netmask="255.255.255.0" />
  <interface hosts="Host3" address="192.168.1.3" netmask="255.255.255.0" />
  <interface hosts="Host4" address="192.168.1.4" netmask="255.255.255.0" />
  <interface hosts="Server1" address="192.168.2.1" netmask="255.255.255.0" />
  <interface hosts="Server2" address="192.168.2.2" netmask="255.255.255.0" />
  <interface hosts="Server3" address="192.168.2.3" netmask="255.255.255.0" />
  <interface hosts="Server4" address="192.168.2.4" netmask="255.255.255.0" />
  <interface hosts="router" names="wlan0" address="192.168.1.254" netmask="255.255.255.0" />
  <interface hosts="router" names="wlan1" address="192.168.2.254" netmask="255.255.255.0" />

<!--
  <wireless id="W1" hosts="Host1"/>
  <wireless id="W1" hosts="router" interfaces="wlan0"/>
  <wireless id="W2" hosts="Server"/>
  <wireless id="W2" hosts="router" interfaces="wlan1"/>
-->

  <route hosts="Host1" destination="*" gateway="192.168.1.254" interface="wlan0"/>
  <route hosts="Host2" destination="*" gateway="192.168.1.254" interface="wlan0"/>
  <route hosts="Host3" destination="*" gateway="192.168.1.254" interface="wlan0"/>
  <route hosts="Host4" destination="*" gateway="192.168.1.254" interface="wlan0"/>
  <route hosts="Server1" destination="*" gateway="192.168.2.254" interface="wlan0"/>
  <route hosts="Server2" destination="*" gateway="192.168.2.254" interface="wlan0"/>
  <route hosts="Server3" destination="*" gateway="192.168.2.254" interface="wlan0"/>
  <route hosts="Server4" destination="*" gateway="192.168.2.254" interface="wlan0"/>
  <route hosts="router" destination="192.168.1.0" gateway="*" netmask="255.255.255.0" interface="wlan0"/>
  <route hosts="router" destination="192.168.2.0" gateway="*" netmask="255.255.255.0" interface="wlan1"/>
</config>
Reply all
Reply to author
Forward
0 new messages