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

Ste*_*HHH 4 networking linux tcpdump pcap

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

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

这是我选择的tcpdump选项所做的:

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

这是我运行的实际命令的示例,其中打印 16 行需要 45 秒,而我预计执行时间几乎是即时的,或者最多几秒钟:

$ tcpdump -Aq -r z2121ecbc0186d9fa07b.pcap | grep POST
Run Code Online (Sandbox Code Playgroud)

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

Pav*_*rda 10

使用-n压制DNS查找。

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

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