




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、移动自组织网络验报告口NS2网络仿真实验何云瑞13120073电信研1301班1实验目的和要求1.学会NS2的安装过程,并熟悉NS2的环境;2 .观察并解释NAM动画,分析Trace文档。3 .学会用awk和gnuplot分析吞吐量、圭寸包延迟、抖动率和圭寸包丢失率。2. 实验环境先在 PC 上安装 VMware 虚拟机,再在虚拟机上安装 Ubuntu 系统,最后再 Ubuntu系统上安装NS2软件,本次实验采用的是 NS-2.34版本。3. 基本概念3.1 NS2 简介NS2是一款开放源代码的网络模拟软件,最初由 UC Berkeley开发。它是一 种面向对象的网络模拟器, 它本质上是一个离
2、散事件模拟器, 其本身有一个模拟 时钟,所有的模拟都由离散事件驱动。 其采用了分裂对象模型的开发机制, 采用 C+和OTcl两种语言进行开发。它们之间采用 TclCL进行自动连接和映射。考 虑效率和操作便利等因素,NS2将数据通道和控制通道的实现相分离。 为了减少 圭包和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用 C+编写,这些对象通过TclCL映射对OTcl解释器可见。目前,NS2可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已 经实现的主要模块有:网络传输协议,如 TCP和UDP;业务源流量产生器,如 FTP、Tel net、CBR、Web 和 VBR ;路由队
3、列管理机制,女口 Droptail、RED 和 CBQ; 路由算法;以及无线网络 WLAN 、移动 IP 和卫星通信网络等模块。也为进行局 域网的模拟实现了多播协议以及一些 MAC 子层协议。3.2 NS2的功能模块NS2仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格 式等,下面对各个模块进行简单的介绍:(1) 事件调度器:目前NS2提供了四种具有不同数据结构的调度器,分别是链表、堆、日历表和实时调度器(2) 节点(n ode):是由TclObject对象组成的复合组件,在 NS2中可以 表示端节点和路由器。(3)链路(link):由多个组件复合而成,用来连接网络节点。所有的链
4、路 都是以队列的形式来管理封包的到达、离开和丢弃。(4)代理(age nt):负责网络层封包的产生和接收,也可以用在各个层次 的协议实现中。每个age nt连接到一个网络节点上,由该节点给它分配一个端口 号。(5) 封包(packet):由头部和数据两部封包成。一般情况下,packet只有 头部、没有数据部分。(6)应用层(Application ):流量产生器(Traffic generatorS创建了各种不同的概率模型来模拟产生实际网络中的业务流,它建立在UDP代理之上;应用模拟器(Simulated即plication)产生建立在TCP代理之上的业务流。(7)数据记录:Trace,功能是
5、能够详细记录模拟过程,同时,用户也可以根据自己的需要记录模拟过程中的任何一个细节,模拟结束后会产生out.tr文件;Monitor, NS2中有两种监测,队列监测(Queue Monitoring)和流量监测(Per-Flow Mon itori ng )。(8)动画演示Nam,是基于Tcl/Tk的动画演示工具,用来把模拟的过程用可视化的方式呈现出来,模拟结束后会产生out.man文件。(9)数据分析:gawk。awk是一种程序语言。它具有一般程序语言常见的功能。由于awk语言具有使用直译器(Interpreter)不需先行编译;变量无型别之分 (Typeless),可使用文字当数组的注标(A
6、ssociative Array)等特色,所以使用 awk 撰写程序比起使用其它语言更简洁便利且节省时间。awk还具有一些内建功能,使得awk擅于处理具资料列(Record),字段(Field)型态的资料。此外,awk内建 有pipe的功能,可将处理中的资料传送给外部的 Shell命令加以处理,再将Shell 命令处理后的资料传回awk程序,这个特点也使得awk程序很容易使用系统资 源。而gawk是GNU所开发的awk,最初在1986年完成,之后不断改进和更新, gawk包含awk的所有功能。3.3 Trace文件的格式(1)(2)(8)(9)(10)(11)(12)Eve ntTimeFro
7、mToPktPktFlagsFidSrcDstSeqPkt icnodenodetypesizeaddraddrnum(1) Eve nt发生的事件类型+表示圭寸包进入链路队列(Enqueue)-表示封包离开链路队列(Dequeue)r表示目的队列接受(receive)事件d表示队列丢弃(drop)封包事件(2) time表示事件发生的时间(3) From node表示圭寸包发送节点的id(4) From node表示圭寸包传送目的节点的id(5) Pkt type表示圭寸包类型(6) Pkt size表示封包的大小(7) Flags表示标志项(8) Fid为Flow id的简写,流标识符(9
8、) Src addr表示源地址,格式为:node.port。node为圭寸包发送节点的id, port代表发送封包节点的端口号。(10) Dst addr表示目的地址,格式为:node.port。node为圭寸包接收节点的 id, port代表接收封包节点的端口号。(11) Seq num圭寸包的序列号(12) Pkt id封包的唯一标识符,表示封包的id。3.4 CBR和FTP简介CBR: Constant Bit Rate,固定传输速率。这是一个用来形容通信服务质量(Quality of Service, QoS)的术语。和该词相对应的词是可变码率或可变比特 率(Variable Bit
9、Rate,缩写VBR )。当形容编解码器的时候,CBR编码指的是编 码器的输出码率(或者解码器的输入码率)应该是固定制(常数)。当在一个带宽受限的信道中进行多媒体通信的时候CBR是非常有用的,因为这时候受限的是最高码率,CBR可以更好的易用这样的信道。但是 CBR不适合进行存储,因 为CBR将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降),同时在简单的内容部分会浪费一些码率。FTP: File Transfer Protocol,文件传输协议,中文简称为 文传协议”用于 In ternet上的控制文件的双向传输。同时,它也是一个应用程序(Application )。用户可以通过
10、它把自己的PC与世界各地所有运行FTP的服务器相连,访问服务 器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这 些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件 从远程计算机上复制到本地计算机,或把本地计算机的文件送到远程计算机去。3.5其他概念(1)丢包率:是一个比率,表示在单位时间内未收到的数据封包数与发送的数据封包数的比率,由于信号衰减、网络质量等诸多因素的影响,可能产生数 据封包的丢失。(2)端到端时延:是由各种因素引起的,包括打包和解包时延,以及网络 传送时延,本文中主要讨论的是网络传输时延。(3) 吞吐量:单位时间内某个节点发送和接受
11、的数据量,单位一般为b/s。(4)抖动率:网络延迟的变化量,它是由同一应用的任意两个相邻数据包 在传输路由中经过网络延迟而产生的,由相邻数据包延迟时间差除以数据包序号 差得到。4. 实验步骤4.1 NS2的安装本文NS2的安装参照博文:http:/blog.s in .c n/s/blog_53e4f67d0101f5tr.html最终运行NS2自带simple.tcl得到图1,以示成功:uf j* H n anir ou trn3 旧 N4)ni ConfJ 斗ElieQr-eluSit; 3 i On |.HAH - X M?Ldork*1.1*NAJH Ihe Network
12、Animator圧咎严E 5 M V叭并” E EZ网 cmt-Birw rcurcfl code mi th the Fcllcwinc cDPMrirfttEJCoPwruelTt 1591 -1934 Repents cf the UhiwrsltM of 匚aliFurniM* 匚 1567-19-=? UhiMersiti-i of Soijthffrn 匚曰业丄forma 一 i irr !*_r丄 i . r i 亠:. _.rcotfiiast e n /horme/kln gc/n 5-fllLlnon-e-Z134/ns-Z.34/td/EM 1.4 kfiFetched
13、91L4 kB tn fls (135 kB/s)FIL L 1 III I JU.l Lil LL丄11J 11.11.ISelecting previously unselected package xgraph.(Reading database * 225 files and directories currently installed.Unpacking xgraph (from .B /xgraph_12. ! 15_i3S6.deb)Processing triggers for man-db Setting up xgraph (12.1b15) .rcwt(masterE-
14、9 cd /home/ktngc/ra - iSlltniMie - Z B 34/ns - 2 B 34/ tcl/ew rootma生ter:/heme/kingc/nsallinon&a2.34/ns-2.34/tel/exW ns simpletel 21日6 .盹3科轴対射彌轴対阳rynritng n$R? + +roDtmaster;/hoine/kingcfnsalltnone-2.34/ns-2.34/tel/ex# ;|图1 NS2安装成功4.2 Tel脚本运行本实验中编写的脚本simulator.tcl见附录一。实际模拟的网络结构图如图2所示。包含4个node,各节点之间都
15、是以全双工的链路相连。 nO和n2之间链路的带 宽为2Mbps,延迟为10ms,为DropTail队列方式;n1和n2之间链路带宽为2Mbps, 延迟为10ms,也为DropTail队列方式;n2和n3之间链路的带宽为1.7Mbps,延迟为20ms,也为DropTail方式。n0处有一个FTP的TCP流量产生器,n1处为CBR的UDP流量产生器,n3有一个接收TCP的sink和接收UDP的NULLEile Uieucs Qnalysiscut.namIIIIIIIU fffffl Illi IIHUIIIIIHUIIIHill刑档赛* 个是Quin茁加方式呈现出廉.这可UVw$ns color
16、 1 Blue1*(file stHULator.tcl* lirw 2) r ootgnastert/hcne/ktngc/ns - alltnoi roatnaster:/hcne/kingc/ns - llinoi rootnaster:/hone/klngc/ns-dHtnoi rootnaster:/hon&/ktngc/ns-alltnoi roo tgr :/hcne/kingc/ns - slltrnji cant read ns: no such variablewhile execLJti.ng Sns color 1 blue11图2网络结构图仿真结束后,会产生两个档案,
17、一个是 out.nam,这是给NAM用的,用来把 仿真的过程用可视化的方式呈现出来,这可以让我们很直观的方式去了解封包传 送是如何从来源端送到接收端。另一个档案是out.tr,这个档案记录了仿真过程中封包传送中所有的事件,例如第一笔记录是一个CBR的封包,长度为 lOOObytes,在时间0.1秒的时候,从n1传送到n2。4.3吞吐量、封包延迟、抖动率和封包丢失率 4.3.1封包延迟measure-delay.awk 中。测量CBR封包端点到端点间延迟时间的程序写在measure-delay.awk的 具体代码查看附录。在终端输入如下命令:gawk -f measure-delay.awk o
18、ut.tr cbr_delay此指令将运行结果存储到cbr_delay文件中,以便进行绘图 接着输入gnuplot,得到下图rootmaster:/hone/kingc/ns-allinone-2*34/ns-2.34/t匚萍 gnuplotG N U P L 0 TVersion 4,4 patchlevel 3last modified March 2Q11Systen: Linux 3*2*0-56-generic-paeCopyright (C) 1986-1993, 1998, 2004# 2007-2019 Thomas Williams, Colin Kelley and man
19、y othershttp:/www.gnuplot.tnfo type help seeking-assistance type ”hMphit hgnuplot home: faq, bugs, etc: tmnedtate help: plot window:Teni.nal type to接着按下图输入,为接下来要画的时延图做标识:gnuplot plot,Fcbr_delay,Tgnuplot plot,rcbr_delay,Tgnuplot set title cbr_delaygnuplot set xlabel simulationgnuplot set ylabet 1hdel
20、ay timegnuplot unset keygnuplotn set label *constant delay=O*038706 sec/at 0*1,0*05gnuplot set arrow from 0.5,0.05 to 0.5,0.04gnuplot plot cbr_delaygnuplot plot cbrdelay with linespoints运行上图最后一条指令后得到图 3:為 0 B Q %?0.0B50.080.0750.07岸 0.065M 0.06g 0.0550.050.0450.040,03500.511.522.533,544.5srmulation
21、timecbr detay3.Q7669, 0.0858785图3封包延迟随时间的变化4.3.2抖动率抖动率就是延迟时间变化量delay varia nee,由于网络的状态随时都在变化, 有时候流量大,有时候流量小,当流量大的时候,许多封包就必需在节点的队列 中等待被传送,因此每个封包从传送端到目的地端的时间不一定会相同,而这个不同的差异就是所谓的Jitter。Jitter越大,则表示网络越不稳定。量测CBR flow抖动率的代码写在 measure-jitter.awk内,具体见附录。运行方法仿照431,可得下图4:矗、r Gnuplot (window Id : 0)届 S ffl Q 电
22、?0.0150.0140.0130.0120.0110.0100090.0080.0070.0060 0050.004 L0cbrjitterseqNum图4抖动率随封包序列的变化4.3.3封包丢失率测量CBR圭寸包丢失率的代码写在measure-drop.awk内,具体见附录。运行 awk -f measure-drop.awk out.tr cbr_drop后,可在 cbr_drop 中找到如下信息:i cbr drop Mnumber of packets sent:550 lost:8lost rate ofpackets:0,01454510.1G00600,000000乩16800
23、00 + OOGOO0e.1160000,000000G.124060o,ooGoaee.1320000.0060008*146060o.oeoooee.i4saoo0.0000000,156060o,oo0ooeG.1646809 * 0000060,1720000,0000000.1800600,0000001880609.000000其中第一行表示CBR总共送出了 550个封包,丢失了 8个。第二行表示总的丢包率为0.014545。接下来的几行中,第一列表示时间,第二列表示丢包率。仿照上两例,只不不过为了利用gn uplot,要把先把前两行删除。最终可得丢包率随时间的变化如图5所示:G?
24、 Gnuplot (window id : 0)00 B Q %?图5封包丢失率随时间的变化EEJ SA204.3.4吞吐量量测CBR吞吐量的代码写在 measure-throughput.aw内,具体见附录。列 * Gnuplot (window id : 0)曲 % 3 Q ?cbr throughput1000InFBnallp00860001.522.533.544.55srmulation time图6吞吐量随时间的变化5实验结果分析从丢包率、时延、吞吐量和抖动率的变化图中,可以看出当丢包率增加时, 端到端之间的时延也在增加, 而吞吐量则下降, 丢包率、 时延和吞吐量在表示网 络性能
25、的好坏时有一定的关系。在时延的变化图中,在一刚开始的时候,由于只有 CBR 的封包,所以端到 端时延都是固定的,但在1.0秒后,网络多了 FTP的封包,这使得CBR封包和 FTP 封包必须互相的抢夺网络的资源,因此端到端时延变得不在固定,但等到 FTP 传输结束后, CBR 封包的端到端时延又变成是固定值了。在抖动率的变化图中, 抖动率产生变化的原因同时延变化的原因相同, 都是 由于 FTP 封包的加入才使得端到端时延产生变化。6附录6.1 网络拓扑仿真脚本 simulator.tcl:# 有线场景,四个节点, FTT+TCP 用蓝色表示, CBR+UDP 用红色表示set ns new Si
26、mulator#设置颜色$ns color 1 Blue$ns color 2 Redset tracefd open out.tr w$ns trace-all $tracefdset namtracefd open out.nam w$ns namtrace-all $namtracefdproc finish global ns tracefd namtracefd$ns flush-traceclose $tracefdclose $namtracefdexec nam out.nam &exit 0set n0 $ns nodeset n1 $ns nodeset n2 $ns no
27、deset 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 $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
28、 $n2 $n3 orient right $ns duplex-link-op $n2 $n3 queuePos 0.5set tcp new Agent/TCP$tcp set class_ 2$ns attach-agent $n0 $tcp set sink new Agent/TCPSink $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 set ftp new Application/FTP$ftp attach-agent $tcp$ftp set type_ FTPset udp new Age
29、nt/UDP$ns attach-agent $n1 $udpset null new Agent/Null$ns attach-agent $n3 $null$ns connect $udp $null$udp set fid_ 2set 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$ns at 0.1 $cbr start$ns at 1.0 $ftp start
30、$ns at 4.0 $ftp stop$ns at 4.5 $cbr stop#以下这一行可有可无$ns at 4.5 $ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink$ns at 5.0 finishputs CBR packet size=$cbr set packet_size_puts CBR interval=$cbr set interval_$ns run6.2 丢包率 awk处理脚本 measure-drop.awk:BEGIN dropNum = 0;totalNum = 0i= 0 ;lossratei = 0;
31、timeArri = 0;event = $1;time = $2;fromNode = $3;toNode = $4;pktType = $5;pktSize = $6;flags = $7;fid = $8;srcAddr = $9;stAddr = $10;seqNum = $11;pktId = $12;if(fromNode=1 & toNode=2 & event = +)totalNum+;timeArri=time;lossratei=(float)(dropNum/totalNum);i+;if(fid=2 & event = d)dropNum+;END printf(#n
32、umber of packet sent:%d,lost:%dn, totalNum, dropNum); printf(#lost rate of packets:%fn, dropNum/totalNum); printf(%ft%fn, timeArrj, lossratej);6.3 处理时延的 awk脚本 measure-delay.awk:BEGIN #程序初始化,设定一变量以记录目前最高处理封包的ID 。highest_packet_id = 0;action = $1;time = $2;node_1 = $3;node_2 = $4;type = $5;flow_id = $
33、8; node_1_address = $9; node_2_address = $10; seq_no = $11;packet_id = $12;#记录目前最高的 packet ID if ( packet_id highest_packet_id ) highest_packet_id = packet_id;#记录封包的传送时间 if ( start_timepacket_id = 0 ) start_timepacket_id = time;#记录CBR (flow_id=2)的接收时间if ( flow_id = 2 & action != d ) if ( action = r
34、) end_timepacket_id = time;else #把不是 flow_id=2 的封包或者是 flow_id=2 但此封包被 drop 的时间设为 -1 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 end ) printf(%f %fn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 屋面工程质量验收规范讲解
- 《英语口译》课程介绍与教学大纲
- 统编版小升初语文专项复习:修辞手法(有解析)
- 特是如何运作
- 统编版八年级语文下册名著梳理与整合【学生版】
- 荔枝吃法有哪些
- 老年人地震教育知识培训课件
- 赏析小说形象(知识清单)-2026年高考语文一轮复习原卷版
- 生于忧患死于安乐-中考语文复习古诗文专项讲义(原卷版)
- 老年人保护胃课件
- 2025-2030年再生铝行业市场现状供需分析及投资评估规划分析研究报告
- Unit 3 Same or Different?Section A 课件 人教版英语八年级上册
- 智能仓储物流管理平台的设计与开发
- 2025上海戏剧学院辅导员考试试题及答案
- 中国热射病诊断与治疗指南(2025版)
- 眼科患者的体位管理
- 物流中级考试试题及答案
- 2025年中国大白菜市场调查研究报告
- 小学一年级100以内加减法练习题3000道
- 木制棺木项目可行性研究报告
- 2023年高考生物试卷(福建)(答案卷)
评论
0/150
提交评论