网络协议模拟分析Word文档格式.docx

上传人:b****3 文档编号:7201765 上传时间:2023-05-08 格式:DOCX 页数:10 大小:69.83KB
下载 相关 举报
网络协议模拟分析Word文档格式.docx_第1页
第1页 / 共10页
网络协议模拟分析Word文档格式.docx_第2页
第2页 / 共10页
网络协议模拟分析Word文档格式.docx_第3页
第3页 / 共10页
网络协议模拟分析Word文档格式.docx_第4页
第4页 / 共10页
网络协议模拟分析Word文档格式.docx_第5页
第5页 / 共10页
网络协议模拟分析Word文档格式.docx_第6页
第6页 / 共10页
网络协议模拟分析Word文档格式.docx_第7页
第7页 / 共10页
网络协议模拟分析Word文档格式.docx_第8页
第8页 / 共10页
网络协议模拟分析Word文档格式.docx_第9页
第9页 / 共10页
网络协议模拟分析Word文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

网络协议模拟分析Word文档格式.docx

《网络协议模拟分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《网络协议模拟分析Word文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

网络协议模拟分析Word文档格式.docx

课程设计目的

掌握网络模拟工具NS2的使用,学习基本的网络模拟方法。

二、 

课程设计内容

协议模拟

工具:

NS2,awk,shell,perl等;

要求:

掌握NS2网络模拟的基本流程;

内容:

NS2网络模拟基本流程

编写TCL脚本,搭建如下图所示的一个网络,共6个节点,其中2、3节点用做ftp服务器和客户端,4、5节点用做cbr流量的源和目的,而0、1节点用做转发设备。

各节点间的链路属性见图。

模拟时间设为13秒钟,在0.1秒开始产生cbr流量,在1.0秒开发发送发ftp流量;

8.0秒ftp流量结束,12.0秒cbr流量结束。

编写脚本(可用shell,awk,或perl等)分析模拟日志文件,统计每0.5s内0、1节点间链路通过的分组数以及字节数。

三、设计与实现过程

1.仿真脚本代码与详细注解

#Createasimulatorobject/创建模拟器对象

setns[newSimulator]/模拟器对象赋值给变量ns

#Definedifferentcolorsfordataflows(forNAM)

$nscolor1Red

$nscolor2Yellow/给NAM定义不同的数据流,颜色的选择比较随意,只要易于区分就可以

#OpentheNAMtracefile

setnf[openout.namw]/打开out.nam文件,一般都是在执行程序的时候自动生成的

$nsnamtrace-all$nf

#OpentheTracefile

settf[openout.trw]/打开out.tr文件,也是自动生成的

$nstrace-all$tf

/两个文件主要都是用来记录封包传输过程的

#Definea'

finish'

procedure/定义finish程序,在后面执行的时候会用到

procfinish{}{

globalnsnftf

$nsflush-trace

close$nf/关闭nam文件

close$tf/关闭trace文件(在后面调用的时候,是在程序结束的时候,所以前面生成的两个文件必须要关闭)

execnamout.nam&

#以后台方式执行nam

exit0

}

#Createsixnodes/创建六个节点,从n0到n5

setn0[$nsnode]

setn1[$nsnode]

setn2[$nsnode]

setn3[$nsnode]

setn4[$nsnode]

setn5[$nsnode]

#Createlinksbetweenthenodes/创建结点之间的链路,而链路的创建都是基于题目要求的基础之上

$nsduplex-link$n0$n21.5Mb10msDropTail

$nsduplex-link$n0$n41.5Mb10msDropTail

$nsduplex-link$n1$n31.5Mb10msDropTail

$nsduplex-link$n1$n51.5Mb10msDropTail

$nsduplex-link$n1$n02Mb20msDropTail

#Givenodeposition(forNAM)/根据题目图示要求,给NAM创建的节点位置如下

$nsduplex-link-op$n2$n0orientright-down

$nsduplex-link-op$n4$n0orientright-up

$nsduplex-link-op$n0$n1orientright

$nsduplex-link-op$n1$n3orientright-up

$nsduplex-link-op$n1$n5orientright-down

#SetQueueSizeoflink(n0-n1)to10/设置n0到n1之间的列长度

$nsqueue-limit$n1$n010

#SetupaTCPconnection/建立TCP连接

settcp[newAgent/TCP]

$tcpsetclass_2

$nsattach-agent$n2$tcp

setsink[newAgent/TCPSink]

$nsattach-agent$n3$sink

$nsconnect$tcp$sink

