當前位置:
首頁 > 最新 > 淺析機器學習在網路測量和網路數據分析中的應用

淺析機器學習在網路測量和網路數據分析中的應用

淺析機器學習

在網路測量和網路數據分析中的應用

冉泳屹 I 文

引言

隨著雲計算、物聯網、社交網路等信息與通信技術的快速發展,網路數據成爆髮式增長,信息社會進入了大數據時代。大數據的湧現不僅改變著人們的生活與工作方式、企業的運作模式,同時也深深地影響著不同的科研領域,其中包括網路測量和網路數據分析。

網路測量及網路數據分析是獲取網路數據、網路性能、網路可用性及安全性等信息的有效手段和方法(如圖1),也是計算網路的重要研究方向,長期以來受到學術界和工業界的持續關注和研究。Markets and Markets網站[1]分析指出,網路分析的市場規模將從2015年的7.6億美元增長到2020年的23.2億美元。在每年的SIGCOMM、SIGMETRICS等頂級會議中,都會有相當數量的文章致力於網路測量/監控的研究。同時,Cisco、華為等大型網路設備供應商以及很多初創公司(例如:Pluribus Networks, Logic Monitor, Big monitoring fabric),也都致力於網路測量及分析的研究和產品開發 。

圖1. 網路測量及分析的功能解析

網路測量及分析的研究現狀

對於高速鏈路(如:40Gbps,100Gbps及以上),一方面,數據包的到達時間間隔較小,再除去讀取緩存的時間(cache miss,需要讀取memory),每個包的可用處理時間極短,比如: 40 Gbps (OC-768) 鏈路的數據包(包平均大小為1Kbits)到達間隔僅為25ns;另一方面,網路設備的SRAM或者TCAM大小有限,很難存儲所有流以及測量任務的counters。

為了利用有限的硬體資源獲得精度儘可能高的網路測量,常用的演算法有Sampling、Streaming 和Sketch

1)Sampling:為了減少包處理和內存開銷,我們可以採樣一部分網路數據包進行統計分析。一些常用的工具,如NetFlow和sFlow ,都基於採樣技術。這一技術方法最大的缺點在於:高採樣率需要維護很多counters,消耗大量資源,而較低的採樣率又會導致信息丟失和測量精度降低。

2)Streaming 和Sketch:Streaming 方法最早由Munro 和Paterson[2]提出,可以利用較小的內存和一次訪問來處理一個較長的數據包序列。Sketches [3, 4] 在Streaming演算法中利用緊緻的數據結構來存儲數據包的概要信息,如Count-Min sketch, Reversible sketch等。Streaming及Sketch演算法的主要問題在於缺乏通用性,可支持的測量任務有限。 Sketch的大小還受到硬體資源的限制而影響其測量精度。

總的來說,現有解決方法主要存在以下問題

1)通過採樣、聚合的數據,信息量缺失/太少;

2)缺乏全網視圖(network-wide view)的數據測量及分析;

3)對用戶而言,採集的數據雜亂繁多,難以找到所需要的有用信息/事件。

同時,由於網路技術的發展,網路複雜度在過去幾年急劇增加。網路監控、網路安全以及動態網路管理等都急需一種機制來在線分析每秒成千上萬的網路數據和事件,也需要有效的技術手段對大量的歷史數據進行離線分析,從而使得網路測量能更快、更准地反應出當前的網路特徵,捕獲到用戶所需要的網路事件。整個網路堆棧產生的大量異構的測量數據為探索創新的解決方案和想法打開了大門。

機器學習+網路測量

很明顯,能夠表徵、檢測、定位和理解複雜行為和複雜系統的機器學習和大數據分析技術有助於揭示龐大的網路數據。雖然最近大數據分析框架和機器學習取得了很大進展,但它們在網路測量分析領域的應用仍未得到很好的研究和應用。近來,研究人員已經開始將機器學習特別是深度學習方法,與網路測量相結合,分析各種網路事件和網路的動態特性。

1

機器學習框架

圖2 Net2Vec框架

雖然在過去幾年裡出現了很多可易於研究人員訓練、評估神經網路模型的深度學習框架(e.g. Torch, Tensorflow),但由於通信網路本身的高吞吐量和低延遲需求,很少有工作致力於將深度學習框架開發並部署於數據通信網路。

為了填補這方面的空白,Roberto Gonzalez等人[8]提出了一個名為Net2Vec的框架(如圖2)。Net2Vec的主要目的是為數據分析者提供一個在網路中開發和部署機器學習方法的框架。網路流量由高速數據包序列組成,攜帶了如文本序列、圖像、語音等信息。現有(深度)學習演算法已經在這類序列分析任務中表現出卓越的性能,因此Net2Vec旨在將這些最先進的機器學習方法應用於網路。在框架中,網路流量數據從網路介面或其他來源捕獲,通過選擇性過濾生成元組序列。分離器再根據用戶需求將元組拆分,為單獨的元組流提供學習演算法分析。

將機器學習框架和網路測量進行有機結合可以優化網路分析,使網路測量變得更智能化,從而更好地解決一些典型的網路問題,比如:網路中內容流行度預測、異常檢測、廣告推薦、數據流分類、錯誤預測等。

2

