CN101741729A - 用于调度多个流的分组的方法和用于执行该方法的系统 - Google Patents

用于调度多个流的分组的方法和用于执行该方法的系统 Download PDF

Info

Publication number
CN101741729A
CN101741729A CN200910221856A CN200910221856A CN101741729A CN 101741729 A CN101741729 A CN 101741729A CN 200910221856 A CN200910221856 A CN 200910221856A CN 200910221856 A CN200910221856 A CN 200910221856A CN 101741729 A CN101741729 A CN 101741729A
Authority
CN
China
Prior art keywords
grouping
section
packet queue
stream
pointer
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
Application number
CN200910221856A
Other languages
English (en)
Other versions
CN101741729B (zh
Inventor
G·波斯特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of CN101741729A publication Critical patent/CN101741729A/zh
Application granted granted Critical
Publication of CN101741729B publication Critical patent/CN101741729B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9026Single buffer per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及用于调度多个流的分组的方法和用于执行该方法的系统。根据本发明,单个分组队列被用于存储所述分组,所述单个分组队列适于被划分成数量可变的连续段,所述连续段根据每一个接收分组被动态创建和更新,每一个段的尺寸可变,并且所述多个流的每一个流的段负载阈值被分配给每一个段。所述方法特征在于包括根据所述给定流和所述对应的段负载阈值在所述连续段的一个中插入(S11;S22;S210;S222;S230)给定流的每一个接收分组。

Description

用于调度多个流的分组的方法和用于执行该方法的系统
技术领域
本发明一般涉及面向分组网络的路由器中的流处理,特别地,涉及用于调度属于在路由器接收的多个流的分组的方法,以及用于执行所述方法的调度系统。
背景技术
通过诸如公共互联网或专有以太网的面向分组网络传输的复用分组流,当前由属于多个不同流的多个分组构成。信息,诸如在每一个分组中包括的源和目的地址,使得面向分组网络中存在的处理节点和路由器能够确定分组所属的流。因而,给定流中的所有分组以相同的方式被处理节点和路由器处理。
根据它们涉及的应用,流被分类成不同的QoS(服务质量)种类。例如,与音频-视频应用相关的流,相较于与典型的数据传送应用相关的流,需要最高级的QoS。
在特定路由器上,出口侧可用的全局带宽可能亚于传输流入路由器的所有不同流的所有分组所必要的带宽。在这样的拥塞情形中,不同流的分组被存储在路由器内的分组队列中,直至可用出口带宽能够转发它们。为了确保在路由器出口侧同等表示相同种类的流(即,从用于相同种类的所有流的不同分组队列中提取大约相同数量的数据,用于传输),并且为了避免给定流的所有分组,一旦被存储,相较相同种类的其它流的分组,被提取的机会更少,使用公平调度方法。
在传统的WFQ(加权公平排队)中,接收分组的调度根据分组在路由器被接收时打上(stamp)的虚拟时间信息来确定。每一个流被关联到公平带宽份额,所述公平带宽份额被用来计算在属于相同流的连续分组上打上的时间信息之间的差。当发送分组时,调度器在所有缓存分组中搜索具有最低时间戳的一个。
公平调度对两个种类的流具有不同的影响。属于具有大于路由器出口侧可用的公平吞吐量的到达吞吐量的流的分组,被缓存在分组队列中,以放慢流的服务到公平吞吐量。具有亚于公平吞吐量的到达吞吐量的流以最小时延通过路由器。
然而,确定在通过路由器的复用分组流中包括的每一个流的每一个分组的虚拟时间需要在路由器中实现复杂的计算电路,所述虚拟时间根据在给定时间通过路由器的入队流(enqueued flows)的数量来计算(例如,如果十个不同流到达路由器,公平吞吐量可以是路由器出口侧可用的以十划分的总带宽)。而且,搜索具有最低虚拟时间的分组的复杂度是log(n)的数量级,其中,n是通过路由器的流的数量。从而,在接收大量流的路由器中难以实现该方法的意义上,这样的复杂度可以表现为一种限制。
当前用来进行公平排队的另一方案根据DRR(差额轮询)算法实施调度。DRR算法根据已知的“轮询”原理以循环方式处理不同流。更精确地,为了实施基于DRR的调度,路由器拥有多个分组队列。所述多个分组队列的每一个队列被指派给给定流,并且当路由器出口侧的可用带宽不足以一旦分组被路由器接收就立即发送它时,可以临时存储所述给定流的分组。
对于分组队列的每一个,提取要由路由器转发的分组被循环实施。每一个队列被授权每一次循环提取直到限额的多个分组,所述限额是预定分组数或者预定字节量。此外,所述限额可以视所述队列的每一个而不同。
本发明的主要优势之一是它的实现的复杂度不取决于跨路由器传输的流的数量。
然而,为了避免摆脱不同分组队列中存储的所有分组所必要的大量循环,限额当前被设置为高值。从而,对于每一个分组队列,在每一次循环,可以提取大量分组,造成由路由器转发的复用分组流中的单个流的分组突发。换言之,在包含属于相同流的从而分组的长序列的意义上,所转发的分组流的分组的分布不再是均匀的。
突发事件,其打破复用分组流的均匀性,在传输期间应当尽可能被避免。实际上,在由于相同流的两个连续分组之间的时间间隔变得太小,复用分组流呈现分组的这种非均匀分布时,当前分组网络中使用的很多分组处理单元,诸如全局交换卡或深度分组检测节点,不能够正常运行。
鉴于上述内容,传统加权公平排队或差额轮询DRR方法中没有一个完全令人满意地用于在路由器中使用,因为前者的复杂度随要处理的流的数量增加,而后者在路由器出口侧产生“突发”事件。
发明内容
本发明的目标是提供一种简单有效的调度器,所述调度器通过以公平方式调度属于不同流的分组,同时保持电路的复杂度独立于要处理的流的数量,并且避免突发的堆积。另一目标是每流存储最小信息量,以便路由器能够在例如成千上万流中轻松共享它的带宽。
为此,本发明的第一个目的是提供一种用于调度属于路由器处接收的多个流的分组的方法,所述方法特征在于单个分组队列被用于存储所述分组,所述单个分组队列适于被划分成数量可变的连续段,所述连续段根据每一个接收分组被动态创建和更新,每一个段的尺寸可变,并且所述多个流的每一个流的段负载阈值被分配给每一个段,以及特征在于给定流的每一个接收分组根据所述给定流和所述给定流的段负载阈值被存储在所述连续段的一个中。
根据一个优选实施例,存储给定流的接收分组包括以下步骤:
a)如果所述单个分组队列是空的,创建第一段并且在所述第一段中存储所述接收分组;
b)如果所述单个分组队列不是空的:
b1)检查所述单个分组队列是否有已经存储了属于所述给定流的最后接收分组的现有段;
b2)如果在步骤b1)没有识别现有段,在所述第一段中存储所述接收分组;
b3)如果在步骤b1)识别了现有段:
b31)在用于所述给定流的所述现有段中当前存储的数据量小于所述给定流的所述段负载阈值时,在所述现有段中存储所述接收分组;或者
b32)如果所述现有段是所述单个分组队列内创建的最后段,则创建紧跟所述现有段的新段,并且在所述新段中存储所述接收分组;
b33)如果所述现有段不是所述单个分组队列内创建的最后段,则在紧跟所述现有段的段中存储所述接收分组。
另外,根据本发明的方法,在所述连续段中识别对应于当前存储至少一个分组的所述单个分组队列内创建的最老段的特定段,并且从所述单个分组队列中顺序提取多个分组是可能的,其中,要提取的第一分组是所述特定段中存储的第一分组。
有利地,通过使用转发指针来识别所述特定段,所述转发指针指向所述特定段的所述第一分组在所述分组队列中的存储地址。
此外,在一个实施例中,根据本发明的所述方法可以包括在所述特定段的所有分组已被提取后删除所述特定段的步骤。
另外,根据优选实施例,识别所述单个分组队列中的最后段,并且从所述最后段丢弃分组以便避免所述队列溢出,是可行的。
本发明的第二个目的是提供一种用于执行在所述第一个目的中公开的所述方法的调度系统。所述系统特征在于包括:
-被定义用于存储所述分组的单个队列,所述分组队列适于被划分成数量可变的连续段,所述连续段适于根据接收分组被动态创建和更新,每一个段的尺寸可变;
-用于向每一个段分配所述多个流的每一个流的段负载阈值的装置。
附图说明
从以下参考附图的详细描述中,本发明的特征和优势将变得更加显而易见,并且在所述附图中:
图1示意性地表示根据本发明方法的不同单元的特定优选架构(被实现为存储器中存储的数据)和它们用于调度路由器处接收的不同流的分组的交互;
图2示出表示根据本发明优选实施例用于在所述单个分组队列中存储给定流的接收分组的方法的不同步骤的示意性图;
图3a和3b示意性地表示当前存储接收分组的分组队列的连续段的例子,所述接收分组根据本发明的方法已被插入到段中;
图4示出表示根据本发明优选实施例用于从所述单个分组队列中提取要转发的下一分组的方法的不同步骤的示意性图;以及
图5示出表示根据本发明优选实施例用于从所述单个分组队列中选择性丢弃具有长的期望延迟的分组的方法的不同步骤的示意性图。
具体实施方式
如图1上所示,复用分组流1在路由器100的入口侧被接收。这样的复用分组流1由属于不同流的分组组成,所述不同流已被复用到一起。尽管一个复用分组流被示出在路由器的入口侧,不同流的分组也可以经由不同接入接口被接收。
如以上已经解释的,路由器100出口侧2处可用的全局带宽可能亚于传输流入路由器100处的所有不同流的所有分组所要求的带宽。在这样的拥塞情形中,不同流的分组必须根据公平调度方法被尽可能(即,足够带宽在出口侧可用时)存储和传输。而且,在严重拥塞中,必须通过丢弃适当分组来预防分组存储缓存的溢出。根据本发明的方法比惯用的弃尾策略(drop-tail)实施得更好,所述弃尾策略丢弃最后到达的包。
如图1上所示,根据本发明的方法与之前描述的当前DRR调度方法的不同之处在于单个分组队列10被用于存储所有不同流的分组。单个分组队列10适于被划分成数量可变的连续段s1、s2、...、sN,所述连续段s1、s2、...、sN根据每一个接收分组被动态创建、更新或删除。另外,每一个段s1、s2、...、sN的尺寸可变,并且流入路由器100入口侧的每一个流的段负载阈值被分配给每一个段s1、s2、...、sN。
当在路由器100接收流的分组时,根据该分组所属的流以及该流所分配的段负载阈值,它被存储在所述连续段s1、s2、...、sN的一个中。
当前存储至少一个分组的连续段si形成全局链表(a global chainedlist)。每一个存储分组是全局链表的链接。新段可以被动态创建并且添加到该链表中。然后,分组将根据它们在该全局链表中的次序被从分组队列10中顺序地提取。当段的所有分组已被提取时,该段被从该链表中删除。
如图2上所示,当在路由器100接收给定流FX的新分组时(图2上的步骤S0),根据本发明的方法,检查单个分组队列10是否是空的(图2上的步骤S1)。如果例如在接收当前分组接收前,分组队列10中之前存储的所有分组已被提取用于传输,分组队列10可以是空的。如果分组队列10是空的,在所述分组队列10内创建第一段(图2上的步骤S10),并且在该第一段中存储所接收分组(图2上的步骤S11)。
反过来,如果单个分组队列10不是空的(即,当新分组被接收时,分组队列10中当前至少存储了一个分组),则根据本发明的方法,检查单个分组队列10是否包括现有段,所述现有段已存储属于相同给定流FX的最后接收分组(图2上的步骤S20)。
当没有现有段被识别时,所述新接收分组被存储在第一段中(图2上的步骤S22)。
替代地,当这样的现有段已被识别时,在所识别的用于给定流FX的现有段中当前存储的数据量和分配给该流的段负载阈值之间实施比较(图2上的步骤S21)。
然后,如果当前存储的数据量小于段负载阈值,所接收分组被存储在所识别的现有段中(图2上的步骤S210)。如果不是,检查所识别的现有段是否是分组队列10内创建的最后段(图2上的步骤S220)。
如果现有段是分组队列10内创建的最后段,则创建紧跟现有段的新段(图2上的步骤S221),并且在该新创建的段中存储所接收分组(图2上的步骤S222)。
另一方面,如果现有段不是分组队列10内创建的最后段,在紧跟现有段的段中存储所接收分组(图2上的步骤S230)。
参考图1、2、3a和3b,将详述在调度所接收分组中涉及的各种特征,以及被实现用于在分组队列中创建和更新段并且在分组队列10中插入所接收分组的各种步骤。
图3a表示分组队列10在连续段s23、s24、s25、s26和s27当前存储分组的给定时刻的状态。假定段s1至s22之前已填充有所接收分组。另外,段s1至s22中之前存储的所有分组已被提取,并且因此,如以上已经引述的,这些段已被删除。(根据本发明的方法提取分组和删除段将在第二步详细描述)。从而,在该例子中,分组队列10的段s23是队列中当前现有的第一段。
如图3a上所示,各流FA、FB、FC和FD的分组当前被存储在分组队列10中。出于清楚示出根据本发明方法的目的,图3a上示出的每一个分组被给定分组号。这些分组号允许知道给定流FX的不同分组在路由器100被接收的次序。例如,流FA的编号为Pkt1的分组在流FA的编号为Pkt2的分组前被接收。
然而,如稍后继续示出的,即使流FA的编号为Pkt2的分组当前被存储在段s23中而流FB的编号为Pkt2的分组当前被存储在段s24中,流FA的编号为Pkt2的分组可能在流FB的编号为Pkt2的分组后被接收。
另外,根据本发明,所有缓存分组形成单个链接表。给定段中存储的每一个分组与指针pi相关联,所述指针pi指示给定段的下一分组被存储在分组队列10中的地址。如果该分组是给定段的最后分组,并且如果给定段是分组队列10内最后创建的段,相关联的指针等于NULL指针。因而,与段s27中存储的流FA的编号为Pkt9的分组相关联的指针p19等于NULL指针。
替代地,如果该分组是给定段的最后分组,并且如果所述给定段不是分组队列10内最后创建的段,相关联指针指示紧跟所述给定段的段内存储的第一分组的地址。相应地,举例来说,与段s23的最后分组相关联的指针p5指示流FB的编号为Pkt2的分组的存储地址,所述流FB的编号为Pkt2的分组是段s24的第一分组。
根据本发明的方法,并且如图2a上所示,连续段根据段标识符被排序。此外,每一个段si优选地通过头指针hpi识别。这些头指针hpi分别指示段si中分别存储的第一分组在分组队列10中的存储地址。例如,头指针hp23指向流FA的编号为Pkt1的分组在分组队列10中的存储地址。头指针hp27指向流FC的编号为Pkt5的分组的存储地址,所述流FC的编号为Pkt5的分组是段s27中存储的第一分组。
每一个段si也通过尾指针tpi来识别,所述尾指针tpi分别指示段si中分别存储的最后分组在分组队列10中的存储地址。例如,尾指针tp24指向流FA的编号为Pkt4的分组的存储地址,指针tp25指向流FD的编号为Pkt3的分组的存储地址。
在段si仅包括一个分组的情况中,头指针hpi和尾指针tpi在它们指向相同地址的意义上具有相同值,所述相同地址对应段si的唯一分组的存储地址。
有利地,每一个段si的段标识符,头指针hpi和尾指针tpi,被存储在循环存储器11(图1上所示出的)中。例如,现实的缓存系统可以限制最大排队分组数为每流512个最大尺寸分组。然后,假定段负载阈值等于最大分组尺寸,足够的段存储器具有地址1至512。在图1和2上所示的给定时刻,活动段占用地址间隔23、24、...、27。所有其它段在头和尾指针栏具有NULL条目。稍后,活动段,即,具有non-null(非-null)头和尾指针的那些,可以占用地址间隔510、511、512、1、2和3,意味着在循环存储器中可能发生回绕(wrap-around)。另外,每次所接收分组被存储或分别从给定段si中提取时,给定段si的头指针hpi和尾指针tpi可以被动态更新。
此外,两个特定指针与分组队列10相关联。这些指针的一个被称为转发指针fp并且指向当前存储至少一个分组的第一--现存最老的--段的第一分组的存储地址(即,转发指针等于当前存储至少一个分组的第一段的头指针)。
第二特定指针,被称为丢弃指针dp,指向分组队列10内最后创建的段的第一分组的存储地址(即,转发指针等于当前存储至少一个分组的最后创建的段的头指针)。
如稍后将详细解释的,转发指针fp指定分组队列10中存储的分组,所述分组当出口可用带宽足够时,将首先被路由器100转发,丢弃指针dp指定段的头,当分组队列10过载时,分组可以从所述头起被丢弃。
如图3a上所示,转发指针fp指向段s23的第一分组的存储地址,丢弃指针dp指向段s27的第一分组的存储地址。有利地,这两个特定指针可以被存储在路由器100的特定存储器14中,并且每次所接收分组被存储或者分别从分组队列10中提取时被更新。
以下例子旨在示出根据给定流和分配给该流的段负载阈值在分组队列中插入给定流的分组的各种情况。出于示出创建、更新或删除段si以及在分组队列10中插入所接收分组的动态方面,在图3a和3b上示出分组队列10的两个表示。这两个图表示分组队列10在两个不同时间的状态。假定分组队列10的初始情形如图3a上所表示的情形。
将描述以下在连续接收不同给定流的分组后,分组队列10的状态将如何从图3a上表示的状态变为图3b表示的状态的例子。
如图3a上表示的,分组队列10被划分成5个段,分别被编号为段s23、s24、s25、s26和s27。当前存储分组的第一段和最后段分别是段s23和s27。要提取的第一分组(全局链表的第一分组)是流FA的编号为Pkt1的分组。在溢出的情况中,要丢弃的第一分组是流FC的编号为pkt5的分组。
首先,假定在路由器100接收流FC的分组(图3上的步骤S0)。根据本方法,检查分组队列是否是空的(图3上的步骤S1)。如图3a上所示,由于分组队列10当前存储分组,所述方法检查现有段是否已经存储流FC的最后接收分组(图3上的步骤S2)。这样的验证可以通过使用存储器12(图1上示出的)来实施,存储器12存储段si的段标识符,段si存储给定流的最后分组。如图1上所示,决策方法的便利实现使用表12,表12根据流FX在栏2存储最后使用的段,并且如果这样的段不持有所述流的分组,存储特定值-1。
在当前情形中,表12指示段s27当前存储流FC的编号为Pkt5的分组。该分组对应分组队列10中存储的流FC的最后接收分组。
然后,检查用于流FC的段s27中存储的数据量是否小于分配给流FC的段负载阈值。分配给每一个流的不同段负载阈值优选地被存储在路由器中当前使用的路由表13(图1上所示)中。要注意,使用“段负载阈值”这一措辞用于更好地示出本发明,并且等同于当描述公平调度方法中当前使用的权值时普遍使用的词语“权值”,公平调度算法之前已讨论过。
因而,当实现正确实施给定流的路由所必要的通信时,涉及授权每段存储的数据量的信息也可以在用于该流的路由表13中被指示。
有利地,段负载阈值可以对应授权在段中存储的最大字节量。在该情况中,根据本发明的方法,确定属于相同流的所有分组的尺寸为所接收分组所接收分组,并且对所有确定的尺寸和所接收分组的尺寸求和。如果所计算的尺寸小于段负载阈值,在现有段中存储所接收分组(图3上的步骤S210)。
在表13以字节包含负载阈值的情况中,表12的栏3也计数最后段中已经使用的流FX的数据的字节。当该字节计数,加上流FX的所接收分组的尺寸,超过表13的负载阈值时,分组被存储在紧跟的段中(其已经存在或者被创建,如稍后将示出的),对应于该新段--表12的栏3--的字节计数用超过量被初始化(“带出(carryover)”)。该计数方法实现公平带宽共享,以便流之间的吞吐率正好等于它们的段负载阈值率。
替代地,段负载阈值可以对应每段可以存储的最大分组数。在该情况中,所述方法确定现有段中已经存储的分组数是否严格劣于段负载阈值。
另外,段负载阈值可以根据全局负载阈值被动态更新,其中所述全局负载阈值随着用于给定流的所述分组队列中当前存储的数据量而变化。全局负载阈值对应于可以基于缓慢流量观测算法设置或确定的流的策略目标权值或总计(aggregates)。例如,有用的公平策略可能想要支持突发最少并且具有适度速率的流,诸如流视频。则,段负载阈值可以设置得高(例如,五个最大分组尺寸),当给定流仅在所述分组队列10中的一个或两个段中已经存在时,并且当该流在多于五个段中存在时可以被逐步减小,降至一个最大分组尺寸,因为突发或者它的到达速率的侵入性增加。为了限制不稳定的路由器行为,这样的“惩罚”流仅在它已被从分组队列中完全清空后恢复较高的负载阈值。
在该例子中,进一步假定,路由表13指示被授权为流FC每段存储的最大分组数是一。从而,由于段S27已经存储了流FC的一个分组,不可能在段s27中存储当前接收分组。
在这种情况下,则检查段S27是否是分组队列10内最后创建的段(图3上的步骤S220)。
如图23a上所示,段s27是最后创建的段。因此,新的段s28(图3b上所示)被创建。新创建的段s28紧跟段s27。更精确地,在具有段标识符28的循环存储器11中创建新条目。
另外,被关联到段s27中存储的最后分组的指针p19的值被更新来指示新接收分组被存储在分组队列10中的地址。指针p19的新值然后被指派给新创建的段s28的头指针hp28。
由于段s28仅存储一个分组,尾指针tp28也指向流FC的新接收分组被存储的地址(编号为Pkt6)。此外,由于以上已经解释的原因,被关联到新接收分组的指针p20等于NULL指针。
另外,由于新段已被创建,丢弃指针dp被更新。丢弃指针的新值是新创建的段s28的头指针hp28的值。
第二次,假定在路由器100接收流FD的分组。进一步假定可以为流FD每段可存储的最大分组数是一。根据图3上示出的状态图,步骤S1、S2、S21和S20被连续实施并且返回以下结果:
-步骤S1确定分组队列不是空的;
-步骤S2确定现有段s25当前存储流FD的最后接收分组;
-步骤S21确定流D的新接收分组不能被存储在现有段S25中,因为已经达到流FD的段负载阈值;
-步骤S220确定段s25不是分组队列10内的最后创建的段。
从而,流FD的新接收分组(编号为Pkt4)被存储在紧跟段s25的段s26中(图3上的步骤240)。更精确地,插入该新接收分组引入以下动作:
-新接收分组被存储在分组队列10中的存储地址处;
-从循环存储器11中检索段s26的尾指针tp26。通过尾指针tp26,段s26的最后分组(流FA的编号为Pkt8的分组)被寻址并且与该分组相关联的指针p17的值被更新。之前指向段s27的第一分组的存储地址的指针p17(即,在流FD的新接收分组已被存储前)被更新,并且现在指向流FD的新接收分组的存储地址;
-由于新接收分组已被添加到段s26,之前指向流FA的编号为Pkt8的分组的存储地址的尾指针tp26被更新。在插入新接收分组后,尾指针tp26指向流FD的新接收分组的存储地址;
-由于段s26不是分组队列10内的最后创建的段,并且由于流FD的新接收分组目前是段s26的最后分组,被关联到新接收分组的指针p21等于分组队列10内的紧跟连续段s27的头指针hp27。从而,指针p21指示流FC的编号为Pkt5的分组的存储地址,所述流FC的编号为Pkt5的分组是段s27的第一分组。
在接收流FD的编号为Pkt4的分组后,假定在路由器100接收流FA的分组(编号为Pkt10)。进一步假定授权用于流FA的每段存储的最大分组数,即,段负载阈值,是二。根据图3上示出的状态图,步骤S1、S2和S21被连续实施并且返回以下结果:
-步骤S1确定分组队列10不是空的;
-步骤S2确定现有段s27当前存储流FA的最后接收分组;
-步骤S21确定还未达到流FA的段负载阈值。
从而,在现有段s27中存储流FA的新接收分组(图3上的步骤S210)。更精确地,插入该新接收分组引入以下动作:
-新接收分组被存储在分组队列10中的存储地址处;
-从循环存储器11中检索尾指针tp27。通过尾指针tp27,流FA的编号为Pkt9的分组被寻址,并且与该分组相关联的指针p19的值被更新。之前(即,在流FA的新接收分组已被存储前)指向段s28的第一分组的存储地址的指针p19现在指向流FA的新接收分组的存储地址;
-由于新接收分组已被添加到段s27,之前指向流FA的编号为Pkt9的分组的存储地址的尾指针tp27被更新。在插入新接收分组后,尾指针tp27指向流FA的新接收分组的存储地址;
-由于段s27不是分组队列10内最后创建的段,并且由于新接收分组现在是段s27的最后分组,被关联到新接收分组的指针p22等于头指针hp28。从而,指针p22指示流FD的分组的存储地址(其接收在第一例子中已被公开),所述流FD的分组是段s28的第一分组。
最后,假定在路由器100接收流FE的分组(编号为Pkt1)。进一步假定对于流FE授权每段存储的最大分组数是三。根据图3上示出的状态图,步骤S1、S2被连续实施,并返回以下结果:
-步骤S1确定分组队列10不是空的;
-步骤S2确定没有现有段当前存储属于流FE的分组。要注意,分组队列10中当前没有存储流E的分组的事实不一定意味着新接收分组是路由器100处已接收的流FE的第一分组。实际上,有可能之前接收的流FE的分组已被从分组队列10中提取。
从而,流FE的新接收分组被存储在段s23中,段s23是当前存储至少一个分组的第一段(图3上的步骤S22)。
出于以上已经解释的原因:
-段s23的尾指针tp23和指针p5被更新;以及
-与新接收分组相关联的指针p24用段s24的头指针的当前值被初始化。
图3a上表示插入在以上描述的四个例子中连续接收的分组的结果。
如图3b上所示,分组队列10现在被划分成6个段,分别编号为段s23、s24、s25、s26、s27和s28。当前存储分组的第一段和最后段分别是段s23和段s28。所接收的四个分组已被插入分组队列10中,并且现在是全局链表的链接。要提取的第一分组(全局链表的第一分组)仍旧是流FA的编号为Pkt1的分组。在溢出情况下要丢弃的第一分组现在是流FC的编号为pkt6的分组。
在以下例子中,假定当分组到达路由器100时分组队列是空的。尽管没有用图明确示出这种情况,第一段的创建(图2上的步骤S10)和所接收分组在第一段中的存储(图2上的步骤S11)引入:
-新接收分组被存储在分组队列10中的存储地址处;
-在具有段标识符1的循环存储器11中创建新条目;
-段s1的尾指针tp1和头指针hp1被创建,并且均指向新接收分组的存储地址;
-转发指针fp和丢弃指针dp被创建并且均指向单个新接收分组的存储地址;
-被关联到所接收分组的链指针等于NULL指针。
根据之前引述的例子,词语“紧跟连续段”和“被排序的段”在分组队列10内的所有被创建的段定义全局链表的意义上被使用。更精确地,每一个给定段si由具有头指针hpi和尾指针tpi的链表组成。如果存在的话,通过使用它的头或尾指针,每一个段si间接链接到分组队列10内的紧跟连续段。当连续段si当前存储至少一个分组时,全局链表通过这些段si和它们之间存在的关系来定义。每一个存储的分组是全局链表的链接。
从而,从当前由转发指针fp指示的存储地址开始,有可能以顺序方式找到分组队列10中当前存储的所有分组的存储地址。
如图3b上所示,转发指针fp指示段s23的第一分组(流A的编号为Pkt1的分组)的存储地址,所述段s23是分组队列10内当前包括至少一个分组的第一段。通过转发指针fp,其等于hp23,一旦路由器输出端口可用,就检索流A的编号为Pkt1的分组。然后通过被关联到该分组的指针p1,其被复制到转发指针fp,检索流B的编号为Pkt1的分组。所检索的最后分组对应流C的编号为Pkt6的分组,所述流C的编号为Pkt6的分组的相关联指针p10等于NULL指针。该分组是段28的最后分组,段28是分组队列10内最后创建的段。
类似地,从由段si的尾指针tpi指示的存储地址开始,可以检索段si的最后分组以及所有连续段si+1、si+2、...、si+n的所有分组,如果存在的话。可以从由段si的头指针hpi指示的存储地址开始,实施相同种类的顺序检索。
在给定时间,从当前转发指针开始,顺序实施分组队列10中存储的分组的提取。
参考图1、3b和4,现在将详述所实现的用于提取存储的分组和删除段的各种步骤。
如图4中所示,首先根据本发明的方法检查是否有可能从路由器100转发分组(图4上的步骤SE1)。有利地,估计路由器100出口侧的传输带宽。
当足够带宽可用于传输分组时,具有最小标识符的段被识别(图4上的步骤SE2)。更精确地,通过使用存储器14中当前存储的转发指针fp,可以实施这样的识别。实际上,如以上已经提到的,转发指针fp等于当前存储至少一个分组的分组队列10内的第一段的头指针。
一旦具有最小标识符的段已被识别,该段的第一分组被提取并且转发(图4上的步骤SE3)。更精确地,通过使用由转发指针fp指示的存储地址检索要提取的分组。
如图3b上所示,转发指针fp指定段s23的第一分组的存储地址。所检索的流A的编号为Pkt1的分组然后被提取并且在路由器100出口侧被转发。另外,转发指针fp和指针hp23的头被更新,以便指向之前由指针p1指示的存储地址。通过该更新,要提取的下一分组被清楚识别。
在已提取分组后,检查所提取的分组是否是段的最后分组(图4上的步骤SE4)。检查段si的所有分组是否已被提取的方案之一是比较就在实施提取前转发指针fp的值和段si的尾指针tpi的值。
例如,根据图3b,当转发指针fp的值不同于段23的尾指针tp23时,至少一个剩余分组被存储在段s23中。
反过来,转发指针fp等于尾指针tp23的事实引入所提取的分组是流FE的编号为Pkt1的分组,所述流FE的编号为Pkt1的分组是段s23的最后分组。
当段s23的所有分组已被提取时,段s23被删除(图4上的步骤SE5)。从而,尾指针tp23和头指针hp23通常通过将它们的值设为NULL,被从循环存储器11中删去。段s24然后变成具有最小标识符的段,并且要提取的下一分组将是该段中存储的第一分组。
应当注意,直至段s23的所有分组未被提取为止,有可能将新接收分组插入段s23中。例如,假定流FA的编号为Pkt1的分组已被提取,并且流FF的新分组在路由器处被接收。该流FF在队列10中没有存储的分组,如可以从图1表12栏2中所读取的,包含值-1。根据以上引述的解释,新接收分组被插入流FE的编号为Pkt1的分组的下一个。
相反,如果流FA的新分组(编号为Pkt11的分组)被接收,根据本发明,该新接收分组不允许被存储在段s23中。实际上,该新分组被存储在流FA最后接收的分组当前被存储的现有段中,或者在紧跟现有段的新创建的段中。从而,特定流的不同分组的到达次序在全局链表中被维护。此外,由于分组被顺序提取,并且到达次序在全局链表中被维护,当分组被转发时,相同的次序(对于特定流)在路由器100出口侧仍旧存在。
另外,如之前描述的,根据本发明的方法,属于分组队列10中已经存在的流的新接收分组可以作为链表的最后链接被存储(流FC的编号为Pkt6的分组)。
相反,如之前所公开的,根据本发明的方法,属于分组队列中不存在的流的新接收分组(流FE的编号为Pkt1的分组)被存储在第一段中(即,在链表的第一链接中)。然后,该分组在连续段中存储的其它流FA、FB、FC和FD的分组前被转发,尽管后者之前已在路由器100处被接收。
从而,流FE的接收分组将不在路由器100内缓存,直至其它更多表示的流FA、FB、FC和FD的分组被转发为止。给定流FE的分组一旦被存储比其它流FA、FB、FC和FD的分组被提取的机会多的事实,显示根据本发明的方法确保公平调度。特别地,不同的入队流的服务速率和那些流的段负载阈值成正比,使得路由器能够实现任何策略的加权公平。
此外,和DRR方法相反,通过使用用于存储所有不同流的所有分组的单个分组队列,并且结合使用尺寸可变的段和每一个流的段负载阈值,避免路由器100出口侧的“突发(burstification)”。
另外,它可以在流入路由器100的复用分组流出现“突发”事件的情况下有用,所述“突发”事件运行属于相同流的连续分组,以避免这些干扰事件在路由器100出口侧被转发。
出于以下的组合,能够进行突发删除:
-定义小的段负载阈值的可能性,通常是任何给定流的平均分组尺寸;
-当现有段已经达到段负载阈值时,创建新段的可能性(图3上的步骤S221),如在以上提到的例子1中所公开的;以及
-在分组队列10内最后创建段的段中存储所接收分组的可能性,如在以上提到的例子2和4中所公开的。
实际上,假定复用分组流1包括流FA的300个分组的序列,并且流FA的段负载阈值是每段两个分组。则,当在路由器100接收该序列时,创建150个连续段。每一个段存储该序列的两个连续分组。
然而,根据本发明,这150个连续段将适于存储属于在流FA的分组的序列之后接收的其它流的分组。更精确地,不同流的分组将被插入到全局链表中流A的分组之间。特别地,第一段将包括被其它流的多个分组跟随的流FA的两个分组。
从而,由顺序提取的分组形成的转发复用分组流将不具有流FA的分组的长序列,相反,将呈现不同流的分组的均匀分布。
另外,如果循环存储器11适于存储至少许多N条目,分组队列10仅适于被划分成最大N段。在该情况中,如果当前存储至少一个分组的段的数量等于N,并且如果所述分组队列10内创建的最后段存储大于或等于该流的段负载阈值的量的所述给定流的数据,给定流的接收分组优选地被丢弃,而不会被插入到单个分组队列10中。
有利地,为了避免分组队列10过载有超量存在的流的分组(即,其流入吞吐量远大于其它流的流入吞吐量),根据本发明的方法适于丢弃分组队列10内创建的最后段中存储的多个分组。与传统路由器的非选择性弃尾策略相比,该策略不公平地丢弃属于低速流的分组,根据本发明的选择性丢弃方法预留低于公平到达速率的流。所述方法仅针对属于具有过高或者大量突发到达的流的分组。
参考图1、3b和5,将详述所实现的用于丢弃所存储分组的各种步骤。
如图5中所示,首先根据本发明的方法,检查分组队列10中存储的数据量是否大于分组队列负载阈值(图5上的步骤SD1)。
当所存储的数据量大于分组队列负载阈值时,分组队列10内创建的最后段被识别(图5上的步骤SD2)。更精确地,通过使用存储器14中当前存储的丢弃指针dp,可以实施这样的识别。实际上,如以上已经提到的,丢弃指针dp等于分组队列10内最后创建的段的头指针。
一旦分组队列内创建的最后分组已被识别,该段的第一分组被丢弃(图5上的步骤SD3)。更精确地,通过使用由丢弃指针dp指示的存储地址,检索要丢弃的分组。
如图3b上所示,丢弃指针dp指定段s28的第一分组的存储地址。流C的编号为Pkt6的所检索分组然后被丢弃。另外,丢弃指针dp和指针hp28的头,以及从通过尾指针tp27编址的在前分组起的链指针p22,被更新来指向之前由指针p20指示的存储地址。通过该更新,要丢弃的下一分组被清楚识别。
在丢弃分组后,检查所丢弃分组是否是段的最后分组(图5上的步骤SD4)。检查段si的所有分组是否已被丢弃的方案之一是比较就在实施丢弃前的丢弃指针dp的值和段si的尾指针tpi的值。
例如,根据图3b,当丢弃指针dp的值不同于段28的尾指针tp28时,至少一个剩余分组被存储在段s28中。
相反,丢弃指针dp等于尾指针tp28的事实引入所丢弃分组是流FC的编号为Pkt6的分组,所述流FC的编号为Pkt6的分组是段s28的最后分组。
当段s28的所有分组已被丢弃时,段s28被删除(图5上的步骤SD5)。从而,尾指针tp28和头指针hp28被从循环存储器11删去。段s27然后变成分组队列10内创建的最后分组,并且要丢弃的下一分组将是该段中存储的第一分组。
应当注意直至段s28的所有分组未被丢弃为止,有可能在段s28中插入新的分组。

