TCP端⼝状态说明ESTABLISHED、TIME_WAIT、CLOSE_WAIT ⼀. ⾸先说下tcp端⼝的⼏种状态:
1、LISTENING状态
FTP服务启动后⾸先处于侦听(LISTENING)状态。
花菜怎么切2、ESTABLISHED状态
入职体检项目有哪些
ESTABLISHED的意思是建⽴连接。表⽰两台机器正在通信。
狮王进行曲教案
3、CLOSE_WAIT
对⽅主动关闭连接或者⽹络异常导致连接中断,这时我⽅的状态会变成CLOSE_WAIT 此时我⽅要调⽤clo()来使得连接正确关闭
4、TIME_WAIT
螺纹孔标注我⽅主动调⽤clo()断开连接,收到对⽅确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会⼀直持续2MSL(即两倍的分段最⼤⽣存期),以此来确保旧的连接状态不会对新连接产⽣影响。处于TIME_WAIT状态的连接占⽤的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
土豆长芽了还能吃吗⽬前有⼀种避免TIME_WAIT资源浪费的⽅法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使⽤的,在某些情况下这个操作可能会带来错误。
西游记连环画5、SYN_SENT状态
SYN_SENT状态表⽰请求连接,当你要访问其它的计算机的服务时⾸先要发个同步信号给该端⼝,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED,此时SYN_SENT状态⾮常短暂。但如果发现SYN_SENT⾮常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多 SYN_SENT的原因。
⼆、如发现系统存在⼤量TIME_WAIT状态的连接,通过调整内核参数解决,
vim /f
编辑⽂件,加⼊以下内容:小兵电影
p_syncookies = 1
p_tw_reu = 1
p_tw_recycle = 1
p_fin_timeout = 30
西天尾扁食然后执⾏ /sbin/sysctl -p 让参数⽣效。
time_wait的设计,是基于tcp的四次挥⼿,上⾯改的那些内核参数的修改并⾮⼀劳永逸,可以参考: