TCP 握手 CLOSE_WAIT 和 TIME_WAIT 状态详解:本端和对端状态分析
在 TCP 握手过程中,本端的 CLOSE_WAIT 和 TIME_WAIT 状态是指本端的连接状态,而对端此时的状态是 ESTABLISHED。
-
CLOSE_WAIT 状态:当本端应用程序主动关闭连接后,发送 FIN 包给对端,进入 CLOSE_WAIT 状态。本端等待对端发送 ACK 确认该连接的关闭,但是本端可以接收来自对端的任意数据。一旦对端发送 ACK 确认,本端会进入最终的关闭状态(最后一个 ACK)。
-
TIME_WAIT 状态:当本端发送 FIN 包给对端,进入 CLOSE_WAIT 状态后,本端会等待一段时间(通常为 2 倍的最大报文段生存时间,即 2MSL)才会进入 TIME_WAIT 状态。在这个状态下,本端可以接收到对端的重传数据,并且保留该连接的信息,以便在这段时间内重传最后一个 ACK。TIME_WAIT 状态的目的是确保对端接收到最后一个 ACK,并且确保该连接的所有分组都从网络中消失,避免新旧连接之间的混淆。
对端的状态是 ESTABLISHED,表示对端仍然处于活动状态,并且仍然可以接收和发送数据。当对端接收到本端发送的 FIN 包后,会进入 CLOSE_WAIT 状态,然后发送 ACK,最终进入 CLOSED 状态。
原文地址: https://www.cveoy.top/t/topic/pdx4 著作权归作者所有。请勿转载和采集!