一个简单的网络模拟器NS的案例使用_第1页
一个简单的网络模拟器NS的案例使用_第2页
一个简单的网络模拟器NS的案例使用_第3页
一个简单的网络模拟器NS的案例使用_第4页
一个简单的网络模拟器NS的案例使用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络模拟器NS-2及其应用分析本例将介绍如何使用一些工具来分析和呈现模拟结果,主要是测量端到端的延迟,而采用的方法一是去分析Trace文件,方法二是去修改NS核心,把所需要测量的数据直接记录下来,限于篇幅我们不在此进一步介绍方法二。模拟场景如图4所示,包含四个节点(n0,n1,n2,n3),假设n0,n2和n1,n2之间链路带宽2Mbps,延迟为10ms;n2和n3之间链路带宽1.7Mbps,延迟为20ms;每个链路用DropTail策略;n2和n3之间链路最大队列长度为10;n0,n3之间有一条建立在TCP上的FTP连接,n1,n3之间有一条建立在UDP上CBR连接;CBR是在0.1秒开始发

2、送,在4.5秒结束,FTP是在1.0秒开始发送,在4.0秒结束。图4 模拟场景3.1 建立Otcl模拟代码文件#创建一个模拟对象set ns new Simulator#为数据流定义不同的颜色,供NAM用$ns color 1 Blue$ns color 2 Red#打开一个 NAM trace fileset nf open out.nam w$ns namtrace-all $nf#打开一个 trace file 记录数据包的传送过程set nd open out.tr w$ns trace-all $nd#定义一个结束程序proc finish global ns nf nd $ns f

3、lush-trace #关闭 NAM trace file close $nf close $nd #以后台方式执行 NAM exec nam out.nam & exit 0#创建四个节点set n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset n3 $ns node#把节点连接起来$ns duplex-link $n0 $n2 2Mb 10ms DropTail$ns duplex-link $n1 $n2 2Mb 10ms DropTail$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail#设定n2和n3之间最大

4、队列长度为10$ns queue-limit $n2 $n3 10#设定节点的位置,供NAM用$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient right#设定n2-n3间的队列位置,供NAM用$ns duplex-link-op $n2 $n3 queuePos 0.5#建立一条TCP连接set tcp new Agent/TCP$tcp set class_ 2$ns attach-agent $n0

5、$tcpset sink new Agent/TCPSink$ns attach-agent $n3 $sink$ns connect $tcp $sink#在NAM中,TCP的连接以蓝色表示$tcp set fid_ 1#在TCP连接之上建立FTP应用set ftp new Application/FTP$ftp attach-agent $tcp$ftp set type_ FTP#建立一条UDP连接set udp new Agent/UDP$ns attach-agent $n1 $udpset null new Agent/Null$ns attach-agent $n3 $null$

6、ns connect $udp $null#在NAM中,UDP的连接以红色表示$udp set fid_ 2#在UDP连接之上建立CBR应用set cbr new Application/Traffic/CBR$cbr attach-agent $udp$cbr set type_ CBR$cbr set packet_size_ 1000$cbr set rate_ 1mb$cbr set random_ false# 设定FTP和CBR的开始和结束时间$ns at 0.1 $cbr start$ns at 1.0 $ftp start$ns at 4.0 $ftp stop$ns at 4

7、.5 $cbr stop#在5.0秒调用finish过程结束模拟$ns at 5.0 finish#执行模拟$ns run本例子在FedoraCore4,ns-2.29下测试通过,模拟结束后,产生两个文件,一个是out.nam,这是供NAM用的,用来可视化整个模拟过程;另一个是out.tr,记录了模拟过程中数据包传送中的所有事件,这是我们分析的重点。3.2 利用awk提取out.tr文件中的数据 awk是一种程序语言,可以使用很短的代码轻易地完成对文本档案做修改、分析、提取和比较等处理。根据Trace文件格式,我们很容易写出测量CBR数据包端到端延迟时间的awk程序delay.awk:#测量C

8、BR数据包端到端延迟时间BEGIN highest_packet_id = 0; action = $1; time = $2; from = $3;to = $4; type = $5; pktsize = $6; flow_id = $8; src = $9; dst = $10; seq_no = $11; packet_id = $12; if ( packet_id highest_packet_id ) highest_packet_id = packet_id; if ( start_timepacket_id = 0 ) start_timepacket_id = time;

9、if ( flow_id = 2 & action != d ) if ( action = r ) end_timepacket_id = time; else end_timepacket_id = -1; END for ( packet_id = 0; packet_id = highest_packet_id; packet_id+ ) start = start_timepacket_id; end = end_timepacket_id; packet_duration = end - start; if ( start cbr_delay3.3绘出图形绘制图形有两种方法,其一是

10、使用Xgraph,其二是使用Gnuplot。3.3.1 使用Xgraph Xgraph是ns-allinone包中自带的一个小巧的绘图工具,它可以根据数据文件里的数据绘制出相应的图形。本例执行:$xgraph cbr_delay,结果如图5所示:由图可以看出:在一刚开始的时候,由于只有CBR的数据包,所以端到端的延迟是固定的,但在1.0秒后,FTP数据包参与争夺网络资源,因此,端到端的延迟变得不固定,但等到FTP传输结束后,CBR数据包的端到端的延迟又变得固定了。3.3.2 使用Gnuplot在使用gnuplot的时候,命令如下:Plot “cbr_delay”图形是出来了,但都是用点连接的,所以要加一些参数才能实现用线连起来:Plot “cbr_delay” with linespoints 14 结论 网络模拟日益成为分析、研究、设计和改善网络性能的强大工具,NS-2便是其中功能强大且可以免费得到的一种。本文详细讨论了NS-2的结构、功能及其使用方法,并给出一个实例具体解释 NS-2的使用及使用相关工具对输出结果进行处理。总的来说,NS-2结构复杂,有一个相对陡峭的学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论