TCP三次握手(連接),四次揮手(斷開連接)

TCP三次握手(連接),四次揮手(斷開連接)

三次握手過程理解

在連接過程中涉及到的專業術語.

 	序列號seq:佔4個字節,用來標記數據段的順序,TCP把連接中發送的所有數據字節都編上一個序號,第一個字節的編號由本地隨機產生;給字節編上序號後,就給每一個報文段指派一個序號;序列號seq就是這個報文段中的第一個字節的數據編號。

	確認號ack:佔4個字節,期待收到對方下一個報文段的第一個數據字節的序號;序列號表示報文段攜帶數據的第一個字節的編號;而確認號指的是期望接收到下一個字節的編號;因此當前報文段最後一個字節的編號+1即爲確認號。

	確認ACK:佔1位,僅當ACK=1時,確認號字段纔有效。ACK=0時,確認號無效

    同步SYN:連接建立時用於同步序號。當SYN=1,ACK=0時表示:這是一個連接請求報文段。若同意連接,則在響應報文段中使得SYN=1,ACK=1。因此,SYN=1表示這是一個連接請求,或連接接受報文。SYN這個標誌位只有在TCP建產連接時纔會被置1,握手完成後SYN標誌位被置0。

    終止FIN:用來釋放一個連接。FIN=1表示:此報文段的發送方的數據已經發送完畢,並要求釋放運輸連接

    PS:ACK、SYN和FIN這些大寫的單詞表示標誌位,其值要麼是1,要麼是0;ack、seq小寫的單詞表示序號。

在這裏插入圖片描述

1:A:---------(syn=1,seq=x)--------->:B

2:A:<---------(syn=1,ACK=1,ack=x+1,seq=y)---------:B

3:A:----------(ACK=1,seq=x+1,ack=y+1)--------->:B

無非就是每一次 接受方的確認序號(期待收到對方下一個報文段的第一個數據字節的序號)爲上一次發送方的發送序號+1
除第一次外,發送方的發送序號爲上一次接收方希望接受下一個數據的序號(確認號ack)

四次揮手過程理解

在這裏插入圖片描述

四次揮手釋放連接時,等待2MSL的意義?
	第 一,爲了保證A發送的最有一個ACK報文段能夠到達B。這個ACK報文段有可能丟失,因而使處在LAST-ACK狀態的B收不到對已發送的FIN和ACK 報文段的確認。B會超時重傳這個FIN和ACK報文段,而A就能在2MSL時間內收到這個重傳的ACK+FIN報文段。接着A重傳一次確認。
	第二,就是防止上面提到的已失效的連接請求報文段出現在本連接中,A在發送完最有一個ACK報文段後,再經過2MSL,就可以使本連接持續的時間內所產生的所有報文段都從網絡中消失。
 

以上在參考網上博客的基礎上,僅作爲個人知識積累,如有侵權聯繫刪除。不足之處,望指出共同學習。

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