【问题标题】:Strange Wireshark behaviour (A single packet labeled both TCP and UDP)奇怪的 Wireshark 行为(标记为 TCP 和 UDP 的单个数据包)
【发布时间】:2017-05-09 19:41:12
【问题描述】:

我从this website 下载了一个大的 PCAP 文件。 (你可以download the original pcap file : 368 MBs)

您也可以download a short version that contains only some of the buggy packets

此文件中的某些数据包有些奇怪。里面有 1113 个标有sFlow 的数据包,不管你对数据包应用哪个wireshark-filter,你总是会在窗口中看到它们(或其中的一部分):

为了更清楚,让我们看一些屏幕截图:

未应用过滤器:

过滤以仅查看 tcp 数据包:

过滤以仅查看 udp 数据包:

过滤以查看带有ip.addr == 68.64.21.64的数据包

这些数据包有什么问题?

【问题讨论】:

  • 这里完全跑题了,但无论哪种方式,数据包本身都不能同时是 UDP 和 TCP,因为 IP 标头中有一个 8 位字段指示它是哪个.

标签: tcp udp wireshark wireshark-dissector


【解决方案1】:

这些数据包属于sFlow 类型。它们用于网络采样,因此它们包含其他网络数据包的样本。显示过滤器似乎不仅适用于 sFlow 数据包本身,还适用于每个内部数据包。因此,“tcp”显示过滤器会留下那些包含 tcp 样本的 sFlow 数据包(它们显然是 udp)。地址过滤也一样。

您可以检查内部数据包,如图所示

不确定过滤器的行为是否正确,我也被输出逗乐了。我认为,最好在Wireshark bug database 开票以听取开发者的意见。

【讨论】:

  • Wireshark 显示过滤器的工作方式类似于布尔运算符,如果表达式为真,则显示数据包;如果为假,则不显示。这意味着如果数据包中的 any 字段与过滤器匹配,则将显示数据包。这种行为是故意的,完全是意料之中的。
猜你喜欢
  • 2017-02-03
  • 1970-01-01
  • 2011-03-16
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 2018-11-17
相关资源
最近更新 更多