一种基于OPNET的按需组播路由协议仿真方法

文档序号:24633931发布日期:2021-04-09 20:44阅读:69来源:国知局
一种基于OPNET的按需组播路由协议仿真方法

本发明涉及组播路由协议技术领域,更具体地说,它涉及一种基于opnet的按需组播路由协议仿真方法。



背景技术:

按需组播路由协议odmrp是一种针对移动自组织网络的组播路由协议,该协议在源节点和接收节点之间建立网格进行数据传输,具有冗余路径、不依赖单播路由、健壮性高等特点,odmrp协议属于典型的manet组播路由协议,目前缺乏对于odmrp建模和仿真研究,不利于对odmrp的研究、分析、检验和应用。



技术实现要素:

本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的是提供一种有利于对odmrp的研究、分析、检验和应用的基于opnet的按需组播路由协议仿真方法。

本发明的技术方案是:一种基于opnet的按需组播路由协议仿真方法,包括:

odmrp网络建模,在opnet仿真环境中选取仿真网络区域,在所述仿真网络区域内布置mobility-config节点、comm-range-set节点、static节点、多个移动节点,所述static节点随机选择一个移动节点作为源节点,其余移动节点为非信源节点,并从非信源节点中随机选择n个移动节点作为接收节点;

建立odmrp节点模型,所述odmrp节点模型的协议栈构成包括网络层、数据链路层和物理层,其中,所述网络层采用odmrp协议,所述数据链路层采用802.11dcf协议,并将802.11的目标地址设为广播地址,所述物理层包括无线收发信机;

odmrp进程建模,设计odmrp的有限状态机,所述有限状态机的状态包括初始化状态、空闲状态、发送路由请求状态、发送路由回复状态、接收数据分组状态、发送数据分组状态和仿真结束状态,其中,所述初始化状态用于初始化各种状态变量和全局变量并读取仿真属性和参数;所述空闲状态用于当仿真进程不需要做任何动作时停留在此状态;所述发送路由请求状态用于向所述接收节点发送路由请求分组和建立路由;所述发送路由回复状态用于向所述源节点发送路由应答分组和建立路由;所述发送数据分组状态用于当所述源节点收到了来自所述接收节点的路由应答分组后,表示路由已经成功建立,并通过此状态发送数据分组;所述接收数据分组状态用于根据分组种类的不同作出相应的操作,包括销毁重复包,转发路由请求分组、路由应答分组和数据分组,设置转发组标志fg-flag;仿真结束状态用于停止仿真,收集结果统计量;

仿真实验,设置仿真参数和节点属性,包括每个节点收发信机的通信半径,每次仿真的运行时间,源节点的包到达间隔,进行仿真实验,并在实验中收集端到端延时和数据包送达率;

结果分析,根据所述仿真实验得出以速度为参量的端到端延时ete、以速度为参量的包送达率、以多播组尺寸为参量的端到端延时ete和以多播组尺寸为参量的包送达率,对端到端延时ete和包送达率进行分析,分别得到端到端延时ete和包送达率随着速度和多播组尺寸的改变而改变的变化关系。

作为进一步地改进,所述mobility-config节点和comm-range-set节点是opnet自带的节点模型,所述mobility-config节点用于指定节点的移动速度和移动模型,所述comm-range-set节点用于指定无线通信半径。

进一步地,所述空闲状态和仿真结束状态为非强制状态,所述初始化状态、发送路由请求状态、发送路由回复状态、接收数据分组状态、发送数据分组状态为强制状态。

进一步地,当任意一个非信源节点收到所述源节点发送的路由请求分组时,该非信源节点读取收到的路由请求分组中的序列号、前一跳地址和源节点的地址,若不是重复接收的路由请求分组,则把前一跳地址和源节点的地址记录在自己的路由表中,更新路由请求分组中的前一跳地址字段为自己的id号,并把更新后的路由请求分组广播出去。

