NS3无线模块参数设置

在用NS3做无线的实验时,总会碰到一些参数设置,本文档主要涉及到PHY层和MAC层的参数设置,只是在脚本编写的过程中一边编写一边查找各个API,还有更多的NS3无线有待学习!
NS3无线模块参数设置_第1张图片
上表是无线实验中可能会出现的一些参数设置情况,其中:
(1)Transmission range、Radiofrequency、Propagationloss model、Delaymodel均是在wifiNetDevice创建时设定的。(phy和mac层)
(2)traffic、packetsize、DataRate是可在应用层的设定(on-offapplication)
(3)mobility、speed of the node都是在node创建时设定的
2,3容易理解并且可以比较容易的直接设定,1中的参数设定说明如下:
(以下摘自博客:http://blog.sina.cn/dpool/blog/s/blog_8ecca79b0101d7i6.html?cre=blogpagew&mod=f&loc=2&r=ar&rfunc=5)
几个实验中的wifiNetDevice设置的例子列举如下(可以作为参考):
NS3无线模块参数设置_第2张图片
NS3无线模块参数设置_第3张图片
设置的参数包括:无线链路标准、发送数据速率和模式、channel frequency、channel speed、发送和接收的功率等。
WifiNetDevicein NS3 -使用ns3中的Helper函数创建Wifi network device流程:
1.初始化信道
YansWifiChannelHelper myWifiCannelHelper =YansWifiChannelHelper::Default();
myWifiCannelHelper.SetPropagationDelay(‘ns3::ConstantSpeedPropagationDelayModel’);
myWifiCannelHelper.AddPropagationLoss(‘ns3::FixedRssLossModel’,’Rss’,DoubleValue(rss));
说明:
PropagationLoss Models:
FriisPropagationLossModel、TwoRayGroundPropagationLossModel、LogDistancePropagationLossModel、FixedRssLossModel、RangePropagationLossModel等等,更多的传输损耗模型可以查看文件propagation/model/propagation-loss-model.cc,里面有详细的说明,也可以查看官网说明:
https://www.nsnam.org/doxygen-release/classns3_1_1_propagation_loss_model.html,
里面有更多的传输损耗模型的说明。
通过ns3::RangePropagationLossMode可以设置最大传输距离。
(另外,有ns3 中如何设置传输距离 :http://fajun82.blog.163.com/blog/,但是我觉得有点繁琐)
2.初始化wifi物理层
YansWifiPhyHelper myWifiPhyHelper = YansWifiChannelHelper::Default();
myWifiPhyHelper.SetChannel(myWifiChannelHelper.Create();
说明:
(涉及到发送和接收的功率的一些设置)
wifiPhy.Set (‘TxPowerStart’, DoubleValue(16.0206));
wifiPhy.Set (‘TxPowerEnd’, DoubleValue(16.0206));
wifiPhy.Set (‘TxPowerLevels’, UintegerValue(1));
wifiPhy.Set (‘TxGain’, DoubleValue(0) );
wifiPhy.Set (‘RxGain’, DoubleValue (0) );
wifiPhy.Set (‘EnergyDetectionThreshold’, DoubleValue(-71.9842));
wifiPhy.Set (‘CcaMode1Threshold’, DoubleValue(-74.9842));
wifiPhy.SetPcapDataLinkType(enum SupportedPcapDataLinkTypes dlt一种)//pcap类型设定
3. Mac层设置(我使用没有QoS保障的Mac层机制)
NqosWifiMacHelper myWifiMacHelper =NqosWifiMacHelper::Default();
myWifiMacHelper.SetType(‘ns3::AdhocWifiMac’);//NqapWifiMac,NqstaWifiMac,MeshWifiInterfaceMac
4. 装备到DevicContainer中
WifiHelper myWifiPhyHelper= WifiHelper::Default();
NetDeviceContainermyDevices;
myDevices = myWifiHelper.Install (myWifiPhyHelper, myWifiMacHelper, myNodes); //myNodes为之前初始化好的NodeContainer
(涉及到无线链路标准、发送数据速率和模式)
WifiHelper提供的函数:(以下wifi均替代为myWifiPhyHelper)
wifi.SetStandard(WIFI_PHY_STANDARD_80211b); //默认为802.11a
wifi.SetRemoteStationManager(‘ns3::ConstantRateWifiManager’,
‘DataMode’, StringValue(‘OfdmRate6Mbps’),
‘RtsCtsThreshold’, UintegerValue (0));
说明:NS3缺省的设置是802.11a采用的频段,即5.15 GHZ, 速度是真空光速3e8m/s。 但是你如果在channel设置时,采用FriisPropagationLossModel,可以通过SetLambda函数来改变frequency和speed设置
Forthe class ns3::WifiRemoteStationManager set:
•theFragmentation Threshold, •theRTS/CTS threshold •thePHY mode for non-unicast mode

你可能感兴趣的:(NS3,程序,NS3)