还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Ns2简单有线网络仿真实验报告实验概述
2、在Centos系统下安装NS2仿真工具包
3、Nam方式示例在windows系统下安装Centos虚拟机实验内容1NS2仿真工具包安装说明
1.在Centos系统下设置root账户
2.解压NS2文件
3.安装ns-allinone-
2.35设置环境变量
4.验证NS2工具包安装情况2Nam方式仿真结束后,会产生out.nam和out.tr两个档案用来把仿真的过程用可视化的方式呈现Step:
1.6ms
1.776077出来4)数据分析End-to-End Delay
1.把测量CBR封包端点到端点间延迟时间的awk程序,写在档案measure-delay.awk档案中#程序初始化,设定一变量以记录目前最高处理封包的IDhighest_packet_id=0;action=$1;time=$2;node_l=$3;node_2=$4;type=$5;flowjd=$8;node_l_address=$9;node2address=$10;seq_no=$11;packetjd=$12;#记录目前最高的packet IDifpacketjdhighesCpacketjdhighest_packet_id=packetjd;#记录封包的传送时间ifstart_time[packet_id]==0start_time[packet_id]=time;#记录CBRflow_id=2的接收时间ifflowjd==2action!=d{ifaction==r{end_time[packet_id]=time;}else{#把不是flow_id=2的封包或者是flow_id=2但此封包被drop的时间设为-1end_time[packet_id]=-1;END{#当资料列全部读取完后,开始计算有效封包的端点到端点延迟时间forpacketjd=0;packetjd=highest_packet_id;packet_id++{start=st art_t ime[pa cke t_i d];end=end_time[packet_id];packet_duration=end-start;#只把接收时间大于传送时间的记录列出来ifstartendprintf%f%f\n start,packet_duration;/执行方法:($为shell的提示符号)$awk-f measure-delay.awk out.tr若是要把结果存到档案,可使用导向的方式(把结果存到cbjdelay档案中)$awk-f measure-delay.awk out.trcbr_delayXgraph画图
2、JitterJitter就是延迟时间变化量delay variance档案measure-jitter.awkold_time=0;old_seq_no=0;i=0;action=$1;time=$2;node_l=$3;node_2=$4;type=$5;flowjd=$8;node_2_address=$10;seq_no=$11;packetjd=$12;#判断是否为n2传送到n3,且封包型态为cbr,动作为接受封包ifnode_l==2node_2==3type二二cbraction==r{#求出目前封包的序号和上次成功接收的序号差值dif=seq_no-old_seq_no;#处理第一个接收封包ifdif==0dif=l;#求出jitterjitter[i]=time-old_time/dif;seq[i]=seq_no;old_seq_no=seq_no;old_time=time;END{for j=l;j i;j++printf%d\t%f\n seq[j]Jitter[j];,执行方法:$为shell的提示符号$awk-f measure-jitter.awk out.tr若是要把结果存到档案,可使用导向的方式把结果存到cbrjitter档案中$awk-f measure-jitter.awk out.trcbrjitterOtcl脚本#产生一个仿真的对象set ns[new Simulator]#针对不同的资料流定义不同的颜色,这是要给NAM用的$ns color1Green$ns color2Red#开启一个NAM trace fileset nf[open out.nam w]$ns namtrace-all$nf#开启一个tracefile,用来记录封包传送的过程set nd[open out.tr w]$ns trace-all$nd#定义一个结束的程序Xgraph画图\j j产Yx1T3jitter「••i zi1n••「1q.uuuu
12.0000・・••・•・・•・・・・・••••••••••••・・・・・・•••••••・♦・・・,・・・・・••・・••・・••・・・•・・•・・・•・・・・•・・♦•••••••••••••••••••••••••••••・・••••a•■•••••••••・・・・••・・••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••二••••
11.0000••…••••...•••・・・・・♦・・・••・・•・・・♦・・・・・・・•・・・♦・・・・・・・・♦・•
3.I U.UUUu
9.0000・…
1.••••••••••«
7.
6.
5.
00000.
0000100.
100.
0000500.000IJ CLoss把量测CBR PacketLoss的情况写在档案measure-drop.awk内#程序初始化,设定一变量记录packet被drop的数目fsDrops=0;numFs=0;action=$1;time=$2;node_l=$3;node_2=$4;src=$5;flow_id=$8;node1address=$9;node2address=$10;seq_no=$11;packetjd二$12;#统计从nl送出多少packetsif node_l==lnode_2==2action==+”numFs++;#统计flow_id为2,且被drop的封包if flow_id==2action==dfsDrops++;ENDprintfnumber of packets sent:%d lost:%d\n,numFs,fsDrops;执行方法:($为shell的提示符号)$awk-f measure-drop.awk out.tr执行结果:-drop Xdumberofpacketssent:556lost:14这代表CBR送出了550个封包,但其中14个封包丢掉了proc finish{}{global nsnf nd$ns flush-traceclose$nfclose$nd#以背景执行的方式去执行NAMexec namout.nam exit0#产生6个网络节点set nO[$ns node]set nl[$ns node]set n2[$ns node]set n3[$ns node]set n4[$ns node]set n5[$ns node]#把节点连接起来$ns duplex-link$n0$n22Mb10ms DropTail$ns duplex-link$nl$n22Mb10ms DropTail$ns duplex-link$n2$n
31.7Mb20ms DropTail$ns duplex-link$n3$n
41.7Mb30ms DropTail$ns duplex-link$n3$n
51.5Mb30ms DropTail#设定ns2到n3之间的Queue Size为10个封包大小$ns queue-limit$n2$n310$ns queue-limit$n3$n45#$ns queue-limit$n3$n510#设定节点的位置,这是要给NAM用的$ns duplex-link-op$n0$n2orient right-down$ns duplex-link-op$nl$n2orient right-up$ns duplex-link-op$n2$n3orient right$ns duplex-link-op$n3$n4orient right-up$ns duplex-link-op$n3$n5orient right-down#观测n2到n3之间queue的变化,这是要给NAM用的$ns duplex-link-op$n2$n3queuePos
0.5#建立一条n0-n5TCP的联机set tcp[new Agent/TCP]$ns attach-agent$n0$tcpset sink[new Agent/TCPSink]$ns attach-agent$n5$sink$ns connect$tcp$sink#在NAM中,TCP的联机会以Green表示$tcp setfid_1#在TCP联机之上建立FTP应用程序set ftp[new Application/FTP]$ftp attach-agent$tcp$ftp settype_FTP#建立一条UDP的联机set udp[new Agent/UDP]$ns attach-agent$nl$udpset null[new Agent/Null]$ns attach-agent$n3$null#在NAM中,UDP的联机会以红色表示$udp setfid_2#在UDP联机之上建立CBR应用程序set cbr[new Application/Traffic/CBR]$cbr attach-agent$udp$cbr settype_CBR$cbr setpacket_size_1000$cbr setrate_lmb$cbr setrandom_false#设定FTP和CBR资料传送开始和结束时间$ns at
0.1$cbr start$ns at
1.0$ftp start$ns at
4.5$cbr stop#结束TCP的联机(不一定需要写下面的程序代码来实际结束联机)$ns at
4.5$ns detach-agent$n0$tcp;$ns detach-agent$n3$sink#在仿真环境中,5秒后去呼叫finish来结束仿真(这样要注意仿真环境中#的5秒并不一定等于实际仿真的时间$ns at
5.0finish#执行仿真$ns run3)仿真结果nam:out.nam□x台即Step:
2.0ms
0.778000目Illllffffllllllllll llllllllllllllllll Hill00G17。
个人认证
优秀文档
获得点赞 0