TIME_WAIT Close_wait

面试很爱问的一个问题是:

  服务器中存在大量的TIME_WAIT是什么原因?

    TIME_WAIT状态出现在主动关闭连接的一方。

(所以是由两个可能的原因?:     1) 作为服务端 ,主动关闭端口

              2)作为客户端,主动关闭端口 

)

  如何解决TIME_WAIT过多?

    快速回收和重用那些TIME_WAIT资源。(也就是不等2msl了??)

 

 

  服务器保持了大量CLOSE_WAIT状态的原因

    CLOSE_WAIT出现在被动关闭的一方。

【思考:首先要注意大量。当作为服务端的时候,是不可能出现大量的!!!因为服务端只会占用一个端口,一致在监听一个端口!!大量出现在客户端中!!!!!

    服务端的 端口的状态,指的是它的 fd的状态吗????那这样会出现大量的状态   ( 对,其实指的就是 fd) 

  】

(原因:   1)作为服务端  被动关闭    (代码写的不好  没有发送关闭请求给客户端   (比如没有编写处理客户端异常断开的代码))、  

        而且这个CLOSE_WAIT会一直存在,一直占用着资源(就是fd资源)

     2)作为客户端  被动关闭      (没有发送关闭请求给服务端)

 

 

 

参考文档:

https://blog.csdn.net/bingqingsuimeng/article/details/51210841?utm_source=blogxgwz10

https://www.zhihu.com/search?type=content&q=%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%9C%89%E5%A4%A7%E9%87%8F%E7%9A%84TIME_CLOSE

 

posted @ 2020-08-01 11:50  你眼里的星辰  阅读(82)  评论(0)    收藏  举报