CN103858386B - 用于通过优化的决策树执行包分类的方法和装置 - Google Patents

用于通过优化的决策树执行包分类的方法和装置 Download PDF

Info

Publication number
CN103858386B
CN103858386B CN201280048417.4A CN201280048417A CN103858386B CN 103858386 B CN103858386 B CN 103858386B CN 201280048417 A CN201280048417 A CN 201280048417A CN 103858386 B CN103858386 B CN 103858386B
Authority
CN
China
Prior art keywords
node
rule
bucket
group
regular
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
CN201280048417.4A
Other languages
English (en)
Other versions
CN103858386A (zh
Inventor
R·戈亚尔
K·A·布里斯
S·L·比拉
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.)
Kaiwei International Co
Marvell Asia Pte Ltd
Original Assignee
Cavium LLC
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 Cavium LLC filed Critical Cavium LLC
Publication of CN103858386A publication Critical patent/CN103858386A/zh
Application granted granted Critical
Publication of CN103858386B publication Critical patent/CN103858386B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/02Protocol performance
    • 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/22Parsing or analysis of headers
    • 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/745Address table lookup; Address filtering
    • H04L45/7452Multiple parallel or consecutive lookup operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种包分类系统、方法和相应的装置,以用于实现包分类。被耦合至网络的安全设备的处理器使用具有多个规则的分类器表,该多个规则具有至少一个字段,以建立包括多个节点的决策树结构,该多个节点包括多个规则的子组。该方法可以生成更宽、更浅的树,这导致更短的搜索时间和用于存储树的减少的存储器需求。

Description

用于通过优化的决策树执行包分类的方法和装置
相关申请
本申请要求于2011年8月2日提交的美国临时申请No.61/514,344、于2011年8月2日提交的美国临时申请No.61/514,382、于2011年8月2日提交的美国临时申请No.61/514,379、于2011年8月2日提交的美国临时申请No.61/514,400、于2011年8月2日提交的美国临时申请No.61/514,406、于2011年8月2日提交的美国临时申请No.61/514,407、于2011年8月2日提交的美国临时申请No.61/514,438、于2011年8月2日提交的美国临时申请No.61/514,447、于2011年8月2日提交的美国临时申请No.61/514,450、于2011年8月2日提交的美国临时申请No.61/514,459、以及于2011年8月2日提交的美国临时申请No.61/514,463的权益。
上述申请的整个教导通过引用被合并于此。
背景技术
开放系统互连(OSI)参考模型定义了七个网络协议层(L1-L7)用于在传输介质上进行通信。上层(L4-L7)表示端到端通信,以及下层(L1-L3)表示本地通信。
网络化应用感知系统需要处理、滤波和切换L3至L7网络协议层的范围,例如L7网络协议层,诸如超文本传输协议(HTTP)和简单邮件传输协议(SMTP),以及L4网络协议层,诸如传输控制协议(TCP)。除了处理网络协议层,网络化应用感知系统需要使用通过L4-L7网络协议层的基于接入和内容的安全性以同时保护这些协议,这包括防火墙、虚拟私人网络(VPN)、安全套接层(SSL)、入侵检测系统(IDS)、互联网协议安全(IPsec)、以线速的反病毒(AV)和反垃圾邮件功能。
在现今的互联网世界中改善网络操作的有效性和安全性依然是互联网用户的终极目标。接入控制、流量工程、入侵检测和许多其他网络服务要求基于包头的多个字段(被称作包分类)进行包的识别。
互联网路由器对包进行分类以实施多个高级的互联网服务,诸如路由、速率限制、在防火墙中的接入控制、虚拟带宽分配、基于策略的路由、服务区分、负载平衡、流量整形和流量付费。这些服务要求路由器将到来的包分类成不同的流,并且然后依据这种分类执行适当的操作。
分类器,使用一组滤波器或规则,指定流或类别。例如,在防火墙中的每个规则可以指定一组源和目标地址,并且将它和相应的拒绝或许可动作相关联。备选地,规则可以基于包头的多个字段,包括OSI模型的层2、3、4和5,其包含了寻址和协议信息。
对于一些类型的专用硬件,接入控制列表(ACL)指代被应用于存在于主机或层3设备上的端口号或网络守护进程名称的规则,每个ACL具有被许可使用服务的主机和/或网络的列表。单独的服务器以及路由器都能够有网络ACL。ACL能够被配置为控制入界(inbound)和出界(outbound)的流量。
发明内容
一种系统、方法和相应的装置涉及对包进行分类。
一种方法可以使用具有多个规则的分类器表,该多个规则具有至少一个字段,并且建立包括多个节点的决策树结构。每个节点可以表示多个规则的子组。对于决策树的每个节点,方法可以(a)确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;(b)基于对所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;(c)在所选择的字段上将节点剪切成若干子节点,以及存储决策树结构。
该方法可以进一步基于针对给定的存储容量的剪切的最大个数 来确定可以在至少字段的每个字段上进行的剪切的个数。
该方法可以基于如下字段,即所述至少一个字段中的、具有在每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的字段,而选择在其上将所述节点剪切成若干子节点的字段。
只有在节点具有比的多个规则的子组的预定个数更多时,该方法可以剪切节点。预定个数可以是可调整的个数。该方法可以进一步通过迭代地调整预定个数来控制决策树结构的深度。调整预定个数可以包括随着树的层次的增加而增加预定个数。
如果剪切创建了多个子节点,并且只有一个子节点具有多个规则的子组,那么方法可以在节点处存储至少一个字段中的字段的标识符以及所述至少一个字段中的、在遍历所述节点以获得规则匹配时略过的所述字段中的若干比特。至少一个字段中的、略过的字段的比特的个数可以与用于剪切所述节点的若干比特的个数相同。
在建立决策树结构时,该方法可以进一步包括,对于决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组。方法可以识别复制子节点组,复制子节点组可以是多个规则的复制子组。方法可以选择被识别的复制子节点组的一个子节点作为唯一的子节点。方法可以将被识别的所述复制子节点组的其他子节点链接至与所述唯一的子节点相同的子树。方法可以使用唯一的子节点用于决策树结构的后续建立,以及抑制使用将被识别的复制子节点组的其他子节点用于决策树结构的后续建立。
在建立决策树结构时,方法可以进一步包括,对于决策树的每个层次,在决策树的层次上识别部分的复制节点。部分的复制节点可以是部分复制的多个规则的子组。方法可以基于被识别的一个或多个部分的复制节点,在决策树的层次上创建新的节点。多个规则的子组的部分复制可以被包括在创建的新节点中,并且被从所识别的部分节点中去除。
方法可以将分类器表中的多个规则分组成多个规则分类。方法可 以针对多个规则分类中的每个规则分类,建立包括多个节点的决策树。多个规则分类可以基于应用于多个规则的一个或多个字段功能,或者一个或多个字段功能的组合。一个或多个字段功能可以包括应用非互联网协议(IP)地址通配符、源IP但不是目标IP通配符、目标IP但不是源IP通配符、目标和源地址通配符、字段范围比较、与一个或多个至少一个字段相关联的一个或多个掩码。方法可以进一步包括使得所接收的包遍历所建立的每个决策树,并且比较从每个树得到的规则以选择最终的匹配。所选择的最终的匹配可以是具有最高优先级的规则。
方法可以进一步将具有小于或等于规则的给定个数的若干规则的每个子节点转换成叶节点。方法可以针对所转换的每个子节点创建相应的桶。相应的桶可以包括所转换的子节点的规则。方法可以将每个叶节点链接至所创建的相应的桶。复制桶组可以被识别,每个复制桶包括相同的规则组。方法可以选择复制桶组中的一个桶,并且去除复制桶组中的其他桶。方法可以将到所去除的桶的链接改变成到所选择的一个桶的链接。
方法可以进一步识别部分复制桶组。每个部分复制桶可以包括复制部分规则组。方法可以将部分复制桶组中的每个桶分成针对每个桶的第一规则组和第二规则组。针对每个桶的第一规则组可以包括复制部分规则组,并且针对每个桶的第二规则组可以包括针对每个桶的任何剩余的规则。方法可以在每个部分复制的桶中创建到第一规则组的链接,并且在每个部分复制的桶中创建到第二组规则的链接。每个部分复制桶可以包括指向第一规则组和第二规则组的指针的链接列表。
决策树结构可以是二进制数据结构。
决策树结构可以从分类器表被编译。
对应每个规则的优先级可以被存储于决策树结构中。
方法可以进一步确定规则是否被一个或多个其他规则覆盖,并且如果规则被覆盖,从决策树结构中忽略规则。
方法可以使用具有多个规则的分类器表,多个规则具有至少一个 字段,用于建立包括多个节点的决策树结构。每个节点可以包括多个规则的子组。方法可以针对决策树的每个层次,基于母节点的子节点的结果总数不大于给定的阈值,确定是否合并母节点的孙子和母节点的子节点。方法可以存储决策树结构。方法可以进一步将子节点的剪切合并到母节点的剪切中,从而产生母节点的新的子节点。子节点的剪切可以与母节点的剪切在同一字段上,或者子节点的剪切可以与母节点的剪切在不同的字段上。给定的阈值可以是可调整的。方法可以迭代地调整给定的阈值,并且合并母节点的孙子和母节点的子节点,直到母节点的子节点的结果总数达到了子节点的给定的阈值的个数。
方法可以使用具有多个规则的分类器表,多个规则具有至少一个字段,用于建立包括多个节点的决策树结构。每个节点可以包括多个规则的子组。方法可以基于规则是否竞争来分组规则。方法可以给多个规则分配优先级值,并且在每组竞争规则内分配唯一的优先级值。方法可以使得非竞争规则具有相同优先级值。方法可以存储决策树结构,并且包括存储多个规则和所分配的优先级值。
装置可以包括存储器和耦合至存储器的处理器。处理器可以被配置为使用具有存储在存储器中的多个规则的分类器表,多个规则具有至少一个字段,处理器可以被配置为建立包括多个节点的决策树结构,多个节点包括多个规则的子组。处理器可以进一步被配置为针对决策树的每个节点,确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点。确定可以在至少一个字段的每个字段上所进行的若干剪切时,处理器可以进一步被配置为基于比较所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异,选择在其上剪切节点的字段。处理器可以进一步被配置为在所选择的字段上将节点剪切成若干子节点,并且在存储器中存储决策树结构。
非瞬态计算机可读介质可以具有在其上被编码的一系列指令,在由处理器执行时,这些指令使得处理器使用具有多个规则的分类器表,多个规则具有至少一个字段,建立包括多个节点的决策树结构, 多个节点包括多个规则的子组;针对决策树的每个节点,确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点。在确定至少一个字段的每个字段上所进行的若干剪切之后,处理器可以进一步被配置为基于比较所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异,选择在其上剪切节点的字段。处理器可以至少在所选择的字段上将节点剪切成若干子节点,并且存储决策树结构。
处理器可以基于具有每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的至少一个字段,而选择在其上将节点剪切成若干子节点的字段,。
方法可以包括使用具有多个规则的分类器表,多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示多个规则的子组,并且识别决策树结构中的复制。方法可以包括基于所识别的复制修改决策树结构,并且存储所修改的决策树结构。多个节点可以包括母节点和子节点。识别可以包括,针对决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组,并且识别复制子节点组。复制子节点组可以具有多个规则的复制子组。修改可以包括选择被识别的复制子节点组的一个子节点作为唯一的子节点,以及将被识别的所述复制子节点组的其他子节点链接至与所述唯一的子节点相同的子树。
其中在多个节点可以包括母节点和子节点的方法,可以进一步包括,将具有小于或等于规则的给定个数的若干规则的每个子节点转换成叶节点,针对所转换的每个子节点创建相应的桶,相应的桶包括所转换的子节点的规则,将每个叶节点链接至所创建的相应的桶,识别复制桶组,每个复制桶包括相同的规则组,选择复制桶组中的一个桶,并且去除复制桶组中的其他桶,将到所去除的桶的链接改变成到所选择的一个桶的链接。
其中在多个节点可以包括母节点和子节点的方法,可以进一步包 括,将具有小于或等于规则的给定个数的若干规则的每个子节点转换成叶节点,针对所转换的每个子节点创建相应的桶,相应的桶包括所转换的子节点的规则,将每个叶节点链接至所创建的相应的桶,识别部分复制桶组,每个部分复制桶可以包括复制部分的规则组,将部分复制桶组中的每个桶中的规则分成针对每个桶的第一规则组和第二规则组,针对每个桶的第一规则组包括复制部分的规则组,并且针对每个桶的第二规则组包括针对每个桶的任何剩余的规则,以及在每个部分复制的桶中创建到第一规则组的链接,并且在每个部分复制的桶中创建到第二规则组的链接。每个部分复制的桶可以包括指向第一规则组和第二规则组的指针的链接列表。
附图说明
上述将从下面本发明的示例实施例的更具体的描述中变得清楚,如在附图中所图示的,其中相同的参考符号指代在不同的视图中相同的部分。附图不一定是按比例的,相反重点被放在图示本发明的实施例上。
图1图示用于对包进行分类的包括规则的分类器表。
图2图示在图1中所图示的分类器表的规则的几何表示。
图3A图示在图1中所图示的从分类器表编译的决策树数据结构。
图3B图示决策树数据结构的深度。
图3C图示决策树数据结构的深度和形状。
图4是用于建立决策树的方法的流程图。
图5是用于确定在其上剪切节点的字段的方法的流程图。
图6是图示在分类表中对规则的字段进行剪切的图。
图7是用于合并决策树的节点的方法的流程图。
图8A-C示出合并节点的图解示例。
图9A示出导致子节点具有分类器表的所有规则的节点剪切的图解示例。
图9B是树、指向包含分类器规则表的一组规则的桶的叶节点的 图示。
图9C是图示将一组规则编译进入决策树数据结构的示例实施例的方框图。
图9D图示包括树、桶和规则的决策树数据结构。
图10A是图示识别包含相同规则组的子节点的方法的流程图。
图10B是用于优先级复制的方法的流程图。
图10C-D图示在决策树的节点中去除规则的复制桶的图解示例。
图10E图示在决策树的节点中去除规则的复制桶的方法。
图10F图示从决策树的非兄弟节点中去除规则的复制桶的图解示例。
图10G图示在决策树的节点中去除规则的部分复制桶的图解示例。
图11A是用于在决策树的节点中的规则的部分复制桶的方法的流程图。
图11B图示用于将编译器表解析为规则的分类并且针对每个分类建立决策树的方法。
图11C图示用于选择匹配规则的方法。
图12是图示其中包分类器操作以对包进行分类来向私人网络提供互联网服务的系统的方框图。
图13是可以根据本文中所公开的技术对包进行分类的路由器的方框图。
具体实施方式
下面是本发明的示例实施例的描述。
本文中所引用的所有专利、公开的申请及参考的教导通过全文引用而被并入。
虽然包分类已经被广泛研究了很长时间,研究人员仍然有动机去寻求新颖的和有效的包分类方案,这是由于:i)网络带宽的持续增长,ii)网络应用的增长的复杂度,以及ii)网络系统的技术革新。
对网络带宽的爆炸性需求通常归结于数据流量的增长。主流的服务提供商每六到九个月报告在他们的骨干网上的带宽加倍。因此,新颖的包分类方案被要求来处理在边缘和核心设备上指数级增长的流量。
由于在网络设备中被实施的网络应用的数量的增长,网络应用的复杂度增加。包分类被广泛用于各种应用,诸如服务感知路由、入侵阻止和流量整形。因此,新颖的包分类方案必须更智能以不明显损失性能的情况下处理各种类型的规则组。
此外,诸如多核处理器的新技术提供空前的计算能力以及高集成的资源。因此,新颖的包分类方案必须很好的适合高级的硬件和软件技术。
在详细地描述示例实施例之前,下面立即描述示例包分类系统和相关联的方法来帮助读者理解本文中所描述的发明特征。
现有的包分类方法用存储器来交换时间。虽然这种折中不断地在改善,但是对于合理数量的存储器所花费的时间通常仍然是贫乏(poor)的。由于现有方法存在的问题,供应商使用三态内容可寻址存储器(TCAM),其使用强力并行硬件来针对所有规则同时检查包。TCAM相比于现有方法的主要优势是速度和确定性(TCAM为所有的数据库工作)。
TCAM是充当完全关联存储器的硬件设备。TCAM单元存储三个值:0、1或“X”,其表示无关位,并且作为每个单元的掩码进行操作,其使得TCAM能够匹配包含通配符(例如,无关位)的规则。在操作中,可以向TCAM提供整个包头来确定它匹配哪个条目(规则)。但是,TCAM的复杂度仅许可小的、非灵活的并且相对慢的实施,这种实施消耗了大量的功率。因此,继续需要在专用的数据结构上进行操作的有效方法。
目前的方法保留在数学分析和/或软件仿真(基于观察的方案)的阶段。提出的数学方案被报告有很好的时间/空间复杂度。但是,这种类型的方案没有被发现在现实网络设备中有任何实施,因为数学方案 经常加入特殊的条件来简化问题和/或忽略大的常数因子,这可能掩盖了明显的最差情况的约束。
提出的基于观察的方案采用在规则中观察的统计特征来实现针对现实应用的有效的方案。但是,这些基于观察的方法通常只对特定类型的规则组有效。由于针对不同应用的包分类规则具有各种特征,很少基于观察的方法能够充分地挖掘不同类型的规则组中的冗余以在各种条件下获得稳定的性能。
包分类使用包分类器来执行,包分类器也被称作策略数据库、流分类器、或简单地称作分类器。分类器是一批规则或策略。所接收的包和规则相匹配,规则确定了对所匹配的包采取的动作。一般的包分类要求路由器基于包头中多个字段对包进行分类。分类器的每个规则根据在包头的“F”字段上的准则来指定包可以属于的类别,并且将标识符(例如,类别ID)与每个类别相关联。例如,在流分类器中的每个规则是流的说明,其中每个流是处于单独的类别。标识符唯一地指定与每个规则相关联的动作。每个规则有“F”字段。在规则R的第i字段,被称作R[i],是在包头的第i字段上的正则表达式(regular expression)。如果对于每个i,P的头的第i字段满足该正则表达式R[i],那么包P匹配具体的规则R。
由规则指定的类别可以重叠。例如,一个包可以匹配多个规则。在这种情况下,当多个规则重叠时,规则在分类器中出现的顺序可以确定规则的相对的优先级。换句话说,匹配多个规则的包属于在它们中首先在分类器中出现的规则标识符(类别ID)所识别的类别。备选地,与规则相关联的唯一的优先级可以确定它的优先级,例如,具有最高优先级的规则。
包分类器可以对分类器表中的规则进行分析和分类,并且创建决策树用于将所接收的包和来自分类器表中的规则相匹配。决策树是决策支持工具,其使用决策的树状图或模型以及它们的可能的结果,包括机会事件结果、资源成本和实用性。决策树常用于操作研究中,特别地在决策分析中,以帮助识别最可能达到目标的策略。决策树的另 一个用途是作为描述性方法用于计算条件概率。本文中所描述的实施例利用决策树来有选择地将所接收的包和分类器表中的规则相匹配,以确定如何处理所接收的包。
规则的决策树或树表示一组规则。决策树还可以被称作规则编译的数据结构(RCDS)或者性能树。树是具有节点和叶子的二进制数据结构。树的每个叶子指向规则的子组,被称作规则桶,或桶。每个桶表示规则的子组。每个桶是包含指向规则的指针的数据结构(例如,数组),其被存储在规则表中。桶内的规则(或指向规则的指针)通过优先级来排序(例如,按优先级的增序或降序)。规则表是包含规则的数据结构(例如,数组)。规则表内的规则可以是有序的或者无序的。
图1图示用于对包进行分类的包括规则的分类器表100。如所图示的,分类器表包含七个规则(Rl-R7),每个包含两个字段,字段-1110和字段-2115。虽然表图示规则是二元组(2-tuple)的(例如,仅包含两个字段),但是应当注意,规则可以包含n个字段,并且是n元组的。每个规则在每个维度(字段)中指定一系列的值(例如,互联网协议(IP)地址或层4端口或协议)。例如,字段-1可以在x/y图的x维度中被表示,而字段2可以在x/y图的y维度中被表示。
图2图示分类器表100的规则的几何表示。规则在x维度205和y维度210中数值范围为0-255。如所图示的,图的每个维度基于来自分类器表100的每个规则的每个字段的范围被细分。
图3A图示从分类器表100编译的决策树数据结构300。决策树300包含一组单元,被称作节点(301、305、310、315、320、325、330),其是空的,或者满足下面的条件之一:i)存在辨别的节点r,被称作根节点,以及ii)剩余的节点被分成不相交的子组,每个子组是子树。如所图示的,节点301是决策树的根节点和305、310、325和330的母节点,它们被认为是根节点301的子节点。节点的度(degree)是节点包含的非空子树的个数。具有零度的节点被认为是叶节点。因此,节点305、315、320、325和330被认为是叶节点。 具有正度(positivedegree)的节点是内部节点(例如,节点310)。
决策树300的每个节点包含分类器表的规则的子组。如上面所陈述的,每个规则具有“F”字段,并且规则R的第i字段(被称作R[i])是在所接收的包头的第i字段上的正则表达式。如果对于每个i,P的头的第i字段满足正则表达式R[i],那么包P匹配具体的规则R。因此,在包被接收时,决策树被遍历(例如,通过运行时间遍历器)来确定匹配规则,该匹配规则被用于确定对所接收的包采取的动作。
例如,如果包被接收,这个包包含了头匹配规则R7(见图1),那么决策树300被遍历(例如,被穿越)以发现匹配规则R7。因此,包首先经过根节点301,其包含了包分类表中所有的规则,其被剪切成四个子节点。剪切节点指代将节点细分成n个子节点。所创建的n个子节点对应于所进行的节点的剪切(细分)的个数。在这个示例中,在根节点301中的规则被细分成四个不同的范围(对应于每个子节点305、310、325和330)。因此,确定包应该被传给包含规则的子组的子节点330,该子组具有在所接收包的每个头的范围内的字段。在包被传给节点330之后,包与规则R7相匹配。
本文中所描述的示例实施例通过仔细地预处理分类器来建立决策树数据结构。每次包到达,运行时间遍历器穿过决策树以发现存储少量规则的叶节点。一旦到达叶节点,在叶节点内的规则的线性搜索发生,以发现匹配规则。
在建立决策树期间,本文中所描述的实施例确定决策树的形状和深度。
图3B图示决策树数据结构350,其包括根节点352和叶节点354a-e,并且具有深度356。
图3C图示决策树数据结构(360)的深度和形状。例如,树数据结构362具有深度366,其相比于决策树数据结构364的深度368是浅的。在决策树数据结构中的子树的个数可以改变决策树数据结构的形状,例如单个子树370相比一组子树372。
此外,本文中所描述的实施例确定在决策树的节点处哪个字段被 剪切,以及在字段上进行剪切的个数,以基于剪切的字段和在字段上进行剪切的个数来创建子节点。
图4是用于建立决策树的方法400的流程图。方法开始(405)。该方法对包括规则的分类器表进行分析以用于对包进行分类(410)。如上面所陈述的,在分类器表中的每个规则具有‘F’字段。该方法分析分类器表来确定多个规则和与每个规则相关联的多个字段。基于该分析,在415,该方法确定能够在规则的每个字段“F”上进行的最大个数的剪切。例如,剪切的最大个数可以基于给定的存储容量。该方法可以针对决策树的每个节点确定在其上剪切节点的字段“F”,以创建子节点(420),然后方法结束(425)。确定能够在每个字段“F”上进行剪切的个数可以平衡效率和存储器的要求。在字段上大量的剪切可以减少决策树的深度,加快查询时间;但是,剪切的个数太大会增加存储的需求。
图5是用于确定在其上剪切节点的字段的方法500的流程图。针对每个字段的剪切,通过计算在由那个剪切所产生的孩子中规则的平均个数,可以计算每个孩子的规则的实际个数和平均之间的差异,并且然后这些差异可以被平均,以使得具有最小这种平均差异的字段可以被选择。在平均上更浅的树可以被建立,从而导致更短的搜索时间。
方法开始(505),并且基于所确定的在每个字段上进行的剪切的个数(方法400的415),确定通过剪切每个字段(510)所生成的子节点中规则的平均个数。该方法计算在每个子节点中规则的实际个数和在每个子节点中所确定的规则的平均个数之间的差异(515)。该方法计算所计算的差异的平均(520)。该方法在具有最小平均差异的字段上剪切决策树的节点(525)。
方法400和500在决策树的每个节点上被迭代,直到具有不多于给定个数的规则的叶节点被创建。给定个数是可调整的。方法400和500通过以表示完整的规则列表的根节点为开始来开始建立决策树。使用方法400,确定在每个维度(字段)上进行剪切的个数。
一旦确定在每个维度(字段)上进行剪切的个数,方法500被用 于确定哪个维度来剪切决策树的根节点。根节点上的剪切导致子节点被创建。
方法400和500在每个子节点上被重复,直到剩余的节点仅是叶节点(例如,基于在子节点中规则的个数和针对子节点的规则的给定可调整阈值个数,而不能够进行附加剪切的节点)。换句话说,本地决策在每个节点处进行,其导致了整个的决策树。
图6是图示在分类表中对规则的字段进行剪切的图。分类器表的字段-1601被剪切成4个孩子,而每个孩子分别包含6、4、8和2个规则。分类器表的字段-2605也被剪切成4个孩子,每个孩子分别包含4、6、4和6个规则。参照方法500的510,通过剪切每个字段,子节点中平均个数的规则被确定。如在图6中所图示的,每个子节点在字段-1和字段-2中的规则的平均个数都是5个规则。进一步,图6图示了在每个子节点中规则的实际个数和平均差异之间所计算的差异,对应于方法500的515。然后所计算的差异的平均被计算。对于字段-1601,平均差异是2,而对于字段-2605,平均差异是1。因此,参照方法500的525,在字段-2605上节点被剪切,这是由于平均差异少于针对字段-1601所计算的平均差异。
一旦针对节点的剪切被选择,本文中所描述的实施例确定是否合并由节点的孩子所进行的剪切。合并导致将母节点和母节点的孩子组合成单个节点。例如,如果子节点在不同于母节点的字段上被剪切,那么结果将是母节点在多个字段上剪切。
此外,在与母节点相同的字段上剪切的子节点还可以通过放松空间限制来与母节点合并。从合并产生的节点可以有达到绝对最大个数的孩子;例如,不受启发公式,诸如最大空间公式的约束。
例如,规则组(例如,分类器表)可以包含具有三元组或字段,即F1、F2和F3的规则。在这个示例中,根节点(N0)可以在F1上剪切,并且剪切的个数可以是四。例如,可以被采用F1的2个比特来决定剪切标识符。结果可以是根节点具有4个孩子,例如,N1、N2、N3和N4。如果N1在F1上被剪切并且具有4个剪切,例如F1 的2个比特可以被采用以决定剪切标识符,则N1将具有4个孩子,例如N11、N12、N13、N14。如果N2在F2上被剪切,并且具有4个剪切,例如,F2的2个比特被采用以决定剪切标识符,N2将有4个孩子,例如,N21、N22、N23、N24。如果N3在F1上被剪切,并且具有4个剪切,例如,F1的2个比特被采用以决定剪切标识符,N3将有4个孩子,例如,N31、N32、N33、N34。如果N4在F3上被剪切,并且具有4个剪切,例如,F3的2个比特被采用以决定剪切标识符,N4将有4个孩子,例如,N41、N42、N43、N44。示例描述N0可以在3个字段,例如F1、F2和F3上被剪切,并且总的剪切将是256。F1的4个比特、F2的2个比特和F3的2个比特可以被组合为8比特以剪切N0,从而产生256个孩子。更少个数的层次被提供,因为相比于之前的3个层次,只有2个层次。N1、N2、N3、N4的层被移除,而根节点N0以及具有它的256个孩子。在这个示例中的结果是在树中的节点的总数是257,相比于合并之前在原始的树中的21。在存储和性能折中之间进行平衡。例如,树的层次可以牺牲树中更多节点而被减少。
图7是用于合并决策树的节点的方法700的流程图。方法开始(705),并且确定针对原始节点(例如,母节点)所创建的子节点的字段和个数(710)。该方法针对每个子节点采用类似的确定。方法确定由合并所产生的子节点的个数(720)。方法确定所得到的子节点的个数是否在子节点的预先确定的最大个数之内(725)。如果不是,方法结束(735)。如果是,方法合并节点(730)。方法700针对新的子节点组进行迭代,直到合并不再可能。预先确定的最大值可以在每次迭代时被调整。作为结果,树可以被建立地更宽和更浅,导致更短的搜索时间。
图8A-C示出合并节点的图解示例。图8A是在单个节点801上在分类器表中的规则的字段上所进行的剪切的图解示例。例如,图8A图示单个节点801,其具有只有两个字段(字段-1805和字段-2810)的规则。如字段-1805的细分所表示的,由节点801被细分(例如, 剪切)成四个子节点815、820、825和830。
图8B图示在节点801的子节点815、820、825、830上所进行的剪切。例如,子节点815在字段-1805上被剪切,从而创建了子节点835和840。子节点820、825和830在字段-2810上被剪切,从而创建了子节点845-870。
图8C图示子节点815-830和845-870的合并。如所图示的,现在根节点801在字段-1805和字段-2810上被剪切,从而创建了16个子节点。
有时,甚至在节点被剪切成最大个数的孩子时,只有一个孩子具有任何规则,因为所有节点的规则被簇成搜索空间的一个小区域。
图9A示出被剪切从而导致子节点915具有分类器表的所有规则920的节点901的图解示例。即使在按因子8将字段-1905和字段-2910剪切成总共64个孩子之后,所有节点的原始规则也由单个子节点915来继承。运行时间遍历器可以被用于使得接收的包穿过决策树数据结构以获得匹配规则。在这种情况下,运行时间遍历器可能必须花费时间穿过这个节点,但是没有实现搜索空间的任何细分。钥匙,诸如从包的头元组中抽取的数据,可以被运行时间遍历器用于与规则进行匹配。在这种情况下,为了着手处理能够用于在规则中进行选择的比特,运行时间遍历器实现的唯一事情是消耗钥匙中的下面少数比特。这里的实施例可以在遍历器穿过节点时,在每个节点处存储运行时间遍历器应当略过的多个比特以及其比特将被略过的字段的编号(标识符)。作为结果,运行时间遍历器必须穿过的树节点的个数可以被减少,导致更短的搜索时间。
本文中所描述的实施例包括至少三个数据结构,其包括:i)树,ii)桶,以及ii)规则表。树包括节点和叶节点。叶节点可以被链接至桶。叶节点可以指向桶,桶可以包含一组规则。本文中所描述的实施例可以在公共表中存储规则,并且由叶节点指向的桶可以包含与规则表中的规则相对应的规则编号。桶可以以本领域技术人员所已知的任何合适的形式包括规则。每个桶可以是可以包括一个或多个桶条目 的数据结构。桶条目可以是规则、规则的索引、指向规则的指针、指向一组规则的指针或者指向另一个桶的指针。桶可以包括链接至规则的列表。桶可以包括包含它们的任何组合的条目。例如,桶可以具有作为指向规则的指针的一个条目,以及作为指向一组规则的指针的一个条目等。规则优先级可以以任何合适的形式与规则一起被存储或者链接至规则。
图9B是树950、指向(960)包含分类器规则表958的一组规则956的桶954的叶节点952的示例实施例的图示。
图9C是图示将一组规则编译进入决策树数据结构的示例实施例的方框图970。软件编译器972可以接收规则组974、最大树深度976和多个子树978。软件编译器972可以生成一组编译的规则980。
图9D图示包括书、桶和规则的决策树数据结构981。一组编译的规则980可以生成决策树数据结构981,其包括树982、桶983a-d和规则985。树982可以包括根节点984、节点984a-c和叶节点986a-b。树982的每个叶节点986指向桶983。每个桶可以包括一个或多个桶条目987。叶节点可以包括桶信息,其可以被用于定位桶条目或者条目的桶列表。桶条目可以是指向规则的指针(988),或者指向一组规则(990)的指针(989)。一组规则990可以是连续的一组规则,或者遍及存储器而分散的一组规则,其或者通过多个指针或者通过用来重新收集一组规则的方法来组织。一组规则990还可以被称作块,或者规则块。指向一组规则990的桶条目可以被称为块指针。
本文中所描述的实施例识别i)桶复制,ii)规则复制,iii)节点复制和iv)优先级复制。一旦决策树被建立,可以确定一些叶节点指向包含相同规则的桶(例如,复制规则)或者一些可以指向包含部分复制的桶。本文中所描述的实施例识别数据的复制,并且确定如何重新使用或者共享所复制的数据,以使得只有所复制的数据的单个实例。
本文中所描述的实施例可以去除复制桶,从而只保持单个复制。例如,在一些场景中,不同的叶节点可以具有包含相同规则的桶。在 这种情形中,单个桶被存储,并且所有叶节点指向相同的桶。因此,被要求来保持给定树的存储器可以被减少。
在一些场景中,当母节点被剪切以生成子节点时,一些子节点继承相同的规则组。这被称作节点复制。例如,如果母节点具有从规则R1到规则R100的100个规则,并且母节点被剪切为64个孩子,那么64个子节点中的数个孩子可以继承相同的规则。本文中所描述的实施例可以识别包含相同规则组的子节点,并且只处理具有相同规则的节点中的一个节点。
图10A是图示识别包含相同规则组的子节点的方法(1080)的流程图。方法开始(1082)并且比较由具有相同母节点(1084)的子节点所表示的规则子组。具有相同父母的子节点可以被称作兄弟姐妹。相同父母的包含相同规则组的的子节点被识别为复制子节点(1086)。一组复制子节点的一个子节点可以被选择(标记)为唯一的子节点(1088)。一组复制子节点的其他复制子节点可以被链接至与唯一的子节点相同的子树(1090)。唯一的子节点可以被用于决策树结构的后续构建,并且一组复制子节点的其他子节点可以不被用于决策树结构的后续构建(1092),并且方法结束(1094)。
如上所陈述的,包分类可以导致从规则分类表中多于一个规则的匹配。具有最高优先级的规则被选择用于分类所接收的包。本文中所描述的实施例可以针对重叠的规则确定规则的优先级。本文中所描述的实施例可以基于重叠准则对规则进行分类,而不是针对在规则分类表中的每个规则存储唯一的优先级,其是资源集中的,并且要求大量的存储空间。规则可以被分类成优先级组,并且在每个优先级组内的规则可以被分配唯一的优先级。在优先级组内的规则竞争匹配。通过在优先级组内分配唯一的优先级,竞争规则被优先化。但是,优先级只是在优先级组内唯一,因此相同的优先级值可以与不竞争的规则共享,从而减少了所需要的优先级值的总数。优先级复制通过基于每个重叠准则而提供优先级值,而不是要求对每个规则存储唯一的优先级值,来节省存储空间。
图10B是用于优先级复制(1020)的方法的流程图。方法开始(1022),并且基于规则是否竞争来对规则进行分组(1024)。优先级值可以被分配给多个规则。唯一的优先级值可以在每组竞争的规则内被分配(1026)。非竞争的规则可以被分配给优先级,被分配给非竞争的规则的优先级可以和竞争的规则组内所分配的唯一的优先级相重叠(1028)。存储决策树结构可以存储多个规则和所分配的优先级值(1030),并且方法结束(1032)。
图10C图示在决策树的节点中去除规则的复制桶的图解示例(1000)。如所图示的,节点1005具有4个叶节点1002、1004、1006和1008。节点1005示出包含一组规则的4个桶1010a-d,桶1010a-d由叶节点1002、1004、1006和1008分别指向(1012、1014、1016、1018)。桶1010a、1010c和1010d都包含相同的规则。因为桶1010a、1010c和1010d被识别包含相同的规则,复制桶1010c和1010d可以从存储器中去除,只保持唯一的桶1010a和1010b。
图10D示出节点1005导致具有包含需要在存储器中存储的规则的两个桶(1010a和1010b)。因此,节点1005的叶节点1002、1004、1006和1008只需要指向包含在桶1010a和1010b中的一组规则的存储器位置。例如,叶节点1002、1006和1008都指向(1013)桶1010a,并且叶节点1004指向(1011)桶1010b。
图10E是在决策树的节点中去除规则的复制桶的方法(1040)的流程图。方法1040开始1042,并且识别规则的复制桶(1044)。如果规则的复制桶不被识别,方法结束(1049)。如果规则的复制桶被识别,复制桶被去除(1046),并且叶节点被更新以指向唯一的桶(1048),并且方法结束(1049)。
桶复制不限于具有相同父母的子节点(例如,兄弟姐妹)。
图10F是根据一个实施例的桶复制的图解示例。树(1070)的一部分被示出包括母节点1072,其具有子节点1078a和1078b(叶子)以及孙子节点1074。子节点1078b(叶子)和孙子节点1076(叶子)分别指向桶1076和1073。桶1076和1073是复制桶,每个包括复制 规则组(例如,Rl和R2)。桶1073可以通过将子节点1078b指向1071由孙子节点1074所指向的桶1076来去除。
图10G是在决策树的节点中规则的部分复制桶的图解示例。树的一部分(1050)被示出包括母节点1052和分别指向桶1054a和1056a的两个孩子(叶子)1054和1056。桶1054a和1056a具有规则Rl和R2的部分复制组。在每个桶中的一组规则可以被分成子组。例如,在桶1054a中的规则可以被分成包括Rl和R2的第一组1058a和包括R3和R4的第二组1058b。在桶1056a中的规则可以被分成包括Rl和R2的第一组1058c和包括R7的第二组1058d。桶条目可以由块指针的链接的列表或者指向多组规则的指针来代替。桶1054a'图示桶1054a具有桶条目由块指针C0和C1的链接的列表来代替。类似地,桶1056a'图示桶1056a具有桶条目由块指针C0和C2的链接的列表来代替。块指针C0指向包括Rl和R2的一组规则,块指针C1指向包括R3和R4的一组规则,以及块指针C2指向包括R7的一组规则。
图11A是针对在决策树的节点中的规则的部分复制桶的方法(1150)的流程图。方法开始(1152),并且识别一组部分复制桶(1154)。每个部分复制桶包括复制部分规则组。在每个桶中的规则被分成第一规则组和第二规则组。第一规则组包括复制部分规则组,并且第二规则组包括该桶的任何剩余规则(1156)。给第一规则组和第二规则组创建链接(块指针),并且桶被链接至所创建的链接(1158),并且方法结束(1160)。每个部分复制桶可以被修改以存储块指针的链接的列表。所示出的组的个数是图示,如果有多个部分复制,那么可以有多个组。
如上面所描述的,规则可以具有多个字段。规则的每个字段表示到来的包的头中的字段。包头通常包括至少两个字段,一个字段包含源IP地址字段,以及第二字段包含目标IP地址字段。规则可以在表示到来的包中的源IP地址字段和目标IP地址字段中的一个字段或者两个字段中包含IP通配符。
本文中所描述的实施例可以将规则分成多个分类。分类可以基 于字段的功能。规则可以以任何合适的形式被分成分类。规则可以基于字段的功能。例如,规则可以基于它们在源和目标IP地址字段中是否具有通配符来分类。分类可以如下:1)在源或目标字段中都不具有通配符的规则,2)在源和目标字段中都有通配符的规则,3)在源字段中有通配符,而在目标字段中没有通配符的规则,以及4)在目标字段中有通配符,而在源字段中没有通配符的规则。字段可以是任何字段和任何个数的字段。例如,三个字段可以被用于分类,导致8个分类。此外,替代完整的通配符,分类可以基于字段是“大的”还是“小的”。大和小可以由字段值的范围和它的总空间的比值来限定。
图11B图示用于将分类器表解析为规则的分类并且针对每个分类建立决策树的方法1100。方法1100在1105开始,并且然后方法1100分析分类器表,并且将表解析为规则的分类(1100)。对于每个规则的分类,方法1100建立决策树(1115),并且方法结束(1125)。
图11C图示用于选择匹配规则的方法1130。方法1130在1132开始。所接收的包由运行时间遍历器经过每个决策树来进行遍历(1134)。如果匹配规则被选择,每个决策树返回匹配规则(1136)。每个匹配规则的优先级被比较(1138),并且具有最高优先级的匹配规则被选择(1140),并且方法结束(1142)。
互联网路由器将包进行分类以实施多个高级的互联网服务,诸如路由、速率限制、在防火墙中的接入控制、虚拟带宽分配、基于策略的路由、服务区分、负载平衡、流量整形和流量付费。这些服务要求路由器将到来的包分类成不同的流,并且然后依据这种分类执行适当的操作。
图12是图示系统1200的方框图,其包括路由器/包分类器1210、所保护的网络1215和公共网络1205。公共网络1205可以包括非保护的广域网(WAN),诸如互联网、无线网络、局域网或其他类型的网络。所保护的网络1215可以包括安全的计算机网络,诸如在办公室或数据中心中的局域网(LAN)。如所图示的,LAN可以是包括 多个工作站1225的企业网络1220。多个工作站1225可以操作上被耦合至数据库1230、FTP(文件传输协议)服务器1235和内部网服务器1250。
在系统1200中,路由器1210被连接至公共网络1205和所保护的网络1215,以使得从公共网络1205流到所保护的网络1215的网络流量首先流向路由器1210。路由器1210可以是单独的网络设备、另一个网络设备的部件(例如,防火墙设备)、在网络设备上执行的软件模块,或者另一个配置。路由器1210可以被连接至规则数据中心1240。通常,路由器1210检查来自公共网络1205的网络流量,并且确定在网络流量上执行哪些动作。例如,路由器1210将包进行分类以实施多个高级的互联网服务,诸如路由、速率限制、在防火墙中的接入控制、虚拟带宽分配、基于策略的路由、服务区分、负载平衡、流量整形和流量付费。这些服务要求路由器1210将到来的包分类成不同的流,并且然后依据这种分类执行适当的操作。
图13是可以被用于本文中所描述的实施例的示例性路由器1300的高级方框图。路由器1300包括经由存储器总线1345被耦合至处理器1325的存储器1310,以及存储器1330和经由输入/输出(I/O)总线1350被耦合至处理器1325的网络接口1340。应注意,路由器1300可以包括其他设备,诸如键盘、显示单元等。网络接口1340连接路由器1300和安全的网络1215、公共网络1205和规则数据中心1240,并且使得数据(例如,包)在路由器和系统1200中的其他节点之间被传输。为此,网络接口1340包括合并信号(电气和机械特性)的传统电路,以及被需要和系统1200的物理介质以及在该介质上运行的协议进行接口连接的交换电路。
存储器1310是非瞬态计算机可读介质,被作为包括RAM的RAM设备进行实施,诸如DRAM设备和/或闪存设备。存储器1310包含被处理器1325所使用的各种软件和数据结构,包括实施本文中所描述的实施例的各方面的软件和数据结构。具体地,存储器1310包括操作系统1315和包分类服务1320。操作系统1315功能上通过调 用支持在路由器1300上执行的软件处理和服务(诸如包分类服务1320)的操作来组织路由器1300。如将在下面所描述的,包分类服务1320包括计算机可执行指令来根据给定的规则编译决策树数据结构,并且通过所编译的决策树数据结构遍历到来的数据包。
存储设备1330是传统的存储设备(例如,磁盘),其包括作为数据结构的规则数据库(DB)1335,该数据结构被配置为保持被用于根据给定的一组规则编译决策树数据结构的各种信息。信息可以包括具有与到来的数据包的头相对应的多个字段的规则。
应理解,方块、流、网络图可以包括被不同布置或者被不同表示的更多或者更少的单元。应理解,实施方式可以规定图示了本文中所描述的实施例的执行的方块、流、网络图以及方块、流、网络图的个数。
应理解,上面所描述的块、流、网络图的单元可以在软件、硬件或固件中被实施。此外,上面所描述的块、流、网络图的单元可以在软件、硬件或固件中以任何形式被组合或分解。如果在软件中被实施,软件可以用能够支持本文中所公开的实施例的任何语言被写入。软件可以被存储于任何形式的计算机可读介质上,诸如随机访问存储器(RAM)、只读存储器(ROM)、光盘只读存储器(CD-ROM)以及任何非瞬态形式的计算机可读介质。在操作中,通用或专用的处理器以本领域中容易理解的形式加载并且执行软件。
虽然本发明参照其中的示例实施例被具体地示出和描述,但是本领域的技术人员将理解,在不背离由所附权利要求所包含的本发明的范围的前提下,可以在其中进行形式和细节上的各种改变。

