ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:492.42KB ,
资源ID:8567813      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8567813.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据通信实验电子科技大学.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据通信实验电子科技大学.docx

1、数据通信实验电子科技大学数据通信实验-电子科技大学 实验一 NS2的基础使用1. 实验室名称:主楼A24122实验目的: 熟悉NS模拟软件的基本使用方法。 熟悉ubuntu的操作命令和Linux桌面环境下编辑器的使用。三. 实验原理: NS模拟传输层的UDP协议的工作四, 实验环境 Ubuntu 12.04/kernel 3.5 GCC 4.6.3 NS-2.33五 实验步骤 使用熟悉的Linux桌面环境下的编辑器(通常使用例如VIM, Gedit),新手推荐使用Gedit。以下例子以使用Gedit为准。切换到用户根目录下 cd 建立自己的文件夹 mkdir your_document_nam

2、e进入刚刚新建的文件夹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

3、 $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#申明链路队列

4、长度$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 $n

5、5 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绑定,

6、以下类似$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 $udp

7、1 $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

8、/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-t

9、race #关闭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模拟软件建立了六个节点,各节点均采用全双工形

10、式,两条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发送数据停止,流程结束:7新的发现在代码中修改n2-n3的数据链路的速率,可以避免丢包现象的发生。原因是,通过增大n2-n3的传输速率可以使n2节点的数据传出速率

11、大于传进速率,这样数据就可以很快的被转发,从而不会因数据传出过慢而产生排队,进而丢包的现象。实验二 TCP性能仿真实验一 实验室名称:主楼A2412 二实验目的: 复习TCP相关性能知识;实现TCP性能仿真实验在NS上三. 实验原理:NS仿真TCP/IP的工作原理和工作方式。四, 实验环境 Ubuntu 12.04/kernel 3.5 GCC 4.6.3 NS-2.33五 实验步骤修改tcp.cc代码 Gedit /ns-allinone-2.33/ns-2.33/tcp/tcp.cc(将窗口阈值一半变为的窗口阈值1/3wt_tcp1.cc)第一处:if (cwnd_ ssthresh_)

12、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 );

13、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代码,实现一个简单的

14、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 instanc

15、e#设置经过多少时间再次调用该过程set time 0.5#计数sink节点接受了多少数据 set bw $sink set bytes_ #设置当前时间set now $ns now#计算网络流量并写入文件中puts $f0 $now expr $bw/$time*8/1000000#重置计数器$sink set bytes_ 0#循环调用该过程 $ns at expr $now+$time record $ns at 0.0 recordproc finish global ns tracefd nf val f0 $ns at $val(stop) $ns nam-end-wireles

16、s $val(stop) $ns flush-trace close $f0 close $tracefd close $nf exec nam wired.nam & exit 0set n0 $ns nodeset n1 $ns nodeset n2 $ns node$ns duplex-link $n0 $n1 2Mb 10ms DropTail$ns duplex-link $n1 $n2 2Mb 10ms DropTail$ns queue-limit $n0 $n1 10$ns queue-limit $n1 $n2 10$ns duplex-link-op $n0 $n1 ori

17、ent right$ns duplex-link-op $n1 $n2 orient rightset tcp new Agent/TCP$ns attach-agent $n0 $tcpset sink new Agent/TCPSink$ns attach-agent $n2 $sink$ns connect $tcp $sinkset ftp new Application/FTP$ftp attach-agent $tcp$ns at 0.5 $ftp start$ns at 4.5 $ftp stop$ns at $val(stop) finish$ns at $val(stop)

18、puts done ; $ns halt$ns run保存并返回在当前目录调用ns your_TCL_file_name.tcl 观察nam效果在当前目录调用graph out.tr -geometry 800x400 用Xgraph软件观察仿真过程六 实验结果及数据分析网络拓扑结构和数据传输图:由实验代码可知:实验通过NS模拟软件建立了三个节点,各节点均采用全双工形式,一条TCP连接(数据发送方向如图),0-1,1-2的链路速率均为2.0Mb,延迟10ms,DropTail队列形式。具体流程截图如图:tcp连接启动,进入慢启动过程:慢启动阶段,拥塞窗口大小指数增长:达到阈值,拥塞窗口大小线性

19、增长:整个过程中的网络流量如图:实验三 数据通信NS2仿真实验一 实验室名称:主楼A2412 二实验目的: 掌握网络设计的基本方法,设计出所要求的网络结构并实现相关功能。三. 实验原理:请按照以下要求,根据上次实验的代码,设计一个网络拓扑,并用NAM(能用XGRAPH分析更好)查看网络流量变化并分析结果。要求如下:网络包含4个node,各节点之间都是以全双工的链路相连(duplex-link)。n0和n2之间链路的带宽为2Mbps,延迟为10ms,为DropTail队列方式;n1和n2之间链路带宽为2Mbps,延迟为10ms,也为DropTail队列方式;n2和n3之间链路的带宽为1.7Mbp

