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是等于源地址还是目的地址。

RPL(4):RFC6550翻译(4)---RPL的通信流支持RPL实例相关推荐

  1. RPL(3):RFC6550翻译(3)---协议综述

    3.协议综述 本节目的是本着[RFC4101]的精神描述RPL.协议细节可以后面章节找到. 3.1 拓扑结构 本节介绍可形成的基本RPL拓扑结构,及构造这些拓扑结构的规则,例如,指导DODAG形成的规 ...

  2. RPL(10):RFC6550翻译(10)---分组转发和环路避免/检测

    11.分组转发和环路避免/检测 11.1  分组转发的建议 本文详述了一个路由协议.提供这些非规范建议是为了通过举例说明这样的实现如何与RPL一起工作,为转发实现设计提供帮助. 当转发数据包到目的地是 ...

  3. 百度AI全面开放EasyDL开启AI普及化时代;讯飞翻译机2.0发布:支持34种语言;华为开发能读懂人类情绪的AI技术

    百度AI全面开放EasyDL开启AI普及化时代,"小白"也能用AI 百度"燎原计划2018"暨百度AI开发者实战营第二季强势回归,首站北京即放送三大满足各类开发 ...

  4. 基于UDS的BootLoader上位机源代码,支持ISO15765通信,支持PeakCAN , ZJG CAN等CAN卡, 支持S-record格式的二进制文件解析; 可二次开发或扩展应用

    基于UDS的BootLoader上位机源代码(C#) 基于UDS的BootLoader上位机源代码,支持ISO15765通信,支持PeakCAN , ZJG CAN等CAN卡, 支持S-record格 ...

  5. 调用父级方法_通信:找到任意组件实例的findComponents系列方法,5个终极方案

    已经介绍了两种组件间通信的方法:provide / inject 和 dispatch / broadcast.它们有各自的使用场景和局限,比如前者多用于子组件获取父组件的状态,后者常用于父子组件间通 ...

  6. Google在线翻译工具:Translatium for Mac支持big sur

    Translatium,谷歌翻译客户端 Translatium for Mac是一款Mac上强大的翻译软件,支持150多种语言和方言,支持语言输入翻译,文本翻译,并且支持相机翻译语言,Translat ...

  7. 串口通信基本知识及实例开发1(Com口通信简介)

    这一篇讲的是Com通信的基本知识,下一篇讲一下Com开发实例 1.串口通信:指外设和计算机之间,通过数据信号线,地线等,按位进行传输数据的一种通讯方式 串口通讯是一种接口标准,它规定了电器标准,没有规 ...

  8. Android 串口通信开发总结和实例解析

    文章目录 前言 一.串口通信是什么? 1.概念 2.通讯方式 3.接口外观 二.使用步骤 1.准备 2.使用 2.解析案例 总结 前言 之前遇到的关于硬件需求的厂家一般会提供jar包调用.一直没搞过直 ...

  9. python串口通信_python串口编程实例 - 全文

    Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其 ...

  10. 关于串口通信流控控制

    今天硬件提出与CPLD通信时候,需要将通信引脚配置为流控,有点懵逼,马上百度一波.这里简单做个记录. 1 关于流控 首先,我们需要知道什么"流",这里"流"是指 ...

最新文章

  1. 重载和覆盖的区别?(overload vs override)
  2. 【普通の随笔】6.30
  3. UVA - 11246 - K-Multiple Free set(容斥原理)
  4. topcoder srm 410 div1
  5. swift 静态库、动态库
  6. day03【后台】管理员维护
  7. scala类的序列化_Scala序列理解,通用类和内部类示例
  8. shell学习之跳出循环
  9. 上传附件点击事件_支持高拍仪扫描凭证附件的出纳记账软件
  10. 不干胶设计用什么软件制作_用什么软件制作抖音短视频会比较好?
  11. msg邮件转eml邮件
  12. linux 中meltdown指令,宇宙最强,meltdown论文中英文对照版(二)
  13. 【MySQL】MySQL入门笔记
  14. 如何用opencv(C++)读入sar.tif图(复数矩阵)(radasat2)
  15. Java代码控制UI界面
  16. C++ Source Flowchart 自动生成C++程序流程图
  17. Web简易时间轴制作(超详细)
  18. GBase8d产品admin目录下的文件及文件夹说明
  19. 虚拟卡是什么?怎样申请虚拟信用卡?
  20. Word中endnote选项无效,怎么处理?

热门文章

  1. PCL可视化,你想要一只五彩兔子吗
  2. Linux性能优化——如何测试网络延迟
  3. 如何知道计算机是否支持64位,查看CPU是否支持64位操作系统的简单方法
  4. C++关键字protected的作用详解
  5. 大学物理实验空气比热容比的计算
  6. cocos2dx 精灵触摸
  7. 惯导标定国内外研究现状小结(删减版)
  8. Flex4 自定义皮肤详解
  9. 线性同余发生器与伪随机数
  10. 第1015期机器学习日报(2017-06-29)