我想绘制传输层中使用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 ++中计算/绘制此类网络配置的吞吐量,请指导我寻求正确的解决方案。