Passa al contenuto principale

11. Frame Delivery in a Link-Layer Mesh (链路层网状网络中的帧传递)

尽管预计 802.15.4 网络将普遍使用网状网络路由 (Mesh Routing), 但 IEEE 802.15.4-2003 规范 [ieee802.15.4] 并未定义此类能力. 在这种情况下, 全功能设备 (Full Function Devices, FFDs) 运行自组织或网状网络路由协议来填充其路由表 (超出本文档的范围). 在这种网状网络场景中, 两个设备不需要直接可达即可通信. 在这些设备中, 发送者称为 "发起者" (Originator), 接收者称为 "最终目标" (Final Destination). 发起者设备可以使用其他中间设备作为转发器 (Forwarders) 朝向最终目标. 为了使用单播实现这种帧传递, 除了逐跳源和目标之外, 还必须包括发起者和最终目标的链路层地址.

本节定义如何在网状网络中实现第 2 层帧的传递, 给定目标 "最终目标" 链路层地址.

网状网络传递通过在 LoWPAN 封装 (第 5 节) 的任何其他报文头之前包含网状网络寻址报文头 (Mesh Addressing Header) 来实现, 包括未分片和分片报文头; 完整的 IPv6 报文头; 或根据第 10 节或其他地方定义的压缩 IPv6 报文头.

如果节点希望使用默认网状网络转发器来传递数据包 (即, 因为它没有到目标的直接可达性), 它必须 (MUST) 包含一个网状网络寻址报文头, 其中发起者的链路层地址设置为其自己的, 最终目标的链路层地址设置为数据包的最终目标. 它将 802.15.4 报文头中的源地址设置为其自己的链路层地址, 并将转发器的链路层地址放入 802.15.4 报文头的目标地址字段. 最后, 它传输数据包.

类似地, 如果节点接收到具有网状网络寻址报文头的帧, 它必须 (MUST) 查看网状网络寻址报文头的 "Final Destination" 字段以确定真实目标. 如果节点本身是最终目标, 它按照正常传递方式消费数据包. 如果它不是最终目标, 设备则减少 "Hops Left" 字段, 如果结果为零, 则丢弃数据包. 否则, 节点查询其链路层路由表, 确定朝向最终目标的下一跳应该是什么, 并将该地址放入 802.15.4 报文头的目标地址字段. 最后, 节点将 802.15.4 报文头中的源地址更改为其自己的链路层地址并传输数据包.

虽然节点必须 (MUST) 参与网状网络路由协议才能成为转发器, 但仅使用网状网络转发不存在此类要求. 仅 "全功能设备" (FFDs) 预计在网状网络中作为路由器参与. "简化功能设备" (Reduced Function Devices, RFDs) 将自己限制为发现 FFDs 并将它们用于所有转发, 其方式类似于 IP 主机通常使用默认路由器转发所有其链路外流量的方式. 对于使用网状网络传递的 RFD, "转发器" 始终是适当的 FFD.

11.1. LoWPAN Broadcast (LoWPAN广播)

附加的网状网络路由功能使用紧跟网状网络报文头之后的路由报文头 (Routing Header) 进行编码. 特别是, 广播报文头由 LOWPAN_BC0 分派后跟序列号 (Sequence Number) 字段组成. 序列号用于检测重复数据包 (并希望抑制它们).

                       1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|1|LOWPAN_BC0 |Sequence Number|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 11: 广播报文头

字段定义:

Sequence Number (序列号): 此 8 位字段应 (SHALL) 在发起者每次发送新的网状网络广播或多播数据包时递增. 如何处理此字段的完整规范超出了本文档的范围.

此类网状网络层广播的进一步含义, 例如, 它是否映射到受控泛洪机制或其在拓扑发现中的作用, 超出了本文档的范围.

附加的网状网络路由能力, 例如指定网状网络路由协议、源路由等, 可以通过定义在报文头栈中位于分片或寻址报文头之前的附加路由报文头来表达. 此类网状网络路由能力的完整规范超出了本文档的范围.