🔌 第二章 用电信号传输TCP/IP数据
📄 一句话概括

四阶段复盘:创建划内存、连接对起始号、收发靠拆分+序号+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 秒实验

  1. 不看笔记复述四阶段各自的关键词。
  2. 把 2.2~2.4 的每个机制对应到总账的一行。
  3. 想想哪一环坏了会【连不上】、【乱序】、【收不全】。

常见误区

  1. 把 TCP 机制记成散点——它们都在四阶段的骨架上。
  2. 以为本章已经出门了——还在协议栈内部。
自测三问(点开对答案) 1. 四阶段各自的关键机制是什么? —— 划内存/握手对号/拆分对账滑窗/挥手等待。 2. 本章结束时数据到了哪? —— 还停在协议栈,未出门。 3. 下一站是谁? —— IP 层与网卡(2.5 节)。

相关笔记