TCP協議三次握手和四次揮手

TCP三次握手

image.png

1、 A客戶機對於B服務器發送請求,此時同步位SYN=1,ACK=0,表明請求建立連接,請B迴應,圖中意思是A用自身的第x個包向B發出建立連接請求;

2、 B服務器收到A請求,迴應連接,發出同意連接,用SYN=1,ACK=1表明同意建立連接,下次A給我發ACK=1的報文,圖中意思是B收到請求後用自身的第y個包向A發出迴應,收到A的第x個包,並希望下次收到A的第x+1個包;

3、 A客戶機收到B服務器y包,用自身第X+1個包作爲ACK=1的包給B,同時希望收到B自身的第y+1個包迴應A,並希望下次收到B的第y+1個包,此時證明A可以發送以及接收B的包,B也可以發送和接收A的包,通信建立成功。


簡單概況:A用自身的一個數據包向B請求建立連接,此時SYN=1,ACK=0,也可以理解A希望收到B的ACK=0的包;B收到請求後用自身的一個數據包向A迴應,可以理解爲用自身的這個數據包作爲ACK=0發給了A,並要求A下次發ACK=1的包;A收到後用自身的數據包作爲ACK=1的包迴應了A,到此通信建立成功

 

TCP四次揮手

image.png

1、 A和B處於連接中,用自身的第u個數據包發出關閉申請,此時FIN=1,ACK=0,處於終止等待1狀態,半關閉狀態

2、 B收到A第u個包,之前可能有未傳送完的數據,因此數據還在傳送中,B轉換爲關閉等待狀態;

3、 傳送完成後,A處於終止等待2狀態,B給A發送結束報文FIN=1,ACK=1,需要A的第u+1個包作爲ACK=1標誌的包給B迴應,此次B最後確認狀態

4、 A收到迴應發出第u+1個包表明收到,此時切換爲時間等待狀態,爲了接收沒有傳送完的數據,時間等待爲2倍的文件傳輸速率

 

總而言之,四次揮手比三次握手多了一次數據傳輸的過程,但狀態有所差異,11次具體有限狀態機我們還是需要了解

再次附上11種狀態

CLOSED 沒有任何連接狀態

LISTEN 偵聽狀態,等待來自遠方TCP端口的連接請求

SYN-SENT 在發送連接請求後,等待對方確認

SYN-RECEIVED 在收到和發送一個連接請求後,等待對方確認

ESTABLISHED 代表傳輸連接建立,雙方進入數據傳送狀態

FIN-WAIT-1 主動關閉,主機已發送關閉連接請求,等待對方確認

FIN-WAIT-2 主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求

TIME-WAIT 完成雙向傳輸連接關閉,等待所有分組消失

CLOSE-WAIT 被動關閉,收到對方發來的關閉連接請求,並已確認

LAST-ACK 被動關閉,等待最後一個關閉傳輸連接確認,並等待所有分組消失

CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認

 


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