Show HN: A fast, dependency-free traceroute implementation in pure C
4 months ago
- #network-diagnostics
- #high-performance
- #traceroute
- Fastrace是一个用纯C语言编写的高性能、无依赖的traceroute实现
- 采用基于poll()的全非阻塞架构,实现更快的ICMP响应回收
- 通过单调时间流水线提供亚毫秒级RTT精度
- 支持通过命令行参数动态调整跳数、探测包数、并发量和超时设置
- 内置反向DNS缓存,支持-n参数禁用查询以优化性能
- 使用扩展的套接字缓冲区和智能探测调度算法降低追踪延迟
- 零外部依赖,仅使用标准C库和系统调用
- 实现双套接字机制:UDP发送探测包,原始ICMP接收响应
- 可配置的多TTL探测系统,支持调整并发窗口
- 精确处理网络协议,包括UDP探测、TTL管理和ICMP响应解析
- 采用树状结构可视化呈现网络路径
- 相比标准traceroute在追踪速度、内存占用和CPU利用率上有显著提升
- 支持Linux、macOS及其他支持原始套接字的类Unix系统
- 提供Makefile简化编译安装流程
- 基于BSD-2许可证开源