#pcap #s3 #zstd #gzip #async #object-storage

bin+lib stream-merge

将存储在 AWS S3 对象存储(或本地)中的压缩 .pcap 文件合并在一起,并高效地按时间顺序排序到 stdout 以进行管道处理。高性能和并行实现,支持 > 10 Gbps 的播放吞吐量,适用于大量文件(约 4k)。

1 个不稳定版本

0.1.0 2021 年 11 月 21 日

#24#zstd

MIT 许可协议

45KB
723

正在进行中 - crate stream-merge

将存储在 AWS S3 对象存储(或本地)中的压缩 .pcap 文件合并在一起,并高效地按时间顺序排序到 stdout 以进行管道处理。高性能和并行实现,支持 > 10 Gbps 的播放吞吐量,适用于大量文件(约 4k)。

merge_pcaps

一个将一组 .pcap 文件合并到 stdout 的实用程序可执行文件,按时间顺序排列。

注意:所有输入 .pcap 文件都必须按时间顺序排列(常见情况)。

  • 从 AWS S3 流式传输数千个巨大的(无法下载到您系统的)压缩 .pcap 文件到另一台机器,该机器协调并行下载和文件优先级,并行解压缩和分组数据包的时间顺序。

  • 可伸缩的高性能。针对资源(计算和内存,即使有大量文件)的高效使用进行架构设计,并目标是 > 1.2GB/s 的输出吞吐量(这是一个适度的目标,该实现可以超出此目标,使用存储在 S3 中的 Zstd-compressed .pcap.zst 文件)。

    在我特定的目标使用此实用程序的情况下,> 4,000 个 .pcap.gz 文件(数百 GB)存储在 S3 中,需要解压缩并合并到 stdout。然而,关于我的环境的一个有趣之处是,我合并的 .pcap 文件被分成一些分组,每个分组包含一小时的数据包记录。该工具是通用、快速和可伸缩的(与 mergecap 不同),但它也特别设计用于高效处理大量输入文件,其中一些文件可能直到播放后期才需要。

  • 可扩展的解压缩基础设施。目前支持 Gzip 和 Zstd,但可能非常快速和简单地添加其他格式(请联系!)。

依赖项

~28–43MB
~639K SLoC