• 幕客老师召集小伙伴
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

搞懂linux服务系统的TIME_WAIT

搞懂TCP连接关闭的四次握手原理,就知道如何处理系统为何存在大量的TIME_WAIT状态连接了。

TCP关闭连接时,的四次握手如下图:

所以:

1、进入TIME_WAIT端,一定是主动关闭连接端,及图上所说的客户端。

2、TIME_WAIT的状态是必须存在的,TCP协议不允许处于TIME_WAIT状态的连接启动一个新的同样端口的可用连接,因为TIME_WAIT状态持续2MSL,就可以保证当成功建立一个新TCP连接的时候,来自旧连接重复分组已经在网络中消逝。

 

实践结论:

在短时间如何产生很多TIME_WATI连接,是需要关注的,因为会占用大量的sock,并且影响端口的释放。并且还需要维持很长的TIME_WATI记录,是需要消耗额外资源的。

查看方式:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 

处理手段:

修改:sysctl.conf

net.ipv4.tcp_tw_reuse = 1   //允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_tw_recycle = 1  //表示开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_fin_timeout = 30 //net.ipv4.tcp_fin_timeout修改系統默认的TIMEOUT时间

 

sysctl -p

搞懂linux服务系统的TIME_WAIT

Pingbacks已打开。

引用地址

暂无评论

发表评论