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

网络仿真软件是网络性理论分析、评估网络设计方案以及网络故障诊断有力工具。在网络系统方案设计阶段,对于规模稍大的互连网络目前还没有哪个理论能够对其进行较精确的分析。一般都减少投资风险,降低网络实现费用等都有着巨大的好处[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 3168le

$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免费网络系统仿真软件具有功能完整,使用较方便,支持较多网络协议的特点,但利用脚本来构建网络模型稍显繁琐。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值