为什么一定要三次握手、四次挥手

为什么一定要三次握手、四次挥手

如果只进行两次握手,那么服务端在收到请求就建立连接并且可以发送数据。如果有滞后的TCP连接请求发送到服务器,直接建立连接并且返回连接请求确认,而此时客户端已经关闭,无法接受,但服务器端认为连接已经建立,一直在等待客户端发送信息,导致了资源的浪费。

为什么一定要三次握手、四次挥手

任意一方A发出连接释放请求(FIN标志)并且另一方B 确认(ACK标志)后,进入半关闭状态(不主动发送消息,仍然接受消息),当另一方B也请求连接释放,A发送ACK后等待一定时间以防止报文丢失。因为如果TCP确认丢失,则B会重新发送TCP连接释放请求,如果此时A已经关闭,则无法重新发送确认报文,导致B无法关闭。B收到确认报文后,也关闭连接,A在等待一定时间后关闭连接。