TCP / PACKET-BY-PACKET LAB

连接关闭,真的总要“挥手四次”吗?

从第一枚 SYN 开始逐包推进。注意左右两端的状态并不总是同步:FIN 只关闭一个发送方向,RST 则直接终止连接;最后确认一旦丢失,TIME_WAIT 还要替对端兜底。

建立报文
关闭报文
计时与重传
当前状态
选择生命周期路径
网络往返时间
120 ms
故障注入

两端状态机

状态以报文处理后为准
客户端
CLOSED
服务端
LISTEN

计时器:尚未启动。TIME_WAIT 只会出现在需要保留关闭现场的一端。

报文轨道

正常建连
累计网络时间0 ms
折合 RTT0.00 RTT
已处理报文0 / 3
连接还没有开始按“下一包 / 事件”,先看 SYN 抵达服务端后,两边分别进入什么状态。

下一步:SYN

先看一个不对称的起点

服务端已经在 LISTEN 等待连接,客户端却还没有连接控制块。第一枚 SYN 不是“打招呼”这么简单,它会创建双方用于可靠传输的序列号空间。

正常建连只演示三次握手。第三次 ACK 抵达服务端后,双方才都处于 ESTABLISHED。