[發明專利]一種萬兆協議解析方法及系統有效
| 申請號: | 201310087219.5 | 申請日: | 2013-03-19 |
| 公開(公告)號: | CN103179116A | 公開(公告)日: | 2013-06-26 |
| 發明(設計)人: | 王先高;高峰 | 申請(專利權)人: | 廈門市美亞柏科信息股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 深圳市博銳專利事務所 44275 | 代理人: | 張明 |
| 地址: | 361000 福建省廈門*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 協議 解析 方法 系統 | ||
技術領域
本發明涉及一種萬兆協議解析方法及系統。
背景技術
由于互聯網高速發展,互聯網上的結構化、非結構化、半結構化數據流量也呈指數增長,根據對ISP、IDC數據機房的監測,目前很多互聯網服務商的機房數據出入口千兆已經普及,萬兆也在快速發展建設之中,所以適應萬兆流量的協議解析系統將是主流。對于鏡像數據的協議解析來說,協議解析的性能是關鍵,當前百兆、千兆協議解析系統都是基于libpcap(網絡數據包捕獲函數)來抓包,受限于libpcap本身抓包性能的影響其丟包率非常嚴重,效果非常不好,當數據流量超過協議解析的瓶頸時,原本可以解析或還原的數據就會解析出錯或還原不出來,隨著互聯網服務商機房設備的升級,百兆、千兆的方式其可用價值將逐步弱化并最終消失。
百兆、千兆的協議解析系統其本身大部分都沒有考慮多進程、多線程來并行處理數據包,沒有充分利用硬件資源,主要原因是協議解析本身需要對接收的數據包進行組包、過濾、分析,需要一種并行處理框架實現萬兆協議數據的正確還原。
發明內容
本發明要解決的問題在于,提供一種萬兆協議解析方法及系,能夠通過并行處理實現萬兆協議數據的正確還原。為解決上述問題,本發明采用的一個技術方案是:
提供一種萬兆協議解析系統,包括:網卡驅動單元、數據包處理單元、協議解析單元以及存儲單元,所述存儲單元中存儲有配置文件、數據包分發表以及協議解析數據鏈表,所述配置文件中記載有應用層設定的數據包過濾規則;所述網卡驅動單元包括:數據包處理線程ID運算模塊,用于當接收到數據包后計算出數據包的第一hash值,并將第一hash值與系統CPU個數取模得到數據包處理線程ID,以及將第一hash值關聯數據包處理線程ID并存入所述數據包分發表;以及第一數據包分發模塊,用于根據數據包處理線程ID將數據包分發到相應的CPU數據包處理線程;
所述數據包處理單元包括:虛擬網絡接口創建模塊,用于對應每個CPU分別創建一個虛擬網絡接口;數據包抓取模塊,用于根據數據包處理線程在CPU注冊的函數接收數據包;數據包過濾模塊,用于根據數據包過濾規則對接收到的數據包進行過濾,然后將過濾后的數據包通過虛擬網絡接口發送到相應的CPU;
所述協議解析單元包括:協議解析線程開啟模塊,用于對應每個CPU分別開啟一個協議解析線程;監聽模塊,用于通過協議解析線程監聽相應CPU的虛擬網絡接口;過濾規則分發模塊,用于從配置文件讀取數據包過濾規則并發送至數據包處理單元,其中,每個協議解析線程對應各自的協議解析數據鏈表;協議解析線程ID運算模塊,用于當監聽模塊監聽到虛擬網絡接口收到數據包后計算出數據包的第二hash值,并將第二hash值與協議解析線程個數取模得到協議解析線程ID;hash值比對模塊,用于檢索并判斷所述數據包分發表中是否存在與第二hash值相等的第一hash值;第二數據包分發模塊,用于當hash值比對模塊確定所述數據包分發表中存與第二hash值相等的第一hash值時,將數據包以信號量方式分發到協議解析線程ID對應的協議解析數據鏈表上;協議解析模塊,用于以信號量方式讀取協議解析數據鏈表上的數據包并對其進行協議解析、還原、入庫、建索引操作。
其中,所述配置文件還記載有線程開啟負載均衡閥值,所述存儲單元中存儲有指標情況,所述指標情況包含線程負載值;所述協議解析單元還包括:線程開啟判定模塊,用于當hash值比對模塊確定所述數據包分發表中不存在與第二hash值相等的第一hash值時,根據指標情況判斷協議解析線程ID對應的線程負載值是否大于所述線程開啟負載均衡閥值;所述第二數據包分發模塊還用于當線程開啟判定模塊確定線程負載值大于線程開啟負載均衡閥值時,查找線程負載值最小的第二協議解析線程ID,并把數據包將以信號量方式分發到第二協議解析線程ID對應的協議解析數據鏈表上,以及將第二hash值關聯第二協議解析線程ID并存入數據包分發表;所述第二數據包分發模塊還用于當線程開啟判定模塊確定線程負載值小于線程開啟的負載均衡閥值時,直接把數據包以信號量方式分發到協議解析線程ID對應的協議解析數據鏈表上,以及將第二hash值關聯協議解析線程ID并存入數據包分發表。
其中,所述指標情況還包含協議解析線程處理的數據包總數、異常數據包數、線程CPU使用率、線程數據處理流量,所述配置文件中還記載有第一權重值和第二權重值,所述線程負載=CPU使用率*第一權重值+線程數據處理流量*第二權重值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廈門市美亞柏科信息股份有限公司,未經廈門市美亞柏科信息股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310087219.5/2.html,轉載請聲明來源鉆瓜專利網。





