Appearance
Appearance
SnapLen、Snap Length 或 snapshot length,是网络捕获工具实际为每个 frame 捕获并存储到 CaptureFile 中的数据量。这有时称为 PacketSlicing。
默认情况下,Wireshark 和 TShark 都会捕获 packet 在网络线上接收时的完整内容;但是,对于持续时间很长的捕获,这可能会生成非常大的文件。在这种情况下,通过限制每个 frame 中实际保存的数据量来减少捕获文件使用的总存储空间可能很有用。
启动捕获时,可以通过 capture dialog 中的控件启用此功能:
使用此功能的好处是,与未指定 SnapLen 相比,长捕获文件将占用少得多的空间,并且复制 packets、将其保存到文件时会使用更少的 CPU 时间和总线带宽,因此可能丢弃更少的 packets。缺点是,长度超过 SnapLen 的 packets 会被截断,并且这些 packets 中并非所有数据都会保存到捕获文件中。使用此功能时,可能不再能够对跨 link-layer packets 分割的 higher-level packets 进行 reassembly,例如 IP_Reassembly。
其他网络捕获工具通常也支持这种类型的捕获。例如,标准工具 TcpDump 默认会对 IPv4 packets 使用 68 字节的 SnapLen,对 IPv6 packets 使用 96 字节的 SnapLen。
此功能也可以通过命令行开关 -s <number> 控制,而这恰好也是 TcpDump、snoop 和大多数其他工具用于控制完全相同行为的同一个开关。
如果你想使用 SnapLen,应该从每个 packet 保存多少数据,以及应将其设置为多少?这是个好问题,这完全取决于你正在查看哪些协议,以及你感兴趣的是 packets 的哪一部分。一般来说,除非你正在运行非常长的捕获并且预期会创建 HUGE 捕获文件,即 Trolling,否则你其实不应该需要使用此选项。
Imported from https://wiki.wireshark.org/SnapLen on 2020-08-11 23:25:45 UTC