使用NSG进行有线网络仿真_第1页
使用NSG进行有线网络仿真_第2页
使用NSG进行有线网络仿真_第3页
使用NSG进行有线网络仿真_第4页
使用NSG进行有线网络仿真_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、使用NSG进行有线网络仿真1 ubuntu密码 1234562实验目标和要求1 熟悉NS2环境,学会使用NS2工具进行仿真实验2 使用NSG进行有线网络仿真3观察并解释NAM动画,分析trace文档。4 分析模拟结果。学会使用awk和gnuplot分析端到端的延迟。3实验步骤仿真的环境如图所示:图1 有线网络拓扑( 转到NSG目录下,启动NSG。cd /home/susan/Desktop/ns-allinone-2.34/ns-2.34/bookjava jar NSG2.1.jar )Step 1: 新增一个有线网络的剧本,使用者可以透过ScenarioNew wired scenario

2、来建立(或按下快速键Ctrl+W),建立后如图2所示,在预设的情况下NSG会切换到Node mode(Node按钮会变成灰色),也就是说使用者一开始便可建立Node。图2 新增一个有线网络的剧本Step 2: 开始建立剧本所需要的Node,利用鼠标直接点选想要摆放Node的位置以建立Node,在此范例中建立的六个Node其相对位置如图3,可透过调整画面右下方的横杆显示不同的比例。图3 设定好六个node相关位置Step 3: 设定Node之间的链路,首先切换到Link mode(按下Link按钮或快速键Ctrl+3),然后依序将下列的参数设定好。Link-type:duplex-linkQue

3、ue type:DropTailCapacity:2MbpsPropagation delay:10msQueue size:10Step 4: 以鼠标点选的方式将n0-n2、n1-n2、n3-n4及n3-n5之间的链路建立起来,接着将Capacity设定为1Mbps,Propagation delay设定为20ms,然后再建立n2-n3间的链路,建立好后如图4所示,如果建立的过程中有参数没设定好,也可以在链路上按下鼠标右键进行修改。图4 设定好六个node之间的链路Step 5: 接着切换到Agent mode(按下Agent按钮或快速键Ctrl+4)来进行通讯协议的设定。首先选取Agent

4、 type为UDP并设定封包大小(Packet size)为1500 bytes,并在n0与n1上各建立一个Agent,接着选取Agent type为NULL,并在n4、n5上各建立一个NULL Agent。建立好Agent之后还要继续设定Agent之间的联机,其设定的方式是用鼠标选取要建立联机的二个Agent,在此分别在(udp0、null2)和(udp1、null3)之间建立联机,建立好之后如图5所示。图5建立AgentsStep 6: 切换到Application mode(按下Application按钮或快速键Ctrl+5)来进行上层的应用程序设定,将Application type设

5、定为CBR并设定启动时间(Start time)为1秒,结束时间(Stop time)为4秒,封包大小为1500bytes,传输速度为1Mbps,然后在n0上建立一个CBR Application,接着将启动时间(Start time)为2秒,结束时间(Stop time)为3秒,并在n1上再建立一个CBR Application,如图6。图6建立ApplicationStep7:最后,设定模拟的参数(按下Parameters钮即可或快速键Ctrl+6),在这个例子中,因为是建立有线网络的剧本,所以参数的部份只需要将模拟时间(Simulation time)设定为5.0,并且指定产生Trace

6、文件名称即可,如图7。图7设定模拟参数Step8:当一切都设定完毕之后按下TCL按钮(快速键Ctrl+7)即可产生剧本档了,每一次产生的剧本档都会被建立在一个独立的窗口,使用者这时候还可以根据自己的需求去做修正,如图8所示。图8产生剧本档Step9:按下Save按钮(快速键Alt+S)将产生出来的TCL档储存起来之后,便可交由ns2开始进行模拟,产生出来的剧本档如下。# This script is created by NSG2 beta1# #=# Simulation parameters setup#=set val(stop) 5.0 ;# time of simulation en

7、d#=# Initialization #=#Create a ns simulatorset ns new Simulator#Open the NS trace fileset tracefile open out.tr w$ns trace-all $tracefile#Open the NAM trace fileset namfile open out.nam w$ns namtrace-all $namfile#=# Nodes Definition #=#Create 6 nodesset n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset

8、n3 $ns nodeset n4 $ns nodeset n5 $ns node#=# Links Definition #=#Createlinks between nodes$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail$ns queue-limit $n0 $n2 10$ns duplex-link $n2 $n1 2.0Mb 10ms DropTail$ns queue-limit $n2 $n1 10$ns duplex-link $n4 $n3 2.0Mb 10ms DropTail$ns queue-limit $n4 $n3 10$ns

9、 duplex-link $n3 $n5 2.0Mb 10ms DropTail$ns queue-limit $n3 $n5 10$ns duplex-link $n2 $n3 1.0Mb 20ms DropTail$ns queue-limit $n2 $n3 10#Give node position (for NAM)$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n2 $n1 orient left-down$ns duplex-link-op $n4 $n3 orient left-down$ns du

