HWMP和Batman-adv路由协议对比研究
2019-10-08林金锋
摘 要: 根据无线网络的特点和需求,IEEE802.11工作组提出了二层路径转发的概念,即在数据链路层通过Mac地址进行数据转发。HWMP(Hybrid Wireless Mesh Protocol)和Batman-adv(Better Approach to Mobile Ad-hoc Networking Advanced)都是基于数据链路层的路由协议,本文通过对两种协议的原理进行介绍,并在相同条件下进行对比实验,分析两种路由协议的传输稳定性和路由收敛性。结果表明Batman-adv路由协议在传输稳定性方面比HWMP表现更优,在收敛性方面表现HWMP和Batman-adv路由协议表现都较好。
关键词: 无线Mesh;路由协议;Batman-adv;HWMP;稳定性;收敛性
中图分类号: TN915.04 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.06.026
本文著录格式:林金锋. HWMP和Batman-adv路由协议对比研究[J]. 软件,2019,40(6):119122
【Abstract】: According to the characteristics and requirements of wireless network, the IEEE802.11 working group proposed the concept of two-tier path forwarding, that is, data forwarding through Mac address in data link layer. Both HWMP (Hybrid Wireless Mesh Protocol) and Batman-adv (Better Approach to Mobile Ad-hoc Networking Advanced) are routing protocols based on data link layer. This paper introduces the principles of the two protocols, and makes comparative experiments under the same conditions to analyze the transmission stability and routing convergence of the two routing protocols. The results show that Batman-adv routing protocol performs better than HWMP in transmission stability and convergence.
【Key words】: Wireless mesh; Routing protocol; Batman-adv; HWMP; Stability; Convergenc
0 引言
目前大部分网络的路由过程都是通过OSI模型第三层即网络层进行实现的,这种模式被证明是非常有效的[1-3]。IEEE802.11工作组根据无线网络的特点和需求,提出了基于数据链路层的路由[4]。基于数据链路层的路由有以下三点优势:(1)能有效降低数据包在协议栈中传递的复杂度;(2)可以使网络层不受下层多跳网络的影响;(3)不需要修改上层协议,协议可以在TCP/IP基础上进行修改,可移植性好,可靠性高[5]。
HWMP路由协议是IEEE802.11s协议标准默认的路由协议,该协议具有主动式和被动式两种路由模式,主动式路由周期性广播路由信息,延时小;被动式不需要周期性广播路由信息,仅在需要时才从源节点创建,节省网络资源[6]。Batman-adv路由协议也是基于链路层的路由协议,它是从Batman路由协议改进而来,具有源代码开源、可移植性好、安全性高的特点,成为了无线Mesh网络路由协议的研究热点[7]。
1 HWMP路由协议原理
HWMP的两种工作模式依赖于不同的配置。
按需模式:HWMP的按需模式是由Ad Hoc的AODV(Ad hoc On-Demand Distance Vector Routing)基于L2的Mac地址的改進[8]。该模式下,平时节点不发送消息,仅仅当网络中一个节点向另一个节点发送数据的时候,此时,根据数据接收的目的地址计算最优路径。具体的实现过程为:如图1所示,当节点A需要向节点D发送数据,节点A会以广播的方式发送含有目的节点D的Mac地址的PREQ(Path Request)消息,Metric字段初始值为0。节点B、C、D收到PREQ,根据PREQ消息的SN(Sequence Number),首先进行判断,该PREQ消息中的SN是否比本地路由表中存在的SN值大,如果更小,不进行回复,如果相同,再比较PREQ消息中的Metric值,是否比本地路由列表中的Metric值更大,如果不是不进行回复,如果是则生成或更新到源节点的路径信息,并且广播给其邻节点。无论是中间节点B、C还是目的节点D,当其收到PREQ消息的时候,PREQ消息字段的Metric值都是本节点到源节点链路的Metric值的累加和。节点B和C继续广播PREQ消息给邻节点,直到到达目的节点D,然后转发目的节点回复的PREP(Path Reply)消息。目的节点收到PREQ后直接单播PREP消息给源节点A。这样,源节点就生成了到目的节点的所有路径的路由表项,根据Metric值选择一条最优Metric的链路进行数据的传输。
主动路由模式:HWMP协议工作在主动模式时,有两种机制,一种是通过广播PREQ消息,另一种是发送RANN[9]。这里只对PREQ工作机制进行介绍。当节点开始工作时,节点A开始广播PREQ消息给其邻节点,这里和按需模式不同的是,PREQ字段的目的地址设为广播地址。PREQ中的Metric字段同样初始化为0,并且随机生成一个SN值,每转发一次,SN值加1。邻节点收到PREQ消息后,更新PREQ消息中的Metric值,然后邻节点继续将PREQ消息转发给其邻节点,不断重复下去。每个节点都会收到来自相同源节点的PREQ消息,节点根据SN值进行处理,新收到的PREQ消息SN值大于已经收到的PREQ消息的SN值,或者相等但是Metric值更小,则更新PREQ消息的Metric字段,如果SN值小于已收到的PREQ消息,则丢弃。通过SN值避免了PREQ消息泛滥,占据信道资源。
其中度量值Ca是传输数据帧的链路消耗资源总量,O是一个常数,表示对信道接入和协议开销的量化,其值由具体采用的IEEE802.11协议确定。Bt代表测试帧的长度,为8192bit,r代表数据传输速率,单位为Mbps,ef是测试帧丢失率,其意义为以速率r传输大小为Bt的数据帧,由于各种因素会导致数据帧在传输是依概率ef损坏。传输速率r和数据帧出错概率ef可以从网卡驱动获取。
2 Batman-adv路由协议原理
Batman-adv路由协议和HWMP路由协议不同的是,仅维护一张具有最佳链路质量的邻节点的列表。以图1的网络拓扑为例,当节点A开始工作后,节点A按照递增的顺序生成带有序列号(Seqno)的OGM包(Originator Message),广播给它的邻节点B、C、D。每个节点对收到包的序列号使用滑动窗口机制进行处理,滑动窗口大小设为5,当收到一个包,其序列号小于滑动窗口最小值,则丢弃该包,不进行下一步处理,当序列号在滑动窗口内,接收该包,进行进一步处理。当序列号大于滑动窗口最大值,则更新滑动窗口值,通过这样的机制保证节点始终接收到最新的OGM包。当邻节点B、C、D收到OGM包后,进行进一步处理,没有被丢弃的包则减少生存周期重广播给其邻节点。通过这样的方式,将OGM包泛洪到整个网络,直到OGM包的生存周期为0或者OGM包由于链路质量被丢弃为止。和HWMP协议不同的是,Batman-adv协议不需要回复消息,仅通过OGM的广播与重广播来告知邻节点的存在,所以,OGM包是整个协议的重要组成部分。在IV版本的协议里,OGM包的作用有两个:(1)、用于邻节点的发现和更新;(2)、根据OGM包的接收数量来记录链路质量,并作为路由选路的判据。在V版本,将OGM包的第二个作用交给了链路吞吐量,不再使用链路质量作为判据。链路吞吐量的计算是根据Minstrel速率控制算法以不同速率发送数据探测包,统计计算得到吞吐量,最后使用EWMA指数加权的方法将历史得到的吞吐量和这一时刻得到的吞吐量进行平滑取最终结果。具体计算公式如下:
3 实验
大规模的节点测试平台容易导致相互节点之间的相互干扰,复杂的无线环境也会对实验结果产生一定的影响。而节点数少更容易控制相关变量,因此本文基于图1作为对比实验的网络拓扑结构。将Batman-adv和HWMP源码通过Linux系统编译后加载到路由器硬件上。由图1可知,节点B和节点C相互不可见,节点B到节点C有4条链路,分别是链路B-A-C、B-D-C、B-A-D-C、B-D-A-C。通过Iperf工具,生成UDP数据流,持续时间60s,通过记录数据包的接收数量来对实验结果进行观察,主要对比HWMP和Batman-adv协议的传输稳定性和路由收敛性。HWMP和Batman-adv协议都运行在默认参数下。
3.1 传输稳定性实验
以图1作为实验的网络拓扑,通过Iperf流量生成工具,持续发送数据流,观察路由的切换情况,由于一次观测具有偶然性,本文记录三次实验的接收包数量,以此衡量协议的传输稳定性。
对比图2和图3,可以发现,Batman-adv路由协议在三次观测中,第一次实验没有发生路由切换,第二次和第三次均发生了一次路由切换,通过对实验中吞吐量的跟踪,发现在第二次的时候,链路B-A-C吞吐量下降,小于链路B-D-C吞吐量,根据路由选择的条件,此时,选择吞吐量大的链路B-D-C进行数据传输,同样第三次路由切换是因为链路B-A-C的链路吞吐量大于链路B-D-C。由吞吐量的计算原理可知,发生吞吐量的变化是因为在发送数据时,由于测量吞吐量发送的探测数据包和数据传输的数据包在同一个信道,信道冲突导致吞吐量测量不准确,继而引发路由切换。观测图3,可知三次实验中均发生了多次路由切换,相比于Batman- adv路由协议,传输稳定性较差。从HWMP的路由机制进行分析,发生多次路由切换是因为接收数据包的顺序不仅和信道的质量有关,还和媒体介入控制有关。在IEEE802.11的无线网络中,采用随机生成的二元指数后退机制实现无线媒体接入[10]。因此数据传输过程容易发生路由切换。
3.2 路由收敛性实验
对一个无线网络来说,不断有新的节点加入或者原有节点的退出,拓扑结构的变化对协议的工作性能的影响成为了一个很重要的指标,称之为路由收敛性。在图1的网络拓扑结构下,使用Iperf流量生成工具,由节点B向节点C发送数据流,通过人为关闭节点A的无线功能,过一段时间,再打开无线功能,来测试节点的退出和加入对路由收敛性的影响。测试时间为60 s,在第20 s把节点A的无线功能关闭,此时节点A退出网络,在第45 s的時候把节点A的无线功能打开,节点A加入网络。实验数据绘制成图4、图5。
观察图4和图5,在节点A退出和节点A重新加入网络,两种路由协议的路由都发生了切换,切换后协议较为稳定,没有因为节点突然退出和加入而发生严重的丢包,收敛性能都不错。图5HWMP协议的收敛性能测试实验,除了节点退出发生路由切换,节点重新加入之后再次发生切换,路由切换的原因在3.1节中已经说明。
4 结论
本文通过对HWMP和Batman-adv路由协议的原理进行介绍,通过实验对比测试两种协议的传输稳定性和路由收敛性,结果表明Batman-adv路由协议的传输稳定性优于HWMP路由协议,路由收敛性实验结果表明两种协议表现都较好,没有因为节点退出和加入网络而导致严重的丢包,在协议工作机制下,都较好地完成了路由的切换。
参考文献
[1] 关勇, 刘春晓. 无线Mesh网络技术在校园无线网络建设中的应用[J]. 软件, 2015, 36(5): 20-23.
[2] 何宇宁, 刘春晓, 刘姝含, 鄂旭. 无线Mesh网络在校园生活中的应用[J]. 软件, 2015, 36(5): 73-76.
[3] 卓广平. 下一代互联网动态路由协议机制分析与改进策略[J]. 软件, 2018, 39(7): 202-207.
[4] 黄俊杰. 基于能量与节点缓冲区的机会路由研究[J]. 软件, 2018, 39(3): 123-126.
[5] 陈昊. WSN可靠路由机制分析[J]. 软件, 2016, 37(12): 206-209.
[6] 王洁, 李明明, 刘建生, 熊小峰, 乐光学. 基于优先级AODV的扩展多路径路由协议研究[J]. 软件导刊, 2015, 14(5): 158-161.
[7] 龙昭华, 侯堂杰, 刘达明, 秦晓焕. 无线Mesh网络中基于干扰判定的LIM-HWMP路由协议[J]. 计算机应用与软件, 2016, 33(12): 93-97+126.
[8] 杜志文, 陈虎, 张启志. BATMAN-adv协议在采煤机传感器控制中心无线通信系统中的实现[J]. 煤矿机电, 2017(2): 43-45.
[9] 吴限. 多接口多信道无线多跳网路由技术研究与实现[D]. 电子科技大学, 2017.
[10] 张天宇. 一种基于batman的Mesh网络路由协议改进方法[D]. 大连理工大学, 2014.