Claims (69)

1.一种用于分类包的方法,包括:
在处理器中,使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;
对于所述决策树的每个节点,(a)确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;
(b)基于对所创建的每个子节点的规则的平均个数与在至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;
(c)在所选择的字段上将所述节点剪切成若干子节点,以及
在存储器中存储所述决策树结构。
2.根据权利要求1所述的方法,其中确定所述剪切的个数是基于针对给定的存储容量的剪切的最大个数。
3.根据权利要求1所述的方法,其中选择包括基于如下字段,即所述至少一个字段中的、具有在每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的字段,而选择在其上将所述节点剪切成若干子节点的字段。
4.根据权利要求1所述的方法,其中剪切包括仅在所述节点具有比所述多个规则的所述子组的预定个数更多时,剪切所述节点。
5.根据权利要求4所述的方法,其中所述预定个数是可调整的个数,所述方法进一步包括通过迭代地调整所述预定个数来控制所述决策树结构的深度。
6.根据权利要求5所述的方法,其中调整所述预定个数包括随着所述树的层次的增加而递增所述预定个数。
7.根据权利要求1所述的方法,其中如果剪切创建了多个子节点,并且只有一个子节点具有所述多个规则的子组,那么在所述节点处存储所述至少一个字段中的字段的标识符以及所述至少一个字段中的、在遍历所述节点以获得规则匹配时略过的所述字段中的若干比特。
8.根据权利要求7所述的方法,其中所述至少一个字段中的、略过的所述字段的比特的个数与用于剪切所述节点的若干比特的个数相同。
9.根据权利要求1所述的方法,进一步包括:
在建立所述决策树结构时,对于所述决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组;
识别复制子节点组,所述复制子节点组具有所述多个规则的复制的子组;
选择被识别的所述复制子节点组的一个子节点作为唯一的子节点;
将被识别的所述复制子节点组的其他子节点链接至与所述唯一的子节点相同的子树;
使用所述唯一的子节点用于所述决策树结构的后续建立;以及
抑制使用将被识别的所述复制子节点组的所述其他子节点用于所述决策树结构的后续建立。
10.根据权利要求1所述的方法,进一步包括将所述分类器表中的所述多个规则分组成多个规则分类,并且针对所述多个规则分类中的每个规则分类建立包括多个节点的决策树结构。
11.根据权利要求10所述的方法,其中所述多个规则分类是基于应用于所述多个规则的一个或多个字段功能,或者所述一个或多个字段功能的组合。
12.根据权利要求11所述的方法,其中所述一个或多个字段功能包括应用非互联网协议(IP)地址通配符、源IP但不是目标IP通配符、目标IP但不是源IP通配符、目标和源地址通配符、字段范围比较以及与一个或多个所述至少一个字段相关联的一个或多个掩码。
13.根据权利要求10所述的方法,进一步包括将所接收的包遍历所建立的每个决策树,并且比较从每个树得到的规则以选择最终的匹配。
14.根据权利要求13所述的方法,其中所选择的所述最终的匹配是具有最高优先级的规则。
15.根据权利要求1所述的方法,进一步包括:
将具有以下若干规则的每个子节点转换成叶节点,所述若干规则小于或等于规则的给定个数;
针对所转换的每个子节点创建相应的桶,所述相应的桶包括所转换的所述子节点的规则;
将每个叶节点链接至所创建的所述相应的桶;
识别复制桶组,每个复制桶包括相同的规则组;
选择所述复制桶组中的一个桶,并且去除所述复制桶组的其他桶;以及
将到所去除的桶的链接改变成到所选择的所述一个桶的链接。
16.根据权利要求1所述的方法,进一步包括:
将具有以下若干规则的每个子节点转换成叶节点,所述若干规则小于或等于规则的给定个数;
针对所转换的每个子节点创建相应的桶,所述相应的桶包括所转换的所述子节点的规则;
将每个叶节点链接至所创建的所述相应的桶;
识别部分复制桶组,每个部分复制桶包括复制部分规则组;
将在所述部分复制桶组中的每个桶中的规则分成针对每个桶的第一规则组和第二规则组,针对每个桶的所述第一规则组包括所述复制部分规则组,并且针对每个桶的所述第二规则组包括针对每个桶的任何剩余的规则;以及
在每个部分复制的桶中创建到所述第一规则组的链接,并且在每个部分复制桶中创建到所述第二规则组的链接。
17.根据权利要求16所述的方法,其中每个部分复制桶包括到所述第一规则组和所述第二规则组的指针的链接列表。
18.根据权利要求1所述的方法,其中所述决策树结构是二进制数据结构。
19.根据权利要求1所述的方法,其中所述决策树结构从所述分类器表被编译。
20.根据权利要求1所述的方法,其中对应每个规则的优先级被存储于所述决策树结构中。
21.根据权利要求1所述的方法,包括确定规则是否被一个或多个其他更高优先级的规则覆盖,并且如果所述规则被覆盖,则从所述决策树结构中忽略所述规则。
22.根据权利要求21所述的方法,其中确定包括针对每个节点确定包括由更高级的节点所表示的所述多个规则的所述子组中的子组。
23.根据权利要求21所述的方法,其中如果所述规则的相应字段与所述一个或多个其他更高优先级的规则的所有相应字段重叠,则所述规则由所述一个或多个更高优先级的规则覆盖。
24.一种用于分类包的方法,包括:
在处理器中,使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;
针对所述决策树的每个层次,基于母节点的子节点的结果总数不大于给定的阈值,确定是否合并所述母节点的孙子节点和所述母节点的子节点;
在每个层次基于所述确定,合并所述母节点的所述孙子节点和所述母节点的子节点;以及
在存储器中存储所述决策树结构。
25.根据权利要求24所述的方法,其中在每个层次包括将每个子节点的剪切合并到所述母节点的剪切中,从而产生所述母节点的新的子节点。
26.根据权利要求25所述的方法,其中所述子节点的所述剪切与所述母节点的剪切是在同一字段上,或者所述子节点的所述剪切与所述母节点的剪切是在不同的字段上。
27.根据权利要求24所述的方法,其中所述给定的阈值是可调整的,所述方法进一步包括迭代地调整所述给定的阈值,并且合并母节点的孙子节点和所述母节点的子节点,直到所述母节点的子节点的结果总数达到了子节点的给定的阈值的个数。
28.根据权利要求24所述的方法,进一步包括:
基于所述至少一个字段中选择的一个或多个字段以及每个均对应于所述选择的一个或多个字段的位的数目,将所述母节点剪切成所述子节点。
29.一种用于分类包的方法,所述方法包括:
在处理器中,使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;
基于规则是否竞争由所述处理器来将规则分组到竞争规则的组中;
由所述处理器向所述多个规则分配优先级值,包括在每组竞争规则内分配唯一的优先级值,并且使得非竞争规则具有相同的优先级值;以及
由所述处理器在存储器中存储所述决策树结构,包括存储所述多个规则和所分配的所述优先级值。
30.一种用于分类包的装置,所述装置包括:
存储器;
处理器,耦合至所述存储器,所述处理器被配置为使用具有存储在所述存储器中的多个规则的分类器表,所述多个规则具有至少一个字段,所述处理器进一步被配置为建立包括多个节点的决策树结构,所述多个节点表示所述多个规则的子组;
所述处理器进一步被配置为针对所述决策树的每个节点,确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;
在确定可以在至少一个字段的每个字段上所进行的所述剪切的个数之后,所述处理器进一步被配置为基于对所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;以及
所述处理器进一步被配置为在所选择的字段上将所述节点剪切成若干子节点,并且在所述存储器中存储所述决策树结构。
31.根据权利要求30所述的装置,其中所述处理器进一步被配置为基于针对给定的存储容量的剪切的最大个数来确定所述剪切的个数。
32.根据权利要求30所述的装置,其中所述处理器进一步被配置为基于如下字段,即所述至少一个字段中的、具有在每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的字段,而选择在其上将所述节点剪切成若干子节点的字段。
33.根据权利要求30所述的装置,其中所述处理器进一步被配置为只有在所述节点具有比所述多个规则的所述子组的预定个数更多时,剪切所述节点。
34.根据权利要求33所述的装置,其中所述预定个数是可调整的个数,其中所述处理器进一步被配置为通过迭代地调整所述预定个数来控制所述决策树结构的深度。
35.根据权利要求34所述的装置,其中调整所述预定个数包括随着所述树的层次的增加而增加所述预定个数。
36.根据权利要求30所述的装置,其中如果剪切创建了多个子节点,并且只有一个子节点具有所述多个规则的子组,所述处理器进一步被配置为在所述节点处存储所述至少一个字段中的字段的标识符以及所述至少一个字段中的、在遍历所述节点以获得规则匹配时略过的所述字段的若干比特。
37.根据权利要求36所述的装置,其中所述至少一个字段中的、略过的所述字段的比特的个数与用于剪切所述节点的若干比特的个数相同。
38.根据权利要求30所述的装置,其中所述处理器进一步被配置为:
在建立所述决策树结构时,对于所述决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组;
识别复制子节点组,所述复制子节点组具有所述多个规则的复制的子组;
选择被识别的所述复制子节点组的一个子节点作为唯一的子节点;
将被识别的所述复制子节点组的其他子节点链接到与所述唯一的子节点相同的子树;
使用所述唯一的子节点用于所述决策树结构的后续建立;以及
抑制使用被识别的所述复制子节点组的所述其他子节点用于所述决策树结构的后续建立。
39.根据权利要求30所述的装置,其中所述处理器进一步被配置为将所述分类器表中的所述多个规则分组成多个规则分类,并且针对所述多个规则分类中的每个规则分类建立包括多个节点的决策树结构。
40.根据权利要求39所述的装置,其中所述多个规则分类是基于应用于所述多个规则的一个或多个字段功能,或者所述一个或多个字段功能的组合。
41.根据权利要求40所述的装置,其中所述一个或多个字段功能包括应用非互联网协议(IP)地址通配符、源IP但不是目标IP通配符、目标IP但不是源IP通配符、目标和源地址通配符、字段范围比较以及与一个或多个所述至少一个字段相关联的一个或多个掩码。
42.根据权利要求30所述的装置,其中所述处理器进一步被配置为:
将具有以下若干规则的每个子节点转换成叶节点,所述若干规则小于或等于规则的给定个数;
针对所转换的每个子节点创建相应的桶,所述相应的桶包括所转换的所述子节点的规则;
将每个叶节点链接至所创建的所述相应的桶;
识别复制桶组,每个复制桶包括相同的规则组;
选择所述复制桶组中的一个桶,并且去除所述复制桶组中的其他桶;以及
将到所去除的桶的链接改变成到所选择的所述一个桶的链接。
43.根据权利要求30所述的装置,其中所述处理器进一步被配置为:
将具有以下若干规则的每个子节点转换成叶节点,所述若干规则小于或等于规则的给定个数;
针对所转换的每个子节点创建相应的桶,所述相应的桶包括所转换的所述子节点的规则;
将每个叶节点链接至所创建的所述相应的桶;
识别部分复制桶组,每个部分复制桶包括复制部分规则组;
将在所述部分复制桶组中的每个桶分成针对每个桶的第一规则组和第二规则组;针对每个桶的所述第一规则组包括所述复制部分规则组,并且针对每个桶的所述第二规则组包括针对每个桶的任何剩余的规则;以及
在每个部分复制的桶中创建到所述第一规则组的链接,并且在每个部分复制桶中创建到所述第二规则组的链接。
44.根据权利要求43所述的装置,其中每个部分复制桶包括到所述第一规则组和所述第二规则组的指针的链接列表。
45.根据权利要求30所述的装置,其中所述决策树结构是二进制数据结构。
46.根据权利要求30所述的装置,其中所述决策树结构从所述分类器表被编译。
47.根据权利要求30所述的装置,其中对应于每个规则的优先级被存储于所述决策树结构中。
48.根据权利要求30所述的装置,包括确定规则是否被一个或多个其他更高优先级的规则覆盖,并且如果所述规则被覆盖,则从所述决策树结构中忽略所述规则。
49.根据权利要求48所述的装置,其中如果所述规则的相应字段与所述一个或多个其他更高优先级的规则的所有相应字段重叠,则所述规则由所述一个或多个更高优先级的规则覆盖。
50.一种用于分类包的装置,所述装置包括:
用于使用具有多个规则的分类器表的部件,所述多个规则具有至少一个字段;
用于建立包括多个节点的决策树结构的部件,所述多个节点包括所述多个规则的子组;
用于针对所述决策树的每个节点来确定可以在至少一个字段的每个字段上进行的若干剪切、从而创建等于剪切的个数的子节点的部件;
用于在确定可以在至少一个字段的每个字段上所进行的所述剪切的个数之后基于对所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较来选择在其上剪切所述节点的字段的部件;
用于至少在所选择的字段上将所述节点剪切成若干子节点的部件,以及
用于存储决策树结构的部件。
51.根据权利要求49所述的装置,其中所述用于选择的部件基于具有每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的所述至少一个字段,而选择在其上将所述节点剪切成若干子节点的字段。
52.一种用于分类包的装置,所述装置包括:
存储器;
处理器,耦合至所述存储器,所述处理器被配置为:
使用具有多个规则的分类器表,所述多个规则具有至少一个字段;
建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;
基于规则是否竞争来将规则分组到竞争规则的组中;
向所述多个规则分配优先级值,包括在每组竞争规则内分配唯一的优先级值,并且使得非竞争规则具有相同的优先级值;以及
在所述存储器中存储所述决策树结构,包括存储所述多个规则和所分配的所述优先级值。
53.一种用于分类包的装置,所述装置包括:
用于使用具有多个规则的分类器表的部件,所述多个规则具有至少一个字段;
用于建立包括多个节点的决策树结构的部件,每个节点表示所述多个规则的子组;
用于基于规则是否竞争来分组规则的部件;
用于向所述多个规则分配优先级值的部件,包括在每组竞争规则内分配唯一的优先级值,并且使得非竞争规则具有相同的优先级值;以及
用于存储所述决策树结构的部件,包括存储所述多个规则和所分配的所述优先级值。
54.一种用于分类包的装置,所述装置包括:
存储器;
处理器,耦合至所述存储器,所述处理器被配置为:
使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点包括所述多个规则的子组;
针对所述决策树的每个层次,基于母节点的子节点的结果总数不大于给定的阈值,确定是否合并所述母节点的孙子节点和所述母节点的子节点;
在每个层次基于所述确定,合并所述母节点的所述孙子节点和所述母节点的子节点;以及
在所述存储器中存储所述决策树结构。
55.根据权利要求54所述的装置,所述处理器被进一步配置为进一步将子节点的剪切合并到所述母节点的剪切中,从而产生所述母节点的新的子节点。
56.根据权利要求55所述的装置,其中所述子节点的所述剪切与所述母节点的剪切是在同一字段上,或者所述子节点的所述剪切与所述母节点的剪切是在不同的字段上。
57.根据权利要求54所述的装置,其中所述给定的阈值是可调整的,所述处理器被进一步配置为迭代地调整所述给定的阈值,并且合并母节点的孙子节点和所述母节点的子节点,直到所述母节点的子节点的结果总数达到了子节点的给定的阈值的个数。
58.根据权利要求54所述的装置,所述处理器进一步被配置成:
基于所述至少一个字段中的选择的一个或多个字段以及每个均对应于所述选择的一个或多个字段的位的数目,将所述母节点剪切成所述子节点。
59.一种用于分类包的装置,所述装置包括:
用于使用具有多个规则的分类器表的部件,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;
用于针对所述决策树的每个层次而基于母节点的子节点的结果总数不大于给定的阈值来确定是否合并所述母节点的孙子节点和所述母节点的子节点的部件;以及
用于存储所述决策树结构的部件。
60.根据权利要求59所述的装置,其中所述装置还包括用于将子节点的剪切合并到所述母节点的剪切中从而产生所述母节点的新的子节点的部件。
61.根据权利要求60所述的装置,其中所述子节点的所述剪切与所述母节点的剪切是在同一字段上,或者所述子节点的所述剪切与所述母节点的剪切是在不同的字段上。
62.根据权利要求59所述的装置,其中所述给定的阈值是可调整的,并且其中所述装置还包括用于迭代地调整所述给定的阈值并且合并母节点的孙子节点和所述母节点的子节点的部件。
63.根据权利要求59所述的装置,其中所述装置还包括:
用于基于所述至少一个字段中的选择的一个或多个字段以及每个均对应于所述选择的一个或多个字段的位的数目来将所述母节点剪切成所述子节点的部件。
64.一种用于分类包的装置,所述装置包括:
用于使用具有多个规则的分类器表的部件,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;
用于识别所述决策树结构中的复制的部件;
用于基于所识别的复制来修改所述决策树结构的部件;以及
用于在存储器中存储所修改的决策树结构的部件。
65.根据权利要求64所述的装置,其中所述多个节点包括母节点和子节点,并且其中所述装置还包括:
用于针对所述决策树的每个层次来比较由针对所述决策树的每个层次具有相同母节点的子节点所表示的规则子组的部件,以及
用于识别复制子节点组的部件,所述复制子节点组具有所述多个规则的复制子组;以及其中用于修改的部件包括:
用于选择被识别的所述复制子节点组的一个子节点作为唯一的子节点的部件,以及
用于将被识别的所述复制子节点组的其他子节点链接至与所述唯一的子节点相同的子树的部件。
66.根据权利要求64所述的装置,其中所述多个节点包括母节点和子节点,并且其中所述装置还包括:
用于将具有以下若干规则的每个子节点转换成叶节点的部件,所述若干规则小于或等于规则的给定个数;
用于针对所转换的每个子节点创建相应的桶的部件,所述相应的桶包括所转换的所述子节点的规则;
用于将每个叶节点链接至所创建的所述相应的桶的部件;
用于识别复制桶组的部件,每个复制桶包括相同的规则组;
用于选择所述复制桶组中的一个桶并且去除所述复制桶组中的其他桶的部件;以及
用于将到所去除的桶的链接改变成到所选择的所述一个桶的链接的部件。
67.根据权利要求64所述的装置,其中所述多个节点包括母节点和子节点,并且其中所述装置还包括:
用于将具有以下若干规则的每个子节点转换成叶节点的部件,所述若干规则小于或等于规则的给定个数;
用于针对所转换的每个子节点创建相应的桶的部件,所述相应的桶包括所转换的子节点的规则;
用于将每个叶节点链接至所创建的所述相应的桶的部件;
用于识别部分复制桶组的部件,每个部分复制桶包括复制部分的规则组;
用于将所述部分复制桶组中的每个桶中的规则分成针对每个桶的第一规则组和第二规则组的部件,针对每个桶的所述第一规则组包括所述复制部分规则组,并且针对每个桶的所述第二规则组包括针对每个桶的任何剩余的规则;以及
用于在每个部分复制的桶中创建到所述第一规则组的链接并且在每个部分复制的桶中创建到所述第二规则组的链接的部件。
68.根据权利要求67所述的装置,其中每个部分复制的桶包括到所述第一规则组和所述第二规则组的指针的链接列表。
69.根据权利要求64所述的装置,其中所述多个节点包括母节点和子节点,并且其中所述装置还包括:
用于将规则数目少于或等于给定规则数目的每个子节点转换成叶节点的部件;
用于针对每个转换的子节点创建相应的桶的部件,所述相应的桶包括链接到所述转换的子节点的规则的桶条目;
用于将每个叶节点链接到所述创建的相应的桶的部件;
用于识别被包括在至少两个桶中的一个或多个复制规则的部件;以及
用于将所述识别的至少两个桶中的至少一个桶条目替换成至少一个相同桶条目的部件,所述相同的桶条目被链接到所述一个或多个复制规则。
CN201280048417.4A 2011-08-02 2012-08-02 用于通过优化的决策树执行包分类的方法和装置 Expired - Fee Related CN103858386B (zh)

Applications Claiming Priority (23)

Application Number Priority Date Filing Date Title
US201161514400P 2011-08-02 2011-08-02
US201161514450P 2011-08-02 2011-08-02
US201161514379P 2011-08-02 2011-08-02
US201161514407P 2011-08-02 2011-08-02
US201161514459P 2011-08-02 2011-08-02
US201161514438P 2011-08-02 2011-08-02
US201161514344P 2011-08-02 2011-08-02
US201161514447P 2011-08-02 2011-08-02
US201161514382P 2011-08-02 2011-08-02
US201161514406P 2011-08-02 2011-08-02
US201161514463P 2011-08-02 2011-08-02
US61/514,450 2011-08-02
US61/514,400 2011-08-02
US61/514,407 2011-08-02
US61/514,344 2011-08-02
US61/514,379 2011-08-02
US61/514,406 2011-08-02
US61/514,447 2011-08-02
US61/514,382 2011-08-02
US61/514,459 2011-08-02
US61/514,463 2011-08-02
US61/514,438 2011-08-02
PCT/US2012/049408 WO2013020003A1 (en) 2011-08-02 2012-08-02 Packet classification by an optimised decision tree

Publications (2)

Publication Number Publication Date
CN103858386A CN103858386A (zh) 2014-06-11
CN103858386B true CN103858386B (zh) 2017-08-25

