[發明專利]旁路解析與還原達夢數據庫協議中SQL命令和參數的方法在審
| 申請號: | 201910839724.8 | 申請日: | 2019-09-06 |
| 公開(公告)號: | CN112468430A | 公開(公告)日: | 2021-03-09 |
| 發明(設計)人: | 龔建國;何建鋒 | 申請(專利權)人: | 西安交大捷普網絡科技有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L29/08;G06F16/25 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710075 陜西省*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 旁路 解析 還原 數據庫 協議 sql 命令 參數 方法 | ||
1.旁路解析與還原達夢數據庫協議中SQL命令和參數的方法,其特征在于,包括:
旁路獲取客戶端流向數據庫服務器的數據包,根據端口號過濾得到流向達夢數據庫服務器的數據包,初步解析得到應用層數據;
解析應用層數據頭部,過濾得到待解析的數據包及其頭部包類型的值,根據頭部包類型的值確定應用層數據類型;
分別解析處理不同類型的應用層數據體,還原得到相應的的SQL命令和參數。
2.根據權利要求1所述的方法,其特征在于,
所述解析得到應用層數據,包括:將核心交換機的流向數據庫服務器的數據進行鏡像引流,解析得到應用層數據,應用層數據包括頭部與數據體;
所述過濾得到待解析數據包,包括:若應用層數據總長度小于其頭部長度,排除該數據包、不解析;若應用層數據總長度小于頭部長度與數據體長度之和,該數據包不完整、需要進行組包。
3.根據權利要求1或2所述的方法,其特征在于,對應用層數據頭部解析:第1-4個字節的值為頭部類型,第5-6個字節的值為頭部包類型,第7至8個字節的值為數據體長度;
若頭部包類型的值為0x1,表示登錄包,進行第一解析流程;
若頭部包類型的值為0x05,表示SQL請求包,進行第二解析流程;
若頭部包類型的值為0xa3,表示登錄確認包,進行第三解析流程;
若頭部包類型的值為0xc8,表示客戶端軟件版本包,進行第四解析流程。
4.根據權利要求3所述的方法,其特征在于,所述第一解析流程包括:
應用層數據偏移頭部長度64字節后的4個字節為數據庫登錄名的長度,若長度為A1,則接下來A1個字節為數據庫登錄名的實際值;
繼續偏移(4+A1)字節后的4個字節為數據庫登錄密碼的長度,若長度為A2,則接下來A2個字節為數據庫登錄密碼的實際值;
繼續偏移(4+A2)字節后的4個字節為客戶端程序名的長度,若長度為A3,則接下來A3個字節為客戶端程序名的實際值;
繼續偏移(4+A3)字節后的4個字節為客戶端操作系統的長度,若長度為A4,則接下來A4個字節為客戶端操作系統的實際值;
繼續偏移(4+A4)字節后的4個字節為源主機名的長度,若長度為A5,則接下來A5個字節為源主機名的實際值。
5.根據權利要求3所述的方法,其特征在于,所述第二解析流程包括:若數據體長度為B,則應用層數據偏移頭部長度64字節后的B個字節為SQL語句的實際值。
6.根據權利要求3所述的方法,其特征在于,所述第三解析流程包括:先偏移應用層數據頭部長度64字節、再偏移16字節后的4個字節為數據庫實例名的長度,若長度為C,則接下來C個字節為數據庫實例名的實際值。
7.根據權利要求3所述的方法,其特征在于,所述第四解析流程包括:應用層數據偏移頭部長度64字節后的4個字節為客戶端程序名的長度,若長度為D,則接下來D個字節為戶端程序名的實際值。
8.根據權利要求1或2所述的方法,其特征在于,對應用層數據頭部解析,第1-4個字節的值為頭部類型,第5-6個字節的值為頭部包類型;若頭部包類型的值為0xbb,表示響應包,進行第五解析流程。
9.根據權利要求8所述的方法,其特征在于,所述第五解析流程包括:
若應用層數據偏移6個字節后的兩個字節為0x20,且應用層數據總長度為96字節,則該響應包為登錄失敗響應包,第11-12個字節的值為登錄失敗錯誤碼;
若應用層數據偏移6個字節后的兩個字節不是0x20,則該響應包為SQL語句響應包,進行第六解析流程。
10.根據權利要求9所述的方法,其特征在于,所述第六解析流程包括:
應用層數據偏移24字節后的兩個字節的值表示影響行數,繼續偏移64字節后的4個字節的值表示錯誤碼類型;若所述4個字節的值為0x7或0x2,則表示SQL查詢成功的錯誤碼;若所述4個字節的值為0x0,則表示SQL查詢失敗的錯誤碼;若所述4個字節的值為其他,則表示其他語句的失敗錯誤碼;
若所述SQL語句響應包為select語句的響應,應用層數據偏移22字節后的2個字節表示列數;若接下來2個字節為0xff,表示該數據包被分片傳輸,繼續偏移11個字節后的2個字節的值表示查詢結果的影響行數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交大捷普網絡科技有限公司,未經西安交大捷普網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910839724.8/1.html,轉載請聲明來源鉆瓜專利網。





