首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP TIME_WAIT状态

TCP TIME_WAIT状态
EN

Stack Overflow用户
提问于 2016-09-09 04:42:36
回答 2查看 2.4K关注 0票数 2

假设我有一个服务器运行日间服务。

然后使用telnet连接这个日间服务器,服务器发送时间数据并关闭连接,因为服务器是主动关闭端,应该进入TIME_WAIT状态。

那么,为什么在服务器仍然处于TIME_WAIT状态时,我可以在最后一个telnet之后立即对日间服务执行telnet呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-09 04:50:18

这些州属于一个会话。会话是一个5元组,由源IP/端口、目标IP/端口和传输类型(如TCP或UDP)组成。如果限制只是基于服务器端的属性,那将使互联网几乎无法使用(想象一下每四分钟在谷歌上只允许一次搜索)。

因此,如果您不使用相同的5元组,您可以立即启动一个新会话。换句话说,即使您可以从同一个源IP连接到相同的目的IP和端口,您的源端口几乎肯定是不同的。

因此,它将是一个不同的会话,一个不会处于等待状态的会话。

大多数客户端在创建会话时通常使用零作为端口号,这表明通信堆栈应该为会话分配任意/随机/可用端口。

票数 1
EN

Stack Overflow用户

发布于 2016-09-09 04:50:05

服务器不处于TIME_WAIT状态。源/目标IP:端口之间的先前连接处于TIME_WAIT状态,这意味着不能重用该元组。但默认情况下,客户端将始终使用新的出站端口,因此将使用新的元组。这样你就可以马上联系了。

否则,TCP/IP、Internet、这个站点等就根本无法工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39403996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档