您的位置:首页 > 大数据 > 物联网

物联网组网与通信技术——Ad Hoc 网络路由协议

2020-07-12 17:14 405 查看

Ad Hoc 网络路由协议

Ad Hoc 网络路由面临的问题

在设计Ad Hoc 网络路由协议时,我们首先要明确可能面临的问题:
(1)路由信息不易获得:定期交换路由信息的开销大、网络资源有限,并且必须被所有节点共享、节点资源(电池、CPU)等有限、也许不能接收到所有的路由信息。
(2)路由信息不完整:移动和分区很难将信息分发到一个没有固定成员网络的所有节点。
(3路由信息可能过期:不可能连续地或者立即交换信息、节点随时移动、无线传播变化大。

MANET(Mobile Ad Hoc Net)对路由协议的需求

收敛迅速、提供无环路由、控制管理开销小、对终端无过高要求、支持单向信道、尽量简单实用。

为什么不能把传统的路由协议直接用于Ad Hoc 网络呢?

(1)Ad Hoc 网络具有动态变化的网络拓扑结构,可能有节点加入、离开、移动的情况,这样的话路由算法还未收敛,网络拓扑结构就发生变化。
(2)Ad Hoc网络的系统带宽、能量等资源是有限的,传统的路由协议会周期性地通告,这样的话会严重降低系统的性能。
(3)Ad Hoc需要间歇性的网络分割,传统的路由协议用于Ad Hoc网络容易形成回路。
(4)Ad Hoc是支持单信道无线传输的,而传统路由协议一般假设链路是对称的。

Ad Hoc 路由协议的性能指标

(1)端到端数据吞吐量和延时 ,反映了数据的传输质量。
(2)路由获取时间-有数据要发送到发送出去的时间。
(3)乱序分组发送率-衡量无连接路由协议应用于需要有序发送的传输层协议。
(4)路由协议的效率-路由控制消息/发送数据。

Ad Hoc 路由分类结构


、、

|| 表驱动(Table Driven)/ 先应式(Proactive)路由

what? 每个节点维护到网络中所有其它节点的路由、所有节点都已存在并且随时可用。
feature? 路由延时小,但是路由开销大。

@ DSDV(Destination-Sequenced Distance Vector)

※ 先应、逐跳转发、DV

※ 传统DV的不足?
开销大;可能出现环路——浪费网络带宽、为消除环路需要额外开销、 对拓扑变化适应慢。

※ feature?
(1)利用目的地序列号来解决无穷计数问题。
(2)路由更新——周期性通告、检测到链路变化就突发性通告。
(3)简单易实现(RIP的优点)
(4)用于对称链路。

※ 如何解决无穷计数问题呢?

思考环路问题解决的关键是什么??是传递信息的不全,无法区别路由表项的新旧。

解决办法:设置目的序列号——每个节点设置序列号(路由通告携带序列号),各节点只保存最新序列号的目的表项。


、、

※ 通告机制 ?
(1)周期性通告与突发性通告——尽快通告路由变化
(2)整体通报与增量通报(减少路由开销)——局部采用增量通报
(3)限制不稳定的路由通报,防止路由震荡。

※ 什么是路由震荡以及如何解决这种问题??


@ FSR : Fisheye State Routing Protocol

L-S、减少路由开销。

※ 基本思想: 局部拓扑、了解远地拓扑。不使用flooding。时间驱动代替事件驱动。

※ Fisheye技术: 不同距离节点的链路状态路由表项的交互频率不同:与近距离节点的链路状态的交互频率高,维护精确的拓扑信息;与远距离节点的链路状态的交互频率低,拓扑不精确。

※ 存在问题??

(1)路由不是全局最优——远离目的节点时,路径信息不全面准确。
(2)不适用于规模较大的网络——收敛时间长、存在许多不稳定的路由。

|| 按需(On-demand)/ 反应(Reactive) 路由

what? 源节点根据需要通过路由来发现过程来确定路由,控制消息采用洪泛(Flooding)方式。

feature?路由延时大,但是路由开销小。

※ 实现技术: 源路由(分组携带完整的路由信息)
逐跳(Hop-by-Hop)路由

比如 DSR、AODV、DYMO协议

※ 什么是数据洪泛??有什么优缺点??







优点:
(1)简单
(2)当信息传输需求足够低时,可能比其他协议更高效——因为其他协议所产生的显式路由发现、维护的开销是相对较高的
(3)潜在的更高的数据传输可靠性——因为分组可能会通过多条路径传输到目的地。

缺点:
(1)潜在的高开销——数据分组可能会被传输到太多并不需要接受它的节点。
(2)潜在的数据传输的低可靠性——潜在的冲突

所以,基于上述内容,许多协议执行控制分组洪泛,而不是数据分组:
控制分组是发现路由的,发现路由后用于发送数据。

@ DSR Dynamic Source Routing

※ DSR中的假设

  • 所有节点都愿意转发分组到网络中的其他节点
  • 自住址网络不会太大(如果路由非常长,分组首部将超过有效负荷)
  • 节点的速度是缓慢的(如果节点的速度很快,本地的路由缓存将过期)
  • 所有节点都能收听到(混杂)不节能

※ 操作步骤

(1)节点S洪泛路由请求(RREQ:Route Request),RREQ包括
<目的地址、起始地址、路由记录、请求ID>
(2)当节点Y收到一个RREQ时,可能进行如下三种操作:

  • 丢弃——若<起始地址、请求ID>已经在它的表中。
  • 返回一个包括从起始地到目的地路由的路由响应分组——如果Y已经是目的地或者Y的路由缓存中存在一个到目的地的路由
  • 不是以上情况的话就在RREQ的路由记录中附上自己的地址并重新广播RREQ。
    (3)目的节点D收到该RREQ后,会回送RREP(Route Reply),RREP中包含RREQ中的地址列表。当节点S收到RREP后,会将RREP中的路由缓存起来,在节点S发送一个数据分组到D时,整条路由将包含在分组首部中。

注意: 如果单向的链接是允许的,那么RREP可能需要一个从节点D到节点S的路由发现(除非节点D已经知道一条到节点S的路由),在D的路由请求中会捎带路由响应。

※ 路由维护 ??

也可以分为逐条维护、端到端的维护。

※ 路由优化??

每个节点通过任何方式学习到一个新路由都会将其缓存起来
比如

但是问题在于: 过期的缓存无论从资源方面还是时间方面都会使系统增大开销。

  • 加速路由发现 ????

    路由缓存的优点: 可以减少路由请求的传播(从K到Z的响应RREP限制了RREQ的洪泛),加速路由发现。

※ summary

DSR优点:

  • 只需要在交流节点之间维护,减少路由维护的开销。
  • 路由缓存可以进一步减少路由发现的开销。
  • 一个单一的路由发现可能产生多条路由到目的地,因为中间的节点根据本地缓存进行响应。

DSR缺点:

  • 分组首部大小随路由长度的增大而增大,因为源路由开销大。
  • 路由请求的洪泛可能会到达网络中的所有节点
  • 邻居之间生成的路由请求可能会产生碰撞(在转发RREQ之前要产生插入的随机延迟)
  • 路由响应风暴:节点根据自己本地的缓存产生了太多的路由响应。
  • 过期的缓存将增大开销。

@ AODV (Ad Hoc on-demand DV)

许多文献称之为DSDV的反应式版本;是逐条转发协议的,中间节点根据目的地址确定“下一跳”地址;采用标准IP报头:源地址,目的地址;

下面介绍AODV的路由行为——路由发现(请求、应答)、路由维护

※ 路由请求???

  • 源点:
    广播到指定节点的路由请求消息(RREQ)
    <源地址、请求ID、目的地址、源序列号、目标序列号、跳计数>

  • 中间节点:
    step1:比较源地址+请求ID,重复则丢弃。
    step2:如果是目的节点,直接回复RREP
    step3:查找自己的路由表,如果有到达目的节点的路由,且对应的序列号大于或等于RREQ中的目标序列号(最新的已知),回复RREP。
    step4:创建到源节点的“下一跳”表项(假设为双向链路),记录跳数,构造反向路由,启动反向路由定时器。
    step5:向目的节点转发(广播)路由请求,跳计数加1。

※ 路由应答???

  • 目的节点向源节点发送路由应答(RREP)消息

    RREP中包含序列号(RREQ中的源和目标序列号在RREP中调换)、跳数计数(初始为0),RREP沿着RREQ消息的路径反向传输。

  • 中间节点:

收到RREP以后,创建到目的节点的“下一跳”表项,记录跳数,建立向前路由。RREP的“跳数计数”字段加一,沿着反向路径转发消息。清除相应的反向路由定时器,将反向路由加入路由表

  • 源节点:

选择最小跳数的路径(下一跳)
AODV只维护一条路由。

注意:

源序列号是保证反向路由的有效性,因为在反向路径中,源序列号就是目的序列号。

目的序列号是保证前向路由的有效性,用于告知中间节点当前源节点所了解的关于目的节点的路由信息(前向)的最新的序列号。

反向路由定时器是为了去除那些没有使用到的反向路由。

※ ※ 路由维护???

  • 路由表项 : 目的地址、前继、下一跳、跳数、序列号
  • 更新的依据: 序列号大或者短路由
  • 每个节点维护非递减的序列号——在RREQ、RREP消息中发送,每个新消息加2,作为路由表项的“时间戳”,保留最新消息
  • 若中间节点表项的序列号大,或者序列号相同但到目的节点的距离更短,则向源节点发送RREP(路由表项设置生存期定时器,到期删除该路由,用到时再复位;反向路由定时器超时,还未收到相应RREP,则删除相应路由)
  • 产生路由错误消息(RERR)会向前继发送

※ 性能比较 ???

  • 报文长度—— DSR长于AODV
  • 路由开销 ——拓扑稳定时,DSR可以发现多条路由;拓扑不稳定时,DSR多条路由可能都是“脏”路由,不一定优于AODV。当然因为DSR具有路由缓存功能,所以DSR有更少的RREQ广播,但是会有更多的RREP以及RERR。

那么怎样清除脏路由呢??DSR没有定时机制;AODV使用定时机制

  • 错误报告——DSR通知目前route上的前继节点以及源节点。AODV主动通知所有用过此link的前继节点。
  • 节点较少,低负荷,节点移动性小——DSR,有备选路由;反之,DSR的备选路由可能都是错误的,DSR对链路错误的反应速度慢。

|| battle一下~

|| 两者杂交体——混合路由



|| 其他分类

地理定位辅助路由协议——能提高路由性能,适合拓扑结构高度动态变化(比如车联网),缺点是实现成本高,路由协议比较复杂。

典型的有 LAR、DREAM、GPSR、DV-MP、FORP等

多路径路由协议——优点是以低成本提供足够的冗余度,平衡网络负载,提高分组交付的可靠性,缺点是复杂度高,开销大。

典型的有 AOMDV、SMR、MP-DSR、MSR、TBRPF、CHAMP。

|| 姐姐作业来咯~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: