CN101345759A - 关联存储器中的因特网协议安全性匹配值 - Google Patents
关联存储器中的因特网协议安全性匹配值 Download PDFInfo
- Publication number
- CN101345759A CN101345759A CNA2008101349122A CN200810134912A CN101345759A CN 101345759 A CN101345759 A CN 101345759A CN A2008101349122 A CNA2008101349122 A CN A2008101349122A CN 200810134912 A CN200810134912 A CN 200810134912A CN 101345759 A CN101345759 A CN 101345759A
- Authority
- CN
- China
- Prior art keywords
- associative
- strategies
- hierarchy
- subclauses
- internet protocol
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 61
- 230000007246 mechanism Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 169
- 238000003860 storage Methods 0.000 claims description 43
- 230000008878 coupling Effects 0.000 claims description 12
- 238000010168 coupling process Methods 0.000 claims description 12
- 238000005859 coupling reaction Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 150
- 230000000875 corresponding effect Effects 0.000 description 37
- 238000012545 processing Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006854 communication Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 13
- 230000014759 maintenance of location Effects 0.000 description 12
- 238000005192 partition Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 10
- 235000003642 hunger Nutrition 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001427 coherent effect Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000037351 starvation Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000474 nursing effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了用于存储和搜索项目分层结构的机制,它可能尤其有益于实现安全性策略(312、314、319)和安全性关联(311、313、318),例如但不局限于因特网协议安全性(IPsec)。项目分层结构按照搜索优先级的顺序被存储。多个元素定义和元素群组被识别出。元素定义和元素的表示按照搜索优先级降低的顺序被存储在按优先级排列的可搜索数据结构(310)中,从而使每个特定元素定义的表示被存储在与所述特定元素定义相关联的一组特定元素的表示之后,并被存储在更低优先级元素定义及其相关元素的表示之前。元素定义可以包括因特网协议安全性策略(312、314、319),而元素可以包括因特网协议安全性关联(311、313、318)。可搜索的数据结构可以包括关联存储器或多个关联存储器条目。
Description
本申请是2004年5月26日递交的发明名称为“关联存储器中的因特网协议安全性匹配值”、申请号为200480011297.6(PCT/US2004/016475)的专利申请的分案申请。
技术领域
本发明的一个实施例尤其涉及通信和计算机系统;更具体而言,一个实施例涉及存储和搜索可能格外有益于实现安全性策略和安全性关联的项目分层结构,例如,但不局限于路由器、分组交换系统、计算机和/或其他设备中的因特网协议安全性(IPsec)。
背景技术
通信工业正在迅速改变,以适应新兴技术和不断增长的客户需求。这种对新应用和提高现有应用性能的客户需求正在促使通信网络和系统供应商采用具有更高速度和更大容量(例如更大带宽)的网络和系统。在尝试实现这些目标的进程中,被很多通信供应商共同采用的一种方法是使用分组交换技术。越来越多地,公共和私有通信网络利用诸如因特网协议(IP)之类的各种分组技术而被建立和扩展。
在1998年11月S.KENT和R.ATKINSON的RFC 2401“SecurityArchitecture for IP”中定义了用于因特网协议的安全性体系结构(IPsec),因此通过参考将该文件结合于此。
IPsec实现方式工作在主机或安全性网关环境中,以对IP流量提供保护。所提供的保护是基于由安全性策略数据库(SPD)限定的要求的,所述SPD是由用户或系统管理员,或在由上述两者之一建立的约束内操作的应用程序来建立和维护的。一般而言,分组基于与数据库中的条目相匹配的IP和传输层头部信息,而被选择用于三种处理模式之一。基于可应用的数据库策略,每个分组被给予IPsec安全性服务、被丢弃,或被允许绕过IPsec。
IPsec通过使系统能够选择所需的安全性协议,确定将用于服务的算法,以及实施提供所请求的服务所需的任何密钥,而在IP层上提供安全性服务。IPsec可以被用于保护一对主机之间、一对安全性网关之间,或者一个安全性网关和一个主机之间的一个或多个“路径”。IPsec可以提供的安全性服务的集合包括访问控制、无连接完整性、数据来源认证、重放分组的拒绝(部分序列完整性的一种形式)、机密性(加密)和受限的流量流机密性。由于这些服务在IP层上提供,因此它们可以被任何更高层协议所使用,所述更高层协议例如是TCP、UDP、ICMP、BGP等。
IPsec分组分类被指定为两层的分层结构:必须首先从安全性策略(SP)的有序列表中找到相关的SP,然后在定位到的SP的上下文中,必须找到正确的安全性关联(SA)。安全性关联是一种单工“连接”,它向其运载的流量提供安全性服务。为了保护在两个主机或两个安全性网关之间的典型双向通信,需要两个安全性关联(每个方向上一个)。安全性关联由以下三元组来唯一标识,该三元组包括:安全性参数索引(SPI)、IP目的地地址和安全性协议标识符。原则上,目的地地址可以是单播地址、IP广播地址或多播组地址。由SA提供的安全性服务的集合依赖于所选择的安全性协议、SA的模式、SA的端点以及协议内可选服务的选择。例如,一个安全性协议提供用于IP数据报的数据来源认证和无连接完整性。
经由单独的SA传送的IP数据报由恰好一个安全性协议来提供保护。有时,一个安全性策略可能要求用于一个特定流量流的多个无法利用单个SA实现的服务的组合。在此情况下,将需要采用多个SA来实现所需的安全性策略。术语“安全性关联束”或“SA束”被用于必须通过它们处理流量以满足安全性策略的多个SA的序列。该序列的顺序由所述策略来限定。(注意,构成一个束的多个SA可以在不同的端点处终止。例如,一个SA可以在移动主机和安全性网关之间扩展,而另一个嵌套的SA可以扩展到网关后面的主机。)
RFC 2401定义在IPsec的一般模型中存在两种名义上的数据库,这两种数据库是安全性策略数据库(SPD)和安全性关联数据库(SAD)。前者指定用于确定从主机流入或流出的所有IP流量的部署、安全性网关或者BITS或BITW IPsec实现方式的策略。后一数据库包含与每个(活动的)安全性关联相关的参数。该部分还定义了选择符的概念,即被安全性策略数据库用于将流量映射到策略(即SA(或SA束))的一组IP和更高层协议字段值。
由于被用作选择符的很多字段都具有方向性,因此启用IPsec的每个接口在名义上都需要分离的流入与流出数据库(SAD和SPD)。通常对于一个主机或安全性网关(SG),只存在一个这样的接口。注意,一个SG总是具有至少两个接口,但是用于企业网的那个“内部”接口通常不启用IPsec,因此只需要一对SAD和一对SPD。另一方面,如果一个主机具有多个接口,或一个SG具有多个外部接口,则每个接口可能需要具有分离的SAD和SPD对。
最后,安全性关联是用于加强IPsec环境中的安全性策略的管理结构。因此,SA处理的本质元件是在下层的安全性策略数据库(SPD),其指定哪些服务将以哪种方式被提供到IP数据报。数据库及其接口的形式不在RFC 2401的范围内。但是,RFC 2401确实指定了某个必须提供的最小管理功能,其用于允许用户或系统管理员控制IPsec如何被应用到由主机发送或接收或穿过安全性网关的流量。
在包括非IPsec流量在内的所有流量(流入和流出)的处理期间,都必须参考SPD。为了支持这一点,SPD需要用于流入和流出流量的截然不同的条目。SPD包含了策略条目的有序列表。每个策略条目由限定该策略条目所包括的IP流量集合的一个或多个选择符来作为关键字。这可以被看作分离的SPD(流入与流出)。另外,对于每个启用了IPsec的接口,都必须提供名义上分离的SPD。SPD必须在被给予IPsec保护的流量和被允许绕过IPsec的流量之间进行区分。这适用于由发送者应用的IPsec保护以及必须出现在接收者处的IPsec保护。对于任何流出或流入的数据报,可能有以下三种处理选择:丢弃、绕过IPsec或应用IPsec。第一种选择指的是完全不允许退出主机、穿越安全性网关,或被递送到应用程序的流量。第二种选择指的是允许在无附加的IPsec保护的情况下通过的流量。第三种选择指的是被给予IPsec保护的流量,对于这种流量,SPD必须指定将提供的安全性服务、将采用的协议、将使用的算法等等。
在每个IPsec实现方式中,存在名义上的安全性关联数据库,在该数据库中,每个条目限定与一个SA相关联的参数。每个SA在SAD中具有一个条目。对于流出处理,条目被SPD中的条目所指向。注意,如果SPD条目当前未指向适用于该分组的SA,该实现方式则创建适当的SA(或SA束),并将该SPD条目链接到该SAD条目。对于流入处理,SAD中的每个条目由目的地IP地址、IPsec协议类型和SPI来索引。以下参数与SAD中的每个条目相关联。该描述并不意指MIB,而仅仅意味着支持IPsec实现方式中的SA所需的最小数据项目的规范。
图1示出了基于RFC 2401用于处理流出分组的现有技术实现方式。处理开始于进程块100,并前进至进程块102,在这里,基于分组在安全性策略数据库中执行数据库查找操作,以识别相应的安全性策略。如果在进程块104中确定未找到策略,则在进程块106中丢弃分组,并且如进程块108所指示的,处理完成。否则,在进程块110中,基于分组执行第二查找操作,这次查找是在与先前的查找操作识别出的安全性策略相对应的安全性关联数据库中执行的。如进程块112中确定的,如果未定位到相应的安全性关联,则在进程块114中,该安全性关联被添加到相应的安全性关联数据库。在进程块116中,分组被根据相应的安全性关联处理。如进程块118所指示的,处理完成。
为了识别与分组相关联的SA,RFC 2401定义了两个用于执行查找操作的步骤进程,即通过首先在安全性策略数据库中执行查找,然后基于识别出的安全性策略来执行后续的第二查找操作以识别出相应的安全性关联。尤其在分组速率增长,从而将被分组处理器处理的分组数量增长时,这种两阶段查找进程可能是有限的。希望有一种新方法来执行IPsec识别操作。
发明内容
除其他内容之外,这里公开了用于存储和搜索可能格外有益于实现安全性策略和安全性关联的项目分层结构的方法、装置、数据结构、计算机可读介质、机构和装置,例如,但不局限于在路由器、分组交换系统、计算机和/或其他设备中使用的因特网协议安全性(IPsec)。
一个实施例按照搜索优先级的顺序存储项目分层结构。多个元素定义和元素群组被识别出。元素定义和元素的表示按照搜索优先级降低的顺序被存储在按优先级排列的可搜索数据结构中,从而使每个特定元素定义的表示被存储在与所述特定元素定义相关联的一组特定元素的表示之后,并被存储在更低优先级元素定义及其相关元素的表示之前。在一个实施例中,元素定义包括因特网协议安全性策略,而元素包括因特网协议安全性关联。在一个实施例中,可搜索的数据结构包括关联存储器或多个关联存储器条目。在一个实施例中,对应于某个范围的值的一个元素定义或元素被分裂成多个条目。在一个实施例中,这种分层结构包括多于两个层次,并且元素定义和元素群组恰好是多于两个层次中的两层。
一个实施例维护用于识别出的因特网协议安全性策略的有序列表的数据结构。与因特网协议安全性策略的有序列表相关联的有序关联存储器条目被编程为一个或多个关联存储器。与因特网协议安全性策略的有序列表相关联的相应上下文存储器条目被编程为一个或多个上下文存储器。基于接收到的分组对有序关联存储器条目执行关联存储器查找操作,以识别特定关联存储器条目位置。基于特定关联存储器条目位置对上下文存储器执行查找操作,以识别因特网协议安全性策略的有序列表中的特定因特网协议安全性策略。基于接收到的分组的特定安全性关联条目被添加到有序关联存储器条目,该特定安全性关联条目对应于特定的因特网协议安全性策略,并且该特定安全性关联条目被添加到有序关联存储器条目中的如下位置:该位置在特定关联存储器条目位置之前,并在因特网协议安全性策略的有序列表中的位于特定关联存储器条目位置之前的其他安全性策略条目之后。
附图说明
所附权利要求书具体提出了本发明的特征。从以下结合附图的详细描述中,可以最好地理解本发明及其优点。在附图中:
图1示出了IPsec的现有技术实现方式;
图2A的框图示出了用于存储和搜索项目分层结构的一个实施例;
图2B的框图示出了用于存储和搜索项目分层结构的一个实施例;
图3A的框图示出了在一个实施例中使用的按优先级排列的可搜索数据结构;
图3B的框图示出了在一个实施例中使用的按优先级排列的可搜索数据结构;
图3C的框图示出了在一个实施例中使用的按优先级排列的可搜索数据结构;
图4的框图示出了用于存储和搜索特别用于IPsec的项目分层结构的一个实施例;
图5A示出了在一个实施例中使用的关联存储器条目;
图5B示出了在一个实施例中使用的用于对于相应范围的值生成多个关联存储器条目的进程;
图6A示出了在一个实施例中使用的用于处理流入分组的进程;
图6B示出了在一个实施例中使用的用于处理流出分组的进程;
图7示出了在一个实施例中使用的用于向关联存储器条目的有序列表添加条目的进程;以及
图8A-C和图9A-B示出了在一个实施例中使用的用于扩展分区(partition)以及重新分布分配给分区的空间的进程。
具体实施方式
除其他内容之外,这里公开了用于存储和搜索可能格外有益于实现安全性策略和安全性关联的项目分层结构的方法、装置、数据结构、计算机可读介质、机构和装置,例如,但不局限于在路由器、分组交换系统、计算机和/或其他设备中使用的因特网协议安全性(IPsec)。这里所描述的实施例包括各种元素和限制,但是其中没有一个元素或限制被看作必不可少的元素或限制。每个权利要求单独地全面叙述本发明的一个方面。此外,所描述的某些实施例可以包括,但不局限于,系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质及其他。一个或多个系统、设备、组件等可以包含一个或多个实施例。一个权利要求中的某些元素或限制可能被相同或不同的系统、设备、组件等所执行。此后描述的实施例包含本发明的范围和精神内的各种方面和配置,而附图示出了示例性而非限制性的配置。
这里所使用的术语“分组”指的是所有类型的分组或者任何其他的信息或数据单元,包括但不局限于,固定长度的信元和可变长度的分组,它们中的每一个可以或不可以被划分成更小的分组或信元。这里使用的术语“分组”同样指的是分组本身或分组指示,例如但不局限于,分组或分组头部的所有或部分、数据结构值、指针或索引,或者分组的任何其他部分或标识。此外,这些分组可以包含一种或多种类型的信息,包括但不局限于,语音、数据、视频和音频信息。这里一般使用的术语“项目”指的是分组或任何其他信息或数据的单元或片段、设备、组件、元件或其他实体。短语“处理一个分组”和“分组处理”通常指的是基于分组内容(例如分组头部或其他字段)执行某些步骤或动作,并且这些步骤或动作可以或不可以包括修改、存储、丢弃和/或转发分组和/或相关数据。
术语“系统”在这里一般用于描述任何数目的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构,或其组件的组合。术语“计算机”在这里一般用于描述任何数目的计算机,包括但不局限于个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、大型机等等。术语“处理元件”在这里一般用于描述任何类型的处理机构或设备,例如处理器、ASIC、现场可编程门阵列、计算机等。术语“设备”在这里一般用于描述任何类型的机构,包括计算机或系统或其组件。术语“任务”和“进程”在这里一般用于描述任何类型的运行程序,包括但不局限于,计算机进程、任务、线程、执行应用程序、操作系统、用户进程、设备驱动程序、本机码、机器或其他语言等,并且可以是交互式的和/或非交互式的,在本地和/或远程执行的,在前台和/或后台执行的,在用户和/或操作系统的地址空间中执行的,库和/或独立应用程序的例程,并且不局限于任何特定的存储器分区技术。在附图中示出的步骤、连接和信号与信息的处理包括,但不局限于,可以以相同或不同的串行或并行顺序和/或由不同的组件和/或进程、线程等,和/或经由不同的连接而被执行的框图和流程图和消息序列图,并且这些图可以与保持在本发明的范围和精神内的其他实施例中的其他功能相结合。此外,术语“识别”一般用于描述用于直接或间接确认某些东西的方式或机制,它可以包括,但不局限于,接收、存储器检索、确定、限定、计算、生成等等。
此外,术语“网络”和“通信机构”在这里一般用于描述一个或多个网络、通信介质或通信系统,包括但不局限于因特网、私有或公共电话、蜂窝网络、无线网络、卫星网络、线缆网络、局域网、城域网和/或广域网,线缆、电子连接、总线等,以及诸如消息传递、进程间通信、共享存储器等内部通信机构。术语“消息”在这里一般用于描述可以或不可以,但通常是经由一个或多个任何类型的通信机构被传输的一段信息。
术语“存储机构”包括任何类型的用于以任何格式保存指令或数据的存储器、存储设备或其他机构。“计算机可读介质”是一个可扩展的术语,其包括其中包含诸如网络接口卡和缓冲区这样的接口和设备的任何存储器、存储设备、存储机构和其他存储和信令机构,以及任何通信设备和被接收和发送的信号,以及计算机化的系统能够解释、接收和/或发送的其他当前和未来的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、磁带、联网服务、磁带驱动器和其他存储设备。存储器和存储设备可以存储将由处理元件和/或控制逻辑执行的计算机可执行的指令,以及由处理元件和/或控制逻辑操作的数据。术语“数据结构”是一个可扩展的术语,其指的是可以被应用于数据以辅助解释数据或在数据上执行操作的任何数据元素、变量、数据结构、数据库和/或一个或多个组织方案,例如是但不局限于,存储位置或设备、集合、队列、树、堆栈、列表、链接列表、阵列、表格、指针等。数据结构通常被保存在存储机构中。术语“指针”和“链接”在这里一般用于标识用于参考或识别另一元素、成分或其他实体的某种机构,并且这些可以包括,但不局限于,对存储器或其他存储机构或其中位置的参考、数据结构中的索引、值等等。
术语“一个实施例”在这里用于指示特定的实施例,其中每次提及“一个实施例”可以指代不同的实施例,并且这里在描述相关特征、元素和/或限制时重复使用的术语没有建立每个和所有实施例必须包括的相关特征、元素和/或限制的累积集合,尽管一个实施例通常可以包括所由这些特征、元素和/或限制。另外,短语“用于xxx的装置”通常包括包含了用于执行xxx的计算机可执行指令的计算机可读介质。
另外,术语“第一”、“第二”等在这里通常用于指代不同单元(例如第一元件、第二元件)。这里这些术语的使用不一定意味着诸如一个单元或事件在另一单元或事件之前发生或到来这样的顺序,而是提供了用于在特定单元之间进行区分的机制。另外,单数时态名词的使用是非限制性的,其使用通常包括一个或多个特定事物,而不是指仅仅一个(例如词语“存储器”的使用通常指的是一个或多个存储器,并不是必须指明“一个存储器或多个存储器”或“一个或多个存储器”或“至少一个存储器”等等)。此外,短语“基于x”和“响应于x”被用于指示从中导出或导致某种事物的项目x的最小集合,其中“x”是可扩展的,并且不一定描述对其执行操作的项目的完备列表等等。另外,短语“被耦合到”用于指示两个元件或设备之间的某种级别上的直接或间接连接,其中耦合的设备修改或不修改被耦合的信号或被传输的信息。术语“子集”被用于指示一个集合中的所有元素或部分元素所组成的群组。术语“子树”被用于指示树中的全部或部分。此外,术语“或”在这里被用于标识对连接项目中的一个或多个(包括全部)的选择。
除其他内容之外,这里公开了用于存储和搜索可能格外有益于实现安全性策略和安全性关联的项目分层结构的方法、装置、数据结构、计算机可读介质、机构和装置,例如,但不局限于在路由器、分组交换系统、计算机和/或其他设备中使用的因特网协议安全性(IPsec)。
一个实施例以搜索优先级顺序存储项目分层结构。多个元素定义和元素的群组被标识。元素定义和元素的表示以搜索优先级降低的顺序被存储在按优先级排列的可搜索数据结构中,从而使每个特定元素定义的表示被存储在与此特定元素定义相关联的一组特定元素的表示之后,并且在更低优先级元素定义及其相关元素的表示之前。在一个实施例中,元素定义包括因特网协议安全性策略,而元素包括因特网协议安全性关联。在一个实施例中,可搜索的数据结构包括一个关联存储器或多个关联存储器的条目。在一个实施例中,对应于某个范围的值的元素定义或元素被分裂为多个条目。在一个实施例中,分层结构包括多于两个层次,并且元素定义和元素的群组恰好是这多于两个层次中的两个。
一个实施例维护用于识别出的因特网协议安全性策略的有序列表的数据结构。与因特网协议安全性策略的有序列表相关联的有序关联存储器条目被编程为一个或多个关联存储器。与因特网协议安全性策略的有序列表相关联的相应上下文存储器条目被编程为一个或多个上下文存储器。基于接收到的分组对有序的关联存储器条目执行关联存储器查找操作,以识别特定关联存储器条目位置。基于特定关联存储器条目的位置对上下文存储器执行查找操作,以识别因特网协议安全性策略的有序列表中的特定因特网协议安全性策略。基于接收到的分组的特定安全性关联条目被添加到有序关联存储器条目,该特定安全性关联条目对应于特定的因特网协议安全性策略,并且该特定安全性关联条目被添加到有序关联存储器条目中的如下位置:该位置在特定关联存储器条目位置之前,并在因特网协议安全性策略的有序列表中的位于特定关联存储器条目位置之前的其他安全性策略条目之后。
图2A的框图示出了用于存储和搜索项目分层结构的一个实施例。编程机构200(例如分组处理器、调度程序、处理元件、ASIC、电路或任何其他机构)产生和编程一个或多个关联存储器201和一个或多个上下文存储器202中的条目分层结构。这种分层结构的层次数目可以根据实施例或其应用而变化。例如,在IPsec的上下文中,存在两个层次(即安全性策略和安全性关联)。例如,在计算机调度或处理单元的上下文中,一个实施例使用两个层次(例如进程和进程中的线程)。一个实施例使用三个层次(例如应用程序、进程和线程)。所支持的分层结构的应用和层次的类型和数目是可扩展的,并且这些仅仅是由实施例支持的无限数目中的一些示例。
查找字产生机构210(例如分组处理器、调度程序、处理元件、ASIC、电路或任何其他机构)产生用于实施例操作所在上下文的查找值211。关联存储器201基于查找值211执行查找操作,以识别匹配位置结果212。在一个实施例中,匹配位置/查找结果212被使用。在一个实施例中,基于匹配结果212在上下文存储器202中执行查找操作,以产生查找结果213。
图2B的框图示出了用于存储和搜索项目分层结构的一个实施例。系统240包括按优先级排列的可搜索数据结构,该数据结构被用条目分层结构编程。系统240通常包括用于存储和搜索项目分层结构的机构和装置。例如,一个实施例包括一个如下的进程:该进程对应于这里所示框图或流程图之一,或者对应于利用可以实现权利要求中的其他元素/限制的其他内部或外部组件或设备来实现权利要求的全部或部分的任何其他装置或机构。另外,单个或多个系统、设备、组件等可以构成一个实施例。
在一个实施例中,系统240包括处理元件241、存储器242、存储设备243、一个或多个关联存储器244和用于接收和发送分组或其他项目的接口245,这些元件都经由一个或多个通信机构249(出于示例目的而被示为总线)而被耦合。系统240的各个实施例可以包括更多或更少的元件。例如,一个实施例不包括关联存储器;相反,按优先级排列的可搜索数据结构被存储在存储器242中、存储设备243中和/或系统240外部等。
系统240的操作通常受控于使用存储器242和存储设备243的处理元件241,以执行一个或多个任务或进程,例如,但不局限于存储和搜索项目分层结构。
存储器242是一种类型的计算机可读介质,并且通常包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件。存储器242通常存储将被处理元件241执行的计算机可执行指令和/或由用于根据本发明的一个实施例实现功能的处理元件241所操作的数据。存储设备243是另一类型的计算机可读介质,并且通常包括固态存储介质、盘驱动器、磁带、联网服务、磁带驱动器和其他存储设备。存储设备243通常存储将被处理元件241执行的计算机可执行指令和/或由用于根据本发明的一个实施例实现功能的处理元件241所操作的数据。
图3A的框图示出了在一个实施例中使用的按优先级排列的可搜索数据结构300。在一个实施例中,数据结构300被存储在一个或多个关联存储器(带有或不带有相应的上下文存储器)中。在一个实施例中,数据结构300被存储在一个或多个其它的存储器和/或存储设备中。注意,在一个实施例中,元素定义/安全性策略的排序很要紧,而元素群组/安全性关联内的元素的排序则无关紧要。但是,在一个实施例中,元素群组/安全性关联内的元素的排序也很要紧。
如图所示,数据结构300包括多个条目301-309,它们具有如图所示的按优先级排列的搜索顺序。一个或多个元素的第一群组301被存储在相应的第一元素定义302之前。一个或多个元素的第二群组303被存储在相应的第二元素定义304之前,以此类推,如元素的n个分区及其相应定义的表示所示。
在一个实施例中,在数据结构300中存储了元素定义以及元素的表示,它们以搜索优先级降低的顺序而被存储在按优先级排列的可搜索数据结构中,从而使每个特定元素定义的表示被存储在与此特定元素定义相关联的一组特定元素的表示之后,并在更低优先级元素定义及其相关元素的表示之前。
图3B的框图示出了在一个实施例中使用的按优先级排列的可搜索数据结构310。在一个实施例中,数据结构310被存储在一个或多个关联存储器(带有或不带有相应的上下文存储器)中。在一个实施例中,数据结构310被存储在一个或多个其它的存储器和/或存储设备中。
如图所示,数据结构300包括多个条目311-319,它们具有如图所示的按优先级排列的搜索顺序。一个或多个安全性关联的第一群组311被存储在相应的第一安全性策略定义312之前。一个或多个安全性关联的第二群组313被存储在相应的第二安全性策略定义314之前,以此类推,如安全性关联的m个分区及其相应的安全性策略定义的表示所示。
在一个实施例中,在数据结构310中存储了安全性策略以及安全性关联的表示,它们以搜索优先级降低的顺序而被存储在按优先级排列的可搜索数据结构中,从而使每个特定安全性策略的表示被存储在与此特定安全性策略相关联的一组特定安全性关联的表示之后,并在更低优先级安全性策略及其相关安全性关联的表示之前。
图3C的框图示出了在一个实施例中使用的按优先级排列的可搜索数据结构330。在一个实施例中,数据结构330被存储在一个或多个关联存储器(带有或不带有相应的上下文存储器)中。在一个实施例中,数据结构330被存储在一个或多个其它的存储器和/或存储设备中。注意,在一个实施例中,分层结构层次群组331-336中的每一个群组内的项目的排序都很要紧;而在一个实施例中,分层结构层次群组331-336中的至少一个群组内的项目的排序是无关紧要的。
如图所示,数据结构300包括N个分层结构的层次,以强调一个实施例支持两个或更多个分层结构的层次,这些层次具有如图所示的按优先级排列的搜索顺序。在特定的分层结构的层次中,存在相同或不同数目的群组。例如,如图所示,分层结构的层次1包括具有按优先级排列的搜索顺序的J个条目群组,分层结构的层次2包括具有按优先级排列的搜索顺序的K个条目群组,而分层结构的层次N包括具有按优先级排列的搜索顺序的L个条目群组。注意,在一个实施例中,J、K和L的值是不同的。而在一个实施例中,J、K和L中的两个值是相同的。而且,在一个实施例中,元素定义和元素群组可以被编程到群组331-336中的任何一个群组中去,只要对应于所需搜索顺序的所需分层结构被保持即可。在一个实施例中,存在多个层次的元素定义。在一个实施例中,存在多个层次的元素。在一个实施例中,元素定义总是位于分层结构的每个层次内的最低优先级群组332、334和336中。在一个实施例中,元素总是位于最高搜索优先级群组331、333和335中,而其他群组包括了多个层次的元素定义。在一个实施例中,群组331-336仅包括元素定义。在一个实施例中,群组331-336仅包括元素(和/或任何其他项目的表示)。
例如,如图3C所示的分层结构的层次和群组被用于一个实施例,以存储分层结构中N个层次的用于分类动物的群组条目。分层结构的每个层次可以包括按1到7的搜索顺序排列的(1)物种、(2)属、(3)科、(4)目、(5)纲、(6)门和(7)界的群组。因此,当执行搜索时,物种如果已知则将被识别出。否则,将(以被编程的顺序)识别出相应的属、科、目、纲、门和界的第一匹配条目。另外,在一个实施例中,如图3C所示的分层结构的层次和群组被用于存储分层结构中N个层次的用于识别匹配的线程、进程、应用程序、用户等(或其某个变体)的群组条目。
图4的框图示出了用于存储和搜索特别用于IPsec的项目分层结构的一个实施例,并且其使用一个或多个三重内容可寻址存储器,所述存储器被示为TCAM 424。在一个实施例中,另一类型的关联存储器被使用。虽然图4使用了TCAM的特定标签,但是另一类型的可扩展型关联存储器(例如CAM)被用于一个实施例。TCAM管理器422在带有上下文存储器的流入安全性处理器402内以及在带有上下文存储器的流出安全性处理器442内编程和更新TCAM 424和上下文存储器。在一个实施例中,TCAM管理器422在编程一个或多个关联存储器424和相应上下文存储器的过程中,使用存储了安全性策略和关联数据库的存储器421。
在一个实施例中,流入安全性处理器402只在TCAM中执行查找操作以用于如RFC 2401所示的清洁(clear)分组SP搜索;而在一个实施例中,当如图4所示的体系结构可扩展以满足特定应用的需求时,可采用不同的搜索机制。注意,在一个实施例中,特定数据库的内容可以被复制,以便使查找(例如用于流入分组和用于流出分组)和/或更新动作最优化。
在一个实施例中,流入安全性处理器402接收到流入分组411,并产生包括在更新和查找请求412中的查找请求。TCAM管理器422立即或在存储查找请求之后产生适当的查找字,如果该查找字还未被流入安全性处理器402提供的话。该查找字在编程和查找请求423中被传输到TCAM424,TCAM 424执行关联存储器的查找操作以产生查找结果413,该查找结果413被用于在流入安全性处理器402内的上下文存储器中执行查找操作。
在一个实施例中,流入安全性处理器402内的上下文存储器包括指针/索引的阵列,该阵列由包括在查找结果413中的TCAM匹配地址来索引。流入安全性处理器402使用来自该阵列的指针/索引来定位SPD条目。从而,当SP搜索完成时,流入安全性处理器402使用TCAM匹配位置作为对上下文存储器中的SP条目阵列的索引,其中一个或多个条目可能指向存储器401中存储了SP数据库(SPD)的拷贝的同一SP。
在一个实施例中,上下文存储器不被使用。相反,保存在存储器401中的SPD直接由TCAM匹配索引来索引,阵列中有重复SP,并且对于不涉及SP的索引有空条目(或其他指示)。
在一个实施例中,存储在存储器401中的SPD作为字节阵列而被保存。每个字节对应于具有相同索引的TCAM条目,并包含当清洁分组与其相关TCAM条目相匹配时所需的动作。被允许的动作包括:丢弃、通过和保护。如果该动作是保护分组,则将建立SA隧道。当SP被建立时,TCAM管理器422必须发起SPD中的相应SP。在一个实施例中,这种更新请求412被传输到流入安全性处理器402,由流入安全性处理器402更新存储器401。
一个实施例包括存储在存储器403中的安全性关联数据库(SAD)。在一个实施例中,SAD被实现为由安全性策略索引(SPI)来索引的阵列。在一个实施例中,使用SPI的最低的17位;而在一个实施例中,使用另一组字节。当具有有效的IPsec头部的分组到达时,其SPI被提取出来并被索引到SAD。TCAM管理器422在它们被插入时也建立这些SA。
在一个实施例中,流出安全性处理器442使用TCAM 424来匹配安全性策略与服务关联。与因特网协议安全性策略的有序列表相关联的有序关联存储器条目被编程到一个或多个关联存储器424中,而相应的上下文存储器条目被编程到流出安全性处理器442的上下文存储器中。
在一个实施例中,安全性策略和安全性关联的分层结构被存储在TCAM 424中,以使对应于特定安全性策略的安全性关联条目被存储在特定安全性策略之前,并且使安全性策略以其按优先级排列的顺序被存储。在一个实施例中,与安全性策略相关的安全性关联被存储在对应于所有更高优先级安全性策略(及其各自的安全性关联)的条目之后;而在一个实施例中,未要求这种排序。因此,在一个实施例中,TCAM 424中的单个查找操作可以被用于识别对应于最高优先级安全性策略的安全性关联,如果存在这样的安全性关联的话,否则,将识别出该安全性策略本身。
在一个实施例中,由流出安全性处理器442基于接收到的流出分组431来发起关联存储器的查找操作,以识别特定的关联存储器条目位置(例如被包括在查找结果433中)。随后,基于特定的关联存储器条目位置,在上下文存储器中执行查找操作,以识别因特网协议安全性策略的有序列表中的特定因特网协议安全性策略或安全性关联之一。如果安全性策略被识别出,TCAM管理器432则将基于接收到的分组将特定安全性关联条目添加到TCAM中的一个位置,该位置位于查找操作期间识别出的特定关联存储器条目位置(即对应于匹配的安全性策略的条目)之前,并位于对应于具有更高优先级的安全性策略的条目之后。
在一个实施例中,带有上下文存储器的流出安全性处理器442中的上下文存储器包括到SP和SA的指针/索引(例如与之前描述的指针阵列类似)。在一个实施例中,流出安全性处理器442维护由TCAM匹配地址索引的混合SP和SA的直接阵列。在一个实施例中,SP信息包括参考ID,以及涉及对匹配的对待方式的信息,所述对待方式包括:丢弃、通过或发起隧道。在一个实施例中,SA信息内容需要多个缓存线路,通过在流出安全性处理器442上包括足够的存储器,可以在避免每个分组的额外存储器事务的同时使用后一方案。另外,一个实施例还包括用于确定应该在何时删除元素的机制。
一个实施例包括流出安全性处理器442(它包括也充当SPD的上下文阵列)、带有安全性策略数据库的存储器441和带有安全性关联数据库(SAD)的存储器443。在一个实施例中,两个安全性关联数据库被用于提高性能。流出安全性处理器442通过以下方式来处理每个流出分组:首先提取在RFC 2401中指定的5个选择符,然后在TCAM 424中执行对于匹配的搜索。如果找到匹配,流出安全性处理器442则使用包括在查找结果433中的匹配的TCAM条目的索引来索引上下文阵列。上下文阵列条目指示TCAM匹配对应于匹配的SA还是SP。如果是SP,上下文阵列则还包含用于匹配该SA的分组的适当动作。如果是SA,上下文阵列则包含到用于相应SA的SAD的索引。流出SA只有一种数据结构。
图5A示出了在一个实施例中使用的关联存储器条目。如图所示,TCAM条目500包括源地址字段501、目的地地址字段502、源端口字段503、目的地端口字段504、协议类型字段505、服务指示字段506、用于指示该条目是SA还是SP条目的条目类型字段507和实现方式特定字段508。注意,一个实施例在该条目对应于服务策略的情况下,在字段507中将掩码字段设置为不关心,这是因为每个搜索都是在SPD上(例如在所有SP条目上)执行的。通过在条目对应于SA时不掩藏该值,则可以搜索所有条目,或只搜索SP。因此,全局掩码寄存器0 510将字段511-516中的多个位设置为匹配,并将字段517-518中的多个位设置为忽略(即不关心)。从而,通过在搜索中使用全局掩码寄存器0 510,将致使SP和SA条目两者都被搜索。全局掩码寄存器1 520将字段521-527中的多个位设置为匹配,并将字段528中的位设置为忽略(即不关心)。从而,通过在利用指定SP条目类型的查找字的搜索中使用全局掩码寄存器1 520,搜索将致使只有SP条目将被搜索。注意,块掩码的使用在2002年5月14日发布的Ross等人的美国专利6,389,506“Block Mask TernaryCAM”中有所描述,因此通过参考将该专利结合于此。
图5B示出了在一个实施例中使用的用于对于相应范围的值产生多个关联存储器条目的进程。某些应用希望在某个范围的值(例如源端口号72-83)上匹配。
由于TCAM不支持任意集合或范围作为选择标准,因此需要分裂器来执行任何所需的条目扩展。例如,实现目的地端口范围<25和>25需要将单个条目分裂为16个条目。图5B示出了在一个实施例中用于将条目分裂成多个条目的机制的伪代码。分裂器使用匹配值和不关心掩码的集合,将以范围设置格式指定的SP转换成以扩展形式指定的SP。例如,支持1到15的范围变为4组(匹配值,不关心掩码):(0x1,0xe)、(0x2,0xd)、(0x4,0xb)和(0x8,0x7)。如图所示,首先,检查TCAM条目d…d以判断它是否与被该范围所覆盖的值的子集相匹配。如果不匹配,则以0d…d和1d…d重复该进程。此进程递归地发生(使用栈——非函数递归)。当被测试的条目与无交集的值集合相匹配时,修剪分支。当条目与被该范围所匹配的值的子集相匹配时,条目被存储。与重叠集合相匹配的条目被分裂,并被压入到工作栈上。
图6A示出了在一个实施例中使用的用于处理流入分组的进程。处理开始于进程块600,并前进至进程块602,在这里,分组被接收。如进程块604所确定的,如果分组被标记为符合IPsec,则在进程块606中,分组被处理,并且处理完成,如进程块619所示。否则,在进程块610中,基于接收到的分组(例如具有与存储在关联存储器中的那些或数据结构的其他实现方式相一致的字段)来产生查找字。在进程块612中,使用查找字和全局掩码寄存器在关联存储器中发起并执行查找操作,从而只有SP条目被搜索。在进程块614中,查找结果被接收,并在上下文存储器中执行基于该结果的查找操作。然后,在进程块616中,根据在上下文存储器中识别出的动作来处理分组。处理完成,如进程块619所示。
图6B示出了在一个实施例中使用的用于处理流出分组的进程。处理开始于进程块640,并前进至进程块642,在这里,分组被接收。接下来,在进程块644中,基于接收到的分组产生查找字。在进程块646中,使用查找字和全局掩码寄存器在关联存储器中发起并执行查找操作,从而使SP和SA条目两者都被搜索。在进程块648中,查找结果被接收,并在上下文存储器中执行基于该结果的查找操作。如进程块650所确定的,如果匹配的条目对应于SA条目,则在进程块652中,基于从上下文存储器中获取的查找结果在SAD中识别将执行的动作,并且根据识别出的动作来处理分组。否则,在进程块660中,根据由上下文存储器识别出的动作来处理分组;并且在进程块662中,安全性访问条目被添加到SAD,并且关联和上下文存储器被相应地更新。处理完成,如进程块669所示。
图7示出了在一个实施例中使用的用于向关联存储器条目的有序列表添加条目的进程。处理开始于进程块700,并前进至进程块702,在这里,识别出关联存储器或其他按优先级排列的可搜索数据结构的更新请求接下来,在进程块704中,识别出用于添加一个或多个条目的分区和可能的确切位置。如进程块706所确定的,如果在识别出的分区中存在用于添加一个或多个条目的空间,则在进程块712中添加条目。否则,在进程块708中,建立(或尝试建立)用于新条目的空间。如进程块710所确定的,如果该分区的扩展成功,则在进程块712中添加条目。否则,不存在用于所述条目的空间,并且产生错误状况。处理完成,如进程块714所示。
图8A-D和图9A-D示出了在一个实施例中使用的用于扩展分区以及重新分布分配给分区的空间的进程。注意,这些进程可以以递归或其他方式调用以扩展/收缩分区,从而重新分布这些分区中的空闲空间。一个实施例试图在所有分区间保持平均的空闲空间分布(或接近平均分布的某种情况),以使将在向分区添加一个或多个条目时执行的调整量最小化。通过保持分区间的空闲空间的大致平均分布,可以快速执行元素或元素定义(它可以包括一个或多个关联存储器条目)的单次插入,并限制最坏情况的插入时间,这对于具有高更新速率的应用来说是很重要的。注意,一个实施例并未尝试保持空闲空间的平均分布,这对于具有相对较低插入速率的应用来说可能非常实用,尤其当与最坏情况插入时间相比时更是如此。
在一个实施例中,当分区需要空间或正处于饥饿中(例如空间未用完,但是希望增大其空间以用于未来的添加)时,它从相邻的一个或多个分区获取空间,并且可能这些分区都从它们附近的一个分区获取空间等等。在用于“喂养”饥饿分区的该进程或另一进程期间,可以重新分配某些空闲空间。当然,一个实施例使用用于扩展分区和重新分布空间的另一机制。
图8A示出了在一个实施例中使用的用于扩展分区的进程。处理开始于进程块800。如进程块802所确定的,如果将增大尺寸的分区不具有左侧的相邻分区,则如进程块804所确定的,如果该分区具有右侧的相邻分区,则在进程块810中,从相邻的右侧分区获取左侧的空间。否则,在进程块806中,识别出该分区是唯一分区,并且该分区获取可用作分层结构的数据库的整个关联存储器空间。
否则,在进程块802中确定该分区具有左侧的相邻分区。如进程块812中所确定的,如果该分区不具有右侧的相邻分区,则在进程块814中,获取左侧相邻分区的右侧空间。否则,在进程块816中,获取左侧相邻分区的左侧空间。在进程块818中,基于获取的空间,更新用于该分区的空间计数。
如进程块820所确定的,如果已经获取了足够的空间,则处理前进至进程块808。否则,在进程块822中,获取右侧相邻分区的右侧空间,并且在进程块824中,基于获取的空间,更新用于该分区的空间计数。
如进程块826所确定的,如果已经获取了足够的空间,则处理前进至进程块808。否则,在进程块828中,获取左侧相邻分区的左侧空间。
如进程块830所确定的,如果左侧分区处于饥饿中(例如具有比分区间的平均空闲空间少或少得多的空闲空间),则在进程块832中,获取右侧相邻分区的右侧空间,并在进程块834中,将获取的空间馈给右侧的饥饿分区。
如进程块836所确定的,如果右侧分区处于饥饿中(例如具有比分区间的平均空闲空间少或少得多的空闲空间),则在进程块838中,获取左侧相邻分区的左侧空间,并在进程块840中,将获取的空间馈给左侧的饥饿分区。
最后,给予该分区的空间量在进程块808中被返回,并且处理完成,如进程块849指示。
图8B示出了在一个实施例中使用的从一个分区获取左侧空间的进程。处理开始于进程块850,并前进至进程块852,在这里计算当前分区中的可用空间。如进程块854所确定的,如果存在额外空间,则在进程块856中,该分区被收缩以为其他分区腾出空间。否则,在进程块858中,分区确定它是否处于饥饿中(例如需要更多空间),并据此更新其状态。
接下来,如进程块860所确定的,如果有更多的左侧分区需要检查以获得所需空间,则在进程块862中,选择左侧分区,并且处理返回到进程块852。否则,在进程块864中,当前分区中的条目被向左挤压/移动。在一个实施例中,所有元素/SA和定义/SP都被紧靠其邻居移动,从而在它们之间不再有空闲空间。如进程块866所确定的,如果当前分区不是初始分区,则在进程块868中,选择右侧的下一分区,并且处理返回到进程块864。否则,在进程块870中,返回被给予的空间量和饥饿状态。处理完成,如进程块872所示。
图8C示出了在一个实施例中使用的用于从一个分区获取右侧空间的进程。处理开始于进程块880,并前进至进程块882,在这里计算当前分区中的可用空间。如进程块884所确定的,如果存在额外空间,则在进程块886中,该分区被收缩以为其他分区腾出空间。否则,在进程块887中,该分区确定它是否处于饥饿中(例如需要更多空间),并据此更新其状态。
接下来,如进程块888所确定的,如果有更多的右侧分区需要检查以获得所需空间,则在进程块890中,选择右侧分区,并且处理返回到进程块882。否则,在进程块892中,当前分区中的条目被向右挤压/移动。在一个实施例中,所有元素/SA和定义/SP都被紧靠其邻居移动,从而在它们之间不再有空闲空间。如进程块894所确定的,如果当前分区不是初始分区,则在进程块896中,选择左侧的下一分区,并且处理返回到进程块892。否则,在进程块898中,返回被给予的空间量和饥饿状态。处理完成,如进程块899所示。
图9A示出了在一个实施例中使用的用于喂养左侧饥饿分区的进程。处理开始于进程块900,并前进至进程块902,在这里计算出左侧分区的数目。在进程块904中,计算出空闲空间的整数值和分数值。在进程块906中,将当前分区扩展整数量。如进程块908确定的,如果当前分区剩余了一定分数量,则在进程块910中,使当前分区再扩展一个条目,并使分数量减1。如进程块912确定的,如果剩余一个左侧邻居,则在进程块914中,选择左侧的邻居分区,并且处理返回到进程块906。否则,在进程块916中,如果还存在任何剩余的空闲空间,则将其提供给当前分区。处理完成,如进程块918所示。
图9B示出了在一个实施例中使用的用于喂养右侧饥饿分区的进程。处理开始于进程块930,并前进至进程块932,在这里计算出右侧分区的数目。在进程块934中,计算出空闲空间的整数值和分数值。在进程块936中,将当前分区扩展整数量。如进程块940确定的,如果当前分区剩余了一定分数量,则在进程块942中,使当前分区再扩展一个条目,并使分数量减1。如进程块944确定的,如果剩余一个右侧邻居,则在进程块946中,选择左侧的邻居分区,并且处理返回到进程块936。否则,在进程块948中,如果还存在任何剩余的空闲空间,则将其提供给当前分区。处理完成,如进程块950所示。
考虑到可以应用本发明的原理的很多可能的实施例,将意识到,这里相对于附图/图形所描述的实施例及其方面仅仅是示例性的,而不应将其看作限制本发明的范围。例如,正如本领域技术人员将意识到的,很多进程块操作可以被重新排序,从而在其他操作之前、之后,或与其他操作几乎同时被执行。而且,在各种实施例中,可以使用很多不同形式的数据结构。如这里所述的本发明设想所有这些实施例都可以落入所附权利要求书及其等同物的范围内。
Claims (17)
1.一种用于基于多个策略的分层结构来处理分组的装置,所述装置包括:
关联存储器的多个关联存储器条目,所述多个关联存储器条目被编程为对应于所述多个策略的分层结构的多个策略和与所述多个策略相对应的多个关联,其中所述关联存储器被配置为识别出所述多个关联存储器条目中的按预定优先级顺序具有最高优先级的匹配查找字的关联存储器条目,其中所述多个策略被编程到所述多个关联存储器条目中,以使得所述多个策略的分层结构匹配所述多个关联存储器条目的所述预定优先级顺序,其中每个与所述多个关联中的特定关联相对应的关联存储器条目被编程到所述多个关联存储器条目中的下述位置:按所述预定优先级顺序处于与所述多个策略中的所述特定关联的策略相对应的关联存储器条目之前并且处于与所述多个策略中在所述多个策略的分层结构中更高的另一个策略相对应的任何关联存储器条目之后;以及
分组处理机构,该机构被配置为用于基于对所述多个关联存储器条目进行的查找操作的查找结果来处理分组,其中所述查找字是基于所述分组来得出的。
2.如权利要求1所述的装置,其中所述分组处理机构被配置为响应于识别出所述最高优先级匹配条目对应于所述多个策略中的特定策略而不对应于所述多个关联之一,使得与所述特定策略相对应的关联存储器条目被添加到所述多个关联存储器条目中;其中所述被添加的关联存储器条目被编程到所述多个关联存储器条目中的下述位置:按所述预定优先级顺序处于与所述特定策略相对应的关联存储器条目之前并且处于与所述多个策略中在所述多个策略的分层结构中更高的另一个策略相对应的任何关联存储器条目之后。
3.如权利要求2所述的装置,其中所述多个策略中的每一个对应于因特网协议安全性策略,并且所述多个关联中的每一个对应于因特网协议安全性关联。
4.如权利要求1所述的装置,其中所述多个关联存储器条目中的每一个是三重内容可寻址存储器条目。
5.如权利要求1所述的装置,其中所述多个关联存储器条目全都被基于所述查找字并行地搜索。
6.如权利要求1所述的装置,其中所述多个策略中的每一个对应于因特网协议安全性策略,并且所述多个关联中的每一对应于因特网协议安全性关联。
7.如权利要求1所述的装置,包括用于响应于识别出所述最高优先级匹配条目对应于所述多个策略中的特定策略而不对应于所述多个关联之一来将与所述特定策略相对应的关联存储器条目添加到所述多个关联存储器条目中的装置;其中所述被添加的关联存储器条目被编程到所述多个关联存储器条目中的下述位置:按所述预定优先级顺序处于与所述特定策略相对应的关联存储器条目之前并且处于与所述多个策略中在所述多个策略的分层结构中更高的另一个策略相对应的任何关联存储器条目之后。
8.如权利要求7所述的装置,其中所述多个策略中的每一个对应于因特网协议安全性策略,并且所述多个关联中的每一个对应于因特网协议安全性关联。
9.如权利要求7所述的装置,其中所述多个关联存储器条目中的每一个是三重内容可寻址存储器条目。
10.一种用于基于多个策略的分层结构来处理分组的方法,所述方法包括:
基于根据分组得出的查找字来对关联存储器的多个关联存储器条目执行查找操作以便识别查找结果,所述多个关联存储器条目对应于所述多个策略的分层结构的多个策略和与所述多个策略相对应的多个关联,其中所述关联存储器被配置为识别出所述多个关联存储器条目中的按预定优先级顺序具有最高优先级的匹配所述查找字的关联存储器条目,其中所述多个策略被编程到所述多个关联存储器条目中,以使得所述多个策略的分层结构匹配所述多个关联存储器条目的所述预定优先级顺序,其中每个与所述多个关联中的特定关联相对应的关联存储器条目被编程到所述多个关联存储器条目中的下述位置:按所述预定优先级顺序处于与所述多个策略中的所述特定关联的策略相对应的关联存储器条目之前并且处于与所述多个策略中在所述多个策略的分层结构中更高的另一个策略相对应的任何关联存储器条目之后;以及
基于所述查找结果来处理所述分组。
11.如权利要求10所述的方法,包括响应于识别出所述最高优先级匹配条目对应于所述多个策略中的特定策略而不对应于所述多个关联之一,将与所述特定策略相对应的关联存储器条目添加到所述多个关联存储器条目中;其中所述被添加的关联存储器条目被编程到所述多个关联存储器条目中的下述位置:按所述预定优先级顺序处于与所述特定策略相对应的关联存储器条目之前并且处于与所述多个策略中在所述多个策略的分层结构中更高的另一个策略相对应的任何关联存储器条目之后。
12.如权利要求11所述的方法,其中所述多个关联存储器条目中的每一个是三重内容可寻址存储器条目。
13.如权利要求11所述的方法,其中所述多个关联存储器条目全都被基于所述查找字并行地搜索。
14.如权利要求11所述的方法,其中,所述多个策略中的每一个对应于因特网协议安全性策略,并且所述多个关联中的每一对应于因特网协议安全性关联。
15.如权利要求10所述的方法,其中所述多个关联存储器条目中的每一个是三重内容可寻址存储器条目。
16.如权利要求10所述的方法,其中所述多个关联存储器条目全都被基于所述查找字并行地搜索。
17.如权利要求10所述的方法,其中所述多个策略中的每一个对应于因特网协议安全性策略,并且所述多个关联中的每一个对应于因特网协议安全性关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/616,737 US6988106B2 (en) | 2003-07-09 | 2003-07-09 | Strong and searching a hierarchy of items of particular use with IP security policies and security associations |
US10/616,737 | 2003-07-09 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800112976A Division CN100419752C (zh) | 2003-07-09 | 2004-05-26 | 关联存储器中的因特网协议安全性匹配值 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101345759A true CN101345759A (zh) | 2009-01-14 |
CN101345759B CN101345759B (zh) | 2012-05-09 |
Family
ID=33564829
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101349122A Expired - Fee Related CN101345759B (zh) | 2003-07-09 | 2004-05-26 | 关联存储器中的因特网协议安全性匹配值 |
CNB2004800112976A Expired - Fee Related CN100419752C (zh) | 2003-07-09 | 2004-05-26 | 关联存储器中的因特网协议安全性匹配值 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800112976A Expired - Fee Related CN100419752C (zh) | 2003-07-09 | 2004-05-26 | 关联存储器中的因特网协议安全性匹配值 |
Country Status (6)
Country | Link |
---|---|
US (2) | US6988106B2 (zh) |
EP (1) | EP1649389B1 (zh) |
CN (2) | CN101345759B (zh) |
AU (1) | AU2004260370A1 (zh) |
CA (1) | CA2521470C (zh) |
WO (1) | WO2005010777A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420769A (zh) * | 2011-12-27 | 2012-04-18 | 汉柏科技有限公司 | 一种Ipsec转发的方法 |
CN104184744A (zh) * | 2014-09-11 | 2014-12-03 | 东南大学 | 基于IPv6的IPSec安全联盟硬件查找装置及方法 |
CN105760657A (zh) * | 2016-02-01 | 2016-07-13 | 深圳市新产业生物医学工程股份有限公司 | 用于似然比计算的检测方案选取方法和装置 |
CN108781184A (zh) * | 2016-12-13 | 2018-11-09 | 甲骨文国际公司 | 用于在网络设备中提供分类资源的分区的系统和方法 |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4406604B2 (ja) * | 2002-06-11 | 2010-02-03 | アシシュ エイ パンドヤ | Tcp/ip、rdma、及びipストレージアプリケーションのための高性能ipプロセッサ |
US20050108518A1 (en) * | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US7685254B2 (en) * | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US7197597B1 (en) | 2003-07-22 | 2007-03-27 | Cisco Technology, Inc. | Performing lookup operations in a content addressable memory based on hashed values of particular use in maintaining statistics for packet flows |
US7941606B1 (en) | 2003-07-22 | 2011-05-10 | Cisco Technology, Inc. | Identifying a flow identification value mask based on a flow identification value of a packet |
TWI225999B (en) * | 2003-08-22 | 2005-01-01 | Ind Tech Res Inst | A method for searching Peer-based security policy database |
US7240149B1 (en) | 2003-11-06 | 2007-07-03 | Cisco Technology, Inc. | Multiple branch operations in an associative memory |
US7249228B1 (en) | 2004-03-01 | 2007-07-24 | Cisco Technology, Inc. | Reducing the number of block masks required for programming multiple access control list in an associative memory |
US7290083B2 (en) * | 2004-06-29 | 2007-10-30 | Cisco Technology, Inc. | Error protection for lookup operations in content-addressable memory entries |
US7219195B2 (en) * | 2004-12-21 | 2007-05-15 | Cisco Technology, Inc. | Associative memory with invert result capability |
US7523251B2 (en) * | 2005-01-18 | 2009-04-21 | Cisco Technology, Inc. | Quaternary content-addressable memory |
US7685165B2 (en) * | 2005-04-01 | 2010-03-23 | International Business Machines Corporation | Policy based resource management for legacy data |
US7773590B2 (en) * | 2005-04-26 | 2010-08-10 | Cisco Technology, Inc. | Combined interface and non-interface specific associative memory lookup operations for processing of packets |
WO2007002466A2 (en) * | 2005-06-22 | 2007-01-04 | Netlogic Microsystems, Inc. | Access control list processor |
US20070101424A1 (en) * | 2005-07-25 | 2007-05-03 | Nec Laboratories America, Inc. | Apparatus and Method for Improving Security of a Bus Based System Through Communication Architecture Enhancements |
JP4634349B2 (ja) * | 2006-08-22 | 2011-02-16 | 株式会社日立製作所 | IPSec処理装置、ネットワークシステム、及びIPSec処理プログラム |
US7689889B2 (en) | 2006-08-24 | 2010-03-30 | Cisco Technology, Inc. | Content addressable memory entry coding for error detection and correction |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
US7996348B2 (en) | 2006-12-08 | 2011-08-09 | Pandya Ashish A | 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters |
US8175271B2 (en) * | 2007-03-30 | 2012-05-08 | Oracle America, Inc. | Method and system for security protocol partitioning and virtualization |
US9900347B2 (en) * | 2007-09-14 | 2018-02-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Handling trust in an IP multimedia subsystem communication network |
US8023504B2 (en) * | 2008-08-27 | 2011-09-20 | Cisco Technology, Inc. | Integrating security server policies with optimized routing control |
US8245141B1 (en) | 2008-10-29 | 2012-08-14 | Cisco Technology, Inc. | Hierarchical collaboration policies in a shared workspace environment |
US9413662B1 (en) * | 2009-01-13 | 2016-08-09 | Juniper Networks, Inc. | Intra-term logical or operation in a network filter |
CN102474499B (zh) * | 2009-07-10 | 2016-01-20 | 瑞典爱立信有限公司 | 用于选择IPsec策略的方法 |
CN102098207B (zh) * | 2009-12-09 | 2012-08-08 | 华为技术有限公司 | 建立因特网协议安全IPSec通道的方法、装置和系统 |
US8539547B2 (en) | 2010-08-18 | 2013-09-17 | Certes Networks, Inc. | Policy selector representation for fast retrieval |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US9722918B2 (en) | 2013-03-15 | 2017-08-01 | A10 Networks, Inc. | System and method for customizing the identification of application or content type |
US9912555B2 (en) | 2013-03-15 | 2018-03-06 | A10 Networks, Inc. | System and method of updating modules for application or content identification |
WO2014176461A1 (en) | 2013-04-25 | 2014-10-30 | A10 Networks, Inc. | Systems and methods for network access control |
US9294503B2 (en) | 2013-08-26 | 2016-03-22 | A10 Networks, Inc. | Health monitor based distributed denial of service attack mitigation |
US9171174B2 (en) * | 2013-11-27 | 2015-10-27 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for verifying user data access policies when server and/or user are not trusted |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US9756071B1 (en) | 2014-09-16 | 2017-09-05 | A10 Networks, Inc. | DNS denial of service attack protection |
US9537886B1 (en) | 2014-10-23 | 2017-01-03 | A10 Networks, Inc. | Flagging security threats in web service requests |
US9621575B1 (en) | 2014-12-29 | 2017-04-11 | A10 Networks, Inc. | Context aware threat protection |
US9584318B1 (en) | 2014-12-30 | 2017-02-28 | A10 Networks, Inc. | Perfect forward secrecy distributed denial of service attack defense |
US9900343B1 (en) | 2015-01-05 | 2018-02-20 | A10 Networks, Inc. | Distributed denial of service cellular signaling |
US9848013B1 (en) | 2015-02-05 | 2017-12-19 | A10 Networks, Inc. | Perfect forward secrecy distributed denial of service attack detection |
US10063591B1 (en) | 2015-02-14 | 2018-08-28 | A10 Networks, Inc. | Implementing and optimizing secure socket layer intercept |
US9787581B2 (en) | 2015-09-21 | 2017-10-10 | A10 Networks, Inc. | Secure data flow open information analytics |
US10469594B2 (en) | 2015-12-08 | 2019-11-05 | A10 Networks, Inc. | Implementation of secure socket layer intercept |
US10812348B2 (en) | 2016-07-15 | 2020-10-20 | A10 Networks, Inc. | Automatic capture of network data for a detected anomaly |
US10341118B2 (en) | 2016-08-01 | 2019-07-02 | A10 Networks, Inc. | SSL gateway with integrated hardware security module |
US20180091556A1 (en) * | 2016-09-29 | 2018-03-29 | Futurewei Technologies, Inc. | System and method for packet classification using multiple security databases |
US10382562B2 (en) | 2016-11-04 | 2019-08-13 | A10 Networks, Inc. | Verification of server certificates using hash codes |
US10250475B2 (en) | 2016-12-08 | 2019-04-02 | A10 Networks, Inc. | Measurement of application response delay time |
US10397270B2 (en) | 2017-01-04 | 2019-08-27 | A10 Networks, Inc. | Dynamic session rate limiter |
US10187377B2 (en) | 2017-02-08 | 2019-01-22 | A10 Networks, Inc. | Caching network generated security certificates |
US10904101B2 (en) * | 2017-06-16 | 2021-01-26 | Cisco Technology, Inc. | Shim layer for extracting and prioritizing underlying rules for modeling network intents |
US20210011910A1 (en) * | 2019-07-08 | 2021-01-14 | Gsi Technology Inc. | Reference distance similarity search |
CN113965386B (zh) * | 2021-10-25 | 2023-11-03 | 绿盟科技集团股份有限公司 | 工控协议报文处理方法、装置、设备及存储介质 |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3648264A (en) | 1968-09-30 | 1972-03-07 | Texas Instruments Inc | Magnetic head with printed circuit coil |
US3648254A (en) | 1969-12-31 | 1972-03-07 | Ibm | High-speed associative memory |
US4296475A (en) | 1978-12-19 | 1981-10-20 | U.S. Philips Corporation | Word-organized, content-addressable memory |
US4791606A (en) | 1987-09-01 | 1988-12-13 | Triad Semiconductors International Bv | High density CMOS dynamic CAM cell |
US4996666A (en) | 1988-08-12 | 1991-02-26 | Duluk Jr Jerome F | Content-addressable memory system capable of fully parallel magnitude comparisons |
US5440715A (en) | 1990-06-27 | 1995-08-08 | Advanced Micro Devices, Inc. | Method and apparatus for expanding the width of a content addressable memory using a continuation bit |
US5404482A (en) | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills |
US5339076A (en) | 1992-04-27 | 1994-08-16 | Integrated Information Technology | Data compression using content addressable memory |
US5383146A (en) | 1992-06-08 | 1995-01-17 | Music Semiconductors, Inc. | Memory with CAM and RAM partitions |
US5684954A (en) | 1993-03-20 | 1997-11-04 | International Business Machine Corp. | Method and apparatus for providing connection identifier by concatenating CAM's addresses at which containing matched protocol information extracted from multiple protocol header |
US5450351A (en) | 1993-11-19 | 1995-09-12 | International Business Machines Corporation | Content addressable memory implementation with random access memory |
US6047369A (en) | 1994-02-28 | 2000-04-04 | Intel Corporation | Flag renaming and flag masks within register alias table |
US5428565A (en) | 1994-03-11 | 1995-06-27 | Intel Corporation | Single stage sensing apparatus for a content addressable memory |
US6041389A (en) | 1995-11-16 | 2000-03-21 | E Cirrus Logic, Inc. | Memory architecture using content addressable memory, and systems and methods using the same |
US6069573A (en) | 1996-06-17 | 2000-05-30 | Hewlett-Packard Company | Match and match address signal prioritization in a content addressable memory encoder |
US5978885A (en) | 1996-06-17 | 1999-11-02 | Hewlett Packard Co. | Method and apparatus for self-timing associative data memory |
US5841874A (en) | 1996-08-13 | 1998-11-24 | Motorola, Inc. | Ternary CAM memory architecture and methodology |
US5956336A (en) | 1996-09-27 | 1999-09-21 | Motorola, Inc. | Apparatus and method for concurrent search content addressable memory circuit |
US5802567A (en) | 1996-10-31 | 1998-09-01 | International Business Machines Corporation | Mechanism for managing offset and aliasing conditions within a content-addressable memory-based cache memory |
US5852569A (en) | 1997-05-20 | 1998-12-22 | Quality Semiconductor, Inc. | Content addressable memory multiple match detection circuit |
US6038560A (en) * | 1997-05-21 | 2000-03-14 | Oracle Corporation | Concept knowledge base search and retrieval system |
US6181698B1 (en) | 1997-07-09 | 2001-01-30 | Yoichi Hariguchi | Network routing table using content addressable memory |
US6199140B1 (en) | 1997-10-30 | 2001-03-06 | Netlogic Microsystems, Inc. | Multiport content addressable memory device and timing signals |
US6658002B1 (en) | 1998-06-30 | 2003-12-02 | Cisco Technology, Inc. | Logical operation unit for packet processing |
US6389506B1 (en) | 1998-08-07 | 2002-05-14 | Cisco Technology, Inc. | Block mask ternary cam |
US6289414B1 (en) * | 1998-10-08 | 2001-09-11 | Music Semiconductors, Inc. | Partially ordered cams used in ternary hierarchical address searching/sorting |
US6081440A (en) | 1998-11-05 | 2000-06-27 | Lara Technology, Inc. | Ternary content addressable memory (CAM) having fast insertion and deletion of data values |
JP4156112B2 (ja) * | 1998-12-25 | 2008-09-24 | 富士通株式会社 | 高速検索方法及び高速検索装置 |
US6137707A (en) | 1999-03-26 | 2000-10-24 | Netlogic Microsystems | Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device |
EP1041499A1 (en) * | 1999-03-31 | 2000-10-04 | International Business Machines Corporation | File or database manager and systems based thereon |
US6651096B1 (en) | 1999-04-20 | 2003-11-18 | Cisco Technology, Inc. | Method and apparatus for organizing, storing and evaluating access control lists |
US6470332B1 (en) * | 1999-05-19 | 2002-10-22 | Sun Microsystems, Inc. | System, method and computer program product for searching for, and retrieving, profile attributes based on other target profile attributes and associated profiles |
US20030014627A1 (en) * | 1999-07-08 | 2003-01-16 | Broadcom Corporation | Distributed processing in a cryptography acceleration chip |
US6175513B1 (en) | 1999-07-12 | 2001-01-16 | Netlogic Microsystems | Method and apparatus for detecting multiple matches in a content addressable memory |
US6347376B1 (en) | 1999-08-12 | 2002-02-12 | International Business Machines Corp. | Security rule database searching in a network security environment |
US6374326B1 (en) | 1999-10-25 | 2002-04-16 | Cisco Technology, Inc. | Multiple bank CAM architecture and method for performing concurrent lookup operations |
US6526474B1 (en) | 1999-10-25 | 2003-02-25 | Cisco Technology, Inc. | Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes |
US6154384A (en) | 1999-11-12 | 2000-11-28 | Netlogic Microsystems, Inc. | Ternary content addressable memory cell |
US6134135A (en) | 2000-01-10 | 2000-10-17 | Switchcore, A.B. | Mask arrangement for scalable CAM/RAM structures |
US6535951B1 (en) | 2000-02-29 | 2003-03-18 | Cisco Technology, Inc. | Hit result register file used in a CAM |
US6240003B1 (en) | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
US20010042204A1 (en) * | 2000-05-11 | 2001-11-15 | David Blaker | Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database |
US6246601B1 (en) | 2000-06-14 | 2001-06-12 | Netlogic Microsystems, Inc. | Method and apparatus for using an inter-row configurable content addressable memory |
US6658458B1 (en) | 2000-06-22 | 2003-12-02 | Cisco Technology, Inc. | Cascading associative memory arrangement |
US6725326B1 (en) | 2000-08-15 | 2004-04-20 | Cisco Technology, Inc. | Techniques for efficient memory management for longest prefix match problems |
US6567812B1 (en) * | 2000-09-27 | 2003-05-20 | Siemens Aktiengesellschaft | Management of query result complexity using weighted criteria for hierarchical data structuring |
EP1211614A1 (fr) * | 2000-11-28 | 2002-06-05 | Koninklijke Philips Electronics N.V. | Procédé de recherche dans une structure hiérarchique d'objets |
JP3601445B2 (ja) * | 2000-12-06 | 2004-12-15 | 日本電気株式会社 | パケット転送装置及びそれに用いる転送情報管理方法並びにその転送情報検索方法 |
US6606681B1 (en) | 2001-02-23 | 2003-08-12 | Cisco Systems, Inc. | Optimized content addressable memory (CAM) |
US6862281B1 (en) | 2001-05-10 | 2005-03-01 | Cisco Technology, Inc. | L4 lookup implementation using efficient CAM organization |
US7107464B2 (en) * | 2001-07-10 | 2006-09-12 | Telecom Italia S.P.A. | Virtual private network mechanism incorporating security association processor |
US7613699B2 (en) * | 2001-08-03 | 2009-11-03 | Itt Manufacturing Enterprises, Inc. | Apparatus and method for resolving security association database update coherency in high-speed systems having multiple security channels |
US6775737B1 (en) | 2001-10-09 | 2004-08-10 | Cisco Technology, Inc. | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories |
US6715029B1 (en) | 2002-01-07 | 2004-03-30 | Cisco Technology, Inc. | Method and apparatus for possibly decreasing the number of associative memory entries by supplementing an associative memory result with discriminator bits from an original set of information |
US6650561B2 (en) | 2002-01-30 | 2003-11-18 | International Business Machines Corporation | High reliability content-addressable memory using shadow content-addressable memory |
US6871262B1 (en) | 2002-02-14 | 2005-03-22 | Cisco Technology, Inc. | Method and apparatus for matching a string with multiple lookups using a single associative memory |
US6871265B1 (en) | 2002-02-20 | 2005-03-22 | Cisco Technology, Inc. | Method and apparatus for maintaining netflow statistics using an associative memory to identify and maintain netflows |
US7336660B2 (en) | 2002-05-31 | 2008-02-26 | Cisco Technology, Inc. | Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics |
JP2004013504A (ja) * | 2002-06-06 | 2004-01-15 | Univ Hiroshima | パターン認識システム、このシステムに用いられる連想メモリ装置及びパターン認識処理方法 |
US7424468B2 (en) * | 2002-07-02 | 2008-09-09 | Samsung Electronics Co., Ltd. | Internet protocol address look-up device |
US7065609B2 (en) | 2002-08-10 | 2006-06-20 | Cisco Technology, Inc. | Performing lookup operations using associative memories optionally including selectively determining which associative memory blocks to use in identifying a result and possibly propagating error indications |
US7103708B2 (en) | 2002-08-10 | 2006-09-05 | Cisco Technology, Inc. | Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry |
US6717946B1 (en) | 2002-10-31 | 2004-04-06 | Cisco Technology Inc. | Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory |
-
2003
- 2003-07-09 US US10/616,737 patent/US6988106B2/en not_active Expired - Lifetime
-
2004
- 2004-05-26 CA CA2521470A patent/CA2521470C/en not_active Expired - Fee Related
- 2004-05-26 EP EP04753320.3A patent/EP1649389B1/en not_active Expired - Lifetime
- 2004-05-26 CN CN2008101349122A patent/CN101345759B/zh not_active Expired - Fee Related
- 2004-05-26 WO PCT/US2004/016475 patent/WO2005010777A1/en active Application Filing
- 2004-05-26 AU AU2004260370A patent/AU2004260370A1/en not_active Abandoned
- 2004-05-26 CN CNB2004800112976A patent/CN100419752C/zh not_active Expired - Fee Related
-
2005
- 2005-11-13 US US11/273,289 patent/US7493328B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420769A (zh) * | 2011-12-27 | 2012-04-18 | 汉柏科技有限公司 | 一种Ipsec转发的方法 |
CN104184744A (zh) * | 2014-09-11 | 2014-12-03 | 东南大学 | 基于IPv6的IPSec安全联盟硬件查找装置及方法 |
CN105760657A (zh) * | 2016-02-01 | 2016-07-13 | 深圳市新产业生物医学工程股份有限公司 | 用于似然比计算的检测方案选取方法和装置 |
CN105760657B (zh) * | 2016-02-01 | 2018-12-07 | 深圳市新产业生物医学工程股份有限公司 | 用于似然比计算的检测方案选取方法和装置 |
CN108781184A (zh) * | 2016-12-13 | 2018-11-09 | 甲骨文国际公司 | 用于在网络设备中提供分类资源的分区的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100419752C (zh) | 2008-09-17 |
CA2521470C (en) | 2011-07-26 |
US20050010612A1 (en) | 2005-01-13 |
EP1649389A4 (en) | 2012-01-04 |
CN1781098A (zh) | 2006-05-31 |
AU2004260370A1 (en) | 2005-02-03 |
US6988106B2 (en) | 2006-01-17 |
CA2521470A1 (en) | 2005-02-03 |
US7493328B2 (en) | 2009-02-17 |
CN101345759B (zh) | 2012-05-09 |
EP1649389B1 (en) | 2014-10-01 |
US20060074899A1 (en) | 2006-04-06 |
EP1649389A1 (en) | 2006-04-26 |
WO2005010777A1 (en) | 2005-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100419752C (zh) | 关联存储器中的因特网协议安全性匹配值 | |
CN100472480C (zh) | 分组处理方法和装置 | |
US7386525B2 (en) | Data packet filtering | |
CN100547976C (zh) | 用于标识反向路径转发信息的方法和装置 | |
US9203743B2 (en) | Packet forwarding system, control device, forwarding device and method and program for preparing processing rules | |
EP1779605B1 (en) | Forwarding database in a network switch device | |
US20150131666A1 (en) | Apparatus and method for transmitting packet | |
US8750144B1 (en) | System and method for reducing required memory updates | |
US8873563B2 (en) | Techniques for next-hop optimization | |
US20190116063A1 (en) | Transforming a service packet from a first domain to a second domain | |
CN102857491A (zh) | 集管理方案 | |
CN106105115A (zh) | 网络环境中由服务节点始发的服务链 | |
WO2015101119A1 (zh) | 一种流表匹配的方法、装置和OpenFlow交换系统 | |
EP2342871A1 (en) | Method and system for classifying date packets | |
US8990492B1 (en) | Increasing capacity in router forwarding tables | |
JP6437693B2 (ja) | マルチキャストデータパケット転送 | |
US9942127B2 (en) | Mechanism and framework for finding optimal multicast tree roots without the knowledge of traffic sources and receivers for fabricpath and TRILL | |
US20160087872A1 (en) | Divided hierarchical network system based on software-defined networks | |
WO2023019876A1 (zh) | 基于智能决策的数据传输方法、装置、设备及存储介质 | |
CN104836738A (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
US7177313B2 (en) | Method and system for converting ranges into overlapping prefixes for a longest prefix match | |
CN100417150C (zh) | 访问控制列表和安全策略数据库的方法 | |
US11775342B2 (en) | System and method for processing information hierarchy management | |
CN1965542A (zh) | 处理分组标头 | |
Sun et al. | Openflow accelerator: A decomposition-based hashing approach for flow processing |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120509 Termination date: 20210526 |