Wireshark 和 tshark 的 PCAP 读写速度差异

问题描述 投票:0回答:1

我有一堆 PCAP 文件,我正在尝试将它们转换为表格元数据。我的直觉是使用 tshark 剖析每个 PCAP 文件,使用

-T fields
选项生成元数据。然而,我注意到 tshark 在解析相对较大的 PCAP 文件(数十到数百 MB)时可能非常慢,而在 Wireshark 中显示相同的文件则要快得多。我进行了一些实验,在 Wireshark 和 tshark 中打开相同的文件,从两者输出相同的字段,并且 tshark 需要几分钟(有时长达一个小时)才能将输出完全写入文件,而我可以打开该文件在 Wireshark 中,然后选择在不到一分钟的时间内将数据输出到文件中(全部使用 GUI)(其中大部分只是我点击和打字)。为什么是这样?这是我在 tshark 中使用的命令:

tshark -r my_pcap.pcap \
    -2 \
    -N dmnN \
    -E separator=/t \
    -E header=y \
    -E quote=d \
    -T fields \
    -e frame.time_epoch \
    -e frame.len \
    -e frame.protocols \
    -e _ws.malformed \
    -e _ws.col.Protocol \
    -e ip.src \
    -e ip.dst \
    -e ip.src_host \
    -e ip.dst_host \
    > my_pcap.tsv

我非常确定花费这么长时间的原因是 DNS 查找(

-N dmnN
ip.src_host
ip.dst_host
)。然而,Wireshark 也进行 DNS 查找;在 Wireshark 首选项中,我选择了
Resolve network (IP) addresses
Use captured DNS packet data for name resolution
Use your system's DNS settings for name resolution
。在 Wireshark 中,我输出以下字段:数字、时间(指定格式)、协议、长度、信息、源端口、目标端口、UTC 日期(YYYY-MM-DD 和时间)、源地址(未解析)、目标地址(未解析),源地址(已解析),目标地址(已解析)。

我记录了一些使用 tshark 读取 PCAP 文件并输出到

/dev/null
的时间。这里文件大小是第一个条目,第二个条目是 /usr/bin/time 的输出:

20.7 MB, 6.16user 3.51system 11:36.95elapsed 1%CPU
10.2 MB, 2.18user 3.28system 10:45.22elapsed 0%CPU
42.1 MB, 6.70user 5.13system 44:07.60elapsed 0%CPU

这是一个已知问题吗?有简单的解决办法吗?

wireshark tshark
1个回答
0
投票

这个问题已经在 Wireshark 问答网站上被问到时得到了解答

© www.soinside.com 2019 - 2024. All rights reserved.