一种面向智能终端自组网的BATMAN-Adv协议优化设计方法转让专利
申请号 : CN201910007323.6
文献号 : CN109600312B
文献日 : 2021-03-12
发明人 : 殷俊 , 姚毓昆
申请人 : 南京邮电大学
摘要 :
权利要求 :
1.一种面向智能终端自组网的BATMAN‑Adv协议优化设计方法,其特征在于:包括步骤:步骤一:本地节点记录关于任意一个源节点始发的源节点消息OGM中最新的序列号;当某一节点收到邻居节点发来的始于某一源节点的OGM包,查看其序列号大小,如果该序列号比本地所记录的关于该源节点的最新消息的序列号小,将该OGM包丢弃;如果该序列号比本地所记录的关于该源节点的最新消息的序列号大,将其OGM包中的消息字段中的路径质量度量值TQ值覆盖在原先这条从该邻居节点到达源节点的路径的TQ值上,完成对该邻居节点到达源节点的路径质量度量值更新,并转入步骤二;
步骤二:将更新之后的该邻居节点到达源节点的路径质量度量值TQlocal与该节点到该邻居节点的路径质量度量值TQOGM进行乘法运算,得到从该节点以该邻居节点为下一跳,到达源节点的总路径质量度量值,记为TQglobal;并将其写入OGM包中的消息字段,然后将该OGM包泛洪转发给其余邻居节点,并转入步骤三;
步骤三:重复步骤一和步骤二,该节点分别记录自己的所有邻居节点传来的最新OGM消息字段中的TQOGM值与自身到该邻居的TQlocal进行乘法计算后的TQglobal,选出最大的TQglobal,并将其对应的邻居节点作为该节点传递给源节点的最优下一跳;当收到通信请求时,转入步骤四;
步骤四:某一节点收到其邻居节点传来的数据帧,查看其目的地址,查询自身路由表中是否有与之对应的路由,如果不存在,将数据帧丢弃;如果存在,按路由进行转发,进入步骤五;
步骤五:若自身与下一跳节点的链接状态正常,则自身的数据转发任务结束;若链路此时为down的状态,数据帧无法传递,则将该数据帧存入缓存,并立即向其所有的邻居节点通告OGM,该OGM的序列号为最新的,其消息字段的该链路的TQ值置为0,转入步骤六;
步骤六:等待设定时间,如果在这段时间内,链接状态恢复正常,立即通过该路径将数据帧传递给该下一跳,并立刻向其所有的邻居节点通告OGM,该OGM的序列号为最新的,其消息字段的TQ值为按原协议数学算法重新计算的;如果直至最大缓存时间结束,链接状态仍未恢复正常,则丢弃数据帧。
2.根据权利要求1所述的BATMAN‑Adv协议优化设计方法,其特征在于:所述设定时间为OGM周期更新时间的四倍。
说明书 :
一种面向智能终端自组网的BATMAN‑Adv协议优化设计方法
技术领域
背景技术
自恢复、高抗毁的能力,可以支撑数据、话音、视频等多媒体业务的多跳传输,可应用于野外
作业、临时会议、楼宇通信、无线监测、车辆组网、公安消防、反恐特勤、矿井作业、抢险救灾
等近距离通信组网场合。
的位置,同时也用于发现和保持路径。通过泛洪消息,网络中的每个节点就可以知道其他节
点的存在,同时也维护了一个到达其他节点的可行的下一跳。而在可行的下一跳当中,会使
用Bellman‑Ford算法选择一个最好的下一跳,选择的根据是链路的质量度量值,称为TQ值。
传输路由信息。协议封装并转发所有数据直接到达目的节点,模拟出一个虚拟的网络交换
环境。因此,所有节点就像处于本地链接,它们不了解网络的拓扑情况,也不会受到网络变
化的影响。这种设计有一些有利的特点。如对于网络层的透明性,由于协议工作在数据链路
层,网络层的协议是不可知的,设备中协议在启动时,并不一定要分配IP地址后才能工作。
网络层的透明性大大提高了协议的可扩展性。
动,网络拓扑变动较大,可能会造成路由的动荡,丢包率过高甚至路由环路的出现。
检查路由的新旧程度,所以在这种转发机制中,假如有一个含有更新的序列号是通过次优
路径到达某节点的话,该节点也会将最优路径上的平均值写入消息的字段,然后广播出去。
这种快速转发机制使得节点对于路径的变化不敏感,当原先最优路径发生改变的时候,节
点在一定时间内还按照原先最优路径的平均值来重新广播OGM消息,这就很容易产生次优
路径甚至环路,下面举一个例子来阐述原BATMAN‑Adv协议的机制和产生的问题:
中的TQ值大小可以看出,节点4虽然与节点 1是直连的,但是其去往节点1走节点2的路径质
量更优,所以当前节点4向节点1传输数据的最优路径为4‑>2‑>1。图1(右)是某一时刻节点2
突然失效,所有与节点2相关的无线链路都发生了故障,节点4不再能够通过节点2接收来自
节点1的OGM消息,而是直接接收来自节点1的消息。由于快速转发机制的存在,节点4在对外
重新广播OGM的时候,仍然使用这时候的最优TQ值,即 30。那么节点4认为传输数据给节点1
目前最优的下一跳为节点3,同理,节点 3认为与节点1通信的最优下一跳为节点4。那么当
节点4发数据给节点1的时候,数据帧会发给节点3,节点三收到之后再次转发给节点4,这样
数据帧就在节点3、4之间来回传递,直到TTL值变为0,该数据丢失。所以,需要一个避免环
路,增强BATMAN‑Adv协议重收敛性能和降低数据丢失率的方法。
发明内容
优化改进,在降低数据丢失率的同时加快了重收敛速度,使数据传输更为稳定。
所记录的关于该源节点的最新消息的序列号小,将该OGM 包丢弃;如果该序列号比本地所
记录的关于该源节点的最新消息的序列号大,将其OGM包中的消息字段中的路径质量度量
值TQ值覆盖在原先这条从该邻居节点到达源节点的路径的TQ值上,完成对该邻居节点到达
源节点的路径质量度量值更新,并转入步骤二;
跳,到达源节点的总路径质量度量值,记为TQglobal;并将其写入 OGM包中的消息字段,然后
将该OGM包泛洪转发给其余邻居节点,并转入步骤三;
TQglobal,并将其对应的邻居节点作为该节点传递给源节点的最优下一跳;当收到通信请求
时,转入步骤四;
步骤五;
点通告OGM,该OGM的序列号为最新的,其消息字段的该失效链路的TQ值置为0,转入步骤六;
的,其消息字段的TQ值为按原协议数学算法重新计算的;如果直至最大缓存时间结束,链接
状态仍未恢复正常,则丢弃数据帧。
完整性。
附图说明
具体实施方式
径质量度量值TQ计算上,不再采用原协议中将丢包造成的TQ 值变化和原先稳定链路的TQ
值进行平均操作的算法,改为将邻居节点发来的最新序列号的OGM包中消息字段的TQ值作
为从该邻居节点到达此OGM源节点的路径质量度量值的参考;其次,在数据层面节点转发数
据帧去往目的地的时候,不再采用原协议中如果此刻下一跳邻居节点为不可达状态,直接
丢弃数据帧的做法,改为将数据帧缓存一段时间的机制。
包中记录的去往该源节点的路径信息是比本地更旧的,就将该OGM包丢弃;如果该序列号比
本地所记录的关于该源节点的最新消息的序列号大,即意味着该OGM包中记录的去往该源
节点的路径信息是比本地更新的,就将其消息字段中的TQ值覆盖在原先这条从该邻居节点
到达源节点的路径的 TQ值上,完成对该邻居节点到达源节点的路径度量值更新,并转入步
骤二。该路径度量值更新部分如图2流程图所示。
达源节点的总路径质量度量值,记为TQglobal。将该TQ值写入OGM中的消息字段,然后将OGM泛
洪转发给其余邻居节点,并转入步骤三。
那个TQglobal,并将其对应的邻居作为数据传递给源节点的最优下一跳,即意味着:自己将数
据传递给该邻居,继而逐跳到达最终接收者的这一路径是最优的。
步骤六。
缓存,同时转入步骤七。等待一段时间(设为 MAX_CACHE_TIME,在本发明中,该时间设置视
情况而定,一般设置为OGM 周期更新时间的四倍):如果在这段时间内,链接状态恢复正常,
立即通过该路径将数据帧传递给该下一跳,同时转入步骤八;如果直至最大缓存时间结束,
链接状态仍未恢复正常,则丢弃数据帧。步骤五、六的数据转发流程图如图3所示。
传输时不会再使用这条路径。
目的节点,如果d∈P,则从源节点s到目的节点d的数据在link(s,d)上传输,link(s,d)∈N;
如果d不属于P,则该数据需要经过多跳传输,其链路由link(s,i)构成,其中i是P中的一个
成员,link(s,i)是链路组L中的一条链路。子网络S=(X‑{s},L‑{(s,i),i∈P})。
点x获得的关于该源节点的最新序列号。可以得到:
的最终TQ值便为从本地节点以邻居节点x为下一跳,最终到达源节点o的总路径质量度量
值,并将其赋值给该路径权重w。当本地节点收到去往o的数据帧,比较其以每个邻居结点为
下一跳,最终到达源节点o 的总路径权重值,选择出最大的路径权重,以该条路径进行数据
转发。
设节点4从节点2收到了一个新的OGM包,其中序列号为 101,TQ=5,由于新OGM包的序列号
101大于当前记录的以节点2为下一跳去往节点1的最大序列号100,所以节点4会对以节点2
为下一跳去往节点1的链路link(4,2)的TQ值进行更新,更新之后的TQ值为5。假设节点4又
从节点 3收到了一个新的OGM包,其中序列号为97,TQ=4,由于新OGM包的序列号 97小于当
前记录的以节点3为下一跳去往节点1的最大序列号98,所以节点4 直接丢弃该OGM包,不对
TQ值作更新。
TQ为5,则赋予各链路权重w21=3,w31=2,w42=14, w43=5。此时节点4传递数据给节点1,先
对link(4,2)的权重w42和link(4,3) 的权重w43进行比较,经比较w42更大,所以节点4选择将
数据传递给节点2;节点2收到数据后,也会比较它到目的节点1的所有路径的权重w,该例节
点2到节点1只有一条路径link(2,1),所以节点2将数据直接交付给节点1,完成数据传递过
程。
(MAX_CACHE_TIME,可根据实际情况进行设置),如果在这段时间内,节点2到节点1的连接恢
复正常,则节点2立即将数据帧发送给节点1;如果直到最大缓存时间结束,节点2到节点1的
连接仍未恢复正常,则节点2将数据帧丢弃。
节点2去往节点1的总路径TQ为0,即这条路径不可到达节点1,此时去往节点1走下面的以节
点3为下一跳的路径为优,数据便通过节点3转发给节点1。
新计算去往节点1的各路径TQ值,选出最大的,今后发送数据去往节点1时优选TQ最大的那
条路径。
量、形状、位置等),这些等同变换均属于本发明的保护。