一种SD-WAN环境中流量控制方法与流程

文档序号:15497654发布日期:2018-09-21 22:01阅读:259来源:国知局

本发明涉及通信领域,具体涉及一种软件定义广域网中的sd-wan环境的流量控制方法。



背景技术:

随着软件定义网络(softwaredefinednetwork,sdn)技术的不断发展,其应用场景逐渐由数据中心等转向广域网,越来越多的网络提供商开始研究如何将sdn技术应用于广域网,软件定义广域网(softwaredefinedwideareanetwork,sd-wan)成为研究热点。与传统以tcp/ip为核心的二三层交换网络相比,sd-wan具有网络控制和传输分离、视图集中化、网络接口开放等优点。

流量控制(trafficcontrol,tc,简称流控)是指根据传输网络业务的特点对流量转发进行调整,如同路径计算、流量控制,均是流量工程(trafficengineering,te)的一部分。流量控制是服务质量(qualityofservice,qos)区分型服务模型在交换层实现的必要条件。

以tcp/ip为核心传统广域网中流量控制主要体现在拥塞控制和交换队列调度等方面。传统流量控制主要问题表现在两个方面。首先,由于传统架构中传输和控制融合,由于流量以“besteffort”的模式进行传输,整体网络缺乏全局视图导致无法集中调度流量,网络拥塞难以避免。其次,在传统网络交换设备中,通过对交换队列的调度实现了不同优先级的流量差异化传输,各种调度算法由生产厂商确定,一旦固化在设备中,只能进行简单的参数设置,不能更改调度算法本身,不具有动态配置调度算法的特点。

sd-wan尚处于发展中,针对以上的传统wan网络中流量控制无全局视图,无法动态适配业务流量等问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明目的在于公开一种能够解决wan网络无法得到全局视图,数据交换层无法动态适配流量带宽需求等问题的sd-wan环境的流量控制方法。

为达到上述目的,本发明采用的技术方案是:

步骤1:将sd-wan网络中的交换机分为核心交换机和边缘交换机;

其中,边缘交换机为业务在sd-wan网络传输过程中的起始交换机,能够对业务流量优先级的识别并标记服务类型;

核心交换机为业务在sd-wan网络传输过程中的中间交换机,能够对业务进行差异化传输控制;

步骤2:控制器通过边缘交换机获取业务流量优先级并建立服务类型与业务流量优先级的映射关系,完成对业务流量服务类型的标记;

步骤3:控制器根据openflow协议相关字段确定queue发送带宽、queue需求带宽和meter带宽;

步骤4:控制器根据服务类型和带宽供需关系下发控制策略,核心交换机根据控制策略对不同优先级的业务进行区分型传输控制。

所述步骤2包含两个子步骤:子步骤1控制器通过边缘交换机获取业务流量优先级和子步骤2建立了服务类型与业务流量优先级的映射关系;

所述的子步骤1利用多维度属性对流量价值进行评估并进行归一化处理:

v(i)=a·vuser(i)+b·vflow(i)+…

其中,vi为流量i的综合价值;vuser为用户价值;vflow为流量价值;a为用户价值权重;b为流量价值权重,将上述流量的价值归一化处理得到业务流量的优先级如下,记为式(1-2):

其中,pi为流量i的优先权;vi为流量i价值;vmin为最小流量价值;vmax为最大流量价值;

所述子步骤2将流量价值映射到数据报中的服务类型,其具体方案为:

其中,pi为业务流量i的优先级;tosi为服务类型等级;n为服务类型标志位的位数。

所述步骤3确定queue的带宽、queue需求带宽、meter的带宽三种带宽计算模型的参数来源于openflow协议;

其中,queue的带宽计算利用openflow协议中的字节统计字段、时间戳字段,其具体方案为:

其中,bwqueue为队列发送带宽,单位为mbps;ntx_bytes为ofp_queue_stats反馈消息中的字节数;tds0、tds1为检测周期t内的始末时间戳;

