CN107592966B - 对网络设备中的输出队列所使用的共享存储器的动态保护 - Google Patents

对网络设备中的输出队列所使用的共享存储器的动态保护 Download PDF

Info

Publication number
CN107592966B
CN107592966B CN201680027193.7A CN201680027193A CN107592966B CN 107592966 B CN107592966 B CN 107592966B CN 201680027193 A CN201680027193 A CN 201680027193A CN 107592966 B CN107592966 B CN 107592966B
Authority
CN
China
Prior art keywords
queue
pool
dynamic threshold
packet
unused
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.)
Active
Application number
CN201680027193.7A
Other languages
English (en)
Other versions
CN107592966A (zh
Inventor
莫哈玛德扎·阿里扎德赫·阿塔尔
维诺德·弥图拉
克里施南·斯巴玛尼
乔治斯·阿基斯
彼得·纽曼
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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
Priority claimed from US14/710,822 external-priority patent/US10305819B2/en
Priority claimed from US14/710,974 external-priority patent/US9866401B2/en
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN107592966A publication Critical patent/CN107592966A/zh
Application granted granted Critical
Publication of CN107592966B publication Critical patent/CN107592966B/zh
Active 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/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation

Landscapes

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

Abstract

网络交换机包括缓冲器,用于存储链接到队列的网络分组,以将该分组馈送到与队列相关联的交换机的输出端口。缓冲器在多个业务池之间动态共享。网络交换机基于未使用的缓冲空间的量来确定每池动态阈值,并基于与队列相关联的池中可用的未使用的缓冲空间的量来确定每队列动态阈值。网络交换机接收分组,并且针对每个接收到的分组,如果(i)与该分组相关联的池的占用量小于相应的每池动态阈值,以及(ii)分组所前往的队列的占用量小于相应的每队列动态阈值,则网络交换机准许分组进入相关联的池以及分组所前往的队列,否则丢弃该分组。

Description

对网络设备中的输出队列所使用的共享存储器的动态保护
技术领域
本公开一般涉及共享网络设备中的输出队列所使用的资源。
背景技术
网络交换机将传入的网络分组存储在缓冲存储器中,并将所存储的分组引导到共享交换机中的缓冲存储器的各种输出队列。网络交换机优选地防止在缓冲器被超额订购时任何单个输出队列占用比其公平份额更多的共享缓冲存储器,但是如果缓冲器未被超额订购(oversubscribe),则允许单个队列占用比其公平份额更多的共享缓冲存储器来处理传入的脉冲。传统的缓冲共享技术过于简单,因为它们没有考虑到这样的事实:网络分组可能落入多个不同的业务类别(例如,可能具有不同优先级和缓冲存储需求的语音、视频和数据)。此外,传统的缓冲共享技术仅适用于单播业务,因此忽略了多播业务引起的复杂性。
附图说明
图1是根据示例实施例的可以实现针对网络设备中的输出队列所共享的资源的动态保护的实施例的示例网络环境的框图。
图2是根据示例实施例的被配置为执行与对网络设备中的输出队列所共享的资源的动态保护相关的操作的网络设备(例如网络交换机或路由器)的框图。
图3是根据示例实施例的在网络设备中实现的网络业务处理架构,其使用“池”来结合不同的网络业务类来处理单播和多播网络业务。
图4是根据第一实施例的用于实现对资源的动态保护的网络设备的分组流布置的图示。
图5是根据第一实施例的利用图4的分组流布置执行的资源动态保护方法的流程图。
图6是根据第二实施例的用于实现对资源的动态保护的网络设备的分组流布置的图示。
图7A和7B是根据第二实施例的利用图6的分组流布置执行的资源动态保护方法的流程图。
具体实施方式
概览
在实施例中,网络交换机包括具有缓冲空间的缓冲器,该缓冲空间用于存储链接到队列的网络分组,其中队列用于将分组馈送到与队列相关联的交换机的输出端口。缓冲空间在多个业务池之间被动态共享。网络交换机确定每池动态阈值,其基于未使用的缓冲空间的量来定义池占用量的上限。网络交换机还基于与队列相关联的池中可用的未使用的缓冲空间的量来确定每队列动态阈值,其定义队列占用量的上限。网络交换机接收分组,并且针对每个接收到的分组,如果(i)与该分组相关联的池的占用量小于相对应的每池动态阈值以及(ii)分组所前往的队列的占用量小于相对应的每队列动态阈值,则准许该分组进入到相关联的池和该分组所前往的队列。对于每个接收到的分组,如果条件(i)和条件(ii)没有都被满足,则网络交换机丢弃该分组。
在另一实施例中,网络交换机包括具有缓冲空间的缓冲器以及用于将网络分组链接到队列的分组描述符(PD)存储器,该缓冲空间用于存储网络分组,队列用于将分组馈送到交换机的输出端口。缓冲空间在多个业务池之间被共享,PD在多个业务池之间被共享。网络交换机接收前往与给定池相关联的多个队列的多播分组。网络交换机根据池动态阈值确定:在给定池中是否存在分组可用的未使用的缓冲空间;针对每个队列,基于该队列的队列动态阈值来确定在该队列中是否存在分组可用的未使用的缓冲空间,基于针对PD的池动态阈值确定是否存在给定池可用的未使用的PD;对于每个队列,基于该队列的针对PD的队列动态阈值确定是否存在该队列可用的未使用的PD。网络交换机只准许分组进入通过所有确定操作的队列。
示例实施例
首先参考图1,可以实现针对网络设备中的输出队列所共享的资源的动态保护的实施例的示例网络环境100的框图。网络环境100包括可包含一个或多个广域网(WAN)(例如,互联网)和一个或多个局域网(LAN)的通信网络102。例如,网络102还包括诸如网络交换机和/或网络路由器之类的多个网络设备104(其中的每一者都可以被称为网络设备104)以及一个或多个客户端设备106。每个网络设备104从网络102接收网络分组(例如,互联网协议(IP)分组)形式的网络业务110,并且将接收到的网络业务作为输出业务/分组112交换/路由到网络中的各种目的地。网络业务110/112可以包括被跨各种不同业务类别的网络业务而分类的IP分组。不同的类别可以基于优先级/服务质量(QoS)来在不同类型的网络业务之间进行区分。不同的类别可以应用于以各种形式出现的网络业务,例如但不限于语音、视频、数据、电子邮件等。例如,本文所使用的业务类别可以包括基于IEEE 802.1Q中定义的服务优先级类别的业务类别,但可以使用其他业务类别。IP分组可以包括分别要被交换/路由到一个目的地的单播IP分组,以及分别要被交换/路由到多个目的地的多播IP分组。
如下面将更全面地描述的,网络设备104将接收到的分组存储在分组缓冲器(图1中未示出)中,并且将所存储的分组从分组缓冲器引导到供给(feed)网络中的各种目的地的各种输出队列(图1中也未示出)。网络设备104可以通过使用分组描述符将分组缓冲器中的分组链接到输出队列。分组缓冲器和分组描述符表示在输出队列之间共享的受限或有限的资源。分组缓冲器和分组描述符在繁忙的业务条件下能够被耗尽,但在清闲的业务条件下也可能被利用。根据本文所描述的实施例,网络设备104通过使用动态阈值来实现对共享分组缓冲器和分组描述符的动态保护,其中动态阈值考虑分组可能落入的不同网络类别以及分组是单播分组还是多播分组。
参考图2,示出了网络设备104(例如网络交换机或路由器)的示例框图,其被配置为执行用于实现本文所描述的动态缓冲保护的操作。本文所使用的术语“网络交换机”被广泛地解释为表示网络交换机和网络路由器两者。网络设备104有许多可能的配置,图2仅表示示例。网络设备104包括耦接到控制器或分组处理器208的多个物理网络端口P1-PN。网络端口P1-PN可以包括例如以太网端口和/或无线端口以允许网络设备104通过各种网络连接进行通信。控制器/分组处理器208可以在例如被配置为执行本文所描述的分组处理的专用集成电路(ASIC)中实现。
控制器208包括控制逻辑212/控制电路212,控制逻辑212/控制电路212具有用于控制网络设备104并通常执行分组交换的通用控制逻辑,以及用于实现本文(例如,结合图5、7A和7B)所描述的动态缓冲和分组描述符保护操作的动态缓冲保护逻辑。控制器208还包括针对缓冲器214的用于存储经由端口P1-PN接收到的分组以及链接到所存储的分组的输入和输出队列的随机存取存储器(RAM)、转发(FWD)表216、分组描述符(PD)存储器217、以及由控制逻辑212生成和使用的数据218。数据218可以包括:与缓冲器214、链接到缓冲器的输出队列、和分组描述符中的每一者相关联的各种计算量度;每池和每队列动态阈值;以及alpha参数(全部在下文描述)。控制器208还可以包括用于存储由控制器使用的各种静态/预定参数的非易失性存储器(未示出),或者这些参数可以在初始化期间从诸如管理处理器(未示出)之类的外部源获得。
在另一实施例中,控制逻辑212可以包括诸如微控制器之类的处理器(未示出)以及包括编码有包括计算机可执行指令的软件的计算机可读存储介质的存储器,其中计算机可执行指令在被(处理器)执行时使得处理器执行本文所描述的操作。
在操作中,网络设备104在网络端口P1-PN中的输入端口处接收网络分组,并基于存储在转发表216中的信息将分组交换/路由到网络端口中的输出端口。为了协助这样的交换操作,网络设备将接收到的网络分组存储在缓冲器214中,并使用来自分组描述符存储器217的分组描述符将分组链接到供应输出端口中的相应一者的输出队列。控制逻辑212使用动态保护操作来管理分组被准许进入到缓冲器214和输出队列中的方式,以及使用分组描述符的方式,如下面将详细描述的。
如上所述,在网络设备104处接收到的网络业务110可以包括落入与不同QoS/优先级级别对齐的各种不同网络业务类别的IP分组。另外,网络业务110可以是其中每个接收到的IP分组前往一个输出端口Pi的单播业务,或者是其中每个接收到的IP分组被复制或扇出(fanned-out)到输出端口P1-PN中的多个的多播业务。在高级别处,网络设备104实现或使用业务“池”来结合各种不同的网络业务类别处理单播和多播网络业务,如结合图3所描述的。
参照图3,示出了在网络设备104中实现的示例网络业务处理体系结构300,其使用“池”来结合不同的网络业务类处理单播和多播网络业务。图3的示例假定网络业务可以被分类为多个网络类别C1-C8。因此,架构300动态地将网络设备资源(例如,缓冲器214)划分到多个单播池UP1-UP8和多个多播(mcast)池MCP1-MCP8中,但可以使用更多或更少的池来处理更多或更少的网络业务类别。分类在网络类别C1-C8中的单播网络业务(例如,单播IP分组)分别使用单播池UP1-UP8,而分类在网络类别C1-C8中的多播网络业务(例如,mcastIP分组)分别使用多播池MC1-MC8。在该示例中,除了每个网络业务类别被分配在单播池和mcast池两者中的情况之外,池是被分配给相应的网络业务类别的一组资源(例如,缓冲器214中的空间和下文描述的其他资源)。架构300包括第一级业务混合器M1-M8,每个混合器Mi用于将存储在单播池UPi中的单播业务与存储在相应的多播池MCPi中的多播业务混合,并将经混合的输出提供到第二级或输出业务混合器OM,其将业务输出到各种业务流所前往的输出端口。在另一实施例中,省略了第一级业务混合器M1-M8,并单独选择单播池UP1-UP8中的全部和多播池MCP1-MCP8中的全部以供输出业务混合器OM输出。
参考图4,示出了根据第一实施例的用于实现动态缓冲保护的网络设备104的分组流布置400。例如,第一实施例实现对网络设备104中的缓冲器214的动态保护,并且可以被用于处理单播业务。分组流布置400包括:动态阈值计算器402,用于基于缓冲器和队列度量来确定/计算每池和每队列动态阈值;准许块404,用于基于每池和每队列动态阈值来确定是否准许接收到的网络分组110进入;网络分组输出队列Q1-QP(其中P小于或等于图2中的N),每个队列保持到经准许的网络分组的链接,并且将链接到其的分组(即,在其中排队的)馈送到与输出队列相关联的网络端口P1-PP中的一个或多个输出端口;分组引导器406,用于将经准许的分组引导和链接到合适的输出队列;以及分组描述符存储器217,用于将分组链接到输出队列。虽然在图4中仅示出了一组输出队列,但应理解的是,在任何给定时间,每个池(同时,缓冲器214被动态划分到的其他池中的全部)可以具有其自身的一组多达N个的输出队列或者与其相关联,因为针对网络交换机104存在N个网络端口,并且每个池可以访问N个网络端口中的全部。
在分组流布置400的示例中,每个输出队列Qi可以是从分组描述符存储器217取得的分组描述符的单链表,其中每个分组描述符包括指向存储在缓冲器214的池(例如,UPi)中的对应分组的第一指针以及指向输出队列Qi中的下一个分组描述符的第二指针。为了将已存储在缓冲器214中的分组排队/链接到输出队列Qi,分组引导器406访问分组描述符存储器217中的空闲(未使用)分组描述符,将分组描述符的第一指针设置指向缓冲器214中的分组的地址,并且将先前链接到输出队列的最后一个分组描述符的第二指针设置指向刚刚访问的分组描述符。因此,当链接到输出队列Qi中的分组描述符被按顺序遍历(traverse)时,链接到那些分组描述符的分组被按顺序访问并被馈送到与输出队列相关联的输出端口。下文将结合图5描述图4的分组流布置的操作。
参考图5,示出了由图4的分组流布置实现的对缓冲资源的动态保护的示例方法500的流程图。方法500假设网络业务在一段时间内被网络设备104接收、准许和输出的稳定状态。
方法500维护/跟踪各种缓冲器和队列相关的度量并且可以访问由该方法的操作共同使用的各种预定的α参数。例如,方法500维护/跟踪以下度量(a)-(d):
a.缓冲器214中可用于存储针对所有池的分组的未使用的缓冲空间(也称为“全局空闲”缓冲空间)的总量。全局空闲缓冲空间可以由未使用的缓冲空间的空闲列表指示符指示。在分组被准许进入(并存储在缓冲区中)时空闲列表减少该分组所消耗的缓冲空间的量,并且在分组离开分组在排队的输出队列时增加相同的量。全局空闲缓冲空间的范围从当在其中没有存储分组时要在池之间共享的最大量未使用的缓冲空间到在分组完全填满缓冲空间时的最小量未使用的缓冲空间(例如,零)。
b.与每个池相关联的每个输出队列(实际上)所使用的缓冲空间的量,即,输出队列长度的度量或每个输出队列中排队的分组的量。每个输出队列所使用的缓冲空间的量也被称为“队列的分组占用量”,或者更简单地称为“队列占用量”。
c.针对每个池使用的缓冲空间(实际上)的量(也称为“池的分组占用量”,或者更简单地称为“池占用量”)。用于给定池的缓冲空间的量是针对该池的所有输出队列中的分组所使用的缓冲空间的总和(即,针对给定池的所有队列占用量的总和)。
d.在每个池中可用于存储分组的未使用的缓冲空间的量=每池动态阈值-用于相应池的缓冲空间的量。上述的每池动态阈值在操作505(下面描述)中确定。
除了上述动态度量之外,方法500还可以访问由控制器208存储的该方法用于“队列旁路(bypass)”的静态队列阈值或“队列最小值”,如下所述。静态队列阈值表示由少量分组(例如10个分组)消耗的缓冲空间的量,但可以使用其他阈值。
在505处,针对每个池,动态阈值计算器406将每池动态阈值确定/计算为:
每池动态阈值=每池参数*全局空闲缓冲空间。
给定的每池动态阈值定义了池占用量的上限,其中该上限是基于所有池可用的未使用的缓冲空间(全局空闲缓冲空间)的量。更具体地,每池动态阈值与全局空闲缓冲空间成比例。每池参数是预定的参数并且可能对于每个池不同。每池参数可以被设置为不同的值以考虑与池相对应的不同类别的优先级。较高优先级的池(类别)可以被赋予较高的每池参数,这使得较高比例的全局空闲缓冲空间可用于较高优先级的池。每池动态阈值是动态的,因为,随着分组被准许进入池和从池中移除(由于这些操作对全局空闲缓冲空间的影响),这些阈值会随着时间的推移而增加和减少。
在510处,动态阈值计算器402将每个池中的针对每个输出队列的每队列动态阈值确定/计算为:
每队列动态阈值=每队列参数*与队列关联的池中的未使用的缓冲空间的量。
每队列动态阈值基于与输出队列相关联的池中可用的未使用的缓冲空间的量来定义队列占用量的上限。更具体地,输出队列的每队列动态阈值与在与该输出队列相关联的池中的未使用的缓冲空间的量成比例。每个池中的每个输出队列都有不同的每队列动态阈值;然而,在一个实施例中,每队列参数在所有输出队列和所有池中可以是相同的。每队列动态阈值是动态的,因为,随着分组被添加到池中的输出队列以及从输出队列中移除,这些阈值随着时间的推移而增加和减少,这影响了在与输出队列相关联的池中的未使用的缓冲空间的量。
请注意,在每队列动态阈值的等式中,与输出队列关联的池中的未使用的缓冲空间的量由下式给出:相应的每池动态阈值(从505)-用于相应池的缓冲空间的量(即,池占用量,它是跟踪的度量)。
以上等式中使用的每池和每队列参数被称为alpha(α)参数。每个alpha参数可以具有落在α=0.5-2的范围内的典型值,但可以使用在该范围之外的其他值。
在515处,准许块404接收与给定池相关联并且前往与该池相关联的给定输出队列的分组。准许块404基于分组落入的网络业务的类别来标识(i)相关联的或给定的池,以及(ii)基于分组所前往的输出端口来标识给定输出队列。
在可选操作520中,准许块404或动态阈值计算器402将给定输出队列的每队列动态阈值减少0到预定比例的每队列动态阈值之间的随机量。操作520是可用于帮助改善“输入公平性”的可选操作。例如,假定通过网络设备104的多个输入端口接收到的全部分组都以相同的速率被接收,都被发送到单个输出队列(并且因此输出端口),并且都过载该输出队列。期望鼓励所有输入端口对拥塞的输出队列进行近似公平的访问。如果所有输入端口被同步,则所有输出带宽(输出队列中的排队)很可能被支配其他输入端口的单个输入端口消耗。换言之,相同的输入端口会每次将分组插入到一个输出队列中。将随机噪声添加到每队列动态阈值(例如,针对每个分组将阈值减少随机量)起到作用或使哪个输入端口将分组插入到输出队列中随机化,使得一个给定输入端口不支配输出队列。在520处,在每个分组到达时,每队列动态阈值(其限定最大队列长度)被减少从0到可配置最大值(例如20%)的均匀随机量(这相当于在输出队列的前20%处应用丢弃概率,在输出队列的80%长度处丢弃概率为0,并且在动态最大队列阈值处线性增加至100%的丢弃概率)。
在525处,准许块404基于对应的每池动态阈值来确定在给定池中是否存在分组可用的未使用的缓冲空间,例如,如果给定池的分组占用量小于对应的每池动态阈值。
在530处,准许块404基于相应的每队列动态阈值来确定是否存在与给定池相关联的给定输出队列可用的未使用的缓冲空间,例如,如果给定输出队列的分组占用量小于相应的每队列动态阈值。
在532处,准许块404确定给定输出队列的分组占用量是否小于静态队列阈值。这是“队列旁路”测试。
在535处,如果532处的队列旁路测试通过,或者如果525和530处的测试都通过,则准许块404准许接收到的分组进入。准许块404将给定池中的分组存储在缓冲器214中。另一方面,如果队列旁路测试失败并且在525和530处的测试中的任一者也失败(即,测试525和530未都通过),则准许块404丢弃该分组。在532处的测试被称为“队列旁路”测试,因为如果成功的话,其关于分组准许绕过测试525和530的结果。
在另一实施例中,省略了队列旁路测试,并且仅根据测试525和530进行准许。在该实施例中,如果在525和530处的测试都通过,则准许块404准许接收到的分组进入。如果在525和530两个测试未都通过(即,任何一者测试失败),则准许块404丢弃该分组。
在540处,假定分组被准许进入,则引导器406将经准许的分组引导并链接到给定的输出队列,如上文结合图4所描述的(例如,通过将分组描述符链接到给定的输出队列中),使得分组依次被馈送到与给定的输出队列(即由给定的输出队列供应的)相关联的输出端口。
在545处,假定分组被准许进入,则度量(a)-(d)被适当地更新以反映分组已经被添加到给定池和该池中给定的输出队列,从而增加相应的池和队列占用量并减少未使用的池和全局可用空间。
在550处,在后台操作中,每当分组离开输出队列(即,被从输出队列移除或出队)时,分组也被移除或标记为已从缓冲器214中的其池中移除。因此,度量(a)-(d)被适当地更新以反映分组已经从其输出队列和池中移除,因此减少了相应的池和队列占用量并增加了未使用的池。
随着分组在网络设备104处被接收并且从输出队列输出,方法500随时间推移被重复,这使得每池和每队列动态阈值随时间变化。在方法500的给定或“当前”迭代中,上述各种变量/动态参数(例如,全局空闲缓冲空间、各种池中可用的未使用缓冲空间的量等)可被称为用于该迭代的“当前”参数(例如,“当前”全局空闲缓冲空间、各种池可用的“当前”未使用的缓冲空间的量等)。
应理解的是,可以在使用或不使用池之间共享的缓冲器的实施例中执行上述随机化操作520。例如,操作520可以在包括缓冲器的网络设备中执行,该缓冲器具有用于存储链接到队列的网络分组的缓冲空间,以用于将分组馈送到与队列相关联的交换机的输出端口,其中缓冲空间在队列之间被动态共享,但不使用池。在这样的实施例中,网络设备104针对每个队列通过将可用于存储分组的未使用的缓冲空间的量乘以队列的相应队列参数来确定定义了队列的队列占用量的上限的第一动态阈值,如例如结合操作510所描述的。然后,当网络设备104接收到前往给定队列的分组时,网络设备将给定队列的第一动态阈值减少随机量,以产生给定队列的第二动态阈值,如例如结合操作520所描述的。然后,如果给定队列的队列占用量小于第二/随机减少的动态阈值,则网络设备104准许接收到的分组进入给定队列,否则可以丢弃接收到的分组(如果队列占用量不小于第二动态阈值)。
参考图6,示出了根据第二实施例的用于实现动态缓冲保护的网络设备104的分组流布置600。例如,第二实施例实现了对网络设备104中的缓冲器和分组描述符资源的动态保护,并且可以用于处理多播业务。分组流分布600类似于分组流分布400,除了分组流分布600包括:输入缓冲器602,用于在多播分组到达网络设备的输入端口时接收存储在缓冲器214中的指向多播分组110的引用/指针104(在决定分组是否被准许进入到分组前往的输出队列之前)。以及复制器604,用于对存储在输入缓冲器中的多播分组执行分组准许决定,并在与多播分组前往的输出端口相关联的多个输出队列中复制经准许的多播分组。类似于缓冲器214中的缓冲空间,分组描述符存储器217的分组描述符在缓冲器214的所有池之间动态共享或被其动态共享。下面结合图7A和7B描述图6。
参考图7A和7B,示出了由图6的分组流布置实现的对缓冲器和分组描述符资源的动态保护的示例方法700的流程图。方法700假设多播网络分组在一段时间内被网络设备104接收、准许(或丢弃)、以及(如果被准许的话)输出的稳态条件。方法700维护/跟踪如上所述的池和队列度量(a)-(d),还维护/跟踪与分组描述符相关联的附加度量(e)-(h),包括:
e.所有池可用的未使用的分组描述符的总数(也称为“全局空闲”分组描述符)。全局空闲分组描述符可以由未使用的分组描述符的空闲列表指示符指示。分组描述符的空闲列表在分组被准许进入并且通过使用分组描述符被链接到(即在其中排队)输出队列时减少,并且在分组离开该分组排队的输出队列从而释放相关联的分组描述符时增加。全局空闲分组描述符(未使用的分组描述符的数目)的范围从在在队列中不存在被使用的分组描述符时的要在池之间共享的最大数目未使用的分组描述符到在分组描述符存储器217中的全部分组描述符都被链接到队列时的最小数目未使用的分组描述符(例如,零)。
f.与每个池关联的每个输出队列(实际上)所使用的分组描述符的数目。
g.(实际上)用于每个池的分组描述符的数目。用于给定池的分组描述符的数目是用于该池的所有输出队列的分组描述符的数目的总和。
h.每个池可用的未使用的分组描述符的数目=针对分组描述符的每池动态阈值-用于相应池的分组描述符的数目。针对分组描述符的每池动态阈值在操作705(如下描述)中被确定。
在705处(类似于操作505),动态阈值计算器402以针对操作505所描述的方式确定关于缓冲存储设备的每池动态阈值。
在710处(类似于操作510),动态阈值计算器402以针对操作510所描述的方式确定关于分组存储设备的每队列动态阈值。
在715处,动态阈值计算器402将针对每个池的关于(即,针对)分组描述符(PD)的每池动态阈值确定/计算为:
针对分组描述符的每池动态阈值=针对分组描述符的每池参数*全局空闲分组描述符。
给定的针对分组描述符的每池动态阈值定义了给定池的分组描述符的最大数目,其基于(例如,与其成比例)所有池可用的未使用的分组描述符(全局空闲分组描述符)的数目。针对分组描述符的每池参数是预定的参数并且对于每个池可能不同。针对分组描述符的每池动态阈值的每池参数可以被设置为不同的值以考虑与这些池相对应的不同类别的优先级。较高优先级池(类别)可以被赋予较高的每池参数,这使得较高比例的未使用的分组描述符可用于较高优先级的池。针对分组描述符的每池动态阈值是动态的,因为随着分组被准许进入池中和从池中移除以及链接到池中的相关联的输出队列(由于这些动作对全局空闲分组描述的影响),这些阈值随时间的推移而增加和减少。
在720处,动态阈值计算器402将每个池中的每个输出队列的针对分组描述符的每队列动态阈值确定/计算为:
针对分组描述符的每队列动态阈值=针对分组描述符的每队列参数*与输出队列相关联的池的未使用的分组描述符的数目。
给定的针对分组描述符的每队列动态阈值基于(例如,与其成比例)在与输出队列相关联的池中可用的未使用的分组描述符的数目来定义相对应的输出队列的分组描述符的最大数目。对于每个池中的每个输出队列,存在不同的针对分组描述符的每队列动态阈值;然而,在一个实施例中,针对分组描述符的每队列参数在所有输出队列和所有池中可以是相同的。针对分组描述符的每队列动态阈值是动态的,因为随着分组(即,分组描述符)被添加到池中的输出队列或从输出队列中移除(其影响了与输出队列相关联的池中未使用的分组描述符的数目),这些阈值会随着时间的推移而增加和减少。
用于根据操作715和720计算针对分组描述符的每池和每队列动态阈值的每池和每队列参数被称为分组描述符动态阈值的alpha参数,并且可以具有在0.5-2的范围内的典型值,但可以使用在该范围之外的值。
在725处,复制器604通过使用输入缓冲器602中的指向其的指针/引用来访问下一个多播分组,其前往与给定池相关联的多个输出队列。复制器604基于多播分组落入的类别来标识给定池并基于多播分组前往的多个端口来标识多个输出队列。
在730-745处,复制器604基于如下所述的针对多个输出队列中的每一者执行的一系列或一组测试来确定是否准许多播分组进入多个输出队列。
在730处,复制器604基于在705处计算的关于存储设备的相应的每池动态阈值(例如,确定给定池的分组占用量是否小于相应的每池动态阈值)来确定在给定池中是否存在分组可用的未使用的缓冲空间。
在735处,针对多个输出队列中的每个输出队列,复制器604基于在710处计算的关于存储设备的相应的每队列动态阈值(例如,确定每个输出队列的分组占用量是否小于相应的每队列动态阈值)来确定是否存在该输出队列可用的未使用的缓冲空间。
在740处,复制器604基于在715处计算的相应的针对分组描述符的的每池动态阈值(例如,确定用于给定池的分组描述符的数目是否小于相应的针对分组描述符的每池动态阈值)来确定是否存在给定池可用的未使用的分组描述符。
在745处,针对多个输出队列中的每个输出队列,复制器604基于在720处计算的相应的针对分组描述符的每队列动态阈值(例如,确定给定输出队列所使用的分组描述符的数目是否小于相应的针对分组描述符的每队列动态阈值)来确定是否存在该输出队列可用的未使用的分组描述符。
在750处,复制器604仅准许多播分组进入在730、735、740和745处的所有确定测试/操作都通过了的多个输出队列中的那些输出队列中。假定准许进入至少一个输出队列,复制器604通过使用来自分组描述符存储器217的相应分组描述符将所存储的分组链接到通过了所有测试的输出队列中的每一者。另一方面,如果分组未被准许进入到多个输出队列中的至少一个,则将分组从缓冲器214中移除,例如,通过将空闲列表增加该分组所消耗的缓冲器中的缓冲空间的量。
在755处,假定分组被准许进入到至少一个输出队列中,则度量(a)-(h)被适当地更新以反映分组已被添加到给定池和该池中的(一个或多个)给定输出队列,从而(i)增加相应的池和输出队列占用量,减少未使用的池和全局空闲空间,以及(ii)减少全局空闲分组描述符,增加给定池中的输出队列所使用的分组描述符的数目,增加用于给定池的分组描述符的数目,并减少给定池可用的分组描述符的数目。
在760处,在后台操作中,每当分组离开输出队列(即,从输出队列移除或出队)时,度量(a)-(h)被适当更新以反映该动作,从而(i)减少相应的池和队列占用量,增加未使用的池和全局空闲空间,以及(ii)增加全局空闲分组描述符,减少给定池中的输出队列所使用的分组描述符的数目,减少用于给定池的分组描述符的数目,并增加给定池可用的分组描述符的数目。
在实施例中,动态阈值计算器402可以对在715和720处计算的针对分组描述符的每队列动态阈值执行多播扇出补偿。在多播中,复制器604将经准许的分组的单个副本存储在缓冲器214中,但是将分组多次(即对分组的扇出)链接到适当的输出队列。在平均扇出较大的情况下,这可能会限制对缓冲区214的利用。例如,在单播中,如果48个输出队列被超额订购,则未使用的缓冲器的量将为1/49(如果alpha参数为1.0的话)。在多播中,如果由于对多播流扇出47次而使得48个端口被超额订购,则缓冲器的一半将是未使用的,因为每个分组只有一个副本被存储在缓冲器中,但其链接到47个输出端口(即,输出队列)。这个效果可以通过测量每个业务类别(即,池)中所有分组的平均扇出来进行补偿。如上所述,方法700中维护/跟踪的度量包括每个池所使用/消耗的分组描述符的数目,并且度量可以被扩展为包括每个池中的分组的数目。通过将两者相除(即,(i)每个池所使用/消耗的分组描述符的数目与(ii)每个池中的分组的数目的比率)来给出平均扇出。为了用平均扇出进行补偿,针对分组描述符的每队列动态阈值分别被乘以平均扇出(例如,针对PD的队列动态阈值与上述比率、给定池可用的未使用的缓冲空间的量、以及队列参数的乘积成比例)。这给我们与用于单播计算相同的结果。
随着在网络设备104处接收分组并从输出队列输出分组,使得池和队列动态阈值以及针对分组描述符的池和队列动态阈值随时间变化,从而方法700随时间被重复。在方法700的给定或“当前”迭代中,上述各种变量/动态参数(例如,全局空闲缓冲空间、各种池可用的未使用的缓冲空间的量、全部池可用的未使用的分组描述符的数目、以及给定池可用的未使用的分组描述符的数目等)可以被称为用于该迭代的“当前”参数。
总之,动态阈值包括每队列动态阈值和每池动态阈值,用于处理多个业务类别(与池相对应)和多播业务。扇出补偿避免了多播业务的对分组缓冲的利用不足。而且,通过将噪声添加到每队列动态阈值来增强输入端口公平性。
总之,在一种形式中,提供了一种方法,在包括具有缓冲空间的缓冲器的网络交换机处,缓冲空间用于存储链接到队列的网络分组,队列用于将分组馈送到与队列相关联的交换机的输出端口,缓冲空间在多个业务池之间被动态地共享:确定每池动态阈值,每池动态阈值分别基于未使用的缓冲空间的量来定义每池占用量的上限;确定每队列动态阈值,每队列动态阈值基于与队列相关联的池中可用的未使用的缓冲空间的量来定义每队列占用量的上限;以及接收分组,并对于每个接收到的分组:如果(i)与分组相关联的池的占用量小于相应的每池动态阈值,并且(ii)分组所前往的队列的占用量小于相应的每队列动态阈值,则准许分组进入相关联的池以及分组所前往的队列;以及针对每个接收到的分组;以及如果条件(i)和条件(ii)没有都被满足,则丢弃分组。
在另一种形式中,提供了一种装置,包括:网络端口,用于从网络和向网络接收和发送网络分组;具有缓冲空间的控制器,缓冲空间用于存储链接到队列的网络分组,队列用于将分组馈送到与网络端口中的一些,缓冲空间在多个业务池之间被动态地共享,控制器被配置为确定每池动态阈值,每池动态阈值分别基于未使用的缓冲空间的量来定义每池占用量的上限;确定每队列动态阈值,每队列动态阈值基于与队列相关联的池中可用的未使用的缓冲空间的量来定义每队列占用量的上限;以及从输入端口接收分组,并对于每个接收到的分组:如果(i)相关联的池的占用量小于相应的每池动态阈值,并且(ii)分组所前往的队列的占用量小于相应的每队列动态阈值,则准许分组进入与分组相关联的池以及分组所前往的队列;以及如果不满足条件(i)和(ii)两者,则丢弃分组。
在又一种形式中,提供了一种方法,包括:在包括具有缓冲空间的缓冲器的网络交换机处,缓冲空间用于存储链接到队列的网络分组,队列用于将分组馈送到与队列相关联的交换机的输出端口,缓冲空间在队列之间被动态地共享:通过将可用于存储分组的未使用的缓冲空间的量乘以队列的相应队列参数来确定针对每个队列的第一动态阈值,第一动态阈值定义了队列的队列占用量的上限;接收前往给定队列的分组;将给定队列的第一动态阈值减少随机量以产生给定队列的第二动态阈值;以及如果给定队列的队列占用量小于第二动态阈值,则准许接收到的分组进入给定队列;以及如果队列占用量不小于第二动态阈值,则丢弃接收到的分组。
在其他形式中,提供了用指令编码的非暂态计算机可读存储介质。这些指令在被包括下述各项的网络设备处的网络设备的控制器处执行时:具有缓冲空间的缓冲器,缓冲空间用于存储链接到队列的网络分组,队列用于将分组馈送到与队列相关联的交换机的输出端口,缓冲空间在多个业务池之间被动态地共享,使得控制器:确定每池动态阈值,每池动态阈值分别基于未使用的缓冲空间的量来定义每池占用量的上限;确定每队列动态阈值,每队列动态阈值基于与队列相关联的池中可用的未使用的缓冲空间的量来定义每队列占用量的上限;以及接收分组,并对于每个接收到的分组:如果(i)相关联的池的占用量小于相应的每池动态阈值,并且(ii)分组所前往的队列的占用量小于相应的每队列动态阈值,则准许分组进入与分组相关联的池以及分组所前往的队列;以及针对每个接收到的分组;以及如果不满足条件(i)和(ii)两者,则丢弃分组。
在又一种形式中,提供了一种方法,包括:在包括具有用于存储网络分组的缓冲空间的缓冲器以及用于将网络分组链接到队列的分组描述符存储器的网络交换机处,队列将分组馈送到交换机的输出端口,其中,缓冲空间在多个业务池之间被共享并且PD在多个业务池之间被共享:接收前往与给定池相关联的多个队列的多播分组;基于池动态阈值来确定在给定池中是否存在分组可用的未使用的缓冲空间;针对每个队列,基于该队列的队列动态阈值来确定在该队列中是否存在分组可用的未使用的缓冲空间;基于针对PD的池动态阈值来确定是否存在给定池可用的未使用的PD;针对每个队列,基于该队列的针对PD的队列动态阈值来确定是否存在该队列可用的未使用的PD;以及仅准许分组进入通过全部确定操作的队列。
在又一种形式中,提供了一种装置,包括:网络端口,用于从网络和向网络接收和发送网络分组;以及耦接到网络端口的控制器,该控制器包括具有用于存储网络分组的缓冲空间的缓冲器以及用于将网络分组链接到队列的分组描述符存储器,队列将分组馈送到交换机的输出端口,其中,缓冲空间在多个业务池之间被共享并且PD在多个业务池之间被共享,该控制器被配置为接收前往与给定池相关联的多个队列的多播分组;基于池动态阈值来确定在给定池中是否存在分组可用的未使用的缓冲空间;针对每个队列,基于该队列的队列动态阈值来确定在该队列中是否存在分组可用的未使用的缓冲空间;基于针对PD的池动态阈值来确定是否存在给定池可用的未使用的PD;针对每个队列,基于该队列的针对PD的队列动态阈值来确定是否存在该队列可用的未使用的PD;以及仅准许分组进入通过全部确定操作的队列。
在又一种形式中,提供了用指令编码的非暂态计算机可读存储介质。这些指令在被包括下述各项的网络设备的控制器执行时:具有用于存储网络分组的缓冲空间的缓冲器以及用于将网络分组链接到队列的分组描述符存储器,队列将分组馈送到网络设备的输出端口,其中,缓冲空间在多个业务池之间被共享并且PD在多个业务池之间被共享,使得控制器接收前往与给定池相关联的多个队列的多播分组;基于池动态阈值来确定在给定池中是否存在分组可用的未使用的缓冲空间;针对每个队列,基于该队列的队列动态阈值来确定在该队列中是否存在分组可用的未使用的缓冲空间;基于针对PD的池动态阈值来确定是否存在给定池可用的未使用的PD;针对每个队列,基于该队列的针对PD的队列动态阈值来确定是否存在该队列可用的未使用的PD;以及仅准许分组进入通过全部确定操作的队列。
在又一种形式中,提供了一种方法,包括:在具有用于存储网络分组的缓冲器以及用于将网络分组链接到队列的分组描述符的网络交换机中,其中队列将分组馈送到与队列相关联的交换机的输出端口,其中,缓冲空间在多个业务池之间被共享并且PD在池之间被共享,其中多个业务池分别与多个业务类别中的相应一者相关联:接收前往与给定池相关联的多个队列的多播分组;确定给定池中是否存在分组可用的未使用的缓冲空间;针对每个队列,确定在该队列中是否存在分组可用的未使用的缓冲空间;确定是否存在给定池可用的未使用的PD;针对每个队列,确定是否存在该队列可用的未使用的PD;以及仅准许分组进入通过全部确定操作的队列。该方法还可以包括:确定每池动态阈值,其分别基于可用于存储所有池中的分组的当前未使用的缓冲空间的量来定义池占用量的上限的动态阈值,其中确定在给定池中是否存在分组可用的未使用的缓冲空间包括在给定池的占用量小于相应的每池动态阈值时确定在给定池中存在分组可用的未使用的缓冲空间。该方法还可以包括:确定每队列动态阈值,其基于与队列相关联的池中可用的当前未使用的缓冲空间的量来定义队列占用量的上限,其中,针对每个队列确定是否存在队列可用的未使用的缓冲空间包括在队列的占用量小于相应的每队列动态阈值时确定存在队列可用的未使用的缓冲空间。该方法还可以进一步包括:确定每池PD动态阈值,其分别基于所有池可用的当前未使用的PD的数目来定义池的PD的最大数目,其中确定是否存在给定池可用的未使用的PD包括在当前给定池所使用的PD的数目小于相应的每池PD动态阈值时确定存在给定池可用的未使用的PD。该方法还可以进一步包括:确定每队列PD动态阈值,其基于与队列相关联的池中可用的当前未使用PD的数目来定义针对队列的PD的最大数目,其中针对每个队列确定是否存在队列可用的未使用的PD包括:在当前队列所使用的PD的数目小于相应的每队列PD动态阈值时确定存在队列可用的未使用的PD。
以上描述仅作为示例。虽然这些技术在本文中被示出和描述为在一个或多个具体示例中实现,但是并不旨在限于所示的细节,因为可以在权利要求的等价形式的范围和范畴内进行各种修改和结构改变。

Claims (22)

1.一种用于共享的缓冲空间的方法,包括:
在包括具有缓冲空间的缓冲器的网络交换机处,所述缓冲空间用于存储链接到队列的网络分组,所述队列用于将所述分组馈送到与所述队列相关联的所述交换机的输出端口,所述缓冲空间在多个业务池之间被动态地共享,其中所述多个业务池中的每一者与一网络业务类别相对应:
确定定义每池占用量的上限的每池动态阈值,每池占用量的上限中的每一者基于未使用的缓冲空间的量和相应池参数,其中池参数是至少基于与相应池相对应的网络业务类别的优先级来设置的;
确定定义每队列占用量的上限的每队列动态阈值,每队列占用量的上限基于与所述队列相关联的池中可用的未使用的缓冲空间的量;以及
接收分组,并且针对每个接收到的分组:
如果(i)与所述分组相关联的池的占用量小于相应的每池动态阈值,并且(ii)所述分组所前往的所述队列的占用量小于相应的每队列动态阈值,则准许所述分组进入所述相关联的池以及所述分组所前往的所述队列;以及
如果条件(i)和条件(ii)没有都被满足,则丢弃所述分组。
2.根据权利要求1所述的方法,还包括:针对每个分组:
确定所述分组所前往的所述队列的所述占用量是否小于预定的静态队列阈值,其中:
所述准许包括在所述队列的所述占用量小于所述预定的静态阈值时或者在既满足条件(i)也满足条件(ii)时准许所述分组;以及
所述丢弃包括在所述队列的所述占用量不小于所述预定的静态阈值并且条件(i)和条件(ii)没有都被满足时丢弃所述分组。
3.根据权利要求1所述的方法,其中,确定所述每池动态阈值包括:针对每个池,将所述未使用的缓冲空间的量乘以相应池参数。
4.根据权利要求3所述的方法,其中,所述相应池参数中的至少一些互不相同。
5.根据权利要求1所述的方法,其中,所述确定所述每队列动态阈值包括:对于相关联的池中的每个队列,将所述相关联的池中未使用的缓冲空间的量乘以相应队列参数。
6.根据权利要求5所述的方法,其中,所述相应队列参数是针对所有队列相同的队列参数。
7.根据权利要求5所述的方法,其中,所述相应队列参数中的至少一些互不相同。
8.根据权利要求5所述的方法,其中,所述确定所述每队列动态阈值还包括:对于所述分组所前往的所述队列:
将所确定的每队列动态阈值减少随机量。
9.根据权利要求1所述的方法,其中,所述多个业务池中的每一者与不同网络业务类别中的相应一者相关联,并且所述不同网络业务类别中的每一者与相应服务质量(QoS)相关联。
10.根据权利要求1所述的方法,其中,确定每队列动态阈值包括:
针对每个队列,通过将可用于存储分组的未使用的缓冲空间的量乘以该队列的相应队列参数来确定第一动态阈值,所述第一动态阈值定义了该队列的队列占用量的上限;以及
针对每个队列,将该队列的第一动态阈值减少随机量以产生该队列的第二动态阈值。
11.根据权利要求10所述的方法,其中,所述减少包括将所述第一动态阈值减少在所述第一动态阈值的百分之零到百分之五十之间的随机量。
12.根据权利要求10所述的方法,其中,所述准许还包括在如下情况下准许分组进入与该分组相关联的池和该分组所前往的队列:(i)所述相关联的池的占用量小于相应的每池动态阈值,并且(ii)所述队列占用量小于相应的第二动态阈值。
13.一种用于共享的缓冲空间的方法,包括:
在包括具有用于存储网络分组的缓冲空间的缓冲器以及用于将所述网络分组链接到队列的分组描述符PD存储器的网络交换机处,所述队列用于将所述分组馈送到所述交换机的输出端口,其中,所述缓冲空间在多个业务池之间被共享并且所述PD在所述多个业务池之间被共享,其中所述多个业务池中的每一者与一网络业务类别相对应:
接收前往与给定池相关联的多个队列的多播分组;
基于池动态阈值来确定在所述给定池中是否存在分组可用的未使用的缓冲空间,其中该池动态阈值基于未使用的缓冲空间的量和所述给定池的池参数,其中该池参数是至少基于与所述给定池相对应的网络业务类别的优先级来设置的;
针对每个队列,基于该队列的队列动态阈值来确定在该队列中是否存在分组可用的未使用的缓冲空间;
基于针对PD的池动态阈值来确定是否存在所述给定池可用的未使用的PD;
针对每个队列,基于该队列的针对PD的队列动态阈值来确定是否存在该队列可用的未使用的PD;以及
仅准许所述分组进入通过全部确定操作的队列。
14.根据权利要求13所述的方法,还包括:
确定所述池动态阈值,以便定义所述给定池的池占用量的上限,所述给定池的池占用量的所述上限基于未使用的缓冲空间的量;
针对每个队列确定所述队列动态阈值,以便基于所述给定池可用的未使用的缓冲空间的量来定义所述队列的队列占用量的上限;
确定所述针对PD的池动态阈值,以便定义所述给定池可用的PD的最大数目,所述给定池可用的PD的所述最大数目基于未使用的PD的数目;以及
针对每个队列确定所述针对PD的队列动态阈值,以便定义所述队列可用的PD的最大数目,所述队列可用的PD的所述最大数目基于所述给定池可用的未使用的PD的数目。
15.根据权利要求14所述的方法,其中:
所述确定在所述给定池中是否存在分组可用的未使用的缓冲空间包括:在所述给定池的占用量小于所述池动态阈值时确定存在未使用的缓冲空间;
所述针对每个队列确定在该队列中是否存在分组可用的缓冲空间包括:在所述队列的占用量小于所述队列动态阈值时确定存在可用的未使用的缓冲空间;
所述确定是否存在所述给定池可用的未使用的PD包括:在所述给定池所使用的PD的数目小于所述针对PD的池动态阈值时确定存在未使用的PD;以及
针对每个队列确定是否存在所述队列可用的未使用的PD包括:在所述队列所使用的PD的数目小于针对所述PD的队列动态阈值时确定存在所述队列可用的未使用的PD。
16.根据权利要求14所述的方法,其中:
所述确定所述池动态阈值包括:将所述未使用的缓冲空间的量乘以池参数;以及
所述确定所述针对PD的池动态阈值包括:将所述未使用的PD的数目乘以针对PD的池参数。
17.根据权利要求14所述的方法,其中:
所述针对每个队列确定所述队列动态阈值包括:将所述可用于所述给定池的未使用的缓冲空间的量乘以队列参数;以及
所述针对每个队列确定所述针对PD的队列动态阈值包括:将所述可用于所述给定池的未使用的PD的数目乘以针对PD的队列参数。
18.根据权利要求17所述的方法,其中,所述确定所述针对PD的队列动态阈值还包括:
确定(i)所述给定池所使用的PD的数目和(ii)所述给定池的池占用量的比率;以及
确定所述针对PD的队列动态阈值,使得所述针对PD的队列动态阈值与所述比率、所述可用于所述给定池的未使用的缓冲空间的量、以及所述针对PD的队列参数的乘积成比例。
19.根据权利要求17所述的方法,其中,所述确定所述队列动态阈值还包括:对于所述分组所前往的所述队列:
将所确定的队列动态阈值减少随机量。
20.根据权利要求13所述的方法,其中,所述多个池中的每一者与不同网络业务类别中的相应一者相关联。
21.一种用于共享的缓冲空间的装置,包括:
处理器;以及
存储器,包括编码有指令的计算机可读存储介质,所述指令在被所述处理器执行时,使得所述处理器执行权利要求1-20中任一项所述的方法。
22.一种计算机可读存储介质,编码有指令,所述指令在由控制器执行时使得所述控制器执行权利要求1-20中任一项所述的方法。
CN201680027193.7A 2015-05-13 2016-05-11 对网络设备中的输出队列所使用的共享存储器的动态保护 Active CN107592966B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/710,822 US10305819B2 (en) 2015-05-13 2015-05-13 Dynamic protection of shared memory used by output queues in a network device
US14/710,822 2015-05-13
US14/710,974 US9866401B2 (en) 2015-05-13 2015-05-13 Dynamic protection of shared memory and packet descriptors used by output queues in a network device
US14/710,974 2015-05-13
PCT/US2016/031787 WO2016183155A1 (en) 2015-05-13 2016-05-11 Dynamic protection of shared memory used by output queues in a network device

Publications (2)

Publication Number Publication Date
CN107592966A CN107592966A (zh) 2018-01-16
CN107592966B true CN107592966B (zh) 2021-12-14

Family

ID=56027235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680027193.7A Active CN107592966B (zh) 2015-05-13 2016-05-11 对网络设备中的输出队列所使用的共享存储器的动态保护

Country Status (3)

Country Link
EP (1) EP3295628B1 (zh)
CN (1) CN107592966B (zh)
WO (1) WO2016183155A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802897B (zh) * 2017-11-17 2020-12-01 华为技术有限公司 一种数据传输方法及通信设备
CN112088521A (zh) * 2018-05-07 2020-12-15 华为技术有限公司 一种用于高带宽、高容量交换机的内存设备
CN111447154B (zh) * 2019-01-17 2023-06-23 瑞昱半导体股份有限公司 设置在交换器内的电路以及管理交换器中的存储器的方法
US20230353510A1 (en) * 2020-01-31 2023-11-02 Cyberstorm Pte. Ltd. Method of reducing latency in communication of data packets
CN111415259B (zh) * 2020-03-26 2024-02-06 杭州复杂美科技有限公司 交易排队方法、设备和存储介质
US11336592B2 (en) 2020-08-14 2022-05-17 Google Llc Flexible link level retry for shared memory switches
CN116996417B (zh) * 2023-09-26 2024-01-16 中国科学院自动化研究所 多源端口数据存储方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556578B1 (en) * 1999-04-14 2003-04-29 Lucent Technologies Inc. Early fair drop buffer management method
CN103179049A (zh) * 2011-12-20 2013-06-26 美国博通公司 分级自适应动态出端口和队列缓冲区管理的系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1382165A2 (en) * 2001-04-13 2004-01-21 MOTOROLA INC., A Corporation of the state of Delaware Manipulating data streams in data stream processors
US7227841B2 (en) * 2001-07-31 2007-06-05 Nishan Systems, Inc. Packet input thresholding for resource distribution in a network switch

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556578B1 (en) * 1999-04-14 2003-04-29 Lucent Technologies Inc. Early fair drop buffer management method
CN103179049A (zh) * 2011-12-20 2013-06-26 美国博通公司 分级自适应动态出端口和队列缓冲区管理的系统和方法

Also Published As

Publication number Publication date
EP3295628A1 (en) 2018-03-21
WO2016183155A1 (en) 2016-11-17
CN107592966A (zh) 2018-01-16
EP3295628B1 (en) 2020-11-11

Similar Documents

Publication Publication Date Title
CN107592966B (zh) 对网络设备中的输出队列所使用的共享存储器的动态保护
US11750504B2 (en) Method and system for providing network egress fairness between applications
CN109479032B (zh) 网络设备中的拥塞避免
US10305819B2 (en) Dynamic protection of shared memory used by output queues in a network device
US9866401B2 (en) Dynamic protection of shared memory and packet descriptors used by output queues in a network device
US10601714B2 (en) Adaptive flow prioritization
US8520522B1 (en) Transmit-buffer management for priority-based flow control
US8467294B2 (en) Dynamic load balancing for port groups
US7649882B2 (en) Multicast scheduling and replication in switches
US8184540B1 (en) Packet lifetime-based memory allocation
US8144588B1 (en) Scalable resource management in distributed environment
CN106302227B (zh) 混合网络流调度方法和交换机
US9197570B2 (en) Congestion control in packet switches
US9973437B2 (en) Apparatus to achieve quality of service (QOS) without requiring fabric speedup
US20120127858A1 (en) Method and apparatus for providing per-subscriber-aware-flow qos
Hu et al. Dynamic queuing sharing mechanism for per-flow quality of service control
US20230254259A1 (en) System And Method For Using Dynamic Thresholds With Route Isolation For Heterogeneous Traffic In Shared Memory Packet Buffers
Wang et al. Multipath Bandwidth Guarantees for Multi-Tenant Cloud Networking
JP2015154378A (ja) 通信システム、通信装置及び通信方法

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