如何缩短TCP TimeWait时间

如何缩短TCP TimeWait时间,第1张

检查netfilterfilterfilterip_conntrack_tcp_timeout_fin_wait=120这样的现象实际是正常的,有时和访问量大有关,设置这两个参数:reuse是表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接;recyse是加速TIME-WAITsockets回收。netipv4tcp_syncookies=1打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。netipv4tcp_tw_recyle=1netipv4tcp_tw_reuse=1减少处于FIN-WAIT-2连接状态的时间,使系统可以处理的连接。netipv4tcp_fin_timeout=30减少TCPKeepAlive连接侦测的时间,使系统可以处理的连接。netipv4tcp_keepalive_time=1800增加TCPSYN队列长度,使系统可以处理的并发连接。netipv4tcp_max_syn_backlog=8192netipv4tcp_syncookies=1#表示开启SYNCookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;netipv4tcp_tw_reuse=1#表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;netipv4tcp_tw_recycle=1#表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭。netipv4tcp_fin_timeout=30#表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。netipv4tcp_keepalive_time=1200#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。netipv4ip_local_port_range=102465000#表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。netipv4tcp_max_tw_buckets=5000#表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,#TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。#对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,#但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死

电脑网络问题。根据你的描述,netstat查询到本机的有大量127001各种不同端口处于TIME_WAIT状态,是因为:
1,有程序或者病毒预留了这些端口。
2,系统没有优化,开启了过多无用端口。

当请求量比较大的时候,而且所有的请求都是短连接的时候。因为每一个连接在结束4次挥手的时候,都会有一个time-wait状态的socket出现。

这里描述一下4次挥手的过程

三次握手的过程

三次握手和四次挥手的过程和状态一定要记牢,努力学习。坚持就是胜利。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13515310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-23
下一篇 2023-08-23

发表评论

登录后才能评论

评论列表(0条)

保存