CN117675584A - 流量控制方法、网络系统以及相关设备 - Google Patents
流量控制方法、网络系统以及相关设备 Download PDFInfo
- Publication number
- CN117675584A CN117675584A CN202211061418.4A CN202211061418A CN117675584A CN 117675584 A CN117675584 A CN 117675584A CN 202211061418 A CN202211061418 A CN 202211061418A CN 117675584 A CN117675584 A CN 117675584A
- Authority
- CN
- China
- Prior art keywords
- forwarding node
- forwarding
- traffic
- bandwidth
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 17
- 238000004891 communication Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 24
- 230000001960 triggered effect Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 239000010410 layer Substances 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请实施例公开了一种流量控制方法、网络系统以及相关设备,属于通信技术领域。所述方法包括:调度中心基于各个转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,根据目标带宽为各个转发节点划分流量分配量,以使各个转发节点在当前时间之后的最近的参考时长内基于相应的流量分配量转发报文。因此提供了一种动态分配目标带宽的方式。并且,在动态分配目标带宽的过程中,由调度中心主动为各个转发节点划分流量分配量,相对于由各个转发节点主动从总令牌桶中获取令牌以控制流量,调度中心在基于目标带宽主动协调各个转发节点的流量分配量时,可以考虑小流节点的特性,从而避免某些小流节点存在“饿死”的情况。
Description
技术领域
本申请实施例涉及通信技术领域,特别涉及一种流量控制方法、网络系统以及相关设备。
背景技术
随着分布式网络的发展,不同的转发节点通常并行转发来自同一用户的流量,而网络针对每个用户的流量设置有带宽限制,因此如何根据针对用户的流量的带宽限制控制各个转发节点上的流量是当前研究的热点。
相关技术中,网络中的控制中心上配置有总令牌桶,且控制中心根据针对用户的流量的带宽限制设置总令牌桶中的令牌数量,各个转发节点上配置有子令牌桶。各个转发节点在转发属于该用户的报文时,先基于本地的子令牌桶中的令牌数量判断是否需要从总令牌桶处申请令牌,如果需要申请令牌,转发节点则从总令牌桶处申请令牌添加到本地的子令牌桶中,然后在转发报文后减少子令牌桶中的令牌数量,并继续在下一次转发该用户的报文时判断是否需要从总令牌桶处申请令牌。通过这种方式,控制中心可以控制各个转发节点转发该用户的报文的带宽不会超过带宽限制。
但是,相关技术是一种先到先得的方式,也即转发节点中谁的流量先到达,则谁先申请令牌,相应也就拥有转发流量的权限。这样将导致流量较少的转发节点存在一直申请不到令牌的情况,也即存在“饿死”的情况,从而导致该转发节点上的流量丢包严重。
发明内容
本申请实施例提供了一种流量控制方法、网络系统以及相关设备,可以在流量控制时考虑小流节点的特性,从而避免某些小流节点存在“饿死”的情况。所述技术方案如下:
第一方面,提供了一种流量控制方法,该方法应用于网络系统,网络系统包括调度中心和多个转发节点。在该方法中,调度中心确定多个转发节点中每个转发节点的当前流量信息,当前流量信息指示相应转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,多个转发节点转发流量的总带宽不超过目标带宽;调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量,以使每个转发节点在当前时间之后且距离当前时间最近的参考时长内基于相应的流量分配量转发报文。
在本申请实施例中,调度中心基于各个转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,根据目标带宽为各个转发节点划分流量分配量,以使各个转发节点在当前时间之后的最近的参考时长内基于相应的流量分配量转发报文。由此可知,调度中心是周期性地基于各个转发节点的流量特征分配目标带宽,以指导各个转发节点在每个周期内控制流量。因此,本申请实施例提供了一种动态分配目标带宽的方式。并且,在动态分配目标带宽的过程中,由调度中心主动为各个转发节点划分流量分配量,相对于由各个转发节点主动从总令牌桶中获取令牌以控制流量,调度中心在基于目标带宽主动协调各个转发节点的流量分配量时,可以考虑小流节点的特性,从而避免某些小流节点存在“饿死”的情况。
基于第一方面提供的方法,在一些实施例中,调度中心确定多个转发节点中每个转发节点的当前流量信息的实现方式包括:对于多个转发节点中第一转发节点,第一转发节点按照参考时长周期性向调度中心发送带宽申请请求,带宽申请请求携带第一流量信息,第一流量信息指示相应周期内第一转发节点的流量特征,第一转发节点为多个转发节点中任一个;调度中心将最近一次接收到的第一流量信息作为第一转发节点的当前流量信息。
通过上述方式,各个转发节点周期性申请带宽,以触发调度中心周期性地对目标带宽进行动态分配。
基于第一方面提供的方法,在一些实施例中,调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量之后,调度中心向第一转发节点发送相应的流量分配量;第一转发节点接收相应的流量分配量,并基于相应的流量分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
通过上述方式,在各个转发节点周期性申请带宽后,调度中心周期性地基于目标带宽确定各个转发节点的流量分配量,以周期性向各个转发节点下发流量分配量,实现对目标带宽的动态分配。
基于第一方面提供的方法,在一些实施例中,调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量的实现方式可以为:如果调度中心确定当前需要限速,则基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量。
为了节省调度中心的计算资源,调度中心在周期性地分配目标带宽之前,还可以先确定当前是否需要限速,在确定需要限速的情况下,才会分配目标带宽。
基于第一方面提供的方法,在一些实施例中,在该方法中,如果调度中心确定当前不需要限速,则不执行基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量的操作;调度中心向第一转发节点发送不限速指示信息,不限速指示信息指示第一转发节点将本地的流量可使用量更新至上限值。
另外,在不需要限速时,则需要向转发节点下发不限速指示信息,不限速指示信息指示第一转发节点将本地的流量可使用量更新至上限值。
基于第一方面提供的方法,在一些实施例中,调度中心确定多个转发节点中每个转发节点的当前流量信息的实现方式可以为:对于多个转发节点中第一转发节点,第一转发节点在当前时间之前且距离当前时间最近的参考时长内响应于带宽申请事件的触发,向调度中心发送带宽申请请求,带宽申请请求携带第二流量信息,第二流量信息指示第一转发节点在最近一次发送带宽申请请求后到当前时间之间的流量特征,第一转发节点为多个转发节点中任一个;调度中心基于第一转发节点在当前时间之前且距离当前时间最近的参考时长内一次或多次发送的第二流量信息,确定第一转发节点的当前流量信息。
通过上述方式,转发节点在一个周期内不再只上报一次带宽申请请求,而是在一个周期内只要带宽申请事件被触发,就向调度中心上报带宽申请请求。如此在一个周期内,转发节点可能向调度中心上报多次带宽申请请求。由于在一个周期内转发节点可能向调度中心上报多次带宽申请请求,因此第一转发节点的当前流量特征用于指示第一转发节点在最近一次发送带宽申请请求后到当前发送带宽申请请求之间这段时间内的流量特征。如此,调度中心便可基于第一转发节点在一个周期内多次上报的带宽申请请求,统计得到第一转发节点在一个周期内的流量特征。
基于第一方面提供的方法,在一些实施例中,调度中心上配置有每个转发节点对应的虚拟可分配量。这种场景下,调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量之后,调度中心基于第一转发节点的流量分配量更新第一转发节点对应的虚拟可分配量;调度中心在每次接收到带宽申请请求时,基于第二流量信息以及第一转发节点对应的虚拟可分配量,从第一转发节点对应的虚拟可分配量中确定当前分配量,并向第一转发节点下发当前分配量;第一转发节点接收当前分配量,并基于相应的当前分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
在上述方式中,调度中心周期性分配目标带宽,但是并不把分配的流量分配量直接下发给转发节点,而是后续基于转发节点每次发送的带宽申请请求再为转发节点下发部分流量分配量,通过这种方式可以实现对大流节点的严格控制,避免大流节点短时间内占用过多带宽。
基于第一方面提供的方法,在一些实施例中,带宽申请事件包括第一转发节点本地的流量可使用量低于参考量。
通过设置带宽申请事件,可以实现转发节点灵活基于需求随时申请带宽。
基于第一方面提供的方法,在一些实施例中,调度中心从虚拟可分配量中确定当前分配量之后,调度中心更新第一转发节点对应的虚拟可分配量。调度中心在每次向转发节点下发当前分配量之后,还需更新对应的虚拟可分配量。
基于第一方面提供的方法,在一些实施例中,调度中心确定多个转发节点中每个转发节点的当前流量信息的实现方式可以为:如果多个转发节点中存在第二转发节点在当前时间之前且距离当前时间最近的参考时长内未转发流量,调度中心则将参考流量信息作为第二转发节点的当前流量信息。
通过上述带宽补偿措施,可以避免小流节点饿死。
基于第一方面提供的方法,在一些实施例中,调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量的实现方式可以为:调度中心确定多个转发节点中每个转发节点对应的用户,每个转发节点转发的流量为相应用户的流量;调度中心基于多个转发节点中每个转发节点对应的用户的优先级、多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量。
在分配目标带宽时,调度中心还可以考虑用户的优先级,以保证高优先级用户的流量质量优先得到保证。
基于第一方面提供的方法,在一些实施例中,调度中心上配置有调度树,调度树用于指示多个用户中每个用户的优先级。通过调度树,可以对各个用户的优先级进行指示。
基于第一方面提供的方法,在一些实施例中,目标带宽为与目标用户对应的目标带宽,流量分配量为与目标用户对应的流量分配量,每个转发节点基于相应的流量分配量转发来自目标用户的报文;或,目标带宽为与目标出端口对应的目标带宽,流量分配量为与目标出端口对应的流量分配量,每个转发节点基于相应的流量分配量控制向目标出端口发送的流量;或,目标带宽为与目标优先级对应的目标带宽,流量分配量为与目标优先级对应的流量分配量,每个转发节点基于相应的流量分配量控制来自优先级为目标优先级的用户的流量。
通过上述方式,可以实现对不同维度上的流量进行控制。
第二方面,提供了一种网络系统,所述网络系统包括调度中心和多个转发节点,调度中心和多个转发节点用于实现上述第一方面所提供的流量控制方法。
第三方面,提供了一种网络设备,所述网络设备的结构中包括处理器和存储器,所述存储器用于存储支持网络设备执行上述第一方面所提供的流量控制方法的程序,以及存储用于实现上述第一方面所提供的流量控制方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的流量控制方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的流量控制方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种同一用户的流量跨板并行传输的示意图;
图2是本申请实施例提供的一种网络系统的架构示意图;
图3是本申请实施例提供的另一种网络系统的架构示意图;
图4是本申请实施例提供的一种基于NP的防火墙的架构示意图;
图5是本申请实施例提供的一种基于框式路由器的网络系统的架构示意图;
图6是本申请实施例提供的一种流量控制方法流程图;
图7是本申请实施例提供的一种分配目标带宽的流程示意图;
图8是本申请实施例提供的另一种流量控制方法流程图;
图9是本申请实施例提供的一种时序示意图;
图10是本申请实施例提供的另一种流量控制方法流程图;
图11是本申请实施例提供的一种分配令牌的示意图;
图12是本申请实施例提供的另一种时序示意图;
图13是本申请实施例提供的另一种分配令牌的示意图;
图14是本申请实施例提供的一种转发节点处设置多层计数器的示意图;
图15是本申请实施例提供的一种调度中心上配置的调度树的示意图;
图16是本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本申实施例请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细解释说明之前,先对本申请实施例的应用场景进行解释。
随着分布式网络的发展,通常会存在属于同一用户或同一组的流量跨板或跨设备间并行传输的情况,但是同一用户或同一组的流量是共同用同一个带宽限制的。这种场景下,如何对跨板或跨设备的流量进行控制以满足同一个带宽限制是当前研究的热点。
图1是本申请实施例提供的一种同一用户的流量跨板并行传输的示意图。如图1所示,网络中部署有三个用于传输流量的板,图1中将三个板分别标记为实体0、实体1以及实体2。如图1所示,每个实体上部署有用于转发流量的出端口(port),且每个实体均可以转发来自p0、p1、p2三个用户的流量。每个用户有各自的带宽限制,图1中实例了三个黑色加粗的圆柱形状的桶,每个桶的容量代表相应用户的带宽限制。
基于此,实体0转发来自用户p0的流量、实体1转发来自用户p0的流量以及实体2转发来自用户p0的流量,这三个流量的总流量需要满足用户p0的带宽限制。实体0转发来自用户p1的流量、实体1转发来自用户p1的流量以及实体2转发来自用户p1的流量,这三个流量的总流量需要满足用户p1的带宽限制。实体0转发来自用户p2的流量、实体1转发来自用户p2的流量以及实体2转发来自用户p2的流量,这三个流量的总流量需要满足用户p2的带宽限制。
因此,对于任一用户,为了保证每个实体上该用户的部分流量的服务质量,需要根据该用户的带宽限制为该用户在各实体上的流量分配合适的带宽。如果带宽分配合理的话可以保证每个实体上该用户的部分流量的服务质量,以避免丢包,反之如果带宽分配不合理的话,容易导致错误丢包等问题。
在一些技术中,对于图1中任一用户,技术人员可以在网络初始化时采用静态配置方式为各个实体分配带宽。示例地,假设该用户的带宽限制为总带宽,则每个实体上分配的带宽为总带宽/3,每个实体在转发该用户的流量时基于分配的带宽控制该用户的流量的转发。又示例地,技术人员还可以根据各个实体历史转发该用户的流量的情况,将总带宽划分为不同大小的带宽,然后将划分的带宽分配给各个实体,每个实体后续在转发该用户的流量时基于分配的带宽控制该用户的流量的转发。
这种静态配置方式的资源代价最低,同时可保障各个实体转发该用户的流量的和不会超过该用户的带宽限制。但是静态配置方式无法动态调整为各个实体分配的带宽,容易出现真实情况下大流量实体因为分配的带宽较小的问题导致丢包,小流量实体则容易出现带宽浪费的问题。
在另一些技术中,对于图1中任一用户,采用统一令牌桶进行动态分配。示例地,网络中的控制中心根据针对该用户的带宽限制设置总令牌桶中的令牌数量,各个实体上配置有子令牌桶。各个实体在转发属于该用户的报文时,先基于本地的子令牌桶中的数量判断是否需要从总令牌桶处申请令牌,如果需要申请令牌,实体则从总令牌桶处申请令牌添加到本地的子令牌桶中,然后在转发报文后减少子令牌桶中的令牌数量,并继续在下一次转发该用户的报文时判断是否需要从总令牌桶处申请令牌。
通过这种动态分配方式,可以控制各个实体的转发该用户的报文的带宽不会超过该用户的带宽限制。此方案可实现带宽的动态分配,相对规避了静态配置方式存在的问题。但是这种分配方式的核心思想是先到先得,因此容易导致一些相对小流的实体“饿死”,因此这种分配方式存在不公平的问题。
基于此,本申请实施例提供了一种流量控制方法。本申请实施例提供的流量控制方法可以实现基于各个实体上的历史流量情况,为各个实体公平分配带宽,以使各个实体转发某个用户的流量满足该用户的带宽限制。
为了便于理解,下面先对本申请实施例涉及的系统架构进行解释说明。
图2是本申请实施例提供的一种网络系统的架构示意图。如图2所示,该网络系统包括调度中心10和多个转发节点20,图2中以三个转发节点20为例进行说明。任一转发节点20与调度中心10之间通过有线或无线方式连接以进行通信。
其中,多个转发节点20共享同一个带宽限制,也即,各个转发节点20转发流量的总带宽不能超过目标带宽。这种场景下,调度中心10用于周期性地统计各个转发节点20的流量信息,并基于上一周期的流量信息和目标带宽为各个转发节点20分配带宽,以指导各个转发节点20在下一周期控制流量。
在本申请实施例中,调度中心周期性地统计各个转发节点20的流量信息,以通过分配带宽指导各个转发节点20在下一周期控制流量,因此本申请实施例可以实现带宽的动态分配,从而提高各个转发节点20转发流量的质量。并且由调度中心10主动为各个转发节点20分配带宽,相对于由各个转发节点20主动从总令牌桶中获取令牌以控制流量,调度中心10在主动协调各个转发节点20的分配带宽时,可以考虑小流节点的特性,从而避免某些小流节点存在“饿死”的情况。
其中,多个转发节点20共享同一个带宽限制可以有以下几种示例的场景:
在一些场景中,多个转发节点20为用于转发来自同一用户的流量的转发节点。为了便于说明,将该同一用户称为目标用户。这种场景下,目标带宽为针对目标用户的流量的带宽限制,调度中心10用于基于目标带宽和各个转发节点20的流量信息,为各个转发节点20分配带宽,以实现各个转发节点20转发目标用户的总流量满足目标带宽的限制。
在另一些场景中,多个转发节点20用于向同一个下行出端口发送流量。为了便于说明,将该同一下行出端口称为目标出端口。这种场景下,目标带宽为针对目标出端口的流量的带宽限制,调度中心10用于基于目标带宽和各个转发节点20的流量信息,为各个转发节点20分配带宽,以实现各个转发节点20向目标出端口发送的流量满足目标带宽的限制。
在另一些场景中,多个转发节点20用于转发来自同一优先级用户的流量。为了便于说明,将该同一优先级称为目标优先级。这种场景下,目标带宽为针对目标优先级下的用户的流量的带宽限制,调度中心10用于基于目标带宽和各个转发节点20的流量信息,为各个转发节点20分配带宽,以实现各个转发节点20转发来自目标优先级的用户的流量满足目标带宽的限制。
可选地,各个转发节点20共享同一目标带宽也可以应用在其他场景中,本申请实施例对此不再一一举例说明。
需要说明的是,本申请实施例中的调度中心10和转发节点20可以理解为软件模块。基于此,调度中心10和多个转发节点20可以分别承载在相同或不同的实体上。示例的,在多个实体中选择一个实体搭载调度中心10的功能,其他实体用于搭载转发节点20的功能。
图3是本申请实施例提供的另一种网络系统的架构示意图。如图3所示,该网络系统包括多个实体,分别标记为实体0,实体1、…、实体n,各个实体之间通过网络连接。其中,实体0上搭载有调度中心10的功能,也即实体1作为图2中的调度中心10。实体1至实体n中每个实体上搭载有转发节点20的功能,也即实体1至实体n分别作为图2中的调度中心20。
另外,图3是以调度中心10和转发节点20承载在不同的实体为例进行说明,可选地,调度中心10还可以与多个转发节点20中的某个转发中心20承载在同一实体上,本申请实施例对此不做限定。
另外,用于承载调度中心10或转发节点20的实体可以为防火墙中的网络处理器(network processor,NP),也可以为交换机、路由器等通信设备,也可以为交换机、路由器等通信设备中的NP。在此不再一一举例说明。
图4是本申请实施例提供的一种基于NP的防火墙的架构示意图。如图4所示,该防火墙包括四个NP,分别标记为NP0、NP1、NP2以及NP3。每个NP的转发面均用于转发来自6个用户的流量,图4中将6个用户分别标记为p0至p5。其中,每个用户配置有承诺访问速率(committed access rate,CAR),该CAR指示相应用户的流量有带宽限制(即目标带宽)。
如图4所示,NP0可以作为调度中心,用于通过本申请实施例提供的方法为NP0、NP1、NP2以及NP3分配用户p0和p1的目标带宽,也即将用户p0和p1的总CAR分别划分为4个子CAR,以通过这四个子CAR分别指导NP0、NP1、NP2以及NP3转发来自用户p0和p1的流量。NP1可以作为调度中心,用于通过本申请实施例提供的方法为NP0、NP1、NP2以及NP3分配用户p2和p3的目标带宽,也即将用户p2和p3的总CAR分别划分为4个子CAR,以通过这四个子CAR分别指导NP0、NP1、NP2以及NP3转发来自用户p2和p3的流量。NP2可以作为调度中心,用于通过本申请实施例提供的方法为NP0、NP1、NP2以及NP3分配用户p4的目标带宽,也即将用户p4的总CAR划分为4个子CAR,以通过这四个子CAR分别指导NP0、NP1、NP2以及NP3转发来自用户p4的流量。NP3还可以作为调度中心,用于通过本申请实施例提供的方法为NP0、NP1、NP2以及NP3分配用户p5的目标带宽,也即将用户p5的总CAR划分为4个子CAR,以通过这四个子CAR分别指导NP0、NP1、NP2以及NP3转发来自用户p5的流量。
也即,在本申请实施例中,不同用户的目标带宽可以由同一调度中心来分配,也可以由不同的调度中心来分配,本申请实施例对此不做限定。
图5是本申请实施例提供的一种基于框式路由器的网络系统的架构示意图。如图5所示,该网络系统包括主控板(main processing unit,MPU)和交换处理板(switchprocessing unit,SPU),以及交换网板(switch fabric unite,SFU)。其中,图5是以四个SPU为例进行说明。
其中,SPU和SPU之间通过SFU进行通信。MPU和SPU之间也可以通过SFU进行通信,或直接相连以进行通信。
MPU用于向各个SPU下发网络配置信息,比如用户优先级等信息。SPU用于基于MPU下发的网络配置信息转发各个用户的流量。本申请实施例对此不做详细说明。
各个SPU可以作为图3中的实体承载调度中心或转发节点。如图5所示,每个SPU可以均承载调度中心和转发节点,以实现每个SPU作为一个调度中心控制这四个SPU上的某些用户的流量。具体实现方式可以参考图4,在此不再赘述。
需要说明的是,图4和图5所示的网络系统的架构用于示例说明,并不构成对本申请实施例提供的网络系统的架构的限定。任意在跨板或跨设备间并行传输的流量如果共享一个带宽限制,均可以采用本申请实施例提供的方法进行带宽分配,以实现流量控制。
下面对本申请实施例提供的流量控制方法进行详细解释说明。
图6是本申请实施例提供的一种流量控制方法流程图。如图6所示,该方法包括如下步骤601和步骤602。
步骤601:调度中心确定多个转发节点中每个转发节点的当前流量信息,当前流量信息指示相应转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,多个转发节点转发流量的总带宽不超过目标带宽。
步骤602:调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量,以使每个转发节点在当前时间之后且距离当前最近的参考时长内基于相应的流量分配量转发报文。
在本申请实施例中,调度中心基于各个转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,根据目标带宽为各个转发节点划分流量分配量,以使各个转发节点在当前时间之后的最近的参考时长内基于相应的流量分配量转发报文。由此可知,调度中心是周期性地基于各个转发节点的流量特征分配目标带宽,以指导各个转发节点在每个周期内控制流量。因此,本申请实施例提供了一种动态分配目标带宽的方式。并且,在动态分配目标带宽的过程中,由调度中心主动为各个转发节点划分流量分配量,相对于由各个转发节点主动从总令牌桶中获取令牌以控制流量,调度中心在基于目标带宽主动协调各个转发节点的流量分配量时,可以考虑小流节点的特性,从而避免某些小流节点存在“饿死”的情况。
其中,目标带宽可以是针对目标用户的带宽限制。这种场景下,多个转发节点转发流量的总带宽不超过目标带宽可以理解为:多个转发节点转发来自目标用户的总流量的带宽不超过目标带宽。相应地,转发节点的当前流量信息为转发节点转发来自目标用户的流量的当前流量信息。此时,基于步骤601和步骤602,调度中心可以实现基于针对目标用户的目标带宽为各个转发节点下发流量分配量,以使各个转发节点基于调度中心下发的流量分配量控制来自目标用户的流量。
可选地,目标带宽也可以是针对目标出端口的带宽限制,目标出端口为多个转发节点的下行端口。这种场景下,多个转发节点转发流量的总带宽不超过目标带宽可以理解为:多个转发节点向目标出端口发送的总流量的带宽不超过目标带宽。相应地,转发节点的当前流量信息为转发节点向目标出端口发送的流量的当前流量信息。此时,基于步骤601和步骤602,调度中心可以实现基于针对目标出端口的目标带宽为各个转发节点下发流量分配量,以使各个转发节点基于调度中心下发的流量分配量控制向目标出端口发送的流量。
可选地,目标带宽也可以是针对目标优先级的带宽限制,目标优先级为多个用户优先级中的一个用户优先级。这种场景下,多个转发节点转发流量的总带宽不超过目标带宽可以理解为:多个转发节点转发来自目标优先级的用户的总流量的带宽不超过目标带宽。相应地,转发节点的当前流量信息指示转发节点转发来自目标优先级的用户的流量的当前流量信息。此时,基于步骤601和步骤602,调度中心可以实现基于针对目标优先级的目标带宽为各个转发节点下发流量分配量,以使各个转发节点基于调度中心下发的流量分配量控制来自目标优先级的用户的流量。
上述场景用于示例说明,关于其他跨板或跨设备共享一个带宽限制的场景,同样可以参考上述解释,在此不再一一举例说明。后续实施例中转发节点的流量均是指上述某一种场景下的流量,后续不再重复说明。
另外,当前流量信息可以包括相应转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量、发送报文的总量、接收报文的速率等信息,以使当前流量信息能够指示相应转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征。本申请实施例对此不做限定。
在一些实施例中,当前流量信息包括相应转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量,基于此步骤602中实现方式可以为:基于目标带宽和参考时长确定总分配量,如果各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和低于总分配量,则将各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量作为初始流量分配量。然后将总分配量减去各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和,得到剩余分配量,将剩余分配量分配至各个转发节点,基于此次分配的量更新初始流量分配量,得到最终为各个转发节点分配的流量分配量。
其中,将剩余分配量分配至各个转发节点的实现方式可以为:基于各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量之间的比例,将剩余分配量分配至各个转发节点。可选地,如果各个转发节点自身有对应的允许流量限制,则对于每个转发节点,确定该转发节点的允许流量限制和初始分配量之间的差值,得到该转发节点对应的流量差值,然后基于各个转发节点对应的流量差值之间的比例,将剩余分配量分配至各个转发节点。可选地,还可以通过轮询(round-robin,RR)方式将剩余分配量分配至各个转发节点。
相应地,如果各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和超过总分配量,则可以通过RR的方式将总分配量分配至各个转发节点,得到各个转发节点的流量分配量。
另外,带宽限制通常包括保证带宽和最大带宽,也即目标带宽包括保证带宽和最大带宽。此时,可以先根据保证带宽通过上述方式为各个转发节点分配流量分配量,在基于保证带宽分配完毕后再基于最大带宽分配。
基于此,步骤602中实现方式可以为:基于保证带宽和参考时长确定第一总分配量,基于最大带宽和参考时长确定第二总分配量。如果各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和低于第一总分配量,则将各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量作为初始流量分配量。然后将第一总分配量减去各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和,得到剩余分配量,将剩余分配量和第二总分配量分配至各个转发节点,基于此次分配的量更新初始流量分配量,得到最终为各个转发节点分配的流量分配量。其中,将剩余分配量和第二总分配量分配的方式可以参考前述实施例,在此不再赘述。
相应地,如果各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和超过第一总分配量,则直接通过RR的方式将第一总分配量分配至各个转发节点,得到各个转发节点的初始流量分配量。然后再基于各个转发节点的初始分配量和各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量,确定各个转发节点的欠量,每个转发节点的欠量等于在当前时间之前且距离当前时间最近的参考时长内接收报文的总量减去初始分配量。如果各个转发节点的欠量的加和低于第二总分配量,则基于第二总分配量向每个转发节点分配与欠量相等的分配量,并更新初始分配量。对于剩余的第二总分配量,则继续参考前述方式分配至各个转发节点。如果各个转发节点的欠量的加和超过第二总分配量,则直接通过RR方式将第二总分配量分配至各个转发节点。
其中,上述分配目标带宽的过程用于示例说明,本申请实施例对基于各个转发节点的当前流量信息分配目标带宽的具体过程不做限定。
另外,在上述分配目标带宽的过程中,如果某个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量为0,这种情况下,为了避免该转发节点存在“饿死”的情况,调度中心可以将转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量赋值为参考量。该参考量可以基于预先设置的最小带宽来确定,示例地将最小带宽乘以参考时长后的数值作为参考量。该过程可以称为带宽补充措施。
另外,转发节点可以通过令牌桶或计数器的方式来控制流量。在通过令牌桶的方式控制流量的场景中,调度中心分配的流量分配量为需要添加到令牌桶中的令牌的数量,此时,转发节点转发报文时,如果令牌桶中的剩余令牌数量允许发送报文,则发送报文并扣除令牌桶中的剩余令牌的数量,如果令牌桶中的剩余令牌数量不允许发送报文,则丢弃报文。在通过计数器的方式控制流量的场景中,调度中心分配的流量分配量为需要叠加到计数器上计数,此时,转发节点转发报文时,如果计数器的剩余计数允许发送报文,则发送报文并扣除计数器的剩余计数,如果计数器的剩余计数不允许发送报文,则丢弃报文。
下面以通过令牌桶控制流量的方式为例对步骤602进行解释说明。
图7是本申请实施例提供的一种分配目标带宽的流程示意图。其中,调度中心预先计算出每周期可分配的总令牌数量,也即令牌的分配总量。调度中心中还可以针对不同的目标带宽设计不同的令牌,示例地,针对保证带宽的设计的令牌为绿色令牌,针对最大带宽设计的令牌为黄色令牌。此时,调度中心可以将参考时长与承诺信息速率(committedinformation rate,CIR)之间的乘积作为绿色令牌的总分配量,将参考时长与额外信息速率(excess information rate,EIR)之间的乘积作为黄色令牌的总分配量。
为了后续便于说明,将各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量称为相应转发节点的需求量。如图7所示,调度中心获取各个转发节点的需求量,如果某个转发节点的需求量为0(图7中标记为零流量节点),则通过前述的带宽补偿措施对该转发节点赋予最小需求量,将各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量的加和称为总需求量,总需求量可以标记为total_apply。基于总需求量先进行绿色令牌的分配。
基于总需求量先进行绿色令牌的分配的过程包括如下步骤。判断总需求量是否小于绿色令牌的总分配量。如果总需求量小于绿色令牌的总分配量,则按照各个转发节点的需求量之间的比例分配绿色令牌。其中,分配至各个转发节点的绿色令牌的量与相应转发节点的需求量相等,从而实现按照需求比例分配绿色令牌。调度中心计算绿色令牌的剩余分配量。然后开启超配工作,超配也即向转发节点分配大于需求量的分配量。如图7所示,将绿色令牌的剩余分配量和黄色令牌的总分配量按照修改正后的令牌桶深度之间的比例分配至各个转发节点,从而完成绿色令牌和黄色令牌的分配工作。其中,修改后的令牌桶深度是指转发节点的当前令牌桶深度基于初始分配量更新之后的深度。当前令牌桶的深度可以理解为令牌桶的总容量和令牌桶中当前拥有的令牌数量之间的差值。令牌桶的总容量指示该转发节点的允许流量限制。
如图7所示,如果总需求量不小于绿色令牌的总分配量,则按照RR的方式为各个转发节点分配绿色令牌,得到各个转发节点的初始分配量。在将绿色令牌分配完毕之后,对于任一转发节点,基于该转发节点的需求量和初始分配量确定该转发节点的欠量,然后确定各个转发节点的欠量的加和,得到总欠量,并判断总欠量是否小于黄色令牌的总分配量。如果各个转发节点的欠量的加和小于黄色令牌的总分配量,则开启超配工作。超配工作的详细过程参考上述实施例,在此不再赘述。相应地如果各个转发节点的欠量的加和不小于黄色令牌的总分配量,则通过RR的方式分配黄色令牌的总分配量。
分配结束后,得到分配结果,分配结果包括绿色令牌的分配量和黄色令牌的分配量。
上述是以各个转发节点在当前时间之前且距离当前时间最近的参考时长内接收报文的总量作为流量信息来分配目标带宽。可选地,调度中心也可以以各个转发节点在当前时间之前且距离当前时间最近的参考时长内发送报文的总量作为流量信息来分配目标带宽。实现方式可以参考上述内容,在此不再赘述。
后续实施例中调度中心分配目标带宽的实现方式均可以参考图6和图7所示实施例,后续将不再重复说明。
在本申请实施例中,调度中心周期性地基于各个转发节点的流量特征分配目标带宽可以有以下两种触发场景。第一种触发场景:各个转发节点周期性申请带宽,以触发调度中心周期性地基于各个转发节点的流量特征分配目标带宽。第二种触发场景:各个转发节点基于需求随时申请带宽,而调度中心仅仅在周期达到时基于各个转发节点的流量特征分配目标带宽。这种触发场景下,调度中心在分配目标带宽后,如果接收到转发节点基于需求申请带宽,则从周期性分配的流量分配量再为转发节点分配带宽。下面通过两个实施例分别对此进行解释说明。
第一种触发场景
图8是本申请实施例提供的另一种流量控制方法流程图,用于对第一种触发场景进行解释说明。如图8所示,该方法包括如下步骤。
步骤801:对于多个转发节点中第一转发节点,第一转发节点按照参考时长周期性向调度中心发送带宽申请请求,带宽申请请求携带第一流量信息,第一流量信息指示包应周期内第一转发节点转发流量的流量特征,第一转发节点为多个转发节点中任一个。
多个转发节点周期性发送带宽申请请求的方式基本相同,因此图8中以第一转发节点为例进行说明。
在一些实施例中,第一流量信息可以包括第一转发节点在相应周期内接收报文的总量。接收报文的总量示例地可以为接收到的报文的总字节数。示例地,第一转发节点上配置有报文接收计数器,通过报文接收计数器统计第一转发节点在相应周期内接收到的报文的总量。
可选地,第一流量信息还可以包括第一转发节点在相应周期内发送报文的总量。发送报文的总量示例地可以为发送的报文的总字节数。示例地,在通过令牌桶的方式控制流量的场景中,基于令牌桶的功能可知,第一转发节点基于令牌桶中扣除的令牌的数量便可得到发送的报文的总量,其中令牌桶中扣除的令牌的数量可以通过令牌桶的当前桶深来表示。又示例地,在通过计数器的方式控制流量的场景中,基于前述计数器的功能可知,第一转发节点基于计数器上的扣除的计数便可得到发送的报文的总量。
可选地,第一流量信息还可以包括第一转发节点在相应周期内接收报文的速率或发送报文的速率等信息。此时,第一转发节点在确定出相应周期内接收报文的总量或发送报文的总量后,基于周期的时长(也即参考时长)便可确定出该相应周期内接收报文的速率或发送报文的速率。
另外,在一些实施例中,第一转发节点上还可以配置计时器,当计时器的计时时长到达参考时长时,便可触发第一转发节点向调度中心发送带宽申请请求。并且当计时器计时时长到达参考时长时,计时器重新开始计时,以便下个周期继续触发第一转发节点向调度中心发送带宽申请请求。通过计时器的设置,可以实现第一转发节点周期性地向调度中心发送带宽申请请求。
步骤802:调度中心将最近一次接收到的第一流量信息作为第一转发节点的当前流量信息。
调度中心在接收到任一转发节点发送的带宽申请请求时,先缓存该带宽申请请求中携带的该转发节点的当前流量信息。在确定收集到全部转发节点的带宽申请请求时,基于全部转发节点的当前流量信息时,通过下述步骤803分配目标带宽。
步骤803:调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量。
其中,步骤803的实现方式可以参考图6所示的实施例,在此不再赘述。
另外,在一些实施例中,调度中心在确定收集到全部转发节点的带宽申请请求时,便可通过步骤803分配目标带宽。
可选地,在另一些实施例中,为了避免网络故障等原因导致某些转发节点可能无法成功向调度中心发送带宽申请请求,从而影响调度中心及时分配目标带宽,也可以将调度中心设置为基于周期性的时间点的触发执行步骤803。示例地,调度中心上配置有计时器,当计时器的计时时长到达参考时长时,触发调度中心基于收集的各个转发节点的带宽申请请求分配目标带宽。另外,在计时器达到计时时长后,计时器重新开始计时,以便触发下一个周期调度中心分配目标带宽。
这种情况下,可以预先在调度中心和转发节点上配置时序,通过配置的时序来触发调度中心周期性执行步骤803,触发各个转发节点周期性地执行步骤801。比如,在图5所示的网络系统中,由MCU向各个SPU下发针对调度中心或转发节点配置的时序。
图9是本申请实施例提供的一种时序示意图。如图9所示,网络系统包括一个调度中心和三个转发节点,图9中分别用数字1、2、3来区分不同的转发节点。如图9所示,在一个周期内,在该周期的初始阶段时,由调度中心基于上个周期接收到的各个转发节点的带宽申请请求,对目标带宽进行统一计算分配,然后通过下述步骤804向各个转发节点下发流量分配量(图9中以下发对应的箭头表示),以使各个转发节点在该周期的后续时间段内控制流量。各个转发节点则在该周期的结尾阶段处,向调度中心发送带宽申请请求(图9中申请对应的箭头表示)。
如图9所示,调度中心相邻两次下发流量分配量的时间之间的间隔为周期对应的参考时长T。任一转发节点,比如转发节点1相邻两次发送带宽申请请求的时间之间的间隔为周期对应的参考时长T。
需要说明的是,图9中是以调度中心在每个周期的初始阶段分配带宽为例进行说明,可选地,调度中心也可以在每个周期的结尾处基于收集的各个转发节点的带宽申请请求分配目标带宽。另外,图9中为了便于表示各个转发节点均向调度中心发送带宽申请请求,图9的时序图中各个转发节点向调度中心发送带宽申请请求的时间点并不相同。在使用本申请实施例提供的方法时,为了提高分配目标带宽带来的效果,各个转发节点可以在同一时间点向调度中心发送带宽申请请求。
示例地,可以设置各个转发节点周期性地在同一时间点向调度中心发送带宽申请请求,每个转发节点上配置有计时器,当转发节点向调度中心发送带宽申请请求之后,继续通过计时器进行下一个周期的计时,在计时器计时时长到达参考时长时,则触发下一个周期的带宽申请请求。
调度中心处执行步骤803的时间点可以为转发节点发送带宽申请请求的时间点加上链路传输时延,链路传输时延可以由技术人员预先指定,本申请实施例对比不做限定。调度中心处同样配置有计时器,当调度中心执行步骤803并向各个转发节点下发流量分配量之后,继续通过计时器进行下一个周期的计时,在计时器计时时长到达参考时长时,则触发下一个周期的带宽分配工作。
此外,在调度中心基于周期性的时间点触发执行步骤803的场景中,如果在计时器的计时时长到达参考时长时,调度中心只收集到部分转发节点的带宽申请请求,未收到另外一部分转发节点的带宽申请请求。此时,为了避免另外一部分转发节点存在“饿死”的情况,调度中心可以通过上述带宽补偿措施确定另外一部分转发节点的当前流量信息。在此不再详细说明。
另外,如果调度中心在收集到某个转发节点的带宽申请请求携带的当前流量信息时,如果带宽申请请求携带的当前流量信息指示该转发节点在该周期内未转发流量,此时同样可以通过上述带宽补偿措施确定另外一部分转发节点的当前流量信息。在此同样不再详细说明。
步骤804:调度中心向第一转发节点发送相应的流量分配量。
调度中心在确定出各个转发节点的流量分配量之后,如图9所示,便可将各个转发节点的流量分配量下发至各个转发节点。
步骤805:第一转发节点接收相应的流量分配量,并基于相应的流量分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
在第一转发节点通过令牌桶控制流量的场景中,步骤805可以理解为:第一转发节点将流量分配量作为令牌数量,并基于令牌数量向令牌桶中添加令牌。后续如果发送报文,则扣除令牌桶中令牌的数量,直至令牌桶中令牌的数量全部扣除完毕,后续再接收到报文时,则丢弃报文。
在第一转发节点通过计数器控制流量的场景中,步骤805可以理解为:第一转发节点将流量分配量叠加到计数器的计数上。后续如果发送报文,则扣除计数器的计数,直至计数器的计数全部扣除完毕,后续再接收到报文时,则丢弃报文。
基于图8所示的实施例,各个转发节点周期性申请带宽,调度中心周期性地基于目标带宽确定各个转发节点的流量分配量,以周期性向各个转发节点下发流量分配量,实现对目标带宽的动态分配。
此外,在第一种触发场景中,为了节省调度中心的计算资源,调度中心在周期性地分配目标带宽之前,还可以先确定当前是否需要限速,如果确定当前需要限速,则执行步骤803,并在向第一转发节点发送相应流量分配量,以指示第一转发节点按照相应流量分配量更新本地的流量可使用量。相应地,如果调度中心确定当前不需要限速,则不执行步骤803,也即不分配目标带宽。此时则向第一转发节点发送不限速指示信息,该不限速指示信息指示第一转发节点将本地的流量可使用量更新至上限值。
在一些实施例中,可以增加限速开关标识来表征上述不限速指示信息。如此,如果调度中心确定当前需要限速,则执行步骤803,并在向第一转发节点发送相应流量分配量时还发送第一限速开关标识,第一限制开关标识指示第一转发节点按照相应流量分配量更新本地的流量可使用量。相应地,如果调度中心确定当前不需要限速,则不执行步骤803。此时则向第一转发节点发送第二限速开关标识,第二限速开关标识指示第一转发节点将本地的流量可使用量更新至上限值。
示例地,限速开关标识为CAR swtich,则第一限速开关标识比如可以为CARswtich=1,第二限速开关标识比如可以为CAR swtich=0。
通过上述方式,各个转发节点仍然周期性申请带宽,但是调度中心可以选择性确定是否需要限速,在需要限速的情况下,才会基于目标带宽确定各个转发节点的流量分配量。并且为了简化转发节点处的处理流程,调度中心针对转发节点的每次带宽申请请求都回复有限速开关标识,不同的限速开关标识可以指示转发节点采用哪种方式来更新本地的流量可使用量。
另外,调度中心确定当前是否需要限速的实现方式可以为:基于多个转发节点中每个转发节点的当前流量信息确定多个转发节点在当前时间之前且距离当前时间最近的参考时长内的总流量,如果多个转发节点的总流量低于目标带宽在参考时长内对应的允许流量,则确定当前不需要限速。如果多个转发节点的总流量超过目标带宽在参考时长内对应的允许流量,则确定当前需要限速。
另外,在第一转发节点通过令牌桶控制流量的场景中,如果多个转发节点的总流量低于目标带宽在参考时长内对应的允许流量,调度中心还继续基于各个转发节点上报的令牌桶的当前桶深,统计各个令牌桶的欠账值,如果该欠账值的总和也低于目标带宽在参考时长内对应的允许流量,则确定当前不需要限速。否则,如果多个转发节点的总流量超过目标带宽在参考时长内对应的允许流量,和/或,该欠账值的总和超过目标带宽在参考时长内对应的允许流量,则确定当前需要限速。
通过上述限速条件,可以保证在调度中心不限速的情况下,各个转发节点转发流量的带宽不超过目标带宽。
第二种触发场景
图10是本申请实施例提供的另一种流量控制方法流程图,用于对第二种触发场景进行解释说明。如图10所示,该方法包括如下步骤。
步骤1001:对于多个转发节点中第一转发节点,第一转发节点在当前时间之前且距离当前时间最近的参考时长内响应于带宽申请事件的触发,向调度中心发送带宽申请请求,该带宽申请请求携带第二流量信息,第二流量信息指示第一转发节点在最近一次发送带宽申请请求后到当前时间之间的流量特征。第一转发节点为多个转发节点中任一个。
在图10所示的实施例中,转发节点在一个周期内不再只上报一次带宽申请请求,而是在一个周期内只要带宽申请事件被触发,就向调度中心上报带宽申请请求。如此在一个周期内,转发节点可能向调度中心上报多次带宽申请请求。
由于在一个周期内转发节点可能向调度中心上报多次带宽申请请求,因此第一转发节点的当前流量特征用于指示第一转发节点在最近一次发送带宽申请请求后到当前发送带宽申请请求之间这段时间内的流量特征。如此,调度中心便可基于第一转发节点在一个周期内多次上报的带宽申请请求,统计得到第一转发节点在一个周期内的流量特征。
在一些实施例中,带宽申请事件示例地包括第一转发节点本地的流量可使用量低于参考量。通过设置带宽申请事件,可以实现转发节点灵活基于需求随时申请带宽。
示例地,在第一转发节点通过令牌桶控制流量的场景中,第一转发节点的本地的流量可使用量是指该令牌桶的剩余令牌数量,当该令牌桶的剩余令牌的数量小于参考量时,则触发第一转发节点向调度中心发送带宽申请请求。这种场景下,第二流量指示信息示例可以包括该令牌桶的当前桶深。假设第一转发节点在上一次发送带宽申请请求后基于调度中心下发的流量分配量更新令牌桶后令牌桶为填满状态,则令牌桶的当前桶深能够指示第一转发节点在最近一段时间内发送的报文的量。最近一段时间可以理解为从第一转发节点上次发送带宽申请请求到此次发送带宽申请请求这段时间。
又示例地,在第一转发节点通过计数器控制流量的场景中,第一转发节点的本地的流量可使用量是指该计数器的剩余计数,当该计数器的剩余计数小于参考量时,则触发第一转发节点向调度中心发送带宽申请请求。这种场景下,第二流量指示信息示例可以包括该计数器被扣除的计数,被扣除的计数是指计数器的总计数减去计数器的剩余计数。假设第一转发节点在上一次发送带宽申请请求后基于调度中心下发的流量分配量更新计数器的计数后计数器的计数达到总计数,则被扣除的计数能够指示第一转发节点在最近一段时间内发送的报文的量。最近一段时间可以理解为从第一转发节点上次发送带宽申请请求到此次发送带宽申请请求这段时间。
另外,在上述两种示例中,第二流量信息可以包括第一转发节点的本地的流量可使用量。示例地,在第一转发节点通过令牌桶控制流量的场景中,第一转发节点的本地的流量可使用量也即该令牌桶中的剩余令牌的数量。在第一转发节点通过计数器控制流量的场景中,第一转发节点的本地的流量可使用量也即该计数器的剩余计数。
在另一些实施例中,带宽申请事件示例地包括第一转发节点本地的流量可使用量被扣除。
示例地,在第一转发节点通过令牌桶控制流量的场景中,只要第一转发节点发送一个报文并扣除令牌桶中的剩余令牌的数量,则会触发第一转发节点向调度中心发送带宽申请请求。
示例地,在第一转发节点通过计数器控制流量的场景中,只要第一转发节点发送一个报文并扣除计数器中的剩余计数的数量,则会触发第一转发节点向调度中心发送带宽申请请求。
上述两种示例中第二流量信息的实现方式,可以参考带宽申请事件包括第一转发节点本地的流量可使用量低于参考量的场景中第二流量信息的实现方式,在此不再赘述。
步骤1002:调度中心基于第一转发节点在当前时间之前且距离当前时间最近的参考时长内一次或多次发送的第二流量信息,确定第一转发节点的当前流量信息。
示例地,在第二流量信息指示第一转发节点在最近一次发送带宽申请请求后到当前时间之间的发送报文的总量的情况下,调度中心可以将最近一个周期内第一转发节点发送的各个带宽申请请求中的报文总量进行叠加,得到的总量作为第一转发节点在最近一个周期内的发送报文的总量,也即当前流量信息。
比如,在第一转发节点通过令牌桶控制流量的场景中,在第二流量信息指示令牌桶的当前桶深的情况下,调度中心可以将最近一个周期内第一转发节点发送的各个带宽申请请求中的当前桶深进行叠加,得到的总量作为第一转发节点在最近一个周期内的发送报文的总量,也即当前流量信息。
步骤1003:调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量。
步骤1003的实现方式可以参考图6所示实施例,在此不再赘述。
步骤1004:调度中心基于第一转发节点的流量分配量更新第一转发节点对应的虚拟可分配量。
在第二种触发场景中,调度中心周期性分配目标带宽,但是并不把分配的流量分配量直接下发给转发节点,而是后续基于转发节点每次发送的带宽申请请求再为转发节点下发部分流量分配量,通过这种方式可以实现对大流节点的严格控制,避免大流节点短时间内占用过多带宽。
基于此,调度中心处还可以配置针对每个转发节点的虚拟可分配量,在每次划分目标带宽得到各个转发节点的流量分配量之后,将分配的流量分配量添加到对应转发节点的虚拟可分配量中,也即基于第一转发节点的流量分配量更新第一转发节点对应的虚拟可分配量,以便于后续调度中心基于第一转发节点的虚拟可分配量和第一转发节点的带宽申请请求向第一转发节点下发部分流量分配量。
步骤1005:调度中心在每次接收到带宽申请请求时,基于第二流量信息以及第一转发节点对应的虚拟可分配量,从第一转发节点对应的虚拟可分配量中确定当前分配量,并向第一转发节点下发当前分配量。
为了后续便于说明,将第一转发节点在最近一次发送带宽申请请求后到当前时间之间发送的流量的总量简称为当前流量使用量。
在一些实施例中,在带宽申请请求携带的第二流量信息指示第一转发节点的当前流量使用量的情况下,调度中心可以比较第一转发节点的虚拟可分配量和当前流量使用量之间的大小,如果虚拟可分配量超过当前流量使用量,则按照当前流量使用量从虚拟可分配量中确定当前分配量,其中当前分配量等于当前流量使用量。相应地,如果虚拟可分配量低于当前流量使用量,则将虚拟可分配量作为当前分配量。
示例地,在第一转发节点通过令牌桶控制流量,第二流量信息指示令牌桶的当前桶深的场景中,调度中心处配置有第一转发节点对应的虚拟令牌桶,虚拟令牌桶中的剩余令牌的数量指示虚拟可分配量,此时调度中心可以比较第一转发节点的虚拟令牌桶中剩余令牌的数量和当前桶深之间的大小,如果虚拟令牌桶中剩余令牌的数量超过当前桶深,则按照当前桶深从虚拟令牌桶中确定需要下发的令牌的当前分配量,其中当前分配量等于当前桶深。相应地,如果虚拟令牌桶中剩余令牌的数量低于当前桶深,则将虚拟令牌桶中剩余令牌的数量作为当前分配量,以实现虚拟令牌桶的剩余令牌全部下发给第一转发节点。
图11是本申请实施例提供的一种分配令牌的示意图。如图11所示,调度中心用于调度四个转发节点,图11中为4个NP,分别为NP0、NP1、NP2和NP3。调度中心处针对四个NP分别配置有虚拟令牌桶(图11中标记为虚拟桶),每个NP处对应有令牌桶(图11中标记为实体桶)。调度中心在将目标带宽分配完毕之后,先将分配的令牌填充在各个转发节点对应的虚拟桶中。后续调度中心响应于NP发送的带宽申请请求从虚拟桶中获取令牌下发给该NP。各个NP的转发面基于对应的实体桶控制流量
又示例地,在第一转发节点通过计数器控制流量的场景中,调度中心同样可以参考上述方式确定当前分配量,在此不再详细说明。
可选地,在另一些实施例中,在带宽申请请求携带的第二流量信息指示第一转发节点的本地的流量可使用量的情况下,调度中心还可以确定第一转发节点的流量允许门限,将该流量允许门限和第一转发节点的本地的流量可使用量之间的差值,作为第一转发节点的当前流量使用量,进而来确定当前分配量。
其中,流量允许门限示例地可以为令牌桶满桶时的令牌数量,或者计数器的计数上限值。流量允许门限可以通过网络相关配置来确定。
比如在转发节点通过令牌桶控制流量的场景中,假设目标带宽为针对目标用户的目标带宽,则调度中心可以获取目标用户的承诺突发尺寸(Committed Burst Size,CBS)和超额突发尺寸(Excess Burst Size,EBS),其中,CBS指示针对目标用户的绿色令牌桶能够通过的承诺突发流量,EBS指示针对目标用户的黄色令牌桶能够通过的超出突发流量。调度中心可以将CBS乘以系数再除以N,得到的数值作为各个转发节点上的绿色令牌桶满桶时的令牌数量。将EBS乘以系数再除以N,得到的数值作为各个转发节点上的黄色令牌桶满桶时的令牌数量。其中,N为共享目标带宽的多个转发节点的数量,系数为一个大于1的数值,用于避免带宽浪费。
步骤1006:转发按节点接收当前分配量,并基于相应的当前分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
在第一转发节点通过令牌桶控制流量的场景中,步骤1006可以理解为:第一转发节点将当前分配量作为令牌数量,并基于令牌数据向令牌桶中添加令牌。后续如果发送报文,则扣除令牌桶中令牌的数量,直至令牌桶中令牌的数量全部扣除完毕,后续再接收到报文时,则丢弃报文。并且第一转发节点在转发报文的过程中,检测带宽申请事件是否被触发,如果带宽申请事件被触发,则通过步骤1005和步骤1006向调度中心申请带宽。
在第一转发节点通过计数器控制流量的场景中,步骤805可以理解为:第一转发节点将当前分配量叠加到计数器的计数上。后续如果发送报文,则扣除计数器的计数,直至计数器的计数全部扣除完毕,后续再接收到报文时,则丢弃报文。并且第一转发节点在转发报文的过程中,检测带宽申请事件是否被触发,如果带宽申请事件被触发,则通过步骤1005和步骤1006向调度中心申请带宽。
在图10所示的实施例中,调度中心周期性分配目标带宽,并将分配的流量分配量以虚拟可分配量的方式缓存在调度中心处。在每个周期内,各个转发节点响应于带宽申请事件被触发,向调度中心发送带宽申请请求,调度中心在接收到转发节点发送的带宽申请请求时,基于虚拟可分配量向转发节点下发当前分配量。
基于此,在图10所示的实施例中,需要为调度中心配置时序,以触发调度中心周期性地分配目标带宽。图12是本申请实施例提供的另一种时序示意图。如图12所示,调度中心处配置有参考时长T,每隔参考时长,调度中心则通过步骤1001至1004分配目标带宽。各个转发节点处则没有配置时序,转发节点只需响应于带宽申请事件被触发,直接向调度中心发送带宽申请请求即可。如图12所示,同一周期内一个转发节点可以发送多次带宽申请请求,比如,在从左边开始第一个周期内转发节点1发送了两次带宽申请请求。而不同周期内同一转发节点可以发送不同数量的带宽申请请求,比如在从左边开始第一个周期内转发节点1发送了两次带宽申请请求,而在从左边开始第二个周期内转发节点1则没有发送带宽申请请求。
下面以通过令牌桶控制流量的场景为例对图12进一步解释说明。图13是本申请实施例提供的另一种分配令牌的示意图。如图13所示,在网络初始化时,调度中心可以根据相关网络配置比如CBS或EBS设置转发节点上的令牌桶的规格,并将令牌桶初始化为满桶状态。后续转发节点的转发面根据转发流量对令牌桶中的令牌扣减。在转发流量的过程中,转发节点响应于带宽申请事件被触发,向调度中心申请令牌。调度中心从该转发节点对应的虚拟令牌桶中扣减令牌并将扣减的令牌下发给转发节点。转发节点收到调度中心下发的令牌后,调整本地令牌桶中的令牌数量。
调度中心只需按照预先设置的参考时长,周期性地为各个转发节点对应的虚拟令牌桶填桶即可。
基于图6、图8和图10所示的实施例,调度中心能够实现对共享同一个目标带宽的多个转发节点动态分配带宽,从而实现对同一用户跨板或跨设备并行传输的流量进行控制,以使跨板或跨设备并行传输的流量能够满足该用户的带宽限制。
在图6至图10所示的实施例中,目标带宽仅仅是一个维度下的目标带宽为例进行说明。可选地,目标带宽可以同时包括多个维度上的目标带宽,以实现调度中心在多个不同的维度上分别调度各个转发节点的流量。
在一些实施例中,目标带宽可以同时包括针对目标用户的目标带宽,针对目标出端口的目标带宽以及针对目标优先级的目标带宽。
这种场景下,对于每个维度下的目标带宽,调度中心均通过图6至图10所示实施例分配目标带宽即可,转发节点处收集每个维度下的流量信息即可。
比如,在通过计数器控制流量的场景中,对于任一转发节点,该转发节点处配置有三种类型的计数器,分别用于统计针对目标用户的流量信息、针对目标优先级的流量信息、以及针对目标出端口的流量信息。也即,转发节点处设置多层计数器用于统计不同维度的流量信息。
图14是本申请实施例提供的一种转发节点处设置多层计数器的示意图。如图14所示,每个SPU上搭载有调度中心和转发节点。关于图14中MPU,SPU、SFU以及调度中心和转发节点的相关内容可以参考图5所示实施例,在此不再赘述。下面以图14中的左上角的SPU为例说明多层计数器的应用。
如图14所示,SPU上的调度中心上配置有三个两层调度树(图14中示例了两个调度树),三个调度树分别对应三个维度:目标用户、目标出端口和目标优先级。对于任一调度树,该调度树的根节点指示相应维度下的目标带宽,该调度树的叶子节点指示需要调度的转发节点为哪些。如此,对于任一个维度的目标带宽,调度中心可以通过图6至图10所示实施例分配目标带宽。
另外,SPU上的转发节点上配置有三个计数器,图14中分别标记为IP计数器、策略计数器和出端口计数器,其中,IP计数器用于统计针对目标用户的流量的流量信息,策略计数器用于统计针对目标优先级的流量的流量信息,出端口计数器用于统计针对目标出端口的流量的流量信息。
需要说明的是,目标用户、目标出端口以及目标优先级的数量可能不止一个,因此如图14所示,转发节点处配置有计数器组1、计数器组2以及计数器组3。计数器组1中包括多个IP计数器,分别用于统计针对不同目标用户的流量的流量信息。计数器组2中包括多个策略计数器,分别用于统计针对不同目标优先级的流量的流量信息。计数器组3中包括多个出端口计数器,分别用于统计针对不同目标出端口的流量的流量信息。
另外,如图14所示,转发节点上配置有流表,流表用于指导流量的转发路径。关于流表的功能,本申请实施例不做详细说明。
上述实施例是以为调度中心调度同一用户的流量,或调度同一出端口或调度同一用户优先的流量为例进行说明,在调度过程中,仅仅考虑各个转发节点转发流量的特征,并没有考虑不同转发节点是否有优先级上的不同,因此这种调度方式可以称为单层调度。
可选地,在本申请实施例中,如果不同用户的流量共享同一个带宽限制,由于网络中不同用户的优先级通常不同,如此在调度多个转发节点的流量时,除了需要考虑各个转发节点转发流量的特征,还可以考虑各个转发节点转发的流量对应的用户的优先级,以实现高优先级用户的流量质量优先得到保证。
这种情况下,在一些实施例中,图6所示步骤602中调度中心基于多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量的实现方式可以为:调度中心确定多个转发节点中每个转发节点对应的用户,每个转发节点转发的流量为相应用户的流量;调度中心基于多个转发节点中每个转发节点对应的用户的优先级、多个转发节点中每个转发节点的当前流量信息以及目标带宽,确定多个转发节点中每个转发节点的流量分配量。
由于每个转发节点用于转发至少一个用户的流量,因此,对于任一转发节点,调度中心可以基于该转发节点的当前流量信息分析出该转发节点上每个用户的当前子流量信息。然后以用户为单位,将各个转发节点上每个用户的当前子流量信息进行汇总,得到每个用户的当前总流量信息。基于各个用户的优先级,以及每个用户的当前总流量信息便可将目标带宽划分到各个用户,得到各个用户的总流量分配量。对于任一用户,再根据该用户对应的各个转发节点上的当前子流量信息,将总流量分配量分配至各个转发节点。
其中,调度中心在确定每个用户的总流量分配量时,可以优先考虑高优先级用户,先满足高优先级用户的带宽需求。具体实现方式本申请实施例不做限定。
另外,在本申请实施例中,还可以在调度中心上配置调度树,调度树用于指示多个用户的优先级。图15是本申请实施例提供的一种调度中心上配置的调度树的示意图。如图15所示,网络系统中包括两个调度中心,分别为调度中心1和调度中心2。两个调度中心上的调度树基本相同,下面以调度中心1为例进行说明。
如图14所示,调度中心1上的调度树的根节点代表目标带宽(标记为出口带宽1),指示位于该调度树上的用户对应的流量需要满足出口带宽1的限制。调度树上根节点下面的中间子节点代表一个策略,每个策略指示一个优先级,越靠近根节点的策略指示的优先级越高,且位于调度树上同一层中的不同策略所指示的优先级也不同,比如策略A指示的优先级高于策略B指示的优先级。调度树上的叶子节点代表用户。每个叶子节点所属的中间子节点指示该用户所属的优先级。比如,对于叶子节点IP0,IP0指示一个用户,基于图14所示的调度树,用户IP0的优先级包括二级优先级A1和一级优先级A。又比如,对于叶子节点IPn,IPn指示一个用户,基于图14所示的调度树,用户IPn的优先级包括二级优先级Bn和一级优先级B。
如图14所示,网络系统中还包括8个转发节点,这8个转发分别由图14中SPU0至SPU7的转发面承载。假设多个转发节点中每个转发节点均用于转发用户IP0、IP1以及IPn的流量。则基于图14所示的调度树,调度中心1先将目标带宽分配至策略A和策略B,然后在将分配至策略A的流量分配量继续分配至A1,将分配至策略B的流量分配量继续分配至Bn。再将分配至策略A1的流量分配量分配至用户IP0和用户IP1,将分配至策略Bn的流量分配量分配至用户IPn。后续再把各个分配给各个用户的流量分配量分发到各个转发节点上。
具体分配方式可以参考前述实施例,在此不再赘述。
下面对本申请实施例的硬件设备进行解释说明。
图16是本申请实施例提供的一种网络设备的结构示意图。前述实施例中用于承载调度中心或转发节点的任意实体均可以通过图16所示的网络设备来实现。如图16所示,该网络设备包括至少一个处理器1601,通信总线1602、存储器1603以及至少一个通信接口1604。
处理器1601可以是一个通用中央处理器(central processing unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线1602可包括一通路,在上述组件之间传送信息。
存储器1603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1603可以是独立存在,通过通信总线1602与处理器1601相连接。存储器1603也可以和处理器1601集成在一起。
其中,存储器1603用于存储执行本申请方案的程序代码,并由处理器1601来控制执行。处理器1601用于执行存储器1603中存储的程序代码。程序代码中可以包括一个或多个软件模块。前述的调度中心或转发节点可以通过处理器1601以及存储器1603中的程序代码中的一个或多个软件模块,来确定用于开发应用的数据。
通信接口1604,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
在具体实现中,作为一种实施例,网络设备可以包括多个处理器,例如图16中所示的处理器1601和处理器1605。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如:固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上内容并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (30)
1.一种流量控制方法,其特征在于,所述方法应用于网络系统,所述网络系统包括调度中心和多个转发节点;所述方法包括:
所述调度中心确定所述多个转发节点中每个转发节点的当前流量信息,所述当前流量信息指示相应转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,所述多个转发节点转发流量的总带宽不超过目标带宽;
所述调度中心基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量,以使每个转发节点在当前时间之后且距离当前时间最近的参考时长内基于相应的流量分配量转发报文。
2.如权利要求1所述的方法,其特征在于,所述调度中心确定所述多个转发节点中每个转发节点的当前流量信息,包括:
对于所述多个转发节点中第一转发节点,所述第一转发节点按照所述参考时长周期性向所述调度中心发送带宽申请请求,所述带宽申请请求携带第一流量信息,所述第一流量信息指示相应周期内所述第一转发节点的流量特征,所述第一转发节点为所述多个转发节点中任一个;
所述调度中心将最近一次接收到的第一流量信息作为所述第一转发节点的当前流量信息。
3.如权利要求2所述的方法,其特征在于,所述调度中心基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量之后,所述方法还包括:
所述调度中心向所述第一转发节点发送相应的流量分配量;
所述第一转发节点接收相应的流量分配量,并基于相应的流量分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
4.如权利要求3所述的方法,其特征在于,所述调度中心基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量,包括:
如果所述调度中心确定当前需要限速,则基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
如果所述调度中心确定当前不需要限速,则不执行基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量的操作;
所述调度中心向所述第一转发节点发送不限速指示信息,所述不限速指示信息指示所述第一转发节点将本地的流量可使用量更新至上限值。
6.如权利要求1所述的方法,其特征在于,所述调度中心确定所述多个转发节点中每个转发节点的当前流量信息,包括:
对于所述多个转发节点中第一转发节点,所述第一转发节点在当前时间之前且距离当前时间最近的参考时长内响应于带宽申请事件的触发,向所述调度中心发送带宽申请请求,所述带宽申请请求携带第二流量信息,所述第二流量信息指示所述第一转发节点在最近一次发送所述带宽申请请求后到当前时间之间的流量特征,所述第一转发节点为所述多个转发节点中任一个;
所述调度中心基于所述第一转发节点在当前时间之前且距离当前时间最近的参考时长内一次或多次发送的第二流量信息,确定所述第一转发节点的当前流量信息。
7.如权利要求6所述的方法,其特征在于,所述调度中心上配置有每个转发节点对应的虚拟可分配量;
所述调度中心基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量之后,所述方法还包括:
所述调度中心基于所述第一转发节点的流量分配量更新所述第一转发节点对应的虚拟可分配量;
所述调度中心在每次接收到所述带宽申请请求时,基于所述第二流量信息以及所述第一转发节点对应的虚拟可分配量,从所述第一转发节点对应的虚拟可分配量中确定当前分配量,并向所述第一转发节点下发所述当前分配量;
所述第一转发节点接收所述当前分配量,并基于相应的当前分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
8.如权利要求7所述的方法,其特征在于,所述带宽申请事件包括所述第一转发节点本地的流量可使用量低于参考量。
9.如权利要求7所述的方法,其特征在于,所述调度中心从所述虚拟可分配量中确定当前分配量之后,所述方法还包括:
所述调度中心更新所述第一转发节点对应的虚拟可分配量。
10.如权利要求1-9任一所述的方法,其特征在于,所述调度中心确定所述多个转发节点中每个转发节点的当前流量信息,包括:
如果所述多个转发节点中存在第二转发节点在当前时间之前且距离当前时间最近的参考时长内未转发流量,所述调度中心则将参考流量信息作为所述第二转发节点的当前流量信息。
11.如权利要求1-10任一所述的方法,其特征在于,所述调度中心基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量,包括:
所述调度中心确定所述多个转发节点中每个转发节点对应的用户,每个转发节点转发的流量为相应用户的流量;
所述调度中心基于所述多个转发节点中每个转发节点对应的用户的优先级、所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量。
12.如权利要求11所述的方法,其特征在于,所述调度中心上配置有调度树,所述调度树用于指示多个用户中每个用户的优先级。
13.如权利要求1-12任一所述的方法,其特征在于,
所述目标带宽为与目标用户对应的目标带宽,所述流量分配量为与所述目标用户对应的流量分配量,每个转发节点基于相应的流量分配量转发来自所述目标用户的报文;或,
所述目标带宽为与目标出端口对应的目标带宽,所述流量分配量为与所述目标出端口对应的流量分配量,每个转发节点基于相应的流量分配量控制向所述目标出端口发送的流量;或,
所述目标带宽为与目标优先级对应的目标带宽,所述流量分配量为与所述目标优先级对应的流量分配量,每个转发节点基于相应的流量分配量控制来自优先级为所述目标优先级的用户的流量。
14.一种网络系统,所述网络系统包括调度中心和多个转发节点;
所述调度中心,用于确定所述多个转发节点中每个转发节点的当前流量信息,所述当前流量信息指示相应转发节点在当前时间之前且距离当前时间最近的参考时长内的流量特征,所述多个转发节点转发流量的总带宽不超过目标带宽;
所述调度中心,还用于基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量,以使每个转发节点在当前时间之后且距离当前时间最近的参考时长内基于相应的流量分配量转发报文。
15.如权利要求14所述的网络系统,其特征在于,
对于所述多个转发节点中第一转发节点,所述第一转发节点,用于按照所述参考时长周期性向所述调度中心发送带宽申请请求,所述带宽申请请求携带第一流量信息,所述第一流量信息指示相应周期内所述第一转发节点的流量特征,所述第一转发节点为所述多个转发节点中任一个;
所述调度中心在确定所述多个转发节点中每个转发节点的当前流量信息时,具体用于:,将最近一次接收到的第一流量信息作为所述第一转发节点的当前流量信息。
16.如权利要求15所述的网络系统,其特征在于,
所述调度中心,还用于向所述第一转发节点发送相应的流量分配量;
所述第一转发节点,还用于接收相应的流量分配量,并基于相应的流量分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
17.如权利要求16所述的网络系统,其特征在于,所述调度中心在基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量时,具体用于:
如果确定当前需要限速,则基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量。
18.如权利要求17所述的网络系统,其特征在于,所述调度中心还用于:
如确定当前不需要限速,则不执行基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量的操作;
向所述第一转发节点发送不限速指示信息,所述不限速指示信息指示所述第一转发节点将本地的流量可使用量更新至上限值。
19.如权利要求14所述的网络系统,其特征在于,
对于所述多个转发节点中第一转发节点,所述第一转发节点,用于在当前时间之前且距离当前时间最近的参考时长内响应于带宽申请事件的触发,向所述调度中心发送带宽申请请求,所述带宽申请请求携带第二流量信息,所述第二流量信息指示所述第一转发节点在最近一次发送所述带宽申请请求后到当前时间之间的流量特征,所述第一转发节点为所述多个转发节点中任一个;
所述调度中心在确定所述多个转发节点中每个转发节点的当前流量信息时,具体用于:基于所述第一转发节点在当前时间之前且距离当前时间最近的参考时长内一次或多次发送的第二流量信息,确定所述第一转发节点的当前流量信息。
20.如权利要求19所述的网络系统,其特征在于,所述调度中心上配置有每个转发节点对应的虚拟可分配量;
所述调度中心还用于:
基于所述第一转发节点的流量分配量更新所述第一转发节点对应的虚拟可分配量;
在每次接收到所述带宽申请请求时,基于所述第二流量信息以及所述第一转发节点对应的虚拟可分配量,从所述第一转发节点对应的虚拟可分配量中确定当前分配量,并向所述第一转发节点下发所述当前分配量;
所述第一转发节点还用于:
接收所述当前分配量,并基于相应的当前分配量更新本地的流量可使用量,以基于相应的流量可使用量转发报文。
21.如权利要求20所述的网络系统,其特征在于,所述带宽申请事件包括所述第一转发节点本地的流量可使用量低于参考量。
22.如权利要求20所述的网络系统,其特征在于,所述调度中心还用于:
更新所述第一转发节点对应的虚拟可分配量。
23.如权利要求14-22任一所述的网络系统,其特征在于,所述调度中心在确定所述多个转发节点中每个转发节点的当前流量信息时,具体用于:
如果所述多个转发节点中存在第二转发节点在当前时间之前且距离当前时间最近的参考时长内未转发流量,则将参考流量信息作为所述第二转发节点的当前流量信息。
24.如权利要求14-23任一所述的网络系统,其特征在于,所述调度中心在基于所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量时,具体用于:
确定所述多个转发节点中每个转发节点对应的用户,每个转发节点转发的流量为相应用户的流量;
基于所述多个转发节点中每个转发节点对应的用户的优先级、所述多个转发节点中每个转发节点的当前流量信息以及所述目标带宽,确定所述多个转发节点中每个转发节点的流量分配量。
25.如权利要求24所述的网络系统,其特征在于,所述调度中心上配置有调度树,所述调度树用于指示多个用户中每个用户的优先级。
26.如权利要求14-25任一所述的网络系统,其特征在于,
所述目标带宽为与目标用户对应的目标带宽,所述流量分配量为与所述目标用户对应的流量分配量,每个转发节点基于相应的流量分配量转发来自所述目标用户的报文;或,
所述目标带宽为与目标出端口对应的目标带宽,所述流量分配量为与所述目标出端口对应的流量分配量,每个转发节点基于相应的流量分配量控制向所述目标出端口发送的流量;或,
所述目标带宽为与目标优先级对应的目标带宽,所述流量分配量为与所述目标优先级对应的流量分配量,每个转发节点基于相应的流量分配量控制来自优先级为所述目标优先级的用户的流量。
27.一种网络设备,其特征在于,包括处理器,所述处理器用于执行程序或指令,以使得所述网络设备执行权利要求1-13任一项所述的方法。
28.如权利要求27所述的网络设备,其特征在于,还包括存储器,所述存储器用于存储所述程序或指令。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序或指令,当其在计算机上运行时,使得所述计算机执行权利要求1-13任一项所述的方法。
30.一种计算机程序产品,其特征在于,所述计算机程序产品包含程序或指令,当其在计算机上运行时,使得所述计算机执行权利要求1-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211061418.4A CN117675584A (zh) | 2022-08-29 | 2022-08-29 | 流量控制方法、网络系统以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211061418.4A CN117675584A (zh) | 2022-08-29 | 2022-08-29 | 流量控制方法、网络系统以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117675584A true CN117675584A (zh) | 2024-03-08 |
Family
ID=90085035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211061418.4A Pending CN117675584A (zh) | 2022-08-29 | 2022-08-29 | 流量控制方法、网络系统以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117675584A (zh) |
-
2022
- 2022-08-29 CN CN202211061418.4A patent/CN117675584A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812395B2 (en) | System and method for policy configuration of control plane functions by management plane functions | |
CN108667748B (zh) | 一种控制带宽的方法、装置、设备和存储介质 | |
US11706088B2 (en) | Analyzing and configuring workload distribution in slice-based networks to optimize network performance | |
CN107534981B (zh) | 资源重分配 | |
US10469395B2 (en) | Packet transmission credit allocation | |
US20030236887A1 (en) | Cluster bandwidth management algorithms | |
CN113938435A (zh) | 数据传输方法、装置、电子设备、存储介质及程序产品 | |
US20170048145A1 (en) | Switching device and control method of switching device | |
KR20170033179A (ko) | 소프트웨어 정의 네트워크 기반 가상 네트워크 사용 대역폭 관리 방법 및 가상 네트워크 관리장치 | |
US8780723B2 (en) | Communication system and communication apparatus | |
US20220200901A1 (en) | Communications Method and Related Device | |
US10764191B2 (en) | Device and method for managing end-to-end connections | |
CN117675584A (zh) | 流量控制方法、网络系统以及相关设备 | |
CN115378885B (zh) | 超融合架构下的虚拟机业务网络带宽管理方法及装置 | |
CN104303457A (zh) | 在网络中分配带宽 | |
CN113824652B (zh) | 一种用于调度队列的方法及装置 | |
KR20120055947A (ko) | 가입자 인지 플로우별 QoS 제공 방법 및 장치 | |
CN116954874A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN110955522B (zh) | 一种协调性能隔离和数据恢复优化的资源管理方法及系统 | |
CN113973342A (zh) | 流量控制方法、装置、电子设备及存储介质 | |
US20220231963A1 (en) | Resource management device, control circuit, storage medium, and resource management method | |
CN111416776B (zh) | 传输数据的方法和网络设备 | |
KR100814399B1 (ko) | 중앙 집중형 제어방식의 전달 망에서 호 처리 시스템 및 그방법 | |
CN117675721A (zh) | 流量控制方法、转发节点、存储介质及程序产品 | |
JP2000253021A (ja) | 帯域割り当て方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |