当前位置: 首页 > article >正文

1、 什么是time_wait?如何产生的?

1、  什么是time_wait?如何产生的?

 

上状态图:

 

 

从图中可以看到,tcp连接后,在四次握手之后,先发FIN标志位的一端就会进入time_wait状态。

2、  time_wait的类型有哪些?

Time_wait分为两类:主动型time_wait和被动型time_wait

主动型:本机主动与其他服务器建立连接时的time_wait,这种情况下本机产生的随机端口号较多。

 

被动型:本机由于其他服务器主动连接过来后,产生的time_wait。这种情况下,本机ip对应开启的端口号相对固定。

 

3、  不同Time_wait对系统性能的影响。

被动型time_wait一般由于被动建立链接产生的time_wait,这种情况下一般占用的端口号比较少,产生的time_wait数也很少。几乎可以忽略不计,对服务器性能几乎没有任何影响。

主动型time_wait对服务器的影响比较大。因为服务器可利用的端口号是有限的,如果占用达到服务器端口号极限,对服务器的性能就会产生影响。

如何排查问题

4、  查看服务器time数的命令:

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

查看服务器可用端口号情况:

cat /proc/sys/net/ipv4/ip_local_port_range

如何减少time_wait数量

vi /etc/sysctl.conf


编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

 

然后执行 /sbin/sysctl -p 让参数生效。

 

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;


net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;


net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。


net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

http://www.lryc.cn/news/2419802.html

相关文章:

  • HTTP Status 404 – Not Found 问题集合
  • 进程调度
  • 几个流行而其免费的SVN服务器
  • 计算机网络实训-2 网络设备配置基础
  • 第2期 Directory Opus(文件管理工具大搜全)
  • module是什么类型_Linux驱动开发:为什么教程都不讲MODULE_DEVICE_TABLE的作用
  • Free Pascal介绍
  • 蓝牙广播报文
  • 数据产品化的数据标准化:如何实现数据的一致性和可比性
  • 3维地图的尝试
  • C和指针
  • Ubuntu下Tinyos安装步骤
  • Java中获取时间以及java.util和java.sql之间时间日期的转换
  • assert_param 错误的解决方法
  • [Mysql] LIKE与通配符
  • 利用百度点击原理提升关键词排名
  • 禁用的灰色文本框、按钮的克星
  • web应用项目开发
  • window.open()和window.showModalDialog 的使用及传值操作
  • c语言程序的生命周期(编写、预处理、编译、汇编、链接、执行)
  • 四个数列(二分查找)
  • IoU,GIoU,DIoU、CIoU详解
  • System.ArgumentException HResult=-2147024809 Message=参数无效。 Source=System.Drawing
  • 标志位寄存器与CF、OF标志位的区分
  • 史上可以针对大部分对于鼠标右键菜单的设置
  • 常用协议对应的端口号
  • Javaweb开发项目之JS知识(JavaScript)
  • 日本推出罩杯测量APP,罩杯大小一夹便知!
  • AFL实战
  • 中国家装水管十大品牌排行榜:联塑、日丰、金牛、弗锐德、美尔固等品牌上榜