为什么进行四次挥手
由于TCP是全双工的,因此每个方向都需要单独关闭。因为服务端的listen状态下的socket收到SYN报文的连接请求的时候,可以把ACK和SYN(ACK起应答作用,SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的SYN报文通知时,仅表示对方没有数据发送给你了,但未必你所有的数据都发送给对方了,所以你未必可能会马上关闭socket,即你可能会发送一些东西给对方后,再发送FIN报文给对方代表你同意关闭连接了,所以这里的ACK和SYN大多情况都是分开发送的为什么进行三次握手如果是两次握手还会出现一个问题,客户端的第一次SYN请求在网络中阻塞时,客户端重新发送第二次SYN请求,服务器收到第二次SYN请求后,成功与客户端两次握手,双方建立连接,在数据传输结束后,双方断开链接,这时,第一次的SYN请求在服务端到来,服务端会认为客户端想要重新建立链接,给客户端发出确认建立连接,会一直等待客户端发送数据,而客户端已经完成了自己的数据传输任务,不会再给服务端发信息,于是服务端就一直等待,造成了资源的浪费
2021-11-03
最新推荐文章于 2021-11-10 17:26:45 发布