跳到主要内容

9.3 封装在非 IP 头部中的 IP 数据包

9.3 封装在非 IP 头部中的 IP 数据包

本节简要讨论 ECN 与封装在非 IP 头部中的 IP 数据包的交互, 例如 MPLS (Multiprotocol Label Switching), GRE (Generic Routing Encapsulation), L2TP (Layer 2 Tunneling Protocol) 和 PPTP (Point-to-Point Tunneling Protocol).

这些封装方法中的 ECN 问题与 IP-in-IP 隧道类似:

  1. 拥塞指示丢失: 如果封装协议没有携带 ECN 信息的机制, 当外层头部在隧道出口被移除时, 内层 IP 头部 ECN 字段中设置的拥塞指示可能丢失.

  2. 外层头部缺少 ECN 支持: 如果封装协议不支持类似 ECN 的功能, 即使内层 IP 数据包具备 ECN 能力, 隧道路由器也无法向 ECN-capable 流发出拥塞信号.

本文档不规定这些非 IP 封装中应如何处理 ECN. 此类规范必须针对每种封装协议单独制定, 并考虑该协议的具体特征和约束.

例如:

  • MPLS: MPLS 中的 ECN 支持由单独文档处理, 这些文档定义如何在 IP 和 MPLS 头部之间映射 ECN
  • GRE: GRE 隧道中的 ECN 处理需要考虑是否以及如何使用 GRE 头部中的 bit 进行 ECN 信令
  • L2TP and PPTP: 这些 Layer 2 tunneling protocols 带来额外挑战, 因为它们可能无法直接访问 Layer 3 ECN 信息

为这些封装设计 ECN 支持的协议设计者应遵循与第 9.1 和第 9.2 节所概述原则类似的原则:

  • 至少提供 limited-functionality option, 以避免破坏 ECN
  • 考虑 full-functionality option, 以在通过隧道时保留 ECN 的好处
  • 处理跨隧道携带拥塞信息的安全影响

在某一特定封装协议的 ECN 支持得到适当规定之前, 实现应假设不支持 ECN, 并且使用 ECN 的流在穿越这类隧道时将经历数据包丢弃而不是标记.