Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

Wireshark 优化

以下 patches 尝试对 Wireshark 做一些优化。

但 Wireshark 能运行得多快?

一个小测试:

  • 在禁用所有名称解析并启用着色的情况下加载一个“大”的捕获文件。
  • 禁用着色并重新加载,是不是更快?
  • 移除除第一列之外的所有列并重新加载。
  • 最后但同样重要的是,禁用所有协议并重新加载。

让 Wireshark 更快很容易:不要过滤数据包,不要显示它们,也不要解码它们。

patches 中有什么?

我假设 Wireshark dissectors 的输出是幂等的,因此:

  • Colorize(应用 colors filter)只执行一次。

  • 通过为 packets list 使用修改过的 Gtk2 ethclist,只计算一次 columns info。

  • 保留每个数据包的 protocols list,并且在过滤时只解码相关的数据包/协议,例如: 在一个 SMB 捕获中:

packet 1 Protocols in frame: eth:ip:tcp packet 2 Protocols in frame: eth:ip:tcp:nbss:smb

过滤器 smb.file == "foo" 将完全不会解码 packet 1;而在 packet 2 中,eth、ip、tcp 和 nbss dissectors 将以 tree == NULL 被调用。

速度提升

在我的电脑上,对 wiki SMB netbench sample 禁用名称解析时:

  • load 快 10 倍。

  • popup menu “conversation filter -> TCP” 快 10 倍(返回所有数据包)。

  • filter "smb.file == "\clients\client2" 快 15 倍(返回 3 个数据包)。

  • filter arp 在零秒内返回 0 个数据包。

  • filter smb || udp 在 50 ms 内返回 10086 个数据包。

注释

损坏的功能:

  • 如果针对启用线程的 gtk2 编译,则 Capture 损坏(但它在 svn 版本中能工作吗?)。
  • 某些 stats,因为它们总是设置 tap listener。
  • 还有许多我不知道的其他功能。

Patches

较新版本,但仅适用于未压缩文件,并且可能只在 Linux 上工作:patch.29854.diff.gz

较旧版本: 针对 svn 的 Patch(版本在文件名中):patch.29079.diff.gz

修改过的 SAT solver cf. http://wiki.wireshark.org/Development/FastFilteringsat.29079.diff.gz

Imported from https://wiki.wireshark.org/Development/Optimization on 2020-08-11 23:12:55 UTC

相关 Wireshark Wiki 页面

网络分析技术档案