TCP的三次握手 四次揮手學習記錄

2021-10-23 02:55:35 字數 2668 閱讀 6528

三次握手:建立連線

——至少需要三次,保證穩定連線

client:傳送乙個帶syn(synchronize)的資料報給server。

server:接收到「發出」,並回傳乙個有syn/ack,確認資訊收到。

client:接收到server傳送的回傳,並回傳乙個有ack的資料報,表示確認。

握手結束。

通俗舉例:

—————————————————————————

客戶端:你在嗎?

伺服器:在;你在嗎?

客戶端:我在;快,上線,峽谷走起。

—————————————————————————

四次揮手:斷開連線

client:傳送乙個fin,用於關閉client到server的資料傳 輸,進入fin_wait_1(終止等待1)

server:收到fin,傳送乙個ack給client確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),server進入close_wait狀態。

server:傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態。

client:收到fin後,進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1,server進入closed狀態。

四次揮手結束。

—————————————————————————

通俗舉例

客戶端:我想說的都說完了。

服務端:好的,但是再等等我還沒說完。

服務端:好了,我想說的也說完了。

客戶端:好的,我下線了。

—————————————————————————

學習參考:

tcp的三次握手與四次揮手理解及面試題(很全面)

tcp-三次握手和四次揮手簡單理解

在tcp層,有個flags欄位,這個欄位有以下幾個標識:syn, fin, ack, psh, rst, urg.

其中,對於我們日常的分析有用的就是前面的五個字段。

它們的含義是:

其中,ack是可能與syn,fin等同時使用的,比如syn和ack可能同時為1,它表示的就是建立連線之後的響應,如果只是單個的乙個syn,它表示的只是建立連線。

————————————————————————————————————

tcp的幾次握手就是通過這樣的ack表現出來的。

——但syn與fin是不會同時為1的,因為前者表示的是建立連線,而後者表示的是斷開連線。

——rst一般是在fin之後才會出現為1的情況,表示的是連線重置。

——一般地,當出現fin包或rst包時,我們便認為客戶端與伺服器端斷開了連線;而當出現syn和syn+ack包時,我們認為客戶端與伺服器建立了乙個連線。

——psh為1的情況,一般只出現在 data內容不為0的包中,也就是說psh為1表示的是有真正的tcp資料報內容被傳遞。

——tcp的連線建立和連線關閉,都是通過請求-響應的模式完成的。

概念補充-tcp三次握手:

tcp(transmission control protocol)傳輸控制協議

——————————————————————

tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線:

位碼即tcp標誌位,有6種標示:

第一次握手:主機a傳送位碼為syn=1,隨機產生seq number=1234567的資料報到伺服器,主機b由syn=1知道,a要求建立聯機;

——第二次握手:主機b收到請求後要確認聯機資訊,向a傳送ack number=(主機a的seq+1),syn=1,ack=1,隨機產生seq=7654321的包;

——第三次握手:主機a收到後檢查ack number是否正確,即第一次傳送的seq number+1,以及位碼ack是否為1,若正確,主機a會再傳送ack number=(主機b的seq+1),ack=1,主機b收到後確認seq值與ack=1則連線建立成功。

——完成三次握手,主機a與主機b開始傳送資料。

————————————————————————————————————

————————————————————————————————————

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

——第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。完成三次握手,客戶端與伺服器開始傳送資料.

TCP三次握手 四次揮手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手 四次揮手

服務端的tcp程序先建立傳輸控制塊tcb,準備接受客戶端程序的連線請求,然後服務端程序處於listen狀態,等待客戶端的連線請求,如有,則作出響應。1 客戶端的tcp程序也首先建立傳輸控制模組tcb,然後向服務端發出連線請求報文段,該報文段首部中的syn 1,ack 0,同時選擇乙個初始序號seq ...

TCP三次握手四次揮手

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線。位碼即tcp標誌位,有6種標誌 urg urgent緊急 ack acknowledgement 確認 psh push傳送 rst...