1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| //获取TCP状态命令 netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' ss -ant|awk '{print $1}'|sort|uniq -c
//各个状态说明 * CLOSED 初始(无连接)状态。 * LISTEN 侦听状态,等待远程机器的连接请求 * SYN_SEND 在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包 * SYN_RECV 在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态 * ESTABLISHED 完成TCP三次握手后,主动连接端进入ESTABLISHED状态.此时,TCP连接已经建立,可以进行通信 * FIN_WAIT_1 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态 * FIN_WAIT_2 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态 * TIME_WAIT 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包 * CLOSING 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包.此时,进入CLOSING状态 * CLOSE_WAIT 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态 * LAST_ACK 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包
//主动和被动可能出现的状态 * 主动连接端可能的状态有: CLOSED,SYN_SEND,ESTABLISHED。 * 主动关闭端可能的状态有: FIN_WAIT_1,FIN_WAIT_2,TIME_WAIT * 被动连接端可能的状态有: LISTEN,SYN_RECV,ESTABLISHED * 被动关闭端可能的状态有: CLOSE_WAIT,LAST_ACK,CLOSED
|