一站式學習Wireshark(七):Statistics統計工具功能詳解與應用

emc.com發表於2015-11-21

Wireshark一個強大的功能在於它的統計工具。使用Wireshark的時候,我們有各種型別的工具可供選擇,從簡單的如顯示終端節點和會話到複雜的如Flow和IO圖表。本文將介紹基本網路統計工具。包括:捕捉檔案摘要(Summary),捕捉包的層次結構(Protocol Hirarchy), 會話(Conversations), 終端節點(Endpoints), HTTP。

更多資訊

Summary:

從statistics選單,選擇Summary

如下圖的截圖所示,你會看到:

File:

捕捉檔案的一般資訊,如檔名和路徑,長度,等等

Time:

第一個包和最後一個包的時間戳,以及抓包過程持續時間

Capture:

顯示檔案捕捉於哪一個介面,以及評論視窗

在視窗的較低部分是Display視窗,展示抓包檔案統計資訊的摘要,包括:

捕捉報文的總數與百分比

顯示報文的數量(加上過濾條件之後)

標記報文的數量

何時使用:

這一選單簡單收集所有抓包資料,在定義了過濾條件的時候,將呈現過濾後的資料。當想要知道每秒的平均報文數或是位元組數時,可以使用此工具。

Protocol Hierarchy:

這一部分闡述如何確知網路執行資料。從statistics選單,選擇Protocol Hierarchy

這個視窗現實的是捕捉檔案包含的所有協議的樹狀分支。如下圖所示:

Protocol Hierarchy視窗有如下欄位:

Protocol:

協議名稱

% Packets:

含有該協議的包數目在捕捉檔案所有包所佔的比例

Packets:

含有該協議的包的數目

Bytes:

含有該協議的位元組數

Mbit/s:

抓包時間內的協議頻寬

End Packets:

該協議中的包的數目(作為檔案中的最高協議層)

End Bytes:

該協議中的位元組數(作為檔案中的最高協議層)

End Mbit/s:

抓包時間內的協議頻寬(作為檔案中的最高協議層)

小貼士:

包通常會包含許多協議,有很多協議會在每個包中被統計。End Packets,End Bytes,End Mbit/s列是該層在抓包中作為最後一層協議的統計資料(也就是說,協議處於報文的頂層,並且沒有更高層資訊了)。例如,沒有載荷的TCP報文(例如,SYN報文),這一類沒有負載任何上層資訊的報文。這就是為什麼在Ethernet層,IPv4層和UDP層報文計數為0,因為沒有接收到以這些協議作為最後一層的幀。

何時使用:

值得注意的兩點是:

百分比永遠指的是相同協議層級。例如,

使用要點:

1. Percentage永遠參照的是相同協議層。例如,上例中81.03%是IPv4報文,8.85%是IPv6報文,10.12%是ARP報文。第二層之上的各協議所佔百分比總和是100%。

2. 另一方面,TCP佔總資料的75.70%,在TCP協議之內,只有12.74%的報文是HTTP,除此之外沒有其他統計。這是由於Wireshark只統計有HTTP頭的報文。它不統計如確認報文或資料包文這樣沒有HTTP頭的報文。

3. 為了使Wireshark同時統計資料包文,例如,TCP報文內部的HTTP報文,關閉Allow sub-dissector選項,對TCP資料流重新統計。可在Preferences選單或Packet Details皮膚中右鍵TCP來實現。

Conversations:

1. 在Statistics選單中,選擇Coversations

2. 會看到以下視窗:

3. 可以選擇第2層乙太網統計資料,第3層IP統計資料,或第4層TCP或UDP統計資料。

4. 可以選擇以下統計工具:

  • On layer 2(Ethernet):查詢並過濾廣播風暴或
  • On layer 3 or 4(TCP/IP)通過網際網路路由器埠並行連線,檢視誰在向ISP傳輸資料

小貼士:

如果你看到網際網路上某一IP地址通過埠80(HTTP)向外傳輸大量資料流,你就需要將該地址複製入瀏覽器並且檢視你的使用者與哪一個網站通訊最多。

如果沒有得到結果,只需到標準DNS查詢站點(Google一下DNS lookup)檢視哪一種流量佔用了你的網線。

5. 也可以通過選擇位於視窗左下方的Limit to display filter核取方塊將會話統計資訊進行顯示過濾。這樣,僅呈現所有通過顯示過濾條件的統計資料。

6.要檢視IP地址對應名稱,可以選擇Name resolution核取方塊。要檢視IP名稱解析,進入View | Name Resolution | Enable for Network layer進行啟用。

7. 對於TCP或UDP,可以在Packet list中對指定報文進行標記,之後從選單中選擇Follow TCP StreamFollow UDP Stream。從而定義一個顯示過濾條件,僅顯示指定資料流。

使用要點:

網路會話是兩個指定終端之間的資料流。例如,IP會話是兩個IP地址之間的所有資料流,TCP會話包含了所有TCP連線。

通過Conversations列表,能看出很多網路問題。

乙太網會話統計

在Ethernet conversations statistics中,查詢以下問題:

  • 大量的廣播風暴:可以看見較輕微的廣播風暴;而對於每秒數千甚至數萬個報文的嚴重廣播風暴,Wireshark會停止顯示資料並且螢幕凍結。只有斷開Wireshark連線時才能看見。
  • 如果你看到來自某一MAC地址的大量資料,檢視會話第一部分的vendor ID,會給你一些導致問題的線索。即使MAC地址的第一部分標識了vendor,但它並不一定就標識了PC本身。這是由於MAC地址屬於PC上安裝的乙太網晶片廠商,而並不一定屬於PC製造商。如果無法識別資料流來源地址,可以ping嫌疑地址並通過ARP獲取它的MAC地址,在交換機中查詢該地址,如果有作業系統的話直接用find命令來定位。

IP會話統計

在IP conversations statistics中,查詢以下問題:

  • 檢視收發大量資料流的IP地址。如果是你知道的伺服器(你記得伺服器的地址或地址範圍),那問題就解決了;但也有可能只是某臺裝置正在掃描網路,或僅是一臺產生過多資料的PC。
  • 檢視掃描模式(scan pattern)。這可能是一次正常的掃描,如SNMP軟體傳送ping報文以查詢網路,但通常掃描都不是好事情。
  • 一次典型的掃描模式如下圖所示:

本例中的掃描模式,一個IP地址,192.168.110.58,傳送ICMP報文至192.170.3.44, 192.170.3.45, 192.170.3.46, 192.170.3.47,等等(上圖僅顯示掃描的很小一部分)。這種情況下我們有一個蠕蟲病毒感染了網路上的所有PC,在它感染PC的時候,它就開始產生ICMP請求並將它們傳送至網路。這些窄帶連線(例如:WAN連線)可以很容易地被封鎖。

TCP/UDP會話統計

  • 檢視帶有太多TCP連線的裝置。每一個PC合理的連線數是10到20個,上百個則是不正常的。
  • 嘗試查詢無法辨識的埠號。它可能是正常的,但也可能是有問題的。下圖顯示了一次典型的TCP掃描:

Endpoints:

1. 從statistics選單,選擇Endpoints

2. 出現以下視窗:

3. 此視窗中,能夠看到第2,3,4層的endpoints,也就是乙太網,IP, TCP或UDP。

使用要點:

這一工具列出了Wireshark發現的所有endpoints上的統計資訊。可以是以下任意一種情況:

  • 少量乙太網endpoints(MAC地址)與大量IP終端節點(IP地址):可能的情況例如,一個路由器從很多遠端裝置收發報文,我們會看見路由器的MAC地址及很多IP地址經由此處。
  • 少量IP終端節點與大量TCP終端節點:可能的情況是每一臺主機有很多個TCP連線。可能是有很多連線的伺服器的一個正常操作,也可能是一種網路攻擊(如SYN攻擊)。

以下是一個網路中心的抓包示例,一個內部網路有四個HP伺服器和一個Cisco路由器,MAC地址的第一部分已經解析了廠商名稱:

當我們檢視IPv4:191下的endpoints,我們看到有很多來自192.168.10.0, 192.168.30.0,以及其他網路地址。

HTTP:

1. 從statistics選單,選擇HTTP,將會出現以下視窗:

在HTTP子選單中,可以看到以下資訊:

Packet Counter:

每一個網站的報文數量。幫助識別有多少響應和請求。

Requests:

各網站的請求分佈。

Load Distribution:

各網站的負載分佈。

按照以下操作步驟檢視Packet Counter統計資訊:

1. 進入Statistics | HTTP | Packet Counter。

2. 顯示以下過濾視窗:

3. 此視窗中,可設定過濾條件以檢視符合過濾條件的統計資訊。如果想要檢視整個抓包檔案的統計資訊,留白不填。這就會顯示IP層之上的統計資訊,也就是所有HTTP報文。

4. 點選Create Stat按鈕,會看到以下視窗:

如果要檢視某一特定節點的HTTP統計資訊,可以通過display filter的方式配置過濾條件。

按照以下操作步驟檢視HTTP Requests統計資訊:

1. 進入Statistics | HTTP | Requests,出現以下視窗:

2. 選擇所需過濾條件。對於所有資料,留白。

3. 點選Create Stat按鈕,會出現以下視窗:

4. 要獲得指定HTTP主機的統計資訊,設定過濾條件http.host contains <host_name> 或 http.host==<host_name>。

5. 例如,通過設定過濾條件http.host contains ndi-com.com,可以獲得站點 www.ndi-com.com的統計資訊,如下圖所示:

6. 結果如下圖所示:

按照以下操作步驟檢視Load Distribution統計資訊:

1. 進入Statistics | HTTP | Load Distribution。

2. 出現以下視窗:

3. 選擇所需過濾條件。對於所有資料,留白。

4. 點選Create Stat按鈕,會出現以下視窗:

使用要點:

當我們開啟一個網頁,通常會向若干個URL傳送請求。本例中,我們開啟的其中一個網頁是www.cnn.com,並將我們導向edition.cnn.com。我們傳送了若干個請求:到root URL,到breaking_news URL,以及主頁上兩個其他位置。

相關文章