TCP 三次握手 四次揮手

TCP提供與稱為帶有重傳(PAR)的肯定確認的可靠通信。傳輸層的協議數據單元(PDU)稱為段。現在,使用PAR的設備重新發送數據單元,直到收到確認。如果在接收器端接收的數據單元損壞(它使用用於錯誤檢測的傳輸層的校驗和功能檢查數據),則接收器丟棄該段。因此,發送方必須重新發送未收到肯定確認的數據單元。您可以通過上述機制實現在發送方(客戶端)和接收方(服務器)之間交換三個段以建立可靠的TCP連接。讓我們深入研究這種機制的工作原理:

TCP 三次握手 四次揮手

  • 驟1(SYN):在第一步中,客戶端想要與服務器建立連接,因此它發送一個帶有SYN(同步序列號)的段,該段告知服務器客戶端可能開始通信以及它啟動段的序列號。
  • 步驟2(SYN + ACK):服務器響應客戶端請求並設置SYN-ACK信號位。確認(ACK)表示它收到的段的響應,SYN表示它可能啟動段的序列號。
  • 步驟3(ACK):在最後部分客戶端確認服務器的響應,並且它們都建立了可靠的連接,用於啟動實際的數據傳輸。
  • 步驟1,2建立一個方向的連接參數(序列號)並確認。步驟2,3為另一個方向建立連接參數(序列號)並確認。通過這些,建立了全雙工通信。

注 - 在客戶端和服務器之間建立連接時隨機選擇初始序列號。

TCP 三次握手 四次揮手

由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這原則是當一方完成它的數據發送任務後就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數據流動,一個TCP連接在收到一個FIN後仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

  • (1) TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據傳送。
  • (2) 服務器收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將佔用一個序號。
  • (3) 服務器關閉客戶端的連接,發送一個FIN給客戶端。
  • (4) 客戶端發回ACK報文確認,並將確認序號設置為收到序號加1。


分享到:


相關文章: