实验报告
_________系级专业班成绩
姓名同组人姓名第组日期
[实验项目] 洪泛路由协议的移植
[实验目的] 熟悉对洪泛路由协议的移植
[实验仪器设备] 虚拟机和装有NS的linux系统,五个代码文件
(mflood.h , ,mflood_packet.h ,mflood-seqtable.h ,mflood-seqtable.c c , )
[实验原理] 洪泛(mflood)路由算法是一个简单有效的路由算法,其基本思想是每个节点都是用广播转发收到的分组,若收到重复分组则进行丢弃处理,但是我们需要将此算法移植到NS中,移植的过程就是本实验的重点。
[实验内容] 步骤一:在ns-allinone-2.35/ns-2.35的目录下新建一个目录叫mflood,把这五个文件
(mflood.h , ,mflood_packet.h ,mflood-seqtable.h ,mflood-seqtable.c c ,)置于mflood文件夹内,如图:
如图,已经将五个文件置于新建的文件夹下面了,
步骤二:
修改NS中与mflood协议相关的文件。移植mflood协议时需要修改NS原文件较多的地方,下面对需要修改的文件逐一修改,
(1)ns-2.35/common/packet.h 文件的修改,如图:
用gedit packet.h打开此文件,在如图所示位置添加自定义的类型(阴影为添加的自定义类型,有两处):
一)
二)
(2)ns-2.35/tcl/lib/ns-packet.tcl 文件的修改,如图:
用命令打开文件,修改如图(阴影部分为添加):
(3)ns-2.35/tcl/lib/ns-lib.tcl文件修改;如图打开文件:
修改如图(阴影部分为所添加):
由上图可知,从create-mflood-agent 这个函数的定义中,创建了Agent/MFlood 的一个对象,这个对象最后将和某一移动节点绑定在一起。
步骤三修改makefile 文件,如图所示打开文件:
修改如图(阴影部分为所修改):
保存Makefile,然后回到ns-2.35 目录下,执行make命令重新编译NS
操作命令如图:
出现错误如图:
原因是,mflood 的文件放错地方了,应该把文件放入ns-2.35里面
修改文件夹的路径后在进行编译,如图出现错误:
原因见第一个错误mflood-packet.h 文件未找到,因为存储那五个文件的时候文件名存为mflood_packet.h 了,只要把文件名改成中间用减号(-)连接的就行了,如图,编译完成:
至此,所有移植过程完毕,接下来验证移植结果,把例子4.2的路由协议aodv改成mflood
运行4.2例子
查看仿真后生成trace文件;