tcp关闭为什么需要四次握手
tcp关闭为什么需要四次握手
1. 为什么tcp建立连接需要三次握手而关闭连接却需要四次握手
tcp的三次握手如下:

tcp的四次握手如下:

其实四次握手中的第二、三次握手报文完全可以合成一个报文来发送,因为第二次握手发送的信息仅仅是对第一次握收进行确认回应(ack),第三次握手中其实也携带了ack标志位,又确认了一次。
但是因为tcp链接是全双工,有可能客户端发送完数据后,服务端还需要继续发送数据给客户端。所以当客户端发送fin报文请求关闭连接时,服务端只能先回应一个ack报文,确认收到了fin请求。等待服务端这边也把所有的数据都发送完毕,才发起fin报文。
注意:如果tcp打开了延迟确认特性,则第二次和第三次握手会合成一个报文。
浙公网安备 33010602011771号