文件名称:减少Linux服务器过多的TIME_WAIT
文件大小:17KB
文件格式:DOCX
更新时间:2015-11-07 12:51:05
减少 Linux 服务器过多的 TIME_WAIT
减少Linux服务器过多的TIME_WAIT TIME_WAIT状态的意义: 客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口 状态为TIME_WAIT 是不是所有执行主动关闭的socket都会进入TIME_WAIT状态呢? 有没有什么情况使主动关闭的socket直接进入CLOSED状态呢? 主动关闭的一方在发送最后一个 ack 后 就会进入 TIME_WAIT 状态 停留2MSL(max segment lifetime)时间 这个是TCP/IP必不可少的,也就是“解决”不了的。 也就是TCP/IP设计者本来是这么设计的 主要有两个原因 1。防止上一次连接中的包,迷路后重新出现,影响新连接 (经过2MSL,上一次连接中所有的重复包都会消失) 2。可靠的关闭TCP连接 在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发 fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以 主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。 TIME_WAIT 并不会占用很大资源的,除非受到攻击。