为什么 tcpdump 读取 pcap 文件需要这么长时间?

为什么 tcpdump 读取 pcap 文件需要这么长时间?

我正在使用第三方工具在网络测试期间将网络流量捕获为 pcap 文件。当我尝试播放这些文件时,我会使用该tcpdump工具的选项-Aq -r,并将输出通过管道传输到 grep。一些捕获的大小为 600 KB,这看起来并不大,但读取它们仍然需要相对较长的时间。

是否tcpdump实时读取 pcap 文件?如果是,我该如何加快速度?

这是我选择的tcpdump选项的作用:

  • -A以 ASCII 格式打印数据包(减去报头),因此它对 grep 和人类都是友好的。
  • -q打印较少的信息,以便更快地输出。
  • -r <FILE>读取给定的 pcap 文件。

这是我运行过的一个实际命令的示例,它花了四十五秒来打印十六行,而我预计执行时间几乎是即时的,或者最多几秒钟:

$ tcpdump -Aq -r z2121ecbc0186d9fa07b.pcap | grep POST

鉴于捕获的持续时间不到一分钟,我开始认为这tcpdump -r会导致捕获实时播放,但我在手册页或网上找不到任何内容来确认这一点,当然也找不到任何东西告诉我是否有办法关闭实时播放。

答案1

用于-n抑制 DNS 查找。

读取文件、分析文件并将其转换为文本输出通常非常快,并且只有在文件非常很大。在所有其他情况下,名称解析都会减慢速度,通常是等待 DNS 服务器应答,有时如果没有应答,则等待超时。

没有实时回放,也没有理由这样做。当与文件一起使用时,tcpdump 只会将文件转换为可读的输出。

相关内容