10、plex-link-op $n3 $n5 orient right-down$ns duplex-link-op $n2 $n3 orient right#=# Agents Definition #=#Setup a UDP connectionset udp0 new Agent/UDP$ns attach-agent $n0 $udp0set null2 new Agent/Null$ns attach-agent $n4 $null2$ns connect $udp0 $null2$udp0 set packetSize_ 1500#Setup a UDP connectionset

11、udp1 new Agent/UDP$ns attach-agent $n1 $udp1set null3 new Agent/Null$ns attach-agent $n5 $null3$ns connect $udp1 $null3$udp1 set packetSize_ 1500#=# Applications Definition #=#Setup a CBR Application over UDP connectionset cbr0 new Application/Traffic/CBR$cbr0 attach-agent $udp0$cbr0 set packetSize_

12、 1500$cbr0 set rate_ 1.0Mb$cbr0 set random_ null$ns at 1.0 $cbr0 start$ns at 4.0 $cbr0 stop#Setup a CBR Application over UDP connectionset cbr1 new Application/Traffic/CBR$cbr1 attach-agent $udp1$cbr1 set packetSize_ 1500$cbr1 set rate_ 1.0Mb$cbr1 set random_ null$ns at 2.0 $cbr1 start$ns at 3.0 $cb

13、r1 stop#=# Termination #=#Define a finish procedureproc finish global ns tracefile namfile $ns flush-trace close $tracefile close $namfile exec nam out.nam & exit 0$ns at $val(stop) $ns nam-end-wireless $val(stop)$ns at $val(stop) finish$ns at $val(stop) puts done ; $ns halt$ns runNSG所产生出来的剧本档会自动启动N

14、AM来呈现模拟的过程,如图9所示。图94 仿真结果分析End-to-end delay Step1: 在原程序下,编写awk代码。sudo gedit measure_delay.awk代码如下:# 这是测量CBR包端到端延迟的awk程序BEGIN#程序初始化,设置一变量记录目前最高处理包的idhighest_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;# 记录目

15、前最高的packet idif (packet_id highest_packet_id )highest_packet_id = packet_id;#记录包传送时间if ( start_timepacket_id=0)start_timepacket_id = time;#记录CBR (flow_id =0)的接收时间if (flow_id = 0 & action != d)if ( action = r )end_timepacket_id = time;else#设置flow_id不是0的包或者是0但是被drop的时间为-1end_timepacket_id = -1;END#当数据

16、行全部读完后,开始计算有效包的端到端的延迟时间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_delay 将结果输出存到cbr_delay文件中。Step3: 启用gnuplot,直接输入 gnuplotplot “cbr_delay”,显示结果。附1 NSG简介NSG是一个专为ns2所设计的

17、剧本产生器,目前最新的版本为第二版(NSG2),和前一版(NSG1)比较起来最大的不同在于NSG2除了原本支持的无线网络之外还支持有线网络的剧本,以下列出NSG2主要的功能及支持ns2的对象种类 1.产生有线网络及无线网络的剧本(目前尚不支持无线及有线混合的剧本)2.支持的Node种类WirelessNode及WiredNode3.支持WirelessNode的移动设定4.支持的Link种类Duplex-link及Simplex-link 5.Agent支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、TCP/Vegas、TCPSink(TCP的三个版本,根据拥塞控制

18、机制来划分)、UDP及NULL) 6.支持的Application种类:CBR及FTP7.支持的Routing protocol种类DSDV、DSR、AODV及TORA8.支持的Queue种类DropTail、RED、FQ、DRR、SFQ及CBQ9.无线网络相关设定10.802.11参数设定(NSG提供一组802.11b的预设参数)CBR:constant bit rate,固定传输速率。固定码率(英文constant bit rate,缩写CBR)。这是一个用来形容通信服务质量(QoS,Quality of Service)的术语。和该词相对应的词是可变码率或可变比特率(英文variable

19、 bit rate,缩写VBR)。 当形容编解码器的时候,CBR编码指的是编码器的输出码率(或者解码器的输入码率)应该是固定制(常数)。当在一个带宽受限的信道中进行多媒体通讯的时候CBR是非常有用的,因为这时候受限的是最高码率,CBR可以更好的易用这样的信道。但是CBR不适合进行存储,因为CBR将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降),同时在简单的内容部分会浪费一些码率。 大部分编码方案的输出都是可变长的码字,例如霍夫曼编码或者游程编码(run-length coding),这使得编码器很难做到完美的CBR。编码器可以通过调整量化(进而调整编码质量)来部分的解决这个问题

20、,如果同时使用填充码来完美的达到CBR。(有时候,CBR也指一种非常简单的编码方案,比如将一个16位精度的音频数据流通过抽样得到一个8位精度的数据流)ftp: FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。作业写一个简单的awk程序,分析丢包率。BEG

温馨提示

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

评论

0/150

提交评论