Claims (19)

1.一种用于调度属于路由器(100)处接收的多个分组流(FA、FB、FC、FD、FE)的分组的方法,所述方法特征在于单个分组队列(10)被用于存储所述分组,所述单个分组队列(10)适于被划分成数量可变的连续段(s1、s2、...、sN),所述连续段(s1、s2、...、sN)根据每一个接收分组被动态创建和更新,每一个段的尺寸可变,并且所述多个流(FA、FB、FC、FD、FE)的每一个流的段负载阈值被分配给每一个段(s1、s2、...、sN),其特征还在于,给定流的每一个接收分组根据所述给定流和所述给定流的所述段负载阈值被存储在所述连续段的一个中。
2.如权利要求1所述的方法,其特征在于,存储给定流的每一个接收分组包括包括以下步骤:
a)如果所述单个分组队列(10)是空的,创建(S10)第一段并且在所述第一段中存储(S11)所述接收分组;
b)如果所述单个分组队列(10)不是空的:
b1)检查(S20)所述单个分组队列(10)是否有已经存储了属于所述给定流的最后接收分组的现有段;
b2)如果在步骤b1)没有识别现有段,在所述第一段中存储(S22)所述接收分组;
b3)如果在步骤b1)识别了现有段:
b31)如果所述给定流的所述现有段中当前存储的数据量小于所述对应段负载阈值时,在所述现有段中存储(S210)所述接收分组;或者
b32)如果所述现有段是所述单个分组队列(10)内创建的最后段,则创建(S221)紧跟所述现有段的新段,并且在所述新段中存储(S222)所述接收分组;
b33)如果所述现有段不是所述单个分组队列(10)内创建的最后段,则在紧跟所述现有段的段中存储(S230)所述接收分组。
3.如权利要求1或2所述的方法,其特征在于进一步包括以下步骤:
-在所述连续段中识别(SE2)对应于当前存储至少一个分组的所述单个分组队列(10)内创建的最老段的特定段;以及
-从所述单个分组队列(10)中顺序提取(SE3)多个分组,其中,要提取的第一分组是所述特定段中存储的第一分组。
4.如在先权利要求的任何一项所述的方法,其特征在于,所述连续段(s1、s2、...、sN)根据段标识符被排序,并且在于,大于所述现有段的所述段标识符的段标识符被附着到所述新段。
5.如权利要求3和4所述的方法,其特征在于,所述识别(SE2)特定段的步骤是在当前存储至少一个分组的所述连续段中识别具有最小标识符的段。
6.如权利要求3或4的任一项所述的方法,其特征在于,所述识别(SE2)特定段的步骤通过使用转发指针(fp)来实施,所述转发指针(fp)指向所述特定段的第一分组在所述分组队列(10)中的存储地址。
7.如权利要求3至6的任一项所述的方法,其特征在于,进一步包括在所述特定段的所有分组已被提取后删除(SE5)所述特定段的步骤。
8.如权利要求3至7的任一项所述的方法,其特征在于,根据所述路由器(100)出口侧可用的传输带宽来设置提取分组的数量。
9.如权利要求3至7的任一项所述的方法,其特征在于,通过使用头指针(hp23、hp24、...、hp28)和尾指针(tp23、tp24、...、tp28)来识别每一个连续段,每次接收分组被存储在所述单个分组队列(10)中或分别从所述单个分组队列(10)中提取时,所述头指针(hp23、hp24、...、hp28)和尾指针(tp23、tp24、...、tp28)可以被动态更新。
10.如权利要求2至9的任一项所述的方法,其特征在于进一步包括以下步骤:
-识别(SD2)所述单个分组队列(10)内创建的最后分组;
-丢弃(SD3)所述单个分组队列(10)内创建的所述最后分组中存储的多个分组;以及
-在所述最后分组的所有分组已被丢弃后删除(SD5)所述最后分组。
11.如权利要求9和10中所述的方法,其特征在于,每次从所述单个分组队列(10)删除接收分组时,所述头指针(hp23、hp24、...、hp28)和尾指针(tp23、tp24、...、tp28)可以被动态更新。
12.如权利要求10或11的任一项所述的方法,其特征在于,当所述单个分组队列(10)中存储的数据量大于溢出阈值时,实施所述丢弃(SD3)步骤。
13.如权利要求10至12的任一项所述的方法,其特征在于,通过使用丢弃指针(dp)实施所述识别(SD2)最后段的步骤,所述丢弃指针(dp)指向所述最后段的第一分组在所述单个分组队列(10)中的存储地址。
14.如在先权利要求的任一项所述的方法,其特征在于,所述单个分组队列(10)适于被划分成最大N个段,如果当前存储至少一个分组的段的数量等于N并且如果所述分组队列(10)内创建的最后段已经存储大于或等于所述流的所述段负载阈值的所述给定流的数据量时,所述接收分组被删除而不必插入到所述单个分组队列(10)中。
15.如在先权利要求的任一项所述的方法,其特征在于,所述给定流的所述段负载阈值可以根据全局负载阈值被动态更新,其中,所述全局负载阈值随着所述数据量和所述给定流的所述分组队列(10)中当前存储的段的数量而变化。
16.一种用于执行根据权利要求1至15的任一项所述的方法的调度系统,其特征在于包括:
-被定义用于存储所述分组的单个队列(10),所述分组队列(10)适于被划分成数量可变的连续段(s1、s2、...、sN),所述连续段(s1、s2、...、sN)适于根据接收分组被动态创建和更新,每一个段的尺寸可变;
-用于向每一个段分配所述多个流(FA、FB、FC、FD、FE)的每一个流的段负载阈值的装置(13)。
17.如权利要求16所述的用于执行根据权利要求2所述的方法的系统,其特征在于进一步包括装置(11;12),所述装置(11;12)适于:
-对于给定流的每一个接收分组,识别已经存储属于所述给定流的最后接收分组的所述现有段;以及
-比较用于所述给定流的所述现有段中当前存储的数据量和所述给定流的所述段负载阈值。
18.如权利要求16或17所述的用于执行根据权利要求6所述的方法的系统,其特征在于进一步包括适于识别当前存储至少一个分组的所述单个分组队列(10)内创建的所述最老段的第一分组的装置(14;fp)。
19.如权利要求16至18所述的用于执行根据权利要求13所述的方法的系统,其特征在于进一步包括适于识别所述单个分组队列(10)内创建的所述最后段的第一分组的装置(14;dp)。
CN2009102218560A 2008-11-18 2009-11-18 用于调度多个流的分组的方法和用于执行该方法的系统 Expired - Fee Related CN101741729B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08305812.3 2008-11-18
EP08305812A EP2187580B1 (en) 2008-11-18 2008-11-18 Method for scheduling packets of a plurality of flows and system for carrying out the method

