目录
7.1 分裂多路径路由(Split Multi-path Routing, SMR)协议
7.2 源路由多径路由(Multipath Source Routing Algorithm, MSR)协议
7.3 按需平面距离矢量后备路由(Ad Hoc On-demand Distance Vector Back Routing, AODV-BR)协议
7.4 按需多径距离矢量(Ad Hoc On-demand Multipath Distance Vector, AOMDV)协议
1 前言
Ad hoc网络路由协议概述系列的前7篇都讲的是单路径路由协议,像是DSDV、DSR、AODV和GPSR协议都是发现并使用单条路径进行数据传输。
本篇是对多路径路由协议的概述,之后第9章重点讲一下其中最常见的AOMDV协议的原理,之后本系列应该就暂时收尾了。第10章会非常粗略的讲一下Ad hoc网络常用的路由技术。
之所以做Ad hoc路由协议系列,是因为作者读研期间的课题与这些有关,但是三两年时间短,有很多协议还没来得及研究,有错误之处也请大家指正。
后面应该还会有2篇,一篇是关于核心网中常用的路由协议(在找工作时简单了解到的一些表面知识),另一篇是对传输层协议QUIC协议的归纳,再之后会不会有新的系列,还说不定,作者下半年即将成为打工人,到时候如果有通用的知识学到了,也会和大家分享的。
2 研究意义
相比于单路径路由协议,多径路由协议大多基于网络拓扑。在路由发现过程中,多路径路由协议在路由发现过程中会形成多条到目的节点的路径。
如果数据传输的主路径发生损毁,不会立即重启路由发现过程,而是会采用备用路径恢复数据流发送,可以有效提高数据包成功传输的投递率,同时减少数据包等待发送的时间,降低端到端时延。
3 特点
3.1 增加网络聚合带宽
源节点可以为同一类型的服务使用多条路径并行传输数据,当网络任意链路都不发生拥塞时,源节点使用的通信带宽是所有参与数据传输的路径带宽之和,提高网络的传输能力,实现更高的服务质量。
3.2 实现负载均衡,优化系统性能
使用单路径路由,对于网络拓扑频繁变化的网络,在业务量较大时容易在某些相交链路产生拥塞,降低网络吞吐量。
多径路由协议按照实际需求自主选择多条路径的使用方式,通过探测机制获取不同路径的拥塞程度信息,动态调整不同路径的权重和使用频度,将流量合理分布在不同路径上使网络的传输状态趋于平衡,提高网络吞吐量和降低网络拥塞程度,实现网络资源利用率最大化。
3.3 提高路径可靠性和容错性
Ad Hoc网络动态变化的拓扑结构,链路会经常由于节点的移动变化而中断,导致路由失效。节点重新启用路由发现,向网络中泛洪大量的路由请求报文可能发生网络拥塞。
多径路由协议可以在一次路由发现中,通过节点处理重复RREQ报文,建立从源节点到目的节点的多条可用路径。某些失效节点引起的链路断裂不会影响其他路径正在传输的业务,不需要每次都重启路由发现过程。
因此,多径路由协议有效减少了频繁启用路由发现过程的次数,减小端到端时延,提高路径的稳定性和容错性。
4 使用模式
4.1 备份多路径
备份多路径是指,在同一时刻对于在源节点和目的节点之间只有一条路径在传输数据,这条路径中断后,可以使用多条路径中的其他路径来传输。
![](https://i-blog.csdnimg.cn/blog_migrate/b0919c5d7fbff2fbdef3bfe9a904686b.png)
4.2 并行多路径
并行多路径是指,在同一时刻,源节点和目的节点同时使用多条路径共同传输数据,如果其中某条路径中断后,其他路径不受其影响,继续传输数据。
![](https://i-blog.csdnimg.cn/blog_migrate/07277811b3e8044027f0a1bf808cd7d4.png)
5 分类
5.1 节点不相交多径路由
节点不相交多径路由也叫完全不相关路由,指的是路由间没有共用的节点或链路。如节点A和B之间,路径A-C-B,A-D-B这样的路径为节点不相关多径路由。
![](https://i-blog.csdnimg.cn/blog_migrate/2fc190ef71ed404ef7774e9e79120812.png)
5.2 链路不相交多径路由
链路不相交多径路由是指,路由间没有共用的链路,但可能有共用的节点。如节点A和B之间,路径A-C-E-F-B,A-D-E-G-B没有共用链路,但共用了节点E。
![](https://i-blog.csdnimg.cn/blog_migrate/9a60a8f0177ec48c3561e37066e5b236.png)
5.3 相交多径路由
相交多径路由是指,路由之间既有共用的节点,也有共用的链路。如节点A和B之间,路径A-C-D-B和A-C-E-B既共用链路A-C,又共用了节点C。
![](https://i-blog.csdnimg.cn/blog_migrate/4f5a7c6882eed54ac41a5d441582f5ac.png)
6 设计挑战
6.1 流量分配策略
多径路由协议通过链路拥塞检测机制,动态调整每条路径相应的权值,合理地将流量分配到不同路径。
虽然可以根据路径的固定权值实现网络负载均衡,但这种分配方式容易出现某些路径使用频度过多从而导致该路径的生存周期变短。
6.2 QoS保证
虽然多径路由协议可选择多条路径来发送数据分组,当其中部分路由失效时,可利用替代路由来继续发送数组,因此可大大提高网络的容错能力,但对于满足QoS保证问题还远远不够。
一般而言,多径路由协议可以根据多种约束条件,如带宽、时延和丢失率等因素,来满足QoS的要求。不同的网络应用需要的QoS条件是不同的。
6.3 节能
由于Ad Hoc网络是一个自组织网络,每个网络节点都是移动终端,因此节点的能源是有限的,所以必须充分考虑节点的能源问题,以免所选出的路径因为某个节点的能源耗尽而使整个路由失效。
7 常见的多径路由协议
![](https://i-blog.csdnimg.cn/blog_migrate/b9cc0bc1d37a01fe9d9a62e3260a629c.png)
目前常见的多径路由协议可分为基于DSR协议和基于AODV协议的多径协议。
7.1 分裂多路径路由(Split Multi-path Routing, SMR)协议
SMR协议主要目的是为了建立最多可能数目的多路径。
目的节点收到第一个RREQ包时,则根据RREQ包中所携带的路由信息反向解析得到有效路由;同时开启时钟,在设定的等待时间内接收后来发送过来的RREQ信息,并在等待时间结束后,根据算法选择出与最初选择的最大独立路径作为替换路径,并将带有替换路径的响应发回给源节点。
源节点和目的节点交替使用两条路径发送,当其中一条路由失效或者都失效时,源节点启动新的路由发现过程。
从性能上,SMR算法通过目的节点获取多条路径,同时使用两条路径来发送数据,可以提高数据传输率,降低丢包率,减少网络延迟。
但所选择的路径有可能是非独立路径,因此路由性能较差,当位于链路交叉点的节点出现故障时,会导致多条链路断裂,链路的健壮性较差。
7.2 源路由多径路由(Multipath Source Routing Algorithm, MSR)协议
MSR协议在路由发现机制上并未对DSR做任何改进,只是在路由选择方式上作了一些改变,通过源节点来对寻找到的路径进行选择。
源节点把从目的节点反馈回来的所有路由都保存在路由缓存中,并给每条路由分配唯一的标志号,然后源节点从路由缓存中选出相关性最小的路径。
MSR协议只是在源节点中选择了相关性最小的路径,并不能保证所得到的路径是节点独立的,并不能真正发挥多径路由的优势。并且为了探测机制付出更多的开销。
7.3 按需平面距离矢量后备路由(Ad Hoc On-demand Distance Vector Back Routing, AODV-BR)协议
AODV-BR路由算法利用广播特性,每个节点可以接收到邻节点发送的所有数据分组。
当目的节点向源节点发送RREP时,不在既有路径上的节点会“偷听”到由邻节点发送的RREP,且目的节点不是本节点,则该节点把这个邻节点记在后备路由表中,作为到达目的节点的“下一跳节点”。
如果这个节点位于主路径多个节点的传输范围内,节点会收到多个关于同一条路径的RREP,这时该节点将选择一个最佳的RREP。
当RREP到达源节点时,源节点与目的节点之间的主路径就已经建立起来了。
虽然AODV-BR路由算法的端到端的平均延迟大于AODV,但AODV-BR比AODV能够传输更多的数据分组,提高了端到端的平均传递率。
7.4 按需多径距离矢量(Ad Hoc On-demand Multipath Distance Vector, AOMDV)协议
AOMDV协议通过路由发现过程建立多条无环和链路不相交路径。
与AODV协议不同的是,AOMDV协议在RREQ报文中添加“第一跳”字段,用于区分路径的第一跳节点。中间节点接收到重复的RREQ包时并不马上丢弃,而是将具有不同第一跳的RREQ种携带的路由消息保存在自己的路由表中,依次形成不相交的多条路径。
同时,目的节点对来自于不同邻居节点的RREQ报文进行RREP回复,保证所建立正向路径都是链路不相交的。
在路由维护中,AOMDV协议使用多条可用路径,除非路径的相交节点失效,某条路径上的链路断裂后不会影响其他路径的通信性能,路由发现过程在全部可用路径都失效后才会重新启动,有效降低了启动路由发现过程的次数,减少了网络延迟。