文档章节

Windows平台下NS2网络仿真环境的搭建

雷霄骅
 雷霄骅
发布于 2014/08/16 13:59
字数 1529
阅读 215
收藏 0

NS2(Network Simulator 2) 是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面。所以,NS成了目前学术界广泛使用的一种网络模拟软件。此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。本文介绍Windows平台下NS2网络仿真环境的搭建(使用Cygwin)。

(一)准备工作

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必要的安装包如下:

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.edu/下载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配置环境变量。

在文件的尾部添加如下代码:

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进行测试,如果配置成功,会出现如图界面:






本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/12233331

雷霄骅

雷霄骅

粉丝 213
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
加载中

评论(0)

北京科东电力控制系统有限责任公司诚聘--电力通信仿真工程师

职位职责: 1)制定电力通信网络仿真系统的技术方案,负责组织软件的设计开发。 任职要求: 1)具有通信、计算机网络等相关领域本科及以上学历 2)具有3年以上相关工作经验 3)掌握通信网络与...

lcl
2012/05/31
379
1
如何用阿里云搭建自己的工业超算集群

如何用阿里云搭建自己的工业超算集群 工业仿真已被世界上很多企业应用到工业生产的各个环节,对提高企业的开发效率,减少决策失误,降低企业风险起到了重要作用,广泛地应用于航空航天、汽车...

云上未来
2018/01/02
0
0
电路仿真软件 - SimulIDE

SimulIDE是一个简单的实时电子电路仿真器。它适用于通用电子和微控制器仿真,支持PIC和AVR。PIC仿真由simavr的gpsim和avr仿真提供。支持Windows与Linux,Windows版内置了PIC单片机的调试软件...

匿名
2019/07/17
1.8K
0
用ROS自带的gazebo仿真器搭建自己的环境

近期需要搭建一个室内仿真环境,用于实验调试,所以想把相关技巧记录下来,如有错误,还请批评指正,谢谢。 参考网页:使用gazebo中的building editor创建一个建筑环境并用于仿真 1.配置要求...

qq_36355662
2018/04/21
0
0
覆盖网仿真框架--OverSim

OverSim是一个开源的覆盖网仿真框架,它工作在OMNET++/OMNEST仿真环境下。这一P2P仿真器包含了多个P2P协议,例如结构化覆盖网中的chord,Kademilia,Pastry,非结构化覆盖网中的GIA。 OverSi...

匿名
2012/09/20
1.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

手把手教你搭建 ELK 实时日志分析平台

本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。 Elasticsearch ...

武培轩
38分钟前
52
0
直播报名 | Service Mesh技术实践分享

近年来,云原生(Cloud Native)逐渐成为一个技术领域内的流行语,热度居高不下。企业正在加速拥抱云原生架构,以此缩短产品发布周期、敏捷响应市场需求,继而从云计算服务中提炼新的价值和技...

百度开发者中心
50分钟前
47
0
Qt 实现QTableView单元格多按钮效果

实现效果预览: 思路: 使用Qt的委托类独自渲染表格的某一列,如上图字段2的那一列。该一个单元格放入多个按钮,重写 QStyledItemDelegate 委托类 paint 方法即可实现上图效果。 代码: 委托...

剑是SR剑
51分钟前
71
0
第一章 引子--总结

1.开发过程中对公共、通用的素材做好沉淀。 2.厚平台、薄应用:理解是底层较多的基础公共平台、薄应用 最上层的应用,具体实现 3.烟卤式系统建设:一个业务一个系统,比如天猫和淘宝,开始是...

zxx901221
今天
57
0
利用docker来部署go应用程序

利用docker实现go程序的快速部署 最近很长一段时间一直通过各种渠道去了解国内外有关devops方面的实践,感受很多的知识点都特别的分散,所以想通过系统的整理来巩固相应的知识体系。接下来会...

罗布V
今天
64
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部