[發明專利]一種數據包的協議解析方法及裝置有效
| 申請號: | 201611009744.5 | 申請日: | 2016-11-16 |
| 公開(公告)號: | CN108076017B | 公開(公告)日: | 2021-09-17 |
| 發明(設計)人: | 朱輝云;陳煥葵;張少愚;覃競才;曾岳鋒 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京德琦知識產權代理有限公司 11018 | 代理人: | 程杰;王琦 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據包 協議 解析 方法 裝置 | ||
本發明公開了一種數據包的協議解析方法,用于對所傳輸的任意數據包進行協議解析,該方法包括:獲取待解析數據包;接收協議文檔;根據所述協議文檔生成協議解碼函數;將所述待解析數據包輸入所述協議解碼函數,獲得所述待解析數據包中所包括的字段名稱以及所述字段名稱的取值。本發明還公開了一種數據包的協議解析裝置。
技術領域
本發明涉及通信技術領域,具體涉及一種數據包的協議解析方法及裝置。
背景技術
協議是指在通訊和計算機網絡中為了進行數據交換而建立的規則、標準或約定的集合,也即在通訊和計算機網絡中所傳輸的數據包均按協議規定的格式進行拼接。在現有技術中,在某些應用場景中使用的可能是固定的協議進行數據傳輸,則可以根據已知的協議對數據包各個協議字段進行解析。但是,在另一些應用場景中,所傳輸的數據包可能使用的是未知的協議,例如使用的是自定義的協議,在現有技術中無法對所傳輸的任意數據包進行協議解析。
發明內容
有鑒于此,本發明提供一種數據包的協議解析方法及裝置,以解決現有技術中無法對所傳輸的任意數據包進行協議解析的技術問題。
為解決上述問題,本發明提供的技術方案如下:
一種數據包的協議解析方法,所述方法包括:
獲取待解析數據包;
接收協議文檔;
根據所述協議文檔生成協議解碼函數;
將所述待解析數據包輸入所述協議解碼函數,獲得所述待解析數據包中所包括的字段名稱以及所述字段名稱的取值。
相應的,所述獲取待解析數據包,包括:
在數據傳輸鏈路上抓取數據包,獲得所抓取的數據包;
將所述所抓取的數據包還原為二進制數據包作為待解析數據包。
相應的,所述根據所述協議文檔生成協議解碼函數,包括:
根據所述協議文檔確定數據包長度類型,所述數據包長度類型包括定長數據包類型以及變長數據包類型;
當所述數據包長度類型為定長數據包類型時,根據所述協議文檔中的結構體信息以及所述待解析數據包的長度生成協議解碼函數;
當所述數據包長度類型為變長數據包類型時,根據所述協議文檔中的類型-長度-取值TLV信息生成協議解碼函數,或者,根據所述協議文檔中的協議類型定義調用所述與所述協議類型定義對應的解碼函數作為協議解碼函數。
相應的,所述根據所述協議文檔中的結構體信息以及所述待解析數據包的長度生成協議解碼函數,包括:
根據所述協議文檔中的結構體信息以及所述待解析數據包的長度,確定所述待解析數據包中的數據包包頭以及所述待解析數據包中的用戶數據;
判斷是否需要對所述數據包包頭進行解析;
如果需要對所述數據包包頭進行解析,根據所述結構體信息生成對所述數據包包頭進行解碼的包頭解析函數以及對所述用戶數據進行解碼的用戶數據解析函數,所述包頭解析函數以及所述用戶數據解析函數作為協議解碼函數;
如果不需要對數據包包頭進行解析,根據所述結構體信息生成對所述用戶數據進行解碼的用戶數據解析函數,所述用戶數據解析函數作為協議解碼函數。
相應的,所述方法還包括:
將所述待解析數據包中各個字段名稱的取值與對應的標準取值范圍進行比較,輸出取值不符合對應的標準取值范圍的字段名稱。
一種數據包的協議解析裝置,所述裝置包括:
獲取單元,用于獲取待解析數據包;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611009744.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:權限信息的處理方法和裝置
- 下一篇:身份認證系統、方法、裝置及賬號認證方法





