跳到主要内容

6.6. 一致性检查 (Consistency Check, CC)

CC 消息用于检查安全消息计数器并发出质询-响应 (challenge-response). CC 消息 MUST 作为安全 RPL 消息发送.

6.6.1. CC 基本对象格式 (Format of the CC Base Object)

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RPLInstanceID |R| Flags | CC Nonce |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ DODAGID +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Counter |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option(s)...
+-+-+-+-+-+-+-+-+

图 18: CC 基本对象
  • RPLInstanceID: 8 位字段, 指示从 DIO 获知的与 DODAG 关联的拓扑实例.

  • R: 'R' 标志指示 CC 消息是否为响应. 'R' 标志被清零的消息是请求. 'R' 标志被设置的消息是响应.

  • Flags: Flags 字段中剩余的 7 个未使用位保留供标志使用. 发送方 MUST 将该字段初始化为零, 接收方 MUST 忽略该字段.

  • CC Nonce: 16 位无符号整数, 由 CC 请求设置. 对应的 CC 响应包含与请求相同的 CC nonce 值.

  • DODAGID: 128 位字段, 包含 DODAG 根的标识符.

  • Destination Counter: 32 位无符号整数值, 指示发送方对目的地当前安全计数器值的估计. 如果发送方没有估计值, 则 SHOULD 将 Destination Counter 字段设置为零.

  • CC Base 的 未分配位 为保留位. 发送时 MUST 将其设置为零, 接收时 MUST 忽略.

Destination Counter 值允许新节点或已恢复节点通过 CC 消息交换重新同步. 这很重要, 因为即使设备从导致 Counter 状态丢失的故障中恢复, 也要确保给定安全密钥的 Counter 值不会重复. 例如, 当接收到 CC 请求或其他 RPL 消息, 且该消息的 Security 部分中带有已初始化的计数器时, CC 响应消息中提供的 Incoming Counter 允许请求节点将其 Outgoing Counter 重置为大于响应节点最后接收值的值. Incoming Counter 也会根据收到的 CC 响应进行更新.

6.6.2. CC 选项 (CC Options)

本规范允许 CC 消息携带以下选项:

  • 0x00 Pad1
  • 0x01 PadN