CN104662862A - 可扩展低延迟多协议网络设备 - Google Patents

可扩展低延迟多协议网络设备 Download PDF

Info

Publication number
CN104662862A
CN104662862A CN201380048243.6A CN201380048243A CN104662862A CN 104662862 A CN104662862 A CN 104662862A CN 201380048243 A CN201380048243 A CN 201380048243A CN 104662862 A CN104662862 A CN 104662862A
Authority
CN
China
Prior art keywords
grouping
decision
field groups
field
logic unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380048243.6A
Other languages
English (en)
Other versions
CN104662862B (zh
Inventor
托马斯·J·埃兹尔
普图·哈利·撒巴吉奥
艾勒山多·弗里
克里斯托弗·A·维尔德曼
李明哲
黄伟健
黄之聪
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
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN104662862A publication Critical patent/CN104662862A/zh
Application granted granted Critical
Publication of CN104662862B publication Critical patent/CN104662862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • 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/3009Header conversion, routing tables or routing tags
    • 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/3063Pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/355Application aware switches, e.g. for HTTP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing

Landscapes

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

Abstract

网络设备接收分组,该分组包括多个字段组。该分组的字段组被解析,并且一旦这些字段组可用就被评估以确定是否能够对该分组做出处理决策。额外的字段组可并行于确定是否能够做出处理决策而从该分组中被解析并获得,但是一旦确定能够做出处理决策,则终止字段组的评估,从而忽略该分组的任何其他字段组,以对该分组做出处理决策。

Description

可扩展低延迟多协议网络设备
相关申请
本申请要求于2012年9月18日提交的,题为“Scalable Low LatencyMulti-Protocol Networking Device”,申请号为No.61/702312的美国临时申请的优先权,其全部内容被通过引用结合于此。
技术领域
本公开一般涉及降低网络设备中的延迟。
背景技术
高性能计算(HPC)使用超级计算机和/或计算机集群来解决使用针对网络内的分组传输需要高带宽、低延迟网络以及很高的计算能力的应用的复杂科学、工程和商业项目。开放式系统互连(OSI)模型层通常被用于在网络内处理分组,例如,用于确定分组在网络内从源节点传输到目的地节点的路由。这些模型层包括OSI第2层(数据链路)、第3层(网络)和第4层(传输)。
传统网络设备(例如,交换机)依赖于串行做出决策的传统方法。这些决策在逻辑上被分组为,例如,第2层(L2)桥接,第3层(L3)路由、访问控制等。虽然该方法简化了设计考虑,但是串行方法也引入了固有延迟,因为决策被推迟,并且重要资源(即,复制表)被消耗以满足逻辑分区。
附图说明
图1是其中可执行这里给出的技术的示例性网络设备的框图。
图2是被配置为在网络设备中做出超低延迟处理决策的交换信息库的详细框图。
图3是以图形示出了分组的字段组的处理以在网络设备中对分组做出低延迟处理决策的图。
图4是一般地示出由交换信息库执行以对分组做出低延迟处理决策的操作的流程图。
具体实施方式
概述
根据这里给出的技术,网络设备接收分组,该分组包括多个字段组。该分组的字段组被解析,并且一旦这些字段组可用就被评估以确定是否能够对该分组做出处理决策。额外的字段组可并行于确定是否能够做出处理决策而从所述分组中被解析并获得,但是一旦确定能够做出处理决策,则终止字段组的评估,从而忽略该分组的任何其他字段组,以对该分组做出处理决策。
示例性实施例
在通过网络进行分组传输的过程中,网络设备可执行将延迟引入分组传输过程中的一个或多个操作。网络设备(例如,交换机)中的延迟的一个起因是分组决策单元,也被称为交换信息库(SIB)。SIB基于到达分组及网络策略的内容进行处理决策。通过这里给出的新技术可实现大大降低SIB延迟,该新技术通过例如将传统上串行处理的逻辑动作并行化的范例实现了高可扩展性、全功能、低延迟以及多协议的网络设备架构。
图1是被配置为执行这些技术的示例性网络设备10的框图。网络设备10包括:被配置为从网络接收分组并向网络发送分组的多个端口12(1)-12(N),用于在端口12(1)-12(N)之间交换分组的交换结构14,中央处理单元(CPU)16以及存储器18。交换结构14包括一个或多个缓冲器20、交换表30以及分组决策单元40(即,SIB)。CPU 16执行网络设备10的操作的较高级别控制。缓冲器20在分组被处理时临时存储网络设备10内的分组。
SIB 40做出决策,包括但不限于:安全、服务质量(QoS)、统计、入口和出口访问控制策略、分类、标记、分组字段的添加或删除、负载均衡、多租户处理、第2层桥接(交换)和第3层路由以及分组的丢弃。交换结构14可以以一个或多个专用集成电路(ASIC)中的数字逻辑门实现。
存储器18可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光学存储介质设备,闪存设备,电的、光的或其他物理/有形存储器存储设备。CPU 16例如是微处理器或微控制器。因此,一般而言,存储器18可包括一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),该存储介质编码有包括计算机可执行指令的软件,并且当该软件被(CPU 16)执行时可操作为执行这里所述的技术。例如,SIB 40的操作可部分或全部以存储于存储器18中的软件执行并且由CPU 16执行。
网络设备10可以是现在已知或今后开发的任何网络设备,包括:交换机、路由器、网关、主机设备上的软件栈、虚拟网络接口卡(VNIC)、虚拟交换机以及物理网络接口卡(包括支持虚拟化的那些物理网络接口卡)。
现在转到图2,示出了SIB 40的更详细的图。为了实现可扩展性,多个端口(不必所有端口)通过串行来自多个端口的经解析的数据来共享单个SIB。因此,对于每个端口12(1)-12(N),均存在分组解析器。具体地,存在端口12(1)的解析器42(1),端口12(2)的解析器42(2),……,端口12(N)的解析器42(N)。每个分组解析器42(1)_42(N)对在相应的端口接收到的分组进行解析,并且顺序生成多个分组字段组,然后一旦它们准备好就发送它们。分组字段可被任意组织为M个字段组,被表示为:字段组1、字段组2、……、字段组M。作为示例,解析器可产生4组字段:字段组1包括第2层(L2)字段,字段组2包括第3层(L3)字段,字段组3包括第4层(L4)字段,而字段组4包括深度分组检测(DPI)字段。因此,每个字段组包括一个或多个字段。
分组解析器42(1)_42(N)被耦合到字段组处理块43。字段组处理块43包括多个字段组专用决策子块44(1)-44(M)。每个字段组专用决策子块专用于相应的字段组,并且包括字段组决策逻辑单元和字段组仲裁器(arbiter)。因此,存在多个决策逻辑单元,每个均被配置为基于分组的特定字段组(而在一些情况中,还基于来自该分组的先前另一字段组的处理的处理结果)来确定是否能够对分组做出处理决策。
具体地,字段组专用决策子块44(1)包括字段组1决策逻辑单元46(1)和字段组1仲裁器48(1),字段组专用决策子块44(2)包括字段组2决策逻辑单元46(2)和字段组2仲裁器48(2),字段组专用决策子块44(3)包括字段组3决策逻辑单元46(3)和字段组3仲裁器48(3),字段组专用决策子块44(M-1)包括字段组M-1决策逻辑单元46(M-1)和字段组M-1仲裁器48(M-1),字段组专用决策子块44(M)包括字段组M决策逻辑单元46(M)和字段组M仲裁器48(M)。还存在与字段组专用决策子块44(1)_44(M-1)相关联的终止块49(1)-49(M-1)。来自字段组专用决策子块44(1)-44(M-1)的处理决策被输出到分组决策仲裁器50。可由决策逻辑单元46(1)_46(M)做出的处理决策的示例包括:负载均衡决策、分组路由决策、丢弃决策以及交换(桥接)决策。图2所示的所有块可通过数字逻辑门来实现。
分组决策仲裁器50在来自多个字段专用子块44(1)-44(M)的处理决策之间进行仲裁,以向一个或多个缓冲器(在图1中示出)输出一个或多个分组处理决策,使得相应的分组以适当的方式被写入一个或多个缓冲器,和/或从一个或多个缓冲器读取。作为提前终止分组的处理决策的结果,多个处理决策可同时到达分组决策仲裁器50。因此,分组决策仲裁器50负责对处理决策进行调度/划分优先排序,并且每当基于该处理决策可在缓冲器中进行处理时,就将处理决策发送到缓冲器。通过分组决策仲裁器50的处理决策的调度优先级可基于严格的优先级,即,基于先到先服务,或基于从分组的一个或多个字段组中获得的与该分组相关联的一个或多个分组参数,例如,源端口、目的端口、COS等。
现在更详细地说明字段组处理块43的操作。图2用标号52示出了指示时间的箭头。在图2中,字段专用处理子块44(1)_44(M)相对于箭头52从左到右的物理布置意味着表示由字段专用处理子块44(1)的处理在由字段专用处理子块44(2)的处理之前开始,并且在由字段专用处理子块44(2)的处理结束之前结束。同样,由字段专用处理子块44(2)的处理在由字段专用处理子块44(3)的处理之前开始,并且在由字段专用处理子块44(3)的处理结束之前结束,以此类推。但是,对于从分组中解析字段组以及评估字段组以确定针对该分组是否能够做出处理决策而言,在时间上存在重叠。也就是说,给定分组的字段组一旦可用就与从该分组中解析字段组并行地进行评估以确定是否一旦字段组可用就能够与解析并行地对该分组做出处理决策。一旦确定能够做出处理决策,则终止字段组的评估,从而忽略还未进行评估的该分组的任何其他字段组,以便对该分组做出处理决策。
由字段专用处理子块44(1)-44(M)的处理可基于分组的相应字段组以超前方式执行,并且由同一分组的至少一个先前字段组导致。换句话说,如果字段组之间存在依赖关系,则字段专用处理子块44(2)-44(M)可使用来自先前字段专用处理子块的处理结果。例如,字段专用处理子块44(2)可使用来自字段专用处理子块44(1)的处理结果,字段专用处理子块44(3)可使用来自字段专用处理子块44(1)和44(2)的处理结果,以此类推。一般地,针对多个字段组中的第M字段组的决策逻辑单元被配置为评估多个字段组中的第M字段组和由第(M-1)字段组的决策逻辑单元输出的处理结果。分组头字段的组织可基于如何设计独立的决策逻辑单元。
如上所述,每个分组解析器42(1)_42(N)针对到达端口12(1)-12(N)中的相应端口的每个分组输出字段组1到M,并且将从解析中获得的字段组提供给字段组专用决策子块44(1)_44(M)中相应的决策逻辑单元。所有分组的字段组1数据被定向到字段组1仲裁器48(1),所有分组的字段组2数据被定向到字段组2仲裁器48(2),所有分组的字段组3数据被定向到字段组3仲裁器48(3),所有分组的字段组M-1数据被定向到字段组M-1仲裁器48(M-1),……,所有分组的字段组M数据被定向到字段组M仲裁器48(M)。
如图2所示,当字段组1决策逻辑单元46(1)正在对给定分组的字段组1数据进行操作时,同一分组的字段组2数据可正被提供给字段组2决策逻辑单元46(2)。如果字段组1决策逻辑单元46(1)确定能够对该分组做出处理决策,则终止块49(1)向分组决策仲裁器50输出该处理决策。因此,字段组2决策逻辑单元46(2)可至少部分并行于字段组1决策逻辑单元对给定分组的字段组1数据进行操作而对该分组的字段组2数据进行操作。但是,在一些配置中,字段组2决策逻辑单元46(2)可需要字段组1决策逻辑单元46(1)的处理结果,以确定是否能够做出处理决策。同样,字段组3决策逻辑单元46(3)可在一旦该同一分组的字段组3数据可用,就并行于字段组2决策逻辑单元对该分组的字段组2数据进行操作而对该分组的字段组3数据开始操作。字段组2决策逻辑单元46(2)基于字段组2数据和针对该分组从字段组1决策逻辑单元46(1)接收到的处理结果来确定是否能够对该分组做出处理决策。如果字段组2决策逻辑单元46(2)确定能够对该分组做出处理决策,则终止块49(2)将该处理决策输出到分组决策仲裁器50。否则,终止块49(2)将字段组2决策逻辑单元46(2)的处理决策结果输出到字段组专用决策子块44(3)。基于字段组3数据和来自字段组2决策逻辑单元46(2)的处理决策结果,在字段组专用决策子块44(3)中针对分组的字段组3数据发生类似的处理。
由于给定分组的额外字段组被处理,因此从该分组的字段组1的处理开始已经逝去越来越多的时间。但是,一旦能够对该分组做出处理决策,则该处理决策被输出到分组决策仲裁器50,并且终止该分组的字段组的评估。忽略还未进行评估的该分组的任何其他字段组,以对该分组做出处理决策。例如,如果字段组1决策逻辑单元46(1)已基于该分组的字段组1数据确定能够对该分组做出处理决策,则正在由字段组2决策逻辑单元46(2)对该分组的字段组2数据进行的任何评估被终止。终止块49(1)将由字段组1决策逻辑单元46(1)做出的处理决策输出到分组决策仲裁器50。因此,忽略字段组2到M以确定该分组的处理决策。如果处理决策不能基于该分组的字段组1做出,则终止块49(1)将来自字段组1决策逻辑单元46(1)的处理决策结果输出到字段专用决策子块44(2)。如果字段组2决策逻辑单元46(2)确定能够对该分组做出处理决策,则终止正由字段组决策逻辑3执行的任何评估,并且忽略该分组的字段组3到M,以对该分组做出处理决策。如果需要,则对分组的后续字段组继续类似的操作。一般地,如果在任何给定字段组决策逻辑单元S做出了处理决策,则处理被提前终止,并发送到分组决策仲裁器50。字段组S+1在字段组S处理期间被解析,并在确定已做出决策并且处理可被提前终止时被忽略。
对于每一决策逻辑单元46(1)_46(M),在从多个端口处接收的分组中获得的多个字段组之间执行仲裁以由相应的决策逻辑单元进行处理。具体地,字段组1仲裁器48(1)选择从多个解析器42(1)-42(M)中的一个接收的给定分组的字段组1数据,并将其提供给字段组1决策逻辑单元46(1)。字段组2仲裁器48(2)在从多个解析器42(1)-42(M)接收的多个字段组2数据之间进行仲裁,并且选择一个字段组2数据用于由字段组决策逻辑单元48(2)进行处理。例如,在任何给定时刻,来自两个或两个以上端口(由两个或两个以上解析器进行解析)的分组的字段组1数据可到达字段组专用子块44(1)。字段组1仲裁器48(1)选择针对多个分组中的一个分组的字段组1用于由字段组1决策逻辑单元46(1)在字段组1决策逻辑单元46(1)的任何给定操作会话进行评估。在一个实现中,一旦字段组1决策逻辑单元46(1)完成其对该字段组1数据的评估,则该仲裁器可选择另一分组的字段组1数据并将其提供给字段组1决策逻辑单元46(1)。如果需要,则由字段组专用子块44(2)-44(M)中的字段组仲裁器执行类似操作。在流水线实现中,字段组甚至可在另一字段组的评估完成之前由字段组仲裁器提供。
被耦合到每个字段组专用子块44(1)_44(M)的分组协调单元54被提供以跟踪各个分组的处理。一旦确定能够对特定分组做出处理决策,则决策逻辑单元向分组协调单元54输出信号。分组协调单元54向“下游”或“更深级别”字段组专用子块44(1)-44(M)中适当的一些提供控制信号以保证特定分组的任何额外的字段组被忽略并从至该分组的更深级别字段组的决策逻辑单元的仲裁过程中去除,并且针对特定分组的更深级别字段组已经开始的任何处理被决策逻辑单元终止。分组协调单元54向一个或多个下游决策逻辑单元发送关于处理决策确定的提前终止的控制信号,使得(针对同一分组的)重复的分组处理决策不被发送给分组决策仲裁器50,从而从分组决策仲裁器50的任何仲裁中移除。例如,当对给定分组已经做出处理决策时,分组协调单元54向评估给定分组的更深字段组的一个或多个决策逻辑单元发送控制信号,使得对更深字段组的评估被终止和/或针对一个或多个属于同一分组的更深字段组获得的处理决策被从仲裁中移除。
此外,通过任何两个连续的字段组专用决策子块44(S-1)-44(S)的分组顺序可以不同。因此,在字段组S数据可被处理之前,来自字段组专用决策子块44(S-1)的处理决策结果与来自解析器的字段组S数据同步。分组协调单元54可使字段组专用决策子块44(1)-44(M)中的多个决策逻辑单元的操作同步。同步可发生在来自端口12(1)-12(N)的字段组S处理的仲裁之前或之后。换句话说,与多个分组相关联的字段组的处理决策结果在字段组被仲裁到决策逻辑单元之前或之后被同步。
现在参考图3。图3以图表示出了由图2所示的SIB 40的操作所实现的随时间并行处理分组的字段组。图3的每个垂直块表示字段组中的字段,并且在该示例中,存在被认为用于分组处理的分组的四个字段组。例如,字段组1包括L2字段,字段组2包括L3字段,字段组3包括L4字段,而字段组4包括深度分组检测(DPI)字段。L2字段的示例包括:介质访问控制(MAC)源地址、MAC目的地址、IEEE 802.1Q(虚拟局域网)标签、以太类型、服务类别(COS)和服务类型(TOS)。L3字段的示例包括:互联网协议(IP)源地址和IP目的地址。L4字段的示例包括:源端口、目的端口、确认号和序列号。字段组的解析与基于分组的给定字段组来确定处理决策并行进行。但是,一旦能够对分组做出处理决策,则不再处理该分组的其他字段组,并且该处理决策被输出用于仲裁处理,如上所述。
现在转到图4,示出了高级流程图100,其示出了在网络设备中由SIB40执行的操作。在110,分组在网络设备处被接收。该分组包括多个字段组,每个字段组包括一个或多个字段。在120,分组的字段组被解析。与解析并行地,在130,一旦字段组可用,则该字段组被评估以确定是否能够对该分组做出处理决策。在140,一旦确定能够做出处理决策,则终止字段组的评估,从而忽略还未被评估的分组的任何其他字段组,以对该分组做出处理决策。一旦做出处理决策,则该处理决策被提供给仲裁处理。解析和评估操作120和130持续到处理决策被做出或所有字段组已被处理。应该理解的是,如结合图2所述,分组在网络设备的多个端口处被接收,并且在每个端口接收的分组的解析被执行以生成在相应端口接收的每个分组的多个字段组。存在针对来自多个分组的字段组数据的处理而执行的仲裁,以及针对为多个分组做出的处理决策的执行而执行的仲裁。
总之,上文给出了大大加速网络设备中的分组处理从而降低与该处理相关联的延迟的技术。分组的字段组被解析并传递给与特定字段组相关联的分离的处理子块。网络设备中的分组处理的一个重要延迟来源是在处理开始之前等待分组的所有需要的字段被完全接收。根据这里所述的技术,一接收到分组的字段组就提供给SIB大大改善了延迟。
这里给出的技术实现了具有完全可扩展性和功能的网络设备(例如,L2/L3数据中心交换机)的低延迟,其具有比当前设备多于3倍的延迟性能提升。
以上描述只意在通过示例的方式。

