基于免费软件ns2的网络仿真

2006-05-07 15:50:10来源: 电子技术应用

网络仿真软件是网络性理论分析、评估网络设计方案以及网络故障诊断有力 工具。在网络系统方案设计阶段,对于规模稍大的互连网络目前还没有哪个理论能够对其进行较精确的分析。一般都减少投资风险,降低网络实现费用等都有着巨大的好处[1]。在网络仿真软件中,比较有名的有MIL3公司的OPNET软件、Cadence公司的VCC软件,这些软件一般的价格都在调20-30美元左右,每年还需要几万美元的服务费,对于研究单位、学校甚至大型的公司来讲都一笔巨大原投资。除了上面的商业软件,在网络仿真领域还有一些免费软件,这里面比较有名的就是VINT的ns2软件。

1 ns2网络仿真软件简介

Network Simulator仿真软件是位于美国加州的Lawrence Berkeley国家实验室于1989年开始开发的软件,简称ns软件。Ns是一种可扩展、易配置和编程的事件驱动网络仿真工具。ns从S.keshavs REAL仿真器发展而来的。目前ns正在Virtual InterNetwork Tesbed(VINT)项目的支持下由南加州大学、施乐公司、加州大学与Lanrence Berkeley国家实验室协作发展ns软件。目前最高版本为ns2。

ns所用仿真语言是Tool Command Language(tel)语言的一个扩展,tcl语言一个简单的脚本语言,它有解释器可与任何C语言相链接,tcl最强大的功能是它的X工具包(tk),该工具包可以让用户开发具有图形用户界面的脚本,仿真通过tcl语言进行定义[2]。利用ns命令编写脚本来定义网络拓朴结构、配置网络信息流量的产生和接收以及收集统计信息。软件配有仿真过程动态观察器,可以在仿真运行结束后,动态查看仿真的运行过程,观察跟踪数据。软件还有图形显示器,显示从仿真中得到的结果数据,直观而清晰。

目前ns2主要基于UNIX平台,需要tcl-8.0.5、tk-8.0.5、otcl-1.0a4、tclcl-1.0b8和ns-2.1b6的支持。如果基于Windows98平台,还需要Perl(Practical Extraction and Report Language)以及Cygwin(Ports of the pupular GNU development)支持,但在Windows98平台下软件可能会不稳定。

ns2仿真软件主要支持下面一些已完成测试的协议:HTTP、telnet业务流、ftp业务流、CBR业务流、On/Off业务流、UDP、TCP、RTP、SRM、算法路由、分级路由、广播路由、多播路由、静态路由、动态路由、CSMA/CD MAC层协议等[3]。

下面将结合基于Linux平台上的ns2软件,对5节点星型拓朴满足UDP协议的网络仿真进行说明。ns2所有相关文件可以在位于www.isi.edu/nsnam/ns的网址上找到。

2 网络拓朴及结构的定义

网络拓朴采用5个节点的星型结构,具体结构如图1所示。

下面利用tcl语言对网络拓朴结构进行定义如下:

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

$ns duplex-link $n0 $n3 1Mb 100ms DropTail

$ns duplex-link $n1 $n3 1Mb 100ms DropTail

$ns duplex-link $n2 $n3 1Mb 100ms DropTail

$ns duplex-link $n3 $n4 1Mb 100ms DropTail

前4行设置了从n0到n4的4个网络节点,后4行分别定义了从n0、n1、n2到n3以及n3到n4的网络链路,链路设置均相同,都为1Mbit/s,延迟100ms,丢弃超出信道容量的数据。定义完基本的节点和链路后,对网络的数据源和应用的协议进行定义,由于需要定义的节点较多,采用子程序的方法。网络的信源采用On/Off指数分布随机信源,协议采用UDP无边接协议,具体程序脚本如下:

proc attach-expoo-traffic{node sink size burst idle rate}{

#Get an instance of the simulator

set ns[Simulator instance]

#Create a UDP agent and attach it to the node

set source[new Agent/CBR/UDP]

$ns attach-agent $node $source

#Create an Expoo traffic agent and set its configuration parameters

set traffic[new Traffic/Expoo]

$traffic set packet-size $size

$traffic set burst-time $burst

$traffic set idle-time $idle

$traffic set rate $rate

#Attach the traffic agent to the traffic source

$source attach-traffic $traffic

#Connect the source and the sink

$ns connect $source $sink

return $source

}

子程序首先设置ns作为仿真器,然后创建一个UDP协议并把这个协议附加到节点上,之后创建一个开关时间满足指数分布的On/Off随机信源,设置信源的包大小、开关时间、峰值速率参数,并将信源绑定到UDP协议上,最后指出信息流的源地址和目的地址。

仿真模型定义完成后,在脚本程序中设置仿真的开始时间和结束时间,以及通过编写脚本将仿真中需要记录的数据写入文本文件。这样,仿真模型的整个脚本就完成了,下面我们就可以运行仿真,以及观察仿真的结果。

3 运行仿真并动态观察仿真过程

ns2软件的仿真运行比较简单,采用后台方式,只需要在命令行中输入下命令即可:

ns脚本程序名.tcl

仿真运行结束后,我们可以利用仿真动态观察器nam软件查看仿真过程,运行如下命令:

nam out.nam

观察器启动后,我们可以看到一个图形界面如图2所示。通过观察器按钮,我们可以正向播放、反向播放、快速前进、快速后退、停止仿真动画的播放。我们也可以给网络上传输的包加上标记,动态观察包的传递过程。在观察器的右上角设置有步长设置滑块,用来设置仿真演示的速度。利用该工具大大方便了对网路运行情况的理解ns2与观察。

4 仿真数据处理

利用仿真过程中记录的数据和xgraph软件,我们呆以对这些数据进行图形化的分析。在此例中我们中以显示节点n0、n1、n2分别到n4的信息流量图,峰值速率分别为我们所设定的值。我们也可以利用仿真形成的数据文件,根据需要对其进行进一步的处理。

从上面的整个仿真过程来看,ns2免费网络系统仿真软件具有功能完整,使用较方便,支持较多网络协议的特点,但利用脚本来构建网络模型稍显繁琐。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/network/200605/3168.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved