當咱們對Wireshark主窗口各部分做用瞭解了,學會捕獲數據了,接下來就該去認識這些捕獲的數據包了。Wireshark將從網絡中捕獲到的二進制數據按照不一樣的協議包結構規範,顯示在Packet Details面板中。爲了幫助用戶可以清楚的分析數據,本節將介紹識別數據包的方法。瀏覽器
在Wireshark中關於數據包的叫法有三個術語,分別是幀、包、段。下面經過分析一個數據包,來介紹這三個術語。在Wireshark中捕獲的一個數據包,如圖1.45所示。每一個幀中的內容展開後,與圖1.48顯示的信息相似。服務器
圖1.48 數據包詳細信息網絡
從該界面能夠看出顯示了五行信息,默認這些信息是沒有被展開的。各行信息以下所示:併發
q Frame:物理層的數據幀概況。tcp
q Ethernet II:數據鏈路層以太網幀頭部信息。網站
q Internet Protocol Version 4:互聯網層IP包頭部信息。this
q Transmission Control Protocol:傳輸層的數據段頭部信息,此處是TCP協議。spa
q Hypertext Transfer Protocol:應用層的信息,此處是HTTP協議。orm
下面分別介紹下在圖1.48中,幀、包和段內展開的內容。以下所示:教程
(1)物理層的數據幀概況
Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0 #5號幀,線路268字節,實際捕獲268字節
Interface id: 0 #接口id
Encapsulation type: Ethernet (1) #封裝類型
Arrival Time: Jun 11, 2015 05:12:18.469086000 中國標準時間 #捕獲日期和時間
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1402449138.469086000 seconds
[Time delta from previous captured frame: 0.025257000 seconds] #此包與前一包的時間間隔
[Time since reference or first frame: 0.537138000 seconds] #此包與第一幀的時間間隔
Frame Number: 5 #幀序號
Frame Length: 268 bytes (2144 bits) #幀長度
Capture Length: 268 bytes (2144 bits) #捕獲長度
[Frame is marked: False] #此幀是否作了標記:否
[Frame is ignored: False] #此幀是否被忽略:否
[Protocols in frame: eth:ip:tcp:http] #幀內封裝的協議層次結構
[Number of per-protocol-data: 2] #
[Hypertext Transfer Protocol, key 0]
[Transmission Control Protocol, key 0]
[Coloring Rule Name: HTTP] #着色標記的協議名稱
[Coloring Rule String: http || tcp.port == 80] #着色規則顯示的字符串
(2)數據鏈路層以太網幀頭部信息
Ethernet II, Src: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89), Dst: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)
Destination: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0) #目標MAC地址
Source: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89) #源MAC地址
Type: IP (0x0800)
(3)互聯網層IP包頭部信息
Internet Protocol Version 4, Src: 192.168.0.104 (192.168.0.104), Dst: 61.182.140.146 (61.182.140.146)
Version: 4 #互聯網協議IPv4
Header length: 20 bytes #IP包頭部長度
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)) #差分服務字段
Total Length: 254 #IP包的總長度
Identification: 0x5bb5 (23477) #標誌字段
Flags: 0x02 (Don't Fragment) #標記字段
Fragment offset: 0 #分的偏移量
Time to live: 64 #生存期TTL
Protocol: TCP (6) #此包內封裝的上層協議爲TCP
Header checksum: 0x52ec [validation disabled] #頭部數據的校驗和
Source: 192.168.0.104 (192.168.0.104) #源IP地址
Destination: 61.182.140.146 (61.182.140.146) #目標IP地址
(4)傳輸層TCP數據段頭部信息
Transmission Control Protocol, Src Port: 51833 (51833), Dst Port: http (80), Seq: 1, Ack: 1, Len: 214
Source port: 51833 (51833) #源端口號
Destination port: http (80) #目標端口號
Sequence number: 1 (relative sequence number) #序列號(相對序列號)
[Next sequence number: 215 (relative sequence number)] #下一個序列號
Acknowledgment number: 1 (relative ack number) #確認序列號
Header length: 20 bytes #頭部長度
Flags: 0x018 (PSH, ACK) #TCP標記字段
Window size value: 64800 #流量控制的窗口大小
Checksum: 0x677e [validation disabled] #TCP數據段的校驗和
在Wireshark中的數據包均可以稱爲是網絡數據。每一個網絡都有許多不一樣的應用程序和不一樣的網絡涉及。可是一些常見的包中,一般都會包括一些登陸程序和網絡瀏覽會話。本節以訪問Web瀏覽器爲例將介紹分析網絡數據的方法。
一般在訪問Web服務器過程當中,會涉及到DNS、TCP、HTTP三種協議。因爲此過程當中來回發送的數據包較爲複雜,因此下面將介紹分析Web瀏覽數據。
【實例1-3】分析訪問Web瀏覽數據。具體操做步驟以下所示:
(1)捕獲訪問www.qq.com網站的數據包,並保存該文件名爲http-wireshar.pcapng。本例中捕獲的文件如圖1.49所示。
圖1.49 http-wireshar.pcapng捕獲文件
(2)接下來經過該捕獲文件中的數據,分析訪問Web的整個過程。在該捕獲過程當中,將包含DNS請求、響應、TCP三次握手等數據。如圖1.50所示,在該界面顯示了在訪問網站之間DNS解析過程。
圖1.50 DNS解析
(3)在該界面31幀,是DNS將www.qq.com解析爲一個IP地址的數據包(被稱爲一個「A」記錄)。32幀表示返回一個與主機名相關的IP地址的DNS響應包。若是客戶端支持IPv4和IPv6,在該界面將會看到查找一個IPv6地址(被稱爲「AAAA」記錄)。此時,DNS服務器將響應一個IPv6地址或混雜的信息。
說明:31幀是客戶端請求百度,經過DNS服務器解析IP地址的過程。標識爲「A」記錄。
32幀是DNS服務器迴應客戶端請求的過程。標識爲response.
(4)如圖1.51所示,在該界面看客戶端和服務器之間TCP三次握手(33、34、35幀)和客戶端請求的GET主頁面(36幀)。而後服務器收到請求(37幀)併發送響應包(38幀)。
說明:33幀是客戶端向服務器發送TCP請求創建鏈接。標識爲SYN。
34幀是服務器獲得請求後向客戶端迴應確認包的過程。標識爲SYN,ACK。
35幀是客戶端迴應服務器發送確認包的過程,將於服務器創建鏈接。標識爲ACK。
36幀是客戶端向服務器發送HTTP請求內容的過程。標識爲GET。
37幀是服務器相應客戶端請求的過程,收到請求。標識爲ACK。
38幀是服務器向客戶端迴應內容的過程。
圖1.51 TCP三次握手
(5)當客戶端從相同的服務器上再次請求訪問另外一個連接時,將會再次看到一個GET數據包(1909幀),如圖1.52所示。
圖1.52 請求另外一個元素
此外,若是連接另外一個Web站點時,客戶端將再次對下一個站點進行DNS查詢(156、157幀),TCP三次握手(158、159、160幀)。如圖1.53所示。
圖1.53 請求下一個站點
本文選自:Wireshark數據抓包基礎教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!