Skip to content

🎄NUAA 2018 网络通信实现技术 实验3 NS3实验

License

Notifications You must be signed in to change notification settings

FlyAndNotDown/ns3-work

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

😀NS3实验

NUAA 2018 网络通信实现技术 实验3


❓说明

通俗来说,NS3是一个运行在Linux系统上的网络模拟器,你可以通过写代码的方式来构造一些网络拓扑、离散事件,满足学术研究、测试的需要。

实验的内容是用代码分别模拟一个WiFi星形网络和WiFi多跳网络,并且使之可视化,最后求出吞吐量

💻NS3的安装

安装方法以Ubuntu/Debian系系统为例

官方的教程中给出了两种安装方法:

  • Tarball
  • Bake

这里推荐使用Tarball方法进行安装,简单粗暴,首先下载NS3的源码包,你可以根据需要更改版本号:

wget http://www.nsnam.org/release/ns-allinone-3.29.tar.bz2

解压之:

tar xjf ns-allinone-3.29.tar.bz2

解压之后会得到NS3的源码文件夹,里面有编译脚本、源码、实例、测试用例等,进入文件夹运行编译脚本进行编译即可:

cd ns-allinone-3.29
./build.py --enable-examples --enable-tests

编译的时间将会十分漫长,一般如果你的Linux机器内存过小,编译时很难通过的,2G内存一般都不够用,如果失败了,请提高内存重试

编译完成之后,可以看见目录下多了一个ns3-3.29文件夹,这边是NS3的主程序文件夹了,可以进去尝试使用:

./waf --run hello-simulator

来尝试运行NS3官方附带的简单示例程序,如果能看到正确编译的提示并且终端输出了Hello Simulator,这说明安装成功了

🏃运行

NS3的脚本运行有一些麻烦,首先你需要将hoc.ccstar.cc放到NS3主程序waf同目录的文件夹scratch下,这个目录是NS3默认的脚本存放目录

放过去之后,启动waf来进行编译:

./waf

如果没有问题的话应该会编译成功,编译成功之后可以使用waf来辅助运行,以star.cc为例,运行的方法如下:

./waf --run scratch/star

那么如何可视化呢,如果想要使代码可视化,需要先安装NetAnim,这是一个基于Qt5NS3可视化程序,它的源码也一同附带在了NS3的源码包中,我们要做的就是使用Qt5编译它

首先需要安装Qt5Mercurial

sudo apt-get install mercurial
sudo apt-get install qt5-default

安装完成之后,进入ns-allinone-3.29/netanim-3.108目录,使用Qt5的编译器qmake进行编译:

cd ns-allinone-3.29/netanim-3.108
qmake ./NetAnim.pro

编译完成后,则可以打开NetAnim程序了:

./NetAnim

界面长这样: NetAnimUI

NS3的脚本运行后,在waf同级的目录下会生成对应的xml文件,使用NetAnim载入xml文件然后点击开始运行,即可看到可视化效果:

NetAnimRun

那么吞吐量怎么求呢,首先你需要安装gnuplot

sudo apt-get install gnuplot

这是一个根据NS3脚本运行时产生的trace文件生成图标的软件,这里提供了一个用于求吞吐量的awk脚本,也就是throughout.awk

具体的使用方法是,将这个脚本放在waf同级的目录下,然后使用输入:

gawk -f throughout.awk xxx.tr > xxx

即可将数据存入xxx,其中xxx.tr是你的脚本在运行过程中生成的.tr文件,在waf同级目录下

最后使用gnuplot来画图,首先进入gnuplotshell

gnuplot

然后输入:

plot "xxx" with lines

即可看到效果:

Plot

😋关于

  • author: John Kindem
  • NUAA ID: 161520311

About

🎄NUAA 2018 网络通信实现技术 实验3 NS3实验

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published