Claims (22)

1.一种方法,包括:
在网络设备处接收分组,所述分组包括多个字段组,每个字段组包括一个或多个字段;
从所述分组中解析字段组;
一旦字段组可用,与所述解析并行地评估所述分组的字段组以确定是否能够对所述分组做出处理决策;以及
一旦确定能够做出处理决策,则终止字段组的评估,从而忽略还未被评估的所述分组的任何其他字段组,以对所述分组做出处理决策。
2.如权利要求1所述的方法,其中所述处理决策是以下各项中的任何一项:负载均衡决策、分组路由决策、丢弃决策以及交换决策。
3.如权利要求1所述的方法,其中接收包括在多个端口的每个端口处接收分组,并且其中解析分组包括解析在每个端口处接收的分组以生成在相应端口处接收的每个分组的多个字段组。
4.如权利要求3所述的方法,还包括提供多个决策逻辑单元,每个决策逻辑单元被配置为确定是否能够基于分组的特定字段组对该分组做出处理决策,并将从所述解析获得的字段组提供给相应的决策逻辑单元。
5.如权利要求4所述的方法,还包括针对每个决策逻辑单元,在从多个端口接收的分组获得的多个字段组之间进行仲裁,以由所述决策逻辑单元进行处理。
6.如权利要求5所述的方法,其中评估基于分组的相应字段组和来自同一分组的至少一个先前字段组的评估的结果来执行。
7.如权利要求5所述的方法,还包括使所述多个决策逻辑单元对多个分组的字段组的操作同步。
8.如权利要求7所述的方法,还包括从所述多个决策逻辑单元接收针对多个分组的多个处理决策结果,并且还包括根据基于先到先服务或基于一个或多个分组参数的调度优先级来在所述多个处理决策结果之间进行仲裁。
9.如权利要求5所述的方法,还包括当对给定分组已经做出处理决策时,向正在评估该给定分组的更深字段组的一个或多个决策逻辑单元发送控制信号,使得对所述更深字段组的评估被终止和/或针对一个或多个属于同一分组的更深字段组获得的处理决策从所述仲裁中被移除。
10.一种装置,包括:
多个端口,被配置为从网络接收分组并向所述网络输出分组,每个分组包括多个字段组;
多个解析器,被配置为解析在所述端口的一个端口处接收的分组以获得所述分组的所述多个字段组,每个字段组包括一个或多个字段;
分组决策单元,被耦合到所述多个解析器,并且被配置为:
一旦字段组可用,与由所述多个解析器执行的所述解析并行地评估所述分组的字段组以确定是否能够对所述分组做出处理决策;并且
一旦确定能够做出处理决策,则终止字段组的评估,从而忽略还未被评估的所述分组的任何其他字段组,以对所述分组做出处理决策。
11.如权利要求10所述的装置,其中所述多个解析器被配置为解析在所述端口的相应一个接收的分组以生成每个分组的多个字段组。
12.如权利要求11所述的装置,其中所述分组决策单元包括多个决策逻辑单元,每个决策逻辑单元被配置为评估所述多个字段组的相应字段组来确定是否能够做出处理决策,并输出针对该字段组的处理结果。
13.如权利要求12所述的装置,其中所述多个字段组的第M字段组的决策逻辑单元被配置为评估所述多个字段组的第M字段组和由第(M-1)字段组的决策逻辑单元输出的处理结果。
14.如权利要求12所述的装置,还包括多个仲裁器,每个仲裁器与所述多个决策逻辑单元中相应的一个相关联,每个仲裁器被配置为从两个或两个以上解析器接收与两个或两个以上分组相关联的相应字段组,并且选择所述两个或两个以上字段组中的一个字段组用于由其相关联的决策逻辑单元进行评估。
15.如权利要求14所述的装置,还包括分组决策仲裁器,其被配置为接收由所述多个决策逻辑单元输出的针对多个分组的多个处理决策,并且根据基于先到先服务或基于一个或多个分组参数的调度优先级来在所述多个处理决策之间进行仲裁。
16.如权利要求14所述的装置,还包括分组协调单元,其被耦合到所述多个仲裁器和多个决策逻辑单元,所述分组协调单元被配置为向多个决策逻辑单元中适当的一些提供控制信号以保证一旦对特定分组已经确定处理决策,则所述特定分组的任何额外字段组被忽略并从所述仲裁器的仲裁过程中移除,并且终止由决策逻辑单元已经开始的针对所述特定分组的更深级别字段组的任何处理。
17.一种编码有指令的计算机可读有形存储介质,当所述指令被处理器执行时,所述指令导致所述处理器:
解析在网络设备处接收的分组的字段组,所述分组包括多个字段组,并且每个字段组包括一个或多个字段;
一旦字段组可用,则与所述解析并行地评估所述分组的字段组以确定是否能够对所述分组做出处理决策;并且
一旦确定能够做出处理决策,则终止字段组的评估,从而忽略还未被评估的所述分组的任何其他字段组,以对所述分组做出处理决策。
18.如权利要求17所述的计算机可读有形存储介质,其中当被所述处理器执行时导致所述处理器进行解析的所述指令包括导致如下操作的指令:所述处理器解析在所述网络设备的多个端口的每个端口接收的分组以生成在相应端口处接收的每个分组的多个字段组。
19.如权利要求18所述的计算机可读有形存储介质,还包括当指令被所述处理器执行时,所述指令导致所述处理器:
通过多个决策逻辑单元中的特定决策逻辑单元确定是否能够基于分组的特定字段组对该分组做出处理决策;并且
将字段组提供给相应的决策逻辑单元。
20.如权利要求19所述的计算机可读有形存储介质,还包括当指令被所述处理器执行时,所述指令导致所述处理器:
针对每个决策逻辑单元,在从在所述多个端口接收的分组获得的多个字段组之间进行仲裁,以用于由所述决策逻辑单元进行处理。
21.如权利要求19所述的计算机可读有形存储介质,还包括当指令被所述处理器执行时,所述指令导致所述处理器:
使所述多个决策逻辑单元对多个分组的字段组的操作同步。
22.如权利要求19所述的计算机可读有形存储介质,还包括当指令被所述处理器执行时,所述指令导致所述处理器:
根据基于先到先服务或基于一个或多个分组参数的调度优先级来在来自所述多个决策逻辑单元的针对多个分组的多个处理决策结果之间进行仲裁。
CN201380048243.6A 2012-09-18 2013-09-12 可扩展低延迟多协议网络设备 Active CN104662862B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261702312P 2012-09-18 2012-09-18
US61/702,312 2012-09-18
US13/767,172 2013-02-14
US13/767,172 US9055004B2 (en) 2012-09-18 2013-02-14 Scalable low latency multi-protocol networking device
PCT/US2013/059344 WO2014046945A1 (en) 2012-09-18 2013-09-12 Scalable low latency multi-protocol networking device

Publications (2)

Publication Number Publication Date
CN104662862A true CN104662862A (zh) 2015-05-27
CN104662862B CN104662862B (zh) 2017-09-19

Family

ID=50274360

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380048257.8A Active CN104641616B (zh) 2012-09-18 2013-09-12 使用报头预测的低延时联网设备
CN201380048243.6A Active CN104662862B (zh) 2012-09-18 2013-09-12 可扩展低延迟多协议网络设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380048257.8A Active CN104641616B (zh) 2012-09-18 2013-09-12 使用报头预测的低延时联网设备

Country Status (4)

Country Link
US (4) US9065780B2 (zh)
EP (2) EP2898650B1 (zh)
CN (2) CN104641616B (zh)
WO (2) WO2014046945A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954700B2 (en) 2011-08-02 2015-02-10 Cavium, Inc. Method and apparatus for managing processing thread migration between clusters within a processor
US9515929B2 (en) * 2013-06-28 2016-12-06 Netronome Systems, Inc. Traffic data pre-filtering
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US10050833B2 (en) * 2014-06-19 2018-08-14 Cavium, Inc. Method of reducing latency in a flexible parser and an apparatus thereof
US9628385B2 (en) 2014-06-19 2017-04-18 Cavium, Inc. Method of identifying internal destinations of networks packets and an apparatus thereof
US9635146B2 (en) 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US9961167B2 (en) 2014-06-19 2018-05-01 Cavium, Inc. Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof
US9742694B2 (en) 2014-06-19 2017-08-22 Cavium, Inc. Method of dynamically renumbering ports and an apparatus thereof
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9787605B2 (en) * 2015-01-30 2017-10-10 Nicira, Inc. Logical router with multiple routing components
WO2016200399A1 (en) * 2015-06-12 2016-12-15 Hewlett Packard Enterprise Development Lp Application identification cache
CN111865906A (zh) * 2015-07-17 2020-10-30 华为技术有限公司 报文传输的方法、装置和系统
US9826071B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US10009291B1 (en) * 2015-12-21 2018-06-26 Amazon Technologies, Inc. Programmable switching fabric for dynamic path selection
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10341259B1 (en) 2016-05-31 2019-07-02 Amazon Technologies, Inc. Packet forwarding using programmable feature prioritization
US10225161B2 (en) * 2016-10-31 2019-03-05 Accedian Networks Inc. Precise statistics computation for communication networks
CN106506392B (zh) * 2016-12-19 2019-11-26 深圳创维数字技术有限公司 一种网络拥塞处理方法及装置
US10419366B1 (en) 2017-01-31 2019-09-17 Barefoot Networks, Inc. Mechanism for communicating to remote control plane from forwarding element
US10694006B1 (en) 2017-04-23 2020-06-23 Barefoot Networks, Inc. Generation of descriptive data for packet fields
US10826840B1 (en) 2017-07-23 2020-11-03 Barefoot Networks, Inc. Multiple copies of stateful tables
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
CN111464378B (zh) * 2020-03-13 2021-12-07 苏州浪潮智能科技有限公司 一种服务器网卡双网速测试方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056058A (en) * 1989-03-13 1991-10-08 Hitachi, Ltd. Communication protocol for predicting communication frame type in high-speed processing system
US6819681B1 (en) * 1999-08-06 2004-11-16 Shrikumar Hariharasubrahmanian Systems and methods for predicting data fields in layered protocols

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3358254B2 (ja) * 1993-10-28 2002-12-16 株式会社日立製作所 通信制御装置および通信制御用回路装置
US5916305A (en) * 1996-11-05 1999-06-29 Shomiti Systems, Inc. Pattern recognition in data communications using predictive parsers
US6463068B1 (en) 1997-12-31 2002-10-08 Cisco Technologies, Inc. Router with class of service mapping
US6961777B1 (en) * 1999-08-06 2005-11-01 Shrikumar Hariharasubrahmanian Systems and methods for predicting fields in a data packet
WO2001011834A1 (en) 1999-08-06 2001-02-15 Shrikumar Hariharasubrahmanian Systems and methods for predicting fields in a data packet
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US7415531B2 (en) * 2001-08-22 2008-08-19 Mips Technologies, Inc. Method and apparatus for predicting characteristics of incoming data packets to enable speculative processing to reduce processor latency
US7899048B1 (en) 2003-01-15 2011-03-01 Cisco Technology, Inc. Method and apparatus for remotely monitoring network traffic through a generic network
US7474666B2 (en) 2003-09-03 2009-01-06 Cisco Technology, Inc. Switch port analyzers
US7602712B2 (en) 2004-06-08 2009-10-13 Sun Microsystems, Inc. Switch method and apparatus with cut-through routing for use in a communications network
US7830793B2 (en) 2004-10-22 2010-11-09 Cisco Technology, Inc. Network device architecture for consolidating input/output and reducing latency
US7969971B2 (en) 2004-10-22 2011-06-28 Cisco Technology, Inc. Ethernet extension for the data center
US7961621B2 (en) 2005-10-11 2011-06-14 Cisco Technology, Inc. Methods and devices for backward congestion notification
US7656818B1 (en) 2005-10-28 2010-02-02 Cisco Technology, Inc. Customizable network device management methods and systems
US8208389B2 (en) 2006-07-20 2012-06-26 Cisco Technology, Inc. Methods and apparatus for improved determination of network metrics
US8355336B2 (en) * 2008-02-13 2013-01-15 Qualcomm Incorporated Methods and apparatus for formatting headers in a communication frame
US7940762B2 (en) 2008-03-19 2011-05-10 Integrated Device Technology, Inc. Content driven packet switch
KR101152958B1 (ko) 2008-12-19 2012-06-08 한국전자통신연구원 계층적 패킷 처리 장치 및 방법
ATE498966T1 (de) 2009-05-12 2011-03-15 Alcatel Lucent Verkehrslastabhängige leistungsreduzierung in hochgeschwindigkeits-paketvermittlungssystemen
US8284776B2 (en) 2009-06-10 2012-10-09 Broadcom Corporation Recursive packet header processing
US8640036B2 (en) 2010-04-07 2014-01-28 Cisco Techology, Inc. Messaging and presence protocol as a configuration and management bus for embedded devices
JP5518754B2 (ja) 2011-01-07 2014-06-11 株式会社日立製作所 ネットワークノード
US9001830B2 (en) 2012-09-18 2015-04-07 Cisco Technology, Inc. Ultra low latency multi-protocol network device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056058A (en) * 1989-03-13 1991-10-08 Hitachi, Ltd. Communication protocol for predicting communication frame type in high-speed processing system
US6819681B1 (en) * 1999-08-06 2004-11-16 Shrikumar Hariharasubrahmanian Systems and methods for predicting data fields in layered protocols

