关键词不能为空

当前您在: 主页 > 英语 >

AD hoc NS2仿真

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 17:00
tags:

-

2021年2月8日发(作者:母校英文)


基于网络仿真器


NS2



Ad


hoc


网络路由


协议仿真



作者:马崇霄、吴长奇





引言




NS2(Network Simulation Version 2)


是一种功能强大的网络模拟仿真


器,


它是用


C++


和< /p>


OTCL


两种语言完成的。


C++


语言编写协议执行模块,


OTCL


语言


编写模拟任务。


NS2


主要针对有线局域网、无线局域网、


Ad

Hoc


网络、卫星通信网、路由选择协议、


组播路由协议等 进行网络模拟仿真。





尽管一些文献


[1,2]


基于


NS


已经做过


Ad Hoc

网络中的几种单径路由协


议的性能仿真分析,但很少文献给出仿真各个步骤中的详细 分析程序,本文以


AODV



Ad


Hoc


On-demand


Distance


Vector


)路 由协议为例,详细介绍了整个仿


真过程的步骤和所使用的程序,并绘出图表。

< p>



1



AODV


路由协议简介




AODV


综合使用了


DSDV



Destination-Sequenced


Distance-Vector


)中


目标序列号和


DSR



Dynamic Source Routing


)中按需路由发现技术,提供了一


种按需单径距离矢量无环路由。该协议主要分为路由发现和路由维护两部分。





路由发现:当源节 点需要与其它节点通信但没有到该目的节点的路由


时,它就广播路由请求


RREQ


,当其它节点收到这个


RREQ


时,首先判断是否收到


过具有相


< br>同源节点和目的节点的


RREQ


,如果是重复收到就丢弃 ,如果没有就利



RREQ


中的信息建 立反向路由。如果中间节点含有到目的节点的路由,就发送


路由应答

RREP


给源节点,否则广播该


RREQ


。当


RREQ


的目的节点收到


RREQ


时,


同样建立反向路由,然后向


RREQ


的源节点发送


RREP


。< /p>




< br>路由维护:


节点通过


MAC


层周 期性广播


hello


消息来判断链路状态,


果该节点连续


3


次未收到


Hello


响应消息,


就认为链路已经断开,


并删除包含该



路的路由信息,发起路由错误


RERR


,通知相邻结点和相 应的上游结点删除因


链路断开而导致目的结点不可达的路由信息。




2



A ODV


路由协议的仿真过程




2.1 NS2


仿真一般步骤




NS2


仿真可以分 为构件的扩展阶段,仿真阶段,对仿真结果分析阶段。


一般分为以下几个步骤:




(1)


编写所需构件:



即新构件的添加或移植。




(2)


测试:


测试自 己编写的构件是否通过。



NS


库中的 构件满足仿真需


要(例如我们对


NS


库 已有的


AODV



DSDV

< p>


DSR


等协议进行仿真),则第


1


步和



2

< br>步可以省略,仿真过程直接从第


3


步开始。




(3)


编写


Otcl


脚本文件:


配置仿真网 络的拓扑结构,


确定链路基本特性,


移动节点所使用的路由协议 ,


节点的数量等,


并进行端设备的协议绑定,

< br>设置仿


真使



用的场景和传输负 载(


TCP


流或


CBR


流),设置仿真的开始和结束时间等。


并在脚本文件里设置

trace


对象,


trace


文 件是记录仿真过程中发生所有事件


的文件。也可以同时设置


na m


对象,


nam


是用于演示网络运行动 画的工具。




(4 )



NS


命令执行脚本文件:



执行后会在与脚本文件同一目录下生成


*.t r


的文件,记录仿真结果。如果在脚本文件中设置了


nam


对象,则会在同一


目录下生成


*.nam< /p>


的文件。




(5)


分析


trace


文件:由于


trace


文件比较大,我们需要编写


ga wk


程序


进行仿真后期的数据处理


(< /p>


计算分组投递率、


路由负载、


吞吐量等< /p>


)



再用


gn uplot


或者


matlab


等绘图工 具将处理后获得的数据绘制成图形,以便更直观的分析比


较协议的性能。




2.2


仿真出


trace


文件的过程





由于


AODV



NS2


组件库里 的自带协议,故仿真过程直接从编写脚本文


件开始。笔者使用


R ed


Hat


LINUX9.0


操作 系统下的


NS2.26


版本进行仿真。仿真

过程如下:




(1)


利用


NS


工具



生成业务场景文件,在


ns-2.26/indep- utils/


目录下输入命令:




ns




type


cbr



nn


50



seed


1



mc


10



rate


2.0


>cbr1




该命令创建了一个具有


50


个移动节点、< /p>


10


对通信连接、每秒钟发送两


个分组的 以


CBR


为业务源的通信场景文件


cb r1





(2)


利用


NS


工具


setdest


生成移动场景文件,在


ns-2.26 /indep-utild/cum-scen- gen/setdest


目录下输入命令:




./setdest



n 50



p 0



s 20



