CN116584082A - 基于运行时间自适应动态内部优先级值策略的队列释放和优化的设备和方法 - Google Patents
基于运行时间自适应动态内部优先级值策略的队列释放和优化的设备和方法 Download PDFInfo
- Publication number
- CN116584082A CN116584082A CN202080107546.0A CN202080107546A CN116584082A CN 116584082 A CN116584082 A CN 116584082A CN 202080107546 A CN202080107546 A CN 202080107546A CN 116584082 A CN116584082 A CN 116584082A
- Authority
- CN
- China
- Prior art keywords
- queues
- queue
- controller
- priority
- network node
- 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
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/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6235—Variable service order
-
- 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/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及控制网络中的队列释放。具体是,本发明提出了一种控制器,用于:获取网络节点的多个队列中的每个队列的状态;基于所述队列的所述状态,确定一个或多个队列的利用率是否超过一个或多个阈值;如果超过一个或多个阈值,则为所述多个队列中的一个或多个队列生成一个或多个新的优先级条目;将所述一个或多个新的优先级条目提供给所述网络节点的所述一个或多个队列。此外,本发明提出了一种网络节点,所述网络节点用于将多个队列中的每个队列的状态提供给控制器,并从所述控制器获取所述多个队列中的一个或多个队列的一个或多个新的优先级条目。
Description
技术领域
本发明涉及通信网络,尤其涉及调度帧的切换。为了克服典型的瞬时网络过载条件,本发明提出了一种控制器、改进的网络节点和相应的方法,以基于网络队列的状态实现自适应动态的内部优先级值(internal priority value,IPV)(每帧)。
背景技术
网络交换机、路由器和网关中的一个关键问题可能是缓冲(或暂时存储)从入端口流向出端口的网络帧所需的内部队列/先进先出(first-in first-out,FIFO)存储器的过载。
图1和图2都示出了一组队列的示例,这些队列可以在时间敏感网络(time-sensitive networking,TSN)标准802.1Qbv的帧调度阶段找到。TSN是一组标准定义的机制,用于在确定性以太网络上进行时间敏感的数据传输。IEEE 802.1Qbv时间感知调度器(time-aware scheduler,TAS)旨在将以太网络上的通信分离为固定长度和重复时间周期。根据802.1Qbv,要传递的帧可以分配给两种或两种以上类型的流量类别(优先级)中的一种。如图1或图2所示,流量类别可以包括#0到#7的流量类别。帧以与门控列表(gatecontrol list,GCL)中定义的流量类别相对应的周期传递,数据被分配到所述帧。值得注意的是,GCL中所示的“o”指示与特定流量类别相对应的传输门打开,GCL中所示的“C”指示与特定流量类别相对应的传输门关闭。
特别是在网络过载和流量突发时刻,重要的是,网络节点(例如交换机/路由器/网关)通过缓冲/存储内部队列中的帧来承受此类流量峰值,以避免由于容量不足而导致的意外帧丢失,这将降低网络的服务质量(quality of service,QoS)。
目前在网络节点中合成的大多数现有解决方案都实现了固定深度的队列和每个队列的队列管理算法。然而,给定具有N个入端口和M个出端口的网关,在一个特定时间点,可能会出现这样的情况:其中一些端口的活动性较低(即相当空),而其它端口的应力过大(即几乎满)。在这种情况下,低活动性端口的队列可能未被使用,而其它端口的队列则会被折叠。这可能会导致不必要的帧丢失。
发明内容
鉴于上述缺陷,本发明的实施例旨在介绍克服典型的瞬时网络过载条件的设备和方法。具体是,目标是避免帧丢弃,尤其避免高优先级数据包的丢弃,从而提高关键网络场景下的QoS。一个目标还是优化专用于队列的存储器总量的使用。
这些和其它目标通过所附独立权利要求中提供的实施例实现。实施例的有利实现方式在从属权利要求中进一步定义。
本发明的第一方面提供了一种控制器,用于:获取网络节点的多个队列中的每个队列的状态,其中队列的所述状态指示所述队列的利用率,其中每个队列与优先级条目相关联;基于所述队列的所述状态,确定一个或多个队列的所述利用率是否超过一个或多个阈值,其中一个阈值与所述多个队列中的每个队列相关联;如果超过一个或多个阈值,则为所述多个队列中的一个或多个队列生成一个或多个新的优先级条目;将所述一个或多个新的优先级条目提供给所述网络节点的所述一个或多个队列。
因此,本发明的实施例提出了一种基于网络队列状态控制队列的IPV的控制器。控制器可以直接在硬件(如微控制器或片上系统(system-on-chip,SoC)设备的协处理器或外围设备,作为网络节点等的一部分)和/或在软件(作为在所述微控制器的中央处理器(central processing unit,CPU)上运行的可执行代码或作为网络节点等的一部分的SoC)中实现。
本发明依赖于每个队列的状态。具体是,当队列达到定义的阈值(即,暗示该队列已满或几乎满)时,此类信息可以被发送到控制器,以便修改IPV条目,从而修改新传入帧的流量类别/队列。因此,IPV条目可以在运行时间修改,具体取决于流量需求。可以实现基于网络队列状态的自适应动态IPV(每帧)。
在第一方面的实现方式中,一个或多个阈值包括指示队列的几乎满状态的第一阈值。
具体是,自适应动态IPV的机制可以基于称为队列几乎满警报(queue nearlyfull alert,QNFA)的标志或事件触发。这可以使用在本实现方式中定义的第一阈值来实现。值得注意的是,可能不使用队列满警报(queue full alert,QFA),因为不希望等待直到队列已满,否则这可能导致在应用该机制之前的数据包(帧)丢失。
在第一方面的实现方式中,队列的状态指示队列中的帧数。
在第一方面的实现方式中,一个或多个阈值是可配置的。
值得注意的是,一个或多个阈值可以例如基于特定要求配置。
在第一方面的实现方式中,所述控制器还用于:如果所述队列中的帧数超过所述第一阈值,则确定一个或多个队列的所述利用率超过所述一个或多个阈值;从所述多个队列中确定一个或多个第一队列,其中对于所述一个或多个第一队列中的每一个,所述帧数超过所述第一阈值。
可选地,每个第一队列可以是优先级较高的队列。如果高优先级队列检测到QNFA事件,则所述队列可能会请求更多的缓冲区。
在第一方面的实现方式中,所述控制器还用于:基于一个或多个第二队列的一个或多个默认优先级条目,从所述多个队列中确定所述一个或多个第二队列,其中所述一个或多个第二队列中的每个第二队列的默认优先级条目低于所述一个或多个第一队列中的一个第一队列的相应默认优先级条目。
因此,控制器将搜索优先级较低的一个或多个队列。这样的低优先级队列可能需要将其缓冲区提供给高优先级队列。
在第一方面的实现方式中,所述一个或多个阈值包括指示队列的几乎空状态的第二阈值,和/或指示队列的空状态的第三阈值。
所述一个或多个阈值可以设计成能够触发队列几乎空警报(queue nearly emptyalert,QNEA)事件和/或队列空警报(queue empty alert,QEA)事件。
在第一方面的实现方式中,所述控制器还用于:基于所述一个或多个第二队列的所述一个或多个默认优先级条目、所述一个或多个第二队列中的每个第二队列的状态和所述第二阈值或所述第三阈值,从所述多个队列中确定所述一个或多个第二队列,其中每个第二队列中的帧数不超过所述第二阈值或所述第三阈值。
例如,如果优先级较低的队列的状态显示此队列为空或几乎为空,则这可能意味着此队列可能要放弃缓冲区中的空闲空间(例如,所述空闲空间可以被提供给几乎满的高优先级队列)。
在第一方面的实现方式中,所述控制器还用于:为所述一个或多个第一队列生成一个或多个新的优先级条目,其中所述一个或多个第一队列的生成的一个或多个优先级条目中的每一个等于所述一个或多个第二队列中的一个的相应默认优先级条目。
可选地,当几乎满的高优先级队列,例如队列7(优先级=7)需要缓冲区,并且控制器发现几乎空或空的低优先级队列,例如队列0(优先级=0)时,将为队列7生成新的IPV条目,特别是对于队列7处的到达帧,这些帧将具有值为0的新优先级条目。在这种情况下,超过帧(即,此处的超过帧是指队列7的传入帧,因为超过了QNFA阈值)将被重新定向到队列0而不是队列7。队列0将保持其优先级值0。
在第一方面的实现方式中,所述生成的一个或多个新的优先级条目指示所述网络节点将一个或多个到达帧从所述一个或多个第一队列重新定向到所述一个或多个第二队列。
具体是,在应用了新的IPV条目之后,高优先级队列(队列7)可以将其突发数据包递送到队列0,从而避免丢失所述突发数据包。
在第一方面的实现方式中,生成的一个或多个新的优先级条目中的每一个指示优先级级别,其中所述优先级级别是可配置的。
在第一方面的实现方式中,所述控制器还用于从所述网络节点获取所述多个队列中的每个队列的更新状态。
在第一方面的实现方式中,所述控制器还用于:如果确定队列的所述利用率不超过所述一个或多个阈值,则将所述一个或多个生成的优先级条目中的每一个设置回所述默认优先级条目。
值得注意的是,在高优先级队列(队列7)将其突发数据包递送到队列0之后,可以降低队列7中的级别(即队列7的利用率)。如果级别低于QNFA,则意味着无需继续应用此新的IPV条目。因此,IPV配置可以设置回默认配置。
本发明的第二方面提供了一种网络设备,用于:将多个队列中的每个队列的状态提供给控制器,其中所述多个队列形成在所述网络节点的出端口处,其中每个队列与优先级条目相关联;从所述控制器获取所述多个队列中的一个或多个队列的一个或多个新的优先级条目。
因此,本发明的实施例还提出了一种网络设备,其中所提出的自适应动态IPV实现方式允许优化网络设备上存储器的使用,并避免在关键网络场景下的帧丢失。网络节点可以是交换机、路由器、网关等。具体是,网络节点将应用从控制器获取的一个或多个新的IPV条目,其中新的IPV条目可以基于网络节点提供的队列状态确定。
在第二方面的实现方式中,所述网络设备还用于:基于获取的一个或多个新的优先级条目,重新定向所述多个队列内的一个或多个到达帧。
如前所述,在应用了新的IPV条目之后,几乎满的高优先级队列可以将其突发帧递送到几乎空或空的低优先级队列。因此,可以防止关键网络场景下的帧丢失。
在第二方面的实现方式中,所述网络设备还用于将所述多个队列中的每个队列的更新状态提供给所述控制器。
如前所述,在高优先级队列将其突发数据包递送到低优先级队列之后,高优先级队列的级别可能会低于QNFA。更新状态将被提供给控制器。
本发明的第三方面提供了一种由第一方面的所述控制器执行的方法,其中所述方法包括:获取网络节点的多个队列中的每个队列的状态,其中队列的所述状态指示所述队列的利用率,其中每个队列与优先级条目相关联;基于所述队列的所述状态,确定一个或多个队列的所述利用率是否超过一个或多个阈值,其中一个阈值与所述多个队列中的每个队列相关联;如果超过一个或多个阈值,则为所述多个队列中的一个或多个队列生成一个或多个新的优先级条目;将所述一个或多个新的优先级条目提供给所述网络节点的所述一个或多个队列。
第三方面的方法的实现方式可以对应于上述第一方面的控制器的实现方式。第三方面的方法及其实现方式实现了与上述第一方面的控制器及其实现方式相同的优点和效果。
本发明的第四方面提供了一种由第二方面的所述网络节点执行的方法,其中所述方法包括:将多个队列中的每个队列的状态提供给控制器,其中所述多个队列形成在所述网络节点的出端口处,其中每个队列与优先级条目相关联;从所述控制器获取所述多个队列中的一个或多个队列的一个或多个新的优先级条目。
第四方面的方法的实现方式可以对应于上述第二方面的控制器的实现方式。第四方面的方法及其实现方式实现了与上述第二方面的网络设备及其实现方式相同的优点和效果。
本发明的第五方面提供了一种计算机程序产品,所述计算机程序产品包括程序代码,所述程序代码用于当在处理器上实现时执行根据所述第三方面和所述第三方面的任何实现方式,或所述第四方面和所述第四方面的任何实现方式所述的方法。
需要说明的是,本申请中描述的所有设备、元件、单元和模块可以在软件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。
附图说明
结合所附附图,以下具体实施例的描述阐述了上述本发明的各方面及实现方式,其中:
图1示出了根据802.1Qbv的队列;
图2示出了根据802.1Qbv的队列;
图3示出了队列的瞬时状态的示例;
图4示出了根据本发明实施例的控制器;
图5示出了根据本发明实施例的网络节点中队列的状态;
图6示出了根据本发明实施例的网络节点;
图7示出了根据本发明实施例的IEEE 802.1Qbv实现的示例;
图8示出了根据本发明实施例的IEEE 802.1Qbv实现的示例;
图9示出了根据本发明实施例的IEEE 802.1Qbv实现的示例;
图10示出了根据本发明实施例的IEEE 802.1Qbv实现的示例;
图11示出了根据本发明实施例的硬件实现方式;
图12示出了根据本发明实施例的算法;
图13示出了根据本发明实施例的方法;
图14示出了根据本发明实施例的方法。
具体实施方式
结合附图描述了用于控制网络节点中队列释放的方法、设备和程序产品的示例性实施例。尽管该描述提供了可能实现方式的详细示例,但需要说明的是,这些细节旨在是示例性的,并且不会限制本申请的范围。
此外,一个实施例/示例可以指其它多个实施例/示例。例如,一个实施例/示例中提及的任何描述,包括但不限于术语、元件、过程、解释和/或技术优势均适用于其它多个实施例/示例。
如前所述,在实现固定深度队列和每个队列的队列管理算法的现有解决方案中,可能会发生非活动端口的队列未被使用(即空),而其它端口的队列被折叠(即满)。
图3示出了在这种情况下队列的瞬时状态的示例。队列#1和队列#N都有传入帧。在时间t,由于队列中缺乏空间,即使在总队列存储器中有足够的空闲空间,队列#N中也将发生帧丢失。这可能会降低网络QoS。可以看出,虽然每个队列和固定深度队列的队列管理算法的实现策略相当简单,但无法自适应不断变化的流量条件。
为了克服典型的瞬时网络过载条件,本发明提出基于网络队列的状态实现自适应动态IPV(每帧)。
图4示出了根据本发明实施例的控制器400。控制器400可以包括处理电路(未示出),该处理电路用于执行、进行或启动本文所述的控制器400的各种操作。该处理电路可以包括硬件和软件。硬件可以包括模拟电路或数字电路,或模拟电路和数字电路两者。数字电路可以包括专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、数字信号处理器(digital signalprocessor,DSP)或多用途处理器等组件。控制器400还可以包括存储器电路,该存储器电路存储可以由处理器或处理电路执行(具体地,在软件的控制下执行)的一个或多个指令。例如,存储器电路可以包括存储可执行软件代码的非瞬时性存储介质,该可执行软件代码当由处理器或处理电路执行时,使控制器400执行各种操作。在一个实施例中,该处理电路包括一个或多个处理器和连接到一个或多个处理器的非瞬时性存储器。非瞬时性存储器可以携带可执行程序代码,该可执行程序代码当由一个或多个处理器执行时,使控制器400执行、进行或启动本文描述的操作或方法。
具体地,控制器400用于获取网络节点410的多个队列中的每个队列的状态401。队列的状态401指示队列的利用率,其中每个队列与优先级条目相关联。控制器400还用于基于队列的状态401确定一个或多个队列的利用率是否超过一个或多个阈值,其中一个阈值与多个队列中的每个队列相关联。然后,控制器400用于:如果超过一个或多个阈值,则为多个队列中的一个或多个队列生成一个或多个新的优先级条目402。此外,控制器400用于将一个或多个新的优先级条目402提供给网络节点410的一个或多个队列。
网络设备410可以是交换机、路由器、网关等。多个队列可以在网络设备410的出端口上实现。通常,每个队列都配置有一个单独的传输类别,它代表所有队列中的内部优先级。例如,传输类别#N比传输类别#N-1具有更高的优先级,其中N是正整数。
控制器400可以直接在硬件中实现(如作为网络节点410的一部分的微控制器或SoC设备的协处理器或外围设备)。可选地,控制器400可以在软件中实现(作为在作为网络节点410的一部分的所述微控制器或SoC的中央处理单元或CPU上运行的可执行代码)。
图5示出了根据本发明实施例的网络节点410中队列状态的示例。具体是,图5所示的IPV控制器可以是图4所示的控制器400。IPV控制器可能是有限状态机(finite statemachine,FSM)或算术逻辑单元(arithmetic logic unit,ALU)。
如本发明实施例中所提出的控制器400依赖于每个队列的状态401。当队列达到或超过定义的阈值时,可以触发事件,并将该信息发送到控制器400,这允许控制器400修改与队列相关联的优先级条目402,从而修改到达帧的流量。
根据本发明的实施例,可以设置一个或多个可配置的阈值以用于触发不同的事件。可选地,一个或多个阈值可以包括指示队列的几乎满状态的第一阈值。具体是,由第一阈值触发的事件可以称为QNFA。图5所示的阈值可以是第一阈值。
另一个阈值可能设置为触发队列满警报(queue full alert,QFA)事件,即,用于指示队列已满。然而,可能不使用该事件,因为不希望等待直到队列已满,否则这可能导致在应用适应IPV的机制之前的帧丢失。
值得注意的是,队列的状态401可以指示队列中的帧数。根据本发明的一个实施例,控制器400可用于:如果队列中的帧数超过第一阈值,则确定一个或多个队列的利用率超过一个或多个阈值。值得注意的是,如果队列中的帧数超过第一阈值,则触发QNFA事件。
此外,控制器400可用于:从多个队列中确定一个或多个第一队列,其中对于所述一个或多个第一队列中的每一个,所述帧数超过所述第一阈值。也就是说,如果QNFA事件在一个队列中被触发,则该队列将由控制器400标识,例如,在这里将该队列命名为第一队列。值得注意的是,存在多于一个队列,该队列中的帧数超过第一阈值。
知道存在请求更多缓冲区的队列(即,一个或多个第一队列,因为它们几乎满),控制器400将相应地搜索优先级较低的一个或多个其它队列。这样的低优先级队列可能需要将其缓冲区提供给高优先级队列。
根据本发明的实施例,控制器400还可用于:基于一个或多个第二队列的一个或多个默认优先级条目,从多个队列中确定所述一个或多个第二队列,其中所述一个或多个第二队列中的每个第二队列的默认优先级条目低于所述一个或多个第一队列中的一个第一队列的相应默认优先级条目。值得注意的是,第二队列不应具有高于第一队列的优先级或传输类别。
如果找到一个或多个低优先级队列(即,一个或多个第二队列),则控制器400可能修改具有低优先级队列的优先级值的高优先级队列中帧的优先级条目(即,在本实现方式中,一个或多个第一队列和一个或多个第二队列),以便使在高优先级但过载的队列处的到达帧被重新定向到其它低优先级队列。
优选地,控制器400还将检查低优先级队列是否能够接收额外帧,以避免低优先级队列上的帧丢失。
可选地,一个或多个阈值还可包括指示队列的几乎空状态的第二阈值,和/或指示队列的空状态的第三阈值。值得注意的是,第二阈值可以设置用于触发QNEA事件,第三阈值可以设置用于触发QEA事件。
因此,控制器400还可用于:基于所述一个或多个第二队列的所述一个或多个默认优先级条目、所述一个或多个第二队列中的每个第二队列的状态和所述第二阈值或所述第三阈值,从所述多个队列中确定所述一个或多个第二队列,其中每个第二队列中的帧数不超过所述第二阈值或所述第三阈值。
也就是说,每个第二队列可以是优先级低于每个第一队列的队列,并且第二队列的状态也应该满足一定的条件。具体是,每个第二队列中的帧数不会触发QNFA事件或QFA事件。也就是说,第二队列可能没有帧或只有少数帧,因此它适合于从第一队列中的一个第一队列接收重新定向的帧。
因此,如果找到合适的低优先级队列(即,一个或多个第二队列),则控制器400可以为高优先级队列和低优先级队列(即,在本实现方式中,一个或多个第一队列和一个或多个第二队列)生成新的优先级条目402,以便使在高优先级但过载的队列处的到达帧被重新定向到其它空或几乎空的低优先级队列。
具体是,一个或多个第二队列的生成的一个或多个优先级条目中的每一个可以等于一个或多个第一队列中的一个第一队列的相应默认优先级条目。例如,当第一队列具有默认传输类别#7(即,优先级=7),而第二队列具有默认传输类别#0(即,优先级=0)时,为第一队列的帧生成等于0的新优先级条目。第一队列的帧的新优先级条目0指示网络节点410将一个或多个到达帧从第一队列重新定向到第二队列。以此方式,过载的第一队列能够使用第二队列的缓冲区,从而避免高优先级帧的丢失。从而提高了关键网络场景下的QoS。
此外,一旦到达帧被重新定向,则可能不再针对第一队列触发QNFA事件。也就是说,第一队列的状态,即队列中的帧数,可能会低于第一阈值。
根据本发明的一个实施例,控制器400还可用于从网络节点410获取多个队列中每个队列的更新状态。因此,控制器400还可用于:如果确定队列的利用率不超过所述一个或多个阈值,则将所述一个或多个生成的优先级条目402中的每一个设置回所述默认优先级条目。
因此,本发明的实施例还提出了网络节点410。如前所述,网络设备410可以是交换机、路由器、网关等。
图6示出了根据本发明实施例的网络节点410。网络节点410可以是图4所示的网络节点410。网络节点410可以包括处理电路(未示出),该处理电路用于执行、进行或启动本文所述的网络节点410的各种操作。该处理电路可以包括硬件和软件。硬件可以包括模拟电路或数字电路,或模拟电路和数字电路两者。数字电路可以包括专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)、数字信号处理器(digital signal processor,DSP)或多用途处理器等组件。网络节点410还可以包括存储器电路,该存储器电路存储可以由处理器或处理电路执行(具体地,在软件的控制下执行)的一个或多个指令。例如,存储器电路可以包括存储可执行软件代码的非瞬时性存储介质,该可执行软件代码由处理器或处理电路执行时,使网络节点410执行各种操作。在一个实施例中,该处理电路包括一个或多个处理器和连接到一个或多个处理器的非瞬时性存储器。非瞬时性存储器可以携带可执行程序代码,当所述可执行程序代码由一个或多个处理器执行时,使网络节点410执行、进行或启动本文所述的操作或方法。
具体是,网络节点410用于将多个队列中的每个队列的状态401提供给控制器400。控制器400可能是图4所示的控制器400。值得注意的是,多个队列形成在网络节点410的出端口处,其中每个队列与优先级条目相关联。网络节点410还用于从所述控制器400获取所述多个队列中的一个或多个队列的一个或多个新的优先级条目402。
值得注意的是,在运行时间将网络节点410的流量需求提供给控制器400。依赖于多个队列的状态,控制器400能够即时修改帧的流量类别,从而优化网络节点410中专用于队列的存储器总量的使用。
根据本发明的一个实施例,网络设备410用于:基于获取的一个或多个新的优先级条目,重新定向所述多个队列内的一个或多个到达帧。因此,将要到达过载的更高优先级队列的帧将被重新定向到能够接收额外帧的其它队列。本发明旨在避免高优先级帧/数据包的丢失,从而提高关键网络场景下的QoS。
根据本发明的一个实施例,网络设备410还可用于将多个队列中的每个队列的更新状态提供给控制器400。如前所述,在高优先级队列将其突发数据包递送到低优先级队列之后,高优先级队列的级别可能会低于QNFA。这意味着可能不再需要修改后的优先级条目。将更新状态提供给控制器400,并且控制器400可以相应地设置回网络节点410的默认优先级配置。
图7至图10示出了根据本发明实施例的IEEE 802.1Qbv实现的具体示例,每个图按时间顺序示出队列的状态。
图7示出了网络节点410的八个队列以及所有队列的状态。网络节点410可能是图4或图6所示的网络节点。假设1ms的时间周期包括八个时隙,即T0、T1、……、T7,如图7所示。每个时隙用于一个专用优先级,例如将T7分配给优先级为7的队列。如前所述,每个传输类别或流量类别代表专用优先级。还假设为每个优先级设置一个专用队列。在本示例中,流量类别#7的队列在所有八个队列中具有最高优先级。
值得注意的是,时间周期是连续重复的。每个传输门的顺序和状态在GCL中定义。具体是,在每个时隙,每个队列的传输门将根据GCL打开或关闭。根据本发明的实施例,GCL是固定的。
图8是基于图7,示出了所有八个队列的较晚时间点。值得注意的是,图中进一步示出了用于指示事件QFA、QNFA、ANEA和QEA的四个阈值。可以看出,流量类别#7的队列(即队列7)中的帧数超过用于触发QNFA事件的阈值。这指示该队列的几乎满状态。根据本发明的一个实施例,该阈值可以是在先前实施例中定义的第一阈值。将该信息提供给控制器400,特别是如图4或图6所示的控制器400。因此,控制器400知道优先级为7的队列几乎已满,即,该控制器请求更多的缓冲区,否则可能丢失具有高优先级的另外到达帧。
使用在先前实施例中定义的方法,控制器400可以确定从其缓冲区接受给予的低优先级队列。此外,控制器400可以为该低优先级队列生成新的IPV条目,以便指示网络节点410将队列7的一个或多个到达帧重新定向到确定的低优先级队列。
图9是基于图8。在图9所示的时间点,控制器400已经为高优先级几乎满队列的超过帧生成了新的优先级条目。如前所述,超过帧是指高优先级几乎满队列的传入帧,因为超过了QNFA阈值。为流量类别#7的队列的超过帧生成的优先级条目(即0)等于几乎空的低优先级队列,即优先级为0的队列的优先级条目。因此,网络节点410将高优先级(优先级7)到达帧重新定向到队列0,如图9所示。也就是说,分配给队列0的第一时隙T0将继续发送队列0的帧,此外,这次还发送来自队列#7(优先级=7)的超过帧。
图10进一步基于图9。可以看出,一旦到达帧进行重新定向,则队列7中的帧数不再超过QNFA阈值。也就是说,对于队列7,不再触发QNFA事件。以此方式,队列7就会递送其过载帧,从而避免丢失所述过载帧。
将队列7的更新状态(不再超过QNFA阈值)提供给控制器400。因此,控制器400恢复用于队列7(即优先级7)的到达帧的默认IPV条目设置。因此,第一时隙T0仅从队列0(优先级=0)再次发送帧。
图11示出了根据本发明实施例的硬件实现方式。值得注意的是,不同队列将更新发送到IPV控制器(即,如图4或图6所示的控制器400)。更新可能涉及以下事件:QFA、QNFA、QNEA和QEA。
高优先级队列可以通过“qmodenTX”在系统中配置,所述“qmodenTX”表示请求更多缓冲区的队列列表。低优先级队列可以通过“qmodenRX”在系统中配置,所述“qmodenRX”表示接受从其它队列接收帧的队列列表。此外,为了允许实现的高度灵活性,可以通过“ipvmod”配置该机制的多种模式。
图12示出了根据本发明实施例的算法,基于以下四种不同模式:
●模式“D”(默认):应用默认IPV,而不进行修改
●模式“ME”(修改空):仅当目标低优先级队列为空时应用新的IPV
●模式“MNE”(修改几乎空):当目标低优先级队列几乎空时应用新的IPV
●模式“JM”(只需修改):无论目标低优先级队列的状态如何,都应用新的IPV
值得注意的是,在不同的模式下,自适应动态IPV解决方案可以不同方式实现。对于模式“D”,不应用自适应动态IPV。
图13示出了根据本发明实施例的方法1300。在特定实施例中,方法1300由图4或图6所示的控制器400执行。具体是,方法1300包括获取网络节点410的多个队列中每个队列的状态401的步骤1301。网络节点410可能是图4或图6所示的网络节点410。具体是,队列的状态401指示队列的利用率,其中每个队列与优先级条目相关联。所述方法还包括步骤1302:基于队列的状态401,确定一个或多个队列的利用率是否超过一个或多个阈值,其中一个阈值与多个队列中的每个队列相关联。此外,方法1300包括步骤1303:如果超过一个或多个阈值,则为多个队列中的一个或多个队列生成一个或多个新的优先级条目402。然后,方法1300还包括步骤1304:将一个或多个新的优先级条目402提供给网络节点410的一个或多个队列。
图14示出了根据本发明实施例的方法1400。在一个特定实施例中,方法1400由图4或图6所示的网络设备410执行。具体是,方法1400包括将多个队列中的每个队列的状态401提供给控制器400的步骤1401。控制器400可能是图4或图6所示的控制器400。多个队列形成在网络节点410的出端口处,其中每个队列与优先级条目相关联。方法1402还包括步骤1402:从控制器400获取多个队列中的一个或多个队列的一个或多个新的优先级条目402。
总之,本发明提出基于网络队列状态实现自适应动态IPV(每帧)。相应地,本发明的实施例提供了一种控制器和网络节点。创新控制器,即控制器400,为队列带来了很大程度的灵活性,使网络节点对流量负载条件的变化更鲁棒。控制器还通过即时修改帧的流量类别(队列)来优化专用于队列的存储器总量的使用。具体是,IPV条目将在运行时间修改,具体取决于流量需求。由于具有过载队列的高优先级的帧将被重新定向到能够接收额外数据包的其它队列,因此本发明能够防止高优先级数据包丢失,从而提高关键网络场景下的QoS。
本发明已结合各种实施例作为示例以及实现方式进行描述。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求书以及说明书中,词语“包括”不排除其它元件或步骤,且不定冠词“一个(a/an)”不排除多个。单个元件或其它单元可以满足权利要求书中描述的若干实体或项目的功能。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能被有效地使用。
此外,本发明的实施例提供的任何方法可以在具有代码模块的计算机程序中实现,该计算机程序由处理模块运行时,使处理模块执行方法步骤。计算机程序包括在计算机程序产品的计算机可读介质中。计算机可读介质基本上可以包括任何存储器,例如只读存储器(read-only memory,ROM)、可编程只读存储器(programmable read-only memory,PROM)、可擦除PROM(erasable PROM,EPROM)、闪存、电可擦除EPROM(electricallyerasable PROM,EEPROM)或硬盘驱动器。
此外,本领域技术人员意识到,控制器400和/或网络设备410的实施例包括用于执行解决方案的例如功能、模块、单元、元件等形式的必要通信能力。其它此类模块、单元、元件和功能的示例为:处理器、存储器、缓冲区、控制逻辑、编码器、解码器、速率匹配器、降速率匹配器、映射单元、乘法器、决策单元、选择单元、交换机、交织器、解交织器、调制器、解调器、输入端、输出端、天线、放大器、接收方单元、发送方单元、DSP、格码调制(trellis-codedmodulation,TCM)编码器、TCM解码器、电源单元、电源馈线、通信接口、通信协议等,它们适当地布置在一起以执行解决方案。
特别是,控制器400和/或网络设备410的处理器可以包括例如CPU、处理单元、处理电路、处理器、专用集成电路(application specific integrated circuit,ASIC)、微处理器,或可以解释和执行指令的其它处理逻辑中的一个或多个实例。因此,词语“处理器”可以表示包括多个处理电路的处理电路,例如,上述处理电路中的任何、一些或全部。处理电路还可以执行用于输入、输出和处理数据的数据处理功能,数据处理功能包括数据缓冲和设备控制功能,例如呼叫处理控制、用户界面控制等。
Claims (19)
1.一种控制器(400),其特征在于,所述控制器用于:
获取网络节点(410)的多个队列中的每个队列的状态(401),其中队列的所述状态(401)指示所述队列的利用率,并且每个队列与优先级条目相关联;
基于所述队列的所述状态(401)确定一个或多个队列的所述利用率是否超过一个或多个阈值,其中一个阈值与所述多个队列中的每个队列相关联;
如果超过一个或多个阈值,则为所述多个队列中的一个或多个队列生成一个或多个新的优先级条目(402);
将所述一个或多个新的优先级条目(402)提供给所述网络节点(410)的所述一个或多个队列。
2.根据权利要求1所述的控制器(400),其特征在于,所述一个或多个阈值包括指示队列的几乎满状态的第一阈值。
3.根据权利要求1或2所述的控制器(400),其特征在于,所述队列的所述状态(401)指示所述队列中的帧数。
4.根据权利要求1至3中任一项所述的控制器(400),其特征在于,所述一个或多个阈值是可配置的。
5.根据权利要求1和2所述的控制器(400),其特征在于,所述控制器用于:
如果所述队列中的帧数超过所述第一阈值,则确定一个或多个队列的所述利用率超过所述一个或多个阈值;
从所述多个队列中确定一个或多个第一队列,其中对于所述一个或多个第一队列中的每一个,所述帧数超过所述第一阈值。
6.根据权利要求5所述的控制器(400),其特征在于,所述控制器用于:
基于一个或多个第二队列的一个或多个默认优先级条目,从所述多个队列中确定所述一个或多个第二队列,其中所述一个或多个第二队列中的每个第二队列的默认优先级条目低于所述一个或多个第一队列中的一个第一队列的相应默认优先级条目。
7.根据权利要求1至6中任一项所述的控制器(400),其特征在于,所述一个或多个阈值包括指示队列的几乎空状态的第二阈值,和/或指示队列的空状态的第三阈值。
8.根据权利要求6和7所述的控制器(400),其特征在于,所述控制器用于:
基于所述一个或多个第二队列的所述一个或多个默认优先级条目、所述一个或多个第二队列中的每个第二队列的状态和所述第二阈值或所述第三阈值,从所述多个队列中确定所述一个或多个第二队列,其中每个第二队列中的帧数不超过所述第二阈值或所述第三阈值。
9.根据权利要求6或8所述的控制器(400),其特征在于,所述控制器用于:
为所述一个或多个第一队列生成一个或多个新的优先级条目(402),其中所述一个或多个第一队列的生成的一个或多个优先级条目中的每一个等于所述一个或多个第二队列中的一个的相应默认优先级条目。
10.根据权利要求9所述的控制器(400),其特征在于,所述生成的一个或多个新的优先级条目(402)指示所述网络节点(410)将一个或多个到达帧从所述一个或多个第一队列重新定向到所述一个或多个第二队列。
11.根据权利要求1至10中任一项所述的控制器(400),其特征在于,生成的一个或多个新的优先级条目(402)中的每一个指示优先级级别,其中所述优先级级别是可配置的。
12.根据权利要求1至11中任一项所述的控制器(400),其特征在于,所述控制器用于:
从所述网络节点(410)获取所述多个队列中的每个队列的更新状态。
13.根据权利要求12所述的控制器(400),其特征在于,所述控制器用于:
如果确定队列的所述利用率不超过所述一个或多个阈值,则将所述一个或多个生成的优先级条目(402)中的每一个设置回所述默认优先级条目。
14.一种网络节点(410),其特征在于,所述网络节点用于:
将多个队列中的每个队列的状态(401)提供给控制器(400),其中所述多个队列形成在所述网络节点(410)的出端口处,其中每个队列与优先级条目相关联;
从所述控制器(400)获取所述多个队列中的一个或多个队列的一个或多个新的优先级条目(402)。
15.根据权利要求14所述的网络节点(410),其特征在于,所述网络节点用于:
基于获取的一个或多个新的优先级条目,重新定向所述多个队列内的一个或多个到达帧。
16.根据权利要求14或15所述的网络节点(410),其特征在于,所述网络节点用于:
将所述多个队列中的每个队列的更新状态提供给所述控制器(400)。
17.一种由控制器(400)执行的方法(1300),其特征在于,所述方法包括:
获取(1301)网络节点(410)的多个队列中的每个队列的状态(401),其中队列的所述状态(401)指示所述队列的利用率,并且每个队列与优先级条目相关联;
基于所述队列的所述状态(401),确定(1302)一个或多个队列的所述利用率是否超过一个或多个阈值,其中一个阈值与所述多个队列中的每个队列相关联;
如果超过一个或多个阈值,则为所述多个队列中的一个或多个队列生成(1303)一个或多个新的优先级条目(402);
将所述一个或多个新的优先级条目(402)提供(1304)给所述网络节点(410)的所述一个或多个队列。
18.一种由网络节点(410)执行的方法(1400),其特征在于,所述方法包括:
将多个队列中的每个队列的状态(401)提供(1401)给控制器(400),其中所述多个队列形成在所述网络节点(410)的出端口处,其中每个队列与优先级条目相关联;
从所述控制器(400)获取(1402)所述多个队列中的一个或多个队列的一个或多个新的优先级条目(402)。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括程序代码,所述程序代码当在处理器上实现时用于执行根据权利要求17或18所述的方法(1300、1400)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2020/084584 WO2022117202A1 (en) | 2020-12-04 | 2020-12-04 | Device and method for queues release and optimization based on run-time adaptive and dynamic internal priority value strategy |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116584082A true CN116584082A (zh) | 2023-08-11 |
Family
ID=73748052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080107546.0A Pending CN116584082A (zh) | 2020-12-04 | 2020-12-04 | 基于运行时间自适应动态内部优先级值策略的队列释放和优化的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230134758A1 (zh) |
EP (1) | EP4144074A1 (zh) |
CN (1) | CN116584082A (zh) |
WO (1) | WO2022117202A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7110359B1 (en) * | 2001-03-05 | 2006-09-19 | Advanced Micro Devices, Inc. | System and method for dynamically updating weights of weighted round robin in output queues |
US7647444B2 (en) * | 2007-03-13 | 2010-01-12 | Sun Microsystems, Inc. | Method and apparatus for dynamic hardware arbitration |
-
2020
- 2020-12-04 EP EP20820822.3A patent/EP4144074A1/en active Pending
- 2020-12-04 CN CN202080107546.0A patent/CN116584082A/zh active Pending
- 2020-12-04 WO PCT/EP2020/084584 patent/WO2022117202A1/en active Application Filing
-
2022
- 2022-12-30 US US18/148,967 patent/US20230134758A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230134758A1 (en) | 2023-05-04 |
EP4144074A1 (en) | 2023-03-08 |
WO2022117202A1 (en) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7733770B2 (en) | Congestion control in a network | |
US7668104B1 (en) | Inter-device flow control | |
US10447583B2 (en) | Packet processing technique for a communication network | |
US7602720B2 (en) | Active queue management methods and devices | |
US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
US9444741B2 (en) | Facilitating network flows | |
US10361962B2 (en) | Packet processing technique for a communication network | |
EP3588880B1 (en) | Method, device, and computer program for predicting packet lifetime in a computing device | |
CN113162790A (zh) | 调整服务等级的方法、装置、设备及存储介质 | |
US20230134830A1 (en) | Device and method for queues release and optimization based on run-time adaptive and dynamic gate control list strategy | |
Wang et al. | Poseidon: Efficient, Robust, and Practical Datacenter {CC} via Deployable {INT} | |
EP1730903A2 (en) | Expedited data transmission in packet based network | |
CN116584082A (zh) | 基于运行时间自适应动态内部优先级值策略的队列释放和优化的设备和方法 | |
CN114095431A (zh) | 队列管理的方法和网络设备 | |
US11729099B2 (en) | Scalable E2E network architecture and components to support low latency and high throughput | |
CN107078999A (zh) | 传输数据的方法和装置 | |
WO2024022572A1 (en) | A hardware device for automatic detection and deployment of qos policies | |
CN113746746A (zh) | 数据处理方法及设备 | |
CN117897936A (zh) | 一种报文转发方法及装置 | |
CN116545947A (zh) | 多链路速率组网下的数据流传输方法及其相关设备 | |
KR100847727B1 (ko) | 실시간 패킷 수신을 위한 장치 및 방법 | |
CN117014376A (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 |