CN113328957A - 一种流量控制方法、装置及电子设备 - Google Patents
一种流量控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113328957A CN113328957A CN202110550754.4A CN202110550754A CN113328957A CN 113328957 A CN113328957 A CN 113328957A CN 202110550754 A CN202110550754 A CN 202110550754A CN 113328957 A CN113328957 A CN 113328957A
- Authority
- CN
- China
- Prior art keywords
- htb
- queue
- token
- priority
- htb queue
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量控制方法、装置及电子设备。本申请针对HTB算法的改进优化,当高优先级以及低优先级队列发送数据所需带宽都高于保证带宽时,在保障所有队列的保证带宽前提下,尽可能将可借用带宽分给高优先级队列,以保障高优先级队列的可借用带宽的优先分配,对原有逻辑改动较小,降低对网络性能的影响。
Description
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种可以保障可借用带宽的优先分配的流量控制方法、装置及电子设备。
背景技术
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力。QoS是网络的一种安全机制,是用来解决网络阻塞和带宽延时保障等问题的重要技术。当前市面上的大部分智能电视基本没有QoS功能,因而没有办法在网络应用上对不同的业务进行优先级区分。这导致一些诸如语音类实时性要求比较高的业务,在弱网环境下无法得到优先级最高的带宽保障,严重影响用户体验。
在考虑到系统兼容性以及稳定性的情况下,目前在电视系统上进行QoS功能开发比较好的方式是通过Iptables配合TC(显示/维护流量控制设置)指令,依靠HTB(HierarchyToken Bucket,分层令牌桶)算法实现QoS的出队过程。其中,Iptables组件是一种工具,也称为用户空间(user space),是与最新的3.5版本Linux内核集成的IP信息包过滤系统;它使插入、修改和除去信息包过滤表中的规则变得容易。
然而在实际使用中发现,目前基于HTB算法初始的设计在带宽有波动的情形下,实际带宽小于总限制带宽时,队列各优先级带宽借用策略会出现失效的情况,导致业务带宽优先级分配无法优先得到相应的保障。
请参阅图1,其为现有的流量控制方法的流程示意图。如图1所示,现有HTB算法的数据出队调度时功能接口处理流程为:进行HTB出队调度操作;根据队列优先级依次调度;判断相应的功能接口是否处于激活状态;若功能接口未处于激活状态,则返回根据队列优先级依次调度;若功能接口处于激活状态,则执行数据出队;当数据从HTB队列出队后,判断HTB队列的缓存数据是否已发送完毕;若缓存数据已发送完毕,则进行关闭功能接口操作,并返回HTB出队调度操作;若缓存数据未发送完毕,则直接返回HTB出队调度操作。在整个HTB队列处于令牌借用状态时,HTB队列在调度过程中,只有当数据发送完,才会将相应功能接口关闭。若低优先级HTB队列一直存在大量数据需要发送时,将一直占据父节点可借用资源,而高优先级HTB队列只能与低优先级HTB队列平分父节点可借用资源,没有办法达到优先享有父节点可借用资源的需求。
发明内容
本申请的目的在于,针对现有技术存在的问题,提供一种流量控制方法、装置及电子设备,可以保障高优先级业务优先使用可借用带宽,同时保障各优先级业务的保证带宽。
为实现上述目的,本申请提供了一种流量控制方法,所述方法包括以下步骤:判定第一分层令牌桶HTB队列处于令牌借用状态时,判断处于令牌借用状态的第二HTB队列是否需要进行数据发送,其中,所述第二HTB队列与所述第一HTB队列向同一上一级节点借用令牌,且所述第二HTB队列的队列优先级高于所述第一HTB队列的队列优先级;若所述第二HTB队列需要进行数据发送,则控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。
为实现上述目的,本申请还提供了一种流量控制装置,所述装置包括:判断单元,用于在判定第一分层令牌桶HTB队列处于令牌借用状态时,判断处于令牌借用状态的第二HTB队列是否需要进行数据发送,其中,所述第二HTB队列与所述第一HTB队列向同一上一级节点借用令牌,且所述第二HTB队列的队列优先级高于所述第一HTB队列的队列优先级;处理单元,用于在所述判断单元判定所述第二HTB队列需要进行数据发送时,控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。
为实现上述目的,本申请还提供了一种电子设备,所述电子设备包括:处理器;以及存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令在被所述处理器执行时,使得本申请所述方法的步骤被执行。
本申请的优点在于:本申请针对HTB算法的改进优化,当向同一上一级节点借用令牌的HTB队列中,高优先级以及低优先级队列发送数据所需带宽都高于保证带宽时,在保障所有队列的保证带宽前提下,尽可能将可借用带宽分给高优先级队列,以保障高优先级队列的可借用带宽的优先分配,对原有逻辑改动较小,降低对网络性能的影响。本申请修复了现有HTB算法在特殊场景下队列优先级失效的问题,能够保障高优先级业务优先使用可借用带宽,同时保障各优先级业务的保证带宽,使得QoS功能可根据不同的业务分配不同的优先级和可借用带宽;且本申请优化后的HTB算法整体部署便捷,流量整形性能高,提升了终端用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有的流量控制方法的流程示意图;
图2为本申请第一实施例提供的流量控制方法的流程示意图;
图3A~图3C为本申请第二实施例提供的流量控制方法的流程示意图;
图4为本申请第三实施例提供的流量控制装置的架构示意图;
图5为本申请第四实施例提供的电子设备的架构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出。下面通过参阅附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。在本申请的描述中,术语“第一”、“第二”仅用于将多个元件彼此区分开,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
请参阅图2,其为本申请第一实施例提供的流量控制方法的流程示意图。如图2所示,本实施例所述方法包括以下步骤:S20、判定第一HTB队列处于令牌借用状态;S21、判断处于令牌借用状态的第二HTB队列是否需要进行数据发送;S22、若所述第二HTB队列需要进行数据发送,则控制所述第二HTB队列借用上一级节点的令牌进行数据发送;S23、若所述第二HTB队列无需进行数据发送,则控制所述第一HTB队列借用所述上一级节点的令牌进行数据发送。以下给出详细解释说明。
关于步骤S20、判定第一HTB队列处于令牌借用状态。
具体地,本申请应用于具有网卡的终端设备,通过配置于终端设备中的HTB算法对终端设备的流量进行管理控制。分层令牌桶(Hierarchical Token Bucket,简称HTB)算法的流量管理功能,可有效提高带宽利用率以及保障优先级分配。HTB算法支持根据IP地址、协议、端口等信息对数据流进行优先级设置,然后针对不同类别的数据流进行带宽控制,也能实现平均分配带宽,并进行优先级管理,特别适合语音视频和数据混合的网络。
通过HTB算法对网络资源进行管理,树形分层结构的各个节点从上到下依次为根节点、中间节点以及叶子节点,每节点均设置最小带宽值(Rate)及最大带宽值(Ceil)。某个时刻每一节点可以处于三种状态中的一种:CAN_SEND(令牌充足)、MAY_BORROW(令牌借用)、CANT_SEND(令牌不足)。HTB类采用HTB队列通过相应节点进行数据发送。节点间令牌借用的工作机制如下:当叶子节点访问频次低于自身的最小带宽值时,节点处于令牌充足状态,访问能够正常通过;当叶子节点请求带宽大于最小带宽值、小于最大带宽值时,此时叶子节点处于令牌借用状态,会向父节点借用令牌;当子节点向其父节点借用令牌时,不论父节点是否已经超过了自身的最小带宽值,都会向上一级节点请求借用令牌,直到借到令牌,或者达到了根节点为止;当叶子节点收到的请求带宽大于最大带宽值时,节点处于令牌不足状态,不可借用父节点的令牌。
关于HTB算法的参数说明:
Rate:是一个HTB类保证得到的最小带宽值,即保证带宽,可按各HTB类所需分配。如果有不只一个HTB类,需保证所有子类的带宽值总和小于或等于父节点的带宽值。
Ceil:是一个HTB类能得到的最大带宽值,一般根据实际使用测试得出结果。
Prio:是HTB类的优先权的设置,一般数值越大,优先权越小。Prio值越低会得到更为优先的服务,比如Prio=0的HTB类将会比Prio=1的HTB类优先获得数据包的发送权。如果是分配剩余带宽,则数值小的HTB类会优先取得剩余的空闲的带宽权。
关于步骤S21、判断处于令牌借用状态的第二HTB队列是否需要进行数据发送。其中,所述第二HTB队列与所述第一HTB队列向同一上一级节点借用令牌,且所述第二HTB队列的队列优先级高于所述第一HTB队列的队列优先级。
本实施例是对同一父节点下各子节点的资源分配(同一父节点下各子节点的优先级可以不同),高优先级子节点可借用带宽优先分配。本实施例中所述的第一HTB队列代表当前HTB队列,第二HTB队列代表与第一HTB队列同属一个父节点下的、优先级高于第一HTB队列的所有HTB队列。比如,一个父节点下的优先级最多可以有8个,假如分配了8个优先级,处于第4优先级的队列为处于借用状态的当前HTB队列(第一HTB队列),则需要判断前面3个优先级队列是否需要进行数据发送。
研究发现,在整个HTB队列处于令牌借用状态时,如果高优先级HTB队列处于令牌借用状态且发送完数据后,父节点便将该HTB队列对应的功能接口移除(即收回已借用的令牌),然后才会轮询到低优先级HTB队列。其中,功能接口为软件不同部分之间的交互接口,通常为应用程序编程接口(API,其表现的形式是源代码。如果低优先级HTB队列有数据需要发送,当其处于令牌借用状态后,便将对应的功能接口打开,从而将父节点的可借用带宽重分配给该低优先级HTB队列;此时假如高优先级HTB队列临时有数据要发送需要借用父节点带宽,便重新将对应的功能接口打开,但父节点此时不会将之前的低优先级HTB队列对应的功能接口移除。HTB队列在调度过程中,只有当数据发送完,才会将相应的功能接口关闭。若低优先级HTB队列一直存在大量数据需要发送时,将一直占据父节点可借用资源,而高优先级HTB队列只能与低优先级HTB队列平分父节点可借用资源,没有办法达到优先享有父节点可借用资源的需求。
本申请是针对HTB算法的改进优化,当高优先级以及低优先级队列发送数据所需带宽都高于保证带宽时,在保障所有队列的保证带宽(包括低优先级队列)前提下,尽可能将可借用带宽分给高优先级队列,以保障高优先级队列的可借用带宽的优先分配,对原有逻辑改动较小,降低对网络性能的影响。具体地,在激活功能接口(例如带宽重分配操作)的过程引入新的判断条件:在判定低优先级HTB队列处于令牌借用状态时,进一步判断处于令牌借用状态的高优先级HTB队列是否需要进行数据发送;若同一父节点下存在高优先级HTB队列有数据要发送,将停止低优先级HTB队列的本次带宽重分配操作,将父节点可借用资源提供给高优先级的HTB队列,从而能够保障高优先级HTB队列的业务优先使用可借用带宽,同时保障各优先级业务的保证带宽,提高用户体验。
进一步的实施例中,在对低优先级的第一HTB队列进行带宽重分配操作之前,执行高优先级的第二HTB队列是否需要进行数据发送的判断操作。可在判定第二HTB队列需要进行数据发送时,则停止对第一HTB队列的带宽重分配操作。即,在判定低优先级HTB队列处于令牌借用状态时,在激活该低优先级HTB队列对应的功能接口(例如将父节点的可借用带宽重分配给该低优先级HTB队列)前,先判断处于令牌借用状态的高优先级HTB队列是否需要进行数据发送;若父节点下存在高优先级HTB队列有数据要发送,将停止低优先级HTB队列的本次带宽重分配操作,将父节点可借用资源提供给高优先级的HTB队列,从而能够保障高优先级HTB队列的业务优先使用可借用带宽,同时保障各优先级业务的保证带宽,提高用户体验。
关于步骤S22、若所述第二HTB队列需要进行数据发送,则控制所述第二HTB队列借用上一级节点的令牌进行数据发送。
具体地,若存在处于令牌借用状态的高优先级HTB队列有数据要发送,则控制所述第二HTB队列借用上一级节点的令牌进行数据发送;此时将停止低优先级HTB队列的本次带宽重分配操作或控制低优先级HTB队列停止对父节点的令牌借用。通过将父节点可借用资源提供给高优先级的HTB队列,从而能够保障高优先级HTB队列的业务优先使用可借用带宽,同时保障各优先级业务的保证带宽,提高用户体验。
关于步骤S23、若所述第二HTB队列无需进行数据发送,则控制所述第一HTB队列借用所述上一级节点的令牌进行数据发送。
具体地,若不存在处于令牌借用状态的高优先级HTB队列有数据要发送,则将执行低优先级HTB队列的带宽重分配操作,进而控制低优先级HTB队列借用父节点的令牌进行数据发送。在保障所有队列的保证带宽(包括低优先级队列)前提下,尽可能将可借用带宽分给高优先级队列,以保障高优先级队列的可借用带宽的优先分配,对原有逻辑改动较小,降低对网络性能的影响。
进一步的实施例中,所述方法进一步包括:在判定所述第一HTB队列处于令牌借用状态且已进行带宽重分配时,若判定所述第二HTB队列需要进行数据发送,则控制所述第一HTB队列停止对所述上一级节点的令牌借用,并控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。进一步地,在下一次数据入队轮询时,重新进行对所述第一HTB队列的带宽重分配操作。即,若低优先级HTB队列已经处于令牌借用状态且对应的功能接口已激活(例如已将父节点的可借用带宽重分配给该低优先级HTB队列)时,若父节点下存在高优先级HTB队列有数据要发送,则控制低优先级HTB队列停止令牌借用,将父节点可借用资源让给优先级高的HTB队列,从而能够保障高优先级HTB队列的业务优先使用可借用带宽,提高用户体验。
进一步的实施例中,在判定所述第二HTB队列需要进行数据发送,因而控制所述第一HTB队列停止对所述上一级节点的令牌借用时,标记所述第一HTB队列对应的第一HTB类,从而在后续执行令牌收回操作(即关闭对应的功能接口)时,可以通过判断第一HTB类是否已标记来执行相应的操作。具体地,在执行令牌收回操作时,当判定所述第一HTB队列处于令牌借用状态时,进一步判断所述第一HTB类是否已标记;若所述第一HTB类已标记,则退出所述令牌收回操作;若所述第一HTB类未标记,则停止所述第一HTB队列对所述上一级节点的令牌的消耗(即将所述第一HTB队列对应的功能接口从所述上一级节点中移除)。
进一步的实施例中,可以通过数据容器存储所有已标记的HTB类,从而在后续可以通过查询所述数据容器,以判断所述第一HTB类是否已标记。从而简化标记判断操作、提高判断效率。
进一步的实施例中,通过对所述数据容器中的HTB类进行赋值,完成HTB类的标记。进一步地,所述数据容器在初始化时,将每一HTB类与一序号向对应。即,在判定所述第二HTB队列需要进行数据发送,因而控制所述第一HTB队列停止对所述上一级节点的令牌借用时,所标记的第一HTB类可以通过存储在数据容器中来记录,该数据容器在初始化的时候可以包含所用到的所有HTB类的序号;当某一HTB类被标记后,其对应序号下被赋值(例如,被标记则赋值true,没有标记赋值false);后续通过查询数据容器中该HTB类的值,即可判断该HTB类是否被标记。
请参阅图3A~图3C,其为本申请第二实施例提供的流量控制方法的流程示意图。
如图3A所示,HTB算法的数据入队/出队简易流程为:数据入队到HTB队列,之后进行带宽重分配操作,然后进行HTB出队调度;当数据从HTB队列出队后,根据预设条件判断是否进行令牌收回操作(即关闭相应的功能接口)。即,终端设备采用HTB算法在调度资源的过程中,会从高到低依次询问每个优先级队列是否需要消耗资源;当某个队列不需要消耗资源时(即相应的功能接口被关闭/不处于激活状态),直接返回至队列优先级调度,继续询问下一个优先级队列是否需要消耗资源。若获取资源分配的队列缓存数据未发送完毕,则返回至HTB出队调度;若缓存数据发送完毕,会在执行令牌收回操作后返回至HTB出队调度;即,获取资源分配的队列缓存数据发送完毕与否,最终都会返回至HTB出队调度。
本申请在激活功能接口(例如带宽重分配操作)的过程引入新的判断条件,以在当高优先级以及低优先级队列发送数据所需带宽都高于保证带宽时,在保障所有队列的保证带宽前提下,尽可能将可借用带宽分给高优先级队列,以保障高优先级队列的可借用带宽的优先分配。
如图3B所示,在激活功能接口(例如带宽重分配操作)的过程中:进行当前HTB队列的当前模式判断;若当前HTB队列对应节点处于令牌充足状态,访问能够正常通过,则当前HTB队列消耗自身令牌进行数据发送;若当前HTB队列对应节点处于令牌不足状态,则禁止当前HTB队列进行数据发送;若当前HTB队列对应子节点处于令牌借用状态,则进一步判断处于令牌借用状态的高优先级HTB队列(优先级高于当前HTB队列的优先级)是否需要进行数据发送;若高优先级HTB队列需要进行数据发送,则控制当前HTB队列停止借用父节点的令牌,并等待下一次数据入队轮询,同时标记当前HTB队列对应的HTB类;若高优先级HTB队列无需进行数据发送,则将当前HTB队列对应的功能接口打开,将父节点的可借用带宽重分配给当前HTB队列,使得当前HTB队列消耗父节点可借用令牌进行数据发送。
如图3C所示,在关闭功能接口(即令牌收回操作)的过程中:进行当前HTB队列的当前模式判断;若当前HTB队列对应节点处于令牌充足状态,则关闭当前HTB队列对应功能接口、停止令牌消耗;若当前HTB队列对应节点处于令牌借用状态,则进一步判断当前HTB队列对应的当前HTB类是否已标记;若当前HTB类已标记,则退出处理(即退出令牌收回操作);若当前HTB类未标记,则将当前HTB队列对应的功能接口从父节点移除,以停止当前HTB队列对父节点的令牌的消耗。
使用Iptables配合TC指令在一个父节点下建立优先级依降低的三个HTB队列(优先级A高于优先级B,优先级B高于优先级C),使用网络性能测试工具Iperf同时对这三个队列进行带宽竞争验证,结果如下表1、表2所示,其中数量单位为Mbps。
优先级A | 优先级B | 优先级C | 总流量 | |
实验1 | 59.2 | 58.1 | 59.2 | 176.5 |
实验2 | 55.3 | 57.7 | 53.9 | 166.9 |
实验3 | 59.8 | 56.9 | 51.8 | 168.5 |
表1,采用现有HTB算法的带宽竞争验证实验结果。
优先级A | 优先级B | 优先级C | 总流量 | |
实验1 | 139.5 | 35.3 | 2.1 | 176.9 |
实验2 | 135.3 | 34.4 | 1.8 | 171.5 |
实验3 | 136.7 | 36.2 | 1.6 | 174.5 |
表2,采用本申请优化后的HTB算法的带宽竞争验证实验结果。
对比上表1、表2对应的实验结果可以看出,采用现有HTB算法的,三个队列基本均分可用带宽,并没有实现根据优先级分配;而采用本申请优化后的HTB算法,在保障到优先级低的队列带宽前提下,将大部分带宽提供给了优先级高的队列,且整体性能没有下降。
基于同一发明构思,本申请还提供了一种流量控制装置。
请参阅图4,本申请第三实施例提供的流量控制装置的架构示意图。本实施例流量控制装置包括:判断单元41以及处理单元42。
具体地,判断单元41用于在判定第一HTB队列处于令牌借用状态时,判断处于令牌借用状态的第二HTB队列是否需要进行数据发送;其中,所述第二HTB队列与所述第一HTB队列向同一上一级节点借用令牌,且所述第二HTB队列的队列优先级高于所述第一HTB队列的队列优先级。处理单元42用于在所述判断单元41判定所述第二HTB队列需要进行数据发送时,控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。在所述判断单元41判定所述第二HTB队列无需进行数据发送时,处理单元42用于控制所述第一HTB队列借用所述上一级节点的令牌进行数据发送。
进一步的实施例中,判断单元41在对低优先级的第一HTB队列进行激活功能接口(例如带宽重分配操作)之前,执行高优先级的第二HTB队列是否需要进行数据发送的判断操作。在所述判断单元41判定所述第二HTB队列需要进行数据发送时,处理单元42停止对第一HTB队列的带宽重分配操作。即,在判定低优先级HTB队列处于令牌借用状态时,在激活该低优先级HTB队列对应的功能接口(例如将父节点的可借用带宽重分配给该低优先级HTB队列)前,先判断处于令牌借用状态的高优先级HTB队列是否需要进行数据发送;若父节点下存在高优先级HTB队列有数据要发送,将停止低优先级HTB队列的本次带宽重分配操作,将父节点可借用资源提供给高优先级的HTB队列,从而能够保障高优先级HTB队列的业务优先使用可借用带宽,同时保障各优先级业务的保证带宽,提高用户体验。
进一步的实施例中,若判断单元41在判定所述第一HTB队列处于令牌借用状态且已进行带宽重分配时,进一步判定所述第二HTB队列需要进行数据发送,则处理单元42控制所述第一HTB队列停止对所述上一级节点的令牌借用,并控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。即,若低优先级HTB队列已经处于令牌借用状态且对应的功能接口已激活(即已将父节点的可借用带宽重分配给该低优先级HTB队列)时,若父节点下存在高优先级HTB队列有数据要发送,则控制低优先级HTB队列停止令牌借用,将父节点可借用资源让给优先级高的HTB队列,从而能够保障高优先级HTB队列的业务优先使用可借用带宽,提高用户体验。
进一步的实施例中,在判断单元41判定所述第二HTB队列需要进行数据发送,因而处理单元42控制所述第一HTB队列停止对所述上一级节点的令牌借用时,处理单元42进一步用于标记所述第一HTB队列对应的第一HTB类,从而在后续执行令牌收回操作(即关闭对应的功能接口)时,可以通过判断第一HTB类是否已标记来执行相应的操作。具体地,在执行令牌收回操作时,当判定所述第一HTB队列处于令牌借用状态时,进一步判断所述第一HTB类是否已标记;若所述第一HTB类已标记,则退出所述令牌收回操作;若所述第一HTB类未标记,则停止所述第一HTB队列对所述上一级节点的令牌的消耗(即将所述第一HTB队列对应的功能接口从所述上一级节点中移除)。
进一步的实施例中,处理单元42可以通过数据容器存储所有已标记的HTB类,从而在后续可以通过查询所述数据容器,以判断所述第一HTB类是否已标记。从而简化标记判断操作、提高判断效率。
进一步的实施例中,处理单元42通过对所述数据容器中的HTB类进行赋值,完成HTB类的标记。进一步地,处理单元42在初始化所述数据容器时,将每一HTB类与一序号向对应。即,在判定所述第二HTB队列需要进行数据发送,因而控制所述第一HTB队列停止对所述上一级节点的令牌借用时,所标记的第一HTB类可以通过存储在数据容器中来记录,该数据容器在初始化的时候可以包含所用到的所有HTB类的序号;当某一HTB类被标记后,其对应序号下被赋值(例如,被标记则赋值true,没有标记赋值false);后续通过查询数据容器中该HTB类的值,即可判断该HTB类是否被标记。
在上述各个实施例中,对不同实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。上述所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得所有其他实施例,除本申请实施例提到的与本申请实施例方案一致的此类设计,都属于本申请保护的范围。
基于同一发明构思,本申请还提供了一种电子设备。
请参阅图5,本申请第四实施例提供的电子设备的架构示意图。所述电子设备50包括处理器501以及存储器502。其中,所述处理器501与所述存储器502电性连接。
所述处理器501是所述电子设备50的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在所述存储器502内的应用程序,以及调用存储在存储器502内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
所述存储器502用于存储计算机可执行指令;当所述计算机可执行指令被所述处理器501执行时,使得如本申请前述的方法的步骤被执行。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,使得如本申请前述的方法的步骤被执行。
本申请实施例所述的方法,可以使用相关领域中的技术人员所知的计算机系统或架构来实现。计算机系统,例如PDA、智能手机,掌上型电脑、服务器、客户端或任何其它类型的专用或通用计算机设备,因可以适用或者适合于特定应用或者环境而可以被使用。计算机系统可以包括一个或多个处理器,其可以使用诸如微处理器、微控制器或其它控制处理模块的通用或专用处理引擎来实现的。
计算机系统还可以包括用于存储要由处理器执行的信息和指令的主存储器,例如随机存取存储器(random access memory,简称RAM)或其它动态存储器。这种主存储器也可以用于存储由处理器待执行的指令执行期间的暂时变量或其它中间信息。计算机系统同样可以包括用于处理器的存储静态信息和处理器指令的只读存储器(read only memory,简称ROM)或其它静态存储设备。
计算机系统还可以包括信息存储系统,例如,其可以包括介质驱动器和可移动存储接口。介质驱动器可以包括驱动器或其它机制以支持固定或可移动存储介质,诸如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、光盘(compact disc,简称CD)、数字视频驱动器(digital video drive,简称DVD)、读或写驱动器(read or write drive,简称R或RW)或其它可移动或固定介质驱动器。例如,存储介质可以包括例如硬盘、软盘、磁带、光盘、CD或DVD或由介质驱动器读和写的其它固定或可移动介质。存储介质可以包括具有存储在其中的特定计算机软件或数据的计算机可读存储介质。
在可选实施例中,信息存储系统可以包括用于允许将计算机可执行指令或其它指令或数据加载到计算机系统中的其它类似组件。例如,这些组件可以包括可移动存储单元与接口,例如,程序卡盒与卡盒接口、可移动存储器(例如,闪存或者其它可移动存储器模块)与存储器插槽、以及允许软件和数据自可移动存储单元传输到计算机系统的其它可移动存储单元与接口。
所述计算机系统也可以包括通信接口。这样的通信接口可以被使用以允许软件和数据在计算机系统和外部设备之间传输。本实施例中,通信接口可以包括调制解调器、网络接口(例如,以太网或其它NIC卡)、通信端口(例如,通用串行总线(universal serial bus,简称USB)端口)、PCMCIA槽与卡等。通过通信接口传输的软件和数据是以信号的形式进行传输,可以是电子的,电磁的,光学的或其它能够被通信接口接收的信号。
在本文中,术语“计算机可执行指令”、“计算机可读介质”等可以通常用于指的有形介质,例如,存储器、存储设备或存储单元。这些形式和其它形式的计算机可读介质可以存储一个或多个指令,以由包括计算机系统的处理器使用,以使处理器执行指定操作。这些指令,通常称为“计算机程序代码”(其可以以计算机程序的形式或其它组合来组合),在被执行时,使得计算机系统执行本申请实施例的功能。注意的是,该代码可以直接使得处理器执行特定操作,被编译成这样做,和/或与其它软件、硬件和/或固件(例如,执行标准功能的库)组合以这样做。
所述非暂时性计算机可读介质可以包括由硬盘,紧凑型光盘只读储存器(CD-ROM),光存储设备,磁存储设备,只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read Only Memory,简称PROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,简称EPROM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,简称EEPROM)和闪存组成的组中的至少一个。
在使用软件实现元件的实施例中,使用例如可移动存储驱动器,软件可以被存储在计算机可读介质中,以及被加载到计算机系统中。当由计算机系统中的处理器执行时,控制模块(在本示例中,为软件指令或可执行计算机程序代码)使得处理器执行如本文所述的本申请的功能。
此外,本申请构思可以应用于用于执行网络元件内的信号处理功能的任何电路。进一步设想,例如,半导体制造商可以在独立设备的设计中使用本申请的构思,例如数字信号处理器(digital signal processor,简称DSP)或专用集成电路(application-specificintegrated circuit,简称ASIC)的微控制器和/或任何其它子系统元件。
可以理解的是,为了清楚的目的,上面已经参照单个处理逻辑描述了本申请的实施例。然而,本申请构思同样可以通过多个不同的功能单元和处理器来实现,以提供信号处理功能。因此,对特定功能单元的引用仅被视为对用于提供所描述功能的合适手段的引用,而不是指示严格的逻辑或物理结构或组织。
本申请的各方面可以以包括硬件,软件,固件及其任何组合的任何适当形式来实现。可选地,本申请可以至少部分地作为在一个或多个数据处理器和/或数字信号处理器或诸如FPGA器件的可配置模块组件上运行的计算机软件来实现。因此,本申请的实施例的元件和组件可以以任何合适的方式在物理上,功能上和逻辑上实现。实际上,功能可以以单个单元,多个单元或作为其它功能单元的一部分来实现。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (10)
1.一种流量控制方法,其特征在于,所述方法包括以下步骤:
判定第一分层令牌桶HTB队列处于令牌借用状态时,判断处于令牌借用状态的第二HTB队列是否需要进行数据发送,其中,所述第二HTB队列与所述第一HTB队列向同一上一级节点借用令牌,且所述第二HTB队列的队列优先级高于所述第一HTB队列的队列优先级;
若所述第二HTB队列需要进行数据发送,则控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括:在对所述第一HTB队列进行带宽重分配操作之前,执行所述第二HTB队列是否需要进行数据发送的判断操作。
3.如权利要求1所述的方法,其特征在于,所述方法进一步包括:在判定所述第一HTB队列处于令牌借用状态且已进行带宽重分配时,若判定所述第二HTB队列需要进行数据发送,则控制所述第一HTB队列停止对所述上一级节点的令牌借用,并控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。
4.如权利要求3所述的方法,其特征在于,所述的控制所述第一HTB队列停止对所述上一级节点的令牌借用的步骤进一步包括:在下一次数据入队轮询时,重新进行对所述第一HTB队列的带宽重分配操作。
5.如权利要求3所述的方法,其特征在于,所述的控制所述第一HTB队列停止对所述上一级节点的令牌借用的步骤进一步包括:标记所述第一HTB队列对应的第一HTB类;
在执行令牌收回操作时,当判定所述第一HTB队列处于令牌借用状态时,判断所述第一HTB类是否已标记;
若所述第一HTB类已标记,则退出所述令牌收回操作;
若所述第一HTB类未标记,则停止所述第一HTB队列对所述上一级节点的令牌的消耗。
6.如权利要求5所述的方法,其特征在于,所述的标记所述第一HTB队列对应的第一HTB类的步骤进一步包括:通过数据容器存储所有已标记的HTB类;
所述的判断所述第一HTB类是否已标记的步骤进一步包括:查询所述数据容器以判断所述第一HTB类是否已标记。
7.如权利要求6所述的方法,其特征在于,通过对所述数据容器中的HTB类进行赋值,完成HTB类的标记。
8.如权利要求6所述的方法,其特征在于,所述数据容器在初始化时,将每一HTB类与一序号向对应。
9.一种流量控制装置,其特征在于,所述装置包括:
判断单元,用于在判定第一分层令牌桶HTB队列处于令牌借用状态时,判断处于令牌借用状态的第二HTB队列是否需要进行数据发送,其中,所述第二HTB队列与所述第一HTB队列向同一上一级节点借用令牌,且所述第二HTB队列的队列优先级高于所述第一HTB队列的队列优先级;
处理单元,用于在所述判断单元判定所述第二HTB队列需要进行数据发送时,控制所述第二HTB队列借用所述上一级节点的令牌进行数据发送。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;以及
存储器,存储有计算机可执行指令的存储器;
其中,所述计算机可执行指令在被所述处理器执行时,使得如权利要求1至8中任一项所述方法的步骤被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110550754.4A CN113328957B (zh) | 2021-05-18 | 2021-05-18 | 一种流量控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110550754.4A CN113328957B (zh) | 2021-05-18 | 2021-05-18 | 一种流量控制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113328957A true CN113328957A (zh) | 2021-08-31 |
CN113328957B CN113328957B (zh) | 2023-05-23 |
Family
ID=77416014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110550754.4A Active CN113328957B (zh) | 2021-05-18 | 2021-05-18 | 一种流量控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113328957B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783727A (zh) * | 2021-09-07 | 2021-12-10 | 山石网科通信技术股份有限公司 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
CN115242722A (zh) * | 2022-06-14 | 2022-10-25 | 中盈优创资讯科技有限公司 | 一种基于api网关的高级流控实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833158A (zh) * | 2012-08-15 | 2012-12-19 | 北京神州绿盟信息安全科技股份有限公司 | 网络数据发送方法和装置、网络数据系统 |
CN106789721A (zh) * | 2017-03-24 | 2017-05-31 | 深圳市吉祥腾达科技有限公司 | 一种基于令牌桶的智能qos方法及系统 |
CN107682282A (zh) * | 2017-09-15 | 2018-02-09 | 北京外通电子技术公司 | 保障业务带宽的服务质量方法及网络设备 |
CN110149282A (zh) * | 2019-01-30 | 2019-08-20 | 华为技术有限公司 | 流量调度方法和装置 |
WO2020125521A1 (zh) * | 2018-12-20 | 2020-06-25 | 华为技术有限公司 | 控制网络拥塞的方法、装置及系统 |
-
2021
- 2021-05-18 CN CN202110550754.4A patent/CN113328957B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833158A (zh) * | 2012-08-15 | 2012-12-19 | 北京神州绿盟信息安全科技股份有限公司 | 网络数据发送方法和装置、网络数据系统 |
CN106789721A (zh) * | 2017-03-24 | 2017-05-31 | 深圳市吉祥腾达科技有限公司 | 一种基于令牌桶的智能qos方法及系统 |
CN107682282A (zh) * | 2017-09-15 | 2018-02-09 | 北京外通电子技术公司 | 保障业务带宽的服务质量方法及网络设备 |
WO2020125521A1 (zh) * | 2018-12-20 | 2020-06-25 | 华为技术有限公司 | 控制网络拥塞的方法、装置及系统 |
CN110149282A (zh) * | 2019-01-30 | 2019-08-20 | 华为技术有限公司 | 流量调度方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783727A (zh) * | 2021-09-07 | 2021-12-10 | 山石网科通信技术股份有限公司 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
CN113783727B (zh) * | 2021-09-07 | 2024-04-26 | 山石网科通信技术股份有限公司 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
CN115242722A (zh) * | 2022-06-14 | 2022-10-25 | 中盈优创资讯科技有限公司 | 一种基于api网关的高级流控实现方法 |
CN115242722B (zh) * | 2022-06-14 | 2024-04-16 | 中盈优创资讯科技有限公司 | 一种基于api网关的高级流控实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113328957B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102035732B (zh) | 业务调度方法及装置 | |
EP2548336B1 (en) | Method and apparatus for managing reallocation of system resources | |
US8325603B2 (en) | Method and apparatus for dequeuing data | |
CN108768873B (zh) | 一种流量控制方法及相关设备 | |
CN113328957B (zh) | 一种流量控制方法、装置及电子设备 | |
CN105812285A (zh) | 一种端口拥塞管理方法及装置 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
EP4002804A1 (en) | Software distributed, hardware aggregated hierarchical traffic management | |
WO2020047074A1 (en) | Sending data using a plurality of credit pools at the receivers | |
CN114257559B (zh) | 一种数据报文的转发方法及装置 | |
US20180167326A1 (en) | Method and system for limiting data traffic | |
WO2023226948A1 (zh) | 一种流量控制方法、装置、电子设备及可读存储介质 | |
CN112311696B (zh) | 网络封包接收装置及方法 | |
EP3440547B1 (en) | Qos class based servicing of requests for a shared resource | |
US10705985B1 (en) | Integrated circuit with rate limiting | |
CN112968845B (zh) | 一种带宽管理方法、装置、设备及机器可读存储介质 | |
CN113906720A (zh) | 流量调度方法、设备及存储介质 | |
CN114401235B (zh) | 一种队列管理中重载处理方法、系统、介质、设备及应用 | |
CN115941758A (zh) | 基于动态规划的云服务控制台部署方法、系统及存储介质 | |
CN115766582A (zh) | 流量控制方法、装置和系统、介质和计算机设备 | |
CN114936171A (zh) | 存储访问控制器架构 | |
CN117632392A (zh) | 任务调度的方法和电子设备 | |
KR102179769B1 (ko) | 다중 큐를 지원하는 네트워크 정책 적용 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN114884823A (zh) | 流量拥塞控制方法、装置、计算机可读介质及电子设备 | |
CN110708255B (zh) | 一种报文控制方法及节点设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |