跳到主要内容

1. 引言 (Introduction)

1. 引言 (Introduction)

IPv6-over-IEEE 802.15.4 [RFC4944] 文档规定了如何借助位于 Media Access Control (MAC) 层与 IP 网络层之间的适配层, 在 IEEE 802.15.4 网络上传送 IPv6. 低功耗无线个人区域网络 (Low-power Wireless Personal Area Network, LoWPAN) 中的链路具有有损, 低功耗, 低比特率, 短距离等特征; 其中许多节点会通过长时间休眠来节省能量. IPv6 Neighbor Discovery (ND) [RFC4861] 中使用的组播并不适合这类无线低功耗有损网络. 此外, LoWPAN 链路本质上是非对称且非传递的. 一个 LoWPAN 可能由大量相互重叠的无线电覆盖范围组成. 虽然某个给定无线电覆盖范围具备广播能力, 但这些范围聚合起来形成的是一种复杂的 Non-Broadcast Multiple Access (NBMA) [RFC2491] 结构, 通常不具备整个 LoWPAN 范围内的组播能力. 链路本地作用域实际上由可达性和无线电信号强度定义. 因此, 可将 LoWPAN 视为由具有未确定连通性属性的链路组成, 如 [RFC5889] 所述, 并遵循其中定义的相应地址模型假设.

本规范针对 LoWPAN 这类低功耗有损网络, 为 IPv6 Neighbor Discovery [RFC4861] 引入以下优化:

  • 由主机发起交互, 以支持休眠主机.
  • 消除面向主机的基于组播的地址解析.
  • 使用单播 Neighbor Solicitation (NS) 和 Neighbor Advertisement (NA) 消息中的新选项提供主机地址注册功能.
  • 使用新的 Neighbor Discovery 选项向主机分发 6LoWPAN 头部压缩上下文.
  • 多跳分发前缀和 6LoWPAN 头部压缩上下文.
  • 多跳 Duplicate Address Detection (DAD), 使用两个新的 ICMPv6 消息类型.

如果需要, 这两个多跳项目可以由路由协议机制替代; 参见 Section 1.4.

本文档定义了三个新的 ICMPv6 消息选项: Address Registration Option (ARO), Authoritative Border Router Option (ABRO), 以及 6LoWPAN Context Option (6CO). 它还定义了两个新的 ICMPv6 消息类型: Duplicate Address Request (DAR) 和 Duplicate Address Confirmation (DAC).

1.1. IPv6 Neighbor Discovery 的不足 (The Shortcomings of IPv6 Neighbor Discovery)

IPv6 Neighbor Discovery [RFC4861] 提供了若干重要机制, 用于路由器发现, 地址解析, Duplicate Address Detection, Redirect 消息, 以及前缀和参数发现.

在 IPv6 以太网中, 网络上电并完成初始化后, 节点会在接口上加入请求节点组播地址 (solicited-node multicast address), 然后通过向链路发送请求节点组播消息 (solicited-node multicast message), 对获得的链路本地地址执行 Duplicate Address Detection (DAD). 随后, 它会向所有路由器组播地址 (all-routers multicast address) 发送组播消息以请求 Router Advertisements (RAs). 如果主机收到带有 A (autonomous address configuration) 标志的有效 RA, 它会使用 RA 消息中通告的前缀自动配置 IPv6 地址. 除此之外, IPv6 路由器通常会在网络上周期性发送 RA. RA 会发送到所有节点组播地址 (all-nodes multicast address). 节点发送 Neighbor Solicitation/Neighbor Advertisement 消息, 以解析链路上目的节点的 IPv6 地址. 用于地址解析的 Neighbor Solicitation 消息是组播消息. Duplicate Address Detection 过程以及周期性 Router Advertisement 消息的使用, 都假定节点在大多数时间处于上电且可达状态.

在 Neighbor Discovery 中, 路由器通过假设一个子网前缀映射到一个广播域来发现主机, 然后组播 Neighbor Solicitation 消息以查找主机及其链路层地址. 此外, DAD 对组播的使用假定所有从同一前缀自动配置 IPv6 地址的主机都可以通过链路本地组播消息到达.

注意, 在 Neighbor Discovery 中, Prefix Information Option (PIO) 内的 L (on-link) 位可以被置为零, 这会使主机不再使用组播 Neighbor Solicitation (NS) 消息来解析其他主机的地址, 但路由器仍会使用组播 NS 消息来查找主机.

由于无线通信的有损特性以及无线电环境的变化, IPv6 链路节点集合可能会因外部物理因素而改变. 因此, 链路往往不稳定, 节点看起来像是在移动, 即使它们并不一定发生了物理移动.

LoWPAN 可以使用两类链路层地址: [RFC4944] 中定义的 16-bit short addresses 和 64-bit unique addresses. 此外, 可用的链路层载荷大小大约小于 100 字节; 因此, 头部压缩非常有用.

考虑到 LoWPAN 中的上述特征以及 IPv6 Neighbor Discovery [RFC4861] 的协议设计, 对 Neighbor Discovery 进行一些优化和扩展, 有助于在低功耗有损网络中广泛部署 IPv6, 例如 6LoWPAN 和其他同构低功耗网络.

1.2. 适用性 (Applicability)