Family

ID=46642652

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280048291.0A Active CN103858392B (zh) 2011-08-02 2012-08-02 用于更新规则编译数据结构的方法和装置
CN201280048417.4A Expired - Fee Related CN103858386B (zh) 2011-08-02 2012-08-02 用于通过优化的决策树执行包分类的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280048291.0A Active CN103858392B (zh) 2011-08-02 2012-08-02 用于更新规则编译数据结构的方法和装置

Country Status (5)

Country Link
US (27) US8719331B2 (zh)
JP (1) JP5657840B2 (zh)
KR (2) KR101476114B1 (zh)
CN (2) CN103858392B (zh)
WO (5) WO2013020001A1 (zh)

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8923306B2 (en) 2011-08-02 2014-12-30 Cavium, Inc. Phased bucket pre-fetch in a network processor
US10229139B2 (en) 2011-08-02 2019-03-12 Cavium, Llc Incremental update heuristics
US9183244B2 (en) 2011-08-02 2015-11-10 Cavium, Inc. Rule modification in decision trees
US9208438B2 (en) 2011-08-02 2015-12-08 Cavium, Inc. Duplication in decision trees
US8719331B2 (en) 2011-08-02 2014-05-06 Cavium, Inc. Work migration in a processor
US9159420B1 (en) * 2011-08-16 2015-10-13 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for content addressable memory parallel lookup
US9767058B2 (en) 2011-11-17 2017-09-19 Futurewei Technologies, Inc. Method and apparatus for scalable low latency solid state drive interface
US20130135816A1 (en) * 2011-11-17 2013-05-30 Futurewei Technologies, Inc. Method and Apparatus for Scalable Low Latency Solid State Drive Interface
US9049200B2 (en) * 2012-07-27 2015-06-02 Cisco Technology, Inc. System and method for improving hardware utilization for a bidirectional access controls list in a low latency high-throughput network
US9143449B2 (en) * 2012-07-31 2015-09-22 Cisco Technology, Inc. Methods and apparatuses for improving database search performance
US9100366B2 (en) * 2012-09-13 2015-08-04 Cisco Technology, Inc. Early policy evaluation of multiphase attributes in high-performance firewalls
US20140089619A1 (en) * 2012-09-27 2014-03-27 Infinera Corporation Object replication framework for a distributed computing environment
US9307059B2 (en) * 2012-11-09 2016-04-05 Sap Se Retry mechanism for data loading from on-premise datasource to cloud
US9185057B2 (en) * 2012-12-05 2015-11-10 The Intellisis Corporation Smart memory
US9536016B2 (en) * 2013-01-16 2017-01-03 Google Inc. On-disk multimap
US10021026B2 (en) * 2013-01-31 2018-07-10 Hewlett Packard Enterprise Development Lp Incremental update of a shape graph
US9424366B1 (en) * 2013-02-11 2016-08-23 Marvell International Ltd. Reducing power consumption in ternary content addressable memory (TCAM)
US9578061B2 (en) 2013-03-13 2017-02-21 FireMon, LLC System and method for modeling a networking device policy
US9270704B2 (en) * 2013-03-13 2016-02-23 FireMon, LLC Modeling network devices for behavior analysis
US10083200B2 (en) 2013-03-14 2018-09-25 Cavium, Inc. Batch incremental update
JP6276296B2 (ja) 2013-03-14 2018-02-07 マイクロン テクノロジー, インク. トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
US9276846B2 (en) 2013-03-15 2016-03-01 Cavium, Inc. Packet extraction optimization in a network processor
US9130819B2 (en) 2013-03-15 2015-09-08 Cavium, Inc. Method and apparatus for scheduling rule matching in a processor
US10229144B2 (en) 2013-03-15 2019-03-12 Cavium, Llc NSP manager
US9195939B1 (en) 2013-03-15 2015-11-24 Cavium, Inc. Scope in decision trees
US9595003B1 (en) 2013-03-15 2017-03-14 Cavium, Inc. Compiler with mask nodes
KR102211212B1 (ko) * 2013-03-15 2021-02-03 비데리 인코포레이티드 디지털 아트 및 이미징을 디스플레이하고, 배포하고, 뷰잉하고 제어하기 위한 시스템 및 방법
US9112767B2 (en) * 2013-03-15 2015-08-18 Cavium, Inc. Method and an accumulator scoreboard for out-of-order rule response handling
US9531647B1 (en) 2013-03-15 2016-12-27 Cavium, Inc. Multi-host processing
KR20140131781A (ko) * 2013-05-06 2014-11-14 삼성전자주식회사 메모리 제어 장치 및 방법
US10862731B1 (en) * 2013-06-27 2020-12-08 EMC IP Holding Company LLC Utilizing demonstration data based on dynamically determining feature availability
US9286217B2 (en) * 2013-08-26 2016-03-15 Qualcomm Incorporated Systems and methods for memory utilization for object detection
US9356818B2 (en) * 2013-10-30 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Method and computing device for packet classification
US9674086B2 (en) * 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
US9620213B2 (en) 2013-12-27 2017-04-11 Cavium, Inc. Method and system for reconfigurable parallel lookups using multiple shared memories
US9379963B2 (en) 2013-12-30 2016-06-28 Cavium, Inc. Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9275336B2 (en) * 2013-12-31 2016-03-01 Cavium, Inc. Method and system for skipping over group(s) of rules based on skip group rule
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
CN103763197B (zh) * 2014-01-27 2017-04-12 杭州华三通信技术有限公司 一种流表项冲突检测装置和方法
EP3761575A1 (en) 2014-04-30 2021-01-06 Huawei Technologies Co., Ltd. Search apparatus and method
US9497119B2 (en) 2014-05-22 2016-11-15 International Business Machines Corporation Supporting access control list rules that apply to TCP segments belonging to ‘established’ connection
US9749328B2 (en) 2014-05-22 2017-08-29 International Business Machines Corporation Access control list-based port mirroring techniques
US9485257B2 (en) 2014-05-22 2016-11-01 International Business Machines Corporation Atomically updating ternary content addressable memory-based access control lists
US9722931B2 (en) 2014-06-05 2017-08-01 International Business Machines Corporation Unified framework for isolating multicast and broadcast frames to a traffic class separate from a traffic class used for unicast frames
US9344373B2 (en) * 2014-06-13 2016-05-17 International Business Machines Corporation Packet I/O support for a logical switch router architecture
KR101535813B1 (ko) * 2014-10-17 2015-07-10 한국과학기술정보연구원 복합 이벤트 처리를 위한 이벤트 구성 규칙의 동적 업데이트를 위한 시스템 및 방법
US11943142B2 (en) 2014-11-10 2024-03-26 Marvell Asia Pte, LTD Hybrid wildcard match table
US10116564B2 (en) * 2014-11-10 2018-10-30 Cavium, Inc. Hybrid wildcard match table
US11218410B2 (en) 2014-11-10 2022-01-04 Marvell Asia Pte, Ltd. Hybrid wildcard match table
US9485179B2 (en) * 2014-11-13 2016-11-01 Cavium, Inc. Apparatus and method for scalable and flexible table search in a network switch
US9692727B2 (en) * 2014-12-02 2017-06-27 Nicira, Inc. Context-aware distributed firewall
US10061531B2 (en) 2015-01-29 2018-08-28 Knuedge Incorporated Uniform system wide addressing for a computing system
US9552327B2 (en) 2015-01-29 2017-01-24 Knuedge Incorporated Memory controller for a network on a chip device
KR102328071B1 (ko) * 2015-02-04 2021-11-18 한국전자통신연구원 광전송망의 트래픽을 처리하는 방법 및 장치
JP6598188B2 (ja) * 2015-02-27 2019-10-30 株式会社エヴリカ 情報処理装置、方法およびプログラム
US20170288968A1 (en) * 2015-03-23 2017-10-05 Hewlett Packard Enterprise Development Lp Compiling network policies
WO2016158732A1 (ja) * 2015-03-27 2016-10-06 古河電気工業株式会社 電磁シールド管、電磁シールド構造
US20160321285A1 (en) * 2015-05-02 2016-11-03 Mohammad Faraz RASHID Method for organizing and distributing data
US20160335298A1 (en) 2015-05-12 2016-11-17 Extreme Networks, Inc. Methods, systems, and non-transitory computer readable media for generating a tree structure with nodal comparison fields and cut values for rapid tree traversal and reduced numbers of full comparisons at leaf nodes
US10075998B2 (en) * 2015-05-14 2018-09-11 Intel IP Corporation Wireless device, method, and computer readable media for signaling a resource allocation in a high efficiency wireless local-area network
US10115463B1 (en) * 2015-06-25 2018-10-30 Xilinx, Inc. Verification of a RAM-based TCAM
US20170017567A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Distributed-Linked Lists For Network Devices
US20170017419A1 (en) * 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017414A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US10423330B2 (en) * 2015-07-29 2019-09-24 International Business Machines Corporation Data collection in a multi-threaded processor
US9984144B2 (en) 2015-08-17 2018-05-29 Mellanox Technologies Tlv Ltd. Efficient lookup of TCAM-like rules in RAM
US10496680B2 (en) 2015-08-17 2019-12-03 Mellanox Technologies Tlv Ltd. High-performance bloom filter array
US10049126B2 (en) 2015-09-06 2018-08-14 Mellanox Technologies Tlv Ltd. Cuckoo hashing with selectable hash
US10451094B2 (en) * 2015-09-28 2019-10-22 Kubota Corporation Hydraulic system of work machine
CN105426352A (zh) * 2015-11-24 2016-03-23 国家电网公司 模板文档自动生成方法
US10554572B1 (en) * 2016-02-19 2020-02-04 Innovium, Inc. Scalable ingress arbitration for merging control and payload
US10027583B2 (en) 2016-03-22 2018-07-17 Knuedge Incorporated Chained packet sequences in a network on a chip architecture
US9892057B2 (en) 2016-03-31 2018-02-13 Mellanox Technologies Tlv Ltd. Single double cuckoo hash
US10346049B2 (en) 2016-04-29 2019-07-09 Friday Harbor Llc Distributed contiguous reads in a network on a chip architecture
CN106209626B (zh) * 2016-07-26 2019-12-06 新华三技术有限公司 自适应下发路由方法以及装置
WO2018025258A1 (en) * 2016-07-31 2018-02-08 Fenror7 Ltd Method and system for detecting movement of malware and other potential threats
US10068034B2 (en) 2016-09-07 2018-09-04 Mellanox Technologies Tlv Ltd. Efficient matching of TCAM rules using hash tables in RAM
US10169248B2 (en) 2016-09-13 2019-01-01 International Business Machines Corporation Determining cores to assign to cache hostile tasks
US10204060B2 (en) 2016-09-13 2019-02-12 International Business Machines Corporation Determining memory access categories to use to assign tasks to processor cores to execute
US10303375B2 (en) 2016-09-19 2019-05-28 Fungible, Inc. Buffer allocation and memory management
US10209900B2 (en) * 2016-09-19 2019-02-19 Fungible, Inc. Buffer allocation and memory management using mapping table
US10454786B2 (en) * 2016-09-26 2019-10-22 Amazon Technologies, Inc. Multi-party updates to distributed systems
US10489424B2 (en) 2016-09-26 2019-11-26 Amazon Technologies, Inc. Different hierarchies of resource data objects for managing system resources
US10193862B2 (en) 2016-11-29 2019-01-29 Vmware, Inc. Security policy analysis based on detecting new network port connections
US10341242B2 (en) * 2016-12-13 2019-07-02 Oracle International Corporation System and method for providing a programmable packet classification framework for use in a network device
US10404594B2 (en) 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
CN106844041B (zh) * 2016-12-29 2020-06-16 华为技术有限公司 内存管理的方法及内存管理系统
US10084855B2 (en) * 2017-01-23 2018-09-25 Akamai Technologies, Inc. Pixel-based load balancing
US10257090B2 (en) * 2017-02-21 2019-04-09 Futurewei Technologies, Inc. Packet classification using multi-dimensional splitting
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
CN110731070A (zh) 2017-03-29 2020-01-24 芬基波尔有限责任公司 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络
US10637685B2 (en) 2017-03-29 2020-04-28 Fungible, Inc. Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups
US10425707B2 (en) 2017-03-29 2019-09-24 Fungible, Inc. Non-blocking, full-mesh data center network having optical permutors
US10565112B2 (en) 2017-04-10 2020-02-18 Fungible, Inc. Relay consistent memory management in a multiple processor system
US10885118B2 (en) * 2017-05-12 2021-01-05 Futurewei Technologies, Inc. Incremental graph computations for querying large graphs
US10713089B2 (en) * 2017-05-20 2020-07-14 Cavium International Method and apparatus for load balancing of jobs scheduled for processing
US10725825B2 (en) 2017-07-10 2020-07-28 Fungible, Inc. Data processing unit for stream processing
WO2019014237A1 (en) 2017-07-10 2019-01-17 Fungible, Inc. ACCESS NODE FOR DATA CENTERS
US10476794B2 (en) 2017-07-30 2019-11-12 Mellanox Technologies Tlv Ltd. Efficient caching of TCAM rules in RAM
CN107450495B (zh) * 2017-08-25 2019-10-29 艾普工华科技(武汉)有限公司 一种基于消息规则引擎的柔性在制品管理业务模型系统
CN108632235B (zh) * 2017-08-31 2020-07-07 新华三技术有限公司 一种网包分类决策树建立方法及装置
CN107797973A (zh) * 2017-09-27 2018-03-13 西安交通大学 一种面向硬件实现的gbdt分类模型压缩方法
US10965586B2 (en) 2017-09-29 2021-03-30 Fungible, Inc. Resilient network communication using selective multipath packet flow spraying
WO2019068010A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. VIRTUAL MATRIX OF NETWORK ACCESS NODES CONFIGURED DYNAMICALLY ON AN UNDERLYING NETWORK
WO2019104090A1 (en) 2017-11-21 2019-05-31 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
US10540288B2 (en) 2018-02-02 2020-01-21 Fungible, Inc. Efficient work unit processing in a multicore system
US10791092B2 (en) * 2018-02-14 2020-09-29 Nicira, Inc. Firewall rules with expression matching
US11038993B2 (en) 2018-03-14 2021-06-15 Fungible, Inc. Flexible processing of network packets
TWI664527B (zh) * 2018-03-20 2019-07-01 慧榮科技股份有限公司 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
CN108595370A (zh) * 2018-03-30 2018-09-28 新华三信息安全技术有限公司 一种多核处理器及报文处理方法
US11876684B1 (en) * 2018-05-22 2024-01-16 Amazon Technologies, Inc. Controlled cross-cell migration of data in cell-based distributed computing architecture
WO2019237029A1 (en) 2018-06-08 2019-12-12 Fungible, Inc. Directed graph traversal using content-addressable memory
CN108984618B (zh) * 2018-06-13 2021-02-02 深圳市商汤科技有限公司 数据处理方法和装置、电子设备和计算机可读存储介质
WO2019241926A1 (zh) * 2018-06-20 2019-12-26 华为技术有限公司 访问控制列表的管理方法及装置
US10798200B2 (en) * 2018-06-22 2020-10-06 Vmware, Inc. Payload matching via single pass transformation of HTTP payload
US11483313B2 (en) * 2018-06-28 2022-10-25 Intel Corporation Technologies for updating an access control list table without causing disruption
US10581759B1 (en) 2018-07-12 2020-03-03 Innovium, Inc. Sharing packet processing resources
CN108959636B (zh) * 2018-07-25 2020-11-03 京东数字科技控股有限公司 数据处理方法、装置、系统、计算机可读介质
US11327974B2 (en) 2018-08-02 2022-05-10 Mellanox Technologies, Ltd. Field variability based TCAM splitting
CN109032952B (zh) * 2018-08-09 2021-11-23 中国建设银行股份有限公司 一种基于规则的智能外呼服务模拟方法及系统
US11003715B2 (en) 2018-09-17 2021-05-11 Mellanox Technologies, Ltd. Equipment and method for hash table resizing
CN111049746B (zh) * 2018-10-12 2022-04-22 华为技术有限公司 一种路由表项生成方法、字典树生成方法和装置
US10958770B2 (en) 2018-10-15 2021-03-23 Fungible, Inc. Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
US10708373B2 (en) * 2018-11-09 2020-07-07 Oath Inc. Decentralized method and system for accurately determining a level of activity of a client device
CN109542601B (zh) * 2018-11-20 2020-12-29 杭州迪普科技股份有限公司 策略编译方法、装置、电子设备及计算机存储介质
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit
CN112425131B (zh) * 2018-11-30 2022-03-04 华为技术有限公司 一种acl的规则分类方法、查找方法和装置
CN109766439A (zh) * 2018-12-15 2019-05-17 内蒙航天动力机械测试所 统计查询软件的无限树状分类定义与指派方法
GB2579849B (en) 2018-12-18 2021-08-25 Advanced Risc Mach Ltd Integrity tree for memory integrity checking
EP3703341A1 (en) * 2019-02-28 2020-09-02 Rohde & Schwarz GmbH & Co. KG System for analyzing and interpreting at least one data stream as well as method of automatic configuration of a system
CN109885408B (zh) * 2019-03-13 2022-05-03 四川长虹电器股份有限公司 基于Android系统的轻量级浏览器资源优化方法
US11531915B2 (en) * 2019-03-20 2022-12-20 Oracle International Corporation Method for generating rulesets using tree-based models for black-box machine learning explainability
WO2020197720A1 (en) 2019-03-27 2020-10-01 Fungible, Inc. Low latency packet switch architecture
CN111817978B (zh) * 2019-04-12 2022-10-04 华为技术有限公司 一种流分类方法及装置
US11032371B2 (en) * 2019-05-29 2021-06-08 Red Hat, Inc. Data migration using read function triggers
US10931638B1 (en) * 2019-07-31 2021-02-23 Capital One Services, Llc Automated firewall feedback from network traffic analysis
US10979358B2 (en) * 2019-08-20 2021-04-13 SMART lOPS, INC. Low-latency data packet distributor
US10944675B1 (en) 2019-09-04 2021-03-09 Mellanox Technologies Tlv Ltd. TCAM with multi region lookups and a single logical lookup
US11579802B2 (en) 2019-10-04 2023-02-14 Fungible, Inc. Pipeline using match-action blocks
US11330032B2 (en) * 2019-10-15 2022-05-10 Vmware, Inc. Method and system for content proxying between formats
CN112948103B (zh) * 2019-12-10 2023-10-27 腾讯科技(深圳)有限公司 资源配置方法、装置、存储介质及电子设备
CN110995748A (zh) * 2019-12-17 2020-04-10 杭州安恒信息技术股份有限公司 一种防暴力破解方法、装置、设备、介质
US11128694B2 (en) * 2020-01-09 2021-09-21 Cisco Technology, Inc. Optimized internet access in a multi-site software-defined network fabric
US11539622B2 (en) 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11782895B2 (en) 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
CN112311698B (zh) * 2020-09-28 2021-08-24 清华大学无锡应用技术研究院 处理网络数据包的方法、装置及存储介质
KR20220045480A (ko) * 2020-10-05 2022-04-12 삼성전자주식회사 인-메모리 프로세싱을 수행하는 메모리 디바이스
CN112350947B (zh) * 2020-10-23 2022-07-29 杭州迪普信息技术有限公司 一种报文匹配决策树的更新方法及装置
US11593309B2 (en) 2020-11-05 2023-02-28 International Business Machines Corporation Reliable delivery of event notifications from a distributed file system
CN113114584B (zh) * 2021-03-01 2023-02-28 杭州迪普科技股份有限公司 一种网络设备的保护方法及装置
US11734005B2 (en) 2021-07-04 2023-08-22 Mellanox Technologies, Ltd. Processor with split read
CN113709099B (zh) * 2021-07-12 2023-11-07 新华三大数据技术有限公司 混合云防火墙规则下发方法、装置、设备及存储介质
US11677663B2 (en) * 2021-08-12 2023-06-13 Schweitzer Engineering Laboratories, Inc. Software-defined network statistics extension
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
CN113741821B (zh) * 2021-11-01 2022-03-01 中科声龙科技发展(北京)有限公司 基于分类的数据存取方法、系统、介质及程序
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules
US11847461B2 (en) * 2022-05-19 2023-12-19 Mellanox Technologies, Ltd. Out-of-order input / output write
US11882002B2 (en) 2022-06-22 2024-01-23 Schweitzer Engineering Laboratories, Inc. Offline test mode SDN validation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1535460A (zh) * 2001-03-01 2004-10-06 �Ҵ���˾ 分级语言模型

