软件定义网络的服务质量控制方法及设备与流程

文档序号:18684803发布日期:2019-09-13 23:47阅读:250来源:国知局
软件定义网络的服务质量控制方法及设备与流程

本发明涉及通信领域,并且具体地,涉及软件定义网络(Software Defined Network,SDN)的服务质量(Quality of Service,QoS)控制方法及设备。



背景技术:

在当前的网络中,存在多种网络设备,如路由器、网关、交换机、防火墙和各类服务器等。这些实现各种网络功能的设备通常都包含各自独立的控制模块,这种分布式的控制模块导致网络的部署非常复杂。

为提升网络部署的灵活性和可管理性,业界提出了软件定义网络(Software Defined Network,SDN)的概念。在SDN中,控制面设备实现网络的控制管理功能,转发面设备实现网络的转发功能。开放流(OpenFlow)是当前主流的SDN网络的控制协议。在OpenFlow中,控制面设备通过流表表项来控制转发面设备的行为。流表表项可以指示需要处理的数据报文以及相应的操作。

QoS是指网络提供更高优先服务的一种能力。通过对数据报文进行QoS控制,能够提高网络的服务质量。在传统网络中,由于各个网元自身集成了控制功能,因此很容易实现对数据报文的QoS控制。但是,对于SDN网络,目前尚没有实现QoS控制功能的机制。



技术实现要素:

本发明实施例提供SDN的QoS控制方法及设备,能够实现SDN中的QoS控制功能。

第一方面,提供了一种控制面设备,包括:确定单元,用于确定流表表项,所述流表表项包括QoS信息,所述QoS信息用于指示QoS处理规则;其中,所述QoS处理规则包括QoS参数,所述QoS处理规则用于指示根据所述QoS参数对数据报文进行QoS控制;发送单元,用于向转发面设备发送所述流表表项,以使所述转发面设备获取所述QoS处理规则,并根据所述QoS处理规则中的所述QoS参数对目标报文进行QoS控制;其中,所述目标报文为与所述流表表项相匹配的数据报文。

结合第一方面,在第一种可能的实现方式中,所述QoS参数包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,所述QoS处理规则用于指示以下至少一种:根据所述丢包率参数对所述目标报文进行丢包控制;根据所述时延参数对所述目标报文进行时延控制;根据所述抖动参数对所述目标报文进行抖动控制;和根据所述限速参数对所述目标报文进行限速控制。

结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述QoS信息包括所述QoS处理规则。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述QoS处理规则包括以下至少一条指令:第一指令,所述第一指令包括丢包率参数,所述第一指令用于指示根据所述丢包率参数对所述目标报文进行丢包控制;第二指令,所述第二指令包括时延参数,所述第二指令用于指示根据所述时延参数对所述目标报文进行时延控制;第三指令,所述第三指令包括抖动参数,所述第三指令用于指示根据所述抖动参数对所述目标报文进行抖动控制;第四指令,所述第四指令包括限速参数,所述第四指令用于指示根据所述限速参数对所述目标报文进行限速控制。

结合第一方面或第一种可能的实现方式,在第四种可能的实现方式中,所述发送单元还用于:向所述转发面设备发送所述配置信息,所述配置信息包括所述QoS处理规则以及与所述QoS处理规则对应的索引标识;

所述QoS信息包括所述索引标识。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述配置信息包括计量器Meter表项,所述Meter表项的计量器带Meter Band包括所述QoS处理规则,所述索引标识为所述Meter表项的标识;相应地,所述QoS信息包括Meter指令,所述Meter指令包括所述Meter表项的标识;

或者,所述配置信息包括队列信息,所述队列信息中的队列包括所述QoS处理规则,所述索引标识为所述队列的标识;相应地,所述QoS信息包括队列指令,所述队列指令包括所述队列的标识;

或者,所述QoS信息包括自定义QoS处理指令,所述自定义QoS处理指令包括所述索引标识,所述自定义QoS处理指令用于指示根据所述索引标识从所述配置信息中获取所述QoS处理规则。

第二方面,提供了一种转发面设备,包括:接收单元,用于接收数据报文,以及接收控制面设备发送的流表表项;处理单元,用于:根据所述流表表项确定所述数据报文为目标报文;其中,所述目标报文为匹配所述流表表项的数据报文,所述流表表项包括QoS信息,所述QoS信息用于指示QoS处理规则;其中,所述QoS处理规则包括QoS参数;根据所述QoS信息获取所述QoS处理规则;根据所述QoS处理规则,基于所述QoS参数对所述目标报文进行QoS控制。

结合第二方面,在第一种可能的实现方式中,所述QoS参数包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,所述处理单元用于根据所述QoS处理规则,基于所述QoS参数对所述目标报文进行QoS控制,包括以下至少一种:所述处理单元用于根据所述QoS处理规则,基于所述丢包率参数对所述目标报文进行丢包控制;所述处理单元用于根据所述QoS处理规则,基于所述时延参数对所述目标报文进行时延控制;所述处理单元用于根据所述QoS处理规则,基于所述抖动参数对所述目标报文进行抖动控制;和所述处理单元用于根据所述QoS处理规则,基于所述限速参数对所述目标报文进行限速控制。

结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述QoS信息包括所述QoS处理规则;所述处理单元用于根据所述QoS信息获取所述QoS处理规则包括:所述处理单元用于从所述QoS信息中获取所述QoS处理规则。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述QoS处理规则包括以下至少一条指令:第一指令,所述第一指令包括丢包率参数;第二指令,所述第二指令包括时延参数;第三指令,所述第三指令包括抖动参数;第四指令,所述第四指令包括限速参数;

相应地,所述处理单元用于根据所述QoS处理规则,基于所述QoS参数对所述目标报文进行QoS控制,包括以下至少一种:所述处理单元用于根据所述第一指令,基于所述丢包率参数对所述目标报文进行丢包控制;所述处理单元用于根据所述第二指令,基于所述时延参数对所述目标报文进行时延控制;所述处理单元用于根据所述第三指令,基于所述抖动参数对所述目标报文进行抖动控制;和所述处理单元用于根据所述第四指令,基于所述限速参数对所述目标报文进行限速控制。

结合第二方面或第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述处理单元存储有配置信息,所述配置信息包括所述QoS处理规则以及与所述QoS处理规则对应的索引标识;所述QoS信息包括所述索引标识;

所述处理单元用于根据所述QoS信息获取所述QoS处理规则包括:所述处理单元用于根据所述索引标识从所述配置信息中获取所述QoS处理规则。

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述配置信息包括计量器Meter表项,所述Meter表项的计量器带Meter Band包括所述QoS处理规则,所述索引标识为所述Meter表项的标识,所述QoS信息包括Meter指令,所述Meter指令包括所述Meter表项的标识;相应地,所述处理单元用于根据所述索引标识从所述配置信息中获取所述QoS处理规则包括:所述处理单元用于根据所述Meter指令获取与所述Meter表项的标识对应的所述Meter表项,并从所述Meter表项的所述Meter Band中获取所述QoS处理规则;

或者,所述配置信息包括队列信息,所述队列信息中的队列包括所述QoS处理规则,所述索引标识为所述队列的标识,所述QoS信息包括队列指令,所述队列指令包括所述队列的标识;相应地,所述处理单元用于根据所述索引标识从所述配置信息中获取所述QoS处理规则包括:所述处理单元用于根据所述队列指令,从所述队列信息中获取与所述队列的标识对应的所述队列,并从所述队列中获取所述QoS处理规则;

或者,所述QoS信息包括自定义QoS处理指令,所述自定义QoS处理指令包括所述索引标识;相应地,所述处理单元用于根据所述索引标识从所述配置信息中获取所述QoS处理规则包括:所述处理单元用于根据所述自定义QoS处理指令,从所述配置信息中获取与所述索引标识对应的所述QoS处理规则。

第三方面,提供了一种SDN的QoS控制方法,包括:控制面设备确定流表表项,所述流表表项包括QoS信息,所述QoS信息用于指示QoS处理规则;其中,所述QoS处理规则包括QoS参数,所述QoS处理规则用于指示根据所述QoS参数对数据报文进行QoS控制;所述控制面设备向转发面设备发送所述流表表项,以使所述转发面设备获取所述QoS处理规则,并根据所述QoS处理规则中的所述QoS参数对目标报文进行QoS控制;其中,所述目标报文为与所述流表表项相匹配的数据报文。

结合第三方面,在第一种可能的实现方式中,所述QoS参数包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,所述QoS处理规则用于指示以下至少一种:根据所述丢包率参数对所述目标报文进行丢包控制;根据所述时延参数对所述目标报文进行时延控制;根据所述抖动参数对所述目标报文进行抖动控制;和根据所述限速参数对所述目标报文进行限速控制。

结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述QoS信息包括所述QoS处理规则。

结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述QoS处理规则包括以下至少一条指令:第一指令,所述第一指令包括丢包率参数,所述第一指令用于指示根据所述丢包率参数对所述目标报文进行丢包控制;第二指令,所述第二指令包括时延参数,所述第二指令用于指示根据所述时延参数对所述目标报文进行时延控制;第三指令,所述第三指令包括抖动参数,所述第三指令用于指示根据所述抖动参数对所述目标报文进行抖动控制;和第四指令,所述第四指令包括限速参数,所述第四指令用于指示根据所述限速参数对所述目标报文进行限速控制。

结合第三方面或第三方面的第一种可能的实现方式,在第四种可能的实现方式中,所述控制面设备向所述转发面设备发送配置信息,所述配置信息包括所述QoS处理规则以及与所述QoS处理规则对应的索引标识;

所述QoS信息包括所述索引标识。

结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述配置信息包括计量器Meter表项,所述Meter表项的计量器带Meter Band包括所述QoS处理规则,所述索引标识为所述Meter表项的标识;相应地,所述QoS信息包括Meter指令,所述Meter指令包括所述Meter表项的标识;

或者,所述配置信息包括队列信息,所述队列信息中的队列包括所述QoS处理规则,所述索引标识为所述队列的标识;相应地,所述QoS信息包括队列指令,所述队列指令包括所述队列的标识;

或者,所述QoS信息包括自定义QoS处理指令,所述自定义QoS处理指令包括所述索引标识,所述自定义QoS处理指令用于指示根据所述索引标识从所述配置信息中获取所述QoS处理规则。

第四方面,提供了一种SDN的QoS控制方法,包括:转发面设备接收数据报文,以及接收控制面设备发送的流表表项;所述转发面设备根据所述流表表项确定所述数据报文为目标报文;其中,所述目标报文为匹配所述流表表项的数据报文,所述流表表项包括QoS信息,所述QoS信息用于指示QoS处理规则;其中,所述QoS处理规则包括QoS参数;所述转发面设备根据所述QoS信息获取所述QoS处理规则;所述转发面设备根据所述QoS处理规则,基于所述QoS参数对所述目标报文进行QoS控制。

结合第四方面,在第一种可能的实现方式中,所述QoS参数包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,所述转发面设备根据所述QoS处理规则,基于所述QoS参数对所述目标报文进行QoS控制包括以下至少一种:所述转发面设备根据所述QoS处理规则,基于所述丢包率参数对所述目标报文进行丢包控制;所述转发面设备根据所述QoS处理规则,基于所述时延参数对所述目标报文进行时延控制;所述转发面设备根据所述QoS处理规则,基于所述抖动参数对所述目标报文进行抖动控制;和所述转发面设备根据所述QoS处理规则,基于所述限速参数对所述目标报文进行限速控制。

结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述QoS信息包括所述QoS处理规则;

所述转发面设备根据所述QoS信息获取所述QoS处理规则包括:所述转发面设备从所述QoS信息中获取所述QoS处理规则。

结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述QoS处理规则包括以下至少一条指令:第一指令,所述第一指令包括丢包率参数;第二指令,所述第二指令包括时延参数;第三指令,所述第三指令包括抖动参数;和第四指令,所述第四指令包括限速参数;

相应地,所述转发面设备根据所述QoS处理规则,基于所述QoS参数对所述目标报文进行QoS控制包括以下至少一种:所述转发面设备根据所述第一指令,基于所述丢包率参数对所述目标报文进行丢包控制;所述转发面设备根据所述第二指令,基于所述时延参数对所述目标报文进行时延控制;所述转发面设备根据所述第三指令,基于所述抖动参数对所述目标报文进行抖动控制;和所述转发面设备根据所述第四指令,基于所述限速参数对所述目标报文进行限速控制。

结合第四方面或第四方面的第一种可能的实现方式,在第四种可能的实现方式中,所述转发面设备上存有配置信息,所述配置信息包括所述QoS处理规则以及与所述QoS处理规则对应的索引标识;所述QoS信息包括所述索引标识;

所述转发面设备根据所述QoS信息获取所述QoS处理规则包括:所述转发面设备根据所述索引标识从所述配置信息中获取所述QoS处理规则。

结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,所述配置信息包括计量器Meter表项,所述Meter表项的计量器带Meter Band包括所述QoS处理规则,所述索引标识为所述Meter表项的标识,所述QoS信息包括Meter指令,所述Meter指令包括所述Meter表项的标识;相应地,所述转发面设备根据所述索引标识从所述配置信息中获取所述QoS处理规则包括:所述转发面设备根据所述Meter指令获取与所述Meter表项的标识对应的所述Meter表项,并从所述Meter表项的所述Meter Band中获取所述QoS处理规则;

或者,所述配置信息包括队列信息,所述队列信息中的队列包括所述QoS处理规则,所述索引标识为所述队列的标识,所述QoS信息包括队列指令,所述队列指令包括所述队列的标识;相应地,所述转发面设备根据所述索引标识从所述配置信息中获取所述QoS处理规则包括:所述转发面设备根据所述队列指令,从所述队列信息中获取与所述队列的标识对应的所述队列,并从所述队列中获取所述QoS处理规则;

或者,所述QoS信息包括自定义QoS处理指令,所述自定义QoS处理指令包括所述索引标识;相应地,所述转发面设备根据所述索引标识从所述配置信息中获取所述QoS处理规则包括:所述转发面设备根据所述自定义QoS处理指令,从所述配置信息中获取与所述索引标识对应的所述QoS处理规则。

本发明实施例,由于控制面设备向转发面设备发送的流表表项所包括的QoS信息用于指示QoS处理规则,使得转发面设备能够根据QoS处理规则所包括的QoS参数对目标报文进行QoS控制,从而能够实现SDN中的QoS控制功能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是可应用本发明实施例的场景的举例的示意图。

图2是本发明实施例提供的控制面设备的示意框图。

图3是本发明实施例提供的转发面设备的示意框图。

图4是本发明实施例提供的控制面设备的示意框图。

图5是本发明实施例提供的转发面设备的示意框图。

图6是本发明实施例提供的SDN的QoS控制方法的示意性流程图。

图7是本发明实施例提供的SDN的QoS控制方法的示意性流程图。

图8是本发明实施例提供的SDN的QoS控制方法的过程的示意性流程图。

图9是本发明实施例提供的另一SDN的QoS控制方法的过程的示意性流程图。

图10是本发明实施例提供的又一SDN的QoS控制方法的示意性流程图。

图11是本发明实施例提供的又一SDN的QoS控制方法的过程的示意性流程图。

图12是本发明实施例的一种网络拓扑的例子的示意图。

图13是根据图12所示的网络拓扑的实际组网的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

本发明的技术方案,可以应用于各种控制面与转发面解耦的网络中,例如,各种SDN网络。此外,本发明的技术方案还可以应用于策略与计费控制(Policy andControl,PCC)系统。对于PCC系统而言,策略和计费规则功能(Policy and Charging Rules Function,PCRF)模块可以执行控制面功能,网关可以执行转发面功能,PCRF可以对网关进行控制。

图1是可应用本发明实施例的场景的举例的示意图。

在图1中,以使用Openflow协议的场景为例进行说明。如图1所示,控制面设备110可以控制多个转发面设备,例如图1所示的转发面设备120a、转发面设备120b和转发面设备120c(下面可以统称为转发面设备120)。控制面设备110与转发面设备120之间可以采用Openflow协议进行通信。应理解,在Openflow协议中,控制面设备110可以称为Openflow控制器(Openflow Controller),转发面设备120可以称为Openflow交换机(Openflow Switch)。

控制面设备110可以通过流表(Flow Table)控制转发面设备120的行为。下面将描述流表表项的内容。

流表表项(Flow Entry)通常可以包括匹配域(Match Fields)、优先级(Priority)、计数器(Counters)、指令(Instructions)、老化时间(Timeouts)和Cookie等。

匹配域中指定的值可以用来与报文的头域以及接收端口号等信息进行匹配,以确定该报文是否为要处理的报文,通常也将要处理的报文称为目标报文。报文的头域可以包括网际协议(Internet Protocol,IP)五元组(即源IP地址、目的IP地址、协议类型、源端口号、目的端口号),或者以太网帧头中的各种头域等。以太网帧头中的头域可以包括媒体接入控制(Media Access Control,MAC)地址、目的MAC地址等。上述的匹配可以是精确匹配,也可以是掩码匹配。

指令域可以包括多种指令,例如动作(Action)相关的指令、Goto-Table(跳转-表)指令、Meter(计量器)指令、Write-Metadata(写元数据)指令等。由于对Meter指令的没有规范的中文表述,计量器指令、计量指令、或者计量表指令等都可以指代本申请中的Meter指令。

动作(Action)相关的指令:在Openflow协议中,动作指令可以分为两大类,一个大类是立刻执行的动作,对应的指令为Apply-Actions,另一个大类是先存放在动作集中,直到流水线结束时才执行的动作。向动作集里写动作的指令为Write-Actions,清除动作集中所有动作的指令为Clear-Actions。不论是立刻执行的动作,还是存放在动作集中的动作,都包含多种类别,包括用于指示如何对报文进行操作的动作,比如转发、丢弃、修改报文头、封装、解封装、发送给控制面设备110等。

动作相关的指令还可以包括设置队列的指令Set-Queue(设置队列)。当通过某个端口转发数据报文时,可以通过该指令设置该端口对应的队列标识(Identity,ID)。

Goto-Table指令:即流水线控制指令,指示报文在流表之间进行跳转,即从一个流表跳转到另一个流表。

Meter指令:指示利用Meter表项对报文进行简单QoS处理。

Write-Metadata指令:指示写元数据。元数据是OpenFlow流表之间传递信息的机制,报文对应的元数据的内容可以传递到后续的流表。

控制面设备110可以实现网络业务的控制逻辑,确定对什么样的报文进行什么样的操作,从而制定流表表项,并将流表表项下发给转发面设备120。转发面设备120保存流表表项,根据流表表项中的匹配域对接收到的报文进行匹配,对匹配的报文,即目标报文执行对应的指令,从而实现各种报文的处理。

具体地,转发面设备120可以保存有一个或多个流表。可以从第一个流表对接收到的报文开始匹配。如果匹配成功,则执行匹配成功的流表表项中的指令,其中如果包含跳转到其他流表的指令,则跳转到其他流表继续进行匹配和处理;如果匹配失败,则根据Table-Miss(表缺失)表项进行处理(比如可以丢弃或者送给控制面设备110处理),如果没有Table-Miss表项,则根据流表的属性决定对如何对报文进行处理(比如可以配置为丢弃或者发送给控制面设备110处理)。

通过各流表对报文处理的整个流程可以称为流水线(Pipeline)。当报文在流表之间跳转时,报文内容、接收端口(ingress port)、元数据、动作集这四种信息也相应地在流表之间传递。

上述提到的Table-Miss表项是OpenFlow流表中的一个特殊表项,这个表项没有匹配域(即和所有报文都能匹配成功),匹配优先级最低,用于指示和流表中其他流表表项都匹配失败的报文如何处理。如果Table-Miss表项是某个流表中的唯一表项,则意味着该流表对所有报文都按照Table-Miss表项进行处理。

下面将详细描述上面提到的Meter表。Meter表与Meter指令相对应,二者配合可以完成简单的QoS控制功能。通过Meter指令可以指定用于处理数据报文的Meter表项。多个数据流可以共享一个Meter表项,一个数据流也可以经过多个Meter表项进行处理。

Meter表包含一个或者多个Meter表项,每个Meter表项可以包括Meter标识(Meter Identifier,Meter ID)、一个或多个Meter Band(计量器带)和Counters(计数器)。由于不存在对于Meter Band规范的中文表述,计量器带、计量带、计量线、计量器线等都可以指代本申请中的Meter Band。

Meter ID可以唯一标识一个Meter表项。Meter表项中的Counters可以记录Meter表项的统计信息。

Meter Band可以包括以下内容:Band类型(Band Type)、速率(Rate)、突发流量(Burst Size)、计数器(Counters)和Type specific arguments(类型特定参数)。

下面描述Meter Band中的各项内容。

Band Type:指定报文的处理方式,协议中只定义了两种,包括:丢弃(Drop)和重置差分服务代码点(DSCP(Differentiated Services Code Point)Remark)。

Rate:指定Meter Band生效的速率值,如果当前速率大于多个Meter Band中指定的速率,则速率值最大的Meter Band真正生效,单位可以是kbps(千位/秒)或者PPS(包/秒)。

Burst Size:指定突发流量的大小(即可以缓存的流量),单位可以和“速率”相同。

Counters:记录Meter Band的统计信息。

Type specific arguments:与Band类型有关,当Band类型为丢弃时,不需要携带其他参数,类型为重置DSCP时,需要携带要设置的DSCP值。

下面将详细描述上面提到的队列(Queue)机制。队列是和端口绑定的,一个端口可以对应一个或者多个队列,每个队列由队列ID(Queue ID)唯一标识。

每个队列可以定义不同的队列属性,除了队列长度外,目前已定义的队列属性可以包括最大速率(MinRate)和最小速率(MaxRate)。

最小速率,可以以端口速率的千分之一为单位。最大速率可以以端口速率的千分之一为单位。

上述Set-Queue指令可以用于指定报文要进入的队列,从而可以利用该队列的属性信息对报文进行处理。

上面描述了Openflow协议中相关的机制。但在Openflow协议中,还没有有效的机制实现报文的QoS处理。下面将结合本发明实施例详细描述SDN网络的QoS控制方法及设备。

图2是本发明实施例提供的控制面设备的示意框图,主要示出了该控制面设备中用于实现报文的QoS处理的相关功能部件。图2的控制面设备200包括确定单元210和发送单元220。该控制面设备200可以实现图1中控制面设备110的功能。

确定单元210用于确定流表表项,流表表项包括QoS信息,QoS信息用于指示QoS处理规则;其中,QoS处理规则包括QoS参数,该QoS处理规则用于指示根据QoS参数对数据报文进行QoS控制。

发送单元220用于向转发面设备发送流表表项。

通过向转发面设备发送该流表表项可以使转发面设备根据QoS处理规则对目标报文进行QoS控制;其中,目标报文为与流表表项相匹配的数据报文。

本发明实施例中,由于向转发面设备发送的流表表项所包括的QoS信息用于指示QoS处理规则,而QoS处理规则包括QoS参数,使得转发面设备能够根据QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

作为一种可选的实施方式,QoS参数可以包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,QoS处理规则用于指示以下至少一种:根据丢包率参数对目标报文进行丢包控制;根据时延参数对目标报文进行时延控制;根据抖动参数对目标报文进行抖动控制;和根据限速参数对目标报文进行限速控制。

由于QoS处理规则可以包括丢包率参数、时延参数或抖动参数等参数,因此能够实现SDN网络中复杂的QoS控制功能。

作为一种可选的实施方式,可以通过通用处理器或者专用处理器来实现图2中确定单元210的功能,还可以通过通信器件(例如:发送机、网卡,串口设备等)实现图2中发送单元220的功能。

可选地,作为一种实施方式,QoS信息可以包括QoS处理规则。换而言之,在这种情况下,流表表项中直接包括了QoS处理规则。

可选地,作为另一种可选的实施方式,QoS处理规则可以包括以下至少一条指令:第一指令、第二指令、第三指令和第四指令。其中,第一指令可以包括丢包率参数,第一指令可以用于指示根据丢包率参数对目标报文进行丢包控制。第二指令可以包括时延参数,第二指令可以用于指示根据时延参数对目标报文进行时延控制。第三指令可以包括抖动参数,第三指令可以用于指示根据抖动参数对目标报文进行抖动控制。第四指令可以包括限速参数,第四指令用于指示根据限速参数对目标报文进行限速控制。

这里的第一指令、第二指令或者第三指令的实现可以在openflow现有的指令的基础上,新增上述三个指令来实现。例如新增第一指令,第一指令的输入参数为丢包率参数,并在转发面设备上新增执行该第一指令的功能逻辑。

可选地,作为另一种实施方式,发送单元220还可以用于向转发面设备发送配置信息。配置信息可以包括QoS处理规则以及与QoS处理规则对应的索引标识。QoS信息可以包括上述索引标识。根据该标识,可以在配置信息中定位相应的QoS处理规则。换而言之,在这种情况下,流表项中包括了该QoS处理规则的标识,可以减轻控制面设备和转发面设备之间传递流表表项的负载。

可选地,作为另一种实施方式,配置信息可以包括Meter表项,Meter表项的Meter Band包括QoS处理规则,索引标识为Meter表项的标识。相应地,QoS信息包括Meter指令,Meter指令包括Meter表项的标识。即,通过Meter Band来承载QoS处理规则。通过Meter表项的标识可以定位对应的Meter表项,即可以获得对应的QoS处理规则。

可选地,作为另一种实施方式,配置信息可以包括队列信息,队列信息中的队列包括QoS处理规则,索引标识为队列的标识。相应地,QoS信息包括队列指令,队列指令包括队列的标识。即,可以通过队列来承载QoS处理规则。通过队列标识可以定位对应的队列,即可以获得对应的QoS处理规则。

可选地,作为另一种实施方式,QoS信息可以包括自定义QoS处理指令,自定义QoS处理指令包括索引标识,自定义QoS处理指令用于指示根据索引标识从配置信息中获取QoS处理规则。转发面设备可以根据获取的QoS处理规则进行QoS控制。

图3是本发明实施例提供的转发面设备的示意框图,主要示出了该转发面设备中用于实现报文的QoS处理的相关功能部件。图3的转发面设备300包括接收单元310和处理单元320。图3所示的转发面设备300可以实现图1中转发面设备120a、转发面设备120b或者转发面设备120c的功能。图3所示的转发面设备可以和图2所示的控制面设备相互配合,以进行QoS的控制。

接收单元310用于接收数据报文,以及接收控制面设备发送的流表表项。

处理单元320用于:根据该流表表项确定数据报文为目标报文;其中,目标报文为匹配流表表项的数据报文,流表表项包括QoS信息,QoS信息用于指示QoS处理规则;其中,QoS处理规则包括QoS参数;根据QoS信息获取QoS处理规则;根据QoS处理规则,基于QoS参数对目标报文进行QoS控制。

本发明实施例中,由于从控制面设备接收的流表表项所包括的QoS信息用于指示QoS处理规则,使得转发面设备能够根据QoS处理规则,基于QoS参数对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

作为一种可选的实施方式,可以通过通用处理器或者专用处理器来实现图3中处理单元320的功能,还可以通过通信器件(例如:接收机、网卡,串口设备等)实现图3中发送单元310的功能。

可选地,作为一种实施方式,QoS参数可以包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,处理单元320用于根据QoS处理规则,基于QoS参数对目标报文进行QoS控制,可以包括以下至少一种:

处理单元320用于根据QoS处理规则,基于丢包率参数对目标报文进行丢包控制;

处理单元320用于根据QoS处理规则,基于时延参数对目标报文进行时延控制;

处理单元320用于根据QoS处理规则,基于抖动参数对目标报文进行抖动控制;和

处理单元320用于根据QoS处理规则,基于限速参数对目标报文进行限速控制。

本发明实施例中,由于QoS参数包括丢包率参数、时延参数或抖动参数等,使得转发面设备能够根据丢包率参数对目标报文进行丢包控制,根据时延参数对目标报文进行时延控制或根据抖动参数对目标报文进行抖动控制,因此能够实现SDN网络中复杂的QoS控制功能。可选地,作为另一种实施方式,QoS信息可以包括QoS处理规则。换而言之,在这种情况下,流表表项中直接包括了QoS处理规则。

处理单元320可以用于从QoS信息中获取QoS处理规则。

可选地,作为另一种实施方式,QoS处理规则可以包括以下至少一种指令:第一指令、第二指令、第三指令和第四指令。第一指令、第二指令、第三指令和第四指令的相关内容可参考图2所示实施例的相关内容,此处不做赘述。

相应地,处理单元320用于根据QoS处理规则,基于QoS参数对目标报文进行QoS控制,可以包括以下至少一种:

处理单元320用于根据第一指令,基于丢包率参数对目标报文进行丢包控制;

处理单元320用于根据第二指令,基于时延参数对目标报文进行时延控制;

处理单元320用于根据第三指令,基于抖动参数对目标报文进行抖动控制;和

处理单元320用于根据第四指令,基于限速参数对目标报文进行限速控制。

可选地,作为另一种实施方式,处理单元320可以存储有配置信息,配置信息包括QoS处理规则以及与QoS处理规则对应的索引标识。QoS信息可以包括索引标识。该标识的相关内容可参考图2所示实施例的相关内容,此处不做赘述。

处理单元320可以用于根据索引标识从配置信息中获取QoS处理规则。

可选地,作为另一种实施方式,配置信息可以包括Meter表项,Meter表项的Meter Band包括QoS处理规则,索引标识为Meter表项的标识。QoS信息可以包括Meter指令,Meter指令包括Meter表项的标识。Meter表项及Meter Band的相关内容可参考图2所示实施例的相关内容,此处不做赘述。

处理单元320可以用于根据Meter指令获取与Meter表项的标识对应的Meter表项,并从Meter表项的Meter Band中获取QoS处理规则。

可选地,作为另一种实施方式,配置信息可以包括队列信息,队列信息中的队列包括QoS处理规则,索引标识为队列的标识。QoS信息可以包括队列指令,队列指令包括队列的标识。队列的相关内容可以参考图2所示实施例的相关内容,此处不做赘述。

处理单元320可以用于根据队列指令,从队列信息中获取与队列的标识对应的队列,并从队列中获取QoS处理规则。

可选地,作为另一种实施方式,QoS信息可以包括自定义QoS处理指令,自定义QoS处理指令包括索引标识。对应地,处理单元320可以用于根据自定义QoS处理指令,从配置信息中获取与索引标识对应的QoS处理规则。

图4是本发明实施例提供的控制面设备的示意框图。图4的控制面设备400包括处理器410和发送器420。

处理器410用于实现图2的控制面设备200的确定单元210的功能。发送器420用于实现图2的控制面设备200的发送单元220的功能。此处不再赘述。

本发明实施例中,由于向转发面设备发送的流表表项所包括的QoS信息用于指示QoS处理规则,而QoS处理规则包括QoS参数,使得转发面设备能够根据QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

更进一步地,由于QoS参数可以包括丢包率参数、时延参数和抖动参数等参数,因此能够实现SDN网络中复杂的QoS控制功能。

图5是本发明实施例提供的转发面设备的示意框图。图5的转发面设备500包括接收器510和处理器520。

接收器510用于实现图3的转发面设备300的接收单元310的功能。处理器520用于实现图3的转发面设备300的控制单元320的功能。此处不再赘述。

本发明实施例中,由于从控制面设备接收的流表表项所包括的QoS信息用于指示QoS处理规则,而QoS处理规则包括QoS参数,使得转发面设备能够根据QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。更进一步地,由于QoS参数可以包括丢包率参数、时延参数和抖动参数中至少一个,因此能够实现SDN网络中复杂的QoS控制功能。

以下将从控制面设备的角度介绍本发明实施例提供的实现SDN的QoS控制的方法。该方法适用于图2中的控制面设备200或者图4中的控制面设备400。

图6是本发明实施例提供的SDN的QoS控制方法的示意性流程图。图6的方法由上述控制面设备200或控制面设备400执行。

610,控制面设备确定流表表项,流表表项包括QoS信息,QoS信息用于指示QoS处理规则;QoS处理规则包括QoS参数,该QoS处理规则用于指示根据QoS参数对数据报文进行QoS控制。

620,控制面设备向转发面设备发送流表表项。

其中,控制面设备通过下发该流表表项可以使转发面设备根据QoS处理规则对目标报文进行QoS控制;其中,目标报文为与流表表项相匹配的数据报文。

本发明实施例中,由于控制面设备向转发面设备发送的流表表项所包括的QoS信息用于指示QoS处理规则,而QoS处理规则包括QoS参数,使得转发面设备能够根据QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

此外,通过控制面设备向转发面设备发送用于指示QoS处理规则的QoS信息,能够灵活地对业务进行QoS控制,因此对于非友好业务而言,能够通过对其进行QoS控制来降低非友好业务的QoS特性,从而能够降低非友好业务的用户体验。

可选地,作为一种实施方式,QoS参数可以包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数;

相应地,QoS处理规则可以用于指示以下至少一种:

根据丢包率参数对目标报文进行丢包控制;

根据时延参数对目标报文进行时延控制;

根据抖动参数对目标报文进行抖动控制;和

根据限速参数对目标报文进行限速控制。

本发明实施例中,由于QoS参数包括丢包率参数、时延参数或抖动参数等参数,QoS处理规则能够指示根据上述任一参数对目标报文进行相应的QoS控制,因此能够实现SDN网络中复杂的QoS控制功能。

本发明实施例中,丢包率可以指对数据报文的丢弃比例。时延可以指数据报文经过转发面设备延迟的时间。抖动(jitter)可以指同一业务流中的不同数据报文的时延不同。例如,一个业务流中第一个数据报文的时延为10ms,第二个数据报文的时延为12ms,第三个数据报文的时延为8ms,说明存在抖动。如果每个数据报文的时延都完全相同,则不存在抖动,或者说抖动为0。这里对于丢包率、时延和抖动的举例说明,同样适用于本发明的其他实施例。

可选地,作为一种实施方式,如果流表表项包含匹配域,上述目标报文,可以是指与匹配域相匹配的目标报文。如果流表表项不包含匹配域,即Table-Miss表项,则上述目标报文可以是与流表中其它流表表项匹配失败的数据报文。如果Table-Miss表项是流表中唯一表项,则目标报文可以是接收到的所有数据报文。

可选地,作为另一种实施方式,在步骤610中,上述QoS信息可以包含在流表表项的指令域中。

可选地,作为另一种实施方式,在步骤610中,控制面设备可以根据从转发面设备接收的数据报文确定流表表项。例如,Table-Miss表项可以指示将匹配的报文转发至控制面设备,当转发面设备接收到的数据报文与Table-Miss表项匹配时,转发面设备可以将该数据报文转发至控制面设备。控制面设备可以根据该数据报文进行相应的决策,从而确定流表表项。

可选地,作为另一种实施方式,在步骤610中,上述QoS信息可以包括QoS处理规则。

具体而言,控制面设备可以通过流表表项为转发面设备配置QoS处理规则。QoS处理规则可以放在流表表项的指令域中。例如,QoS处理规则可以包括丢包率、时延或抖动等参数。这样,通过在流表表项中携带包括QoS参数的QoS处理规则,对现有协议的改动较小,能够更好地兼容现有协议。

可选地,作为另一种实施方式,对于QoS信息包括QoS处理规则的情况,QoS处理规则可以包括以下至少一条指令:第一指令、第二指令、第三指令和第四指令。第一指令可以包括丢包率参数,第一指令可以用于指示根据该丢包率参数对目标报文进行丢包控制。第二指令可以包括时延参数,第二指令可以用于指示根据时延参数对目标报文进行时延控制。第三指令可以包括抖动参数,第三指令可以用于指示根据该抖动参数对目标报文进行抖动控制。第四指令可以包括限速参数,第四指令用于指示根据限速参数对目标报文进行限速控制。

上述第一指令、第二指令和第三指令可以为动作指令。这三个指令可以用于“Apply-Actions”指令中,也可以用于“Write-Actions”指令中。

可选地,作为另一种实施方式,在步骤610之前,控制面设备可以向转发面设备发送配置信息,配置信息可以包括QoS处理规则以及与QoS处理规则对应的索引标识。QoS信息可以包括上述索引标识。

本发明实施例中,控制面设备可以预先为转发面设备配置QoS处理规则。这样,流表表项可以携带QoS处理规则对应的索引标识。相对于流表表项直接携带QoS处理规则的方案而言,能够减少信令开销。

可选地,作为另一种实施方式,配置信息可以包括Meter表项,Meter表项的Meter Band包括QoS处理规则,索引标识为Meter表项的标识。相应地,QoS信息包括Meter指令,Meter指令包括Meter表项的标识。

具体而言,可以采用现有的Meter机制来配置QoS处理规则。例如,可以在Meter表项的每个Band中,增加QoS参数。这样,可以结合Meter指令来实现QoS控制功能。例如,流表表项的指令域可以包括Meter指令,Meter指令的参数为Meter表项ID。本发明实施例中,利用现有的Meter机制来配置QoS处理规则,能够更好地兼容现有协议。

可选地,作为另一种实施方式,配置信息可以包括队列信息,队列信息中的队列包括QoS处理规则,索引标识为队列的标识。相应地,QoS信息可以包括队列指令,队列指令包括队列的标识。

具体地,可以采用现有的队列机制来配置QoS处理规则。例如,可以在队列的属性中增加QoS参数,比如丢包率、时延、抖动等参数。每个队列有相应的队列ID。

这样,可以结合设置队列指令,来实现QoS控制功能。例如,流表表项的指令域中可以包括“Set-Queue”指令,Set-Queue指令的参数为队列ID。本发明实施例中,利用现有的队列机制来配置QoS处理规则,能够更好地兼容现有协议。

控制面设备可以通过Openflow消息将队列信息下发至转发面设备,也可以通过OF-Cofig消息将队列信息下发给转发面设备,或者也可以通过转发面设备的网管系统将队列信息配置给转发面设备。

除了通过Meter机制和队列机制实现QoS控制之外,还可以通过在OpenFlow中定义新元素来实现QoS控制。举例如下:

可选地,作为另一种实施方式,QoS信息可以包括自定义QoS处理指令,自定义QoS处理指令包括索引标识,自定义QoS处理指令用于指示根据索引标识从配置信息中获取QoS处理规则。

具体而言,可以定义新的QoS元素来配置QoS处理规则。

例如,本发明实施例中,可以以“QoSElement”表示该QoS元素。每个“QoSElement”有相应的ID来标识,例如可以表示为QoSElement ID”。该QoS元素可以包括如下参数:

最小速率(MinRate):表示可以保障的最小带宽。

最大速率(MaxRate):表示资源允许时的最大带宽。

丢包率(DropRate):表示丢弃报文的比例。

时延(DelayTime):表示延迟多长时间。

抖动(JitterTime):表示抖动的大小。

元素“QoSElement”可以模拟一段物理链路的QoS特性,也可以用于模拟一个网络节点的QoS特性,从而很容易实现网络仿真。

此外,可以为元素“QoSElement”定义相应的动作指令,此处可以以“QoSHandle”表示自定义QoS处理指令。这个自定义QoS处理指令的参数可以为“QoSElement”。这样,可以在流表表项中携带“QoSHandle”指令来实现QoS控制。

本发明实施例中,通过定义新的元素为转发面设备配置QoS处理规则,能够灵活地实现限速、丢包、时延、抖动等各种QoS控制功能。

以下将从转发面设备的角度介绍本发明实施例提供的实现SDN的QoS控制的方法。该方法适用于图3中的转发面设备200或者图4中的转发面设备400。

图7是本发明实施例提供的SDN的QoS控制方法的示意性流程图。图7的方法由转发面设备执行,例如图1中的转发面设备120a、120b或120c,图3中的转发面设备300,图5中的转发面设备500等。图7的方法与图6的方法相对应。本领域技术人员应知,图6所示实施例中的描述同样适用于图7所示的方法,因此部分内容不再赘述。

710,转发面设备接收数据报文,以及接收控制面设备发送的流表表项。

720,转发面设备根据该流表表项确定该数据报文为目标报文;其中目标报文为匹配该流表表项的数据报文,流表表项包括QoS信息,QoS信息用于指示QoS处理规则;其中,QoS处理规则包括QoS参数。

730,转发面设备根据QoS信息获取QoS处理规则。

740,转发面设备根据QoS处理规则,基于该QoS参数对目标报文进行QoS控制。

本发明实施例中,由于控制面设备发送的流表表项所包括的QoS信息用于指示QoS处理规则,而QoS处理规则包括QoS参数,使得转发面设备能够根据QoS处理规则,基于QoS参数对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

可选地,作为一种实施例方式,QoS参数可以包括以下至少一种:丢包率参数、时延参数、抖动参数和限速参数。

相应地,在步骤740中,转发面设备根据QoS处理规则,基于QoS参数对目标报文进行QoS控制可以包括以下至少一种:

转发面设备根据QoS处理规则,基于丢包率参数对目标报文进行丢包控制;

转发面设备根据QoS处理规则,基于时延参数对目标报文进行时延控制;

转发面设备根据QoS处理规则,基于抖动参数对目标报文进行抖动控制;和

转发面设备根据QoS处理规则,基于限速参数对目标报文进行限速控制。

本发明实施例,由于QoS参数包括丢包率参数、时延参数或抖动参数等参数,使得转发面设备能够根据上述任一参数对目标报文进行相应的QoS控制、因此能够实现SDN网络中复杂的QoS控制功能。

可选地,作为另一种实施方式,QoS信息可以包括QoS处理规则。在步骤730中,转发面设备可以QoS信息中获取QoS处理规则。

这样,通过在流表表项中携带包括QoS参数的QoS处理规则,对现有协议的改动较小,能够更好地兼容现有协议。

可选地,作为另一种实施方式,对于QoS信息包括QoS处理规则的情况,QoS处理规则可以包括以下至少一条指令:第一指令、第二指令、第三指令和第四指令。第一指令可以包括丢包率参数。第二指令可以包括时延参数。第三指令可以包括抖动参数。第四指令可以包括限速参数。

相应地,在步骤740中,转发面设备根据QoS处理规则,基于QoS参数对目标报文进行QoS控制可以包括以下至少一种:

转发面设备根据第一指令,基于丢包率参数对目标报文进行丢包控制;

转发面设备根据第二指令,基于时延参数对目标报文进行时延控制;

转发面设备根据第三指令,基于抖动参数对目标报文进行抖动控制;和

转发面设备根据第四指令,基于限速参数对目标报文进行限速控制。

可选地,作为另一种实施方式,转发面设备上可以存有配置信息,配置信息包括QoS处理规则以及与QoS处理规则对应的索引标识。上述QoS信息可以包括索引标识。在步骤730中,转发面设备可以根据索引标识从配置信息中获取QoS处理规则。本发明实施例中,通过预先配置QoS处理规则和QoS处理规则对应的索引标识,能够减少信令开销。

可选地,作为另一种实施方式,配置信息可以包括Meter表项,Meter表项的Meter Band包括QoS处理规则,索引标识为Meter表项的标识。QoS信息可以包括Meter指令,Meter指令包括Meter表项的标识。

相应地,在步骤730中,转发面设备可以根据Meter指令获取与Meter表项的标识对应的Meter表项,并从Meter表项的Meter Band中获取QoS处理规则。本发明实施例中,利用现有的Meter机制来配置QoS处理规则,能够更好地兼容现有协议。

可选地,作为另一种实施方式,配置信息可以包括队列信息,队列信息中的队列包括QoS处理规则,索引标识为队列的标识。QoS信息可以包括队列指令,队列指令包括队列的标识。

相应地,在步骤730中,转发面设备根据队列指令,从队列信息中获取与队列的标识对应的队列,并从队列中获取QoS处理规则。

本发明实施例中,利用现有的队列机制来配置QoS处理规则,能够更好地兼容现有协议。

可选地,作为另一种实施方式,QoS信息可以包括自定义QoS处理指令,自定义QoS处理指令包括索引标识。

相应地,在步骤730中,转发面设备可以根据自定义QoS处理指令,从配置信息中获取与索引标识对应的QoS处理规则。

本发明实施例中,通过定义新的元素为转发面设备配置QoS处理规则,能够灵活地实现限速、丢包、时延、抖动等各种QoS控制功能。

下面将结合具体例子详细描述本发明实施例提供的SDN的QoS控制的方法。应理解,这些例子仅是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。上述图1-图7中关于本发明实施例中提供的SDN的QoS控制方法、转发面设备和控制面设备的描述,同样适用于以下的具体示例,部分内容不再赘述。

图8是本发明实施例提供的SDN的QoS控制方法的过程的示意性流程图。

在图8所示的方法中,可以通过扩展流表表项中的动作相关的指令实现控制面设备对转发面设备的丢包、时延和抖动控制。

具体地,可以定义三个动作指令,即第一指令、第二指令和第三指令,从而实现控制面设备对转发面设备的丢包、时延和抖动控制。

本发明实施例中,可以以“RamdomDrop”表示第一指令。第一指令可以包括丢包率参数,丢包率参数可以表示丢弃报文的比例。第一指令可以用于指示根据该丢包率参数对数据报文进行丢包控制。丢包率参数可以表示为“DropRate”。

另外,可以以“Delay”表示第二指令。第二指令可以携带时延参数,时延参数可以表示对数据报文延迟的时间。第二指令可以用于指示根据该时延参数对数据报文进行时延控制。时延参数可以表示为“DelayTime”。

此外,可以以“Jitter”表示第三指令。第三指令可以携带抖动参数,抖动参数可以表示引入的抖动的大小。第三指令可以用于指示根据该抖动参数对数据报文进行抖动控制。抖动参数可以表示为“JitterTime”。

在使用方面,上述定义的三个新动作指令和OpenFlow中现有的动作指令类似。例如,这三个新动作指令可以在“Apply-Actions”指令中使用,也可以在“Write-Actions”指令中使用。另外,上述三个新动作指令可以任意组合使用,也可以单独使用。

801,控制面设备确定第一流表表项。

例如,第一流表表项的具体内容可以如下:

Table ID=X,Match(SRC IP=1.1.1.1,DST IP=2.2.2.2),

Instructions(Apply-Actions(RandomDrop(10%),Delay(10ms),Jitter(5ms),Output(Port 1)))。

具体而言,第一流表表项所在的流表的ID可以为X。第一流表表项可以与源IP地址为1.1.1.1且目的IP地址为2.2.2.2的数据报文匹配。第一流表表项的指令域可以包括动作指令。其中,“RandomDrop(10%)”可以指示对所匹配的数据报文随机丢弃10%。“Delay(10ms)”可以指示对所匹配的数据报文延时20ms。“Jitter(5ms)”可以指示对所匹配的数据报文引入5ms抖动。“Output(Port 1)”可以指示将所匹配的数据报文从端口1发出去。“Apply-Actions”可以表示立即执行上述这些指令。

802,控制面设备向转发面设备发送第一流表表项。

803,转发面设备根据第一流表表项处理第一数据报文。

第一数据报文为与第一流表表项匹配的报文。具体地,第一数据报文可以是源IP地址为1.1.1.1且目的IP地址为2.2.2.2的报文。转发面设备可以对第一数据报文随机丢弃10%、延时20ms以及引入5ms抖动,然后将第一数据报文从端口1发送出去。

804,控制面设备确定第二流表表项。

例如,第二流表表项的具体内容可以如下:

Table ID=Y,Table-Miss,Instructions(Apply-Actions(RandomDrop(2%),Output(Port 2)))。

具体地,第二流表表项所在的流表的ID可以为Y。第二流表表项没有匹配域,可以匹配所有数据报文。第二流表表项的指令域可以包括动作指令。其中,“RandomDrop(2%)”可以指示对所匹配的数据报文随机丢弃2%。“Output(Port 2)”可以指示对所匹配的数据报文从端口2发送出去。Apply-Actions”可以表示立即执行上述这些指令。

805,控制面设备向转发面设备发送第二流表表项。

806,转发面设备根据第二流表表项处理第二数据报文。

第二数据报文可以为与第二流表表项匹配的报文。具体而言,第二数据报文可以为与转发面设备中存储的其它流表表项匹配失败的数据报文。转发面设备可以对第二数据报文随机丢弃2%,然后将第二数据报文从端口2发送出去。

807,控制面设备确定第三流表表项。

例如,第三流表表项的具体内容可以如下:

Table ID=Z,Table-Miss,Instructions(Output(CONTROLLER))。

具体地,第三流表表项所在的流表的ID可以为Z。第三流表表项没有匹配域,可以匹配所有数据报文。第二流表表项的指令域可以包括动作指令。其中,“Output(CONTROLLER)”可以指示将所匹配的数据报文转发给控制面设备。

808,控制面设备向转发面设备发送第三流表表项。

809,转发面设备根据第三流表表项向控制面设备发送与第三流表表项所匹配的第三数据报文。

第三数据报文可以为与转发面设备中存储的其它流表表项匹配失败的数据报文。

810,控制面设备根据第三数据报文,确定第四流表表项。

例如,第四流表表项的具体内容可以如下:

Table ID=Z,Match(DST IP=3.3.3.3)),

Instructions(Write-Actions(Delay(10ms),Goto-Table(W)))。

