我正在尝试捕获数据包以诊断网络应用程序。有少量数据包我想捕获其全部内容以进行应用程序级协议分析,但大量数据包我只需要捕获标头和有效负载的几个字节。这是在 10 千兆位(未来我希望是 25 千兆位)链路上,当我捕获所有内容时,我很难保持捕获吞吐量。
我查看了 tcpdump、dumpcap 和 tshark,它们似乎都没有指定可变 snaplen 字段的选项。有没有可以做到这一点的捕获工具?从输出中我dumpcap -d
可以看到过滤器的返回值是所需的 snaplen,或者 0 表示不捕获。但这些程序似乎都不接受编译后的 bfp 作为输入。
答案1
运行两次同时捕获,每次使用适当的过滤器和 snaplen,然后使用mergecap
Wireshark 附带的工具合并它们。