三次握手
握手前双方都处于close态
服务器主动监听进入LISTEN
状态
假设客户端要建立连接
第一次握手
客户端随机初始化序号client_isn
发送SYN报文进入SYN-SENT
状态
第二次握手
服务端接收 SYN
报文后随机初始化序号序号server_isn
把确认应答填为 client_isn + 1
开启 SYN
和 ACK
位服务器处于 SYN-RCVD
状态。
第三次握手
客户端向服务端回应 ACK
标志位置为 1
其次「确认应答号」字段填入 server_isn + 1
,客户端进入 ESTABLISHED
状态
服务端收到客户端的应答报文后,也进入 ESTABLISHED
状态。
四次挥手
假设客户端要断开连接
第一次挥手
客户端将FIN和ACK位置为1,发送报文,进入FIN_WAIT_1状态
第二次挥手
服务端发送ACK回应序号位对方的确认号,确认号为对方序号加一 进入CLOSE_WAIT
状态
第三次挥手
服务端发送完数据让把FIN和ACK位置一,确认号和序号不变进入 FIN_WAIT_2
状态
第四次挥手
客户端将ACK位置1,序号用对方的确认号,确认号用对方的序号加一进入 LAST_ACK
状态。
服务端接收该报文后进入 CLOSE
状态
客户端在两个最长路由周期后进入CLOSE
状态