具体地,第四流表表项所在的流表的ID可以为Z。第四流表表项可以与目的IP地址为2.2.2.2的数据报文匹配。第四流表表项的指令域可以包括动作指令。其中,“Delay(10ms)”可以指示对所匹配的数据报文延时10ms。“Goto-Table(W)”可以指示跳转至流表表项W继续处理。“Write-Actions”可以指示将上述这些指令写入数据报文对应的动作集中,在流水线结束的时候再执行。

811,控制面设备向转发面设备发送第四流表表项。

812,转发面设备根据第四流表表项处理第四数据报文。

第四数据报文可以为与第四流表表项匹配的数据报文。具体地,第四数据报文可以为目的IP地址为2.2.2.2的报文。转发面设备可以对第四数据报文延时10ms,然后跳转至流表表项W继续处理。

本发明实施例中,控制面设备通过流表表项向转发面设备发送QoS处理规则,使得转发面设备能够根据QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

图9是本发明实施例提供的另一SDN的QoS控制方法的过程的示意性流程图。在图9所示的方法中,可以通过扩展Meter表项实现控制面设备对转发面设备的丢包、时延和抖动控制。

具体地,可以定义新的Meter Band类型来实现控制面设备对转发面设备的丢包、时延和抖动控制。例如,该Meter Band类型可以以“QoSAdjust”表示。

该Meter Band可以包括以下至少一个参数:丢包率参数、时延参数和抖动参数。

例如,丢包率参数可以以“DropRate”表示。时延参数可以以“DelayTime”表示。抖动参数可以以“JitterTime”表示。

在使用方面所定义的新Meter Band类型和现有的Meter Band类似。此外,新Meter Band类型也可以和现有的Meter Band类型一起配合使用。

901,控制面设备生成Meter表项。

Meter表项可以包括QoS处理规则以及Meter表项ID。例如,Meter表项的具体内容可以如下:

Meter ID=1,

Band Type=DSCP Remark,Rate=1Mbps,Burst Size=1Mb,DSCP=2;

Band Type=QoSAdjust,Rate=2Mbps,Burst Size=1Mb,DelayTime=10ms;

Band Type=QoSAdjust,Rate=3Mbps,Burst Size=2Mb,DelayTime=20ms,JitterTime=5ms;

Band Type=QoSAdjust,Rate=4Mbps,Burst Size=2Mb,DropRate=20%,DelayTime=40ms,JitterTime=10ms;

Band Type=Drop,Rate=5Mbps,Burst Size=3Mb。

具体地,该Meter表项的ID为1。在数据报文的速率为0-1Mbps时,对该数据报文不进行QoS控制。“Band Type=DSCP Remark,Rate=1Mbps,Burst Size=1Mb,DSCP=2”可以指示当数据报文速率为1-2Mbps时,将数据报文的DSCP设置为2。“Band Type=QoSAdjust,Rate=2Mbps,Burst Size=1Mb,DelayTime=10ms”可以指示当数据报文速率为2-3Mbps时,将该数据报文延时10ms。“Band Type=QoSAdjust,Rate=3Mbps,Burst Size=2Mb,DelayTime=20ms,JitterTime=5ms”可以指示当数据报文速率为3-4Mbps时,将该数据报文延延时20ms,引入抖动5ms。“Band Type=QoSAdjust,Rate=4Mbps,Burst Size=2Mb,DropRate=20%,DelayTime=40ms,JitterTime=10ms”可以指示当数据报文速率为4-5Mbps时,将该数据报文随机丢弃20%,延时40ms,并引入抖动10ms。“Band Type=Drop,Rate=5Mbps,Burst Size=3Mb”可以指示当数据报文速率超过5Mbps时,将该数据报文丢弃。

902,控制面设备向转发面设备发送Meter表项。

903,控制面设备确定流表表项。

由于通过Meter表项来进行QoS控制,因此可以在流表表项中可以包括Meter指令。例如,针对上述示例的Meter表项,流表表项的内容可以如下:

Table ID=X,Match(SRC IP=1.1.1.1,IP Protocol=TCP),

Instructions(Meter 1,Apply-Actions(Output(Port 1))。

其中,该流表表项所在的流表的ID可以为X。该流表表项可以与源IP地址为1.1.1.1的TCP数据报文匹配。“Meter 1”为Meter指令,用于指示利用ID为1的Meter表项对所匹配的数据报文进行QoS控制。“Output(Port 1)”可以指示将所匹配的数据报文从端口1发送出去。“Apply-Actions”可以指示立即执行指令“Output(Port 1)”。

904,控制面设备向转发面设备发送流表表项。

905,转发面设备根据流表表项和Meter表项,对与流表表项匹配的数据报文进行处理。

例如,在上述的示例中,源IP地址为1.1.1.1的TCP数据报文与流表表项相匹配。转发面设备可以利用ID为1的Meter表项对该数据报文进行QoS控制,并从端口1发送出去。

本发明实施例中,通过利用Meter表项预先配置QoS处理规则,并通过流表表项携带Meter表项的标识,使得转发面设备能够根据Meter表项中的QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

图10是本发明实施例提供的又一SDN的QoS控制方法的示意性流程图。在图10所示的方法中,可以通过扩展队列信息实现控制面设备对转发面设备的丢包率、时延和抖动的控制。

具体地,可以定义三个新的队列属性,即丢包率参数、时延参数和抖动参数。

例如,丢包率参数可以以“DropRate”表示。时延参数可以以“DelayTime”表示。抖动参数可以以“JitterTime”表示。

每个队列可以包括上述至少一个参数。此外,这些参数也可以和其他队列属性(比如最大速率、最小速率等)组合使用。

在本实施例中假设在端口1有四个队列,四个队列的ID分别为1、2、3和4。

1001,控制面设备生成队列信息。

队列信息中的每个队列可以包括上述定义的新参数。

例如,队列信息的具体内容可以如下:

Port ID=1:

Queue ID=1,MinRate=100‰,MaxRate=250‰,DropRate=10%;

Queue ID=2,MinRate=100‰,MaxRate=250‰,DelayTime=10ms;

Queue ID=3,MinRate=100‰,MaxRate=250‰,DelayTime=10ms,JitterTime=5ms;

Queue ID=4,MinRate=100‰,MaxRate=250‰,DropRate=5%,DelayTime=10ms,JitterTime=5ms。

具体地,“MinRate=100‰,MaxRate=250‰,DropRate=10%”可以指示队列1中的数据报文的最小带宽为100‰,最大带宽为250‰,并丢弃10%。“MinRate=100‰,MaxRate=250‰,DelayTime=10ms”可以指示队列2中的数据报文的最小带宽为100‰,最大带宽为250‰,并延时10ms。“MinRate=100‰,MaxRate=250‰,DelayTime=10ms,JitterTime=5ms”可以指示队列3中的数据报文的最小带宽为100‰,最大带宽为250‰,延时10ms,并引入抖动5ms。

1002,控制面设备向转发面设备发送队列信息。

例如,控制面设备可以通过OpenFlow消息或者OF-config消息发送队列信息。或者,控制面设备还可以通过转发面设备的网管系统向转发面设备发送队列信息。

1003,控制面设备基于队列信息,确定第一流表表项、第二流表表项、第三流表表项和第四流表表项。

假设第一流表表项、第二流表表项、第三流表表项和第四流表表项均可以属于同一流表,并且假设该流表的ID为X。基于上述的队列信息,第一流表表项的具体内容可以如下:

Table ID=X,Match(SRC IP=1.1.1.1),

Instructions(Apply-Actions(Set-Queue(1),Output(Port 1))。

具体地,第一流表表项可以与源IP地址为1.1.1.1的数据报文匹配。“Set-Queue(1)”可以指示利用ID为1的队列对所匹配的数据报文进行QoS控制。“Output(Port 1)”可以指示将所匹配的报文从端口1发送出去。

第二流表表项的具体内容可以如下:

Table ID=X,Match(SRC IP=2.2.2.2),

Instructions(Apply-Actions(Set-Queue(2),Output(Port 1))

具体地,第二流表表项可以与源IP地址为2.2.2.2的数据报文匹配。“Set-Queue(2)”可以指示利用ID为2的队列对所匹配的数据报文进行QoS控制。

第三流表表项的具体内容可以如下:

Table ID=X,Match(SRC IP=3.3.3.3),

Instructions(Apply-Actions(Set-Queue(3),Output(Port 1))。

具体地,第三流表表项可以与源IP地址为3.3.3.3的数据报文匹配。“Set-Queue(3)”可以指示利用ID为3的队列对所匹配的数据报文进行QoS控制。

第四流表表项的具体内容可以如下:

Table ID=X,Match(SRC IP=4.4.4.4),

Instructions(Apply-Actions(Set-Queue(4),Output(Port 1))。

具体地,第四流表表项可以与源IP地址为4.4.4.4的数据报文匹配。“Set-Queue(4)”可以指示利用ID为4的队列对所匹配的数据报文进行QoS控制。

1004,控制面设备向转发面设备发送第一流表表项、第二流表表项、第三流表表项和第四流表表项。

1005,转发面设备根据第一流表表项对第一数据报文进行处理,根据第二流表表项对第二数据报文进行处理,根据第三流表表项对第三数据报文进行处理,根据第四流表表项对第四数据报文进行处理。

具体地,第一数据报文可以与第一流表表项相匹配。第二数据报文可以与第二流表表项相匹配。第三数据报文可以与第三流表表项相匹配。第四数据报文可以与第四流表表项相匹配。

转发面设备可以使第一数据报文进入队列1,第二数据报文进入队列2,第三数据报文进入队列3,第四数据报文进入队列4。转发面设备利用队列1至队列4对相应的数据报文进行处理后,可以将数据报文从端口1发送出去。

本发明实施例中,通过利用队列预先配置QoS处理规则,并通过流表表项携带队列的标识,使得转发面设备能够根据队列中的QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

图11是本发明实施例提供的又一SDN的QoS控制方法的过程的示意性流程图。

在图11所示的方法中,可以为OpenFlow定义新元素来实现控制面设备对转发面设备的限速、丢包率、时延或抖动控制。例如,该元素可以称为QoS元素。该新QoS元素可以以“QoSElement”表示。“QoSElement”可以包括如下参数:

最小速率(MinRate):表示可以保障的最小带宽。

最大速率(MaxRate):表示资源允许时的最大带宽。

丢包率(DropRate):表示丢弃报文的比例。

时延(DelayTime):表示延迟多长时间。

抖动(JitterTime):表示抖动的大小。

元素“QoSElement”可以模拟一段物理链路的QoS特性,也可以用于模拟一个网络节点的QoS特性,从而很容易实现网络仿真。

此外,可以为元素“QoSElement”定义相应的动作指令,可以称为QoS处理指令,此处可以以“QoSHandle”表示。这个指令的参数可以为“QoSElement ID”。

为了更清楚理解图11所示的方法,下面将结合图12所示的网络拓扑进行说明。

图12是本发明实施例的一种网络拓扑示例的示意图。

如图12所示,假设主机A通过网元C、网元D、网元E和网元F与主机B相连接。网元C与网元D之间的链路可以为卫星链路,网元D与网元E之间的链路可以为光纤链路。网元E与网元F之间的链路可以为3G链路。主机A与网元C之间可以通过以太网通信,网元F与主机B之间可以通过以太网通信。

通过上述新元素“QoSElement”可以模拟主机A与主机B之间的网络,即图12中的虚线框中的网络。图13是根据图12所示的网络拓扑的实际组网的示意图。如图13所示,主机A可以通过转发面设备与主机B进行通信。控制面设备可以通过OpenFlow协议控制转发面设备。

为简便起见,假设主机A与主机B之间可以直接通过IP地址进行通信。假设主机A的IP地址为1.1.1.1,主机B的IP地址可以为2.2.2.2。下面将详细描述控制面设备与转发面设备之间的交互流程。

1101,控制面设备生成QoS元素。

具体地,该QoS元素仍以“QoSElement”表示。

例如,控制面设备可以生成七个“QoSElement”。每个“QoSElement”具有相应的ID。比如,这七个“QoSElement”的具体内容可以如下:

QoSElement ID=1,MinRate=1Gbps,MaxRate=1Gbps,DropRate=0.01%,DelayTime=10ms,JitterTime=2ms;

QoSElement ID=2,MinRate=20Mbps,MaxRate=100Mbps,DropRate=5%,DelayTime=100ms,JitterTime=10ms;

QoSElement ID=3,MinRate=10Gbps,MaxRate=10Gbps,DropRate=0.001%,DelayTime=5ms,JitterTime=1ms;

QoSElement ID=4,MinRate=1Gbps,MaxRate=1Gbps,DropRate=0.01%,DelayTime=5ms,JitterTime=1ms;

QoSElement ID=5,MinRate=40Gbps,MaxRate=40Gbps,DropRate=0.001%,DelayTime=5ms,JitterTime=1ms;

QoSElement ID=6,MinRate=1Mbps,MaxRate=10MGbps,DropRate=0.01%,DelayTime=20ms,JitterTime=10ms;

QoSElement ID=7,MinRate=1Gbps,MaxRate=1Gbps,DropRate=0.001%,DelayTime=5ms,JitterTime=1ms。

其中,“MinRate=1Gbps,MaxRate=1Gbps,DropRate=0.01%,DelayTime=10ms,JitterTime=2ms”可以指示数据报文最小带宽为1Gbps,最大带宽为1Gbps,将数据报文随机丢弃0.01%,延时10ms,引入抖动2ms。

以此类推,其它元素的含义类似,不再赘述。

应理解,七个“QoSElement”分别对应网元C、卫星链路、网元D、光纤链路、网元E、3G链路和网元F的QoS特性。其中,卫星链路和3G链路的“MinRate”小于“MaxRate”,可以表示这两条链路的带宽是变化的。网元C的“MinRate”等于“MaxRate”,均为1Gbps,可以表示网元C的吞吐量是恒定的。

然后,控制面设备可以通过流表表项向转发面指示对数据报文进行处理的QoS元素。流表表项可以包括QoS处理指令以及“QoSElement”的ID。假设第一流表表项和第二流表表项属于同一流表,并假设该流表的ID为X。

1103,控制面设备确定第一流表表项。

例如,针对上述示例的“QoSElement”,第一流表表项的内容可以如下:

Table ID=X,Match(SRC IP=1.1.1.1,DST IP=2.2.2.2),

Instructions(Apply-Actions(QoSHandle(1),QoSHandle(2),QoSHandle(3),QoSHandle(4),QoSHandle(5),QoSHandle(6),QoSHandle(7)),Output(Port 2))。

其中,第一流表表项与源IP地址为1.1.1.1且目的IP地址为2.2.2.2的数据报文相匹配。“QosHandle(1)”可以指示利用ID为1的“QoSElement”对所匹配的数据报文进行QoS控制。其它QoS处理指令的含义与“QosHandle(1)”类似,不再赘述。

1104,控制面设备向转发面设备发送第一流表表项。

1105,控制面设备确定第二流表表项。

例如,针对上述示例的“QoSElement”,第二流表表项的内容可以如下:

Table ID=X,Match(SRC IP=2.2.2.2,DST IP=1.1.1.1),

Instructions(Apply-Actions(QoSHandle(7),QoSHandle(6),QoSHandle(5),QoSHandle(4),QoSHandle(3),QoSHandle(2),QoSHandle(1)),Output(Port 1))

其中,第二流表表项与源IP地址为2.2.2.2且目的IP地址为1.1.1.1的数据报文相匹配。第二流表表项中的QoS处理指令的含义与上述第一流表表项中的“QosHandle(1)”类似,不再赘述。

1106,转发面设备根据第一流表表项对第一数据报文进行处理,根据第二流表表项对第二数据报文进行处理。

例如,第一数据报文可以为与第一流表表项相匹配的数据报文,即源IP地址为1.1.1.1且目的IP地址为2.2.2.2的数据报文。第二数据报文可以为与第二流表表项相匹配的数据报文,即源IP地址为2.2.2.2且目的IP地址为1.1.1.1的数据报文。转发面设备可以依次利用QoS元素1至QoS元素7对第一数据报文进行处理,然后将第一数据报文从端口2发送出去。转发面设备可以依次利用QoS元素7至1对第二数据报文进行处理,然后将第二数据报文从端口1发送出去。

本发明实施例中,通过利用所定义的新QoS元素预先配置QoS处理规则,并通过流表表项携带QoS元素的标识,使得转发面设备能够根据QoS元素中的QoS处理规则对目标报文进行QoS控制,从而能够实现SDN网络中的QoS控制功能。

此外,本发明实施例中,通过控制面设备集中控制,使得转发面设备的实现简单,从而能够模拟各种QoS特性的网元和链路,便于实现网络仿真。因此,利于专业人员进行各种网络实验,例如QoS测试实验等。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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