Networking
為什麼不同的數據包分析器有時會產生不同的結果?
我同時執行了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 做的工作要多得多,所以一般來說,它更有可能確定正確的頂級協議。