Netstat 鏈接狀態記錄

一般狀況下:一個正常的TCP鏈接,都會有三個階段:一、TCP三次握手;二、數據傳送;三、TCP四次揮手
注:如下說明最好能結合」圖:TCP的狀態機」來理解。
SYN:(同步序列編號,Synchronize Sequence Numbers)該標誌僅在三次握手創建TCP鏈接時有效。表示一個新的TCP鏈接請求。
ACK:(確認編號,Acknowledgement Number)是對TCP請求的確認標誌,同時提示對端系統已經成功接收全部數據。
FIN:(結束標誌,FINish)用來結束一個TCP回話.但對應端口仍處於開放狀態,準備接收後續數據。 *socket

1)、LISTEN:首先服務端須要打開一個socket進行監聽,狀態爲LISTEN. / The socket is listening for incoming connections. 偵聽來自遠方TCP端口的鏈接請求 / tcp

2)、SYNSENT:客戶端經過應用程序調用connect進行active open.因而客戶端tcp發送一個SYN以請求創建一個鏈接.以後狀態置爲SYNSENT. /The socket is actively attempting to establish a connection. 在發送鏈接請求後等待匹配的鏈接請求 / ide

3)、SYNRECV:服務端應發出ACK確認客戶端的SYN,同時本身向客戶端發送一個SYN. 以後狀態置爲SYNRECV / A connection request has been received from the network. 在收到和發送一個鏈接請求後等待對鏈接請求的確認 / .net

4)、ESTABLISHED: 表明一個打開的鏈接,雙方能夠進行或已經在數據交互了。/ The socket has an established connection. 表明一個打開的鏈接,數據能夠傳送給用戶 / code

5)、FINWAIT1:主動關閉(active close)端應用程序調用close,因而其TCP發出FIN請求主動關閉鏈接,以後進入FINWAIT1狀態./ The socket is closed, and the connection is shutting down. 等待遠程TCP的鏈接中斷請求,或先前的鏈接中斷請求的確認 / blog

6)、CLOSEWAIT:被動關閉(passive close)端TCP接到FIN後,就發出ACK以迴應FIN請求(它的接收也做爲文件結束符傳遞給上層應用程序),並進入CLOSEWAIT. / The remote end has shut down, waiting for the socket to close. 等待從本地用戶發來的鏈接中斷請求 / rem

7)、FINWAIT2:主動關閉端接到ACK後,就進入了FIN-WAIT-2 ./ Connection is closed, and the socket is waiting for a shutdown from the remote end. 從遠程TCP等待鏈接中斷請求 / 同步

8)、LASTACK:被動關閉端一段時間後,接收到文件結束符的應用程序將調用CLOSE關閉鏈接。這致使它的TCP也發送一個 FIN,等待對方的ACK.就進入了LAST-ACK . / The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原來發向遠程TCP的鏈接中斷請求的確認 / it

9)、TIMEWAIT:在主動關閉端接收到FIN後,TCP就發送ACK包,並進入TIME-WAIT狀態。/ The socket is waiting after close to handle packets still in the network.等待足夠的時間以確保遠程TCP接收到鏈接中斷請求的確認 /io

10)、CLOSING: 比較少見./ Both sockets are shut down but we still don't have all our data sent. 等待遠程TCP對鏈接中斷的確認 /

11)、CLOSED: 被動關閉端在接受到ACK包後,就進入了closed的狀態。鏈接結束./ The socket is not being used. 沒有任何鏈接狀態 / TIMEWAIT狀態的造成只發生在主動關閉鏈接的一方。

主動關閉方在接收到被動關閉方的FIN請求後,發送成功給對方一個ACK後,將本身的狀態由FINWAIT2修改成TIMEWAIT,而必須再等2倍 的MSL(Maximum Segment Lifetime,MSL是一個數據報在internetwork中能存在的時間)時間以後雙方纔能把狀態 都改成CLOSED以關閉鏈接。目前RHEL裏保持TIMEWAIT狀態的時間爲60秒。

https://blog.csdn.net/s464036801/article/details/9312331
相關文章
相關標籤/搜索