用于小卫星星座通信的无线自组织网络路由方法

文档序号:7704685阅读:160来源:国知局
专利名称:用于小卫星星座通信的无线自组织网络路由方法
技术领域
本发明主要涉及到空间环境中的网络通讯领域,特指一种用于小卫星星座通信的无线自组织网络路由方法。
背景技术
自从无线网络在70年代产生后,它在计算机领域里日趋流行,尤其是最近十年无线移动通信网络的发展更是一日千里。目前存在的无线移动网络有两种第一种是基于网络基础设施的网络,这种网络的典型应用为无线局域网(WLAN)。第二种为无网络基础设施的网络,一般称之为无线自组织网络(AD HOC)。传统的无线蜂窝通信网络,需要固定的网络设备如基地站的支持,进行数据的转发和用户服务控制。而无线自组织网络不需要固定设备支持,各节点即用户终端自行组网,通信时,由其他用户节点进行数据的转发。无线自组织网络在没有骨干网络的条件下,由系统中的通信节点通过分布式协议互连或组织起来,强调的是多跳、自组识、无中心的概念,具有独立性、分布性、多跳性和移动性等特点。这种网络形式突破了传统无线蜂窝网络的地理局限性,能够更加快速、便捷、 高效地部署,适合于一些特殊场合如军事战场、医疗抢险以及抗洪救灾的通信需要。在空间环境中,由于卫星移动性和链接的不固定性更加明显,使得网络拓扑时常处于变化状态,无线自组织网络是一种极为合适的组网方式。无线自组织网络在发起节点和目标节点间采用多跳而不是一跳的方式来传输数据可以增加网络容量和降低传输能量的消耗,但是也会带来新的挑战,如如何在发起节点和目标节点间寻找一条或者多条最优的路径。因此路由协议在多跳Ad Hoc网络中起着举足轻重的作用。根据发现路由的驱动模式的不同,路由协议大致可以分为表驱动路由协议和按需路由协议。在表驱动路由协议中,每个节点维护一张包含到达其它节点的路由信息的路由表。当检测到网络拓扑结构发生变化时,节点在网络中发送更新消息,收到更新消息的节点将更新自己的路由表,以维护一致的、及时的、准确的路由信息,所以路由表可以准确地反映网络的拓扑结构。按需路由协议,是一种当需要发送数据时才查找路由的路由协议。在这种路由协议中,节点不需要维护及时准确的路由信息,当向目的节点发送报文时, 发起节点才在网络中发起路由查找过程,寻找相应的路由。现有的两类路由协议的主要不足(1)表驱动路由协议的时延较小,但是路由协议的开销较大;在这种路由协议中,无论是否有通信需求,每个节点采用周期性的路由分组广播, 交换路由信息,维护一张包含到达其他节点的路由信息的路由表。当检测到网络拓扑改变时,节点也会在网络中广播更新分组。收到更新分组的节点则更新自己的路由表,以保证准确的路由信息。因为带宽资源非常有限并且宝贵,自组网的重要特征是网络拓扑不断的变化,所以用以上方法为每个节点维护到全网的路由是没有必要的。(2)与表驱动路由协议相比,按需路由协议的开销较小,但是数据报传送的时延较大。
按需路由协议根据网络分组的传输请求,被动地搜索从发起节点到目的节点的路由。当没有数据分组要求发送时,节点处于静默状态,并不交换路由信息。这使得路由开销大大降低,提高了网络的吞吐量。但是,每条激活路由建立的平均开销要远远高于先应式路由协议的平均开销。只有在少数节点之间需要通信时,才比表驱动路由协议的路由开销小。

