1. TIME_WAIT
客户端主动关闭连接
进入TIME_WAIT状体后超时时间设为2MSL
2. CLOSE_WAIT
服务端主动关闭连接
注意:
1. 如果客户端频繁的建立连接(比如上传下载文件服务器上的千万级别的文件)时,可能有大量的TIME_WAIT状态的连接端口。导致程序新的连接端口不能分配(“Cannot assign requested address”)
vi /etc/sysctl.conf
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1 #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
修改完之后执行/sbin/sysctl -p让参数生效
2. 客户端正常关闭的TCP连接状态是TIME_WAIT; 非正常关闭(程序,JVM崩溃,连接池非正常关闭)的是RESET,Cancelled