(4)NS3仿真–AODV协议
1 仿真AODV协议
2 实现PCAP Tracing系统
3 实现Tracing系统
4利用Netnaim实现可视化仿真
5 AODV协议详解
1.仿真AODV协议
AODV协议的源码存放在src/aodv/examples/aodv.cc文件中
要把执行的aodv.cc文件复制到scratch目录中
在ns-3.31目录中执行以下语句
cp src/aodv/examples/aodv.cc scratch/aodv.cc
可以看到scratch目录中已经有了aodv.cc文件
在在ns-3.31目录中执行以下语句
执行aodv协议
sudo ./waf
运行AODV协议
sudo ./waf --run scratch/aodv
2.实现PCAP Tracing系统
NS3-helper还可以生成以.pcap为后缀的格式文件,这个文件可以使用Wireshark工具打开并分析,那么如何让程序生成该类型的文件?
首先定义一个pointToPoint对象
然后在脚本程序的Simulator::Run()代码前添加如下代码
pointToPoint.EnablePcapAll ("aodv");
编译aodv.cc文件
sudo ./waf
执行aodv 可执行文件
sudo ./waf --run scratch/aodv
运行成功以后,可以在ns-3.31目录中看到aodv后缀为.pcap文件
3.实现Tracing系统
Tracing系统是为了将仿真的结果采用统一的格式保存在文件中,在脚本程序的Simulator::Run()代码前添加如下代码
AsciiTraceHelper ascii;//声明一个AsciiTraceHelper的对象
pointToPoint.EnableAsciiAll (ascii.CreateFileStream("aodv.tr"));
使用waf来执行脚本
sudo ./waf
运行该脚本
sudo ./waf --run scratch/aodv
编译成功以后,在ns-allinone-3.31/ns-3.31目录中多了一个aodv.tr文件
4.利用Netnaim实现可视化仿真
安装依赖包
sudo apt-get install mercurial
sudo apt-get install qt4-dev-tools
安装Netnaim
sudo apt-get install qt4-dev-tools
下载完成以后,在ns-allinone-3.31目录下可以看到netanim-3.108文件夹
编译Netnaim
cd netanim-3.108
qmake NetAnim.pro
make
在AODV协议中增加一个头文件
#include "ns3/netanim-module.h"
在脚本程序的Simulator::Run()代码前添加如下代码
AnimationInterface anim ("aodv.xml");
使用waf来执行脚本
sudo ./waf
运行该脚本
sudo ./waf --run scratch/aodv
运行成功以后,在ns-3目录中会生成aodv.xml文件
运行NetAnim,读取XML数据
进入NetAnim目录,执行以下命令
cd ns-allinone-3.31
cd netanim-3.108
在netanim-3.108目录下运行
./NetAnim
可以看到以下界面
单击打开文件按钮,打开aodv.xml文件
打开以后就是以下界面
(我也不知道为什么会这个样子,也不知道是否正确,目前还没搞懂,容我再学习,学习,再更新)
5.AODV协议详解
// This is an example script for AODV manet routing protocol.
#include <iostream>