发明内容
本发明要解决的技术问题就在于针对现有技术存在的技术问题,本发明提供一种可大大提高路由策略的可靠性、鲁棒性、安全性,且能提高路由效率的用于小卫星星座通信的无线自组织网络路由方法。为解决上述技术问题,本发明采用以下技术方案一种用于小卫星星座通信的无线自组织网络路由方法,其特征在于步骤为(1)路由查询在需要时,发起节点发出路由查询Route Ask,其中包含发起节点和目的节点的信息;当中间节点收到Route Ask后,先根据其中的信息判断此Route Ask有效且最新,不满足则丢弃;若满足,则判断是否需要添加或更新到Route Ask发起节点的反向路由信息,最后修改Route Ask的跳数并转发;(2)路由回应目的节点收到发给自身的Route Ask时,向发起节点发送路由回应 RouteAnswer ;当中间节点收到Route Answer后,记录或更新路由,同时将Route Answer转发;Route Ask发起节点收到Route Answer后,记录路由信息,开始发送数据;若没有到目的节点的有效信息,等待一段时间后重发Route Ask ;重复一定次数后停止获取路由,终止此次数据发送过程;(3)路由错误若某节点判断其邻居节点不可达时,则查找与故障节点相关的路由表项,转发故障信息,然后将故障节点从邻居列表中删除;其他节点收到Route Error 后,将相应的路由置为无效;(4) Alive Notify机制所有节点周期性的发送Alive Notify报文,以便发现故障节点和新加入的节点;节点收到Alive Notify报文后,若已有报文发起者的信息, 则更新相应节点的生命期;若无相应信息,则新增邻居节点;对于在给定时间内无Alive Notify报文发出的节点,其邻居节点认为其不可达,按照步骤(3)的方式转发故障节点的
fn息ο作为本发明的进一步改进如果目的节点收到多个Route Ask时,先比较Route Ask的ID ;如果ID相同或者更大则无条件回复Route Answer,若Route Ask的ID较小,则丢弃该请求。所述路由表项中含有唯一的发起节点IP和Route Ask ID对,某节点发现邻居节点出现故障后,查找与故障节点相关的路由表项,转发故障信息,下一节点收到Route Error后根据唯一的发起节点IP和Route Ask ID对将相关路由表项置为无效。与现有技术相比,本发明的优点在于1.本发明采用了基于主用和备用路由的双备份路由策略。充分考虑到空间环境下,小卫星星座的移动性较强、链接切换频繁,网络拓扑不稳定的特点,采用主用和备用路由策略,当主用路由出现故障时,可以及时切换到备用路由,使得路由能及时修复,增加了路由策略的可靠性、鲁棒性、安全性;
2.本发明采用了基于键值对的路由故障快速定位和传播策略,在本发明路由方法通报故障时,能根据路由表里唯一的Route Ask ID,快速定位出现故障的路由项,使得故障信息能更加快速的传播到整个网络,每个节点能更及时的更新路由信息,提高了路由效率。


