Appendix B. TCP Requirement Summary (TCP 要求摘要)
本附录总结了 RFC 9293 中使用 RFC 2119 关键词标记的所有实现要求.
必须 (MUST) 要求
基本协议
- MUST-1: 窗口大小必须被视为无符号数
- MUST-2: 发送方必须生成 TCP 校验和
- MUST-3: 接收方必须检查 TCP 校验和
- MUST-4: TCP 实现必须支持强制选项集 (EOL, NOP, MSS)
- MUST-5: TCP 实现必须能够在任何段中接收 TCP 选项
- MUST-6: TCP 实现必须忽略其未实现的 TCP 选项 (假设选项有长度字段)
- MUST-7: TCP 实现必须准备处理非法选项长度 (建议重置连接并记录错误)
选项处理
- MUST-64: 接收方必须准备处理不从字边界开始的选项
- MUST-65: Maximum Segment Size 选项禁止在非 SYN 段中发送
- MUST-68: 除 EOL 和 NOP 外, 所有 TCP 选项必须有长度字段
- MUST-69: End of Option List Option 之后的头部内容必须是零填充
序列号
- MUST-8: 初始序列号必须使用加密强随机数生成器选择
- MUST-9: 必须正确处理序列号环绕
- MUST-10: 必须检测和处理重复段
连接管理
- MUST-11: SYN 段必须不携带应用数据 (除非使用 TCP Fast Open)
- MUST-12: 必须正确实现三次握手
- MUST-13: 必须正确实现连接终止序列
- MUST-14: 必须在 SYN 段中发送 MSS 选项
数据传输
- MUST-15: 必须按顺序交付数据给应用程序
- MUST-16: 必须实现重传机制
- MUST-17: 必须实现流量控制
- MUST-18: 必须实现某种形式的拥塞控制
错误处理
- MUST-19: 必须验证接收段的校验和
- MUST-20: 必须正确处理 RST 段
- MUST-21: 必须处理窗口外的段
应该 (SHOULD) 要求
性能
- SHLD-1: 应该实现 Nagle 算法或提供禁用它的方式
- SHLD-2: 应该实现延迟 ACK
- SHLD-3: 应该支持窗口缩放选项 (RFC 7323)
- SHLD-4: 应该支持时间戳选项 (RFC 7323)
- SHLD-5: 应该支持 SACK 选项 (RFC 2018)
安全
- SHLD-6: 应该实现 RFC 5961 的盲攻击防护
- SHLD-7: 应该实现 SYN Cookie 或类似的 SYN flood 防护
- SHLD-8: 应该使用不可预测的初始序列号
互操作性
- SHLD-9: 应该容忍非标准但无害的行为
- SHLD-10: 应该记录异常事件
推荐 (RECOMMENDED) 要求
- REC-1: 推荐为发送和接收窗口大小保留 32 位字段
- REC-2: 推荐实现路径 MTU 发现
- REC-3: 推荐支持大窗口和窗口缩放
- REC-4: 推荐实现选择性确认 (SACK)
可以 (MAY) 选项
可选功能
- MAY-1: 可以实现 TCP Fast Open (RFC 7413)
- MAY-2: 可以实现 TCP-AO 认证 (RFC 5925)
- MAY-3: 可以支持实验性选项
- MAY-4: 可以实现紧急数据机制
- MAY-5: 可以实现保持活动 (Keep-Alive) 机制
实现选择
- MAY-6: 可以使用不同的拥塞控制算法
- MAY-7: 可以实现各种 QoS 机制
- MAY-8: 可以优化特定工作负载
实现检查清单
核心功能
- 正确的头部处理
- 校验和计算和验证
- 序列号管理
- 三次握手
- 数据传输
- 连接终止
- 流量控制
- 拥塞控制
选项支持
- End of Option List (Kind 0)
- No-Operation (Kind 1)
- Maximum Segment Size (Kind 2)
- Window Scale (Kind 3) - 推荐
- SACK Permitted (Kind 4) - 推荐
- SACK (Kind 5) - 推荐
- Timestamps (Kind 8) - 推荐
安全功能
- 加密强 ISN 生成
- RFC 5961 盲攻击防护
- SYN flood 防护
- RST 验证
- 序列号验证
性能优化
- Nagle 算法
- 延迟 ACK
- 快速重传和快速恢复
- 路径 MTU 发现
- 窗口缩放
注意: 这是一个简化的摘要. 完整的要求列表和详细说明请参阅 RFC 9293 的附录 B 和正文内容. 每个要求都在正文中有详细的上下文和解释.