[RFC4861] 在 Section 1 中预见到, 会有一份文档覆盖 IP 在某种特定链路类型上的运行方式, 并为未经修改的 [RFC4861] 原本通用的适用性定义例外. 本规范改进 LoWPAN 中 IPv6 Neighbor Discovery 的使用方式, 以节省这类节点的能量和处理能力. 因此, 本文档更新 [RFC4944], 以规定这里定义的优化的使用方式.

本规范的适用性限于如下 LoWPAN: 子网上所有节点以同构方式实现这些优化. 虽然需要指出, 其中一些优化在 6LoWPAN 之外也可能有用, 例如用于一般 IPv6 低功耗有损网络, 甚至可能与 [RFC4861] 结合使用, 但这类组合的使用超出本文档范围.

本文档规定 LoWPAN 中主机与路由器之间的一组行为. 遵循本文档的实现 MUST 实现这些行为. 本文档还规定了 route-over 配置中所需的一组行为, 即多跳前缀或上下文分发, 以及单独的多跳 Duplicate Address Detection. 本规范的实现 MUST 支持这些部分, 除非该实现支持某个其他规范中的替代项 ("substitute").

本文档描述的优化适用于不同拓扑. 它们对 Mesh 拓扑中的 route-over 和 mesh-under 配置最有用. 但是, 由于减少了信令, 能够稳健处理非传递链路, 并提供头部压缩上下文信息, Star 拓扑配置也会从这些优化中受益.

1.3. 目标和假设 (Goals and Assumptions)

本文档有以下主要目标和假设.

目标:

  • 使用一种最小但足以同时支持 mesh-under 和 route-over 配置运行的机制来优化 Neighbor Discovery.
  • 通过避免使用组播泛洪并减少链路作用域组播消息的使用来最小化信令.
  • 优化主机与其默认路由器之间的接口.
  • 提供对休眠主机的支持.
  • 按照 6LoWPAN 头部压缩 [RFC6282] 的需要向主机分发上下文信息.
  • 从边界向 LoWPAN 中的所有路由器分发上下文信息和前缀信息.
  • 提供适用于 route-over LoWPAN 的多跳 Duplicate Address Detection 机制.

假设:

  • 64-bit Extended Unique Identifier (EUI-64) [EUI64] 地址是全局唯一的, 并且 LoWPAN 是同构的.
  • 网络中的所有节点都具有 EUI-64 Interface ID, 以便执行地址自动配置并检测重复地址.
  • 假设链路层技术是低功耗且有损的, 并表现出未确定连通性, 例如 IEEE 802.15.4 [RFC4944]. 但是, 地址注册机制也可能适用于其他链路层技术.
  • 6LoWPAN 被配置为共享一个或多个全局 IPv6 地址前缀, 以便主机在 LoWPAN 中的路由器之间移动时无需改变其 IPv6 地址.
  • 使用多跳 DAD 机制 (Section 8.2) 时, 每个 6LoWPAN Router (6LR) 都向 LoWPAN 中可用的所有 6LoWPAN Border Routers (6LBRs) 注册.
  • 如果使用 IEEE 802.15.4 16-bit short addresses, 则会使用某种技术来确保这些链路层地址的唯一性. 这可以通过 DHCPv6, 基于 Address Registration Option 的 Duplicate Address Detection (在 Section 8.2 中规定), 或本文档范围之外的其他技术完成.
  • 为了保持并非从 EUI-64 派生的地址的唯一性 (参见 [RFC4862] 的 Section 5.4), 必须在整个 LoWPAN 中以相同方式为它们进行分配或重复检查. 这可以通过 DHCPv6 进行分配, 和/或使用 Section 8.2 中规定的 Duplicate Address Detection 机制 (或为此目的开发的任何其他协议) 完成.
  • 为了使 6LoWPAN 头部压缩 [RFC6282] 正确运行, 对于可以发送, 接收或转发某个给定分组的所有主机, 6LR 和 6LBR, 压缩上下文必须一致. 如果使用 Section 8.1 分发上下文信息, 这意味着所有 6LBR 必须协调它们在单个 LoWPAN 内分发的上下文信息.
  • 本规范描述单个 LoWPAN 内 ND 的运行. 一个节点同时参与多个 LoWPAN 可能是可行的, 但超出本文档范围.
  • 由于 LoWPAN 在整个网络中共享其前缀, 节点在 LoWPAN 内的移动性是透明的. LoWPAN 间移动性超出本文档范围.

1.4. 可替代特性 (Substitutable Features)

本文档定义了主机-路由器接口上 Neighbor Discovery 消息的优化, 并在 route-over 拓扑中引入两个新机制.

除非另有规定 (在定义 6LoWPAN 中使用的路由协议的文档中), 本文档适用于使用任何路由协议的网络. 但是, 由于路由协议可能提供良好的替代机制, 本文档将某些特性定义为 "substitutable", 意味着它们可以由提供机制并实现相同整体效果的路由协议规范替代.

可替代的特性如下 (可单独替代, 也可成组替代):

  • 多跳分发前缀和 6LoWPAN 头部压缩上下文
  • 多跳 Duplicate Address Detection

因此, 用于分发头部压缩上下文的多跳前缀分发 (ABRO) 与 6LoWPAN Context Option (6CO) 是相互配套的. 如果打算替代其中一个, 则二者都 MUST 被替代.

特性实现和部署指南见 Section 14.