5. 相对于 RFC 793 的变更 (Changes from RFC 793)
本节概述本文档相对于 RFC 793 及其后续更新所做的主要变更.
5.1. 协议规范变更 (Protocol Specification Changes)
头部格式更新:
- 根据 RFC 3168 更新 TCP 头部控制位, 添加 CWR (Congestion Window Reduced) 和 ECE (ECN-Echo) 标志.
- 澄清保留位的处理要求.
序列号处理:
- 澄清初始序列号 (Initial Sequence Number, ISN) 的选择机制.
- 更新序列号比较和回绕处理.
连接管理:
- 增加 SYN-RECEIVED 状态下 Reset 处理的澄清说明, 更新 RFC 5961.
- 澄清同时打开 (simultaneous open) 的处理.
- 更新时间等待 (TIME-WAIT) 状态的持续时间和处理方式.
选项处理:
- 澄清强制选项集: End of Option List, No-Operation, Maximum Segment Size.
- 更新未知选项的处理要求.
- 增加对实验性选项的引用.
5.2. 被废弃的内容 (Obsoleted Content)
本文档废弃以下 RFC:
- RFC 793 - 原始 TCP 规范 (1981).
- RFC 879 - TCP Maximum Segment Size and Related Topics.
- RFC 2873 - TCP Processing of the IPv4 Precedence Field.
- RFC 6093 - On the Implementation of the TCP Urgent Mechanism.
- RFC 6429 - TCP Sender Clarification for Persist Condition.
- RFC 6528 - Defending against Sequence Number Attacks.
- RFC 6691 - TCP Options and Maximum Segment Size (MSS).
5.3. 更新的内容 (Updated Content)
本文档更新以下 RFC:
- RFC 1011 - Official Internet Protocols (TCP section).
- RFC 1122 - Requirements for Internet Hosts -- Communication Layers (TCP section).
- RFC 5961 - Improving TCP's Robustness to Blind In-Window Attacks (SYN-RECEIVED state handling).
5.4. 安全增强 (Security Enhancements)
- 增加针对盲攻击 (blind attacks) 的保护机制.
- 更新针对序列号攻击的防御措施.
- 澄清安全实现的最佳实践.
- 增加 SYN flood 攻击相关考虑.
5.5. 性能改进 (Performance Improvements)
- 引用现代拥塞控制算法.
- 更新重传超时 (Retransmission Timeout, RTO) 的计算.
- 增加对高性能扩展的引用, 包括窗口缩放, 时间戳和 SACK.
- 澄清 Nagle 算法的实现要求.
5.6. 互操作性澄清 (Interoperability Clarifications)
- 澄清畸形报文段的处理.
- 更新错误条件处理.
- 澄清边界情形行为.
- 统一术语和定义.
5.7. 编辑性变更 (Editorial Changes)
- 现代化语言和术语.
- 重组内容以提升可读性.
- 增加实现指导.
- 更新参考文献.
- 标准化 RFC 2119 关键字的使用.
5.8. 未包含的内容 (Content Not Included)
以下内容虽然是现代 TCP 实现的重要组成部分, 但在单独文档中规定:
- 详细拥塞控制算法, 如 RFC 5681 等.
- 高性能扩展, 如 RFC 7323 中的窗口缩放和时间戳.
- 选择性确认 SACK, 如 RFC 2018 和 RFC 2883.
- TCP Fast Open, 见 RFC 7413.
- Multipath TCP, 见 RFC 8684.
这是一个有意的设计选择, 目的是保持基础规范清晰, 同时允许这些扩展独立演进.