TCP連線的三路握手

2021-06-27 06:29:32 字數 695 閱讀 7860

本文內容參考《unix網路程式設計》,大概描述了tcp連線的三次握手過程,這是我看到的最清楚的描述,記錄在這裡,希望能幫助到大家對於tcp連線過程的理解。

傳輸控制協議(tcp)是tcp/ip協議簇裡非常重要的乙個協議。它提供客戶與伺服器之間的連線,並且提供可靠的資料傳輸功能。關於這個協議的具體規定,請參考相關文獻。這裡簡單講述一下三路握手。

建立乙個tcp連線時會發生以下幾個過程:

1.伺服器必須做好接受外來的連線的準備。這個過程通過呼叫socket、bind和listen這三個函式來完成。

2.客戶通過呼叫connect發起主動開啟。這個過程中,客戶傳送乙個syn分節告訴伺服器,客戶將在連線中傳送資料的初始序列號。

3.伺服器確認客戶的syn,同時自己傳送乙個syn,包含伺服器將在該連線中傳送的資料的初始序列號。

4.客戶確認伺服器的syn。

非常形象的乙個描述:

建立tcp連線就好比乙個**系統。socket函式等同於有**可用。bind函式是在告訴別人你的**號碼,這樣他們可以給你打**。listen函式是開啟**鈴聲,這樣當有外來呼叫時你可以聽到。connect函式要求我們知道對方的號碼並撥打它。accept函式就好比是被呼叫者接聽**了。當呼叫者聽到對方接聽之後,就相當於最後一次確認,然後就可以通話了。

我理解的三路握手

建立乙個tcp連線時會發生三路握手的情形。1 一般都是客戶主動發起連線,稱為 主動開啟 active open。客戶先呼叫socket函式建立乙個套接字,做了相應的初始化工作之後,然後呼叫connect函式向相應的伺服器發起連線,此時客戶tcp傳送了乙個syn同步分節,這個同步分節告訴伺服器,客戶將...

三路握手和四次揮手

這是我在書上拍的圖大家湊合看,圖雖不漂亮但是內容好啊 伺服器呼叫socket,bind,listen,後處於listen狀態 楨聽來自遠方tcp埠的連線請求 稱之為被動開啟。客戶端通過呼叫connect激發三路握手,呼叫connect後處於syn sent狀態 在傳送連線請求後等待匹配的連線請求 這...

TCP三路握手,本質是乙個通訊原理相關的問題

在通訊系統中,最基本的資訊的傳遞都需要兩步,傳送方傳送的訊息和對方的回覆確認 a b send,b a reply ack 如果多接觸一下其他行業的通訊流程和規範,例如航空 鐵路排程,就會明白這一點。tcp 建聯,本質上需要傳遞兩條資訊 a b 的初始 syn 號,b a 的初始 syn 號,那麼理...