资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验一 NS2的基本使用一. 实验室名称:主楼A2412二 实验目的: 熟悉NS模拟软件的基本使用措施。 熟悉ubuntu的操作命令和Linux桌面环境下编辑器的使用。三. 实验原理: NS模拟传播层的UDP合同的工作四, 实验环境 Ubuntu 12.04/kernel 3.5GCC 4.6.3NS-2.33五 实验环节 使用熟悉的Linux桌面环境下的编辑器(一般使用例如VIM, Gedit),新手推荐使用Gedit。如下例子以使用Gedit为准。切换到顾客根目录下 cd 建立自己的文献夹 mkdir your_document_name进入刚刚新建的文献夹cd your_document_name新建一种TCL脚本文献 gedit your_TCL_file_name.tcl将如下代码复制粘贴到你的文献中:#Here is the beginning of this code file set val(stop) 5.0 ;# 模拟器结束时间#新建一种NS模拟对象set ns new Simulator#打开NS追踪文献set tracefile open out.tr w$ns trace-all $tracefile#打开NAM追踪文献set namfile open out.nam w$ns namtrace-all $namfile#新建6个节点set n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset n3 $ns nodeset n4 $ns nodeset n5 $ns node#建立节点之间的链路,格式解释如下#duplex-link 双向链路 可选选项(duplex-link,simple-link 单向链路)#$n0 $n2 表白从0号节点到2号节点#2.0Mb 声明链路传播速率,可使用Mb,Kb,b#10ms 声明链路传播延迟#DropTail 队列类型$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail#声明链路队列长度$ns queue-limit $n0 $n2 10$ns duplex-link $n1 $n2 2.0Mb 10ms DropTail$ns queue-limit $n1 $n2 10$ns duplex-link $n4 $n3 2.0Mb 10ms DropTail$ns queue-limit $n4 $n3 10$ns duplex-link $n3 $n2 1.0Mb 20ms DropTail$ns queue-limit $n3 $n2 10$ns duplex-link $n3 $n5 2.0Mb 10ms DropTail$ns queue-limit $n3 $n5 10#为NAM创立节点位置描述,以第一种为例,2号节点在0号节点的右下方$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n4 $n3 orient left-down$ns duplex-link-op $n3 $n2 orient left$ns duplex-link-op $n3 $n5 orient right-down#新建一种UDP连接set udp0 new Agent/UDP#将0号节点Agent/UDP绑定,如下类似$ns attach-agent $n0 $udp0set null2 new Agent/Null$ns attach-agent $n4 $null2#将Agent/UDP及Agent/Null节点进行连接$ns connect $udp0 $null2#设立Agent/UDP包大小$udp0 set packetSize_ 1500#新建另一种UDP连接set 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#在UDP连接上新建一种CBR应用set cbr0 new Application/Traffic/CBR$cbr0 attach-agent $udp0$cbr0 set packetSize_ 1500$cbr0 set rate_ 1.0Mb$cbr0 set random_ null#在第1秒,$cbr0 服务开始发送$ns at 1.0 $cbr0 start#在第4秒,$cbr0 服务停止发送$ns at 4.0 $cbr0 stop#在UDP连接上新建一种CBR应用set 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 $cbr1 stop#定义一种finish过程用以解决模拟结束之后需要完毕的动作proc finish #声明使用外部变量global ns tracefile namfile val $ns at $val(stop) $ns nam-end-wireless $val(stop)#清空追踪区域$ns flush-trace #关闭trace文献close $tracefile#关系nam文献close $namfile#执行系统命令nam out.nam exec nam out.nam & exit 0#在val(stop)时间调用finish过程$ns at $val(stop) finish$ns at $val(stop) puts done ; $ns halt#启动ns$ns run保存退出,在目前目录下,使用ns your_TCL_file_name.tcl观测仿真过程六 实验成果及数据分析网络拓扑构造图和数据传播图:由实验代码可知:实验通过NS模拟软件建立了六个节点,各节点均采用全双工形式,两条UDP连接(数据发送方向如图),0-2,1-2,4-3,5-3的链路速率均为2.0Mb,延迟10ms,DropTail队列形式,而2-3的链路速率只有1.0Mb,延迟10ms,DropTail队列形式。数据包包的大小为1500字节,传播速率为1.0Mb。具体流程截图如图:n0通过udp0向n4开始发送数据n2通过udp1向n5发送数据:由于在节点n2出数据传进的速率不小于传出的速率,发生丢包:n1发送数据停止,丢包现象消失:n0发送数据停止,流程结束:七 新的发现在代码中修改n2-n3的数据链路的速率,可以避免丢包现象的发生。因素是,通过增大n2-n3的传播速率可以使n2节点的数据传出速率不小于传进速率,这样数据就可以不久的被转发,从而不会因数据传出过慢而产生排队,进而丢包的现象。实验二 TCP性能仿真实验一 实验室名称:主楼A2412 二实验目的: 复习TCP有关性能知识;实现TCP性能仿真实验在NS上三. 实验原理:NS仿真TCP/IP的工作原理和工作方式。四, 实验环境 Ubuntu 12.04/kernel 3.5GCC 4.6.3NS-2.33五 实验环节修改tcp.cc代码Gedit /ns-allinone-2.33/ns-2.33/tcp/tcp.cc(将窗口阈值一半变为的窗口阈值1/3wt_tcp1.cc)第一处:if (cwnd_ ssthresh_) slowstart = 1; if (precision_reduce_) /halfwin = windowd() / 2;/halfwin = windowd() / 3;第二处: else int temp;/temp = (int)(window() / 2);/temp = (int)(window() / 3);halfwin = (double) temp;第三处:switch (how) case 0:/* timeouts */ssthresh_ = int( window() / 2 );/ssthresh_ = int( window() / 3 );if (ssthresh_ 2)ssthresh_ = 2;cwnd_ = int(wnd_restart_);break;case 1:第到处case 4:/* Tahoe dup acks */ssthresh_ = int( window() / 2 );/ssthresh_ = int( window() / 3 );if (ssthresh_ 2)ssthresh_ = 2;cwnd_ = 1;break;default:abort();返回ns根目录 执行./install 执行安装(此时间较长,请耐心等待)参照实验1代码,编写tcl代码,实现一种简朴的3节点,2条链路的网络网络如下图这个是该网络构造相应代码set val(stop) 5.0set ns new Simulator#设立用XGRAPH软件打开的跟踪文献,一般可以一条完整链路相应一种文献set f0 open out.tr wset tracefd open wired.tr w$ns trace-all $tracefdset nf open wired.nam w$ns namtrace-all $nf#record过程用以记录仿真过程,然后通过使用XGRAPH画图软件来体现proc record global sink f0set ns Simulator instance#设立通过多少时间再次调用该过程set time 0.5#计数sink节点接受了多少数据 set bw $sink set bytes_ #设立目前时间set now $ns
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号