如何关闭time wait连接

(4) 2024-05-15 19:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说如何关闭time wait连接,希望能够帮助你!!!。

               

原贴:http://www.csna.cn/viewthread.php?tid=1468

                           

           

           

           

           

如何关闭time_wait连接?

           

今天在电影服务器上使用NETSTAT -AN察看系统连接,发现有大量的TIME_WAIT连接,IP都是内网用户访问电影服务器时留下的,有的IP甚至有200-300个连接。网上查了一些资料,都说TIME_WAIT连接的默认时间是240秒,也就是四分钟。但是10分钟以后这些连接还没有消失。重启服务器,查看连接还在。请教诸位,有没有手动关闭这些连接的方法?另外,大量的time_wait对系统有哪些方面的影响?非常感谢!!

           

           

           

           

           

           

TOP

           

CSNA论坛奖励机制

           

           

                                       

           

           

           

           

           

           

TCP结束的过程如下:

Server                             Client

-------------- FIN -------------->  server: fin_wait_1

<------------- ACK --------------- client: close_wait  server:fin_wait_2

<------------- FIN  --------------- client发出fin之后就关闭

-------------- ACK ------------->  server发出ack后进入time_wait状态

Time_Wait的默认时间是2倍的MLS,就是240秒钟。MLS是TCP 片在网上的最长存活时间。

TIME_Wait的主要作用是保证关闭的TCP端口不立即被使用。因为当网络存在延迟时,可能当某个端口被关闭后,网络中还有一些重传的TCP片在发向这个端口,如果这个端口立即建立新的TCP连接,则可能会有影响。所以使用2倍的MSL时间来限制这个端口立即被使用。

现在的问题在于,4分钟的时间有点长。

因此,Time_wait的影响,我想,首先每个TCP连接都各自有个数据结构,叫TCP Control Block.Time_wait的时候这个数据结构没有被释放。所以当有太多的TCP连接时,内存可能会被占用很多。

[
本帖最后由 ValorZ 于 2006-9-19 10:32 编辑 ]

           

           

代做 系统集成、软件外包、美工设计、机票、旅游、饭店、办公用品

           

           

           

           

TOP

           

CSNA论坛奖励机制

           

           

                                       

           

           

           

           

           

           

To ValorZ:TIME_WAIT状态也称为2MSL等待状态,而不是2MLS,笔误吧!

每个TCP报文在网络内的最长时间,就称为MSL(Maximum Segment Lifetime),它的作用和IP数据包的TTL类似。

RFC793指出,MSL的值是2分钟,但是在实际的实现中,常用的值有以下三种:30秒,1分钟,2分钟。

注意一个问题,进入TIME_WAIT状态的一般情况下是客户端,大多数服务器端一般执行被动关闭,不会进入TIME_WAIT状态,当在服务器端关闭某个服务再重新启动时,它是会进入TIME_WAIT状态的。

举例:

1.客户端连接服务器的80服务,这时客户端会启用一个本地的端口访问服务器的80,访问完成后关闭此连接,立刻再次访问服务器的80,这时客户端会启用另一个本地的端口,而不是刚才使用的那个本地端口。原因就是刚才的那个连接还处于TIME_WAIT状态。

2.客户端连接服务器的80服务,这时服务器关闭80端口,立即再次重启80端口的服务,这时可能不会成功启动,原因也是服务器的连接还处于TIME_WAIT状态。

           

           

这些都不是我的,但这些都会是我的。

           

           

           

           

TOP

           

CSNA论坛奖励机制

           

           

                                       

           

           

           

           

           

           

谢谢楼上的版主们的讲解!

           

           

           

           

           

TOP

           

免费下载科来网络分析系统技术交流版6.5!

           

           

                                       

           

           

           

           

           

           

回复 #1 ge_xin_yu 的帖子

           

大量的time_wait 当然会占用更多的端口与内存资源. 如果是synflood攻击,则会发现有大量的time_wait在排队.如果流量非常大,系统可用资源被占用殆尽,则服务器通常会崩溃掉.正常情况下(非synflood攻击)可以通过增加服务器内存解决并发访问请求过多的状况.

"10分钟以后这些连接还没有消失, 重启服务器,查看连接还在",服务器重启后是会马上就会收到客户端的连接请求.这些连接一直是以前那些IP吗?还是新的IP?用科来抓一下包看看.

一般用不着手动关闭这些连接,超时后系统自然会将状态置位,你其实可以将time_wait时间改小.

如果你的电影服务器是Windows平台,可以修改下面的注册表键值:

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters]

"TcpTimedWaitDelay"=dword:0000001e

此值是TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议为30秒。

           

           

           

           

           

TOP

           

免费下载科来网络分析系统技术交流版6.5!

           

           

                                       

           

           

           

           

           

           

非常感谢楼上诸位兄弟的说明!!!

           

           

           

           

           

TOP

           

免费下载科来网络分析系统技术交流版6.5!

           

           

                                       

           

           

           

           

           

           

版主可不可以共享一些RFC中文版的文档出来?

           

           

           

           

           

TOP

           

CSNA论坛奖励机制

           

           

                                       

           

           

           

           

           

           

支持zhang_ming

           

           

           

           

           

TOP

           

免费下载科来网络分析系统技术交流版6.5!

           

           

                   

           

           

           

           

           

           

           

           

引用:

           

正常情况下(非synflood攻击)可以通过增加服务器内存解决并发访问请求过多的状况.

            只能缓解,无法解决。

           

           

 

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!如何关闭time wait连接

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复