RPL(12):RFC6550翻译(12)---目标函数准则

来源:互联网 发布:淘宝装修店铺视频教程 编辑:程序博客网 时间:2024/05/02 02:45
14、目标函数(Objective Functions)准则

一下Objective Function(目标函数OF),与路由度量和约束紧密结合,可用于DODAG加入选择,以及在DODAG中选择哪些同行作为双亲。OF用于对双亲进行计算并排序为列表。OF还负责对DODAG版本中设备的Rank进行计算。

在Objective Code Point(OCP)中,Objective Function是通过DIO消息指示出来的,它指示了方法必须用于对DODAG的约束。Objective Code Points在[RFC6552]以及相关配套规范中描述。

14.1、目标函数行为
大多数目标函数都会在节点上遵循相同的抽象行为:
  • 每当事件指示潜在的下一跳信息被更新时,双亲选择将被触发。这可能发生在一个DIO消息被接收,一个计时器到期,所有DODAG双亲不可获得,或一个触发器指示了候选邻居状态已经改变。
  • 尽管通常在大多数应用场景中只有一个接口,OF仍扫描节点上的所有接口,因为存在有多个接口的可能,并且一个接口可能被配置为可用或不可用于RPL操作。接口也有可能被配置为有优先权,或者通过链路层的某些探试方法,动态了解到此接口比别的接口更好,这些均超出本规范范围。最后,接口可能匹配或不匹配目标函数所需的标准,例如,安全程度。因此,某些接口完全被排除在计算之外,例如,如果这些接口不能满足某些公告约束,那么多少会考虑其他接口。
  • OF会在所有可能的接口扫描所有候选邻居,以检查它们是否可以作为DODAG的路由器。他们中的很多以及候选邻居在使用前或许都需要通过合法性测试。尤其是,某些链路层需要与路由器一起活动的经验,以便能将该路由器作为下一跳。
  • OF通过对比添加到候选者Rank的值来计算节点的Rank,以表现节点和候选者在DODAG版本中的相对位置。
* Rank的最小增加值为MinHopRankIncrease。
* 为保持环路避免和度量优化对齐,度量值的任何增加都应反映为Rank值的增加。例如,EXT等纯粹相加的度量中,Rank值的增加会使得度量成比例地增加。
* 导致节点Rank值增加的候选邻居不能选作双亲。
  • 如果候选邻居公告的OF与策略功能所规定的OFs集不兼容,则将其忽略。
  • 在OF扫描所有候选邻居时,会保持当前最佳双亲,并将其与候选邻居进行比较。OF定义了许多对于到达目标十分关键的测试。路由器间的一个测试决定一个次序关系。
* 如果两路由器的次序相等,则接下来尝试在路由间进行测试。
* 否则两路由间的最好那个成为当前最佳双亲,并继续扫描下一个候选邻居。
* 某些OFs可能包含Ranks对比的测试,它将导致节点是否加入另一个路由器。
  • 当扫描结束,选出首选双亲,节点的Rank是通过首选双亲Rank加上到那个双亲的Rank步长计算得出。
  • 其他轮次扫描或许有必要选出替代双亲。在下一轮次中:
* 忽略不在同一DODAG中的候选邻居。
* 忽略Rank值大于节点的候选邻居。
* Rank值等于节点的候选邻居不用于双亲选择。
* Rank值小于节点的候选邻居作为首选。

15、邻居发现互操作建议
本规范直接借用来自IPv6 ND(邻居发现)中的Prefix Information Option(PIO) 和Route Information Option (RIO)。可以预见,由于将来的规范建立在这个基础上,可能还会有其它原因而利用IPv6 ND部分。这一章对将来的规范提供一些建议。

首先最重要的是,RPL是一个路由协议,它在RPL及ND间映射功能时会小心翼翼地保护架构。RPL仅用于路由,也就是说,可能存在某些原因,使得在具体实现/布署中共享RPL和IPv6 ND间的选项。

一般来说,下述选项适用
  • 必须根据RPL Control Message Options注册表分配RPL类型代码。
  • RPL Length字段必须以单个字节为单位表示,这和ND Length字段以8个字节为单位表示相反。
  • RPL选项通过不需要对齐8字节边界。
  • 在重新分配RPL选项,将其映射/转换为IPv6 ND选项时,只要可能,应当移除任何填充字节。例如,PIO中的Prefix Length字段足以描述Prefix字段的长度。当重新分配RPL选项,将其映射/转换为IPv6 ND选项时,所有这样的填充字节都将恢复,这个过程必须明确。
0 0