4MANET-Routing

MANET Routing

为什么不用有线MANET Routing?
  • 寻找到可靠的链接需要花费很多能量
  • 收敛慢 slow convergence
  • 吞吐量低
  • 管理中的挑战——移动性 / 带宽限制 / 资源限制(用电)
MANET的组成分类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MNICQhQo-1639587121771)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70.png)]

Table Driven(例如DSDV)
  • 保持routing table的实时性,周期性的路由更新
  • 每个路由的路由信息都会被记录
  • 大量的通信和电力消耗(Substantial signalling traffic and power consumption.)
On-Demanded Driven(例如ABR/AODV)
  • source只有为了传输才会创建route
  • 当节点需要到目的地的路由时,它将在网络中启动路由发现过程
  • 没有周期性的route更新
  • power使用相对高效
  • 带宽使用相对高效

Destination Sequenced Distance Vector(DSDV)

总体来讲,DSDV协议是对传统的DV协议的一种拓展。

  • 每个节点都保持着一张路由表,路由表中的每一项记录了它到目的节点的序列号和距离,也就是 (S,D)

  • 给每条路径增加了一个序列号码

  • 每个目的节点会定期广播一个单调递增的偶数序列号号码

  • 当一个节点到某个目的节点的路径断开时,把到这个节点的距离设为∞,并且将这条路径的序列号加1(此时为奇数),然后向网络中广播这个更新包。
    当这条路径修复时,它又将序列号加1然后广播出去(整体+2)。

DSDV(Destination Sequenced Distance Vector)(没有回环和无穷计数)

(1)DSDV路由表条目:

  1. Seq.Nr目的主机的编号
  2. install Time:新的路由条目到来,删除旧的条目的时间
  3. stable Data :指向一张路由表的指针,用来保存路线的稳定性
  4. metric:到达目的地址的跳数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrcD5QnX-1639587121773)(D:\photo\photolibrary\SouthEast-16370542420199.png)]

(2)DSDV路由广播:

  1. 向自己的邻居节点广播自己的路由信息目的地址、metric:目的地址的序列号、到达目的地址的跳数
  2. 设置序列号的规则:每次广播增加自己的目的序列号,如果一个节点不可到达,将这个节点的序列号增加1并且设置metric为无穷大

e.g.

B节点将自己的序列号从B-100增加到B-102,并广播自己的路由信息到其邻居节点A和C

(3)路由选择方法:更新信息与自己的路由表进行比较

  1. 选择具有**最高路由条目**(序列号)的路由条目(这样保证使用最新的路由信息)
  2. 当序列号相等的时候选择具有更好metric的路由条目进行路由

(4)拓扑改变的响应方式

  1. 立即广播
  • 当新的节点进入、链路破坏或者metric改变的时候就立即向邻居节点广播路由信息
  1. 全部(部分)更新
  • ①完全更新:发送所有的路由信息到邻居节点
  • ②部分更新:仅发送改变的路由条目
DBF算法(=D.V.)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sUM1iIlz-1639587121773)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163705500287611.png)]

路由更新的一种比较好的解决方案:

  1. full dump(完全转储): 它包含所有可用的路由信息。当本地拓扑发生重大变化(许多节点正在移动)时,就会发生这种情况。
  2. Incremental Updates(增量更新): 只包含自上一次full dump以后的路由信息。当路由没有观察到重大变化的时候,就会发生这种情况。

DSDV的优点/缺点:
advantages:

  1. 可以随时读取route->destinations,没有延迟
  2. 序列号的增量更新使现有的有线网络协议适应于无线网络

disadvantages:

  1. 在高移动性期间,由于链路中断而导致的更新会导致沉重的控制开销
  2. 要获取关于特定目标节点的信息,节点必须等待由相同目标节点发起的表更新消息。这种延迟可能导致节点上的路由信息陈旧。

AODV(Ad hoc On-demand Distance Vector Routing)

  • 是基于On-Demand的路由协议。

AODV: (Ad hoc On-demand Distance Vector Routing)

  • 当一个节点需要给网络中的其他节点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文

  • RREQ报文中记录着发起节点和目标节点的网络层地址,邻近节点收到RREQ,首先判断目标节点是否为自己。

  • 如果是,则向发起节点发送RREP(路由回应);如果不是,则首先在路由表中查找是否有到达目标节点的路由,如果有,则向源节点单播RREP否则继续转发RREQ进行查找

  • 按需路由协议,只有当到达某目的节点的路由不存在时,才会激起该协议发起路由请求

  • 传输层使用的是UDP协议

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

