TCP爲什麽需要3次握手?

程序員小迷 2024-04-18 20:51:13

一、3次握手過程

客戶端向服務端發送一個表示建立連接的SYN報文段,服務端從IP數據報中提取出TCP SYN報文段,爲該TCP連接分配需要的緩存和變量,並向客戶端發送表示允許連接的報文段ACK。客戶端在收到ACK報文段之後,也要給該連接分配緩存和變量,客戶端向服務器再發送一個報文段ACK,表示對允許連接的報文段進行了確認。

自此完成一次TCP連接。

二、3次握手的必要性

1.確認雙方的發送和接收能力:通過3次握手,客戶端和服務器可以確認彼此都具備發送和接收數據的能力。這是建立可靠連接的基礎。

2.同步初始序列號:TCP協議通過序列號來標識發送的數據包,確保數據的順序性和完整性。在3次握手過程中,雙方會交換初始序列號,以便後續的數據傳輸能夠正確地進行。

3.避免已失效的連接請求報文段突然又傳送到了服務端:這種情況可能發生在網絡擁堵或者延遲較大的情況下。通過3次握手,服務端可以確認客戶端的請求是有效的,而不是一個過時的請求。

第3次握手可以避免由于客戶端延遲的連接請求,使得服務端無故再次建立連接。

致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等編程技術的技巧經驗分享。

若作品對您有幫助,請關注、分享、點贊、收藏、在看、喜歡。您的支持是我們爲您提供幫助的最大動力。

0 阅读:5

程序員小迷

簡介:致力于Android、C等編程技術的技巧經驗分享