Low Throughput for Wireless Network with TCP

80 visualizações
Pular para a primeira mensagem não lida

Shahrukh Khan Kasi

não lida,
20 de ago. de 2019, 11:39:5620/08/2019
para 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>
Responder a todos
Responder ao autor
Encaminhar
0 nova mensagem