RREQ传过一次之后节点就不会再传第二次了

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vjuNPy3o-1639587121774)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163705631161921.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ur5t5TZO-1639587121775)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163705633596123.png)]

RREP返回源节点时,会沿路建立之后用来传输的路径(forward links)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TNsEGFYj-1639587121775)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163705634981225.png)]

AODV路由帧格式:

  1. RREQ(Route Request)–路由请求帧(are flooded in the ad hoc network)

  2. RREP(Route Reply)–路由应答帧

  3. RERR(Route Error)–路由错误帧

  4. HELLO—活跃路由链路检测帧

  5. DestSeqNum:确定到目的地的最新路径

  6. RREQ路由请求帧

在两个节点之间的路由有效、通信正常的情况下,AODV路由协议不起作用。只有当源节点S需要向目的节点D发送数据包,但又没有D节点的路由入口时,才会发起路由请求,即发送路由广播帧RREQ。当RREQ在网络中传播时,中间节点会更新各自到源节点的路由,我们称之为反向路由RREQ请求帧中包含源节点以前记录的到目的节点的序列号**(destination sequence num),但此序列号可能不是最新(最大)的。中间节点如果有到目的节点的路由时,只有该节点记录的目的节点序列号比RREQ中的目的节点序列号更大时,才认为这条路由是有效的。**(目的节点序列号>RREQ需要随时更新。

RREQ包含:

  1. SrcID,

  2. DestID,

  3. SrcSeqNum,(序列号)

  4. DestSeqNum,(序列号)

  5. BcastID,

  6. TTL

  7. RREP路由应答帧

当RREQ最终到达目的节点时,目的节点通过向该反向路由(即该RREQ传播路线)发送RREP应答帧,从而在该条路径的各个节点建立通向目的节点的前向路由(forward links)。

只有在以下情况下才会产生RREP:该节点本身就是目的节点;该节点是中间节点,但是他有通向目的节点的活跃路径。

当RREP传播到源节点时,中间节点根据该RREP更新他们各自指向目的节点的路由信息节点只对第一次收到的RREQ发送RREP应答帧。

  1. RERR路由错误帧

Link Failure

  • 只有当某节点位于某活跃路径之上时,他才能发送**Hello消息帧**。
  • 活跃路径节点以HELLO_INTERVAL为周期发送Hello消息。
  • 当路由表条目中的下一跳链路断开时,所有活动的邻居都会被通知。
  • 链路故障通过路由错误(RERR)传播,也会更新目的地序列号

RERR(Route Error)

  • 当节点X在链路(X,Y)上无法转发数据包P(从节点S到节点D);或者在DELETE_PERIOD的时间内没有收到来自邻居节点的Hello message,认为链路失效,它产生一个RERR消息,RERR在传播过程中,IN删除该路径上相应的路由信息
  • 节点X递增缓存在节点X的D的**[目的序列号N](incremented destination sequence number N (递增的目的节点序列数N,类数DSDV的编号,用来确认信息是否最新))**(此时为奇数)。当这条路径修复时,它又将序列号加1然后广播出去(整体+2)。
  • 递增的序列号N被包含在RERR
  • 源节点S收到RERR时,它使用至少与N一样大的目的序列号为D发起新的路由发现
  • 当节点D收到目的序列号为N的路由请求时,节点D将把它的序列号设置为N,除非它的序列号已经大于N

路由信息新旧判断

AODV依赖网络中每个节点维护自身的序列号,源节点在广播路由请求帧RREQ之前要更新(增加)自己的序列号,目的节点在产生RREP应答帧之前也要更新(增加)自身的序列号,每个节点在对各自的序列号加1的时候,是将其视为无符号数进行的。通过比较来自目的节点路由控制帧中的序列号SN1和本节点维护的目的节点的序列号SN2,就可以确定本链路的新旧程度。如果SN2-SN1<0(有符号数相减),说明路由表中的维护信息已过时,应将路由信息更新至路由控制帧最新的路由信息。


conclusion:

RREQ: SrcID, DestID, SrcSeqNum, DestSeqNum, BcastID, TTL

Path Discovery

  • Reverse-Path Setup:为了让RREP返回源
  • Forward-Path Setup:收到RREP后,为了发送数据而建立

Path Maintenance

  • hello message:维护邻居关系
  • timer:判断是否active

No local path reconstruction:发生link failure后源节点发起新的Path Discovery,而不是局部修复

两个Timer

  1. route_request_expiration_timer:(expiration n. 到期) 设置这个参数是为了让unused不在路径上的节点,丢弃这个路由数据
  2. route_caching_timeout : 用来判断什么时候路由已经无效。此外,活跃节点的地址也会被保留,如果某路由断了,就会找到其他活跃的邻居节点。
  • 路由(Route,路由器)不需要包含在包头中。是hop-by-hop routing,不是src-routing
  • 节点维护路由表,只包含正在使用的路由的条目。
  • 每个节点上每个目的地最多维持一个下一跳。
  • 序列号Sequence numbers用于避免旧的/破损的路线。
  • 序列号防止形成路由环路。
  • 即使拓扑结构不改变,未使用的路由也会过期。(route_caching_timeout)

ABR(Associativity Based Routing)

  • 是一种On-Demand路由协议寻找最稳定路由。

    稳定性:从邻居那里收到的周期性beacon(信标)的数量, 即结合度(associativity ticks)

  • Stability in ABR refers to :
    1)associativity ticks(beacon number)
    2)signal strength
    3)power life

