连接阶段的三次握手
客户端(Client):connect
- 发送SYN M包
- 收到SYN N+ACK M+1包
- 进入established状态并发送ACK N+1包
服务端(Server):listen accept
- 收到SYN M包
- 发送SYN N+ACK M+1包
- 收到ACK N+1包,进入established状态
断开阶段的四次握手
全双工:两方都发送FIN包并确认,所以是4次
客户端主动关闭
客户端(Client):active close主动关闭
- 主动断开连接,发送FIN包,进入FIN_WAIT_1状态
- 收到ACK包,进入FIN_WAIT_2状态
- 收到FIN包,进入TIME_WAIT状态(确保双倍包死亡时间ttl,数据不混淆)
- 发送ACK包,进入CLOSED状态
服务端(Server):passive close被动关闭
- 收到FIN包,进入CLOSE_WAIT状态
- 发送ACK包和FIN包,进入LAST_ACK状态
- 收到ACK包,进入CLOSED状态