Family Cites Families (246)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US441022A (en) 1890-11-18 Method of baling cotton
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
JPS6289149A (ja) * 1985-10-15 1987-04-23 Agency Of Ind Science & Technol 多ポ−トメモリシステム
ATE182014T1 (de) 1989-09-01 1999-07-15 Amdahl Corp Programmierbarer rechner mit automatischer übersetzung zwischen quell - und zielkode mit versionüberwachung
CA2066724C (en) 1989-09-01 2000-12-05 Helge Knudsen Operating system and data base
AT392555B (de) 1989-10-24 1991-04-25 Alcatel Austria Ag Verfahren zum uebertragen von binaerinformationen in einem optischen uebertragungsnetzwerk sowie optisches uebertragungsnetzwerk
US5214653A (en) 1990-10-22 1993-05-25 Harris Corporation Fault finder expert system
AU4661793A (en) 1992-07-02 1994-01-31 Wellfleet Communications Data packet processing method and apparatus
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
US5742843A (en) 1994-07-20 1998-04-21 Fujitsu Limited Control system for access between processing elements in a parallel computer
US5727167A (en) 1995-04-14 1998-03-10 International Business Machines Corporation Thresholding support in performance monitoring
US5995511A (en) 1996-04-05 1999-11-30 Fore Systems, Inc. Digital network including mechanism for grouping virtual message transfer paths having similar transfer service rates to facilitate efficient scheduling of transfers thereover
US5893911A (en) * 1996-04-17 1999-04-13 Neon Software, Inc. Method for defining and applying rules for message distribution for transaction processing in a distributed application
US7613926B2 (en) 1997-11-06 2009-11-03 Finjan Software, Ltd Method and system for protecting a computer and a network from hostile downloadables
US5893142A (en) 1996-11-14 1999-04-06 Motorola Inc. Data processing system having a cache and method therefor
US6233575B1 (en) 1997-06-24 2001-05-15 International Business Machines Corporation Multilevel taxonomy based on features derived from training documents classification using fisher values as discrimination values
JP3436871B2 (ja) * 1997-10-23 2003-08-18 株式会社東芝 通信資源管理方法及びノード装置
JP3027845B2 (ja) 1997-11-21 2000-04-04 オムロン株式会社 プログラム制御装置および方法
US6549519B1 (en) * 1998-01-23 2003-04-15 Alcatel Internetworking (Pe), Inc. Network switching device with pipelined search engines
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6212184B1 (en) 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching
US6519636B2 (en) 1998-10-28 2003-02-11 International Business Machines Corporation Efficient classification, manipulation, and control of network transmissions by associating network flows with rule based functions
US6567408B1 (en) 1999-02-01 2003-05-20 Redback Networks Inc. Methods and apparatus for packet classification with multi-level data structure
US6297768B1 (en) * 1999-02-25 2001-10-02 Lunareye, Inc. Triggerable remote controller
JP3692820B2 (ja) 1999-03-10 2005-09-07 株式会社デンソー 自動車用制御装置
US6510509B1 (en) * 1999-03-29 2003-01-21 Pmc-Sierra Us, Inc. Method and apparatus for high-speed network rule processing
US6701432B1 (en) 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US6298340B1 (en) 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure
US6587466B1 (en) 1999-05-27 2003-07-01 International Business Machines Corporation Search tree for policy based packet classification in communication networks
GB2355084B (en) 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
US6636480B1 (en) 1999-09-08 2003-10-21 Riverstone Networks, Inc. Method and system for controlling data flow through a multiport switch
US7110407B1 (en) 1999-09-23 2006-09-19 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system using enable signals
US6775281B1 (en) 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
US6467019B1 (en) 1999-11-08 2002-10-15 Juniper Networks, Inc. Method for memory management in ternary content addressable memories (CAMs)
US6778530B1 (en) * 1999-11-08 2004-08-17 Juniper Networks, Inc. Method and apparatus for multiple field matching in network device
GB9930849D0 (en) 1999-12-24 2000-02-16 Koninkl Philips Electronics Nv Data communications
US6539394B1 (en) 2000-01-04 2003-03-25 International Business Machines Corporation Method and system for performing interval-based testing of filter rules
US7039641B2 (en) 2000-02-24 2006-05-02 Lucent Technologies Inc. Modular packet classification
US6473763B1 (en) 2000-03-31 2002-10-29 International Business Machines Corporation System, method and computer program for filtering multi-action rule set
US7215637B1 (en) * 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US9800608B2 (en) 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20070192863A1 (en) 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US8010469B2 (en) 2000-09-25 2011-08-30 Crossbeam Systems, Inc. Systems and methods for processing data flows
KR100699470B1 (ko) * 2000-09-27 2007-03-26 삼성전자주식회사 멀티레이어 패킷 처리 장치
AU2002236447A1 (en) * 2000-11-21 2002-06-03 Transwitch Corporation Methods and apparatus for switching atm, tdm, and packet data through a single communications switch
CA2326851A1 (en) 2000-11-24 2002-05-24 Redback Networks Systems Canada Inc. Policy change characterization method and apparatus
US6868414B2 (en) 2001-01-03 2005-03-15 International Business Machines Corporation Technique for serializing data structure updates and retrievals without requiring searchers to use locks
JP2004525449A (ja) * 2001-02-14 2004-08-19 クリアスピード・テクノロジー・リミテッド 相互接続システム
JP2002290447A (ja) * 2001-03-27 2002-10-04 Mitsubishi Electric Corp アドレス検索方法、アドレス検索回路、およびアドレス検索プログラム
US6735600B1 (en) 2001-03-30 2004-05-11 Lsi Logic Corporation Editing protocol for flexible search engines
US6904057B2 (en) 2001-05-04 2005-06-07 Slt Logic Llc Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
US6757768B1 (en) * 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7133409B1 (en) 2001-07-19 2006-11-07 Richard Willardson Programmable packet filtering in a prioritized chain
US7116663B2 (en) 2001-07-20 2006-10-03 Pmc-Sierra Ltd. Multi-field classification using enhanced masked matching
US7027988B1 (en) 2001-07-20 2006-04-11 At&T Corp. System and method of ε removal of weighted automata and transducers
US7209962B2 (en) 2001-07-30 2007-04-24 International Business Machines Corporation System and method for IP packet filtering based on non-IP packet traffic attributes
US7046848B1 (en) 2001-08-22 2006-05-16 Olcott Peter L Method and system for recognizing machine generated character glyphs and icons in graphic images
EP1320006A1 (en) 2001-12-12 2003-06-18 Canal+ Technologies Société Anonyme Processing data
US7403999B2 (en) * 2001-12-28 2008-07-22 International Business Machines Corporation Classification support system and method for fragmented IP packets
US7225188B1 (en) 2002-02-13 2007-05-29 Cisco Technology, Inc. System and method for performing regular expression matching with high parallelism
US7719980B2 (en) 2002-02-19 2010-05-18 Broadcom Corporation Method and apparatus for flexible frame processing and classification engine
US8135772B2 (en) * 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US7327727B2 (en) 2002-06-04 2008-02-05 Lucent Technologies Inc. Atomic lookup rule set transition
US7424468B2 (en) 2002-07-02 2008-09-09 Samsung Electronics Co., Ltd. Internet protocol address look-up device
US7509300B2 (en) 2002-07-03 2009-03-24 University Of Florida Research Foundation, Inc. Dynamic IP router tables using highest-priority matching
US7240048B2 (en) 2002-08-05 2007-07-03 Ben Pontius System and method of parallel pattern matching
US7277425B1 (en) * 2002-10-21 2007-10-02 Force10 Networks, Inc. High-speed router switching architecture
GB0226289D0 (en) 2002-11-11 2002-12-18 Orange Personal Comm Serv Ltd Telecommunications
GB2395395B (en) * 2002-11-15 2004-11-10 3Com Corp Classification search scheme and rules engine for network unit
US7536476B1 (en) 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
US7548848B1 (en) 2003-01-08 2009-06-16 Xambala, Inc. Method and apparatus for semantic processing engine
US7305391B2 (en) 2003-02-07 2007-12-04 Safenet, Inc. System and method for determining the start of a match of a regular expression
US20040172234A1 (en) 2003-02-28 2004-09-02 Dapp Michael C. Hardware accelerator personality compiler
SE0300894D0 (sv) * 2003-03-28 2003-03-28 Saab Ab Metod att fastställa regler för en anordning som är avsedd att kunna användas för att generera beslutstöd
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US7466687B2 (en) 2003-04-28 2008-12-16 International Business Machines Corporation Packet classification using modified range labels
US7093231B2 (en) 2003-05-06 2006-08-15 David H. Alderson Grammer for regular expressions
US7415472B2 (en) 2003-05-13 2008-08-19 Cisco Technology, Inc. Comparison tree data structures of particular use in performing lookup operations
WO2004107404A2 (en) 2003-05-23 2004-12-09 Sensory Networks, Inc. Apparatus and method for large hardware finite state machine with embedded equivalence classes
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7382777B2 (en) 2003-06-17 2008-06-03 International Business Machines Corporation Method for implementing actions based on packet classification and lookup results
US7386626B2 (en) 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7388840B2 (en) 2003-06-30 2008-06-17 Intel Corporation Methods and apparatuses for route management on a networking control plane
US7548944B2 (en) 2003-07-15 2009-06-16 Intel Corporation Statistics collection framework for a network processor
US7299227B2 (en) 2003-09-09 2007-11-20 Stmicroelectronics, Inc. Method and system for providing cascaded trie-based network packet search engines
US7870161B2 (en) 2003-11-07 2011-01-11 Qiang Wang Fast signature scan
US7873992B1 (en) 2003-12-04 2011-01-18 Avaya Inc. Dynamic system of autonomous parsers for interpreting arbitrary telecommunication equipment streams
US20060026138A1 (en) 2004-01-09 2006-02-02 Gavin Robertson Real-time indexes
US7706353B2 (en) 2004-01-21 2010-04-27 Alcatel-Lucent Usa Inc. Congestion control in connection-oriented packet-switching networks
US7392349B1 (en) * 2004-01-27 2008-06-24 Netlogic Microsystems, Inc. Table management within a policy-based routing system
US7370361B2 (en) 2004-02-06 2008-05-06 Trend Micro Incorporated System and method for securing computers against computer virus
US7441022B1 (en) 2004-03-12 2008-10-21 Sun Microsystems, Inc. Resolving conflicts between network service rule sets for network data traffic in a system where rule patterns with longer prefixes match before rule patterns with shorter prefixes
US7586851B2 (en) 2004-04-26 2009-09-08 Cisco Technology, Inc. Programmable packet parsing processor
US7366728B2 (en) 2004-04-27 2008-04-29 International Business Machines Corporation System for compressing a search tree structure used in rule classification
US7685637B2 (en) 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
JP4392294B2 (ja) 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
JP4855655B2 (ja) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
US7760719B2 (en) 2004-06-30 2010-07-20 Conexant Systems, Inc. Combined pipelined classification and address search method and apparatus for switching environments
EP1766929B1 (en) 2004-07-09 2011-04-20 Panasonic Corporation Network mobility management method and corresponding apparatusses
US7478426B2 (en) 2004-07-20 2009-01-13 International Busines Machines Corporation Multi-field classification dynamic rule updates
US7711893B1 (en) 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US7464218B2 (en) * 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
US8392590B2 (en) 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
US7594081B2 (en) 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
US8301788B2 (en) 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction
US8560475B2 (en) 2004-09-10 2013-10-15 Cavium, Inc. Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process
WO2006029508A1 (en) 2004-09-13 2006-03-23 Solace Systems Inc. Highly scalable subscription matching for a content routing network
US7260558B1 (en) 2004-10-25 2007-08-21 Hi/Fn, Inc. Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching
US7356663B2 (en) 2004-11-08 2008-04-08 Intruguard Devices, Inc. Layered memory architecture for deterministic finite automaton based string matching useful in network intrusion detection and prevention systems and apparatuses
US7478424B2 (en) * 2004-11-30 2009-01-13 Cymtec Systems, Inc. Propagation protection within a network
US8032479B2 (en) 2004-12-09 2011-10-04 Mitsubishi Electric Corporation String matching system and program therefor
JP4140910B2 (ja) * 2004-12-28 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理装置、データ管理装置、データ処理方法、データ管理方法、データ処理プログラム、データ管理プログラム、及び情報システム
US20060155915A1 (en) 2004-12-30 2006-07-13 Pereira Jose P Database query processor
US7350040B2 (en) 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
US7710988B1 (en) 2005-03-11 2010-05-04 Xambala Corporation Method and system for non-deterministic finite automaton filtering
US7653903B2 (en) * 2005-03-25 2010-01-26 Sony Corporation Modular imaging download system
US7668160B2 (en) 2005-03-31 2010-02-23 Intel Corporation Methods for performing packet classification
JP2006285808A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストレージシステム
US20060288024A1 (en) 2005-04-28 2006-12-21 Freescale Semiconductor Incorporated Compressed representations of tries
US7958507B2 (en) * 2005-06-16 2011-06-07 Hewlett-Packard Development Company, L.P. Job scheduling system and method
US7784094B2 (en) 2005-06-30 2010-08-24 Intel Corporation Stateful packet content matching mechanisms
US7979368B2 (en) 2005-07-01 2011-07-12 Crossbeam Systems, Inc. Systems and methods for processing data flows
US20080229415A1 (en) 2005-07-01 2008-09-18 Harsh Kapoor Systems and methods for processing data flows
US7869411B2 (en) * 2005-11-21 2011-01-11 Broadcom Corporation Compact packet operation device and method
US7702629B2 (en) 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US20070168377A1 (en) 2005-12-29 2007-07-19 Arabella Software Ltd. Method and apparatus for classifying Internet Protocol data packets
US20070168548A1 (en) * 2006-01-19 2007-07-19 International Business Machines Corporation Method and system for performing multi-cluster application-specific routing
US8978154B2 (en) 2006-02-15 2015-03-10 Samsung Electronics Co., Ltd. Method and apparatus for importing content having plurality of parts
US20070226362A1 (en) 2006-03-21 2007-09-27 At&T Corp. Monitoring regular expressions on out-of-order streams
US7844422B2 (en) 2006-05-30 2010-11-30 International Business Machines Corporation Method and system for changing a description for a state transition function of a state machine engine
US20080097959A1 (en) 2006-06-14 2008-04-24 Nec Laboratories America, Inc. Scalable xml filtering with bottom up path matching and encoded path joins
US20080071783A1 (en) 2006-07-03 2008-03-20 Benjamin Langmead System, Apparatus, And Methods For Pattern Matching
US7522581B2 (en) 2006-08-01 2009-04-21 International Business Machines Corporation Overload protection for SIP servers
EP2074767A2 (en) 2006-08-02 2009-07-01 University Of Florida Research Foundation, Inc. Succinct representation of static packet classifiers
US20080034427A1 (en) 2006-08-02 2008-02-07 Nec Laboratories America, Inc. Fast and scalable process for regular expression search
GB2441351B (en) 2006-09-01 2010-12-08 3Com Corp Positionally dependent pattern checking in character strings using deterministic finite automata
US7932349B2 (en) 2006-09-18 2011-04-26 Hercules Incorporated Membrane separation process for removing residuals polyamine-epihalohydrin resins
US8024691B2 (en) 2006-09-28 2011-09-20 Mcgill University Automata unit, a tool for designing checker circuitry and a method of manufacturing hardware circuitry incorporating checker circuitry
GB2443240B (en) 2006-10-27 2009-05-06 3Com Corp Signature checking using deterministic finite state machines
SE531947C2 (sv) 2006-11-03 2009-09-15 Oricane Ab Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
US7657497B2 (en) 2006-11-07 2010-02-02 Ebay Inc. Online fraud prevention using genetic algorithm solution
US8156507B2 (en) 2006-12-08 2012-04-10 Microsoft Corporation User mode file system serialization and reliability
US7831607B2 (en) 2006-12-08 2010-11-09 Pandya Ashish A Interval symbol architecture for programmable intelligent search memory
WO2008073824A1 (en) 2006-12-08 2008-06-19 Pandya Ashish A Dynamic programmable intelligent search memory
US7636717B1 (en) 2007-01-18 2009-12-22 Netlogic Microsystems, Inc. Method and apparatus for optimizing string search operations
US7962434B2 (en) 2007-02-15 2011-06-14 Wisconsin Alumni Research Foundation Extended finite state automata and systems and methods for recognizing patterns in a data stream using extended finite state automata
FR2914081A1 (fr) 2007-03-23 2008-09-26 Advestigo Sa Procede de protection de documents numeriques contre des utilisations non autorisees.
JP5299272B2 (ja) 2007-04-12 2013-09-25 富士通株式会社 分析プログラムおよび分析装置
US7961489B2 (en) 2007-04-23 2011-06-14 Marvell Israel (MISL)Ltd. Comparing data representations to stored patterns
US7854002B2 (en) 2007-04-30 2010-12-14 Microsoft Corporation Pattern matching for spyware detection
US7788206B2 (en) 2007-04-30 2010-08-31 Lsi Corporation State machine compression using multi-character state transition instructions
US20080291916A1 (en) 2007-05-22 2008-11-27 Bo Xiong Systems and methods for dynamic quality of service
US7852756B2 (en) * 2007-06-13 2010-12-14 02Micro International Limited Network interface system with filtering function
US8341723B2 (en) * 2007-06-28 2012-12-25 Microsoft Corporation Filtering kernel-mode network communications
US8219508B2 (en) 2007-07-06 2012-07-10 Lsi Corporation Systems and methods for compressing state machine instructions using a two access indexing scheme
JP4967876B2 (ja) * 2007-07-18 2012-07-04 日本電気株式会社 ネットワーク、ネットワーク装置及びそれらに用いる伝送経路冗長化方法
US8024802B1 (en) 2007-07-31 2011-09-20 Hewlett-Packard Development Company, L.P. Methods and systems for using state ranges for processing regular expressions in intrusion-prevention systems
US8520978B2 (en) 2007-10-31 2013-08-27 Mckesson Technologies Inc. Methods, computer program products, apparatuses, and systems for facilitating viewing and manipulation of an image on a client device
US8819217B2 (en) 2007-11-01 2014-08-26 Cavium, Inc. Intelligent graph walking
US8086609B2 (en) 2007-11-01 2011-12-27 Cavium, Inc. Graph caching
US20090125470A1 (en) 2007-11-09 2009-05-14 Juniper Networks, Inc. System and Method for Managing Access Control Lists
US8180803B2 (en) 2007-11-27 2012-05-15 Cavium, Inc. Deterministic finite automata (DFA) graph compression
US7949683B2 (en) 2007-11-27 2011-05-24 Cavium Networks, Inc. Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
KR100920518B1 (ko) 2007-11-27 2009-10-09 한국전자통신연구원 패킷 분류 장치 및 방법
TWI363532B (en) 2008-01-21 2012-05-01 Univ Nat Taiwan Method and system for packet classificiation with reduced memory space and enhanced access speed
US7904942B2 (en) 2008-02-22 2011-03-08 Inventec Corporation Method of updating intrusion detection rules through link data packet
US8474043B2 (en) * 2008-04-17 2013-06-25 Sourcefire, Inc. Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
SE532426C2 (sv) 2008-05-26 2010-01-19 Oricane Ab Metod för datapaketklassificering i ett datakommunikationsnät
US8051085B1 (en) 2008-07-18 2011-11-01 Netlogic Microsystems, Inc. Determining regular expression match lengths
US8554800B2 (en) 2008-07-30 2013-10-08 Portool Ltd. System, methods and applications for structured document indexing
US20100037056A1 (en) 2008-08-07 2010-02-11 Follis Benjamin D Method to support privacy preserving secure data management in archival systems
US8352391B1 (en) * 2008-08-20 2013-01-08 Juniper Networks, Inc. Fast update filter
US8005114B2 (en) 2008-09-08 2011-08-23 Wisconsin Alumni Research Foundation Method and apparatus to vary the transmission bit rate within individual wireless packets through multi-rate packetization
US8176085B2 (en) 2008-09-30 2012-05-08 Microsoft Corporation Modular forest automata
US8447120B2 (en) 2008-10-04 2013-05-21 Microsoft Corporation Incremental feature indexing for scalable location recognition
US7872993B2 (en) 2008-10-30 2011-01-18 Alcatel Lucent Method and system for classifying data packets
US8683590B2 (en) 2008-10-31 2014-03-25 Alcatel Lucent Method and apparatus for pattern matching for intrusion detection/prevention systems
US8473523B2 (en) 2008-10-31 2013-06-25 Cavium, Inc. Deterministic finite automata graph traversal with nodal bit mapping
US9154380B2 (en) 2008-12-11 2015-10-06 International Business Machines Corporation Rules based fetching of operating platform status
TWI482083B (zh) 2008-12-15 2015-04-21 Univ Nat Taiwan 二階段式正規表示式比對處理方法及系統
TWI383618B (zh) 2008-12-22 2013-01-21 Univ Nat Taiwan 管線架構型正規表示式樣式比對處理電路
US8111697B1 (en) * 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8171539B2 (en) 2009-01-07 2012-05-01 Symbol Technologies, Inc. Methods and apparatus for implementing a search tree
US20100192225A1 (en) 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
WO2010094593A1 (de) * 2009-02-18 2010-08-26 OCé PRINTING SYSTEMS GMBH Verfahren zum automatischen steuern der reihenfolge von bearbeitungsaufträgen zur bearbeitung von materialgebinden
US8218553B2 (en) 2009-02-25 2012-07-10 Juniper Networks, Inc. Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering
KR101034389B1 (ko) 2009-04-22 2011-05-16 (주) 시스메이트 패킷 내 시그니처 위치에 따른 시그니처 검색 방법
US7990893B1 (en) * 2009-05-19 2011-08-02 Juniper Networks, Inc. Fast prefix-based network route filtering
US8259726B2 (en) 2009-05-28 2012-09-04 Force10 Networks, Inc. Method and apparatus for forwarding table reduction
US20110016154A1 (en) 2009-07-17 2011-01-20 Rajan Goyal Profile-based and dictionary based graph caching
JP2012133405A (ja) 2009-07-24 2012-07-12 Hitachi Ltd ストレージ装置及びそのデータ転送制御方法
US8462786B2 (en) 2009-08-17 2013-06-11 Board Of Trustees Of Michigan State University Efficient TCAM-based packet classification using multiple lookups and classifier semantics
US8276142B2 (en) 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors
US8554698B2 (en) 2009-10-17 2013-10-08 Polytechnic Institute Of New York University Configuring state machines used to order and select matching operations for determining whether an input string matches any of at least one regular expression using lookahead finite automata based regular expression detection
US8631043B2 (en) 2009-12-09 2014-01-14 Alcatel Lucent Method and apparatus for generating a shape graph from a binary trie
JP5529976B2 (ja) 2009-12-22 2014-06-25 ジュネイト エフ. バズラマッチ 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ
US8291258B2 (en) 2010-01-08 2012-10-16 Juniper Networks, Inc. High availability for network security devices
EP2524327B1 (en) 2010-01-13 2017-11-29 Ab Initio Technology LLC Matching metadata sources using rules for characterizing matches
US8458354B2 (en) 2010-01-27 2013-06-04 Interdisciplinary Center Herzliya Multi-pattern matching in compressed communication traffic
US8522199B2 (en) 2010-02-26 2013-08-27 Mcafee, Inc. System, method, and computer program product for applying a regular expression to content based on required strings of the regular expression
US8477611B2 (en) 2010-03-03 2013-07-02 Ewha University Industry Collaboration Foundation Method and apparatus for packet classification using bloom filter
CN101794271B (zh) * 2010-03-31 2012-05-23 华为技术有限公司 多核内存一致性的实现方法和装置
WO2011130604A1 (en) * 2010-04-16 2011-10-20 Massachusetts Institute Of Technology Execution migration
CN101853301A (zh) 2010-05-25 2010-10-06 华为技术有限公司 正则表达式匹配的方法和系统
US20130070753A1 (en) 2010-05-26 2013-03-21 University Of Florida Research Foundation, Inc. Consistent updates for packet classification devices
JP5319626B2 (ja) * 2010-08-18 2013-10-16 日本電信電話株式会社 ノード、パケット転送方法および通信ネットワーク
US8543528B2 (en) 2010-09-23 2013-09-24 International Business Machines Corporation Exploitation of transition rule sharing based on short state tags to improve the storage efficiency
CN102075511B (zh) 2010-11-01 2014-05-14 北京神州绿盟信息安全科技股份有限公司 一种数据匹配设备和方法以及网络入侵检测设备和方法
US8856203B1 (en) 2011-02-08 2014-10-07 Pmc-Sierra Us, Inc. System and method for algorithmic TCAM packet classification
US8799188B2 (en) 2011-02-08 2014-08-05 International Business Machines Corporation Algorithm engine for use in a pattern matching accelerator
US9471532B2 (en) * 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
EP2490134A1 (en) 2011-02-18 2012-08-22 Amadeus S.A.S. Method, system and computer program to provide fares detection from rules attributes
US9398033B2 (en) 2011-02-25 2016-07-19 Cavium, Inc. Regular expression processing automaton
US20120221494A1 (en) 2011-02-25 2012-08-30 International Business Machines Corporation Regular expression pattern matching using keyword graphs
US8869087B2 (en) 2011-05-06 2014-10-21 Xcelemor, Inc. Computing system with data and control planes and method of operation thereof
US8990259B2 (en) 2011-06-24 2015-03-24 Cavium, Inc. Anchored patterns
US9858051B2 (en) 2011-06-24 2018-01-02 Cavium, Inc. Regex compiler
US8800021B1 (en) 2011-06-29 2014-08-05 Juniper Networks, Inc. Hardware implementation of complex firewalls using chaining technique
US8516241B2 (en) * 2011-07-12 2013-08-20 Cisco Technology, Inc. Zone-based firewall policy model for a virtualized data center
US8923306B2 (en) 2011-08-02 2014-12-30 Cavium, Inc. Phased bucket pre-fetch in a network processor
US10229139B2 (en) 2011-08-02 2019-03-12 Cavium, Llc Incremental update heuristics
US9183244B2 (en) 2011-08-02 2015-11-10 Cavium, Inc. Rule modification in decision trees
US8719331B2 (en) 2011-08-02 2014-05-06 Cavium, Inc. Work migration in a processor
US9208438B2 (en) 2011-08-02 2015-12-08 Cavium, Inc. Duplication in decision trees
US9203805B2 (en) 2011-11-23 2015-12-01 Cavium, Inc. Reverse NFA generation and processing
US9307009B2 (en) 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US9575806B2 (en) * 2012-06-29 2017-02-21 Intel Corporation Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9055004B2 (en) 2012-09-18 2015-06-09 Cisco Technology, Inc. Scalable low latency multi-protocol networking device
US9177253B2 (en) 2013-01-31 2015-11-03 Intel Corporation System and method for DFA-NFA splitting
US20140229386A1 (en) 2013-02-13 2014-08-14 Mistral Mobile Secure mobile payments
US10083200B2 (en) 2013-03-14 2018-09-25 Cavium, Inc. Batch incremental update
US9276846B2 (en) 2013-03-15 2016-03-01 Cavium, Inc. Packet extraction optimization in a network processor
US10229144B2 (en) 2013-03-15 2019-03-12 Cavium, Llc NSP manager
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
US9507563B2 (en) 2013-08-30 2016-11-29 Cavium, Inc. System and method to traverse a non-deterministic finite automata (NFA) graph generated for regular expression patterns with advanced features
US9426165B2 (en) 2013-08-30 2016-08-23 Cavium, Inc. Method and apparatus for compilation of finite automata
US9419943B2 (en) 2013-12-30 2016-08-16 Cavium, Inc. Method and apparatus for processing of finite automata
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US9904630B2 (en) 2014-01-31 2018-02-27 Cavium, Inc. Finite automata processing based on a top of stack (TOS) memory
US9602532B2 (en) 2014-01-31 2017-03-21 Cavium, Inc. Method and apparatus for optimizing finite automata processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1535460A (zh) * 2001-03-01 2004-10-06 �Ҵ���˾ 分级语言模型

