RPL(7):RFC6550翻译(7)---Upward Routes
本章讲述RPL是如何发现并维护上行路由的,描述了DODAG信息对象(DIOs)的使用,DIO报文用于发现及维护路由;详述了RPL如何生成并响应DIO;还描述了DODAG信息请求报文(DIS),它用于引发DIO传送。
DODAGID是根的全局或唯一本地IPv6地址。节点加入DODAG需提供经DODAG双亲到达由根作为DODAGID使用地址的主机路由。
根应该在DIO报文中放置一个或多个路由信息选项。RIO用于公告一个经根可达的外部路由,并附加如6.7.5节所描述的优先权,此RIO包括[RFC4191]中的RIO。它被当成根的一种与路由公告有所不同的能力,当数据包从节点通过附着的入口路由进行RPL域时,虽然RIO Prefix会使用此路由选择DODAG,但禁止使用其它路由协议重新分发。目标函数可以在RIO中使用路由公告或这些路由的优先级,以方便在相同实例中优选一个DODAG而不是其它。
⑴Grounded(G)⑵Mode of Operation(MOP)⑶DAGPrerference(Prf)⑷Version⑸RPLInstanceID⑹DODAGID
2、节点将在每一跳更新下列字段:
⑴Rank⑵DTSN
3、每个节点设置的DODAGID必须在RPL实例唯一且必须为属于根的可路由IPv6地址。
8.2 上行路由的发现和维护
- DODAG双亲集必须是候选邻居集的子集。
- DODAG根的DODAG双亲集的大小必须为0(其实就是说根没有双亲)。
- 非DODAG根节点必须拥有一个大于等于1的双亲集(其实就是说至少有一个双亲)。
- 一个节点的首选DODAG双亲必须为其DODAG双亲集成员。
- 一个节点的Rank必须大于其所有DODAG双亲集成员的Rank。
- 如果邻居可达性验证(NUD[RFC4861])或等效机制确定一个邻居不再可达,在计算和公告路由时,RPL节点将禁止将此节点放入候选邻居集,直到确定此节点再次可达为止。当路由通过一个不可达邻居时,必须从路由表中删除此路由。
这些规则确保了DODAG内节点有一致的局部顺序。只要节点的Rank不变,当到根的每一跳上的Rank减少时,以上规则就可确保每个节点到DODAG根的路由无环路。
上述规则管理单一DODAG版本。本节定义存在多个DODAG版本时RPL是如何运行的。
- (RPLInstanceID,DODAGID,DODAGVersionNumber)元组唯一定义了一个DODAG版本。节点DODAG双亲集中的每一个元素,由从每个DODAG双亲那最后一次侦听到DIO报文传送,必须隶属于相同的DODAG版本。节点候选邻居集中的元素则可能分属不同的DODAG版本。
- 如果某节点的DODAG双亲集中的每个元素都属于一个DODAG版本,或是此DODAG版本的根,则它是此DODAG版本成员。
- 当节点不是某DODAG版本成员时,禁止为此DODAG版本发送DIOs。
- DODAG根可增加它们公告的DODAGVersionNumber值,从而转移到新的DODAG版本。在DODAG根增加它的DODAGVersionNumber时,必须遵循每7章所描述的序列号算法中的协议。DODAGVersionNumber值增加所触发的事件将稍在本节及18章中描述。
- 在一给定DODAG内,非根节点所公告的DODAGVersionNumber不能高于之前所侦听到的最高DODAGVersionNumber。更高请参照第7章中的定义的大于运算。
- 一旦节点通过发送DIO公告了DODAG版本,它必须不能是同一DODAG的上一DODAG版本的成员(也就是具有相同的RPLInstanceID,相同的DODAGID,更低的DODAGVersionNumber )。更低请参照第7章中所定义的小于运算。
当 DODAGVersionNumber增加时,一个新的DODAG版本从DODAT根向外传播。一个公告新 DODAGVersionNumber的双亲不能属于公告旧 DODAGVersionNumber的子节点。因此,节点可以安全地添加携带新 DODAGVersionNumber的任意Rank的双亲,从而避免形成回路。
- 无法满足应用定义目标的DODAG根禁止将Grounded位置1。
- DODAG根必须公告值为ROOT_RANK的Rank。
- 一个DODAG双亲集为空的节点有可能成为浮动DODAG的根。也可以将它的DAGPreference置1,以便有较低的优先权。
在那些使用非LLN链路联合数个LLN根的布署中,在非RPL链路上运行RPL并使用一个路由器作为“骨干根”(backbone root)是有可能的。骨干根是DODAG的虚拟根,并展示了骨干上的值为BASE_RANK的Rank。所有的LLN根的双亲都指向那个骨干根,包括骨干根自身(如果它也作为LLN根运行),并向LLN揭示了值为ROOT_RANK的Rank。这些虚拟根是相同DODAG的一部分,且公告相同的DODAGID。它们在骨干中通过虚拟根协调 DODAGVersionNumber 及其它DODAG参数。协调的方法超出本规范范围(将在将来的配套文档中定义)。
- 节点所公告的Rank绝不能小于或等于其DODAG版本内双亲集任意成员的Rank。
- 节点所公告的Rank可以小于其之前在DODAG版本内所公告的Rank。
- 假设在一个DODAG版本内,一个给定节点所公告的最低Rank为L,在相同DODAG 版本内,节点所公告的有效Rank不能大过L+DAGMaxRankIncrease。INFINITE_RANK对于此规则是个例外:节点可以在DODAG版本内无限制地公告INFINITE_RANK。如果节点的Rank大于L+DAGMaxRankIncrease,当它公告Rank时,必须将其Rank公告为INFINITE_RANK。
- 节点可以在任何时间选择加入同一RPL实例中的不同DODAG。此种加入没有Rank上的限制,除非节点之前曾是那个不同的DODAG版本成员。在这种情况下,必须遵守上面第3条规则。直到节点发送DIO指示它的新DODAG成员关系,在此之前,节点必须按照先前的DODAG转发数据包。
- 在从合适的DODAG双亲那收到下一DODAGVersionNumber公告后的任何时刻,节点都可以选择迁移至DODAG内的下一DODAG版本。
- 节点通过公告值为INFINITE_RANK的Rank来毒化路由。
- 节点的双亲集中禁止存在任意Rank值为INFINITE_RANK的节点。
尽管实现可能以毒化的原因公告INFINITE_RANK,但这样做与设置Rank值为INFINITE_RANK有所不同。例如,一个节点可能在持续发送所包含Rank值不为INFINITE_RANK的数据包的同时,仍然在其DIO中公告INFINITE_RANK。
当一个旧双亲被观察到公告了值为INFINITE_RANK的Rank,此双亲已经离开DODAG,并不再作为双亲,也不存在任何Rank值大于INFINITE_RANK的节点,因此旧节点无法再成为双亲,并从双亲集中删除。
8.2.2.6 分离
节点无法在一给定DODAG版本内保持对DODAG的连接,也就是说,在没有违反本规范规则的情况下无法维持非空双亲集,此种情况下,节点可能脱离这个DODAG版本。脱离的节点成为它自己浮动DODAG的根,此时节点应立即通过一个DIO来公告这种新情况以代替毒化。
- 如果DIO报文异常,则说明此报文和适合做进一步处理,必须静默丢弃(参考18章有关错误日志内容)。
- 如果DIO报文发送者是候选邻居成员,并且报文无异常,节点必须处理DIO。
- 当节点转发数据包时检测到不一致,详见11.2节。
- 当节点收到无请求信息选项的DIS多播信息,除非DIS标志位约束了此种行为。
- 当节点收到带请求信息选项的DIS多播信息,并匹配请求信息选项中的所有断言,除非DIS标志位约束了此种行为。
- 当一个节点加入新的DIDAG版本(例如更新它的DODAGVersionNumber,加入新的RPL实例等等)。
取自DIO报文,为(2 ^ DIOIntervalMin)毫秒。默认值为DEFAULT_DIO_INTERVAL_MIN。
取自DIO报文,为DIOIntervalDoublings。默认值为DEFAULT_DIO_INTERVAL_DOUBLINGS。
取自DIO报文,为DIORedundancyConstant。默认值为DEFAULT_DIO_REDUNDANCY_CONSTANT。在RPL中,k值为0x00被当成无穷大的冗余常量,也就是涓流永远抵制信息。
- 禁止发送包含DAG Metric Container的DIO。
- 它的DIO必须公告值为INFINITE_RANK的DAGRank。
- 它可以抑制DIO发送,除非在数据包转发期期间检测到不一致时DIO发送已经触发,或为了回应一个单播DIS信息,无论哪种情况DIO发送都不能被禁止。
- 它可以如9.2节所述的那样发送单播DAO。
- 它可以如9.10节所述的那样向邻居发送“一跳”多播DAO。
RPL(7):RFC6550翻译(7)---Upward Routes相关推荐
- RPL(10):RFC6550翻译(10)---分组转发和环路避免/检测
11.分组转发和环路避免/检测 11.1 分组转发的建议 本文详述了一个路由协议.提供这些非规范建议是为了通过举例说明这样的实现如何与RPL一起工作,为转发实现设计提供帮助. 当转发数据包到目的地是 ...
- RPL(3):RFC6550翻译(3)---协议综述
3.协议综述 本节目的是本着[RFC4101]的精神描述RPL.协议细节可以后面章节找到. 3.1 拓扑结构 本节介绍可形成的基本RPL拓扑结构,及构造这些拓扑结构的规则,例如,指导DODAG形成的规 ...
- 如何理解 Flutter 路由源码设计?| 开发者说·DTalk
本文原作者: Nayuta,原文发布于: 进击的 Flutter 本期看点: 70 行代码实现一个丐版路由 路由源码细节解析 导语 某天在公众号看到这样一个问题 这问题我熟啊,刚好翻译 Overl ...
- Spatial As Deep: Spatial CNN for Traffic Scene Understanding论文翻译
Spatial As Deep: Spatial CNN for Traffic Scene Understanding论文翻译 Abstract摘要 Convolutional neural net ...
- 《翻译》Intel 64 与 IA-32 架构软件开发者手册卷1翻译
<前言> 翻译自官方的PDF版手册,可以从下述站点下载英文原版: http://www.intel.com/content/www/us/en/processors/architectur ...
- CPL DPL RPL的区别 一致性代码段和非一致性代码段
概述:在谈论保护模式编程的时候,一直会有这样的困惑:为什么除了CPL和DPL还有RPL?什么时候高特权级不能访问低特权级?什么时候低特权级不能访问高特权级?一致性代码和非一致性代码有什么区别?等等这些 ...
- ASP.NET 4.0 的新特性(2 在WebForm中使用Routing)(翻译)
接着上次的那个翻译,希望能对大家的学习有一点帮助! 原文:http://geekswithblogs.net/ranganh/archive/2009/08/20/whatrsquos-new ...
- Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
Paper:<NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉>翻 ...
- AI:Algorithmia《2020 state of enterprise machine learning—2020年企业机器学习状况》翻译与解读
AI:Algorithmia<2020 state of enterprise machine learning-2020年企业机器学习状况>翻译与解读 目录 <2020 state ...
- Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读
Paper:Xavier参数初始化之<Understanding the difficulty of training deep feedforward neural networks>的 ...
最新文章
- OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
- ocr 超时小票识别_【FreeOCR(文字扫描识别软件)和小票打印机测试工具哪个好用】FreeOCR(文字扫描识别软件)和小票打印机测试工具对比-ZOL下载...
- iphone闪退修复工具_苹果中国回应iPhone致命漏洞:不予置评
- [BZOJ3992]序列统计
- Python猜字游戏(用函数)(最新版)
- element ui需要引入样式吗_彻底学会element-ui按需引入和纯净主题定制
- vs2008调试c语言,VS2008调试Release程序-Dump文件方式_C/C++技术分享_看流星社区 www.kanliuxing.com...
- 数据中台不是企业的万能妙药
- linux内核驱动中对字符串的操作【转】
- ORACLE数据库测试题(一)
- 帆软关于排名公式、分组排名问题开窗函数
- X-VECTORS: ROBUST DNN EMBEDDINGS FOR SPEAKER RECOGNITION论文翻译
- Bypass注入(WAF绕过)
- ubuntu下使用vscode阅读内核源码或uboot源码使用技巧——search.excludefiles.exclude
- GraphSage-TF代码解读
- luogu1968 美元汇率
- Oracle数据库配置管理(一)
- 人工生命全景图:如何创造出超越人工智能的生命系统
- 如何批量生成文件夹?
- PG 利用FDW的水平分片
热门文章
- 【VOLTE】【SRVCC】 SRVCC TO 3GPP
- ECSHOP漏洞集:http://sebug.net/appdir/ECSHOP
- CET6 历年真题原词复现 核心词汇 做题技巧 听力拿分技巧汇总(这篇文章是英语四六级考试最后的版本,谢谢大家一路陪伴)
- Linux之Redis安装(解压版)
- 输入法 箭头符号大全
- steam无法连接至计算机,大神传授win7系统游戏无法连接至steam网络一直卡在“正在连接steam”界面的设置技巧...
- c语言程序设计21点扑克牌,C语言程序设计21点扑克牌游戏.doc
- GA-RPN:Region Proposal by Guided Anchoring
- C++ RQNOJ 星门龙跃
- 电子科技大学计算机导师李珂,导师个人信息 - 电子科大研招网