⑴ 如何用NS2模拟一个MESH网络
NS是Network Simulator的英文缩写,字面翻译即为网络模拟器,又称网络仿真器.
NS2则是网络仿真器的第2版.
NS2是一款开放源代码的网络仿真软件,它也是目前网络研究领域应用最广泛的网络仿真软件之一.
毕业论文中刚好用到了这个软件.在模拟完毕之后,花点时间来写点入门级的东东.
1.在Linux下的安装
申明:我的pc上安装的是Ubuntu版本,个人用户名为ryan
首先下载软件包ns-allinone-2.31.tar.gz(目前最新版本).
具体步骤如下:
(1)到自家目录下确定软件包的所在
ryan@Ubuntu:~$cd
ryan@Ubuntu:~$ls -l ns-allinone-2.31.tar.gz
(2)解压软件包,使用tar命令解压为.gz结尾的软件包
ryan@Ubuntu:~$tar zxf ns-allinone-2.31.tar.gz
zxf为解压.gz专用参数,如果想看到解压输出的过程,也可以加上V,即用vzxf参数解压,详细的tar命令的参数
和使用方法可以参加linux的有关资料.
(3)运行安装命令
ryan@Ubuntu:~$cd ns-allinone-2.31
ryan@Ubuntu:~/ns-allinone-2.31 $./install
执行./install命令后,会出现很多编译过程的结果输出,主要没有错误信息并停止,不用去管它,不出意外,
等待一段时间后会正常退出到提示符.
(4)设置全局路径变量
上一步的安装成功后,最后输出部分会提示你必须设置三个全局变量path,ld_library_path和tcl_library.
在自己的家目录下编辑终端配置文件 .bashrc,注意要带"."开头, .bashrc是bash终端的配置文件,每次打开
一个终端窗口,该文件中的脚本就会自动运行.在Linux中它是隐藏文件,一般用ls命令看不出来,没关系,采用
vi命令编辑该文件:
ryan@Ubuntu:~$cd
ryan@Ubuntu:~$vi .bashrc
将光标移动到文件的最后一行,按"ins"键进行插入,在此文件中添加一下三行:
export path=$path:~/ns-allinone-2.31/bin:/home/ryan/ns-allinone-2.31/tcl8.4.13/unix
export ld_library_path=$ld_library_path:/home/ryan/ns-allinone-2.31/otcl-1.12:/home/ryan/ns-allinone-2.30/lib
export tcl_library=$tcl_library:/home/ryan/ns-allinone-2.31/tcl.4.13/library
编辑完成后,按"esc"键退出插入模式,再按":wq"存盘退出.
重新打开新的终端,脚本运行生效.
(5)简单测试
重新打开新的终端,环境变量的设置才会生效,如果.bashrc文件中有什么错误,这时在新开的终端中会有提示信息
显示出来.如果没有错误,则在终端提示符下输入ns命令进行测试.操作步骤如下:
A)打开一个新的终端
B)输入ns并回车
ryan@Ubuntu:~ns
C)输入一段测试用的tcl脚本代码进行测试
%puts "hello world"回车
如下所示显示则表示安装成功.
hello world
%
2.如何快速入门
ns中两个语言是c++和tcl,所以懂得这两种语言的语法是入门的关键.
c++我就不多说了,很多关于这方面的书籍,而且个人觉得作为一名计算机专业的学生,学好c++是根本吧.
只有tcl,感觉语法和网络编程语言php比较类似,个人以前用它开发过网站,感觉很熟悉,也容易理解.即使不懂,我感觉半天就可以上手.
这里还推荐一本书<ns和网络模拟>,主要看看第4,5,7章就ok了,最后分析数据的时候再看看第6章.
在自己动手之前,认真研究mflood的例子,这是一个原型的东西,看懂了基本就可以下一步了.如果以后遇到不懂的,可以重新回头看.
3.如何开发,讲讲自己的经验.
开发工具非常重要,本人采用eclipse作为开发工具,感觉非常好用.至于...安装就不需要我讲解了吧-_-#必要的插件是必须的.
用eclipse建立ns的工程,开发自己的源代码(c++文件).基本就是.h和.cc文件的code,需要一定的c++基础(ps:好久不写代码,犯了很多幼稚的错误)
调试c++代码时,可以使用eclipse工具,非常方便,而且定位错误也准确,我想使用过这个平台的人都深有体会吧.
编译通过之后,编写tcl脚本,开始模拟测试...
ps:如果你的协议有逻辑错误,那我就无话可说了.
我的毕业论文做的是无线mesh网络的QoS组播路由协议,基于MAODV协议的改进,增加了QoS的参数约束!
全部协议实现共18个文件,代码量在5k的样子,开发时间为1个星期,后期模拟5*10个场景...效果满意...
⑵ 网络仿真软件的简介
在这种情况下,仿真就成了最佳可供选择的测试、评估和验证手段之一。本文对当前若干主流网络仿真软件进行了简要介绍和评价,并对两款主流的网络仿真软件Opnet和NS2进行了用例对比分析,最后对各种网络仿真软件进行了总结。网络仿真也被称为网络模拟,因为对各种网络仿真过程来说,其中也有“模拟”的含义,即,网络仿真既可以取代真实的应用环境得出可靠的运行结果和数据,也可以模仿一个系统过程中的某些行为和特征。顾名思义,网络模拟,就是用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。那么,为什么要进行通信网络的仿真呢?
在网络迅速膨胀的今天,网络研究人员一方面要不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的资源,使网络达到最高效能。无论是哪一方面都需要对新的网络方案进行验证和分析。进行网络技术的研究一般有以下3种手段: 仿真方法,应用网络仿真软件建立所研究的网络系统的模拟模型,在计算机上运行这个模型,并分析运行的输出结果。
⑶ 我的电脑是win7家庭普通版,想要使用NS2网络仿真器仿真
(一)准备工作
NS2(Network Simulator 2)必须在UNIX/Linux平台下运行,因此一般需要安装UNIX/Linux 操作系统。若要在Windows下使用NS可以采用Windows+虚拟机(VMware、Virtual PC)+NS组合的方式,或者是Windows+Cygwin(一个模拟的Linux平台)+NS组合的方式。目前Windows的使用较为普遍,因此本文主要介绍Windows+Cygwin(一个模拟的Linux平台)+NS的方式。
1.Cygwin
Cygwin是一个在Windows平台上运行的UNIX模拟环境,是Cygnus solutions公司开发的自由软件。它对于学习UNIX/Linux操作环境,从UNIX到Windows的应用程序移植,以及进行某些特殊的开发工作,尤其是使用gnu工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对Cygwin产生了兴趣。
Cygwin当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释Win32的目标文件。然后,他们要把这些工具移植到Windows平台上去。一种方案是基于Win32 API对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是Cygwin dll),把Win32 API中没有的UNIX风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于Win32 API写了一个UNIX系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用UNIX主机上的交叉编译器来生成可以在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,Cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到Windows上来。这样,在Windows平台上运行bash和开发工具、用户工具,感觉好像在Linux上工作。
目前国内的网站上有"在线安装"和"本地安装"两种。两者在本质上并没有多少不同,只是Cygwin必须安装特定的软件包。默认的软件包不够用。在线安装更够更新Cygwin的的软件包,可以减少安装过程中的一些不必要的错误。因此,本文采用在线安装,下面介绍一下安装Cygwin的步骤:
1. 首先关闭杀毒软件,否则可能会误报病毒导致安装失败。
2. 从http://www.Cygwin.com/ 下载setup.exe在线安装包。
3. 点击setup.exe开始安装,选择”install from Internet”从网络上进行安装,如图
4. 对软件包进行筛选,不需要的软件包点击“skip”,则会跳过该安装包的安装。如图所示
必要软件包是Cygwin用来生成并解释Win32的目标文件,缺一不可。安装过程也可以不点击skip,则默认将所有软件包都安装,如果是系统允许,可建议这么做,避免有些必要的安装包没有选择到,而出现错误。Cygwin必要的安装包如下:
[plain] view plain
gcc
gcc-g++
gnuplot
make
patch
perl
tar
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data
软件包安装成功后,点下一步,则安装成功。
2.下载NS2源代码
NS2存在很多版本,不同的版本存在不同的兼容性问题。例如:Ns2.28以后不再提供编译好的可执行文件,因此需要自己编译源码,时间比较长;Ns2.29,2.30等较早版本存在兼容性问题,安装后无法使用,需要打补丁或改源码,操作难度较大,因此要选择最新版本2.35,避免打补丁等操作。打开网址 http://www.isi.e/下载ns-allinone-2.35 安装包。下载完后,解压到c:\Cygwin\home\Administrator\ns-allinone-2.35。路径要严格选择对,否则使用过程中会出现问题。
(二)NS2编译安装
打开Cygwin terminal,切换到解压的目录cd/home/Administrator/ns-allinone-2.35
输入./install安装。此安装过程很缓慢,因为是从源代码进行编译。
(注意:一定要关闭杀毒软件!我发现金山毒霸会误报病毒而导致编译失败)
安装完成后,用 ultraedit 打开 c:\Cygwin\home\Administrator\.bashrc配置环境变量。
在文件的尾部添加如下代码:
[plain] view plain
export
NS_HOME=/home/Administrator/ns-allinone-2.35
export
PATH=$NS_HOME/nam-1.15:$NS_HOME/tcl8.5.10/UNIX:$NS_HOME/tk8.5.10/UNIX:$NS_HOME/bin:$PATH
export
LD_LIBRARY_PATH=$NS_HOME/tcl8.5.10/UNIX:$NS_HOME/tk8.5.10/UNIX:$NS_HOME/otcl-1.14:$NS_HOME/lib:$LD_LIBRARY_PATH
export
TCL_LIBRARY=$NS_HOME/tcl8.5.10/library
使用UtraEdit而不要使用记事本,因为是UNIX文本,删除不必要的空格和回车;环境变量之间要用冒号分隔,而不是分号。
2、必须在Cygwin 下运行 source .bashrc使环境变量生效。
3、环境变量生效后,输入startxwin启动Cygwin的xwindow界面,只有xwindow界面才可以运行NS仿真,否则会出错。如图所示:
4、切换到需要使用的TCL文件目录。输入ns [file-name].tcl启动模拟。可以使用自带的example2.tcl进行测试,如果配置成功