王丹丹
(郑州工业应用技术学院 信息工程学院,河南 郑州 451100)
随着网络的高速发展以及其规模的不断扩大,基于传统分布式TCP/IP结构的网络体系存在路由转发效率低、 网站分配不均等问题[1]. 本文基于软件定义网络的路由选择及流表分配,相对于分布式的TCP/IP结构,采取集中式体系,其核心原理是将控制管理模块和数据传输模块分离开来,通过中央控制器负责流表的下发、 管理和配置,进而获取多路径即时数据,并通过分析链路负载和交换机节点数据,以实现更优化的路由选择. 同时相对于传统网络体系交换机流表存在的资源有限的问题,笔者基于软件定义网络的流表分配,通过流量预测算法,得到了新的数据自适应方法,其使得交换机只负责数据流的转发,从而提升了数据传输模块的传输可靠性以及数据流的传输速度,对于流表超时现象则通过OpenFlow协议加以制约,以更好地实现网络系统的优化部署[2].
目前已知的网络大部分采用单独控制架构,这种网络体系需要人工对大量网络设备进行配置,同时系统的复杂性和设备间的差异性,导致人工配置成本高、 出错率高,需求者难以根据自身需要进行网络更新等问题. 软件定义网络(SDN)作为一种能反映网络服务和负载需求的体系结构,其可以优化和简化网络操作. 同时为了保障网络的顺畅,其将控制模块和数据模块进行分离,从而可以实现网络的开放性、 灵活的控制和高效的运维[3]. 其采用基于OpenFlow协议的SDN技术,主要由基础层、 控制层和应用层三部分构成,其主要特征有:控制的集中化和便捷化,不再需要对各个设备进行针对化的设置,大大减轻了系统的运维成本,实现了系统的优化控制和资源的全局调配; 控制管理模块和网络数据转发模块分离; 接口的可扩展性; 下层网络对高层应用的虚拟化、 透明化[4]. SDN架构如图1所示.
图1 软件定义网络架构
随着SDN技术的发展,影响SDN发展的关键技术主要有两个方面:SDN控制器(SDN Controller)和OpenFlow交换机(OpenFlow Switch). SDN架构中控制层是整个网络结构的核心,一方面给高层应用设备提供扩展接口,另一方面对低层设备进行统一控制,其等同于网络的大脑[5]. 控制器关键技术包括东西方向的业务扩展技术、 南向网络控制技术和北向业务支撑技术,同时SDN控制器可以为交换机选择转发路径提供依据,以实现流表项下发和策略制定; OpenFlow交换机包含OpenFlow协议、 流表以及控制器和交换机之间通信端口连接的路径(即安全通道)[6]. OpenFlow协议定义了交换机和控制器间的端口标准; 流表由包头域、 计数器和动作三部分组成,其是OpenFlow通过网络设备实现数据转发的抽象表示; 安全通道通过对数据模块的格式进行确认,允许符合条件的数据进行传送,其没有复杂的逻辑控制管理,以实现网络资源的优化配置[7].
传统的网络数据中心大多以树状拓扑结构进行设计,在面对日渐庞大的网络规模时,易发生网络容错性差、 核心交换机负载量大等问题,进而导致网络阻塞现象的发生[8]. 将软件定义网络技术融入到数据中心,一方面可以通过SDN端口的可扩展性优化网络更新网络规则,提供针对性的客户需求; 另一方面可以简化系统的管理,利用SDN控制的集中化和便捷化,将系统状态信息和流量统计集中管理,以提高系统时效性,降低网络调试和开发的难度,为网络创新提供条件[9].
负载均衡则是通过对网络中的流量信息进行统计,为路由选择提供判断依据,从而实现网络性能的优化. 全局负载均衡和局部负载均衡作为当前常用的负载均衡技术,难以适应网络发展的需求,而随着OpenFlow理论的成熟,将SDN技术应用到负载均衡已成为提高网络系统性能的有效途径,即利用控制器得到网络各个节点的流量统计数据,以实现负载的均衡配置[10].
判断路由选择算法是否能够满足系统需要,主要通过分析该算法是否能够及时有效地对网络拓扑改变及通信量变化做出应对,并在保证通路完整性和准确性的基础上实现算法的简单性. 已知的路由选择算法有通过计算节点距离的距离向量法和分析节点链路状态的链路状态法,这些算法虽然能够实现路由的合理选择但容易产生无限计数问题和慢收敛等情况,进而影响系统的稳定性.
基于SDN的路由选择策略具有全局网络拓扑信息,为了实现数据的快速、 可靠传输,其利用链路数据信息得到网络节点间的最佳转发路径,同时SDN控制的集中化、 模块化使得用户能够根据自己的需要选择符合自己意愿的路由策略,进而得到灵活可变的路由算法,依据SDN原理的路由选择算法分类如图2所示.
图2 SDN路由选择算法分类
由于网络流量自身具有周期性、 自相关性和模糊性,因此在对网络数据进行存储和处理以及流表优化时,需要对网络流量进行预测. 随着网络规模的扩大,已知的针对网络流量进行预测的模型受多方面因素影响,导致误差较大、 适用性低. 因此,本文采用自回归滑动平均模型(ARMA)来对网络流量进行预测,该模型可以对时间序列进行参数化分析,准确模拟实际网络流量,该模型的数学表示为:假设存在一个均值为零、 服从正态分布的时间序列{xp},其中xp和其前n个数值xp-1,xp-2,…,xp-n之间存在相关性,并受到其他m个干扰项ap-1,ap-2,…,ap-m的影响,那么自回归滑动平均模型(ARMA)为:
(1)
(2)
其中,ap-1,ap-2, …,ap-m为已知部分,xp-1,xp-2,…,xp-n为未知部分,自回归滑动平均模型使得已知数据在模型中作用最大化,大大提高了系统的稳定性.
将路由信息在SDN交换机上以流表的形式表现出来,并准确地传送到相应交换机上是路由算法的主要作用. 链路发现模块可以使SDN控制器得到网络全局的链节数据,进而对全局网络资源进行合理调配和使用,实现系统优化; 拓扑信息响应模块可以完成流表数据的生成并实现下发模块的升级,其完成路径选择的同时对拓扑结构变化做出及时应对,拓扑信息响应模块原理如图3所示.
图3 拓扑信息响应模块原理
和传统的网络体系一样,大规模的SDN网络也可以划分为若干个小的网络域,不同的域之间通过交换机进行连接. 当数据需要传递时,则通过交换机进行域间传输,而数据的传输需要进行预路由过程. 路由选择机制则是通过路径的跳数来决定,需要跳数越少则表明路由选择机制越成功. 根据最优路径,交换机得到流表项并由网络控制器控制,流表匹配目的IP地址,而目的IP与交换机ID对应,因此可以直接将数据以最短路径匹配交换机ID,而不需要经过控制器. 路由选择机制如图4所示,其中白色点为域与域之间的边界交换机,黑色点为域内交换机.
图4 路由选择机制
当数据流到达控制器时,系统会采用反应式处理并根据当前网络的状态,计算最佳转发路径并生成路由策略,之后将数据传递给交换机,对应的路由策略则由交换机中的流表项记录,当数据流需要转发时只有匹配到交换机中的流表项才被允许. 数据流通过软件定义网络的流程如图5所示.
图5 数据流在SDN中流程
对于基于SDN的流表分配,数据流受各种因素影响,如交换机转发调度、 传输带宽等,数据流不能一直占用带宽,因此需要根据数据流特点和网络特点进行资源分配. 本文通过流表资源偏好度和计算资源偏好度这一概念来定义数据流对流表资源和控制器的依赖度,进而实现流表分配. 假设某一网络存在r个数据流,平均带宽为d,数据流中有n个数据包,数据流对网络带宽的依赖度为p,那么资源偏好度的数学表示为:
(3)
(4)
为了得到模型的具体数据信息,需要对系统数据进行分析,并和其他系统进行对比,进而判断本系统性能的优劣. 首先搭建仿真环境,仿真工具采用Mininet仿真平台创建SDN网络,使用Linux操作系统,并利用Mausezahn这一开源流量发生器产生OpenFlow数据流,SDN网络交换机流表容量设为1 200,数据流最多为105个,核心交换机传输带宽为2Gb/s. 为了验证本设计性能的优劣,在相同网络规模的前提下将本文设计和滤波融合算法(GFF)、 多路负载均衡算法(MPLB)分别从流表资源利用率以及网络平均吞吐量来进行验证,具体结果如图6、 图7所示.
通过图6分析,在相同网络规模的前提下,当交换机上数据流量在3 000以下时,由于具有丰富的流表资源,系统可以满足大部分数据流对交换机的需求,流表资源利用率呈直线上升状态. 但是随着交换机上数据流量的逐渐增加,由于系统总的处理能力有限,因此数据流必须依次等候交换机控制器分配的流表项,才能进行数据传送,进而导致流表资源利用率缓慢上升,最终达到系统所能接受的上限. 本文算法相对于其他两种算法,在面对相同的网络环境和数据流量时,都有较高的流表资源利用率,具有一定的应用价值.
图6 不同算法流表资源利用率
通过图7可知,在相同网络流量的前提下,当交换机上数据流量较少时,系统的数据处理能力可以满足大部分数据流对交换机的需求. 但是当数据流量达到一定数值时,由于受到设备硬件性能以及网络资源的限制,网络的平均吞吐量增长逐渐变缓,进而达到一个极值,如果数据流量继续增加,那么就会导致网络阻塞现象的发生,即使得网络的平均吞吐量下降. 本文算法在同样条件下相对于其他两种算法网络的平均吞吐量具有一定的优势,具有一定的应用和研究价值.
本文首先分析了传统路由选择的特点,以及软件定义网络这一新型网络架构. 在此基础上,分析了SDN关键技术与数据中心的关系,继而研究SDN功能模块的设计、 实现和流表分配,并通过建立模型仿真,与其他算法比较,验证了基于SDN的路由选择及流表分配在流表资源利用率和网络吞吐量上具有一定优势.