【計算機網絡】TCP/IP 狀態轉換過程

原文:https://blog.csdn.net/xia744510124/article/details/52263514 

客戶端 
SYN_SENT->ESTABLISHED 
服務端 
LISTEN->SYN_RCVD->ESTABLISHED 
上面是三次握手的狀態遷移: 
第一握手:客戶端發給服務端SYN=1,seqNo=x(代表發送起始字節編號) 
第二次握手:服務端接受到SYN=1,seqNo=x知道客戶端發起了連接請求;因此回送ACK=1(告訴客戶端連接請求接收到),ackNo=x+1(希望接收下一個字節的編號),seqNo=y(發送給客戶端起始字節編號) 
第三次握手:客戶端接回應,又回送一個ACK=1,ackNo=y+1服務端表示收到它的確認請求 
三次握手後客戶端與服務端就可以進行數據傳輸了! 
有始必有終,始於三次握手,終於四次揮手,爲什麼是四次揮手呢?因爲TCP/IP是全雙工連接,雙方都能接收數據,也能發送數據,下面看看四次揮手的狀態遷移: 
主動關閉方(客戶端或者服務端) 
FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT 
被動關閉方 
CLOSE_WAIT->LAST_ACK->CLOSE 
當主動關閉方發送完FIN(停止發送數據,但是還可以接收數據)後便進入FIN_WAIT_1狀態,被動關閉方接收到FIN,回送一個ACK,之後便進入到CLOSE_WAIT;主動關閉方接收到ACK便進入到FIN_WAIT_2(也稱半關閉狀態),之後當被動關閉端發送FIN給主動關閉端便進入LAST_ACK狀態,主動關閉端接收到FIN之後,發送一個ACK便進入到TIME_WAIT狀態(它持續的時間爲2MSL,報文傳輸的最大時長爲1MSL,爲的是當ACK發送出去被動關閉端沒有接收到,能夠再次發送) 
附一張轉換圖: 

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