[發明專利]一種基于零拷貝技術的高速網絡數據包捕獲方法有效
| 申請號: | 200810097512.9 | 申請日: | 2008-05-09 |
| 公開(公告)號: | CN101267361A | 公開(公告)日: | 2008-09-17 |
| 發明(設計)人: | 范兵;薛鵬 | 申請(專利權)人: | 武漢飛思科技有限公司 |
| 主分類號: | H04L12/26 | 分類號: | H04L12/26;H04L12/56 |
| 代理公司: | 北京捷誠信通專利事務所 | 代理人: | 魏殿紳;龐炳良 |
| 地址: | 430000湖北省武漢市東湖開發區*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 拷貝 技術 高速 網絡 數據包 捕獲 方法 | ||
技術領域
本發明涉及網絡流量監測分析領域,具體地說是一種基于零拷貝技術的高速網絡數據包捕獲方法。
背景技術
流量指標是網絡運行和維護過程中重要的指標之一,它是網絡規劃設計、協議設計、業務部署、流量工程實施、攻擊檢測、故障診斷等的基礎。通過網絡流量的監測和分析可以獲得網絡性能信息,網絡服務狀況以及網絡中存在的攻擊或者弱點。流量監測和分析技術被廣泛應用到防火墻、入侵檢測和協議解碼以及流量監測系統中,數據包捕獲是流量監測和分析的前提和第一步驟,它決定了基于流量監測和分析的系統的性能,通常數據包捕獲是由數據包捕獲程序通過網卡捕獲數據包。目前絕大部分的流量分析監測系統都是借助libpcap等函數庫完成數據包的捕獲,在低速網絡的情況下可滿足需求。
然而,隨著網絡技術的不斷發展,網路鏈路的速率迅猛增長,已經開始從Mbit/s邁向Gbit/s,在不久的將來還可能會發展至40Gbit/s甚至是Tbit/s。千兆網卡和千兆交換機已經開始逐步進入主流市場,幾乎每個新的局域網用戶都會采用此項技術,一個普通家庭用戶所能夠獲得的帶寬比幾年前一個公司獲得的帶寬還要大。網絡應用的普及與網絡技術的發展,導致網絡流量也日益龐大。面對高速網絡,傳統的流量監測和分析技術所依賴的數據包捕獲方法遇到了諸多瓶頸問題,如PCI總線吞吐量、存儲容量、內存訪問速度、磁盤陣列訪問的速率、內存拷貝的開銷、系統調用的開銷、中斷開銷以及操作系統的任務調度機制等都對高速網絡數據包捕獲產生一定的影響。因此,使得可以滿足低速網絡的傳統的數據包捕獲方法無法應用到高速網絡中。
圖1給出了現有的低速網絡的分布式網絡數據包捕獲方法流程示意圖,如圖所示,在低速網絡中,硬件層的網卡通過DMA方式將收到的數據包傳遞給內核層的網卡驅動程序,網卡驅動程序再轉發到內核層的協議棧,數據包在協議棧中排隊等待處理,用戶層的數據包捕獲程序通過拷貝方式獲取協議棧內的數據包。所說的拷貝方式大多通過操作系統提供的socket套接字接口完成。上述的數據包捕獲方法不但要為數據包動態的分配和釋放緩存,而且需要將數據包從內核層拷貝到用戶層,這些操作均需要耗費大量的系統資源,因此無法用于高速網絡數據包的捕獲。
目前,為了克服PCI總線吞吐量、存儲容量、內存訪問速度、磁盤陣列訪問的速率、內存拷貝的開銷、系統調用的開銷、中斷開銷以及操作系統的任務調度機制等都對高速網絡數據包捕獲的限制和影響,一些研究人員和硬件產商已經開始了一番探索。有些采用網絡處理器替代通用硬件平臺來實現數據包捕獲并完成部分的流量監測和分析功能,但是采用網絡處理器的方法價格非常昂貴,且開發和升級的周期較長,大量部署不太現實;有些試圖通過專門硬件來實現數據包捕獲來實現數據包捕獲進而完成被動流量監測和分析,然而基于專門硬件的實現方式同樣價格昂貴,且系統缺乏足夠的靈活性,很難跟上當今瞬息萬變的網絡發展狀況和流量監測分析的需求。
流量監測和分析,尤其是高速網絡的流量監測分析逐漸成為一個熱門的領域。高速網絡數據包捕獲的方法在流量監測和分析技術中具有重要的應用價值。
發明內容
針對現有技術中存在的缺陷,本發明的目的是提供一種基于零拷貝技術的高速網絡數據包捕獲方法,以通用硬件平臺為基礎,基于零拷貝技術實現高速網絡數據包捕獲,具有系統開銷小,捕獲效率高,改造成本低廉的優點。
為達到以上目的,本發明采取的技術方案是:
一種基于零拷貝技術的高速網絡數據包捕獲方法,包括以下步驟:1)網卡初始化,2)數據包捕獲程序初始化,3)開始數據包捕獲,其特征在于:所說的開始數據包捕獲的步驟為:a.硬件層的網卡通過DMA方式將收到的數據包傳遞給內核層的網卡驅動程序,b.用戶層的數據包捕獲程序通過映射方式獲取網卡驅動程序收到的數據包。
在上述技術方案的基礎上,所說的網卡初始化的具體步驟為:
a.加載網卡驅動并為每塊網卡分配連續的內存塊,
b.創建至少包括以下信息的DEVICE_EXTENSION結構體:為每塊網卡分配的內存塊的地址信息,網卡打開方式標志,指向網卡結構體net_device和adapt結構體的指針,
c.在每塊網卡的adapt結構體中增加指向DEVICE_EXTENSION結構體的指針,
d.創建一個虛擬字符設備,初始化其file_operations結構,初始化與該虛擬字符設備對應的打開(open)方法、關閉(close)方法、控制(ioctl)方法、映射(mmap)方法。
在上述技術方案的基礎上,所說的數據包捕獲程序初始化的步驟為:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢飛思科技有限公司,未經武漢飛思科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810097512.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:超聲波探頭安裝盒
- 下一篇:雙光束在線實時測量光學薄膜應力的裝置及其測量方法





