5. IEEE 802.15.4 Time-Slotted Channel Hopping (TSCH)
IEEE Std 802.15.4 TSCH 是第一个直接面向工业 IoT 应用的 IEEE 无线电规范, 用于过程控制环路和监测. 它曾作为主要工业无线过程控制标准的基础, 包括 Wireless Highway Addressable Remote Transducer Protocol (HART) 和 ISA100.11a.
虽然 MAC/PHY 标准支持过程控制所使用的相对较慢速率 (通常约为每秒 4-5 次), 但该技术并不适合工厂自动化和运动控制中使用的更快周期 (1 到 10 ms).
5.1. 来源和文档 (Provenance and Documents)
IEEE 802.15.4 Task Group 一直在推动低功耗, 低成本无线电技术的发展. IEEE 802.15.4 Physical (PHY) layer 的设计目标是支持要求严苛的低功耗场景, 面向非授权频段的使用, 包括 2.4 GHz 和 sub-GHz Industrial, Scientific and Medical (ISM) 频段. 这在帧大小, 数据速率和带宽方面提出了要求, 以在有限传输功率下实现更低的冲突概率, 更低的数据包错误率和可接受的覆盖范围. PHY layer 支持最大 127 bytes 的帧. Medium Access Control (MAC) sublayer 开销约为 10-20 bytes, 留给上层约 100 bytes. IEEE 802.15.4 使用扩频调制, 例如 Direct Sequence Spread Spectrum (DSSS).
Time-Slotted Channel Hopping (TSCH) 模式被加入到 IEEE 802.15.4 标准的 2015 修订版 [IEEE802.15.4] 中. TSCH 面向嵌入式和工业领域, 在这些领域中, 可靠性, 能耗和成本决定了应用空间.
基于 IEEE 802.15.4, ISA100.11a [ISA100.11a] 和 WirelessHART [WirelessHART] 已经部分解决了低功耗受限无线网络上的 TSN 问题. 这两种技术都涉及一个中央控制器, 该控制器为 TSCH mesh 上的工业过程控制流量计算冗余路径. 此外, ISA100.11a 引入了 IPv6 能力 [RFC8200], 在加入过程中使用链路本地地址, 在后续交换中使用全局单播地址, 但 IPv6 流量通常终止于本地应用网关, 因此并未启用 IPv6 用于端到端通信的完整能力.
在 IETF 中, 6TiSCH Working Group [TiSCH] 已经启用分布式路由和调度, 以便为 IPv6 利用 TSCH 提供的确定性接入能力. 该工作组设计了基本机制, 即 6TiSCH Operation (6top) sublayer 和 Scheduling Functions (SFs), 以支持管理平面运行, 同时确保支持 IPv6.
-
6top Protocol (6P) 在 [RFC8480] 中定义, 为控制平面运行提供成对协商机制. 该协议支持邻居之间就调度达成一致, 从而实现分布式调度.
-
6P 与 SF 配合使用. SF 是一种策略, 用于决定如何维护 cells 以及触发 6P transactions. Minimal Scheduling Function (MSF) [RFC9033] 是 6TiSCH WG 定义的默认 SF.
-
借助这些机制, 6TiSCH 可以在相邻节点之间建立 Layer 2 links, 并支持 best-effort traffic. Routing Protocol for Low-Power and Lossy Networks (RPL) [RFC6550] 提供路由结构, 使 6TiSCH devices 能够与连接良好的邻居建立 links, 从而形成无环网络图.
在 6TiSCH 中, Track 是 RAW 架构中的 recovery graph 概念应用到无线场景后的形式. Track 可以遵循 relay nodes 的简单序列, 也可以构造成面向某个单播目标的更复杂 Destination-Oriented Directed Acyclic Graph (DODAG). 沿着 Track, 6TiSCH nodes 会预留资源以支持高效的数据包传输, 同时力求优化可靠性等特定属性, 并确保较小抖动或有界延迟. Track 结构支持 Layer 2 forwarding schemes, 减少在 Layer 3 做路由决策的开销.
6TiSCH 架构 [RFC9030] 识别了沿所谓 Tracks (见 Section 5.2.1) 调度资源的不同模型, 并利用 TSCH 调度结构. 但是, 6TiSCH 的重点是 best-effort traffic, 该工作组从未被授权开展与 Tracks 相关的标准化工作.
有多项工作可用于补充本文档提供的概述. 例如, [vilajosana21] 详细描述了 6TiSCH protocols, 它们如何相互关联, 以及它们如何与 RPL 和 6Lo 等其他标准集成.
5.2. 一般特征 (General Characteristics)
作为 IEEE 802.15.4 的核心技术, TSCH 将时间划分为多个 time slots, 并让这些 time slots 随时间重复. 每个设备都有自己的视角来判断发送或接收何时发生, 以及传输在哪个信道上发生. 这构成了该设备的 slotframe, 其中该设备某次传输的信道和目标是时间的函数. 所有设备的全部 slotframes 汇总后, 构成一个时间/频率矩阵, 该矩阵的每个 cell 中最多只有一次传输 (更多内容见 Section 5.3.1.4).
IEEE 802.15.4 TSCH 标准并未定义任何调度机制, 只提供一种架构, 用于建立可由适当 schedule 管理的时隙化结构. 该 schedule 表示一个节点与其邻居之间可能发生的通信, 并由 Scheduling Function 管理, 例如 Minimal Scheduling Function (MSF) [RFC9033]. 在 MSF 中, schedule 中的每个 cell 由其 slotOffset 和 channelOffset 坐标标识. cell 的 timeSlot offset 表示它相对于 slotframe 起点的时间位置. cell 的 channel offset 是一个索引, 在 slotframe 每次迭代时映射到一个频率. 邻居之间交换的每个 packet 都发生在一个 cell 内. cell 的大小是一个 timeSlot duration, 介于 10 到 15 milliseconds 之间. Absolute Slot Number (ASN) 表示自网络启动以来经过的 slots 数. 它在每个 slot 递增. 这是一个 5-byte counter, 可以支持网络运行超过 300 年而不回绕 (假设 timeSlot 为 10 ms). channel hopping 增强了对 multipath fading 和外部干扰的可靠性. TSCH 通过 IEEE 802.15.4 规范中称为 macHopSeq 的 channel-hopping sequence 来处理这一点.
TSCH 提供的 Time-Frequency Division Multiple Access 支持对 traffic flows 进行编排, 使其在时间和频率上分散, 从而支持对带宽利用率的高效管理. 自 2015 版本起, IEEE 802.15.4 标准 [IEEE802.15.4] 也支持 OFDM modulations, 因此这种高效带宽利用可以与 OFDM modulations 结合使用.
TSCH networks 运行在 ISM bands 中, 在这些频段中, 频谱由不同共存技术共享. FCC, ETSI 和 ARIB 等监管机构施加 duty cycle 规则来限制频段使用, 但干扰仍然可能约束 packet 的交付概率. 这些可靠性挑战中的一部分通过在 MAC layer 引入冗余和多样性来解决, 这得益于 channel hopping, scheduling 和 ARQ policies. 不过, MAC layer 以 1-hop 视角运行, 只能通过本地动作缓解性能不佳的 links.
5.2.1. 6TiSCH Tracks
在 6TiSCH 架构 [RFC9030] 中, Track 是 DetNet 架构的 protection path 概念应用到 6TiSCH networks 后的形式. Track 可以构造成面向单播流量目标的 Destination-Oriented Directed Acyclic Graph (DODAG). 沿着 Track, 6TiSCH nodes 会预留资源以支持高效的数据包传输, 同时力求优化可靠性等特定属性, 并确保较小抖动或有界延迟. Track 结构支持 Layer 2 forwarding schemes, 减少在 Layer 3 做路由决策的开销.
Serial Tracks 可以理解为沿着从源到目标的 routing path 串接 cells 或 bundles. serial Track 概念类似于 circuit 概念, 在其中资源被串接成 multi-hop topology. 这在 data plane 中如何用于转发 packets, 详见 Section 5.2.1.2.
虽然 scheduling 可确保沿任意 Track 在有界时间内可靠交付, 但高可用性要求在更复杂的 DODAG Track 结构上应用 PREOF functions. DODAG 具有分叉和汇合节点, 可以利用 replication 和 elimination 等概念. spatial redundancy 会增加网络中的总体能耗, 但也会显著提高网络可用性以及 packet delivery ratio. Track 也可以为了所谓 Packet Replication and Elimination (PRE) 而分支并重新汇合, 且这些分支可以是非同构的. PRE 可以用于补充 Layer 2 ARQ 和接收端排序, 以完成/扩展 PREOF functions. 这使包含无线 links 的 Track 能够满足工业场景对有界延迟内 packet delivery 的预期, 即使该 Track 延伸到 6TiSCH network 之外.
RAW 架构 [RFC9912] 中描述的 RAW recovery graph 直接继承自该模型. 只要给定 packet 不会在 Track 内形成环路, RAW 就会将该图扩展到 DODAG 之外.
+-----+
| IoT |
| G/W |
+-----+
^ <---- Elimination
| |
Track branch | |
+-------+ +--------+ Subnet backbone
| |
+--|--+ +--|--+
| | | Backbone | | | Backbone
o | | | router | | | router
+--/--+ +--|--+
o / o o---o----/ o
o o---o--/ o o o o o
o \ / o o LLN o
o v <---- Replication
o
图 1: 端到端确定性 Track (End-to-End Deterministic Track)
在 Figure 1 中, 一个 Track 从 6TiSCH network 中的现场设备延伸到位于 IEEE 802.1 TSN backbone 上的 IoT gateway.
现场设备中的 Replication function 会将每个 packet 的一个副本发送到两个不同分支上, PCE 则调度两个分支上的每一跳, 使两个副本都能及时到达 gateway. 如果某个分支发生丢失, 希望该 packet 的另一个副本仍能及时到达. 如果两个副本都到达 IoT gateway, gateway 中的 Elimination function 会忽略额外 packet, 只向上层呈现一个副本.
在沿 Track 的每个 6TiSCH hop 上, PCE 可以为一个 packet 调度多个 timeSlot, 以支持 Layer 2 retries (ARQ). 现场设备也可以仅在通过第一个分支发送失败时才使用第二个分支.
在当前部署中, TSCH Track 不一定支持 PRE, 但系统性地支持 multipath. 这意味着 Track 会被调度为确保每一跳至少有两个 forwarding solutions, forwarding decision 是先尝试首选方案, 并在 ARQ 检测到 Layer 2 transmission failure 时使用另一个方案.
[RFC9914] 描述了实现复杂 Tracks 的方法, [NSA-EXT] 中针对 best-effort traffic 的 RPL routing protocol 扩展对此进行了补充, 但仍缺少一种类似 DetNet 所倡导的 centralized routing technique.
5.2.1.1. Track 调度协议 (Track Scheduling Protocol)
6TiSCH 架构 [RFC9030] 的 Section 4.4 描述了管理 Low-Power and Lossy Network (LLN) nodes 的 TSCH schedule 的四种方法: static scheduling, neighbor-to-neighbor scheduling, remote monitoring and scheduling management, 以及 hop-by-hop scheduling. 用于 DetNet 的 Track operation 对应于由 PCE 执行的 remote monitoring and scheduling management.
5.2.1.2. Track 转发 (Track Forwarding)
在 6TiSCH 架构 [RFC9030] 中, forwarding 是一种 per-packet operation, 允许 packet 被交付到节点中的 next hop 或 upper layer. forwarding 基于预先存在的状态, 该状态是 PCE 对 Track 进行 routing computation 后安装的结果. 6TiSCH 架构支持三种不同的 forwarding models: GMPLS Track Forwarding (TF), 6LoWPAN Fragment Forwarding (FF), 以及 IPv6 Forwarding (6F), 后者是 [RFC9030] 中的经典 IP 操作. DetNet 场景涉及 PCE 控制下的 Track Forwarding operation.
Track 是源和目标之间的单向路径. 称为 cells (见 Section 5.3.1.4) 的时间和频率资源会被分配, 以支持沿 Track 的 forwarding operation. 在 Track cell 中, 通常会发生 IEEE 802.15.4 ARQ 的正常操作, 但某些情况下可能省略 acknowledgement, 例如没有为 retry 调度 cell 时.
Track Forwarding 是最简单且最快的操作. 一组设置为接收的 cells (RX-cells) 与一组设置为发送的 cells (TX-cells) 唯一配对, 表示一种 Layer 2 forwarding state, 可在不考虑 network-layer protocol 的情况下使用. 该模型可以有效地视为一种 Generalized Multiprotocol Label Switching (GMPLS) 操作, 因为用于切换 frame 的信息不是显式 label, 而是与 packet 接收方式的其他属性相关 (在 6TiSCH 中, 即特定 cell). 因此, 只要 TSCH MAC (以及 Layer 2 security) 接受某个 frame, 该 frame 就可以被切换, 而不考虑其协议, 无论它是 IPv6 packet, 6LoWPAN fragment, 还是来自替代协议的 frame, 例如 WirelessHART 或 ISA100.11a.
沿 Track 转发的 data frame 通常具有设置为 broadcast 的 destination MAC address (或 multicast address, 取决于 MAC 支持). 这样, intermediate nodes 中的 MAC layer 会接受传入 frame, 6top 则在不改变 MAC header 的情况下切换它. 对于 IEEE 802.15.4, 这实际上意味着地址是 broadcast, 因此沿 Track 的 frame 的 destination short address 被设置为 0xFFFF.
因此, Track 端到端地由一系列成对 bundles 形成: 来自上一跳的 receive bundle, 以及发往 Track 上下一跳的 transmit bundle. 这种 bundle 中的一个 cell 最多属于一个 Track. 对于设备 schedule 的某次给定迭代, cell 的有效信道通过将一个 pseudorandom number 加到该 cell 的 channelOffset 上得到, 这会导致用于传输的频率发生轮换. bundles 可以被计算为同时容纳可变速率和 retransmissions, 因此在 schedule 的某次给定迭代中它们可能不会被完全使用. 6TiSCH 架构提供了额外手段来避免 cells 浪费以及 transmit bundle 溢出, 如以下段落所述.
一方面, 当前迭代不需要的 TX-cell 可以在每跳基础上机会式地复用于 routed packets. 当针对某个给定 Track 接收的所有 frames 都已实际发送后, 该 Track 的任何可用 TX-cell 都可以复用于 upper-layer traffic, 前提是这些流量的 next-hop router 与 Track 上的 next hop 匹配. 在这种情况下, 正在使用的 cell 实际上是来自 Track 的 TX-cell, 但 destination short address 是 next-hop router 的地址. 因此, 如果在某个 Track 的 RX-cell 中接收到的 frame 的 destination MAC address 设置为本节点而不是 broadcast, 则必须将该 frame 从 Track 中提取出来并交付给 upper layer (具有无法识别 MAC address 的 frame 会在较低 MAC layer 被丢弃, 因此不会在 6top sublayer 被接收).
另一方面, transmit bundle 中可能没有足够的 TX-cells 来容纳 Track traffic, 例如所需的 retransmissions 超过预置数量时. 在这种情况下, 只要 frame 可由 upper layer 路由, 即通常当 frame 承载 IPv6 packet 时, 就可以将该 frame 放入用于朝 Track 上下一跳承载 Layer 3 traffic 的 bundle 中进行传输. MAC address 应设置为 next-hop MAC address 以避免混淆. 因此, 通过 Layer 3 bundle 接收的 frame 实际上可能与某个 Track 相关联. 在 Ethernet 等经典 IP link 中, off-Track traffic 通常是超出预留的流量, 会根据其 QoS 设置沿非预留路径路由. 但是, 在 6TiSCH 中, 由于使用 Layer 3 bundle 可能源于 transmission failures, 因此让接收方识别应当 re-Tracked 的 frame 并在可能时将其放回适当 bundle 是合理的. 如果 IPv6 header 中 Differentiated Services field 指示的 per-hop-behavior group 被设置为 deterministic forwarding, 则应对 frame 执行 re-Tracked, 如 Section 5.3.1.1 所讨论. 对 frame 执行 re-Tracked 的方式是调度它通过与 Track 关联的 transmit bundle 进行传输, 并将 destination MAC address 设置为 broadcast.
5.2.1.2.1. OAM
"An Overview of Operations, Administration, and Maintenance (OAM) Tools" [RFC7276] 概述了现有 OAM [RFC6291] 工具. Tracks 是复杂路径, 因此需要新的工具来管理它们, 相关方面包括 load control, timing, 以及 Packet Replication and Elimination Functions (PREF).
此类工具的一个示例可见于 Bit Index Explicit Replication (BIER) [RFC8279] 的上下文, 更具体地说, 可见于 BIER Traffic Engineering (BIER-TE) [RFC9262].
5.3. 对确定性流的适用性 (Applicability to Deterministic Flows)
在 RAW 上下文中, 低功耗可靠网络应处理非关键控制场景 (例如 [RFC5673] 定义的 Class 2) 和监测场景 (例如 Class 4). 作为面向工业场景的低功耗技术, radio transducers 提供较低的数据速率 (通常在 50 kbps 到 250 kbps 之间) 和稳健的调制, 以用性能换取可靠性. TSCH networks 组织为 mesh topologies 并连接到 backbone. mesh network 中的 latency 主要受干扰等传播因素影响. 应研究 ARQ methods 以及 replication 和 elimination 等冗余技术, 以提供处理确定性场景所需的性能.
TSCH network 中的节点严格同步. 这使得构建时隙化结构成为可能, 并借助适当的 scheduling policies 确保资源高效利用. scheduling 是编排 Track 或 path 中不同节点所用资源的关键. slotframes 可以被划分为 resource blocks, 为特定 flows 预留所需容量. periodic traffic 和 bursty traffic 可在 schedule 中独立处理, 使用主动和反应式策略, 并利用 overprovisioned cells. 沿 Track (见 Section 5.2.1), resource blocks 可以串接起来, 使前几跳中的节点在下一个 packet 到来之前传输其数据. 这为沿 Track 的 latency 提供了严格控制. 对于 best-effort traffic, 通过 overprovisioning resources 避免 collision loss, 从而给网络的 management plane 留出时间在需要时分配更多资源.
5.3.1. 集中式路径计算 (Centralized Path Computation)
在考虑 TSCH 上的端到端通信时, 6TiSCH device 通常不会在其自身与网络中另一个设备之间提出 bandwidth 请求. 相反, 通过 Human/Machine Interface (HMI) 调用的 Operation Control System (OCS) 会向 PCE 提供 traffic specification, 特别是 latency, reliability 和 end nodes 方面的规格. 借此, PCE 在 end nodes 之间计算 Track, 并为 Track 中的每一跳配置 per-flow state. 该状态描述给定 packet 的 per-hop operation, 对应 timeSlots, 以及用于识别哪个 packet 被放入哪个 Track, 整理重复项等的 flow identification. Figure 2 描绘了 OCS 和 HMI 的一个示例.
对于长期服务于某一目的的静态配置, 预期会一次性为节点配置完整 schedule, 其中包含该节点针对多个 Tracks 的行为聚合. 6TiSCH 架构预期 schedule 编程通过 Constrained Application Protocol (CoAP) 完成, 如 [CoAP-6TiSCH] 所讨论.
不过, 也可能需要 Hybrid mode, 即添加, 修改或移除单个 Track (例如, 如果发现某个 Track 未按预期运行). 对于这种情况, 预期可使用一种沿 Track 流动的协议来更新设备中的状态, 其方式类似经典 Traffic Engineering (TE) [CCAMP]. 一般而言, 该流程尚未设计, 预期 DetNet 将确定在这种情况下应使用的适当端到端协议.
Operational Control System and HMI
-+-+-+-+-+-+-+ Northbound -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
PCE PCE PCE PCE
-+-+-+-+-+-+-+ Southbound -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
--- 6TiSCH------6TiSCH------6TiSCH------6TiSCH--
6TiSCH / Device Device Device Device \
Device- - 6TiSCH
\ 6TiSCH 6TiSCH 6TiSCH 6TiSCH / Device
----Device------Device------Device------Device--
图 2: 架构层 (Architectural Layers)
5.3.1.1. 数据包标记和处理 (Packet Marking and Handling)
[RFC9030] 的 Section 4.7.1 描述了 6TiSCH networks 中预期的 packet tagging and marking.
5.3.1.1.1. 为流标识标记数据包 (Tagging Packets for Flow Identification)
由 PCE 沿 Track 路由的 packets 会被打上标签, 以唯一标识该 Track 以及相关联的 timeSlots transmit bundle.
因此, 在 6TiSCH Low-Power and Lossy Network (LLN) 外部用于 DetNet flow 的 tagging, 必须在 packet 进入 6TiSCH network 时转换为 6TiSCH 格式, 并在 packet 离开 6TiSCH network 时转换回来.
5.3.1.1.2. 复制, 重试和消除 (Replication, Retries, and Elimination)
6TiSCH 架构 [RFC9030] 利用网络中多条 alternate paths 上的 PREOF, 以提供冗余和并行传输, 从而约束端到端 delay. 考虑 Figure 3 所示场景, S 到达 R 可以有许多不同路径. 利用该拓扑的一种简单方式是使用经由节点 A, C, E 以及经由 B, D, F 的两条独立路径, 但也可以使用更复杂路径.
(A) (C) (E)
source (S) (R) (destination)
(B) (D) (F)
图 3: 通往目标的两条并行路径形成的典型梯形 (A Typical Ladder Shape with Two Parallel Paths Toward the Destination)
通过采用 packet replication function, 每个节点会在两个不同分支上转发每个 data packet 的一个副本. 例如, 在 Figure 4 中, source node S 在同一 TSCH slotframe 内的两个不同 timeSlots 中将 data packet 发送到节点 A 和 B. 在下图中, S 将同一个 data packet 传输两次: 一次传输到其 Destination Parent (DP) (A), 一次传输到其 Alternate Parent (AP) (B).
===> (A) => (C) => (E) ===
// \\// \\// \\
source (S) //\\ //\\ (R) (destination)
\\ // \\ // \\ //
===> (B) => (D) => (F) ===
图 4: 数据包复制 (Packet Replication)
通过采用 packet elimination function, 节点在收到 data packet 的第一个副本后会丢弃后续副本. 因为最先到达节点的副本才是重要副本, 所以它也是唯一会被向上转发的副本.
考虑到无线介质本质上是 broadcast, transmitter 的任何邻居都可能 overhear 一次传输. 通过采用 promiscuous overhearing function, 节点将拥有多次机会接收给定 data packet. 例如, 在 Figure 4 中, 当 source node S 将 data packet 传输到节点 A 时, 节点 B 可能 overhear 该传输.
6TiSCH 预期沿复杂 Track 对 packets 执行 elimination 和 replication, 但并不规定 sequence numbers 如何在 packet 中标记.
就目前而言, 6TiSCH 预期沿 Track 对应同一 packet 副本的 timeSlots 通过配置相关联, 因此不需要处理 sequence numbers.
配置的语义必须支持将相关 timeSlots 以 'OR' 关系分组用于 transmit (以及分别用于 receive), 然后必须能在组之间配置 'AND' 关系. 其语义是, 如果 transmit (以及分别 receive) operation 在某个 'OR' 组中的一个 timeSlot 内成功, 则忽略该组中的所有其他 timeSlots. 现在, 如果存在至少两个组, 组之间的 'AND' 关系表示每个组中都必须有一次 operation 成功. 更多细节可见 6TiSCH 架构文档 [RFC9030].
5.3.1.2. 拓扑和能力 (Topology and Capabilities)
6TiSCH nodes 通常是 IoT devices, 其特征是内存非常有限, 只有刚好足以存储一个或少数几个 IPv6 packets 的 buffers, 且 peers 之间 bandwidth 有限. 因此, 节点只会维护少量 peering information, 并且无法存储许多等待转发的 packets. peers 可通过 MAC 或 IPv6 addresses 标识.
可以通过 enhanced beacons 等机制在无线电上发现邻居, 但尽管 neighbor information 可在 6TiSCH interface data model 中获得, 6TiSCH 并未描述一种主动将 neighborhood information 推送到 PCE 的协议. 应描述该协议, 且该协议应在 CoAP 上运行. 该协议应能承载多个 metrics, 特别是 RPL operations [RFC6551] 所使用的相同 metrics.
设备在 sleep, transmit 和 receive modes 中消耗的能量可以被评估和报告, 设备中存储的能量以及可从环境中获取的功率也同样可以被评估和报告. PCE 应能够计算 Tracks, 以实施有关能量如何消耗的策略, 例如在节点之间平衡的策略, 并确保一段时间内消耗的能量不超过可获取的能量.
5.3.1.3. 由 PCE 进行 Schedule 管理 (Schedule Management by a PCE)
6TiSCH 支持集中式 routes 和分布式 routes 的混合模型. 例如, 集中式 routes 可由 PCE [PCE] 等实体计算. 分布式 routes 由 RPL [RFC6550] 计算.
两种方法都可以向 6TiSCH routers 的 routing tables 注入 routes. 在任一情况下, 每条 route 都关联到一个 6TiSCH topology, 该 topology 可以是 RPL Instance topology 或 Track. 6TiSCH topology 由 Instance ID 索引, 其格式复用 RPL 中定义的 RPLInstanceID.
RPL 和 PCE 都依赖 policies 等共享来源来定义 Global 和 Local RPLInstanceIDs, 供任一方法使用. 集中式和分布式路由可以共享同一 topology. 通常, 它们会在不同 slotframes 中运行, 集中式 routes 将用于 scheduled traffic, 并且在 slotframes 之间发生冲突时优先于分布式 routes.
5.3.1.4. Slotframes 和优先级 (Slotframes and Priorities)
IEEE 802.15.4 TSCH 通过将时间和频率格式化为持续时间相等的传输 cells, 避免介质上的争用. 为描述这种时间和频率格式化方式, 6TiSCH 架构定义了一个全局概念, 称为 Channel Distribution and Usage (CDU) matrix. CDU matrix 是一个 cells 矩阵, 其高度等于可用信道数量 (由 channelOffsets 索引), 其宽度 (以 timeSlots 计) 是该 CDU matrix 的网络调度操作周期 (由 slotOffsets 索引).
PCE 使用 CDU matrix 作为所有 channel utilization 的映射. 这种组织取决于未来的时间. 随着 CDU matrix 一次又一次迭代, 矩阵中某个 cell 使用的频率会从 epoch time 的初始位置开始以 pseudorandom 方式轮换.
cell 的大小是一个 timeSlot duration, 在 802.15.4 TSCH 中通常为 10 到 15 milliseconds, 用于容纳一个 frame 和一个 acknowledgement 的传输, 包括接收端的 security validation, 在某些设备架构上这可能需要长达数 milliseconds. 该矩阵表示 scheduled network operation 随时间对频谱的总体利用情况.
CDU matrix 由 PCE 计算, 但未分配的 timeSlots 可由节点机会式地用于经典 best-effort IP traffic. 如果发生冲突, PCE 在分配中具有优先权. 多个 schedules 可以共存, 在这种情况下, schedule 会为矩阵增加一个维度, 且这些维度按优先级排序.
slotframe 是 PCE 将 schedule 编程到一个设备中所需操纵的基础对象. slotframe 是设备视角下的 transmission schedule. 可以存在多个具有不同优先级的 slotframes, 因此在发生争用时应用最高优先级. 换言之, slotframe 是从 CDU matrix 将 schedule 投影到一个设备上的结果. [RFC9030] 的 Section 4.3.5 对该概念进行了阐述, [RFC9030] 的 Figures 17 和 18 展示了这种投影.