Also Published As

Publication number Publication date
US20140078902A1 (en) 2014-03-20
CN104662862B (zh) 2017-09-19
US20140079063A1 (en) 2014-03-20
US9065780B2 (en) 2015-06-23
WO2014046945A1 (en) 2014-03-27
CN104641616A (zh) 2015-05-20
US9055004B2 (en) 2015-06-09
US20150237177A1 (en) 2015-08-20
EP2898651B1 (en) 2019-02-06
US9692857B2 (en) 2017-06-27
US9641457B2 (en) 2017-05-02
WO2014046946A1 (en) 2014-03-27
EP2898651A1 (en) 2015-07-29
US20150236982A1 (en) 2015-08-20
EP2898650B1 (en) 2019-02-13
EP2898650A1 (en) 2015-07-29
CN104641616B (zh) 2018-01-05

Similar Documents

Publication Publication Date Title
CN104662862A (zh) 可扩展低延迟多协议网络设备
US10305802B2 (en) Reliable transport of ethernet packet data with wire-speed and packet data rate match
US10735325B1 (en) Congestion avoidance in multipath routed flows
CN108475244B (zh) 加速网络分组处理
US20170237672A1 (en) Network server systems, architectures, components and related methods
US11394649B2 (en) Non-random flowlet-based routing
US9590904B2 (en) Fast software L2 switching using a caching technique
Luo Network I/O virtualization for cloud computing
US10819640B1 (en) Congestion avoidance in multipath routed flows using virtual output queue statistics
US9772968B2 (en) Network interface sharing
US10009275B1 (en) Uniform route distribution for a forwarding table
US9509613B1 (en) Mechanisms for deadlock avoidance support in network fabrics
US10887234B1 (en) Programmatic selection of load balancing output amongst forwarding paths
CN105530157B (zh) Afdx网络交换机多个虚拟链路共享信用的架构及方法
CN109218230A (zh) 用于平衡跨多级网络交换机的输入端口的吞吐量的技术
CN107003982B (zh) 用于使用多个多点总线的装置和方法
US10506044B1 (en) Statistics collecting architecture
US8205023B1 (en) Concurrent pairing of resources and requestors
US9258273B2 (en) Duplicating packets efficiently within a network security appliance
EP3588901A1 (en) Scalable packet processing
CN113039749B (zh) 使用基于多播的服务插入对分组并行执行串行服务链的服务

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant