CN101421991B - 针对拒绝服务攻击的硬件过滤支持 - Google Patents

针对拒绝服务攻击的硬件过滤支持 Download PDF

Info

Publication number
CN101421991B
CN101421991B CN2005800090740A CN200580009074A CN101421991B CN 101421991 B CN101421991 B CN 101421991B CN 2005800090740 A CN2005800090740 A CN 2005800090740A CN 200580009074 A CN200580009074 A CN 200580009074A CN 101421991 B CN101421991 B CN 101421991B
Authority
CN
China
Prior art keywords
packet
receives
descriptor
network node
cpu
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
Application number
CN2005800090740A
Other languages
English (en)
Other versions
CN101421991A (zh
Inventor
约翰·肯尼思·斯泰西
特雷弗·加纳
马丁·W·休斯
威廉·R·李
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 CN101421991A publication Critical patent/CN101421991A/zh
Application granted granted Critical
Publication of CN101421991B publication Critical patent/CN101421991B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Abstract

本发明提供了用于在诸如拒绝服务(DoS)分组这样的恶意数据分组能被转发到中间网络节点中的中央处理单元(CPU)之前自动识别和去除中间网络节点中的恶意数据分组的系统和方法。CPU的处理带宽因而不被消耗来识别恶意分组和将其从系统存储器中去除。这样,对恶意分组的处理实质上被从CPU“卸载”,从而使得CPU能够以更高效的方式处理非恶意分组。与现有实现方式不同,本发明识别具有复杂封装的恶意分组,这些分组用诸如三元内容可寻址存储器(TCAM)或查找表之类的传统技术是无法识别的。

Description

针对拒绝服务攻击的硬件过滤支持
技术领域
本发明一般地涉及网络通信,更具体而言涉及用于过滤诸如路由器这样的中间网络节点中的拒绝服务流量的系统和方法。
背景技术
计算机网络是用于在诸如计算机这样的节点之间传输数据的互连子网的地理上分布的汇集。局域网(LAN)是这种子网的一个示例。网络的拓扑由通常通过一个或多个中间网络节点(例如路由器或交换机)彼此通信的客户端节点的布置所限定。这里所使用的客户端节点是被配置为发起或终止网络上的通信的末端站节点。相反,中间网络节点是帮助在客户端节点之间路由数据的节点。节点之间的通信通常是通过根据预定的协议交换分离的数据分组来实现的。在此上下文中,协议由限定节点如何与彼此交互的一组规则构成。
每个数据分组通常包括前插有(封装了)至少一个根据网络通信协议编排了格式的网络头部的“有效载荷”数据。网络头部包括使得客户端节点和中间节点能够通过计算网络高效地路由分组的信息。通常,按照开放系统互连(OSI)参考模型,分组的网络头部至少包括数据链路(第2层)头部、网络(第3层)头部和传输(第4层)头部。OSI参考模型一般在1999年9月出版的Radia Perlman的标题为Interconnections SecondEdition的参考书的第1.1节中更详细描述,这里通过参考将其全部结合进来,就好像在这里完整阐述了一样。
数据链路头部提供用于经由诸如点到点链路、以太网链路、无线链路、光链路等特定物理链路(即通信介质)传送分组的信息。为此,数据链路头部可以指定由物理链路连接的一对“源”和“目的地”网络接口。网络接口包含用于将网络节点耦合到一个或多个物理链路的机械、电气和信令电路和逻辑。网络接口通常与依硬件而异的地址相关联,所述地址被称为媒体访问控制(MAC)地址。因此,数据链路头部中的源和目的地网络接口通常被表示为源和目的地MAC地址。数据链路头部还可以存储用于管理物理链路上的数据传送的流控制、帧同步和差错校验信息。
网络头部提供限定分组通过计算机网络的逻辑路径(或“虚拟电路”)的信息。值得注意的是,路径可能跨越多个物理链路。网络头部可以根据因特网协议(IP)来编排格式,所述协议指定逻辑路径的端点处的源和目的地节点的IP地址。从而,分组可以沿其逻辑路径从一个节点“跳”到另一个节点,直到它到达被分配了存储在分组的网络头部中的目的地IP地址的客户端节点。在每一跳之后,如果必要,分组的数据链路头部中的源和目的地MAC地址可被更新。但是,当分组在网络中的链路间传送时,源和目的地IP地址通常保持不变。
传输头部提供用于确保分组被可靠地从源节点传送到目的地节点的信息。传输头部通常包括分别标识源和目的地节点中执行的特定软件应用的源和目的地端口号,等等。更具体而言,分组在源节点中是由被分配了源端口号的应用生成的。然后,分组被转发到目的地节点,并被定向到被分配了目的地端口号的应用。传输头部还可以包括差错校验信息(即校验和)以及其他数据流控制信息。例如,在诸如传输控制协议(TCP)这样的面向连接的传输协议中,传输头部可以存储指示分组在传送的数据分组流中的相对位置的定序信息。
这里所使用的数据流(data flow)是从源节点传输到目的地节点的数据分组的流。流中的每个分组满足一组预定的标准,例如基于分组的内容、大小或在数据流中的相对位置(即时间上的或空间上的)。中间网络节点可被配置为执行“基于流”的路由选择操作,以便以相同的方式路由数据流中的每个分组。中间节点通常接收流中的数据分组,并根据利用诸如开放最短路径优先(OSPF)协议这样的协议分发的预定的路由选择信息转发分组。由于流中的每个分组被寻址到相同的目的地节点,因此中间节点只需要例如基于流中接收到的第一分组对整个数据流执行一次转发判决。然后,中间节点基于流的先前预定的路由选择信息(即邻接信息)转发数据流中的分组。以这种方式,与为数据流中的每个分组执行单独的转发判决相比,中间节点消耗更少的资源,例如处理器带宽和处理时间。
实践中,中间网络节点可以实现散列表,该表存储用于将接收到的分组分类到其相应的数据流的与分组相关的信息。散列表通常被组织为链接列表的表,其中每个列表可以通过将传统散列函数应用到“签名”信息的结果来索引。在此上下文中,“签名”是对数据流中的每个分组保持恒定的一组值。例如,假定第一数据流中的每个分组存储相同的源和目的地IP地址值对。在这种情况下,第一数据流的签名可以基于这些源和目的地IP地址的值来生成。类似地,可以为与第一数据流中的分组相比其分组存储不同的源和目的地IP地址集合的第二数据流生成不同的签名。当然,本领域的技术人员将会意识到,数据流的签名信息并不局限于IP地址,而是也可以包括其他信息,例如TCP端口号、IP版本号等等。
散列表中的每个链接列表包含一个或多个条目,每个链接列表条目存储与特定数据流相对应的信息。这种信息例如可以包括数据流的相关联的签名信息和数据流标识符(“流ID”)等。流ID标识特定数据流,并且还可用于定位与数据流相关联的路由选择信息。为此,中间网络节点可以维护将流ID值映射到其相应的路由选择信息(例如存储在节点的本地或内部存储器中)的存储器位置的数据结构。或者,流ID值可以直接结合其数据流的路由选择信息的存储器位置。
当中间网络节点接收到分组时,从分组的网络头部提取签名信息,并且利用诸如循环冗余校验(CRC)函数这样的传统散列函数对其进行散列操作。所得到的散列值被用于索引散列表条目,而该条目又进而引用一个链接列表。链接列表中的条目被顺序访问,直到存储提取出的签名的“匹配”条目被找到。当匹配链接列表条目被定位到时,条目的存储的流ID值被用于将接收到的分组与数据流相关联,并且分组根据该流被路由。
中间网络节点通常接收来自包括客户端节点和其他中间节点在内的各种源的大量数据流。每个源可以负责建立与中间节点的一个或多个数据流。为了优化对其处理带宽的使用,中间节点可以在区分优先级的基础上处理接收到的流。即,当分组在中间节点处被接收到时,它们被识别为属于例如高或低优先级数据流。高优先级流中的分组可以先于低优先级分组被中间节点处理,即使低优先级分组是在高优先级分组之前接收到的也是如此。
拒绝服务(DoS)攻击已经成为用于禁止访问中间网络节点中的资源和/或服务的相当常见的技术。DoS攻击对应于“恶意”分组的数据流,所述“恶意”分组在被中间网络节点处理时,剥夺非恶意分组(即非DoS分组)对节点中的某些资源和/或服务的访问权限。DoS分组可能是从单个源发送的,或者可能是多个源之间协调出来的。后一种情况通常被称为分布式DoS(DDoS)攻击。例如,计算机黑客可以通过向目标中间节点发送数据分组的多个被危害的末端站发起DDoS攻击,从而耗尽中间节点的处理带宽。
DoS攻击通常包括向中间网络节点发送大量特定类型的网络流量,例如根据因特网控制消息协议(ICMP)或因特网群组管理协议(IGMP)编排格式的分组。在许多情况下,DoS分组前插有网络头部的复杂布置。从而,目标中间网络节点不仅由于接收到的大量DoS分组而超载,而且也由于处理它们所需要的资源消耗而超载。由于中间节点的资源在处理这些恶意分组时被过分消耗,因此发送到中间节点的其他非恶意分组通常被丢弃或抛弃。因此,不同类型的中间网络节点尝试以各种方式来防止DoS攻击。
高档“核心”路由器和交换机通常具有足够的处理带宽来处理恶意DoS分组和非恶意分组。在此上下文中,高档路由器和交换机被设计为处理例如网络“骨干”上的大量网络流量。因此,可以以接收到恶意分组的速率(即“线路”速率)来处理恶意分组。这些高档中间节点从而主要依赖于不会在识别和去除恶意DoS分组时变得使用过度(over-subscribed)的硬件转发解决方案。结果,执行软件的中央处理单元(CPU)中的处理带宽的一大部分可被消耗来识别和去除DoS分组。此解决方案的另一个缺点是由于包括用于从接收到的数据流过滤DoS分组的代码,因而路由选择或交换软件变得更加复杂。
与其高档对应物不同,“中档”路由器和交换机通常由于DoS攻击而变得使用过度。这些中间节点通常是管理相对大量的数据流的企业或LAN路由器/交换机。为了识别和去除DoS流量(即数据分组),中档路由器和交换机通常利用在中央式CPU上或支持通用CPU的网络处理器上执行的软件。与高档路由器和交换机中的软件一样,中档路由器和交换机中的软件为了阻止DoS攻击而消耗过量的处理带宽和复杂性。
当“问题”DoS流量能被过滤并能被置于由软件维护的低优先级队列上时,对进入流量的优先级区分的硬件支持有时在中档路由器和交换机中被实现。但是,由于在DoS攻击期间恶意分组的数目通常变得过高,因此低优先级队列通常被填满,因此其尾部被丢弃,其中既丢弃了恶意DoS流量,也丢弃了非恶意的低优先级流量。此外,硬件过滤通常被实现为对包括在接收到的数据分组中的数据链路(第2层)或网络(第3层)信息的简单表查找。表查找可以用内容可寻址存储器(CAM)(例如三元CAM(TCAM))来执行。如果DoS攻击流量经由复杂的封装到达,则这种基于表的过滤无法支持这些封装,于是DoS流量被转发到CPU上执行的软件。结果,硬件支持并没有防止CPU由于处理DoS流量而负担加重。
低档“访问”路由器和交换机通常是处理相对少量的网络流量的单个CPU系统,因此比起上述中档和高档中间网络节点来更易受DoS攻击的影响。在低档路由器和交换机中只有一个CPU,因此CPU带宽通常不消耗在对传入数据进行预处理或优先级区分上。这种预处理将会要求CPU上执行的软件处理每个接收到的分组两次(优先级区分和路由),从而其消耗的处理资源量是不可接受的。因此,低档路由器和交换机通常只利用无法识别复杂的DoS分组封装的简单查找表或TCAM过滤接收到的数据分组(如果它们要进行过滤的话)。
一般来说,存在对能够在不消耗节点中的过量处理资源或带宽的情况下识别和去除DoS流量的中间网络节点的需求。此外,该中间节点应当识别和去除具有任意复杂度的封装的DoS流量。此外,应当在不影响非恶意分组(例如低优先级非恶意分组)的处理的情况下,从中间节点去除恶意DoS分组。
发明内容
本发明通过提供用于在诸如拒绝服务(DoS)分组这样的恶意数据分组能被转发到中间网络节点中的中央处理单元(CPU)之前自动识别和去除中间网络节点中的恶意数据分组的系统和方法,从而克服了现有技术的缺陷。CPU的处理带宽因而不被消耗来识别恶意分组和将其从系统存储器中去除。这样,对恶意分组的处理实质上被从CPU“卸载”,从而使得CPU能够以更高效的方式处理非恶意分组。与现有实现方式不同,本发明识别具有复杂封装的恶意分组,这些分组用诸如TCAM或查找表之类的传统技术是无法识别的。
有利地,本发明可用于被配置为执行高档、中档或低档访问路由器的中间网络节点中。此外,本发明可与传统的访问控制列表(ACL)和/或入侵检测系统(IDS)结合使用,以删除其封装太过复杂以至于ACL或IDS无法过滤的DoS流量。更一般而言,本发明可被自动或手工地配置为过滤具有任意复杂的封装的恶意分组。优选地,用基于散列的流识别来识别恶意数据分组,但是也可采用其他流分类技术。作为说明,本发明被实现在中间网络节点中的硬件辅助设备中。但是,也可明确设想,本发明可由硬件和/或软件的其他组合实现。
附图说明
通过结合附图参考以下描述将更好地理解本发明的以上和其他优点,附图中类似的标识指示相同或功能类似的元件,其中:
图1是包括互连的子网和节点的汇集的计算机网络的示意性框图,所述节点中包括中间网络节点;
图2是根据本发明可以使用的说明性中间网络节点的示意性框图;
图3是可以实现在图2的说明性中间网络节点中的系统控制器的示意性框图;
图4是可以入队到本发明的进入和/或外出描述符环中的示例性缓冲器描述符的示意性框图;
图5是根据本发明可用于自动识别和去除恶意数据分组的说明性硬件辅助(HWA)模块的示意性框图;
图6是可由HWA模块搜索以识别与接收到的数据分组相关联的数据流的示例性散列表的示意性框图;以及
图7A-B是示出根据本发明可被执行以便自动识别和去除恶意数据分组的步骤序列的流程图。
具体实施方式
图1是包括互连的子网和节点的汇集的计算机网络100的框图。节点可以包括计算机,其中包括末端节点130和140和中间网络节点200,所述末端节点例如是发送末端节点120和接收末端节点150,所述中间网络节点可以是交换机或路由器。网络100内包括的子网105、110优选地是由中间节点200互连的局域网(LAN),但是网络也可以包括其他通信链路,例如广域网。耦合到LAN的节点之间的通信通常是通过在节点之间交换分离的分组160来实现的。
例如,在数据经过协议栈的不同层时,发送节点120通过将“有效载荷”数据封装在诸如传统数据链路和网络头部之类的头部内来生成数据分组160。分组随后经由网络被传送到中间节点200,中间节点200通过将数据分组路由到正确的接收节点150来帮助数据分组流过网络。具体而言,节点200在其网络接口之一处接收分组,并基于分组的网络头部所指定的目的地末端节点为分组作出转发判决。分组的数据链路头部根据转发判决被修改,并且分组经由耦合到中间网络节点的适当子网被传送。
图2是可以有利地与本发明一起使用的中间节点200的示意性框图。该节点包括多个网络接口210、系统控制器300、中央处理单元(CPU)230和存储器250。数据被网络接口210接收,网络接口210中的每一个耦合到至少一个网络或子网,例如LAN 105和110。网络接口包含使得中间网络节点200能够经由连接到网络或子网的物理链路进行通信的机械、电气和信令电路,所述网络和子网包括异步传送模式(ATM)网络、同步光网络(SONET)、无线网络、帧中继网络、以太网、光纤分布数据接口(FDDI)网络等等。
系统控制器300通过中间网络节点中的不同本地总线耦合到每个网络接口210、CPU 230(即处理器)和存储器250。例如,系统控制器可以通过相应的外围组件互连(PCI)总线耦合到网络接口210,而控制器可以通过多个高速连接(例如超传输总线链路)耦合到存储器250。控制器300因此充当用于将数据从一个本地总线传送到另一个的“桥梁”。即,控制器经由例如耦合到网络接口210的第一本地总线接收数据,并将数据转换成可以经由例如耦合到存储器250的第二本地总线传送的格式。系统控制器还可以包括其他功能,例如专用电路或逻辑。例如,控制器300可以实现在诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)之类的硬件中,但是控制器的功能也可以实现在硬件和/或软件的各种组合中。
存储器250包括可由CPU 230和网络接口210经由系统控制器300寻址的多个存储位置。存储器包括一般通过动力循环或其他重启动操作来清除的一种形式的随机访问存储器(RAM)(例如它是“非易失性”存储器)。例如,存储器250可以包括适合于存储CPU 230可以访问的程序代码和数据结构的动态随机访问存储器(DRAM)和/或同步DRAM(SDRAM)存储位置。对于本领域的技术人员来说显而易见的是,存储器250也可以包括用于存储与中间网络节点200的操作相关的程序指令和数据结构的其他存储装置,包括各种计算机可读介质。
路由器操作系统260的某些部分通常驻留在存储器250中并由CPU230执行,它通过调用支持在中间节点上执行的软件进程的网络操作等等来从功能上组织中间网络节点200。Cisco Systems,Inc.的IOSTM操作系统是路由器操作系统260的一个示例。操作系统可以对网络接口210接收到的数据分组160执行路由选择操作。存储器250的一部分可被组织为数据缓冲器242的缓冲器“池”240,所述数据缓冲器242被配置为存储接收到的数据分组。例如,每个缓冲器可被配置为存储最多达某个固定量(例如2千字节)的接收到的数据分组160。
在操作上,接收到的分组160被从网络接口210传送到缓冲器242中的一个或多个。执行路由器操作系统260的CPU 230基于存储在存储器250中的路由选择信息270为接收到的分组作出转发判决。一个或多个数据结构,例如散列表600,可被存储在存储器中,以辅助操作系统的转发判决。例如,散列表600可被用于识别与接收到的分组相关联的数据流,路由选择信息270可以存储与识别出的流相关联的邻接信息。在这种情况下,分组的网络头部根据与分组的识别出的数据流相关联的邻接信息被修改。
图3是可实现在说明性中间网络节点200中的系统控制器300的示意性框图。系统控制器包括由设备总线360互连的多个第一本地总线(PCI)接口310、存储器控制器320、CPU总线接口330、总线控制器340、片上存储器350和硬件辅助(HWA)模块500。在说明性实施例中,每个PCI接口310包括被配置为经由耦合到网络接口210的PCI总线发送和接收数据的电路和逻辑。但是,PCI接口310也可以由经由其他类型的总线(例如工业标准体系结构(ISA)总线、扩展ISA(EISA)总线等)进行通信的相应控制器所替换。在网络接口210处接收到的数据经由PCI总线被转发到PCI接口310,该PCI接口310对接收到的数据进行成帧操作,以便它可经由设备总线360被传送。相反,PCI接口可以接收来自总线360的数据并重新编排数据格式以便经由PCI总线传送。
存储器控制器320包括被配置为经由第二本地总线将数据从存储器250传送到设备总线360以及从设备总线360传送到存储器250的电路和逻辑。例如,CPU 230可以将存储器地址(或地址范围)转发到CPU总线接口330。存储器地址可以伴随着用于在存储器地址处读或写数据的CPU指令。CPU总线接口330经由设备总线360将存储器地址及其相应的CPU指令发送到存储器控制器320。作为响应,存储器控制器根据CPU指令在指定的存储器地址处写数据或取得数据。
总线控制器340包括实现用于协调对设备总线360的访问的仲裁策略等的电路和逻辑。即,控制器340防止两个或更多个实体,例如PCI接口310、存储器控制器320等基本同时地尝试访问总线360。为此,总线控制器340可被配置为基于预定的仲裁协议准予或拒绝对总线360的访问。
根据说明性实施例,执行路由器操作系统260的CPU 230通常执行的一个或多个功能可被“卸载”给HWA模块500。例如,HWA模块可被配置为在分组能被CPU处理之前过滤在中间网络节点200处接收到的拒绝服务(DoS)分组。这样,CPU 230的处理带宽不像以前的实现方式中那样被消耗来识别和去除“恶意”DoS流量。此外,如下文更详细论述的,HWA模块被配置为识别具有任意复杂封装的DoS分组,这些分组用诸如TCAM或查找表之类的传统技术是无法识别的。
片上存储器350包括驻留在系统控制器300上的一组可寻址存储器位置。片上存储器可以是一种形式的易失性存储器,例如静态RAM(SRAM),或者是一种形式的可擦除非易失性存储器,例如闪存。虽然说明性片上存储器350位于系统控制器300中,但是也可以明确设想:片上存储器可以驻留在耦合到系统控制器的单独的存储器模块中,或者片上存储器的内容(或其一部分)可被结合到“主”存储器250中。
片上存储器350存储一个或多个“进入”描述符环350(即循环先进先出(FIFO)队列)、一个或多个“外出”描述符环354和“删除”描述符环356等等。每个网络接口210与片上存储器350中的至少一个进入环352相关联。当分组数据在网络接口210处被接收到时,分组数据通过系统控制器300经由适当的PCI总线被转发到存储器250中的可用数据缓冲器242。对数据缓冲器的存储器引用(reference)(即“描述符”)随后被加入到与接收到分组数据的网络接口210相关联的进入描述符环352中。分组数据被存储,并且描述符以这种方式被加入队列,直到网络接口210确定整个分组160都已被接收到或者发生差错。因此,网络接口的进入环352存储与在接口210处接收到分组数据的顺序相对应的描述符的有序列表。
在分组160被接收到之后,网络接口210通知HWA模块500哪个进入描述符环352包含接收到的分组的描述符。HWA模块使描述符撤出队列,并处理接收到的分组数据以确定分组的相关联的数据流。根据说明性实施例,HWA模块执行基于散列的流分类,这使得它能够对具有任意复杂封装的分组进行分类。在识别了分组的相关联的数据流之后,HWA模块将分组的描述符加入到基于识别出的数据流选择的适当的外出描述符环354中。当分组的描述符被加入到其外出描述符环354之一上时,CPU 230例如通过硬件中断被通知。作为响应,CPU使描述符撤出其外出描述符环,并为接收到的数据分组160作出转发判决。
作为说明,外出描述符环354中的每一个对应于可与识别出的数据流相关联的不同的目的地和/或优先级。例如,在外出环354中,可能有相分离的高优先级和低优先级外出描述符环,分别对应于CPU 230所处理的高优先级和低优先级数据流。此外,在多CPU实现方式中,一个或多个高优先级和/或低优先级外出描述符环354的一组可以与多个CPU中的每个CPU 230相关联。
如果HWA模块500例如基于分组的识别出的数据流确定接收到的数据分组160是DoS分组或其他类型的恶意分组,则HWA模块将分组的描述符加入到与网络接口210相关联的删除外出环356或“空闲”缓冲器描述符的先进先出队列(未示出)上,所述“空闲”缓冲器描述符是其引用的缓冲器242可用于存储新的分组数据的描述符。有利的,被置于删除环356或空闲缓冲器FIFO上的描述符在能被转发到CPU 230之前被“循环利用”(即再使用)。这样,存储恶意DoS分组数据的数据缓冲器242能够被HWA模块500回收,而无需消耗CPU的带宽或处理资源。
图4示出可被加入到进入和外出描述符环352-356中的至少一个中的示例性描述符400。描述符400包括与描述符相关联的一组标志410、缓冲器指针420以及其他信息430等。标志410例如可以包括所有权标志412、分组开始(SOP)标志414、分组结束(EOP)标志416和差错(ERR)标志418。所有权标志412存储指示哪个设备被授予对描述符400的所有权(即控制)的值。例如,所有权标志可以等于第一值以指示网络接口210被给予对描述符400的排他访问权限;当对描述符的控制被转移到HWA模块500时标志412可以等于第二值。
SOP标志414可被设置为等于指示描述符的引用的数据缓冲器242是否包含接收到的数据分组160的开始的值。类似地,EOP标志416可被设置为等于指示描述符的引用的数据缓冲器是否包含分组160的结束的值。ERR标志418可被设置为等于指示出是否例如由于循环冗余校验(CRC)之类的而在接收到的分组数据中检测到差错的值。当然,除了明确示出的这些以外,其他标志值也可被包括在该组标志410中。例如,描述符400可以包括其值指示出描述符的引用的分组数据是否是新数据流的一部分的标志(未示出)。
缓冲器指针420存储指示描述符的相应数据缓冲器242在例如存储器250中的存储器位置的值。其他状态和配置信息430也可被包括在描述符400中,以便为特定的中间节点实现方式定制描述符。例如,描述符的其他信息430可以包括存储在描述符的引用的数据缓冲器242中的分组数据量。
图5是适合于在分组能被转发到CPU 230之前过滤DoS分组的说明性HWA模块500的示意性框图。HWA模块500包括直接存储器访问(DMA)控制器510和流分类器520等,该流分类器520能够集中过滤在中间网络节点200处接收到的拒绝服务(DoS)流量。更具体而言,DMA控制器510可以访问例如存储在存储器250中的一个或多个数据缓冲器242中的接收到的分组数据。流分类器520使用接收到的分组数据和描述符来识别与分组相关联的数据流。与先前的实现方式不同,如果流分类器所识别出的数据流对应于DoS数据流,则DMA控制器可在DoS分组被转发到CPU 230之前“丢弃”(即抛弃)DoS分组。通过以这种方式过滤DoS流量,CPU带宽和其他处理资源不被消耗来处理DoS分组。
DMA控制器510包括一个或多个空闲缓冲器FIFO 512、进入描述符FIFO 514、分组头部缓冲器516、外出描述符FIFO 518等。对于耦合到系统控制器300的每个网络接口210,DMA控制器510维护一个单独的空闲缓冲器FIFO 512。每个空闲缓冲器FIFO存储已被分配给其相关联的网络接口的空闲缓冲器指针420的列表。CPU 230可经由设备总线360将预定数目的空闲缓冲器指针420转发到DMA控制器,以便存储在每个接口的相关联的空闲缓冲器FIFO 512中。分配给每个网络接口210的那组空闲缓冲器指针对应于为该接口分配的相应的一组数据缓冲器242。空闲缓冲器指针420及其相关联的标志值410可被存储在进入描述符400中,而进入描述符400进而又可被存储在进入描述符环352中。这样,所有权标志值412被设置为等于指示描述符(从而其相应的空闲缓冲器指针)由网络接口“所有”的值。
值得注意的是,如果加入网络接口的空闲缓冲器FIFO 512中的空闲缓冲器指针420的数目变得小于预定的“低水位”级别,则DMA控制器可向CPU 230发送为该接口请求额外的空闲缓冲器指针的中断。低水位阈值优选是可编程的,从而可以针对中间网络节点200的系统性能来调节。CPU 230通过将所请求的空闲缓冲器指针加入到适当的空闲缓冲器FIFO512中来对该中断作出响应。
进入描述符FIFO 514适合于存储从进入描述符环352中的一个或多个取得的缓冲器描述符。最初,描述符被加入到接口的(一个或多个)进入描述符环352,直到进入描述符环中的每个条目都包含空闲缓冲器描述符。然后,当分组数据在网络接口处被接收到时,接口将接收到的数据转发到由排在其进入描述符环352的“头部”的描述符所引用的数据缓冲器242。当数据缓冲器242变满时,或分组的结束被接收到时,网络接口210修改缓冲器的相应描述符中的所有权标志值412,以便将该描述符的所行权转移到DMA控制器510。当然,接口也可以修改描述符中的其他信息,例如标志值410。此过程被重复,直到接收到分组的结束(例如由接收到的数据分组160中的EOP标志值所指示),或者检测到差错。
在接收到数据分组160之后,网络接口210向DMA控制器510发送指令哪个进入描述符环352存储分组的描述符的中断。例如,进入环352中的每一个可被分配一个唯一的标识(ID)值,该值可被结合中断中。响应于接收到中断,控制器510与设备总线360交互,以取得分组的描述符,并将描述符存储在进入描述符FIFO 514中。在操作上,DMA控制器将描述符从进入环352撤出,从其SOP标志414值对应于数据分组160的开始的描述符开始,直到分组的最后的描述符已被撤出,如其EOP标志416或ERR标志418的值所指示的。出队的描述符随后被重新加入到进入描述符FIFO 514中的适当条目中。对于从进入描述符环352出队的每个描述符,DMA控制器510用包含从网络接口的空闲缓冲器FIFO 512获得的空闲缓冲器指针的空闲缓冲器描述符来替换出队的描述符。
此外,DMA控制器510还可以取得某些(或全部)接收到的分组的头部信息,即存储在由分组的描述符所引用的数据缓冲器242中的。例如,包含在分组的数据链路、网络和/或传输层头部中的信息可被控制器取得,并被存储在分组头部缓冲器516中。在说明性实施例中,一个或多个选定的分组头部全部被DMA控制器取得,并被存储在分组头部缓冲器516中。
在取得分组的描述符和头部信息之后,DMA控制器510从进入描述符FIFO 514提取分组的描述符,从分组头部缓冲器516提取分组头部信息,并从接收到的中断提取进入描述符环ID值,并且将此信息转发到流分类器520中的分组标识符引擎522。分组标识符引擎包含被配置为基于从DMA控制器转发的信息确定网络接口所接收到的分组160的类型的逻辑和电路。例如,基于此信息,引擎552可确定分组是否是根据预定的网络协议(例如IGMP或ICMP协议)编排格式的。在识别出分组类型之后,分组标识符引擎还识别出分组头部、描述符和/或进入环ID值中的一组预定的字段,从该组字段可提取一组“签名”信息。
该组预定的字段被从分组标识符引擎522转发到流分类器520中的签名提取引擎524。签名提取引擎适合于从分组标识符引擎所标识的预定位置提取签名信息。例如,引擎524所提取的签名信息可包括源或目的地TCP端口号、源或目的地IP地址、协议标识符等等。
提取出的签名信息随后被输入到流分类器中的散列条目地址生成器530。散列条目地址生成器包括散列函数单元532,该单元向接收到的签名信息应用预定的散列函数,从而生成所得到的n位散列值。例如,散列函数可以是传统的生成32位散列值(即n=32)的CRC-32散列函数。在另一个实施例中,散列函数单元532可被配置为向签名信息应用其他散列函数,例如消息摘要5函数。
散列函数单元532所生成的散列值可被转发到地址生成器530中的位掩蔽单元534。位掩蔽单元选择n个接收到的散列位中的m位。例如,假定散列函数单元532生成32位散列值(n=32)。在这种情况下,位掩蔽单元534可被配置为通过对此32位值和等于0x0000FF00(十六进制)的“掩蔽”值执行与操作来选择32位散列值的八个(m=8)预定位。位掩蔽单元所选择的m位可充当唯一标识具有2m个条目的散列表中的特定条目的散列表索引。索引可被转换成例如位于存储器250中的其索引的散列表条目的存储器地址。例如,假定每个散列表条目为四字节宽,则散列表索引乘以4可被添加到散列表的基本存储器地址536,以得出被索引的散列表条目的存储器地址。
所生成的存储器地址被从散列条目地址生成器530转发到链接列表遍历器(walker)526。链接列表遍历器526包含用于搜索从转发的散列表条目存储器地址开始的链接列表直到定位到包含分组的提取出的签名信息的链接列表条目或到达列表末尾为止的电路和逻辑。如果找到包含签名信息的“匹配”列表条目,则链接列表遍历器从匹配条目提取出与分组相关的信息,例如数据流ID值和目的地外出环ID值。流ID值对应于分组的相关联的数据流,目的地外出环ID值对应于分组的描述符应当被加入其中以便进一步处理的外出描述符环354。但是,根据说明性实施例,如果分组的流ID值对应于DoS数据流,则分组的目的地外出环ID值对应于删除环356。
在未找到匹配链接列表条目的情况下,链接列表遍历器526可将接收到的分组160识别为属于新的数据流。在这种情况下,链接列表遍历器(或HWA模块500的另一个组件)可修改分组的描述符中的一个或多个的内容,以指示接收到的数据分组160属于新的数据流。此外,分组的描述符被与对应于例如片上存储器350中的预定的“遗漏描述符”外出环354的目的地外出环ID值相关联。此遗漏描述符外出环存储其引用的分组数据已被与新数据流相关联的描述符。
链接列表遍历器536将分组描述符、流ID值和目的地外出环ID值转发到外出分组管理器528。外出分组管理器负责将描述符从进入描述符格式重新编排格式为外出描述符格式(如果必要的话)。即,如果进入和外出描述符环352-356中的至少一些被配置为存储具有不同格式的描述符,则外出分组管理器对分组的描述符进行重新编排格式。例如,进入和外出描述符格式可包括不同的标志值410或其他信息430。外出分组管理器528随后将分组描述符、流ID值和目的地外出环ID值传送到DMA控制器510中的外出描述符FIFO 518。
当DMA控制器510识别出分组的描述符已被加入到外出描述符FIFO518中时,DMA控制器经由设备总线360将描述符及其相关联的流ID值转发到与描述符的相关联的目的地外出环ID值相对应的外出描述符环356。DMA控制器随后向CPU 230发送指示描述符被加入到哪个外出描述符环上的中断。然后,CPU将分组描述符从适当的目的地外出环354撤出,并根据其识别出的数据流为分组160作出转发判决。当CPU将描述符从遗漏描述符外出环354撤出时,描述符的引用的分组数据被CPU当作新数据流处理,并且针对该数据流,新的链接列表条目650可被添加在散列表600中的适当位置处。
如果DMA控制器识别出与分组描述符相关联的目的地外出环ID值对应于删除外出环356,则DMA控制器通过去除这些描述符内的缓冲器指针420并将去除的缓冲器指针添加到空闲缓冲器FIFO 512来“循环利用”描述符。在这种情况下,分组160已被识别为属于恶意数据流,例如DoS数据流,并且其相关联的缓冲器指针被返回到网络接口的空闲缓冲器指针池,而不是将分组的描述符转发到CPU 230。这样,CPU带宽和处理资源不被消耗来处理接收到的DoS分组160。
如果目的地外出环ID值对应于删除外出环356,并且在空闲缓冲器FIFO 512中没有足够的可用条目来存储分组的缓冲器指针420,例如CPU230最近用空闲缓冲器指针填满了FIFO 512,则分组的描述符也可被直接存储在删除外出环356中。这样,删除外出环356充当空闲缓冲器FIFO512的“溢出”队列,从而防止在DMA控制器等待FIFO 512中的新条目变得可用的同时外出数据路径上可能出现的停滞。在删除外出环356上入队的描述符中存储的缓冲器指针随后可被传送到适当的空闲缓冲器FIFO512。例如,当空闲缓冲器FIFO 512中条目变得可用时,CPU 230可将描述符从删除外出环356撤出。在这种情况下,出队的描述符的中的缓冲器指针420随后可被CPU通过将缓冲器指针加入空闲缓冲器FIFO上来“循环利用”。或者,当FIFO中条目变得可用时,DMA控制器510可将描述符从删除外出环传送到空闲缓冲器FIFO。
图6是被配置为存储可由链接列表遍历器526搜索的多个链接列表的散列表600的示意性框图。散列表包含2m个散列表条目610,每个条目与唯一散列表索引620相关联,并且被配置为引用相应的链接列表例如在存储器250中的存储器位置的列表指针值630。或者,散列表条目可以不存储列表指针值630,而是被配置为直接存储其引用的链接列表的第一条目。如果散列表条目的引用的列表不包含任何列表条目600,即引用的链接列表为“空”,则散列表条目的列表指针值630可等于预定的“空”值。
另一方面,每个“非空”链接列表包括一个或多个条目650,这些条目包含签名信息652以及流ID值654和DE出环ID值656等。每个目的地外出环ID值对应于片上存储器350中的外出描述符环354-356中的相应的一个。更具体而言,预定的目的地外出环ID值656(例如“3”)对应于删除外出环356,剩余的目的地外出环ID值(例如“1”和“2”)对应于相应的外出描述符环354。在操作中,链接列表遍历器526利用包含在其存储器地址由散列条目地址生成器530生成的散列表条目610中的列表指针630在散列表600中定位链接列表。然后,链接列表遍历器顺序遍历(“走过”)列表的链接列表条目650,直到它识别出包含分组的签名信息652的匹配条目,或直到到达列表末尾。
图7是示出在中间网络节点200中可以执行以便在DoS分组能被转发到CPU 230之前识别DoS分组的步骤序列的流程图。序列开始于步骤700,并且进行到步骤704,在该步骤中,分组数据在网络接口210处被接收到。在步骤708,分组数据被转发到系统控制器300,系统控制器300进而又在步骤712中将分组数据转发到存储器250中的一个或多个缓冲器242。在步骤716,网络接口将与存储接收到的分组数据的数据缓冲器242相对应的分组描述符加入到与该接口相关联的进入描述符环352中。
在步骤720,网络接口210确定是否接收到分组160的结束。如果尚未接收到分组结束,则序列返回步骤704。否则,在步骤724,网络接口210向HWA模块500中的DMA控制器510发送中断。中断包括指示哪个进入描述符环352存储接收到的分组的描述符的进入描述符环ID值等。响应于接收到中断,DMA控制器从进入描述符环取得分组的描述符。值得注意的是,在将描述符从进入描述符环撤出后,DMA控制器510用从与接收到分组的网络接口相关联的空闲缓冲器FIFO 512获取的空闲缓冲器描述符替换出队的描述符。DMA控制器还取得接收到的分组的头部中的一个或多个,例如其数据链路、网络或传输层头部。在步骤728,DMA控制器510将分组的描述符、头部数据和进入描述符环ID值转发到HWA模块500中的流分类器520。
在步骤732,流分类器中的分组标识符引擎522识别在网络接口210处接收到的数据分组160的类型。在步骤736,基于识别出的分组类型,从分组的描述符和头部中的预定的一组字段中提取签名信息。例如,签名信息可包括TCP端口号、IP地址、协议版本等等。在步骤740,提取出的签名信息被转发到散列条目地址生成器530,在该生成器中,散列函数单元532例如利用CRC 32散列函数之类的来计算签名信息的散列。签名信息的散列被用于创建散列表600中的索引。在步骤744,索引可被添加到散列表基本地址536,以生成散列表条目610例如在存储器250中的存储器地址。
在步骤748,所生成的散列条目地址被转发到链接列表遍历器526,该遍历器遍历存储在被索引的散列表条目610中的列表指针630所引用的链接列表。搜索列表,直到找到包含分组的提取出的签名信息652的匹配列表条目650,或者到达列表末尾。在步骤752,链接列表遍历器确定接收到的数据分组160是否对应于新的数据流,即到达列表末尾而未找到匹配链接列表条目650。如果接收到的分组被确定为属于新的数据流,则在步骤756,分组的描述符被返回到DMA控制器510,DMA控制器510将描述符转发到CPU 230以便处理。在步骤757,CPU根据路由器操作系统260对接收到的分组160执行传统的路由选择操作。在这种情况下,执行路由器操作系统的CPU 230可将与新数据流相对应的新的链接列表条目650添加到散列表600。添加的链接列表条目可指定已被操作系统260分配给流的新的流ID值654。
另一方面,如果在步骤748定位到具有匹配签名的链接列表条目,则链接列表遍历器526识别存储在匹配列表条目650中的预定位置处的流ID值654和目的地外出环ID值656。链接列表遍历器随后将分组的描述符转发到流分类器520中的对描述符进行重新编排格式(如果必要)的外出分组管理器528。接下来,在步骤764,外出分组管理器将分组的描述符、流ID值和目的地外出环ID值转发到DMA控制器510中的外出描述符FIFO 518。
在步骤768,在描述符、流ID值和目的地外出环ID值已被加入外出描述符FIFO 518中之后,DMA控制器确定目的地外出环ID值是否对应于删除队列356。如果不,则在步骤772,控制器510将分组的流ID值654和描述符加入到与目的地外出环ID值656相对应的目的地外出环354上。然后,在步骤776,DMA控制器向CPU 230发送中断以通知CPU:分组的描述符和流ID值已被加入到外出描述符环354上。序列在步骤796处结束。
如果在步骤768处分组的相关联的目的地外出环ID值656对应于删除队列356,则在步骤780处,DMA控制器510确定在网络接口的空闲缓冲器FIFO 512中是否有足够的可用条目用来存储分组的描述符中的缓冲器指针420。如果有,则在步骤784,缓冲器指针被从描述符去除,并被加入到空闲缓冲器FIFO 512上;序列在步骤796处结束。相反,如果在步骤780处在空闲缓冲器FIFO 512中没有足够的可用条目,则在步骤788处,DMA控制器510将描述符加入删除队列356上。在步骤792,描述符保持在删除队列上,直到它们包含的缓冲器指针420可被传送到空闲缓冲器FIFO,例如,当FIFO中条目变得可用时。执行路由器操作系统260的CPU 230可以负责将描述符从删除队列356撤出,并将它们的缓冲器指针传送到空闲缓冲器FIFO 512。但是,本领域的技术人员将会意识到,其他硬件和/或软件机构也可用于此目的。序列在步骤796处结束。
以上是对本发明的说明性实施例的详细描述。在不脱离本发明的精神和范围的情况下,可以进行各种修改和添加。例如,用于过滤诸如DoS分组这样的恶意分组的新颖技术除中间网络节点之外还可实现在其他网络节点中。此外,本发明可以结合传统访问控制列表(ACL)和入侵检测系统(IDS)使用,以提供抵御例如DoS和DDoS攻击的更强的安全性。更具体而言,这里所描述的基于散列的流分类的灵活性使得能够检测到用传统ACL或IDS方法无法检测到的复杂分组封装。从而,任意复杂的多组签名信息652可被存储在其相关联的数据流已被识别为恶意数据流的链接列表条目650。对恶意数据流的识别可以手工确定,例如由系统管理员手工确定,以及/或者自动确定,例如由执行路由器操作系统260的CPU 230自动确定。
虽然说明性实施例描述了位于片上存储器350中的进入和外出描述符环352-356,但是本领域的技术人员将会意识到,这些描述符环也可以存储在中间网络节点200中的(或耦合到中间网络节点200的)其他存储器中。此外,虽然每个网络接口210被描述为具有相应的进入描述符环352,但是也可明确设想,一个网络接口可以与多于一个进入描述符环相关联,例如具有不同的优先级。类似地,虽然中间网络节点200中的每个目的地(例如CPU 230)被描述为具有相应的外出描述符环354,但是也可明确设想,节点200中的单个目的地可以与多个外出描述符环相关联,例如具有不同的优先级。
还注意到,与接收到的分组160相关联的签名信息652不局限于例如存储在分组的头部的字段中的那些值,而是可从分组的内容的其他部分或其他相关分组信息中提取出来,所述其他相关分组信息例如是哪个接口210接收到了分组。如上所述,分组的提取出的签名被与存储在链接列表条目650中的签名信息652相比较,直到定位到匹配列表条目。但是,还可以设想,链接列表条目或者可以存储对签名信息652进行散列的结果。在这种情况下,如果其包含的签名信息652等于对分组的提取出的签名信息进行散列的结果,则匹配列表条目被识别。
虽然是就单个散列表600来描述本发明的技术的,但是该技术也同样适用于其中每一个按说明性实施例中所阐述的方式配置的多个不同的散列表。例如,一个单独的散列表600可以与中间网络节点200中的每个网络接口210相关联。这样,在特定网络接口处接收到的分组可根据存储在该网络接口的相关联的散列表中的流ID值654被路由。此外,散列表600可由诸如搜索树之类的被配置为存储分组的签名信息652、流ID值654和目的地外出环ID值656的不同的可搜索数据结构所替换。在这种实施例中,链接列表遍历器526被适合于搜索该可搜索数据结构的搜索模块所替换。
可以明确设想,本发明的教导可实现为软件、硬件、固件或其组合,所述软件中包括具有在计算机上执行的程序指令的计算机可读介质。本发明的技术因此可实现在硬件和/或软件的各种组合中。因此,本说明书只应当以示例方式来理解,而不应当以其他方式限制本发明的范围。

