TCP協議學習之三次握手

2021-07-28 00:21:08 字數 2007 閱讀 2699

其實一直都想把知識點複習下,這次不能再拖延了

基本的操作就不介紹了,主要就是選擇當前網路,然後start.

在瀏覽器開啟主頁zckongbai.farbox.com,然後在wireshark中過濾當前的ip:

網路層次劃分如下,三次握手是傳輸層的tcp協議和應用層之間的互動

所有我們在抓包分析的時候主要關注的就是傳輸層- transmission control protocol ,如上圖標註所示.

先看看tcp報文段格式:

對應wireshark抓包的資料

比較重要的:

sequence number – 序號

acknowledgment number – 確認號

flags – 標誌位

— acknowledgment 確認位

— push 急迫位

— reset 重置位

— syn 同步位

— fin 終止位

好了, 正式開始分析握手吧.

因為我們開啟乙個**的時候,可能會同時建立多個請求,所以在wireshark裡面會抓到很多個請求,這個時候,我們選取乙個,右擊 conversation filter > tcp 這樣就過濾出這次完整的tcp請求流程

客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認:

localhost seq=0 -> 部落格位址

從標誌位可以看到,同步位syn有值,在做請求[syn]: syn同步位為1

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

部落格位址 seq=0 ack=1 -> localhost

從標誌位看出,確認位、同步位有值,在做應答(syn+ack):syn 同步位為 1 、acknowledgment 確認位為 1

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

localhost seq=1 ack=1 -> 部落格位址 (注: seq=seq+1)

從標誌位看出,只有確認位有值,在做再次確認(syn): acknowledgment確認位為1

到此完成三次握手,客戶端與伺服器開始傳送資料.

完整的步驟就是:

請求(syn) -> 應答(syn+ack) -> 再次確認(syn)

TCP協議之三次握手

三次握手 三次握手 three way handshake 即建立tcp連線,就是指建立乙個tcp連線時,需要客戶端和服務端總共傳送3個包以確認連線的建立。在socket 程式設計中,這一過程由客戶端執行connect來觸發,整個流程如下圖所示 1 第一次握手 client將標誌位syn置為1,隨機...

HTTP協議之TCP之三次握手

size medium b tcp 建立連線中三次握手都做了那些事?b size b 第一次 b 客戶端 在嗎?服務端 在。b 第二次 b 客戶端 可用嗎?服務端 可用。你確定要用嗎?b 第三次 b 客戶端 是。我們開始吧。服務端 好。鏈結建立成功。開始通訊。但是為什麼一定要進行三次握手來保證連線是...

TCP基礎之三次握手

tcp協議規定的傳輸格式如下圖所示 這就是三次握手,交流三次,剛看的時候反正一臉懵逼,什麼syn,什麼ack,不了解,也不理解。syn和ack都是標誌位 標誌位 syn 請求建立連線,及tcp傳輸格式中的32位序列 ack 應答,及tcp傳輸格式中的32位確認序列 三次握手 第一次握手 伺服器一般是...