一種基於會話的並行流水線過濾方法
2023-05-16 16:07:21 1
專利名稱::一種基於會話的並行流水線過濾方法
技術領域:
:本發明屬於計算機網絡和數據通信
技術領域:
,具體涉及一種基於會話的並行流水線過濾方法。
背景技術:
:隨著網際網路的發展和攻擊者的工具與手法的升級,單純的防火牆已難以滿足網絡與信息安全的要求,網絡管理需要考慮整個安全體系的綜合協調性。而對應用層內容進行過濾代表著一種網絡安全的新理念(參見中國發明專利公開號為200710121322.1的文獻)。在通常的計算機網絡中,會話(Session)指的是兩臺主機之間的虛擬連接,依此完成一次具體的網絡應用。根據網絡數據傳輸的特點,可定義具有相同五元組(源/目的IP位址、源/目的埠和協議)的報文屬於同一個半流,則由任意一個半流及其反射半流(交換IP位址以及埠後形成的半流)可確定一個會話。一個會話通常包含多個網絡報文。然而在負載分配過程中如果不將整個會話分配到一個處理單元,可能會破壞原始流特性,而在網絡安全應用(如內容過濾系統、惡意代碼過濾系統等)中,這可能是致命的——目前還不能基於獨立報文檢測出報文中是否滲入有害內容,只有捕獲會話的部分或全部報文,通過報文拼接、重組以後,才可以檢測出內容是否有害。但是應用層的內容過濾與網絡埠過濾處理相比,要求大量的計算資源,很多情況下高達100倍甚至更高。因而,如果在網關處對流經的網絡數據內容進行處理,帶來的問題是必然嚴重影響到網關性能的下降。這就是所謂的內容處理障礙。為了突破內容處理障礙,達到實時地分析網絡內容和行為,需要採用行為加速和內容分析新技術,方能避免影響系統性能。並行處理(ParallelProcessing)是計算機系統中能同時執行兩個或更多個處理單元的一種計算方法。而這種處理方法正好可以解決目前應用層分析過程中碰到的性能瓶頸。目前基於會話的過濾處理過程,如圖l所示流量流入組件接收乙太網數據報文,經過數據包分析組件確定報文所屬會話後,交給數據組件。數據組件將屬於同一會話的載荷數據提取出來,交給過濾組件進行內容過濾,判斷內容是否正常。若數據正常,則將報文交給TCP/IP協議棧,使之經過正常的網絡分發處理後流出;若數據不正常(如包含病毒等非法信息),則將報文做丟棄等控制操作。內容過濾的並行處理可以基於不同粒度進行,如基於網絡報文層和基於應用協議層進行,而本發明首次提出基於會話層的並行內容過濾處理。基於網絡報文層的並行過濾,需要為並行處理維護大量的數據信息及狀態信息,並行同步開銷大,並行的整體效率不高。基於應用協議層次的並行過濾,會導致負載不均衡,部分協議(如HTTP)處理量大,其他協議則小。本發明提出的基於會話的並行流水線過濾方法,指的是在會話層進行並行處理,並行處理方法需要在各處理節點間進行負載分配以實現最佳性能。本發明提出的基於會話的並行流水線過濾方法,可以以最佳方式解決應用層過濾系統的性能瓶頸,有效避免應用負載不均導致並行負載不均的缺點,同時又能保持應用層中包含的原始信息。
發明內容本發明的目的是提出一種基於會話的並行流水線過濾方法,通過在會話層對傳輸的不同數據包進行並行處理,大大提高網絡數據傳輸的效率。基於會話的並行流水線過濾框架包含流量流入組件、數據包分析組件、流水線選擇組件、流水線、TCP/IP協議棧、流量流出組件等,其中流水線包括會話、數據還原組件和過濾組件。基於會話的並行流水線框架各個組成部分的關係如圖2所示。基於會話的並行流水線過濾的方法,其步驟如下-1)、乙太網的數據包通過流量流入組件傳遞到數據包分析組件;2)、數據包分析組件將數據包按照會話的形式進行組織,並傳遞給流水線選擇組件;3)、流水線選擇組件根據會話,利用負載分配算法選擇一條會話數據處理流水線,數據包流入會話數據處理流水線中;4)、會話數據處理流水線的數據還原組件將會話中的數據包還原數據,並把數據傳入過濾組件;過濾組件判斷過濾處理的數據是否正常,並進行不同的過濾處理a)若過濾處理的數據內容正常,則將數據內容通過TCP/IP協議棧轉發出;b)若過濾處理的數據內容不正常,則關閉會話,完成了會話的過濾處理;5)、判斷會話是否結束,如果沒有結束則重複步驟l)、2)、3)和4),如果會話結束則完成一個會話的數據處理。其中,上述步驟3)中的負載分配算法指的是流水線選擇組件中流水線分配的算法,目前標準的算法為輪詢算法,按照順序分配的方式,將每次來的新會話分配到並行的流水線上。上述步驟4)的過濾組件可以依據不同的應用,分別完成內容過濾、惡意代碼過濾等不同的過濾功能。本發明的優點和積極效果如下1.由於會話的固有特點,基於會話進行並行處理,既可以避免維護過量的同步開銷,又不會導致不同應用協議的負載不均。因此可以在最佳程度上提高內容過濾的效率。2.基於會話進行並行處理,不需要對原始數據包進行修改,因此能夠保持應用層的原始信息。圖l現有技術基於會話的過濾處理圖。圖2本發明基於會話的並行流水線過濾圖。具體實施例方式以下結合附圖對怎樣實施基於會話的並行流水線過濾方法進行詳細說明。一個基於會話的並行流水線過濾方法的具體實施過程如下1、內容過濾模塊所依託系統(如防火牆)初始化,並根據系統包含的CPU數量設置會話數據處理流水線的並行數;本實施例採用4條;2、根據流水線數目和CPU數目,把流水線綁定到特定的CPU;3、流量流入組件把乙太網上的數據傳遞到數據包分析組件,數據包分析組件對流入的數據包進行分析,並將數據包按照會話進行組織;因屬於同一會話的數據包具有相同的源地址、目的地址、源埠、目的埠、協議號等基本信息,且所屬高層協議具有相應的狀態信息、時間戳等標識。當每收到一個數據包時,數據包分析組件能夠根據以上信息判斷數據包所屬會話,從而將數據包按照會話進行組織。a)判斷當前的數據包是否屬於已經存在的會話若當前的數據包不屬於已經存在的會話,則初始化一個保持會話信息、調度信息的結構session一scheduler。該結構的各個分量說明如下表所示:complexreplacetableseeoriginaldocumentpage5complextableseeoriginaldocumentpage6)表1session—scheduler分量說明b)若當前的數據包屬於已經存在的會話,則依照流入順序將數據包傳遞給會話數據處理流水線,並且更新session—scheduler結構中的session—flush分量。c)若當前的數據包中包含會話的結束標誌,則將當前的數據包傳遞給會話數據處理流水線,並且銷毀session—scheduler結構。4、流水線選擇組件根據會話,並行處理,進行流水線選擇調度;本發明的會話數據處理流水線調度指的是指多條會話數據處理流水線之間的負載分擔算法,即進行數據分發。為了保證每個會話數據包的完整性,即要求將一次會話的所有數據包都發送給同一個會話數據處理流水線。本實施例採用輪詢算法,即每來一個新的會話會依順序次序分配到流水線,實現會話數據的高速傳輸。5、會話在流水線上的處理通過流水線選擇調度,數據包傳入到並發的流水線中。流水線中的數據還原組件對相應的數據進行還原,並把還原的數據傳入到過濾組件;過濾應用組件可以進行自定義,根據不用的過濾應用,分別完成內容過濾、惡意代碼過濾等功能。過濾組件判斷過濾處理的數據是否正常,並進行不同的過濾處理。a)若過濾處理的數據內容正常,則將數據內容發送到TCP/IP協議棧,再通過流量組件流出;b)若過濾處理的數據內容不正常,則關閉會話,丟棄數據,完成會話的過濾處理;c)判斷會話是否結束,如果沒有結束則重複步驟15,如果會話結束則完成一個會話的數據處理。儘管為說明目的公開了本發明的具體實施例和附圖,其目的在於幫助理解本發明的內容並據以實施,但是本領域的技術人員可以理解在不脫離本發明及所附的權利要求的精神和範圍內,各種替換、變化和修改都是可能的。本發明不應局限於本說明書最佳實施例和附圖所公開的內容,本發明要求保護的範圍以權利要求書界定的範圍為準。權利要求1.一種基於會話的並行流水線過濾方法,其步驟包括1)乙太網的數據包通過流量流入組件傳遞到數據包分析組件,所述數據包分析組件將數據包按照會話的形式進行組織,並傳遞給流水線選擇組件;2)所述流水線選擇組件利用負載分配算法選擇一條會話數據處理流水線,將會話傳入並行的會話數據處理流水線中;3)所述會話數據處理流水線的數據還原組件將會話中的數據包還原成數據,將還原的數據傳入過濾組件,過濾組件進行如下處理若過濾處理的數據內容正常,則將數據內容通過TCP/IP協議棧轉發出;否則關閉會話,完成會話的過濾處理;4)判斷會話是否結束,若沒有結束則重複步驟1)、2)和3),否則完成會話的數據處理。2.如權利要求1所述的一種基於會話的並行流水線過濾方法,其特徵在於,所述並行的會話數據處理流水線數目根據系統包含的CPU數目進行設置。3.如權利要求1所述的一種基於會話的並行流水線過濾方法,其特徵在於,步驟2)中所述的負載分配算法釆用輪詢算法。4.如權利要求1所述的一種基於會話的並行流水線過濾方法,其特徵在於,步驟3)中的過濾組件為內容過濾組件或惡意代碼過濾組件。全文摘要本發明屬於計算機網絡和數據通信
技術領域:
,具體涉及一種基於會話的並行流水線過濾方法。本發明提出的基於會話的並行流水線過濾方法,指的是在會話層進行並行處理,以最佳方式解決應用層過濾系統的性能瓶頸,有效避免應用負載不均導致並行負載不均,同時又能保持應用層中包含的原始信息。文檔編號H04L29/08GK101345771SQ20081011887公開日2009年1月14日申請日期2008年8月26日優先權日2008年8月26日發明者吳開宇,樸愛花,範京華,維鄒,斌陳,龔曉銳申請人:北京大學