TCP 三次握手四次挥手中间状态time_wait,close_wait过多的危害,过多时如何处理,为什么要等待2MSL?

一、中间状态time_wait,close_wait过多的危害?

(1)close_wait过多:建立连接会占用文件描述符;而在liunx系统中,一个进程最大可以同时打开的文件描述符是有限的,当达到上限时,服务端进程无法再创建socket来响应新的请求,导致服务不可用。

(2)time_wait过多:导致定义这个连接的四元组(客户端IP地址和端口,服务端IP地址和端口号)不能被使用,导致端口号不足,服务器无法响应。

二、如何解决?

(1)time_wait:

    客户端设置keep-alive,主动释放请求;

    服务端开启socket重用;

    扩大端口号;

    缩短time_wait时间,设置为1MSL

(2)close_wait:   主要是被动释放的一方没有主动调用closecket,可以在代码上解决。

三、为什么要等待2MSL?

(1)保证连接可靠的释放

(2)使旧的数据包在网络中过期消失,防止下一次使用同一四元组收到上一次的数据

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容