计算机网络自学网站 王道带学 · 考点 × 插图 × 真题 × 打卡
首页 › 第5章 传输层 › 速记手册

第5章 速记手册

考前 30 分钟过一遍 · 全章压缩重组,细节以各节正文与教材为准

知识框架

服务与端口→ UDP→ TCP 报文段→ 连接管理→ 可靠传输→ 流量控制→ 拥塞控制→ 小结

核心考点速记

表 R5 全章核心考点一览
主题必背要点
传输层定位为主机上的进程之间提供端到端逻辑通信;面向通信的最高层、用户功能的最低层
复用与分用复用:多个进程共用一个传输层协议发送;分用:接收方按端口号交付(网络层分用依据是协议字段)
差错检测传输层检验整个报文(首部+数据);IP 只检验首部。TCP 出错要求重传,UDP 出错直接丢弃
端口与套接字端口 16 位、仅本地意义;熟知 0~1023、登记 1024~49151、短暂 49152~65535;套接字 =(IP:端口)
TCP vs UDPTCP:面向连接、可靠、有序、全双工字节流、一对一、有拥塞控制、首部 20~60B;UDP:无连接、不可靠、面向报文保留边界、支持一对多、无拥塞控制、首部 8B
UDP 检验加 12B 伪首部(源/目的 IP 各 4B + 全 0 + 协议 17 + UDP 长度),16 位字反码求和取反;接收方校验和应为全 1;伪首部不传输
TCP 首部关键字段序号按字节编号;确认号=期望收到的下一字节序号;数据偏移单位 4B;控制位 URG/ACK/PSH/RST/SYN/FIN;窗口字段通告接收能力
三次握手SYN=1(前两次)、SYN 段不携带数据但消耗 1 序号;第三次握手可携带数据,不带则不耗序号
四次挥手FIN 段消耗 1 序号;第二、三次挥手间为半关闭;主动方 TIME-WAIT 等待 2MSL(确保最后 ACK 到达 + 旧报文消亡)
连接时间账建立:客户 1RTT 后可发数据,服务器 1.5RTT;释放:客户最短 1RTT+2MSL,服务器 1.5RTT
可靠传输检验 + 序号 + 累积确认 + 重传;RTO 略大于加权平均 RTTS(α=1/8);失序段缓存不丢弃(GBN 与 SR 的混合体)
快重传收到失序段立即发冗余 ACK;对同一段累计 3 个冗余 ACK(共 4 个确认)即立即重传,不等超时
流量控制滑动窗口:接收方以窗口字段通告 rwnd,动态调整;rwnd=0 后靠持续计时器 + 零窗口探测报文段破死锁
慢开始cwnd 从 1MSS 起,每收一个确认加 1,每轮指数增长,达到 ssthresh 转拥塞避免;不越过 ssthresh
拥塞避免每轮 cwnd 加 1,线性(加法增大);cwnd<ssthresh 用慢开始,> 用拥塞避免,= 皆可
拥塞处置超时:ssthresh=cwnd/2(下限 2),cwnd=1,重新慢开始(乘法减小);3 冗余 ACK:ssthresh=cwnd/2,cwnd=ssthresh,直接拥塞避免(快恢复)
发送窗口上限 = min[rwnd, cwnd];流量控制端到端(管接收方),拥塞控制全局(管网络)

易错清单

⚠️ 高频坑点(每条 ≤45 字)
  1. 传输层分用依据是端口号,网络层分用依据是协议字段,别混。
  2. SYN、FIN 报文段即使不携带数据也各消耗一个序号。
  3. 第三次握手可携带数据;不带数据则不消耗序号,下一数据段序号仍为 x+1。
  4. TIME-WAIT 等 2MSL 的是主动关闭方;被动方收到最后 ACK 即 CLOSED。
  5. UDP 长度字段含首部和数据,最小值为 8;伪首部 12B 只用于计算检验和,不传输。
  6. 目的 IP 地址不在 TCP/UDP 首部中,而在 IP 首部中。
  7. 数据偏移(首部长度)单位是 4B,最大值 15 对应首部 60B。
  8. 触发快重传需 3 个冗余 ACK,加上原始确认共 4 个确认。
  9. 慢开始不是增长慢:起点低、每轮翻倍,是指数增长;且不能越过 ssthresh。
  10. 超时则 cwnd=1 重新慢开始;3 冗余 ACK 则 cwnd 减半进拥塞避免(不归 1)。

必背数字 · 公式 · 端口

📌 端口表
应用FTPTELNETSMTPDNSHTTPPOP3HTTPS
端口21(控制)/20(数据)23255380110443
📌 必背数字与公式
  • UDP 首部 8B(4 字段 × 2B);伪首部 12B(TCP 同用,协议字段 17→6);UDP 长度字段最小值 8。
  • TCP 首部 20~60B;数据偏移单位 4B(最小值 5,最大值 15);选项最长 40B。
  • 套接字 =(IP 地址 : 端口号);端口号 16 位;一条 TCP 连接由两个套接字唯一确定。
  • 加权平均往返时间:$$RTTS' = (1-\alpha)\times RTTS + \alpha \times RTT$$,α=1/8;RTO 略大于 RTTS。
  • MSS 默认 536B(556B 报文段),目的是避免 IP 分片;MSS 与接收窗口无关。
  • 发送窗口上限 = min[rwnd, cwnd]。
  • 拥塞控制:cwnd 初始 1MSS;ssthresh 减半下限 2;慢开始指数、拥塞避免线性加 1。
  • 握手/挥手时间账:客户建连后 1RTT 可发数据,服务器 1.5RTT;释放客户最短 1RTT+2MSL,服务器 1.5RTT。
  • 保活计时器:每 75s 发一个探测报文段,连续 10 次无响应则关闭连接。
  • TIME-WAIT 等待 2MSL;零窗口后靠持续计时器发零窗口探测报文段。

一分钟自测五问

Q1:为什么建立连接必须三次握手,两次不行?

答案

防止已失效的连接请求突然到达服务器而错误建连。两次握手时,服务器收到滞留的旧 SYN 就直接建连并等待数据,客户却无此意图,服务器资源被长期浪费;三次握手下客户发现确认序号无效,直接丢弃不回 ACK,连接无法错误建立。

Q2:为什么主动关闭方要在 TIME-WAIT 状态等待 2MSL?

答案

① 保证最后一个 ACK 能到达对方——若丢失,对方会重传 FIN,本方还能重发确认;② 让本连接中所有滞留的旧报文段在网络中自然消失,不干扰新连接。

Q3:超时时 cwnd 置 1,收到 3 个冗余 ACK 时 cwnd 却只减半,为什么?

答案

拥塞严重程度不同。收到 3 个冗余 ACK 说明后续报文段仍能到达,网络尚可通信,拥塞较轻,减半适度退让即可;超时说明连 ACK 都回不来,网络可能严重拥塞,须 cwnd=1 重新慢开始、谨慎探测。

Q4:发送方同时收到 rwnd=400、cwnd=200 的通告,实际发送窗口上限是多少?由什么共同决定?

答案

200。发送窗口上限 = min[rwnd, cwnd],由流量控制(接收方能力,端到端)与拥塞控制(网络状况,全局性)共同决定。

Q5:TCP 既有累积确认(像 GBN)又有失序段缓存与 SACK,它的重传机制到底像谁?

答案

是 GBN 与 SR 的混合体:基础行为用累积确认 + 冗余 ACK,仅重传真正丢失的那个报文段(失序段被接收方缓存,不像 GBN 全部丢弃);SACK 选项可进一步指明已收到的非连续数据块,重传行为更接近 SR。