- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HUNAN CITY UNIVERSITY
NS2网络模拟编程报告
模拟题目: 基于NS2的TCP建模与仿真
专 业: 网络工程
学生姓名: 伍支庆
班级学号: 1206101-24
2015年 11 月 6 日
模拟目的
1.学会NS2的安装过程,并熟悉NS2的环境;
2.观察并解释NAM动画,分析Trace文档。
3.学会用awk和gnuplot分析吞吐量、封包延迟、抖动率和封包丢失率。
模拟环境
本实验中编写的脚本simulator.tcl见附录一。实际模拟的网络结构图如图2所示。包含4个node,各节点之间都是以全双工的链路相连。n0和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的NULL。
仿真结束后,会产生两个档案,一个是out.nam,这是给NAM用的,用来把仿真的过程用可视化的方式呈现出来,这可以让我们很直观的方式去了解封包传送是如何从来源端送到接收端。另一个档案是out.tr,这个档案记录了仿真过程中封包传送中所有的事件,例如第一笔记录是一个CBR的封包,长度为1000bytes,在时间0.1秒的时候,从n1传送到n2。
模拟过程
封包延迟
测量CBR封包端点到端点间延迟时间的程序写在measure-delay.awk中。measure-delay.awk的具体代码查看附录。
在终端输入如下命令:
gawk -f measure-delay.awk out.tr cbr_delay
此指令将运行结果存储到cbr_delay文件中,以便进行绘图。
接着输入gnuplot,得到下图
接着按下图输入,为接下来要画的时延图做标识:
运行上图最后一条指令后得到图3:
抖动率就是延迟时间变化量delay variance,由于网络的状态随时都在变化,有时候流量大,有时候流量小,当流量大的时候,许多封包就必需在节点的队列中等待被传送,因此每个封包从传送端到目的地端的时间不一定会相同,而这个不同的差异就是所谓的Jitter。Jitter越大,则表示网络越不稳定。
量测CBR flow抖动率的代码写在measure-jitter.awk内,具体见附录。
运行方法仿照4.3.1,可得下图4:
封包丢失率
测量CBR封包丢失率的代码写在measure-drop.awk内,具体见附录。
运行awk -f measure-drop.awk out.tr cbr_drop后,可在cbr_drop中找到如下信息:
其中第一行表示CBR总共送出了550个封包,丢失了8个。第二行表示总的丢包率为0.014545。接下来的几行中,第一列表示时间,第二列表示丢包率。
仿照上两例,只不不过为了利用gnuplot,要把先把前两行删除。最终可得丢包率随时间的变化如图5所示:
吞吐量
量测CBR吞吐量的代码写在measure-throughput.awk内。
4.模拟源代码
# 有线场景,四个节点,FTT+TCP用蓝色表示,CBR+UDP用红色表示
set ns [new Simulator]
#设置颜色
$ns color 1 Blue
$ns color 2 Red
set tracefd [open out.tr w]
$ns trace-all $tracefd
set namtracefd [open out.nam w]
$ns namtrace-all $namtracefd
proc finish {} {
global ns tracefd namtracefd
$ns flush-trace
close $tracefd
close $namtracefd
exec nam out.nam
exit 0
}
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns dupl
文档评论(0)