$tcpsetfid_1/NAM中,TCP的连接用红色的数据流表示

#SetupaUDPconnection/建立UDP连接

setudp[newAgent/UDP]

$nsattach-agent$n4$udp

setnull[newAgent/Null]

$nsattach-agent$n3$null

$nsattach-agent$n5$null

$nsconnect$udp$null

$udpsetfid_2/NAM中,UDP的连接用黄色的数据流表示

//TCP与UDP的建立中,agent是一个代理,用来作为网络层的传输与接收

#SetupaFTPoverTCPconnection/在TCP连接上建立FTP

setftp[newApplication/FTP]

$ftpattach-agent$tcp

$ftpsettype_FTP

#SetupaCBRoverUDPconnection/在UDP连接上建立CBR

setcbr[newApplication/Traffic/CBR]

$cbrattach-agent$udp

$cbrsettype_CBR

$cbrsetpacket_size_1000

$cbrsetrate_1mb

$cbrsetrandom_false/设置了cbr流量的包类型,字节大小,以及传输速率

#ScheduleeventsfortheCBRandFTPagents/设置FTP和CBR起止时间

$nsat0.1"

$cbrstart"

/0.1秒产生cbr流量

$nsat1.0"

$ftpstart"

/1.0秒发送ftp流量

$nsat8.0"

$ftpstop"

/8.0秒ftp流量结束

$nsat12.0"

$cbrstop"

/12.0秒cbr流量结束

#Callthefinishprocedureafter13secondsofsimulationtime/13秒后调用前面写出的finish程序

$nsat13.0"

finish"

#Runthesimulation/执行模拟器程序

$nsrun

2.仿真过程示意(动画截图1个)

3.日志分析脚本设计(设计思路与代码、注解)

设计思路:

首先取出每行的时间(第二字段)、分组大小(第六字段);

若时间大于当前的时间段,变量加1,开始统计下一时间段信息;

数组count1记录分组的数目

数组count2记录每个时间段通过的分组的总字节数

#!

/usr/bin/perl

#countthenumberofpacketsbetweennode0andnode1,theintervalis0.5seconds.

$i=0;

/定义变量i

@info;

/定义三个数组

@count1;

@count2;

while(<

>

){/读out.tr文件的内容

@info=split(/+/,$_);

/以空格为分字符读取每一行的内容

$reason=$info[0];

/封包事件发生原因(r代表封包被接收,+表示进入队列,-表示离开队列)

$time=$info[1];

/时间,表示流量传输的开始时间

$src=$info[2];

/封包的起始节点

$dst=$info[3];

/封包的终止节点

$length=$info[5];

/包的字节长度

#if($reason==’r’&

&

($src==0&

$dst==1)||($src==1&

$dst==0)){

if($reason==’r’&

$dst==0)){

/包被某个节点所接受,而且链路传输是在从0到1的链路上,判断语句

if($time>

$i*0.5){/时间段超过0.5秒,执行下一行内容

$i++;

}

$count1[$i]++;

/这个数组用于统计包的个数

$count2[$i]+=$length;

/这个数组用于统计字节数

printf("

intervals(s)\t\tpackets\t\tbytes\n"

);

/显示语句,显示内容为:

时间间隔,包,还有字节数

$i=1.0;

while($count1[$i]){/打印出来统计的信息

printf("

%4.1f~%4.1f\t\t$count1[$i]\t\t$count2[$i]\n"

($i-1)*0.5,$i*0.5,);

}/显示统计出来的每个时间段的信息

4.分析结果展示(通过自绘图来说明)

Packers:

Bytes:

四、设计技巧及体会

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

整体的设计,实现了题目中的所示要求,即模拟时间设为13秒钟,在0.1秒开始产生cbr流量,在1.0秒开发发送发ftp流量;

8.0秒ftp流量结束,12.0秒cbr流量结束,用两种不同的颜色定义了两种数据流,在执行ns的脚本之后,可以通过视觉上的直观感受真实的网络协议模拟过程。

两个脚本的编写,并非基于自身的能力水平,而是在通过网上查询资料以及在同学的指导下,才基本实现了实习内容,但是对部分脚本代码的理解有待于进一步提高。

2、在设计过程中的感受。

通过网络协议的模拟仿真,更加直观形象的观察到整个运行过程,但是基于自身的能力水平,需要进一步的理解每一步操作的原理,在学习的过程中,要不断探索,多询问,多理解,多请教,才能不断进步,进而提升自己,扬长避短,不断充实自己的专业基础知识。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2