三次握手是tcp連線的建立過程。在握手之前,主動開啟連線的客戶端結束close階段,被動開啟的伺服器也結束close階段,並進入listen階段。隨後進入三次握手階段:
① 首先客戶端向伺服器傳送乙個syn包,並等待伺服器確認,其中:
② 伺服器接收到客戶端發來的syn包後,對該包進行確認後結束listen階段,並返回一段tcp報文,其中:
③ 客戶端接收到傳送的syn+ack包後,明確了從客戶端到伺服器的資料傳輸是正常的,從而結束syn-sent階段。並返回最後一段報文。其中:
① 首先客戶端向伺服器傳送一段 tcp 報文表明其想要釋放 tcp 連線,其中:
② 伺服器接收到客戶端請求斷開連線的 fin 報文後,結束 established 階段,進入 close-wait 階段並返回一段 tcp 報文,其中:
③ 伺服器端在發出 ack 確認報文後,伺服器端會將遺留的待傳資料傳送給客戶端,待傳輸完成後即經過 close-wait 階段,便做好了釋放伺服器端到客戶端的連線準備,再次向客戶端發出一段 tcp 報文,其中:
隨後伺服器端結束 close-wait 階段,進入 last-ack 階段。並且停止向客戶端傳送資料。
④ 客戶端收到從伺服器發來的 tcp 報文,確認了伺服器已經做好釋放連線的準備,於是結束 fin-wait-2 階段,進入 time-wait 階段,並向伺服器傳送一段報文,其中:
隨後客戶端開始在 time-wait 階段等待 2 msl。伺服器端收到從客戶端發出的 tcp 報文之後結束 last-ack 階段,進入 closed 階段。由此正式確認關閉伺服器端到客戶端方向上的連線。客戶端等待完 2 msl 之後,結束 time-wait 階段,進入 closed 階段,由此完成「四次揮手」。
三次握手 四次揮手和TIME WAIT機制
乙個tcp連線的建立是通過三次握手來實現的 1.a syn b 假如伺服器b和客戶機a通訊.當a要和b通訊時,a首先向b發乙個syn synchronize 標記的包,告訴b請求建立連線.注意 乙個 syn包就是僅syn標記設為1的tcp包 參見tcp包頭resources 認識到這點很重要,只有當...
三次握手和四次揮手
三次握手和四次揮手如圖所示 為什麼是三次握手而不是兩次 因為當客戶端第傳送syn到服務端的時候,如果有幾次請求是因為網路等原因延時等情況的時候,如果沒有第三次握手的確定。服務端就會認為客戶端重寫傳送請求了,就會去開啟連線相應。為什麼關閉連線的時候是四次握手而不是三次?當客戶端傳送請求關閉連線的時候,...
三次握手和四次揮手
tcp三次握手和四次揮手的全過程 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種表示 syn synchronous建立連線 ack acknowledgement 表示響應 確認 psh push表示有data資料傳輸 fin fi...