TCP IP協議三次握手和四次揮手

2021-10-20 07:44:34 字數 1471 閱讀 2575

偶爾聽到同學在談論三次握手什麼的時候,我卻一點也沒印象,過了幾天才想起來時候學習一下了

概念介紹

tcp(transmission control protocol)網路傳輸控制協議,是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,資料傳輸前建立連線的工作要經過三次握手,資料傳輸後斷開連線的工作要經過四次揮手

tcp標誌位

三次握手建立連線闡述:

第一次握手:客戶端要和服務端進行通訊,首先要告知服務端一聲,遂發出乙個syn=1 (建立連線)的連線請求訊號

第二次握手:當服務端接收到客戶端的連線請求,此時要給客戶端乙個確認資訊,返回乙個確認資訊(ack),並發起建立連線的請求(syn)

第三次握手:當客戶端收到了服務端的確認連線資訊後,確認(ack),即連線成功

到此整個建立連線的過程已經結束,接下來就是資訊傳輸的過程了。

四次揮手斷開連線闡述:

第一次揮手:雙方交流的差不多了,此時客戶端也已經結尾了,接下來要斷開通訊連線,所以給客戶的傳送fin(結束)訊號,此時自身形成等待結束連線的狀態。

第二次揮手:服務端知道客戶端已經沒話說了,服務端此時還有兩句心裡話要給客戶端說,「我知道你說完了(ack),我再給你說兩句,&*……%¥」。

第三次揮手:此時客戶端洗耳恭聽繼續處於等待結束的狀態,伺服器端也說完了,自身此時處於等待關閉連線的狀態,並對告訴客戶端,「我說完了,咱們斷了吧(fin)」。

第四次揮手:客戶端收知道服務端也說完了,也要告訴服務端一聲(ack),因為連線和斷開要雙方都按下關閉操作才能斷開,客戶端同時又為自己定義乙個定時器,因為不知道剛才說的這句話能不能準確到達服務端(網路不穩定或者其他因素引起的網路原因),預設時間定為兩個通訊的最大時間之和,超出這個時間就預設伺服器端已經接收到了自己的確認資訊,此時客戶端就關閉自身連線,伺服器端一旦接收到客戶端發來的確定通知就立刻關閉伺服器端的連線。

問題:1.為什麼斷開鏈結的時候客戶端設定的定時器時間等待要2msl(兩個通訊報文的最大時間)?

這個問題也很好理解,當客戶端最終告訴伺服器端斷開確認的時候,他不知道自己的發出的指令是否能準確的一次性被伺服器接收。假如伺服器沒有接收到(這已經耗費了乙個報文的最大通訊時間了),伺服器端將會重新發起乙個結束通話的指令(fin)到客戶端,客戶端又接收到了伺服器發來的結束通訊指令將繼續給伺服器進行乙個確認,有人會說那要是客戶端發出的確認資訊服務端沒收到,而服務端重發的斷開指令客戶端也沒收到怎麼辦,說實話我也無奈,遇到這種情況咱們乾脆認為網確實不行了。

2.為什麼建立連線要三次握手而斷開連線要四次揮手?

說起這個,打乙個比喻,目前祖國正在高速發展高鐵,建立連線的過程正如上海到北京打通一條高鐵線,tcp通訊過程是乙個全雙工模式,即在這條高鐵線上要有兩個軌道,即能從上海發車到北京又能從北京發車到上海,甚至兩邊可以同時發車。所以斷開連線前提就是要保證兩條軌道都沒有車,然後雙方才能各自發起斷開動作。

三次握手和四次揮手 TCP三次握手和四次揮手的理解

相比較於udp傳輸協議,tcp傳輸協議被認為是安全可靠的,這是由於tcp協議的三次握手和四次揮手保證了資料傳輸的安全性。tcp報文格式簡介 要了解tcp協議的三次握手和四次揮手,需要先了解在tcp協議中請求和響應的資料報報文格式。在報文中有幾個值得注意的字段 1 序號 seq序號,佔32位,用來標識...

TCP三次握手和四次揮

一 tcp報文格式 在了解三次握手和四次揮手之前,首先要知道tcp報文內部包含了哪些東西。報文主要段的含義 序號 seq 用來標記資料段的順序,確保tcp傳輸有序。ack 確認 確認序號標誌,ack 1表示確認號字段有效,ack 0表示確認序號無效。syn 同步 連線請求序號標誌,用於建立連線。sy...

TCP IP協議三次握手 四次揮手

tcp是一種面向連線的端到端的可靠傳輸協議。一 客戶端傳送乙個連線請求,傳送乙個隨機數x,這時客戶端的埠狀態變為syn sent狀態。二 服務端收到客戶端發起的連線請求,埠狀態變為listen狀態,服務端回覆客戶端發起的請求,把收到的隨機數x 1返回確認收到,在傳送乙個自己生成的隨機數y給客戶端。此...