CN111052689A - 用于在网络设备中缓冲分组的混合分组存储器 - Google Patents
用于在网络设备中缓冲分组的混合分组存储器 Download PDFInfo
- Publication number
- CN111052689A CN111052689A CN201880057462.3A CN201880057462A CN111052689A CN 111052689 A CN111052689 A CN 111052689A CN 201880057462 A CN201880057462 A CN 201880057462A CN 111052689 A CN111052689 A CN 111052689A
- Authority
- CN
- China
- Prior art keywords
- packet
- memory
- network device
- flow
- traffic pattern
- 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/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/52—Queue scheduling by attributing bandwidth to queues
-
- 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/56—Queue scheduling implementing delay-aware scheduling
-
- 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/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on 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/9021—Plurality of buffers per packet
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种网络设备处理所接收的分组,以至少确定经由其传输分组的网络设备的一个或多个端口。网络设备还将分组分类为分组流,该分组流被进一步归类为业务模式类别,该业务模式类别表征分组流的业务模式特性。网络设备根据分组流的业务模式类别在第一分组存储器或第二分组存储器中缓冲属于分组流的分组,第一分组存储器具有与第二分组存储器的存储器访问带宽不同的存储器访问带宽。在处理分组之后,网络设备从分组被缓冲在其中的第一分组存储器或第二分组存储器中获取分组,并且将分组转发到所确定的一个或多个端口以进行分组的传输。
Description
相关申请的交叉引用
本申请要求于2017年11月22日提交的题为“Hybrid Packet BufferArchitecture for Data-Center Networks”的美国临时专利申请第62/590,039号的权益,其公开内容通过引用明确地整体并入本文。
技术领域
本公开总体上涉及通信网络,并且更具体地涉及在网络设备中缓冲分组。
背景技术
在分组正在由网络设备处理和/或在网络设备的输出端口经历拥塞的时间期间等待传输的同时,网络设备(诸如网络交换机、路由器、边缘设备等)经常利用分组存储器来缓冲分组。通常,网络设备利用内部分组存储器(例如,与网络设备的分组处理器在同一芯片上实现的分组存储器)或外部分组存储器(例如,实现为网络设备的分组处理器芯片外部的分开的设备的分组存储器)。内部分组存储器通常小于外部分组存储器,但是内部分组存储器通常具有比外部分组存储器高的访问带宽。另一方面,外部分组存储器通常比内部分组存储器大并且提供较多的存储容量,但是外部分组存储器通常比内部分组存储器具有较低的访问带宽。
发明内容
在一个实施例中,一种用于在网络设备中处理分组的方法,包括:在网络设备的分组处理器处接收分组,该分组经由网络设备的多个网络端口中的网络端口进入;利用分组处理器处理分组,以至少确定多个网络端口中的一个或多个网络端口,该分组将经由该一个或多个网络端口来从网络设备被传输;利用分组处理器将分组分类为分组流,分组流被进一步归类为业务模式类别,该业务模式类别表征分组流的业务模式特性;利用分组处理器根据分组流的业务模式类别在以下中的一项中缓冲属于该分组流的分组:i)第一分组存储器和ii)第二分组存储器,第一分组存储器具有第一存储器访问带宽,该第一存储器访问带宽与第二分组存储器的第二存储器访问带宽不同;在处理分组之后,利用分组处理器从分组被缓冲在其中的第一分组存储器或第二分组存储器中获取分组;以及利用分组处理器将分组转发到所确定的一个或多个网络端口,以用于经由所确定的一个或多个网络端口传输分组。
在另一实施例中,一种网络设备,包括:多个网络端口和分组处理器,该多个网络端口被配置为耦合到多个网络链路,该分组处理器耦合到多个网络端口。分组处理器被配置为:处理经由在多个网络端口中的网络端口被接收的分组,以至少确定多个网络端口中的一个或多个其他网络端口,该分组将经由该一个或多个其他网络端口来从网络设备被传输;将分组分类为分组流,分组流被进一步归类为业务模式类别,该业务模式类别表征分组流的业务模式特性;根据分组流的业务模式类别在以下中的一项中缓冲属于该分组流的分组:i)第一分组存储器和ii)第二分组存储器,第一分组存储器具有第一存储器访问带宽,该第一存储器访问带宽与第二分组存储器的第二存储器访问带宽不同;在处理分组之后,从分组被缓冲在其中的第一分组存储器或第二分组存储器中获取分组;以及将分组转发到所确定的一个或多个网络端口,以用于经由所确定的一个或多个网络端口传输分组。
附图说明
图1是根据一个实施例的被配置为利用混合分组存储器架构来缓冲遍历网络设备的分组的示例网络设备的框图。
图2是根据一个实施例的被配置为利用混合分组存储器架构来缓冲遍历网络设备的分组的另一示例网络设备的框图。
图3是根据另一实施例的用于在利用混合分组存储器架构的网络设备中处理分组的示例方法的流程图。
具体实施方式
在以下描述的实施例中,网络设备被配置为利用包括第一分组存储器和第二分组存储器的混合分组存储器架构来缓冲在网络设备处接收的分组,直到分组可以由网络设备传输为止,例如在网络设备的输出端口经历拥塞的时间期间。在一个实施例中,与第二分组存储器的访问带宽相比,第一分组存储器具有相对较高的访问带宽。另一方面,在一个实施例中,与第二分组存储器相比,第一分组存储器的大小相对较小并且存储容量相对较低。在一个实施例中,为了在使用第二(较低访问带宽)分组存储器时减少存储器访问带宽,网络设备被配置为将由网络设备接收的仅一些分组的缓冲卸载到第二分组存储器,同时在第一(较高访问带宽)分组存储器中缓冲其他分组,而不将其他分组的缓冲卸载到第二分组存储器。在一个实施例中,网络设备基于由网络设备正在处理的各种分组流的业务模式来确定将哪些分组卸载到第二较低访问带宽分组存储器。换言之,在一个实施例中,网络设备考虑表征所接收的分组所属于的分组流的业务模式,以确定是将所接收的分组的缓冲卸载到第二(较低访问带宽)分组存储器还是将所接收的分组缓冲在第一(较高访问带宽)分组存储器中。
在示例实施例中,由网络设备处理的分组流根据分组流的业务模式被归类为不同的类别,至少包括通常对应于相对较大的(例如,总预期的数据量、持续时间,占用带宽等)分组流的第一业务模式类别和通常对应于相对较小的(例如,总预期的数据量、持续时间、占用带宽等)分组流的第二业务模式类别。作为示例,在一个实施例中,第一业务模式类别对应于数据中心网络的持久的、长期且高带宽“象”分组流(例如,大文件传输),而第二业务模式类别对应于数据中心网络的小的、短期且低带宽“鼠”分组流(例如,查询响应)。作为另一示例,在另一实施例中,第二业务模式类别对应于移动网络的长期且低带宽回程业务(例如,在链路上传输到移动网络中的核心网络的业务),而第一业务模式类别对应于其他业务,诸如移动网络的短期且高带宽前传业务(例如,在移动网络的边缘中的链路上传输的业务)。在其他实施例中,第一业务模式类别和/或第二业务模式类别对应于具有其他合适的业务模式特性的分组流。
在一个实施例中,网络设备被配置为将属于相对较小的分组流的分组的缓冲卸载到第二(较低访问带宽)分组存储器,并且将属于相对较大的分组流的分组缓冲在第一(较高访问带宽)分组存储器。通常,在至少一些实施例中,相对较小的分组流对增加的延迟较为敏感,该增加的延迟可能由分组丢失/重传和流控制机制(例如,传输控制协议(TCP)流控制机制)造成的传输速率调节所导致,因为与在没有分组丢失和重传的情况下完成相对较大的分组流的总时间的百分比相比,这种增加的延迟一般是(假设)该分组流在没有分组丢失和重传的情况下完成时的总时间的较大百分比。在一个实施例中,通过将属于相对较小的分组流的分组的缓冲卸载到较低访问带宽分组存储器,网络设备避免了由于较低访问带宽分组存储器的较高存储容量而导致的相对较小的分组流中的分组丢失和重传。此外,在至少一些网络环境中,相对较小的分组流通常构成由网络设备处理的总业务带宽的相对小的百分比。因此,在至少一些实施例中,仅将相对较小的分组流卸载到较低访问带宽分组存储器减少了需要由较低访问带宽分组存储器支持的带宽。此外,在至少一些实施例中,减少需要由较低访问带宽分组存储器支持的带宽又有助于减小与较低访问带宽分组存储器接口所需要的接口的大小。
图1是根据一个实施例的被配置为利用混合分组存储器架构来例如在拥塞的时间期间缓冲由网络设备104接收的分组的示例网络设备104的框图。网络设备104包括被配置为耦合到相应网络链路110的多个网络端口108。网络设备104还包括耦合到网络端口108的分组处理器112。分组处理器112被配置为处理经由网络端口108接收的分组,并且确定一个或多个其他网络端口108,分组将经由该一个或多个其他网络端口108被转发到一个或多个外部设备。在示例实施例中,网络设备104是数据中心交换系统的一部分。仅作为示例,网络设备104是数据中心网络中的叶子交换机。在其他实施例中,网络设备104是除了数据中心网络中的叶子交换机之外的合适的网络设备,或者是在除了数据中心网络之外的合适的网络(例如,移动网络)中利用的网络设备。
在一个实施例中,分组处理器112耦合到存储器控制器120。在另一实施例中,分组处理器112包括存储器控制器120。存储器控制器120耦合到第一分组存储器124。另外,存储器控制器120耦合到被配置为与第二分组存储器128接口的存储器接口126。在一个实施例中,第一分组存储器在与网络设备104的分组处理器112相同的芯片上实现。另一方面,在一个实施例中,第二分组存储器128没有在与分组处理器112相同的芯片上实现。例如,在一个实施例中,第二分组存储器128被实现为网络设备104外部的分开的设备,或者被包括在网络设备104外部的分开的设备中。在另一实施例中,第二分组存储器128在与分组处理器112不同的芯片上实现,但是第二分组存储器128仍然在网络设备104内部(例如,与网络设备104的其他组件封装在一起)。作为示例,第一分组存储器124在本文中有时被称为“内部分组存储器”,而第二分组存储器128在本文中有时被称为“外部分组存储器”。然而,在一些实施例中,第一分组存储器124和第二分组存储器128两者都是内部分组存储器,或者两者都是外部分组存储器。
在一个实施例中,内部分组存储器124使用静态随机存取存储器(SRAM)技术来实现。在一个实施例中,外部分组存储器使用动态随机存取存储器(DRAM)技术来实现。在一个实施例中,外部分组存储器是双倍数据速率(DDR)类型存储器,并且被配置为与外部分组存储器128接口的存储器接口126是DDR存储器接口。在其他实施例中,内部分组存储器124、外部分组存储器128和/或存储器接口126使用其他合适的技术来实现。仅作为示例,在各种实施例中,外部分组存储器被实现为图形双倍数据速率(GDDR)存储器、闪存、或任何其他合适类型的存储器。
在各个实施例中,与外部分组存储器128相比,内部分组存储器124具有不同的访问带宽、成本、大小、存储容量和其他特性。例如,内部分组存储器124具有较高的访问带宽,并且能够以由网络设备104支持的全线速操作。相反,在一些实施例中,外部分组存储器128具有较低的访问带宽,并且在一个实施例中,不能以由网络设备104支持的全线速操作。然而,在至少一些实施例中,内部分组存储器124比外部分组存储器128较昂贵。此外,在一个实施例中,内部分组存储器124占用片上空间,该片上空间例如适合于添加附加的处理电路系统。因此,在一些实施例中,例如由于成本和大小限制,内部分组存储器124通常比外部分组存储器128的大小较小并且存储容量较低。在一个实施例中,仅作为示例,内部分组存储器124具有大约兆字节(MB)或较小的存储容量,而外部分组存储器128具有大约千兆字节(GB)或较大的存储容量。在一些实施例中,与较低容量的内部分组存储器124相比,较高容量的外部分组存储器128提供在给定时间缓冲较多分组的能力。例如,在一个实施例中,外部分组存储器128能够缓冲遍历网络设备104的100毫秒(ms)或较多价值的业务,而内部分组存储器124能够缓冲遍历网络设备104的50微秒(μs)或较少价值的业务。
在一个实施例中,网络设备104被配置为基于分组流所表现出的业务模式特性来在内部分组存储器124和外部分组存储器128之间分配属于网络设备104正在处理的分组流的分组的缓冲。例如,网络设备104被配置为将属于表现出第一业务模式特性的分组流的分组缓冲在内部分组存储器124中,并且将属于表现出第二业务模式特性的其他分组流的分组缓冲到外部分组存储器128。作为示例,在一个实施例中,网络设备104被配置为选择内部分组存储器124以用于缓冲属于表现出相对较大的分组流的业务模式特性的分组流的分组(例如,数据中心网络中的象分组流、移动网络中的前传分组流等),诸如具有以下的分组流:属于该分组流的测量或预期的相对高的总分组量、由网络设备以其来接收属于该分组流的分组的测量或预期的相对高的速率、相对于由网络设备处理的总带宽的由分组流所占用的总业务带宽的测量或预期的相对较大的百分比等。另一方面,在一个实施例中,网络设备104被配置为选择外部分组存储器128以用于缓冲属于表现出相对较小的分组流的业务模式特性的分组流的分组(例如,鼠分组流、回程移动网络分组流等),诸如具有以下的分组流:属于该分组流的测量或预期的相对低的总分组量、由网络设备以其来接收属于该分组流的分组的测量或预期的低速率、相对于由网络设备处理的总业务带宽的由分组流所占用的业务带宽的测量或预期的相对较小的百分比等。在至少一些实施例中,仅将部分而不是全部分组流中的分组卸载到外部分组存储器128限制了外部分组存储器128的访问带宽要求,并且还有助于实现与外部分组存储器128接口所需要的较小的存储器接口126。例如,与如下系统中的外部存储器接口相比,可以实现具有较少数目的连接(例如,引脚)的接口,在这些系统中由网络设备处理的总带宽的较大部分(例如,总带宽的全部)由网络设备利用的外部分组存储器来支持。同时,在一个实施例中,由于属于某些分组流的分组被缓冲在外部分组存储器128中,因此内部分组存储器124中的存储器也被释放以用于缓冲其他分组流中的分组。
在操作中,由网络设备104接收的分组被提供给分组处理器112以用于处理该分组。在一些实施例中,至少在处理分组的初始阶段期间,分组的至少接收部分临时存储在一个或多个输入缓冲器(未示出)中,直到分组处理器112选择内部分组存储器124或外部分组存储器128以用于缓冲所接收的分组。在各种实施例中,例如,一个或多个输入缓冲器在内部分组存储器124中(例如,在内部分组存储器124的专用部分中)实现,或者在与内部分组存储器124分开的一个或多个存储器中实现。在一些实施例中,生成与分组相对应的数据单元,诸如与分组相对应的分组描述符,并且分组描述符而不是分组本身被提供给分组处理器112以进行分组的处理。在一个实施例中,分组描述符包括报头信息和与分组相关联的其他信息。分组处理器112被配置为在分组描述符的处理期间根据需要更新分组描述符中的信息。
在一个实施例中,分组处理器112包括转发引擎130和分组流业务特性分类器132。转发引擎130被配置为分析分组中的报头信息,以确定要经由其来传输分组的网络端口108。仅作为说明性示例,转发引擎130被配置为使用分组的报头中的目的地地址来在转发数据库(未示出)(该转发数据库存储目的地地址与网络端口108之间的对应关系)中执行查找以确定要经由其来传输分组的特定网络端口108。作为另一说明性示例,转发引擎130被配置为使用分组的报头中的VLAN ID来在转发数据库(未示出)(该转发数据库存储VLAN ID与网络端口108之间的对应关系)中执行查找以确定用于该分组的网络端口108的特定集合。根据一个实施例,转发引擎130被配置为将网络端口(或多个网络端口的集合)的ID存储在与该分组相对应的分组描述符中。
在一个实施例中,分组流业务特性分类器132被配置为将分组分类为分组流。在一个实施例中,分组流业务特性分类器132被配置为通过分析分组的报头中的信息和/或否则与分组相关联的信息来将分组分类为分组流。通常,分组流对应于共享某些共享特性的分组流。例如,在一个实施例中,在基本水平上,特定分组流可以被定义为如下分组的流,所有分组都具有相同的特定源地址和相同的特定目的地地址。在各种实施例中,分组流也可以被定义为具有如下报头的分组流,所有报头都具有特定的公共属性,诸如以下中的一项或多项:i)特定源地址,ii)特定目的地地址,iii)在其上接收分组的特定端口,iv)要经由其传输分组的特定端口,v)特定虚拟局域网(VLAN)标识符(ID),vi)特定优先级,vii)特定分组类型,viii)特定服务质量要求等。仅作为示例,分组流可以被定义为具有如下报头的分组的流,所有报头都具有相同的5元组值,包括i)源IP地址,ii)源端口号,iii)目的地IP地址,iv)目的地端口号以及v)特定IP协议。根据一个实施例,分组流业务特性分类器132被配置为将相应的流ID分配给至少一些分组,其中流ID指示分组所属的相应流。根据一个实施例,分组流业务特性分类器132被配置为将分配给分组的流ID存储在与该分组相对应的分组描述符中。
在一个实施例中,分组流业务特性分类器132还被配置为根据与分组流相对应的业务特性对分组流进行分类。例如,在一个实施例中,分组流业务特性分类器132被配置为将特定分组流分类为第一业务模式类别或第二业务模式类别的分组流。在一个实施例中,第一业务模式类别对应于相对较大、较高带宽分组流(例如,数据中心网络中的象分组流、移动网络中的前传分组流等),并且第二业务模式类别对应于相对较小、较低带宽分组流(例如,数据中心网络中的鼠分组流、移动网络中的回程分组流等)。通常,在一个实施例中,第一业务模式类别的分组流大于第二业务模式类别的分组流。例如,在一个实施例中,与第二业务模式类别的分组流中承载的总数据量相比,第一业务模式类别的分组流通常承载相对较大的总数据量(例如,字节数、分组数等)。仅作为示例,第一业务模式类别中的分组流可以对应于以二十个或更多个分组传输的大文件传送。另一方面,在一个实施例中,第二业务模式类别中的分组流可以是响应于查询而传输的分组流,并且分组流可以以一个或两个分组来传输,或者分组流可以对应于可以以三个或四个分组传输的电子邮件消息。因此,例如,第一业务模式类别的分组流通常包括超过(或大于或等于)预定阈值的分组数或字节数。另一方面,在一个实施例中,第二业务模式类别的分组流包括不超过(或小于或等于)预定阈值的分组数或字节数。在一些实施例中,与属于第二业务模式类别中的分组流的分组相比,属于第二业务模式类别中的分组流的分组的大小通常较小。在其他实施例中,与属于第一业务模式类别中的分组流的分组相比,属于第二业务模式类别中的分组流的分组的大小相同或相似。
在一些实施例中,第二业务模式类别的分组流是突发性的并且是短期的,而第一业务模式类别的分组流较均匀和持久。作为示例,在一个实施例中,例如由于在多个端口108上并发地接收并且要经由相同的端口108传输(例如,到传输查询的主机设备)的鼠分组流(例如,查询响应),数据中心网络中的短期鼠分组流通常是突发性的。另一方面,在一个实施例中,数据中心网络中的象分组流通常较均匀和持久。在其他实施例中,第二业务模式类别的分组流的均匀性与第一业务模式类别的分组流的均匀性相同或相似。
在一些实施例中,第二业务模式类别的分组流通常经历相对较高水平的拥塞,而第一业务模式类别的分组流通常经历相对较低水平的拥塞。作为示例,例如,由于经由其接收回程分组流的下行链路端口108与向其传递分组流的上行链路端口108之间的带宽的失配,移动网络中的回程分组流通常经历高水平的拥塞。另一方面,在一个实施例中,移动网络中的前传分组流通常经历低水平的拥塞。在其他实施例中,第二业务模式类别的分组流的拥塞水平与第一业务模式类别的分组流的拥塞水平相同或相似。
在各种实施例中,由于外部分组存储器128的较高存储容量,将突发性和/或通常拥塞但相对较低带宽的分组流的缓冲卸载到较低访问带宽的外部分组存储器128促进了分组流的吸收。此外,在一个实施例中,将突发性和/或通常拥塞但相对较低带宽的分组流的缓冲卸载到外部分组存储器128为较高访问带宽的内部分组存储器128中的相对较高带宽分组流释放了存储器空间。作为示例,在一个实施例中,由于外部分组存储器128的较高存储容量,将属于短期突发性分组流(诸如数据中心网络中的鼠分组流)的分组的缓冲卸载到外部分组存储器128促进了突发性分组流的吸收,例如在由在突发性分组流中接收的分组突发引起的业务高峰期间。此外,在至少一些实施例中,外部分组存储器128的较高存储容量允许在没有分组丢失的情况下缓冲短期分组流,从而消除了将显著增加(例如,加倍)短期分组流的总完成时间的分组重传。另一方面,长期持久性分组流可以较好地容忍分组丢失和重传,因为由分组丢失和重传导致的增加的延迟通常占总时间(否则在该总时间中,分组流将在没有分组丢失和重传的情况下完成)的相对小的百分比。因此,在至少一些实施例中,由于在较低存储容量的内容分组存储器124中缓冲属于长期持久性分组流的分组所导致的分组丢失和重传不会显著影响长期持久性分组流的完成时间。此外,在一个实施例中,将短期分组流的缓冲卸载到外部分组存储器128为较高存储器访问带宽的内部分组存储器124中的长期持久性分组流释放了存储器空间。
作为另一示例,在一个实施例中,将属于通常较拥塞的分组流的分组(诸如移动网络中的回程分组流)的缓冲卸载到较大存储容量的外部分组存储器128促进了外部分组存储器128中的拥塞分组流的吸收。此外,在一个实施例中,将通常拥塞的分组流的缓冲卸载到外部分组存储器128为较高存储器访问带宽的内部分组存储器124中的较低拥塞但较高带宽的分组流(诸如移动网络中的前传分组流)释放了存储器空间。
在一个实施例中,分组流业务特性分类器132被配置为基于特定流的业务模式类别来确定将属于特定分组流的分组缓冲在内部分组存储器124中还是在外部分组存储器128中。在该实施例中,分组流业务特性分类器132被配置为向存储器控制器120提供对要在其中缓冲属于特定分组流的分组的分组存储器的指示。在另一实施例中,分组流业务特性分类器132被配置为向存储器控制器120指示所确定的分组流的分组流业务特性和/或所确定的分组流的业务模式类别;并且存储器控制器120被配置为基于分组流业务特性和/或业务模式类别来确定将属于特定分组流的分组缓冲在内部分组存储器124还是外部分组存储器128中。
在各种实施例中,分组流业务特性分类器132被配置为统计地确定分组流的业务模式特性,并且基于统计地确定的分组流的业务模式特性来向分组流分配业务模式类别。作为示例,在一个实施例中,分组流业务特性分类器132被配置为基于在采样周期期间对在特定分组流中接收的若干分组进行采样来确定特定分组流的业务模式类别。例如,在一个实施例中,分组流业务特性分类器132被配置为通过对以下中的一项或二项进行采样来确定特定分组流是第一业务模式类别还是第二业务模式类别:i)在采样周期期间预期要在特定分组流中接收的数据量(例如,字节数、分组数等),以及ii)在采样周期期间(诸如在模仿接收属于该分组流的第一分组的时间的采样周期期间)以其接收特定分组流中的数据的速率(例如,每秒字节数、每秒分组数等)。在一个实施例中,如果特定分组中的经采样的数据量超过(或大于或等于)预定阈值,则分组流业务特性分类器132确定该特定分组流是与相对较大的分组流相对应的第一类别。类似地,在一个实施例中,如果特定分组流中的数据采样速率超过(或大于或等于)预定阈值,则分组流业务特性分类器132确定该特定分组流是与相对较大的分组流相对应的第一类别。另一方面,在一个实施例中,如果特定分组流中的经采样的数据量和/或数据的采样速率未超过预定阈值,则分组流类型分类器134确定该特定分组流是与相对较小的分组流相对应的第二业务模式类别。
另外地或备选地,在一些实施例中,分组流业务特性类别器132被配置为基于包括在属于特定分组流的分组中或与之相关联的信息来确定性地确定特定分组流的业务模式类别。例如,分组流业务特性分类器132被预配置为基于属于分组流的分组中的报头信息和/或否则与属于分组流的分组相关联的信息来确定特定分组流的业务模式类别。仅作为示例,在一个实施例中,分组流业务特性分类器132被配置为基于以下中的一个或多个来确定分组流的业务模式类别:i)源地址,ii)目的地地址,iii)接收到分组的端口,iv)要经由其传输分组的端口,v)数据优先级指示(例如,服务质量(QoS)指示),vi)数据类型指示,vii)数据应用指示,viii)VLAN ID等。在其他实施例中,分组流业务特性分类器132被配置为基于指示分组流的业务模式特性的其他合适的信息来确定分组流的业务模式类别。
在一些实施例中,分组流业务特性分类器132包括或耦合到三元内容可寻址存储器(TCAM)(未示出)或另一合适的存储设备,其存储i)特定分组报头信息和/或与分组相关联的其他信息与ii)流ID之间的对应关系;并且分组流业务特性分类器132被配置为使用分组报头信息和/或与分组相关联的其他信息来在TCAM(或其他合适的存储设备)中执行一个或多个查找以确定要分配给分组的特定流ID。在一些实施例中,TCAM中与特定分组流相对应的条目还存储对该分组流的业务模式类别和/或用以在其中缓冲属于该分组流的分组的分组存储器的指示;并且分组流业务特性分类器132被配置为在TCAM(或其他合适的存储设备)中执行查找以共同确定与分组所属的分组流相关联的特定流ID以及以下中的一项或两项:i)分组流的业务模式类别和ii)用以在其中缓冲分组的分组存储器。在另一实施例中,分开的TCAM存储器用于分组流分类。例如,尽管分组处理器112在图1中被示出为具有分组流业务特性分类器132,该分组流业务特性分类器132执行分组流分类和业务模式归类两者,但是在一些实施例中,分组处理器112包括:i)流分类器(例如,耦合到第一TCAM),对于一个分组所属的特定分组流,该流分类器确定向该分组分配一个流ID,以及ii)流归类器(例如,耦合到第二TCAM),其至少部分基于分配给该分组的流ID来确定该分组所属的特定分组流的业务模式类别和/或用以在其中缓冲该分组的分组存储器。
在一个实施例中,当确定在其中存储属于分组流的分组的分组存储器时,分组流业务特性分类器132被配置为还考虑与要经由其来从网络设备传输分组流的端口108相对应的队列的当前拥塞水平。在一个实施例中,即使特定分组流被确定为指示外部分组存储器128将要用于缓冲属于分组流的分组的业务模式类别,当前队列拥塞水平信息也被用于覆盖对用于缓冲特定分组流的分组的外部分组存储器128的选择。例如,在一个实施例中,分组流业务特性分类器132被配置为:当与要经由其来传输特定分组流的端口108相对应的队列的当前填充水平低于(或不大于)预定阈值时,选择内部分组存储器124以缓冲属于特定分组流的分组,即使特定分组流是否则将指示外部分组存储器128用于缓冲分组的业务模式类别。在一些实施例中,分组流业务特性分类器132被配置为考虑用于确定分组存储器(在该分组存储器中要缓冲特定分组流的分组)的其他信息,例如,诸如从人工智能(AI)引擎向分组流业务特性分类器132提供的预测性业务模式和/或队列填充度信息。
在一个实施例中,在确定分组流的业务模式类别之前,将属于该分组流的分组缓冲在默认分组存储器(例如,内部分组存储器124或外部分组存储器128)中。作为示例,外部分组存储器128在本文中被描述为默认分组存储器。因此,例如,分组流业务特性分类器132被配置为在分组流中接收到足以确定该分组流的业务模式特性的数目的分组之前,为该分组流的前若干个分组选择外部分组存储器128。在一个实施例中,一旦确定分组流是与相对较大的分组流相对应的第一业务模式类别,则将属于该分组流的随后接收的分组缓冲在内部分组存储器124中。例如,在一个实施例中,如果特定分组流的数据量和/或数据速率超过预定阈值,则分组流业务特性分类器132确定该特定分组流是与相对较大的分组流相对应的第一业务模式类别,并且开始在内部分组存储器124中缓冲特定分组流中的后续分组。例如,在一个实施例中,分组流业务特性分类器132更新与特定分组流相对应的TCAM条目以指示特定分组流是第一业务模式类别和/或直接指示内部分组存储器124将用于缓冲分组流中的分组,使得内部分组存储器124随后被选择用于缓冲属于该特定分组流的分组。
存储器控制器120被配置为将分组存储在内部分组存储器124或外部分组存储器128中的所确定的一个中以用于缓冲分组。在一些实施例中,存储器控制器120被配置为在与分组相关联的分组描述符中包括对以下分组存储器中的存储器位置的指示:分组被缓冲在其中的内部分组存储器124或外部分组存储器128中的一个。在分组处理器112完成对分组的处理之后,并且当该分组被调度以经由针对该分组确定的端口108进行传输时,从以下分组存储器中的存储器位置中获取该分组:分组被缓冲在其中的内部分组存储器124和外部分组存储器128中的一个。例如,存储器控制器120或另一合适的单元从以下分组存储器中的存储器位置中获取该分组:分组被缓冲在其中的内部分组存储器124和外部分组存储器128中的一个。然后,获取到的分组被转发到端口108以用于传输该分组。在一个实施例中,获取分组包括确定分组是被缓冲在内部分组存储器124还是外部分组存储器128中。例如,存储器控制器120或其他合适的单元基于与分组相关联的流ID来确定该分组被缓冲在内部分组存储器124还是外部分组存储器128中。
图2是根据实施例的另一示例网络设备204的框图。网络设备204类似于图1的网络设备204,除了网络设备204被配置为经由外部设备208耦合到外部分组存储器128之外。在一个实施例中,外部设备208是耦合到外部分组存储器128的合适的网络设备,诸如交换机、路由器等。外部网络设备208在图2中以简化的形式示出为包括分组处理器212和存储器控制器220。外部网络设备208还包括用于耦合到相应的一个或多个网络链路的一个或多个网络端口208。在一些实施例中,外部设备208另外地或备选地包括其他组件。
网络设备204包括许多与图1的网络设备104相同编号的组件。但是,在一个实施例中,网络设备204省略了到外部分组存储器128的接口126。相反,在一个实施例中,网络设备204耦合到外部网络设备208,该外部网络设备208又耦合到外部分组存储器128。在一个实施例中,网络设备204经由网络设备204的网络端口108(例如,网络端口108a)与外部网络设备208的网络端口208(例如,网络端口208a)之间的网络链路(例如,网络链路110a)耦合到外部网络设备208。在一个实施例中,网络端口108a、网络链路110a和网络208a支持外部分组存储器128的访问带宽。在另一实施例中,多个网络端口108、多个网络端口208和多个网络链路110用于共同地支持外部分组存储器128的访问带宽。
在一个实施例中,由网络设备204接收的分组被提供给分组处理器112。分组处理器112的转发引擎130确定要经由其来传输分组的端口108。在一个实施例中,分组流业务特性分类器132确定分组所属的特定分组流。分组流业务特性分类器132还确定特定分组流的业务分组类别。例如,分组流业务特性分类器132确定特定分组流对应于第一业务模式类别的分组流(例如,数据中心网络中的鼠分组流、移动网络中的回程分组流等)还是第二业务模式类别的分组流(例如,数据中心网络中的象分组流、移动网络中的前传分组流等)。在一个实施例中,业务模式类别指示该分组是要被缓冲在内部分组存储器124还是外部分组存储器128中。在另一实施例中,分组流业务特性分类器132基于指示该分组所属的特定分组流的业务模式特性的信息来直接确定该分组要被缓冲在内部分组存储器124还是外部分组存储器128中。
在一个实施例中,如果在处理分组期间确定该分组要被缓冲在外部分组存储器128中,则分组处理器112经由端口108a向外部网络设备208传输该分组。在一个实施例中,在向外部网络设备208传输该分组之前,分组处理器112向该分组添加对网络设备204的端口108的指示,随后将经由该端口108从网络设备204传输该分组。例如,在一个实施例中,分组处理器112向分组的报头添加标签(诸如分布式系统架构(DSA)标签或另一合适的标签),并且在标签中包括对网络设备204的端口108的指示,网络设备204随后将经由该端口108来传输该分组。
外部设备208接收该分组并且将该分组提供给分组处理器212。分组处理器212最小化地处理该分组,例如仅基于该分组中的标签(例如,DSA标签)来确定网络设备204的端口108,随后将经由该端口108来传输该分组。在一个实施例中,分组处理器112将分组以及对网络设备204的端口108(随后将经由该端口108来传输该分组)的指示提供给存储器控制器220。在一个实施例中,存储器控制器220使外部分组存储器128中的分组在与网络设备204的端口108(随后将经由该端口108来传输该分组)相对应的队列中入队。
在一个实施例中,网络设备204(例如,网络设备204的分组处理器112)被配置为向外部网络设备208提供流控制消息。例如,在一个实施例中,网络设备204被配置为经由耦合到外部网络设备208的端口108a向外部网络设备208传输流控制消息。在一个实施例中,由网络设备204向外部网络设备208传输的流控制消息被配置为指示网络设备204的一个或多个端口108,该一个或多个端口108可用于传输在外部分组存储器128中缓冲的一个分组(或多个分组)。在一个实施例中,网络设备208(例如,网络设备208的分组处理器212)被配置为处理从网络设备204接收的流控制消息,并且确定可用于传输在外部分组存储器128中缓冲的分组的网络设备108的一个或多个端口108。响应于确定网络设备204的特定端口108可用于传输在外部分组存储器128中缓冲的分组,网络设备208(例如,网络设备208的存储器控制器220)使在外部分组存储器128中的一个或多个分组从与网络设备204的特定端口108相对应的队列中出队。
然后,网络设备208向网络设备204(例如,经由端口208a)传输一个或多个分组。在一个实施例中,网络设备204(例如,分组处理器112)将分组转发到要经由其来传输分组的特定端口108。在一个实施例中,分组处理器112基于分组中的标签(例如,DSA标签)中的指示来确定要将从网络设备208接收的分组转发给其的特定端口108。在一个实施例中,在将分组转发到特定端口108之前,分组处理器112从分组中移除标签。在一个实施例中,网络设备204然后从特定端口108传输分组。
在一些实施例中,外部网络设备208耦合到多个网络设备,并且外部分组存储器128用于在外部缓冲用于多个网络设备的分组。例如,外部网络设备208的端口208b耦合到另一网络设备,并且除了最小化地处理和排队在外部分组存储器128中在与网络设备204的端口108相对应的第一队列中从网络设备204接收的分组之外,网络设备208还被配置为最小化地处理和排队在外部分组存储器128中在与另一网络设备的端口相对应的第二队列中从另一网络设备接收的分组。在一个实施例中,网络设备204还被配置为从另一网络设备接收流控制消息,并且将外部分组存储器128中的分组队列传输到另一网络设备,以用于从另一网络设备传输分组。
图3是示出根据实施例的用于在网络设备中处理分组的示例方法300的流程图。在一个实施例中,图1的网络设备104实现方法300以处理分组。例如,在一个实施例中,网络设备104的分组处理器112实现方法300的至少一部分以处理分组。在另一实施例中,图2的网络设备204实现方法300以处理分组。为了便于说明,参考图1、2的网络设备104描述方法300。在其他实施例中,方法300由其他合适的网络设备实现。
在框302处,由网络设备接收分组。在一个实施例中,经由图1的网络设备104的端口108接收分组。在另一实施例中,经由图2的网络设备204的端口108接收分组。
在框304和306处,至少最初处理在框302处接收的分组以至少确定要经由其来传输分组的网络设备的一个或多个网络端口(框304)并且将分组分类为分组流(框306)。在一个实施例中,网络设备104、204的分组处理器112的转发引擎130确定要经由其来传输分组的一个或多个网络端口,并且网络设备104、204的分组处理器112的分组流业务特性分类器132将分组分类为分组流。在另一实施例中,不同于转发引擎130的合适组件确定要经由其来传输分组的一个或多个网络端口,和/或不同于将分组分类为分组流的分组流业务分类器132的合适组件。
在框308处,将分组缓冲在以下中的一个中:i)第一分组存储器和ii)第二分组存储器。在一个实施例中,第一分组存储器对应于图1、2的第一分组存储器124,并且第二分组存储器对应于图1、2的第二分组存储器128。在另一实施例中,第一分组存储器是与第一分组存储器124不同的合适的分组存储器,和/或第二分组存储器是与第二分组存储器128不同的合适的分组存储器。在一个实施例中,第一分组存储器具有与第二分组存储器的存储器访问带宽不同的存储器访问带宽。例如,第一分组存储器具有比第二分组存储器高的存储器访问带宽。在一个实施例中,第一分组存储器具有与第二分组存储器的存储容量不同的存储容量。例如,第一分组存储器的存储容量低于第二分组存储器。在一个实施例中,第一分组存储器是内部分组存储器,该内部分组存储器在与网络设备的分组处理器相同的一个或多个集成电路(例如,芯片)上实现。另一方面,在一个实施例中,第二分组存储器是外部分组存储器,该外部分组存储器在其上实现了网络设备的分组处理器的一个或多个集成电路的外部实现。然而,在另一实施例中,第一分组存储器和第二分组存储器都是内部分组存储器,该内部分组存储器在与网络设备的分组处理器相同的一个或多个集成电路(例如,芯片)上实现,或者都是外部分组存储器,该外部分组存储器在其上实现了网络设备的分组处理器的一个或多个集成电路的外部实现。
在一个实施例中,根据分组所属的分组流的业务模式类别,在框308处在第一分组存储器和第二分组存储器中的一个中缓冲分组。例如,属于与相对较大、较高带宽分组流相对应的第一业务模式类别的分组流的分组(例如,数据中心网络中的象分组流、移动网络中的前传分组流等)被缓冲在第一分组存储器中,而属于与相对较小、较低带宽分组流相对应的第二业务模式类别的分组流的分组(例如,数据中心网络中的鼠分组流、移动网络中的回程分组流等)被缓冲在第二分组存储器中。在至少一些实施例中,将仅属于某些分组流(诸如仅相对较小的分组流)的分组的缓冲卸载到第二分组存储器限制了第二分组存储器的所需的访问带宽和访问第二分组存储器所需的存储器接口。此外,在一个实施例中,将相对较小的分组流卸载到第二分组存储器提供了较多的存储器空间以用于在第一分组存储器中缓冲相对较大的分组流。
在框310处,在处理分组之后,从分组被存储在其中的第一分组存储器或第二分组存储器中获取分组。在一个实施例中,在框412处获取分组包括确定该分组是存储在第一分组存储器还是第二分组存储器中。例如,基于分配给该分组的流ID来确定该分组是存储在第一分组存储器还是第二分组存储器中。在其他实施例中,确定以其他合适的方式来确定分组是存储在内部分组存储器还是在外部分组存储器中。
在框312处,在框310处获取到的分组被转发到被确定用于传输分组的一个或多个网络端口中的一个网络端口,并且该分组随后经由该网络端口从网络设备被传输。
在一个实施例中,一种用于在网络设备中处理分组的方法,包括:在网络设备的分组处理器处接收分组,该分组经由网络设备的多个网络端口中的网络端口进入;利用分组处理器处理分组,以至少确定多个网络端口中的一个或多个网络端口,该分组将经由该一个或多个网络端口来从网络设备被传输;利用分组处理器将分组分类为分组流,该分组流被进一步归类为业务模式类别,该业务模式类别表征该分组流的业务模式特性;利用分组处理器根据该分组流的业务模式类别在以下中的一项中缓冲属于该分组流的分组:i)第一分组存储器和ii)第二分组存储器,该第一分组存储器具有第一存储器访问带宽,该第一存储器访问带宽与第二分组存储器的第二存储器访问带宽不同;在处理分组之后,利用分组处理器从分组被缓冲在其中的第一分组存储器或第二分组存储器中获取分组;以及利用分组处理器将该分组转发到所确定的一个或多个网络端口,以用于经由所确定的一个或多个网络端口传输该分组。
在其他实施例中,该方法包括以下特征中的一个或多个特征的任何合适的组合。
缓冲分组包括基于指示以下中的一项或两项的信息来选择第一分组存储器或第二分组存储器以用于缓冲属于特定分组流的分组:i)被预期在特定分组流中被接收的总数据量,以及ii)特定分组流中的数据的接收速率。
缓冲分组包括基于指示以下中的一项或两项的信息来选择第一分组存储器或第二分组存储器以用于缓冲属于特定分组流的分组:i)在属于特定分组流的分组中承载的数据的类型,以及ii)在属于特定分组流的分组中承载的数据的优先级。
缓冲分组包括基于指示以下中的一项或两项的信息来选择第一分组存储器或第二分组存储器以用于缓冲属于特定分组流的分组:i)特定分组流的源,以及ii)特定分组流的目的地。
第一分组存储器的第一访问带宽高于第二分组存储器的第二访问带宽,并且缓冲分组包括:在第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于第二模式业务类别的相应分组流相比,第一业务模式类别中的相应分组流的总预期的数据量较大。
第一分组存储器具有第一存储容量,该第一存储容量大于第二分组存储器的第二存储容量,并且缓冲分组包括:在第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于第二模式业务类别的相应分组流相比,第一业务模式类别中的相应分组流的总预期的数据量较小。
第一分组存储器在分组处理器被实现在其上的一个或多个集成电路的内部,第二分组存储器在分组处理器被实现在其上的一个或多个集成电路的外部,并且缓冲分组包括:在第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在第二分组缓冲器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于第二模式业务类别的相应分组流相比,第一业务模式类别中的相应分组流的总预期的数据量较大。
第二分组存储器与外部网络设备相关联,该外部网络设备经由多个网络端口中的网络端口耦合到网络设备。
缓冲分组包括:当确定分组将在第二分组存储器中被缓冲时,向分组添加标签,该标签至少指示分组将经由其被传输的网络设备的网络端口,以及将分组传输到外部网络设备,以用于在与外部网络设备相关联的第二分组存储器中缓冲该分组。
该方法还包括:利用分组处理器向外部网络设备传输流控制消息,该流控制消息向外部设备指示多个端口中的特定端口可用于传输被存储在第二分组存储器中的分组。
在另一实施例中,一种网络设备包括:多个网络端口,被配置为耦合到多个网络链路;以及分组处理器,耦合到多个网络端口。该分组处理器被配置为:处理经由多个网络端口中的网络端口被接收的分组,以至少确定多个网络端口中的一个或多个其他网络端口,该分组将经由该一个或多个其他网络端口来从网络设备被传输;将分组分类为分组流,该分组流被进一步归类为业务模式类别,该业务模式类别表征该分组流的业务模式特性;根据分组流的业务模式类别在以下中的一项中缓冲属于该分组流的分组:i)第一分组存储器和ii)第二分组存储器,该第一分组存储器具有第一存储器访问带宽,该第一存储器访问带宽与第二分组存储器的第二存储器访问带宽不同;在处理该分组之后,从分组被缓冲在其中的第一分组存储器或第二分组存储器中获取分组;以及将该分组转发到所确定的一个或多个网络端口,以用于经由所确定的一个或多个网络端口传输该分组。
在其他实施例中,网络设备包括以下特征中的一个或多个特征的任何合适的组合。
分组处理器还被配置为基于指示以下中的一项或两项的信息来选择第一分组存储器或第二分组存储器以用于缓冲属于特定分组流的分组:i)被预期在特定分组流中被接收的总数据量,以及ii)特定分组流中的数据的接收速率。
所述分组处理器还被配置为基于指示以下中的一项或两项的信息来选择第一分组存储器或第二分组存储器以用于缓冲属于特定分组流的分组:i)在属于特定分组流的分组中承载的数据的类型,以及ii)在属于特定分组流的分组中承载的数据的优先级。
所述分组处理器还被配置为基于指示以下中的一项或两项的信息来选择第一分组存储器或第二分组存储器以用于缓冲属于特定分组流的分组:i)特定分组流的源,以及ii)特定分组流的目的地。
第一分组存储器的第一访问带宽高于第二分组存储器的第二访问带宽。
分组处理器被配置为在第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于第二业务模式类别的相应分组流相比,第一业务模式类别中的相应分组流的总预期的数据量较大。
第一分组存储器具有第一存储容量,该第一存储容量大于第二分组存储器的第二存储容量。
分组处理器被配置为在第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于第二业务模式类别的相应分组流相比,第一业务模式类别中的相应分组流的总预期的数据量较小。
分组处理器在一个或多个集成电路上被实现,第一分组存储器在该分组处理器被实现在其上的一个或多个集成电路的内部,以及第二分组存储器在该分组处理器被实现在其上的一个或多个集成电路的外部。
第二分组存储器与外部网络设备相关联,该外部网络设备经由多个网络端口中的网络端口耦合到网络设备。
分组处理器被配置为:当确定分组将在第二分组存储器中被缓冲时,向该分组添加标签,该标签至少指示该分组将经由其被传输的网络设备的网络端口,以及将该分组传输到外部网络设备,以用于在与外部网络设备相关联的第二分组存储器中缓冲该分组。
分组处理器还被配置为向外部网络设备传输流控制消息,该流控制消息向外部设备指示多个端口中的特定端口可用于传输被存储在第二分组存储器中的分组。
上述各种框、操作、和技术中的至少一些利用专用硬件合适地实现,诸如以下中的一项或多项:分立组件、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、执行固件指令的处理器、执行软件指令的处理器、或其任何组合。当利用执行软件或固件指令的处理器来实现时,软件或固件指令可以存储在任何合适的计算机可读存储器中,诸如在磁盘、光盘、或其他存储介质等上。软件或固件指令可以包括机器可读指令,该机器可读指令在由一个或多个处理器执行时使一个或多个处理器执行各种动作。
尽管已经参考特定示例描述了本发明,但是这些特定示例仅是旨在示例性的,而并不限制本发明,在不脱离本发明的范围的情况下,可以对所公开的实施例进行改变、增加和/或删除。
Claims (20)
1.一种用于在网络设备中处理分组的方法,所述方法包括:
在所述网络设备的分组处理器处接收分组,所述分组经由所述网络设备的多个网络端口中的网络端口进入;
利用所述分组处理器处理所述分组,以至少确定所述多个网络端口中的一个或多个网络端口,所述分组将经由所述一个或多个网络端口来从所述网络设备被传输;
利用所述分组处理器将所述分组分类为分组流,所述分组流被进一步归类为业务模式类别,所述业务模式类别表征所述分组流的业务模式特性;
利用所述分组处理器根据所述分组流的所述业务模式类别在以下中的一项中缓冲属于所述分组流的分组:i)第一分组存储器和ii)第二分组存储器,所述第一分组存储器具有第一存储器访问带宽,所述第一存储器访问带宽与所述第二分组存储器的第二存储器访问带宽不同;
在处理所述分组之后,利用所述分组处理器从所述分组被缓冲在其中的所述第一分组存储器或所述第二分组存储器中获取所述分组;以及
利用所述分组处理器将所述分组转发到所确定的所述一个或多个网络端口,以用于经由所确定的所述一个或多个网络端口传输所述分组。
2.根据权利要求1所述的方法,其中缓冲所述分组包括基于指示以下中的一项或两项的信息来选择所述第一分组存储器或所述第二分组存储器以用于缓冲属于特定分组流的分组:i)被预期在所述特定分组流中被接收的总数据量,以及ii)所述特定分组流中的数据的接收速率。
3.根据权利要求1所述的方法,其中缓冲所述分组包括基于指示以下中的一项或两项的信息来选择所述第一分组存储器或所述第二分组存储器以用于缓冲属于特定分组流的分组:i)在属于所述特定分组流的所述分组中承载的数据的类型,以及ii)在属于所述特定分组流的所述分组中承载的数据的优先级。
4.根据权利要求1所述的方法,其中缓冲所述分组包括基于指示以下中的一项或两项的信息来选择所述第一分组存储器或所述第二分组存储器以用于缓冲属于特定分组流的分组:i)所述特定分组流的源,以及ii)所述特定分组流的目的地。
5.根据权利要求1所述的方法,其中
所述第一分组存储器的所述第一访问带宽高于所述第二分组存储器的所述第二访问带宽,并且
缓冲所述分组包括:在所述第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在所述第二分组缓存器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于所述第二模式业务类别的相应分组流相比,所述第一业务模式类别中的相应分组流的总预期的数据量较大。
6.根据权利要求1所述的方法,其中
所述第一分组存储器具有第一存储容量,所述第一存储容量大于所述第二分组存储器的第二存储容量,并且
缓冲所述分组包括:在所述第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在所述第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于所述第二模式业务类别的相应分组流相比,所述第一业务模式类别中的相应分组流的总预期的数据量较小。
7.根据权利要求1所述的方法,其中
所述第一分组存储器在所述分组处理器被实现在其上的一个或多个集成电路的内部,
所述第二分组存储器在所述分组处理器被实现在其上的所述一个或多个集成电路的外部,并且
缓冲所述分组包括:在所述第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在所述第二分组缓冲器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于所述第二模式业务类别的相应分组流相比,所述第一业务模式类别中的相应分组流的总预期的数据量较大。
8.根据权利要求1所述的方法,其中
所述第二分组存储器与外部网络设备相关联,所述外部网络设备经由所述多个网络端口中的网络端口耦合到所述网络设备,并且
缓冲所述分组包括:当确定分组将在所述第二分组存储器中被缓冲时,
向所述分组添加标签,所述标签至少指示所述分组将经由其被传输的所述网络设备的所述网络端口,以及
将所述分组传输到所述外部网络设备,以用于在与所述外部网络设备相关联的所述第二分组存储器中缓冲所述分组。
9.根据权利要求8所述的方法,还包括:利用所述分组处理器向所述外部网络设备传输流控制消息,所述流控制消息向所述外部设备指示所述多个端口中的特定端口可用于传输被存储在所述第二分组存储器中的分组。
10.一种网络设备,包括:
多个网络端口,被配置为耦合到多个网络链路;以及
分组处理器,耦合到所述多个网络端口,所述分组处理器被配置为:
处理经由所述多个网络端口中的网络端口被接收的分组,以至少确定所述多个网络端口中的一个或多个其他网络端口,所述分组将经由所述一个或多个其他网络端口来从所述网络设备被传输;
将所述分组分类为分组流,所述分组流被进一步归类为业务模式类别,所述业务模式类别表征所述分组流的业务模式特性;
根据所述分组流的所述业务模式类别在以下中的一项中缓冲属于所述分组流的分组:i)第一分组存储器和ii)第二分组存储器,所述第一分组存储器具有第一存储器访问带宽,所述第一存储器访问带宽与所述第二分组存储器的第二存储器访问带宽不同;
在处理所述分组之后,从所述分组被缓冲在其中的所述第一分组存储器或所述第二分组存储器中获取所述分组;以及
将所述分组转发到所确定的所述一个或多个网络端口,以用于经由所确定的所述一个或多个网络端口传输所述分组。
11.根据权利要求10所述的网络设备,其中所述分组处理器还被配置为基于指示以下中的一项或两项的信息来选择所述第一分组存储器或所述第二分组存储器以用于缓冲属于特定分组流的分组:i)被预期在所述特定分组流中被接收的总数据量,以及ii)所述特定分组流中的数据的接收速率。
12.根据权利要求10所述的网络设备,其中所述分组处理器还被配置为基于指示以下中的一项或两项的信息来选择所述第一分组存储器或所述第二分组存储器以用于缓冲属于特定分组流的分组:i)在属于所述特定分组流的所述分组中承载的数据的类型,以及ii)在属于所述特定分组流的所述分组中承载的数据的优先级。
13.根据权利要求10所述的网络设备,其中所述分组处理器还被配置为基于指示以下中的一项或两项的信息来选择所述第一分组存储器或所述第二分组存储器以用于缓冲属于特定分组流的分组:i)所述特定分组流的源,以及ii)所述特定分组流的目的地。
14.根据权利要求10所述的网络设备,其中所述第一分组存储器的所述第一访问带宽高于所述第二分组存储器的所述第二访问带宽。
15.根据权利要求14所述的网络设备,其中所述分组处理器被配置为在所述第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在所述第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于所述第二业务模式类别的相应分组流相比,所述第一业务模式类别中的相应分组流的总预期的数据量较大。
16.根据权利要求10所述的网络设备,其中所述第一分组存储器具有第一存储器容量,所述第一存储器容量大于所述第二分组存储器的第二存储容量。
17.根据权利要求16所述的网络设备,其中所述分组处理器被配置为在所述第一分组存储器中缓冲属于第一业务模式类别中的分组流的分组,以及在所述第二分组存储器中缓冲属于第二业务模式类别中的分组流的分组,其中与属于所述第二业务模式类别的相应分组流相比,所述第一业务模式类别中的相应分组流的总预期的数据量较小。
18.根据权利要求10所述的网络设备,其中
所述分组处理器在一个或多个集成电路上被实现,
所述第一分组存储器在所述分组处理器被实现在其上的所述一个或多个集成电路的内部,
所述第二分组存储器在所述分组处理器被实现在其上的所述一个或多个集成电路的外部。
19.根据权利要求10所述的网络设备,其中
所述第二分组存储器与外部网络设备相关联,所述外部网络设备经由所述多个网络端口中的网络端口耦合到所述网络设备,并且
所述分组处理器被配置为:当确定分组将在所述第二分组存储器中被缓冲时,
向所述分组添加标签,所述标签至少指示所述分组将经由其被传输的所述网络设备的所述网络端口,以及
将所述分组传输到所述外部网络设备,以用于在与所述外部网络设备相关联的所述第二分组存储器中缓冲所述分组。
20.根据权利要求19所述的网络设备,其中所述分组处理器还被配置为:向所述外部网络设备传输流控制消息,所述流控制消息向所述外部设备指示所述多个端口中的特定端口可用于传输被存储在所述第二分组存储器中的分组。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762590039P | 2017-11-22 | 2017-11-22 | |
US62/590,039 | 2017-11-22 | ||
US16/197,028 US11159440B2 (en) | 2017-11-22 | 2018-11-20 | Hybrid packet memory for buffering packets in network devices |
US16/197,028 | 2018-11-20 | ||
PCT/IB2018/059174 WO2019102369A1 (en) | 2017-11-22 | 2018-11-21 | Hybrid packet memory for buffering packets in network devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111052689A true CN111052689A (zh) | 2020-04-21 |
CN111052689B CN111052689B (zh) | 2023-10-17 |
Family
ID=66532624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880057462.3A Active CN111052689B (zh) | 2017-11-22 | 2018-11-21 | 用于在网络设备中缓冲分组的混合分组存储器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11159440B2 (zh) |
CN (1) | CN111052689B (zh) |
WO (1) | WO2019102369A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2018070167A1 (ja) * | 2016-10-13 | 2019-08-08 | ソニーセミコンダクタソリューションズ株式会社 | 通信装置、および通信システム |
US11159440B2 (en) | 2017-11-22 | 2021-10-26 | Marvell Israel (M.I.S.L) Ltd. | Hybrid packet memory for buffering packets in network devices |
US10986001B2 (en) * | 2018-01-25 | 2021-04-20 | Nokia Solutions And Networks Oy | System and method for quality of service detection of encrypted packet flows |
WO2021186399A1 (en) * | 2020-03-18 | 2021-09-23 | Marvell Israel (M.I.S.L) Ltd. | Packet buffer spill-over in network devices |
US11637784B2 (en) * | 2021-03-31 | 2023-04-25 | Nxp Usa, Inc. | Method and system for effective use of internal and external memory for packet buffering within a network device |
EP4072042A1 (en) * | 2021-04-08 | 2022-10-12 | Deutsche Telekom AG | Synchronizing a distributed application via a communication network |
US20240073151A1 (en) * | 2022-08-23 | 2024-02-29 | Mellanox Technologies, Ltd. | Mice-elephant aware shared buffer schema |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516622A (zh) * | 2012-05-24 | 2014-01-15 | 马维尔国际贸易有限公司 | 网络交换机中的灵活队列 |
US20140269298A1 (en) * | 2013-03-14 | 2014-09-18 | Ralink Technology Corp. | Network Processor and Method for Processing Packet Switching in Network Switching System |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3213697B2 (ja) * | 1997-01-14 | 2001-10-02 | 株式会社ディジタル・ビジョン・ラボラトリーズ | 中継ノードシステム及び同システムにおける中継制御方法 |
US6538989B1 (en) * | 1997-09-09 | 2003-03-25 | British Telecommunications Public Limited Company | Packet network |
US6570876B1 (en) * | 1998-04-01 | 2003-05-27 | Hitachi, Ltd. | Packet switch and switching method for switching variable length packets |
US20040136379A1 (en) * | 2001-03-13 | 2004-07-15 | Liao Raymond R | Method and apparatus for allocation of resources |
JP3643827B2 (ja) * | 2002-12-17 | 2005-04-27 | 株式会社半導体理工学研究センター | ルータ装置とその出力ポート回路及びその制御方法 |
US20040252685A1 (en) * | 2003-06-13 | 2004-12-16 | Mellanox Technologies Ltd. | Channel adapter with integrated switch |
KR100601043B1 (ko) * | 2003-11-13 | 2006-07-14 | 한국전자통신연구원 | 패킷을 스케줄링하는 라우터 및 그 방법 |
US7760719B2 (en) * | 2004-06-30 | 2010-07-20 | Conexant Systems, Inc. | Combined pipelined classification and address search method and apparatus for switching environments |
JP2007028364A (ja) * | 2005-07-20 | 2007-02-01 | Matsushita Electric Ind Co Ltd | 通信制御装置、受信装置、集積回路、及び通信制御方法 |
US20080247409A1 (en) * | 2005-07-27 | 2008-10-09 | Choudhury Abhijit K | Queuing and Scheduling Architecture Using Both Internal and External Packet Memory for Network Appliances |
US20070183415A1 (en) * | 2006-02-03 | 2007-08-09 | Utstarcom Incorporated | Method and system for internal data loop back in a high data rate switch |
US7864764B1 (en) * | 2008-09-16 | 2011-01-04 | Juniper Networks, Inc. | Accelerated packet processing in a network acceleration device |
US20110228674A1 (en) * | 2010-03-18 | 2011-09-22 | Alon Pais | Packet processing optimization |
US8755271B2 (en) * | 2011-01-28 | 2014-06-17 | Broadcom Corporation | Dynamic memory bandwidth allocation |
US9063841B1 (en) | 2011-08-01 | 2015-06-23 | Marvell Israel (M.L.S.L.) Ltd. | External memory management in a network device |
WO2013167973A2 (en) | 2012-05-10 | 2013-11-14 | Marvell World Trade Ltd. | Hybrid dataflow processor |
US9548924B2 (en) * | 2013-12-09 | 2017-01-17 | Nicira, Inc. | Detecting an elephant flow based on the size of a packet |
US10044646B1 (en) * | 2014-12-02 | 2018-08-07 | Adtran, Inc. | Systems and methods for efficiently storing packet data in network switches |
US10594616B2 (en) * | 2016-09-30 | 2020-03-17 | Hughes Network Systems, LLC. | Data buffering control system and method for a communication network |
US10341241B2 (en) * | 2016-11-10 | 2019-07-02 | Hughes Network Systems, Llc | History-based classification of traffic into QoS class with self-update |
US11159440B2 (en) | 2017-11-22 | 2021-10-26 | Marvell Israel (M.I.S.L) Ltd. | Hybrid packet memory for buffering packets in network devices |
-
2018
- 2018-11-20 US US16/197,028 patent/US11159440B2/en active Active
- 2018-11-21 WO PCT/IB2018/059174 patent/WO2019102369A1/en active Application Filing
- 2018-11-21 CN CN201880057462.3A patent/CN111052689B/zh active Active
-
2021
- 2021-10-15 US US17/503,035 patent/US11936569B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516622A (zh) * | 2012-05-24 | 2014-01-15 | 马维尔国际贸易有限公司 | 网络交换机中的灵活队列 |
US20140269298A1 (en) * | 2013-03-14 | 2014-09-18 | Ralink Technology Corp. | Network Processor and Method for Processing Packet Switching in Network Switching System |
Also Published As
Publication number | Publication date |
---|---|
US11936569B2 (en) | 2024-03-19 |
US20190158414A1 (en) | 2019-05-23 |
CN111052689B (zh) | 2023-10-17 |
WO2019102369A1 (en) | 2019-05-31 |
US11159440B2 (en) | 2021-10-26 |
US20220038384A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052689B (zh) | 用于在网络设备中缓冲分组的混合分组存储器 | |
US10498612B2 (en) | Multi-stage selective mirroring | |
US10243865B2 (en) | Combined hardware/software forwarding mechanism and method | |
US11929931B2 (en) | Packet buffer spill-over in network devices | |
JP4260631B2 (ja) | ネットワーク輻輳制御の方法および装置 | |
US20200236052A1 (en) | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks | |
US8184540B1 (en) | Packet lifetime-based memory allocation | |
US10574546B2 (en) | Network monitoring using selective mirroring | |
US10601713B1 (en) | Methods and network device for performing cut-through | |
US20140169384A1 (en) | Hierarchical profiled scheduling and shaping | |
US11929930B2 (en) | System and method of a high buffered high bandwidth network element | |
US20070248110A1 (en) | Dynamically switching streams of packets among dedicated and shared queues | |
US8571049B2 (en) | Setting and changing queue sizes in line cards | |
US10855606B2 (en) | Information processing apparatus and information processing system | |
US11916790B2 (en) | Congestion control measures in multi-host network adapter | |
US20190334827A1 (en) | Automatically Cycling Among Packet Traffic Flows Subjecting Them to Varying Drop Probabilities in a Packet Network | |
US9922000B2 (en) | Packet buffer with dynamic bypass | |
KR20030034871A (ko) | 통신 장비의 버퍼 스케쥴링 장치 및 방법 |
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 |