进一步地,当任意一个非信源节点收到的是路由应答分组时,该非信源节点判断该路由应答分组的各个字段,若该路由应答分组不是重复接收的数据包且该非信源节点是下一跳节点且该非信源节点的fg_flag没有被置位,则将该非信源节点的fg_flag置位,更新路由应答分组的下一跳地址为自己路由表中记录的到目的节点的下一跳地址,并将该路由应答分组广播出去。

进一步地,当任意一个非信源节点收到所述源节点发送的数据分组时,表示odmrp的路由已经建立好,源节点已经开始发送数据分组,在该数据分组不是重复接收的情况下,若该非信源节点的fg_flag=1,则表示该非信源节点位于odmrp路由网格上,应该参与转发该数据包;否则,表示该非信源节点不是转发组成员,不应该参与该数据包的传递,并销毁收到的该数据包。

进一步地,所述数据包送达率=接收节点实际收到的数据包数/(源节点发出的数据包数*接收节点的数量),所述端到端延时为从源节点发送数据包到接收节点接收到该数据包所经历的平均时间,该平均时间包括路由建立的时间。

有益效果

本发明与现有技术相比,具有的优点为:

本发明基于opnet实现了odmrp协议的建模和仿真,建立了该协议的网络模型、节点模型和进程模型,编程实现了odmrp网格的建立、更新和数据传输过程,仿真实验证明所建立的模型功能是正确的,仿真结果表明该协议适用于诸如战场通信、灾难救助、体育比赛、大型会展等需要临时组网进行组播通信的应用场合,有利于对odmrp的研究、分析、检验和应用,基于opnet建立的仿真模型库可以为科研院所的研究人员和网络工业的技术人员提供即拿即用的服务,且opnet采用c语言作为编程语言,只需要对opnet仿真程序代码做很小的改动就可以改造成实际物理设备的软件代码,从而为实装设备的研发提供参考。

附图说明

图1是本发明的方法流程图;

图2是本发明的网络模型示意图;

图3是本发明的节点模型示意图;

图4是本发明的进程模型示意图;

图5是本发明仿真实验中以速度为参量的ete示意图;

图6是本发明仿真实验中以速度为参量的包送达率示意图;

图7是本发明仿真实验中以多播组大小为参量的ete示意图;

图8是本发明仿真实验中以多播组大小为参量的包送达率示意图。

具体实施方式

下面结合附图中的具体实施例对本发明做进一步的说明。

参阅图1-8,一种基于opnet的按需组播路由协议仿真方法,包括:

odmrp网络建模,在opnet仿真环境中选取仿真网络区域,在仿真网络区域内布置mobility-config节点、comm-range-set节点、static节点、多个移动节点,static节点随机选择一个移动节点作为源节点,其余移动节点为非信源节点,并从非信源节点中随机选择n个移动节点作为接收节点,n作为static节点的节点属性可进行修改;mobility-config节点和comm-range-set节点是opnet自带的节点模型,mobility-config节点用于指定节点的移动速度和移动模型,comm-range-set节点用于指定无线通信半径;

建立odmrp节点模型,odmrp节点模型的协议栈构成包括网络层、数据链路层和物理层,其中,网络层采用odmrp协议,数据链路层采用802.11dcf协议,并将802.11的目标地址设为广播地址,物理层包括无线收发信机;

odmrp进程建模,设计odmrp的有限状态机,有限状态机的状态包括初始化状态、空闲状态、发送路由请求状态、发送路由回复状态、接收数据分组状态、发送数据分组状态和仿真结束状态,通过c语言编程实现各个状态的功能,其中,初始化状态用于初始化各种状态变量和全局变量并读取仿真属性和参数;空闲状态用于当仿真进程不需要做任何动作时停留在此状态;发送路由请求状态用于向接收节点发送路由请求分组和建立路由,源节点时才能进入此状态,非信源节点不进入此状态;发送路由回复状态用于向源节点发送路由应答分组和建立路由,接收节点时才能进入此状态,非接收节点不进入此状态;发送数据分组状态用于当源节点收到了来自接收节点的路由应答分组后,表示路由已经成功建立,并通过此状态发送数据分组;接收数据分组状态用于根据分组种类的不同作出相应的操作,包括销毁重复包,转发路由请求分组、路由应答分组和数据分组,设置转发组标志fg-flag;仿真结束状态用于停止仿真,收集结果统计量;

