Skip to main content

Appendix B. TCP需求摘要

本节内容改编自RFC 1122。

请注意,此列表中没有与PLPMTUD相关的要求,但建议使用PLPMTUD。

TCP实现要求汇总表

功能特性需求IDMUSTSHOULDMAYSHOULD NOTMUST NOT
PUSH标志
聚合或队列未推送数据MAY-16X
发送方合并连续PSH位SHLD-27X
SEND调用可指定PUSHMAY-15X
*如果不能: 发送方无限期缓冲MUST-60X
*如果不能: PSH最后一个报文段MUST-61X
通知接收方应用层协议(ALP)收到PSHMAY-17X
尽可能发送最大尺寸报文段SHLD-28X
窗口 (Window)
视为无符号数MUST-1X
作为32位数处理REC-1X
从右侧缩小窗口SHLD-14X
*窗口缩小时发送新数据SHLD-15X
*重传窗口内旧的未确认数据SHLD-16X
*窗口右边缘之外数据超时连接SHLD-17X
对窗口缩小具有鲁棒性MUST-34X
接收方窗口可无限期关闭MAY-8X
使用标准探测逻辑MUST-35X
发送方探测零窗口MUST-36X
*RTO后首次探测SHLD-29X
*指数退避SHLD-30X
允许窗口无限期保持为零MUST-37X
重传SND.UNA+SND.WND之外的旧数据MAY-7X
零窗口时也处理RST和URGMUST-66X
紧急数据 (Urgent Data)
支持紧急指针MUST-30X
指针指示首个非紧急字节MUST-62X
任意长度紧急数据序列MUST-31X
异步通知ALP紧急数据MUST-32X
ALP可查询紧急数据队列MUST-33X
ALP应使用紧急机制SHLD-13X
TCP选项 (TCP Options)
支持强制选项集MUST-4X
接收任意报文段中的TCP选项MUST-5X
忽略不支持的选项MUST-6X
除EOL+NOP外所有选项包含长度MUST-68X
应对非法选项长度MUST-7X
无论字对齐如何都处理选项MUST-64X
实现发送和接收MSS选项MUST-14X
IPv4除非536否则发送MSS选项SHLD-5X
IPv6除非1220否则发送MSS选项SHLD-5X
总是发送MSS选项MAY-3X
IPv4发送MSS默认536MUST-15X
IPv6发送MSS默认1220MUST-15X
计算有效发送报文段大小MUST-16X
MSS考虑变化的MTUSHLD-6X
非SYN报文段不发送MSSMUST-65X
MSS值基于MMS_RMUST-67X
用零填充MUST-69X
TCP校验和 (TCP Checksums)
发送方计算校验和MUST-2X
接收方检查校验和MUST-3X
ISN选择 (ISN Selection)
包含时钟驱动的ISN生成器组件MUST-8X
使用PRF组件的安全ISN生成器SHLD-1X
PRF不可从主机外部计算MUST-9X
打开连接 (Opening Connections)
支持同时打开尝试MUST-10X
SYN-RECEIVED记住上一状态MUST-11X
被动OPEN调用不干扰其他MUST-41X
功能: 同时监听相同端口MUST-42X
必要时向IP请求SYN源地址MUST-44X
*否则使用连接本地地址MUST-45X
打开到广播/组播IP地址MUST-46X
静默丢弃到广播/组播地址的报文段MUST-57X
关闭连接 (Closing Connections)
RST可包含数据SHLD-2X
通知应用连接已中止MUST-12X
半双工关闭连接MAY-1X
*发送RST指示数据丢失SHLD-3X
TIME-WAIT状态持续2MSL秒MUST-13X
*从TIME-WAIT状态接受SYNMAY-2X
*使用时间戳减少TIME-WAITSHLD-4X
重传 (Retransmissions)
实现指数退避、慢启动和拥塞避免MUST-19X
使用相同IP标识重传MAY-4X
Karn算法MUST-18X
生成ACK (Generating ACKs)
尽可能聚合MUST-58X
队列乱序报文段SHLD-31X
发送ACK前处理所有队列MUST-59X
为乱序报文段发送ACKMAY-13X
延迟ACKSHLD-18X
*延迟< 0.5秒MUST-40X
每2个全尺寸报文段或2RMSS确认SHLD-19X
接收方SWS避免算法MUST-39X
发送数据 (Sending Data)
可配置TTLMUST-49X
发送方SWS避免算法MUST-38X
Nagle算法SHLD-7X
*应用可禁用Nagle算法MUST-17X
连接失败 (Connection Failures)
R1重传时向IP提供负面建议MUST-20X
R2重传时关闭连接MUST-20X
ALP可设置R2MUST-21X
通知ALP R1<=重传次数<R2SHLD-9X

说明:

  • MUST: 必须实现的强制性要求
  • SHOULD: 强烈建议实现的要求
  • MAY: 可选实现的要求
  • SHOULD NOT: 不建议实现
  • MUST NOT: 禁止实现
  • ALP: Application Layer Protocol (应用层协议)
  • MSS: Maximum Segment Size (最大报文段大小)
  • ISN: Initial Sequence Number (初始序列号)
  • SWS: Silly Window Syndrome (糊涂窗口综合症)
  • RTO: Retransmission Timeout (重传超时)
  • MSL: Maximum Segment Lifetime (最大报文段生存时间)

本摘要表基于RFC 2119关键字标记所有实现要求,便于快速查找和验证TCP实现的合规性。