wireshark抓包實驗
wireshark抓包實驗
選擇wifi網絡卡,並設定過濾為ICMP
開啟cmd開始ping目標地址www.baidu.com,同時開始捕獲
捕獲的icmp資料包如下圖所示:
如圖所示,‘Protocol:ICMP’資料包協議為ICMP,“Type:8 Code:0”表示報文型別為診斷報文的請求測試包。
ICMP協議分析
實驗主機為虛擬機器kali
IP:192.168.43.66
mac: 00:0c:29:44:6e:f1
ping響應請求報文
開啟wireshark捕獲資料包,同時ping實驗主機
抓取資料包如圖所示,資料包的協議有TCP,ICMP,NBNS等
如圖所示,選取該資料包:
從報文格式看出ICMP協議是TCP/IP協議族的一個子協議。
如圖所示:
IP報文版本號是IPV4,
首部長度:20 bytes,
資料包總長度:60,
標示符:0x971e,
標誌:0x0000,位元偏移:0,
壽命:128,上層協議:ICMP,
首部校驗和:0xcba2,並且是正確的。
源IP地址:192.168.43.109
目的IP地址:192.168.43.66
型別:8 (回顯請求) 程式碼/編碼:0
校驗和:0x4d51(正確的校驗和)
標示符(大端順序):1(0x0001);
標示符(小端順序):256(0x0100);
序列號(大端順序):10(0x000a)
序列號(小端順序):256(0x0100)
ping相應應答報文
其中ICMP Type為0
埠不可達報文
取一個黑色的資料包
可看出Type為3,Code為3,可以看出是一個埠不可達的報文
HTTP分析
http回覆報文
埠號為80,主機的源埠號為55308,此TCP報文的Sequence Number 為2721
http請求報文
此TCP報文的Sequence Number 為3722561934,Ack number為1
TCP協議分析
三次握手
第一次握手:
客戶端傳送一個TCP請求報文,標誌為SYN(synchronous建立聯機)置為1,序列號(SeqSequence number順序號碼)的相對值為0,真值為Seq.No_1=60 f3 ab c9,代表客戶端請求建立連線:
第二次握手:
伺服器收到請求報文後,向客戶端傳送確認報文,報文中SYN,ACK(acknowledgement 確認) 均置為1,確認號ack= seq.No_1+1=60 f3 ab c9+1=60 f3 ab ca,即相對值0+1=1。
新的序號seq.No_2=a2 f9 9e 81
第三次握手:
客戶端收到伺服器的確認報文後,要給伺服器回一個確認報文,該確認報文將ACK置為1,確認號ack = seq.No_2+1 =a2 f9 9e 81+1 = a2 f9 9e 82。
新的序號seq.No_3 = seq.No_1+1 = 60 f3 ab c9+1=60 f3 ab ca
四次揮手
第一次揮手:
客戶端傳送一個連線釋放報文給伺服器,並停止傳送資料,該報文段FIN置1,seq=1,seq.No_1=92 8d c9 19。
第二次揮手:
伺服器收到連線釋放報文段後發出確認,確認報文段ACK置1,seq=2,相對ACK.No=2確認號ack_2=seq.No_1 + 1=92 8d c9 1a。
新序號seq.No_2=a2 5f cb b3。
第三次揮手:
這時伺服器發出連線釋放報文段,ACK置1,FIN置1,seq=1,相對ACK.No=2(與上次相同),seq.No_3=61 48 41 e5,確認號ack_3=d0 8e fd d5。
第四次揮手:
客戶端收到伺服器的連線釋放報文段後,迴應確認報文,在確認報文中把ACK置為1,確認號ack_4=seq.No_3 +1=61 48 41 e5 + 1=61 48 41 e6,序號seq.No_4=ack_3=d0 8e fd d5。