Networking

為什麼不同的數據包分析器有時會產生不同的結果?

  • March 28, 2016

我同時執行了wireshark和windump。兩種數據包分析器都使用相同的 winpcap 庫。

然而,在對結果進行逐行比較之後,我注意到除了協議和資訊列之外的 2 個匹配項之間的每一列,即使所有源、目標、長度列都匹配,40% 的協議列值不匹配。

所以我想知道為什麼當兩個分析器都使用相同的 winpcap 庫時協議列之間存在 40% 的差異,我應該相信哪個數據包擷取最準確?

協議欄位是應用程序對協議性質的最佳猜測。它不是實際擷取的一部分。

tcpdump,因此 WinDump(它是 tcpdump 程式碼到 Windows 的一個埠)本身沒有協議列。這是我機器的一些 tcpdump 輸出:

11:11:52.409447 IP 192.168.42.69.45779 > broadcasthost.ssdp: UDP, length 378
11:11:52.717007 IP 192.168.42.69.45779 > broadcasthost.ssdp: UDP, length 431
11:11:52.921460 IP 192.168.42.69.45779 > broadcasthost.ssdp: UDP, length 381
11:11:53.068266 IP 192.168.42.66.49778 > my.isp.net.domain: 38666+ PTR? 69.42.168.192.in-addr.arpa. (44)
11:11:53.123356 ARP, Request who-has 192.168.42.66 (Broadcast) tell 192.168.42.1, length 46
11:11:53.123383 ARP, Reply 192.168.42.66 is-at ac:bc:32:7e:1a:69 (oui Unknown), length 28
11:11:53.128804 IP my.isp.net.domain > 192.168.42.66.49778: 38666 NXDomain* 0/1/0 (93)
11:11:53.129931 IP 192.168.42.66.52809 > my.isp.net.domain: 17704+ PTR? 255.255.255.255.in-addr.arpa. (46)
11:11:53.161878 IP my.isp.net.domain > 192.168.42.66.52809: 17704* 0/1/0 (109)

前三行是 UDP 數據包 - 它們可能是 SSDP 數據包,因為它們將進入 SSDP 的標準埠(來自目標端點中的“.ssdp”),但 tcpdump 不會嘗試剖析 SSDP。

其餘的是 DNS 數據包,但那裡沒有說“DNS”。

因此,在 tcpdump/WinDump 和 Wireshark 剖析之間確實沒有可比較的協議列。

它們都查看原始數據包數據以嘗試確定正在使用的協議,並且它們的做法不同並且可以得到不同的結果,即使查看完全相同的擷取文件也是如此。Wireshark 比 tcpdump/WinDump 做的工作要多得多,所以一般來說,它更有可能確定正確的頂級協議。

引用自:https://serverfault.com/questions/766394