OMNeT ++中通过TCP作为传输层协议的无线网络的吞吐量图

时间:2019-08-18 17:27:13

标签: tcp simulation omnet++ inet

我想绘制传输层中使用TCP的无线网络的吞吐量。

我已经花了很多时间来寻找任何可行的解决方案,但是到目前为止,它们都没有起作用。

我尝试在我的网络配置文件中包括**。throughput.result-recording-modes = vector,意味着它不起作用,因为TCPSink没有吞吐量作为统计参数(https://doc.omnetpp.org/inet/api-current/neddoc/inet.applications.tcpapp.TcpSinkApp.html)。我曾尝试在有线网络中绘制相同的结果,并且它可以工作,但我仍然坚持为无线网络绘制相同的结果。

我在下面附加了我的网络配置文件:

NED file:
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 file:
[General]
network = Wirelesscongestion
sim-time-limit = 1000s

record-eventlog = true

# turn on throughput stats
**.throughput.result-recording-modes = vector,mean

*.*.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.numWlanInterfaces = 1
*.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
#**.wlan[*].numOutputHooks = 1
#**.wlan[*].outputHook[*].typename = "ThruputMeter"

# 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 = 8000000}byte
**.Host2.app[0].sendBytes = ${packetLength2 = 4000000}byte
**.Host3.app[0].sendBytes = ${packetLength3 = 2000000}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 = ""
#**.Server1.app[0].localAddress = "Server1"
#**.Server2.app[0].localAddress = "Server2"
#**.Server3.app[0].localAddress = "Server3"
#**.Server4.app[0].localAddress = "Server4"

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

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

# Radio configuration
*.*.wlan[*].radio.transmitter.power = 0.485mW
*.*.wlan[*].radio.displayCommunicationRange = true
#**.Host*.wlan[*].radio.MaxDistance = 50m
**.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

# PCAP recorders
*.Host1.numPcapRecorders = 1
*.Host1.pcapRecorder[*].pcapLinkType = 105      # 802.11
*.Host1.pcapRecorder[*].pcapFile = "results/Host1.pcap"
*.Host2.numPcapRecorders = 1
*.Host2.pcapRecorder[*].pcapLinkType = 105      # 802.11
*.Host2.pcapRecorder[*].pcapFile = "results/Host2.pcap"
*.Host3.numPcapRecorders = 1
*.Host3.pcapRecorder[*].pcapLinkType = 105      # 802.11
*.Host3.pcapRecorder[*].pcapFile = "results/Host3.pcap"
*.Host4.numPcapRecorders = 1
*.Host4.pcapRecorder[*].pcapLinkType = 105      # 802.11
*.Host4.pcapRecorder[*].pcapFile = "results/Host4.pcap"
*.Host4.pcapRecorder[0].moduleNamePatterns = "wlan[*]"

*.Server1.numPcapRecorders = 1
*.Server1.pcapRecorder[*].pcapLinkType = 105        # 802.11
*.Server1.pcapRecorder[*].pcapFile = "results/Server1.pcap"
*.Server2.numPcapRecorders = 1
*.Server2.pcapRecorder[*].pcapLinkType = 105        # 802.11
*.Server2.pcapRecorder[*].pcapFile = "results/Server2.pcap"
*.Server3.numPcapRecorders = 1
*.Server3.pcapRecorder[*].pcapLinkType = 105        # 802.11
*.Server3.pcapRecorder[*].pcapFile = "results/Server3.pcap"
*.Server4.numPcapRecorders = 1
*.Server4.pcapRecorder[*].pcapLinkType = 105        # 802.11
*.Server4.pcapRecorder[*].pcapFile = "results/Server4.pcap"

*.router.numPcapRecorders = 2
*.router.pcapRecorder[0].pcapLinkType = 105     # ppp
*.router.pcapRecorder[0].moduleNamePatterns = "wlan[0]"
*.router.pcapRecorder[0].pcapFile = "results/router1.tcpdata.pcap"
*.router.pcapRecorder[1].pcapLinkType = 105     # ethernet
*.router.pcapRecorder[1].pcapFile = "results/router2.tcpdata.pcap"
*.router.pcapRecorder[1].moduleNamePatterns = "wlan[1]"
*.router.pcapRecorder[1].packetDataFilter = "*Ipv4Header and totalLengthField(576*)"

**.crcMode = "computed"
**.fcsMode = "computed"

如果有人知道如何在OMNeT ++中计算/绘制此类网络配置的吞吐量,请指导我寻求正确的解决方案。

0 个答案:

没有答案