您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页为什么要有time_wait状态?

为什么要有time_wait状态?

来源:汇智旅游网

谁先关闭谁先进入time_wait状态。

通常服务器检测到客户端关闭连接后,(系统调用的一种事件类型,发生了这种事件就会告知服务器),就会立刻给客户端发送一个结束报文段来关闭连接,客户端收到这个结束报文段之后,并没有直接进入CLOSE状态而是转移到TIME_WAIT状态。在这个状态,客户端连接要等待一段长为2MSL的时间,才能完全关闭。MSL是TCP报文段在网络中的最大生存时间。

TIME_WAIT状态存在的原因有两点:(time_wait状态就是四次挥手中的状态)

  1. 假如用于确认服务器结束报文段6的TCP报文段7丢失,那么服务器要重发此结束报文段,客户端要在某个状态等待结束报文段然后回复确认报文段,这样才能可靠的终止TCP连接。
  2. 在linux系统上,一个TCP端口不能被同时打开多次,当一个TCP连接处于TIME_WAIT状态时,我们无法使用该链接的端口来建立一个新连接。反过来思考,如果不存在TIME_WAIT状态,则应用程序能过立即建立一个和刚关闭的连接相似的连接(这里的相似,是指他们具有相同的IP地址和端口号)。这个新的、和原来相似的连接被称为原来连接的化身。新的化身可能受到属于原来连接携带应用程序数据的TCP报文段(迟到的报文段),这显然是不该发生的。这是TIME_WAIT状态存在的第二个原因。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务