与机器学习的融合——利用机器学习推进SDN的发展
在如今信息爆炸的时代,有很多企业,团体利用机器学习技术在各个领域都取得了一定的成就。比如Amazon,淘宝这类电商网站使用的基于推荐算法的推荐系统;Google翻译等机器翻译系统所用的深度学习,NLP技术等。
SDN出现的一个原因之一,是对灵活性的需求,那么,机器学习又能为SDN带来什么?
机器学习要解决什么?
机器学习,是人工智能中与算法紧密相关的一个领域,目的是让机器不断地像人类一般学习,对输入的数据进行判断,认知乃至预测未来的数据。
机器学习,对于诸如金融领域的欺诈侦测,监控领域的机器视觉,经济领域的市场优化,股票分析中都有重要意义。
简单地举一个例子:邮政系统中的手写识别。不同的人,写同样的字有无数种写法。但是邮政系统是不可能100%依靠人力去处理信件,这样很蠢,效率很低。因此,邮政系统有必要引入基于机器的处理手段,目前的手段就是基于机器学习的手写识别系统。
现在是一个到处都充斥着海量数据的时代,随着IoT的进一步发展和大量传感器的使用,必定会产生大量数据,机器学习的首要任务就是从这些海量数据中发掘出有利的部分。
机器学习算法有哪些?
如果从学习方式来说,机器学习算法可以分为无监督学习、监督学习,半监督学习和强化学习。
一般的监督学习算法都必须通过输入数据进行训练,训练是这类算法的使用中的比较重要的过程。使用时,监督学习算法需要构建一个学习过程,将预测结果和训练数据的结果进行比较,并不断调整模型,去达到一个预期的准确率。
监督学习算法具体代表有刚才说到的k邻近算法,还有决策树、神经网络等。
无监督学习更具有挑战性。无监督学习中,输入的数据并不像之前的kNN算法中一般已经被标识,无监督学习算法就是要从无标识的数据中推断出数据中的一些内在结构,简单地说就是找规律。 无监督学习算法主要用在聚类等方面。具体代表有k-means算法,PCA等算法。
半监督学习是前两种的结合,它利用少量已经标识的样本和大量未标识的样本进行训练和分类。它会先对未标识的数据进行建模,再在此基础上对已经标识的数据进行预测。具体代表有图论算法,半监督支持向量机SVMs等。
强化学习主要运用在机器人控制之类的控制系统上。输入的数据会刺激模型并使模型做出反应,不像监督学习,输入的数据只用来检查模型对错,输入的数据直接反馈到模型,要求模型必须对此立即做出调整。
具体的代表有Q-Learning和 Temporal difference learning
与机器学习相关的还有个相当有趣的遗传算法,又称进化算法。通过借鉴进化论的一种启发式搜索算法。这个算法就是把要解决的问题模拟成生物进化的过程,通过交叉、变异、复制等产生下一代的解,淘汰适应度底的个体,留下适应度高的个体。遗传算法可以用在游戏中的AI,比如被玩家射击时会自动闪避,会根据玩家的行为做出反应,与玩家对抗。
机器学习能为SDN带来什么?
机器学习作为一种手段,可以被广泛地运用到不同的领域中。对于SDN也一样,如果我们能巧妙地运用机器学习技术,必定推动SDN的发展。
在某些需要为用户提供更好的服务质量的场合中,需要及时识别出一些关键应用(比如各种各样的物联网设备、VoIP等)的数据包。由于这些应用可能采用了随机的端口、数据被加密等各种原因,服务提供者可以采用机器学习的方式及时识别那些关键数据包,并根据实时的网络状况设置合适的QoS以满足应用程序对带宽的需要。利用机器学习技术,可以对流量进行特征分类,从而识别出某些不合法的行为,比如DDOS攻击。
如果采取了合适的测量方式再配合合适的机器学习算法,网络流量分类的性能可以有比较高的提升,比如通过端口识别应用程序,但如果应用程序采用了随机端口或端口公用,这种分类方式就会无能为力。这时就可以通过机器学习对包的长度、连接特征、数据包的方向甚至是数据包上下文信息进行有效的分类。
DPI(即深度报文检测)算是安全领域中的一个关键技术点。一方面,针对日益变化的攻击手段,传统的防火墙无法满足如今针对Web应用层的攻击的防护需求,这时就需要通过深度报文检测进行防护。另一方面,像前面所述的有关根据应用流量特征识别去改善服务质量一样,DPI也可以起到同样的作用:通过对业务应用的协议交互过程进行跟踪,并对报文中有意义的部分进行深度识别。
DPI技术并不像传统的防火墙一样基于策略匹配查询来进行入侵检测和流量控制。DPI需要通过建立特征库,依靠协议解析、报文的特征提取等手段进行分析。在这种情况下,可以采取机器学习算法(比如无监督聚类算法)构建一个特征库,为不同应用的数据包建立一个个分类,再通过协议确认、协议切分、协议域切分等各种手段提取特征,最后通过机器学习算法(如半监督学习中的分类方法)最终得出结论,判断应用程序的行为是否合法,是否存在欺诈行为等等。最后还可以采取决策树或遗传算法等进行自动反馈,对外界程序的各种行为进行反馈(比如中间人攻击中的丢掉后续报文、发送双向TCP
Reset中断连接),以达到最大程度的自动化和智能化。
与物联网的融合——SDN助力物联网往更高更远迈进
物联网,作为一股技术潮流,拥有非凡的潜力,尽管如今有很多对物联网的炒作,但仍低估了其经济影响力。物联网,看上去和SDN关系不大,但是,在笔者看来,两者的结合绝对会推动物联网的进一步发展。
物联网现状:
物联网,这个概念越来越多出现在媒体上,占据着新闻头条。但似乎这一概念并没有扩散到市场和公众视野中。
在麦肯锡研究院的一份名为《物联网:超越市场炒作以外的价值》的报告中,他们认为,到2025年物联网对经济的影响力甚至可以达到11.1万亿美元。
物联网,包含一系列可以联网的各种传感器和驱动装置,通过各种网络技术互相连接并互相影响。在物联网中,不仅是机器与机器,人与机器、人与人间都有广泛的通讯和交流,也就是把任何物和人都连接在一起。
IBM很早就提出了“智慧地球”的概念,即把感应器嵌入到电网、铁路、桥梁、公路等各种物体中并组成连接,并与互联网整合。
在可以预见的未来,大量传感器和执行控制的驱动设备将会大量被使用,它们收集外界的信息,转化为数据,在设备和人间互相传输。现有的技术正为降低实现成本而努力,但是如何处理大量要联网的设备将会成为一个无法避免的问题。
有预测估计,到2020年,全球物联网设备的数量将达到250亿台左右。如果只用传统的网络技术,难以适应如此多和各种不同的需求,如果全部设备都接入物联网,那么单单是IP地址的数量就已经不够了。虽然IPv6已经在慢慢地应用,但显然传统网络架构并不满足物联网对灵活性的需求。
物联网技术:
物联网设备有很多种类型,现在已经有很多产品都跨入物联网的范畴,比如数码相机等消费电子产品,咖啡机、洗衣机等家用电器,烟雾探测器、婴儿监视器等安全产品,机器人、血压计、心率探测、智能手环等各种设备。
对于创客来说,可以用于开发物联网的非开源/开源硬件也很多,比如Arduino,树莓派,intel
Edison等等。这些硬件从尺寸上有大有小,层次也各有不同。比如Arduino,其核心为一块Atmel AVR单片机(8-bit
ATmega328)其运行频率仅20MHz,无操作系统,功耗相当低,有着软实时的特性,适合用于数据采集和控制。而树莓派,有着一颗700MHz运行频率的ARM11处理器,支持完整的系统,可以用于复杂的分析、处理工作。
下图分别为Arduino UNO和树莓派:
单单两款开源硬件已经有如此大的差别,更不要说市场上其他各种类型的硬件了。至于不同硬件接入互联网或与互联网交互的方式就更多变化了。
硬件可以通过以太网线,可以通过WiFi,通过蓝牙,ZigBee,RFID传输数据,又可以使用MQTT,HTTP,CoAP等各种协议,而且随着携带物联网芯片的物品的不断产生和消失,几乎不可能仅靠静态的设置来配置网络,物联网需要一个敏捷,灵活的网络。
SDN与物联网该如何融合?
对于物联网来说,如果能充分利用SDN中的某些特殊功能,将会有利于物联网的发展。
把特定的网络应用功能有序地组合起来,让流量通过这些服务功能就构成了服务链,让数据能经过各种各样的服务组件,保证安全、快速和稳定的网络服务(就好像穿过一个治安不好的城市时,不用去了解这座城市哪里安全哪里危险,只要让坐在警车里,让警察护航就可以去到目的地)。
物联网设备各种各样,可能会有各种不同的需求,比如VPN,负载均衡等,通过SDN技术,灵活、敏捷、安全地把流量转到服务链上处理,相比传统的网络服务链,基于SDN的服务链与网络拓扑的耦合度更低,配置更改更加具有灵活性,因此,当物联网设备越来越多时,使用SDN服务链将有效地缓解配置变更、服务链扩容和服务管理所带来的压力。
借助服务链,对于运营商来说,更加容易根据不同客户的需求或根据不同设备的特性设定不同的配置或策略。
前面举的Arduino和树莓派的两个例子,可以看到物联网设备的差别之大,对于物联网设备的外接传感器或数据收集器,一个温度传感器和一个监控摄像头,它们产生的数据规模和数据上传的频率也有所不同,一个控制温度传感器的Arduino主板,可能每1分钟就会发送一次监控数据,而对于一个自带储存卡的树莓派,它从摄像头收集回来的数据可能会被暂时存在本地文件系统中,每隔3小时发送一次。从上面两个例子来看,物联网设备发送数据存在着频率和规模的区别,当设备较少时,固定的QoS配置可能还能满足用户的需求,但是物联网设备数量上升速度之快,是任何保守的策略都无法应对的。
如果这时采用SDN技术实现动态负载管理和QoS配置,服务提供商可以监控并协调带宽的变化,不仅能提高带宽的使用效率,也能为用户提供更好的服务。再比如使用基于机器学习的流量分类技术,建立特征库,通过对比实时流量特征和特征库,实现带宽调度的自动化、智能化,对于服务提供商来说也许是一个不错的功能。通过SDN技术,服务提供商有能力在面对呈指数级增长的设备时处理得得心应手。
安全隐患是阻碍物联网发展的一个因素,没人会愿意让自己的健康数据透过智能手环传输数据时的漏洞被泄露出去,也没有人愿意让自己的家庭安保数据被人截获,因此根据不同用户的使用场景,对于物联网通讯会有不同的安全需求。SDN/NFV技术方便了运营商根据不同用户而实施不同的安全策略,而在更改策略时也会轻松得多。
后记:
机器学习,作为人工智能呢一个重要分支,也不过是一个工具,一个手段。它究竟能为SDN的发展起到怎样的作用,还是得靠用户能怎样运用,根据实际情况采用合适的算法以达到事半功倍。
物联网,不一定需要SDN,但是,如果我们让SDN技术与物联网相融合,无论如何,物联网肯定能从SDN的发展中得到好处,SDN对于物联网的未来发展有重要意义,我们也会不留遗力地推动SDN的发展并推动SDN与物联网的融合。
本文转自d1net(转载)