三次握手和四次揮手

2022-03-18 20:07:42 字數 1115 閱讀 5375

三次握手,建立連線。

反饋機制

客戶端往服務端傳送請求,服務端必須返回響應,告訴客戶端收到了請求,並且將伺服器端的資料一併返回給客戶端。

ps:即一次請求,必須要有一次響應

缺點:第一次握手

客戶端向服務端傳送連線請求報文段。該報文段的頭部中syn=1,ack=0,seq=x。請求傳送後,客戶端便進入syn-sent狀態。

第二次握手

服務端收到連線請求報文段後,如果同意連線,則會傳送乙個應答:syn=1,ack=1,seq=y,ack=x+1。

該應答傳送完成後便進入syn-rcvd狀態。

第三次握手

當客戶端收到連線同意的應答後,還要向服務端傳送乙個確認報文段,表示:服務端發來的連線同意應答已經成功收到。

報文段的頭部為:ack=1,seq=x+1,ack=y+1。

客戶端發完這個報文段後便進入established狀態,服務端收到這個應答後也進入established狀態,此時連線的建立完成!

為什麼連線建立需要三次握手,而不是兩次握手?

防止失效的連線請求報文段被服務端接收,從而產生錯誤。

若建立連線只需兩次握手,客戶端並沒有太大的變化,仍然需要獲得服務端的應答後才進入established狀態,而服務端在收到連線請求後就進入established狀態。此時如果網路擁塞,客戶端傳送的連線請求遲遲到不了服務端,客戶端便超時重發請求,如果服務端正確接收並確認應答,雙方便開始通訊,通訊結束後釋放連線。此時,如果那個失效的連線請求抵達了服務端,由於只有兩次握手,服務端收到請求就會進入established狀態,等待傳送資料或主動傳送資料。但此時的客戶端早已進入closed狀態,服務端將會一直等待下去,這樣浪費服務端連線資源。

四次揮手,斷開連線。

來自為知筆記(wiz)

三次握手和四次揮手

三次握手和四次揮手如圖所示 為什麼是三次握手而不是兩次 因為當客戶端第傳送syn到服務端的時候,如果有幾次請求是因為網路等原因延時等情況的時候,如果沒有第三次握手的確定。服務端就會認為客戶端重寫傳送請求了,就會去開啟連線相應。為什麼關閉連線的時候是四次握手而不是三次?當客戶端傳送請求關閉連線的時候,...

三次握手和四次揮手

tcp三次握手和四次揮手的全過程 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種表示 syn synchronous建立連線 ack acknowledgement 表示響應 確認 psh push表示有data資料傳輸 fin fi...

三次握手和四次揮手

1.在學習tcp協議的時候,總是在強調三次握手,那麼為什麼是三次?而不是兩次或者四次?強迫症表示黑人問號?今天我們就來分析一下為什麼是三次,下圖是一次tcp通訊的時序 在這個例子中,首先客戶端主動發起連線 傳送請求,然後伺服器端響應請求,然後客戶端主動關閉連線。兩條豎線表示通訊的兩端,從上到下表 示...