CN103222242A - 用于避免线端阻塞的动态流重新分布 - Google Patents
用于避免线端阻塞的动态流重新分布 Download PDFInfo
- Publication number
- CN103222242A CN103222242A CN2011800555353A CN201180055535A CN103222242A CN 103222242 A CN103222242 A CN 103222242A CN 2011800555353 A CN2011800555353 A CN 2011800555353A CN 201180055535 A CN201180055535 A CN 201180055535A CN 103222242 A CN103222242 A CN 103222242A
- Authority
- CN
- China
- Prior art keywords
- formation
- grouping
- subqueue
- memory
- linked list
- 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/12—Avoiding congestion; Recovering from congestion
-
- 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/6205—Arrangements for avoiding head of line blocking
-
- 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/6215—Individual queue per QOS, rate or priority
-
- 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/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种装置和相关的方法被提供以大大减小线端(HOL)阻塞的负面影响。在被配置为在网络中转发分组的设备(例如交换机、路由器等)处,要从所述设备被转发到网络中的其它设备的新的分组被存储在所述设备的存储器中。当新的分组被添加到至少一个队列中时条目被添加到针对所述至少一个队列的队列链表中。对何时所述至少一个队列超过表示线端阻塞的阈值进行检测。对于要被添加到所述至少一个队列中的新的分组,当所述至少一个队列超过所述阈值时,条目被添加到针对多个子队列的子队列链表中,以使得分组被分配给多个子队列中的不同的子队列。分组根据所述子队列链表针对多个子队列从所述存储器中被输出。
Description
技术领域
本发明涉及避免网络分组转发设备中的线端阻塞(head of lineblocking)问题。
背景技术
当下游交换机或其它目的地设备变得不能够接受给定分组流中的新的分组时,在网络中转发分组的网络交换机、路由器和其它设备可能被迫延迟对给定分组流中的分组的转发。在一些应用中,分组流被指派以交换机或分组处理器需要服务的服务类别。但是,在一个服务类别内,一些流可能会影响针对其它类似的流的服务质量。由于将针对流的分组分配到队列中是在交换机的输入端口处被执行的,所以排队过程不知道一类服务内的一个流正在降低其它流的服务质量的情况。在一些情况下,这种降低可能导致违反服务协议并且导致应用层的问题。前述情形也被称为线端(HOL)阻塞问题。
附图说明
图1是其中两个交换机中的至少一个被配置为针对拥塞的分组流执行子队列机制的网络图的示例。
图2是被配置为执行子队列机制的交换机、路由器或其它类似设备的框图的示例。
图3是示出了被存储在图2中所示的设备中的队列链表(link list)和子队列链表的示例的图。
图4和图5是描述与子队列机制相关联的操作的图。
图6和图7描述针对子队列机制的操作的流程图的示例。
图8示出了由于多个分组流中的一个分组流所引起的线端阻塞问题的示例。
图9示出了被应用于图8中所描述的线端阻塞问题的子队列机制的示例。
图10是被配置为执行子队列机制的交换机、路由器或其它设备的框图的另一示例。
具体实施例
概览
一种装置和相关的方法在这里被提供以大大减小线端(HOL)阻塞的负面影响。由于“突发”流量、非常大的分组等,线端阻塞在帧处理交换机或路由器中是成问题的。这里所描述的分组处理技术只针对在交换机、路由器或其它设备处的问题队列并且因而使用最少的门或其它计算资源。在被配置为在网络中转发分组的设备(例如交换机、路由器等)处,要从所述设备被转发到网络中的其它设备的新的分组被存储在所述设备的存储器中。队列链表被存储,该队列链表定义要从存储器中被读出并且从设备处被转发的存储在存储器中的分组的至少一个队列。当新的分组被添加到所述至少一个队列中时,条目被添加到针对所述至少一个队列的队列链表中。分组根据队列链表中的条目针对所述至少一个队列从存储器中被输出。对何时所述至少一个队列超过表示线端阻塞的阈值进行检测。当所述至少一个队列被检测为超过阈值时,添加条目到针对所述至少一个队列的队列链表中。子队列链表被存储,该子队列链表定义针对存储在存储器中的分组的多个子队列。对于要被添加到所述至少一个队列中的新的分组,当所述至少一个队列超过阈值时,条目被添加到针对多个子队列的子队列链表中,以使得分组被分配给多个子队列中的不同的子队列。在针对所述至少一个队列的队列链表中的所有分组都已从存储器中被输出之后,分组根据所述子队列链表针对所述多个子队列从存储器中被输出。
示例性实施例
首先参考图1,用标号10表示的网络包括第一和第二分组(帧)处理交换机或路由器(这里简单地称为交换机)20(1)和20(2)。在图1中所示的示例性网络拓扑中,交换机20(1)连接到多个主机设备30(1)-30(N)并且交换机20(2)连接到多个目的地设备40(1)-40(K)。主机设备30(1)-30(N)可以是具有要通过交换机20(1)和20(2)被发送给目的地设备40(1)-40(K)中的一个目的地设备的内容的服务器。交换机20(1)和20(2)中的任一个或两者被配置为执行这里所描述的子队列技术以减少任何HOL阻塞问题。
现在参考图2描述被配置为执行子队列机制的交换机,例如交换机20(1)。同样的框图可应用于在网络中转发分组的路由器或其它设备。交换机包括输入电路50、散列电路52、转发电路54、存储要被转发的流入分组的存储器阵列56的集合、存储队列列表和多个子队列的队列子系统58、队列级别监控电路60、读逻辑电路62和输出电路64。存储器阵列56用作用于存储要在网络中被转发的分组的装置。输入电路50接收到达交换机的流入分组,并且转发电路54将流入分组引至队列子系统58中。转发电路54还更新队列子系统58中的链表存储器以指示在存储器56中有新的分组写入。散列电路52对分组的参数(例如诸如层-2、层-3和层-4头部中的一个或多个之类的分组头部)进行散列计算以标识出每个分组作为其一部分的分组流和分组的目的地。在一个示例中,散列电路52对分组头部进行8位散列,并且在这样做的过程中确定在链表存储器59中分组应当被添加到其中的的队列。转发电路54实现查找表。利用来自分组头部的字段或子字段(来自层-2、层-3和层-4头部),转发电路54在一个或多个目标表中进行查找以确定分组要被传送或者要被丢弃的目标端口。
队列子系统58包括在这里被称为链表存储器的存储器59。在一种形式中,存储器59用多个寄存器来实现,但是存储器59也可以用专用存储器设备等用存储器阵列56中被分配的存储器位置来实现。总地来说,存储器59用作用于存储队列链表和用于存储子队列链表的装置,所述队列链表定义存储在存储器阵列56中的分组的至少一个队列,所述子队列链表定义针对存储在存储器阵列56中的分组的多个子队列。
链表存储器59包括被分配给至少一个队列70(这里也被称为“常规”队列)和多个子队列72(0)-72(L-1)的存储器位置(例如寄存器)。常规队列存储针对被存储在存储器56中的每个分组的标识符,所述每个分组按照从队列的头(H)到尾(T)的顺序作为常规队列的一部分。同样,每个子队列存储针对被存储在存储器56中的每个分组的标识符,所述每个分组按照从每个子队列的头(H)到尾(T)的顺序作为子队列的一部分。下文中将清楚,在这里所描述的示例中,针对多个服务类别(COS)中的每个服务类别,存在多个常规队列。
队列子系统58还包括8位至5位的散列电路74、轮询(RR)仲裁器76和加法器或求和电路78。8位至5位散列电路74被配置为对分组头部进行5位散列计算以确定当确定使用子队列时使用多个子队列中的哪个子队列来分配分组,这在下文中将变得更清楚。提供8位至5位散列电路74是因为8位散列电路52是交换机中的常用组件,并且提供附加的散列电路74,而不重新设计交换机以提供较低程度的散列来用于将分组排队到多个子队列中。散列电路52用作用于当新的分组要被添加到至少一个队列中时添加条目到针对所述至少一个队列的队列链表中的装置。此外,散列电路52与散列电路74相组合地用作用于进行以下操作的装置,所述操作即当至少一个队列超过指示HOL阻塞的前述阈值时添加条目到针对多个子队列的子队列链表中以使得分组被分配给多个子队列中的不同子队列。
RR仲裁器76从多个子队列72(0)-72(L-1)中的一个子队列中选择分组并将该分组引至加法器78。RR仲裁器76包括数字逻辑电路,该数字逻辑电路例如被配置为根据多种轮询选择技术中的任一种技术从多个子队列中的一个子队列中选择分组。加法器78的另一输入是来自常规队列70的输出。
队列级别监控器60是将常规队列中和子队列中的分组的当前数目与预定阈值进行比较的电路。在另一形式中,队列级别监控器60确定队列或子队列中的字节的总数。因而,应当理解这里对将分组的数目与阈值进行比较的队列级别监控电路的引用可能涉及将字节的数目与阈值进行比较。在一个示例中,队列级别监控器60包括被配置为针对每个队列跟踪存储在存储器56中的数据的量(以字节为单位)的计数器和比较器。对于每个常规队列,存在专用的队列级别监控器60。因而,由于在图2中只示出了一个常规队列,所以只有一个队列级别监控器60被示出,但是这只是个示例。当分组被缓存在存储器56中时,(针对分组被调度为流出的目标端口和队列的)队列级别监控器的计数器被递增分组中的字节的数目。当分组从存储器56中被读出并且被读逻辑电路62发出时,针对所述队列的队列级别监控器60的计数器被递减被发出的分组中的字节的数目。因而,队列级别监控器60用作用于检测何时至少一个队列超过指示HOL阻塞的阈值以及何时所述至少一个队列达到另一阈值(例如指示该队列为空的0)的装置。
读逻辑电路62被配置为从存储器56中读取要通过输出64从交换机处被发送的分组。读逻辑电路62从存储器56中读取分组所遵循的顺序基于常规队列或多个子队列中的从链表存储器59中提供的标识符,如在下文中将进一步描述的。
读逻辑电路62和输出电路64用作用于从存储器56中输出分组的装置。下文中将清楚,读逻辑电路62和输出电路64用作进行以下操作的装置,所述操作即在针对至少一个队列的存储器59中的队列链表中的所有分组都已从存储器56中被输出之后根据存储器59中的子队列链表针对多个子队列从存储器56中输出分组。
散列电路52用作用于当新的分组被添加到至少一个队列中时添加条目到针对所述至少一个队列的队列链表中的装置。此外,散列电路52与散列电路74相组合地用作用于进行以下操作的装置,所述操作即当至少一个队列超过指示HOL阻塞的前述阈值时添加条目到针对多个子队列的子队列链表中以使得分组被分配给多个子队列中的不同子队列。
还有被配置为基于软件配置调度多个常规队列中的哪个常规队列被服务的优先级仲裁逻辑电路80。多个COS队列在下文中结合图4和图5被描述。优先级仲裁器80与读逻辑电路一起允许分组从分组存储器56中被读出并且作为输出通过输出电路64被发送。优先级仲裁器80可以被单独地实现或者作为读逻辑电路62的一部分而被实现,因为该模块具有对分组将从哪个队列中读出的最终决定权或控制。在一种实现方式中,优先级仲裁器80包括数字逻辑电路和多个计数器以跟踪队列选择。
针对图2中所示的优先级仲裁器80和相关的逻辑电路的操作的一般的事件序列如下。来自队列的请求(当多个常规队列被使用时)被发送给优先级仲裁器80。优先级仲裁器80生成队列号许可并将其发送回队列子系统58。RR仲裁器76生成针对分组(来自被选择的子队列)的分组指针并将分组指针信息发送给读逻辑电路62,该读逻辑电路62从分组存储器56中获取适当的分组以通过输出电路64输出。读逻辑电路62还将关于输出分组的信息反馈给优先级仲裁器80以更新其自己的内部计数器。
当存在由交换机处理的一个或多个服务类别的分组流时,这里所描述的子队列技术是可以应用的。图2示出了用于只有一类服务的情况的单个常规队列。如果交换机要处理针对多个服务类别的分组流,则将存在被分配给针对每一类服务的常规队列的存储器位置或寄存器。
图3示出了针对常规队列70和子队列的链表存储器59的布置。箭头显示队列中的分组指针的链接。队列(或子队列)的开始点是头部(H)并且从头部开始,箭头可以被遍历以读取所有分组指针,一直到到达作为队列(或子队列)的最后一个分组指针的尾部(T)为止。该结构被用于实现有序的分组传送(分组流入的顺序)。在图3的示例中,链表H到L是常规链表,而链表H#到T#用于标号为0-31的子队列。这显示被用于存储分组传送的顺序的相同的资源(存储器结构)也被用于子队列,从而避免容纳子队列的任何开销。队列中的分组需要被链接在一起以使得它们可以按照它们被接收的顺序被发送。当针对队列的后续分组到达时,它们需要被链接到之前的分组。当发送分组时,读逻辑根据这些链接顺序地将分组发出。如图3中所示,链表存储器59保存这些分组链表。箭头指向队列中的下一个分组。由于分组指针是独特的,所以在相同的存储器结构中可以存在用于不同队列的链表。图3示出了包含多个队列链表(每个链表对应于不同的队列和/或子队列)的单一存储器。
子队列的创建
现在参考图4。在图4中所示的示例中,存在交换机所处理的多个服务类别,被表示为COS0到COS7。对于每个COS都有个常规队列,分别用标号70(0)-70(7)表示。在该示例中有32个子队列,用标号72(0)-72(31)表示。
分组基于它们的COS被排队到COS常规队列70(0)到70(7)中的一个中。例如,COS0中的分组全部被排队到队列70(0)中,COS1中的分组全部被排队到队列70(1)中,依次类推。优先级仲裁器80从在与每个常规队列70(0)-70(7)相关联的被显示为78(0)-78(7)的加法器之后的多个COS常规队列70(0)-70(7)中选择分组。RR仲裁器76根据轮询机制从多个子队列72(0)-72(31)中选择分组。取决于COS常规队列中的哪一个常规队列被选择用于进行子队列排队,RR仲裁器76的输出被耦接到分别与常规队列70(0)-70(7)相关联的加法器78(0)-78(7)中的相应的一个。
如以上结合图2所描述的,分组基于8位散列被排队到子队列中。8位散列确保针对任一分组流的分组将被排队到相同的子队列中,从而保持有序传送。8位散列被再次散列为索引到子队列中的一个的5位散列。8位再次散列机制最小化了对单个队列的聚集。
在该示例中,8个常规队列70(0)-70(7)的状态被发送到优先级仲裁器80。然后,优先级仲裁器80与软件配置参数(这些参数与设备所服务的服务类别相关)核对以决定哪个是要被服务的下一个COS队列。较高优先级的COS将比较低优先级的COS更多地被服务。优先级仲裁器80随后将被称为图2中的队列号许可的决定(接下来哪个队列将被服务)发送给队列子系统58。在被选择队列的头部的针对分组的分组指针信息经由加法器78(0)-78(7)中的适当的一个加法器被发送到读逻辑62,该读逻辑62从分组存储器56中读取分组并通过输出电路64将该分组发出。优先级仲裁器80随后通过遍历被选择的队列链表用下一个分组指针更新被选择队列的头部。
RR仲裁器76用RR、加权轮询(WRR)或差值WRR(DWRR)方式预先选择32个子队列72(0)-72(31)中的一个并将该请求呈现给优先级仲裁器80。如果优先级仲裁器(PA)80选择了该队列,则来自该子队列的分组指针被提供给读逻辑电路62用于最终的分组传送。
COS常规队列70(0)-70(7)中的任一常规队列(最可能是最低优先级的队列)可能累积了(慢慢发展到)超过所设置的预定阈值的分组。图4中被标记为“1”-“4”的一系列事件或操作示出了子队列的创建。在图4的示例中,COS70(0)已累积了超过阈值的分组。这被队列级别监控器60检测为“1”。在“2”处,COS队列70(0)被声明为拥塞的并且新的分组不再只被排队到COS队列70(0)中。去往其它COS队列的分组被继续发送到它们相应的COS队列。此时,针对COS队列70(0)的分组被排队到子队列72(0)-72(31)中,利用前述的5位散列计算来为与COS队列70(0)相关联的每个分组选择子队列。在该示例中,32个子队列被“快速”有效地创建。子队列尚未有出队操作。
在“3”处,COS队列70(0)通过优先级仲裁器许可操作80被持续出队,直到COS队列70(0)为空为止。在“4”处,在COS70(0)队列为空之后,来自子队列72(0)-72(31)的分组通过RR仲裁器76被出队。由于COS队列70(0)在子队列被出队之前已经被完全出队,针对给定流的分组被确保总是顺序地出队。
如果5位散列函数将所有的流都放入子队列72(0)-72(31)中的一个中,则入队和出队操作将像没有子队列那样进行。
子队列叠合
一旦针对当前正在使用子队列的COS队列的流量达到特定阈值(例如COS队列为空),子队列72(0)-72(31)被叠合到原始队列中。图5示出了与叠合子队列相关联的标记为“5”-“8”的操作或事件的序列。
每当去往当前正在使用子队列72(0)-72(31)的COS队列的流量减小到特定阈值并且COS队列为空时,子队列72(0)-72(31)的“释放”开始。在“5”处,这通过指示COS队列为空的来自队列级别监控器60的信号被触发。在“6”处,分组不再被排队到子队列72(0)-72(31)中。相反,分组被排队到原始COS队列中,例如图5的示例中的COS队列70(0)。
在“7”处,分组被持续从子队列72(0)-72(31)中出队,直到所有的子队列72(0)-72(31)为空为止。在“8”处,在所有的子队列72(0)-72(31)为空之后,原始COS队列被出队。这确保了流中的分组总是以正确的顺序被出队。
此时,子队列72(0)-72(31)被声明为自由的并且可供被确定为拥塞的任意COS队列使用。
如通过图4和图5的示例所描述的,属于特定服务类别并且目标为从特定端口流出的所有流被排队到相同的队列中。如果HOL阻塞(通过实时监控队列的级别)被检测到,则问题队列被快速分成大量的逻辑子队列。然后,这些流利用散列机制被重新分布在子队列之间,所述散列机制确保流内的有序分组传送。然后,子队列以轮询、WRR或DWRR的方式被服务。这通过允许其它流被调度或从端口中被输出而有效地减轻了HOL阻塞。一旦原始问题队列的级别降至特定阈值以下(表示HOL阻塞不存在),子队列被叠合为单个队列。这些子队列可以按相同的方式再次被用于其它问题队列。
现在参考描述过程100的流程图的图6和图7,所述过程100表示在交换机、路由器或其它设备中使用子队列来避免HOL阻塞的图4和图5所描述的操作。对图6和图7的描述也涉及对图2的框图的参考。在110处,交换机将其接收到的并且要从该交换机被转发到网络中的其它交换机或设备的新的分组存储在存储器(例如存储器阵列56)中。在115处,交换机将队列链表存储在存储器59中,所述队列链表定义要从存储器56中被读出并且从交换机处被转发的存储在存储器56中的分组的至少一个队列。如以上结合图4和图5所描述的,当存在单一服务类别的队列或者多个服务类别的队列时,子队列技术可以应用。当多个服务类别的分组被交换机所支持时,存储操作115涉及存储针对多个队列的多个队列链表,所述多个队列中的每个队列与多个服务类别中的相应的一个服务类别相关联。此外,110处的存储操作涉及将来自属于多个服务类别中的任一服务类别的流的分组存储在存储器阵列56中以使得针对特定服务类别的分组被添加到针对多个队列中的相应的一个队列的相同的队列链表中。
在120处,当新的分组被添加到至少一个队列中时,交换机添加条目到针对所述至少一个队列的队列链表中。当多个服务类别被交换机所支持时,添加操作120涉及基于新分组的服务类别添加条目到针对新分组的多个队列链表中的相应的队列链表中。
在125处,读逻辑电路62从存储器阵列56中读取分组并且根据存储在存储器59中的队列链表中的条目针对所述至少一个队列经由输出电路64输出。
在130处,队列级别监控电路60检测何时所述至少一个队列超过指示HOL阻塞的阈值。队列级别监控电路60可以基于超过阈值的所述至少一个队列中的分组数目或者超过阈值的队列中的字节数目(考虑具有不同有效载荷大小的分组以使得一些分组可以包括比其它分组更多的字节)做出判决。当所述至少一个队列超过阈值时,在135处,去往所述队列的分组不再被添加到所述队列中,并且添加条目到针对所述至少一个队列的队列链表的操作被停止。当交换机支持多个服务类别时,检测操作包括检测何时多个队列中的任一队列超过指示针对多个队列中的给定队列的线端阻塞的阈值。
在140处,子队列链表被生成并存储在存储器59中,所述子队列链表定义针对所述至少一个队列的针对存储在存储器56中的分组的多个子队列72(0)-72(L-1)。然后,在145处,对于要被添加到所述至少一个队列的新的分组,当所述至少一个队列超过阈值时,条目被添加到针对多个子队列72(0)-72(L-1)的子队列链表中以使得分组被分配给多个子队列72(0)-72(L-1)中的不同子队列。将分组分配到子队列中是由执行散列计算的5位散列电路74进行的,所述散列计算被配置为确保针对给定分组流的分组被分配给相同的子队列以保持给定分组流内的分组的有序输出。在多个服务类别被交换机所支持的情况下,添加操作145包括针对要被添加到多个队列中被确定为超过阈值的一个队列中的那些新的分组为多个子队列添加条目。
在操作145针对所述至少一个队列针对新接收到的分组被执行的同时,在所述至少一个队列中的分组从存储器56中被输出。最终,所述至少一个队列将变为空。
在150处,在针对所述至少一个队列的队列链表中的所有分组都已从存储器59中被输出之后,针对多个子队列72(0)-72(L-1)的分组根据存储器59中的子队列链表经由读逻辑电路62和输出电路64从存储器56中被输出。
在155处,当去往所述至少一个队列(该队列当前正在使用多个队列72(0)-72(L-1))的流量减小到预定阈值并且针对所述至少一个队列的队列链表为空(表示所述至少一个队列为空)时,对针对多个子队列的子队列链表的条目添加被停止。此时,分组可以被添加到针对所述至少一个队列的原始队列链表中。因而,在160处,针对要被添加到所述至少一个队列中的新分组对队列链表的条目添加被恢复。在165处,在针对多个列表的子队列链表中的所有分组都已通过读逻辑电路62和输出电路64从存储器56中被输出之后,分组根据针对至少一个队列的队列链表针对该至少一个队列从存储器56中被输出。
现在参考描述其中出现HOL阻塞问题的情况的图8。说明这里所描述的子队列技术如何减轻HOL阻塞问题的图9在之后被描述。图8和图9中所示的“芯片边界”指包括在图2中描述的存储器阵列56的ASIC。
在图8中所描述的示例性情境中,有五个被标记为A、B、C、D和E的流,每个流包括一些数目的分组,所有这些分组属于相同的COS。在该示例中,流A比其它流更“突发”并且具有被安排为排在COS0队列中被转发的分组A5:A1。分组A1处于正在被转发的过程中,而分组A0已经被转发。对于该示例,分组A5:A2被假设为与其它分组相比较大的分组。在阶段A处,流B的分组B0被排队到COS0中。其它的流入分组也将被排队到COS0队列中。HOL阻塞出现,因为分组A5:A2将阻塞来自其它流的分组,如阶段B处所示。如阶段C处所示,分组按照它们被接收的顺序被转发。
现在描述图9以说明针对图8中所描述的情境的HOL阻塞问题是如何利用这里所描述的子队列技术而被减轻的。在图9中,多个子队列72(0)-72(31)被示出。图9中的阶段A与图8的阶段A中所示的相同。阶段B显示一旦针对COS队列70(0)确定检测到HOL阻塞,分组流排队到子队列中。阶段C显示分组流从芯片中流出的顺序与传入流的顺序不同。但是,流内的分组的顺序被保持不受影响。
现在参考图10,针对被配置为执行这里所描述的子队列技术的交换机、路由器或其它设备的框图被示出。在该版本的设备框图中,设备利用由交换机中的处理器执行的软件来执行子队列技术。为此,交换机包括处理器22、交换机硬件电路24、网络接口设备26和存储器28。在一些示例中,交换机硬件电路24用一个或多个专用集成电路中的数字逻辑门和相关电路来实现,并且被配置为利用多种网络协议中的任一种通过网络路由分组。网络接口设备26将分组从交换机发送到网络并且接收被发送给交换机的来自网络的分组。处理器22例如是微处理器、微控制器、数字信号处理器或者被配置用于交换机中的嵌入式应用的其它类似的数据处理器。
存储器28可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪存设备、电、光、声或其它物理/有形存储器存储介质。存储器28存储用于分组子队列过程逻辑100的可执行软件指令以及针对常规COS队列和针对子队列的链表以及要被输出的分组。因而,存储器28可以包括被编码有软件的一个或多个计算机可读存储介质,所述软件包括计算机可读指令并且当该软件被执行时可操作用于执行用于过程逻辑100的结合图6和图7描述的操作。
这里所描述的子队列技术提供了动态机制以减轻HOL阻塞的问题,该问题在处理突发流量和可变长度帧的当今的交换机和路由器中是非常普遍的。子队列机制与静态方法相比利用更少的资源并且只在需要时被调用,因而也节省了功率。
以上的描述只是通过示例的方式进行的描述。
Claims (23)
1.一种方法,包括:
在被配置为在网络中转发分组的设备处,将要从所述设备被转发到所述网络中的设备的新的分组存储在所述设备的存储器中;
存储队列链表,该队列链表定义要从所述存储器中被读出并从所述设备被转发的分组的至少一个队列,并且当新的分组被添加到所述至少一个队列中时添加条目到针对所述至少一个队列的所述队列链表中;
根据所述队列链表中的条目针对所述至少一个队列从所述存储器中输出分组;
检测何时所述至少一个队列超过表示线端阻塞的阈值,并且当所述至少一个队列被检测为超过所述阈值时,停止向针对所述至少一个队列的所述队列链表中添加条目;
存储子队列链表,该子队列链表定义用于存储在所述存储器中的分组的多个子队列;
对于要被添加到所述至少一个队列中的新的分组,当所述至少一个队列超过所述阈值时,添加条目到针对所述多个子队列的所述子队列链表中,以使得分组被分配给所述多个子队列中的不同的子队列;并且
在针对所述至少一个队列的所述队列链表中的所有分组都已从所述存储器中被输出之后,根据所述子队列链表针对所述多个子队列从所述存储器中输出分组。
2.根据权利要求1所述的方法,其中添加条目到针对所述多个子队列的所述子队列链表中包括添加条目到所述子队列链表中以使得分组根据散列计算被分配给相应的子队列,所述散列计算被配置为确保针对给定分组流的分组被分配给相同的子队列以保持给定流内的分组的有序输出。
3.根据权利要求1所述的方法,其中针对所述多个子队列从所述存储器中输出分组包括输出存储在存储器中的分组,所述分组以轮询的方式被分配给所述多个子队列中的相应子队列。
4.根据权利要求1所述的方法,还包括当要去往当前正在使用所述多个子队列的所述至少一个队列的流量被减少到预定的阈值并且针对所述至少一个队列的所述队列链表为空指示所述至少一个队列为空时,停止向针对所述多个子队列的所述子队列链表中添加条目。
5.根据权利要求4所述的方法,还包括一旦停止向所述子队列链表中添加条目,重新开始针对要被添加到所述至少一个队列的新的分组添加条目到所述队列链表中,并且在针对所述多个子队列的所述子队列链表中的所有分组已从所述存储器中被输出之后,针对所述队列链表从所述存储器中输出分组。
6.根据权利要求1所述的方法,其中在多个寄存器中存储所述队列链表并且存储所述子队列链表。
7.根据权利要求1所述的方法,其中存储所述队列链表包括针对分别与多个服务类别中的相应的一个服务类别相关联的多个队列存储多个队列链表,其中在存储器中存储分组包括存储来自属于所述多个服务类别中的任一服务类别的分组流的分组以使得用于特定服务类别的分组针对所述多个队列中的相应的一个队列被添加到相同的队列链表中,并且其中添加条目到所述队列链表包括基于新分组的服务类别针对所述新分组添加条目到所述多个队列链表中的相应的队列链表中。
8.根据权利要求7所述的方法,其中检测包括检测何时所述多个队列中的任一队列超过指示针对所述多个队列中的给定的一个队列的线端阻塞的所述阈值,并且其中添加条目到所述子队列链表中包括针对要被添加到所述多个队列中被确定为超过所述阈值的一个队列中的那些新的分组、为所述多个子队列添加条目。
9.一种装置,包括:
网络接口设备,该网络接口设备被配置为实现网络上的通信;
交换机电路,该交换机电路被配置为通过所述网络转发分组并且接收来自所述网络的分组;
存储器,该存储器被配置为存储要通过所述网络被转发的分组;以及
处理器,该处理器被配置为被耦接到所述网络接口设备和所述交换机电路,所述处理器被配置为:
存储队列链表,该队列链表定义要从所述存储器中被读出并通过所述网络被转发的被存储在所述存储器中的分组的至少一个队列,并且当新的分组被添加到所述至少一个队列中时添加条目到针对所述至少一个队列的所述队列链表中;
根据所述队列链表中的条目针对所述至少一个队列从所述存储器中输出分组;
检测何时所述至少一个队列超过表示线端阻塞的阈值,并且当所述至少一个队列被检测为超过所述阈值时,停止向针对所述至少一个队列的所述队列链表中添加条目;
存储子队列链表,该子队列链表定义用于存储在所述存储器中的分组的多个子队列;
对于要被添加到所述至少一个队列中的新的分组,当所述至少一个队列超过所述阈值时,添加条目到针对所述多个子队列的所述子队列链表中,以使得分组被分配给所述多个子队列中的不同的子队列;并且
在针对所述至少一个队列的所述队列链表中的所有分组都已从所述存储器中被输出之后,根据所述子队列链表针对所述多个子队列从所述存储器中输出分组。
10.根据权利要求9所述的装置,其中所述处理器被配置为添加条目到针对所述多个子队列的所述子队列链表中以使得分组根据散列计算被分配给相应的子队列,所述散列计算被配置为确保针对给定分组流的分组被分配给相同的子队列以保持给定流内的分组的有序输出。
11.根据权利要求9所述的装置,其中所述处理器被配置为当要去往当前正在使用所述多个子队列的所述至少一个队列的流量被减少到预定的阈值并且针对所述至少一个队列的所述队列链表为空指示所述至少一个队列为空时,停止向针对所述多个子队列的所述子队列链表添加条目。
12.根据权利要求9所述的装置,其中所述处理器被配置为一旦停止添加条目到所述子队列链表中,重新开始针对要被添加到所述至少一个队列的新的分组添加条目到所述队列链表中,并且在针对所述多个子队列的所述子队列链表中的所有分组已从所述存储器中被输出之后,针对所述队列链表从所述存储器中输出分组。
13.根据权利要求9所述的装置,其中所述处理器被配置为针对分别与多个服务类别中的相应的一个服务类别相关联的多个队列存储多个队列链表,并且存储来自属于所述多个服务类别中的任一服务类别的分组流的分组以使得用于特定服务类别的分组针对所述多个队列中的相应的一个队列被添加到相同的队列链表中,并且基于新分组的服务类别针对所述新分组添加条目到所述多个队列链表中的相应的队列链表中。
14.根据权利要求13所述的装置,其中所述处理器被配置为检测何时所述多个队列中的任一队列超过指示针对所述多个队列中的给定的一个队列的线端阻塞的所述阈值,并且针对要被添加到所述多个队列中被确定为超过所述阈值的一个队列中的那些新的分组、为所述多个子队列添加条目。
15.一种装置,包括:
用于存储要在网络中被转发的分组的装置;
用于存储队列链表以及用于存储子队列链表的装置,所述队列链表定义要从所述用于存储的装置中被读出的被存储在所述用于存储的装置中的分组的至少一个队列,所述子队列链表定义用于存储在所述用于存储的装置中的分组的多个子队列;
用于在新的分组被添加到所述至少一个队列中时添加条目到针对所述至少一个队列的所述队列链表中的装置;
用于检测何时所述至少一个队列超过指示线端阻塞的阈值的装置;
其中所述用于添加条目的装置被配置为当所述至少一个队列超过所述阈值时,添加条目到针对所述多个子队列的所述子队列链表中,以使得分组被分配给所述多个子队列中的不同的子队列;以及
用于在针对所述至少一个队列的所述队列链表中的所有分组都已从所述用于存储的装置中被输出之后根据所述子队列链表针对所述多个子队列从所述用于存储的装置中输出分组的装置。
16.根据权利要求15所述的装置,其中所述用于添加的装置被配置为添加条目到所述子队列链表中以使得分组根据散列计算被分配给相应的子队列,所述散列计算被配置为确保针对给定分组流的分组被分配给相同的子队列以保持给定流内的分组的有序输出。
17.根据权利要求16所述的装置,其中所述用于添加的装置包括被配置为基于分组的参数执行散列计算的散列电路。
18.根据权利要求15所述的装置,其中用于存储所述队列链表和所述子队列链表的装置包括多个寄存器。
19.根据权利要求15所述的装置,其中所述用于存储所述队列链表的装置还被配置为针对分别与多个服务类别中的相应的一个服务类别相关联的多个队列存储多个队列链表,并且其中用于存储分组的装置被配置为存储来自属于所述多个服务类别中的任一服务类别的分组流的分组以使得用于特定服务类别的分组针对所述多个队列中的相应的一个队列被添加到相同的队列链表中,并且其中所述用于添加的装置被配置为基于新分组的服务类别针对所述新分组添加条目到所述多个队列链表中的相应的队列链表中。
20.根据权利要求19所述的装置,其中所述用于检测的装置被配置为检测何时所述多个队列中的任一队列超过指示针对所述多个队列中的给定的一个队列的线端阻塞的所述阈值,并且其中所述用于添加的装置被配置为针对要被添加到所述多个队列中被确定为超过所述阈值的一个队列中的那些新的分组、为所述多个子队列添加条目。
21.一个或多个被编码有软件的计算机可读存储介质,所述软件包括计算机可执行的指令并且当所述软件被执行时可操作用于:
在被配置为在网络中转发分组的设备处,将要从所述设备被转发到所述网络中的其它设备的新的分组存储在所述设备的存储器中;
存储队列链表,该队列链表定义要从所述存储器中被读出并从所述设备被转发的分组的至少一个队列,并且当新的分组被添加到所述至少一个队列中时添加条目到针对所述至少一个队列的所述队列链表中;
根据所述队列链表中的条目针对所述至少一个队列从所述存储器中输出分组;
检测何时所述至少一个队列超过表示线端阻塞的阈值,并且当所述至少一个队列被检测为超过所述阈值时,停止向针对所述至少一个队列的所述队列链表中添加条目;
存储子队列链表,该子队列链表定义用于存储在所述存储器中的分组的多个子队列;
对于要被添加到所述至少一个队列中的新的分组,当所述至少一个队列超过所述阈值时,添加条目到针对所述多个子队列的所述子队列链表中,以使得分组被分配给所述多个子队列中的不同的子队列;并且
在针对所述至少一个队列的所述队列链表中的所有分组都已从所述存储器中被输出之后,根据所述子队列链表针对所述多个子队列从所述存储器中输出分组。
22.根据权利要求21所述的一个或多个计算机可读存储介质,其中所述可操作用于添加条目到所述子队列链表中的指令包括可操作用于执行以下操作的指令,所述操作即添加条目到所述子队列链表中以使得分组根据散列计算被分配给相应的子队列,所述散列计算被配置为确保针对给定分组流的分组被分配给相同的子队列以保持给定流内的分组的有序输出。
23.根据权利要求21所述的一个或多个计算机可读存储介质,还包括可操作用于执行以下操作的指令,所述操作即当用于当前正在使用所述多个子队列的所述至少一个队列的流量被减少到预定的阈值并且针对所述至少一个队列的所述队列链表为空指示所述至少一个队列为空时,停止向针对所述多个子队列的所述子队列链表中添加条目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/949,097 | 2010-11-18 | ||
US12/949,097 US8565092B2 (en) | 2010-11-18 | 2010-11-18 | Dynamic flow redistribution for head of line blocking avoidance |
PCT/US2011/048185 WO2012067684A1 (en) | 2010-11-18 | 2011-08-18 | Dynamic flow redistribution for head line blocking avoidance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103222242A true CN103222242A (zh) | 2013-07-24 |
CN103222242B CN103222242B (zh) | 2016-02-10 |
Family
ID=44584658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180055535.3A Active CN103222242B (zh) | 2010-11-18 | 2011-08-18 | 用于避免线端阻塞的动态流重新分布 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8565092B2 (zh) |
EP (1) | EP2641362B1 (zh) |
CN (1) | CN103222242B (zh) |
WO (1) | WO2012067684A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550523A (zh) * | 2015-12-28 | 2016-05-04 | 上海携程商务有限公司 | 数据处理方法 |
CN105812153A (zh) * | 2015-01-15 | 2016-07-27 | 联发科技股份有限公司 | 用于访问跨平台服务的通信系统及方法 |
CN106062726A (zh) * | 2014-03-21 | 2016-10-26 | 思科技术公司 | 用于数据中心交换机的流感知缓冲区管理 |
CN106209679A (zh) * | 2015-03-31 | 2016-12-07 | 凯为公司 | 用于使用多个链接的存储器列表的方法及装置 |
CN107005488A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 通用队列 |
CN109565455A (zh) * | 2016-06-02 | 2019-04-02 | 马维尔以色列(M.I.S.L.)有限公司 | 具有高速缓存的分组存储器中的分组描述符存储 |
CN111131089A (zh) * | 2019-12-24 | 2020-05-08 | 西安电子科技大学 | 改善多播业务hol阻塞的队列管理方法 |
CN111935658A (zh) * | 2020-07-16 | 2020-11-13 | 北京思特奇信息技术股份有限公司 | 一种解决消息交互中拥塞的方法及系统 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9628398B1 (en) | 2012-02-28 | 2017-04-18 | Marvell Israel (M.I.S.L) Ltd. | Queuing methods and apparatus in a network device |
US9178838B2 (en) * | 2013-09-17 | 2015-11-03 | Globalfoundries U.S. 2 Llc | Hash perturbation with queue management in data communication |
US10601714B2 (en) | 2016-06-28 | 2020-03-24 | Mellanox Technologies Tlv Ltd. | Adaptive flow prioritization |
US10305789B2 (en) | 2017-03-06 | 2019-05-28 | International Business Machines Corporation | Packet forwarding for quality of service delivery |
US10645033B2 (en) | 2017-03-27 | 2020-05-05 | Mellanox Technologies Tlv Ltd. | Buffer optimization in modular switches |
US20180285151A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Dynamic load balancing in network interface cards for optimal system level performance |
US10560391B2 (en) | 2018-01-18 | 2020-02-11 | Cisco Technology, Inc. | Adaptive acknowledgement control |
EP3934184A4 (en) * | 2019-04-04 | 2022-04-20 | Huawei Technologies Co., Ltd. | DATA PACKET MARKING METHOD AND DEVICE, DATA TRANSMISSION SYSTEM |
US10999221B2 (en) | 2019-07-02 | 2021-05-04 | Mellanox Technologies Tlv Ltd. | Transaction based scheduling |
US12028278B2 (en) | 2020-01-31 | 2024-07-02 | Cyberstorm Pte. Ltd. | Method of reducing latency in communication of data packets |
US11470010B2 (en) | 2020-02-06 | 2022-10-11 | Mellanox Technologies, Ltd. | Head-of-queue blocking for multiple lossless queues |
US11973696B2 (en) | 2022-01-31 | 2024-04-30 | Mellanox Technologies, Ltd. | Allocation of shared reserve memory to queues in a network device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002005494A1 (en) * | 2000-07-07 | 2002-01-17 | Entridia Corporation | High speed packet processing architecture |
US20070014240A1 (en) * | 2005-07-12 | 2007-01-18 | Alok Kumar | Using locks to coordinate processing of packets in a flow |
US7493428B2 (en) * | 2006-07-25 | 2009-02-17 | International Business Machines Corporation | Method and system for dynamic queue splitting for maximizing throughput of queue based operations while maintaining per-destination order of operations |
CN101834782A (zh) * | 2009-03-10 | 2010-09-15 | 思科技术公司 | 具有公平速率保证的队列共享 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493347B2 (en) * | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
IL125271A0 (en) * | 1998-07-08 | 1999-03-12 | Galileo Technology Ltd | Head of line blocking |
US6771601B1 (en) * | 2000-01-31 | 2004-08-03 | International Business Machines Corporation | Network switch having source port queuing and methods, systems and computer program products for flow level congestion control suitable for use with a network switch having source port queuing |
US7236489B1 (en) | 2000-04-27 | 2007-06-26 | Mosaid Technologies, Inc. | Port packet queuing |
US6856595B1 (en) * | 2000-05-19 | 2005-02-15 | Mosaid Technologies, Inc. | Method and apparatus for providing input back pressure in an output buffered switch |
US20020089994A1 (en) | 2001-01-11 | 2002-07-11 | Leach, David J. | System and method of repetitive transmission of frames for frame-based communications |
US20030012214A1 (en) | 2001-07-09 | 2003-01-16 | Nortel Networks Limited | Hybrid time switch as a rotator tandem |
US7248593B2 (en) * | 2001-09-25 | 2007-07-24 | Intel Corporation | Method and apparatus for minimizing spinlocks and retaining packet order in systems utilizing multiple transmit queues |
US7020133B2 (en) * | 2002-01-03 | 2006-03-28 | Integrated Device Technology | Switch queue predictive protocol (SQPP) based packet switching method |
US6765867B2 (en) | 2002-04-30 | 2004-07-20 | Transwitch Corporation | Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device |
US7782885B1 (en) | 2002-12-10 | 2010-08-24 | Cisco Technology, Inc. | System and method for queue management using queue sets |
JP2005124166A (ja) * | 2003-09-10 | 2005-05-12 | Delta Networks Inc | WLAN用QoSベース負荷バランスポリシー |
KR100716184B1 (ko) | 2006-01-24 | 2007-05-10 | 삼성전자주식회사 | 네트워크 프로세서에서의 큐 관리 방법 및 그 장치 |
US20080025234A1 (en) | 2006-07-26 | 2008-01-31 | Qi Zhu | System and method of managing a computer network using hierarchical layer information |
US7864818B2 (en) | 2008-04-04 | 2011-01-04 | Cisco Technology, Inc. | Multinode symmetric load sharing |
JP4465394B2 (ja) | 2008-04-08 | 2010-05-19 | 富士通株式会社 | パケット中継装置、パケット中継方法およびパケット中継プログラム |
US8031606B2 (en) * | 2008-06-24 | 2011-10-04 | Intel Corporation | Packet switching |
US8112559B2 (en) * | 2008-09-30 | 2012-02-07 | International Business Machines Corporation | Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment |
US8904028B2 (en) | 2009-07-17 | 2014-12-02 | Intel Corporation | Scalable cluster router |
US9813529B2 (en) | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9602439B2 (en) | 2010-04-30 | 2017-03-21 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with a switch fabric |
JP5665974B2 (ja) | 2010-05-07 | 2015-02-04 | コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッドConversant Intellectual Property Management Inc. | 単一のバッファを用いて複数のメモリ素子を同時にリードする方法及び装置 |
US20120307641A1 (en) | 2011-05-31 | 2012-12-06 | Cisco Technology, Inc. | Dynamic Flow Segregation for Optimal Load Balancing Among Ports in an Etherchannel Group |
-
2010
- 2010-11-18 US US12/949,097 patent/US8565092B2/en active Active
-
2011
- 2011-08-18 CN CN201180055535.3A patent/CN103222242B/zh active Active
- 2011-08-18 WO PCT/US2011/048185 patent/WO2012067684A1/en active Application Filing
- 2011-08-18 EP EP11754781.0A patent/EP2641362B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002005494A1 (en) * | 2000-07-07 | 2002-01-17 | Entridia Corporation | High speed packet processing architecture |
US20070014240A1 (en) * | 2005-07-12 | 2007-01-18 | Alok Kumar | Using locks to coordinate processing of packets in a flow |
US7493428B2 (en) * | 2006-07-25 | 2009-02-17 | International Business Machines Corporation | Method and system for dynamic queue splitting for maximizing throughput of queue based operations while maintaining per-destination order of operations |
CN101834782A (zh) * | 2009-03-10 | 2010-09-15 | 思科技术公司 | 具有公平速率保证的队列共享 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106062726A (zh) * | 2014-03-21 | 2016-10-26 | 思科技术公司 | 用于数据中心交换机的流感知缓冲区管理 |
CN106062726B (zh) * | 2014-03-21 | 2020-10-13 | 思科技术公司 | 用于数据中心交换机的流感知缓冲区管理 |
CN107005488A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 通用队列 |
CN105812153A (zh) * | 2015-01-15 | 2016-07-27 | 联发科技股份有限公司 | 用于访问跨平台服务的通信系统及方法 |
CN106209679B (zh) * | 2015-03-31 | 2021-05-11 | 马维尔亚洲私人有限公司 | 用于使用多个链接的存储器列表的方法及装置 |
CN106209679A (zh) * | 2015-03-31 | 2016-12-07 | 凯为公司 | 用于使用多个链接的存储器列表的方法及装置 |
US11082366B2 (en) | 2015-03-31 | 2021-08-03 | Marvell Asia Pte, Ltd. | Method and apparatus for using multiple linked memory lists |
CN105550523A (zh) * | 2015-12-28 | 2016-05-04 | 上海携程商务有限公司 | 数据处理方法 |
CN109565455A (zh) * | 2016-06-02 | 2019-04-02 | 马维尔以色列(M.I.S.L.)有限公司 | 具有高速缓存的分组存储器中的分组描述符存储 |
CN109565455B (zh) * | 2016-06-02 | 2023-09-26 | 马维尔以色列(M.I.S.L.)有限公司 | 具有高速缓存的分组存储器中的分组描述符存储 |
CN111131089A (zh) * | 2019-12-24 | 2020-05-08 | 西安电子科技大学 | 改善多播业务hol阻塞的队列管理方法 |
CN111131089B (zh) * | 2019-12-24 | 2021-07-27 | 西安电子科技大学 | 改善多播业务hol阻塞的队列管理方法 |
CN111935658A (zh) * | 2020-07-16 | 2020-11-13 | 北京思特奇信息技术股份有限公司 | 一种解决消息交互中拥塞的方法及系统 |
CN111935658B (zh) * | 2020-07-16 | 2022-01-18 | 北京思特奇信息技术股份有限公司 | 一种解决消息交互中拥塞的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2012067684A1 (en) | 2012-05-24 |
EP2641362A1 (en) | 2013-09-25 |
US8565092B2 (en) | 2013-10-22 |
US20120127860A1 (en) | 2012-05-24 |
CN103222242B (zh) | 2016-02-10 |
EP2641362B1 (en) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103222242A (zh) | 用于避免线端阻塞的动态流重新分布 | |
US11784920B2 (en) | Algorithms for use of load information from neighboring nodes in adaptive routing | |
EP1774714B1 (en) | Hierarchal scheduler with multiple scheduling lanes | |
US9077466B2 (en) | Methods and apparatus for transmission of groups of cells via a switch fabric | |
JP5431467B2 (ja) | 特定のトラフィックフローにバックプレッシャーフロー制御を提供すること | |
WO2016091029A1 (zh) | 一种堆叠系统的流量转发的方法及装置 | |
US9639403B2 (en) | Receive-side scaling in a computer system using sub-queues assigned to processing cores | |
EP2676189B1 (en) | Sorting | |
CN113498106A (zh) | 一种时间敏感网络tsn流的调度方法及装置 | |
US9954771B1 (en) | Packet distribution with prefetch in a parallel processing network device | |
US20170063733A1 (en) | Systems and methods for performing packet reorder processing | |
CN101374109B (zh) | 一种报文调度方法和调度装置 | |
US9374303B1 (en) | Method and apparatus for processing multicast packets | |
US10033666B2 (en) | Techniques for virtual Ethernet switching of a multi-node fabric | |
US7769026B2 (en) | Efficient sort scheme for a hierarchical scheduler | |
US10185675B1 (en) | Device with multiple interrupt reporting modes | |
US20160099881A1 (en) | Packet storage distribution based on available memory | |
Vasiliadis et al. | Class‐Based Weighted Fair Queuing Scheduling on Dual‐Priority Delta Networks | |
US11558289B2 (en) | Hyperscalar packet processing | |
KR101014977B1 (ko) | 링크통합 기능에서 로드밸런싱 방법 | |
Wang et al. | Succinct priority indexing structures for the management of large priority queues | |
Sun et al. | Attendre: mitigating ill effects of race conditions in openflow via queueing mechanism | |
WO2019096246A1 (zh) | 调度数据的方法和交换设备 | |
CN117560433A (zh) | Dpu中报文转发保序方法、装置、电子设备和存储介质 | |
Dai | Product‐Form Solutions for Integrated Services Packet Networks and Cloud Computing Systems |
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 |