21. 为什么在 IP Header 中使用两位?
21. 为什么在 IP Header 中使用两位?
ECN 使用 IP header 中的两位编码四个可能 codepoints: not-ECT (00), ECT(0) (10), ECT(1) (01) 和 CE (11). 本节解释为什么需要两位而不是一位.
使用两位的主要原因包括:
-
区分 ECN 能力与拥塞指示: 有必要区分三种状态:
- 传输不支持 ECN (not-ECT)
- 传输支持 ECN, 但分组尚未经历拥塞 (ECT)
- 传输支持 ECN, 且分组已经经历拥塞 (CE)
-
支持 ECN nonce: 如 Section 20.2 所述, 两个 ECT codepoints 支持实现 ECN nonce 机制, 该机制针对接收方和网络元素的不当行为提供额外保护.
-
向后兼容: 使用两位可以清晰识别不支持 ECN 的分组 (not-ECT), 确保这些分组不会被路由器标记.
-
未来扩展: 四个 codepoints 的设计空间为可能的未来 ECN 扩展和改进提供灵活性.
如果只使用一位, 就无法同时表示 ECN 能力状态和已经历拥塞状态, 也无法支持 ECN nonce 等高级功能. 因此, 使用两位是实现完整且稳健 ECN 功能的最低要求.