专利名称:控制分组的分级速率限制的利记博彩app
技术领域:
本发明的实施例涉及网络处理领域;并且更具体地说,涉及网络元件的线路卡上收到的控制分组的分级速率限制。
背景技术:
网络元件一般包括在一个或多个控制卡的引导下高速执行分组转发/交换的多个线路卡。控制卡执行信令、路由选择(包括路由选择表的创建和/或管理)、连接设置、会话设置等。线路卡接收数据分组(一般是以高速转发/交换的)和需要由控制卡处理的控制分组。控制分组一般涉及信令、路由选择更新、连接设置、会话设置等。例如,在PPPoE (以太网上点到点协议)的情况下,线路卡能够从计算端装置接收 PPPoE主动发现请求(PADR)控制分组和PPPoE主动发现启动(PADI)控制分组。这些PADR 和PADI分组必须发送到控制卡以做进一步处理。控制分组的其它示例包括DHCP (动态主机配置协议)分组、CLIPS (无客户端IP服务)分组、IPv6的近邻发现、ARP (地址解析协议) 分组。通常,线路卡采用每个线路卡上的粗控制分组速率限制机制以防止大量的分组从线路卡发送到控制卡。这些速率限制一般按物理实体(例如,按卡、按端口等)或按协议来应用,并且应用到多个订户或计算机终端站。一般情况下,速率限制指示可被发送到线路卡的控制分组的数量。如果高于速率限制,则一般在线路卡中丢弃控制分组。因此,由于速率限制一般按物理实体或协议来应用,传送过量控制分组而导致超出速率限制的单个计算机终端站能够造成现有订户的控制分组被丢弃,或者由于那些控制分组将被丢弃而导致新订户会话失败。
发明内容
在本发明的一个实施例中,控制分组在网络元件的线路卡上受到分级速率限制。 对于线路卡上的每个接收控制分组,确定该控制分组的协议类型,基于控制分组的协议类型,提取该控制分组(并且在一些情况下特定的控制分组(例如,PADR(PPPoE主动发现请求)分组和PADI (PPPoE主动发现启动)分组))中一个或多个标识符关键字的集合,并且基于提取的标识符关键字的集合和控制分组的确定的协议类型,执行基于标识符关键字的速率限制。未通过基于标识符关键字的速率限制的那些控制分组(例如,对于该协议的标识符关键字的该集合的其对应分组计数值超出基于标识符关键字的速率限制值的那些分组) 被丢弃。基于控制分组的协议类型,通过基于标识符关键字的速率限制的那些控制分组在协议级别受到速率限制(例如,按协议)。通过协议级别速率限制的那些控制分组可被引导到控制卡以做进一步处理,而未通过协议级别速率限制的那些控制分组(例如,按协议其对应分组计数速率限制值超出该协议的协议级别速率限制值的那些分组)被丢弃。
7
在一些实施例中,标识符关键字的集合、基于标识符关键字的速率限制值和协议级别速率限制值中的一项或多项可由网络元件的系统操作员来配置,从而允许灵活的控制分组速率限制。因此,来自不同计算机终端站(和计算机终端站内的不同网络接口)的控制分组能够单独受到速率限制,同时保持每个线路卡的总体协议级别速率限制。因此,分级控制分组速率限制通过控制对于每个计算机终端站的为处理而接受的控制分组的量,同时允许接受合理的控制分组业务,防止计算机终端站执行服务拒绝攻击。在本发明的一个实施例中,网络元件的每个线路卡包括分组解析引擎,以解析控制分组,确定控制分组的协议类型,并基于控制分组的确定的协议类型,在每个控制分组中提取一个或多个标识符关键字的集合。每个线路卡还包括多个第一级别执行单元,以根据在第一时间间隔上为处理而接受的每个独特协议类型和标识符关键字集合的控制分组的数量,按协议类型和标识符关键字集合的独特关键字在接收的控制分组上执行第一级别的控制分组速率限制。第一执行单元丢弃未通过第一级别的控制分组速率限制的那些控制分组(例如,对于标识符关键字集合和协议的其对应分组计数值超出基于标识符关键字的速率限制值的那些分组)。每个线路卡还包括一个或多个第二执行单元的集合,以根据在第二时间间隔上为处理而接受的每个独特协议类型的控制分组的数量,按协议类型在通过第一级别的控制分组速率限制的那些控制分组上执行第二级别的控制分组速率限制。第二级别执行单元集丢弃未通过第二级别的控制分组速率限制的那些控制分组(例如,按协议其对应分组计数速率限制值超出该协议的协议级别速率限制值的那些分组)。通过第二级别的控制分组速率限制的那些控制分组可被引导到控制卡以做进一步处理。在本发明的一个实施例中,用于速率限制控制分组的线路卡包括多个网络处理单元(NPU)和中央线路处理器,每个NPU具有单独的存储器域,并且与线路卡的一个或多个端口耦合。每个NPU接收分组以进行处理,包括控制分组和数据分组。每个NPU包括分组解析引擎以解析控制分组,确定每个控制分组的协议类型,并基于该控制分组的确定的协议类型,从每个控制分组提取一个或多个标识符关键字的集合。每个NPU还包括多个第一级别执行单元以便按协议类型为提取的标识符关键字的每个独特集合执行基于标识符关键字的速率限制。第一级别执行单元将丢弃未通过基于标识符关键字的速率限制的那些控制分组。每个NPU还包括一个或多个第二级别执行单元的集合,以在通过基于标识符关键字的速率限制的那些控制分组的每个分组上执行基于协议的速率限制。第二级别执行单元的集合丢弃未通过基于协议的速率限制的那些控制分组,并将确实通过的那些控制分组和与那些控制分组的每个分组相关联的当前分组计数值(例如,对于每个控制分组,标识符关键字控制分组计数值和协议控制分组计数值)一起发送到线路卡的中央线路处理器。中央线路处理器按协议聚合从多个NPU接收的具有相同标识符关键字集合的控制分组(例如, 对于按协议的标识符关键字的每个独特集合,中央线路处理器将从NPU接收的分组计数值相加),并且按协议类型聚合从多个NPU接收的控制分组(例如,对于按协议的每个控制分组,中央线路处理器将从NPU收到的协议控制分组计数值相加)。根据按协议类型的标识符关键字的那些独特集合的聚合分组计数值,中央线路处理器按协议类型为标识符关键字的每个独特集合在从NPU收到的控制分组上执行基于聚合标识符关键字的速率限制。中央线路处理器丢弃未通过基于聚合标识符关键字的速率限制的那些控制分组。根据那些独特协议类型的聚合分组计数值,中央线路处理器为每个独特协议类型对于通过基于聚合标识符关键字的速率限制的那些控制分组执行基于聚合协议的速率限制。中央线路处理器丢弃未通过基于聚合协议的速率限制的那些控制分组。通过基于聚合协议的速率限制的那些控制分组可被引导到控制卡以做进一步处理。
通过参照下面的描述和用于示出本发明实施例的附图,可最好地理解本发明。在图中图1示出包括根据本发明的一个实施例的执行控制分组的分级速率控制的网络元件的一示范网络;图2示出根据本发明的一个实施例的图1所示网络元件的示范线路卡;图3是示出根据本发明的一个实施例的用于分级控制分组速率限制的示范操作的流程图;图4示出根据本发明的一个实施例的带有为控制分组执行分级速率限制的多个网络处理单元的线路卡;图5示出根据本发明的一个实施例的包括为控制分组执行分级速率限制的多个网络处理单元的示范线路卡;以及图6是示出根据本发明的一个实施例的在带有多个网络处理单元的线路卡中用于分级速率限制的示范操作的流程图。
具体实施例方式在下面的描述中,陈述了许多特定细节。然而,将理解,实践本发明的实施例可无需这些特定细节。其它情况下,控制结构、门级电路和全软件指令序列未详细示出以免混淆本发明。通过包括的描述,本领域的技术人员将能够在不进行不当实验的情况下实现适当的功能性。说明书中对“ 一个实施例”、“一实施例”、“ 一示例实施例”等的引用指所述实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。另外, 此类短语不一定指相同实施例。此外,结合实施例描述某个特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现此类特征、结构或特性在本领域技术人员的认知之内。在下面的描述和权利要求中,可使用术语“耦合”和“连接”及其衍生词。应理解, 这些术语无意作为彼此的同义词。“耦合”用于指示可相互直接物理或电接触或不直接物理或电接触的两个或更多元件相互协作或交互。“连接”用于指示相互耦合的两个或更多元件之间通信的建立。图中所示技术能够使用一个或多个电子装置(例如,计算机终端站、网络元件等) 上存储和执行的代码和数据来实现。此类计算装置使用机器可读媒体存储和传递(在内部和/或通过网络与其它电子装置)代码和数据,机器可读媒体例如有机器可读存储媒体 (例如,磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和机器可读通信媒体(例如,电、光、声或其它形式的传播信号-如载波、红外信号、数字信号等)。另外,此类电子装置一般情况下包括耦合到诸如存储装置、一个或多个用户输入/输出装置(例如,键盘、触摸屏和/或显示器)和网络连接等一个或多个其它组件的一个或多个处理器的集合。处理器的集合与其它组件的耦合一般情况下是通过一个或多个总线和桥接器 (也称为总线控制器)。存储装置和携带网络业务的信号分别表示一个或多个机器可读存储媒体和机器可读通信媒体。因此,给定电子装置的存储装置一般情况下存储代码和/或数据以便在该电子装置的一个或多个处理器的集合上执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。在本文中使用时,网络元件(例如,路由器、交换器、桥接器等)是一件连网设备, 包括在通信上与网络上的其它设备(例如,其它网络元件、计算机终端站等)互连的硬件和软件。一些网络元件是“多服务网络元件”,其为多个网络功能提供支持(例如,路由选择、 桥接、交换、第2层聚合和/或订户管理)和/或为多个应用服务(例如,数据、话音和视频) 提供支持。订户计算机终端站(例如,工作站、膝上型计算机、掌上计算机、移动电话、智能电话、多媒体电话、便携式媒体播放器、GPS单元、游戏系统、机顶盒等)访问通过因特网提供的内容/服务和/或因特网上重叠的虚拟专用网(VPN)上提供的内容/服务。内容和/ 或服务一般由属于服务或内容提供商的一个或多个服务器计算机终端站来提供,并且可包括公共网页(免费内容、店面、搜索服务等)、私人网页(例如,提供电子邮件服务的用户名 /密码访问的网页等)、VPN上的企业网络等。一般情况下,订户计算机终端站耦合(例如, 通过耦合到接入网络(以有线或无线方式)的客户场所设备)到边缘网络元件,边缘网络元件耦合到(例如通过一个或多个核心网络元件到其它边缘网络元件)服务器计算机终端站。描述了用于控制分组的分级速率限制的方法和设备。在本发明的一个实施例中, 基于控制分组中包括的一个或多个标识符关键字的集合(例如,源MAC地址、源IP地址、 GIADDR(网关IP地址)等的一个或多个),控制分组受到第一级别的速率限制。标识符关键字速率限制值可由网络元件的系统操作员来配置。未通过基于标识符关键字的速率限制的那些分组被丢弃。通过基于标识符关键字的速率限制的那些分组被排队(如果队列深度尚未被超出),并且基于分组的协议,那些分组受到第二级别的速率限制。未通过第二级别速率限制的那些分组被丢弃,而通过第二级别速率限制的那些分组可被发送到控制卡以做进一步处理。在一个实施例中,每个线路卡包括多个执行单元,每个执行单元处理控制分组,并且每个执行单元执行第一级别速率限制(例如,基于标识符关键字的速率限制)。每个线路卡还包括执行第二级别速率限制(例如,基于协议的速率限制)的一个或多个执行单元的集合
在一个实施例中,每个线路卡包括多个网络处理单元(NPU)和中央线路处理器。 每个NPU包括多个执行单元,每个执行单元处理控制分组,并且每个执行单元执行第一级别速率限制(基于标识符关键字的速率限制),并且包括执行第二级别速率限制(例如,基于协议的速率限制)的一个或多个执行单元的集合。通过第二级别速率限制的那些分组被发送到中央线路处理器。中央线路处理器基于标识符关键字和协议来聚合控制分组和控制分组计数。中央线路处理器基于标识符关键字的聚合计数,执行第三级别速率限制。未通过第三级别速率限制的那些控制分组被丢弃,而第四级别速率限制应用到通过第三级别速率限制的那些分组。第四级别速率限制基于协议的聚合分组计数。通过第四级别速率限制的那些分组可被发送到控制卡以做进一步处理,而未通过第四级别速率限制的那些分组被丢弃。图1示出包括根据本发明的一个实施例的执行控制分组的分级速率控制的网络元件的一示范网络。网络190包括计算机终端站105和110及网络元件100。在一个实施例中,计算机终端站105和110是不同最终用户的订户计算机终端站,并且网络元件100是边缘网络元件。虽然在图1中未示出,但应理解,计算机终端站105和110可通过一个或多个其它计算装置(例如,诸如DSLAM、CMTS等的接入装置)与网络100连接。计算机终端站105将分组(包括数据分组和控制分组)传送到网络元件100,并在连接120上接收从网络元件100传送的分组。类似地,计算机终端站110将分组(包括数据分组和控制分组)传送到网络元件100,并在连接115上接收从网络元件100传送的分组。网络元件100包括通过高速网状网络160与控制卡170耦合的多个线路卡125。 线路卡125接收控制分组,并将控制分组发送到控制卡170以做进一步处理。线路卡125 在它收到的控制分组上执行分级速率限制(因此,线路卡125在多个级别调节发送到控制卡170的控制分组的数量)。在一个实施例中,线路卡125在第一级别执行基于标识符关键字的速率限制和在第二级别执行协议级别速率限制。线路卡125各自包括基于标识符关键字的速率限制器模块140,该模块基于与它接收的控制分组相关联的一个或多个标识符关键字的集合,执行基于标识符关键字的速率限制。标识符关键字的集合能够对不同协议是不同的。给定控制分组的标识符关键字集合识别和分类该控制分组。例如,标识符关键字集合可与网络元件100的订户相关联。标识符关键字集合能够包括控制分组中的信息(例如,源MAC地址、目的地MAC地址、GIADDR等) 和与控制分组相关联的对网络元件100具有本地重要性的信息(例如,指派到在其上收到分组的电路、在其上收到控制分组的端口等的本地标识符)。在一些实施例中,系统操作员可定义基于标识符关键字的速率限制所基于的标识符关键字。线路卡125还包括基于协议的速率限制器模块150,以便基于控制分组的协议类型和/或控制分组的类型,执行基于协议的速率限制。例如,基于协议的速率限制器模块 150能够为线路卡上收到的所有DHCP分组执行速率限制。又如,基于协议的速率限制器模块150能够为诸如PADR(PPPoE主动发现请求)分组和PADI (PPPoE主动发现启动)分组等特定类型的控制分组来执行速率限制。在一个实施例中,基于协议的速率限制器模块150 在通过基于标识符关键字的速率限制的那些分组上执行基于协议的速率限制。基于标识符关键字的速率限制器模块140从基于标识符关键字的速率限制值145 来检索基于标识符关键字的速率限制中使用的标识符关键字速率限制。基于协议的速率限制器模块150从协议级别速率限制值155来检索用于基于协议的速率限制的速率限制。在一个实施例中,速率限制值(例如,协议级别速率限制值155和标识符关键字速率限制值145)可由网络元件100的系统操作员来配置。例如,系统操作员能够使用控制卡 170的命令行接口 180来配置协议级别速率限制值155和基于标识符关键字的速率限制值 145。例如,对于每个协议类型(以及在一些情况下的控制分组类型(例如,PADI或PADR)), 系统操作员能够设置在指定量的时间(允许间隔)上对于标识符关键字所允许的控制分组的数量。另外,系统操作员能够配置允许间隔的时间量,并且能够配置指示在下一允许间隔
11开始前未通过的控制分组将被丢弃的时间量的丢弃间隔。另外,对于每个协议类型(以及在一些情况下的控制分组类型),系统操作员能够设置在指定允许间隔上对于该协议(或控制分组类型)所允许的控制分组的总数。另外,系统操作员能够配置允许间隔的时间量, 并且能够配置协议的丢弃间隔的时间量。如前面所述,计算机终端站105和110分别在连接120和115上传送和接收控制分组。控制分组可在本发明的不同实施例中用于不同协议(例如,DHCP(动态主机配置协议) 控制分组、PPPoE(以太网上点到点协议)控制分组(例如,PADR分组、PADI分组)、ARP(地址解析分组)、IPv6近邻发现分组等等)。被允许发送到控制卡170的控制分组将由协议模块175中的适当协议模块来处理。例如,PPPoE控制分组将由协议模块175的PPPoE模块来处理。在一个实施例中,对于PPPoE订户,PADR和PADI分组分别受到速率限制。虽然在一个实施例中,用于PADR和PADI分组的标识符关键字是分组中包括的源MAC地址,但在其它实施例中,标识符关键字是不同的(例如,基于源和目的地MAC地址、目的地MAC地址等)。对于ARP分组,标识符关键字是ARP分组中包括的源MAC地址。对于DHCP控制分组, 标识符关键字是源MAC地址,并且可选的是分组中包括的GIADDR。如图1所示,计算机终端站105和110分别在连接120和115上传送DHCP控制分组。然而,应理解,计算机终端站105和110能够分别在连接120和115上传送不同控制分组。为了解释的目的,连接120和115在线路卡125中的相同卡上终止。计算机终端站 105正在以特定时间期上100个分组的速率在连接120上传送带有MACl的标识符关键字的 DHCP控制分组。计算机终端站105正在以该相同时间期上3个分组的速率在连接125上传送带有MAC2的标识符关键字的DHCP控制分组。基于标识符关键字的速率限制器模块140在控制分组(例如,从计算机终端站105 和110收到的DHCP分组)上应用基于标识符关键字的速率限制。基于标识符关键字的速率限制器模块140从基于标识符关键字的速率限制值145来检索与标识符关键字相关联的速率限制值。例如,基于分组的协议类型(例如,DHCP),基于标识符关键字的速率限制值 145指示对于该协议类型的每个不同标识符关键字(例如,每个不同的源MAC地址和可选的 DHCP分组的GIADDR)在允许间隔上能够被接受的分组数量。如图1所示,对于用于DCHP控制分组的每个独特标识符关键字,在该时间期(例如,计算机终端站105和110分别正在传送100个DHCP分组和3个DHCP分组的相同时间期)上,允许10个DHCP控制分组。由于计算机终端站105在该时间期上传送100个DHCP分组,这超出了标识符关键字速率限制10, 因此,基于标识符关键字的速率限制器模块140接受10个DCHP分组,并且丢弃那些DHCP 分组中的90个分组。由于计算机终端站110在该时间期上传送3个DHCP分组,这低于标识符关键字速率限制,因此,基于标识符关键字的速率限制器模块140接受所有三个DHCP 分组。在一个实施例中,接受控制分组包括将分组排队到协议特定的队列,或者在一些情况下,排队到控制分组特定的队列(例如,DHCP控制分组队列、PADI队列、PADR队列等)。在控制分组受到基于标识符关键字的速率限制后的某个时间,基于控制分组的协议或一些情况下控制分组类型,已通过的那些分组受到基于卡级别的速率限制器模块150 在卡级别的速率限制。基于卡级别的速率限制器模块150从卡级别速率限制值155来检索卡级别速率限制(按协议)。例如,基于分组的协议类型(例如,DHCP),卡级别速率限制值巧5指示能够容许到控制卡170的该协议的控制分组的数量。如图1所示,在该时间期上能够容许总共50个DHCP控制分组到控制卡170。假设计算机终端站105和110是仅有的传送DHCP控制分组到线路卡125的实体,基于卡级别的速率限制器模块150容许带有MACl 的标识符关键字的10个DHCP控制分组(来自计算机终端站106)和容许带有MAC2的标识符关键字的3个DHCP控制分组(来自计算机终端站110)。图2示出根据本发明的一个实施例的网络元件100的线路卡125之一的更详细视图。分组解析引擎210解析在线路卡125收到的控制分组以提取分组中的数据,并将分组数据写入分组缓冲器存储器215中。基于提取的数据,能够确定控制分组的分组协议和类型。另外,还指派优先级到控制分组(例如,不同协议可具有不同优先级)。基于指派到控制分组的优先级,将控制分组排队到分组工作队列212之一。执行单元220各自执行基于标识符关键字的速率限制器模块140的一实例,贯穿于分组工作队列212进行循环以使待定分组得以处理。基于分组协议,基于标识符关键字的速率限制器模块140确定在生成标识符关键字时要使用的与分组相关联的一个或多个参数(例如,对于PADI和PADR分组的源MAC地址字段等)。在一个实施例中,基于标识符关键字的速率限制简档260存储基于控制分组的控制分组类型或协议类型而指示分组的哪些部分要使用的简档。基于标识符关键字的速率限制器模块140随后提取分组的所述一个或多个部分以提取一个或多个标识符关键字。另外,在生成标识符关键字中可使用分组的本地属性(例如,识别控制分组所属连接的独特本地标识符(例如,时隙/端口 /信道/独特标识符)等)。基于标识符关键字的速率限制器模块140从标识符关键字速率限制值145来检索与关键字相关联的速率限制值。在本发明的一个实施例中,属于相同协议(例如,DHCP)或控制分组类型(例如,PADI或PADR)的所有关键字具有相同的速率限制值,而在其它实施例中,每个独特的关键字能够与不同的速率限制值相关联。在一个实施例中,基于标识符关键字的速率限制器模块140应用哈希函数到一个或多个提取的标识符关键字的集合以生成某个关键字,该关键字到标识符关键字节流桶 (throttling bucket) 225中进行索引以检索与标识符关键字节流有关的多个参数。在一个实施例中,标识符关键字节流桶225是哈希表,该表通过生成的关键字来索引,并且包括与节流有关的多个参数(例如,分组的源MAC地址、已经容许的分组数量(在该时间期期间)、最后分组的时间戳及允许为具有相同关键字的多个分组锁定/同步这些参数的属性集合)。比较在该时间期期间已经对于该标识符关键字所容许的分组的数量和对于该关键字的速率限制值。如果速率限制值被超出,或者分组的容许将造成该值被超出,则基于标识符关键字的速率限制器模块140丢弃该控制分组。然而,如果速率限制值未被超出,则基于协议或控制分组类型,基于标识符关键字的速率限制器模块140将控制分组排队到基于协议的队列245之一中(例如,用于DHCP控制分组、ARP控制分组、PADI分组、PADR分组及IPv6近邻发现分组的单独队列)。基于标识符关键字的速率限制器模块140还将控制分组添加到标识符关键字节流桶(例如,更新容许的分组数量,更新时间戳等)。在一个实施例中,如果那些队列的深度(当前排队的分组的数量)大于阈值,则基于标识符关键字的速率限制模块240不将控制分组排队到基于协议的队列M5。每个基于协议的队列能够具有不同的深度阈值。执行单元230基于控制分组的协议或控制分组的类型而执行第二级别的速率限制(基于协议的速率限制)。基于协议的速率限制器模块150从协议级别速率限制值155 来检索与控制分组的协议或类型相关联的速率限制值。控制分组的不同协议或不同类型能够具有不同的协议级别速率限制值。基于协议的速率限制器模块150基于控制分组的协议或控制分组类型来访问协议级别节流桶255。协议级别节流桶包括与协议级别速率限制有关的多个参数(例如,容许的分组数量(在该时间期期间)、最后分组的时间戳等)。分别比较在该时间期期间对于该协议或控制分组类型所容许的分组的数量和对于该协议或控制分组类型的速率限制值。基于协议的速率限制器150丢弃其当前容许的分组数量超出速率限制值的那些分组(例如, 从基于协议的队列245中删除那些分组)。对于通过协议级别速率限制的那些分组,基于协议的速率限制器150更新协议级别节流桶255,并将那些分组引导到控制卡以做进一步处理。在一些实施例中,执行单元230在后台工作,并且执行除协议级别速率限制外的工作。例如,如图2所示,执行单元230还执行老化器模块250以从标识符关键字节流桶 225及可选的协议级别节流桶255删除和管理过时的条目。在一个实施例中,基于老化器计时器的到期来触发执行老化器模块250。另外,如图2所示,执行单元230执行基于标识符关键字的速率限制模块对0,该模块类似于由执行单元220执行的基于标识符关键字的速率限制器模块140。由于有多个执行单元220,因此,有可能多个执行单元会尝试在大约相同的时间执行相同关键字上的基于标识符关键字的速率限制,这能够导致执行单元在确定是否接受分组时使用过时的信息。在一个实施例中,在执行单元220之一开始对于某个标识符关键字的基于标识符关键字的速率限制时,该执行单元设置标志以向其它执行单元指示它当前在该标识符关键字上执行基于标识符关键字的速率限制。如果执行单元220中的一个不同单元在该标志已设置时接收带有该标识符关键字的控制分组,则该执行单元220不执行基于标识符关键字的速率限制,并且通知执行单元230基于标识符关键字的速率限制尚未执行。在一个实施例中,执行单元220中的该不同单元将该控制分组排队到基于协议的队列 245中的一个适当队列中。在接收此类指示后某个时间,执行单元230的基于标识符关键字的速率限制模块MO以如上所述类似的方式来执行基于标识符关键字的速率限制。在一个实施例中,执行单元230可定期执行基于标识符关键字的速率限制模块 240以验证执行单元220的性能,并且可确定丢弃执行单元220接受的分组。图3是示出根据本发明的一个实施例的用于分级控制分组速率限制的示范操作的流程图。图3的操作将参照图2的示范实施例进行描述。然而,应理解,图3的操作能够由与参照图2论述的那些实施例不同的本发明的其它实施例来执行,并且参照图2论述的实施例能够执行与参照图3所述那些操作不同的操作。在框310,线路卡125之一接收控制分组。流程转到框315,在该框中,该线路卡上的分组解析引擎210解析收到的控制分组并将分组数据写入分组缓冲器存储器215中。流程随后转到框320,在该框中,基于分组的优先级,分组被排队到多个分组工作队列212之一中。流程从框320转到框325。
14
在框325,执行单元220之一从分组工作队列212来选择控制分组以开始处理。流程随后转到框330,在该框中,基于分组缓冲器存储器中的信息来确定协议。如果协议包括分别受速率限制的控制分组的多个类型(例如,PADI和PADR分组),则还确定控制分组的类型。在一个实施例中,协议标识符与控制分组相关联,其识别分组的协议类型和/或控制分组类型。流程随后转到框335,在该框中,基于标识符关键字的速率限制器模块140基于分组的控制分组的类型或协议来确定分组中包括的要提取的一个或多个关键字标识符的集合,并且提取那些标识符。例如,如果控制分组是DHCP分组,则从该分组提取源MAC地址和可选的GIADDR。又如,如果控制分组是PADI或PADR分组,则从该分组提取源MAC地址。当然,应理解,系统操作员可配置不同的标识符关键字以用于控制分组。流程从框335转到框 340。在框340,基于标识符关键字的速率限制模块340将哈希函数应用到提取的关键字标识符以生成关键字索引,该关键字索引到标识符关键字节流桶225中进行索引。流程从框340转到框345。在框345,基于标识符关键字的速率限制模块340使用生成的关键字索引来访问标识符关键字节流桶,并且检索与该关键字索引相关联的速率计数器,其包括与该关键字相关联的在当前时间间隔中已接受的分组的数量。另外,基于标识符关键字的速率限制模块140访问标识符关键字速率限制值145,并且检索对于该标识符关键字的关键字标识符速率限制阈值。流程从框345转到框355。在框355,基于标识符关键字的速率限制器模块140确定将控制分组加到与关键字索引相关联的速率计数器的值是否超出关键字标识符速率限制阈值。如果关键字标识符速率限制阈值将被超出,则流程转到框360,在该框中丢弃分组。否则,流程转到框365,在该框中,将关键字排队到基于协议的队列245中的一个适当队列中。在一个实施例中,在将分组排队到基于协议的队列245之一中前,基于标识符关键字的速率限制器模块140检查该队列的队列深度。如果分组的添加将使得队列深度超出队列深度阈值,则基于标识符关键字的速率限制器模块140将丢弃该分组。流程从框365转到框370。在框370,基于协议的速率限制器模块150访问协议级别速率限制值155,并且检索对于分组的协议类型或控制分组类型的协议级别速率限制值。 另外,基于协议的速率限制器模块150访问协议级别节流桶255,并检索与控制分组的类型或协议相关联的速率计数器。流程从框370转到框375。在框375,基于协议的速率限制器模块150确定将控制分组加到协议级别速率计数器的值是否超出与协议类型或控制分组类型相关联的卡级别速率限制值。如果协议级别速率限制已被超出,则流程转到框380,在该框中丢弃分组。否则,流程转到框385,在该框中,基于协议的速率限制器模块150将分组引导到控制卡。另外,基于协议的速率限制器模块150更新协议级别节流桶255以反映正在发送到控制卡的分组。因此,控制分组能够以分级方式受到速率限制,以提供粒度和灵活的控制分组速率限制。在一些实施例中,系统操作员能够配置速率限制的粒度和用于识别控制分组的关键字。另外,在一些实施例中,控制分组能够基于协议(例如,DHCP)和/或基于特定类型的控制分组(例如,PADR和PADI分组)受到速率限制。由于速率限制是灵活的,并且能够在包括控制分组识别级别和协议级别的不同级别来执行,因此,来自不同计算机终端站(和计算终端站内不同网络接口)的控制分组能够单独受到速率限制,同时保持每个线路卡的总体协议控制分组速率限制。因此,分级控制分组速率限制通过传送大量的控制分组到网络元件、同时允许接受合理的控制分组业务,防止计算机终端站执行服务拒绝攻击。在一些实施例中,网络元件中的线路卡包括多个网络处理单元(NPU),每个单元能够单独执行基于标识符关键字的速率限制和基于协议的速率限制。图4示出根据本发明的一个实施例的带有用于为控制分组执行分级速率限制的多个网络处理单元的线路卡。如图4所示,每个线路卡460包括NPU 405A和405B。应理解,NPU的数量是示范性的,因为线路卡可在本发明的实施例中包括不同数量的NPU。NPU 405A和405B耦合到中央线路处理器410。在一个实施例中,NPU 405A和405B与线路卡的不同端口相关联。NPU 405A和405B各自接收控制分组,并单独执行标识符关键字速率限制和基于协议的限制。 因此,NPU 405A-405B不共享存储器域,并且未独自知道另一个NPU处理什么。因此,不同 NPU可能会在大致相同时间处理对于相同协议和标识符关键字的控制分组。如图4所示, NPU405A分别通过MAC1、MAC2和MAC3的标识符关键字,为相同协议(例如,DHCP)执行标识符关键字速率限制415、420和425。NPU405B分别通过MAC4和MACl的标识符关键字为该相同协议(例如,DHCP)执行基于标识符关键字的速率限制430和435。因此,NPU405A通过 MACl的标识符关键字为DHCP分组执行基于标识符关键字的速率限制415,并且NPU 405B 通过MACl的相同标识符关键字为DHCP分组执行基于标识符关键字的速率限制435。NPU 405A随后将基于协议的速率限制440应用到通过基于标识符关键字的速率限制415、420和425的那些分组。如图4所示,带有MACl的标识符的DHCP分组通过了基于标识符关键字的速率限制415,并且带有MAC3的标识符的DHCP分组通过了基于标识符关键字的速率限制425。带有MAC2的标识符的DHCP分组未通过基于标识符关键字的速率限制420。类似地,NPU 405B将基于协议的速率限制445应用到通过基于标识符关键字的速率限制430和435的那些分组。如图所示,带有标识符MAC4和MACl的DHCP分组分别通过了基于标识符关键字的速率限制430和435。NPU 405A将通过基于协议的速率限制440的那些分组发送到中央线路处理器410 以做进一步处理。如图所示,带有标识符MACl和MAC3的DHCP分组通过基于协议的速率限制440,并且被发送到中央线路处理器410以做进一步处理。类似地,NPU 405B将通过基于协议的速率限制445的那些分组发送到中央线路处理器410以做进一步处理。NPU 405A 和405B还将协议标识符和分组及当前速率计数器(标识符关键字速率计数器和协议速率计数器)一起发送。如图所示,带有MACl的标识符的DHCP分组通过了基于协议的速率限制445,但带有MAC4的标识符的DHCP分组未通过,并且不发送到中央线路处理器410。中央处理器410为它从NPU 405A和405B接收的那些分组聚合来自相同协议和标识符关键字的那些分组。例如,中央线路处理器410为从NPU 405A和405B收到的相同标识符关键字和协议增加标识符关键字速率计数器的值。类似地,中央线路处理器410为从 NPU 405A和405B收到的具有相同协议标识符的那些分组增加协议速率计数器的值。作为示例,中央线路处理器410为从NPU 405A和405B收到的具有MACl的标识符的DHCP分组聚合标识符关键字速率计数器。基于标识符关键字速率计数器的聚合值,执行基于标识符关键字的限制450。通过基于标识符关键字的速率限制450的那些分组随后受到基于协议速率计数器的聚合值的协议限制455的速率限制。通过协议限制455的那些控制分组随后可被发送到控制卡以做进一步处理。在一个实施例中,每个NPU执行如参照图2和3所述的类似操作,不同之处是不将通过分级速率限制的那些控制分组发送到控制卡,而是将那些控制分组发送到中央线路处理器以做进一步的聚合和速率限制。在此类实施例中,每个NPU包括多个执行单元以执行基于标识符关键字的速率限制,并且包括一个或多个执行单元的集合以执行基于协议的速率限制。例如,图5示出根据本发明的一个实施例的包括执行分级速率限制的多个网络处理单元的线路卡之一的更详细视图。如图5所示,NPU 405A和405B分别包括基于标识符关键字的速率限制器模块^OA和MOB和基于协议的速率限制器模块550A和550B。虽然为了简明的缘故而未示出,但应理解,对于NPU 405A和405B的每个,多个执行单元执行基于标识符关键字的速率限制器模块MOA和MOB的实例,并且一个或多个执行单元的集合执行基于协议的速率限制模块^OA和550B。在一个实施例中,基于标识符关键字的限制器模块MOA和MOB类似于图1所示的基于标识符关键字的限制器模块140而执行,并且基于协议的速率限制器模块^OA和550B类似于基于卡级别的限制器模块150而执行,不同之处在于通过基于协议的速率限制的分组被发送到中央线路处理器410而不是被允许发送到控制卡。通过来自NPU 405A和405B的每个的基于协议的速率限制的那些分组和协议标识符及相关联的分组计数器(例如,当前标识符关键字分组计数值和当前协议分组计数值) 一起被发送到中央线路处理器410。中央线路处理器410基于标识符关键字和协议聚合从不同NPU405A和405B收到的控制分组,并且将基于聚合标识符关键字的速率限制和基于聚合协议的速率限制应用到那些控制分组。例如,聚合器模块530聚合它接收的控制分组的每个不同标识符关键字的标识符关键字分组计数值,并且聚合它接收的控制分组的协议分组计数值。聚合器模块530适当地更新标识符关键字速率计数器570和协议速率计数器 580 (例如,通过更新的分组计数)。在某个分组与其它类似分组聚合后某个时间,基于聚合标识符关键字的速率限制器模块560访问标识符关键字速率限制值570,并且检索与该分组的标识符关键字相关联的速率限制值。比较检索到的速率限制值和对于该标识符关键字的聚合分组计数。其聚合分组计数值大于其相关联速率限制值的那些分组被丢弃。通过基于聚合标识符关键字的速率限制的那些分组随后受到基于其协议或控制分组类型的速率限制。基于聚合协议级别的速率限制器565访问协议速率限制值585,并且检索与控制分组的控制分组类型或协议相关联的速率限制值。比较检索到的速率限制值和对于该协议或控制分组类型的聚合分组计数。其聚合分组计数值超出其相关联速率限制值的那些分组被丢弃。随后,允许通过基于聚合协议的速率限制的那些控制分组被发送到控制卡以做进一步处理。图6是示出根据本发明的一个实施例的带有多个网络处理单元的线路卡中用于分级速率限制的示范操作的流程图。图6的操作将参照图5的示范实施例进行描述。然而, 应理解,图6的操作能够由与参照图5论述的那些实施例不同的本发明的其它实施例来执行,并且参照图5论述的实施例能够执行与参照图6所述那些操作不同的操作。如图6所示,操作的流程如参照图3所述在框375开始。根据一个实施例,参照图 3所述的操作(例如,参照框310-370所述的操作)由NPU 405A和405B之一来执行。例
17如,在框310,NPU 405A和405B之一接收控制分组。为了解释的目的,参照图6所述的操作假设NPU405A已收到控制分组。在框375,基于协议的速率限制模块550A确定将控制分组加到基于协议的速率计数器的值是否超出与接收分组的控制分组类型或协议类型相关联的基于协议的速率限制。 如果协议速率限制值被超出,则流程转到框380,在该框中丢弃分组,否则流程转到框610。在框610,NPU 405A将控制分组以及控制分组的关键字标识符、控制分组的协议标识符及与控制分组相关联的当前分组计数值(例如,当前关键字标识符分组计数值和当前协议分组计数值)一起发送到中央线路处理器410。流程从框610转到框615。在框615,中央线路处理器410聚合与接收的控制分组相关联的分组计数值。例如,聚合器模块530通过将与接收的控制分组相关联的分组计数值加到标识符关键字速率计数器570和协议速率计数器580中存储的值来聚合那些值。聚合器模块530还可更新标识符关键字速率计数器570和协议速率计数器580中的分组的时间戳。当然,应理解,如果接收的控制分组是接收的带有该标识符关键字或协议的第一分组,则聚合器模块530能够在标识符关键字速率计数器570和协议速率计数器580中创建该分组的条目。流程从框615转到框620,在该框中,基于聚合标识符关键字的速率限制器模块 560访问标识符关键字速率限制值575,并检索与分组的标识符关键字相关联的标识符关键字速率限制值。此外,基于聚合标识符关键字的速率限制器模块560访问标识符关键字速率计数器570,并且检索在该时间期上容许的带有该标识符关键字的分组的数量。流程从框620转到框625,在该框中,基于聚合标识符关键字的速率限制器模块560确定聚合的分组计数值是否超出基于标识符关键字的速率限制。如果计数超出速率限制,则流程转到框 630,在该框丢弃分组,否则,流程转到框635,在该框中开始基于协议的速率限制。在框635,基于聚合协议的速率限制器模块565访问协议速率限制值585,并且检索与控制分组相关联的协议速率限制值(例如,基于与控制分组一起传送的协议标识符)。 另外,基于聚合协议的速率限制器模块565访问协议速率计数器580,并且检索容许的具有控制分组的协议标识符的分组的数量。流程从框635转到框640,在该框中,基于聚合协议的速率限制器模块565确定对于该协议标识符的聚合的分组计数值是否超出对于该协议标识符的协议速率限制值。如果计数超出速率限制,则流程转到框630,在该框中丢弃分组。 然而,如果计数未超出速率限制,则流程转到框640,在该框中,分组被引导到控制卡以做进一步处理。因此,在一些实施例中,线路卡执行多个分级级别的控制分组速率限制。然而,应理解,在一些实施例中,一个或多个级别的控制分组速率限制被忽略。例如,在线路卡包括多个网络处理单元和中央线路处理器的情况下,在一个实施例中,只在网络处理单元应用速率限制(因此,在此类实施例中,网络处理单元不执行控制分组速率限制)。作为另一个示例,在一些实施例中,忽略基于协议的速率限制。在一些实施例中,除了基于标识符关键字的速率限制和基于协议的速率限制外, 控制分组受到基于每秒事件的数量的速率限制。作为示例,事件是线路卡上控制分组的接收,而与协议无关。例如,在接收控制分组时基于标识符关键字的速率限制之前,线路卡确定控制分组是否通过每秒事件的速率限制。如果分组通过每秒事件的速率限制,则执行基于标识符关键字的速率限制。如果分组未通过每秒事件的速率限制,则线路卡将丢弃分组。在一个实施例中,每秒事件的速率限制对电路是特定的(即,每秒事件的速率限制单独应用于每个不同电路)。虽然实施例已相对于基于关键字标识符和基于协议类型的控制分组速率限制进行了描述,但在其它实施例中,控制分组可还在不同粒度(例如,按端口、按VLAN/ATM-PVC、 按订户等)受到限制。另外,在一些实施例中,控制分组在不同粒度(例如,按端口、按VLAN/ ATM-PVC、按订户等)受到限制,而不是基于分组中的关键字标识符和基于控制分组的协议类型对控制分组进行速率限制。虽然实施例已基于标识符关键字的类别相对于速率限制控制分组进行了描述 (例如,通过具有相同的标识符关键字速率限制值,等同地对待带有相同协议的独特标识符关键字的控制分组),但在一些实施例中,标识符关键字速率限制值能够对各个标识符关键字是特定的。另外,在一些实施例中,标识符关键字速率限制值是动态的,并且能够根据接收的控制分组的历史对于各个标识符关键字进行更改(例如,响应检测到对于该标识符关键字的异常大量的控制分组(并因此是可能的服务拒绝攻击),能够降低对于该标识符关键字的速率限制值)。虽然图中的流程图示出本发明的某些实施例执行的操作的特定顺序,但应理解, 此类顺序是示范性的(例如,备选实施例可以在不同的顺序中执行操作,组合某些操作,重叠某些操作等)。虽然本发明已根据几个实施例描述,但本领域的技术人员将认识到本发明不限于所述实施例,通过随附权利要求的精神和范围内的修改和变化,能够实践本发明。描述因此要视为是说明性的而不是限制性的。
19
权利要求
1.一种在网络元件的线路卡上执行的用于速率限制控制分组的方法,包括 在所述线路卡接收多个控制分组;对于每个接收的控制分组,执行以下步骤 确定该控制分组的协议类型,基于该控制分组的所确定的协议类型,在该控制分组中提取一个或多个标识符关键字的集合,基于提取的标识符关键字的所述集合和该控制分组的所确定的协议类型,在该控制分组上执行基于标识符关键字的速率限制;丢弃所接收的控制分组中未通过所述基于标识符关键字的速率限制的那些分组;以及对于所接收的控制分组中通过所述基于标识符关键字的速率限制的那些分组的每个, 基于该分组的所确定的协议类型来执行协议级别速率限制。
2.如权利要求1所述的方法,其中对于确定为PPPoE(以太网上点到点协议)控制分组的那些控制分组,还确定所述PPPoE控制分组是PPPoE主动发现请求(PADR)还是PPPoE 主动发现启动(PADI)控制分组,其中所述基于标识符关键字的速率限制分别为PADR控制分组和PADI控制分组来执行。
3.如权利要求1所述的方法,其中所述控制分组的至少一些是DHCP(动态主机配置协议)分组,并且用于那些控制分组的每个分组的标识符关键字的集合包括源MAC(媒体接入控制)地址、源IP(因特网协议)地址、VLAN(虚拟局域网)标识符、ATM(异步传输模式) PVC(永久性虚拟电路)标识符、GIADDR(网关IP地址)及端口标识符中的一项或多项。
4.如权利要求1所述的方法,其中所述控制分组的至少一些是ARP(地址解析协议)控制分组,并且用于那些控制分组的每个分组的标识符关键字的集合包括源MAC(媒体接入控制)地址。
5.如权利要求1所述的方法,其中所述基于标识符关键字的速率限制包括对于每个控制分组的以下步骤检索与从该控制分组所提取的标识符关键字的集合相关联的标识符关键字速率限制计数器;检索与该控制分组的所确定的协议类型相关联的标识符关键字速率限制阈值; 比较所检索的速率限制计数器和所述速率限制阈值,其中如果未超出所述速率限制阈值则所述控制分组通过所述基于标识符关键字的速率限制,并且如果超出所述速率限制阈值则未通过所述基于标识符关键字的速率限制。
6.如权利要求5所述的方法,还包括其中基于所确定的协议类型的协议级别速率限制包括对于通过所述基于标识符关键字的速率限制的每个控制分组的以下步骤检索与所述控制分组的所确定的协议类型相关联的协议级别速率限制计数器, 检索与所述控制分组的所确定的协议类型相关联的协议级别速率限制阈值,以及比较所检索的协议级别速率限制计数器和所述协议级别速率限制阈值;以及丢弃其速率限制计数器超出对应的协议级别速率限制阈值的那些控制分组。
7.如权利要求1所述的方法,还包括其中所述线路卡包括与所述线路卡的多个端口的不同端口耦合的多个连网处理单元(NPU),其中所述多个控制分组的不同分组在所述多个NPU的不同NPU被接收,其中所述NPU 的每个执行基于标识符关键字的控制分组速率限制和基于协议的控制分组速率限制,其中对于通过所述控制分组级别速率限制的所接收的控制分组的每个,执行以下步骤将该控制分组与关联于该控制分组的协议分组计数值、标识符关键字分组计数值、协议标识符、标识符关键字的集合一起发送到所述线路卡上的中央线路处理器;聚合对于具有协议标识符和标识符关键字的相同集合的那些控制分组的标识符关键字分组计数值;聚合对于具有相同协议标识符的那些控制分组的协议分组计数值; 对于所述中央线路处理器上接收的每个分组控制分组,执行以下步骤 检索与所述控制分组对应的聚合标识符关键字分组计数值;基于与所述控制分组相关联的标识符关键字的集合和协议标识符,检索与所述控制分组相关联的标识符关键字速率限制阈值;通过比较与所述控制分组对应的聚合标识符关键字分组计数值和与所述控制分组相关联的标识符关键字速率限制阈值,执行基于聚合标识符关键字的速率限制,其中如果未超出所述标识符关键字速率限制阈值则所述控制分组通过所述基于聚合标识符关键字的速率限制,并且其中如果超出所述标识符关键字速率限制阈值则所述控制分组未通过所述基于聚合标识符关键字的速率限制;以及丢弃未通过所述基于聚合标识符关键字的速率限制的那些控制分组。
8.如权利要求7所述的方法,还包括对于通过所述基于聚合标识符关键字的速率限制的每个控制分组,执行以下步骤 检索与该控制分组对应的聚合协议分组计数值,基于与该控制分组相关联的协议标识符,检索对于该控制分组的协议速率限制阈值, 通过比较与该控制分组对应的聚合协议分组计数值和对于该控制分组的协议速率限制阈值,执行基于聚合协议的速率限制,其中如果所述聚合协议分组计数值未超出所述协议速率限制阈值则该控制分组通过所述基于聚合协议的速率限制,并且其中如果所述聚合协议分组计数值超出所述协议速率限制阈值则该控制分组未通过所述基于聚合协议的速率限制;丢弃未通过所述基于聚合协议的速率限制的那些控制分组;以及将通过所述基于聚合协议的速率限制的那些控制分组引导到所述控制卡。
9.一种用于速率限制控制分组的线路卡,包括分组解析引擎,解析控制分组以确定所述控制分组的协议类型,并基于所述控制分组的所确定的协议类型,在每个控制分组中提取一个或多个标识符关键字的集合;多个第一执行单元,各自根据在第一时间间隔上为处理而接受的每个独特协议类型的和标识符关键字的集合的控制分组的数量,按协议类型和标识符关键字的集合的独特关键字各自在所述控制分组上执行第一级别的控制分组速率限制,其中所述第一执行单元的每个单元要丢弃未通过所述第一级别的控制分组速率限制的那些控制分组;以及一个或多个第二执行单元的集合,根据在第二时间间隔上为处理而接受的每个独特协议类型的控制分组的数量,按协议类型在通过所述第一级别的控制分组速率限制的那些控制分组上执行第二级别的控制分组速率限制,其中第二执行单元的所述集合的每个单元要丢弃未通过所述第二级别的控制分组速率限制的那些控制分组。
10.如权利要求9所述的线路卡,还包括存储器,存储速率限制值和分组计数值,其中所述速率限制值包括标识符关键字速率限制值和协议级别速率限制值,其中所述分组计数值包括以下项对于按协议类型的标识符关键字的每个独特集合,指示在所述第一间隔上为处理而接受的具有协议类型和标识符关键字的该集合的关联的分组的数量的分组计数值,以及对于每个协议类型,指示为处理而接受的具有该协议类型的分组的数量的分组计数值。
11.如权利要求9所述的线路卡,其中所述第二执行单元的所述集合的每个单元还要将通过所述第二级别的控制分组速率限制的那些控制分组发送到与所述线路卡耦合的控制卡。
12.如权利要求9所述的线路卡,其中所述多个执行单元要对于是PADR(PPPoE主动发现请求)分组和PADI (PPPoE主动发现启动)分组的那些分组分别执行所述第一级别的控制分组速率限制,其中对于PADR分组和PADI分组的第一级别的控制分组速率限制中使用的标识符关键字的集合包括源MAC地址、VLAN(虚拟局域网)标识符及端口标识符中的一项或多项。
13.如权利要求9所述的线路卡,其中所述控制分组包括DHCP(动态主机配置协议)控制分组,以及其中用于所述DHCP控制分组的每个分组的标识符关键字的集合包括该DCHP 控制分组中包括的源MAC地址、该DHCP控制分组中的源IP (因特网协议)地址、该DHCP控制分组中的VLAN (虚拟局域网)标识符、该DHCP控制分组中的ATM (异步传输模式)PVC (永久性虚拟电路)标识符、该DHCP控制分组中的GIADDR(网关IP地址)以及其上接收所述 DHCP控制分组的端口标识符中的一项或多项。
14.一种执行分级控制分组速率限制的网络元件,包括 控制卡,包括,一个或多个协议模块的集合,处理从多个线路卡接收的控制分组;以及所述多个线路卡,与所述控制卡耦合,每个线路卡包括,分组解析引擎,接收和解析控制分组,并将分组数据写入该线路卡的缓冲器存储器中, 所述分组数据包括与所述控制分组的每个控制分组相关联的一个或多个标识符关键字的皇A 朱η j基于标识符关键字的速率限制器模块,按那些控制分组的标识符关键字的集合,在所述控制分组上执行基于标识符关键字速率的限制,其中所述基于标识符关键字的速率限制器模块要为每个控制分组执行以下操作,比较与该分组的标识符关键字的集合相关联的标识符关键字分组计数值和与标识符关键字的该集合相关联的标识符关键字速率限制值,其中所述标识符关键字分组计数值表示在第一时间间隔中为处理而接受的具有标识符关键字的所述集合的控制分组的数量,如果所述标识符关键字分组计数值对于该第一时间间隔超出所述标识符关键字速率限制值,则丢弃该控制分组;基于协议的速率限制器模块,在其相关联标识符关键字分组计数值未超出其相关联标识符关键字速率限制值的那些控制分组上执行基于协议的速率限制,其中所述基于协议的速率限制器模块要为那些控制分组的每个控制分组执行以下步骤比较与该控制分组的协议类型相关联的协议分组计数值和与该协议类型相关联的协议速率限制值,其中所述协议分组计数值表示在第二时间间隔中为处理而接受的具有该协议类型的控制分组的数量,如果所述协议分组计数值对于该第二时间间隔超出所述协议速率限制值,则丢弃该控制分组,以及如果所述协议分组计数值对于该给定时间期未超出所述协议速率限制值,则将该控制分组发送到所述控制卡。
15.如权利要求14所述的网络元件,其中所述控制卡还包括命令行接口模块以从所述网络元件的系统操作员接收所述标识符关键字速率限制值和所述协议速率限制值,以及还接收所述第一时间间隔的时间量和所述第二时间间隔的时间量。
16.如权利要求14所述的网络元件,其中所述基于标识符关键字的速率限制器模块要对于是PADR (PPPoE主动发现请求)分组和PADI (PPPoE主动发现启动)分组的那些分组分别执行所述基于标识符关键字速率的限制,其中对于PADR分组和PADI分组的基于标识符关键字的速率限制中使用的标识符关键字的集合包括源MAC地址、VLAN(虚拟局域网)标识符及端口标识符中的一项或多项。
17.如权利要求14所述的网络元件,其中所述控制分组包括DHCP(动态主机配置协议)控制分组,以及其中用于所述DHCP控制分组的每个控制分组的标识符关键字的集合包括该DCHP控制分组中包括的源MAC地址、该DHCP控制分组中的源IP (因特网协议)地址、 该DHCP控制分组中的VLAN(虚拟局域网)标识符、该DHCP控制分组中的ATM(异步传输模式)PVC(永久性虚拟电路)标识符、该DHCP控制分组中的GIADDR(网关IP地址)以及其上接收所述DHCP控制分组的端口标识符中的一项或多项。
18.一种用于速率限制控制分组的线路卡,包括多个网络处理单元(NPU),每个NPU具有单独的存储器域,其中每个NPU与所述线路卡的一个或多个端口耦合,并且每个NPU包括以下项分组解析引擎,解析控制分组以确定每个控制分组的协议类型,并基于该控制分组的所确定的协议类型,从每个控制分组提取一个或多个标识符关键字的集合,多个第一级别执行单元,按协议类型为提取的标识符关键字的每个独特集合执行基于标识符关键字的速率限制,其中所述第一级别执行单元的每个单元要丢弃未通过所述基于标识符关键字的速率限制的那些控制分组,一个或多个第二级别执行单元的集合,与所述多个第一级别执行单元耦合,第二级别执行单元的所述集合执行以下操作对于每个协议类型的通过所述基于标识符关键字的速率限制的那些控制分组的每个控制分组的基于协议的速率限制,丢弃未通过所述基于协议的速率限制的那些控制分组,以及将通过所述基于协议的速率限制的那些控制分组的每个控制分组发送到所述线路卡的中央线路处理器;所述中央线路处理器,与所述多个NPU耦合,所述中央线路处理器执行以下操作 聚合从所述多个NPU接收的具有标识符关键字的相同集合的那些控制分组,聚合从所述多个NPU接收的具有相同协议类型的那些控制分组, 按协议类型为标识符关键字的每个独特集合在从所述多个NPU接收的控制分组上执行基于聚合标识符关键字的速率限制,丢弃未通过所述基于聚合标识符关键字的速率限制的那些控制分组, 为每个独特协议类型对于通过所述基于聚合标识符关键字的速率限制的那些控制分组的每个控制分组执行基于聚合协议的速率限制,丢弃未通过所述基于聚合协议的速率限制的那些控制分组,以及将通过所述基于聚合协议的速率限制的那些分组发送到与所述线路卡耦合的控制卡。
19.如权利要求18的线路卡,其中所述控制分组包括PADR(PPPoE主动发现请求)分组和PADI (PPPoE主动发现启动)分组,以及其中所述PADR分组和PADI分组分别受到速率限制。
20.如权利要求18所述的线路卡,其中所述控制分组包括DHCP(动态主机配置协议) 控制分组,以及其中用于所述DHCP控制分组的每个分组的标识符关键字的集合包括该 DCHP控制分组中包括的源MAC地址、该DHCP控制分组中的源IP(因特网协议)地址、该 DHCP控制分组中的VLAN (虚拟局域网)标识符、该DHCP控制分组中的ATM (异步传输模式) PVC(永久性虚拟电路)标识符、该DHCP控制分组中的GIADDR(网关IP地址)以及其上接收所述DHCP控制分组的端口标识符。
全文摘要
线路卡接收控制分组,并执行在这些控制分组上的分级速率限制。从控制分组中提取标识符关键字集合,并且确定那些控制分组的协议。在第一级别,控制分组按协议按标识符关键字的独特集合受到速率限制。丢弃未通过第一速率限制级别的那些分组。通过第一速率限制级别的那些分组按协议类型在第二级别受到速率限制。未通过第二级别速率限制的那些分组被丢弃,而通过第二级别速率限制的那些分组被发送到控制卡以做进一步处理。
文档编号H04L29/06GK102415062SQ201080019467
公开日2012年4月11日 申请日期2010年4月29日 优先权日2009年4月29日
发明者A·古普塔, A·德西根, A·沙马, M·斯里尼瓦桑 申请人:瑞典爱立信有限公司