CN1561625A - 用查找键作为分组标签以便于使用统一分组转发缓存 - Google Patents

用查找键作为分组标签以便于使用统一分组转发缓存 Download PDF

Info

Publication number
CN1561625A
CN1561625A CNA028190726A CN02819072A CN1561625A CN 1561625 A CN1561625 A CN 1561625A CN A028190726 A CNA028190726 A CN A028190726A CN 02819072 A CN02819072 A CN 02819072A CN 1561625 A CN1561625 A CN 1561625A
Authority
CN
China
Prior art keywords
packet
grouping
cache
lookup key
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA028190726A
Other languages
English (en)
Other versions
CN1561625B (zh
Inventor
凯尔·埃格旺
尼尔斯·贝耶尔
雅各布·克里斯坦森
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1561625A publication Critical patent/CN1561625A/zh
Application granted granted Critical
Publication of CN1561625B publication Critical patent/CN1561625B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data

Abstract

本发明提供了网络地址翻译(NAT)敏感的统一缓存的装置和方法。根据一个实施例,分布在一个或多个处理器当中的多个分组处理应用共享一个或多个统一缓存,而不需要缓存同步协议。当在网络设备处接收到分组时,诸如NAT或其它应用之类的、对缓存查找键所基于的分组报头部分进行修改的第一分组处理应用基于分组报头的原始内容,用缓存查找键作为分组的标签。然后,在由第一分组处理应用加标签之后,其它试图从统一缓存访问缓存条目的分组处理应用就使用所述标签(第一分组处理应用所生成的缓存查找键),而不是基于当前分组报头内容来确定缓存查找键。

Description

用查找键作为分组标签以便于使用统一分组转发缓存
技术领域
本发明一般地涉及网络设备领域。更具体而言,本发明涉及用缓存(cache)的查找键(lookup key)作为分组标签,用统一的基于分组互联网协议(IP)流的缓存对网络分组进行转发的方法和装置。
背景技术
许多不同的处理都是由网络设备来执行的,所述网络设备例如是桥接器、路由器、交换机、防火墙、网关或其它互联网接入产品,在其中每种设备上接收或发送分组。例如,由路由器执行的典型任务列表可能包括:(1)应用网络地址翻译(NAT),(2)应用分组过滤,以及(3)对分组进行路由。
在网络设备的完整路由表中查找可能是非常缓慢的。因此,许多网络设备实现某种缓存功能以加速分组处理。典型地,将最近的转发决定存储在为快速查找而最优化了的单独的表(转发缓存)中。如果一个分组流已被分类,并且可以用缓存信息来处理随后的分组,则一般将该转发路径称为“快路径”。如果不存在缓存条目,则基于完整的路由表来转发分组。这种转发路径称为“慢路径”。同种缓存机制也可以应用于NAT和过滤。较早的产品一般为每类功能使用独立的缓存。使用单独缓存的示例性转发流例示如下:
·从分组中读取报头信息。
·在NAT缓存中进行查找。如果缓存命中,则执行NAT操作(例如翻译IP报头中的地址)。否则,将分组发送给NAT模块用于慢路径处理。
·在过滤缓存中进行查找。如果缓存命中,则执行过滤操作(例如传递或丢弃分组)。否则,将分组发送给过滤模块用于慢路径处理。
·在转发/路由缓存中进行查找。如果缓存命中,则执行路由操作(例如在缓存条目中所指定的接口上转发分组)。否则,将分组发送给转发模块用于慢路径处理。
接下来参照图1,对在路由的上下文中的快速/慢路径概念作进一步描述。在此简化示例中,示出了路由器中的转发流100,该路由器具有:(1)快路径,包括由快路径转发模块110来处理接收到的网络分组105,以及在转发缓存115中进行缓存查找;(2)慢路径,除所述快路径处理之外,还包括由慢路径转发模块120来处理分组,以及在路由表125中进行完整路由表查找。
在许多情形下,快路径处理位于与慢路径处理不同的处理单元上(例如,在同一网络处理器上的不同微引擎中,或者在不同的网络处理器上)。在单处理器系统中,一般将快路径代码和慢路径代码作为不同的操作系统处理来执行。结果,当将分组传递到慢路径时需要处理调度。虽然仍保有快路径和慢路径的概念,但较新的网络产品通常使用一个称为“基于流的转发”的概念。基于流的转发的基本思想是对分组进行一次分类然后在统一缓存(unified cache)中执行一次查找,其中每个缓存条目包含处理分组所必需的所有信息(例如关于将分组转发到何处的信息)。但是,因为分组处理功能通常位于分开的模块中(在某些情形下是由不同的处理器和/或微引擎来运行的),所以确保统一缓存保持一致可能变得非常复杂。此外,如以下将要讨论的那样,当一个或多个分组处理功能修改了缓存查找键所基于的分组报头的部分时,还有其它涉及统一缓存使用的复杂情况。
附图说明
在附图中,示例性而非限制性地示出了本发明,其中相似的标号指的是相似的元件,其中:
图1示出了在路由的上下文中的快/慢路径概念。
图2示出了实现支持NAT的统一缓存的一个问题。
图3A-3C示出了一个同步问题的例子,当在统一缓存环境中试图执行分布式分组处理时,就可能遇到这种问题。
图4是根据本发明一个实施例的网络设备的简化高级框图。
图5是示例性网络处理器的框图。
图6是一个流程图,示出了根据本发明一个实施例的统一缓存更新处理。
图7是一个框图,其概念性地示出了根据本发明一个实施例,当新流被检测到并通过NAT接收慢路径接收到时的基本分组流。
图8是一个框图,其概念性地示出了根据本发明一个实施例,当新流被检测到并通过过滤接收慢路径接收到时的基本分组流。
图9是一个框图,其概念性地示出了根据本发明一个实施例,当新流被检测到并通过转发接收慢路径接收到时的基本分组流。
具体实施方式
以下描述了NAT敏感(NAT-aware)统一缓存的装置和方法。广泛地说,本发明的实施例试图提供一种机制,用于在包括诸如NAT之类的应用的环境中有效地实现统一缓存,所述应用修改分组的一个或多个部分,例如缓存查找键所基于的分组报头。根据一个实施例,将缓存查找键作为分组标签的一部分而存储,并使其对分组流处理所涉及的所有任务可用。然后,第一个对网络分组进行检查的应用用来自原始分组报头的缓存查找信息作为分组标签,当随后的分组处理应用访问统一缓存时,它们就使用所述标签中的缓存查找键。以此方式,所有分组处理应用一致地执行缓存访问。此外,此处所描述的统一缓存体系结构和方法试图改进统一缓存在网络设备的分布式模块之间共享的方式。根据一个实施例,提供了一种直接而简单的机制,用于发现已删除的或被无效的缓存条目,并且无需缓存同步协议就可以防止创建重复的条目。
在以下描述中,为说明目的,阐述了许多具体细节,以便提供对本发明的透彻理解。但是,对本领域技术人员来说,很明显没有这些具体细节中的某些也可以实现本发明。在其它情况下,以框图的形式示出了公知的结构和设备。
本发明包括以下将要描述的多个步骤。本发明的步骤可以由硬件器件来执行,或者可以实施到机器可执行的指令中,所述指令可被用来使编程有所述指令的通用或专用处理器执行所述步骤。或者,可以由硬件和软件的结合来执行所述步骤。
本发明可被提供为计算机程序产品,该产品可包括其上存储了指令的机器可读介质,所述指令可被用来对计算机(或其它电子设备)进行编程,用于执行根据本发明的处理。所述机器可读介质可以包括但并不限于软盘、光盘、光盘只读存储器(CD-ROM),以及磁光盘、ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或其它类型的适于存储电子指令的媒体/机器可读介质。此外,本发明还可以作为计算机程序产品而被下载,其中可依靠包含在载波或其它传播介质中的数据信号,通过通信链路将所述程序从远程计算机(例如服务器)传输到请求计算机(例如客户端)。因此,应将载波或其它传播介质看作是包括用于本说明书的机器可读介质。
尽管为方便起见,参照具有NAT功能的网络设备而描述了本发明的实施例,但本发明也同等地适用于其它各种分组处理应用,所述分组处理应用涉及对用于生成缓存查找键的分组报头部分的全部或部分进行修改。
术语
在描述可在其中实现本发明各个实施例的示例性网络环境之前,简要定义一些将会在整个本申请中使用的术语。
此处所用的“网络设备”一般指有助于通过一组互连的局域网(LAN)进行计算机到计算机通信的中间设备。示例性的网络设备包括网关、路由器、交换机、桥接器、防火墙和互联网接入产品。
术语“网络接口”或简称“接口”一般指网络设备的物理或逻辑接口,通过该接口可以接收或发送分组。物理接口的示例是以太网端口。逻辑接口的示例是端口80——超文本传输协议(HTTP)服务的标准端口号,或者其它协议服务的接口。
术语“分组处理应用”、“分组处理任务”、“分组处理功能”或“模块”一般指在转发分组期间执行个别功能或一组操作的网络设备的硬件、软件或混合模块,所述功能或操作例如是从所述网络设备的输入端口通过所述网络设备的输出端口向分组的期望目的地转发分组。示例性的分组处理应用包括接收NAT、接收静态过滤、接收防火墙过滤、对缓存查找(转发)进行路由、发送静态过滤、发送防火墙过滤、发送NAT,等等。
此处所用的“模块专用信息”一般指特定的分组处理应用所利用的信息。
此处所使用的“统一缓存”或“统一转发缓存”一般指由多个分组转发处理共享的缓存机制,一般是与完整的路由表分开的存储器,所述路由表存储了最近的转发决定并被最优化用于快速查找。根据本发明一个实施例,统一缓存是统一基于IP流的缓存,其允许将流分类一次,然后就可以用在该统一缓存中的一次查找就处理随后的分组。
此处所用的“缓存同步协议”一般指一种集中机制,通过该机制,分布在不同处理器上的分组处理应用可以保持彼此具有统一缓存中最新的当前条目状态。例如,缓存同步管理应用可以跟踪为一个特定缓存条目而创建的指针数量,以及缓存条目是否有效。
此处所用的“分组描述符”一般指分组处理应用所使用的内部数据结构,所述分组处理应用与分组相关联,并包含分组专用信息。根据本发明一个实施例,分组描述符包含以下内容中的一个或多个:(1)分组的存储器地址(例如指向该分组数据的指针),(2)分组长度,(3)对在其上接收到分组的网络接口的指示,以及(4)统一缓存查找键。
与实现支持NAT的统一缓存相关联的困难
图2示出了实现支持NAT的统一缓存的一个问题。与实现支持NAT的统一缓存相联系的主要问题是其可能改变分组报头,从而使跟在NAT之后的分组处理应用无法定位统一缓存条目。例如,NAT可能在其改变分组报头之前,基于分组报头的原始内容来创建统一缓存条目。结果,随后的模块基于修改后的分组报头来生成不同的缓存查找键,并在错误的区域(bin)中寻找统一缓存条目。下面参照图2,用一个具体示例对此情景进行说明。
例如,网络设备接收到去往IP地址89.20.171.1的分组205。假定分组205被NAT接收慢路径210所接收(即,对此目的地IP地址,在统一缓存220中不存在缓存条目),NAT接收慢路径210使用从完整NAT规则表215中检索到的翻译规则,将分组报头中的目的地IP地址翻译成例如10.1.1.1。然后,NAT接收慢路径210基于从包括目的地IP地址89.20.171.1的分组报头的原始内容中生成的查找键,将一个缓存条目插入到统一缓存220中。以此方式,随后接收到的去往IP地址89.20.171.1的分组将会走NAT接收快路径(未示出),从而避免了在完整NAT规则表215中执行查找的开销,并且地址翻译将会基于由NAT接收慢路径210插入的缓存条目来执行。
无论如何,继续当前的示例,在翻译了分组报头并在统一缓存220中插入了条目之后,NAT接收慢路径210将分组传递给下一模块。在此示例中,跟在NAT后面的模块是过滤。当过滤模块接收到NAT处理后的分组时,过滤代码读取分组报头,并基于包括目的地IP地址10.1.1.1的分组报头的当前内容,在统一缓存220中进行缓存查找。找不到条目,因为NAT是用基于原始目的地IP地址—89.20.171.1的查找键来插入条目的。因此,将分组传递给过滤接收慢路径225,其现在必须从完整过滤规则表230中检索过滤规则。在执行过滤之后,过滤接收慢路径225用基于包括目的地IP地址10.1.1.1的当前分组报头内容的查找键来插入一个新的缓存条目。结果,在此示例中,NAT接收慢路径210和过滤接收慢路径创建了与不同的缓存查找键相关联的重复的统一缓存条目。
有效的统一缓存实现不应无谓地创建重复的统一缓存条目。相反,一般应该使用一致且可预测的缓存查找键来将缓存条目的所有信息存储在一个统一缓存条目中。一个惯例是基于分组报头的原始内容来生成缓存查找键,在此示例中,所述分组报头的原始内容包括IP目的地地址89.20.171.1。
与采用统一缓存相联系的另一个问题是使用统一缓存的不同模块的同步。图3A-3C示出了一个同步问题的例子,当在统一缓存环境中试图执行分布式分组处理时,就可能遇到这种问题。在此示例中,假定模块将指向统一缓存条目的指针传递给下一模块。在图3A中,NAT模块310在时刻t1接收到网络分组305。随后,在时刻t2,NAT模块将缓存条目323插入到由过滤模块330与其它模块共享的统一缓存320中。在NAT模块310完成其翻译处理之后,其用指向缓存条目323的指针作为翻译后网络分组305的标签。如图3B所示,NAT模块310在时刻t3,将翻译后网络分组305与指向缓存条目323的指针一起,作为带标签网络分组306传递给过滤模块330,所述传递例如是经由处理间队列来进行的,因为过滤模块330可能是个单独的处理。但是,在允许运行过滤模块330之前,如图3C所示,NAT模块在时刻t4例如由于重配置事件而决定去除缓存条目323,从而使条目323无效。结果,与带标签网络分组306一起传递的缓存条目指针现在无效了。在没有缓存同步机制的情况下,当过滤模块330在时刻t5使用所述指针来访问统一缓存320,以检索对应于带标签网络分组306的缓存条目323时,过滤将会产生不确定的结果,因为它将基于无效数据而执行。因此,共享统一缓存的可靠机制应准备好检测已删除或已被无效的缓存条目,并防止创建重复的条目,而不需要实现缓存同步协议所引起的开销和复杂性。
此处所描述的统一缓存体系结构和方法试图解决上述问题。根据一个实施例,第一个检查分组的应用用基于原始分组报头的查找信息作为分组的标签。然后,当随后的分组处理应用更新或访问统一缓存时,其使用原始分组查找信息(所述标签)作为查找键。如果所述条目已被删除(像上例中那样),则该查找将会失败,从而确保了一致性。
示例性网络设备
图4是根据本发明一个实施例的网络设备400的简化高级框图。网络设备400表示示例性网络计算或网络通信设备,例如网关、路由器、桥接器、交换机、防火墙或互联网接入产品,其中可以实现本发明的特征。在此示例中,网络设备400包括诸如总线410之类的用于传送信息的通信装置,以及诸如一个或多个处理器415的处理装置,其与总线410相耦合,用于处理信息和执行指令。
网络设备400还包括耦合到总线410的网络接口420,用于允许向/从网络设备400进行通信和交换信息,这例如是经由局域网(LAN)、广域网(WAN)、城域网(MAN)、互联网或公共交换电话网(PSTN)来进行的。网络接口420可以包括诸如一个或多个10/100以太网端口、一个或多个千兆比特以太网端口(光纤和/或铜)之类的公知接口,或者诸如数据用户线路(DSL)接口、异步传输模式(ATM)端口之类的其它公知接口,以及其它在现有的公共或个人网络环境中普遍使用的接口的各种组合。无论如何,以此方式,网络设备400都可以通过传统网络基础设施与多个其它网络设备、客户端和/或服务器进行通信,所述传统网络基础设施例如是公司的内部网和/或互联网。
网络设备400还包括多个用于执行各种分组处理任务的模块,例如用于在所接收和/或所发送的分组上应用网络地址翻译的一个或多个NAT模块460、用于执行接收和/或发送分组过滤的一个或多个过滤模块470,以及用于做出转发决定的一个或多个转发模块480。
网络设备400还包括耦合到总线410的主存储器430,用于存储要由处理器415、NAT模块460、过滤模块470和/或转发模块480来使用和/或执行的信息和指令。主存储器可以包括一种或多种随机存取存储器(RAM),例如用于缓存的静态RAM(SRAM)和动态RAM(DRAM)、同步DRAM(SDRAM),或者其它用于较大运行时存储需要的动态存储设备。因此,在由处理器415执行指令期间,可以用主存储器430来存储临时变量或诸如查找表或者一个或多个统一缓存之类的其它中间信息。
网络设备400还包括耦合到总线410上的只读存储器(ROM)440和/或其它静态存储设备,用于存储静态信息和处理器415的指令。还可以将诸如闪存盘、磁盘或光盘和相应驱动器之类的数据存储设备450耦合到总线410,用于存储信息和指令。
在以上描述中,为了方便说明,一般对于处理器415、NAT模块460、过滤模块470和转发模块480,如同其中每个都是单一设备或处理那样进行讨论。但是,每个功能单元实际上可能包括以分布式体系结构连接的多个物理和/或逻辑设备。此外,实际上可以将功能单元的各种组合合并成同一硅晶片上的多个执行单元。此外,在另外的实施例中,各种功能单元所执行的功能可能被分布得与所描述的不同。例如,可以在多个处理器之间划分特定的功能。
示例性网络处理器
图5是示例性网络处理器500的框图。网络处理器500表示可用在诸如网络设备400之类的网络设备中的诸如处理器415之类的示例性处理器,其中实现了此处所描述的统一缓存。根据一个实施例,网络处理器包括Intel IXP 1200网络处理器(INTEL是加利福尼亚州Santa Clara的英特尔公司的注册商标)。
在此示例中,网络处理器500是松耦合混合并行处理器组,其将独立微引擎540的阵列与处理器核515组合起来。诸如具有硬件多线程支持的32位精简指令集计算(RISC)数据引擎之类的微引擎540可包含足够的处理功率,用于执行一般为高速ASIC(专用集成电路)而保留的分组处理任务,例如NAT、分组转发和分组过滤。然后可以将诸如IntelStrongARM核之类的处理器核515用于更复杂的任务,例如地址学习、建立并维护转发表及相关统一缓存,以及网络管理。
在所示出的实施例中,处理器核515被耦合到系统总线510,该总线将处理器核515耦合以便与SRAM单元520、SDRAM单元525、外围器件互连(PCI)单元530和快速总线接口(FBI)单元535进行通信。微引擎540被耦合到单独的数据总线520,所述SRAM单元520、SDRAM单元525、PCI单元530和FBI单元535也耦合到该数据总线520,因此微引擎540可以无需处理器核515的帮助就执行数据移动和处理。
根据一个实施例,网络处理器500是完全可编程的,从而允许根据具体实现的需要,通过分配微引擎540、线程和处理器核任务而将分组处理任务分割或集合。例如,可以将NAT、转发和过滤中的每一个分配给一个或多个分开的微引擎540。或者,可以将所有这三个分组处理任务分布到多个微引擎当中。
统一缓存更新处理
图6是一个流程图,示出了根据本发明一个实施例,通过慢路径进行的统一缓存更新处理。在一个实施例中,以下所描述的操作可以在一个或多个已编程的处理器的控制下执行,所述处理器例如是处理器核515和/或微引擎540。但是,在其它实施例中,所述操作可以全部或部分地由任何可编程或硬编码逻辑来实现,所述逻辑例如是现场可编程门阵列(FPGA)、晶体管一晶体管逻辑(TTL)或专用集成电路(ASIC)。
一般将统一缓存更新处理分解成新流检测阶段、新缓存条目创建阶段、为现有流加上分组标签阶段,以及缓存条目更新阶段。所述新流检测阶段由框610-630表示,所述新缓存条目创建阶段包括框680和690,所述为现有流加上分组标签阶段由框640表示,而所述缓存条目更新阶段由框670表示。简言之,在慢路径中的基本分组流期间,第一个判断出正在处理的分组是现有流一部分的分组处理任务(例如NAT、过滤或转发)用与现有流相关联的查找键作为该分组的标签。如果分组处理任务判断出正在处理的分组是新流的一部分,则该分组处理任务在统一缓存中为该流创建新缓存条目,并用该新缓存条目的相应查找键作为所述分组的标签。
重要的是,在所示出的实施例中,各分组处理模块间仅有的通信就是嵌入内部分组描述符中的查找键。此机制以非常精妙而简单的方式实现了分布式处理,因为如果正寻找的条目已被另一模块删除,则在统一缓存中的查找将会失败。结果,就不需要缓存同步协议了。
通过慢路径进行的统一缓存更新处理开始于判决框610处的新流检测阶段。在判决框610,判断在与正处理的分组相关联的分组描述符中是否存在查找键信息。如果存在查找键信息,则所述分组已被分组和加标签,处理在框650继续。不然,则还未给所述分组加标签,处理在框620继续。根据一个实施例,当分组描述符第一次与分组相关联时,可以用一个将查找键信息标识为无效的值将查找键信息初始化。
假定在此示例中,还未将查找信息设置为有效查找键的值,处理在框620继续,其中使用基于当前分组报头内容而生成的查找键,在统一缓存上执行查找。在判决框630,基于在由框620所发起的查找期间是否找到了条目,来判断所述分组是不是现有流的一部分。如果确实找到了条目,则将所述分组分类为与所找到的条目相关联的现有流的一部分,处理在框640处继续为现有流加标签的阶段。否则,将所述分组分类为新流的一部分,处理在框680继续,以开始新缓存条目创建阶段。
在框640,通过用现有流的查找键的值将分组描述符中查找键的值初始化,来将所述分组作为现有流的一部分而加标签。在框640之后,处理在框670继续,以执行缓存条目更新阶段。
现在返回判决框610,假定在分组描述符中存在查找信息,然后在框650,使用该信息执行统一缓存查找。值得再次注意的是,此查找解决了共享统一缓存的多个分布式模块之间的同步问题,因为如果像在图3的示例中的情况那样已删除了条目,则查找将会失败。
在判决框660,判断是否响应于框650的查找而找到了条目。如果没有,则通过前进到框680来执行新缓存条目创建阶段。否则,如果找到了条目,则通过在框670继续,来执行缓存条目更新阶段。
在框680,作为检测到新流或统一缓存条目已被删除的结果,创建一条新缓存条目并将其插入统一缓存中。在框690,更新与正处理的分组相关联的分组描述符,以使其包括新的查找键。取决于应用,所述查找键可以基于分组报头中或多或少的信息,或者甚至可以基于不同的字段。例如,根据一个实施例,为完整的防火墙和过滤而采用的查找键是基于包括IP源地址、IP目的地地址、IP协议、IP源端口和IP目的地端口在内的5重字段来生成的。但是,如果网络设备只执行路由,则只需要这些字段的一个子集,例如IP源地址和IP目的地地址,来生成查找键。此外,对于IPsec(互联网协议安全),使用的是SPI(安全参数索引)而非源端口和目的地端口。因此,根据一个实施例,可以为统一缓存的特定注册用户(例如NAT、过滤、转发等)而将统一缓存最优化。
在框670,为新的或现有的缓存条目执行缓存条目更新阶段。现在以模块相关的方式来修改在框640或650找到的条目,或者在框680创建的条目。即,取决于执行统一缓存更新处理的具体模块的需要,可以添加、删除或以其他方式操作模块专用信息。例如,在慢路径处理期间,NAT基于从NAT规则表中检索到的信息来填充其所采用的缓存条目的字段。缓存条目中另外一组字段可以由过滤模块用来自过滤规则表中的信息来填充。缓存条目中的又一组字段可以由转发模块基于在完整路由表上执行的查找来填充。此外,模块可能对收集各种计量值感兴趣。例如,过滤模块可以跟踪来自一个特定的源IP地址的被过滤的分组的数量;而转发模块可以跟踪涉及一个特定的IP目的地地址的IP流持续时间。
图7是一个框图,其概念性地示出了根据本发明一个实施例,当新流被检测到并通过NAT接收慢路径接收到时的基本分组流。在此示例中,示出了在完成接收NAT处理之前的状态下,与网络分组710相关联的分组描述符705。
在时刻t1,通过NAT接收慢路径720来接收分组描述符705。根据所示出的实施例,分组描述符包括标识输入接口、分组长度、查找键的字段,以及指向分组数据的指针。所述输入接口直接或间接标识在其上接收到网络分组710的逻辑接口。所述分组长度指示以字节为单位的分组长度。取决于具体实现,所述查找键可以表示用于在统一缓存中直接执行查找的值,例如哈希(hash)值,或者所述查找键可以表示来自所述哈希值所基于的原始分组报头的未处理数据。所述指向分组数据的指针是网络分组710的起始地址。在此示例中,将网络分组710示出为具有IP报头711-715和IP有效载荷716的IP分组。所述IP报头包括IP源地址711、IP目的地地址712、IP协议指示符713、IP源端口714和IP目的地端口715。
取决于具体实现,在分组描述符705中可以包括或多或少的字段。例如,根据一个实施例,一个单独的统一缓存与每个逻辑接口相关联,并且该缓存只用于特定接口上的输入分组。即,所有的查找/插入都是基于该接收接口的。但是,在采用单个统一缓存的实施例中,可能不需要包括输入接口字段作为分组描述符705的一部分。
在时刻t2,因为分组描述符705中的查找键为空,所以基于网络分组的IP报头711-715的内容来形成查找键,并在NAT规则表730中执行查找。为了加速对随后与同一分组流相关联的分组的处理,在时刻t3,将流分类,并基于所述查找键,将已被初始化为包括对此流的合适的翻译规则的新缓存条目插入统一缓存740中。在时刻t4,NAT接收慢路径720可以翻译IP源地址711、IP目的地地址712、IP源端口714和IP目的地端口715中的一个或多个。在时刻t5,为了解决以上结合图2所描述的问题,将用于插入所述缓存条目的查找键存储在分组描述符705中,从而确保了在统一缓存访问方面模块间的一致性。最后,在时刻t6,将所述分组转发到下一分组处理任务,在此示例中,该任务是接收过滤器。
图8是一个框图,其概念性地示出了根据本发明一个实施例,当新流被检测到并通过过滤接收慢路径接收到时的基本分组流。继续从图7开始的示例,现在示出了分组描述符705在接收NAT处理已完成后的状态。因此,以用于插入统一缓存条目的查找键填充了分组描述符705中的查找键字段,并且IP报头711-715的多个字段可能已从其初始值进行了修改。在此示例中,已将IP源地址711从89.20.171.1翻译为10.20.171.1,并且已将IP目的地地址从90.1.1.1翻译为11.1.1.1。
在时刻t6,过滤接收慢路径820从NAT接收慢路径720接收到分组描述符705。根据一个实施例,将分组描述符750作为模块通话当中的参数来传递。在其它实施例中,可将分组描述符750存储在全局可访问存储器中。无论如何,在时刻t7,过滤接收慢路径从过滤规则表830中为此流检索合适的过滤指令。在时刻t8,使用分组描述符705中的查找键,检索到NAT接收慢路径720在时刻t3所插入的缓存条目,并更新以使其包括过滤指令。值得注意的是,如果过滤接收慢路径820使用了当前IP报头711-715,则将会生成不同的查找键,将会找不到NAT接收慢路径720所插入的缓存条目,并且将会像在图2的示例中那样,创建重复的条目。但是,因为此模块可以访问用来插入缓存条目的那个查找键,所以确保了访问的一致性,并且避免了不必要地创建重复的缓存条目。在这点上,基于适用于此网络分组710的过滤规则,将网络分组710过滤掉(丢弃)或传递给下一模块。假定所述分组未被过滤掉,则在时刻t9,将其转发给转发模块。
图9是一个框图,其概念性地示出了根据本发明一个实施例,当新流被检测到并通过转发接收慢路径接收到时的基本分组流。从图8的结尾处继续所述示例,在时刻t9,转发慢路径920接收到分组描述符705。在时刻t10,转发慢路径920在路由表930中执行查找,以检索到关于网络分组710及其它与此流相关联的分组的合适的路由指令。然后,转发慢路径920在时刻t11,在统一缓存740中更新由NAT接收慢路径720创建并由过滤接收慢路径820修改的缓存条目。尽管未示出,但所述慢路径的其余部分,例如过滤发送慢路径和NAT发送慢路径,是以类似的方式来处理的。
其它实施例
在上述实施例中,统一缓存查找键被传输给共享该统一缓存的慢路径模块,或者对这些模块可用。尽管此机制具有以非常精妙而简单的方式使得无需缓存同步协议就可以进行分布式处理的优点,但在其它实施例中,转而将指向所述统一缓存条目的指针与表示计数一起传递给所述慢路径可能是有用的。根据此实施例,缓存管理器通过更新所述表示计数而跟踪统一缓存条目的有效性。在一个慢路径模块视图使用指向统一缓存条目的指针时,该模块向缓存管理器询问该条目是否仍有效,而缓存管理器将内部表示计数和与所述指针引用相关联的表示计数相比较。
在上述示例中,为简单起见,引用的是单个统一缓存。但是应该理解到,根据各种实施例都考虑到了多个统一缓存的使用。例如,根据一个实施例,可以将单独的统一缓存而非一个集中的统一缓存与一组一个或多个逻辑或物理网络接口相关联。此外,为了处理由网络设备自身生成的分组,可以维护一个单独的缓存,用于处理这种内部生成的分组。
尽管在上述各种实施例中,假定第一个接收到分组的分组处理应用或者NAT接收慢路径是用缓存查找键作为分组标签的模块,但在其它实施例中,也可以当在物理或逻辑接口上接收时加标签。另一个选择是如果第一次修改分组报头,则在修改时给该分组加标签。
最后,尽管将NAT用作涉及用于缓存查找键生成的分组部分修改的分组处理应用的示例,但是应该理解到,此处所描述的分组加标签方法适用于其它各种当前的或未来的涉及用于缓存查找键生成的分组部分修改的分组处理应用。
在前述说明书中,已参照其具体实施例对本发明进行了描述。但是,显然可以对其进行各种修改和变化,而不脱离本发明更广的精神和范围。因此,应将本说明书和附图认为是说明性的而非限制性的。
此处所包含的材料受到著作权保护。当本专利的公开文本出现于专利商标局的文件或记录中时,著作权人不反对将其进行传真复制,但在其它情况下,无论如何都保留对其著作权的一切权利。

Claims (32)

1.一种方法,包括:
在网络设备处接收分组,该分组包括报头和有效载荷;
由多个分组处理应用中的第一分组处理应用,用基于所述报头原始内容的缓存查找键作为所述分组的标签,所述缓存查找键指示与所述分组相对应的缓存条目在统一缓存中将要存储的位置;以及
在所述多个分组处理应用当中,试图在由所述第一分组处理应用加标签之后从所述统一缓存访问所述缓存条目的那些分组处理应用使用所述缓存查找键,而不是基于当前报头内容来生成新的缓存查找键。
2.如权利要求1所述的方法,其中,所述的用缓存查找键作为分组标签包括用哈希值来填充与所述分组相对应的内部分组描述符的查找键字段。
3.如权利要求2所述的方法,其中,所述分组包括IP分组,并且所述缓存查找键是基于所述报头的源IP地址、所述报头的目的地IP地址、所述报头的源端口、所述报头的目的地端口、以及所述报头中的协议值的。
4.如权利要求1所述的方法,其中,所述多个分组处理应用包括应用网络地址翻译、分组过滤和分组路由这三种处理中的一种或多种。
5.如权利要求4所述的方法,其中,所述多个分组处理应用分布在所述网络设备的两个或更多个处理器当中。
6.如权利要求1所述的方法,其中,所述第一分组处理应用包括修改所述分组报头的网络地址翻译处理,并且其中,所述方法还包括所述网络地址翻译处理发起所述多个分组处理应用中的第二分组处理应用,并将加了标签的分组提供给所述第二分组处理应用。
7.如权利要求6所述的方法,还包括所述第二分组处理应用使用所述缓存查找键来访问所述缓存条目,从而用所述第二分组处理应用所专用的信息来更新所述缓存条目。
8.一种方法,包括如下步骤:
判断在与接收到的分组相关联的分组描述符中是否存在缓存查找键的步骤;
如果判断出所述分组描述符中存在所述缓存查找键,则用所述缓存查找键在统一缓存中执行查找的步骤;
如果判断出所述分组描述符中不存在所述缓存查找键,或者所述查找未找到合适的现有缓存条目,则基于所述接收到的分组的报头中的信息而在所述统一缓存中创建新缓存条目,并给所述分组加标签的步骤;以及
用模块专用信息来更新现有缓存条目的步骤。
9.如权利要求8所述的方法,其中,将所述统一缓存实现为哈希表,并且所述的给分组加标签包括至少基于所述报头中的源地址和目的地地址来生成哈希值,并将该哈希值存储在所述分组描述符中。
10.如权利要求8所述的方法,其中,所述统一缓存被多个分布式分组处理任务所利用,所述任务包括网络地址翻译、分组过滤和分组转发。
11.如权利要求8所述的方法,还包括将所述缓存查找键从所述网络地址翻译分组处理任务传递给所述分组过滤分组处理任务的步骤。
12.一种网络设备,包括:
多个输入接口,在所述接口上接收IP分组;
多个统一缓存,所述多个统一缓存中的每一个都与所述多个输入接口中一个相应的输入接口相关联;
网络地址翻译模块,其被耦合到所述多个接口中的每一个和所述多个统一缓存中的每一个,用于根据存储在网络地址翻译规则表中的多条网络地址翻译规则来翻译所接收到的IP分组的报头中的一个或多个地址,用与接收到IP分组的输入端口相关联的统一缓存的缓存查找键作为所述接收到的IP分组的标签,以及在检测到新的分组流时将新缓存条目插入所述统一缓存中;
过滤模块,其被耦合到所述多个统一缓存中的每一个和所述网络地址翻译模块,用于从所述网络地址翻译模块接收加了标签的IP分组,根据存储在过滤规则表中的多条过滤规则来执行分组过滤,以及使用所述网络地址翻译模块所添加的缓存查找键来访问及更新所述统一缓存中的现有缓存条目;和
转发模块,其被耦合到所述多个统一缓存中的每一个和所述过滤模块,用于从所述过滤模块接收加了标签的IP分组,根据存储在路由表中的多条转发规则来执行分组转发,以及使用所述网络地址翻译模块所添加的缓存查找键来访问及更新所述统一缓存中的现有缓存条目。
13.如权利要求12所述的网络设备,其中,所述网络设备是路由器。
14.如权利要求12所述的网络设备,其中,所述网络设备是交换机。
15.如权利要求12所述的网络设备,其中,所述网络地址翻译模块、所述过滤模块和所述转发模块分布在多个处理器当中。
16.如权利要求15所述的网络设备,其中,所述网络地址翻译模块、所述过滤模块和所述转发模块通过使用缓存查找键在所述多个统一缓存中执行查找,来在没有缓存同步协议的情况下操作,所述缓存查找键是存储在与接收到的IP分组相关联的内部分组描述符中的。
17.一种网络设备,包括:
多个输入接口装置,在所述接口装置上接收IP分组;
多个统一缓存装置,其中每一个都与所述多个输入接口中一个相应的输入接口相关联,用于存储近期所使用的分组转发信息;
网络地址翻译装置,其被耦合到所述多个接口装置中的每一个和所述多个统一缓存装置中的每一个,用于根据存储在网络地址翻译规则表中的多条网络地址翻译规则来翻译所接收到的IP分组的报头中的一个或多个地址,用与接收到IP分组的输入接口装置相关联的统一缓存装置的缓存查找键作为所述接收到的IP分组的标签,以及在检测到新的分组流时将新缓存条目插入所述统一缓存装置中;
分组过滤装置,其被耦合到所述多个统一缓存装置中的每一个和所述网络地址翻译装置,用于从所述网络地址翻译装置接收加了标签的IP分组,根据存储在过滤规则表中的多条过滤规则来执行分组过滤,以及使用所述网络地址翻译装置所添加的缓存查找键来访问及更新所述统一缓存装置中的现有缓存条目;和
分组转发装置,其被耦合到所述多个统一缓存装置中的每一个和所述过滤装置,用于从所述分组过滤装置接收加了标签的IP分组,根据存储在路由表中的多条转发规则来执行分组转发,以及使用所述网络地址翻译装置所添加的缓存查找键来访问及更新所述统一缓存装置中的现有缓存条目。
18.如权利要求17所述的网络设备,其中,所述网络设备是路由器。
19.如权利要求17所述的网络设备,其中,所述网络设备是交换机。
20.如权利要求17所述的网络设备,其中,所述网络地址翻译装置、所述过滤装置和所述转发装置分布在多个处理器当中。
21.如权利要求20所述的网络设备,其中,所述网络地址翻译装置、所述过滤装置和所述分组转发装置通过使用缓存查找键在所述多个统一缓存中执行查找,来在没有缓存同步协议的情况下操作,所述缓存查找键是存储在与接收到的IP分组相关联的内部分组描述符中的。
22.一种机器可读介质,其上存储有表示指令的数据,所述指令在被网络设备的一个或多个处理器执行时,使所述一个或多个处理器:
接收包括报头和有效载荷在内的分组;
由多个分组处理应用中的第一分组处理应用,用基于所述报头原始内容的缓存查找键作为所述分组的标签,所述缓存查找键指示与所述分组相对应的缓存条目在统一缓存中将要存储的位置;并且
由在所述多个分组处理应用当中,试图在所述第一分组处理应用加标签之后从所述统一缓存访问所述缓存条目的那些分组处理应用来使用所述缓存查找键,而不是基于当前报头内容来生成新的缓存查找键。
23.如权利要求22所述的机器可读介质,其中,所述的用缓存查找键作为分组标签包括用哈希值来填充与所述分组相对应的内部分组描述符的查找键字段。
24.如权利要求22所述的机器可读介质,其中,所述分组包括IP分组,并且所述缓存查找键是基于所述报头的源IP地址、所述报头的目的地IP地址、所述报头的源端口、所述报头的目的地端口、以及所述报头中的协议值的。
25.如权利要求22所述的机器可读介质,其中,所述多个分组处理应用包括应用网络地址翻译、分组过滤和分组路由这三种处理中的一种或多种。
26.如权利要求22所述的机器可读介质,其中,所述多个分组处理应用分布在所述网络设备的两个或更多个处理器当中。
27.如权利要求26所述的机器可读介质,其中,所述多个分组处理应用包括网络地址翻译、分组过滤和分组转发。
28.如权利要求22所述的机器可读介质,其中,所述第一分组处理应用包括修改所述分组报头的网络地址翻译处理,其中所述指令还使所述一个或多个处理器:
将加了标签的分组提供给所述多个分组处理应用中的第二分组处理应用;
在所述网络地址翻译处理之后发起所述多个分组处理应用中的第二分组处理应用。
29.如权利要求28所述的机器可读介质,其中,所述第一分组处理应用包括修改所述分组报头的网络地址翻译处理,其中所述指令还使所述一个或多个处理器:
通过使用所述缓存查找键,从所述第二分组处理应用访问所述缓存条目;并且
由所述第二分组处理应用用所述第二分组处理应用所专用的信息来更新所述缓存条目。
30.如权利要求22所述的机器可读介质,其中,将所述统一缓存实现为哈希表,并且所述的给分组加标签包括至少基于所述报头中的源地址和目的地地址来生成哈希值,并将该哈希值存储在所述分组描述符中。
31.如权利要求22所述的机器可读介质,其中,所述网络设备包括路由器。
32.如权利要求22所述的机器可读介质,其中,所述网络设备包括交换机。
CN028190726A 2001-09-28 2002-09-27 用查找键作为分组标签以便于使用统一分组转发缓存的方法和设备 Expired - Fee Related CN1561625B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/967,084 2001-09-28
US09/967,084 US7269663B2 (en) 2001-09-28 2001-09-28 Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
PCT/US2002/031154 WO2003028341A2 (en) 2001-09-28 2002-09-27 Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache

Publications (2)

Publication Number Publication Date
CN1561625A true CN1561625A (zh) 2005-01-05
CN1561625B CN1561625B (zh) 2010-09-08

Family

ID=25512278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028190726A Expired - Fee Related CN1561625B (zh) 2001-09-28 2002-09-27 用查找键作为分组标签以便于使用统一分组转发缓存的方法和设备

Country Status (7)

Country Link
US (1) US7269663B2 (zh)
CN (1) CN1561625B (zh)
DE (1) DE10297269B4 (zh)
GB (1) GB2396079B (zh)
HK (1) HK1062753A1 (zh)
TW (1) TWI257223B (zh)
WO (1) WO2003028341A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103477613A (zh) * 2011-04-11 2013-12-25 阿尔卡特朗讯公司 映射专用和公用地址
CN104054067A (zh) * 2011-03-30 2014-09-17 亚马逊技术公司 基于减负装置的数据包处理的框架和接口
CN105191171A (zh) * 2013-05-31 2015-12-23 英特尔Ip公司 用于设备通信的有效的用户、服务或内容表述
CN103942161B (zh) * 2014-04-24 2017-02-15 杭州冰特科技有限公司 只读缓存的去冗余系统及方法以及缓存的去冗余方法
CN108027774A (zh) * 2015-09-03 2018-05-11 三星电子株式会社 用于自适应缓存管理的方法和装置
CN111478855A (zh) * 2020-06-23 2020-07-31 翱捷科技(上海)有限公司 基于LwIP协议栈的网络设备快速转发的方法及系统
CN113542210A (zh) * 2020-04-21 2021-10-22 迈络思科技有限公司 网络设备和联网方法

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60202136T2 (de) * 2001-03-19 2005-12-01 International Business Machines Corp. Cache-eintrag-auswahlverfahren und -vorrichtung
US7277399B1 (en) * 2002-04-08 2007-10-02 Cisco Technology, Inc. Hardware-based route cache using prefix length
US8145790B2 (en) * 2002-07-11 2012-03-27 Hewlett-Packard Development Company, L.P. Method and device for using dynamic updates in a network
TWI263425B (en) * 2003-01-14 2006-10-01 Admtek Inc Router and packet transmission method
KR100514742B1 (ko) * 2003-02-06 2005-09-14 삼성전자주식회사 통합 캐시를 이용하여 다음 홉 주소를 결정하는 장치 및 방법
US20050063379A1 (en) * 2003-09-18 2005-03-24 Samsung Electronics Co., Ltd Apparatus and method for traffic profiling in a massively parallel router
GB0322491D0 (en) * 2003-09-25 2003-10-29 British Telecomm Virtual networks
US7571242B2 (en) * 2003-10-24 2009-08-04 Alcatel Lucent Method for accelerated packet processing
US20050100042A1 (en) * 2003-11-12 2005-05-12 Illikkal Rameshkumar G. Method and system to pre-fetch a protocol control block for network packet processing
US7443856B2 (en) * 2004-01-14 2008-10-28 Lucent Technologies Inc. Managing processing utilization in a network node
US7474661B2 (en) * 2004-03-26 2009-01-06 Samsung Electronics Co., Ltd. Apparatus and method for distributing forwarding table lookup operations among a plurality of microengines in a high-speed routing node
US7895431B2 (en) * 2004-09-10 2011-02-22 Cavium Networks, Inc. Packet queuing, scheduling and ordering
US7535907B2 (en) * 2005-04-08 2009-05-19 Oavium Networks, Inc. TCP engine
US8619790B2 (en) * 2005-06-07 2013-12-31 Broadcom Corporation Adaptive cache for caching context and for adapting to collisions in a session lookup table
US7639613B1 (en) * 2005-06-24 2009-12-29 Packeteer, Inc. Adaptive, flow-based network traffic measurement and monitoring system
US7580356B1 (en) * 2005-06-24 2009-08-25 Packeteer, Inc. Method and system for dynamically capturing flow traffic data
US7333430B2 (en) * 2005-07-06 2008-02-19 Fortinet, Inc. Systems and methods for passing network traffic data
US20080101366A1 (en) * 2006-10-31 2008-05-01 Motorola, Inc. Methods for optimized tunnel headers in a mobile network
US8607302B2 (en) * 2006-11-29 2013-12-10 Red Hat, Inc. Method and system for sharing labeled information between different security realms
US7865576B2 (en) * 2007-01-31 2011-01-04 Alcatel Lucent Change of subscriber information in a multi-chassis network access environment
US8234327B2 (en) * 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US8379623B2 (en) * 2007-07-10 2013-02-19 Motorola Solutions, Inc. Combining mobile VPN and internet protocol
US20090092136A1 (en) * 2007-10-09 2009-04-09 Broadcom Corporation System and method for packet classification, modification and forwarding
US8193182B2 (en) 2008-01-04 2012-06-05 Intellikine, Inc. Substituted isoquinolin-1(2H)-ones, and methods of use thereof
SG187425A1 (en) 2008-01-04 2013-02-28 Intellikine Llc Certain chemical entities, compositions and methods
US20090285207A1 (en) * 2008-05-15 2009-11-19 Cohen Yochai System and method for routing packets using tags
US7908376B2 (en) * 2008-07-31 2011-03-15 Broadcom Corporation Data path acceleration of a network stack
US8645400B1 (en) * 2008-08-01 2014-02-04 Marvell International Ltd. Flexible bit field search method
WO2010036380A1 (en) 2008-09-26 2010-04-01 Intellikine, Inc. Heterocyclic kinase inhibitors
GB2478470B8 (en) 2008-11-17 2014-05-21 Sierra Wireless Inc Method and apparatus for network port and netword address translation
US8228848B2 (en) * 2008-11-17 2012-07-24 Sierra Wireless, Inc. Method and apparatus for facilitating push communication across a network boundary
US8924486B2 (en) * 2009-02-12 2014-12-30 Sierra Wireless, Inc. Method and system for aggregating communications
US9137138B2 (en) * 2008-11-28 2015-09-15 Stephen W. NEVILLE Method and system of controlling spam
US20100235689A1 (en) * 2009-03-16 2010-09-16 Qualcomm Incorporated Apparatus and method for employing codes for telecommunications
JP5789252B2 (ja) 2009-05-07 2015-10-07 インテリカイン, エルエルシー 複素環式化合物およびその使用
US8880716B2 (en) * 2009-05-08 2014-11-04 Canon Kabushiki Kaisha Network streaming of a single data stream simultaneously over multiple physical interfaces
CN103002738A (zh) 2010-05-21 2013-03-27 英特利凯恩有限责任公司 用于激酶调节的化学化合物、组合物和方法
KR101019251B1 (ko) 2010-07-23 2011-03-04 주식회사 파이오링크 멀티코어 환경에서 nat를 사용하는 경우에 적합한 패킷 분산 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
US8627448B2 (en) * 2010-11-02 2014-01-07 Jose Renato Santos Selective invalidation of packet filtering results
US8901133B2 (en) 2010-11-10 2014-12-02 Infinity Pharmaceuticals, Inc. Heterocyclic compounds and uses thereof
US20120144123A1 (en) 2010-12-01 2012-06-07 International Business Machines Corporation Read-ahead processing in networked client-server architecture
US8675659B2 (en) 2010-12-16 2014-03-18 Openet Telecom Ltd. Methods, systems and devices for multiphase decoding
US8943221B2 (en) 2010-12-16 2015-01-27 Openet Telecom Ltd. Methods, systems and devices for pipeline processing
US8725896B2 (en) 2010-12-16 2014-05-13 Openet Telecom Ltd. Methods, systems and devices for forked routing
US8725820B2 (en) 2010-12-16 2014-05-13 Openet Telecom Ltd. Methods, systems and devices for horizontally scalable high-availability dynamic context-based routing
US8824370B2 (en) 2010-12-16 2014-09-02 Openet Telecom Ltd. Methods, systems and devices for dynamic context-based routing
PE20141303A1 (es) 2011-01-10 2014-10-01 Infinity Pharmaceuticals Inc Procedimiento para preparar isoquinolinonas y formas solidas de isoquinolinonas
US9037724B2 (en) 2011-02-08 2015-05-19 Sierra Wireless, Inc. Method and system for forwarding data between network devices
US8462780B2 (en) 2011-03-30 2013-06-11 Amazon Technologies, Inc. Offload device-based stateless packet processing
US8774213B2 (en) 2011-03-30 2014-07-08 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US9444692B2 (en) 2011-04-26 2016-09-13 Openet Telecom Ltd. Systems, devices and methods of crowd-sourcing across multiple domains
US9565074B2 (en) 2011-04-26 2017-02-07 Openet Telecom Ltd. Systems, devices, and methods of orchestrating resources and services across multiple heterogeneous domains
US9565063B2 (en) 2011-04-26 2017-02-07 Openet Telecom Ltd. Systems, devices and methods of synchronizing information across multiple heterogeneous networks
US9450766B2 (en) 2011-04-26 2016-09-20 Openet Telecom Ltd. Systems, devices and methods of distributing telecommunications functionality across multiple heterogeneous domains
US8929859B2 (en) 2011-04-26 2015-01-06 Openet Telecom Ltd. Systems for enabling subscriber monitoring of telecommunications network usage and service plans
US9130760B2 (en) 2011-04-26 2015-09-08 Openet Telecom Ltd Systems, devices and methods of establishing a closed feedback control loop across multiple domains
US9641403B2 (en) 2011-04-26 2017-05-02 Openet Telecom Ltd. Systems, devices and methods of decomposing service requests into domain-specific service requests
JP6027610B2 (ja) 2011-07-19 2016-11-16 インフィニティー ファーマシューティカルズ, インコーポレイテッド 複素環式化合物及びその使用
CA2842190A1 (en) 2011-07-19 2013-01-24 Infinity Pharmaceuticals Inc. Heterocyclic compounds and uses thereof
US8785470B2 (en) 2011-08-29 2014-07-22 Infinity Pharmaceuticals, Inc. Heterocyclic compounds and uses thereof
US9397960B2 (en) * 2011-11-08 2016-07-19 Mellanox Technologies Ltd. Packet steering
US9300531B2 (en) 2011-12-12 2016-03-29 Openet Telecom Ltd. Systems, devices, and methods of orchestration and application of business rules for real-time control of subscribers in a telecommunications operator's network
US9173081B2 (en) 2012-01-27 2015-10-27 Openet Telecom Ltd. System and method for enabling interactions between a policy decision point and a charging system
US8886827B2 (en) * 2012-02-13 2014-11-11 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US9253019B1 (en) 2012-03-09 2016-02-02 Juniper Networks, Inc. Fault tolerance for authentication, authorization, and accounting (AAA) functionality
US8940742B2 (en) 2012-04-10 2015-01-27 Infinity Pharmaceuticals, Inc. Heterocyclic compounds and uses thereof
US9871734B2 (en) 2012-05-28 2018-01-16 Mellanox Technologies, Ltd. Prioritized handling of incoming packets by a network interface controller
US8828998B2 (en) 2012-06-25 2014-09-09 Infinity Pharmaceuticals, Inc. Treatment of lupus, fibrotic conditions, and inflammatory myopathies and other disorders using PI3 kinase inhibitors
US9130885B1 (en) * 2012-09-11 2015-09-08 Mellanox Technologies Ltd. End-to-end cache for network elements
US9481667B2 (en) 2013-03-15 2016-11-01 Infinity Pharmaceuticals, Inc. Salts and solid forms of isoquinolinones and composition comprising and methods of using the same
KR101467942B1 (ko) * 2013-04-24 2014-12-02 주식회사 윈스 고속 어플리케이션 인지 시스템 및 처리 방법
PE20160685A1 (es) 2013-10-04 2016-07-23 Infinity Pharmaceuticals Inc Compuestos heterociclicos y usos de los mismos
WO2015051241A1 (en) 2013-10-04 2015-04-09 Infinity Pharmaceuticals, Inc. Heterocyclic compounds and uses thereof
JP6701088B2 (ja) 2014-03-19 2020-05-27 インフィニティー ファーマシューティカルズ, インコーポレイテッド Pi3k−ガンマ媒介障害の治療で使用するための複素環式化合物
US10454991B2 (en) 2014-03-24 2019-10-22 Mellanox Technologies, Ltd. NIC with switching functionality between network ports
WO2015160975A2 (en) 2014-04-16 2015-10-22 Infinity Pharmaceuticals, Inc. Combination therapies
US9413659B2 (en) * 2014-06-11 2016-08-09 Cisco Technology, Inc. Distributed network address and port translation for migrating flows between service chains in a network environment
US9708348B2 (en) 2014-10-03 2017-07-18 Infinity Pharmaceuticals, Inc. Trisubstituted bicyclic heterocyclic compounds with kinase activities and uses thereof
US9807204B2 (en) * 2015-03-06 2017-10-31 Ixia Optimized message processing
US10530691B2 (en) 2015-06-25 2020-01-07 Nec Corporation Method and system for managing data traffic in a computing network
CA2998469A1 (en) 2015-09-14 2017-03-23 Infinity Pharmaceuticals, Inc. Solid forms of isoquinolinones, and process of making, composition comprising, and methods of using the same
US10887232B2 (en) * 2015-12-16 2021-01-05 Hewlett Packard Enterprise Development Lp Dynamic allocation of hash table resources
US10759806B2 (en) 2016-03-17 2020-09-01 Infinity Pharmaceuticals, Inc. Isotopologues of isoquinolinone and quinazolinone compounds and uses thereof as PI3K kinase inhibitors
WO2017214269A1 (en) 2016-06-08 2017-12-14 Infinity Pharmaceuticals, Inc. Heterocyclic compounds and uses thereof
MX2018016227A (es) 2016-06-24 2019-07-08 Infinity Pharmaceuticals Inc Terapias de combinacion.
CN107797942B (zh) * 2016-08-31 2020-11-20 深圳市中兴微电子技术有限公司 减少大容量转发表访问次数的方法及其装置
US10951549B2 (en) 2019-03-07 2021-03-16 Mellanox Technologies Tlv Ltd. Reusing switch ports for external buffer network
US11088744B1 (en) 2020-02-07 2021-08-10 Keysight Technologies, Inc. Methods, systems, and computer readable media for 5G digital beamforming testing
US11398979B2 (en) 2020-10-28 2022-07-26 Mellanox Technologies, Ltd. Dynamic processing trees
JP2022121114A (ja) * 2021-02-08 2022-08-19 Necプラットフォームズ株式会社 ネットワーク装置、パケット処理方法、及びプログラム
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
WO2023018552A1 (en) * 2021-08-11 2023-02-16 Cisco Technology, Inc. Application awareness in a data network
US11924160B2 (en) 2021-08-11 2024-03-05 Cisco Technology, Inc. Application awareness in a data network with network address translation

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916605A (en) * 1984-03-27 1990-04-10 International Business Machines Corporation Fast write operations
US6233702B1 (en) * 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
US6243667B1 (en) * 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US6141692A (en) * 1996-07-01 2000-10-31 Sun Microsystems, Inc. Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol
US6353614B1 (en) * 1998-03-05 2002-03-05 3Com Corporation Method and protocol for distributed network address translation
US6182226B1 (en) * 1998-03-18 2001-01-30 Secure Computing Corporation System and method for controlling interactions between networks
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
US6430184B1 (en) 1998-04-10 2002-08-06 Top Layer Networks, Inc. System and process for GHIH-speed pattern matching for application-level switching of data packets
US6292880B1 (en) * 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6128623A (en) * 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US6418476B1 (en) * 1998-06-29 2002-07-09 Nortel Networks, Limited Method for synchronizing network address translator (NAT) tables using the open shortest path first opaque link state advertisement option protocol
US6266705B1 (en) * 1998-09-29 2001-07-24 Cisco Systems, Inc. Look up mechanism and associated hash table for a network switch
US6298411B1 (en) * 1999-01-05 2001-10-02 Compaq Computer Corporation Method and apparatus to share instruction images in a virtual cache
US6587113B1 (en) * 1999-06-09 2003-07-01 3Dlabs Inc., Ltd. Texture caching with change of update rules at line end
US7061500B1 (en) * 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags
US6650641B1 (en) * 1999-07-02 2003-11-18 Cisco Technology, Inc. Network address translation using a forwarding agent
US6631419B1 (en) * 1999-09-22 2003-10-07 Juniper Networks, Inc. Method and apparatus for high-speed longest prefix and masked prefix table search
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US6697806B1 (en) * 2000-04-24 2004-02-24 Sprint Communications Company, L.P. Access network authorization
US6754662B1 (en) * 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
WO2002013479A2 (en) * 2000-08-04 2002-02-14 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US6661799B1 (en) * 2000-09-13 2003-12-09 Alcatel Usa Sourcing, L.P. Method and apparatus for facilitating peer-to-peer application communication
US20020116527A1 (en) * 2000-12-21 2002-08-22 Jin-Ru Chen Lookup engine for network devices
US6883099B2 (en) * 2001-01-04 2005-04-19 Troika Networks, Inc. Secure virtual interface
US20030009585A1 (en) * 2001-07-06 2003-01-09 Brian Antoine Dynamic policy based routing
US7058642B2 (en) * 2002-03-20 2006-06-06 Intel Corporation Method and data structure for a low memory overhead database

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104054067A (zh) * 2011-03-30 2014-09-17 亚马逊技术公司 基于减负装置的数据包处理的框架和接口
CN104054067B (zh) * 2011-03-30 2017-09-08 亚马逊技术公司 基于减负装置的数据包处理的框架和接口
CN103477613A (zh) * 2011-04-11 2013-12-25 阿尔卡特朗讯公司 映射专用和公用地址
CN105191171A (zh) * 2013-05-31 2015-12-23 英特尔Ip公司 用于设备通信的有效的用户、服务或内容表述
CN105191171B (zh) * 2013-05-31 2019-02-05 英特尔Ip公司 用于设备通信的有效的用户、服务或内容表述
CN103942161B (zh) * 2014-04-24 2017-02-15 杭州冰特科技有限公司 只读缓存的去冗余系统及方法以及缓存的去冗余方法
CN108027774A (zh) * 2015-09-03 2018-05-11 三星电子株式会社 用于自适应缓存管理的方法和装置
CN113542210A (zh) * 2020-04-21 2021-10-22 迈络思科技有限公司 网络设备和联网方法
CN113542210B (zh) * 2020-04-21 2022-12-20 迈络思科技有限公司 网络设备和联网方法
CN111478855A (zh) * 2020-06-23 2020-07-31 翱捷科技(上海)有限公司 基于LwIP协议栈的网络设备快速转发的方法及系统

Also Published As

Publication number Publication date
HK1062753A1 (en) 2004-11-19
GB2396079B (en) 2004-12-08
WO2003028341A2 (en) 2003-04-03
GB0407365D0 (en) 2004-05-05
US7269663B2 (en) 2007-09-11
GB2396079A (en) 2004-06-09
TWI257223B (en) 2006-06-21
GB2396079A9 (en) 2004-08-17
WO2003028341A3 (en) 2003-08-28
DE10297269T5 (de) 2004-09-23
CN1561625B (zh) 2010-09-08
DE10297269B4 (de) 2009-06-04
US20030065812A1 (en) 2003-04-03

Similar Documents

Publication Publication Date Title
CN1561625A (zh) 用查找键作为分组标签以便于使用统一分组转发缓存
CN100472480C (zh) 分组处理方法和装置
US9183244B2 (en) Rule modification in decision trees
US9137340B2 (en) Incremental update
Van Lunteren High-performance pattern-matching for intrusion detection
CN104426911B (zh) 用于编译有限自动机的方法和装置
US6795846B1 (en) Network configuration and management for dynamic networks and methods thereof
US7139747B1 (en) System and method for distributed web crawling
JP4771390B2 (ja) フィルタコードを使用するipsecポリシー管理を実行するための方法および装置
CN1493132A (zh) 基于交换的网络处理器
US20070171911A1 (en) Routing system and method for managing rule entry thereof
US20140279850A1 (en) Batch incremental update
EP1127302A2 (en) Firewall apparatus and method of controlling network data packet traffic between internal and external networks
CN1653763A (zh) 在基于硬件的包交换中用于存储器有效的快速vlan查找和插入的方法和设备
CN105187378A (zh) 处理网络流量的计算机系统及方法
CN1781286A (zh) 用于分组分类和重写的方法和装置
CN1564989A (zh) Mac地址高速搜索引擎
CN1406351A (zh) 快速分组过滤与处理系统、装置及方法
WO2009070191A1 (en) Deterministic finite automata (dfa) graph compression
CN112333169B (zh) 一种报文处理方法、装置、电子设备及计算机可读介质
CN101252585A (zh) 对使用远程文件系统访问协议的数据进行内容过滤的方法与系统
CN1216339C (zh) 显示多模式Web页面的部分的方法和装置
WO2020171410A1 (ko) 멀티 도메인에서 데이터를 수집하는 방법, 장치 및 컴퓨터 프로그램
CN1543150A (zh) 分组分类装置和使用字段级特里结构的方法
CN107770221A (zh) 数据的传输方法、服务器转换装置、客户端转换装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20100908

Termination date: 20130927