首页 > 代码库 > 第三篇:关于TIME_WAIT状态

第三篇:关于TIME_WAIT状态

前言

       为何TCP ”四次分手“ 的过程中会有一个TIME_WAIT状态?这个状态有什么意义呢?这是网络中的一个经典问题,本文将给出精简的回答。

什么是TIME_WAIT状态

       这是TCP通信协议中出现的一个状态,端点会在这个状态停留2MSL( 最长分节生命期 ),参见下图:

       技术分享

       左下方的那个状态即是。

TIME_WAIT状态存在意义之一

       假设上图中,最后的那个ack分节传递失败了,那么服务器端会要求客户端再传递一次这个分节。如果没有此状态( 客户端直接退出 ),那就无法重传这段丢失了的分节( 所有对客户端的请求均会返回RST )。

TIME_WAIT状态存在意义之二

       假定这个连接刚刚关闭,便出现这个连接的一个化身,则上一次连接中仍然在传递过程中的分节会被这次化身连接误收。

说明

       可以根据存在意义一和意义二,思考一下为什么TIME_WAIT状态停留时间是2MSL。

第三篇:关于TIME_WAIT状态