queue需求带宽计算利用openflow协议中的数据包统计字段、错误包统计字段、时间戳字段,其具体方案为:

其中,bwdemand为队列发送带宽,单位为mbps;tds0、tds1为检测周期t内的始末时间戳;ntx_packets、ntx_bytes、ntx_errors为ofp_queue_stats消息中的发送数据包数、发送字节数、发送错误数据包数;

meter的带宽计算利用openflow协议中的字节统计字段、时间戳字段,其具体方案为:

其中,bwmeter为发送带宽,单位为mbps;td0、td1为检测周期t始末时间戳;ntrans_bytes为周期t内的发送字节数。

所述步骤4控制策略分为两层:queue带宽控制和meter带宽控制;

其中,queue带宽控制在带宽资源紧缺和充足时,在允许的最大带宽内分别以指定的步长动态调整队列带宽;

meter带宽控制,在第一级queue带宽调整达到上限时,使用以指定步长调整meter的带宽以增大发送带宽。

本发明获取流量控制方法部署装置,区分数据层为边缘交换机和核心交换机;控制器通过边缘交换机获取业务流量优先级并建立服务类型与业务流量优先级的映射关系;控制器根据openflow协议相关字段确定queue发送带宽、queue需求带宽和meter带宽;控制器根据服务类型和带宽供需关系下发控制策略,核心交换机根据控制策略对不同优先级的业务进行区分型流量传输控制。通过本发明,提供了全局视图下的流量控制方法,实现了在交换层根据业务流量动态适配带宽。

附图说明

图1为一种sd-wan环境中流量控制方法的具体步骤

图2为一种sd-wan环境中流量控制装置示意图

图3为一种sd-wan环境中流量控制装置执行流程图

图4为流量控制方法详细执行流程图

具体实施方式

下面结合附图对本发明作进一步详细说明

如图1所示。本发明引入了4个步骤,包含了:步骤101获取sd-wan环境中流量控制方法的部署装置,区分数据层中的交换机为边缘交换机和核心交换机;步骤102控制器通过边缘交换机获取业务流量优先级并建立服务类型与业务流量优先级的映射关系,完成对业务流量服务类型的标记;步骤103控制器根据openflow协议相关字段确定queue发送带宽、queue需求带宽和meter带宽;步骤104控制器根据服务类型和带宽供需关系下发控制策略,核心交换机根据控制策略对不同优先级的业务进行区分型流量传输控制。各步骤的具体描述如下:

1)步骤101:获取sd-wan环境中流量控制方法的部署装置,区分数据层中的交换机为边缘交换机和核心交换机。为了达到上述步骤101的目的,本发明引入了术语“边缘交换机”与“核心交换机”,即“edgeswitch,es”与“coreswitch,cs”。具体而言,es为与接入终端直连的交换设备;cs为仅与交换机互联的交换设备。如图2所示,公布了流量控制方法的实施装置。图2中201为sd-wan控制器;202为es,表示左图中的s1、s2、s3、s4;203为cs,表示左图中的s5、s6。

2)步骤102:获取业务流量优先级,建立服务类型与业务流量优先级的映射关系控制器通过边缘交换机获取业务流量优先级并建立服务类型与业务流量优先级的映射关系,完成对业务流量服务类型的标记。本发明公布了业务流量优先级、优先级与服务类型映射关系作为步骤102的子步骤,具体描述如下:

2.1)步骤102的子步骤1:本发明公布了一种业务流量优先级计算模型。通常价值计算的维度众多,例如,选取用户价值和流量特性进行分析。业务流量价值计算方法如下,记为式(1-1):

v(i)=a·vuser(i)+b·vflow(i)+…

其中,vi为流量i的综合价值;vuser为用户价值;vflow为流量价值;a为用户价值权重;b为流量价值权重。各种维度的价值由专家评估决定,为了减少专家决策对流量价值判断的误差,多维参数权重计算方法可以采用层次分析过程(analytichierarchyprocess,ahp)等方法。将上述流量的价值归一化处理得到业务流量的优先级如下,记为式(1-2):

其中,pi为流量i的优先权;vi为流量i价值;vmin为最小流量价值;vmax为最大流量价值。

2.2)步骤102的子步骤2:本发明公布了服务类型与流量优先级的映射关系。ip网络中,流量分类是指将数据报文分为多个服务类,进而由网络管理员设置分类策略,配置交换策略。一般而言,策略包含的带内信令有ip数据包tos字段中的dscp值。要实现业务流量的差异化控制,不仅要建立业务流量的优先级,明确服务类型的等级机制,还要将定义的优先级排序并与现有交换机制的中服务类型等级进行映射。本发明公布了一种业务流量与服务类型的映射模型如下,记为式(2-1):

其中,pi为业务流量i的优先级;tosi为服务类型等级,为向下取整后的结果;n为服务类型标志位的位数。

3)步骤103:根据openflow协议字段确定queue的带宽、queue需求带宽、meter的带宽。本发明完整解读了软件定义广域网中南向接口openflow协议,充分利用了协议中的qos调整的队列(queue)和计量表(meter)机制,确定了队列带宽、队列需求带宽以及计量表带宽计算模型。三种带宽计算模型,即步骤103的子步骤具体表述如下:

3.1)步骤103的子步骤1:南向接口openflow协议定义了ofp_queue_stats_request用于控制器向交换机请求队列状态信息。交换机接受到了队列状态请求消息之后,采集队列信息,发送ofp_queue_stats消息给控制器。其中,ofp_queue_status消息包含了队列状态的多个字段,具体而言,包含了时间戳duration_sec(uint32_t)、发送字节数tx_bytes(uint64_t)、发送数据包数tx_packets(uint64_t)、发送错误数据包数tx_errors(uint64_t)等。本发明公布了一种队列发送带宽计算模型。主要引用了duration_sec和tx_bytes。发送带宽计算模型如下,记为式(3-1):

其中,bwqueue为队列发送带宽,单位为mbps;ntx_bytes为ofp_queue_stats反馈消息中的字节数;tds0、tds1为检测周期t内的始末时间戳。

3.2)步骤103的子步骤2:本发明公布了一种发送业务流量带宽需求计算模型。主要引用了duration_sec、tx_bytes、tx_packets、tx_errors字段。业务流量需求带宽计算模型如下,记为式(3-2):

其中,bwdemand为队列发送带宽,单位为mbps;tds0、tds1为检测周期t内的始末时间戳;ntx_packets、ntx_bytes、ntx_errors为ofp_queue_stats消息中的发送数据包数、发送字节数、发送错误数据包数。

3.3)步骤103的子步骤3:南向接口openflow协议定义了ofp_meter_multipart_request向交换机请求meter的状态。交换机接受到了计量表状态检测消息后,采集计量表信息,发送ofp_meter_stats消息给控制器。其中,ofp_meter_stats中包含了多种计量量表状态字段,具体而言,包含了传送字节数transmittedbytes(uint64_t)等。

本发明公布了一种meter带宽计算模型。主要引用了transmittedbytes字段。计量表带宽计算模型如下,记为式(3-3):

其中,bwmeter为发送带宽,单位为mbps;td0、td1为检测周期t始末时间戳;ntrans_bytes为周期t内的发送字节数。

4)步骤104:根据服务类型和带宽的供需关系对不同优先级的流量进行控制。步骤104在步骤102和步骤103的基础上对流量进行具体的控制:

1)本发明的实施方式中,其核心的装置和实施流程可以概括为图2至图4,各部分的具体关系如下:

1.1)软件定义广域网是流量控制方法实施的必要条件,其装置如图2所示,涉及的模块为202es模块,203cs模块。

1.2)装置执行的流程图如图3所示,包含了301、302、303三个子流程,其中301流程对应了es模块的执行过程,302流程和303流程对应了cs模块的执行流程。

1.3)本发明的核心在于对带宽的二级控制流程,图4为具体的带宽控制流程图,包含了401和402两个子流程,分别是图3中302流程和303流程的具体化。

2)一种sd-wan环境中流量控制方法实施的装置执行流程图,特征在于,以es和cs为区分,流量到达不同类型的交换机会进入不能类型的流量处理流程。若流量不经过核心交换机直接达到目标地址,可认为该流量处于非sd-wan环境,则不用启用流量控制方法。

2.1)若流量进入es,对应201流程。首先,es以packet_out的方式将业务流量的传输信息上传至控制器;其次,控制器根据式(1-1)和式(1-2)以及特定的参数分析方法进行业务优先级计算;再次,控制器根据式(2-1)将业务流量优先级映射为ip数据报中的服务类型;另外,控制器将服务类型下发至交换层并对流量的dscp的服务类型字段重新标记;最后,流量传输进入核心交换机。

2.2)若流量进入cs,对应流程302和流程303。流程302和流程303为两级流量控制方法。

2.2.1)第一级为基于openflow协议中queue的控制方法,如流程302所示。首先,控制器根据cs流量类型下发队列状态检测消息ofp_queue_stats_request采集cs的queue状态;其次,控制器根据交换机返回的状态信息ofp_queue_stats中相关的字段计算bwqueue和bwdemand;最后,启用流量控制方法对高优先级的业务流量进行queue带宽适配,其具体流程参见401描述。

2.2.2)第二级为基于openflow协议中meter的控制方法,如流程303所示。首先,开启第二级流量控制方法的触发条件为:发送队列速率达到上限且丢包率不为0。其次,对绑定高优先级队列的计量表进行带宽适配,其具体流程参见402描述。最后下发限速规则至cs完成流量控制。

3)一种sd-wan环境中流量控制方法执行流程,特征在于,整体流量控制流程分为基于queue的流量控制和meter的流量控制两个子流程,分别对应图4中401和402。

3.1)由于openflow协议中具体实现区分传输服务在于优先级的不同的队列。因此,队列中带宽的需求变化为流量控制的触发点,queue队列的流量控制为第一级流量控制。具体描述如下文,其流程如401所示。

3.1.1)资源紧缺时,即bwqueue<bwdemand的情况下,流程如下:

控制器发送ofp_queue_desc_prop_min_rate消息调整最低优先级queue的rate字段,以抢占大小为bwdemand-bwqueue的带宽资源。具体而言,以最大发送速率的x%为步长增加发送速率,直至满足高优先级的业务带宽。

3.1.2)资源充足时,即bwqueue>bwdemand的情况下,流程如下:

控制器发送ofp_queue_desc_prop_max_rate消息调整当前优先级的queue的rate字段。具体而言,以最大发送速率的x%为步长减小发送速率,直至满足bwqueue=bwdemand。

3.2)openflow协议规定了queue有最大发送速率ofpqdpt_max_rate。在第一级流量控制方法中,queue到达最大速率且控制器接受到ofp_queue_stats消息的tx_errors不为零,说明第一级队列流控制方法不能满足当前优先级的流量的需求。需要启用第二级流量控制方法,即基于meter的流量控制方法。第二级流量控制方法触发因素为高优先级队列queue满载且存在丢包率。具体方法描述如下文,其流程如402所示。

3.2.1)资源紧缺时,即ratequeue≈max_rate且txerrors>0,流程如下:

控制器向绑定高优先级queue的meter发送ofp_meter_mod调整meter的发送速率。具体而言,以meter发送速率的x%为步长减小发送速率,减小bwm,直至检测到ratequeue<max_rate。

3.2.2)资源充足时,ratequeue《max_rate,流程如下:

控制器向绑定高优先级queue的meter发送ofp_meter_mod调整meter的发送速率。具体而言,以meter发送速率的x%为步长增加发送速率,增加bwmeter,直至检测txerrors=0且ratequeue≈max_rate。

其中,参数x与控制器检测交换机队列状态的轮训周期有关。周期越长,x的值越小;周期越短,x的值越大。具体由应用部署场景决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1