RPL(6):RFC6550翻译(6)---Sequence Counter

7、Sequence Counters(序列计数器)
本章介绍RPL中序列计数器的自举和运行总体方案,如DIO报文中的DODAGVersionNumber,DAO报文中的DAOSequence和传送信息选项中的Path Sequence。

7.1  序列计数器概览
本规范利用三种不同的序列号来验证协议信息的新鲜度和同步性:
DODAGVersionNumber :
此序列计数器存在于DIO Base中,指示DODAG形成时的版本。为重新验证完整性和允许全局修复的发生,每次根决定形成一个新的DODAG版时,都会单调递增其 DODAGVersionNumber。当路由器加入新的DODAG版本时, DODAGVersionNumber都会沿DODAG向下无变化传播。 DODAGVersionNumber作为DODAG的全局标志指示DODAG版本在哪一个路由器下运行。一旦接收节点已经迁移至较新的DODAG版本,较旧(小)的值表示始发路由并未迁移至新的DODAG版本且不能作为双亲使用。
DAOSequence:
此序列计数器存在于DAO Base中,将DAO报文和DAO ACK报文关联。DAOSequence号为发送DAO报文节点的本地标志,用于自身检测丢失的DAO报文,以便进行重试。
Path Sequence:
此序列计数器存在于DAO报文中的传送信息选项之中。此计数器存在的目的是:在一个路由冗余场景中,同一目的地存在多条并行线路,当新路由取代旧路由时,用于区分不同的移动路径。Path Sequence在DODAG中为全局标志,用于指示路由对于相关目标的新鲜度。从始发路由那接收到的更旧(小)的值表示始发路由状态已过期,且不再被考虑作为目标的潜在下一跳。Path Sequence由公告目标的节点计算,该节点是Target本身或代表主机公告Target的路由器,并且Path Sequence作为DAO内容通过双亲路由器向根进行传播时不会改变。如果主机未向它的路由器传递计数器,那么路由器将代表主机负责计算 Path Sequence,而主机因此仅能注册到一个路由器。如果包含相同Target的DAO报文由于路由冗余在给定时间点向多个双亲发布时,那么所有具有相同目标的DAO报文中的 Path Sequence相同。

7.2  序列计数器的运行
RPL序列计数器以“lollipop(棒棒糖)”方式细分 [Perlman83],其中大于等于128的值作为线性序列用于表示计数器的重启和自举。小于128的值用于大小为128的循环序列号码空间 [RFC1982]。请注意从线性范围到循环范围转换时的运行模式。最后,当运行于循环模式时,如果检测到序列号之间相差过大,那么它们不进行比较,详述如下。

基于2^N配置的比较窗口中,SEQUENCE_WINDOW=16,本规范中N值为4。
对于一个给定的序列计数器:
1、序列计数器将被初始化为一个运行时定义的值,大于等于128。推荐值为240(256-SEQUENCE_WINDOW)。

2、当序列计数器的增长超过它的最大值,它必须回归为0。当使用大于等于128的序列计数器时,最大值为255。当使用小于128的计数器时,最大值为127。

3、当对比两个序列计数器时,必须使用如下规则:
(1)  当第一个序列计数器A的区间为[128 .. 255],第二个序列计数器B区间为[0 .. 127]时:
① 如果(256 + B - A)小于等于 SEQUENCE_WINDOW,则B大于A,A小于B,且两者不相等。
②  如果(256 + B - A)大于 SEQUENCE_WINDOW,则A大于B,B小于A,且两者不相等。
例如,如果A=140,B=5,那么(256 + 5 - 240)= 21。21大于 SEQUENCE_WINDOW(16)。因此240大于5。另一例子,A=250,B=5,那么(256 + 5 - 250)= 11。11小于 SEQUENCE_WINDOW(16)。因此250小于5。

(2) 当两个进行对比的序列计数器都小于127,或它们都大于等于128时:
① 如果两个序列计数器之间差的绝对值小于等于 SEQUENCE_WINDOW,那么这种比较如 [RFC1982] 所言,用于决定大于、小于、等于关系。
②当 两个序列计数器之间差的绝对值大于 SEQUENCE_WINDOW时,表明发生了不同步,两序列号不可比较。

4、如果两个序列号被确定为不可比较,也就是比较的结果未定义,那么应按以下方式进行处理:将优先权给予最近观察到有增加的序列号。如果这样做失败了,则应尽量减少节点对自身状态的最终改变。 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值