TCP TIME_WAIT problem

情到浓时终转凉″ 提交于 2019-12-11 06:25:11

问题


I have read a TCP and socket programming book. I have a question,

The TIME_WAIT state of the TCP should remain 2MSL time period as the book said. But how then a internet explore like application does not have this problem?

According to the documentation, it's 4 minutes , but in Internet explore I don't have to wait even 10 seconds to refresh a web page?

How this works? I'm confused please explain.


回答1:


There are a few possibilities, some of which I've listed below.

The first is that not all sessions move through the TIME_WAIT state at all. If the other side closes the connection, the local transitions are ESTABLISHED, CLOSE_WAIT, LAST_ACK and CLOSED, so there's no TIME_WAIT involved.

Secondly, the TIME_WAIT state applies to a session, which is a 5-tuple {protocol,source-ip,source-port,dest-ip,dest-port}.

If any of those values change for the next session (usually source-port), that's unaffected by the previous session.

Lastly, the browser doesn't have to shut down the session after each request. It's more likely (for efficiency) to maintain a pool of open sessions in order to re-use them, such as when you want to download a page with fifty images (one session rather than fifty one).

It can even leave such sessions open after a page is fully loaded, on the off-chance you'll access something else on that server.



来源:https://stackoverflow.com/questions/7341924/tcp-time-wait-problem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!