[0031] 以下将结合附图,对本发明的技术方案进行详细说明。
[0032] 如图1所示是本发明的通信网络结构图。从源节点到目的节点之间的两条节点独立路由由Route1(A1A2…An)和Route2(B1B2…Bn)组成,两条路径没有公共节点。下面对本发明的机制进行详细介绍。
[0033] 1、路由建立
[0034] 在路由建立过程中,通过路由请求(RREQ)和路由回复(RREP)两个机制建立路由。
[0035] 当源节点有数据要传输到目的节点时,源节点先在自己之前记录的未过期的路由表中查找是否有到目的节点的路由,若有则直接传输数据,若没有则需要发起路由请求RREQ,在路由请求洪泛期间,中间节点如果有到目的节点的路由,也不进行路由回复RREP,由目的节点统一进行路由回复。
[0036] 如图2所示是本发明的目的节点回复RREP信息示意图。路由回复过程:当RREQ传输到目的节点,目的节点沿着传输RREQ过来的上一跳节点,立即产生路由回复RREP包,并记录相应信息到路由表中。
[0037] 如图3所示是本发明的中间节点转发RREP示意图。当中间节点1收到目的节点传送过来的RREP信息时,中间节点1根据自己的RREQ表判断下一跳为跳数最小的节点4,于是节点1将RREP转发给节点4,同时,节点2、3、5、6也收到节点1发送过来的RREP信息,那么节点2、3、5、6删除自己RREQ表关于节点1的记录,这种行为是为了确保所寻找的路径为节点独立路径。
[0038] 如图4所示是本发明的节点从RREQ表中删除某一节点记录示意图。节点2的RREQ表中记录了关于节点1的信息,当节点2收到节点1发出的RREP时,节点2在自己的RREQ表中删除节点1的记录,邻居节点3、5、6的处理过程类似。
[0039] 如图5是本发明的节点转发RREP信息示意图。当节点2收到目的节点发送的RREP信息时,节点2在自己的RREQ表中查找到源节点跳数最小的下一跳节点。节点2在自己的RREQ表中找到到源节点跳数最小的下一跳为节点5,于是将RREP信息传给节点5。
[0040] 当目的节点回复RREP到节点2时,节点2查询自己的RREQ表,在删除节点1的记录前,节点2可以将RREP转发给到源节点只有跳的节点1,但是为了确保路径的独立性,节点2在收到节点1转发的RREP信息时已经将节点1的记录从RREQ表中删掉,此时,节点2只能将RREP信息转发给节点5。
[0041] 如图6是本发明的路由建立示意图。当源节点S接到RREP信息时,路由协议在源节点S与目的节点D之间建立了最多三条路径。其中最短路径即跳数最小的路径S->1->……->2->D作为主路径,优先进行数据传输,路径S->3->……->4……->5->D与路径S->6->……->
7……->8->D作为备用路径。改进的路由协议建立的路由表格式如表1所示。
[0042] 表1
[0043]
[0044] 2、路由发现
[0045] 为了寻找多条路径的需要,中间节点需要记录周围传输RREQ给自己的邻居节点的信息到RREQ表中,并在反向路由表中记录节点相关信息,对于接收到相同ID号的RREQ包,中间节点不予丢弃,需要记录其相关信息到RREQ表中。同时为了在节点数据链路断裂之后能将数据传输至另外一条备用路径上,还需要将邻居节点信息存储到节点的邻居路由表里,同时设置一个布尔标志位FLAG判断该节点是否在数据传输路径上。
[0046] 由于周围节点数量可能较多,本发明中间节点只记录三个到源节点最小跳数的上一跳节点信息到RREQ表中,RREQ表的格式如表2所示。
[0047] 表2
[0048]
[0049] 如图7所示是本发明的节点的RREQ表的记录个数图。在路由发现期间,节点N1周围的邻节点为节点1、2、3、4、5,RREQ信息中记录的到源节点的跳数分别5、4、3、6、4,当节点N1收到周围邻节点传过来的RREQ信息,节点N1通过比较RREQ信息中的跳数,记录三个最小跳数的RREQ信息到自己的RREQ表中,图中记录了邻居节点3、2、5的信息节点N1的RREQ表中。当后面收到RREQ信息时,通过比较,跳数大的丢弃,跳数若小于记录中的一个,则删除记录中的最大跳数信息,并更新此RREQ信息到节点的RREQ表中。
[0050] 具体的记录规则如下:
[0051] 若邻节点小于等于三个,则将其传过来的RREQ信息记录到节点的RREQ表中,某个邻节点重复传送RREQ时,若记录中的跳数小于传过来的RREQ信息中的跳数,则丢弃此RREQ信息,否则更新相关邻节点在RREQ表中最小跳数的信息。
[0052] 若邻节点大于三个,则节点通过比较传过来的RREQ信息中到源节点的跳数,记录其中三个最小跳数的,当传过来的RREQ信息在RREQ表中无记录且其到源节点跳数小于三个记录中的跳数,则删除三个记录中跳数最大的记录,将此RREQ信息更新到RREQ表中。
[0053] 3、路由维护
[0054] 如图8所示是传统路由方法路径断裂后的处理示意图。当传输数据的路由断裂之后,传输数据链路的上一跳节点将数据包丢弃,并发送路由错误RRER给源节点,源节点收到路由错误包RRER之后,在自己的备用路径之中寻找剩下路径中的最小跳数的路径,若找到备用路径,则将数据传输出去,若没有找到备用路径,则源节点将进行新一轮的路由请求。BC链路断裂,节点B发送路由错误RRER到源节点,源节点在备用路由中查找到路径A->E->F->G->D可以到达目的节点,随之将数据包沿此备用路径传输出去。若路径A->E->F->G->D在传输过程中叶断链,则源节点继续在备用路径中查找到路径A->H->I->J->D,若路径A->H->I->J->D也在传输过程中断链,则当源节点收到RRER时,立即重新进行路由请求发送。在此次路径断裂后的处理过程中,节点B在出错之后发送RRER到源节点,然后源节点重新查找路径并传输数据包,若找到备用路径,则继续进行数据传输,若没有找到,则重新进行路由请求。
[0055] 如图9所示是本发明的节点记录的邻居列表示意图。节点在邻居节点列表增加了一个布尔变量的标志位,该标志位表明了哪个邻居节点在路由传输路径上,当数据链路断开时,发送一个跳数为1的路由错误包到FLAG标志为true邻居节点,邻居节点在收到路由错误包后,将自己到目的节点的跳数回传给断链节点,断链节点在收到各邻居节点回传的信息后,经过比较找到到目的节点跳数最小的邻居节点,然后将数据包传送过去,邻居节点在收到传输数据后,按照路由建立过程中建立好的独立路径,继续依照跳数最小路由机制进行传输。节点邻居列表记录邻居节点在独立路径上。
[0056] 节点0的邻居列表,邻居节点1、2、3、4、5、6,其中节点1、3、5、6在独立路径上,所以在节点0的邻居路由表中,其相应的FLAG字段为true,表明其在独立路径上,当节点0传输数据断链,节点0将会给节点1、3、5、6发送一个跳数为1的错误信息包,节点1、3、5、6将自己到目的节点的跳数回传给节点0,节点0收到回传的信息后,判断将数据包发送给哪个邻居节点。
[0057] 如图10所示是本发明的传输数据节点断链之后的处理示意图。由于节点的移动,正在传输数据的节点0与下一跳节点断链,此时,节点0查找自己的邻居路由表,将错误信息发送给邻居节点1、3、5、6,节点1、3、5、6将自己到目的节点的跳数回传给断链的节点0,节点0收到回传的信息后,通过判断,节点3到目的节点的跳数最小,所以节点0将数据包转发给节点3,节点3收到数据包后,沿着路由建立过程中建立好的路径继续转发数据包,直到到达目的节点。同时,节点链路断裂的节点0回复路由错误包给源节点,节点0或做本地修复,或者源节点重新发起路由请求,建立新的多径路由。
[0058] 4、仿真实验
[0059] 如图11所示是本发明路由协议(I-AODVM)的不同速度寻找到的路径数示意图。可以看出,在节点数不一样的时,路由协议建立的路径条数也不一样,且随着节点数的增加,路径的条数呈增加的幅度,但总体的幅度并不大,基本维持在1-3条之间。当速度由100m/s提高到200m/s,节点移动速度加快,网络拓扑变化的速度提高,路径数下降的趋势比较明显。此外,在节点数较少时,速度越大平均路径条数差距越大,在设置场景中,当节点数达到60-70时,路径数有个陡增的趋势,节点数目继续增加时,速度对于路径条数的影响不再那么大,差距越来越小。所以对于航空自组网而言,由于飞行器的速度可慢可快,而且速度快的时候可以达到几个马赫,这给路由建立造成了一定的困难,而本文研究的基本上是速度相对正常的飞行器(例如普通的民航飞机、低速的军用飞机或直升机),并没有给予较快的速度。
[0060] 如图12所示是本发明的不同节点数目下数据端到端时延示意图。当节点增加到80甚至更多时,延时的改进越来越明显,这是由于节点密度增加,即使路由移动造成断链,但周围在独立路径上的节点在可通信范围内,断链后可立即寻找附近备用独立路径的概率增大,所以传输延时的改进在节点数多时比较明显。
[0061] 图13所示是本发明的不同节点数目下数据包到达率示意图。随着节点数增多,数据包的到达率在增大,这是因为节点数增多,相同场景下节点密度增大,多径路由协议寻找到的路径数增加,而且密度增大,断链节点寻找到备用独立路径概率增大,当断链时可以立即启用备用路径,保证了数据包的到达率。
[0062] 如图14所示是本发明的不同速度下端到端数据传输时延示意图。在节点移动速度较慢时,三种协议的传输时延差距并不是很大,而当节点移动速度增加时,网络拓扑变化加快,节点之间的通信断链的概率加大,这样在较大速度的情况下,多径路由的优势就体现出来了,而且在速度较快的情况,网络性能下降,节点传输相同的数据包,所用的时间也会增加。本发明在数据端到端的传输时延性能上得到较为明显的改善。
[0063] 如图15所示是本发明的不同速度下数据包的到达率示意图。当节点速度增大时,传输数据的链路断裂的概率增大,且速度越快,断链概率越大,所以当速度增加到200m/s的时候,本发明在数据断链时,启用另外一条路径传输,虽然节点速度增加造成网络拓扑变化加剧,但还是保证了一定的到达率。在节点移动的情况下,可以减少再次断链的概率,进一步提高了数据包到达率。
[0064] 仿真实验证明,本发明提出的新的航空自组路由方法在不同节点数目、速度情况下,数据包的到达率、端到端数据传输时延等性能有较大的提高。
[0065] 综上所述,本发明提出了航空自组网路由问题,在路由发现阶段寻找最多三条最短独立路径,在中间节点通过筛选,在RREQ表中记录到源节点最小跳数的三个记录,大大减少了节点存储压力,防止路由请求的洪泛造成网络拥塞而导致的网络性能大幅下降,而且记录的跳数最小可以有效找到源节点到目的节点的最短路径。同时,在路由维护阶段,当节点传输路径断链,在节点的邻居节点中找寻备用独立路径上到目的节点最小跳数的节点,然后将数据传送过去,并继续在另外一条路径上继续传输至目的节点。较大幅度地提高了数据包的到达率、降低了端到端数据传输时延。
[0066] 实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。