跳到主要内容

5.2 被丢弃或损坏的数据包

5.2 被丢弃或损坏的数据包​

对于本文档提出的 ECN 用法 (即用于 TCP 等把丢失数据包作为拥塞指示的传输协议), 端节点检测丢失的数据包, 并且端节点对丢失数据包的拥塞响应至少与对收到的 CE packet 的拥塞响应一样强. 为确保 CE codepoint 的拥塞指示能够可靠传递, 除非该数据包在网络中的丢失会被端节点检测到并解释为拥塞指示, 否则 MUST NOT 在该数据包中设置 ECT codepoint.

TCP 等传输协议并不一定检测所有数据包丢失, 例如 "pure" ACK packet 的丢失; 举例来说, TCP 不会因为早先 ACK packet 的丢失而通过降低后续 ACK packet 的到达速率作出响应. 任何把 ECN-capability 扩展到这类数据包的提案, 都必须处理如下问题: 一个被标记 CE codepoint 的 ACK packet 随后在网络中被丢弃. 我们认为这一领域仍是研究主题, 因而本文档规定, "pure" ACK packet 当前 MUST NOT 指示 ECN-capability.

类似地, 如果 CE packet 随后由于损坏 (bit errors) 在网络中被丢弃, 端节点仍应调用拥塞控制, 正如 TCP 今天会响应丢失数据包一样. 在任何让网络区分因损坏而丢弃的数据包与因拥塞或缓冲区溢出而丢弃的数据包的提案中, 都必须考虑损坏的 CE packet 这一问题. 特别是, 仅广泛部署 ECN 并不足以让端节点能够把数据包丢弃解释为损坏而不是拥塞的指示.