MV-Sketch介紹--網路流量異常檢測

上海地面通發表於2019-12-10

網路測量是對網路行為進行特徵化、對各項指標進行量化並充分理解與正確認識網際網路的最基本手段,支援著SDN 的發展,網路管理員可以透過網路測量掌握網路狀態,進而最佳化網路結構、改善網路服務質量,及時診斷網路故障並進行恢復。 Sketch 在較小記憶體下對重流( heavy flow )和 heavy changer (突變流))的快速檢測有助於 SDN 雲資料中心的大量部署。

 

既然提到了 Sketch 那麼我們就來介紹一下什麼是 Sketch Sketch 是一種緊湊的用於流量資料統計亞線性資料結構。 使用Hash 演算法將屬於對映到 Sketch 中,將大量網路流壓縮至小部分的記憶體空間中,無需儲存所有網路流,以達到節約記憶體的目的,並透過查詢操作獲得流量統計資料。 使用 Sketch 的原因是其 將具有相同雜湊值的流存入相同的桶內,可以在保證準確度的同時大大減少儲存空間。

 

接下來為大家介紹的是 MV-SKetch 是一種高效、緊湊、可逆的Sketch 可以 在小記憶體下實現對重流的快速檢測 主要利用MJTRY 演算法(主票選演算法) 相較於動態分配流儲存空間的方式,靜態分配的方式有助於降低記憶體管理開銷 且可以 利用SIMD 加速 MV-Sketch

 

MV-Sketch 的資料結構由 r 行 構成,每一行有 w 個桶,每個桶中記錄三個元素 Vi,j Ki,j Ci,j Vi,j 表示雜湊到這個桶內所有流的總和 Ki,j 表示當前桶內的重流候選, Ci,j 記錄當前桶內重流候選的計數值,用於判斷是否繼續保留此重流候選。 如下圖所示:

 

 

當資料包到來時,MV-Sketch 利用 r 個獨立的雜湊函式,將資料包分別對映到 1 - r 行,所對映列序 j 由雜湊值 hi(x) 決定。雜湊到某個桶之後,根據 MJRTY 演算法來更新重流候選。查詢時,根據新流和桶內重流候選是否一致來決定估計值,最後返回所有行中估計值最小值。在一個週期結束時, MV-Sketch 以是否大於設定的閾值為標準來判斷重流。

 

MV-SKetch 所使用的 MJRTY 演算法用於確定任意數量的候選人中,哪一個獲得了多數選票,所擁有票數高於總票數一半者,一定是主要候選人。 舉例說明: 假設有三位候選人A B C ,並假設按以下順序對代表進行了投票: A A A C C B B C C C B C C

記錄完第三張選票後,A 3 票領先。在處理接下來的三張選票時,將三張 A 票與三張其他票(兩張 C 票,一張 B 票)配對(抵消)。記錄所有選票之後, C 成為主要候選人。

 

演算法 1 MV-Sketch 更新演算法

MV-Sketch 借鑑 MJRTY 演算法 , 在執行更新操作時(演算法 1[2]) ,先累加 Vi,j = Vi,j + vx (Vi,j 增加新流位元組數 ) ,再將新流 x 與當前桶內重流候選 Ki,j 進行比較,若相同,那麼計數器 Ci,j 增加新流的位元組數,否則相應地減少;若減少至零下(即 Ci,j <0) ,則 x 取代 Ki,j ,且 Ci,j 取絕對值。在實際中,由於少數重流所帶流量在桶內所有流量中占主導地位,因而在一個週期結束時, MV-Sketch 可以在桶內保持準確的重流候選。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69943410/viewspace-2667752/,如需轉載,請註明出處,否則將追究法律責任。

相關文章