暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TIME_WAIT 的那些事

小徐的技术之路 2018-06-26
231

19.2 TIME_WAIT 的那些事

19.2.1 描述

我们知道 TCP 在关闭连接的时候,主动断开的一方将处于 TIME_WAIT 状态,并将持续两倍的 MSL。这个 MSL RFC 793 中的建议是 1 分钟,但是很多系统实现都是 30 秒,所以 TIME_WAIT 的时长也就是 1 分钟。这个参数实在内核中设置的,如果想修改需要重新编译内核参数,查看可以使用ss 来查看 TIME_WAIT 的剩余存活时长(netstat 也可以 -o 参数)

19.2.2 查看TIME_WAIT

$ ss  -nta  -o  state  TIME-WAIT |  cat

Recv-Q Send-Q Local Address:Port               Peer Address:Port              

0      0      192.168.209.14:10050              192.168.203.91:46113               timer:(timewait,358ms,0)

 


 

 

在以上的参数中可以看出timewait等待的时间为358ms,之后就会被系统回收掉。在一个高性能的系统中,大概会稳定在 200ms 左右,可以通过「ss -int」命令来确认。当然,TCP Timer 除了 TIME_WAIT 这种,还有 KEEPALIVE, ON, OFF 三种类型。

19.2.3 查看KEEPALIVE状态

$ netstat  -otn

 


 

在以上中可以看出有KEEPALIVEONOFF状态的链接,其中KEEPALIVE并不是代表长连接的意思,而是 TCP 的「保活」机制,当达到这个时间系统便会回收。

 


 

KEEPALIVE

这里的 keepalive 可并不是长连接的意思,而是 TCP 的「保活」机制。

 

ON

就是 RTO 超时重传时间。

 

OFF

以上三种都不属于。


文章转载自小徐的技术之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论