基于软件定义网络技术实现人工智能网络体系架构*
2018-03-29刘惠文姚海鹏张培颖
刘惠文,姚海鹏,张培颖,2
(1. 北京邮电大学 信息与通信工程学院,北京 100876;2. 中国石油大学(华东) 计算机与通信工程学院,山东 青岛 266580)
0 引言
在传统的TCP/IP网络中,路由、拥塞控制以及其他所有的网络功能都由网络协议来控制。网络中所有的设备只需按照现有的规则来完成对应的任务。随着多样化的网络服务和用户需求的出现以及网络需求的增长,单纯地改进现有的网络协议不但会使现有的网络协议变得更加臃肿,同时对网络性能的提高会比较有限。SDN的提出,使得网络出现了可编程的概念,网络的可扩展性和灵活性也大大提高[1]。基础设施服务提供商可以根据用户对网络服务的个性化需求设计SDN网络。
然而,即便是SDN网络,如果想提高用户体验(Quality of Experience,QoE),仍然需要网络的管理人员对用户的服务需求做出充分的调研,并根据调研结果来设计满足用户需求的网络。即现阶段,SDN只是为网络提供了一个“操作系统”,如何去使用这个操作系统来使得网络更加稳定和可靠仍旧是一个复杂的问题。
目前,随着深度学习等人工智能技术在学术界和产业界的火热,网络基础设施提供商已经注意到了人工智能在网络领域内的应用前景,并提出了一些网络概念,如文献[2]提出的知识定义网络(Knowledge-Defined Networking, KDN)。KDN在控制平面之上添加了一个Knowledge平面。Knowledge平面使用机器学习算法来分析从底层网络中获取的数据,并用来指导控制平面来进行转发。KDN的提出为智能化的网络管理提供了一个解决的思路和想法,但是文献[2]中并没有提出比较具体的架构和解决方案。
本文受KDN网络的启发,利用现有的技术,构建了一个可行的但是不同于KDN的人工智能网络架构。在这一架构中,控制平面不仅充当着控制着底层的网元设备的角色,还是上层获取网络信息的中转层,控制层通过北向接口与上层进行通信。在控制层之上,部署的是分布式的SDN App, 其功能是通过北向接口获取下层网络的信息并向上层提交,以及负责不同SDN域的控制器之间的信息交流。在SDN App之上部署的是分布式的计算工具或者是数据分析工具以及算法。这一架构的主要创新点如下:
1.架构为分布式的部署模式,且不仅支持单个SDN域,也支持多个互联的SDN域。
2.通过SDN 控制器的App实现“智能大脑”与SDN的相互通信,在SDN的App上构建一层通用的框架,使得模型的可扩展性更强。
1 相关工作
2016年,MESTRES A等人创新性地提出在控制平面的基础之上加入了Knowledge平面,Knowledge平面利用机器学习等技术对网络进行分析和决策。
同年,华为诺言方舟实验室推出了Network Mind, 智能网络控制系统,其核心成果CODA[12]发表在当年的SIGCOMM上。
SENDRA S等人提出了利用SDN在路由协议中使用人工智能[3],在SDN的基础上,在路由协议中采用了强化学习的技术手段来实现智能路由。
Zhu Li等人提出了在下一代网络中使用BP神经网络来进行流量预测的模型[4]。
2 人工智能网络体系架构
下面详细描述人工智能网络框架。以两个SDN域为例,其架构图如图1所示。架构主要分为三个平面部分:
图1 人工智能网络架构图
(1)数据平面, 即底层物理网络平面。底层物理网络平面的网络设备将自身采集到的流量等数据递交到本域内的控制器,然后接收由控制平面做出的路由决策。
(2)控制平面,控制平面不仅仅包含SDN控制器[5],同时也包含建立在控制器之上的App以及数据库。数据库用来保存当前域内采集到的数据,对于数据库的管理通过App来实现。控制器App是本框架的一个核心模块,其功能包括:从控制器获取底层网络数据,管理本地数据库,负责SDN域的域间控制器的通信,提供上层智能平面管理控制器的接口,充当智能集群的终端Worker的组成模块等。App充当智能平面与控制平面的接口,功能比较多。从现实的角度来说,可由一组App来实现。
(3)智能平面,为了处理底层网络大量的数据,受到Google MapReduce[6]技术的启发,在智能平面通过分布式的集群来实现对数据的分析。由于智能集群能够随时从控制平面上的分布式数据库提取底层网络的数据信息,在智能平面可以设置一个可视化的Dashboard,方便网络人员的管理和分析。
2.1 数据平面
数据平面的作用主要是收集底层网络的所有相关信息,包括拓扑、链路、流表等,然后将这些信息上传到网络大脑以供决策层使用。但是底层物理网络的异构性、多样性会带来一定难度。除此之外,还有一个十分关键的问题就是如何解决跨域数据采集。
在当前的SDN中,尽管南向接口和北向接口发展比较成熟,然而在东西向接口技术上还没有比较统一的协议类型。目前,SDN域间协同(即控制器之间的相互协同)存在着一些不同的解决方案,比如OpenDayLight社区针对ODL开发出来一款名叫ODL-SDNi的App,清华的毕军团队提出的WE-Bridge[7]。
在对相关技术研究的基础上,本文提出一种可行的基于App的跨域解决方案,如图2所示。
图2 多SDN域跨域解决方案
图2中的网元C同时属于SDN域1和SDN域2,称之为边缘网元。类似于BGP中Speaker的角色,边缘网元不仅仅负责所属的域内路由,由于其同时属于多个SDN的特殊性,还需要负责其所属的域间的路由。图中,网元C同时接受Contoller1和Controller2的控制,网元C在域内的路由接受本域内的Controller的控制,但涉及跨域路由时,需要指定主从Controller,以Master-Slave的模式接受主控制器的控制。由于边缘网元设备的功能复杂,对边缘网元的控制由App完成。图2中,主从交换机的选定由运行在Controller1和Controller2上面的App通过协商确定。
2.2 控制平面
控制平面主要由SDN控制器以及运行在SDN控制器之上的App和数据库组成,控制平面作为本系统最主要的模块之一,有着至关重要的角色。一方面协同处理数据平面和智能平面之间的信息交互,协调整个系统的运转,另一方面负责下发指令与流表,使得整个网络可以正常运转。控制器结构如图3所示。
图3 控制器结构图
在控制平面中,控制器设备有三个任务:
(1)负责对下层物理网络的日常管理。
(2)将通过南向接口采集到的数据通过北向接口进行转发。
(3)对于App指定的事务(如对边缘控制器的管理)交由App进行处理。
控制器App是控制平面层面的核心,通过统一的通信协议,可在App层面上实现异构的控制器组网。App的主要功能有:
(1)将北向接口采集到的数据写进数据库,日常管理数据库,并向上层提供数据库的接口。
(2)负责域间控制器通信以及协商。
(3)向上层提供操作控制器的API。
本文控制平面的工作并不同于ODL-SDNi和WE-Bridge。相比ODL-SDNi,本文通过App可以实现异构控制器的通信,而SDNi只支持ODL控制器间的相互通信;相比WE-Bridge,本文提出了边缘网元的概念,域间的路由变成域间协商的问题,而WE-Bridge需要较为复杂的域间路由。另外,为实现网络智能,本文在控制器之上部署了分布式的数据库。
2.3 智能平面
随着大数据技术的兴起,很多大数据的处理工具被提出来,比如基于MapReduce开源的Hadoop,后来的Spark。如今分布式计算平台和分布式存储(如HDFS[8])技术都很成熟,同时真实的网络环境也很适合分布式部署AI系统,因而本文基于分布式计算存储技术提出智能网络平面的架构,如图4所示。
图4 分布式智能平面架构
各个组件的功能如下:
Worker分为两种,一种是位于控制器之上,与控制器相对应的终端Worker,这种Worker是分布式存储和计算的基本单元,同时也是智能平面管理控制器的接口,它们可以在任意时刻调用下层的数据库。另一种Worker并不连接着控制器,只是负责把终端Worker的运算Reduce进行数据汇聚。Worker能根据Master的调度来回应其他Worker对于本Worker管辖下的数据库的读取请求。
Master是分布式计算的管理模块,负责依据AI算法对每个Worker分配计算任务,并对它们的工作进行统一的调度,同时负责协调Worker对分布式数据库里的数据的请求。
Dashboard是供网络管理人员使用的前端可视化界面,Dashboard展示的数据由Master提供,对网络的设置和更改由Manger来执行。
Manager是智能平面的操作系统,同时也是整个网络的操作系统。对智能平面的管理由Manager通过Master来实现(如针对网络的AI算法的部署),对控制器的管理由Manager经过Worker进行控制。
3 结论
本文提出了一种新型的基于SDN网络的人工智能网络架构。在这一网络中,SDN控制器不仅仅是网络管理命令的执行者,同时也是网络数据的采集器,充当着“末端神经”的功能。在SDN控制器之上,是分布式的计算以及存储单元组成的智能网络。智能网络利用AI技术和大数据来挖掘网络的特征,将对底层网络的分析结果呈现给网络管理者,用来指导网络的管理。
接下来的工作是用实验室已有的硬件Openflow交换机搭建一个实际运行的物理系统,在实际的物理设备上验证提出的人工智能网络架构的可行性。
[1] HU F, HAO Q, BAO K. A survey on software-defined network and openflow: From concept to implementation. IEEE Communications Surveys & Tutorials, 2014,16(4), 2181-2206.
[2] MESTRES A, RODRIGUEZNATAL A, CARNER J, et al. Knowledge-defined networking[J]. ACM Sigcomm Computer Communication Review, 2017, 47(3):2-10.
[3] SENDRA S, REGO A, LLORET J, et al. Including artificial intelligence in a routing protocol using software defined networks[C]// IEEE International Conference on Communications Workshops. IEEE, 2017:670-674.
[4] Zhu Li, Qin Lei, Xue kouying, et al. A novel BP neural network model for traffic prediction of next generation network.[C]// International Conference on Natural Computation. IEEE, 2009:32-38.
[5] CHIOSI M, FREEMAN B D, GUYEN H Q. Software defined network controller: USAM,U S 9436443[P].2016-09-06.
[6] DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters[C]// Conference on Symposium on Opearting Systems Design & Implementation. USENIX Association, 2008:10.
[7] LIN P, BI J, CHEN Z, et al. WE-bridge: west-east bridge for SDN inter-domain network peering[C]// Computer Communications Workshops. IEEE, 2014:111-112.
[8] GHEMAWAT S, GOBIOFF H, LEUNG S T. The Google file system[C]// Nineteenth ACM Symposium on Operating Systems Principles. ACM, 2003:29-43.
[9] XU G, MU Y, LIU J. Inclusion of artificial intelligence in communication networks and services[J]. 2017.
[10] SENDRA S, REGO A, LLORET J, et al. Including artificial intelligence in a routing protocol using software defined network[C]// 2017 IEEE International Conference on Communications Workshops (ICC Workshops), 2017: 670-674.
[11] SAHEBU K M. Artificial intelligence approach to planning and managing communication networks[C]// International Conference on Electromagnetic Interference & Compatibility, 2002:193-202.
[12] ZHANG H, CHEN L, YI B, et al. CODA: toward automatically identifying and scheduling coflows in the dark[C]// Conference on ACM SIGCOMM 2016 Conference. ACM, 2016:160-173.