跳到主要内容

2. 术语 (Terminology)

2.1. 要求语言 (Requirements Language)

本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" 和 "OPTIONAL" 在且仅在以这里所示的全大写形式出现时, 应按 BCP 14 [RFC2119] [RFC8174] 中的描述解释.

此外, 术语 "Extends" 和 "Amends" 按 [NEW-TAGS] 第 3 节使用.

2.2. 术语和概念 (Terms and Concepts)

在本文档中, 读者会遇到下列文档中讨论的术语和概念:

  • "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks" [RPL]

  • "An Architecture for IPv6 over the Time-Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)" [RFC9030]

  • "Deterministic Networking Architecture" [RFC8655]

  • "Using RPI Option Type, Routing Header for Source Routes, and IPv6-in-IPv6 Encapsulation in the RPL Data Plane" [RFC9008]

  • "Reliable and Available Wireless (RAW) Architecture" [RAW-ARCH]

  • "Terms Used in Routing for Low-Power and Lossy Networks" [RFC7102]

6TiSCH, Deterministic Networking (DetNet) 和 RAW 架构使用术语 "Track" 和 "recovery graph" 表示同一概念, 尽管它们处在不同环境中. 本文档使用 "Track" 表示该概念, 并且只构建作为 DODAG 的 Tracks, 这意味着所有链路都从入口指向出口. 本规范还使用术语 "segment" 和 "protection path", 这些术语也在 RAW 架构中定义.

与路由树不同, RPL DODAG 通常构建为提供冗余, 并根据 Low-Power and Lossy Network (LLN) 链路状态动态调整转发操作. 注意, DODAG 上的普通转发操作并不会为所有节点提供冗余, 因为至少最靠近 Root 的节点没有可行的替代 successor.

RAW 通过定义可交织以形成新路径的 protection paths 来解决该问题, 这些新路径可在故障时动态激活. 这需要额外控制, 以便在 Track 上足够早地作出路由决策, 绕过故障.

RAW 只使用单端 DODAG, 这意味着可以通过反转所有链路, 在另一个 DODAG 中反转它们. Track 的入口是 DODAG 的 Root, 而出口是反向 DODAG 的 Root. 从 RAW 的角度看, 单端 DODAG 是只具有前向链路的特殊 Tracks, 并且可以通过在 DODAG 内定义面向目标的 protection paths 来提供保护服务.

2.3. 术语表 (Glossary)

本文档经常使用以下缩写:

6LoRH: 6LoWPAN Routing Header

6LR: 6LoWPAN Router, 例如 LLN 中的 RPL router

ARQ: Automatic Repeat Request, 即重试

CMO: Control Message Option

DAG: Directed Acyclic Graph

DAO: Destination Advertisement Object

DIO: DODAG Information Object

DODAG: Destination-Oriented Directed Acyclic Graph. 只有一个没有出边 (即 link) 的顶点 (即 node) 的 DAG.

FEC: Forward Error Correction

GUA: Global Unicast Address

HARQ: Hybrid Automatic Repeat Request, 结合 FEC 和 ARQ

LLN: Low-Power and Lossy Network

MOP: Mode of Operation

NSM-VIO: Non-Storing Mode Via Information Option. 在 Non-Storing Mode P-DAO 消息中使用的源路由 VIO.

P-DAO: Projected DAO

P-DAO-ACK: Projected DAO Acknowledgment

P-DAO-REQ: Projected DAO Request

P-Route: Projected Route

PCE: Path Computation Element

PDR-ACK: Projected DAO Request Acknowledgment

PLR: Point of Local Repair

RAL: RPL-Aware Leaf

RAN: RPL-Aware Node, 即 RPL router 或 RPL-Aware Leaf

RH: Routing Header

RIB: Routing Information Base, 即路由表

RPI: RPL Packet Information

RPL: Routing Protocol for Low-Power and Lossy Networks

RTO: RPL Target Option

RUL: RPL-Unaware Leaf

SIO: Sibling Information Option

SLO: Service Level Objective

SM-VIO: Storing Mode Via Information Option. 在 Storing Mode P-DAO 消息中使用的严格 VIO.

SRH: Source Routing Header, 即 IPv6 RH type 3. 见第 2.4.5.7.2 节.

SRH-6LoRH: Source Routing Header 6LoRH. 在 "IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Routing Header" [RFC8138] 中定义的 SRH 压缩形式.

