為了準確無誤地把資料送達目標處,tcp協議採用了三次握手策略。
客戶端–傳送帶有 syn 標誌的資料報–一次握手–服務端
服務端–傳送帶有 syn/ack 標誌的資料報–二次握手–客戶端
客戶端–傳送帶有帶有 ack 標誌的資料報–三次握手–服務端
三次握手的目的是建立可靠的通訊通道,說到通訊,簡單來說就是資料的傳送與接收,而三次握手最主要的目的就是雙方確認自己與對方的傳送與接收是正常的。
所以三次握手就能確認雙發收發功能都正常,缺一不可。接收端傳回傳送端所傳送的 syn 是為了告訴傳送端,我接收到的資訊確實就是你所傳送的訊號了。syn 是 tcp/ip 建立連線時使用的握手訊號。在客戶機和伺服器之間建立正常的 tcp 網路連線時,客戶機首先發出乙個 syn 訊息,伺服器使用 syn-ack 應答表示接收到了這個訊息,最後客戶機再以ack(acknowledgement[漢譯:確認字元 ,在資料通訊傳輸中,接收站發給傳送站的一種傳輸控制字元。它表示確認發來的資料已經接受無誤。 ])訊息響應。這樣在客戶機和伺服器之間才能建立起可靠的tcp連線,資料才可以在客戶機和伺服器之間傳遞。
雙方通訊無誤必須是兩者互相傳送資訊都無誤。傳了 syn,證明傳送方到接收方的通道沒有問題,但是接收方到傳送方的通道還需要 ack 訊號來進行驗證。
斷開乙個 tcp 連線則需要「四次揮手」:
任何一方都可以在資料傳送結束後發出連線釋放的通知,待對方確認後進入半關閉狀態。當另一方也沒有資料再傳送的時候,則發出連線釋放通知,對方確認後就完全關閉了tcp連線。
舉個例子:a 和 b 打**,通話即將結束後,a 說「我沒啥要說的了」,b回答「我知道了」,但是 b 可能還會有要說的話,a 不能要求 b 跟著自己的節奏結束通話,於是 b 可能又巴拉巴拉說了一通,最後 b 說「我說完了」,a 回答「知道了」,這樣通話才算結束。
tcp 四次揮手 TCP的三次握手和四次揮手
三次握手 第一次握手 客戶端傳送syn包 syn x 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack x 1 同時自己也傳送乙個syn包 syn y 即syn ack包,此時伺服器進入syn recv狀態 第三次握手 客戶端收到伺服...
TCP三次握手和四次揮手
一 tcp三次握手 three way handshake 1 tcp三次握手的作用 三次握手的目的是連線伺服器指定埠,建立tcp連線,並同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。在socket程式設計中,客戶端執行connect 時,將觸發三次握手。2 tcp三次握手過程 第一步 ...
TCP三次握手和四次揮手
三次握手 四次揮手 需四次揮手原因 由於tcp的半關閉特性,tcp連線時雙全工 即資料在兩個方向上能同時傳遞 因此,每個方向必須單獨的進行關閉。這個原則就是 當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向上的連線。當一端收到乙個fin後,它必須通知應用層另一端已經終止了那個方向的資料傳...