全双工无线通信在ns3上的实现(资料整理)
本文简单介绍一种全双工通信的ns3实现。作者在ns-3.20中的wifi模块的基础上,实现了全双工模块fdwifi,从而全双工无线通信可以在ns3上验证。
注意:由于fdwifi模块是ns3.20中wifi模块的扩展,所有只能保证其在ns3.20版本上正常编译运行。
此全双工版本的ns3实现步骤如下:
- 下载ns-3.20,解压包;
- 从git(ns3-fdwifi)上下载作者的源代码(ns-3-fdwifi-master.zip);
- 解压包ns-3-fdwifi-master.zip,将ns-3-fdwifi-master/src下的三个文件拷贝到ns-3.20/src的目录下,选择“合并”,将ns-3-fdwifi-master/scratch下的fdwifi文件夹拷贝到ns-3.20/scratch目录下;
- 到ns-3.20目录下进行编译;
这样就搞定啦~这个版本的全双工实现并没有包含很多示例程序,准确的说,只有一个,就是scratch文件夹下的fdwifi,那么怎么运行这个程序呢?
如何运行示例程序
- 到ns-3.20的”scratch / fdwifi”目录下:
cd ~/ns-allinone-3.20/ns-3.20/scratch/fdwifi/
- 通过具体化参数进行仿真,例如,进行4个节点的仿真,执行如下的命令:
./waf --run "fdwifi --nodeAmount=4"
当然,你也可以查看更多可修改的参数,通过下面的指令可以显示可修改的仿真参数:
./waf --run "fdwifi --help"
程序运行结果存放在ns-3.20下新生成的文件data-run-xxxxxxxxxx.sca,查看结果的命令如下:
cat ../../data-run-xxxxxxxxxx.sca
注意: Numbers are entered in xxxxxxxxxx(yours) 通过脚本进行仿真,执行以下命令:
sh script-sim.sh
sh script-db.sh
执行了脚本后,将产生四个文件,分别是:- Throughput.data: Throughput when data of 1500 [Byte] is transmitted 1000 times
- Collision.data: Collision rate of primary and secondary transmission
- Fullduplex.data: Incidence of secondary transmission to primary transmission
- Delay.data: the time from when a packet is generated until it is received by the final destination node
用cat指令查看结果,例如:
cat Throughput.data