Neighbour Table

  • Node ID
  • Ticks(在一段时间内累加beacon的数量)
  • Timerinterval of beacon period
    越少的ticks->越差的稳定性->越高的移动性
基本准则
  • 迁移过程中,迁移方与邻居的关系发生变化。在这个不稳定的时期之后,存在一个稳定的时期,在此期间,移动主机将在一个无线单元中花费更多的休眠时间,然后再移动。
  • 一个移动电话表示,当它与相邻的移动电话的结合度较低(associativity tick)时,其移动状态处于高水平。如果观察到高结合性标记,这意味着主机处于稳定状态,是执行ad hoc路由的理想点。
Athreshold:为门限值。此值对应的Ticks代表节点出于移动状态最多收到多少BEACON。多于此值则代表节点一定存在没有移动的时间段,所以此为门限值。高于此说明存在稳定器。

ABR

路由决策由目的节点完成,按需路由协议,没有使用中间节点的路由信息(避免路由过时)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZyvHnzEH-1639587121776)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9rZWFpNjY2MzA=,size_16,color_FFFFFF,t_70.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oDbMWOlN-1639587121777)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9rZWFpNjY2MzA=,size_16,color_FFFFFF,t_70-163706524415929.png)]

路由选择准则

三条优先级从高到低:

  1. 相互关系稳定度最高
  2. 跳数最小路由
  3. 任选一条:稳定性与cost都相同,随机选择

三个步骤

  1. 路由寻找(Route Discovery Phase)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vlKYOl3V-1639587121778)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9rZWFpNjY2MzA=,size_16,color_FFFFFF,t_70-163706584348531.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V0zEsQGs-1639587121778)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706616106833.png)]source先进行BQ广播(Broadcast Query),发现邻居都不是DEST。(destination)
BQ先把经过的点的associativity ticks(相关度,BEACON的数量)记下来,一直携带着往下一位传输。
如果有多种情况,BQ会都记下来,最后遇到dest以后用算法选出最稳定路径。
节点收到BQ后,检查源和序列号,如果都相同就检查节点ID列表;当ID列表中包含自己时,忽略当前BQ,自己重新再发
移除上一个节点的邻居信息,加入自己的邻居信息(节点ID和Ticks)
DEST将在收到第一个BQ数据包后,启动timer等待更多的BQ

REPLY message

DEST的timer过期后,RSAroute select algorithm)选出最佳路径,生成REPLY message单播到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7p4uc2K0-1639587121780)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706669062535.png)]

实现步骤

  1. 每个中间节点收到REPLY后检查ID列表
  2. 如图所示,每个ID列表包含如下信息:
    1. Aggregate degree of associativity Stability(The total number of ticks, 对ticks的求和)
    2. Route Length(indicating how many hops the chosen routes have总共经历过多少route)
    3. Aggregate Route Relaying Load(indicating how busy each node along the route表示每个经过的route的负载)
    4. Cumulative Forwarding Delay(信息的delay)
  3. 如果在表中:位于自己左边的是REPLY发送的方向(reply向左传播),右边的是数据上传方向(之后数据向右传播)(放入路由表)
  4. 如果不在表中:检查源ID目标ID,清除之前收到的相应BQ
数据流确认

被动:S将A发送给B的信息作为识别
主动:D主动发送ACK

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KkCX0dXu-1639587121781)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706696232037.png)]

  1. RRC

(Route ReConstruction phase )路由重建

移动设备(源/目标/中间节点)从原有位置离开时,激活RRC

ABR route recovery is fast because it uses partial route discovery(ABR 路由恢复速度快,因为它使用部分路由发现)除非必要,RRC 不会再次产生 BQ

