学习
实践
活动
专区
工具
TVP
写文章

浅析机器学习在网络测量和网络数据分析中的应用

浅析机器学习

在网络测量和网络数据分析中的应用

冉泳屹 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组

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302G16BK500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券