Yandex 已發布 skbtrace 工具的原始程式碼,該工具提供用於監控網路協定堆疊運作情況和追蹤網路操作執行情況的工具。 Linux此實用程式以 BPFtrace 動態偵錯系統之上的一個層的形式實作。程式碼使用 Go 語言編寫,並以 MIT 許可證發布。同時支援內核。 Linux 4.14+ 和 BPFTrace 0.9.2+ 工具包。
在運行過程中,skbtrace 實用程式會產生高階 BPFtrace 語言的腳本,這些腳本可以對與網路協定堆疊相關的操作的執行時間進行動態追蹤和分析。 Linux 以及網路套接字。腳本隨後被轉換為 eBPF 應用程式並在核心層級執行。
skbtrace 的具體功能包括測量在傳入和傳出網路介面之間傳輸資料包所需的時間、從接收 SYN 到 FIN/RST 到達的 TCP 連線的生命期、不同資料包處理事件之間的延遲以及協商 TCP 連線所需的時間。 Skbtrace 也可用於偵測 TCP 資料包的重傳,即使它們被封裝在其他資料包中,並且充當 tcpdump 實用程式的簡單類似物,能夠分析某些核心程式的執行,例如在丟棄資料包時調用 kfree_skb 來釋放記憶體。
來源: opennet.ru
