TCP
TIME_WAIT status is designed to ensure that packets associated with one (older/closed) connection (that are delayed in the network) are not accepted by later connections between the same hosts (host/port pair). The end that sends first FIN (signals active close) goes in TIME_WAIT state.
A high number of TIME_WAIT connections may be due to lots of “short lived connections”.
CLOSE_WAIT indicates that the other side of the connection (pear) has closed the connection (passive close). TIME_WAIT indicates that this side has closed the connection (active close).
to see the current time wait
cat /proc/sys/net/ipv4/tcp_fin_timeout
you can reduce it with
echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
To check which connections are in what state:
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
Count closed connections
netstat -nat | grep ESTAB | wc -l;netstat -nat | grep TIME | wc -l;netstat -nat | grep CLOSE | wc -l
Ref:
https://tools.ietf.org/html/draft-faber-time-wait-avoidance-00
ss -tan 'sport = :80' | awk '{print $(NF)" "$(NF-1)}' | sed 's/:[^ ]*//g' | sort | uniq -c