📄 一句话概括
以太网 MTU 1500 扣掉 IP 头与 TCP 头,一次只能装 1460 字节(MSS)——大消息按 MSS 切块,每块独立编序号。
📝 本节和前面几节的关系
2.3.1 说【攒够一块】;本篇量一量这一块到底多大。
一、三把尺子
MTU=以太网一帧最多 1500 字节; IP 头+TCP 头=典型 40 字节; MSS=1500-40=1460,一次真正能装的数据。
二、拆分与拼装
8000 字节响应=5 x 1460+700,共 6 块; 每块带序号出门,收方按序号拼回原样。
三、动手 Demo:大消息怎么拆
尺子与账目:
mtu, ip, tcp = 1500, 20, 20
mss = mtu - ip - tcp
print('MSS =', mss)
total = 8000
n, rest = divmod(total, mss)
print('拆成:', n, '块满的 +', rest, '字节')
实跑输出:
--------------------------------------------------------------------
大消息怎么拆
--------------------------------------------------------------------
MTU 1500(以太网)扣掉头部,一次只能装 1460 字节:
项目 字节数
-----------------------------
以太网 MTU 1500
- IP 头(典型) 20
- TCP 头(典型) 20
= MSS(一次可装) 1460
-----------------------------
一条 8000 字节的 HTTP 响应要拆 6 块:
5 x 1460 + 700 —— 每块独立编序号,对面再拼回来。
⭐ 2026 现状:数据中心常开巨帧(MTU 9000),MSS 相应放大—— 互联网公网链路仍以 1500 为准。
30 秒实验
- 算算 1MB 文件按 MSS 要拆多少块。
- Wireshark 里找 max segment size 协商值。
- 如果 MTU 只有 576,重算 MSS 和块数。
常见误区
- 以为 MTU 就是能装的数据量——还要扣两层头。
- 以为拆分是收方随便拼——按序号有序拼装。
自测三问(点开对答案)
1. MSS 怎么算出来? —— MTU 减去 IP 头和 TCP 头。 2. 8000 字节按 MSS 拆几块? —— 6 块(5 满+1 尾)。 3. 拆分后靠什么保证拼对? —— 每块的序号。- ☐ 下一节(2.3.3 使用ACK号确认网络包已收到)
相关笔记
- 用TCP对数据进行分割处理(序列号、ACK号) —— 12 课同款
- 使用ACK号确认网络包已收到 —— 拆了怎么对账
- 🔌 网络是怎样连接的 · 索引