为什么会用NS3
最近上了一门网络方面的课程,老师让我们在NS3网络上实现星型网络连接,和总线结构的网络连接,花费了大改有一周的时间做这个东西,还有写报告(30页),因此想记录一下这次实验的内容,一方面给自己一个记录,另一方面,可以给以后这门课或者需要ns3的朋友提供一些帮助。内容比较多,分几次博客更新。
这门课的实验共包括两个部分,
- 实验一:以太网性功能仿真报告。
- 实验二:以太网协议分析报告
实验一的需求
首先介绍以下,本次课程设计实验一所需要完成的任务
- 采用 NS-3 网络仿真软件,对于以下星型网络连接,和总线结构网络环境进行仿真,针对不同条件,统计信道利用率、吞吐量、丢包率、端到端延迟等,并绘制参数曲线,分析仿真结果
- 设队列管理机制为双向连接,实现两种网络结构下的以下仿真内容:一对、二对、三对、四对结点分别以 2 、 3 、 4 Mbps 速率收发 UDP 和 TCP 数据。
实验平台的介绍
Ubuntu18.04:在这次的实验过程中,老师推荐我们使用Linux系统完成实验内容。由于之前本科的时候已经使用Ubuntu,并且装有Ubuntu18. 04 ,因此就不再介绍Ubuntu是如何安装的了,而且默认大家会作ubuntu下的简单的文件和权限操作,如果不会可以到网上直接百度。可以在电脑上安装虚拟机也可以安装双系统。(最好安装16.04,有同学装这个版本的系统实验做得比较丝滑,我们有点难,有些模块无法使用,但不影响实验进程)。
系统安装完就可以开始本次的实验课设任务。
NS3的安装
我我安装的是NS3,3.28版本,但是这个不需要完全一样。下载NS3的官方网站是https://www.nsnam.org/releases/ns-3-28/download/
- 并且在/usr/local文件夹下创建workspace的文件夹,并且修改文件夹的权限,让它下面的所有文件可读可写可执行(只是建议放在这里,/home/user文件夹下面也可以)
- 将下载的压缩包解压缩放到上述的workspace文件夹下面,本次的实验内容和代码将要在该文件夹中完成。
- 进入到workspace/ns-allinone-3.28.1 目录下,可以看到存在build.py文件,这个是安装软件
./build.py --enable-examples --enable-tests
这一步骤可能需要一段时间,检测你电脑性能的时候到了,而且这里会有几个模块没有build,不用担心,这些模块在实验中是不会用到的,所以不用担心(有兴趣的可以接着看,后面我会介绍如何重新build这些模块)
4. 进入到下一级的目录下面 /workspace/ns-allinone-3.28.1/ns-3.28.1,会看到有个名为waf.py的文件,感觉这个是NS3的主要精华之一,后面你会知道,基本上所有的内容都会用到它,在该目录下输入以下命令:
./waf configure
会有如下的输出:
可以在这个页面上看到NS3已经支持了那些模块,还有哪些模块不支持,还缺少哪些依赖。可以根据这些configure的引导来完成依赖的安装。但实际上,如果只需要完成简单的网络仿真的话,这些就足够了,不需要再安装复杂的软件安装包了。