📄 一句话概括
四阶段复盘:创建划内存、连接对起始号、收发靠拆分+序号+ACK+窗口、断开四次挥手加等待——应用程序的四个函数,背后各是一组报文。
📝 本节和前面几节的关系
2.1~2.4 走完 TCP 全程;本篇把账合起来。
一、一张总账
应用程序视角:socket→connect→write/read→close 四个函数; 协议栈视角:划内存、握手、拆分对账滑窗、挥手清账。
二、本章的接力棒
到这里数据已经切成包、装上 TCP 头与 IP 头—— 但还没出门。2.5 节讲网卡与以太网,真正变信号。
三、动手 Demo:四阶段收发小结
总账一张:
for a, b in [('创建','划控制信息、分配描述符'),
('连接','SYN/ACK 对起始号'),
('收发','拆分、序号、ACK、窗口'),
('断开','FIN/ACK、等待期')]:
print('%-4s %s' % (a, b))
实跑输出:
--------------------------------------------------------------------
四阶段收发小结
--------------------------------------------------------------------
把 1.4 的四阶段配上本章的内部账:
阶段 本章看到的内部动作
--------------------------------
创建 划控制信息、分配描述符
连接 SYN/ACK 对起始号
收发 拆分、序号、ACK、窗口
断开 FIN/ACK、等待期
--------------------------------
应用程序眼中的四个函数,每个背后都是一组报文。
把这张表背下来——它是【TCP 是什么】的完整答案。
30 秒实验
- 不看笔记复述四阶段各自的关键词。
- 把 2.2~2.4 的每个机制对应到总账的一行。
- 想想哪一环坏了会【连不上】、【乱序】、【收不全】。
常见误区
- 把 TCP 机制记成散点——它们都在四阶段的骨架上。
- 以为本章已经出门了——还在协议栈内部。
自测三问(点开对答案)
1. 四阶段各自的关键机制是什么? —— 划内存/握手对号/拆分对账滑窗/挥手等待。 2. 本章结束时数据到了哪? —— 还停在协议栈,未出门。 3. 下一站是谁? —— IP 层与网卡(2.5 节)。- ☐ 下一节(2.5.1 包的基本知识)
相关笔记
- 包的基本知识 — 下一站开场
- 数据收发操作概览 — 四阶段的应用层视角
- 🔌 网络是怎样连接的 · 索引