Publications (2)

Publication Number Publication Date
CN101741729A true CN101741729A (zh) 2010-06-16
CN101741729B CN101741729B (zh) 2012-12-19

Family

ID=40336539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102218560A Expired - Fee Related CN101741729B (zh) 2008-11-18 2009-11-18 用于调度多个流的分组的方法和用于执行该方法的系统

Country Status (3)

Country Link
US (1) US8588070B2 (zh)
EP (1) EP2187580B1 (zh)
CN (1) CN101741729B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546393A (zh) * 2012-07-12 2014-01-29 中兴通讯股份有限公司 一种基于加权公平队列的调度实现方法及装置
CN107231283A (zh) * 2016-03-23 2017-10-03 阿里巴巴集团控股有限公司 消息管理方法及装置、消息预读方法及装置
US10476803B2 (en) * 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3054631B1 (en) * 2013-09-30 2019-02-13 Mitsubishi Electric Corporation Reception apparatus and communication apparatus
US10601713B1 (en) * 2013-10-15 2020-03-24 Marvell Israel (M.I.S.L) Ltd. Methods and network device for performing cut-through
US10482065B1 (en) * 2015-03-31 2019-11-19 EMC IP Holding Company LLC Managing deletion of replicas of files
US10462060B2 (en) 2018-02-14 2019-10-29 Mellanox Technologies, Ltd. Ability to detect unlimited elephant flows
US11368253B2 (en) * 2019-06-21 2022-06-21 Hewlett Packard Enterprise Development Lp System to improve the performance and stability of bonding radios
US11218411B2 (en) * 2019-11-21 2022-01-04 Marvell Israel (M.I.S.L) Ltd. Flow monitoring in network devices
US20230353510A1 (en) * 2020-01-31 2023-11-02 Cyberstorm Pte. Ltd. Method of reducing latency in communication of data packets

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034945A (en) * 1996-05-15 2000-03-07 Cisco Technology, Inc. Method and apparatus for per traffic flow buffer management
EP0977405B1 (en) * 1998-07-31 2005-03-09 Alcatel Method, scheduler, intelligent buffer, processor and telecommunications system for sharing available bandwidth
US6424622B1 (en) * 1999-02-12 2002-07-23 Nec Usa, Inc. Optimal buffer management scheme with dynamic queue length thresholds for ATM switches
GB2350532B (en) * 1999-05-28 2001-08-08 Mitel Corp Method to generate telephone comfort noise during silence in a packetized voice communication system
US6937561B2 (en) * 2000-06-02 2005-08-30 Agere Systems Inc. Method and apparatus for guaranteeing data transfer rates and enforcing conformance with traffic profiles in a packet network
US6515693B1 (en) * 2000-06-29 2003-02-04 Eastman Kodak Company Calibration station for a printhead adapted to compensate for the wavelength sensitivity of an image recording material
US7457313B2 (en) * 2000-09-25 2008-11-25 General Instrument Corporation Hierarchical prioritized round robin (HPRR) scheduling
WO2002084957A2 (en) * 2001-04-13 2002-10-24 Motorola, Inc., A Corporation Of The State Of Delaware Manipulating data streams in data stream processors
KR100862954B1 (ko) * 2002-01-15 2008-10-13 노키아 코포레이션 레스큐 비컨
TW576534U (en) 2003-04-23 2004-02-11 Sunplus Technology Co Ltd Light-guiding apparatus of optical mouse
IL155742A0 (en) * 2003-05-04 2006-12-31 Teracross Ltd Method and apparatus for fast contention-free, buffer management in a muti-lane communication system
KR100656509B1 (ko) * 2004-03-03 2006-12-11 삼성전자주식회사 비디오 서비스 대역폭 보장을 위한 패킷 체증제어 방법
FR2878106A1 (fr) * 2004-11-15 2006-05-19 France Telecom Procede et dispositif d'ordonnancement de paquets pour leur routage dans un reseau avec determination implicite des paquets a traiter en priorite

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546393A (zh) * 2012-07-12 2014-01-29 中兴通讯股份有限公司 一种基于加权公平队列的调度实现方法及装置
CN103546393B (zh) * 2012-07-12 2018-01-19 中兴通讯股份有限公司 一种基于加权公平队列的调度实现方法及装置
CN107231283A (zh) * 2016-03-23 2017-10-03 阿里巴巴集团控股有限公司 消息管理方法及装置、消息预读方法及装置
CN107231283B (zh) * 2016-03-23 2020-12-18 阿里巴巴集团控股有限公司 消息管理方法及装置、消息预读方法及装置
US11165740B2 (en) 2016-03-23 2021-11-02 Alibaba Group Holding Limited Message sending method and terminal device
US10476803B2 (en) * 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access

Also Published As

Publication number Publication date
EP2187580A1 (en) 2010-05-19
EP2187580B1 (en) 2013-01-16
CN101741729B (zh) 2012-12-19
US8588070B2 (en) 2013-11-19
US20100124234A1 (en) 2010-05-20

Similar Documents

Publication Publication Date Title
CN101741729B (zh) 用于调度多个流的分组的方法和用于执行该方法的系统
CN1543149B (zh) 网络环境中的流控制
US6243358B1 (en) Process and device for allocating resources in a packet transmission digital network
JP5365415B2 (ja) パケット中継装置および輻輳制御方法
JP3984680B2 (ja) 仮想メッセージ転送経路上への転送スケジューリングの効率を高めるために、転送サービスレートが近い仮想メッセージ転送経路同士をまとめるメカニズムを有するデジタルネットワーク
EP1774714B1 (en) Hierarchal scheduler with multiple scheduling lanes
EP1239637B1 (en) Time based packet scheduling and sorting system
US9106545B2 (en) Hierarchical occupancy-based congestion management
US20080063004A1 (en) Buffer allocation method for multi-class traffic with dynamic spare buffering
JPH11508749A (ja) Atmのスロットリング
US20040066746A1 (en) Packet transfer rate monitoring control apparatus method and program
CN101136854B (zh) 一种实现数据包线速处理的方法和装置
SE520752C2 (sv) Förfarande och system för återvinning av overheadbandbredd i paketkopplade nät
CN104579962A (zh) 一种区分不同报文的QoS策略的方法及装置
US7009937B2 (en) Transmission queue managing system capable of efficiently controlling traffic congestion
GB2497846A (en) Hybrid arrival-occupancy based congestion management
KR20140004743A (ko) 데이터 패킷을 수신 및 송신하기 위한 장치 및 방법
US8199764B2 (en) Scalable approach to large scale queuing through dynamic resource allocation
CN110474670A (zh) 一种基于FPGA的SpaceFibre星载网络服务质量控制系统
CN101356777A (zh) 在交换结构网络中管理芯片上队列
US20050190779A1 (en) Scalable approach to large scale queuing through dynamic resource allocation
CN108093047B (zh) 数据发送方法、装置、电子设备及中间件系统
US8879578B2 (en) Reducing store and forward delay in distributed systems
EP1511236A1 (en) Packet transfer circuit and packet transfer method
US7046627B1 (en) Method and apparatus for accumulating and distributing traffic and flow control information in a packet switching system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121219

Termination date: 20161118