TCP IP三次握手

2021-06-22 09:46:41 字數 2554 閱讀 6240

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

位碼即tcp標誌位,有6種標示:syn(synchronous建立聯機) ack(acknowledgement 確認) psh(push傳送) fin(finish結束) rst(reset重置) urg(urgent緊急)

sequence number(順序號碼) acknowledge number(確認號碼)

第一次握手:主機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狀態,完成三次握手。 完成三次握手,客戶端與伺服器開始傳送資料.

例項:ip 192.168.1.116.3337 > 192.168.1.123.7788: s 3626544836:3626544836

ip 192.168.1.123.7788 > 192.168.1.116.3337: s 1739326486:1739326486 ack 3626544837

ip 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116傳送位碼syn=1,隨機產生seq number=3626544836的資料報到192.168.1.123,192.168.1.123由syn=1知道192.168.1.116要求建立聯機;

第二次握手:192.168.1.123收到請求後要確認聯機資訊,向192.168.1.116傳送ack number=3626544837,syn=1,ack=1,隨機產生seq=1739326486的包;

第三次握手:192.168.1.116收到後檢查ack number是否正確,即第一次傳送的seq number+1,以及位碼ack是否為1,若正確,192.168.1.116會再傳送ack number=1739326487,ack=1,192.168.1.123收到後確認seq=seq+1,ack=1則連線建立成功。

tcp的作用是流量控制,主要是控制資料流的傳輸。下面以瀏覽網頁為例,根據自身理解來解釋一下這個過程。(注:第二個ack屬於**段ack位)

pc瀏覽伺服器網頁此過程不包括網域名稱查詢,只描述tcp與http資料流的變化。

一、pc與http伺服器進行三次握手來建立連線。

1.pc:seq=0 ack=0 syn=1 ack=0 傳送給伺服器建立同步請求。

2.server: seq=0 ack=1 syn=1 ack=1 傳送給客戶端建立同步響應.

3.pc:seq=1 ack=1 syn=0 ack=1 傳送給伺服器,三次握手完成建立同步資訊成功.

4.pc產生http資料訊息,向伺服器傳送get請求.

5.伺服器收到請求並傳送tcp確認,然後傳送http資料資訊給客戶端的瀏覽器.

6.客戶端收到伺服器的http資訊,然後傳送tcp確認資訊給伺服器.

7.客戶端傳送fin+ack給伺服器,要求結束資料傳輸.

8.伺服器傳送tcp確認訊息用於確認pc的tcp的fin訊息

9.伺服器向客戶端傳送fin+ack訊息用於結束tcp會話.

10.客戶端傳送確認資訊給伺服器,整個會話結束.

斷開鏈結時的四次揮手協議過程:

(1)客戶端a傳送乙個帶有fin標誌的tcp報文,用來關閉客戶a到伺服器b的資料傳送(關閉客戶端到伺服器之間的連線)

(2)伺服器b收到tcp報文後,給乙個帶有ack標誌的tcp報文(發回確認關閉)

(3)伺服器b關閉與客戶端a之間的連線,並傳送乙個帶fin標誌的tcp報文給客戶端a(關閉伺服器到客戶端之間的連線)

(4)客戶端a發回乙個帶ack標誌的tcp報文(發回確認關閉)

TCP IP 三次握手

1.首先客戶端通過向伺服器端傳送乙個syn來建立乙個 主動開啟,作為三路握手的一部分。同步位為1 2.然後伺服器端應當為乙個合法的syn回送乙個 syn ack。同步位和確認位都為1 3.最後,客戶端再傳送乙個ack。這樣就完成了三 路握手,並進入了連線建立狀態。確認位位1 ftp服務之前首先需要t...

tcp ip 三次握手

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種標示 syn synchronous建立聯機 ack acknowledgement 確認 psh pus...

TCP IP 三次握手

第一次握手 connection request,cr 連線發起方 通常稱為客戶或請求端 傳送乙個tcp報文,設定syn標誌,指明客戶打算連線的伺服器的埠,以及初始化序列號isn x 第二次握手 connection confirm,cc 伺服器發回乙個tcp報文作為應答,該報文中設定了syn標誌和...