一種用于數(shù)據(jù)處理通道緩沖匹配的屬性標識方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機軟件應(yīng)用層協(xié)議處理加速的技術(shù)領(lǐng)域,尤其是涉及一種用于數(shù)據(jù)處理通道緩沖匹配的屬性標識方法。
【背景技術(shù)】
[0002]目前許多應(yīng)用系統(tǒng)、網(wǎng)絡(luò)安全系統(tǒng)的建設(shè),必須深入分析、處理TCP/IP層之上的應(yīng)用層協(xié)議。而應(yīng)用層協(xié)議一般來說都比較復(fù)雜。在目前現(xiàn)有的技術(shù)架構(gòu)下,在進行應(yīng)用層協(xié)議處理時,需要先后使用多個各自獨立的模塊。這些模塊之間的聯(lián)接復(fù)雜,從而大大降低了系統(tǒng)的靈活性,并且各個模塊對緩沖區(qū)的操作具有盲目性,當數(shù)據(jù)流經(jīng)各個模塊時,模塊間的緩沖區(qū)匹配(我們把為實現(xiàn)模塊連接而進行的緩沖區(qū)操作成為模塊間的緩沖區(qū)匹配)需要進行大量的內(nèi)存復(fù)制,這無形中增加了系統(tǒng)處理時間,進而加劇了網(wǎng)絡(luò)安全系統(tǒng)處理能力不足與網(wǎng)絡(luò)流量迅速增加的矛盾。
[0003]現(xiàn)在緩沖區(qū)優(yōu)化工作主要集中在TCP/IP等底層協(xié)議上,優(yōu)化對象包括I)減少協(xié)議處理中數(shù)據(jù)的復(fù)制;2)提高緩存區(qū)處理靈活性和效率;3)多協(xié)議的高效處理。針對減少協(xié)議處理中數(shù)據(jù)復(fù)制的問題,現(xiàn)在通常使用的方法為零拷貝技術(shù),零拷貝技術(shù)通過減少或消除關(guān)鍵通信路徑影響速率的操作,降低數(shù)據(jù)傳輸?shù)牟僮飨到y(tǒng)開銷和協(xié)議處理開銷,從而有效提高通信性能,實現(xiàn)高速數(shù)據(jù)傳輸。針對提高緩存區(qū)處理靈活性和效率的問題,可以通過fast buffer的方法進行處理,fast buffer可以有效地實現(xiàn)數(shù)據(jù)在各個保護域間的流動,fast buffer主要強調(diào)了緩沖區(qū)自身的流動性、可組合性。為實現(xiàn)多層協(xié)議的高效處理,可采用ILP(Integrated Layer Processing)方法,通過將協(xié)議棧扁平化,有效減少了內(nèi)存訪問操作,可以有效地實現(xiàn)數(shù)據(jù)在多個保護域間的流動,提高了訪問效率。
[0004]上述的技術(shù)方案優(yōu)化緩沖區(qū)操作可以大大提高協(xié)議處理性能,但這些技術(shù)方案將更多的注意力放在TCP這樣較為簡單的底層協(xié)議上,不適合現(xiàn)有框架下的應(yīng)用層協(xié)議處理,且現(xiàn)有技術(shù)中內(nèi)存訪問操作頻繁,采用順序查詢的方式,緩存訪問的效率低下。故此急需一種針對相對復(fù)雜的應(yīng)用層協(xié)議,適合現(xiàn)有框架下的應(yīng)用層協(xié)議處理,就可以完全在用戶控件實現(xiàn)的技術(shù)方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于設(shè)計一種用于數(shù)據(jù)處理通道緩沖匹配的屬性標識方法,解決上述問題。
[0006]為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0007]一種用于數(shù)據(jù)處理通道緩沖匹配的屬性標識方法,包括如下步驟:
[0008]在應(yīng)用數(shù)據(jù)包流經(jīng)處理通道時,定義緩存屬性;
[0009]在輸入或輸出緩沖區(qū)中設(shè)定當前應(yīng)用數(shù)據(jù)包的所述緩存屬性;
[0010]采用當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與緩沖區(qū)中的在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性進行匹配;
[0011]若匹配成功,則通過在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性調(diào)用所述緩沖區(qū)中的在前或在后應(yīng)用數(shù)據(jù)包作為緩存輸出;
[0012]若匹配失敗,則將當前應(yīng)用數(shù)據(jù)包新增到所述緩沖區(qū)中,并采用當前應(yīng)用數(shù)據(jù)包作為緩存輸出。
[0013]優(yōu)選的,所述緩存屬性包括可寫屬性、可讀屬性、釋放緩存屬性、內(nèi)存分配屬性、緩沖時間屬性、緩沖路徑屬性、緩沖區(qū)有效空間屬性和緩沖區(qū)剩余空間屬性中的一種或多種。
[0014]優(yōu)選的,所述處理通道為采用在線動態(tài)鏈接建立的處理通道。
[0015]優(yōu)選的,采用當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與緩沖區(qū)中的在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性進行匹配的具體方法為:
[0016]將當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性進行對比;
[0017]若當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性一致,則將不同的所述緩存屬性存放到所述緩沖區(qū)中;
[0018]若當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性不一致,則不進行處理。
[0019]優(yōu)選的,將當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性進行對比的具體方法為:
[0020]判斷當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與所述緩沖區(qū)中的所述緩存屬性是否一致;
[0021]若一致時,則判斷為當前應(yīng)用數(shù)據(jù)包的所述緩存屬性對輸入到所述緩沖區(qū)中的所述緩存屬性不進行修改;
[0022]若不一致時,則判斷為當前應(yīng)用數(shù)據(jù)包的所述緩存屬性對輸入到所述緩沖區(qū)中的所述緩存屬性進行修改;
[0023]對所述緩存屬性進行修改時,判斷是否在所述緩沖區(qū)中新增所述緩存屬性;
[0024]若當前應(yīng)用數(shù)據(jù)包的所述緩存屬性包括所述緩沖區(qū)中的所述緩存屬性時,則不進行新增所述緩存屬性;
[0025]若當前應(yīng)用數(shù)據(jù)包的所述緩存屬性包括所述緩沖區(qū)中不存在的所述緩存屬性時,則判斷新增所述緩存屬性。
[0026]本發(fā)明的有益效果可以總結(jié)如下:
[0027]通過本發(fā)明采用在線動態(tài)聯(lián)接的方法建立處理通道。這樣在分析應(yīng)用層協(xié)議時,可以根據(jù)每個具體數(shù)據(jù)流的協(xié)議及其選項,在線為數(shù)據(jù)流建立最適當?shù)奶幚硗罚行У靥岣吡讼到y(tǒng)的靈活性,而又不增加額外的開銷。通過本發(fā)明增加了數(shù)據(jù)處理的精準度,進而實現(xiàn)模塊間的靈活組合。通過本發(fā)明可有效減少內(nèi)存讀寫操作,提高應(yīng)用層數(shù)據(jù)包在流經(jīng)各模塊時處理的效率。
【附圖說明】
[0028]圖1為本發(fā)明具體示例中HTTP協(xié)議的處理通道結(jié)構(gòu)示意圖;
[0029]圖2為本發(fā)明中用于數(shù)據(jù)處理通道緩沖匹配的屬性標識方法的流程示意圖;
[0030]圖3為本發(fā)明中輸入輸出緩沖屬性進行緩沖區(qū)操作的流程示意圖;
[0031]圖4為本發(fā)明中輸入輸出緩沖屬性進行緩沖區(qū)操作的改進示意圖。
【具體實施方式】
[0032]為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0033]應(yīng)用層協(xié)議數(shù)據(jù)要先后使用多個基本獨立的模塊進行處理,為標識某個具體應(yīng)用協(xié)議數(shù)據(jù)流的處理過程,我們將這個過程中所使用的模塊及其聯(lián)接方式,稱為該應(yīng)用層數(shù)據(jù)流的處理通道。由于協(xié)議及其選項的不同,每一種應(yīng)用層協(xié)議的每一次具體聯(lián)接都可能使用不同的處理通道。在協(xié)議處理過程中,數(shù)據(jù)將依次流經(jīng)通道中的各個模塊。當數(shù)據(jù)從一個模塊進入到下一個模塊時,為了從前一個模塊的輸出緩沖區(qū)得到滿足后一個模塊需要的輸入緩沖區(qū),需要進行緩沖區(qū)匹配。以HTTP協(xié)議的某個具體連接為例,它需要使用gzip解碼、HTTP格式分析,字符串轉(zhuǎn)換、規(guī)則匹配等處理模塊,它的處理通道如圖1所示,HTTP協(xié)議的聯(lián)接所使用的功能模塊及其聯(lián)接方式稱為一個通道。在這個通道中,HTTP數(shù)據(jù)包需要經(jīng)歷gzip、HTTP格式分析、字符集轉(zhuǎn)換、規(guī)則匹配等4個處理模塊,從數(shù)據(jù)包從gzip模塊的輸出緩沖區(qū)進入到HTTP格式分析模塊的輸入緩沖區(qū)的過程中,需要進行緩沖區(qū)匹配;同樣數(shù)據(jù)包從HTTP格式分析模塊的輸出緩沖區(qū)進入到字符集轉(zhuǎn)換模塊的輸入緩沖區(qū),以及字符集轉(zhuǎn)換模塊的輸出緩沖區(qū)進入到規(guī)則匹配模塊的輸入緩沖區(qū)時,同樣都需要進行緩沖區(qū)匹配。在實際系統(tǒng)中,由于功能模塊眾多,其相應(yīng)的處理通道也非常多,為了降低復(fù)雜度,通常的做法是簡化緩沖區(qū)操作,即不考慮各個模塊對輸入輸出緩沖區(qū)的需求,只是按自己方便的方式操作緩沖區(qū),在數(shù)據(jù)輸入輸出模塊時,使用內(nèi)存復(fù)制等方法進行緩沖區(qū)匹配。這種方法沒有從根本上提高系統(tǒng)的靈活性,仍然使用硬編碼方式(指將可變變量用一個固定值來代替的方法)確定模塊的連接方法。并且這種方法對緩沖區(qū)操作具有盲目性,極大地增加了數(shù)據(jù)復(fù)制量。由于網(wǎng)絡(luò)速速與DRAM (Dynamic Random Access Memory,即動態(tài)隨機存取存儲器,最為常見的系統(tǒng)內(nèi)存)訪問速度逐漸接近,以及DRAM與CPU(中央處理器)速度差距逐步增大,這些內(nèi)存復(fù)制的方式大大降低了系統(tǒng)的處理效率。
[0034]如圖2所示一種用于數(shù)據(jù)處理通道緩沖匹配的屬性標識方法,包括如下步驟:
[0035]在應(yīng)用數(shù)據(jù)包流經(jīng)處理通道時,定義緩存屬性;緩存屬性包括可寫屬性、可讀屬性、釋放緩存屬性、內(nèi)存分配屬性、緩沖時間屬性、緩沖路徑屬性、緩沖區(qū)有效空間屬性和緩沖區(qū)剩余空間屬性中的一種或多種;處理通道為在線動態(tài)鏈接建立的處理通道;
[0036]在輸入或輸出緩沖區(qū)中設(shè)定當前應(yīng)用數(shù)據(jù)包的所述緩存屬性;
[0037]采用當前應(yīng)用數(shù)據(jù)包的所述緩存屬性與緩沖區(qū)中的在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性進行匹配;
[0038]若匹配成功,則通過在前或在后應(yīng)用數(shù)據(jù)包的所述緩存屬性調(diào)用所述緩沖區(qū)中的在前或在后應(yīng)用數(shù)據(jù)包作為緩存輸出;
[0039]若匹配失敗,則將當前應(yīng)用數(shù)據(jù)包新增到所述緩沖區(qū)中,并采用當前應(yīng)用數(shù)據(jù)包作為緩存輸出。
[0040]采用當前應(yīng)用數(shù)據(jù)包的緩存屬性與緩沖區(qū)中的在前或在后應(yīng)用數(shù)據(jù)包的緩存屬性進行匹配的具體方法為:
[0041]將當前應(yīng)用數(shù)據(jù)包的緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的緩存屬性進行對比;
[0042]若當前應(yīng)用數(shù)據(jù)包的緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的緩存屬性一致,則將不同的緩存屬性存放到緩沖區(qū)中;
[0043]若當前應(yīng)用數(shù)據(jù)包的緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的緩存屬性不一致,則不進行處理。
[0044]優(yōu)選的,將當前應(yīng)用數(shù)據(jù)包的緩存屬性與在前或在后應(yīng)用數(shù)據(jù)包的緩存屬性進行對比的具體方法為: