CN113315720A - 一种数据流控制方法、系统及设备 - Google Patents
一种数据流控制方法、系统及设备 Download PDFInfo
- Publication number
- CN113315720A CN113315720A CN202110440705.5A CN202110440705A CN113315720A CN 113315720 A CN113315720 A CN 113315720A CN 202110440705 A CN202110440705 A CN 202110440705A CN 113315720 A CN113315720 A CN 113315720A
- Authority
- CN
- China
- Prior art keywords
- data packet
- list
- data
- packet
- priority
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/626—Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种数据流控制方法、系统及设备,通过判断数据包对应的通信协议是否为I P协议;若是,则根据I P优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;根据数据包分类列表对应的状态属性确定数据包接收列表;按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。本实施例所提供的方法,可以很好对网络接口的带宽进行分配,以及监控数据包的发送速率,实时对数据流进行控制,提高了数据流控制的稳定性。
Description
技术领域
本发明涉及信息控制技术领域,尤其涉及的是一种数据流控制方法、系统及设备。
背景技术
随着通信设备的广泛使用,设备之间传递的信息量也越来越大,为了满足QoS要求和关键应用程序的性能最大化,必须对传输的流量流进行控制,以更好地管理资源、处理流量拥堵和针对DoS攻击的保证保护。
现有技术中的的流量控制仅通过设置流量阈值,在低于流量阈值的范围内控制数据流,但是仅通过设置流量阈值控制数据流的控制机制,一旦系统过负荷,则拒绝接入所有数据流信息,CPU占用迅速下降,一旦系统恢复正常后,数据流又都可以接入,CPU占用迅速上升,导致系统又过负荷,周而复始,业务抖动严重,因此数据流控制不能满足控制稳定性的需求。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于提供一种数据流的控制方法、系统及设备,克服现有技术中对数据流控制时数据传输不稳定的缺陷。
本发明实施例公开的方案如下:
第一方面,本实施例公开了一种数据流控制方法,其中,包括:
接收输入数据包,并判断数据包对应的通信协议是否为IP协议;
若是,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;
根据数据包分类列表对应的状态属性确定数据包接收列表;
按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。
可选的,所述判断数据包对应的通信协议是否为IP协议,之前还包括:
判断数据包是否为空,若是,则获取数据包发送至与其对应的默认网络接口,并将所述数据包添加至所述默认网络接口的数据包输出队列中。
可选的,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
获取所述数据包分类列表对应的优先级,并判断优先级对应的数据包接收列表是否为空;
若为空,则将所述数据包分类列表中的各个数据包添加至所述数据包接收列表,并启动数据包调度控制。
可选的,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
获取所述数据包分类列表对应的优先级,并判断优先级对应的数据包接收列表是否为空;
若不为空,则判断所述数据包分类列表对应的状态是否处于丢弃状态;
若否,则判断所述数据包分类列表的大小是否小于所述调度阈值,若是,则将所述数据包分类列表中的各个数据包添加到对应优先级的数据包接收列表。
可选的,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
若所述数据包分类列表对应的状态处于丢弃状态,则判断所述数据包分类列表的大小是否小于等于预设最小调度阈值;
若是,则将所述数据包分类列表对应的状态为丢弃状态更改为非丢弃状态。
可选的,所述按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值的步骤包括:
获取所述数据包接收列表对应的第一个网络接口,并判断所述第一个网络接口对应的待接收数据包是否为空;其中,所述第一个网络接口对应的发送优先级为最高发送优先级;
若否,则按照数据包接收列表对应的优先级控制各个数据包接收列表中各个数据包的发送,并同时判断当前输出的数据包接收列表是否排满;
若排满,则控制启动流量控制,实施对发送的数据包接收列表进行更新。
可选的,所述根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送的步骤包括:
判断数据包发送列表对应的包速率是否大于预设包速率;
若是,则减低所述调度阈值,并依次获取下一个数据包接收列表;
若否,则提高所述调度阈值,并依次获取下一个数据包接收列表,直至待发送的数据包接收列表为空。
可选的,所述所述根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送的步骤包括:
获取各个数据包接收列表的包速率,并判断所述包速率是否为零;
若为零,则获取所述数据接收列表对应网络接口的有效包速率,并判断所述有效包速率是否大于所述数据接收列表所需包速率;
若是,则按照预设步长提高所述调度阈值,并依次获取下一个数据包接收列表,直至待发送的数据包接收列表为空。
第二方面,本实施例提供了一种数据流控制系统,其中,包括:
数据接收识别模块,用于接.
收输入数据包,并判断数据包对应的通信协议是否为IP协议;
包分类模块,用于当数据包对应的通信协议为IP协议时,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;
接收控制模块,用于根据数据包分类列表对应的状态属性确定数据包接收列表;按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。
第三方面,本实施例提供了一种终端设备,其中,包括处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现所述的数据流控制方法的步骤。
有益效果,本发明提供了一种数据流控制方法、系统及设备,通过接收输入数据包,并判断数据包对应的通信协议是否为IP协议;若是,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;根据数据包分类列表对应的状态属性确定数据包接收列表;按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。本实施例公开的方法通过首先根据数据包对应的通信协议对接收到的数据包进行筛选,并将筛选得到的数据包进行优先级分类,建立数据包分类列表,并根据数据包列表对应的优先级及包速率确定出调度阈值对各个数据包控制发送。本实施例所提供的方法,可以很好对网络接口的带宽进行分配,以及监控数据包的发送速率,实时对数据流进行控制,提高了数据流控制的稳定性。
附图说明
图1是数据包处理机制的原理示意图;
图2是IP协议中各个字段对应优先级的定义图;
图3是本发明所提供的数据流控制方法步骤流程图;
图4是本发明所述方法的具体应用中数据包分类的步骤示意图;
图5是本实施例中数据包分组接收和丢弃的示意图;
图6是本实施例中数据包调度的步骤流程图;
图7是本实施例中数据包的传输速率的控制流程图;
图8是本发明实施例数据流控制系统的原理结构框图;
图9是本发明实施例所述的终端设备的原理结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
现有技术中,由于数据流量较大,若不对流量进行控制,则可能会导致数据信息拥塞,因此解决数据流量的拥堵问题是流量控制的基础问题,以防止由于数据流量拥堵试导致需求超出容量。控制拥塞的最佳方法是在低于最大负载的范围内运行网络。设备必须管理资源,以确定何时需要删除包以及删除哪些包。
为了实现对数据流量进行控制,一般会用到以下技术:
1、队列管理
为了控制拥塞,很少有基于每流队列的算法,如:优先队列(PQ)、公平排队(FQ)、自定义排队(CQ)、基于类的排队(CBQ)和加权公平排队(WFQ)。各个算法各有优缺点,在队列数目、分组调度算法和实现复杂度等方面与其他算法有所不同。一些算法在实时通信中表现良好,而另一些算法只有在数据包大小相同的情况下才是公平的。由于设备既要承载实时流量,又要承载弹性流量,且流量大小无法预测,因此算法的选择尤为困难。此外,在嵌入式系统中,由于资源的有限性,CPU时间消耗是算法选择中的一个重要问题。
2、数据包处理
包处理机制可分为三部分,如图1所示,对数据包分类和入队、数据包调度策略和丢包。其中,各个入队数据包110依次输入到网络的输入接口,则包分类器根据数据包对应的不同属性或根据不同的优先级,对其分类排列,得到数据包的加权列表,在根据各个列表对应的优先级权重(如图1中所示的W1、W2、W3和W4)形成加权列表120,再利用包调度控制器对加权列表中的各个列表进行包调度的控制,包调度完成的各个数据包形成出队数据包队列130,输出到网络的输出接口。
3、数据包分类器
当一个包到达一个接口时,它被分类器分类并分配给列表中的一个。每个列表都有不同的权重来区分低流量优先级和高流量优先级。分组分类的关键是IP头to字节的前三位的IP优先位。优先是根据不同流量流的相对重要性在网络中分配资源的一种方案。IP规范为各种类型的流量定义了在这个字段中使用的特定值(参见图2)。连接到传入Nif的IP帧模块将检测由IP发送方用优先位标记的高优先级数据包。一旦发现包的优先级,帧描述符将被标记为优先级级别.
如图2所示,详细说明了优先位及其可能的值。其中,8个优先级的定义如下:
网络控制111(Network Control),网间控制110(Internetwork Control)、关键101(Critic)、疾速100(FlashOverride),闪速011(Flash),快速010(Immediate),优先001(Priority),普通000(Routine)。
数据包调度的基本功能是向输出队列提供符合条件的包,这些包来自附加到输出Nif的所有可用列表,几乎没有可能的方法:
最简单的方法是从具有更高优先级(PQ)的列表中选择包。只有当高优先级列表为空时,才会从某个列表中调度包,这对总是先发送包有一定影响,并且可以防止发送低优先级的包,从而导致列表不足。它的主要优点是非常简单,可以用软件开发。
第二种方法是以循环方式(FQ)提供每个列表。这种技术避免了饥饿问题,所有的列表都以公平的方式提供。然而,调度器每次从每个队列中取包,而不考虑包的长度,因此如果包不相同,就会变得不公平。
第三种方法是以加权循环方式(FQ)处理每个列表。这意味着非空队列按其队列权重的比例依次提供服务。其主要缺点是算法复杂,可能会导致性能问题。
第四种方法是使用通用的处理器共享方式(GPS)为每个队列服务。GPS是基于流体流动模型,并假设每个流动都是一个无限可分流体流。当然,这个模型不能被实现,因为包不是无限小的,而是被加权公平排队算法近似。WFQ包调度程序将根据分配给每个包的完成时间为队列服务。这个完成时间只考虑了很少的参数,并且在计算上非常昂贵。该模型的主要优点是即使包不完全相同,也具有公平性,这一点在实际中几乎总是得到验证。其主要缺点也是算法的复杂性。
当队列由于数据爆发或仅仅因为吞吐量超过系统容量而溢出时,就会出现此问题。不能接收更多的包,必须删除它们。在这种情况下,最常见的方法称为Drop Tail,它包括删除缓冲区中不合适的新传入包。它的优点是易于实现和CPU使用率低,但主要缺点是它的公平性。在过去的几年里,人们开发了更复杂的技术来管理全队列,并提出了随机早期检测(RED)、加权随机早期检测(WRED)等模型来更好地选择丢包,但所有这些模型在CPU资源方面都更昂贵。
带宽管理是一种设计用来管理各种带宽或优先级的技术网络上的应用程序。如果没有带宽管理,应用程序可能会消耗网络中的所有可用带宽,从而阻止其他更关键的应用程序有效地使用网络。
带宽管理实现基于前一章描述的技术。带宽管理的工作原理是识别通过网络的流量,然后应用QoS策略将临界流量置于非临界流量之上。该算法的关键是用于存储传入包的多个列表。为了在统计上分配正确的带宽,有必要对这些列表进行维度划分。在系统生命周期开始时,所有列表都根据其所需的带宽预先计算了大小。我们假设所有的包都有相同的大小,这在实际中是不正确的。因此,需要实现一种算法,使初始大小在最短时间内收敛到其正确的值。更重要的是,某些列表可能在不同的时间段保持空。此外,如果一个流量没有达到其全部带宽以在其他流量之间共享剩余带宽,则可以调整队列的大小。
资源管理是在系统出现拥塞和崩溃之前对系统进行监视和发出警报的一组技术。研究和测量,表明当系统开始运行耗尽CPU时间,队列填满和溢出,内存不足发生和PID任务调度更随机而不是周期。
通常,当CPU时间资源接近系统允许的最大值时,第一个症状是平均队列大小的增加。因此,我们可以通过查看这个参数来监视CPU资源,并将其与最小和最大阈值进行比较,这与使用RED丢包算法[3]避免拥塞的方法相同。这种技术非常有趣,因为它的目标是通过控制平均队列大小和通知拥塞源来减少或停止包流来避免拥塞。
拥塞的来源可能来自以太网接口,但也可能来设备生成的内部流量。通常,输出Nif将监视其队列,直到一个或多个队列接近拥塞为止。此时,必须通知即将到来的Nif采取一些操作。如果传入的Nif在物理端口上,则必须禁用该接口,否则该Nif在虚拟端口(VED)上,并且必须丢弃所有帧。在这两种情况下,传入的Nif必须保证拥塞源必须保持不活动,直到系统恢复,这意味着平均队列大小低于最小阈值。
设备可以支持大约51000的最大分组速率。因此,可以监视接收的包的数量,并检查它是否低于所支持的最大数量。如果数字大于或等于,我们就知道系统没有足够的资源来处理额外的流量,因此不值得进行分帧和切换过程,最终将数据包转发给发送出去的Nif。因此,一旦检测到系统可能超载,可以通过禁用接口,以使系统恢复正常。一旦处理了数据包,可以在后者上重新启用流量。
检测CPU资源问题的另一种方法是空闲帧描述符的数量。如果系统持续接收数据包,但不能足够快地处理它们,它将很快耗尽内存。因此,监视空闲帧描述符也可以用来触发传入接口上的数据包删除。
PID任务是进入包必须打开的第一个门。当IDMA完成从emac接口到SDRAM的数据传输后,每隔一毫秒就会有一个中断向设备发送一个唤醒PID任务的信号。如果设备没有耗尽CPU时间,那么对于恒定的传入流量,调度将在相同的时间段发生。如果设备超载并且不能再处理流量,这个周期会随机变化。
在接收端禁用该接口意味着所有通过该接口的流量将丢失,而关键流量可能试图访问它。解决这个问题的一种可能的方法是每个以太网接口至少使用两个MAC地址,而不是一个。如果关键流量,如VoIP或控制消息有自己的MAC地址,这是不同于其他非关键流量的MAC地址,它将有可能使一个硬件过滤器。这种技术的主要优点是丢包机制在硬件中完成,或者在分配帧描述符之前完成。最后,不会浪费CPU和内存资源。此外,优先流量将被允许继续通过接口,而高带宽流量将被停止,直到系统恢复。
包分类器的实现依赖于IPv4报头中的IP优先位,在八个进入的包分类中选择一个列表。调度程序依赖于PQ算法来服务每个列表,因为它在MSP需求和算法复杂度方面。本实施例提供的方法在上述理论的基础上,提出了一种数据流的控制方法。
下面结合附图3至图9,对本发明所公开的方法做更为详细的解释。
示例性方法
第一方面,本实施例公开了一种数据流控制方法,如图3所示,包括:
步骤S1、接收输入数据包,并判断数据包对应的通信协议是否为IP协议。
当网络接口接收到输入的数据包时,首先对数据包对应的通信协议是否为IP协议进行识别,若该数据包标记为最低优先级,且查找到该数据包对应的通信协议在该网络接口上注册,则执行将该数据包发送至默认的输出网络接口。
所述判断数据包对应的通信协议是否为IP协议,之前还包括:
判断数据包是否为空,若是,则获取数据包发送至与其对应的默认网络接口,并将所述数据包添加至所述默认网络接口的数据包输出队列中。
步骤S2、若数据包对应的通信协议是IP协议,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表。
若该数据包对应的通信协议为IP协议,则根据IPv4 TOS字节中获取到IP优先位,若数据包的对应的通信协议为IPv4,IP解析器根据IP优先位标记数据包优先级,若数据包对应的通信协议非IP协议,则非IP解析器维持数据包优先级不变,并保持其最低优先级。
接收到的数据包通过交换模块传输到输出网络接口,其中,交换模块连接在输入网络接口与输出网络接口之间,用于实现输入网络接口与输出网络接口之间的通信连接。
当输入网络接口接收到数据包后,则判断是否对其启用数据包流量控制,若启动则执行步骤S3和步骤S4,否则将数据包放入到对应网络接口的队列中发出。
本步骤中,输出网络接口对接收到的数据包进行分类,判断对其执行丢弃操作还是分组操作。首先,对获取数据包的优先级,判断与该数据包相对应的优先级的列表是否为空,若为空,则将该数据包放入其对应优先级的列表中,否则,该数据包对应的优先级列表不为空,则判断该数据包对应的优先级列表是否处于丢弃状态,若不处于丢弃状态,则检测该数据包对应列表的大小是否小于当前自适应阈值,若是,则设置该数据包对应的列表处于丢弃状态,将数据包丢包。
若数据包对应的优先级列表处于可丢弃状态,则丢弃该数据包,并将该数据包对应的列表大小与最小列表阈值进行比较,如果该数据包对应的列表大小小于或等于最小值,则将该数据包对应列表的状态从可丢弃的状态修改为不可丢弃状态。
步骤S3、根据数据包分类列表对应的状态属性确定数据包接收列表。
根据上述步骤中识别出的数据包分类列表所在的优先级和其所在的可丢弃状态或不可丢弃状态,确定出数据包接收列表。将上述步骤中确定出不可丢弃的列表对应的各个数据包依次放入对应优先级的各个数据包列表中,得到多个数据包接收列表。
所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
获取所述数据包分类列表对应的优先级,并判断优先级对应的数据包接收列表是否为空;
若为空,则将所述数据包分类列表中的各个数据包添加至所述数据包接收列表,并启动数据包调度控制。
以及,若所述数据包分类列表对应的状态处于丢弃状态,则判断所述数据包分类列表的大小是否小于等于预设最小调度阈值;
若是,则将所述数据包分类列表对应的状态为丢弃状态更改为非丢弃状态。
步骤S4、按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。
利用数据包调度程序对各个数据包接收列表中的各个数据包进行控制发送。其具体步骤包括:
获取所述数据包接收列表对应的第一个网络接口,并判断所述第一个网络接口对应的待接收数据包是否为空;其中,所述第一个网络接口对应的发送优先级为最高发送优先级;
若否,则按照数据包接收列表对应的优先级控制各个数据包接收列表中各个数据包的发送,并同时判断当前输出的数据包接收列表是否排满;
若排满,则控制启动流量控制,实施对发送的数据包接收列表进行更新。
首先选择列表中排在第一位的数据包对应的网络接口是否为空,若为空,则保持以较低优先级对数据包中的各个数据包进行控制传输,直至全部的列表中含有的数据包发出完成或待输出的数据包接收列队已满。列表中排在第一位的数据包对应的网络接口不为空,则选择具有最高优先级的数据包接收列表,并从该最高优先级列表中选择帧,直至输出网络接口对应的数据包队列已空或网络接口对应的数据包队列已满。若输出网络接口对应的数据包队列已满,则控制发送帧,并更新各个数据包接收列表,以及各个数据包接收列表中的分组包号。
进一步判断是否含有低优先级对应的数据包接收列表不是空,若是,则选择低优先级列表,否则,继续选择下一个网络接口对应的数据包接收列表,并判断该数据包接收列表对应的输出网络接口是否为空。
进一步的,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
若所述数据包分类列表对应的状态处于丢弃状态,则判断所述数据包分类列表的大小是否小于等于预设最小调度阈值;
若是,则将所述数据包分类列表对应的状态为丢弃状态更改为非丢弃状态。
所述根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送的步骤包括:
判断数据包发送列表对应的包速率是否大于预设包速率;
若是,则减低所述调度阈值,并依次获取下一个数据包接收列表;
若否,则提高所述调度阈值,并依次获取下一个数据包接收列表,直至待发送的数据包接收列表为空。
所述根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送的步骤包括:
获取各个数据包接收列表的包速率,并判断所述包速率是否为零;
若为零,则获取所述数据接收列表对应网络接口的有效包速率,并判断所述有效包速率是否大于所述数据接收列表所需包速率;
若是,则按照预设步长提高所述调度阈值,并依次获取下一个数据包接收列表,直至待发送的数据包接收列表为空。
结合图7所示,如果当前并未禁用流量调度程序,则获取当前被服务的排列第一的数据包接收列表,并判断该数据包接收列表的包数率是否为0,若是,则获取该数据包接收列表对应的可用分组速率,并判断包速率资源是否充足,若充足,则控制提高当前的自适应阈值,否则,降低当前的自适应阈值。
若当前并并未禁用流量调度程序,则获取当前被服务的排列第一的数据包接收列表对应的包速率不为0,则判断该数据包接收列表对应的包速率是否大于配置包速率,若是,则减少当前的自适应阈值,否则提高当前的自适应阈值。
依次获取排列在后的下一个数据包接收列表,并对获取到的数据包接收列表的包速率是否有定义进行判断,并根据包速率的大小是否大于当前自适应的包速率阈值对当前的自适应包速率阈值进行调整,若小于,则控制提高当前自适应阈值,若大于,则控制减少当前自适应阈值,直至全部数据包接收列表中的各个数据包均发送成功。
下面结合图4至图7对本发明具体应用实施例做进一步的说明:
如图4所示,当从一个可用的网络接口收到一个数据包时,数据包被标记为最低优先级。如果低层找到的协议在这个网络接口上注册,就会执行帧,否则数据包将发送到默认的输出网络接口(Nif),进入到下一步的调度步骤(如图4和图6中所示的A)。如果协议是IP,那么包优先级将根据从IPv4 TOS字节中获得的IP优先位进行更改。包优先级在非ip协议中保持其初始优先级。一旦交换模块返回了输出Nif,包就被发送到这个Nif。如果流量管理方案在输出Nif上注册,则数据包将被传输到包策略模块(如图4和图6中所示的步骤A),该模块负责在8个列表中的一个列表中接收它。如果流量管理没有注册,包将被放置在单个输出队列中,无论其优先级如何,所有包都将以相同的方式得到服务。
如图5所示,若在输出网络接口上启用流量控制,则还需要对各个数据包进行分类,数据包一旦被分类,就被转发到接收和丢弃模块。它的作用是检查每个列表可用的剩余空间,并决定是否应该丢弃数据包或接收数据包。当从分类器收到一个包时,检查这个包所属的列表的状态。如果列表处于丢弃状态,则丢弃数据包,并将列表大小与最小列表阈值进行比较。如果大小小于或等于最小值,则状态将从丢弃变为非丢弃。如果列表处于不可丢弃状态,将检查列表的大小。如果列表为空,则承认包并启用包调度程序。如果大小大于自适应阈值,则丢弃数据包,状态从非丢弃变为丢弃。否则数据包将被允许进入列表。
结合图6和7所示,数据包调度程序,只要包在列表中等待,包调度程序每一毫秒就会被唤醒一次。在具体实施时,调度器分为两部分:调度列表服务器和调度程序列表阈值适配器。
调度器的作用包括:按照PQ算法(PQ:Priority Queuing优先级队列)为每个列表提供服务、监察每个列表所调度的封包数目以及监控通过Nif组的数据包总数。
调度程序列表阈值适配器(scheduler_list_threshold_adapter),其中,调度程序列表阈值适配器的作用是调整自适应阈值来管理每个优先级的包速率。
调度列表服务器(scheduler_list_server),若调度列表服务器被唤醒,它将接受流量管理列表中的第一个网络接口并检查它是否为空。若是,则且“signal”变量设置等于0,则禁用分组调度程序,若“signal”变量设置不等于0,则控制进入调度程序(结合图5和图6中的步骤B)。
选择具有最高优先级的列表,并提供数据包,直到列表为空或输出队列满为止。如果列表为空,调度器将保持较低优先级的服务列表,直到所有列表为空或输出队列已满。如果输出队列已满,并且在八个列表中的一个列表中仍有一些包挂起,将“signal”变量设置为不禁用包调度器。在列表中选择下一个Nif,直到所有Nif都被调度(如图7所示的步骤C)。调度程序列表阈值适配器获取调度程序提供的所有列表。
检查每个列表的包速率。如果包速率为0,则意味着主机没有为列表指定任何包速率,需要先获得Nif组的可用包速率。
如果资源可用,调度器将尝试增加自适应阈值,直到达到最大值。如果资源不足,则根据该列表带来的包占通过Nif组的包总数的百分比降低自适应阈值。其中,自适应增加或减少阈值的步骤可以为按某个步长调整增加或减少,其中步长可以为固定步长或自适应调整的。
示例性设备
本实施例在公开上述方法的基础上,本实施例还提供了一种数据流控制系统,如图8所示,包括:
数据接收识别模块810,用于接收输入数据包,并判断数据包对应的通信协议是否为IP协议;其功能如步骤S1所述。
包分类模块820,用于当数据包对应的通信协议为IP协议时,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;其功能如步骤S2所述。
接收控制模块830,用于根据数据包分类列表对应的状态属性确定数据包接收列表;按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送,其功能如步骤S3和步骤S4所述。
在上述方法的基础上,本实施例还公开了一种终端设备,包括处理器、与处理器通信连接的存储介质,存储介质适于存储多条指令;处理器适于调用存储介质中的指令,以执行所述摄像头拍摄参数的校正方法的步骤。一种实施方式中,显示设备可以为手机、平板电脑或智能电视。
具体的,如图9所示,终端设备包括至少一个处理器(processor)20以及存储器(memory)22,还可以包括显示屏21、通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中所述方法的步骤的步骤。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器30通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的摄像头拍摄参数的校正方法的步骤。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种数据流控制方法,其特征在于,包括:
接收输入数据包,并判断数据包对应的通信协议是否为IP协议;
若是,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;
根据数据包分类列表对应的状态属性确定数据包接收列表;
按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。
2.根据权利要求1所述的方法,其特征在于,所述判断数据包对应的通信协议是否为IP协议,之前还包括:
判断数据包是否为空,若是,则获取数据包发送至与其对应的默认网络接口,并将所述数据包添加至所述默认网络接口的数据包输出队列中。
3.根据权利要求1所述的方法,其特征在于,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
获取所述数据包分类列表对应的优先级,并判断优先级对应的数据包接收列表是否为空;
若为空,则将所述数据包分类列表中的各个数据包添加至所述数据包接收列表,并启动数据包调度控制。
4.根据权利要求1所述的方法,其特征在于,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
获取所述数据包分类列表对应的优先级,并判断优先级对应的数据包接收列表是否为空;
若不为空,则判断所述数据包分类列表对应的状态是否处于丢弃状态;
若否,则判断所述数据包分类列表的大小是否小于所述调度阈值,若是,则将所述数据包分类列表中的各个数据包添加到对应优先级的数据包接收列表。
5.根据权利要求1所述的方法,其特征在于,所述根据数据包分类列表对应的状态属性确定数据包接收列表的步骤包括:
若所述数据包分类列表对应的状态处于丢弃状态,则判断所述数据包分类列表的大小是否小于等于预设最小调度阈值;
若是,则将所述数据包分类列表对应的状态为丢弃状态更改为非丢弃状态。
6.根据权利要求1所述的方法,其特征在于,所述按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值的步骤包括:
获取所述数据包接收列表对应的第一个网络接口,并判断所述第一个网络接口对应的待接收数据包是否为空;其中,所述第一个网络接口对应的发送优先级为最高发送优先级;
若否,则按照数据包接收列表对应的优先级控制各个数据包接收列表中各个数据包的发送,并同时判断当前输出的数据包接收列表是否排满;
若排满,则控制启动流量控制,实施对发送的数据包接收列表进行更新。
7.根据权利要求1所述的方法,其特征在于,所述根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送的步骤包括:
判断数据包发送列表对应的包速率是否大于预设包速率;
若是,则减低所述调度阈值,并依次获取下一个数据包接收列表;
若否,则提高所述调度阈值,并依次获取下一个数据包接收列表,直至待发送的数据包接收列表为空。
8.根据权利要求1所述的方法,其特征在于,所述所述根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送的步骤包括:
获取各个数据包接收列表的包速率,并判断所述包速率是否为零;
若为零,则获取所述数据接收列表对应网络接口的有效包速率,并判断所述有效包速率是否大于所述数据接收列表所需包速率;
若是,则按照预设步长提高所述调度阈值,并依次获取下一个数据包接收列表,直至待发送的数据包接收列表为空。
9.一种数据流控制系统,其特征在于,包括:
数据接收识别模块,用于接收输入数据包,并判断数据包对应的通信协议是否为IP协议;
包分类模块,用于当数据包对应的通信协议为IP协议时,则根据IP优先级标记出各个所述数据包的优先级,并根据各个所述数据包的优先级标记对数据包进行分类,得到数据包分类列表;
接收控制模块,用于根据数据包分类列表对应的状态属性确定数据包接收列表;按照数据包接收列表对应的优先级,以及各个数据包分类列表中数据包的排列顺序,以及所述数据包接收列表对应的包速率确定数据包的调度阈值,并根据确定出的调度阈值控制所述数据包接收列表中各个数据包的发送。
10.一种终端设备,其特征在于,包括处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述权利要求1-7任一项所述的数据流控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110440705.5A CN113315720B (zh) | 2021-04-23 | 2021-04-23 | 一种数据流控制方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110440705.5A CN113315720B (zh) | 2021-04-23 | 2021-04-23 | 一种数据流控制方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113315720A true CN113315720A (zh) | 2021-08-27 |
CN113315720B CN113315720B (zh) | 2023-02-28 |
Family
ID=77372561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110440705.5A Active CN113315720B (zh) | 2021-04-23 | 2021-04-23 | 一种数据流控制方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113315720B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022931A (zh) * | 2022-05-27 | 2022-09-06 | 中国电信股份有限公司 | 速率控制方法及装置、计算机可读存储介质及电子设备 |
CN115150174A (zh) * | 2022-07-06 | 2022-10-04 | 北京神州慧安科技有限公司 | 一种工业安全隔离交换方法和系统 |
CN116224901A (zh) * | 2023-05-09 | 2023-06-06 | 深圳市汇辰自动化技术有限公司 | 一种基于以太网的plc控制器通信方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000092123A (ja) * | 1998-09-11 | 2000-03-31 | Nippon Telegr & Teleph Corp <Ntt> | 計算機使用者情報を利用した通信フロー優先制御方法および装置と計算機使用者情報を利用した通信フロー優先制御プログラムを記録した記録媒体 |
US20130135996A1 (en) * | 2011-11-29 | 2013-05-30 | Hughes Networks Systems, Llc | Method and system for traffic management and resource allocation on a shared access network |
CN103269320A (zh) * | 2013-04-25 | 2013-08-28 | 中国人民解放军国防科学技术大学 | 数据转发方法和接入路由器 |
CN104869079A (zh) * | 2015-06-11 | 2015-08-26 | 烽火通信科技股份有限公司 | 基于动态加权循环法的队列调度方法及装置 |
CN109391562A (zh) * | 2017-08-10 | 2019-02-26 | 东软集团股份有限公司 | 一种优先级调度方法、装置和防火墙 |
CN111355673A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-04-23 CN CN202110440705.5A patent/CN113315720B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000092123A (ja) * | 1998-09-11 | 2000-03-31 | Nippon Telegr & Teleph Corp <Ntt> | 計算機使用者情報を利用した通信フロー優先制御方法および装置と計算機使用者情報を利用した通信フロー優先制御プログラムを記録した記録媒体 |
US20130135996A1 (en) * | 2011-11-29 | 2013-05-30 | Hughes Networks Systems, Llc | Method and system for traffic management and resource allocation on a shared access network |
CN103269320A (zh) * | 2013-04-25 | 2013-08-28 | 中国人民解放军国防科学技术大学 | 数据转发方法和接入路由器 |
CN104869079A (zh) * | 2015-06-11 | 2015-08-26 | 烽火通信科技股份有限公司 | 基于动态加权循环法的队列调度方法及装置 |
CN109391562A (zh) * | 2017-08-10 | 2019-02-26 | 东软集团股份有限公司 | 一种优先级调度方法、装置和防火墙 |
CN111355673A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022931A (zh) * | 2022-05-27 | 2022-09-06 | 中国电信股份有限公司 | 速率控制方法及装置、计算机可读存储介质及电子设备 |
CN115022931B (zh) * | 2022-05-27 | 2024-02-06 | 中国电信股份有限公司 | 速率控制方法及装置、计算机可读存储介质及电子设备 |
CN115150174A (zh) * | 2022-07-06 | 2022-10-04 | 北京神州慧安科技有限公司 | 一种工业安全隔离交换方法和系统 |
CN116224901A (zh) * | 2023-05-09 | 2023-06-06 | 深圳市汇辰自动化技术有限公司 | 一种基于以太网的plc控制器通信方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113315720B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113315720B (zh) | 一种数据流控制方法、系统及设备 | |
US10764215B2 (en) | Programmable broadband gateway hierarchical output queueing | |
US8761012B2 (en) | Packet relay apparatus and method of relaying packet | |
WO2017054566A1 (zh) | 一种防止cpu报文拥塞的方法及装置 | |
CN106789721B (zh) | 一种基于令牌桶的智能qos方法及系统 | |
CN101547159B (zh) | 一种避免网络拥塞的方法和设备 | |
EP1553740A1 (en) | Method and system for providing committed information rate (CIR) based fair access policy | |
KR101075724B1 (ko) | 통신 시스템에서 패킷 전송 속도 제한 장치 및 방법 | |
EP2761826B1 (en) | Attribution of congestion contributions | |
US20180054394A1 (en) | Scheduling of packets in network devices | |
US7843825B2 (en) | Method and system for packet rate shaping | |
US8942090B2 (en) | Technique for throughput control for packet switches | |
JP7211765B2 (ja) | パケット転送装置、方法、及びプログラム | |
CN113064738B (zh) | 基于概要数据的主动队列管理方法 | |
JP2002026965A (ja) | パケット交換機の送信キュー管理システム及び管理方法 | |
CN108243506B (zh) | Lte系统中的业务调度方法及装置 | |
US9331853B2 (en) | Method and apparatus for increasing the output of a cryptographic system | |
CN107404454B (zh) | 通话质量调整方法及装置 | |
US7391785B2 (en) | Method for active queue management with asymmetric congestion control | |
KR20020079904A (ko) | 차등 서비스 네트워크에서 프레임 스케쥴링 및 버퍼관리를 위한 통합 알고리즘 | |
EP3425862B1 (en) | Automatically cycling among packet traffic flows subjecting them to varying drop probabilities in a packet network | |
Astuti | Packet handling | |
Irawan et al. | Performance evaluation of queue algorithms for video-on-demand application | |
CN113765796A (zh) | 流量转发控制方法及装置 | |
CN112055382A (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 |