本申請涉及一種應用程序的抓包方法、裝置、電子設備和存儲介質,應用于數據處理技術領域,其中,方法包括:獲取與目標應用程序對應的抓包管理的動態鏈接庫文件;將動態鏈接庫文件注入目標應用程序;調用動態鏈接庫文件中的框架初始化函數,以初始化目標應用程序的數據平面開發套件DPDK抓包框架;獲取與目標應用程序對應的抓包工具的可執行文件;通過抓包工具的可執行文件,對目標應用程序進行抓包。以解決現有技術中,DPDK應用程序不會主動啟用抓包框架,需要由應用程序開發者根據實際需要自行啟用,浪費了開發精力,并且,抓包效果較差的問題。
技術領域
本申請涉及數據處理技術領域,尤其涉及一種應用程序的抓包方法、裝置、電子設備和存儲介質。
背景技術
近年來, 隨著網絡的普及, 互聯網用戶越來越多, 隨之帶來的訪問流量也越來越大。在日常工作中, 會經常涉及到網絡方面的排錯。在傳統Linux TCP/IP協議棧中, 通??梢越柚趇p、ifconfig、ss、netstat等工具來查看當前環境中的網絡情況, 通過tcpdump、wireshare等工具來對當前環境進行抓包分析, 以便作為排錯時的相關依據。
在DPDK(數據平面開發套件,Data Plane Development Kit)場景下, 由于采用了Kernel Bypass(內核旁路)的技術, 繞過了Linux內核TCP/IP協議棧對數據包的處理, 而常用的網絡排錯工具都是基于Linux內核實現, 所以在DPDK場景中, 無法通過這些工具來進行定位排錯。
相關技術中,為了解決無法通過tcpdump、wirshare等工具抓取DPDK應用程序數據包的問題, 在DPDK 16.07的版本中引入了一個DPDK數據包捕獲開發框架: librte_pdump,同時提供了DPDK-pdump工具, 使用該工具可以抓取被DPDK應用程序接管的指定接口、隊列的數據包。
但是,雖然通過librte_pdump、DPDK-pdump可以實現對DPDK應用程序抓包的功能,但是是有前提條件的: 在DPDK應用程序中必須調用rte_pdump_init函數來初始化抓包框架, 否則DPDK-pdump工具是抓不到的。而默認情況下,DPDK應用程序不會主動啟用抓包框架, 需要由應用程序開發者根據實際需要自行啟用,浪費了開發精力,并且,抓包效果較差。
發明內容
本申請提供了一種應用程序的抓包方法、裝置、電子設備和存儲介質,用以解決現有技術中,DPDK應用程序不會主動啟用抓包框架, 需要由應用程序開發者根據實際需要自行啟用,浪費了開發精力,并且,抓包效果較差的問題。
第一方面,本申請實施例提供了一種應用程序的抓包方法,包括:
獲取與目標應用程序對應的抓包管理的動態鏈接庫文件;
將所述動態鏈接庫文件注入所述目標應用程序;
調用所述動態鏈接庫文件中的框架初始化函數,以初始化所述目標應用程序的數據平面開發套件DPDK抓包框架;
獲取與目標應用程序對應的抓包工具的可執行文件;
通過所述抓包工具的可執行文件,對所述目標應用程序進行抓包。
可選的,所述獲取與目標應用程序對應的抓包管理的動態鏈接庫文件,包括:
獲取與目標應用程序對應的DPDK源碼包;
編譯所述DPDK源碼包中的抓包管理庫,得到所述抓包管理的動態鏈接庫文件。
可選的,所述編譯DPDK源碼包中的抓包管理庫,得到抓包管理的動態鏈接庫文件,包括:
獲取配置參數,所述配置參數用于指定所述動態鏈接庫文件的編譯路徑;