關於TCP的三次握手與四次揮手的探索

2021-10-07 06:24:26 字數 919 閱讀 4145

所有引用自:

三次握手的過程問題

為什麼要進行三次握手?

三次握手就是要保證雙方都具有傳送和接收的能力,同時也是為了保證連線的可靠性,如果只有兩次握手,那麼可能存在問題,當網路延時較大的時候,客戶端向伺服器傳送請求,此時,網路延時較大,伺服器過了很長時間才收到請求,此時客戶端以為連線失敗了,但是實際上伺服器收到請求後已經連線上了,這就白白浪費了伺服器的資源。三次握手就能解決此類問題。

如果連線成功後,客戶端突然斷開怎麼辦?

tcp還設有保活計時器,每次客戶端向服務端傳送請求的時候,都會重置保活計時器,保活計時器的時間是2小時,一旦兩個小時後客戶端沒有給服務端傳送請求,那麼服務端會每隔75s向客戶端傳送探測性報文,連續傳送10次,如果10次都沒有響應,那麼服務端斷開連線。

四次揮手的過程

先請求斷開連線的一方可能是伺服器,也可能是客戶端,上述例子採用的是客戶端請求斷開連線

問題為什麼是4次揮手?

採用4次揮手的原因就是要保證對方想要繼續傳送的資料一定要全部傳送完。

為什麼還要等待2msl?

當伺服器請求斷開後,客戶端一定要響應,只有伺服器收到了客戶端的響應,雙方才能徹底斷開連線,但是由於網路原因,可能客戶端響應給伺服器的徹底斷開連線可能伺服器沒收到,那麼伺服器就會啟用失敗重傳機制?等2msl的目的就是防止響應給伺服器的資料丟失。

關於TCP三次握手四次揮手

三次握手 1 a的tcp客戶程序首先建立傳輸控制模組tcb,同步位syn 1 初始序列號seq x,進入syn sent 同步已傳送 階段 2 b收到請求報文,同意建立連線,向a傳送確認 syn ack都置1 確認號是ack x 1,初始序列號seq y 進入syn rcvd 同步已收到 狀態 3 ...

Tcp三次握手與四次揮手

tcp三次握手 四次揮手 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 syn 同步序列編號 synchronize sequence numbers 第二次...

TCP三次握手與四次揮手

也許三次握手你會經常聽到,但你知道三次握手的真正意義嗎,為什麼需要三次握手呢?首先我們必須明白tcp是面向連線的協議,無論哪乙個方向在傳送資料之前,都必須先在雙方之間建立連線。這一點與udp協議是不一樣的,udp在傳送資料報之前是不需要建立連線的。建立tcp連線的過程中,通訊的雙方需要互相發報文進行...