網路安全

網路測量的一個重要應用就是檢測網路攻擊,比如: 網路入侵檢測(Network Intrusion Detection)、DDoS攻擊檢測等。就DDoS而言,檢測主機是否受到攻擊的一個比較傳統的方法[9]就是通過檢測相同協議下流入和流出的流量差別,因為DDoS攻擊會使這個流量差別在短時間內變得很大。例如,SYN flooding攻擊就經常會導致到達的帶有SYN flag 的數據包與發出的帶有SYN和ACK flag 的數據包在數量上不對稱。 但是,對一些更加複雜的DDoS攻擊(比如:應用層DDoS攻擊、多類別DDoS攻擊)若使用類似的統計方法,會使演算法複雜度陡增(因為需要監控所有類別的應用層DDoS攻擊),因而這一統計方法可擴展性較差。另外對於一些在早期跟合法的網路行為很相似的攻擊行為,這樣的統計方法也很難識別。

將深度學習方法用於網路行為分析,可提取網路攻擊的深層特徵,對數據流序列進行分類、識別,從而判斷是否存在攻擊。例如,在文獻[10]中,作者提出的DeepDefense:通過設計一個循環深度神經網路,從網路流量序列中學習模式並跟蹤DDoS攻擊活動,從而優化了系統的false positive rate和detection rate。

3

動態網路管理

在網際網路中,由於域內/域間路由的改變、負載均衡以及鏈路錯誤等,傳輸路徑的變化會很頻繁。這些變化有時可能會導致嚴重的性能問題,比如RTT增加、擁塞、連接丟失等。Google 報告指出超過40%的用戶時延增加(至少)100ms,都是由域間路由變化所導致。網路性能的波動不僅會影響用戶體驗,還會增加營運成本 。 利用現代的網路測量技術,可以獲取很多有用的網路信息,比如:鏈路流量、數據包頭信息、Heavy Hitter等,合理的利用這些數據信息有助於網路動態管理。

由於網路設備、鏈路以及傳輸路徑數量較大,傳統的一些優化方法在進行動態網路管理(如:路徑選擇、預測)時,都面臨複雜度較大和可擴展性較差的問題。近年,隨著深度學習技術的突破以及計算能力的提升,使得將深度學習和網路動態管理成為可能。如圖3所示,Nei Kato [10]等人設計了基於深度學習的網路流量控制系統。該系統利用在邊緣路由器觀察到的網路流模式(利用OSPF方法模擬獲得)來訓練該深度網路,進而對路由進行動態管理。

圖3 基於深度學習的網路流量控制系統

總之,機器學習(特別是深度學習)已經逐漸應用到網路測量及分析的各個方面,但如何將各種學習框架及方法很好地適配到網路環境,仍需要不斷的探索和研究。

結語

當網路測量及分析遇到深度學習時,我們又是否能找到我們所需要的那「滄海一粟」?

或許

路漫漫其修遠兮。

又或許

眾里尋他千百度,驀然回首,那「一粟」卻在燈火闌珊處。

References:

[1] Network Analytics Market, https://www.marketsandmarkets.com/Market-Reports/network-analytics-market-1244.html

[2] Munro, J. Ian, and Mike S. Paterson. "Selection and sorting with limited storage." Theoretical computer science 12.3 (1980): 315-323.

[3] Moshref, Masoud, et al. "Scream: Sketch resource allocation for software-defined measurement." Proceedings of the 11th ACM Conference on Emerging Networking Experiments and Technologies. ACM, 2015.

[4] Huang, Qun, et al. "SketchVisor: Robust Network Measurement for Software Packet Processing." Proceedings of the Conference of the ACM Special Interest Group on Data Communication. ACM, 2017.

[5] Narayana, Srinivas, et al. "Compiling Path Queries." NSDI. 2016.

[6] Narayana, Srinivas, et al. "Language-directed hardware design for network performance monitoring." Proceedings of the Conference of the ACM Special Interest Group on Data Communication. ACM, 2017.

[7] Arashloo, Mina Tahmasbi, et al. "SNAP: Stateful network-wide abstractions for packet processing." Proceedings of the 2016 ACM SIGCOMM Conference. ACM, 2016.

[8] Gonzalez, Roberto, et al. "Net2Vec: Deep learning for the network." Proceedings of the Workshop on Big Data Analytics and Machine Learning for Data Communication Networks. ACM, 2017.

[9] Meng, Shicong, et al. "Volley: Violation likelihood based state monitoring for datacenters." Distributed Computing Systems (ICDCS), 2013 IEEE 33rd International Conference on. IEEE, 2013.

[10] Yuan, Xiaoyong, Chuanhuang Li, and Xiaolin Li. "DeepDefense: Identifying DDoS Attack via Deep Learning." Smart Computing (SMARTCOMP), 2017 IEEE International Conference on. IEEE, 2017.

[11] Kato, Nei, et al. "The deep learning vision for heterogeneous network traffic control: proposal, challenges, and future perspective." IEEE wireless communications 24.3 (2017): 146-153.

本文版權歸作者所有。

新加坡南洋理工CAP組


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

H2O.ai 無人驅動的機器學習工具
人工智慧——機器學習(一)

TAG:機器學習 |