Also Published As

Publication number Publication date
US9497117B2 (en) 2016-11-15
US8934488B2 (en) 2015-01-13
US20130036285A1 (en) 2013-02-07
KR101476114B1 (ko) 2014-12-23
US8937954B2 (en) 2015-01-20
KR20140053266A (ko) 2014-05-07
CN103858392A (zh) 2014-06-11
US20130060727A1 (en) 2013-03-07
US20130250948A1 (en) 2013-09-26
US9065860B2 (en) 2015-06-23
US20130058332A1 (en) 2013-03-07
US8711861B2 (en) 2014-04-29
US20130036083A1 (en) 2013-02-07
US8954700B2 (en) 2015-02-10
WO2013020001A9 (en) 2013-03-28
US9191321B2 (en) 2015-11-17
US9031075B2 (en) 2015-05-12
JP2014524688A (ja) 2014-09-22
US20150117461A1 (en) 2015-04-30
US8606959B2 (en) 2013-12-10
US9319316B2 (en) 2016-04-19
US20130036288A1 (en) 2013-02-07
CN103858392B (zh) 2018-12-14
US9531690B2 (en) 2016-12-27
US20150195200A1 (en) 2015-07-09
WO2013019981A1 (en) 2013-02-07
WO2013020003A1 (en) 2013-02-07
US9729527B2 (en) 2017-08-08
US8719331B2 (en) 2014-05-06
KR101476113B1 (ko) 2014-12-23
US20130036151A1 (en) 2013-02-07
US9525630B2 (en) 2016-12-20
US20140119378A1 (en) 2014-05-01
WO2013019996A1 (en) 2013-02-07
US20130085978A1 (en) 2013-04-04
US20150143060A1 (en) 2015-05-21
US8937952B2 (en) 2015-01-20
US9866540B2 (en) 2018-01-09
US9344366B2 (en) 2016-05-17
US8995449B2 (en) 2015-03-31
US9137340B2 (en) 2015-09-15
US20150121395A1 (en) 2015-04-30
US20130036471A1 (en) 2013-02-07
US20130036152A1 (en) 2013-02-07
US8472452B2 (en) 2013-06-25
US9225643B2 (en) 2015-12-29
US9596222B2 (en) 2017-03-14
US20130036284A1 (en) 2013-02-07
US9614762B2 (en) 2017-04-04
US20130034106A1 (en) 2013-02-07
WO2013020001A1 (en) 2013-02-07
US20160248739A1 (en) 2016-08-25
US20130036477A1 (en) 2013-02-07
US20130039366A1 (en) 2013-02-14
US20130067173A1 (en) 2013-03-14
US20140215478A1 (en) 2014-07-31
US20130036274A1 (en) 2013-02-07
KR20140053272A (ko) 2014-05-07
US10277510B2 (en) 2019-04-30
US20130036185A1 (en) 2013-02-07
CN103858386A (zh) 2014-06-11
US20140188973A1 (en) 2014-07-03
WO2013020002A1 (en) 2013-02-07
JP5657840B2 (ja) 2015-01-21
US20130036102A1 (en) 2013-02-07
US9391892B2 (en) 2016-07-12
US8966152B2 (en) 2015-02-24
US20130034100A1 (en) 2013-02-07

