TCP状态-创建和断开连接

创建连接

1. 服务端/客户端:CLOSE 关闭状态

默认初始化状态

2. 服务端:LISTEN 监听

服务端建立socket,进入监听状态

3. 客户端:SYN_SENT 请求连接

客户端发送SYN报文,进入SYN_SENT状态

4. 服务端:SYN_RCVD 接受连接

服务端接收SYN报文,回复SYN+ACK报文

5. 服务端/客户端:ESTABLISHED 建立连接

客户端接收SYN报文,回复ACK报文;服务端接收ACK报文,建立连接

断开连接

1. 服务端/客户端:ESTABLISHED 建立连接

默认断开前初始化状态

2. 客户端:FIN_WAIT1 发起断开请求

发送断开请求FIN报文

3. 服务端:CLOSE_WAIT 接受断开请求

收到FIN报文,回复客户端ACK报文

4. 客户端:FIN_WAIT2 等待数据传输

收到服务端ACK报文,等待数据传输

5. 服务端:LAST_ACK 发送断开请求

发送FIN断开请求报文

6. 客户端:TIME_WAIT 等待断开

回复FIN断开请求,发送ACK报文

7. 服务端/客户端:CLOSED 服务端断开

服务端收到ACK报文,立即断开

8. 客户端:CLOSING 准备断开

没有收到回复FIN报文的ACK,直接断开

相关文章: