跳到主要内容

3. 差分服务字段定义 (Differentiated Services Field Definition)

定义了一个替换头部字段, 称为 DS 字段, 旨在取代 IPv4 TOS 八位字节 [RFC791] 和 IPv6 流量类别八位字节 [IPv6] 的现有定义.

DS 字段的六位用作码点 (DSCP) 来选择数据包在每个节点经历的 PHB.两位当前未使用 (CU) 字段保留, 其定义和解释超出本文档的范围.差分服务合规节点在确定应用于接收数据包的逐跳行为时忽略 CU 位的值.

DS 字段结构如下所示:

     0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| DSCP | CU |
+---+---+---+---+---+---+---+---+

DSCP: 差分服务码点 (differentiated services codepoint)
CU: 当前未使用 (currently unused)

在本文档中使用的 DSCP 值表示法 xxxxxx (其中 x 可以等于 0 或 1) 中, 最左边的位表示 DS 字段的位 0 (如上所示), 最右边的位表示位 5.

实现者应注意, DSCP 字段为六位宽.差分服务合规节点必须 (MUST) 通过匹配整个 6 位 DSCP 字段来选择 PHB, 例如, 通过将字段的值视为用于选择在该设备中实现的特定数据包处理机制的表索引.逐跳行为选择必须 (MUST) 忽略 CU 字段的值.DSCP 字段被定义为非结构化字段, 以便于未来逐跳行为的定义.

除下面注明的一些例外情况外, 码点到 PHB 的映射必须 (MUST) 是可配置的.差分服务合规节点必须 (MUST) 支持从码点到 PHB 的可配置映射表的逻辑等价物.逐跳行为规范必须 (MUST) 包含推荐的默认码点, 对于标准空间中的码点, 该码点必须 (MUST) 是唯一的 (参见第 6 节).实现应该 (SHOULD) 在其默认配置中支持推荐的码点到 PHB 映射.运营商可以 (MAY) 选择对某个 PHB 使用不同的码点, 无论是附加于还是替代推荐的默认码点.注意, 如果运营商如此选择, 即使在边界两侧实现了相同的 PHB, 也可能需要对 DS 字段进行重新标记.

关于重新标记的进一步讨论见 [ARCH].

一般可配置性的例外情况针对码点 xxx000, 并在第 4.2.2 节和第 4.3 节中注明.

收到具有无法识别码点的数据包应该 (SHOULD) 像标记为默认行为一样转发 (参见第 4 节), 其码点不应更改.此类数据包不得 (MUST NOT) 导致网络节点发生故障.

上述 DS 字段的结构与 [RFC791] 中 IPv4 TOS 八位字节的现有定义不兼容.其假定是, DS 域通过部署重新标记的边界节点来保护自己, 正如使用 RFC 791 优先级标识的网络所应做的那样.正确的操作程序应该 (SHOULD) 遵循 [RFC791], 其中指出: "如果某个特定网络关注这些优先级标识的实际使用, 则该网络有责任控制对这些优先级标识的访问和使用."在任何情况下, 在 DS 边界验证 DS 字段的值都是合理的, 因为上游节点可以轻松地将其设置为任意值.未由适当配置的边界节点隔离的 DS 域可能提供不可预测的服务.

节点可以 (MAY) 按照需要提供所需的本地或端到端服务来重写 DS 字段.DS 边界处 DS 字段转换的规范是提供商与用户之间服务等级协议的主题, 不在本文档范围内.标准化的 PHB 使提供商能够从一组众所周知的、可预期存在于许多供应商设备中的数据包转发处理方式来构建其服务.