BATMAN-ADV协议

概述

BATMAN-ADV (Better Approach To Mobile Ad-Hoc Networking Advanced) 是一种新型的无线路由协议。协议以Linux内核模块的方式在OSI模型的数据链路层运行,通过以太网帧的方式传递路由信息,每个节点通过MAC地址进行标识,不再使用IP地址进行通信;网络层则可以自由地运行多种协议,拥有更好的灵活度和可扩展性。

大多数无线路由协议是运行在模型三层上的。它们发送包,交换路由信息,并处理内核的路由表来实现路由策略。而BATMAN-ADV的运行完全处于模型的二层,通过以太网顿来传输路由信息,协议还处理数据流量。协议封装并转发所有数据直到到达目的地,它模拟出一个虚拟的网络交换环境。因此,所有节点就像处于本地链接,它们不了解网络的拓扑情况,也不会受到网络变化的影响。

BATMAN-ADV路由协议本质为Linux内核的集成模块,数据在内核空间进行处理,这大大减少了系统CPU资源的开销,能量消耗也相应降低。战术VANET系统的车辆节点对电子设备的重量体积与能源消耗都十分敏感,因此选用该协议是十分具有优势的。

数据包分类

BATMAN-ADV协议共有八种数据包格式::

BATADV_IV_OGM:即OriginatorMessage(源节点消息),用于发现无线环境中的节点和建立路由信息,同时协议根据接收到的合法的消息的数量来确定协议的度量值。这是最重要的一个数据包格式,它主要的功能有:向全网其他节点表明自身的存在;通过统计接收到的合法的OGM消息来进行路由度量;通过OGM消息建立相应的路由。

BATADV_BCAST:带有广播有效负载的数据包,它是发给所有节点的广播信息,因为在数据链路层实现,发送给相同冲突域的节点;

BATADV_CODED:这是网络编码数据包。它利用网络编码技术,将两个数据包合并到一个传输过程中,以减少总的传输时间;

BATADV_UNICAST:带有单播有效负载的数据包,它以MAC地址为ID,来发送给单独一个节点;

BATADV_UNICAST_FRAG:如果—数据包的长度超过了链路的值,就需要对于数据包进行分片。在这个数据包里,除了包含有效负载外,还有分片信息;

BATADV_UNICAST_4ADDR:单播数据包,它除了包含有效负载外,还包含了发送者的源地址;

BATADV_ICMP:类似于IP协议中ICMP的功能,能够在数据链路层使用ping或traceroute命令(返回消息为MAC地址);

BATADV_UNICAST_TVLV:含有TVLV容器的单播数据包。

BATMAN-ADV路由发现机制

BATMAN-ADV 路由协议的主要功能是为给定的目的节点寻找合适的下一跳。也就是说,对于网络中运行了BATMAN-ADV路由协议的节点来说,它需要维护全网中所有可达节点的相关信息,同时对于每个可达节点,需要维护所有可以到达该节点的邻居节点的信息,采用TQ值(Transmission Quality,链路质量)衡量路径的传输质量,TQ值最高的邻居节点即做为为路由的下一跳。

BATMAN-ADV 路由协议的运行过程分为如下几个部分:

(1)各节点广播OGM(Original Message)消息;

(2)某节点收到从其他节点发送过来的OGM消息时,根据策略将其进行转发,以使得OGM消息能够扩散到全网。因此,根据探测包的源节点,可以知道全网中自身可以到达的所有节点,将这些节点的相关信息进行维护,就得到了所有可达节点的路径;

(3)在无线多跳网络中,对于一个给定的目的节点,可能存在多条可达路径。因此对于每个可达节点,维护一个可达该节点的本地邻居列表,对每条路径进行合适的路由度量,以从中选出最佳路径进行路由。

运行机制

对于运行了BATMAN-ADV路由协议的节点,会周期性的向外广播OGM数据包,它主要的功能有:(1)向全网其他节点表明自身的存在;(2)通过统计接收到的合法的OGM消息来进行路由度量;(3)通过OGM消息建立相应的路由。

OGM报文帧格式如图 2‑4所示。

2‑4 OGM报文帧格式

其中,类型是区分数据包的类型;版本是协议的版本号;序列号是为了辨别同一OGM包是否被多处接收;生存时间(Time To Live, TTL)是被丢弃之前的最大转发跳数。

每个节点在收到来自其他节点的OGM数据包之后,以相应的转发机制向外广播,使得一个节点发出的OGM消息可以洪泛到全网所有节点。为了减少消息洪泛的开销,对于同一个OGM数据包,每个节点只会接收一次。

当节点从某个接口接收到OGM数据包之后,会对数据包进行一系列处理,包括判断数据包是否有效,以及本节点与源节点之间的关系等操作。每当节点接收到OGM数据包,就会将路由表中的相关信息进行更新。更新的内容主要有:(1)本地节点与一跳邻居之间的链路质量;(2)本地节点可达的源节点列表;(3)对于每个源节点,所有可达路径的下一跳邻居节点质量;(4)到达所有邻居节点的本地网络接口信息。

如图 2‑5所示:

2‑5节点收到OGM包的操作

 

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值