RPL(4):RFC6550翻译(4)---RPL的通信流支持&RPL实例

来源:互联网 发布:usb数据传输线 编辑:程序博客网 时间:2024/05/22 13:32
4、RPL的通信流支持
RPL支持三种基础通信流:多点到点(MP2P),点到多点(P2MP)和点对点(P2P)。

4.1  多点到点通信
多点到点(MP2P)是很多LLN应用的主导通信流([RFC5867],[RFC5826],[RFC5673]和[RFC5548])。MP2P流的目的地是有应用意义的选定节点,如提供到更大互联网或核心专用IP网络的连接。RPL允许通过DODAG根到达MP2P目的地的,以支持MP2P通信。

4.2  点到多点通信
点到多点(P2MP)是一种被多个LLN应用所使用到的通信模式([RFC5867],[RFC5826],[RFC5673]和[RFC5548])。RPL通过使用目的地公告机制来支持P2MP通信,该机制提供离根的指向目的地的(前缀地址或多播组)下行路由。目的地公告在下层DODAG拓扑改变时可更新路由表。

4.3 点对点通信
RPL为点对点通信(P2P)提供基础结构。为使RPL网络支持P2P通信,根必须将数据包路由至目的地。网络中的节点也可拥有到目的地的路由表。数据包朝根流动,直到它到达一个拥有目的地的已知路由的祖先那。正如之后文档所指,在极端受限的情况下(节点无法存储路由),公共祖先可以是DODAG根。其它情况下,公共祖先离源和目的地都很近。

RPL还支持P2P目的地是一个“单跳”邻居的情况。

RPL即不指定也不妨碍附加机制,用以计算和安装可能对于任意P2P通信更为优化的路由。

5、RPL实例
在一个LLN内,可能存在多个,逻辑上独立的RPL实例。一个RPL节点可能属于多个RPL实例。它在一些实例中作为路由器存在而在另一些实例中作为叶子存在。本文讨论单个实例的行为。

有两种类型的RPL实例:本地和全局。RPL在全局和本地实例间划分RPLInstanceID空间,从而即允许协同又允许单边的RPLInstanceID分配。全局RPL实例是协同的,拥有单个或多个DODAG,且通常是长生命周期的。本地RPL实例通常只有一个DODAG,此DODAG的单个根拥有相应的DODAGID,且以单边的方式分配本地RPLInstanceID。例如,本地RPL实例可用于DODAG构造,以支持未来的按需路由解决方案。本地RPL实例的运行模式超出本规范范围,可能会在其它配套规范中介绍。

RPL实例的定义和配置超出本规范范围。指导原则涉及应用和实现细节,预计在将来的配套文档中会有详尽阐述。具体操作应该是这样:来自RPL网络外部的数据包可以无歧义地至少分配一个RPL实例,且可以在任何匹配此数据包的实例上安全地进行路由。

RPL网络中的控制包和数据包被标记,以便明确标识它们是哪个RPL实例的一部分。

每个RPL控制消息都有一个RPL字段。某些如之后定义的涉及本地RPLInstanceID的RPL控制消息,也可以包含DPDAGID。

在RPL网络中流动的数据包表明,RPLInstanceID是作为RPL所需的RPL分组信息的一部分而存在的。进一步介绍请参阅11.2节。对于来自RPL网络外部的数据包来说,入口路由器分配并植入RPLInstanceID,进而将其注入RPL网络。

5.1 RPL实例ID
一个全局RPLInstanceID必须在整个LLN内唯一。全局RPLInstanceID的分配和提供不在本文讨论范围内。在整个网络中最多可以有128个全局实例。本地实例总是跟DODAGID联合使用(DODAGID即可以显式给出,也可以在某些情况下隐式给出),每个DODAGID最多可支持64个本地实例。本地实例由属于DODAGID的节点分配和管理,无需和其它节点进行任何显式地协作。下面作详细介绍:

全局ID在RPLInstanceID字段内编码如下:


本地RPLInstanceID由属于DODAGID的节点自动配置,且对于那个DODAGID它必须是唯一的。用于配置本地RPLInstanceID的DODAGID必须是节点的可达IPv6地址。且它必须被用于本地实例中所有通信的终点。

本地RPL实例ID在RPLInstanceID字段内编码如下:


RPL控制消息中的本地RPLInstanceID的“D”标志位总是设置为0。它用来指示DODAGID是数据包的源还是目的地。如果“D”标志设为1,那么IPv6包的目的地址必定为DODAGID。如果“D”标志为0,那么IPv6包的源地址必定为DODAGID。

例如,假设节点A为本地RPL实例的DODAG根,并分配有一个本地RPLInstanceID。按照定义,所有通过该本地RPL实例的流量不是开始于A就是终止于A。既然如此,DODAGID将为节点A的可达IPv6地址。所有流量都将包含节点A的地址,也就是DODAGID,要不作为源要不作为目的地址。因此,本地RPLInstanceID可以通过正确设置“D”标志位来指示DODAGID是等于源地址还是目的地址。


0 0
原创粉丝点击