Similar Documents

Publication Publication Date Title
CN103858386B (zh) 用于通过优化的决策树执行包分类的方法和装置
US9208438B2 (en) Duplication in decision trees
US10460250B2 (en) Scope in decision trees
US9432284B2 (en) Method and apparatus for compiling search trees for processing request keys based on a key size supported by underlying processing elements
Kogan et al. SAX-PAC (scalable and expressive packet classification)
EP1515501B1 (en) Data structure for range-specified algorithms
US9595003B1 (en) Compiler with mask nodes
US7525958B2 (en) Apparatus and method for two-stage packet classification using most specific filter matching and transport level sharing
US9647947B2 (en) Block mask register key processing by compiling data structures to traverse rules and creating a new rule set
Kogan et al. Exploiting order independence for scalable and expressive packet classification
US9268855B2 (en) Processing request keys based on a key size supported by underlying processing elements
WO2010056267A1 (en) Method and system for classifying date packets
Liu et al. BitCuts: A fast packet classification algorithm using bit-level cutting
US7535899B2 (en) Packet classification
CN110097079A (zh) 一种基于分类边界的用户隐私保护方法
CN106487535A (zh) 一种网络流量数据的分类方法及装置
KR20120049572A (ko) 패킷 분류 장치 및 그 방법
Nasrullayev et al. IMPLEMENTING PACKET CLASSIFICATION USING STANDARD ACL
CN112887300B (zh) 一种数据包分类方法
Liao et al. PT-Tree: A Cascading Prefix Tuple Tree for Packet Classification in Dynamic Scenarios
CN117596216A (zh) 一种基于规则分区调整的决策树包分类优化方法
CN115834340A (zh) 一种规则存储方法、装置、电子设备及存储介质
Abboud Efficient Rules Management Algorithms in Software Defined Networking
Zhang et al. A packet classification algorithm based on improved decision tree

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1193686

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1193686

Country of ref document: HK

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Cavium, Inc.

Address before: California, USA

Patentee before: Cavium, Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200427

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: California, USA

Patentee before: Cavium, Inc.

Effective date of registration: 20200427

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

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

Granted publication date: 20170825

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