TCP 序号、窗口与拥塞控制公式表
首部与 MSS
TCP Data Offset 以 4 B 字为单位:
路径 MTU 已知时,常用 MSS 上限:
字节序号
报文段首字节序号为
接收方连续收到此前全部字节后:
接收缓存与接收窗口
设:
RcvBuffer:接收缓存容量。LastByteRcvd:已接收最高字节位置。LastByteRead:应用已读取最高字节位置。
连续字节模型下:
TCP 首部 Window 字段从 ACK 指示的下一个期望字节开始通告可接收范围:
发送窗口
接收窗口和拥塞窗口共同限制在途数据:FlightSize:
时延带宽积与吞吐
路径瓶颈速率为 rwnd、cwnd 使用 B;若窗口直接用 bit 表示,则不乘 8。
RTT 估计
教材常取
重传报文段的 ACK 可能同时对应原发送和重传,RTT 采样应避开这种歧义。
慢开始
传统离散 RTT 模型中,每个确认新数据的 ACK 使:ssthresh 后转入拥塞避免。题目若按每轮给出整数 MSS,依题目指定切换点取值。
拥塞避免
按 ACK 更新的常见近似式:
拥塞信号后的窗口
教材常用:cwnd/2 计算。
超时
传统规则:
3 个重复 ACK
Reno 风格快速恢复的关键取值:cwnd 降到 1 MSS。计算题必须按题目指定算法处理。
TCP 窗口计算例
发送方已发送序号 1000~3999,收到 ACK=2500,接收方通告 rwnd=4000 B,拥塞窗口 cwnd=5000 B。
未确认数据:[4000,6500)。
HTTP 小对象时延
使用 TCP 非持久连接获取一个小对象,忽略 DNS、TLS、发送和处理时间:
王道口径补充(2026-09-16 审校)
以下各条由第 5 章错题反推补入,均按王道教材口径,与上面按 RFC 写的公式有出入时以本节为准:
- 快恢复后的 cwnd:王道取
,不加 3 MSS;超时则 (不小于 2), 。 - ssthresh 取的是出现拥塞时 cwnd 的一半,不是旧 ssthresh 的一半。
- 慢开始阶段加倍不越过门限:若
,则下一个 RTT 的 。 - cwnd 的增加都发生在收到确认之后:问”第
个 RTT 内发送的报文段都被确认时”,要把该轮的增量算上(2009 真题:超时时 16KB,第 4 个 RTT 后为 9KB)。 - 发送窗口 =
,再减去已发送未确认的字节(2010、2021 真题)。 - SYN 与 FIN 各消耗一个序号,纯 ACK 不消耗;已发送的应用层数据量 = FIN 序号 − SYN 序号 − 1(2020 真题)。
- 确认号是期望收到的下一个字节;窗口值从确认号算起。
- TCP 按 MSS 分割数据,重传也以 MSS 为单位;MSS 在三次握手时协商,取双方较小值。
- 序号绕回时间
( 为字节/秒):40Gb/s 下约 859ms。 - 释放连接的最短时间:主动关闭方 1RTT + 2MSL,被动关闭方 1.5RTT。
计算顺序
- 给两个方向分别维护序号空间。
- 数据按字节数推进,SYN、FIN 各额外推进 1。
- 用 ACK 确定累计确认边界和接收窗口左边界。
- 用
min(rwnd,cwnd)求发送限制,再扣FlightSize。 - 窗口与吞吐计算先统一 bit/B。
- RTO 依次更新
EstimatedRTT、DevRTT、RTO。 - 拥塞题区分慢开始、拥塞避免、超时和 3 个重复 ACK。
链接
- 上级索引:计算机网络公式附录
- TCP 可靠传输:5.3.1~5.3.2 TCP 的特点与报文段
- 流量控制:5.3.5 TCP 流量控制
- 拥塞控制:5.3.6 TCP 拥塞控制
- 连接管理:5.3.3 TCP 连接管理
- 名词库:第 5 章名词库
- 传输层总览:计算机网络第 5 章:传输层总览