图1是节点发送数据的总体流程示意图;图2是节点处理路由查询的流程示意图;图3是节点处理路由回应的流程示意图;图4是节点处理路由错误的流程示意图;图5是节点处理Alive Notify的流程示意图。
具体实施例方式以下将结合说明书附图和具体实施例对本发明做进一步详细说明。本发明用于小卫星星座通信的无线自组织网络路由方法,其步骤为(1)路由查询(Route Ask)在需要时,发起节点发出Route Ask,其中包含发起节点和目的节点的信息。中间节点收到Route Ask后,先根据其中的信息判断此Route Ask 有效且最新,不满足则丢弃。若满足则判断是否需要添加或更新到Route Ask发起节点的反向路由信息,最后修改Route Ask的跳数并转发之。(2)路由回应(Route Answer)目的节点收到发给自身的Route Ask时,向发起节点发送Route Answer。中间节点收到Route Answer后,记录或更新路由,同时将Route Answer转发。Route Ask发起节点收到Route Answer后,记录路由信息,开始发送数据。若没有到目的节点的有效信息,等待一段时间后重发Route Ask。重复一定次数后停止获取路由,终止此次数据发送过程。(3)路由错误(Route Error)若某节点判断其邻居节点不可达时,则查找与故障节点相关的路由表项,转发故障信息,然后将故障节点从邻居列表中删除。其他节点收到 Route Error后,将相应的路由置为无效。(4) Alive Notify机制所有节点周期性的发送Alive Notify报文,以便发现故障节点和新加入的节点。参见图5,节点收到Alive Notify报文后,若已有报文发起者的信息,则更新相应节点的生命期;若无相应信息,则新增邻居节点。对于在给定时间内无Alive Notify报文发出的节点,其邻居节点认为其不可达,按照(3)的方式转发故障节点的信息。上述方法中,如果目的节点收到多个Route Ask(—般非同时收到),先比较Route Ask的ID, ID相同或者更大则无条件回复Route Answer,若Route Ask的ID较小,则丢弃该请求,这就保证了发起节点能收到多个路由信息;发起节点收到多个Route Answer的情况下,会根据一定的原则挑选出主用路由和备用路由。上述方法中,路由表项中含有唯一的发起节点IP和Route Ask ID对,某节点发现邻居节点出现故障后,查找与故障节点相关的路由表项,转发故障信息,下一节点收到 Route Error后根据唯一的发起节点IP和Route Ask ID对将相关路由表项置为无效。以具体的详细流程为例如图1所示,本发明用于小卫星星座通信的无线自组织网络路由方法中,当节点需要发送数据时,先查看路由表里是否有到目的节点的路由表项。其中,路由表项的结构为-发起节点IP地址(OIP);-路由请求消息标识(RouteAsk ID);-目的节点IP地址(DIP);-目的节点序列号(DSN);-跳数(HopCount,到达目的节点需要的跳数,比较主备用路由时使用)-下一跳(Next Hop);
由);
-前驱节点(保存使用本条路由的直接前驱节点); -是否有效(本路由项是否可用); -生命(Lifetime,路由的有效时间);
-主备用标志(标识本条路由主用还是备用,当主用路由不可用时使用备用路
若有相关路由表项,则查看路由是否过期,路由不过期就可以按照该路由向目的节点发送数据;否则,发起节点发出Route Ask,其中包含发起节点和目的节点的信息,同时增加自己的序列号。其中,Route Ask报文格式如下+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+I Type (种类)|U|Reserved(保留)|Hop Count (跳数)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IRoute Ask ID (路由请求消息标识)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IDestination IP Address (目标节点 IP 地址)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IDestination Sequence Number ( gfei )+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IOriginat or IP Address (发起节点 IP 地址)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IOriginator Sequence Number (发起节,点序歹Ij号)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Route Ask 报文格式字段含义Type:报文类型编号。U =Unknown,即目标节点序列号未知。Hop Count:从发起节点到处理该请求的节点的跳数。若某节点刚收到此Route Ask,则此节点到发起节点的跳数为Hop Coimt+1。Route Ask ID :路由请求消息标识。用它和发起节点IP就可以唯一标识一个Route Ask信息。Destination Sequence Number (DSN)目标节点序列号,发起节点所知的目标节点最新序列号。Originator Sequence Number(OSN)发起节点序列号,即发起者路由表项中将要使用的序列号。如图2所示,邻居节点收到Route Ask后,先查看OIP字段,若是自身产生的或者已经收到过相关请求(提取Route Ask ID,若此ID大于自身保存的ID,则说明未收到过相关请求)或等于自身保存的ID但跳数较大则丢弃分组,否则,则进一步判断是否需要添加或更新到Route Ask发起节点的反向路由信息(否则丢弃请求,不再继续处理)。若该节点非目的节点,则修改DSN和Route Ask的跳数并转发给邻居节点。若该节点为目的节点,那么收到发给自身的Route Ask时,先比较Route Ask ID, ID相同或者更大则向发起节点回复Route Answer,同时更新自己的序列号;若Route Ask 的ID较小,则丢弃该请求。Route Answer报文格式如下+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+I Type|Reserved| Hop Count+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IDestination IP Address (目标节点 IP 地址)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IDestination Sequence Number ( gfei )+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IOriginator IP Address (发起节点 IP 地址)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ILifetime 生命期+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Answer报文格式如图3所示,当中间节点收到Route Answer后,记录或更新到Route Answer目的节点(为方便表述,定义Route Ask报文的目的节点与Route Answer目的节点一致)的路由,同时将Route Answer转发给指向发起节点的路由项的下一跳。由于Route Ask目的节点没有比较先后到达的Route Ask的跳数大小,所以可能会发出若干个包含不同路径信息的Route Answer0 Route Ask发起节点收到第一个对应的Route Answer后,通过Route Answer的IP包信息可获知此Route Answer的前驱节点,从而将其作为下一跳记录一条到达目的节点的路由项;对于后续到达的Route Answer,如果仍然是从前一个Route Answer 的前驱节点收到的,则比较跳数,若跳数较小则更新路由项,否则丢弃此Route AnswerJn 果是从一个新的节点收到Route Answer,则建立一条路由表项,并比较两条路由表项的跳数,将跳数较小的路由表项设置为主用,另一条设置为备用。再次接收到Route Answer时, 先比较跳数,若小于路由表中的路由项跳数,则更新路由表项中跳数较大的表项,且根据跳数大小设置备用和主用路由。一旦建立的路由表,发起节点就可以向目的节点发送数据,如图1 ;若节点没有到目的节点的有效信息,等待一段时间后重发Route Ask,但其Route Ask ID增加1。重复一定次数后停止获取路由,终止此次数据发送过程。在整个过程中,若某节点收到路由错误分组,如图4,则判断其邻居节点不可达 (可能是死机或者重启了,也有可能是移动到信号不可达的地方了),然后查找下一跳节点为故障节点的路由表项,向其前驱节点发送Route Error,其中包含故障节点的信息、Route Ask ID和此路由表项发起节点的IP ;同时查找前驱节点为故障节点的路由表项,向其下一跳节点发送Route Error,其中包含故障节点的信息、Route Ask ID和此路由表项发起节点的IP ;然后在邻居列表中将故障节点置为无效,等待过期后删除。其他节点收到Route Error后,将与发起节点IP和Route Ask ID对相应的路由置为无效,向其前驱或下一跳节点发送Route Error,然后删除路由表项。若发现相应路由表项的前驱和下一跳为空,则不再转发Route Error0 Route Error报文格式如下
0089]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0090]I Type|Reserved| DestCount
0091]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0092]IRoute Ask ID (路由请求消息标识)
0093]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0094]IOriginator IP Address (发起节点 IP 地址)
0095]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0096]IUnreachable Destination IP Address ( ^^ ! ^jfttlt)
0097]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
0098]Route Error 艮文格式
0099]为保证整个网络拓扑的实时性,所有节点周期性的发送Alive Notify报文,以发现原有节点的故障和新加入的节点,其格式如下
0100]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0101]I Type (种类)ILifetime 生命期
0102]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0103]IOriginator IP Address (发起节点 IP 地址)
0104]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0105]IOrigiriat or Sequence Number (歹)
0106]+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0107]Alive Notify 报文格式
0108]参见图5,节点收到Alive Notify报文后,若自身已有报文发起者的信息,则更新相应节点的生命期;若自身无相应信息,则新增邻居节点。对于在给定时间内无Alive Notify报文发出的节点,其邻居节点认为其发生错误(可能是死机或者重启了,也有可能是移动到信号不可达的地方了),查找下一跳节点或者前驱为故障节点的路由表项,向其前驱节点或者下一跳发送Route Error,其中包含故障节点的信息、Route Ask ID和此路由表项发起节点的IP ;最后将故障节点和从邻居列表中删除,并删除过期的相关路由表项。
其中,对于序列号的具体管理过程为每一个节点的每一个路由表项必须包含关于目的节点(路由表就是为此而维护的)IP地址的序列号的最新可用信息,即目的序列号。 如果在任何时候一个节点接收到了新的Route Ask, Route Answer,或者HELLO消息(这些消息跟目的节点可能有关系),目的序列号就会更新。在朝向目的节点的路径过期了或者崩溃了(通过RERR消息获知)的时候,节点简单的删除相应路由项,不再更新相应节点的序列号。网络中的每一个节点都维护其目的序列号,可以保证朝向这个目的节点的所有路由
8路径都是无环路的。在以下情况下,节点会改变序列号1.在一个节点发起一个路径发现的请求之前,它必须增加它自己的序列号。这样, 对于已经建立好了的朝向Route Ask消息发起者的反向路由来说,可以防止本次请求与其相冲突。2.在目的节点生成Route Answer消息以响应Route Ask消息之前,它必须更新它自己的序列号,新的值是它目前的序列号和Route Ask消息包中目的序列号的较大者。(一般情况下,目的节点的当前序列号不小于Route Ask中的目的序列号,为响应Route Ask而发送RouteAnswer时不必更新自身序列号,但在目的节点在刚刚重启后接收到一个Route Ask时,当前序列号为0,此时目的节点更新自己的序列号为Route Ask中的序列号。)3.节点接收到了一个拥有关于目的节点序列号的新信息的消息(包括Route Ask、Route Answer和HELLO),则节点需要更新目的路由表项中的目的节点序列号。4.节点收到的消息中的目的节点序列号小于本节点保存的相应节点序列号,那么该节点更新所收到的消息中的目的节点序列号;当目的节点要增加它的序列号时,它必须以无符号数的形式来处理序列号。为了确定目的节点的信息是否是新的,当前节点会拿自己目前的序列号数跟接收到的信息中的序列号数相比较。这个比较必须使用有符号数,它对于完成序列号循环轮转是必须的。如果从接收到的序列号数减去当前序列号的结果小于0的话,那么这个接收到的有关目的节点的信息就必须被丢弃,因为跟节点当前所保存的信息相比,接收到的信息更加陈旧。以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例, 凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
权利要求
1.一种用于小卫星星座通信的无线自组织网络路由方法,其特征在于步骤为(1)路由查询在需要时,发起节点发出路由查询RouteAsk,其中包含发起节点和目的节点的信息;当中间节点收到Route Ask后,先根据其中的信息判断此Route Ask有效且最新,不满足则丢弃;若满足,则判断是否需要添加或更新到Route Ask发起节点的反向路由信息,最后修改Route Ask的跳数并转发;(2)路由回应目的节点收到发给自身的RouteAsk时,向发起节点发送路由回应 RouteAnswer ;当中间节点收到Route Answer后,记录或更新路由,同时将Route Answer转发;Route Ask发起节点收到Route Answer后,记录路由信息,开始发送数据;若没有到目的节点的有效信息,等待一段时间后重发Route Ask ;重复一定次数后停止获取路由,终止此次数据发送过程;(3)路由错误若某节点判断其邻居节点不可达时,则查找与故障节点相关的路由表项,转发故障信息,然后将故障节点从邻居列表中删除;其他节点收到Route Error后,将相应的路由置为无效;(4)Alive Notify机制所有节点周期性的发送Alive Notify报文,以便发现故障节点和新加入的节点;节点收到Alive Notify报文后,若已有报文发起者的信息,则更新相应节点的生命期;若无相应信息,则新增邻居节点;对于在给定时间内无Alive Notify报文发出的节点,其邻居节点认为其不可达,按照步骤⑶的方式转发故障节点的信息。
2.根据权利要求1所述的用于小卫星星座通信的无线自组织网络路由方法,其特征在于如果目的节点收到多个Route Ask时,先比较Route Ask的ID ;如果ID相同或者更大则无条件回复Route Answer,若Route Ask的ID较小,则丢弃该请求。
3.根据权利要求1所述的用于小卫星星座通信的无线自组织网络路由方法,其特征在于所述路由表项中含有唯一的发起节点IP和Route Ask ID对,某节点发现邻居节点出现故障后,查找与故障节点相关的路由表项,转发故障信息,下一节点收到Route Error后根据唯一的发起节点IP和Route Ask ID对将相关路由表项置为无效。
全文摘要
一种用于小卫星星座通信的无线自组织网络路由方法,其步骤为(1)路由查询在需要时,发起节点发出路由查询Route Ask,其中包含发起节点和目的节点的信息;(2)路由回应目的节点收到发给自身的Route Ask时,向发起节点发送路由回应Route Answer;(3)路由错误若某节点判断其邻居节点不可达时,则查找与故障节点相关的路由表项,转发故障信息,然后将故障节点从邻居列表中删除;其他节点收到Route Error后,将相应的路由置为无效;(4)Alive Notify机制所有节点周期性的发送Alive Notify报文,以便发现故障节点和新加入的节点。本发明可大大提高路由策略的可靠性、鲁棒性、安全性,且能提高路由效率。
文档编号H04L1/16GK102202333SQ20111017238
公开日2011年9月28日 申请日期2011年6月24日 优先权日2011年6月24日
发明者吴纯青, 殷齐鹏, 苏金树, 虞万荣, 赵宝康, 陶静, 黄杰 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1