12个版本

0.4.0 2023年3月5日
0.3.4 2022年12月9日
0.3.3 2022年8月19日
0.3.2 2022年5月11日
0.1.2 2022年3月24日

#1228 in 网络编程


用于 2 crates

MIT 许可协议

61KB
1K SLoC

💢 warts

Coverage crates.io docs.rs Tests

此crate实现了由CAIDA的warts(5)工具生成的Scamper文件。
它依赖于优秀的deku crate来进行二进制格式的序列化和反序列化。

使用方法

您可以在examples/中运行其中一个示例

cargo run --release --example dump data/trace_google_dns_v6_default.warts
cargo run --release --example read_traceroute data/trace_google_dns_v6_default.warts
cargo run --release --example write_traceroute > test.warts

要在自己的项目中使用,请在Cargo.toml中添加以下依赖项

[dependencies]
warts = "0.4"

限制

以下功能目前尚未实现

  • DoubleTree和PMTUD数据
  • tsprespec数据
  • 流式读取

性能

解析并打印来自abz-uk.team-probing.c009127.20210202.warts(52MB)的traceroute所需的时间。
在2020年M1 MacBook Air上使用hyperfine进行测量。

时间(秒)
warts / read_traceroute 0.797
Scamper / sc_warts2text 1.125
pywarts / parse_from_stdin.py 12.405
cmand/scamper / sc_warts2text.py 21.207

对象类型

类型 结构 名称 已实现
0x0001 scamper_list_t 列表 Y
0x0002 scamper_cycle_t 周期开始 Y
0x0003 scamper_cycle_t 周期定义 Y
0x0004 scamper_cycle_t 周期停止 Y
0x0005 scamper_addr_t 地址(已弃用) Y
0x0006 scamper_trace_t 路由跟踪 Y
0x0007 scamper_ping_t Ping Y
0x0008 scamper_tracelb_t MDA 跟踪路由 Y
0x0009 scamper_dealias_t 别名解析 N
0x000a scamper_neighbourdisc_t 邻居发现 N
0x000b scamper_tbit_t TCP行为推理工具 N
0x000c scamper_sting_t Sting N
0x000d scamper_sniff_t Sniff N

依赖关系

~4MB
~86K SLoC