如何关闭time wait连接「建议收藏」

如何关闭time wait连接「建议收藏」如何关闭timewait连接

大家好,又见面了,我是你们的朋友全栈君。

               

原贴: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

           

           

           

                                       

           

           

           

如何关闭time wait连接「建议收藏」           

           

           

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

           

           

           

                                       

           

           

           

           

           

           

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

           

           

           

                                       

           

           

           

           

           

           

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

           

           

           

           

           

TOP

           

           

           

                                       

           

           

           

如何关闭time wait连接「建议收藏」           

           

           

回复 #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

           

           

           

                                       

           

           

           

           

           

           

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

           

           

           

           

           

TOP

           

           

           

                                       

           

           

           

           

           

           

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

           

           

           

           

           

TOP

           

           

           

                                       

           

           

           

           

           

           

支持zhang_ming

           

           

           

           

           

TOP

           

           

           

                   

           

           

           

           

           

           

           

           

引用:

           

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

            只能缓解,无法解决。

           

           

 

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132853.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • return 0和return 1和return -1的区别「建议收藏」

    return 0和return 1和return -1的区别「建议收藏」1、返回值int类型的函数返回:return语句用来结束循环,或返回一个函数的值。return0:一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。return-1::表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败;以上两个是约定俗成,系统提供的函数绝大部分定义为int类型返回值的都是这样的。返回值是返回给系统用的,给…

    2022年10月21日
    4
  • python vimrc[通俗易懂]

    python vimrc[通俗易懂]全局:在/etc/vim/vimrc中添加 本地:~/.vimrcsetfileencodings=utf-8,gbksetambiwidth=double“支持中文setsmartindentsetsmarttabsetexpandtabsettabstop=4setsofttabstop=4setshiftwidth=

    2022年6月13日
    29
  • 如何避免手机失窃后倾家荡产——手把手教你设置SIM卡密码(也就是PIN密码)

    如何避免手机失窃后倾家荡产——手把手教你设置SIM卡密码(也就是PIN密码)

    2020年11月8日
    629
  • 详述 Java 语言中的格式化输出

    详述 Java 语言中的格式化输出1前言相信大家在学习Java语言的时候,见到的第一条输出语句,就是:System.out.println(“HelloWorld”);毫无疑问,该语句的作用就是将HelloWorld打印到控制台,格式也非常的简单,直接按原格式输出。但是,如果将输出的内容换成“数值”或者“日期”呢?其打印的格式是否会有什么不同的变化呢?在本文中,就让咱们一起看一看在Java语言中,数值和日期是如何进行格

    2022年7月8日
    20
  • 决策树分析例题经典案例_决策树例题分析及解答

    决策树分析例题经典案例_决策树例题分析及解答决策树例题分析及解答 1 例 某农业企业有耕地面积 33 333 公顷 可供灌水量 6300 立方米 在生产忙季可供工作日 2800 个 用于种植玉米 棉花和花生三种作物 预计三种作物每公顷在用水忙季用工日数 灌水量和利润见表 在完成 16 5 万公斤玉米生产任务的前提下 如何安排三种作物的种植面积 以获得最大的利润 2 解 玉米 棉花 花生和种植面积分别为 X1 X2 X3 公顷 依题意列出线性规划模型 目标

    2025年7月2日
    4
  • Activiti教程(六)activiti的流程设计_未完待续

    Activiti教程(六)activiti的流程设计_未完待续一.idea配置activiti插件二.流程设计使用idea设计各种流程图并讲解流程空间的各自属性 

    2022年7月21日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号