專利名稱:自適應(yīng)多網(wǎng)卡捕包方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)傳輸領(lǐng)域,特別涉及一種自適應(yīng)多網(wǎng)卡捕包方法及裝置。
技術(shù)背景
網(wǎng)絡(luò)數(shù)據(jù)包捕獲、監(jiān)聽與分析技術(shù)是網(wǎng)絡(luò)安全維護(hù)的基礎(chǔ)技術(shù),同時(shí)也是網(wǎng)絡(luò)入侵的核心手段。目前的網(wǎng)絡(luò)數(shù)據(jù)包捕獲可以通過(guò)單臺(tái)設(shè)備的網(wǎng)卡或?qū)S貌栋W(wǎng)絡(luò)適配器進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)捕包,但是單臺(tái)設(shè)備網(wǎng)絡(luò)數(shù)據(jù)包處理能力受到網(wǎng)卡數(shù)據(jù)處理能力的限制,以 Intel網(wǎng)卡為例,目前服務(wù)器網(wǎng)卡分為萬(wàn)兆、千兆及百兆網(wǎng)卡,如果想達(dá)到更高級(jí)別的數(shù)據(jù)量捕獲,則需要使用專用捕包網(wǎng)絡(luò)適配器來(lái)提高系統(tǒng)的捕包性能,降低主機(jī)CPU使用率,專用捕包網(wǎng)絡(luò)適配器理論上可行,但是工程實(shí)踐中考慮到與服務(wù)器的兼容性以及價(jià)格等因素,并未廣泛使用。因此出現(xiàn)了多網(wǎng)卡捕包技術(shù),現(xiàn)有的多網(wǎng)卡捕包技術(shù)可以使用多塊網(wǎng)卡提高數(shù)據(jù)處理能力,從而大限度的提高了單臺(tái)設(shè)備的網(wǎng)絡(luò)數(shù)據(jù)傳輸能力,但由于多塊網(wǎng)卡同時(shí)工作,并不能使每塊網(wǎng)卡傳輸?shù)臄?shù)據(jù)能夠及時(shí)得到處理。發(fā)明內(nèi)容
本發(fā)明提供一種自適應(yīng)多網(wǎng)卡捕包方法及裝置,能夠在為單臺(tái)服務(wù)器配置多塊網(wǎng)卡的同時(shí),按照各網(wǎng)卡流量大小按比例分配共享緩存及存取數(shù)據(jù),保證了各網(wǎng)卡及共享緩存中的數(shù)據(jù)能夠得到及時(shí)處理。
一種自適應(yīng)多網(wǎng)卡捕包方法,所述方法包括 初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;確定各網(wǎng)卡空閑隊(duì)列上限;獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù);根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率; 共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù); 協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
所述的方法中,所述的動(dòng)態(tài)調(diào)整參數(shù)根據(jù)預(yù)設(shè)的時(shí)間間隔重新確定。
所述的方法中,所述的共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù)包括共享緩存從空閑隊(duì)列獲取數(shù)據(jù)包地址,數(shù)據(jù)包數(shù)據(jù)以DMA方式直接傳輸?shù)焦蚕砭彺嬷小?br>
所述的方法中,所述的共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù)后,數(shù)據(jù)包地址寫入網(wǎng)卡忙隊(duì)列,并將各網(wǎng)卡忙隊(duì)列根據(jù)動(dòng)態(tài)調(diào)整參數(shù)寫入數(shù)組中。
所述的方法中,所述的協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù),包括協(xié)議棧讀取數(shù)組內(nèi)容,根據(jù)數(shù)組中忙隊(duì)列存儲(chǔ)的數(shù)據(jù)包地址,讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
一種自適應(yīng)多網(wǎng)卡捕包裝置,所述裝置包括 初始化單元,用于初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存; 空閑隊(duì)列確定單元,用于確定各網(wǎng)卡空閑隊(duì)列上限;CN 102546386 A共享緩存監(jiān)控單元,用于獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù),以及根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;第一數(shù)據(jù)讀取單元,用于共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù); 第二數(shù)據(jù)讀取單元,用于協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
所述的裝置中,所述的動(dòng)態(tài)調(diào)整參數(shù)根據(jù)預(yù)設(shè)的時(shí)間間隔重新確定。
所述的裝置中,所述的第一數(shù)據(jù)讀取單元還包括 獲取子單元,用于共享緩存從空閑隊(duì)列獲取數(shù)據(jù)包地址;傳輸子單元,用于數(shù)據(jù)包數(shù)據(jù)以DMA方式直接傳輸?shù)焦蚕砭彺嬷小?br>
本發(fā)明提供了一種自適應(yīng)多網(wǎng)卡捕包方法,所述方法包括初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;確定各網(wǎng)卡空閑隊(duì)列上限;獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù);根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù);協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。本發(fā)明還提供了一種自適應(yīng)多網(wǎng)卡捕包裝置,包括初始化單元、空閑隊(duì)列確定單元、共享緩存監(jiān)控單元、第一數(shù)據(jù)讀取單元和第二數(shù)據(jù)讀取單元。本發(fā)明通過(guò)為單臺(tái)服務(wù)器配置多塊網(wǎng)卡,并根據(jù)網(wǎng)卡數(shù)據(jù)流量大小按比例分配共享緩存,提高了單臺(tái)設(shè)備處理網(wǎng)絡(luò)數(shù)據(jù)的能力,同時(shí)自適應(yīng)的捕包方式保證了數(shù)據(jù)傳輸?shù)乃俣取?br>
為了更清楚地說(shuō)明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為自適應(yīng)多網(wǎng)卡捕包方法流程圖; 圖2為自適應(yīng)多網(wǎng)卡捕包裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
本發(fā)明提供一種自適應(yīng)多網(wǎng)卡捕包方法及裝置,能夠在為單臺(tái)服務(wù)器配置多塊網(wǎng)卡的同時(shí),按照各網(wǎng)卡流量大小按比例分配共享緩存及存取數(shù)據(jù),保證了各網(wǎng)卡及共享緩存中的數(shù)據(jù)能夠得到及時(shí)處理。
一種自適應(yīng)多網(wǎng)卡捕包方法,如圖1所示,所述方法包括5101初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;5102確定各網(wǎng)卡空閑隊(duì)列上限;每個(gè)網(wǎng)卡都擁有一個(gè)空閑隊(duì)列,通常情況下網(wǎng)卡空閑隊(duì)列上限是固定分配的空閑隊(duì)列大小的80%,也可以為其他值,但空閑隊(duì)列上限應(yīng)一致, 并且所有網(wǎng)卡空閑隊(duì)列的大小之和應(yīng)大于單個(gè)網(wǎng)卡固定分配的空閑隊(duì)列;5103獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù);5104根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;空閑隊(duì)列中有效指針站空閑隊(duì)列中總指針的比例即為空閑隊(duì)列使用率,通過(guò)動(dòng)態(tài)調(diào)整參數(shù),確定各網(wǎng)卡空閑隊(duì)列的使用率;5105共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù);5106協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
所述的方法中,所述的動(dòng)態(tài)調(diào)整參數(shù)根據(jù)預(yù)設(shè)的時(shí)間間隔重新確定。
所述的方法中,所述的共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù)包括共享緩存從空閑隊(duì)列獲取數(shù)據(jù)包地址,數(shù)據(jù)包數(shù)據(jù)以DMA方式直接傳輸?shù)焦蚕砭彺嬷小?br>
所述的方法中,所述的共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù)后,數(shù)據(jù)包地址寫入網(wǎng)卡忙隊(duì)列,并將各網(wǎng)卡忙隊(duì)列根據(jù)動(dòng)態(tài)調(diào)整參數(shù)寫入數(shù)組中。
所述的方法中,所述的協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù),包括協(xié)議棧讀取數(shù)組內(nèi)容,根據(jù)數(shù)組中忙隊(duì)列存儲(chǔ)的數(shù)據(jù)包地址,讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
通過(guò)本發(fā)明動(dòng)態(tài)分配共享緩存及空閑隊(duì)列使用率的方法,可以按動(dòng)態(tài)調(diào)整參數(shù)來(lái)分配各網(wǎng)卡占用共享緩存的大小及控制共享緩存讀取數(shù)據(jù),由于空閑隊(duì)列的使用率由動(dòng)態(tài)調(diào)整參數(shù)來(lái)確定,因此共享緩存中的數(shù)據(jù)包的來(lái)源也依據(jù)動(dòng)態(tài)調(diào)整參數(shù)確定,即網(wǎng)卡傳輸數(shù)據(jù)量越大,在共享緩存中的數(shù)據(jù)越多,而由于共享緩存讀取各網(wǎng)卡的空閑隊(duì)列,因此不會(huì)造成大流量網(wǎng)卡數(shù)據(jù)已讀取,而小流量網(wǎng)卡數(shù)據(jù)一直處于等待狀態(tài)的情況,保證數(shù)據(jù)流量大的網(wǎng)卡占用更多共享緩存,以便大量數(shù)據(jù)能及時(shí)處理,同時(shí)也保證了流量較小的網(wǎng)卡傳輸?shù)臄?shù)據(jù)也能得到處理。
同時(shí)協(xié)議棧讀取共享緩存中內(nèi)容時(shí),忙隊(duì)列使用率也由動(dòng)態(tài)調(diào)整參數(shù)確定,因此協(xié)議棧讀取數(shù)據(jù)也按比例進(jìn)行,既保證了大流量網(wǎng)卡數(shù)據(jù)的快速讀取,又保證了小流量網(wǎng)卡數(shù)據(jù)不必長(zhǎng)時(shí)間等待。
一種自適應(yīng)多網(wǎng)卡捕包裝置,如圖2所示,所述裝置包括 初始化單元201,用于初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存; 空閑隊(duì)列確定單元202,用于確定各網(wǎng)卡空閑隊(duì)列上限;共享緩存監(jiān)控單元203,用于獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù),以及根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;第一數(shù)據(jù)讀取單元204,用于共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù); 第二數(shù)據(jù)讀取單元205,用于協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
所述的裝置中,所述的動(dòng)態(tài)調(diào)整參數(shù)根據(jù)預(yù)設(shè)的時(shí)間間隔重新確定。
所述的裝置中,所述的第一數(shù)據(jù)讀取單元204還包括 獲取子單元204-1,用于共享緩存從空閑隊(duì)列獲取數(shù)據(jù)包地址;傳輸子單元204-2,用于數(shù)據(jù)包數(shù)據(jù)以DMA方式直接傳輸?shù)焦蚕砭彺嬷小?br>
本發(fā)明提供了一種自適應(yīng)多網(wǎng)卡捕包方法,所述方法包括初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;確定各網(wǎng)卡空閑隊(duì)列上限;獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù);根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù);協(xié)議棧讀取共享緩存中數(shù)5據(jù)包數(shù)據(jù)。本發(fā)明還提供了一種自適應(yīng)多網(wǎng)卡捕包裝置,包括初始化單元、空閑隊(duì)列確定單元、共享緩存監(jiān)控單元、第一數(shù)據(jù)讀取單元和第二數(shù)據(jù)讀取單元。本發(fā)明通過(guò)為單臺(tái)服務(wù)器配置多塊網(wǎng)卡,并根據(jù)網(wǎng)卡數(shù)據(jù)流量大小按比例分配共享緩存,提高了單臺(tái)設(shè)備處理網(wǎng)絡(luò)數(shù)據(jù)的能力,同時(shí)自適應(yīng)的捕包方式保證了數(shù)據(jù)傳輸?shù)乃俣取?br>
雖然通過(guò)實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
權(quán)利要求
1.一種自適應(yīng)多網(wǎng)卡捕包方法,其特征在于,所述方法包括 初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;確定各網(wǎng)卡空閑隊(duì)列上限;獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù);根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率; 共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù); 協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述的動(dòng)態(tài)調(diào)整參數(shù)根據(jù)預(yù)設(shè)的時(shí)間間隔重新確定。
3.如權(quán)利要求1所述的方法,其特征在于,所述的共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù)包括共享緩存從空閑隊(duì)列獲取數(shù)據(jù)包地址,數(shù)據(jù)包數(shù)據(jù)以DMA方式直接傳輸?shù)焦蚕砭彺嬷小?br>
4.如權(quán)利要求1所述的方法,其特征在于,所述的共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù)后,數(shù)據(jù)包地址寫入網(wǎng)卡忙隊(duì)列,并將各網(wǎng)卡忙隊(duì)列根據(jù)動(dòng)態(tài)調(diào)整參數(shù)寫入數(shù)組中。
5.如權(quán)利要求4所述的方法,其特征在于,所述的協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù), 包括協(xié)議棧讀取數(shù)組內(nèi)容,根據(jù)數(shù)組中忙隊(duì)列存儲(chǔ)的數(shù)據(jù)包地址,讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
6.一種自適應(yīng)多網(wǎng)卡捕包裝置,其特征在于,所述裝置包括 初始化單元,用于初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;空閑隊(duì)列確定單元,用于確定各網(wǎng)卡空閑隊(duì)列上限;共享緩存監(jiān)控單元,用于獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù),以及根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;第一數(shù)據(jù)讀取單元,用于共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù); 第二數(shù)據(jù)讀取單元,用于協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述的動(dòng)態(tài)調(diào)整參數(shù)根據(jù)預(yù)設(shè)的時(shí)間間隔重新確定。
8.如權(quán)利要求6所述的裝置,其特征在于,所述的第一數(shù)據(jù)讀取單元還包括 獲取子單元,用于共享緩存從空閑隊(duì)列獲取數(shù)據(jù)包地址;傳輸子單元,用于數(shù)據(jù)包數(shù)據(jù)以DMA方式直接傳輸?shù)焦蚕砭彺嬷小?br>
全文摘要
本發(fā)明提供了一種自適應(yīng)多網(wǎng)卡捕包方法,所述方法包括初始化網(wǎng)卡,為網(wǎng)卡分配共享緩存;確定各網(wǎng)卡空閑隊(duì)列上限;獲取各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并根據(jù)各網(wǎng)卡網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量的比例確定動(dòng)態(tài)調(diào)整參數(shù);根據(jù)動(dòng)態(tài)調(diào)整參數(shù)分配各網(wǎng)卡占用共享緩存大小及空閑隊(duì)列使用率;共享緩存同時(shí)讀取并存儲(chǔ)各網(wǎng)卡數(shù)據(jù)包數(shù)據(jù);協(xié)議棧讀取共享緩存中數(shù)據(jù)包數(shù)據(jù)。本發(fā)明還提供了一種自適應(yīng)多網(wǎng)卡捕包裝置,包括初始化單元、空閑隊(duì)列確定單元、共享緩存監(jiān)控單元、第一數(shù)據(jù)讀取單元和第二數(shù)據(jù)讀取單元。本發(fā)明提高了單臺(tái)設(shè)備處理網(wǎng)絡(luò)數(shù)據(jù)的能力,同時(shí)自適應(yīng)的捕包方式保證了數(shù)據(jù)傳輸?shù)乃俣取?br>
文檔編號(hào)H04L12/56GK102546386SQ20111032215
公開日2012年7月4日 申請(qǐng)日期2011年10月21日 優(yōu)先權(quán)日2011年10月21日
發(fā)明者劉凡, 劉靜, 肖新光, 邱勇良 申請(qǐng)人:北京安天電子設(shè)備有限公司