天天看点

TCP连接的过程,也称之为三次握手

TCP建立连接,也称之为三次握手。那么我现在来简述一下这个TCP连接的过程

第一次握手,客户端发送SYN给服务器,客户端的状态为SYN_send,服务器接收到请求后,状态从Listen变成SYN_RCVD。

第二次握手,服务器发送SYN+ACK给客户端,客户端接收到数据包。

第三次握手,客户端发送ACK给服务器,客户端状态进入established。服务器接收到ACK后,状态从SYN_RCVD变成established。

TCP断开连接,也称之为四次挥手

第一次挥手,客户端与服务器的状态均处于established状态。客户端发送FIN给服务器,客户端的状态变成FIN_wait1,服务器的状态变成close_wait。

第二次挥手,服务器发送ACK给客户端。客户端的状态变成FIN_wait2。

第三次挥手,服务器发送FIN给客户端,状态变成last_ack,客户端接收到请求后,状态变成time_wait。

第四次挥手,客户端发送ACK给服务器,服务器接收到包后,状态从last_ack变成closed。客户端这边一般会持续4分钟的time_wiat。然后closed。

还有一种特殊的情况。是客户端和服务器,同时发起断开连接的情况。这里就会出现closeing的状态。过程就是,同时发起FIN请求断开连接。然后直接处于closeing状态。同时断开连接。

继续阅读