仿真实验,设置仿真参数和节点属性,包括每个节点收发信机的通信半径,每次仿真的运行时间,源节点的包到达间隔,进行仿真实验,并在实验中收集端到端延时和数据包送达率;

结果分析,根据仿真实验得出以速度为参量的端到端延时ete、以速度为参量的包送达率、以多播组尺寸为参量的端到端延时ete和以多播组尺寸为参量的包送达率,对端到端延时ete和包送达率进行分析,分别得到端到端延时ete和包送达率随着速度和多播组尺寸的改变而改变的变化关系。

空闲状态和仿真结束状态为非强制状态,初始化状态、发送路由请求状态、发送路由回复状态、接收数据分组状态、发送数据分组状态为强制状态。

当任意一个非信源节点收到源节点发送的路由请求分组时,该非信源节点读取收到的路由请求分组中的序列号、前一跳地址和源节点的地址,若不是重复接收的路由请求分组,则把前一跳地址和源节点的地址记录在自己的路由表中,更新路由请求分组中的前一跳地址字段为自己的id号,并把更新后的路由请求分组广播出去。

当任意一个非信源节点收到的是路由应答分组时,该非信源节点判断该路由应答分组的各个字段,若该路由应答分组不是重复接收的数据包且该非信源节点是下一跳节点且该非信源节点的fg_flag没有被置位,则将该非信源节点的fg_flag置位,更新路由应答分组的下一跳地址为自己路由表中记录的到目的节点的下一跳地址,并将该路由应答分组广播出去。

当任意一个非信源节点收到源节点发送的数据分组时,表示odmrp的路由已经建立好,源节点已经开始发送数据分组,在该数据分组不是重复接收的情况下,若该非信源节点的fg_flag=1,则表示该非信源节点位于odmrp路由网格上,应该参与转发该数据包;否则,表示该非信源节点不是转发组成员,不应该参与该数据包的传递,并销毁收到的该数据包。

数据包送达率=接收节点实际收到的数据包数/(源节点发出的数据包数*接收节点的数量),端到端延时为从源节点发送数据包到接收节点接收到该数据包所经历的平均时间,该平均时间包括路由建立的时间。

在本实施例中,在opnet仿真环境中选取一个1000米*1000米的仿真网络区域,在仿真网络区域内布置50个移动节点。设置每个节点收发信机的通信半径为250米,每次仿真的运行时间为600秒,源节点的包到达间隔为1秒,数据包的大小为512字节。

仿真实验结果如图5至图8所示,其中ete在10ms以内,包送达率约为90%,从图6和图8可以看出,随着速度或多播组尺寸的增加,包送达率略有下降,说明随着移动速度的增加,网络拓扑变化更剧烈,连通性变差,另外,随着接收节点的增多,网络中转发组成员也会增加,参与数据包转发的节点越来越多,需要统计的数据包也越来越多,所以包送达率有所下降。

本发明基于opnet实现了odmrp协议的建模和仿真,建立了该协议的网络模型、节点模型和进程模型,编程实现了odmrp网格的建立、更新和数据传输过程,仿真实验证明所建立的模型功能是正确的,仿真结果表明该协议适用于诸如战场通信、灾难救助、体育比赛、大型会展等需要临时组网进行组播通信的应用场合,有利于对odmrp的研究、分析、检验和应用,基于opnet建立的仿真模型库可以为科研院所的研究人员和网络工业的技术人员提供即拿即用的服务,且opnet采用c语言作为编程语言,只需要对opnet仿真程序代码做很小的改动就可以改造成实际物理设备的软件代码,从而为实装设备的研发提供参考。

以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1