t 300 -x 1000



y 300 >scence1




该命令创建一个具有


5 0


个节点、


节点在每个地点停留


0



(即不停留)



最大移动速度


20m/s,


仿真时间


3 00


秒,长


1000


米,宽

< p>
300


米的移动场景文件


scence1





(3)


编写脚本文件,下面给出仿真过程中使用的


:


#=====================================



Define options


#=====================================


set val(chan) Channel/wireless


set val(prop) Propagation/TwoRayGrond;


set val(netif) Phy/WirelessPhy


set val(mac) Mac/802_11


set val(ifq) Queue/DropTail/PriQueue


set val(ll) LL


set val(ant) Antenna/OmniAntenna


set val(ifqlen) 50


set val(nn) 50


set opt(cp) “cbr1”



set opt(sc) “scence1”



#===============================


# Main Program


#===============================


set ns_ [new Simulator]


set tracefd [open w]


$$ns_ trace-all $$tracefd


$$ns_ use-newtrace


set namtracefd [open w]


$$ns_ namtrace-all-wireless $$namtracefd 1000 300


set topo [new Topography]


$$topo load_flatgrid 1000 300


set god_ [new God]


create- god $$val(nn)



$$ns_ node- config



adhocRouting $$val(rp)


-llType $$val(ll)


-macType $$val(mac)


-ifqType $$val(ifq)


-ifqLen $$val(ifqlen)


-antType $$val(ant)


-propType $$val(prop)


-phyType $$val(netif)


-channelType $$val(chan)


-topoInstance $$topo


-agentTrace ON


-routerTrace ON


-macTrace OFF


-movementTrace OFF



for {set i 0} {$$ i


set node_($$i) [$$ns_ node]


$$node_ ($$i) random-motion 0


}


source $$opt(cp)


source $$opt(sc)


for {set i 0}{$$i<$$val(nn)}{incr i}{


$$ns_ at 300.1 “$$node_($$i) reset”;



}


$$ns_ at 300.2 “stop”



$$ns_ at 300.3 “puts



”NS exiting?



”; $$ns_ halt”



proc stop {} {


global ns_ tracefd namtracefd


$$ns_ flush-trace


close $$tracefd


close $$namtracefd


exec nam &


exit 0


}


$$ns_ run



(4)


将步骤


(1)


与(


2


)中的业务文件和场景文件放在 与


TCL


脚本文件同


一目录下。否则需 要在



中指出业务文件和场景文件所在的绝对路径。




(5)



NS


目录下执行命令


:ns , < /p>


执行完后在脚本文件同一目录


下会出现


< /p>




两个文件。仿真数据结果保存在



中,使


用文本编辑器可以打开



文件。




2.3


分析


trace


文件




< /p>


运行


NS


后生成的



结果输出文件一般都比较大,


我们需要编写程


序(使用


gawk


语言、


ja va


语言、


perl


语言等)对其进行 数据统计和提



取,获


取我们所需的一 些性能数据


(如分组投递率、


路由发起频率、

< br>路由开销、


丢包率


等)。本文使用


NS


自带工具


gawk


语言编写了一 些性能分析程序后用


matlab



制出图表,进行协议性能分析。





采用的仿真场景是在


1000m×300m

的空间中随机配置


50


个移动节点,


最大移动速度是


20m/s



仿真时 间为


300


秒。


该场景为节点高速移动 的场景。




点的运动符合


Random


Waypoint


模型,


每个节点将会在移动 范围内随机选择一个


目的地,


以给定的速度移动至该目的地,< /p>


然后停留于原地一段时间,


然后再随机


选 取下一个目的地



进行下一次的移动。详细的模拟参数记录列表如下:





1


仿真参数表:




参数类型



参数值



Simulation Time 300 sec


Simulation Terrain 1000m*300m


Number of nodes 50


Mobility Model Random waypoint


Mobility 0~20m/s


Radio frequency 2.4GHZ


Channel Bandwidth 2Mbps


Mac protocol 802.11


Transmission range 250m




仿真中选择


CBR< /p>


源来产生


UDP


业务,每个


CBR


源每秒钟发送


2


个< /p>


CBR


数据包,


每个数据包


512


字节。


本文对于


10


个和


20



C BR


业务源轻载和中载两


种情况分别进行仿真实验。

< p>



几个


gawk


性能分析程序(针对新的


trace


格式)如 下:



?分组投递率=



×100%





BEGIN{


sends=0;


recvs=0;


}


$$0~/^s.*AGT/{


sends++;


}


$$0~/^r.*AGT/{


recvs++;


}


END{


printf(”r/s ratio:%.4f



n”,(recvs/sends));



}


备注:丢包率=


1


-分组投递率,即丢失的 数据包分组数目与发送的数据包分组


数目之比。



?路由发起频率=





BEGIN{


requests=0;


frequency=0;


}


{


id=$$5;


source_ip=$$57;

-


-


-


-


-


-


-


-



本文更新与2021-02-08 17:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/615736.html

AD hoc NS2仿真的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文