CN101351995B - 管理网络节点中的处理利用 - Google Patents
管理网络节点中的处理利用 Download PDFInfo
- Publication number
- CN101351995B CN101351995B CN2005800064873A CN200580006487A CN101351995B CN 101351995 B CN101351995 B CN 101351995B CN 2005800064873 A CN2005800064873 A CN 2005800064873A CN 200580006487 A CN200580006487 A CN 200580006487A CN 101351995 B CN101351995 B CN 101351995B
- Authority
- CN
- China
- Prior art keywords
- grouping
- cpu
- study
- hardware based
- stream
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000001914 filtration Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Abstract
一种管理处理资源的利用的技术包括:在允许发送给CPU以用于学习的分组到达CPU之前,先对所述分组进行过滤。过滤包括:确定是否已允许相关分组到达CPU以用于学习,并利用关于相关分组的知识来确定是否应允许当前分组到达该CPU。在一种实施方式中,通过只允许每个流一个分组到达CPU以用于学习的方式来节约CPU的处理资源。CPU利用该一个分组来产生必要的转发信息和启动对基于硬件的转发表的编程,使得来自相同流的后续分组可以从基于硬件的转发引擎直接转发。
Description
相关申请的交叉引用
本申请享有2004年1月14日申请的临时美国专利申请系列号60/536,469的权利。
技术领域
本发明涉及基于分组的通信网,尤其涉及用于管理诸如交换机或路由器等网络节点中的处理资源的利用(utilization)的技术。
背景技术
基于分组的网络节点(例如交换机和路由器)产生转发信息的数据库,转发信息用于转发到来的分组业务量(traffic)。转发信息通过被中央处理器(CPU)所执行的基于软件的协议产生。为了提高交换机和路由器的速度和吞吐量,转发信息往往被编程为基于硬件的转发表。基于硬件的转发表能被快速搜索来提供转发决定,而无需使用CPU的资源。当基于硬件的转发表中没有所接收分组流的转发信息时,流中的分组被发送到CPU进行处理,直到能学习转发信息并将转发表条目编程为基于硬件的转发表为止。网络节点的CPU的处理容量有限,并且发送到CPU的分组越多,处理接收分组所消耗的有限处理容量就越多。如果CPU的负载过大,则CPU的响应时间将缓慢且可能丢失某些分组。
许多最先进的交换机和路由器利用了基于框架(chassis)的分布式体系结构,其中分开的线路卡专用于不同的功能。例如,控制模块线路卡专用于中央管理和控制操作,端口接口线路卡专用于发送和接收网络业务量以及执行基于硬件的转发,而交换机架构线路卡(switchfabric linecard)专用于提供不同线路卡之间的数据通路。在分布式体系结构中,控制模块包括主CPU,该CPU负责产生和管理整个网络节点的转发信息,并负责对端口接口的基于硬件的转发表进行编程。控制模块的一系列广泛的职责使得主CPU的有限处理容量成为很有价值的资源。
鉴于以上所述,需要一种有效管理基于分组的网络节点中的处理资源的利用的技术。
发明内容
一种管理处理资源的利用的技术包括:在允许发送给CPU以用于学习的分组到达CPU之前,先对所述分组进行过滤。过滤包括:确定是否已允许相关分组到达CPU以用于学习,并且利用关于相关分组的知识来确定是否允许当前分组到达该CPU。在一种实施方式中,通过只允许每个流一个分组到达CPU以用于学习的方式来节约(conserve)CPU的处理资源。CPU利用该一个分组来产生必要的转发信息和启动对基于硬件的转发表的编程,使得同一流中的后续分组可从基于硬件的转发引擎直接转发。由于只允许每个流一个分组到达CPU以用于学习,因此,不会因针对相同流的多个分组学习相同转发信息而浪费CPU的处理资源。
本发明的其他方面和优点可以从下列结合作为本发明原理的例子所示的附图所作的详述中看到。
附图说明
图1描述了一个网络节点,它包括CPU、基于硬件的转发表和学习过滤器。
图2描述了图1中的学习过滤器的一种实施方式。
图3描述了一种用于管理处理资源的利用的技术的处理流程图。
图4描述了具有分布式体系结构的网络节点的一种实施方式,该体系结构用来对所发送的用于学习的分组进行过滤。
图5描述了具有分布式体系结构的网络节点的另一种实施方式。
图6描述了一种用于管理CPU的处理资源利用的方法的处理流程图。
在整个描述中,类似的标号可能用于标识类似的要素。
具体实施方式
图1描述了一个网络节点100,它包括中央处理器(CPU)102、基于硬件的转发引擎104和学习过滤器106。该网络节点按离散段(通常称为数据报)来处理业务量。在一种实施方式中,网络节点是以太网交换机/路由器,它利用第2层、第3层和/或第4层报头信息来转发网络节点中的业务量,其中“层”是由国际标准化组织(ISO)在开放系统互连(OSI)中所定义的。网络节点可以包括支持其他网络协议(如异步传输模式(ATM)、同步光纤网络(SONET)和帧中继)的端口接口。尽管描述了基于以太网的交换机/路由器,然而,所公开的技术还可应用于利用其他协议传送业务量的网络节点。
网络节点100的CPU 102运行操作系统并支持转发网络业务量所需的软件协议。CPU可以体现为多功能处理器和/或专用处理器。处理器的例子包括IBM的PowerPCTM系列处理器和Intel的x86系列处理器。CPU可以运行的操作系统的例子包括NetBSD、Linux和vxWORKS。尽管未示出,但CPU还可以由其他硬件(例如存储器和专用集成电路(ASIC))所支持。
在CPU 102所运行的协议当中有与产生转发信息有关的协议。这些协议(这里称为基于软件的学习协议110)包括第2层学习协议和第3层学习协议。在图1的实施方式中,用于交换业务量的第2层协议是以太网,而第2层学习包括使目的地媒体接入控制(MAC)地址与网络节点的输出端口关联。通过学习所接收分组的进入端口(port of entry)和源MAC地址,使目的地MAC地址与网络节点的输出端口关联。正如本领域中众所周知,可以通过如下方式学习目的地MAC地址的正确输出端口:使具有要学习的目的地MAC地址的分组涌向所有相关的输出端口,然后查看接收对应分组的端口。第2层学习还可以包括使虚拟局域网(VLAN)标识符(ID)与目的地MAC地址和/输出端口关联。
在图1的实施方式中,用于路由业务量的第3层协议基于因特网协议(IP)(包括IP和IPX),而第3层学习包括使目的地IP地址与下一跳IP地址关联。CPU 102所运行的公用第3层协议的例子包括开放式最短路径优先(OSPF)协议、边界网关协议(BGP)、中间级系统到中间级系统(ISIS)协议、多协议标签交换(MPLS)。
业务量通常在基于分组的网络节点之间在相关分组的组中进行传递。相关分组的组常常称为“流”。流的分组具有某些公用信息。例如,公用第2层信息可以包括目的地MAC地址、源MAC地址、VLAN ID和/或进入端口的任意组合。公用第3层信息可以包括目的地IP地址、源IP地址、业务类型(TOS)、目的地端口号和/或源端口号的任意组合。
图1中的基于硬件的转发引擎104负责对到来的业务量作出基于硬件的转发决定。基于硬件的转发引擎包括用转发表条目编程的基于硬件的转发表112。转发表条目使到来的分组信息与输出信息关联。正如本领域中所知,基于硬件的转发表通常用能够被快速访问和搜索的随机存取存储器(RAM)和/或内容可寻址存储器(CAM)来实施。如果各个基于硬件的转发表包括与到来的分组对应的转发信息,则只能对到来的分组进行基于硬件的转发决定。操作中,基于硬件的转发引擎将来自所接收分组的报头信息与转发表条目进行比较以寻找表条目匹配。如果基于硬件的转发引擎不能对到来的分组进行转发决定,则基于硬件的转发表需要用与到来的分组对应的转发表条目来编程。获得转发信息的过程在此称为学习。在某些实施方式中,基于硬件的转发表可以包括与到来的分组对应的转发信息,尽管由于某种原因转发信息是不活动的(例如无法用于进行转发决定)。当转发信息不活动时,不能进行转发决定,因此将相关分组发送到CPU以用于学习。
由于业务量一般以分组流进行传送,因此,如果基于硬件的转发引擎104不能对到来的分组进行转发决定,那么将流的所有分组都发送到用于转发的CPU 102,直到CPU将转发信息传递到基于硬件的转发引擎,并用必要的转发信息对转发表进行编程。发送CPU进行处理的分组越多,处理的延时就可能越长。如果处理延时过长,那么可能丢失一些分组。处理的延时和丢失的分组对网络节点的性能有不利影响。
根据本发明的一种实施方式,在允许发送给CPU以用于学习的分组到达CPU之前,先对所述分组进行过滤。过滤包括:确定是否已允许相关分组到达CPU,并且利用关于相关分组的知识来确定是否应当允许当前分组到达该CPU。在一种实施方式中,通过只允许每个流一个分组到达CPU以用于学习的方式来节约CPU的资源。CPU利用该一个分组来产生必要的转发信息并启动基于硬件的转发表112的编程,使得同一流中的后续分组可以从基于硬件的转发引擎104直接转发。由于只允许每个流一个分组到达CPU以用于学习,因此,不会因针对同一流的多个分组学习同一转发信息而浪费CPU的处理资源。
在图1的实施方式中,由学习过滤器106来执行对发送到CPU 102以用于学习的分组的过滤。学习过滤器接收从基于硬件的转发引擎104发送到CPU以用于学习的所有分组,并确定允许哪些所接收分组到达该CPU。作为过滤结果,只允许原来发送的分组的一个子集到达CPU。学习过滤器可以采用多种技术来确定允许哪些所接收分组到达该CPU。学习过滤器和过滤技术的一些例子如下所述。在图1的实施方式中,学习过滤器是一种位于CPU与基于硬件的转发引擎之间的数据通路中的ASIC芯片。
图2描述了图1中的学习过滤器106的一种实施方式。学习过滤器包括散列器116、每个流(per-flow)状态机118和输出控制器120。学习过滤器接收由基于硬件的转发引擎104发送到CPU 102以用于学习的分组。散列器从所接收分组中获得报头信息,并使某些报头信息散列以产生识别分组所属的流的散列值。例如,第2层分组按目的地MAC地址、源MAC地址、VLAN ID和/或进入端口的组合进行散列,而第3层分组按目的地IP地址、源IP地址、TOS、目的地端口号和源端口号进行散列。尽管描述了散列字段的某些例子,然而,其他字段或字段组合也是可能的。散列器所产生的散列值被提供给每个流状态机。每个流状态机保持指示每个所识别流的状态的状态表122,其中每个流都由散列值来识别。流的当前状态被提供给输出控制器。输出控制器根据当前状态确定是否允许分组到达CPU。作为所进行的过滤的结果,只允许学习过滤器所接收的分组的一个子集到达CPU。
在图2的实施方式中,每个流状态机118保持每个流的两个状态,其中这两个状态被标识为状态1(S1)和状态2(S2)。状态1表示没有允许对应流中的分组到达CPU 102,而状态2表示已允许对应流中的分组到达CPU。在图2的实施方式中,流的状态最初置为状态1,并且当状态为状态1时允许分组到达CPU。一旦允许分组到达CPU,状态就变为状态2。当流的状态置为状态2时,不允许来自流的更多分组到达CPU。可以根据预建立的算法将流的状态重置为状态1,以确保定期更新流的转发信息。例如,在转发表用对应的表条目编程后或者在某一固定时间段后,状态机可以被配置为重置到状态1。图2的学习过滤器逻辑的结果是,只允许每个流一个分组到达CPU以进行处理。这样可以大大减小CPU的负载而不禁止学习过程。尽管描述了学习过滤器和过滤逻辑的一个例子,然而,还可以用其他过滤技术来减少允许到达CPU以用于学习的分组的个数。
图3描述了一种用于管理CPU的处理资源的利用的技术的处理流程图。在块200中,在网络节点接收分组。在判决点202,确定是否需要学习。如果确定不需要学习,那么在块204中,基于硬件的转发引擎利用其基于硬件的转发表中存在的转发信息来转发该分组。如果确定需要学习,那么在块206中,识别该分组所属的流。例如,通过使分组报头的某些字段散列来识别流。在流被识别后,在判决点208,确定来自所识别流的分组是否已发送到CPU以用于学习。例如,查阅状态机来确定来自所识别流的分组是否已发送到CPU以用于学习。如果来自所识别流的分组已发送到CPU以用于学习,那么,不将当前分组发送到CPU以用于学习(块210)。如果来自所识别流的分组尚未发送到CPU以用于学习,那么,将当前分组发送到CPU以用于学习(块212)。针对在网络节点接收到的每个分组,重复图3的处理流程。
图4描述了具有分布式体系结构的网络节点130的一种实施方式,该体系结构用来对所发送的用于学习的分组进行过滤。网络节点的分布式体系结构包括控制模块线路卡132、交换机架构线路卡134和两个端口接口线路卡136(端口接口A和B)。在图4的实施方式中,单个学习过滤器106位于控制模块,用于对从所有端口接口接收的分组进行过滤。图4中所描述的学习过滤器执行与以上参照图1和2所述的学习过滤器相同的过滤功能。
控制模块132包括CPU 102(标识为“主CPU”,)和学习过滤器106。通常,控制模块支持不同的功能,例如网络管理功能和协议实现功能。尽管未示出,但控制模块还包括存储器,例如用于存储操作码的电可擦除可编程只读存储器(EEPROM)或快闪ROM以及用于缓冲业务量和存储数据结构(如转发信息)的动态随机存取存储器(DRAM)。此外,控制模块上还可以有一个以上的离散处理器单元和一个以上的存储器单元。主CPU可以包括如上所述的多功能处理器和/或专用处理器。主CPU支持基于软件的学习,如基于软件的学习协议功能块110所示。基于软件的学习包括产生本领域中已知的第2层和第3层转发信息。
交换机架构134在控制模块132与端口接口136之间提供数据通路(例如,控制模块与端口接口之间的数据通路,以及端口接口之间的数据通路)。交换机架构可以使用例如共享存储器、共享总线或交叉点矩阵(crosspoint matrix)。
端口接口136包括端口接口CPU 138、基于硬件的转发引擎104和输入/输出端口140。通常,由端口接口所执行的功能包括接收进入网络节点的业务量、缓冲业务量、存储转发信息、协议处理、进行转发决策和从网络节点130发出业务量。在图4的实施方式中,每个端口接口的端口接口CPU运行其各自的操作系统。每个端口接口线路卡内的端口接口CPU可以包括多功能处理器(例如IBM PowerPC处理器)和/或专用处理器。操作码一般存储在诸如EEPROM或快闪ROM等非易失性存储器中(未示出),而业务量一般缓存在诸如RAM等易失性存储器中(未示出)。
图4中所描述的基于硬件的转发引擎104执行与参照图1所述的基于硬件的转发引擎相同的功能。由基于硬件的转发引擎所执行的一个任务是,确定是否需要学习到来的分组以便可以直接由基于硬件的转发引擎进行转发决定。需要学习的分组通过交换机架构134发送到控制模块132。
在操作中,端口接口136的基于硬件的转发引擎104确定接收的分组是否需要学习。如果接收的分组需要学习,那么将这些分组通过交换机架构134发送到控制模块132。在控制模块中,这些分组首先由学习过滤器106进行处理。学习过滤器起到确定分组是否到达主CPU 102以用于学习的网关的作用。由于学习过滤器位于控制模块上,因此,它可以接收来自所有不同端口接口的分组,从而起到中央过滤点的作用。这使得所有过滤都可以用单个学习过滤器ASIC来完成。此外,这还使得无需对主CPU或基于硬件的转发引擎作出改变来完成过滤。
图5描述了具有分布式体系结构的网络节点150的另一种实施方式。除了在每个端口接口136中以分布方式执行的过滤功能之外,图5的实施方式类似于图4的实施方式。具体地说,每个端口接口包括接口特定的学习过滤器106A和106B,它们只对来自其对应端口接口的分组进行过滤。接口特定的学习过滤器执行与参照图1和2所述的学习过滤器相同的基本功能。通过过滤的分组从各自端口接口通过交换机架构发送到控制模块132的主CPU 102。
图6描述了一种用于管理CPU的处理资源的利用的方法的处理流程图。在块220中,接收分组。在块222中,确定与分组相关的转发信息是否需要被学习以便转发该分组。在块224中,如果需要学习,那么决定是否使该分组接受学习。这一决定基于任何其他相关分组是否已接受学习。
在这里所述的实施方式中,只将通过过滤的分组发送到CPU 102进行处理。在另一种实施方式中,过滤功能可以并入到CPU中,这样所发送的用于学习的所有分组都被CPU所接收,但只使所选的分组接受学习处理。
尽管在一种实施方式中只允许每个流一个分组到达CPU 102,然而,在其他实施方式中,从初始发送到CPU以用于学习的流的分组总数中减少被允许到达CPU的分组个数。
在一种实施方式中,在网络节点中发送分组可以包括只发送该分组的报头信息。例如,将分组发送到CPU以用于学习可以包括只将该分组的报头信息发送到CPU。
此外,尽管在一种实施方式中允许流中的第一分组到达CUP以用于学习,然而,在其他实施方式中,还可以允许除第一分组外的分组到达CPU。
尽管描述和举例说明了本发明的具体实施方式,然而,本发明并不局限于这里所描述和举例说明的部件的具体形式或配置。本发明仅限于权利要求书。
Claims (13)
1.一种用于管理基于分组的网络节点中的处理资源利用的方法,包括:
接收分组;
确定与分组相关的转发信息是否需要被学习以便转发该分组;
如果需要学习,则根据任何其他相关分组是否已接受学习来决定是否使该分组接受学习;
其中决定是否使该分组接受学习包括:识别该分组所属的流,并确定来自相同流的分组是否已接受学习;并且
还包括只有当确定来自相同流的分组尚未接受学习时才使该分组接受学习。
2.按照权利要求1所述的方法,其中确定与分组相关的转发信息是否需要被学习包括:将分组的报头信息与基于硬件的转发表中的条目进行比较以便找到匹配。
3.按照权利要求2所述的方法,其中如果在报头信息与基于硬件的转发表中的条目的比较中没有找到匹配,则需要学习。
4.按照权利要求1所述的方法,其中识别该分组所属的流包括:对该分组的报头信息进行散列以产生散列值,并且其中确定来自相同流的分组是否已接受学习包括:利用散列值对状态表进行索引以获得状态信息。
5.按照权利要求4所述的方法,其中状态信息指示来自流的分组是否已接受学习。
6.按照权利要求1所述的方法,还包括:如果确定分组应接受学习,则将分组发送到中央处理器CPU以进行处理。
7.一种用于管理基于分组的网络节点中的处理资源利用的系统,包括:
中央处理器CPU,被配置为学习用于转发分组的转发信息;
基于硬件的转发引擎,被配置为确定是否应将分组发送到CPU以用于学习;和
学习过滤器,被配置为接收来自基于硬件的转发引擎的被基于硬件的转发引擎确定为需要学习的分组,并根据是否已允许任何其他相关分组到达CPU来决定是否允许所接收分组到达CPU;
其中相关分组是来自相同分组流的分组,并且其中学习过滤器包括被配置为识别分组所属的流的散列器和用于指示来自所识别流的分组是否已发送到CPU的状态表,其中散列器产生识别流的散列值并且其中散列值用来对状态表进行索引;并且
其中学习过滤器被配置为允许来自流的数量减少的分组到达CPU。
8.按照权利要求7所述的系统,其中基于硬件的转发引擎包括可用转发表条目编程的基于硬件的转发表;并且其中当基于硬件的转发引擎不包括与接收的分组对应的转发信息时,基于硬件的转发引擎被配置为将分组发送到CPU以用于学习。
9.按照权利要求7所述的系统,其中CPU和学习过滤器位于控制模块线路卡上,而基于硬件的转发引擎位于端口接口线路卡上,该系统还包括多个端口接口线路卡,每个端口接口线路卡具有基于硬件的转发引擎,其中学习过滤器被配置为接收来自每个端口接口线路卡的分组。
10.按照权利要求7所述的系统,其中CPU位于控制模块线路卡上,而学习过滤器与基于硬件的转发引擎一起位于端口接口线路卡上,该网络节点还包括多个端口接口线路卡,每个端口接口线路卡包括学习过滤器。
11.一种用于管理基于分组的网络节点中的处理资源利用的方法,包括:
接收分组;
将分组发送到中央处理器(CPU)以用于学习;
在分组到达CPU之前:
确定是否已允许相关分组到达CPU以用于学习,其中确定是否已允许相关分组到达CPU以用于学习包括:识别该分组与之相关的流,以及确定是否允许来自相同流的分组到达CPU;
根据是否已允许相关分组到达CPU来决定是否允许分组到达CPU,并且只有当尚未允许来自相同流的另一分组到达CPU以用于学习时,才允许接收的分组到达CPU以用于学习。
12.按照权利要求11所述的方法,还包括:允许来自相同流的数量减少的分组到达CPU以用于学习。
13.按照权利要求11所述的方法,其中确定是否已允许相关分组到达CPU以用于学习包括:对接收的分组的报头信息进行散列以产生散列值,并利用散列值对状态表进行索引,其中状态表包括指示是否已允许相关分组到达CPU的状态信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US53646904P | 2004-01-14 | 2004-01-14 | |
US60/536,469 | 2004-01-14 | ||
PCT/US2005/001284 WO2005067532A2 (en) | 2004-01-14 | 2005-01-14 | Managing processing utilization in a network node |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101351995A CN101351995A (zh) | 2009-01-21 |
CN101351995B true CN101351995B (zh) | 2011-02-02 |
Family
ID=34794407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800064873A Expired - Fee Related CN101351995B (zh) | 2004-01-14 | 2005-01-14 | 管理网络节点中的处理利用 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7443856B2 (zh) |
EP (1) | EP1721411A4 (zh) |
JP (1) | JP2007525883A (zh) |
CN (1) | CN101351995B (zh) |
WO (1) | WO2005067532A2 (zh) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US7236490B2 (en) | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US7826452B1 (en) * | 2003-03-24 | 2010-11-02 | Marvell International Ltd. | Efficient host-controller address learning in ethernet switches |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
US7817659B2 (en) | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US7657703B1 (en) | 2004-10-29 | 2010-02-02 | Foundry Networks, Inc. | Double density content addressable memory (CAM) lookup scheme |
US20070081526A1 (en) * | 2005-09-27 | 2007-04-12 | Accton Technology Corporation | Network switch device |
US7620043B2 (en) * | 2005-09-29 | 2009-11-17 | Fujitsu Limited | Using CRC-15 as hash function for MAC bridge filter design |
CN100442772C (zh) * | 2005-10-19 | 2008-12-10 | 华为技术有限公司 | 一种桥接转发方法 |
ATE429110T1 (de) * | 2005-10-19 | 2009-05-15 | Alcatel Lucent | Verfahren zur verarbeitung eines informationspakets und kommunikationsgeräte zur verwendung davon |
US8054830B2 (en) * | 2005-12-07 | 2011-11-08 | Alcatel Lucent | Managing the distribution of control protocol information in a network node |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US7796590B1 (en) * | 2006-02-01 | 2010-09-14 | Marvell Israel (M.I.S.L.) Ltd. | Secure automatic learning in ethernet bridges |
JP4137948B2 (ja) * | 2006-02-14 | 2008-08-20 | 日本電信電話株式会社 | パケット通過制御装置及びパケット通過制御方法 |
US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
US8238255B2 (en) * | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US20090279441A1 (en) | 2007-01-11 | 2009-11-12 | Foundry Networks, Inc. | Techniques for transmitting failure detection protocol packets |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
US8509236B2 (en) | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
CN101184095B (zh) * | 2007-12-06 | 2011-09-21 | 中兴通讯股份有限公司 | 基于cpu的策略控制列表的网络防攻击方法及系统 |
US9559987B1 (en) * | 2008-09-26 | 2017-01-31 | Tellabs Operations, Inc | Method and apparatus for improving CAM learn throughput using a cache |
US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
CN101645904A (zh) * | 2009-09-09 | 2010-02-10 | 中兴通讯股份有限公司 | 一种降低交换机中央处理器使用率的方法的装置 |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
CN102648455B (zh) * | 2009-12-04 | 2015-11-25 | 日本电气株式会社 | 服务器和流控制程序 |
US9270486B2 (en) | 2010-06-07 | 2016-02-23 | Brocade Communications Systems, Inc. | Name services for virtual cluster switching |
US9769016B2 (en) | 2010-06-07 | 2017-09-19 | Brocade Communications Systems, Inc. | Advanced link tracking for virtual cluster switching |
US8867552B2 (en) | 2010-05-03 | 2014-10-21 | Brocade Communications Systems, Inc. | Virtual cluster switching |
US9716672B2 (en) | 2010-05-28 | 2017-07-25 | Brocade Communications Systems, Inc. | Distributed configuration management for virtual cluster switching |
US9806906B2 (en) | 2010-06-08 | 2017-10-31 | Brocade Communications Systems, Inc. | Flooding packets on a per-virtual-network basis |
US9628293B2 (en) | 2010-06-08 | 2017-04-18 | Brocade Communications Systems, Inc. | Network layer multicasting in trill networks |
US9807031B2 (en) | 2010-07-16 | 2017-10-31 | Brocade Communications Systems, Inc. | System and method for network configuration |
CN102075421B (zh) * | 2010-12-30 | 2013-10-02 | 杭州华三通信技术有限公司 | 服务质量处理方法及装置 |
JP5787061B2 (ja) * | 2011-03-30 | 2015-09-30 | 日本電気株式会社 | スイッチシステム、ラインカード、fdb情報の学習方法及びプログラム |
US9736085B2 (en) | 2011-08-29 | 2017-08-15 | Brocade Communications Systems, Inc. | End-to end lossless Ethernet in Ethernet fabric |
US9699117B2 (en) | 2011-11-08 | 2017-07-04 | Brocade Communications Systems, Inc. | Integrated fibre channel support in an ethernet fabric switch |
US9450870B2 (en) | 2011-11-10 | 2016-09-20 | Brocade Communications Systems, Inc. | System and method for flow management in software-defined networks |
US8995272B2 (en) | 2012-01-26 | 2015-03-31 | Brocade Communication Systems, Inc. | Link aggregation in software-defined networks |
US9742693B2 (en) | 2012-02-27 | 2017-08-22 | Brocade Communications Systems, Inc. | Dynamic service insertion in a fabric switch |
US9154416B2 (en) | 2012-03-22 | 2015-10-06 | Brocade Communications Systems, Inc. | Overlay tunnel in a fabric switch |
US9374301B2 (en) | 2012-05-18 | 2016-06-21 | Brocade Communications Systems, Inc. | Network feedback in software-defined networks |
US10277464B2 (en) | 2012-05-22 | 2019-04-30 | Arris Enterprises Llc | Client auto-configuration in a multi-switch link aggregation |
US9401872B2 (en) | 2012-11-16 | 2016-07-26 | Brocade Communications Systems, Inc. | Virtual link aggregations across multiple fabric switches |
US9548926B2 (en) | 2013-01-11 | 2017-01-17 | Brocade Communications Systems, Inc. | Multicast traffic load balancing over virtual link aggregation |
US9413691B2 (en) | 2013-01-11 | 2016-08-09 | Brocade Communications Systems, Inc. | MAC address synchronization in a fabric switch |
US9350680B2 (en) | 2013-01-11 | 2016-05-24 | Brocade Communications Systems, Inc. | Protection switching over a virtual link aggregation |
CN103117928B (zh) * | 2013-01-21 | 2017-02-08 | 深圳市迪浦电子有限公司 | 提高芯片转发性能的方法及装置 |
US9565099B2 (en) | 2013-03-01 | 2017-02-07 | Brocade Communications Systems, Inc. | Spanning tree in fabric switches |
WO2014145750A1 (en) | 2013-03-15 | 2014-09-18 | Brocade Communications Systems, Inc. | Scalable gateways for a fabric switch |
US9699001B2 (en) | 2013-06-10 | 2017-07-04 | Brocade Communications Systems, Inc. | Scalable and segregated network virtualization |
US9800521B2 (en) * | 2013-08-26 | 2017-10-24 | Ciena Corporation | Network switching systems and methods |
US9806949B2 (en) | 2013-09-06 | 2017-10-31 | Brocade Communications Systems, Inc. | Transparent interconnection of Ethernet fabric switches |
US9912612B2 (en) | 2013-10-28 | 2018-03-06 | Brocade Communications Systems LLC | Extended ethernet fabric switches |
US9548873B2 (en) | 2014-02-10 | 2017-01-17 | Brocade Communications Systems, Inc. | Virtual extensible LAN tunnel keepalives |
US10581758B2 (en) | 2014-03-19 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | Distributed hot standby links for vLAG |
US10476698B2 (en) | 2014-03-20 | 2019-11-12 | Avago Technologies International Sales Pte. Limited | Redundent virtual link aggregation group |
US10063473B2 (en) | 2014-04-30 | 2018-08-28 | Brocade Communications Systems LLC | Method and system for facilitating switch virtualization in a network of interconnected switches |
US9800471B2 (en) | 2014-05-13 | 2017-10-24 | Brocade Communications Systems, Inc. | Network extension groups of global VLANs in a fabric switch |
US10616108B2 (en) | 2014-07-29 | 2020-04-07 | Avago Technologies International Sales Pte. Limited | Scalable MAC address virtualization |
US9807007B2 (en) * | 2014-08-11 | 2017-10-31 | Brocade Communications Systems, Inc. | Progressive MAC address learning |
US9699029B2 (en) | 2014-10-10 | 2017-07-04 | Brocade Communications Systems, Inc. | Distributed configuration management in a switch group |
US9626255B2 (en) | 2014-12-31 | 2017-04-18 | Brocade Communications Systems, Inc. | Online restoration of a switch snapshot |
US9628407B2 (en) | 2014-12-31 | 2017-04-18 | Brocade Communications Systems, Inc. | Multiple software versions in a switch group |
US10003552B2 (en) | 2015-01-05 | 2018-06-19 | Brocade Communications Systems, Llc. | Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches |
US9942097B2 (en) | 2015-01-05 | 2018-04-10 | Brocade Communications Systems LLC | Power management in a network of interconnected switches |
US9807005B2 (en) | 2015-03-17 | 2017-10-31 | Brocade Communications Systems, Inc. | Multi-fabric manager |
US10038592B2 (en) | 2015-03-17 | 2018-07-31 | Brocade Communications Systems LLC | Identifier assignment to a new switch in a switch group |
US10579406B2 (en) | 2015-04-08 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | Dynamic orchestration of overlay tunnels |
US10439929B2 (en) | 2015-07-31 | 2019-10-08 | Avago Technologies International Sales Pte. Limited | Graceful recovery of a multicast-enabled switch |
US10171303B2 (en) | 2015-09-16 | 2019-01-01 | Avago Technologies International Sales Pte. Limited | IP-based interconnection of switches with a logical chassis |
CN105591923B (zh) * | 2015-10-28 | 2018-11-27 | 新华三技术有限公司 | 一种转发表项的存储方法和装置 |
US9912614B2 (en) | 2015-12-07 | 2018-03-06 | Brocade Communications Systems LLC | Interconnection of switches based on hierarchical overlay tunneling |
US10164796B2 (en) * | 2016-04-19 | 2018-12-25 | Avago Technologies International Sales Pte. Limited | Flexible flow table with programmable state machine |
US10237090B2 (en) | 2016-10-28 | 2019-03-19 | Avago Technologies International Sales Pte. Limited | Rule-based network identifier mapping |
CN114422365B (zh) * | 2022-01-21 | 2024-03-19 | 成都飞鱼星科技股份有限公司 | 一种基于硬件流加速的上网行为管理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1032164A1 (en) * | 1999-02-26 | 2000-08-30 | International Business Machines Corporation | Method of self-learning for the switching nodes of a data transmission network |
CN1407769A (zh) * | 2001-09-11 | 2003-04-02 | 友讯科技股份有限公司 | 网络交换器的地址表格中地址数目的控制方法 |
CN1456004A (zh) * | 2000-04-13 | 2003-11-12 | 先进微装置公司 | 在网络交换机内的可编程第三层地址自我学习方法 |
CN1464704A (zh) * | 2002-06-06 | 2003-12-31 | 深圳市中兴通讯股份有限公司 | 一种基于链路状态的路由方法 |
CN1474564A (zh) * | 2002-08-05 | 2004-02-11 | ��Ϊ��������˾ | 一种虚拟局域网之间的通信方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06197111A (ja) * | 1992-10-26 | 1994-07-15 | Hitachi Ltd | インタネットワーク装置 |
JPH10145417A (ja) * | 1996-11-15 | 1998-05-29 | Hitachi Ltd | インタネットワーク装置 |
JP2951910B2 (ja) * | 1997-03-18 | 1999-09-20 | 松下電器産業株式会社 | 撮像装置の階調補正装置及び階調補正方法 |
US6430188B1 (en) * | 1998-07-08 | 2002-08-06 | Broadcom Corporation | Unified table for L2, L3, L4, switching and filtering |
JP4156112B2 (ja) * | 1998-12-25 | 2008-09-24 | 富士通株式会社 | 高速検索方法及び高速検索装置 |
US6483804B1 (en) * | 1999-03-01 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for dynamic packet batching with a high performance network interface |
US6999455B2 (en) * | 2000-07-25 | 2006-02-14 | Broadcom Corporation | Hardware assist for address learning |
US20030035430A1 (en) * | 2000-10-03 | 2003-02-20 | Junaid Islam | Programmable network device |
US7313614B2 (en) * | 2000-11-02 | 2007-12-25 | Sun Microsystems, Inc. | Switching system |
JP3711895B2 (ja) * | 2001-06-13 | 2005-11-02 | 日本電気株式会社 | 検索システム及びそれに用いる検索条件cam登録方法並びにそのプログラム |
US7269663B2 (en) * | 2001-09-28 | 2007-09-11 | Intel Corporation | Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache |
US6973503B2 (en) * | 2002-05-23 | 2005-12-06 | International Business Machines Corporation | Preventing at least in part control processors from being overloaded |
US7177311B1 (en) * | 2002-06-04 | 2007-02-13 | Fortinet, Inc. | System and method for routing traffic through a virtual router-based network switch |
US7761876B2 (en) | 2003-03-20 | 2010-07-20 | Siemens Enterprise Communications, Inc. | Method and system for balancing the load on media processors based upon CPU utilization information |
-
2005
- 2005-01-14 EP EP05705737A patent/EP1721411A4/en not_active Withdrawn
- 2005-01-14 JP JP2006549635A patent/JP2007525883A/ja active Pending
- 2005-01-14 WO PCT/US2005/001284 patent/WO2005067532A2/en active Application Filing
- 2005-01-14 CN CN2005800064873A patent/CN101351995B/zh not_active Expired - Fee Related
- 2005-01-14 US US11/036,909 patent/US7443856B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1032164A1 (en) * | 1999-02-26 | 2000-08-30 | International Business Machines Corporation | Method of self-learning for the switching nodes of a data transmission network |
CN1456004A (zh) * | 2000-04-13 | 2003-11-12 | 先进微装置公司 | 在网络交换机内的可编程第三层地址自我学习方法 |
CN1407769A (zh) * | 2001-09-11 | 2003-04-02 | 友讯科技股份有限公司 | 网络交换器的地址表格中地址数目的控制方法 |
CN1464704A (zh) * | 2002-06-06 | 2003-12-31 | 深圳市中兴通讯股份有限公司 | 一种基于链路状态的路由方法 |
CN1474564A (zh) * | 2002-08-05 | 2004-02-11 | ��Ϊ��������˾ | 一种虚拟局域网之间的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
US7443856B2 (en) | 2008-10-28 |
EP1721411A4 (en) | 2010-09-08 |
CN101351995A (zh) | 2009-01-21 |
WO2005067532A3 (en) | 2008-08-21 |
US20050152335A1 (en) | 2005-07-14 |
WO2005067532A2 (en) | 2005-07-28 |
JP2007525883A (ja) | 2007-09-06 |
EP1721411A2 (en) | 2006-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101351995B (zh) | 管理网络节点中的处理利用 | |
US6633565B1 (en) | Apparatus for and method of flow switching in a data communications network | |
US8446822B2 (en) | Pinning and protection on link aggregation groups | |
US6977932B1 (en) | System and method for network tunneling utilizing micro-flow state information | |
EP1408656B1 (en) | Method and device for transparent LAN services | |
US7558268B2 (en) | Apparatus and method for combining forwarding tables in a distributed architecture router | |
US20030235194A1 (en) | Network processor with multiple multi-threaded packet-type specific engines | |
US10645033B2 (en) | Buffer optimization in modular switches | |
US7277386B1 (en) | Distribution of label switched packets | |
EP1158729A2 (en) | Stackable lookup engines | |
US20050175022A1 (en) | Bridge apparatus and logical queue control method | |
US7764672B2 (en) | Packet communication device | |
KR20000028645A (ko) | 패킷 중계 장치 | |
WO2013054344A2 (en) | Method and apparatus for end-end communication and inter-domain routing in omnipresent ethernet networks with an option to migrate to mpls-tp | |
EP1352334A2 (en) | Selective routing of data flows using a tcam | |
JP2002314571A (ja) | スイッチングノードのための分類およびタグ付け規則 | |
US20020154648A1 (en) | Scaleable and robust solution for reducing complexity of resource identifier distribution in a large network processor-based system | |
US7430208B1 (en) | Efficient method for packet switching on asynchronous transfer mode switch based platforms | |
CN108541364B (zh) | 一种用于模块化平台中的路由表缩放的装置和方法 | |
US7352748B1 (en) | Updating of routing data in a network element | |
US7324513B2 (en) | IP multicast packet replication process for 4K VLANS | |
US10764177B2 (en) | Efficient implementation of complex network segmentation | |
Wu | Packet forwarding technologies | |
JP2000312225A (ja) | パケット中継装置 | |
US20060002394A1 (en) | Route computing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110202 Termination date: 20120114 |