TCP TIME_WAIT状态

时间:2016-09-09 04:42:36

标签: sockets tcp

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

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

那么为什么我可以在最后一个telnet之后立即telnet到白天服务,而服务器应该仍处于TIME_WAIT状态?

2 个答案:

答案 0 :(得分:1)

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

因此,如果您不使用相同的5元组,则可以立即开始新的会话。换句话说,即使您可以从相同的源IP连接到相同的目标IP和端口,您的源端口几乎肯定会有所不同。

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

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

答案 1 :(得分:0)

服务器不处于TIME_WAIT状态。源/目标IP:端口之间的先前连接处于TIME_WAIT状态,这意味着您无法重用该元组。但是默认情况下客户端将始终使用新的出站端口,因此是一个新的元组。所以你可以立即联系。

否则TCP / IP,互联网,本网站等根本不起作用。