1 / 78

移动 Ad hoc 网络(下) ( MANET: Mobile Ad hoc Networks )

张宝贤:无线网络技术课程 ——2006 年 11 月 25 日 电子邮件: bxzhang@gucas.ac.cn. 移动 Ad hoc 网络(下) ( MANET: Mobile Ad hoc Networks ). MANET 路由机制及其它. MANET路由协议 DSDV DSR ZRP 基于地理信息的路由 MANET网络与其 它网络 互联. 熟练 DSR 熟练掌握 DSDV 掌握 ZRP 掌握 MANET 与其他网络互联概念. MANET 路由协议. 主动路由. 表驱动( Table driven )路由 先应式路由机制

traci
Télécharger la présentation

移动 Ad hoc 网络(下) ( MANET: Mobile Ad hoc Networks )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 张宝贤:无线网络技术课程——2006年11月25日 电子邮件:bxzhang@gucas.ac.cn 移动 Ad hoc网络(下)( MANET: Mobile Ad hoc Networks)

  2. MANET 路由机制及其它 • MANET路由协议 • DSDV • DSR • ZRP • 基于地理信息的路由 • MANET网络与其它网络互联 • 熟练 DSR • 熟练掌握 DSDV • 掌握 ZRP • 掌握MANET与其他网络互联概念

  3. MANET 路由协议

  4. 主动路由 • 表驱动(Table driven )路由 • 先应式路由机制 • 传统的分布式最短路径路由协议 • 链路状态或者距离向量 • 所有节点连续更新“可达”信息 • 每个节点维护到网络中所有节点的路由 • 所有路由都已经存在并且随时可用 • 初始路由请求的延迟低 • 路由开销大 • OLSR、TBRPF

  5. 距离向量(Distance-Vector) • 基于分布式的Bellman-Ford算法 • 每个节点维持一张路由表 • 所有可达目的地 • 到每个目的地的下一跳 • 到达该目的地的跳数 • 每个节点定期把自己的路由表发给所有的邻居 From Tobias Schwaegli

  6. 距离向量(Distance-Vector)(续)

  7. 距离向量(Distance-Vector)(续)

  8. 距离向量(Distance-Vector)(续)

  9. DV不能直接 用在MANET DV 协议能否适应MANET? • DV的固有缺点 • 无法发现回路 • “无穷计算”问题 • 可选方法:DSDV协议 • 没有全局拓扑视图 • 主动先应式路由 • 每个节点维护到所有已知目的地的路由信息 • 路由信息必须定期更新 • 即使网络拓扑没有变化也有通信开销 • 维护的路由可能从来不用

  10. DSDV 协议特点 • 保持了DV算法的简单性 • 确保无路由回路 • 新的路由表带有目的地序列号 • 对于拓扑变化能快速反应 • 当路由表发生重大变化时立即启动route advertisement • 但是迟滞不稳定路由的通告(减缓路由波动)?

  11. DSDV路由表 • Sequence number • 由目的端确定,用来保证不出现路由回环 • Install time • 该表项的创建时间(用来删除表中过时路由信息) • Stable data • Pointer to a table holding information on how stable a route is. • 用来缓解路由波动

  12. 路由通告( route advertisement) • 向每个邻居通告自己的路由表,表中每项包括 • 目的地地址 • metric = 到目的地的跳计数 • 目的地的序号 • 设置序号的规则 • 每次通告递增自己的目的地序号(只用偶数值) • 目的地自己的行为 • 如果一个目的节点不再可达(timeout),则将该节点的序号递增1(奇数值)并置metric = ∞ • 任意网络节点的行为

  13. 路由选择(Route Selection) • 将收到的路由更新信息与自己的路由表比较 • 选择目的地序号大的路由(这样能确保使用的总是来自目的地的最新路由信息) • 如果目的地序号相同,则选择较短(based on the used metric)的路由。

  14. DSDV 实例 0 0 8

  15. DSDV 实例(续) 0 2 8

  16. 对拓扑变化的响应 • 立即通告 • 有关新路由、链路中断、metric变化的信息立即传播给邻居! • 完全/增量更新 • Full Update • 发送自己路由表的全部路由信息 • Incremental Update • 仅发送路由表中有变化的表项(使得可用一个控制分组完成更新)

  17. 增加一个新节点 0 4 0 0

  18. 增加一个新节点(续) 0 4 0 0

  19. 如何解决路由回环和无穷计算?——当发生链路中断时如何解决路由回环和无穷计算?——当发生链路中断时

  20. 立即通告(接上页) 当C检测到自己到D的下一跳不可达时,可以执行立即通告

  21. 序号带来的路由波动问题 时间 只要D或者任何一个节点更新路有,就可能 导致路由通告==〉路有波动 3

  22. 阻尼路由波动 x • 记录不同表中给定序号值的路由(过时数据)的最近和平均Settling Time • Settling Time = 第一条路由和最好路由的到达时间间隔 • A在新序号第一条路由到达时更新路由表,但延迟广播该条路由。 • 推迟的时间= 2*(avg. Settling Time). 可缓解大型网络的路由波动问题,从而避免不必要的通告达到节约带宽。

  23. DSDV 总结 • 优点 • 非常简单(几乎与DV算法一致) • 通过目的地赋予的序号值来防止出现路由回环 • 不存在(按需路由机制中的)路由发现延迟 • 缺点 • 没有节点睡眠 • 开销:多数路由信息从不使用 • 能耗、 带宽、增加网络拥挤度。。等等

  24. 优化的链路状态路由协议( OLSR) • Optimized Link State Routing Protocol • 先应式的链路状态路由协议 • 是对常规表驱动协议的改进 • 链路状态更新消息分组变小(只包含某节点的邻居节点的一个子集) • 网络中链路状态更新消息广播产生的通信量减少(只有MPR节点才会重传该分组) • 存储空间要求降低 • 继承了链路状态协议的稳定性,同时最小化了报文转发前的等待时间。 • 优化基于多点中继的概念 RFC3626

  25. 基于拓扑广播的逆向路径转发(TBRPF) • Topology Broadcast based on Reverse-Path Forwarding • 本质上是一种LS(链路状态)协议 • 协议组成 • 邻居发现模块 • 路由模块 • 与传统链路状态协议的差别 • 拓扑更新消息更小 • 路由开销更少 • 更适合拓扑迅速变化的无线网络 RFC3684

  26. 按需(on-demand)路由协议 • 反应式(reactive)路由 • 在源端需要时候通过路由发现过程来确定路由 • 控制信息采用泛洪(flooding)方式 • 路由请求延迟高 • 路由开销低 • 两种实现技术 • 源路由(报文头携带完整的路由信息) • hop-by-hop路由 • DSR、AODV

  27. AODV 路由协议 • Ad hoc On demand Distance Vector routing • AODV是DSR和DSDV的综合 • 借用了DSR中路由发现和维护的基础 • 采用DSDV逐跳(hop-by-hop)路由 • 序编号和路由维护阶段的周期更新机制 • 使用分布式的、基于路由表的路由方式 • 使用三个主要消息 • 路由请求(RREQ:Route Request) • 路由应答(RREP: Route Reply) • 路由出错(RRER: route Error) RFC3561 Charles E. Perkins Elizabeth M. Belding Royer Samir R. Das 1994年

  28. 动态源路由协议(DSR) • Dynamic Source Routing protocol • 基于源路由概念的按需自适应路由协议 • 允许节点动态发现到任何目的地source route • 中间节点不必存储转发分组所需的路由表信息 • 采用Cache存放路由信息 • 允许网络完全自组织和自配置 • 因其简单而有效成为一个重要协议 • 网络开销较小 • 存在陈旧路由信息 David B. Johnson Yih-chun Hu David A. Maltz Draft-ietf-manet-dsr-10.txt

  29. DSR 协议假设 • 所有节点都愿意参与协议工作。。。合作型节点 • 节点收到损坏分组时能检测出来并丢弃 • 节点的移动速度相对于分组的传输延迟以及底层网络硬件的传输范围来说相对温和 • 节点的无线网络接口硬件可以promiscuous方式工作 • 接口将收到的每个帧都上交给驱动器软件而不会针对目的地址进行过滤 • 节点间的无线通信能力可不同 • 可支持Uni-directional链路 • 每个节点只能宣称一个IP地址 • Home address 为减少为此带来的能量消耗DSR可周期性地进入该模式

  30. DSR协议描述 • DSR协议由两部分组成 • Route discovery • 由一个想要象一个目的节点D发送数据的信源S激活; • 此进程只在S需要发送数据并且不知道到D的路由时才启动; • Route maintenance • 节点S在给D发送数据时要能检测出由于网络拓扑动态变化导致源路由中断的情况; • 当前的源路由不能用时S切换到另一条已知的路由或者重新发起route discovery寻找新路由

  31. 按需操作的优点 • 按需操作和没有周期性通告的优点 • DSR的开销在网络中多数节点相对位置近似不变的情况下接近0 • 随着节点的移动模式的变化,DSR的路由开销和当前路由使用状况有关 • 路由发现和维护都是按需进行的 • 不需要周期性地通告路由 • 不需要时时感测链路状态 • 不需要时时邻居检测 • 不依赖于任何底层链路协议

  32. DSR 的多路径思想 • 多路径获得的途径 • 作为route discovery的响应 • Overheard到其他路由控制包和数据包中的路由信息 • 为任何目的地缓存多条路由 • 多路径的作用 • 如果正在使用的一条路径中断,节点可立即切换到另一条缓存的路由 • 多条路由的缓存可避免每次路由中断后执行route discovery

  33. 提高网络的整体性能和网络连通性 DSR的单向链路支持能力 • DSR支持单向链路和非对称路由 • 天线不同 • 传播模式不同 • 干扰源不同 • DSR支持不同类型无线网络的互联 • 有的节点使用短程无线电 • 有的节点使用长途无线电 • DSR将所有的节点都看成是一个ad hoc网络中的节点 • DSR路由可集成到标准Internet路由中; • DSR路由可集成到Mobile IP路由中

  34. 基本route discovery • S源节点A将路由请求(Route Request)消息作为局部广播分组发送 • Route discovery的发起者A • Route discovery的目标E • Request id • List(初始为空):用来记录路由发现包经过的节点 • 所有位于A无线传输范围内的节点都将收到该路由请求包

  35. 基本route discovery(续) • 如果目标节点E收到该请求包,给请求源A回答一个ROUTE REPLY消息 • List:拷贝自ROUTE REQUEST • 路由发现源收到ROUTE REPLY消息后在本地Route Cache中缓存路由信息

  36. 基本route discovery(续) • 重复请求包的检测 • 如果中间节点收到了来自同一个源(A)请求id相同的请求包 • 如果中间节点收到的请求包中路由记录已经包含本节点 • 则中间节点丢弃该请求包 • 中间节点对于未处理过的请求包 • 将自己的地址填入请求包的list位置 • 将该请求包作为本地广播分组发送给邻居

  37. 基本route discovery(续) • 无穷迭代的路由发现过程 • 如果目标端在route cache中没有找到去往路由发起端的路由信息,并且网络存在单向链路 • 则需要发起新一轮route discovery过程 • DSR规定目标端(E)可使用ROUTE REQUEST消息中记录的路由作为返回的ROUTE REPLY的源路由; • DSR规定目标端在发起逆向返回到源端的新一轮route discovery时,在ROUTE REQUEST中“捎带”ROUTE REPLY消息; 首选逆向路由可避免有可能的第二次路由发现过程带来的开销

  38. 数据分组的发送缓冲区 • Send buffer • 在节点未知某个目标节点的路由而发起route discovery过程时,将所有拟发往该目标节点的数据分组缓存起来; • 采用指数后退算法延迟route discovery过程 • 节点针对send buffer之中的每个数据报不时发起路由发现; • 为减少路由发现的开销,使用指数后退算法限制针对同一个目标的路由发现过程; • 如果数据报的发送频率高于路由发现的启动频率,则随后的数据报缓存在send buffer;

  39. 基本route maintenance • 路由的维护 • 每个节点确保使用源路由发送/转发分组,使得该分组被路由中的下一跳接收; • 如果没有收到下一跳的确认则不断重发(至最大重试次数) • 如何确保数据报正确接收 • 链路级的确认(IEEE 802.11) • 被动确认(B侦听C向D转发)

  40. 基本route maintenance(续) • 如果数据分组被重发了最大次数仍然没有收到下一跳的确认,则节点(C)要向分组的源端发送ROUTE ERROR消息,并指明中断的链路; • 分组的源端(A)将该路由从路由缓存中删除; • 如果源端路由缓存中存在另一条到目标的路由则重发此分组; • 否则,重新开始route discovery过程;

  41. 路由发现的其他特点

  42. 路由发现的其它特点(续) • 缓存侦听获得的路由信息(与前面类似) • 如果C与X的链路是双向的,则可缓存路由信息

  43. 路由发现的其他特点(续) • 使用缓存的路由响应ROUTEREQUEST • 收到路由请求包的中间节点可用自己route cache缓存的到目标节点的路由信息应答路由请求; • ROUTE REPLY中的路由记录=ROUTE REQUEST中的list + 缓存的路由 • 在返回ROUTE REPLY之前要检查是否存在路由环路 结果路由包含:… C→F →C →D →E,因此F丢弃该路由请求包不予响应

  44. 路由发现的其它特点(续) • ROUTE REPLY风暴 • 节点广播一个针对某目标端的路由请求,当其邻居的cache中都有该目标端的路由时,每个邻居都试图以自己的缓存路由响应,由此造成应答风暴; • 风暴将浪费网络带宽 • 风暴将加剧局部网络冲突 A

  45. 路由发现的其它特点(续) D的路由表 • 预防ROUTE REPLY风暴 • 节点将网络接口置于promiscuous接收方式; • 延迟发送ROUTEREPLY; • 同时侦听路由请求端是否在用更短的路径发送;

  46. 路由发现的其它特点(续) • ROUTE REQUEST的跳数限制 • ROUTE REQUEST消息中的hop limit字段限制了转发该路由请求消息的中间节点数量; • 非传播ROUTE REQUEST消息 • Hop limit = 0可用来确定目标节点是否在路由发现发起端的邻居; • Hop limit = 0可用来确定路由发现发起端的邻居是否有缓存的路由; • 如果在一定的时间间隔内没有收到ROUTE REPLY消息,则采用广播ROUTE REQUEST消息; • 扩展环搜索(expanding ring search) • 逐步递增hop limit的值

  47. 路由维护的其它特点 • 营救(salvaging)分组 • 如果节点在自己的缓存路由中发现有到目标的路由,则在报告ROUTE ERROR之后努力营救分组; • 两种方式 • 将分组的源路由替换成缓存的路径; • 保留分组源路由的前缀,用缓存的路由替换分组源路由的后缀;

  48. V U Route Reply A B D C C侦听到A发到D的消息,发现自己的加入可以缩短路径 C可以请求把自己加入到路径中 路由维护的其它特点(续) • 路由最短自动化 • 数据分组使用的源路由在一个或多个中间节点不需要时能自动实行路由最短化 • 节点给数据分组的源端发回一个免费的ROUTEREPLY消息

  49. 路由维护的其它特点(续) • 增加ROUTE ERROR消息的扩展范围 • 当一个节点收到ROUTE ERROR而本地cache内没有第二条路由时,要发起新一轮的ROUTE REQUEST; • 新ROUTE REQUEST消息“捎带”ROUTE ERROR消息内容以便通告所有邻居某个特定链路中断情况; • 由此保证之后收到的ROUTE REPLY不是原来的过时路由

  50. 路由维护的其它特点(续) • 缓存否定信息 • 节点收到ROUTE ERROR后不是简单地删除该路由,而是将特定链路中断信息缓存一段时间; • 随后收到的所有包含该中断链路的路由都很容易判断为不可用; • 缓存的链路中断信息必须超时删除,以便在该链路恢复工作时可用;

More Related