Yandex 发布了 skbtrace,一个用于跟踪 Linux 中网络操作的实用程序

Yandex 发布了 skbtrace 实用程序的源代码,该实用程序提供了用于监视网络堆栈操作并跟踪 Linux 中网络操作执行情况的工具。 该实用程序作为 BPFtrace 动态调试系统的附加组件实现。 该代码是用 Go 编写的,并根据 MIT 许可证分发。 支持使用 Linux 内核 4.14+ 和 BPFTrace 0.9.2+ 工具包。

运行时,skbtrace 实用程序会生成高级 BPFtrace 语言的脚本,动态跟踪和分析与 Linux 网络堆栈和网络套接字相关的操作的执行时间。 然后,脚本被转换为 eBPF 应用程序形式并在内核级别执行。

skbtrace的具体功能包括测量传入和传出网络接口之间发送数据包的时间、TCP连接从接收SYN到FIN/RST到达的生命周期、不同数据包处理事件之间的延迟以及时间注释用于协商 TCP 连接。 Skbtrace 还可以用于检测 TCP 数据包的重传,即使它们封装在其他数据包中,并且充当 tcpdump 实用程序的简单模拟,能够分析某些内核例程的执行情况,例如调用 kfree_skb 来释放内存丢弃数据包时。

来源: opennet.ru

添加评论