TIO: Transit Information Option

ULA: Unique Local Address

VIO: Via Information Option. 它可以是 SM-VIO 或 NSM-VIO.

2.4. 领域术语 (Domain Terms)

本规范使用后续各节定义的术语.

2.4.1. Projected Route

RPL P-Route 是由 PCE 远程计算, 并由 RPL Root 代表 PCE 安装和维护的 RPL 路由. 它作为一种状态安装, 表示目的地 (即 Targets) 可经由或沿着一系列节点到达.

2.4.2. Projected DAO

Projected DAO (P-DAO) 是用于安装 P-Route 的 DAO 消息.

2.4.3. Path

以下非规范性引用 [INT-ARCH] 第 1.3.3 节中 path 的定义:

|  At a given moment, all the IP datagrams from a particular source
| host to a particular destination host will typically traverse the
| same sequence of gateways. We use the term "path" for this
| sequence. Note that a path is uni-directional; it is not unusual
| to have different paths in the two directions between a given host
| pair.

关于 path 的更长且更现代的定义, 见 [RAW-ARCH] 第 3.1.1 节.

由此可知, path 的一般理解是节点的线性序列, 而不是多维图. 在本文档语境中, path 通过跟随注入 Track 且可能在其中复制的数据包的一份副本来观察.

2.4.4. Routing Stretch

RPL 是各向异性的, 这意味着它是有方向的, 或者更准确地说是有极性的. RPL 在 "downwards" (从 Root 到 leaves) 方向上使用形成 DODAG 的 multicast DODAG Information Object (DIO) 消息, 而在 "upwards" (从 leaves 到 Root) 方向上使用遵循 DODAG 的 unicast DAO 消息, 两个方向行为不同. 这与传统 IGP 形成对比, 传统 IGP 在所有方向上操作相同, 因而称为各向同性.

术语 "routing stretch" 表示一条路径相对于最短路径的长度. 在 RPL 中, 当指标是统计和动态的, 且距离概念随 Objective Function 而变化时, 最短路径可能是一个抽象概念.

RPL DODAG 优化 Point-to-Multipoint (P2MP) 路径 (从 Root 出发) 和 Multipoint-to-Point (MP2P) 路径 (朝向 Root), 但 Point-to-Point (P2P) 流量必须遵循同一 DODAG. 沿 DODAG 转发时, RPL 数据路径在 Storing Mode 中通过共同 parent, 在 Non-Storing Mode 中通过 Root. 与各向同性协议会计算出的有方向 (即前向) P2P 路径的最小可能情况相比, 这通常涉及更多跳和更高延迟. 我们将这种拉长的路径称为 stretched.

2.4.5. Track

Track 概念继承自 6TiSCH 架构 [RFC9030], 等同于 RAW 架构 [RAW-ARCH] 中的 recovery graph. Track 是可被跟随以用等效处理传输数据包的网络图. 与 path 的其他定义相反 (见 [INT-ARCH] 第 1.3.3 节和 [RAW-ARCH] 第 3.1.1 节), Track 不一定是线性的. 它可以包含多条可能分叉并重新汇合的路径, 并且可以启用 RAW Packet Replication, Elimination, and Ordering Functions (PREOF).

图 1 展示 DODAG 与 Track 通用概念之间的映射, 其中 DODAG Root 作为 Track 的入口, 同时展示 protection paths 和 segments (即只有前向 segments) 的映射, 这意味着它们是有方向的并朝目的地推进. 注意, East 显示在左侧, 因为数据包按 East-West 方向转发.

North East                                   North West

A ==> B ==> C -=- F ==> G ==> H T1
/ \ / \ /
I O E -=- T2
\ / \ / \
P ==> Q ==> R -=- T ==> U ==> V T3

South East South West

I: ingress
E: egress
T1, T2, T3: external targets

Figure 1: A Track and Its Components

注意:

I ==> A ==> B ==> C: 到 targets F 和 O 的 segment

I --> F --> E: 到 targets T1, T2, T3 的 protection path

I, A, B, C, F, G, H, E: 到 T1, T2, T3 的 path

本规范构建面向 Track 入口的 DODAG 形式 Tracks, 数据包的前向方向是从 Track 入口到一个可能存在多个的 Track 出口节点, 这也是沿 DODAG 向下的方向.