Claims (19)

1.一种用于网络节点的过滤在所述网络节点处接收到的恶意数据分组的方法,所述网络节点包括被配置为执行路由器操作系统的中央处理单元CPU,所述方法包括:
在所述网络节点处接收数据分组;
对接收到的数据分组执行基于散列的流分类,以确定所述接收到的数据分组是否是恶意数据分组;以及
如果所述接收到的数据分组被确定为恶意数据分组,则在所述数据分组能被转发到所述CPU以由所述路由器操作系统处理之前抛弃所述接收到的数据分组。
2.如权利要求1所述的方法,其中所述执行基于散列的流分类的步骤还包括:
识别与所述接收到的数据分组相关联的分组类型;
提取与所述识别出的分组类型相对应的一组签名信息;以及
搜索散列表以定位所述提取出的这组签名信息。
3.如权利要求2所述的方法,还包括:
手工或自动地配置所述散列表以将所述这组签名信息与数据流相关联;以及
确定与所述这组签名信息相关联的所述数据流是否对应于恶意数据流。
4.如权利要求1所述的方法,还包括:
作为所述基于散列的流分类的结果,将所述接收到的数据分组与所述网络节点中的目的地相关联。
5.如权利要求4所述的方法,还包括:
确定与所述接收到的数据分组相关联的所述目的地是否是与恶意数据分组相关联的预定目的地。
6.如权利要求5所述的方法,还包括:
响应于确定与所述接收到的数据分组相关联的所述目的地是所述预定目的地,执行以下步骤:
将缓冲器指针从与所述接收到的数据分组相关联的一组描述符中去除;以及
将去除的缓冲器指针存储在空闲缓冲器指针的队列上。
7.如权利要求6所述的方法,还包括:
如果所述空闲缓冲器指针队列不包含足够的可用条目来存储所述去除的缓冲器指针,则将与所述接收到的数据分组相关联的所述这组描述符存储在删除队列上,直到在所述空闲缓冲器指针队列中有足够的条目变得可用为止。
8.如权利要求6所述的方法,还包括:
将空闲缓冲器指针从所述路由器操作系统传送到所述空闲缓冲器指针队列。
9.如权利要求1所述的方法,其中所述执行基于散列的流分类的步骤被与访问控制列表或入侵检测系统结合使用。
10.如权利要求1所述的方法,其中所述网络节点是中间网络节点。
11.一种网络节点,包括:
被配置为执行实现路由器操作系统的指令的中央处理单元CPU;
适合于接收数据分组的网络接口;
具有可由所述CPU寻址的多个存储位置的存储器,所述存储位置被配置为存储:
(i)所述路由器操作系统指令的至少一部分,
(ii)用于存储接收到的数据分组的一个或多个数据缓冲器,以及
(iii)被配置为存储与所述接收到的数据分组相关联的信息的可搜索数据结构;以及
耦合到所述存储器和所述CPU的系统控制器,所述系统控制器包括硬件辅助HWA模块,所述HWA模块被配置为对接收到的数据分组执行基于散列的流分类,以确定所述接收到的数据分组是否是恶意数据分组,并且在所述接收到的数据分组被确定为是恶意数据分组的情况下,在所述接收到的数据分组能被转发到所述CPU以由所述路由器操作系统处理之前从所述网络节点中抛弃所述接收到的数据分组。
12.如权利要求11所述的网络节点,其中所述可搜索数据结构是散列表。
13.如权利要求11所述的网络节点,其中所述HWA模块包括直接存储器访问DMA控制器和流分类器。
14.如权利要求13所述的网络节点,其中所述DMA控制器包括:
进入描述符先进先出FIFO队列,其被配置为存储引用其中存储了所述接收到的数据分组的一个或多个数据缓冲器的一组描述符;
分组头部缓冲器,其被配置为存储前插在所述接收到的数据分组前的至少一个分组头部中包含的信息;
外出描述符FIFO,其被配置为存储所述这组描述符以及用于标识与所述接收到的数据分组相关联的数据流的数据流标识ID值和用于标识所述网络节点中与所述接收到的数据分组相关联的目的地的目的地值,所述流分类器搜索所述可搜索数据结构以定位所述数据流ID值和所述目的地值;以及
空闲缓冲器FIFO,其包含为所述网络接口分配的一组空闲缓冲器描述符。
15.如权利要求13所述的网络节点,其中所述流分类器包括:
分组标识符引擎,其被配置为基于从所述DMA控制器接收到的信息来识别与所述接收到的数据分组相关联的分组类型;
签名提取引擎,其被配置为从接收自所述DMA控制器的信息中的预定的一组字段中提取出一组签名信息,所述预定的这组字段是基于由所述分组标识符引擎所识别出的分组类型而选择的;
地址生成器,其被配置为基于所述这组签名信息生成存储器地址,所述存储器地址对应于所述可搜索数据结构中的条目;以及
搜索模块,其被配置为搜索所述可搜索数据结构以定位与所述接收到的数据分组相关联的流ID值和目的地值。
16.如权利要求15所述的网络节点,其中所述流分类器还包括:
外出分组管理器,其被配置为将描述符从进入描述符格式重新编排成外出描述符格式。
17.如权利要求11所述的网络节点,其中所述网络节点是中间网络节点。
18.一种包括被配置为执行路由器操作系统的中央处理单元CPU的网络节点,该网络节点包括:
用于在所述网络节点处接收数据分组的装置;
用于对接收到的数据分组执行基于散列的流分类以确定所述接收到的数据分组是否是恶意数据分组的装置;以及
用于在所述接收到的数据分组被确定为恶意数据分组的情况下在所述数据分组能被转发到所述CPU以由所述路由器操作系统处理之前抛弃所述接收到的数据分组的装置。
19.一种用于过滤在网络节点处接收到的恶意数据分组的装置,在所述网络节点中,中央处理单元CPU被配置为执行路由器操作系统,所述装置包括:
用于在所述网络节点处接收数据分组的装置;
用于对接收到的数据分组执行基于散列的流分类,以确定所述接收到的数据分组是否是恶意数据分组的装置;以及
用于如果所述接收到的数据分组被确定为恶意数据分组,则在所述数据分组能被转发到所述CPU以由所述路由器操作系统处理之前抛弃所述接收到的数据分组的装置。
CN2005800090740A 2004-03-26 2005-03-03 针对拒绝服务攻击的硬件过滤支持 Expired - Fee Related CN101421991B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/811,195 2004-03-26
US10/811,195 US7411957B2 (en) 2004-03-26 2004-03-26 Hardware filtering support for denial-of-service attacks
PCT/US2005/007059 WO2006124009A2 (en) 2004-03-26 2005-03-03 Hardware filtering support for denial-of-service attacks

