專利名稱:高速網絡環境下多類型大流并行測量方法
高速網絡環境下多類型大流并行測量方法 技術領域
本發明涉及一種高速網絡環境下多類型大流并行測量方法。
背景技術:
互聯網技術的飛速發展,各種網絡應用給我們的生活帶來了極大的方便。隨著 人類對互聯網的依賴程度日益增強,確保一個暢通而安全的網絡環境顯得尤為重要。然而, 由大規模網絡安全事件爆發造成的基礎運營網絡擁堵事件頻繁發生,導致網絡運行大范圍 地受到影響,信息系統難以正常對外服務,造成重大經濟損失和社會影響。為了提供穩定的 互聯網服務,需要通過網絡流量監測深入了解網絡負載狀況,及時發現和控制大規模網絡 安全事件的擴散。早期的網絡流量監測多是基于簡單網絡管理協議(SNMP)。SNMP具有開放性好、支 持廣泛、實現簡單的特點,但這種方式無法得到網絡層以上的流量指標,而且會增加網絡設 備負擔。目前主流的網絡監測方式是Cisco公司開發的NetFlow。網絡設備中的NetFlow 根據報文五元組 < 源地址,目的地址,源端口,目的端口,協議類型 > 的值把流量歸并為 流(flow-流,是指在某時間段內通過一個觀測點的具有相同屬性的一組報文的集合。依據 應用需求的不同,flow的定義模式也有所不同,例如可以把目的IP地址相同的報文聚合為 一個流;也可以把源端口和協議類型相同的報文聚合為一個流),五元組的值相同的報文構 成一個flow。Netflow會把結束的flow和超時的flow定期上報給監控設備。NetFlow數 據信息更為豐富,能夠更好適應網絡實際需求。然而隨著網絡帶寬的提高和用戶的增多,主 干鏈路單位時間內并發業務流的數量最高已經達到幾十萬甚至上百萬,基于NetFlow的網 絡監測系統已經無法應對數量如此龐大的業務流信息。雖然抽樣策略能夠有效緩解海量數據帶來的壓力,但抽樣策略在抽樣率和測量誤 差之間存在平衡關系,而且在小時間尺度下的測量誤差較高。因此,當前主流的網絡流量信 息獲取技術尚難以滿足高速網絡監測的需求,需要尋找新的途徑。近年來,大流(heavyhitterflow)的測量和分析成為網絡流量研究的新方向。為 了敘述清楚,首先給出兩個簡要定義
流,是指在某時間段內通過一個觀測點的具有相同屬性的一組報文的集合; 大流是指在一個測量時間段內傳輸的報文或字節數量超過一定數量(例如總數據量 的0. 1%)的流。互聯網研究領域對大流的關注始于2000年前后,多項研究結果表明,網絡流量在 不同的流聚合層次上均表現為重尾分布,即絕大部分流量集中在少量的大流中,這一現象 被稱為“E1印hantandMice”。2003年,Estan等人系統闡述了提取網絡大流的意義,并指出 了大流在網絡流量監測中的重要應用價值。大流的測量和分析是解決當前高速網絡監測困境的主要途徑,其重要意義在于(a).針對大流的測量策略可以有效緩解系統處理能力 和高速網絡帶寬之間的差距,大幅提高網絡監測系統的流量信息獲取能力;(b). DDoS(分 布式拒絕服務攻擊)、僵尸網絡、蠕蟲等資源消耗型攻擊通常會表現為某種定義模式下的大 流,通過對大流的測量和分析,可以及時發現和阻斷大規模網絡安全事件,避免造成災難性后果。大流的測量與分析是當前互聯網測量領域的研究熱點。在大流測量方面代表性的 算法主要有Estan等人提出的Sample&Hold算法和Multi-stageFilter算法、Kodialam等 人提出的RATE系列算法、Zhang等人提出的基于Trie-Tree的Flow計數法以及國內東南 大學周明中等人基于Flow的分布特征提出MGCBF算法等。這幾種算法可以有效降低存儲 空間需求,提高測量效率,但與網絡監測的需求存在一定差距一方面,采用的抽樣策略或 多解析度策略不可避免地會引入較大誤差,研究結果表明,抽樣方法導致的偏差會明顯影 響攻擊檢測的準確性;另一方面,網絡監測通常同時需要多個模式的大流信息,上述測量算 法需要為測量不同模式的大流運行不同的算法實例,嚴重削弱了算法的可擴展性。綜合以上,設計一種能夠在線準確識別多類型大流的方法是當前高速網絡流量監 測的迫切需求。
發明內容
本發明的目的就是為了解決上述問題,提供一種具有處理速度快,誤差率低等優 點的高速網絡環境下多類型大流并行測量方法。為實現上述目的,本發明采用如下技術方案
一種高速網絡環境下多類型大流并行測量方法,它的步驟為
1)在路由器或交換機類網絡設備上設置端口鏡像,使流經該網絡設備的所有網絡報文 被復制發送到網絡監控前置機;
2)前置機采用TS-LRU算法,該算法采用1+n的層次結構,每一層包含固定數量的存儲 單元;其中第一層用于保存細粒度流,其余的η層則保存需要測量的流類型,每一層保存一 種類型的流;
2. 1)當網絡報文到達時,首先在第一層根據流定義字段的并集聚合為不同的細粒度 流,每個細粒度流占用一個存儲單元,當存儲單元占滿時,新到達的細粒度流用LRU替換算 法替換一個舊的細粒度流;
2. 2)替換下來的細粒度流同時歸并到其余η層中,在η層中的處理方法一致;首先根據 所在層的流定義字段集合查找相應的流,如果存在,則歸并到該流中,如果不存在,則創建 新的流;當數量有限的存儲單元被占滿時,則用LRU-Size替換算法選擇一個舊的流替換, 丟棄被替換的流;
2. 3)如果測量時間段尚未結束,則繼續處理新的報文;否則,把第一層中的細粒度流全 部歸并到其它η層中相應的流;
3)在每一個測量時間段結束時,TS-LRU向網絡監控設備報告流經該節點的大流,以及 其中包含的報文數量或字節數量。所述步驟2)中,細粒度流的定義字段集合是所要測量的多種流定義字段集合的并集,其典型定義為五元組集合,即
〈源地址,目的地址,源端口,目的端口,協議〉。所述步驟2)中,LRU-Size替換算法引入一個動態調整因子M,并為每一個流引入 一個尺寸因子S,當有屬于該流的細粒度流到達時,細粒度流中的報文數量累加到尺寸因子 S;當流因長時間沒有細粒度流到達而被LRU機制選中作為淘汰對象時,則檢查S的值,如果 S=0,則淘汰該流;如果S>0,則S=S-M,繼續檢查鏈表中前一個流。其中動態調整因子M的值 初始為1,當為了淘汰一個對象而檢查的距離過長時,將其值增加1。所述步驟2) TS-LRU算法具體的處理流程為
(1)從網絡接口捕獲一個報文,提交給TS-LRU;
(2)把該報文加入第一層中的細粒度流,細粒度流為新建或已有的細粒度流,具體步驟
為
(2. 1)根據細粒度流的定義,取報文相關字段,計算哈希(Hash)值; (2. 2)根據哈希值在第一層中定位細粒度流,如果存在對應的細粒度流,則更新相應的 細粒度流,并將其移動到第一層的頭部;如果不存在,則新建一個細粒度流,并將其加到第 一層的頭部;
(2. 3)如果第一層的存儲單元數量超過預先設的長度,則用LRU策略淘汰鏈表最后的 細粒度流;
(3)如果有細粒度流從第一層被淘汰,則將其分別加入其他層,具體步驟為 (3. 1)根據流的定義,取相關字段,計算哈希值;
(3. 2)根據哈希值在底一層中定位流,如果存在對應的流,則更新相應的流,并將其移 動到第一層的頭部;
(3. 3)如果第一層中不存在相應的流,則從第一層的尾部開始檢查流狀態,用LRU-Size 策略選擇一個流淘汰,并把新的流放入騰空的存儲單元;然后把所有檢查過的單元一起移 動到第一層的頭部,并更新其中的流狀態值;
(4)如果測量時間段還沒結束,則轉到步驟(1),處理新的報文;如果已經結束,則把第 一層中的細粒度流分別歸并到其他各層,向監控服務器報告測量結果,即保存在各層中的 不同類型的流,最后清空1+n層中的所有存儲單元,轉到步驟(1),開始新的測量時間段。本發明中,LRlKLeastRecentlyUsed)最近最久未用替換算法,計算機領域一種常 用的緩存置換策略。LRU-Size:針對LRU用于測量大流所表現出的問題,提出的對LRU替換算法的改 進,為每一個對象引入一個尺寸因子,在選擇一個對象置換時,既考慮到對象的更新時間也 考慮到對象的相對大小,只有長時間未更新且相對較小的對象才能被替換。FGF(FineGrainFlow)細粒度流,其定義字段集合是多類型流定義字段集合的并 集。例如,如果我們需要測量兩種模式的流,分別用字段集合<A,B>和<B,C>定義,則FGF 用<A, B, C>定義。L1 =TS-LRU中的第一層鏈表,用于存儲FGF,用LRU替換策略管理。LSfLSn :TS_LRU中的其它η層鏈表,分別用于存儲不同類型的流,用LRU-Size替 換策略管理。本發明的優點為1.當需要同時測量多種類型的大流時,處理速度快。TS-LRU把網絡報文先歸并到FGF,等FGF被第一層淘汰時,再將其分別加入η種不 同類型的flow中。這樣避免了每一個報文單獨加入不同類型的流,可以節省大量的處理時 間。舉例來說,假設我們共需要測量4種類型的流,某個流共有100個報文集中到達,如果 用普通方法,則需要處理400次,而用TS-LRU,需要處理的次數是100+4=104。網絡流量已經被證實在不同層次上呈冪率分布,少量的大流占據了流量的絕大部 分。FGF也可看作流的一種,而LRU機制具有保留處于活躍狀態的大FGF的功能,所以大部 分報文都在第一層中聚合為大的FGF后才進入其它η層,可以極大地降低處理負擔。實驗結果表明,在同時測量多類型大流的情況下,TS-LRU的處理速度具有明顯優 勢。2.測量誤差率低
如前所述,網絡流量在不同層次上呈冪率分布,少量的大流占據了流量的絕大部分,所 以大流的報文到達密度明顯大于一般的流。LRU-Size中的LRU策略可以充分利用這一特 征,把大流保留下來。但大流的到達并非勻速,也有間歇性,單純的LRU會導致部分大流被 誤淘汰。LRU-Size中的Size部分則考慮了淘汰候選對象的報文數量,如果一個流前期到達 報文數量多,則可以免于該次淘汰。前期到達報文數量越多,流可以免于淘汰的次數越多。
圖1為TS-LRU應用場景圖; 圖2為TS-LRU的總體結構;
圖3為TS-LRU總體處理流程;
圖4為把報文加入TS-LRU的Ll層的方法;
圖5為把FGF分別加入TS-LRU的LSfLSn層的方法。其中,1.路由器,2.前置機,3.網絡監控服務器,4.網絡監控終端。
具體實施例方式下面結合附圖與實施例對本發明做進一步說明。為了在高速網絡環境下同時識別、提取不同類型的大流,設計了 TS-LRU (Two-StageLRU, 二階LRU替換)方法。TS-LRU的應用場景如圖1所示,在路由器1 或交換機等網絡設備上設置端口鏡像,使流經該設備的所有網絡報文被復制發送到網絡監 控前置機2。前置機2運行TS-LRU,TS-LRU把到達的報文歸并為流。在每一個測量時間段 結束時,TS-LRU能夠向網絡監控服務器3和網絡監控終端4報告流經該節點的大流。大流測量的困難主要在于高速存儲空間的限制。高速網絡線路單位時間 內并發流的數量已近達到幾十萬甚至上百萬,數量如此龐大的流只適合于存儲在 DRAM (DynamicRandom-AccessMemory,動態隨機存儲器)中,但DRAM的訪問速度慢,難以滿 足高速網絡的處理需求。SRAM(StaticRandom-AccessMemory,靜態隨機存儲器)訪問速度 快,但空間有限,價格昂貴。如何在有限的空間內識別并保留大流,是一個比較困難的問題。為了更全面、有效地了解網絡運行狀況,網絡監控系統通常需要從多個角度來測 量網絡流量,即把同一報文歸并到不同類型的流中,例如,一個監控系統典型地需要以下流定義類型〈源地址 >、< 目的地址〉,〈源端口,協議 >,< 目的端口,協議〉等。每一種流定 義各有用途,例如按< 目的地址〉歸并流可以發現端口掃描行為,按< 目的地址〉歸并則可 以發現DDoS攻擊。但要同時測量多種定義類型的大流,通常情況下需要運行測量算法的多個實例, 這樣就會導致計算量和存儲空間需求成倍增加,嚴重影響測量系統的測量能力和可擴展 性。利用網絡流量分布特征,以LRU替換算法為基礎,設計了 TS-LRU (Two-StageLRU) 測量方法。TS-LRU是一個1+n的層次結構,每一層包含固定數量的存儲單元。其中第1層 用于保存FGF,其余的η層則保存需要測量的流類型,每一層保存一種類型的流。TS-LRU的 總體結構如圖2所示。當網絡報文到達時,首先在第一層根據流定義字段的并集聚合為不同的FGF,每個 FGF占用一個單元,當存儲單元占滿時,新到達的FGF用LRU (LeastRecentlyUsed,最近最 久未用)替換算法替換一個舊的FGF。替換下來的FGF同時歸并到其余η層中,η層的處理方法一致首先根據所在層的 flow定義字段集合查找相應的流,如果存在,則歸并到該流中,如果不存在,則創建新的流。 當數量有限的存儲單元被占滿時,則用LRU-Size替換算法選擇一個舊的流替換,丟棄被替 換的流。LRU-Size替換算法是我們在傳統LRU替換算法基礎上的改進。單純的LRU淘汰最 長時間沒有報文到達的流,這樣會導致暫時處于低速期的大流被錯誤地淘汰。LRU-Size替 換算法引入一個動態調整因子M,并為每一個流引入一個尺寸因子S,當有屬于該流的FGF 到達時,FGF中的報文數量累加到尺寸因子S ;當流因長時間沒有FGF到達而被LRU機制選 中作為淘汰對象時,則檢查S的值,如果S=0,則淘汰該流;如果S>0,則S=S-M,繼續檢查鏈 表中前一個流。這樣,已經有較多報文的流即使最近一段時間沒有報文到達,也可以避免被 淘汰,從而解決了誤淘汰大流的問題。在測量時間段的最后,把第一層中保留下來的FGF分別加入η層中相應的流中,并 向網絡監控服務器輸出報文數量或字節數量超過閥值的流,即大流.
TS-LRU處理步驟(見流程圖3)
1.從網絡接口捕獲一個報文,提交給TS-LRU
2.把該報文加入Ll中的FGF(新建或已有的FGF),具體步驟(見流程圖4)為 2. 1根據FGF的定義,取報文相關字段,計算哈希(Hash)值;
2. 2根據哈希值在Ll中定位FGF,如果存在對應的FGF,則更新相應的FGF,并將其移動 到Ll的頭部;如果不存在,則新建一個FGF,并將其加到Ll的頭部;
2.3如果Ll的存儲單元數量超過預先設的的長度,則用LRU策略淘汰鏈表最后的FGF
3.如果有FGF從Ll被淘汰,則將其分別加入LS廣LSn,以加入LSl為例,具體步驟(見 流程圖5)為
3. 1根據流的定義,取相關字段,計算哈希值;
3. 2根據哈希值在LSl中定位流,如果存在對應的流,則更新相應的流,并將其移動到Ll的頭部;;
3. 3如果LSl中不存在相應的流,則從LSl的尾部開始檢查流狀態,用LRU-Size策略 選擇一個流淘汰,并把新的流放入騰空的存儲單元。然后把所有檢查過的單元一起移動到LSI的頭部,并更新其中的流狀態值。 4.如果測量時間段還沒結束,則轉到步驟1,處理新的報文;如果已經結束,則把 Ll中的FGF分別歸并到LS廣LSn,向監控服務器報告測量結果,即保存在LSfLSn中的不同 類型的流,最后清空所有存儲單元,轉到步驟1,開始 新的測量時間段。
權利要求
一種高速網絡環境下多類型大流并行測量方法,其特征是,它的步驟為1)在路由器或交換機類網絡設備上設置端口鏡像,使流經該網絡設備的所有網絡報文被復制發送到網絡監控前置機;2)前置機采用TS-LRU算法,該算法采用1+n 的層次結構,每一層包含固定數量的存儲單元;其中第一層用于保存細粒度流,其余的n層則保存需要測量的流類型,每一層保存一種類型的流;2.1)當網絡報文到達時,首先在第一層聚合為不同的細粒度流,每個細粒度流占用一個存儲單元,當存儲單元被占滿時,新到達的細粒度流用LRU替換算法替換一個舊的細粒度流;2.2)替換下來的細粒度流被同時歸并到其余n層中,n層中的處理方法相同首先根據所在層的流定義字段集合查找相應的流,如果存在,則歸并到該流中,如果不存在,則創建新的流;當數量有限的存儲單元被占滿時,則用LRU-Size 替換算法選擇一個舊的流替換,丟棄被替換的流;2.3)如果測量時間段未結束,則繼續處理新的報文;否則,把第一層中的細粒度流全部歸并到其它n層中相應的流;3)在每一個測量時間段結束時,TS-LRU向網絡監控設備報告流經該節點的大流,以及其中包含的報文數量或字節數量。
2.如權利要求1所述的高速網絡環境下多類型大流并行測量方法,其特征是,所述步 驟2)中,細粒度流的定義字段集合是所要測量的多種流定義字段集合的并集,典型情況下, 細粒度流的定義字段為五元組集合,即〈源地址,目的地址,源端口,目的端口,協議〉。
3.如權利要求1所述的高速網絡環境下多類型大流并行測量方法,其特征是,所述步 驟2)中,LRU-Size替換算法引入一個動態調整因子M,并為每一個流引入一個尺寸因子S, 當有屬于該流的細粒度流到達時,細粒度流中的報文數量累加到尺寸因子S;當一個流因 長時間沒有細粒度流到達而被LRU機制選中作為淘汰對象時,則檢查S的值,如果S=0,則淘 汰該流;如果S>0,則S=S-M,繼續檢查鏈表中前一個流;其中動態調整因子M的值初始為1,當為了淘汰一個對象而檢查的距離過長時,將其值 增加1。
4.如權利要求1所述的高速網絡環境下多類型大流并行測量方法,其特征是,所述步 驟2) TS-LRU算法具體的處理流程為(1)從網絡接口捕獲一個報文,提交給TS-LRU;(2)把該報文加入第一層中的細粒度流,細粒度流為新建或已有的細粒度流,具體步驟為(2. 1)根據細粒度流的定義,取報文相關字段,計算哈希值;(2. 2)根據哈希值在第一層中定位細粒度流,如果存在對應的細粒度流,則更新相應的 細粒度流,并將其移動到第一層的頭部;如果不存在,則新建一個細粒度流,并將其加到第 一層的頭部;(2. 3)如果第一層的存儲單元數量超過預先設的長度,則用LRU策略淘汰鏈表最后的 細粒度流;(3)如果有細粒度流從第一層被淘汰,則將其分別加入其他層,具體步驟為 (3. 1)根據流的定義,取相關字段,計算哈希值;(3. 2)根據哈希值在底一層中定位流,如果存在對應的流,則更新相應的流,并將其移 動到第一層的頭部;(3. 3)如果第一層中不存在相應的流,則從第一層的尾部開始檢查流狀態,用LRU-Size 策略選擇一個流淘汰,并把新的流放入騰空的存儲單元;然后把所有檢查過的單元一起移 動到第一層的頭部,并更新其中的流狀態值;(4)如果測量時間段尚未結束,則轉到步驟(1),處理新的報文;如果已經結束,則把第 一層中的細粒度流分別歸并到其他各層,向監控服務器報告測量結果,即保存在n層中的 不同類型的流,最后清空1+n層的所有存儲單元,轉到步驟(1),開始新的測量時間段。
全文摘要
本發明涉及一種高速網絡環境下多類型大流并行測量方法。其步驟為1)在網絡設備上設置端口鏡像,使流經該設備的所有網絡報文被復制發送到網絡監控前置機;2)前置機采用TS-LRU算法,它采用1+n的層次結構,每一層包含固定數量的存儲單元;第1層用于保存細粒度流,當存儲單元不夠時用LRU策略選擇一個細粒度流淘汰;其余n層保存需要測量的流類型,每一層保存一種類型的流,第一層淘汰下來的細粒度流會被分別歸并到n層中相應的流中,當存儲單元不夠時,用LRU-Size策略選擇并淘汰一個流;3)在每一個測量時間段結束時,TS-LRU向網絡監控設備報告流經該節點的大流,以及其中包含的報文數量或字節數量。
文檔編號H04L12/26GK101834763SQ20101020327
公開日2010年9月15日 申請日期2010年6月25日 優先權日2010年6月25日
發明者林豐波, 王風宇, 胡毅, 郭山清, 龔斌 申請人:山東大學