Track 可以是严格连接的, 即顶点相邻. 也可以是松散连接的, 即顶点使用与同一 Track 关联的 segments 连接.

2.4.5.1. TrackID

RPLInstanceID (通常是 Local Instance) 使用 Track 入口拥有的命名空间标识 Track. 对于 Local Instances, TrackID 与用作 DODAGID 的 Track 入口 IPv6 地址关联, 它们共同构成 Track 的唯一标识 (见 [RPL] 第 2 节中 DODAGID 的定义).

2.4.5.2. Namespace

术语 "namespace" 用于指 TrackID 的作用域. TrackID 在其 namespace 内具有本地意义. 对于 Local Instances, namespace 由该 Track 的 DODAGID 标识, 元组 (DODAGID, TrackID) 全局唯一. 对于 Global Instances, namespace 是整个 RPL 域.

2.4.5.3. Complex Track

Complex Track 是可通过多条路径遍历的 Track, 例如 DODAG.

2.4.5.4. Stand Alone

Stand alone 指使用单个 P-DAO 安装的 segment 或 protection path, 该 P-DAO 完整定义路径. 例如, stand-alone segment 使用一个 Storing Mode Via Information Option (SM-VIO) 在入口与出口之间完整安装.

2.4.5.5. Stitching

本规范使用术语 "stitching" 表示将一个 Track 管接到另一个 Track, 即从第一个 Track 出来的流量会被注入另一个 Track.

2.4.5.6. Protection Path

protection path 概念在 RAW 架构 [RAW-ARCH] 中定义为端到端前向串行路径. 通过本规范, protection path 由主 DODAG 的 Root 使用 Non-Storing Mode P-DAO 消息安装, 例如图 1 中的 I --> F --> E.

由于 Non-Storing Mode Via Information Option (NSM-VIO) 只能表示节点序列, 因此要表示 Complex Track 的结构, 每条 protection path 需要一条 Non-Storing Mode P-DAO 消息.

同一 TrackID 下具有不同 SegmentID 的每个 NSM-VIO 表示一条不同的 protection path, Track 入口会将其添加到拓扑中.

2.4.5.7. Segment

segment 是由严格节点序列形成的串行路径, P-Route 沿该序列安装, 例如图 1 中的 I ==> A ==> B ==> C. 通过本规范, segment 通常由主 DODAG 的 Root 使用 Storing Mode P-DAO 消息安装. segment 用作 Track 的拓扑 edge, 连接构成 Complex Track 结构的 protection paths 上的松散步骤. 当 protection paths 重叠时, 同一个 segment 可以被多个 protection path 利用.

由于本规范只构建 DODAG, 所有 segments 都从入口 (East) 指向出口 (West). 这不同于 RAW 架构 [RAW-ARCH] 中的一般 Track 模型, 后者允许也可双向的 North/South segments.

2.4.5.7.1. Segment 的 Section (Section of a Segment)

segment 的 section 指 segment 中可被替换而 segment 本身仍保留的连续子集. 例如, 在 segment A=>B=>C=>D=>E=>F 中, 假设 C 到 D 的链路可能行为异常. segment 中的 section B=>C=>D=>E 可以被 B=>C'=>D'=>E 替换以绕过问题. 该 segment 变为 A=>B=>C'=>D'=>E=>F.

2.4.5.7.2. Segment Routing 和 SRH

在 Non-Storing Mode RPL 域中, 用于源路由的 IPv6 Routing Header 是 [RFC6554] 中定义的 RPL Source Route Header. 本规范在该语境中运行, 并使用缩写 SRH 表示 IPv6 RH type 3, 不同于 [RFC8754] 中为 Segment Routing over IPv6 (SRv6) 操作定义的 IPv6 RH type 4.

如果网络是 6LoWPAN 网络, 预期 SRH 会按照 [RFC8138] 第 5 节的规定压缩并编码为 6LoWPAN Routing Header (6LoRH).

本规范以通用方式使用术语 "Segment Routing", 表示使用源路由跳过 segments. 因此, 后续规定的沿 segment 转发可视为一种 Segment Routing [RFC8402] 形式, 它利用 RPL Source Route Header 运行.

在 LLN 之外, RPL 网络可能较少受限并以 Storing Mode 运行, 如第 7.1 节所讨论. 在这种情况下, 本规范可以扩展以适配 SRv6 RH.