CN107171980B - 网络交换机中的灵活的缓冲区分配 - Google Patents
网络交换机中的灵活的缓冲区分配 Download PDFInfo
- Publication number
- CN107171980B CN107171980B CN201710107966.9A CN201710107966A CN107171980B CN 107171980 B CN107171980 B CN 107171980B CN 201710107966 A CN201710107966 A CN 201710107966A CN 107171980 B CN107171980 B CN 107171980B
- Authority
- CN
- China
- Prior art keywords
- packet
- types
- packets
- buffer
- data packets
- 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
Links
Images
Classifications
-
- 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/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- 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/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
- H04L49/9052—Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
-
- 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/9063—Intermediate storage in different physical parts of a node or terminal
Abstract
本发明公开了网络交换机中的灵活的缓冲区分配。通信装置包括多个接口,其被配置为连接到包数据网络,以用于接收和转发多种类型的数据包。存储器耦合到接口并被配置为缓冲区,以容纳等待经由出接口传输到网络的同时通过入接口接收的包。包处理逻辑被配置为保持与出接口中的相应出接口相关联的多个传输队列,并被配置为将与第一类型和第二类型的第一数据包和第二数据包对应的第一队列条目和第二队列条目二者分别放置在共同的传输队列中,以用于通过给定的出接口传输,同时在缓冲区中分配相应的空间,以对照被分别指派给第一类型和第二类型的数据包的单独的第一缓冲区分配和第二缓冲区分配来储存第一数据包和第二数据包。
Description
发明领域
本发明大体上涉及包通信网络,特别是涉及被部署在这样的网络中的交换机中的缓冲区管理。
背景
用在诸如以太网和InfiniBand网络的高速包网络中的交换机通常包含缓冲存储器。由交换机通过其接口中的一个所接收的包在等待转移到适当的出接口或者在多播包的情况下可能被转移到多个出接口的同时被暂时储存在缓冲存储器中。虽然缓冲存储器可被静态分配到每个接口,但许多现代的包交换机使用共享存储器,其中缓冲区空间根据流量负载和存储器可用性以及在交换机中的处理之后所设置的包优先级和包入口优先级被灵活分配给不同的接口和队列。
作为一个示例,美国专利申请公开2013/0250762描述了一种用于实现对于共享缓冲池的多个端口的无损行为的方法。包被“着色”并被储存在共享的包缓冲区中,而不分配每端口固定的页面分配。
概述
下文中所描述的本发明的实施例提供了用于网络元件中的缓冲区管理的改进的方法和装置。
因此,根据本发明的实施例,提供了包括多个接口的通信装置,该多个接口被配置为连接到包数据网络,以便用作通过该装置从网络接收多种类型的数据包的入接口和将其转发到该网络的出接口,该多种类型包括至少第一类型和第二类型。存储器耦合到接口并被配置为缓冲区,以容纳在等待经由出接口传输到网络的同时通过入接口接收的包。包处理逻辑被配置为保持与出接口中的各自出接口相关联的多个传输队列,并被配置为将与第一和第二类型的第一和第二数据包对应的第一和第二队列条目二者分别放置在共同的传输队列中,以用于通过给定的出接口传输,同时在缓冲区中分配各自的空间,以对照单独的第一和第二缓冲区分配储存第一和第二数据包,该第一和第二缓冲区分配被分别分配给第一类型和第二类型的数据包。
在一个实施例中,第一类型的数据包由单播包组成,而第二类型的数据包由多播包组成。另外地或可选地,第一类型和第二类型的数据包使用各自不同的第一传输协议和第二传输协议来传输。
通常,包处理逻辑被配置为,当给定的队列条目到达共同的传输队列的头部时,通过给定的出接口传输对应的数据包并释放第一缓冲区分配和第二缓冲区分配的相应一个缓冲区中的对应的空间。
在一些实施例中,第一缓冲区分配在与多个不同的出接口相关联的多个传输队列上共享,第一类型的数据包通过该多个不同的出接口被传输。
另外地或可选地,多个传输队列包括至少两个传输队列,该至少两个传输队列都与相同的给定的出接口相关联并具有各自不同的服务质量的水平,并且不同的第一类型和第二类型的第一数据包和第二数据包具有共同的服务质量的水平。
在所公开的实施例中,包处理逻辑被配置为,响应于第一缓冲区分配和第二缓冲区分配的各自的填充水平(fill level),分别将拥塞避免机制应用到第一类型和第二类型的数据包。
根据本发明的实施例,还提供了用于通信的方法,该方法包括通过网络元件的入接口接收包括至少第一类型和第二类型的多种类型的数据包。在网络元件中的缓冲区内的相应的空间被分配以对照单独的第一缓冲区分配和第二缓冲区分配来存储第一数据包和第二数据包,该单独的第一缓冲区分配和第二缓冲区分配被分别指派给第一类型和第二类型的数据包,同时该数据包等待经由网络元件的出接口传输到网络。在网络元件中,保持多个传输队列,该多个传输队列与出接口中的相应出接口相关联。分别与第一类型和第二类型的第一数据包和第二数据包对应的第一队列条目和第二队列条目二者被放置在共同的传输队列中,以用于通过给定的出接口传输。当对应的队列条目到达共同的传输队列的头部时,第一数据包和第二数据包中的每个通过给定的出接口来传输。
根据结合附图进行的本发明的实施例的以下详细描述,本发明将得到更完全地理解,其中:
附图简述
图1是根据本发明的实施例示意性图示具有共享缓冲区的交换机的框图;
图2是根据本发明的实施例示意性图示数据包通过交换机的流的框图;以及
图3是根据本发明的实施例示意性示出交换机中的包处理逻辑的细节的框图。
实施例的具体描述
在本领域中已知的诸如交换机的网络元件中,排队和缓冲通常紧密耦合在一起。换句话说,当包进入给定的传输队列以通过交换机的某出接口传输时,包占用与该队列相关联的缓冲区空间中的槽,直至该包被传输。因此,例如,当不同类型的包(诸如广播、多播包和单播包、或使用不同协议传输的包,例如TCP包和UDP包)共享相同的传输队列时,它们也必定共享相同的缓冲区分配。因此,当一种类型的高流量引起给定的传输队列上的拥塞时,所产生的拥塞避免措施(诸如丢弃或标记包或者在入端口上施加反压力)也将应用到共享传输队列的其他类型的包。
本文中所描述的本发明的实施例松开-并且可能完全解耦-队列指派和缓冲区占用之间的连接,从而在通信资源的分配和管理上提供了更大的灵活性。在所公开的实施例中,即使当不同的包类型共享共同的传输队列时,也可给这些不同的包类型在网络元件中指派缓冲区空间的单独的、相应的分配。网络元件中的包处理逻辑将与数据包对应的队列条目放置在共同的传输队列中,以用于通过适当的出接口传输,同时在共享缓冲区中分配相应的空间,以对照它们的单独的、相应的缓冲区分配储存不同类型的数据包。给定队列中的给定包类型可接收其自身的缓冲区分配,或者共同的缓冲区空间可针对跨多个传输队列的给定类型的包来分配,这意味着不同队列中的该类型的包共享相同的、共同的缓冲区分配。当给定的队列条目到达共同的传输队列的头部时,对应的数据包通过出接口被传输,并且相应的缓冲区分配中的空间被释放。
因此,通过适当分配相应的缓冲区空间,将网络资源的不同的、独立的共享分配给不同的包类型是可能的。对于任何给定的包类型的缓冲区分配可按传输队列或按出接口来分配,或者可在与多个不同的出接口相关联的多个传输队列上共享,给定类型的数据包通过该多个不同的出接口被传输。由于缓冲区分配和排队机制的这种解耦,包处理逻辑可响应于相应的缓冲区分配的填充水平将拥塞避免机制分别应用到不同类型的数据包。
现在参照图1和图2,其示意性地图示了根据本发明的实施例的、具有共享缓冲区的网络交换机20的操作。图1是示出了交换机20的物理组件和功能组件的框图,而图2图示了不同类型的数据包通过交换机的流。在所描绘的示例中,这些不同的类型包括多播包26和单播包32。可选地或另外地,包类型可通过使用不同的、相应的传输协议(诸如传输控制协议(TCP)和用户数据报协议(UDP),或者InfiniBand可靠连接(RC)的、不可靠连接(UC)的传输类型和其他传输类型)传输来区分。进一步可选地或另外地,交换机20中的包处理逻辑可基于例如各种头字段和/或深度包检测(DPI)将任何其他合适的标准应用于区分包类型。
另外,虽然为了具体性和清晰起见,本实施例指的是网络交换机,但加以必要的修正,本发明的原理可同样应用于缓冲和转发数据包的其他类的网络元件中,包括(但不限于)路由器、网桥和隧穿元件(tunneling element),以及应用于将主机连接到网络的先进的网络接口控制器中。
如图1所示,交换机20包括端口22形式的多个接口,该端口22连接到包数据网络24,并且通常用作入接口和出接口二者。(虽然出于简化的目的在图1中仅示出了八个端口22,但在实践中,交换机20通常可能具有实质上更多数量的端口或可能更少的端口。)耦合到端口22的存储器36被配置为共享缓冲区,以容纳不同类型的包,该不同类型的包被指派给多个传输队列46,以传输到网络。
在所描绘的实施例中,交换机20通过入接口22接收多播包26。包26包括承载多播地址的报头28和数据有效载荷30。报头28可包括例如具有多播MAC目的地址的层2报头或具有多播IP目的地址的层3报头。交换机20通过另一入接口22接收单播包32,其具有包含单播MAC目的地址的单播报头34。端口22将包26和32导向存储器36,包的副本被储存在该存储器中同时等待通过适当的出端口22重新传输。包处理逻辑(在该实施例中被称作决策和排队逻辑38)读取报头28和34并查找目的地址,以便识别通过其传输相应的包的出端口22。
同时,缓冲区控制逻辑40分配存储器36中的共享缓冲区中的空间,以储存等待传输的包的副本。(对于本说明书和权利要求书,缓冲区控制逻辑40被认为是包处理逻辑的一部分,但是在实践中,其可与决策和排队逻辑38分开实现。)缓冲区控制逻辑40为多播包类型和单播包类型在存储器36中指派单独的、相应的分配42和44,并对照这些分配储存包26和32同时等待传输。如图1中所图示的,虽然多播包26的多个副本可通过不同的出端口22来传输,但缓冲区控制逻辑40可被配置为仅储存包的单一副本,该包的单一副本随后被复制以用于传输,例如如于2015年12月8日提交的美国专利申请14/961,923所描述的,该美国专利申请的公开内容通过引用并入本文。
对于被接受到存储器36中的对应的分配42、44...中的每个包,决策和排队逻辑38将队列条目(下文中被称作描述符)放置在适当的传输队列46中(或者在多播包的情况下,可能放置在多个传输队列中)。虽然出于简化的目的,图1仅示出了每个出端口22的单一传输队列,但在实践中,多个传输队列可对应于不同的、相应的服务质量水平与每个出接口相关联。被指派相同的服务质量水平的不同类型的数据包(诸如多播包和单播包)随后将使它们的队列条目放置在相同传输队列46中。另外地或可选地,逻辑38可将(除了服务质量水平之外或将其代替的)其他考虑应用于向队列指派包。如先前所指出的,缓冲区分配42、44...可各自与特定的出端口或传输队列相关联,或者它们可在多个传输队列上共享,该多个传输队列可与多个不同的出端口相关联,给定类型的数据包通过该出端口被传输。
当给定的队列条目到达其中放置有条目的传输队列46的头部时,决策和排队逻辑38从存储器36读取(并且如有必要复制)对应的数据包,并通过适当的出接口传输包。随后,缓冲区控制逻辑40将释放缓冲区分配42或44中的对应的空间。
图3是根据本发明的实施例示意性示出交换机20中的决策和排队逻辑38的细节的框图。为了清晰和具体起见,该图示出了逻辑38的一个可能的实施方式,但其他实施方式在本领域的技术人员阅读本说明书之后对于他们来说将是明显的,并且被认为是在本发明的范围内。虽然逻辑38的元件在图3中示为单独的功能组件,但在实践中,这些组件可在单一芯片或芯片组内的自定义或可编程硬件逻辑中一起被实施。
在接收输入包时,不管包类型,入端口22A(诸如图1中的端口22中的一个)都将包放置在存储器36中的缓冲区中并通知决策控制逻辑52包准备好进行处理。如先前所解释的,用于储存给定类型的包的缓冲区中的空间对照被指派给存储器36中的该包类型的单独的缓冲区分配42、44...来分配。基于这些缓冲区分配的相应的填充水平,包处理逻辑38可将拥塞避免机制(诸如流控制机制50和/或包丢弃和标记机制)分别应用到不同的包类型。
响应于由决策控制逻辑52接收的新的包已经到达的通知,解析器54对包报头进行解析并生成一个或多个描述符,该描述符传递至描述符处理器56,以用于进一步处理和转发指令的生成。基于描述符,例如,处理器56通常选择通过其传输包的出端口或端口22B。该描述符也可指示待应用到包的服务质量(QoS),即,传输的优先级水平,并可指示对于包报头的修改的任何适用的指令。对于多播包,处理器56通常生成多个描述符,为传输包的副本的每个出端口22B生成一个描述符。所有这些描述符可具有相同的QoS(例如,通过QoS索引值指示),或者它们可被指派给两个或更多个不同的QoS水平以用于不同的出端口。
描述符处理器56将描述符放置在排队系统60中的适当的传输队列(如先前附图中的队列46所示)中,以等待经由指定的出端口22B传输。通常,排队系统60包含对于每个出端口22B的专用传输队列或每出端口多个传输队列,每个QoS水平一个传输队列。当在排队系统60中对描述符进行排队时,处理器56通知缓冲区控制逻辑40对应的包正在存储器36中消耗缓冲区空间,并且逻辑40对于讨论中的包类型对照适当的分配42、44...来记录缓冲区消耗。可选地,对缓冲区控制逻辑40的缓冲区消耗更新可来自排队系统60。
当描述符到达其传输队列的头部时,排队系统60将描述符传递给包修改器62来执行。包修改器62分别耦合到出端口22B并用作包传输单元。响应于描述符,包修改器62从存储器36读取适当的包数据的副本,并在包报头中做出所需的任何改变以用于通过出端口22B传输到网络24。在多播包的情况下,包修改器62可复制包数据,同时原始数据保留在存储器36中,直至所有的包副本被传输。
如图中所示,当通过对应的出端口22B传输包后(或在多播传输的情况下,当传输最后的包副本后),包修改器62给缓冲区控制逻辑40发信号,并且也可给决策控制逻辑52发信号。可选地,该包传输通知可来自排队系统60。响应于该通知,缓冲区控制逻辑40释放对应的分配42、44...中的缓冲区空间,使得存储器36中的位置可被重写,并且该分配可以自由地接收对应类型的其他包。该存储器核算和管理过程对于并行的多个不同的包通常发生在任何给定时间处。
将要理解的是,以上描述的实施例是通过示例的方式引用的,并且本发明不限于上文中已经具体示出和描述的那些实施例。相反,本发明的范围包括上文所描述的各种特征的组合和子组合以及本领域技术人员在阅读以上描述之后将想到的且未在现有技术中公开的其变型和修改。
Claims (12)
1.一种通信装置,包括:
多个接口,所述多个接口被配置为连接到包数据网络,以便用作通过所述装置从所述网络接收多种类型的数据包的入接口和将多种类型的数据包转发到所述网络的出接口,所述多种类型包括至少第一类型和第二类型;
存储器,所述存储器耦合到所述接口并被配置为缓冲区,以容纳在等待经由所述出接口传输到所述网络的同时通过所述入接口接收的包;以及
包处理逻辑,所述包处理逻辑被配置为保持与所述出接口中的相应出接口相关联的多个传输队列,并被配置为将与所述第一类型和第二类型的第一数据包和第二数据包对应的第一队列条目和第二队列条目二者分别放置在共同的传输队列中,以用于通过给定的出接口传输,同时在所述缓冲区中分配相应的空间,以对照单独的第一缓冲区分配和第二缓冲区分配来储存所述第一数据包和第二数据包,所述第一缓冲区分配和第二缓冲区分配被分别指派给所述第一类型的和第二类型的数据包,
其中,所述多个传输队列包括至少两个传输队列,所述至少两个传输队列都与相同给定的出接口相关联并具有各自不同的服务质量的水平,以及其中,不同的第一类型和第二类型的第一数据包和第二数据包具有共同的服务质量的水平。
2.根据权利要求1所述的装置,其中,所述第一类型的数据包由单播包组成,而所述第二类型的数据包由多播包组成。
3.根据权利要求1所述的装置,其中,所述第一类型和第二类型的数据包使用各自不同的第一传输协议和第二传输协议来传输。
4.根据权利要求1所述的装置,其中,所述包处理逻辑被配置为,当给定的队列条目到达所述共同的传输队列的头部时,通过所述给定的出接口传输对应的数据包并释放所述第一缓冲区分配和第二缓冲区分配的相应一个中的对应的空间。
5.根据权利要求1所述的装置,其中,所述第一缓冲区分配在与多个不同的出接口相关联的多个传输队列上共享,所述第一类型的数据包通过所述多个不同的出接口来传输。
6.根据权利要求1所述的装置,其中,所述包处理逻辑被配置为,响应于所述第一缓冲区分配和第二缓冲区分配的各自的填充水平,将拥塞避免机制分别应用到所述第一类型的数据包和第二类型的数据包。
7.一种用于通信的方法,包括:
通过网络元件的入接口接收包括至少第一类型和第二类型的多种类型的数据包;
在所述网络元件中的缓冲区内分配相应的空间,以对照单独的第一缓冲区分配和第二缓冲区分配存储所述第一类型的数据包和第二类型数据包,所述单独的第一缓冲区分配和第二缓冲区分配被分别指派给所述第一类型的数据包和第二类型的数据包,同时所述第一类型的数据包和第二类型的数据包等待经由所述网络元件的出接口传输到所述网络;
在所述网络元件中保持多个传输队列,所述多个传输队列与所述出接口中的相应出接口相关联;
将与所述第一类型和第二类型的第一数据包和第二数据包对应的第一队列条目和第二队列条目二者分别放置在共同的传输队列中,以用于通过给定的出接口传输;以及
当对应的队列条目到达所述共同的传输队列的头部时,通过所述给定的出接口传输所述第一数据包和第二数据包中的每一个,
其中,保持所述多个传输队列包括将具有各自不同的服务质量的水平的至少两个传输队列与相同给定的出接口相关联,以及其中,不同的第一类型和第二类型的第一数据包和第二数据包具有共同的服务质量的水平。
8.根据权利要求7所述的方法,其中,所述第一类型的数据包由单播包组成,而所述第二类型的数据包由多播包组成。
9.根据权利要求7所述的方法,其中,所述第一类型和第二类型的数据包使用各自不同的第一传输协议和第二传输协议来传输。
10.根据权利要求7所述的方法,其中,传输所述第一数据包和第二数据包中的每一个包括当通过所述给定的出接口传输对应的数据包后,释放所述第一缓冲区分配和第二缓冲区分配中的相应一个缓冲区分配中的对应的空间。
11.根据权利要求7所述的方法,其中,分配相应的空间包括在与多个不同的出接口相关联的多个传输队列上共享所述第一缓冲区分配,所述第一类型的数据包通过所述多个不同的出接口来传输。
12.根据权利要求7所述的方法,还包括响应于所述第一缓冲区分配和第二缓冲区分配的相应的填充水平,将拥塞避免机制分别应用到所述第一类型和第二类型的数据包。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/063,527 US10250530B2 (en) | 2016-03-08 | 2016-03-08 | Flexible buffer allocation in a network switch |
US15/063,527 | 2016-03-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107171980A CN107171980A (zh) | 2017-09-15 |
CN107171980B true CN107171980B (zh) | 2021-01-15 |
Family
ID=59787383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710107966.9A Active CN107171980B (zh) | 2016-03-08 | 2017-02-27 | 网络交换机中的灵活的缓冲区分配 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10250530B2 (zh) |
CN (1) | CN107171980B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
KR20180062247A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 효율적인 버퍼 할당을 수행하는 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10735331B1 (en) * | 2016-12-09 | 2020-08-04 | Barefoot Networks, Inc. | Buffer space availability for different packet classes |
US10708189B1 (en) | 2016-12-09 | 2020-07-07 | Barefoot Networks, Inc. | Priority-based flow control |
US11245572B1 (en) | 2017-01-31 | 2022-02-08 | Barefoot Networks, Inc. | Messaging between remote controller and forwarding element |
US10412018B1 (en) | 2017-03-21 | 2019-09-10 | Barefoot Networks, Inc. | Hierarchical queue scheduler |
US10218642B2 (en) * | 2017-03-27 | 2019-02-26 | Mellanox Technologies Tlv Ltd. | Switch arbitration based on distinct-flow counts |
US10757028B1 (en) | 2017-04-23 | 2020-08-25 | Barefoot Networks, Inc. | Configurable forwarding element deparser |
US11503141B1 (en) | 2017-07-23 | 2022-11-15 | Barefoot Networks, Inc. | Stateful processing unit with min/max capability |
US10771387B1 (en) | 2017-09-28 | 2020-09-08 | Barefoot Networks, Inc. | Multiple packet data container types for a processing pipeline |
US10601723B2 (en) * | 2018-04-12 | 2020-03-24 | Advanced Micro Devices, Inc. | Bandwidth matched scheduler |
CN110708255B (zh) * | 2018-07-09 | 2021-11-19 | 华为技术有限公司 | 一种报文控制方法及节点设备 |
US10938709B2 (en) * | 2018-12-18 | 2021-03-02 | Advanced Micro Devices, Inc. | Mechanism for dynamic latency-bandwidth trade-off for efficient broadcasts/multicasts |
US10951527B2 (en) * | 2018-12-28 | 2021-03-16 | Juniper Networks, Inc. | Switch fabric packet flow reordering |
TWI703840B (zh) * | 2019-01-16 | 2020-09-01 | 瑞昱半導體股份有限公司 | 設置在交換器內的電路以及管理交換器中記憶體的方法 |
CN111447154B (zh) * | 2019-01-17 | 2023-06-23 | 瑞昱半导体股份有限公司 | 设置在交换器内的电路以及管理交换器中的存储器的方法 |
US10999221B2 (en) | 2019-07-02 | 2021-05-04 | Mellanox Technologies Tlv Ltd. | Transaction based scheduling |
US11403247B2 (en) * | 2019-09-10 | 2022-08-02 | GigaIO Networks, Inc. | Methods and apparatus for network interface fabric send/receive operations |
US11470010B2 (en) | 2020-02-06 | 2022-10-11 | Mellanox Technologies, Ltd. | Head-of-queue blocking for multiple lossless queues |
US20220045972A1 (en) | 2020-08-10 | 2022-02-10 | Mellanox Technologies Tlv Ltd. | Flow-based management of shared buffer resources |
CN111988244B (zh) * | 2020-08-20 | 2022-10-18 | 珠海市一知安全科技有限公司 | 网络数据调度分配方法、计算机装置及计算机可读存储介质 |
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 |
---|---|---|---|---|
CN1356831A (zh) * | 2000-09-29 | 2002-07-03 | 扎尔林克半导体V.N.股份有限公司 | 用于支持服务质量保证的缓冲区管理和在数据交换中的数据流控制 |
CN1996271A (zh) * | 2006-12-30 | 2007-07-11 | 华为技术有限公司 | 一种数据传输的方法及系统 |
CN103516622A (zh) * | 2012-05-24 | 2014-01-15 | 马维尔国际贸易有限公司 | 网络交换机中的灵活队列 |
CN104508654A (zh) * | 2012-07-31 | 2015-04-08 | 华为技术有限公司 | 分组传输优先级信道分配 |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7321553B2 (en) | 2003-07-22 | 2008-01-22 | Intel Corporation | Methods and apparatus for asserting flow control at input ports of a shared-memory switch |
SE506955C2 (sv) | 1995-07-06 | 1998-03-09 | Ericsson Telefon Ab L M | ATM-flödesstyrning |
US6108713A (en) | 1997-02-11 | 2000-08-22 | Xaqti Corporation | Media access control architectures and network management systems |
US6178448B1 (en) | 1997-06-18 | 2001-01-23 | International Business Machines Corporation | Optimal link scheduling for multiple links by obtaining and utilizing link quality information |
US6590901B1 (en) * | 1998-04-01 | 2003-07-08 | Mosaid Technologies, Inc. | Method and apparatus for providing a packet buffer random access memory |
US6347337B1 (en) | 1999-01-08 | 2002-02-12 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
US7002980B1 (en) | 2000-12-19 | 2006-02-21 | Chiaro Networks, Ltd. | System and method for router queue and congestion management |
JP3892682B2 (ja) | 2001-06-18 | 2007-03-14 | 株式会社エヌ・ティ・ティ・ドコモ | パケット伝送方法、基地局及び移動局 |
KR100426535B1 (ko) | 2001-12-11 | 2004-04-08 | 삼성전자주식회사 | 무선통신기기 및 그 무선통신방법 |
JP3925234B2 (ja) | 2002-02-18 | 2007-06-06 | ソニー株式会社 | データ通信システム、データ通信管理装置、および方法、並びにコンピュータ・プログラム |
US7430169B2 (en) | 2002-06-03 | 2008-09-30 | International Business Machines Corporation | Retro flow control for arriving traffic in computer networks |
US7706394B2 (en) | 2003-07-23 | 2010-04-27 | International Business Machines Corporation | System and method for collapsing VOQ's of a packet switch fabric |
US8473693B1 (en) | 2003-07-29 | 2013-06-25 | Netapp, Inc. | Managing ownership of memory buffers (mbufs) |
US7346059B1 (en) | 2003-09-08 | 2008-03-18 | Cisco Technology, Inc. | Header range check hash circuit |
US20080037420A1 (en) | 2003-10-08 | 2008-02-14 | Bob Tang | Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san |
TWI241807B (en) * | 2004-03-02 | 2005-10-11 | Hon Hai Prec Ind Co Ltd | System and method for network quality of service |
US7480730B2 (en) | 2004-04-08 | 2009-01-20 | Nortel Networks Limited | Credit recovery in a credit based flow control system |
US7499402B2 (en) | 2004-04-13 | 2009-03-03 | Radioframe Networks, Inc. | Network delay control |
US20060056308A1 (en) | 2004-05-28 | 2006-03-16 | International Business Machines Corporation | Method of switching fabric for counteracting a saturation tree occurring in a network with nodes |
US7724663B2 (en) | 2004-09-08 | 2010-05-25 | Telefonaktiebolaget L M Ericsson (Publ) | Counter based quality of service (QoS) class upgrade |
US7830793B2 (en) | 2004-10-22 | 2010-11-09 | Cisco Technology, Inc. | Network device architecture for consolidating input/output and reducing latency |
EP1650905A1 (en) | 2004-10-25 | 2006-04-26 | Siemens Aktiengesellschaft | Method for bandwidth profile management in a Metro Ethernet network |
US7948880B2 (en) | 2004-10-29 | 2011-05-24 | Broadcom Corporation | Adaptive dynamic thresholding mechanism for link level flow control scheme |
US7593329B2 (en) | 2004-10-29 | 2009-09-22 | Broadcom Corporation | Service aware flow control |
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 |
US7802028B2 (en) | 2005-05-02 | 2010-09-21 | Broadcom Corporation | Total dynamic sharing of a transaction queue |
US8548048B2 (en) | 2005-10-27 | 2013-10-01 | Qualcomm Incorporated | Video source rate control for video telephony |
US8218546B2 (en) | 2005-11-10 | 2012-07-10 | Broadcom Corporation | Interleaved processing of dropped packets in a network device |
US7953002B2 (en) | 2005-11-10 | 2011-05-31 | Broadcom Corporation | Buffer management and flow control mechanism including packet-based dynamic thresholding |
US8078743B2 (en) | 2006-02-17 | 2011-12-13 | Intel-Ne, Inc. | Pipelined processing of RDMA-type network transactions |
US7724754B2 (en) | 2006-02-24 | 2010-05-25 | Texas Instruments Incorporated | Device, system and/or method for managing packet congestion in a packet switching network |
EP1873977B1 (en) | 2006-06-30 | 2009-10-28 | Alcatel Lucent | Method of providing resource admission control |
US7821939B2 (en) | 2007-09-26 | 2010-10-26 | International Business Machines Corporation | Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture |
US8532117B2 (en) | 2008-02-13 | 2013-09-10 | Broadcom Corporation | Flexible buffer allocation entities for traffic aggregate containment |
WO2009107089A2 (en) | 2008-02-26 | 2009-09-03 | Nxp B.V. | Apparatus and method for shared buffering between switch ports |
US7738454B1 (en) | 2008-09-30 | 2010-06-15 | Juniper Networks, Inc. | Methods and apparatus related to packet classification based on range values |
US8576715B2 (en) | 2009-10-26 | 2013-11-05 | Mellanox Technologies Ltd. | High-performance adaptive routing |
US8498213B2 (en) | 2010-09-14 | 2013-07-30 | Brocade Communications Systems, Inc. | Manageability tools for lossless networks |
US9008113B2 (en) * | 2010-12-20 | 2015-04-14 | Solarflare Communications, Inc. | Mapped FIFO buffering |
US8630294B1 (en) | 2011-05-11 | 2014-01-14 | Juniper Networks, Inc. | Dynamic bypass mechanism to alleviate bloom filter bank contention |
US8938598B2 (en) | 2011-07-06 | 2015-01-20 | Nvidia Corporation | Facilitating simultaneous submission to a multi-producer queue by multiple threads with inner and outer pointers |
US8681616B2 (en) | 2011-08-12 | 2014-03-25 | Telefonaktiebolaget L M Ericsson (Publ) | Scheduling under congestion with traffic load-based scaling |
KR101515359B1 (ko) | 2011-09-30 | 2015-04-29 | 인텔 코포레이션 | 시스템 코-프로세서에 대한 직접 i/o 액세스 |
US8811183B1 (en) | 2011-10-04 | 2014-08-19 | Juniper Networks, Inc. | Methods and apparatus for multi-path flow control within a multi-stage switch fabric |
US9325619B2 (en) | 2011-11-15 | 2016-04-26 | Oracle International Corporation | System and method for using virtual lanes to alleviate congestion in a fat-tree topology |
US8879396B2 (en) | 2011-11-15 | 2014-11-04 | Oracle International Corporation | System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology |
US8995265B2 (en) | 2012-01-28 | 2015-03-31 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Monitoring endpoint buffer occupancy to determine congestion in an ethernet network |
ITRM20120094A1 (it) | 2012-03-14 | 2013-09-14 | Istituto Naz Di Fisica Nuclea Re | Scheda di interfaccia di rete per nodo di rete di calcolo parallelo su gpu, e relativo metodo di comunicazione internodale |
US8867360B2 (en) | 2012-03-22 | 2014-10-21 | Avaya Inc. | Method and apparatus for lossless behavior for multiple ports sharing a buffer pool |
US9166919B2 (en) | 2012-03-23 | 2015-10-20 | Broadcom Corporation | Reducing headroom |
KR20130126816A (ko) | 2012-04-26 | 2013-11-21 | 한국전자통신연구원 | 트래픽 혼잡을 제어하는 트래픽 관리장치 및 그 방법 |
US9436504B2 (en) | 2012-05-09 | 2016-09-06 | Nvidia Corporation | Techniques for managing the execution order of multiple nested tasks executing on a parallel processor |
US9749413B2 (en) | 2012-05-29 | 2017-08-29 | Intel Corporation | Peer-to-peer interrupt signaling between devices coupled via interconnects |
US9282022B2 (en) | 2012-11-14 | 2016-03-08 | Broadcom Corporation | Forensics for network switching diagnosis |
US8989017B2 (en) | 2012-12-14 | 2015-03-24 | Intel Corporation | Network congestion management by packet circulation |
US9014006B2 (en) | 2013-01-31 | 2015-04-21 | Mellanox Technologies Ltd. | Adaptive routing using inter-switch notifications |
US9237093B2 (en) | 2013-03-14 | 2016-01-12 | Silicon Graphics International Corp. | Bandwidth on-demand adaptive routing |
US9237111B2 (en) | 2013-03-14 | 2016-01-12 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
US9467522B2 (en) | 2013-07-19 | 2016-10-11 | Broadcom Corporation | Ingress based headroom buffering for switch architectures |
US9356868B2 (en) | 2013-08-23 | 2016-05-31 | Broadcom Corporation | Congestion detection and management at congestion-tree roots |
US9769078B2 (en) | 2013-11-05 | 2017-09-19 | Cisco Technology, Inc. | Dynamic flowlet prioritization |
US10778584B2 (en) * | 2013-11-05 | 2020-09-15 | Cisco Technology, Inc. | System and method for multi-path load balancing in network fabrics |
US9648148B2 (en) * | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
US9621471B2 (en) | 2014-06-30 | 2017-04-11 | Vmware, Inc. | Framework for early congestion notification and recovery in a virtualized environment |
CN107078967A (zh) | 2014-09-16 | 2017-08-18 | 华为技术有限公司 | 调度器、发送器、接收器、网络节点及其方法 |
US9794825B2 (en) | 2014-11-06 | 2017-10-17 | Alcatel-Lucent Usa Inc. | System and method for determining cell congestion level |
WO2016105414A1 (en) | 2014-12-24 | 2016-06-30 | Intel Corporation | Apparatus and method for buffering data in a switch |
US20170118108A1 (en) | 2015-10-27 | 2017-04-27 | Futurewei Technologies, Inc. | Real Time Priority Selection Engine for Improved Burst Tolerance |
US10425344B2 (en) | 2015-12-18 | 2019-09-24 | Avago Technologies International Sales Pte. Limited | Avoiding dropped data packets on a network transmission |
US11088951B2 (en) | 2017-01-16 | 2021-08-10 | Intel Corporation | Flow classification apparatus, methods, and systems |
-
2016
- 2016-03-08 US US15/063,527 patent/US10250530B2/en active Active
-
2017
- 2017-02-27 CN CN201710107966.9A patent/CN107171980B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1356831A (zh) * | 2000-09-29 | 2002-07-03 | 扎尔林克半导体V.N.股份有限公司 | 用于支持服务质量保证的缓冲区管理和在数据交换中的数据流控制 |
CN1996271A (zh) * | 2006-12-30 | 2007-07-11 | 华为技术有限公司 | 一种数据传输的方法及系统 |
CN103516622A (zh) * | 2012-05-24 | 2014-01-15 | 马维尔国际贸易有限公司 | 网络交换机中的灵活队列 |
CN103516622B (zh) * | 2012-05-24 | 2019-04-02 | 马维尔国际贸易有限公司 | 网络交换机中的灵活队列 |
CN104508654A (zh) * | 2012-07-31 | 2015-04-08 | 华为技术有限公司 | 分组传输优先级信道分配 |
Also Published As
Publication number | Publication date |
---|---|
CN107171980A (zh) | 2017-09-15 |
US20170264571A1 (en) | 2017-09-14 |
US10250530B2 (en) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107171980B (zh) | 网络交换机中的灵活的缓冲区分配 | |
US10015112B2 (en) | Memory-efficient handling of multicast traffic | |
US8064344B2 (en) | Flow-based queuing of network traffic | |
US10084716B2 (en) | Flexible application of congestion control measures | |
US9007902B1 (en) | Method and apparatus for preventing head of line blocking in an Ethernet system | |
US8917740B2 (en) | Channel service manager | |
US7936770B1 (en) | Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces | |
US9608926B2 (en) | Flexible recirculation bandwidth management | |
US10387074B2 (en) | Efficient use of buffer space in a network switch | |
CN102132535B (zh) | 在通信网中传输数据分组的方法和交换装置 | |
US8782307B1 (en) | Systems and methods for dynamic buffer allocation | |
KR100875739B1 (ko) | Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법 | |
US7327749B1 (en) | Combined buffering of infiniband virtual lanes and queue pairs | |
US7602809B2 (en) | Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability | |
US7809007B2 (en) | Low cost implementation for a device utilizing look ahead congestion management | |
US7486689B1 (en) | System and method for mapping InfiniBand communications to an external port, with combined buffering of virtual lanes and queue pairs | |
EP3264698A1 (en) | Adaptive flow prioritization | |
WO2015038949A1 (en) | High payload data packet transmission system and relay to lower latency | |
US20030169690A1 (en) | System and method for separating communication traffic | |
US20090213857A1 (en) | Method, system, computer program product, and hardware product for ethernet virtualization using an elastic fifo memory to facilitate flow of broadcast traffic to virtual hosts | |
US11171884B2 (en) | Efficient memory utilization and egress queue fairness | |
US7230918B1 (en) | System for using special links in multi-link bundles | |
US7751400B2 (en) | Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts | |
US7751443B2 (en) | Intra-chassis packet arbitration scheme | |
US20060050733A1 (en) | Virtual channel arbitration in switched fabric networks |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211227 Address after: Israel Yuekeni Mourinho Patentee after: Mellanox Technologies, Ltd. Address before: Israel Lai Ananna Patentee before: Mellanox Technologies TLV Ltd. |