Wireshark除錯TCP三次握手流程

ken_ding發表於2020-11-04

wireshark基本介紹和TCP三次握手

wireshark視窗介紹(mac)

在這裡插入圖片描述

wireshark顯示過濾

在這裡插入圖片描述

過濾表示式規則

  • 協議過濾,比如TCP,只顯示TCP協議
  • IP過濾,比如ip.src==192.168.1.102
  • 埠過濾,tcp.port==80,埠為80
  • http模式過濾,http.request.method==“GET”,只顯示HTTP GET方法
  • 邏輯的過濾表示式,AND/OR

封包列表

在這裡插入圖片描述
封包列表顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包資訊

封包詳細資訊

在這裡插入圖片描述

  • Frame:物理層的資料幀概況
  • Ethernet II,Src:資料鏈路層乙太網幀頭部資訊
  • Internet Protocol Version 4: 網際網路層IP包頭部資訊
  • Transmission Control Protocol: 傳輸層T的資料段頭部資訊
  • Hypertext Transfer Protocol: 應用層的資訊

分析TCP三次握手

在這裡插入圖片描述

標誌位含義

  • URG—為1表示高優先順序資料包,緊急指標欄位有效
  • ACK—為1表示確認號欄位有效
  • PSH—為1表示是帶有PUSH標誌的資料,指示接收方應該儘快將這個報文段交給應用層而不用等待緩衝區裝滿
  • RST—為1表示出現嚴重差錯。可能需要重現建立TCP連線。還可以用於拒絕非法的報文段和拒絕連線請求。
  • SYN—為1表示這是連線請求或是連線接受請求,用於建立連線和使順序號同步
  • FIN—為1表示傳送方沒有資料要傳輸了,要求釋放連線。

例項:

curl http://www.cnblogs.com/tankxiao

在這裡插入圖片描述
在控制檯中輸入命令curl http://www.cnblogs.com/tankxiao,然後在wireshark中輸入http過濾, 然後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵然後點選"Follow TCP Stream"
在這裡插入圖片描述
可以看到wireshark截獲到了三次握手的三個資料包。第四個包才是HTTP的, 這說明HTTP的確是使用TCP建立連線的

  • 第一次握手資料包

在這裡插入圖片描述

標誌位SYN設定為1,代表客戶端請求連線,並設定序列號為0

  • 第二次握手資料包

在這裡插入圖片描述
服務端:標誌位為SYN設定為1,代表請求連線,ACK設定為1,代表欄位有效,並設定序列號為0

  • 第三次握手的資料包

在這裡插入圖片描述
客戶端:設定ACK欄位為1,確認欄位,有效,SYN設定為0,表示連線完成,序列號加1

這樣就建立了連線.

相關文章