Skip to main content

3. Design Space (设计空间)

除了各种可以想象的 6LoWPAN 路由算法之外, 还可以在 IP 层执行路由(使用 route-over 方法)或在 IP 层之下执行路由(使用 6LoWPAN 格式文档 [RFC4944] 定义的 mesh-under 方法). 请参见图 1.

route-over 方法依赖于 IP 路由, 因此支持跨可能各种类型的互连链路的路由. 注意: ROLL 工作组现在正在为低功耗和有损网络 (Low-power and Lossy Networks, LLN) 开发 route-over 方法, 而不是专门针对 6LoWPAN. 本文档专注于 6LoWPAN 特定的需求; 它可以与 ROLL 工作组定义的更面向应用的需求结合使用.

mesh-under 方法在 IP 链路之下执行多跳通信. mesh-under 机制最重要的后果是 IEEE 802.15.4 的特性直接影响 6LoWPAN 路由机制, 包括使用 64 位(或 16 位短地址)链路层地址而不是 IP 地址. 因此, 6LoWPAN 将被视为单个 IP 链路.

本文档中的大多数陈述同时考虑 route-over 和 mesh-under 情况.

图 1 显示了 6LoWPAN 路由在整个网络协议栈中的位置.

+---------------------------+  +-----------------------------+
| Application Layer | | Application Layer |
+---------------------------+ +-----------------------------+
| Transport Layer (TCP/UDP) | | Transport Layer (TCP/UDP) |
+---------------------------+ +-----------------------------+
| Network Layer (IPv6) | | Network +---------+ |
+---------------------------+ | Layer | Routing | |
| 6LoWPAN | | (IPv6) +---------+ |
| Adaptation | +-----------------------------+
| Layer +----------+ | | 6LoWPAN Adaptation Layer |
+--------------| Routing* |-+ +-----------------------------+
| 802.15.4 MAC +----------+ | | 802.15.4 MAC |
+---------------------------+ +-----------------------------+
| 802.15.4 PHY | | 802.15.4 PHY |
+---------------------------+ +-----------------------------+
* 这里, "Routing" 不等同于 IP 路由,
而是包括 IP 层之下的路径计算和转发功能.
图中使用术语 "Routing" 是为了说明与 route-over 相比,
mesh-under 中哪一层处理路径计算和数据包转发.

图 1: Mesh-Under 路由 (左) 和 Route-Over 路由 (右)

为了避免数据包分片和重组的开销, 路由数据包应该适合单个 IEEE 802.15.4 物理帧, 并且应用数据不应扩展到不再适合的程度.

3.1 Reference Network Model (参考网络模型)

对于 6LoWPAN 中的多跳通信, 当使用 route-over 机制时, 所有路由器(即 6LoWPAN 边界路由器 (6LoWPAN Border Router, 6LBR) 和 6LoWPAN 路由器 (6LoWPAN Router, 6LR))在存根网络内执行 IP 路由(参见图 2). 在这种情况下, 链路本地范围 (link-local scope) 覆盖节点对称无线电范围内的一组节点.

当 LoWPAN 遵循 mesh-under 配置时, 6LBR 是 LoWPAN 中唯一的 IPv6 路由器(参见图 3). 这意味着 IPv6 链路本地范围包括 LoWPAN 中的所有节点. 为此, 必须 (MUST) 提供 mesh-under 机制来支持多跳传输.

    h   h
/ | 6LBR: 6LoWPAN Border Router
6LBR -- 6LR --- 6LR --- h 6LR: 6LoWPAN Router
/ \ h: Host
h 6LR --- h
|
/ \
6LR - 6LR -- h

图 2: Route-Over LoWPAN 示例


h h
/ | 6LBR: 6LoWPAN Border Router
6LBR --- m --- m --- h m: mesh-under forwarder
/ \ h: Host
h m --- h
|
/ \
m - m -- h

图 3: Mesh-Under LoWPAN 示例

请注意, 在 mesh-under 和 route-over 网络中, 都不期望在 6LoWPAN 中进行基于拓扑的地址分配. 相反, 地址通常基于在制造时分配给节点的 EUI-64 地址, 或基于(从拓扑角度来看)或多或少随机的过程向各个节点分配 16 位 MAC 地址. 因此, 在 6LoWPAN 内, 除了共享(一个或多个)公共前缀之外, 没有机会对 IPv6 地址进行聚合或汇总.

并非所有彼此在无线电范围内的设备都需要属于同一个 LoWPAN. 当在 6LoWPAN 中使用全局唯一 IPv6 地址形成多个 LoWPAN, 并且 LoWPAN [A] 的设备 (a) 想要与 LoWPAN [B] 的设备 (b) 通信时, 将采用正常的 IPv6 机制. 对于 route-over, (b) 的 IPv6 地址被设置为数据包的目的地, 并且设备为这些出站数据包执行 IP 路由到 6LBR. 对于 mesh-under, 从设备 (a) 到 [A] 的 6LBR 有一个 IP 跳, 无论它们之间相隔多少个无线电跳. 当然, 这假设存在 mesh-under 路由协议以到达 6LBR. 请注意, 可以将到 6LBR 的默认路由插入 6LoWPAN 路由系统中, 无论是 route-over 还是 mesh-under.