TCP三次握手

2021-09-10 02:32:14 字數 1696 閱讀 9750

16位源埠號:報文的傳送傳送方的程序埠值

16位目的埠號:報文接收方的程序埠值

32位序號

32位確認號

4位頭部長度:用來表示報文首部的長度。

6位保留字段:作為保留字段,暫時沒什麼用處

標誌位

16位視窗大小:tcp通過滑動視窗的概念來進行流量控制。由於視窗由16bit定義,所以可以提供的最大緩衝區為65535。

16位校驗和

16位緊急指標:是乙個正的偏移量。它和序號欄位的值相加表示最後乙個緊急資料的下一位元組的序號。

協議的實現為了提高效率,往往在應用層傳來少量的資料時不馬上傳送,而是等到資料緩衝區裡有了一定量的資料時才一起傳送,但有些應用本身資料量並不多,而且需要馬上傳送,這時,就用緊急指標,這樣資料就會馬上傳送,而不需等待有大量的資料。

第一次握手:主機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開始傳送資料。

**三次握手

第一次握手的標誌位

我們可以看到標誌位裡面只有個同步位,也就是在做請求(syn)

第二次握手的標誌位

我們可以看到標誌位裡面有個確認位和同步位,也就是在做應答(syn + ack)

第三次握手的標誌位

我們可以看到標誌位裡面只有個確認位,也就是再做再次確認(ack)

(1)客戶端a傳送乙個fin,用來關閉客戶a到伺服器b的資料傳送(報文段4)。

(2)伺服器b收到這個fin,它發回乙個ack,確認序號為收到的序號加1(報文段5)。和syn一樣,乙個fin將占用乙個序號。

(3)伺服器b關閉與客戶端a的連線,傳送乙個fin給客戶端a(報文段6)。

(4)客戶端a發回ack報文確認,並將確認序號設定為收到序號加1(報文段7)

對三次握手與四次揮手解釋的很詳細的部落格

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

TCP 三次握手

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

TCP三次握手

1.伺服器準備好接受外來連線。passive open 被動開啟 需呼叫 socket bind listen 函式來完成。2.客戶端通過呼叫 connect 主動開啟 active open 這使得客戶 tcp傳送乙個 syn 表示同步 分節,這個分節告訴伺服器,客戶端將在待建立的連線中傳送的資料...