中间节点移动

以上臂节点移动为例,下臂同理。
上臂指的是从半程位置到目的节点的一半路由。设节点A在移动。A的紧邻上行节点(转动节点)删除到A的输出条目,A的下行节点同理。转动节点启动LQ[H]进程,目的节点有可能会接收到多个LQ分组,从中选择一条最佳路由,回送给转动节点。此时从转动节点到目的节点的所有中间节点都更新其路由表RT。如果转动节点不存在到目的节点的路由,则后撤至转动节点的上行节点,一直到能找到路由为止。

  • Pivoting node (上一跳的节点)生成Local Query(LQ)

    LQ包括:Pivoting node ID,目标,序列号,邻居信息(节点IDTicks),限制跳数(pivoting node到destination的距离/LQ可移动的距离)

    通过total route lengthID列表,中间节点可以算出自己与目标相离的跳数
    Pivoting node通过限制跳数找到能保持原有跳数的新路径

  • Pivoting node的邻居收到LQ后,检查,如果没有目标的记录则移除上一个节点(此时是Pivoting node)的邻居信息,加入自己的邻居信息,将限制跳数(可移动距离)减一,重新广播LQ(类似局部BQ)

  • DEST收到第一个LQ后启动timer,等待更多的LQ

  • DEST的timer过期后,RSA(route select algorithm)选出最佳路径,生成Local REPLY单播到Pivoting node
    Pivoting node收到Local REPLY后,新路径建立成功

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VWkpNWVw-1639587121782)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706737604439.png)]

目的节点移动

目的节点的紧邻上行节点(转动节点,也是源路由的最后一跳节点)删除到达目的节点的路由,运行**目的节点寻找进程(LQ[H]),如果目的节点收到这条LQ消息,则返回REPLY消息,从而更新路由;如果目的节点未收到**,产生超时错误,转动节点后撤到上一跳(此时是源路由的倒数第二跳节点)。一直往复下去,直到找到一条新路由或者转动节点已经撤回源路由的一半长度为止。

  • Pivoting node (目标上一跳的节点)生成**LQ[1](限制跳数为1)并启动timer,等待REPLY**
  • 超时未收到后,ABR要求Pivoting node发送RN[0](Route Notification)到其上一跳(Second Pivoting node)或重新发送几次LQ[1](取决于具体设计)

RN[0]代表发送方向为SRC
RN[1]代表发送方向为DEST

  • Second Pivoting node发送LQ[2](限制跳数为2),直到找到通向DEST的路径,同上

  • 当Local Repair进行到total route length的一半仍未成功,不再进行Local Repair,生成RN[0]发送到SRC请求新的BQ

  • 当IN moves发生在后半程**,将启动LQ;发生在前半程,直接发送RN[0]请求新的BQ,其中收到并上传RN的节点会将路由信息从RT 删除**

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NUkwvJHy-1639587121783)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706924613341.png)]

源节点移动

每次源节点移动后**初始化路由寻找进程**

  • SRC广播BQ
  • SRC原来的下一跳生成RN[1]发送到DEST,收到RN[1]的IN会删除RT里相应路由信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GL4TXntL-1639587121783)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706926385443.png)]
Concurrent Nodes Movements
  • 结果多次调用路由重构、RRC
  • SRC将发送BQ删除无果的重建(参见后面的路由删除)
  • 最终只有一条路线重建成功。
Movement of Subnet Bridging Mobile Host
  • M的移动会导致移动网络被分割。
  • 如果现有的临时路由都在每个子网内,则不需要RRC。
  • 如果路由跨越子网,M的移动会导致网络被分割,需要进行BQ-REPLY循环。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eDBLtksr-1639587121784)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706936038445.png)]

  1. RD(Route Deletion Phase)

当发现的路由不再需要时,SRC将启动路由删除(RD)广播【是一个定向广播direct broadcast】,以便所有INs将更新它们的路由表条目。

当SRC不再需要路由时,启动路由删除(RD)广播。
硬状态:SRC广播RD信息
=>所有的IN都会更新路由表:释放资源,避免保留陈旧的路线
软状态当一段时间内没有与路由相关的流量活动时,基于定时器。这种方式是在路由中的每个节点进行的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgULgnna-1639587121785)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706948787547.png)]

对比

低移动性或少量包裹发送时,更新是无效的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D1me9npS-1639587121785)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163706951759151.png)]

Pro-active ->table-driven

Reactive -> on-demand

感谢学姐Dear Slim.和学姐/长Hermi_Mire分享的自己的笔记!!!本文是他们的再整理, 感谢!!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值