一种结合aodv协议的混合式拓扑控制方法

文档序号:7693890阅读:235来源:国知局

专利名称::一种结合aodv协议的混合式拓扑控制方法
技术领域
:本发明属于无线Adhoc网络拓扑控制方法领域,尤其是解决无线Adhoc网络容量、干扰、能量、连通性以及路由等问题的一种结合AODV协议的混合式拓扑控制方法。本发明对网络规模没有严格的限定,尤其适用于军事领域的战术协同通信以及静态Adhoc网络,如无线传感器网络。
背景技术
:拓扑控制是近年来无线Adhoc网络研究的重要技术之一。拓扑控制是在保证一定通信质量的条件下,通过调节信号发射功率,最终使节点以最小的发射功率构成一个全连通网络。通过拓扑控制,不但可以节省电池能量、延长节点寿命、简化网络拓扑,还可以减少节点在无线信道上的碰撞,提高信道的空间复用度,最终提高整个网络的目前比较主流的拓扑控制方式有两种集中式拓扑控制和分布式拓扑控制,它们各有优缺血。集中式拓扑控制的优点是算法较简单,中心节点管理和用户扩展容易;缺点是由于需要全网的拓扑信息,因此网络开销大,对中心节点的物理性能要求高,可靠性相对较低,不适合大规模、移动性强的Adhoc网络应用。分布式拓扑控制的优点是采用分布式算法,即使网络中某个局部出现故障,也不会影响全网的操作,因此具有很高的可靠性,同时由于只需要获得局部拓扑信息,网络开销较小,适用于大规模移动Adhoc网络;缺点是算法复杂度高,对网络整体的控制和管理复杂。
发明内容本发明是为了解决现有技术中两种拓扑控制方式存在的缺点而提出的一种结合AODV协议的混合式拓扑控制方法,主要解决Adhoc网络规模、节点能量受限、节点间干扰严重以及移动性等问题,目的是通过混合式的方法提供网络可测量性、适应性和自主性,使最终的网络拓扑达到强连通性,网络性能得到优化,主要适用于无线传感器网络和军事编队通信应用。本发明的技术方案是结合AODV协议的混合式拓扑控制方法,包括区域划分、区域内拓扑控制、区域间拓扑控制,其特征是还包括改进AODV路由协议步骤;所述的改进AODV路由协议步骤,在AODV路由协议中添加两种控制消息POSITION和POWER,分别用于区域内节点向中心节点发送拓扑信息以及中心节点向各对应节点发送功率配置信息。POSITION消息格式为预留区域标识目的节点IP地址源节点IP地址源节点X坐标源节点Y坐标生存期POWER消息格式为:预留区域标识目的节点IP地址源节点IP地址源节点最佳发射功率值生存期同时添加了其对应的消息发送和接收函数,以及添加定时器用于拓扑控制的执行;另一方面修改AODV的Hello消息格式及其处理流程,解决拓扑控制后可能出现的单向信道问题,并且执行分布式控制。Hello消息格式为预留区域标识目的节点IP地址目的节点序列号源节点IP地址源节点X坐标源节点Y坐标生存期发送POSITION消息的具体步骤为首先为新的POSITION控制包分配一段内存空间,然后为POSITION消息的各个变量赋值,判断路由表中是否有到中心节点的路由项,如果没有到中心节点的路由项,则添加到中心节点的路由项目,然后判断路由是否有效,如果有到中心节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POSITION消息,然后启动重发定时器,如果路由表中没有到中心节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POSITION消息,发送RREQ寻找到中心节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。接收POSITION消息的具体步骤为判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POSITION消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断该中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POSITION消息的区域标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POSITION消息中携带的源节点的坐标信息,然后判断是否收到本区域全部节点的坐标信息,如果没有收到全部信息,则继续等待接收信息;如果收到本区域全部节点的坐标信息,则调用集中式拓扑控制算法,然后调用发送功率函数,将最佳功率发送到相应节点。发送POWER消息的具体步骤为首先为新的POWER控制包分配一段内存空间,然后为POWER消息的各个变量赋值,判断路由表中是否有到目的节点的路由项,如果没有到目的节点的路由项,则添加到目的节点的路由项目,然后判断路由是否有效,如果有到目的节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POWER消息,然后启动重发定时器,如果路由表中没有到目的节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POWER消息,发送RREQ寻找到目的节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。接收POWER函数的具体步骤为判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POWER消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断该中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POWER消息的区域标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POWER消息中携带的本节点功率信息,然后判断本区域全部节点是否都收到功率信息,如果不是全部节点都收到功率信息,则继续等待;如果本区域全部节点都收到功率信息,则将本节点的发射功率设置为记录的最佳值。本发明的效果是本发明与无线Adhoc网络典型的按需路由协议AODV相结合(AODV,即Ad-hocOn-demandDistanceVector,Adhoc按需距离矢量),在AODV中添加了两种消息类型,通过信息交互来完成拓扑控制,从而提高路由协议的性能以及系统的整体性能。本发明已在NS2网络仿真平台上实现。下面结合附图和实施例对本发明做进一步的说明。图1本发明程序流程模块框图;图2本发明主要工作流程示意图;图3发送POSITION消息流程框图;图4接收POSITION消息流程框图;图5发送POWER消息流程框图;图6接收POWER消息流程框图。具体实施方式图1中,本发明主要包括四个程序功能模块区域划分模块、区域内拓扑控制模块、区域间拓扑控制模块以及改进AODV路由协议模块。其中改进AODV路由协议模块是本发明的重要部分,也是区域内拓扑控制模块和区域间拓扑控制模块的核心部分。1、区域划分模块该模块主要是针对规模较大的Adhoc网络而设计。当网络规模较大时,只采用集中式拓扑控制方式,会造成很大的网络开销,可靠性降低,因此需要将网络进行区域划分。区域划分可以根据具体应用中网络节点的分布情况以及集中式拓扑控制算法对节点数目的要求,来确定每个区域可以容纳的节点总数。对于军事编队应用而言,如果采用的集中式拓扑控制算法可以满足一个编队的容量应用,那么每个编队就可以作为一个区域。另外,每个区域还要选出一个中心节点作为区域内拓扑控制算法的运行节点,这个节点类似于蜂窝网中的基站。本区域划分方法与蜂窝网小区划分的根本区别是本区域内节点之间的通信可能经过多跳,且路由不依赖于中心节点,而蜂窝网小区内的节点不支持多跳,节点之间需要经过基站才能通信。2、区域内拓扑控制模块区域内主要采用集中式拓扑控制方法,各区域独立进行。集中式拓扑控制要求每个节点都知道自己的当前位置、移动速度等信息,或者知道节点间的相对位置,这些信息可以通过传感器测量、GPS定位或无线电相互定位的方式获得。如图2所示,本发明采用GPS定位方式,拓扑控制的主要步骤为(1)网络初始化,将每个节点发射功率设为最大值;(2)启动拓扑控制定时器;(3)区域内各节点通过GPS定位系统获得自己的坐标信息,然后将该信息发送到本区域的中心节点,并且启动重发定时器;(4)中心节点搜集并且缓存本区域所有其他节点的坐标信息,当全部搜集到后运行集中式拓扑控制算法,计算各节点的最佳发射功(5)中心节点将各节点的最佳发射功率分别发送到对应节点,并且启动重发定时器;(6)当区域内各节点均收到最佳功率消息后,将自己的发射功率设置为该最佳值。3、区域间拓扑控制模块区域间采用分布式拓扑控制方法,区域边界节点通过交互Hello消息获得外区域节点的本地信息,从而保证区域之间的连通性。具体地说,就是在区域内采用集中式拓扑控制时,节点采用最大发射功率,那么此时交互Hello消息,区域边界会出现区域间通信的节点对,这些节点对保存相应信息。当区域内拓扑控制完成后,各节点采用最佳发射功率,那么之前建立的区域间通信节点对可能由于功率限制不能直接通信,从而导致区域间不连通。因此,需要根据之前建立的区域间信息适当增大某些节点的发射功率,保持区域间的连通。4.改进AODV路由协议模块该模块是拓扑控制的具体实现模块,通过添加和更改AODV路由协议的相关消息以及处理流程,实现集中式和分布式拓扑控制。具体地说一方面是在AODV路由协议中添加两种控制消息POSITION和POWER,分别用于区域内节点向中心节点发送拓扑信息以及中心节点向各对应节点发送功率配置信息,并且添加了其对应的消息发送和接收函数,同时添加定时器用于拓扑控制的执行;另一方面修改AODV的Hello消息处理流程,解决拓扑控制后可能出现的单向信道问题,并且执行分布式控制。两种新的控制消息的格式,POSITION消息格式如下<table>tableseeoriginaldocumentpage0</column></row><table>生存期POWER消息格式如下:预留区域标识目的节点IP地址源节点IP地址源节点最佳发射功率值生存期POSITION和POWER消息虽然是作为AODV协议的控制消息,但它们是用于拓扑控制,与路由控制消息RREQ、RREP等的处理流程不同,而是类似于数据包的处理过程。这两种消息都是单播发送,并且有明确的源和目的,因此在发送时,若源节点没有到目的节点的路由则将消息缓存,然后发起RREQ寻找路由,直到找到至目的的路由后才将缓存的POSITION或POWER消息发送出去。发送坐标信息时假设节点已知其所在区域的中心节点IP地址,这可以在区域划分中实现,那么POSITION消息中的目的IP地址就可以直接赋值,而源节点的X和Y坐标可以通过GPS定位系统来获得。发送功率信息时,如果之前建立的中心节点到其他节点的反向路由仍然有效,则可以直接将功率信息发送到每个节点。另外,POSITION和POWER消息很可能会由于找不到路由而到达不了目的,因此设置重发定时器,在第一次发送POSITION或POWER消息后启动该定时器,一定时间后如果缓存队列中仍然存在POSITION或POWER类型的消息,则重新发起寻路过程。进行拓扑控制后由于全网中各节点采用不同的发射功率,因此网络中不可避免地存在单向信道。单向信道会影响到RREQ及RREP等消息的正确交互,从而影响路由的建立和维护,所以需要解决单向信道问题。AODV协议采用周期性交互Hello消息来进行局部连接性管理,本发明通过对Hello消息的扩展及修改来消除单向信道。由于节点都配备有GPS定位系统,因此可以将本节点的坐标信息加入到Hello消息中进行交互。接收到Hello消息的节点通过自己的坐标和消息中携带的源节点的坐标可以计算出邻居节点到本节点的距离,本节点比较该距离与自己的辐射半径大小,只有当此距离不大于辐射半径时才可以将源节点作为自己的邻居。区域间分布式拓扑控制也需要通过修改Hello消息来完成。在Hello消息中加入区域标识,当节点收到非本区域的节点发来的Hello消息后记录该节点的信息,表明相邻区域连通。由于进行拓扑控制之前采用最大发射功率,而拓扑控制之后节点的发射功率设为最佳值,因此可能出现之前建立的区域间连通节点对不再是邻居的情况,即节点在一定的时间内连续多次没有收到记录的非本区域节点发来的Hello消息,此时该节点査询自己的邻居中是否仍然存在区域间连通节点对,如果不存在则增大自己的发射功率,寻找区域间相邻节点,从而保证相邻区域连通。扩展后的Hello消息格式为预留区域标识目的节点IP地址目的节点序列号源节点IP地址源节点X坐标源节点Y坐标生存期它仍然作为一种特殊的未被请求的RREP分组,其中部分变量没有给出。图3中,发送POSITION消息的具体步骤为首先为新的POSITION控制包分配一段内存空间,然后为POSITION消息的各个变量赋值,判断路由表中是否有到中心节点的路由项,如果没有到中心节点的路由项,则添加到中心节点的路由项目,然后判断路由是否有效,如果有到中心节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POSITION消息,然后启动重发定时器,如果路由表中没有到中心节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POSITION消息,发送RREQ寻找到中心节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。图4中,接收POSITION消息的具体步骤为判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POSITION消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POSITION消息的区域标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POSITION消息中携带的源坐标点的坐标信息,然后判断是否收到本区域全部节点的坐标信息,如果没有收到全部信息,则继续等待接收信息;如果收到本区域全部节点的坐标信息,则调用集中式拓扑控制算法,然后调用发送功率函数,将最佳功率发送到相应节点。图5中,发送POWER消息的具体步骤为首先为新的POWER控制包分配一段内存空间,然后为POWER消息的各个变量赋值,判断路由表中是否有到目的节点的路由项,如果没有到目的节点的路由项,则添加到目的节点的路由项目,然后判断路由是否有效,如果有到目的节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POWER消息,然后启动重发定时器,如果路由表中没有到目的节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POWER消息,发送RREQ寻找到目的节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。图6中,接收POWER消息的具体步骤为判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POWER消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POWER消息的区域标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POWER消息中携带的本节点功率信息,然后判断本区域全部节点是否都收到功率信息,如果不是全部节点都收到功率信息,则继续等待;如果本区域全部节点都收到功率信息,则将本节点的发射功率设置为记录的最佳值。权利要求1.结合AODV协议的混合式拓扑控制方法,包括区域划分、区域内拓扑控制、区域间拓扑控制,其特征是还包括改进AODV路由协议步骤;所述的改进AODV路由协议步骤,在AODV路由协议中添加两种控制消息POSITION和POWER,分别用于区域内节点向中心节点发送拓扑信息以及中心节点向各对应节点发送功率配置信息;POSITION消息格式为<tablesid="tabl0001"num="0001">id="icf0001"file="S2008101051236C00011.gif"wi="115"he="46"top="80"left="48"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/></tables>POWER消息格式为<tablesid="tabl0002"num="0002">id="icf0002"file="S2008101051236C00012.gif"wi="111"he="40"top="133"left="48"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/></tables>同时添加了其对应的消息发送和接收函数,以及添加定时器用于拓扑控制的执行;另一方面修改AODV的Hello消息格式及处理流程,解决拓扑控制后可能出现的单向信道问题,并且执行分布式控制;Hello消息格式为<tablesid="tabl0003"num="0003">id="icf0003"file="S2008101051236C00013.gif"wi="114"he="54"top="208"left="50"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/></tables>2、根据权利要求1所述的结合AODV协议的混合式拓扑控制方法,其特征是发送POSITION消息的具体步骤为首先为新的POSITION控制包分配一段内存空间,然后为POSITION消息的各个变量赋值,判断路由表中是否有到中心节点的路由项,如果没有到中心节点的路由项,则添加到中心节点的路由项目,然后判断路由是否有效,如果有到中心节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POSITION消息,然后启动重发定时器,如果路由表中没有到中心节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POSITION消息,发送RREQ寻找到中心节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。3、根据权利要求1或2所述的结合AODV协议的混合式拓扑控制方法,其特征是接收POSITION消息的具体步骤为判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POSITION消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不为零,则判断本机是否为目的节点;如果本机不是目的节点,则判断该中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POSITION消息的区域标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POSITION消息中携带的源节点的坐标信息,然后判断是否收到本区域全部节点的坐标信息,如果没有收到全部信息,则继续等待接收信息;如果收到本区域全部节点的坐标信息,则调用集中式拓扑控制算法,然后调用发送功率函数,将最佳功率发送到相应节点。4、根据权利要求1所述的结合AODV协议的混合式拓扑控制方法,其特征是发送POWER消息的具体歩骤为首先为新的POWER控制包分配一段内存空间,然后为POWER消息的各个变量赋值,判断路由表中是否有到目的节点的路由项,如果没有到目的节点的路由项,则添加到目的节点的路由项目,然后判断路由是否有效,如果有到目的节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POWER消息,然后启动重发定时器,如果没有到目的节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POWER消息,发送RREQ寻找到目的节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。5、根据权利要求1或4所述的结合AODV协议的混合式拓扑控制方法,其特征是接收POWER消息的具体步骤为判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POWER消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断该路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POWER消息的区域标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POWER消息中携带的本节点功率信息,然后判断本区域全部节点是否都收到功率信息,如果不是全部节点都收到功率信息,则继续等待;如果本区域全部节点都收到各自的功率信息,则将本节点的发射功率设置为记录的最佳值。全文摘要提高路由协议性能以及系统整体性能的一种结合AODV协议的混合式拓扑控制方法,技术方案是包括区域划分、区域内拓扑控制、区域间拓扑控制,其特征是还包括改进AODV路由协议步骤;在AODV路由协议中添加两种控制消息POSITION和POWER,分别用于区域内节点向中心节点发送拓扑信息以及中心节点向各对应节点发送功率配置信息,并且添加了其对应的消息发送和接收函数,同时添加定时器用于拓扑控制的执行;另一方面修改AODV的Hello消息格式及处理流程,解决拓扑控制后可能出现的单向信道问题,并且执行分布式控制。文档编号H04L12/56GK101267401SQ20081010512公开日2008年9月17日申请日期2008年4月25日优先权日2008年4月25日发明者刘海霞,博惠,旭李申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1