在ns231下实现MFlood泛洪协议

在ns231下实现MFlood泛洪协议

ID:46692924

大小:120.00 KB

页数:18页

时间:2019-11-26

在ns231下实现MFlood泛洪协议_第1页
在ns231下实现MFlood泛洪协议_第2页
在ns231下实现MFlood泛洪协议_第3页
在ns231下实现MFlood泛洪协议_第4页
在ns231下实现MFlood泛洪协议_第5页
资源描述:

《在ns231下实现MFlood泛洪协议》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、ns-2.31下添加MFlood协议作者:lzqlgq@gmail.com特别感谢:hiboi2007-5-15更新我使用的mflood代码是《NS为网络模拟》书中第七章中所用代码,目前许多人都提供了修正版本,本文以此I口版本为例,为了方便人多数添加代码都靠近AODV的代码位宜.在修改NS的系统Tel文件屮,一个很有用的技巧就是参考NS中已有的代码,特別注意格式问题添加/修改源文件1.这个mflood文件夹拷到ns-2.31冃录下,aodv也在这个H录下mflood文件夹包含以卜5个文件:mflood.h,mflood.cc

2、,mflood_packet.h,mflood-seqtable.h,mflood-seqtable.cc2.修改~ns/common/packet.h这个文件,一共要改两个地方。在这个枚举类型屮的PT.AODV的下一行加入PT_MFLOOD,前方请使川—•个制表符(Tab健)和PT_AODV对齐,并后边紧跟一个逗号,这个枚举类型中的最后一个应当为PT_NTYPE,这个是不能变的,不过不在最后面添加就好了在结构classp_info{...中,找到name[PT_AODV]=MAODVM;在其后面加入name_[PT_MFL

3、OOD]=“MFlood“;前方用两个制表符和1:面对齐,后边用分号结尾,对于p_info的修改是为了绑定分纽类型值和它们的名字,作为新加类型的数字代码。3.修改~ns/tcl/lib/ns-packet.tcl中,在要激活的分组头的名?中加入MFLoodforeachprot{AODV#routingprotocolforad-hocnetworksMflood#add说明•••}MFloodno方是一个制表符和AODV对■齐,后边回车换行就可以了,如有说明请用#开始,具体参照上方4.修改文件-ns/tcl/lib/ns-

4、lib.tcl,在Simulator类的create-wireless-node成员函数(这个函数的定义为Simulatorinstproccrcatc-wirclcss-nodcargs)中加入下面的代码:switch・exact$routingAgent_{#这里是不同的协议的初始化函数,以下为加入代码MFlood{setragent[$selfcreate-mflood-agent$node]}这个表示为无线移动节点指定跌幅协议为MFlood的时候,将会调丿IJcreate-mflood-agent成员函数来进行初始化

5、。然后我们在-ns/tcl/lib/ns-lib.tcl文件【I〔定义create-mflood-agent成员函数,代码如卜:Simulatorinstproccreate-mflood-agent{node}{setragent[newAgent/MFlood[$nodeid]]Snodesetragent_Sragentreturn$ragent}这里注意,set前请使川制表符对齐,否则可能发生错误如下:invalidcommandname""whileexecuting从create-mflood-agent这个函数

6、的定义中可以看到,创建了Agent/MFlood的一个对象,这个对象最后将和某一个移动节点$node绑定在一起。5、在makefile文件中(~ns这个冃录下),的OBJ_CC变量的定义中增加下面这行aodv/aodv_logs.oaodv/aodv.oaodv/aodv_rtable.oaodv/aodv_rqueue.oaomdv/aomdv」ogs.oaomdv/aomdv.oaomdv/aomdv_rtable.oaomdv/aomdv_rqueue.omflood/mflood.omflood/mflood

7、-seqtable.ocommon/ns-process.o注意格式:制表符+mflood/mflood.omfloocl/mflood-scqtablc.o+空格++回午重新编译在shell中进入录ns-2.31依次运行命令makeclcan/makcdepend/make运行例子程mflood-3node.tcl会出现错误的捉示INITIALIZETHELISTxListHead(_o17emdline1)invokedfromwithin"_o17emdport・dmux_o26"invokedfromwithi

8、n"catch"$selfemd$args"ret"invokedfromwithinif[catchn$selfemd$argsHret]{setcis[$selfinfoclass]globalerrorinfosetsavedlnfo$errorInfoerror”errorwhen

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。