Netstat 狀態分析

From:http://www.cnblogs.com/eoiioe/archive/2009/06/17/1504757.html



Netstat狀態分類

用netstat -an命令查看!再stat下面有一些英文,簡單說一下這些英文具體都代表什麼:


LISTEN:(Listening for a connection.)偵聽來自遠方的TCP端口的連接請求


SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再發送連接請求後等待匹配的連接請求


SYN-RECEIVED:(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和發送一個連接請求後等待對方對連接請求的確認


ESTABLISHED:(Connection established.)代表一個打開的連接


FIN-WAIT-1:(Closed; sent FIN.)等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認


FIN-WAIT-2:(Closed; FIN is acknowledged; awaiting FIN.)從遠程TCP等待連接中斷請求


CLOSE-WAIT:(Received FIN; waiting to receive CLOSE.)等待從本地用戶發來的連接中斷請求


CLOSING:(Closed; exchanged FIN; waiting for FIN.)等待遠程TCP對連接中斷的確認


LAST-ACK:(Received FIN and CLOSE; waiting for FIN ACK.)等待原來的發向遠程TCP的連接中斷請求的確認


TIME-WAIT:(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認


CLOSED:(Connection is closed.)沒有任何連接狀態


TCP連接建立


首先要說明的是要明確TCP連接建立的過程需要3次握手,下面舉例說明各種狀態存在的時刻:


1. 首先在服務器A上開啓FTP服務,開始偵聽來自遠端TCP端口的連接請求,這個時候查看服務器A狀態爲:LISTENING


2. 在客戶端B上向A發送FTP連接請求,這個時候數據包同步位置1,這是TCP三次握手的第一步。在發送後沒收到確認時,在客戶端B上其狀態爲:SYN-SENT。此時客戶端B啓動連接定時器。如果在75秒內沒有收到應答,則放棄連接建立。


3. 在服務器A上收到從B上發送的SYN同步包後,確認,然後再向B發送SYN的同步包,此數據包同時將TCP標記中的同步位和確認位置1,它既對第一步中的客戶端同步數據包進行確認,表示願意與客戶端同步,同時再對客戶端主機進行同步請求,這是TCP連接的第一步。這個時候在服務器A上,狀態爲:SYN-RECEIVED。此時服務器A啓動連接定時器。如果在75秒內沒有收到應答,則放棄連接建立。


4. 在客戶端B上接收到從A上發過來的確認同步包後進行確認,此數據包中將TCP標記中的確認位置1,表示這是一個確認數據包,此時在客戶端B狀態轉換爲:ESTABLISHED


5. 服務器A接收到從B發過來的確認包後,狀態轉換爲:ESTABLISHED


此時TCP連接正式建立。

TCP連接關閉


6. 應用程序在在連接不需要的時候,通過客戶端B向服務器A發送的終止信息的FIN包後,客戶端B處於FIN-WAIT-1狀態。


7. 從服務器A接收到客戶端B發送的終止數據包,它告訴客戶端B已成功接收客戶端的上數據包,此時等待應用程序來關閉連接,此時服務器A進入CLOSE_WAIT狀態。


8. 客戶端B接收到帶有確認位的數據包後,對此進行確認,同意關閉TCP連接此時客戶端B轉移到FIN-WAIT-2狀態。當連接從FIN-WAIT-1狀態轉移到FIN-WAIT-2狀態時,將一個FIN-WAIT-2定時器設置爲10分鐘。


9. 服務器A在應用程序同意終止連接後,向客戶端B發送終止FIN包,此時服務器狀態轉爲LAST-ACT。


10. 客戶端B在接收到從服務器A發送的終止包後,同意終止連接,然後再向服務器端發送確認信息,此時客戶端B轉向TIME-WAIT狀態。當連接進入TIME-WAIT狀態時,該定時器被激活。


11. 服務端A在收到客戶端B的確認後,關閉連接,服務器A狀態轉向CLOSED。


12. 客戶端B在TIME-WAIT定時器超時時,與該連接相關的內核數據塊被刪除,連接終止,轉向CLOSED狀態。


此時TCP連接正式關閉。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章