Publications (2)

Publication Number Publication Date
CN101421991A CN101421991A (zh) 2009-04-29
CN101421991B true CN101421991B (zh) 2011-04-06

Family

ID=34989731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800090740A Expired - Fee Related CN101421991B (zh) 2004-03-26 2005-03-03 针对拒绝服务攻击的硬件过滤支持

Country Status (6)

Country Link
US (1) US7411957B2 (zh)
EP (1) EP1754349B1 (zh)
CN (1) CN101421991B (zh)
AU (1) AU2005326185A1 (zh)
CA (1) CA2559251C (zh)
WO (1) WO2006124009A2 (zh)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095508B2 (en) 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US7200105B1 (en) * 2001-01-12 2007-04-03 Bbn Technologies Corp. Systems and methods for point of ingress traceback of a network attack
JP2006526227A (ja) 2003-05-23 2006-11-16 ワシントン ユニヴァーシティー Fpgaデバイスを使用するインテリジェントデータ記憶および処理
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
US7200692B2 (en) * 2004-03-10 2007-04-03 Cisco Technology, Inc. PVDM (packet voice data module) generic bus
US7117308B1 (en) * 2004-04-06 2006-10-03 Cisco Technology, Inc. Hypertransport data path protocol
US7111092B1 (en) * 2004-04-16 2006-09-19 Cisco Technology, Inc. Buffer management technique for a hypertransport data path protocol
US7669240B2 (en) * 2004-07-22 2010-02-23 International Business Machines Corporation Apparatus, method and program to detect and control deleterious code (virus) in computer network
US7626940B2 (en) * 2004-12-22 2009-12-01 Intruguard Devices, Inc. System and method for integrated header, state, rate and content anomaly prevention for domain name service
US7602731B2 (en) * 2004-12-22 2009-10-13 Intruguard Devices, Inc. System and method for integrated header, state, rate and content anomaly prevention with policy enforcement
US7600057B2 (en) * 2005-02-23 2009-10-06 Broadcom Corporation Method and system for configurable drain mechanism in two-way handshake system
EP1859378A2 (en) 2005-03-03 2007-11-28 Washington University Method and apparatus for performing biosequence similarity searching
JP5008270B2 (ja) * 2005-04-13 2012-08-22 ソニー株式会社 情報処理装置、および情報処理方法
US7693050B2 (en) 2005-04-14 2010-04-06 Microsoft Corporation Stateless, affinity-preserving load balancing
US20070011732A1 (en) * 2005-07-05 2007-01-11 Yang-Hung Peng Network device for secure packet dispatching via port isolation
US7580351B2 (en) * 2005-07-12 2009-08-25 Cisco Technology, Inc Dynamically controlling the rate and internal priority of packets destined for the control plane of a routing device
US7522521B2 (en) * 2005-07-12 2009-04-21 Cisco Technology, Inc. Route processor adjusting of line card admission control parameters for packets destined for the route processor
GB0518578D0 (en) * 2005-09-13 2005-10-19 Qinetiq Ltd Communications systems firewall
US7702629B2 (en) 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7954114B2 (en) 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
US7668107B2 (en) * 2006-03-22 2010-02-23 Marvell Israel (M.I.S.L.) Ltd. Hardware implementation of network testing and performance monitoring in a network device
US8379841B2 (en) 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7636703B2 (en) * 2006-05-02 2009-12-22 Exegy Incorporated Method and apparatus for approximate pattern matching
US8453147B2 (en) * 2006-06-05 2013-05-28 Cisco Technology, Inc. Techniques for reducing thread overhead for systems with multiple multi-threaded processors
US8194662B2 (en) * 2006-06-08 2012-06-05 Ilnickl Slawomir K Inspection of data
US8041929B2 (en) 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US7921046B2 (en) * 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US7817549B1 (en) * 2006-06-30 2010-10-19 Extreme Networks, Inc. Flexible flow-aging mechanism
US7773507B1 (en) 2006-06-30 2010-08-10 Extreme Networks, Inc. Automatic tiered services based on network conditions
US20080030903A1 (en) * 2006-08-03 2008-02-07 Sae Magnetics (H.K.) Ltd. Suspension having stress absorbing structure, head gimbal assembly and disk drive unit with the same
US8010966B2 (en) * 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
JP4734223B2 (ja) * 2006-11-29 2011-07-27 アラクサラネットワークス株式会社 トラヒック分析装置および分析方法
KR100864888B1 (ko) * 2007-02-12 2008-10-22 삼성전자주식회사 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
US8320249B2 (en) * 2007-03-07 2012-11-27 Broadcom Corporation Method and system for controlling network access on a per-flow basis
US20080240140A1 (en) * 2007-03-29 2008-10-02 Microsoft Corporation Network interface with receive classification
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US20080279190A1 (en) * 2007-05-10 2008-11-13 Raveendra Muniyappa Maintaining End-to-End Packet Ordering
US8037213B2 (en) * 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US8018951B2 (en) * 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8478834B2 (en) 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8312541B2 (en) * 2007-07-17 2012-11-13 Cisco Technology, Inc. Detecting neighbor discovery denial of service attacks against a router
US8959172B2 (en) 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
EP2186250B1 (en) 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
US7916728B1 (en) 2007-09-28 2011-03-29 F5 Networks, Inc. Lockless atomic table update
US20090119292A1 (en) * 2007-11-06 2009-05-07 Barracuda Inc. Peer to peer traffic control method and system
CN101184095B (zh) * 2007-12-06 2011-09-21 中兴通讯股份有限公司 基于cpu的策略控制列表的网络防攻击方法及系统
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US20110066896A1 (en) * 2008-05-16 2011-03-17 Akihiro Ebina Attack packet detecting apparatus, attack packet detecting method, video receiving apparatus, content recording apparatus, and ip communication apparatus
US7948979B2 (en) * 2008-05-28 2011-05-24 Intel Corporation Programmable network interface card
GB2462493B (en) * 2008-08-13 2012-05-16 Gnodal Ltd Data processing
US7855967B1 (en) * 2008-09-26 2010-12-21 Tellabs San Jose, Inc. Method and apparatus for providing line rate netflow statistics gathering
US7966620B2 (en) * 2008-11-07 2011-06-21 Microsoft Corporation Secure network optimizations when receiving data directly in a virtual machine's memory address space
JP5871619B2 (ja) 2008-12-15 2016-03-01 アイ・ピー・リザブワー・エル・エル・シー 金融市場深度データの高速処理のための方法および装置
US8880632B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Method and apparatus for performing multiple DMA channel based network quality of service
US8112491B1 (en) 2009-01-16 2012-02-07 F5 Networks, Inc. Methods and systems for providing direct DMA
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US8103809B1 (en) 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
WO2010110235A1 (ja) * 2009-03-26 2010-09-30 日本電気株式会社 経路設定サーバ、経路設定方法、及び経路設定プログラム
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US20110145572A1 (en) * 2009-12-15 2011-06-16 Christensen Kenneth J Apparatus and method for protecting packet-switched networks from unauthorized traffic
US8544026B2 (en) * 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US9148376B2 (en) 2010-12-08 2015-09-29 AT&T Intellectual Property I, L.L.P. Method and system for dynamic traffic prioritization
JP6045505B2 (ja) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. 金融市場における注文を管理する方法および装置
CN102055627B (zh) * 2011-01-04 2012-06-13 深信服网络科技(深圳)有限公司 识别p2p应用连接的方法和装置
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US20120327956A1 (en) * 2011-06-24 2012-12-27 Altior Inc. Flow compression across multiple packet flows
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US9130883B2 (en) * 2011-09-23 2015-09-08 Futurewei Technologies, Inc. Method and apparatus to increase forwarding silicon functionality through packet manipulation
US8976647B2 (en) * 2011-11-08 2015-03-10 Futurewei Technologies, Inc. Hardware-based dynamic load balancing that avoids flow packet reordering statistically
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
US9015852B2 (en) 2012-04-30 2015-04-21 Cisco Technology, Inc. Protecting address resolution protocol neighbor discovery cache against denial of service attacks
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9519501B1 (en) * 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
EP2912579B1 (en) 2012-10-23 2020-08-19 IP Reservoir, LLC Method and apparatus for accelerated format translation of data in a delimited data format
US10133802B2 (en) 2012-10-23 2018-11-20 Ip Reservoir, Llc Method and apparatus for accelerated record layout detection
US9270602B1 (en) 2012-12-31 2016-02-23 F5 Networks, Inc. Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US20140369363A1 (en) * 2013-06-18 2014-12-18 Xpliant, Inc. Apparatus and Method for Uniquely Enumerating Paths in a Parse Tree
US9864606B2 (en) 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
EP3085051A1 (en) 2013-12-16 2016-10-26 F5 Networks, Inc Methods for facilitating improved user authentication using persistent data and devices thereof
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
GB2541577A (en) 2014-04-23 2017-02-22 Ip Reservoir Llc Method and apparatus for accelerated data translation
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US9531849B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of splitting a packet into individual layers for modification and intelligently stitching layers back together after modification and an apparatus thereof
US9888033B1 (en) * 2014-06-19 2018-02-06 Sonus Networks, Inc. Methods and apparatus for detecting and/or dealing with denial of service attacks
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
US9473601B2 (en) 2014-06-19 2016-10-18 Cavium, Inc. Method of representing a generic format header using continuous bytes and an apparatus thereof
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
US9742694B2 (en) 2014-06-19 2017-08-22 Cavium, Inc. Method of dynamically renumbering ports 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
US9438703B2 (en) 2014-06-19 2016-09-06 Cavium, Inc. Method of forming a hash input from packet contents and an apparatus thereof
US9516145B2 (en) 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
US9531848B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof
US9497294B2 (en) 2014-06-19 2016-11-15 Cavium, Inc. Method of using a unique packet identifier to identify structure of a packet 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
US9729439B2 (en) 2014-09-26 2017-08-08 128 Technology, Inc. Network packet flow controller
WO2016055668A1 (es) * 2014-10-10 2016-04-14 Keelwit Laiseca Internet Security Solutions, S.L. Dispositivo y método de protección en redes de comunicaciones
US9864583B2 (en) * 2014-11-14 2018-01-09 Cavium, Inc. Algorithm to derive logic expression to select execution blocks for programmable network devices
US9606781B2 (en) * 2014-11-14 2017-03-28 Cavium, Inc. Parser engine programming tool for programmable network devices
CN104394150B (zh) * 2014-11-26 2018-09-25 大连梯耐德网络技术有限公司 一种基于硬件重构的拟态安全网络架构的实现系统及方法
CN105786733B (zh) * 2014-12-26 2020-08-07 南京中兴新软件有限责任公司 一种写入tcam条目的方法及装置
US9736184B2 (en) 2015-03-17 2017-08-15 128 Technology, Inc. Apparatus and method for using certificate data to route data
US9866401B2 (en) * 2015-05-13 2018-01-09 Cisco Technology, Inc. Dynamic protection of shared memory and packet descriptors used by output queues in a network device
US10305819B2 (en) 2015-05-13 2019-05-28 Cisco Technology, Inc. Dynamic protection of shared memory used by output queues in a network device
CN106302318A (zh) 2015-05-15 2017-01-04 阿里巴巴集团控股有限公司 一种网站攻击防御方法及装置
US9729682B2 (en) 2015-05-18 2017-08-08 128 Technology, Inc. Network device and method for processing a session using a packet signature
US9800524B1 (en) * 2015-09-24 2017-10-24 Qlogic Corporation Switching methods and systems for a network interface card
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
US9973528B2 (en) 2015-12-21 2018-05-15 Fortinet, Inc. Two-stage hash based logic for application layer distributed denial of service (DDoS) attack attribution
CN105591989B (zh) * 2016-01-25 2019-12-20 盛科网络(苏州)有限公司 一种协议报文上送cpu的芯片实现方法
TWI618387B (zh) * 2016-02-24 2018-03-11 Method for improving packet processing of virtual switch
US9916269B1 (en) * 2016-04-14 2018-03-13 Amazon Technologies, Inc. Packet queueing for network device
US10009282B2 (en) * 2016-06-06 2018-06-26 128 Technology, Inc. Self-protecting computer network router with queue resource manager
CN106131050B (zh) * 2016-08-17 2022-12-09 裴志永 数据包快速处理系统
EP3560135A4 (en) 2016-12-22 2020-08-05 IP Reservoir, LLC PIPELINES INTENDED FOR AUTOMATIC ACCELERATED LEARNING BY EQUIPMENT
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US10212089B1 (en) * 2017-09-21 2019-02-19 Citrix Systems, Inc. Encapsulating traffic entropy into virtual WAN overlay for better load balancing
US10516695B1 (en) * 2017-09-26 2019-12-24 Amazon Technologies, Inc. Distributed denial of service attack mitigation in service provider systems
US11005884B2 (en) * 2017-09-29 2021-05-11 Intel Corporation Denial of service mitigation with two-tier hash
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
EP3618389B1 (en) 2018-08-27 2020-10-07 Ovh Systems and methods for operating a networking device
EP3618355B1 (en) * 2018-08-27 2020-10-21 Ovh Systems and methods for operating a networking device
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof
US11681625B2 (en) * 2018-12-20 2023-06-20 Intel Corporation Receive buffer management
CN112181755A (zh) * 2019-07-02 2021-01-05 腾讯科技(深圳)有限公司 一种确定搜索服务中参数阈值的方法及相关设备
FR3115648A1 (fr) * 2020-10-22 2022-04-29 Orange Procédés et dispositifs de protection de flux de paquets
CN112882833B (zh) * 2021-02-09 2022-06-17 广州思林杰科技股份有限公司 一种数据采集方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509123A (en) * 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
US5754659A (en) * 1995-12-22 1998-05-19 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430183B1 (en) * 1997-09-18 2002-08-06 International Business Machines Corporation Data transmission system based upon orthogonal data stream mapping
US6657742B1 (en) * 1997-11-24 2003-12-02 Xerox Corporation System for printing facsimile jobs with a property profile
US6738814B1 (en) * 1998-03-18 2004-05-18 Cisco Technology, Inc. Method for blocking denial of service and address spoofing attacks on a private network
US6522188B1 (en) * 1998-04-10 2003-02-18 Top Layer Networks, Inc. High-speed data bus for network switching
US6714553B1 (en) * 1998-04-15 2004-03-30 Top Layer Networks, Inc. System and process for flexible queuing of data packets in network switching
US6839759B2 (en) * 1998-10-30 2005-01-04 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network without user entering any cryptographic information
US6499107B1 (en) * 1998-12-29 2002-12-24 Cisco Technology, Inc. Method and system for adaptive network security using intelligent packet analysis
US6301668B1 (en) * 1998-12-29 2001-10-09 Cisco Technology, Inc. Method and system for adaptive network security using network vulnerability assessment
US6487666B1 (en) * 1999-01-15 2002-11-26 Cisco Technology, Inc. Intrusion detection signature analysis using regular expressions and logical operators
US6578147B1 (en) * 1999-01-15 2003-06-10 Cisco Technology, Inc. Parallel intrusion detection sensors with load balancing for high speed networks
US6789116B1 (en) * 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
US6950434B1 (en) * 1999-12-07 2005-09-27 Advanced Micro Devices, Inc. Arrangement for searching packet policies using multi-key hash searches in a network switch
US20020108059A1 (en) 2000-03-03 2002-08-08 Canion Rodney S. Network security accelerator
US7328349B2 (en) * 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
US20040064737A1 (en) * 2000-06-19 2004-04-01 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of polymorphic network worms and viruses
US6754662B1 (en) * 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
US20020165947A1 (en) * 2000-09-25 2002-11-07 Crossbeam Systems, Inc. Network application apparatus
US7180895B2 (en) * 2001-12-31 2007-02-20 3Com Corporation System and method for classifying network packets with packet content
US7472205B2 (en) 2002-04-24 2008-12-30 Nec Corporation Communication control apparatus which has descriptor cache controller that builds list of descriptors
US20040054925A1 (en) 2002-09-13 2004-03-18 Cyber Operations, Llc System and method for detecting and countering a network attack
US8397284B2 (en) 2006-01-17 2013-03-12 University Of Maryland Detection of distributed denial of service attacks in autonomous system domains
US20070204344A1 (en) * 2006-02-26 2007-08-30 Chun Xue Parallel Variable Length Pattern Matching Using Hash Table
US20070245417A1 (en) * 2006-04-17 2007-10-18 Hojae Lee Malicious Attack Detection System and An Associated Method of Use
US7890612B2 (en) * 2006-05-08 2011-02-15 Electro Guard Corp. Method and apparatus for regulating data flow between a communications device and a network
KR100875673B1 (ko) * 2007-05-14 2008-12-24 주식회사 하이닉스반도체 온 다이 터미네이션 장치 및 이의 캘리브래이션 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509123A (en) * 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
US5754659A (en) * 1995-12-22 1998-05-19 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys

Also Published As

Publication number Publication date
EP1754349A4 (en) 2011-01-12
EP1754349A2 (en) 2007-02-21
AU2005326185A1 (en) 2006-10-05
WO2006124009A2 (en) 2006-11-23
CN101421991A (zh) 2009-04-29
AU2005326185A8 (en) 2008-07-31
US20050213570A1 (en) 2005-09-29
US7411957B2 (en) 2008-08-12
WO2006124009A3 (en) 2009-04-16
EP1754349B1 (en) 2020-02-12
CA2559251A1 (en) 2005-09-26
CA2559251C (en) 2011-06-28

Similar Documents

Publication Publication Date Title
CN101421991B (zh) 针对拒绝服务攻击的硬件过滤支持
US20050171937A1 (en) Memory efficient hashing algorithm
US9871781B2 (en) Systems and methods for path maximum transmission unit discovery
US9203743B2 (en) Packet forwarding system, control device, forwarding device and method and program for preparing processing rules
US7346059B1 (en) Header range check hash circuit
US8228908B2 (en) Apparatus for hardware-software classification of data packet flows
CN102549988B (zh) 路由器和由路由器执行的方法
JP3734704B2 (ja) パケット分類エンジン
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
WO2018178906A1 (en) Flexible processor of a port extender device
JP5245169B2 (ja) 集積チップ、半導体チップ、及び方法
JP6574054B2 (ja) パケット転送
JP2007525883A (ja) ネットワークノードにおける処理利用管理
JP6437693B2 (ja) マルチキャストデータパケット転送
CN110401599A (zh) 数据包的处理方法及装置、存储介质、电子装置
JP6195014B2 (ja) 通信システム、通信方法、中継装置、および、通信プログラム
CN107749826B (zh) 一种数据包转发方法及系统
EP2953302B1 (en) Service packet processing method, apparatus and system
JP6437694B2 (ja) パケット転送
CN116319553A (zh) 一种表项查找方法以及网络设备
JP3591492B2 (ja) パケット振分装置およびパケット振分プログラム
US20170230246A1 (en) Method and apparatus for processing service node ability, service classifier and service controller
CN102413038B (zh) 一种路由下一跳不可达的处理方法及系统
CN113556345B (zh) 一种报文处理方法、装置、设备及介质
WO2021166080A1 (ja) 管理装置、管理方法及び管理プログラム

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110406

Termination date: 20210303

CF01 Termination of patent right due to non-payment of annual fee