数据通信实验报告.docx

上传人:夺命阿水 文档编号:639589 上传时间:2023-09-19 格式:DOCX 页数:26 大小:305.92KB
返回 下载 相关 举报
数据通信实验报告.docx_第1页
第1页 / 共26页
数据通信实验报告.docx_第2页
第2页 / 共26页
数据通信实验报告.docx_第3页
第3页 / 共26页
数据通信实验报告.docx_第4页
第4页 / 共26页
数据通信实验报告.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据通信实验报告.docx》由会员分享,可在线阅读,更多相关《数据通信实验报告.docx(26页珍藏版)》请在课桌文档上搜索。

1、电子科技大学实验报告实验一NS2的基础使用NS2是一种提供虚拟环境进行网络摹拟仿真,能验证网络性能的正确性和进行相关性能 测试的软件。一、实验环境:Ubuntu 12.04/kernel 3.5GCC 4.6.3NS-2.33二、网络拓扑:实验共有6个节点,每一个节点的连接情况如图所示。其中节点NO、N2和节点Nk N2 连 接,N3、M和N4、N5连接,N2和N3连接。从0号节点到2号节点,带宽为2Nh延时为 IOmSo 。 Z 三、实践步骤:切换到用户根目录下Cd Z建立自己的文件夹mkdir your document name进入刚刚新建的文件夹Cd your_document_nam

2、e新建一个 TCL 脚本文件 gedit your_TCL_f i 1 e_name. tcl# Here is the beginning of this code fileset val (stop) 5. 0 ;#摹拟器结束时间# 新建一个NS摹拟对象set ns new Simulator# 打开NS追踪文件set tracefile open out. tr w$ns trace-all Stracefile# 打开NAM追踪文件 set namfile open out. nam w $ns namtrace-all Snamfile# 新建6个节点set n $ns nodese

3、t nl $ns nodeset n2 $ns nodeset n3 $ns nodeset n4 $ns nodeset n5 $ns node# 建立节点之间的链路,格式解释如下ftduple-link 双向链路可选选项(duplexTink, SimpleTink 单向链 路)# $n0 $n2表明从0号节点到2号节点# 2. OMb申明链路传输速率,可使用Mb, Kb, b# 1OmS申明链路传输延迟# DrOPTail队列类型$ns queue-limit $n0 $n2 10$ns$nsduplex-link queue-limit$nl $n2 2. OMb $nl $n2 10

4、IOms$ns$nsduplex-link queue-limit$n4 $n3 2. OMb$n4 $n3 10IOms$ns$nsduplex-link queue-limit$n3 $n2 1.0Mb $n3 $n2 1020ms$ns $nsduplex-link queue-limit$n3 $n5 2. OMb$n3 $n5 10IOms$ns duplex-link $n0 $n2 2. OMb IOms DropTail#申明链路队列长度DropTailDropTailDropTailDropTail#为NAM创建节点位置描述,以第一个为例,2号节点在0号节点的右下 方$ns

5、duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $nl $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 udp new gentUDP# 将0号节点Agent/UDP绑定,以下类似$ns attach-agent $n0 $udpOset null2 new

6、Agent/Nul1$ns attach-agent $n4 $null2# 将Agent/UDP及Agent/Null节点进行连接$ns connect $udpO $nul12# 设置Agent/UDP包大小$udpO set packetSize_ 1500# 新建另一个UDP连接set udpl new Agent/UDP$ns attach-agent $nl $udplset null3 new Agent/Null$ns attach-agent $n5 $null3$ns connect $udpl $nul13$udpl set packetSize_ 1500# 在UDP连

7、接上新建一个CBR应用set cbr new pplicationTrafficCBR$cbr0 attach-agent $udp0$cbr0 set packetSize_ 1500$cbr0 set rate_ 1. OMb$cbr0 set random_ null# 在第1秒,ScbrO服务开始发送$ns at 1.0 $CbrO start”# 在第4秒,$Cbro服务住手发送$ns at 4. 0 zzScbrO stop”# 在UDP连接上新建一个CBR应用set cbrl new App1ication/TrafficCBR$cbrl attach-agent $udpl$c

8、brl set packetSize_ 1500$cbrl set rate_ 1. OMb$cbrl set random_ null $ns at 2. 0 zzScbrl startz, $ns at 3. 0 $CbrI stop”# 定义一个finish,过程用以处理摹拟结束之后需要完成的动作 proc finish ) # 申明使用外部变量global ns tracefile namfile val$ns at $val (stop) $ns nam-end-wire 1 ess $val (stop)zz# 清空追踪区域 $ns flush-trace# 关闭trace文件 c

9、lose Stracefile# 关系nam文件 close Snamfile# 执行系统命令nam out. nam exec nam out. nam & exit 0)# 在VaI(StOP)时间调用finish过程$ns at $val(stop) “finish”$ns at $val (stop) ,zputs done” ; $ns halt”# 启动ns$ns run保存退出,在当前目录下,使用ns your TCL file name. tcl四、实践数据及分析结果:2/7图一(开始传输数据)4/7图二(开始发生丢包)图三(节点1住手发送数据)6/7图四(节点5住手接收数据)

10、7/7图五(节点。住手发送数据)五、实验结论通过这次实验,我学会了在LINUX系统上安装NS2,同时更直观的理解了一 旦发生丢包后,节点会等到队列中的数据发送完后才会接受新的数据包。电子科技大学实验报告实验二实验二TCP性能仿真实验一、网络拓扑:三个节点:NO、NL N2,节点NO和N1相连,N1和N2相连工网络配置:TCP协议三、实验环境:Ubuntu 12. 04/kernel 3.5GCC 4. 6. 3NS-2. 33四、实践步骤:修改tcp. CC代码Gedit ns-allinone-2. 33ns-2. 33/tcp/tcp. cc(将窗口阈值一半变为的窗口阈值1/3wt_tcp

11、l.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 );/ ssthres

12、h_ = 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_ average. tr$grep Z/Q,Z redQueue.tr current.tr用文本编辑工具新建一个awk文件Gedit your_awk_file_name_l.awk加入以下代码

13、(注意必须有大括号,否则报错):(print $2,$3 average_xg.tr )用文本编辑工具新建一个awk文件Gedit your_awk_file_name_2.awk加入以下代码:(print $2,$3 current_xg.tr)分别调用对应awk程序处理对应文件,例如:Gawk -f your_awk_file_name.awk average.tr得到 average_xg.tr 文件最后使用XgraPh工具对average_xg.tr, CUfTent_xg.tr进行解析得到图象。4,计算丢包率用文本编辑器新建一个awk文件并加入以下代码:#程序初始化BEGINdrop

14、Num=0;totalNum=0;i=0;(event = $1;time = $2;fromNode - $3;toNode = $4;pktType = $5;pktSize = $6;flags = $7;fid = $8;srcAddr = $9;dstAddr = $10;seqNm = $11;pktld = $12;if(fromNode =1 & toNode =2 & event =+)(totalNum+;#记录时间timeArri=time;#计算丢包率Iossratef i=(float)(dropNumtotalNum);i+;)if (fid - 2 & event

15、= d) dropNum +;)ENDprintf(#number of packet sent%d,lost%dn,totalNum,dropNum);printf(#lost rate of packets%fn,dropNumtotalNum);for(j=0;jhighestPktld)KighestPktId= pktld;#设置分组开始时间if(beginTime(pktld=O)beginTimepktld=time;#计算结束时间if(fid=2 & event!=d,)if(event=,r)endTimepktld=time; elseendTimepktld=-l;)EN

16、Dfor(pktld=0;pktld=highestPktld;pktld+)(#计算延迟begin=begiTimepktld;end=endTimepktld;pktDuration=end-begin;if(beginend)printf(%ft%nbegin,pktDuration);)用命令查看结果Gawk fyour_awk_file_name.awk out. tr6,计算吞吐量用文本编辑器新建一个awk文件加入以下代码:SthroughputBEGINfag=O;i=0;)(event = $1;time = $2;fromNode = $3;toNode = $4;pktTy

17、pe = $5;pktSize = $6;flags = $7;fid = $8;SrcAddr = $9;dstAddr = $10;seqNum = $11;pktld = $12;if(event=r & fromNode=2 & toNode=3 & fid=2)#计算当前总流量pktSmi+l=pktSumi+pktSize;if(flag=O) beginTime=time;fag=l;endTimei=time;i+;)ENDPrintf(%.6ft%5fr,endTime0,O);for(j=l;ji;j+)#计算并输出网络吞吐率throughput=(float)pktSum

18、j(endTimej-beginTime)* 8/1000;printf(%.6ft%.5fn,endTimej,throughput);)printf(%.6ft%.5fndTime(i-l,0);)用命令查看结果Gawk fyour_awk_file_name.awk out.tr四、实验数据及分析结果:WTnii工IlIIulJUIlhIHleIIiiiin,i” ;lln,IIIHlII而IllJlHIijIHIHiwM幽IILI疝川疝8f!Ikgd里划岛!血!而”小牌4|1晶帆IIMMjlraIIPl血!疝Hl油川遍IiIIIl油IlHillllel血I川 IllIIl加Il440-am M Miiiiiii iiIH M IlHUl n NII Il N INlHl J M Il Jl n IR IllMll L IRMMl Il mill lk IRHI Jll R llllllll IIHII INllHIOIIllll IRlIl III 五、实验结论本实验使用文本处理工具gwak对仿真生成的trace文件进行解析,学会了不少平时课堂上 学不到的东西,最后感谢老师。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号