TCP TIME_WAIT问题

时间:2011-09-08 00:24:23

标签: sockets tcp ip time-wait

我已经阅读了TCP和套接字编程书。我有一个问题,

TCP的TIME_WAIT状态应保持2MSL时间段 书上说。但是,互联网如何探索应用程序 没有这个问题?

根据文档,它是4分钟,但在Internet探索 我不需要等待10秒才能刷新网页?

这是如何运作的?我很困惑请解释。

1 个答案:

答案 0 :(得分:3)

有几种可能性,其中一些我在下面列出。

首先,并非所有会话都会在TIME_WAIT状态下移动。如果另一方关闭了连接,则本地转换为ESTABLISHEDCLOSE_WAITLAST_ACKCLOSED,因此不会涉及TIME_WAIT

其次,TIME_WAIT状态适用于会话,这是一个5元组{protocol,source-ip,source-port,dest-ip,dest-port}

如果这些值的任何更改为下一个会话(通常是源端口),则不受上一个会话的影响。

最后,浏览器 以在每次请求后关闭会话。为了重新使用它们,更有可能(为了效率)维护一个开放会话池,例如当你想要下载一个包含50个图像(一个会话而不是五十个)的页面时。

它甚至可以在页面完全加载后让这些会话保持打开状态,因为你很可能会访问该服务器上的其他内容。