您的位置:首页 > 汽车 > 新车 > 哪些网站怎么进_网站建设时间规划_app推广是做什么的_合肥百度推广排名优化

哪些网站怎么进_网站建设时间规划_app推广是做什么的_合肥百度推广排名优化

2025/6/4 15:57:56 来源:https://blog.csdn.net/h53536/article/details/146937136  浏览:    关键词:哪些网站怎么进_网站建设时间规划_app推广是做什么的_合肥百度推广排名优化
哪些网站怎么进_网站建设时间规划_app推广是做什么的_合肥百度推广排名优化

TCP 的四次挥手是用于安全关闭一个已建立的连接的过程,它确保双方都能完成数据传输并安全地释放连接资源。

 TCP四次挥手的具体流程:

  1. 第一次挥手(FIN → ACK):客户端主动关闭连接,发送 FIN 包,进入 FIN_WAIT_1 状态。服务器收到 FIN 后,表示不再接收数据,但仍可能继续发送数据
  2. 第二次挥手(ACK):服务器发送 ACK 包,确认已收到 FIN。此时服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态。
  3. 第三次挥手(FIN → ACK):服务器完成所有数据传输后,发送 FIN 包,进入 LAST_ACK 状态。客户端收到 FIN 后,准备关闭连接。
  4. 第四次挥手(ACK):客户端发送最后一个 ACK 包,进入 TIME_WAIT 状态,等待可能迟到的 FIN 包。服务器收到 ACK 后,关闭连接,进入 CLOSED 状态。客户端在 TIME_WAIT 计时结束后(2MSL),正式关闭连接。

形象记忆

我:我消息发完了

女朋友:好的收到

女朋友扣键盘ing,发消息,few seonds later...

女朋友:我消息发完了,晚安

我:好的了解,安

由上图可知

只有挥手1和挥手3的终止位FIN=1

即使挥手1和挥手3不携带数据,也要消耗一个序号

挥手2可以携带数据,挥手4不可以携带数据

Q1:为什么挥手需要四次?

A1:主要是为了确保数据完整性

TCP 是一个全双工协议,也就是说双方都要关闭,每一方都向对方发送 FIN 和回应 ACK。

客户端发起连接断开,代表客户端没数据要发送的,但是服务端可能还有数据没有返回给客户端。

举个栗子,我对你说我数据发完了,然后你回复好的你收到了。然后你对我说你数据发完了,然后我向你回复我收到了。这样才能保证数据不会丢失。

所以一个 FIN + ACK 代表一方结束数据的传输,因此需要两对 FIN + ACK,加起来就是四次通信。

Q2:挥手一定需要四次吗?

A2:不一定,有时候可以变成三次挥手。如果 Client 发送 FIN 给 server 的时候, server 已经没数据发送给 Client 了,那么 Server 就可以将 ACK 和它的 FIN 一起发给 Client ,这样一来就变成三次挥手了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com