本发明涉及一种服务链动态调度方法及装置,属于互联网技术领域。
背景技术
互联网为人类搭建了前所未有的信息通信和资源共享平台,改变着人们生活、工作和学习方式,成为支撑现代社会经济发展和科技创新的最重要的信息基础设施。网络中的交换机与路由器保证了转发的基本问题,在对网络的路由转发功能研究与实现基础上,为了保障网络的安全性和满足多种性能要求,现代网络中部署了一类专用的网络应用即网络中间件(middlebox),如网络地址转换、防火墙、入侵检测系统等。网络中间件在网络中起着至关重要的作用,而传统网络功能以硬件方式实现。网络功能虚拟化的出现改变了硬件实现网络中间件的传统方法,通过在通用服务器或者虚拟机上部署网络功能,实现了网络功能软硬件解耦,构建了更加灵活的体系。nfv(networkfunctionvirtualization)具有以下优势:1)网络创新能力的大幅提升,虚拟网络功能可以被灵活得添加、删除和引进网络功能,使得网络创新以软件更新的速度进行,不再是传统的硬件更新速度;2)网络功能与硬件设备解耦,使用与维护成本大幅降低,进一步扩大了适用范围。
相比传统硬件实现网络功能的方式,nfv带来了高灵活性与可控性,但由于软件实现的方式不可避免也带来了较高的时间开销等一系列亟待解决的问题。当同一网络中存在多个位置可以配置nf(networkfunction时,每个网络流量都存在多个vnfs(virtualizationnetworkfunction)可供选择,不同流量调度算法则对流量和整体网络的效率都会产生不同影响,不适当的算法无法根据流量做出适应性的调度选择,则会产生不必要的资源浪费。
技术实现要素:
本发明的目的是为了解决现有技术中不适当的算法无法根据流量做出适应性的调度选择,则会产生不必要的资源浪费的问题,提出一种服务链动态调度方法。
为解决上述技术问题,提出服务链动态调度方法,具体步骤如下:a1.网络流从原地址出发,a2.经过软件定义网络交换机转发,a3.进入含有三阶段网络流调度程序的调度装置,对网络流进行调度处理,a4处理结果发送到通用服务器,所述的三阶段网络流调度程序是将整个网络状态划分为网络轻负载阶段,网络重负载阶段以及流量超载阶段设计服务链动态调度程序,上述方法能保证网络资源的利用率、吞吐量、网络流服务时长,适用的范围更广。
优选地,上述技术方案中,所述网络流处于网络轻负载阶段,具体的处理步骤:b1.用线性规划算法对链路资源和vnf处理能力进行联合优化,联合优化的线性函数如下:
其中,考虑网络流可以分割的情况,可以分割成n个流,
优选地,上述技术方案中,所述网络流处于网络重负载阶段,具体的处理步骤:
c1.用线性规划算法对链路资源和vnf处理能力进行联合优化,联合优化的线性函数如下:
其中,考虑网络流可以分割的情况,可以分割成n个流,
优选地,上述技术方案中,所述三阶段网络流调度程序包括一个约束算法的程序,所述约束算法如下:
优选地,上述技术方案中,所述通用服务器上包括一个缓存程序,当出现数据信息f不符合,且目前服务器尚存在空间可以进行数据信息的缓存时候,进入缓存程序。
优选地,上述技术方案中,所述缓存程序中缓存数据信息最大量可表示为:
本发明还提出一种服务链动态调度装置,包括:软件定义网络交换机,用于网络流的转发;含有三阶段网络流调度程序的装置,用于执行服务链动态调度所述的方法;通用服务器:用于接收通过含有三阶段网络流调度程序的装置调度处理的结果。
优选地,上述技术方案中,所述三阶段网络流调度程序包括:网络状态获取程序,用于获取当前网络中存在的网络流全部信息;nf监测程序,用于检测获取nf和网络流的具体数据情况;统一计算程序,通过网络状态获取程序和nf监测程序获得网络设备初始信息,网络设备使用情况,以及目前正在网络中进行处理流和目前等待服务的网络流集合的具体数据信息,判断网络负载状态,完成服务链动态调度计算工作;网络设备调度程序,所述网络设备包括软件定义网络交换机和通用服务器,软件定义网络交换机调度是根据统一计算程序的结果出具体的转发规则,并安装到数据平面上,通用服务器调度是负责服务器的开启和关闭工作和网络流迁移过程中的相关工作。
优选地,上述技术方案中,所述三阶段网络流调度程序还包括规则聚合程序,所述的规则聚合程序在软件定义网络控制器上,主要工作将软件定义网络控制器上接收到的转发规则,进行前缀合并工作。
优选地,上述技术方案中,所述网络为软件定义网络,通过将数据平面和控制平面分离,实现了网络架构的高灵活性和可控性。
与现有技术相比,本发明具有如下有益效果:
与现有技术相比,上述服务链动态调度方法,采用三阶段网络流调度程序,利用了软件定义网中控制器强大的处理能力,基于当前的网络情况,对网络流完成调度与处理工作,能保证网络资源的利用率、吞吐量、网络流服务时长。
附图说明
图1服务链动态调度方法流程图。
图2服务链动态调度装置图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
图1所示,网络流从原地址出发,经过软件定义网络交换机转发,进入含有三阶段网络流调度程序的调度装置,对网络流进行调度处理,处理结果发送到通用服务器,所述的三阶段网络流调度程序是将整个网络状态划分为网络轻负载阶段,网络重负载阶段以及流量超载阶段设计服务链动态调度程序。
图2所示,服务链动态调度装置包括软件定义网络交换机,三阶段网络流调度程序和通用服务器,所述装置是以软件定义网络为实现基础,引入三阶段网络流调度程序,下面将具体介绍实施过程中涉及的多个程序的实现情况:
i.网络状态获取程序
交换机通过hello消息主动与sdn控制器建立链接,因此sdn控制器可以根据从交换机端接收的信息整合获取当前网络的物理拓扑信息。同时,还可以读取进入该网络内流的相关信息(流量、存在时间、需求服务链功能能等信息)。因此,在任一时刻,通过sdn控制器所知的相关信息即可以获取当前网络中存在的网络流全部信息,包括已经经过的转发路径等内容。
根据此程序信息,可以判断出当前网络转发设备的负载情况,以此作为判断当前网络负载情况的基础之一。
ii.nf监测程序
在网络设备中加入了通用服务器,vnf则安装在通用服务器上。通过nf检测模块对vnfs的运行状态、负载情况等基本信息进行检测获取。因此在nf检测模块中,可以获取到每个vnf上具体信息,包括vnf的负载情况即剩余能力服务cr(vnfi),目前vnfi服务的网络流集合flows={f1,f2,…,fn},其中每一个网络流fi(fi∈flows)对应的需求
通过此程序主要获取了nf和流量的具体数据情况,网络负载情况的判断也需要数据情况进行判断。
iii.统一计算程序
该程序是整个服务链调度机制的核心程序,其在网络状态获取程序和nf监测程序提供的信息基础上完成整个调度计算的工作,并将计算结果下发至网络设备调度程序以实现调度机制。
统一计算程序主要完成了以下四点工作:
a)根据网络状态程序和nf监测程序获得网络设备初始信息(blink,cvnf),网络设备使用情况即剩余能力数据
b)如果负载状态为light的情况下,使用线性规划算法对链路资源和vnf处理能力进行联合优化,联合优化的线性函数如下:
上述步骤中,会得到多个可行路径,最总选出一条最合适的转发路径和与服务链对应的vnf序列pathf,另外,若不限制网络流拆分情况则整个算法的时间复杂度过高,无法应用在实际网络中。针对网络流拆分进行限制,片段网络流最小不得小于原网络流的四分之一。
c)如果负载状态为overload的情况下,上述阶段中不再依靠调度算法来进行优化处理,而通过丢包,标记时间记录事件(如有恶意攻击)等被动处理方式来反馈到控制平面。
d)如果负载状态为heavy的情况下,对于网络流正常达到进行调度。同时还需要监测是否有出现vnf或者上下游不匹配情况。
i.当出现vnf过载的情况下,进行网络流迁移的计算。
ii.当监测到上下游不匹配的情况,则进行缓存的计算工作。
e)完成上述步骤后,将信息下发至网络设备调度程序中。
iv.网络设备调度程序
网络设备的调度分成两类设备,一是交换机负责转发功能,二是vnf负责网络流处理工作。
针对交换机调度工作,主要由sdn控制器完成,根据统一计算程序下发到控制器上的结果计算出具体的转发规则,并由控制器下发安装到数据平面上。而针对vnf调度工作,主要由新增的nf调度程序完成。nf调度程序除了负责vnf的开启与关闭工作以外,还需要完成流迁移过程中的相关工作。
v.规则聚合程序
该模块作为新增程序实现在sdn控制器上,主要工作将sdn控制器上接收到的转发规则,进行前缀合并工作,在保证了覆盖需要的ip地址的同时尽量使规则占用的空间最小,以解决sdn交换机流表有限的难题。
综上,本发明提供一种服务链动态调度方法,与现有技术相比,上述服务链动态调度方法,采用三阶段网络流调度程序,利用了软件定义网中控制器强大的处理能力,基于当前的网络情况,对网络流完成调度与处理工作,能保证网络资源的利用率、吞吐量、网络流服时长。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。