tcp狀態機

查看服務器連接狀態的一些信息的命令

  1. netstat -n | grep 7002 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

 

TCP 協議的操作可以使用一個具有 11 種狀態的有限狀態機( Finite State Machine )來表示,圖 1描述了 TCP 的有限狀態機,圖中的圓角矩形表示狀態,箭頭表示狀態之間的轉換,各狀態的描述如表3-2 所示。圖中用粗線表示客戶端主動和被動的服務器端建立連接的正常過程:客戶端的狀態變遷用粗實線,服務器端的狀態變遷用粗虛線。細線用於不常見的序列,如復位、同時打開、同時關閉等。圖中的每條狀態變換線上均標有事件/動作:事件是指用戶執行了系統調用( CONNECT  LISTEN SEND  CLOSE )、收到一個報文段( SYN  FIN  ACK  RST )、或者是出現了超過兩倍最大的分組生命期的情況;動作是指發送一個報文段( SYN  FIN  ACK )或什麼也沒有(用表示)。

 


 

  1 TCP tcp狀態機


 有限狀態機

每個連接均開始於CLOSED 狀態。當一方執行了被動的連接原語( LISTEN )或主動的連接原語(CONNECT )時,它便會脫離 CLOSED 狀態。如果此時另一方執行了相對應的連接原語,連接便建立了,並且狀態變爲ESTABLISHED 。任何一方均可以首先請求釋放連接,當連接被釋放後,狀態又回到了CLOSED 

 1 TCP 狀態表

 

狀 態

描 述

CLOSED

關閉狀態,沒有連接活動或正在進行

LISTEN

監聽狀態,服務器正在等待連接進入

SYN RCVD

收到一個連接請求,尚未確認

SYN SENT

已經發出連接請求,等待確認

ESTABLISHED

連接建立,正常數據傳輸狀態

FIN WAIT 1

(主動關閉)已經發送關閉請求,等待確認

FIN WAIT 2

(主動關閉)收到對方關閉確認,等待對方關閉請求

TIMED WAIT

完成雙向關閉,等待所有分組死掉

CLOSING

雙方同時嘗試關閉,等待對方確認

CLOSE WAIT

(被動關閉)收到對方關閉請求,已經確認

LAST ACK

(被動關閉)等待最後一個關閉確認,並等待所有分組死掉

 

 

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