20、s,延迟为20ms,为RED方式(将DropTail替换成为RED)。n0处有一个FTP的TCP流量产生器,n1处为CBR的UDP流量产生器,n3有一个接收TCP的sink和接收UDP的NULL。节点间位置关系如下图:四, 实验环境 Ubuntu 12.04/kernel 3.5 GCC 4.6.3 NS-2.33五 实验步骤相关代码如下:代码:set val(stop) 5.5set ns new Simulator$ns color 1 Blue$ns color 2 Red#设置用 XGRAPH 软件打开的跟踪文件,通常可以一条完整链路对应一个文件set f0 open out.tr w

21、set 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 now#计算网络流量并写入文件中puts $f0 $now

22、 expr $bw/$time*8/1000000#重置计数器$sink set bytes_ 0#循环调用该过程$ns at expr $now+$time record$ns at 0.0 recordproc finish global ns tracefd nf val f0$ns at $val(stop) $ns nam-end-wireless $val(stop)$ns flush-traceclose $f0close $tracefdclose $nfexec nam wired.nam &exit 0#新建 4 个节点set n0 $ns nodeset n1 $ns n

23、odeset n2 $ns nodeset n3 $ns node$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail$ns duplex-link $n1 $n2 2.0Mb 10ms DropTail$ns duplex-link $n2 $n3 1.7Mb 20ms RED$ns queue-limit $n1 $n2 10$ns queue-limit $n0 $n2 10$ns queue-limit $n2 $n3 10$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n

24、1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient right#UDP连接set udp new Agent/UDP$ns attach-agent $n1 $udpset null new Agent/Null$ns attach-agent $n3 $null$ns connect $udp $null$udp set packetSize_ 1500$udp set fid_ 2#CBR应用#在 UDP 连接上新建一个 CBR 应用set cbr new Application/Traffic/CBR$cbr attach-age

25、nt $udp$cbr set packetSize_ 1500$cbr set rate_ 1.0Mb$cbr set random_ null#在第 1 秒,$cbr0 服务开始发送$ns at 1.0 $cbr start#在第 4 秒,$cbr0 服务停止发送$ns at 4.0 $cbr stop#TCP连接set tcp new Agent/TCP$ns attach-agent $n0 $tcpset sink new Agent/TCPSink$ns attach-agent $n3 $sink$ns connect $tcp $sink$tcp set fid_ 1#FTP应

26、用set ftp new Application/FTP$ftp attach-agent $tcp$ns at 0.5 $ftp start$ns at 4.5 $ftp stop$ns at $val(stop) finish$ns at $val(stop) puts done ; $ns halt$ns runns _3.tcl六 实验结果集数据分析网络拓扑结构和数据传输图:由实验代码可知:实验通过NS模拟软件建立了4个节点,各节点均采用全双工形式,一条TCP连接一条UDP连接(数据发送方向如图),0-1,1-2的链路速率均为2.0Mb,延迟10ms,DropTail队列形式,而2-3

27、的链路速率只有1.7Mb,延迟20ms,RED队列形式。udp数据包大小1500字节,发送速率为1.0Mb。具体流程截图如图:tcp连接发送数据:n2节点堵塞,发生丢包,进行流量控制:udp发送数据,n2节点堵塞,发生丢包:tcp拥塞控制,乘性减:整个阶段,网络流量如图,与上面的过程分析相符:7新的发现 TCP协议能通过拥塞控制,流量控制和分组重传等机制,来实现可靠的数据传输服务,通过观察nam可以看出,每个TCP数据报文后面都会有接收方返回的一个ACK报文,而对于不可靠数据传输的UDP协议,则接收方不会想发送方返回一个确认报文。TCP与UDP的区别可见一斑。实验四 数据通信NS2仿真实验一

28、实验室名称:主楼A2412 二实验目的: 掌握网络设计的基本方法,设计出所要求的网络结构并实现相关功能。 三. 实验原理: 本实验使用文本处理工具gwak对仿真生成的trace文件进行解析,处理,然后用 以画图或者数据分析网络的实时情况。四, 实验环境 Ubuntu 12.04/kernel 3.5 GCC 4.6.3 NS-2.33五 实验步骤1, 使用文本编辑工具(例如gedit,vim)新建tcl文本文件Gedit yout_tcl_file_name.tcl2, 复制一下代码到你的tcl文件中:set ns new Simulator$ns color 1 Blue$ns color

29、2 Redset nf open out.nam w$ns namtrace-all $nfset nd open out.tr w$ns trace-all $ndproc finish global ns nf nd$ns flush-traceclose $nfclose $ndexec nam out.nam &exit 0set 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 RED$ns queue-limit $n2 $n3 100$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1