TCP三次握手服務器
一、 A客戶機對於B服務器發送請求,此時同步位SYN=1,ACK=0,代表請求創建鏈接,請B迴應,圖中意思是A用自身的第x個包向B發出創建鏈接請求;ide
二、 B服務器收到A請求,迴應鏈接,發出贊成鏈接,用SYN=1,ACK=1代表贊成創建鏈接,下次A給我發ACK=1的報文,圖中意思是B收到請求後用自身的第y個包向A發出迴應,收到A的第x個包,並但願下次收到A的第x+1個包;blog
三、 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,到此通訊創建成功it
TCP四次揮手class
一、 A和B處於鏈接中,用自身的第u個數據包發出關閉申請,此時FIN=1,ACK=0,處於終止等待1狀態,半關閉狀態請求
二、 B收到A第u個包,以前可能有未傳送完的數據,所以數據還在傳送中,B轉換爲關閉等待狀態;im
三、 傳送完成後,A處於終止等待2狀態,B給A發送結束報文FIN=1,ACK=1,須要A的第u+1個包做爲ACK=1標誌的包給B迴應,這次B最後確認狀態通信
四、 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 雙方同時嘗試關閉傳輸鏈接,等待對方確認