RPL(11):RFC6550翻译(11)---多播操作

来源:互联网 发布:手机如何收看网络电视 编辑:程序博客网 时间:2024/05/21 11:34
12、多播运行
本章讲述IPv6 RPL网络中的多播路由运行,特别是单播DAOs如何用于中继组注册。相同的DODAG结构可用于转发单播和多播流量。本章仅限于介绍组注册如何交换,以及转发的基础设施是如何运行的。并不提供对LLN中的多播完整描述,尤其未提供在多播中的指定目标的DODAGs是如何生成的,也未描述有关多播中的RPL运行---它们是将来规范的任务。

多播组注册使用与单播相同的DAO消息,除了所传输的地址类型。主要不同之处为:多播流量向下拷贝到所有已经注册至多播组的孩子,而单播流量仅传递给一个孩子。

那些支持RPL存储模式操作的节点也支持下面介绍的多播DAO运行。而仅支持非存储模式运行的节点不支持本节内容。

多播运行由DIO中的MOP字段控制。
  • 如果MOP字段需要多播支持,那么作为路由器加入RPL网络的节点,必须依照本节所描述的RPL网络的多播信令和转发那样运行。不支持由MOP字段所要求的多播运行的节点仅能以叶子节点加入。
  • 如果MOP字段不需要多播支持,则多播通过其它方式进行处理,这超出本规范范围。(具体例子可能包括一系列单播复制或有限范围洪泛)。
路由器可能选择只将侦听者注册DAO消息传递给它的首选父级;在这种情况下,如果那条链路发送失败,对于该路由器的所有子DODAGs,返回的多播数据包将会丢失。另一方面,路由器在处理单播目的地公告的DAO消息时,有可能选择复制额外的双亲;这种情况下,路由器需要删除重复内容。

因此,多播路由器状态被放置在从侦听者到DODAG根路径上的每个路由器中,这使得根可以将多播数据包复制到它的所有孩子路由器中,这些孩子路由器为此多播组发布了一个包含Target选项的DAO消息。

对于源自DODAG内部的多播数据包来说,数据包传递给首选双亲,如果失败,则传递给DODAG中的替代双亲。数据包还会拷贝到除了传递数据包的孩子以外的所有已注册孩子。最终,如果在外部基础设施中存在侦听者,DODAG根将不得不将数据包传播至外部基础设施中。

因此,DODAG根在RPL网络中充中自动代理汇聚点,并作为所有起始于RPL域并流向非RPL域的多播流的源头。所以,无论根是否实际附着到非RPL域,亦或DODAG是接地或悬浮的,根都能够在任何时间分发内部多播流。

13、维护路由邻接
继任者的选择,沿着默认路径在DODAG上行,或沿着从目的地公告获知的路径在DODAG下行,所导致的路由邻接的形成,需要维护。

在IGPs中,诸如OSPF[RFC4915]或IS-IS[RFC5120],路由邻接的维护涉及到keepalive机制(Hellos)的或其他协议的使用,诸如Bidirectional Forwarding Detection (BFD双向转发侦测) [RFC5881]、MANET Neighborhood Discovery  Protocol (NHDP MANET邻居发现协议)[RFC6130]。不幸的是,这类积极主动的方法在受限环境中往往不可取,相对于数据流量,它会导致过多的控制流量,从而对链路负载及节点资源造成负面影响。

相比那些路由协议,RPL未定义任何keepalive机制来检测路由邻接失败:这是因为在大多数情况下,这类机制会消耗过多的带宽,更为重要的是能量(一个电池驱动设备无法承担发送周期性keepalives)。但是RPL仍然需要一个外部机制来检测邻居是否不再可达。这样的机制最好是反应式流量,从而以最小开销维护路由邻接,并专注于实际使用的链路。

反应式机制的例子有:
Neighbor Unreachability Detection(邻居不可达检测[RFC4861])机制
基于事件的Layer 2触发[RFC5184],如关联状态和L2确认。
0 0