[go: up one dir, main page]

CN110868388A - System and method for operating a networked device - Google Patents

System and method for operating a networked device Download PDF

Info

Publication number
CN110868388A
CN110868388A CN201910791760.1A CN201910791760A CN110868388A CN 110868388 A CN110868388 A CN 110868388A CN 201910791760 A CN201910791760 A CN 201910791760A CN 110868388 A CN110868388 A CN 110868388A
Authority
CN
China
Prior art keywords
tree structure
compressed
subpart
sub
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910791760.1A
Other languages
Chinese (zh)
Other versions
CN110868388B (en
Inventor
克莱门特·卢梭
特里斯坦·格罗莱阿特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OVH SAS
Original Assignee
OVH SAS
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 OVH SAS filed Critical OVH SAS
Publication of CN110868388A publication Critical patent/CN110868388A/en
Application granted granted Critical
Publication of CN110868388B publication Critical patent/CN110868388B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • 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/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

描述了用于压缩将网络分组签名与网络分组元数据相关联的树结构的方法和系统,该树结构包括包含网络分组元数据的多个叶节点和单比特测试节点的多个非叶节点,该方法包括确定是否要压缩树结构的子部分。如果做出要压缩树结构的子部分的确定,则生成经压缩的节点数据结构,经压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值。

Figure 201910791760

Described are methods and systems for compressing a tree structure that associates network packet signatures with network packet metadata, the tree structure including a plurality of leaf nodes containing network packet metadata and a plurality of non-leaf nodes of single-bit test nodes, The method includes determining whether to compress sub-portions of the tree structure. If a determination is made that a sub-portion of the tree structure is to be compressed, a compressed node data structure is generated, the compressed node data structure including a path to the sub-portion of the tree structure, the path including a path consisting of consecutive non-subsections with the sub-portion of the tree structure A bit sequence formed by concatenation of single bits associated with each leaf node, the number of bits in the sequence is equal to or greater than the compression threshold.

Figure 201910791760

Description

用于操作联网设备的系统和方法System and method for operating networked devices

交叉引用cross reference

本申请要求于2018年8月27日提交的欧洲专利申请第1 831 5022.6号的优先权。This application claims priority from European Patent Application No. 1 831 5022.6 filed on August 27, 2018.

技术领域technical field

本文描述的实施方式大体上涉及用于操作联网设备的系统和方法,并且更具体地,涉及用于生成和/或操作将网络数据签名与网络分组元数据相关联的数据结构的系统和方法。Embodiments described herein relate generally to systems and methods for operating networked devices, and more particularly, to systems and methods for generating and/or manipulating data structures that associate network data signatures with network packet metadata.

背景技术Background technique

连接至因特网的基础设施例如数据中心可能遭受旨在渗透或损害其操作的攻击。例如,包括大量僵尸程序的僵尸网络可以用于引起对数据中心的分布式拒绝服务(DDoS)攻击。DDoS攻击可能使数据中心充斥着过多的请求。在这样的攻击下,数据中心处理和通信能力可能会变得过载,以至于暂时无法向合法用户和客户端提供服务。在至少一个事件中,攻击可以对数据中心施加每秒一(1)太比特的负荷。Internet-connected infrastructure, such as data centers, may be subject to attacks aimed at infiltrating or compromising their operations. For example, a botnet comprising a large number of bots can be used to cause a distributed denial of service (DDoS) attack on a data center. DDoS attacks can flood a data center with too many requests. Under such an attack, data center processing and communication capabilities can become so overloaded that legitimate users and clients cannot be served temporarily. In at least one event, the attack can impose a load of one (1) terabit per second on the data center.

因此,需要采取缓解措施,以降低潜在攻击的负面影响。这样的缓解措施可以包括过滤非法网络分组同时准许合法网络分组访问数据中心的网络。鉴于大量网络分组从因特网路由到数据中心,即使在数据中心的规模相对较小的情况下,从合法网络分组中过滤非法网络分组可能需要重要的处理资源,并且可能影响要呈现给合法用户和数据中心的客户端的服务质量(例如,提供托管在数据中心处的给定服务时的时延)。Therefore, mitigation measures are required to reduce the negative impact of potential attacks. Such mitigations may include filtering illegal network packets while granting legitimate network packets access to the data center's network. Given the large number of network packets routed from the Internet to the data center, even at relatively small data centers, filtering illegal network packets from legitimate network packets can require significant processing resources and can affect the ability of data to be presented to legitimate users and data Quality of service for clients at the center (eg, latency in providing a given service hosted at the data center).

虽然已经研究了旨在降低缓解措施的负面影响的方法,但仍然需要改进。While methods to reduce the negative impact of mitigation measures have been investigated, improvements are still needed.

背景技术部分中讨论的主题不应仅仅因为是在背景技术部分中提及而被认为是现有技术。类似地,在背景技术部分中提到的问题或与背景技术部分的主题关联的问题不应被认为先前在现有技术中已被认识到。背景技术部分中的主题仅表示不同的方法。The subject matter discussed in the Background section should not be admitted to be prior art merely because it is mentioned in the Background section. Similarly, problems mentioned in the Background section or problems associated with the subject matter of the Background section should not be considered to have been previously recognized in the prior art. The topics in the Background section are merely indicative of different approaches.

发明内容SUMMARY OF THE INVENTION

以下概述仅出于说明性目的,并不旨在限制或约束详细描述。以下概述仅以简化形式呈现各种所描述的方面作为下面提供的更详细描述的序言。The following summary is for illustrative purposes only and is not intended to limit or restrict the detailed description. The following summary merely presents the various described aspects in a simplified form as a prelude to the more detailed description provided below.

在某些实例中,过滤和/或分类网络分组可能需要访问将网络分组签名与网络分组元数据相关联的数据结构。In some instances, filtering and/or classifying network packets may require access to data structures that associate network packet signatures with network packet metadata.

在一些实例中,网络分组签名可以是与发送主机或目的地主机相关联的网络地址。作为示例但不限于此,网络分组签名可以是与网络分组相关联的因特网协议(IP)地址,例如因特网协议版本4(IPv4)地址或因特网协议版本6(IPv6)地址。在另一示例中,网络分组签名可以是IP地址的一部分(例如,IP地址的网络部分或主机部分)。在其他示例中,可以基于IP地址生成网络分组签名。在一些实施方式中,网络分组签名可以包括来自以下列表的一个或更多个元素:该列表包括源IP地址、目的地IP地址、IP协议(例如TCP或UDP)、源TCP或UDP端口、目的地TCP或UDP端口。在一些其他实施方式中,网络分组签名可以包括与一些元数据(例如,简档标识符和/或计数器标识符)相关联的源IP地址和/或目的地IP地址。关于网络分组签名可以包含什么的变型对于本技术领域的技术人员来说将变得明显,并且不应该被解释为是限制性的。In some instances, the network packet signature may be a network address associated with the sending host or the destination host. By way of example and not limitation, the network packet signature may be an Internet Protocol (IP) address associated with the network packet, such as an Internet Protocol version 4 (IPv4) address or an Internet Protocol version 6 (IPv6) address. In another example, the network packet signature may be part of the IP address (eg, the network portion or the host portion of the IP address). In other examples, network packet signatures can be generated based on IP addresses. In some implementations, the network packet signature may include one or more elements from a list including source IP address, destination IP address, IP protocol (eg, TCP or UDP), source TCP or UDP port, destination local TCP or UDP port. In some other implementations, the network packet signature may include a source IP address and/or a destination IP address associated with some metadata (eg, a profile identifier and/or a counter identifier). Variations on what a network packet signature may contain will become apparent to those skilled in the art and should not be construed as limiting.

在一些实例中,网络分组元数据可以是与一个或更多个网络分组签名相关联或要与一个或更多个网络分组签名相关联的信息。作为示例,网络分组元数据可以建立数据分组分类和/或过滤规则。这样的数据分组分类可以使得能够确定与网络分组签名相关联的网络分组是否合法。分类和/或过滤规则可以确定应该如何处理数据分组和/或应该执行什么服务。例如,过滤规则可以用于测试从外部计算设备进入数据中心的网络的网络分组,以确保可以拦截进入数据中心的网络的企图。替选过滤规则也可以用于基于优先级传输流量(traffic)。即使在来自第二主机的网络分组可能被丢弃的情况下,也可以传输来自第一主机的网络分组,因为来自第一主机的网络分组具有更高的优先级。在一些实施方式中,网络分组元数据还可以被称为网络分组简档标签。在一些实施方式中,网络分组元数据还可以被称为网络分组标签(或标签)。关于网络分组元数据可以包含什么的变型对于本技术领域的技术人员来说将变得明显,并且不应该被解释为是限制性的。In some instances, network packet metadata may be information associated with or to be associated with one or more network packet signatures. As an example, network packet metadata may establish data packet classification and/or filtering rules. Such data packet classification may enable a determination of whether a network packet associated with a network packet signature is legitimate. Classification and/or filtering rules may determine how data packets should be handled and/or what services should be performed. For example, filtering rules can be used to test network packets entering the data center's network from external computing devices to ensure that attempts to enter the data center's network can be blocked. Alternative filtering rules can also be used to transmit traffic based on priority. The network packets from the first host can be transmitted even though the network packets from the second host may be dropped because the network packets from the first host have higher priority. In some embodiments, network packet metadata may also be referred to as a network packet profile tag. In some implementations, network packet metadata may also be referred to as a network packet label (or label). Variations on what the network packet metadata may contain will become apparent to those skilled in the art and should not be construed as limiting.

在某些实例中,将网络分组签名与网络分组元数据相关联的数据结构可以被实现为树结构。树结构可以包括非叶节点和叶节点。非叶节点和叶节点可以包括网络分组元数据(例如,标签)。从树结构的根延伸到树结构的叶(同时穿过一个或更多个非叶节点)的路径可以定义前缀。可以通过将网络分组签名与来自树结构的一个或更多个前缀进行比较来执行对网络分组的过滤和/或分类。然后,可以将与对应于网络分组签名的最长前缀相关联的网络分组元数据确定为要与网络分组数据签名相关联。In some instances, the data structure associating network packet signatures with network packet metadata may be implemented as a tree structure. The tree structure can include non-leaf nodes and leaf nodes. Non-leaf nodes and leaf nodes may include network packet metadata (eg, labels). A path extending from the root of the tree structure to the leaves of the tree structure (while traversing one or more non-leaf nodes) may define a prefix. Filtering and/or sorting of network packets may be performed by comparing the network packet signatures to one or more prefixes from the tree structure. Then, the network packet metadata associated with the longest prefix corresponding to the network packet signature may be determined to be associated with the network packet data signature.

在某些方法下,树结构是二叉树,其中逐个测试网络分组签名的每个比特(例如,IP地址的每个比特)。在这样的朴素方法下,可能需要最多32个步骤来过滤和/或分类IPv4地址(即,32位的地址),并且可能需要最多128个步骤来过滤和/或分类IPv6地址(即,128位的地址)。每个步骤均需要存储器访问,从而实现最大过滤和/或分类借记(debit)。结果是,需要压缩树结构以减少所需的存储器访问次数。Under certain approaches, the tree structure is a binary tree, where each bit of the network packet signature (eg, each bit of an IP address) is tested one by one. Under such a naive approach, up to 32 steps may be required to filter and/or classify IPv4 addresses (ie, 32-bit addresses), and up to 128 steps may be required to filter and/or classify IPv6 addresses (ie, 128-bit addresses) the address of). Each step requires memory access, enabling maximum filtering and/or sorting debits. As a result, the tree structure needs to be compressed to reduce the number of memory accesses required.

在一个方面,本技术的各种实现方式提供了一种分析网络分组以用于通过过滤非法网络分组同时准许合法网络分组访问网络来防止对网络的攻击的方法,过滤基于网络地址与数据分组分类之间的关联,该关联被实现为树结构,数据分组分类使得能够确定网络分组是否合法,该方法由计算设备执行,该方法包括:In one aspect, various implementations of the present technology provide a method of analyzing network packets for preventing attacks on a network by filtering illegal network packets while granting legitimate network packets access to the network, filtering based on network address and data packet classification The association is implemented as a tree structure, the data packet classification enables to determine whether the network packet is legitimate, the method is performed by the computing device, and the method includes:

压缩将网络地址与数据分组分类相关联的树结构,树结构包括包含数据分组分类的多个叶节点和单比特测试节点的多个非叶节点,压缩的步骤包括:Compressing a tree structure that associates network addresses with data packet classification, the tree structure includes a plurality of leaf nodes of the data packet classification and a plurality of non-leaf nodes of a single-bit test node, and the step of compressing includes:

基于具有单个子节点的连续非叶节点的数量和压缩阈值,确定是否要压缩树结构的包括具有单个子节点的连续非叶节点的子部分;determining, based on the number of consecutive non-leaf nodes with a single child node and a compression threshold, whether to compress a sub-portion of the tree structure that includes consecutive non-leaf nodes with a single child node;

如果做出要压缩树结构的子部分的确定,则:If a determination is made to compress subsections of the tree structure, then:

生成树结构的经压缩子部分,树结构的经压缩子部分包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值;以及Spanning a compressed subsection of a tree structure comprising a sequence of bits formed by a concatenation of single bits associated with each of the consecutive non-leaf nodes of the subsection of the tree structure, the bits of the sequence is equal to or greater than the compression threshold; and

将树结构的经压缩子部分存储在非暂态计算机可读存储器中。The compressed sub-portions of the tree structure are stored in non-transitory computer readable memory.

在一个方面,本技术的各种实现方式提供了一种压缩将网络分组签名与网络分组元数据相关联的树结构的方法,该树结构包括包含网络分组元数据的多个叶节点和单比特测试节点的多个非叶节点,该方法包括:In one aspect, various implementations of the present technology provide a method of compressing a tree structure associating a network packet signature with network packet metadata, the tree structure including a plurality of leaf nodes and a single bit containing network packet metadata Test multiple non-leaf nodes of a node, the method includes:

对于树结构的子部分,确立具有单个子节点的连续非叶节点的数量;For subsections of the tree structure, establish the number of consecutive non-leaf nodes with a single child node;

基于具有单个子节点的连续非叶节点的数量和压缩阈值,确定是否要压缩树结构的子部分;based on the number of consecutive non-leaf nodes with a single child node and a compression threshold, determine whether to compress subsections of the tree structure;

如果做出要压缩树结构的子部分的确定,则:If a determination is made to compress subsections of the tree structure, then:

生成经压缩的节点数据结构,经压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值;以及generating a compressed node data structure that includes a path of subsections of the tree structure including a concatenation of single bits associated with each of the consecutive non-leaf nodes of the subsection of the tree structure a sequence of bits formed, the number of bits in the sequence being equal to or greater than the compression threshold; and

将经压缩的节点数据结构存储在非暂态计算机可读存储器中。The compressed node data structures are stored in non-transitory computer readable memory.

在一些实施方式中,经压缩的节点数据结构的序列的比特数通过(1)具有子叶节点的连续非叶节点之一的存在、(2)具有多于一个子节点的连续非叶节点之一的存在或者(3)该序列的预定义最大大小来确定。In some embodiments, the number of bits of the sequence of the compressed node data structure is determined by the presence of (1) one of the consecutive non-leaf nodes having a cotyledon node, (2) one of the consecutive non-leaf nodes having more than one child node is determined by the presence of or (3) the predefined maximum size of the sequence.

在一些实施方式中,如果做出不压缩树结构的子部分的确定,则:In some embodiments, if a determination is made not to compress a subsection of the tree structure, then:

生成非压缩的节点数据结构,非压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述至少一个非叶节点具有多于一个子节点,该序列的比特数小于压缩阈值;以及Generating an uncompressed node data structure that includes a path to a subsection of the tree structure, the path including a path consisting of one or more single-bit nodes associated with at least one non-leaf node of the subsection of the tree structure a bit sequence formed by concatenation, the at least one non-leaf node has more than one child node, and the number of bits of the sequence is less than the compression threshold; and

将非压缩的节点数据结构存储在非暂态计算机可读存储器中。The uncompressed node data structures are stored in non-transitory computer readable memory.

在一些实施方式中,压缩阈值是5比特。在一些实施方式中,序列的预定义最大大小是30比特。In some embodiments, the compression threshold is 5 bits. In some embodiments, the predefined maximum size of the sequence is 30 bits.

在一些实施方式中,非暂态计算机可读存储器包括第一非暂态计算机可读存储器和第二非暂态计算机可读存储器。在一些实施方式中,(1)经压缩的节点数据结构是第一经压缩的节点数据结构,并且(2)非压缩的节点数据结构是第一非压缩的节点数据结构,其中,第一节点数据结构包括第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,并且第二节点数据结构包括第二经压缩的节点数据结构和第二非压缩的数据结构之一。In some implementations, the non-transitory computer-readable memory includes a first non-transitory computer-readable memory and a second non-transitory computer-readable memory. In some embodiments, (1) the compressed node data structure is a first compressed node data structure, and (2) the uncompressed node data structure is a first uncompressed node data structure, wherein the first node The data structure includes one of a first compressed node data structure and a first uncompressed node data structure, and the second node data structure includes one of a second compressed node data structure and a second uncompressed data structure.

在一些实施方式中,第一节点数据结构存储在第一非暂态计算机可读存储器中,并指向第二非暂态计算机可读存储器的存储有第二节点数据结构的存储器地址。In some embodiments, the first node data structure is stored in the first non-transitory computer readable memory and points to a memory address of the second non-transitory computer readable memory where the second node data structure is stored.

在一些实施方式中,可以通过第一单次存储器访问从第一非暂态计算机可读存储器访问第一节点数据结构,并且可以通过第二单次存储器访问从第二非暂态计算机可读存储器访问第二节点数据结构。In some embodiments, the first node data structure can be accessed from the first non-transitory computer readable memory through a first single memory access, and the first node data structure can be accessed from the second non-transitory computer readable memory through a second single memory access Access the second node data structure.

在一些实施方式中,第一非暂态计算机可读存储器是第一QDR SRAM存储器的第一存储体,并且第二非暂态计算机可读存储器是第二QDR SRAM存储器的第二存储体。In some embodiments, the first non-transitory computer readable memory is a first bank of a first QDR SRAM memory and the second non-transitory computer readable memory is a second bank of a second QDR SRAM memory.

在一些实施方式中,经压缩的节点数据结构是第一经压缩的节点数据结构,并且非压缩的节点数据结构是第一非压缩的节点数据结构,并且其中,非暂态计算机可读存储器包括第一部分、第二部分和第三部分,第一部分存储第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向存储在第二部分中的第二经压缩的节点数据结构和第二非压缩的节点数据结构之一,并且其中:In some implementations, the compressed node data structure is a first compressed node data structure, and the uncompressed node data structure is a first uncompressed node data structure, and wherein the non-transitory computer-readable memory includes The first part, the second part and the third part, the first part stores one of the first compressed node data structure and the first uncompressed node data structure, the first compressed node data structure and the first uncompressed node data one of the structures points to one of the second compressed node data structure and the second uncompressed node data structure stored in the second portion, and wherein:

在更新树结构时,将第三经压缩的节点数据结构和第三非压缩的节点数据结构之一存储在第三部分中,并且修改第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,使得第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向第三经压缩的节点数据结构和第三非压缩的节点数据结构之一。When updating the tree structure, one of the third compressed node data structure and the third uncompressed node data structure is stored in the third portion, and the first compressed node data structure and the first uncompressed node are modified One of the data structures such that one of the first compressed node data structure and the first uncompressed node data structure points to one of the third compressed node data structure and the third uncompressed node data structure.

在一些实施方式中,该方法还包括至少一个操作:(1)基于通过网络分组元数据建立的优先级来传输网络分组,(2)基于网络分组元数据识别要对网络分组执行的服务,(3)基于网络分组元数据测试网络分组以确立网络分组是网络攻击的一部分和/或(4)基于网络分组元数据创建对网络分组的流量的度量。In some embodiments, the method further comprises at least one operation of: (1) transmitting the network packet based on a priority established by the network packet metadata, (2) identifying a service to be performed on the network packet based on the network packet metadata, ( 3) Test the network packet based on the network packet metadata to establish that the network packet is part of a network attack and/or (4) create a measure of the traffic of the network packet based on the network packet metadata.

在另一方面,本技术的各种实现方式提供了一种被配置成执行以上段落中描述的方法的计算机实现的系统。In another aspect, various implementations of the present technology provide a computer-implemented system configured to perform the method described in the preceding paragraphs.

在另一方面,本技术的各种实现方式提供了一种包括计算机可执行指令的非暂态计算机可读介质,所述计算机可执行指令使系统执行以上段落中描述的方法。In another aspect, various implementations of the present technology provide a non-transitory computer-readable medium comprising computer-executable instructions that cause a system to perform the method described in the preceding paragraphs.

在本说明书的上下文中,除非另有明确规定,否则联网设备可以指代但不限于“路由器”、“交换机”、“网关”、“系统”、“基于计算机的系统”和/或其适合当前相关任务的任何组合。In the context of this specification, unless expressly stated otherwise, networked devices may refer to, but are not limited to, "routers," "switches," "gateways," "systems," "computer-based systems," and/or their appropriate Any combination of related tasks.

在本说明书的上下文中,除非另有明确规定,否则表述“计算机可读介质”和“存储器”旨在包括任何性质和种类的介质,其非限制性示例包括RAM、ROM、盘(CD-ROM、DVD、软盘、硬盘驱动器等)、USB密钥、闪存卡、固态驱动器和磁带驱动器。仍然在本说明书的上下文中,“一种”计算机可读介质和“该”计算机可读介质不应被解释为是同一计算机可读介质。与此相对,在任何合适的时候,“一种”计算机可读介质和“该”计算机可读介质也可以被解释为第一计算机可读介质和第二计算机可读介质。In the context of this specification, unless expressly stated otherwise, the expressions "computer-readable medium" and "memory" are intended to include media of any nature and kind, non-limiting examples of which include RAM, ROM, disk (CD-ROM) , DVDs, floppy disks, hard drives, etc.), USB keys, flash memory cards, solid state drives, and tape drives. Still in the context of this specification, "a" computer-readable medium and "the" computer-readable medium should not be construed as being the same computer-readable medium. In contrast, "a" computer-readable medium and "the" computer-readable medium can also be construed as a first computer-readable medium and a second computer-readable medium, whenever appropriate.

在本说明书的上下文中,除非另有明确规定,否则词语“第一”、“第二”、“第三”等被用作形容词,仅为了使得能够将其修饰的名词彼此区分的目的,而不是为了描述这些名词之间的任何特定关系的目的。In the context of this specification, unless expressly stated otherwise, the words "first", "second", "third", etc. are used as adjectives only for the purpose of enabling the nouns they modify to be distinguished from each other, and Not for the purpose of describing any particular relationship between these nouns.

本技术的实现方式各自具有上述目的和/或方面中的至少一者,但不一定具有所有这些目的和/或方面。应当理解,由于试图获得上述目的而产生的本技术的一些方面可能不满足该目的和/或可能满足本文未具体叙述的其他目的。Implementations of the present technology each have at least one, but not necessarily all, of the objects and/or aspects described above. It should be appreciated that some aspects of the technology resulting from an attempt to achieve the above-mentioned objective may not satisfy this objective and/or may satisfy other objectives not specifically recited herein.

根据以下描述、附图和所附权利要求书,本技术的实现方式的附加和/或替选特征、方面和优势将变得明显。Additional and/or alternative features, aspects and advantages of implementations of the present technology will become apparent from the following description, drawings, and appended claims.

附图说明Description of drawings

参考以下描述、权利要求书和附图,将更好地理解本公开内容的这些和其他特征、方面和优点。本公开内容通过示例的方式示出,并且不受附图的限制,在附图中相似的附图标记表示相似的元件。These and other features, aspects and advantages of the present disclosure will be better understood with reference to the following description, claims and drawings. The present disclosure is shown by way of example and not by way of limitation in the accompanying drawings, in which like reference numerals refer to like elements.

图1A和图1B示出了可以用于实现本文描述的任何方法的示例联网设备;1A and 1B illustrate example networked devices that can be used to implement any of the methods described herein;

图2示出了根据本技术的实施方式的联网设备及其联网环境的图;Figure 2 shows a diagram of a networked device and its networked environment in accordance with an embodiment of the present technology;

图3示出了根据本技术的实施方式的替选联网设备及其联网环境的图;3 shows a diagram of an alternative networked device and its networked environment in accordance with an embodiment of the present technology;

图4至图7示出了根据本技术的实施方式的树结构的图;4 to 7 illustrate diagrams of tree structures according to embodiments of the present technology;

图8示出了根据本技术的实施方式的节点数据结构的图;8 shows a diagram of a node data structure according to an embodiment of the present technology;

图9示出了根据本技术的实施方式的存储在存储器的多个存储体中的数据结构的图;以及FIG. 9 shows a diagram of a data structure stored in multiple banks of a memory in accordance with an embodiment of the present technology; and

图10示出了根据本技术的实施方式的压缩树结构的方法的第一流程图。FIG. 10 shows a first flowchart of a method of compressing a tree structure according to an embodiment of the present technology.

具体实施方式Detailed ways

在以下对各个说明性实施方式的描述中,参考附图,附图构成其一部分,并且在附图中通过图示的方式示出了可以实践本公开内容的各方面的各种实施方式。应当理解,在不脱离本公开内容的范围的情况下,可以利用其他实施方式并且可以进行结构或功能上的改变。In the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which are shown by way of illustration various embodiments in which aspects of the present disclosure may be practiced. It is to be understood that other embodiments may be utilized and structural or functional changes may be made without departing from the scope of the present disclosure.

设备的网络例如容纳在数据中心中的网络可以包括各种不同的联网硬件,例如路由器、交换机、多层交换机、线缆和/或其他联网硬件。联网设备可以服务各种计算设备,例如服务器。联网设备可以在过滤和/或分类网络分组的情况下操作所依赖的数据结构。A network of devices, such as a network housed in a data center, may include a variety of different networking hardware, such as routers, switches, multilayer switches, cables, and/or other networking hardware. Networked devices can serve various computing devices, such as servers. Networked devices may operate upon data structures that filter and/or classify network packets.

图1A示出了根据本技术的实施方式的计算环境100的图。在一些实施方式中,计算环境100可以由传统的个人计算机、服务器、路由器、交换机、控制器和/或电子设备(例如,服务器、控制器单元、控制设备、监视设备等)中的任一个和/或其适合于当前相关任务的任何组合来实现。在一些实施方式中,计算环境100包括各种硬件部件,各种硬件部件包括由处理器110共同表示的一个或更多个单核或多核处理器、固态驱动器120、随机存取存储器(RAM)存储器130、专用存储器170和输入/输出接口150。计算环境100可以是专门设计用于在数据中心环境中操作的计算机。计算环境100可以是通用计算机系统。FIG. 1A shows a diagram of a computing environment 100 in accordance with an embodiment of the present technology. In some embodiments, computing environment 100 may consist of any of conventional personal computers, servers, routers, switches, controllers, and/or electronic devices (eg, servers, controller units, control devices, monitoring devices, etc.) and and/or any combination that is appropriate for the task at hand. In some embodiments, computing environment 100 includes various hardware components including one or more single-core or multi-core processors, collectively represented by processor 110 , solid state drive 120 , random access memory (RAM) Memory 130 , dedicated memory 170 and input/output interface 150 . Computing environment 100 may be a computer specifically designed to operate in a data center environment. Computing environment 100 may be a general-purpose computer system.

在一些实施方式中,计算环境100还可以是上面列出的系统之一的子系统。在一些其他实施方式中,计算环境100可以是“现成的”通用计算机系统。在一些实施方式中,计算环境100还可以分布在多个系统中。计算环境100还可以专门用于实现本技术。如本技术领域的技术人员可以理解的,可以在不脱离本技术的范围的情况下设想关于如何实现计算环境100的多种变型。In some implementations, computing environment 100 may also be a subsystem of one of the systems listed above. In some other implementations, computing environment 100 may be an "off-the-shelf" general-purpose computer system. In some embodiments, computing environment 100 may also be distributed among multiple systems. Computing environment 100 may also be specialized for implementing the present technology. As can be appreciated by those skilled in the art, numerous variations on how computing environment 100 may be implemented may be envisaged without departing from the scope of the present technology.

计算环境100的各个部件之间的通信可以通过与各个硬件部件电耦接的一个或更多个内部和/或外部总线160(例如,PCI总线、通用串行总线、IEEE 1394“火线(Firewire)”总线、SCSI总线、串行ATA总线、ARINC总线等)实现。Communication between the various components of computing environment 100 may be through one or more internal and/or external buses 160 (eg, PCI bus, Universal Serial Bus, IEEE 1394 "Firewire") electrically coupled to the various hardware components. ” bus, SCSI bus, Serial ATA bus, ARINC bus, etc.) implementation.

输入/输出接口150可以提供诸如有线或无线访问的联网能力。作为示例,输入/输出接口150可以包括联网接口,例如但不限于一个或更多个网络端口、一个或更多个网络套接字、一个或更多个网络接口控制器等。可以如何实现联网接口的多个示例对于本技术领域的技术人员而言将变得明显。例如但不限于此,联网接口可以实现特定物理层和数据链路层标准,例如以太网、光纤通道、Wi-Fi或令牌环。特定物理层和数据链路层可以为完整网络协议栈提供基础,从而使得能够在同一局域网(LAN)上的计算机小组之间进行通信并通过可路由协议例如因特网协议(IP)进行大规模网络通信。Input/output interface 150 may provide networking capabilities such as wired or wireless access. As an example, input/output interface 150 may include a networking interface such as, but not limited to, one or more network ports, one or more network sockets, one or more network interface controllers, and the like. Numerous examples of how networking interfaces may be implemented will become apparent to those skilled in the art. For example and without limitation, networking interfaces may implement specific physical layer and data link layer standards, such as Ethernet, Fibre Channel, Wi-Fi, or Token Ring. Certain physical and data link layers can provide the basis for a complete network protocol stack, enabling communication between groups of computers on the same local area network (LAN) and large-scale network communications over routable protocols such as Internet Protocol (IP) .

根据本技术的实现方式,固态驱动器120存储适于被加载到随机存取存储器130中并且由处理器110执行的程序指令。例如,程序指令可以是库或应用的一部分。尽管被示为固态驱动器120,但是可以使用任何类型的存储器例如硬盘、光盘和/或可移除存储介质来代替固态驱动器120。According to implementations of the present technology, solid state drive 120 stores program instructions suitable for being loaded into random access memory 130 and executed by processor 110 . For example, program instructions may be part of a library or application. Although shown as solid state drive 120, any type of memory may be used in place of solid state drive 120, such as hard disks, optical disks, and/or removable storage media.

在本技术的一些实施方式中,处理器110可以是通用处理器例如中央处理单元(CPU),或者专用于特定目的的处理器例如数字信号处理器(DSP)。在一些实施方式中,处理器110还可以依赖于专用于某些给定任务例如执行以下段落中阐述的方法1000的加速器112。在一些实施方式中,处理器110或加速器112可以被实现为一个或更多个现场可编程门阵列(FPGA)。此外,术语“处理器”的明确使用不应被解释为排外地提及能够执行软件的硬件,并且可以隐含地包括但不限于专用集成电路(ASIC)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储装置。还可以包括传统的和/或定制的其他硬件。In some embodiments of the present technology, the processor 110 may be a general purpose processor such as a central processing unit (CPU), or a special purpose processor such as a digital signal processor (DSP). In some implementations, the processor 110 may also rely on an accelerator 112 dedicated to certain given tasks, such as performing the method 1000 set forth in the following paragraphs. In some embodiments, processor 110 or accelerator 112 may be implemented as one or more field programmable gate arrays (FPGAs). Furthermore, explicit use of the term "processor" should not be construed as an exclusive reference to hardware capable of executing software, and may implicitly include, but is not limited to, application specific integrated circuits (ASICs), read-only memories for storing software ( ROM), random access memory (RAM), and nonvolatile storage devices. Other conventional and/or custom hardware may also be included.

在本技术的一些实施方式中,RAM 130可以包括高性能存储器,例如但不限于四倍数据速率(QDR)SRAM存储器。在一些实施方式中,RAM 130可以包括多个QDR SRAM存储器。另外,在一些实施方式中,还可以依赖于专用存储器170。这样的专用存储器170可以是不同的存储器单元或集成到另一部件。在一些实施方式中,专用存储器170是FPGA处理单元的一部分(例如,FPGA的寄存器)。在一些实施方式中,专用存储器170被实现为RAM 130的专用部分。还可以在不脱离本技术的范围的情况下设想其他变型。In some embodiments of the present technology, RAM 130 may include high performance memory such as, but not limited to, quad data rate (QDR) SRAM memory. In some implementations, RAM 130 may include multiple QDR SRAM memories. Additionally, in some embodiments, dedicated memory 170 may also be relied upon. Such dedicated memory 170 may be a different memory unit or integrated into another component. In some implementations, the dedicated memory 170 is part of the FPGA processing unit (eg, registers of the FPGA). In some implementations, dedicated memory 170 is implemented as a dedicated portion of RAM 130 . Other variations can also be envisaged without departing from the scope of the present technology.

图1B示出了根据本技术的实施方式的替选计算环境190的图。在一些实施方式中,计算环境190与计算环境100可以由相似的部件来实现(相似的部件由相同的附图标记指代)。计算环境190包括专用FPGA卡180,专用FPGA卡180可以通过输入/输出接口150或者直接通过内部和/或外部总线160连接至计算环境的其他部件。在一些实施方式中,FPGA卡180包括FPGA芯片组182(其可以包括也被称为“专用存储器”的寄存器)和专用RAM存储器,例如统称为QDR SRAM存储器184的四个不同的QDR SRAM存储器。在一些实施方式中,FPGA卡也可以包括实现至网络的连接的一个或更多个输入/输出接口。FIG. 1B shows a diagram of an alternative computing environment 190 in accordance with an embodiment of the present technology. In some implementations, computing environment 190 and computing environment 100 may be implemented by similar components (similar components are designated by the same reference numerals). Computing environment 190 includes a dedicated FPGA card 180 that may be connected to other components of the computing environment through input/output interface 150 or directly through internal and/or external bus 160 . In some embodiments, the FPGA card 180 includes an FPGA chipset 182 (which may include registers, also referred to as "dedicated memory") and dedicated RAM memory, such as four different QDR SRAM memories collectively referred to as QDR SRAM memory 184. In some embodiments, the FPGA card may also include one or more input/output interfaces that enable connections to the network.

在本文中可以将软件模块或仅仅暗示是软件的模块表示为流程图元素或指示处理步骤的执行和/或文本描述的其他元素的任何组合。这样的模块可以由明确地或隐含地示出的硬件来执行。此外,应该理解,模块可以包括例如但不限于提供所需能力的计算机程序逻辑、计算机程序指令、软件、堆栈、固件、硬件电路或其组合。Software modules, or modules merely implied to be software, may be represented herein as any combination of flowchart elements or other elements that indicate the execution of process steps and/or textual descriptions. Such modules may be executed by hardware shown explicitly or implicitly. Furthermore, it should be understood that a module may include, for example, but not limited to, computer program logic, computer program instructions, software, stacks, firmware, hardware circuits, or combinations thereof, to provide the desired capabilities.

图2示出了根据本技术的实施方式的联网设备及其联网环境的图。网络10和20可以连接至因特网。网络10和/或20可以定义与数据中心相关联、由数据中心控制和操作的网络。每个网络10和20可以分别包括主机12、14和16以及22和24。每个网络10和20还可以分别包括交换机18和26,并且可以分别包括一个或更多个服务器,例如服务器17、19和28。每个网络10和20还可以分别包括至因特网30的一个或更多个网关13和25。未明确示出的是网络10和20的路由器和其他部分,路由器和其他部分还可以控制通过网络10和20的流量并且将被认为总体上分别由交换机18和26以及网络10和20固有地描绘。交换机18和26、网关13和25以及路由器通常可以被称为如下设备的网络,该设备可以被实施为类似于计算环境100的计算设备。交换机18和26、网关13和25以及路由器可以实现根据本技术的实施方式的将网络分组签名与网络分组元数据相关联的树结构。2 shows a diagram of a networked device and its networked environment in accordance with an embodiment of the present technology. Networks 10 and 20 may be connected to the Internet. Networks 10 and/or 20 may define a network associated with, controlled and operated by a data center. Each network 10 and 20 may include hosts 12, 14 and 16 and 22 and 24, respectively. Each network 10 and 20 may also include switches 18 and 26, respectively, and may include one or more servers, such as servers 17, 19, and 28, respectively. Each network 10 and 20 may also include one or more gateways 13 and 25, respectively, to the Internet 30. Not explicitly shown are routers and other parts of networks 10 and 20 that may also control traffic through networks 10 and 20 and will be considered to be inherently depicted by switches 18 and 26 and networks 10 and 20 as a whole, respectively . Switches 18 and 26 , gateways 13 and 25 , and routers may generally be referred to as a network of devices that may be implemented as computing devices similar to computing environment 100 . Switches 18 and 26, gateways 13 and 25, and routers may implement a tree structure that associates network packet signatures with network packet metadata in accordance with embodiments of the present technology.

图3示出了根据本技术的实施方式的替选联网设备及其联网环境的图。所描绘的环境是操作连接至因特网30的数据中心300的基础设施。数据中心300包括第一组路由器301和第二组路由器302。第一组路由器301可以被称为管理由数据中心300操作的多个不同网络的骨干路由器。第二组路由器302可以被称为各自均管理由数据中心300操作的多个服务器303的网络连接的数据中心路由器。数据中心300还包括还被称为真空系统VAC的防DDoS系统304。在一些实施方式中,防DDoS系统304可以连接至第一组路由器301和/或第二组路由器304,以过滤从因特网30接收的网络分组。在一些实施方式中,防DDoS系统304实现缓解措施,缓解措施包括过滤非法网络分组同时准许合法网络分组访问数据中心的网络(例如,访问服务器303)。在一些实施方式中,防DDoS系统304可以包括可以专用于某些给定任务的多个子系统例如子系统305至308。3 shows a diagram of an alternative networking device and its networking environment in accordance with an embodiment of the present technology. The depicted environment is the infrastructure that operates the data center 300 connected to the Internet 30 . Data center 300 includes a first set of routers 301 and a second set of routers 302 . The first set of routers 301 may be referred to as backbone routers that manage a number of different networks operated by the data center 300 . The second set of routers 302 may be referred to as data center routers that each manage the network connections of the plurality of servers 303 operated by the data center 300 . The data center 300 also includes an anti-DDoS system 304 also known as a vacuum system VAC. In some embodiments, the anti-DDoS system 304 may be connected to the first set of routers 301 and/or the second set of routers 304 to filter network packets received from the Internet 30 . In some embodiments, anti-DDoS system 304 implements mitigations that include filtering illegal network packets while granting legitimate network packets access to the data center's network (eg, access server 303 ). In some embodiments, anti-DDoS system 304 may include multiple subsystems, such as subsystems 305-308, that may be dedicated to certain given tasks.

作为示例但不限于此,也被称为预防火墙的第一子系统305可以操作如下控制逻辑:该控制逻辑旨在对网络分组进行分段、控制网络分组的大小,和/或对基于关联协议(例如,TCP、UDP、ICMP、GRE协议)的某些网络分组进行授权同时阻止其他网络分组(例如,除TCP、UDP、ICMP、GRE协议之外的协议)。作为另一示例但不限于此,也被称为防火墙网络的第二子系统306可以操作如下控制逻辑:该控制逻辑旨在授权/阻止IP地址、授权/阻止协议(例如,IP、TCP、UDP、ICMP、GRE协议)、授权/阻止一个或更多个网络端口(例如,TCP或UDP端口)、授权/阻止SYN/TCP、授权/阻止除SYN/TCP之外的网络分组。作为另一示例但不限于此,也被称为盾牌(Shield)的第三子系统307可以操作旨在分析网络分组(例如,以检查报头、校验和等)的控制逻辑。作为另一示例但不限于此,也被称为盔甲(Armor)的第四子系统308可以操作如下控制逻辑:该控制逻辑旨在分析网络分组和/或进行对无效TCP标记、无效序列号、僵尸网络分组、TCP SYN认证、DNS认证、DNS限制等的检测。By way of example and not limitation, the first sub-system 305, also referred to as a pre-firewall, may operate control logic intended to segment network packets, control the size of network packets, and/or to Certain network packets (eg, TCP, UDP, ICMP, GRE protocols) authorize while other network packets (eg, protocols other than TCP, UDP, ICMP, GRE protocols) are blocked. As another example and not limitation, the second subsystem 306, also referred to as a firewall network, may operate control logic designed to authorize/block IP addresses, authorize/block protocols (eg, IP, TCP, UDP , ICMP, GRE protocols), authorize/block one or more network ports (eg, TCP or UDP ports), authorize/block SYN/TCP, authorize/block network packets other than SYN/TCP. As another example and not limitation, a third subsystem 307, also referred to as a shield, may operate control logic aimed at analyzing network packets (eg, to check headers, checksums, etc.). As another example and not limitation, the fourth subsystem 308, also referred to as Armor, may operate control logic aimed at analyzing network packets and/or performing detection of invalid TCP flags, invalid sequence numbers, Detection of botnet grouping, TCP SYN authentication, DNS authentication, DNS restriction, etc.

在一些实施方式中,第四子系统308生成和/或实现根据本技术的实施方式的将网络分组签名与网络分组元数据相关联的树结构。如可以理解的,树结构可以同等地在不同的联网设备上生成和/或实现,或者甚至以分布式方式在多个联网设备上进行操作(例如,通过子系统305至308中的一个或更多个实现)。在一些实施方式中,根据本技术的实施方式的生成和/或实现将网络分组签名与网络分组元数据相关联的树结构的联网设备可以包括包含FPGA卡的一个或更多个虚拟路由器(vRouter)。适于联网设备的配置的示例可以是但不限于如下:In some embodiments, the fourth subsystem 308 generates and/or implements a tree structure that associates network packet signatures with network packet metadata in accordance with embodiments of the present technology. As can be appreciated, tree structures may be generated and/or implemented equally on different networked devices, or even operated on multiple networked devices in a distributed fashion (eg, by one or more of subsystems 305-308). multiple implementations). In some embodiments, a networking device that generates and/or implements a tree structure associating network packet signatures with network packet metadata in accordance with embodiments of the present technology may include one or more virtual routers (vRouters) including FPGA cards. ). Examples of configurations suitable for networked devices may be, but are not limited to, the following:

处理器processor 2x1697v42x1697v4 RAMRAM 64GB DD4 ECC64GB DD4 ECC 网络卡network card 2x ConnectX-4 2x 100Gbps2x ConnectX-4 2x 100Gbps FPGAFPGA XUPP3R,4x 100GbpsXUPP3R, 4x 100Gbps

也可以使用其他配置,并且对于本技术领域的技术人员来说其他配置将易于变得明显。Other configurations may also be used and will be readily apparent to those skilled in the art.

现在转到图4至图7,示出了根据本技术的实施方式的树结构400的图。树结构包括子部分402、502、504、602、604和700。树结构的级数和/或子部分的数量是示例性的,并且不应被解释为对本技术的限制。树结构包括非叶节点(例如,P2/L2、P5、P6/L5)和叶节点(例如,P1/L1、P3/L3、P4/L4)。在一些实施方式中,例如图4至图9中所描绘的实施方式,非叶节点可以与网络分组元数据(例如,标签)相关联。作为示例,非叶节点P6/L5与标签“5”相关联。Turning now to FIGS. 4-7 , diagrams of a tree structure 400 are shown in accordance with embodiments of the present technology. The tree structure includes subsections 402 , 502 , 504 , 602 , 604 and 700 . The number of levels and/or subsections of the tree structure is exemplary and should not be construed as a limitation of the present technology. The tree structure includes non-leaf nodes (eg, P2/L2, P5, P6/L5) and leaf nodes (eg, P1/L1, P3/L3, P4/L4). In some embodiments, such as those depicted in Figures 4-9, non-leaf nodes may be associated with network packet metadata (eg, labels). As an example, non-leaf node P6/L5 is associated with label "5".

每个非叶节点是使得能够指导对整个树结构的浏览的单比特测试节点。非叶节点可以与一个子节点或两个子节点相关联。在非叶节点与两个子节点相关联的实例中,比特值可以确定在树结构的下一级处应该考虑两个子节点中的哪一个。作为示例,如果测试的比特值是1,则非叶节点P10可以指向P12/L8,并且如果测试的比特值是0,则非叶节点P10可以指向P11/L9。在一些实施方式中,即使非叶节点仅有一个子节点,也要测试比特值。在一些实施方式中,比特值的存在确定遍历整个树结构的查找是否应该继续。Each non-leaf node is a single-bit test node that enables direct browsing of the entire tree structure. A non-leaf node can be associated with one child node or two child nodes. In the instance where a non-leaf node is associated with two child nodes, the bit value may determine which of the two child nodes should be considered at the next level in the tree structure. As an example, if the tested bit value is 1, non-leaf node P10 may point to P12/L8, and if the tested bit value is 0, non-leaf node P10 may point to P11/L9. In some implementations, the bit value is tested even if the non-leaf node has only one child node. In some implementations, the presence of a bit value determines whether a lookup traversing the entire tree structure should continue.

每个叶节点与网络分组元数据(例如,标签)相关联,例如,叶节点P3/L3、P1/L1、P11/19。在从根(例如,根P0/L0)浏览整个树结构时,到达叶节点致使浏览结束并且确定网络分组签名可以与叶节点的元数据相关联。在叶节点与标签相关联的一些实施方式中,所选标签是最后匹配节点之一,从而避免必须为每个可能的终止生成一个叶。Each leaf node is associated with network packet metadata (eg, a label), eg, leaf nodes P3/L3, P1/L1, P11/19. When browsing the entire tree structure from a root (eg, root P0/L0), reaching a leaf node causes the browsing to end and determines that a network packet signature can be associated with the leaf node's metadata. In some embodiments where leaf nodes are associated with labels, the selected label is one of the last matching nodes, thereby avoiding having to generate a leaf for every possible termination.

作为示例,遍历树结构400的从根P0/L0至叶节点P3/L3的路径包括具有单个子非叶节点412的非叶节点410,子非叶节点412又作为两个子非叶节点414和416。非叶节点414具有两个子节点,即非叶节点418和叶节点P3/L3。遍历树结构400的从根P0/L0至叶节点P3/L3的路径可以由以下比特序列“0011”定义。作为另一示例,遍历树结构400的从根P0/L0至叶节点P2/L2的路径可以由以下比特序列“00100”来定义。As an example, a path traversing tree structure 400 from root P0/L0 to leaf node P3/L3 includes non-leaf node 410 having a single child non-leaf node 412, which in turn serves as two child non-leaf nodes 414 and 416 . Non-leaf node 414 has two child nodes, non-leaf node 418 and leaf node P3/L3. A path traversing the tree structure 400 from root P0/L0 to leaf node P3/L3 may be defined by the following bit sequence "0011". As another example, a path traversing tree structure 400 from root P0/L0 to leaf node P2/L2 may be defined by the following bit sequence "00100".

如图4至图7所示,非叶节点P5通向子部分502,子部分502本身通向非叶节点P12/L8和叶节点P11/L9。非叶节点P2/L2通向子部分504,子部分504本身通向非叶节点P6/L5。非叶节点P12/L8通向子部分602,子部分602本身通向非叶节点P13/L8。非叶节点P13/L8通向子部分604,子部分604本身通向叶节点P14/L10。非叶节点P6/L5通向子部分700,子部分700本身通向叶节点P7/L6和叶节点P9/L7。As shown in Figures 4-7, non-leaf node P5 leads to subsection 502, which itself leads to non-leaf node P12/L8 and leaf node P11/L9. Non-leaf node P2/L2 leads to subsection 504, which itself leads to non-leaf node P6/L5. Non-leaf node P12/L8 leads to subsection 602, which itself leads to non-leaf node P13/L8. Non-leaf node P13/L8 leads to subsection 604, which itself leads to leaf node P14/L10. Non-leaf node P6/L5 leads to subsection 700, which itself leads to leaf node P7/L6 and leaf node P9/L7.

在多个方面中,本技术提供了压缩树结构例如树结构400的方法。压缩树结构的方法针对树结构的给定子部分确立具有单个子节点的连续非叶节点的数量。在一些实施方式中,具有单个子节点的非叶节点可以被称为不具有分叉的非叶节点,换句话说,它仅具有一个分支。作为示例,如子部分402、502、504、602、604和700所示,子部分可以由树结构的级数定义。子部分可以是单个分支或定义子树结构的分支的组合。在实施方式中,级数可以由比特数来定义。在一些实施方式中,级数可以被定义为非叶节点和/或叶节点的数量。作为示例,子部分可以被定义为树结构的30级(即,30比特)。在不脱离本技术的范围的情况下可以设想变型,作为示例,级数可以多于或少于30并且可以取决于某些约束(例如,存储器结构)。In various aspects, the present technology provides a method of compressing a tree structure, such as tree structure 400 . A method of compressing a tree structure establishes, for a given subsection of the tree structure, the number of consecutive non-leaf nodes with a single child node. In some implementations, a non-leaf node with a single child node may be referred to as a non-leaf node with no fork, in other words, it has only one branch. As an example, as shown in subsections 402, 502, 504, 602, 604, and 700, the subsections may be defined by levels of a tree structure. A subsection can be a single branch or a combination of branches that define a subtree structure. In an embodiment, the number of stages may be defined by the number of bits. In some embodiments, the number of levels may be defined as the number of non-leaf nodes and/or leaf nodes. As an example, a subsection may be defined as 30 levels (ie, 30 bits) of the tree structure. Variations are envisaged without departing from the scope of the present technology, as an example, the number of stages may be more or less than 30 and may depend on certain constraints (eg, memory structure).

在一些实施方式中,压缩树结构的方法确定是否要压缩树结构的子部分。在一些实施方式中,该确定基于具有单个子节点的连续非叶节点的数量。在一些实施方式中,压缩阈值可以是6比特,使得将包括多于5个具有单个子节点的连续非叶节点的子部分确定为要被压缩。在不脱离本技术的范围的情况下可以设想变型,作为示例,压缩阈值可以大于或小于5并且可以取决于某些约束(例如,存储器结构)。作为示例,子部分402包括多个非叶节点和多个叶节点,然而,子部分402不包括至少5个仅具有一个子节点的连续非叶节点(例如,非叶节点412和414各自均具有两个子节点)。结果是,该子部分被确定为不被压缩。作为另一示例,子部分504包括10个仅具有一个子节点的连续非叶节点(即,0011111100),则可以做出可以压缩子部分504的确定。In some embodiments, the method of compressing the tree structure determines whether to compress sub-portions of the tree structure. In some embodiments, the determination is based on the number of consecutive non-leaf nodes that have a single child node. In some embodiments, the compression threshold may be 6 bits, such that subsections comprising more than 5 consecutive non-leaf nodes with a single subnode are determined to be compressed. Variations are envisaged without departing from the scope of the present technology, as an example, the compression threshold may be greater or less than 5 and may depend on certain constraints (eg, memory structure). As an example, subsection 402 includes a plurality of non-leaf nodes and a plurality of leaf nodes, however, subsection 402 does not include at least 5 consecutive non-leaf nodes having only one child node (eg, non-leaf nodes 412 and 414 each have two child nodes). As a result, the subsection is determined not to be compressed. As another example, where subsection 504 includes 10 consecutive non-leaf nodes with only one child node (ie, 0011111100), a determination may be made that subsection 504 can be compressed.

遵循类似的逻辑,可以做出如下确定:将不压缩子部分502,将压缩子部分602(尽管未示出,但子部分602包括32个仅具有一个子节点的连续非叶节点),将不压缩子部分604(仅有3个仅具有一个子节点的非叶节点)和子部分700(一个非叶节点具有两个子节点)。在一些实施方式中,可以定义仅具有一个子节点的连续非叶节点的序列的最大大小。在上述示例中,序列的最大大小是30(例如,30比特)。结果是,即使组合在一起的子部分602和604将产生35个仅具有一个子节点的连续非叶节点,但是子部分602在30处被切断,从而使子部分604不被压缩(因为子部分604只包括5个非叶节点)。如本技术领域的技术人员可以理解,在不脱离本技术的范围的情况下,可以设想压缩阈值和/或序列的最大大小的多种变型。Following similar logic, a determination can be made that subsection 502 will not be compressed, subsection 602 will be compressed (although not shown, subsection 602 includes 32 consecutive non-leaf nodes with only one child), will not be compressed Subsection 604 (only 3 non-leaf nodes with only one child) and subsection 700 (one non-leaf node with two children) are compressed. In some implementations, a maximum size of a sequence of consecutive non-leaf nodes with only one child node may be defined. In the above example, the maximum size of the sequence is 30 (eg, 30 bits). The result is that even though the combined subsections 602 and 604 would result in 35 consecutive non-leaf nodes with only one child, the subsection 602 is cut off at 30, leaving the subsection 604 uncompressed (because the subsection 604 is not compressed). 604 only includes 5 non-leaf nodes). As can be appreciated by those skilled in the art, many variations of the compression threshold and/or the maximum size of the sequence can be envisaged without departing from the scope of the present technology.

如果该方法确定要压缩所确定的树结构的给定子部分,则生成经压缩的节点数据结构。如果该方法确定不压缩所确定的树结构的给定子部分,则生成非压缩的节点数据结构。If the method determines that a given subsection of the determined tree structure is to be compressed, a compressed node data structure is generated. If the method determines not to compress a given subsection of the determined tree structure, an uncompressed node data structure is generated.

在图8中示出了节点数据结构800的示例,节点数据结构800示出了包括公共数据结构部分802、804和806的经压缩的节点数据结构810的示例和非压缩的数据结构820的示例。节点数据结构800的总大小为72比特。在一些实施方式中,72比特是存储有节点数据结构800的存储器单元的宽度。节点数据结构800包括第一块802“压缩”,第一块802“压缩”包括指示是否压缩节点数据结构800的1个比特。节点数据结构800还包括第二块804“标签”,第二块804“标签”包括在节点数据结构800表示叶节点的情况下可以指示要与网络分组签名相关联的标签值(也被称为网络分组元数据)的16比特。节点数据结构800还包括第三块806“指向下一节点的指针”,第三块806“指向下一节点的指针”包括指示与节点数据结构800相关联(例如,父节点-子节点关联)的另一节点数据结构的存储器地址的20比特。An example of a node data structure 800 is shown in FIG. 8, showing an example of a compressed node data structure 810 and an example of a non-compressed data structure 820 including common data structure portions 802, 804, and 806 . The total size of the node data structure 800 is 72 bits. In some implementations, 72 bits is the width of the memory cell in which the node data structure 800 is stored. The node data structure 800 includes a first block 802 "compressed" that includes 1 bit that indicates whether the node data structure 800 is compressed. The node data structure 800 also includes a second block 804 "label" that includes a label value (also known as 16 bits of network packet metadata). The node data structure 800 also includes a third block 806 "pointer to next node" which includes an indication that the node data structure 800 is associated (eg, parent-child association) 20 bits of the memory address of another node data structure.

对于节点数据结构包含经压缩的节点数据结构810的实例,节点数据结构还包括第四块812“分支长度”,第四块812“分支长度”包括指示仅具有一个子节点的连续非叶节点的数量的5比特。在一些实施方式中,连续非叶节点的最大数量是30。节点数据结构还包括第五块814“分支路径”,第五块814“分支路径”包括指示从当前节点到达下一节点要遵循的路径的30比特。在一些实施方式中,路径包括由与树结构的经压缩子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列(例如,“10111100001000001”)。在一些实施方式中,压缩阈值是5,意味着序列的比特数等于或大于6。如果比特数等于或小于5,则生成非压缩的节点数据结构。在一些其他实施方式中,压缩阈值是3,意味着序列的比特数等于或大于4。如果比特数等于或小于3,则生成非压缩的节点数据结构。因此,可以在不脱离本技术的范围的情况下设想压缩阈值的多个值。For the instance in which the node data structure contains the compressed node data structure 810, the node data structure also includes a fourth block 812 "Branch Length" which includes a fourth block 812 "Branch Length" that includes a value indicating consecutive non-leaf nodes that have only one child node. number of 5 bits. In some embodiments, the maximum number of consecutive non-leaf nodes is 30. The node data structure also includes a fifth block 814, "Branch Path," which includes 30 bits that indicate the path to follow from the current node to the next node. In some embodiments, the path includes a bit sequence formed by a concatenation of single bits associated with each of the contiguous non-leaf nodes of the compressed sub-portion of the tree structure (eg, "10111100001000001"). In some embodiments, the compression threshold is 5, meaning that the number of bits of the sequence is equal to or greater than 6. If the number of bits is equal to or less than 5, an uncompressed node data structure is generated. In some other embodiments, the compression threshold is 3, meaning that the number of bits of the sequence is equal to or greater than 4. If the number of bits is equal to or less than 3, an uncompressed node data structure is generated. Accordingly, multiple values for the compression threshold may be envisaged without departing from the scope of the present technology.

在一些实施方式中,经压缩的节点数据结构的序列的比特数通过具有子叶节点的非叶节点的存在来确定(例如,树结构在子叶节点处结束)。在一些实施方式中,经压缩的节点数据结构的序列的比特数通过具有多于一个子节点(例如,两个子节点)的非叶节点的存在来确定,从而识别需要创建附加节点数据结构(其可以是经压缩的或非压缩的)的树结构中的分叉。在一些实施方式中,经压缩的节点数据结构的序列的比特数是序列的预定义最大大小(例如,30,以满足节点数据结构的格式约束)。In some implementations, the number of bits of the sequence of the compressed node data structure is determined by the presence of non-leaf nodes with cotyledon nodes (eg, the tree structure ends at the cotyledon nodes). In some embodiments, the number of bits of the sequence of compressed node data structures is determined by the presence of non-leaf nodes that have more than one child node (eg, two child nodes), thereby identifying the need to create additional node data structures (which can be compressed or uncompressed) forks in a tree structure. In some embodiments, the number of bits of the sequence of the compressed node data structure is a predefined maximum size of the sequence (eg, 30, to meet the format constraints of the node data structure).

对于节点数据结构包含非压缩的节点数据结构820的实例,节点数据结构还包括第六块822“填充比特”,第六块822“填充比特”包括在该配置中可能是无用比特的3比特(即,它们“填充”数据结构以使其具有恒定的大小例如72比特)。节点数据结构还包括第七块824“停止值”,第七块824“停止值”包括可以指示节点是非叶节点(例如,不是树的末端)还是叶节点(例如,树的末端)的32比特。在一些实施方式中,第七块824指示树结构的子部分的路径。该路径包括由与树结构的子部分的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述至少一个非叶节点具有多于一个子节点,序列的比特数小于压缩阈值(例如,“1011”)。在一些实施方式中,压缩阈值是5,意味着序列的比特数不大于5。如果比特数大于5,则生成经压缩的节点数据结构。For the instance where the node data structure contains the uncompressed node data structure 820, the node data structure also includes a sixth block 822 "padding bits" which includes 3 bits that may be garbage in this configuration ( That is, they "pad" the data structure to have a constant size (eg, 72 bits). The node data structure also includes a seventh block 824 "stop value" which includes 32 bits that can indicate whether the node is a non-leaf node (eg, not the end of the tree) or a leaf node (eg, the end of the tree) . In some implementations, the seventh block 824 indicates a path to a subsection of the tree structure. The path includes a bit sequence formed by a concatenation of one or more single bits associated with at least one non-leaf node of a subsection of the tree structure, the at least one non-leaf node having more than one child node, the sequence of The number of bits is less than the compression threshold (eg, "1011"). In some embodiments, the compression threshold is 5, meaning that the number of bits in the sequence is not greater than 5. If the number of bits is greater than 5, a compressed node data structure is generated.

在一些实施方式中,非压缩的节点可以检查5比特的签名,这意味着可能存在2^5个5比特的可能路径(00000,00001,00010,00011,00100,......)。对于每个可能的路径,可能存在一个“停止”比特:当且仅当路径00000对应于子节点时,比特0为零,否则为1。当且仅当路径00001对应于子节点时,比特1为零,否则为1。这产生32个比特值。每个比特对应于可能的路径和可能的子节点。在一些实施方式中,非压缩节点可以具有多达32个子节点。指针(806)可以指向第一个子节点,下一个子节点可以连续存储在存储器中(因此第一个子节点在806中的地址处,第二个子节点在地址+1处,第三个子节点在地址+2处......)。非压缩节点可以具有0到32个子节点。相比之下,在一些实施方式中,经压缩节点可以确切地具有一个子节点。非压缩节点可以支持多达32个5比特路径,并且经压缩节点可以仅支持一个30比特路径。In some embodiments, a non-compressed node can check a 5-bit signature, which means that there may be 2^5 possible paths of 5 bits (00000, 00001, 00010, 00011, 00100, ...). For each possible path, there may be a "stop" bit: bit 0 is zero if and only if path 00000 corresponds to a child node, and 1 otherwise. Bit 1 is zero if and only if path 00001 corresponds to a child node, and 1 otherwise. This yields 32 bit values. Each bit corresponds to a possible path and possible child node. In some implementations, a non-compressed node may have up to 32 child nodes. The pointer (806) can point to the first child, and the next child can be stored contiguously in memory (so the first child is at the address in 806, the second child is at address+1, and the third child at address +2...). Uncompressed nodes can have 0 to 32 children. In contrast, in some embodiments, a compressed node may have exactly one child node. Uncompressed nodes can support up to 32 5-bit paths, and compressed nodes can support only one 30-bit path.

返回压缩树结构的方法,如果该方法确定要压缩树结构的给定子部分,则生成经压缩的节点数据结构(例如,经压缩的节点数据结构810)。如果该方法确定不压缩所确定的树结构的给定子部分,则生成非压缩的节点数据结构(例如,非压缩的节点数据结构820)。根据本技术,树结构400的子部分504可以由经压缩的节点数据结构P2/L2表示,经压缩的节点数据结构P2/L2包括由10比特序列“0011111100”定义的路径。Returning to a method of compressing a tree structure, if the method determines that a given subsection of the tree structure is to be compressed, a compressed node data structure (eg, compressed node data structure 810) is generated. If the method determines not to compress a given sub-portion of the determined tree structure, an uncompressed node data structure (eg, uncompressed node data structure 820) is generated. In accordance with the present technique, subsection 504 of tree structure 400 may be represented by a compressed node data structure P2/L2 that includes a path defined by the 10-bit sequence "0011111100".

现在转向图9,示出了包括四个存储器存储体(“存储体0”、“存储体1”、“存储体2”和“存储体3”)的非暂态计算机可读存储器的示例。在一些实施方式中,所有四个存储器是同一非暂态计算机可读存储器的一部分。在一些其他实施方式中,四个存储器中的每一个定义了不同的非暂态计算机可读存储器。在一些实施方式中,四个存储器存储体可以被称为第一非暂态计算机可读存储器、第二非暂态计算机可读存储器、第三非暂态计算机可读存储器和第四非暂态计算机可读存储器。在一些实施方式中,第一非暂态计算机可读存储器、第二非暂态计算机可读存储器、第三非暂态计算机可读存储器和第四非暂态计算机可读存储器中的每一个被实现为不同的QDR SRAM存储器。在这样的实施方式中,存储体0将与第一QDR SRAM存储器相关联,存储体1将与第二QDR SRAM存储器相关联,存储体2将与第三QDR SRAM存储器相关联,并且存储体3将与第四QDR SRAM存储器相关联。Turning now to FIG. 9, an example of a non-transitory computer readable memory including four memory banks ("Bank 0", "Bank 1", "Bank 2", and "Bank 3") is shown. In some embodiments, all four memories are part of the same non-transitory computer readable memory. In some other implementations, each of the four memories defines a different non-transitory computer readable memory. In some implementations, the four memory banks may be referred to as a first non-transitory computer-readable memory, a second non-transitory computer-readable memory, a third non-transitory computer-readable memory, and a fourth non-transitory computer-readable memory computer readable memory. In some implementations, each of the first non-transitory computer-readable memory, the second non-transitory computer-readable memory, the third non-transitory computer-readable memory, and the fourth non-transitory computer-readable memory are Implemented as different QDR SRAM memories. In such an embodiment, bank 0 would be associated with the first QDR SRAM memory, bank 1 would be associated with the second QDR SRAM memory, bank 2 would be associated with the third QDR SRAM memory, and bank 3 will be associated with the fourth QDR SRAM memory.

根据本技术的实施方式并结合图4至图7参照图8,对树结构400进行建模的多个节点数据结构跨存储体0、存储体1、存储体2和存储体3存储。多个节点数据结构包括经压缩的节点数据结构和非压缩的数据结构。存储多个节点数据结构的方法包括:将第一节点数据结构存储在存储体中的第一存储体中,将第二节点数据结构(第一节点数据结构指向其)存储到存储体中的第二存储体中,从而避免在浏览树结构的表示时,连续两次访问同一存储体。作为示例,经压缩的节点数据结构P2/L2存储在存储体2中并指向(例如,基于存储在经压缩的节点数据结构中的“指向地址”)存储在存储体0中的非压缩的节点数据结构P6/L5,非压缩的节点数据结构P6/L5本身指向都存储在存储体1中的非压缩的节点数据结构P7/L6和P8/L7(即,P7/L6和P8/L7存储在同一存储体中,因为它们表示与非叶节点P6/L5相关联的两个叶节点)。作为另一示例,存储在存储体3中的非压缩的节点数据结构P5指向存储在存储体2中的与存储在存储体2中的经压缩的数据结构P12相关联的非压缩的节点数据结构P9/L8和P11/L9,经压缩的数据结构P12指向存储在存储体0中的非压缩的节点数据结构P13,非压缩的节点数据结构P13又指向存储在存储体1中的非压缩的节点数据结构P14/L10。结果是,从一个节点至另一个节点,可以通过访问四个存储体中的不同存储体来实现对树结构的浏览。节点数据结构跨存储体的分布可以使得:对于要引入的每个新节点数据结构,所选存储体是已存储节点数据结构的数量最少的存储体。对于树结构的给定分支,在循环回到已使用的存储体之前需要使用所有存储体。结果是,在某些实施方式中,本技术可以使得能够优化对存储体的访问次数和存储体的使用。作为示例,将与IPv6地址相关联的网络分组签名与网络分组标签相关联并且包括根据本技术生成的经压缩的节点数据结构和非压缩的节点数据结构的树结构可能不需要不超过八个步骤来返回相关联的网络分组标签。结果是,相对于传统方法,本技术可以使得能够减少要使用的存储器量(这在使用诸如QDR SRAM的高性能存储器的情况下更加普遍的有益),同时改进了借记。8 in conjunction with FIGS. 4-7, a plurality of node data structures modeling tree structure 400 are stored across Bank 0, Bank 1, Bank 2, and Bank 3, in accordance with embodiments of the present technology. The plurality of node data structures include compressed node data structures and uncompressed data structures. The method for storing a plurality of node data structures includes: storing a first node data structure in a first memory bank in a memory bank, and storing a second node data structure (to which the first node data structure points) in a first memory bank in the memory bank. two memory banks, thereby avoiding accessing the same memory bank twice in a row when browsing the representation of the tree structure. As an example, the compressed node data structure P2/L2 is stored in bank 2 and points (eg, based on the "pointing address" stored in the compressed node data structure) to the uncompressed node stored in bank 0 Data structure P6/L5, uncompressed node data structure P6/L5 itself points to uncompressed node data structures P7/L6 and P8/L7 both stored in bank 1 (ie, P7/L6 and P8/L7 are stored in in the same bank as they represent two leaf nodes associated with non-leaf nodes P6/L5). As another example, uncompressed node data structure P5 stored in bank 3 points to an uncompressed node data structure stored in bank 2 associated with compressed data structure P12 stored in bank 2 P9/L8 and P11/L9, the compressed data structure P12 points to the uncompressed node data structure P13 stored in bank 0, and the uncompressed node data structure P13 in turn points to the uncompressed node stored in bank 1 Data structure P14/L10. As a result, browsing the tree structure can be accomplished by accessing different ones of the four banks from one node to another. The distribution of node data structures across banks may be such that, for each new node data structure to be introduced, the selected bank is the bank that has the smallest number of stored node data structures. For a given branch of the tree structure, all banks need to be used before looping back to used banks. As a result, in certain embodiments, the present techniques may enable optimization of the number of accesses to and use of a memory bank. As an example, associating a network packet signature associated with an IPv6 address with a network packet label and including a tree structure of compressed node data structures and uncompressed node data structures generated in accordance with the present technique may not require no more than eight steps to return the associated network packet label. As a result, the present technique may enable a reduction in the amount of memory to be used (which is more commonly beneficial where high performance memory such as QDR SRAM is used), while improving debiting, relative to conventional methods.

在一些实施方式中,每一个存储体被划分成三个部分。第一部分存储树的第一步骤的节点,第二部分存储树的后续步骤的节点,并且第三部分保持未使用。当需要更新树结构时,在存储体的第三部分中引入新的节点数据结构,然后更新存储在第一部分中的节点数据结构中包含的存储器地址,使得其现在指向存储在第三部分中的新创建的节点数据结构。如果需要另外的更新,则在存储体中的一个存储体的第二部分中引入新的节点数据结构,然后更新存储在第一部分中的节点数据结构中包含的存储器地址,使得其现在指向存储在第二部分中的新创建的节点数据结构。因此,该方法可以通过在第二部分和第三部分中进行交替创建来创建新节点数据结构。该方法可以使得能够更新树结构,同时提供对树结构的持续访问。In some embodiments, each bank is divided into three sections. The first part stores the nodes of the first step of the tree, the second part stores the nodes of the subsequent steps of the tree, and the third part remains unused. When the tree structure needs to be updated, a new node data structure is introduced in the third part of the memory bank, then the memory address contained in the node data structure stored in the first part is updated so that it now points to the node data structure stored in the third part The newly created node data structure. If an additional update is required, introduce a new node data structure in the second part of one of the banks, then update the memory address contained in the node data structure stored in the first part so that it now points to the The newly created node data structure in the second part. Therefore, the method can create a new node data structure by alternately creating in the second and third parts. The method may enable the tree structure to be updated while providing continuous access to the tree structure.

在一些实施方式中,如果非叶节点指向要被移除的无用叶节点,则可以通过用与标签相关联的值替换指向叶节点的指针将标签(例如,网络分组元数据)直接存储在与非叶节点相关联的节点数据结构中。该方法可以使得能够访问标签的值,而不需要访问非叶节点将指向的另一节点数据结构的额外步骤。In some implementations, if a non-leaf node points to a dead leaf node to be removed, the label (eg, network packet metadata) may be stored directly in the same directory with the value associated with the label by replacing the pointer to the leaf node with the value associated with the label. In the node data structure associated with non-leaf nodes. This method may enable access to the value of the label without the additional step of accessing another node data structure to which a non-leaf node would point.

现在转向图10,公开了根据本技术的一个或更多个说明性方面的用于压缩将网络分组签名与网络分组元数据相关联的树结构的方法1000的流程图。在一个或更多个实施方式中,方法1000或者其一个或更多个步骤可以由一个或更多个计算设备或实体执行。例如,方法1000的各部分可以由联网设备100或190的部件执行。方法1000或者其一个或更多个步骤可以以存储在计算机可读介质例如非暂态计算机可读介质中的计算机可执行指令来实施。可以省略或按顺序改变流程图中的一些步骤或步骤中的一部分。Turning now to FIG. 10, a flowchart of a method 1000 for compressing a tree structure associating network packet signatures with network packet metadata is disclosed in accordance with one or more illustrative aspects of the present technology. In one or more embodiments, method 1000, or one or more steps thereof, may be performed by one or more computing devices or entities. Portions of method 1000 may be performed by components of networked device 100 or 190, for example. Method 1000, or one or more steps thereof, may be implemented as computer-executable instructions stored in a computer-readable medium, such as a non-transitory computer-readable medium. Some steps or part of the steps in the flowcharts may be omitted or changed in sequence.

在一个或更多个实施方式中,将网络分组签名与网络分组元数据相关联的树结构包括包含网络分组元数据的多个叶节点和单比特测试节点的多个非叶节点。In one or more embodiments, the tree structure associating network packet signatures with network packet metadata includes a plurality of leaf nodes containing the network packet metadata and a plurality of non-leaf nodes including single-bit test nodes.

在步骤1002处,对于树结构的子部分,该方法确立具有单个子节点的连续非叶节点的数量。然后在步骤1004处,方法1000基于具有单个子节点的连续非叶节点的数量和压缩阈值确定是否要压缩树结构的子部分。如果做出要压缩树结构的子部分的确定,则方法1000进行到步骤1006。如果做出不压缩树结构的子部分的确定,则方法1000进行到步骤1008。At step 1002, for a subsection of the tree structure, the method establishes the number of consecutive non-leaf nodes that have a single child node. Then at step 1004, the method 1000 determines whether to compress the sub-portions of the tree structure based on the number of consecutive non-leaf nodes with a single child node and the compression threshold. If a determination is made to compress the sub-portion of the tree structure, the method 1000 proceeds to step 1006 . If a determination is made not to compress the sub-portions of the tree structure, the method 1000 proceeds to step 1008 .

在步骤1006处,生成经压缩的节点数据结构。经压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值。在一些实施方式中,经压缩的节点数据结构的序列的比特数通过(1)具有子叶节点的连续非叶节点之一的存在、(2)具有多于一个子节点的连续非叶节点之一的存在或者(3)该序列的预定义最大大小来确定。在一些实施方式中,压缩阈值是5比特。在一些实施方式中,序列的预定义最大大小是30比特。At step 1006, a compressed node data structure is generated. The compressed node data structure includes a path of subsections of the tree structure, the path including a bit sequence formed by concatenation of single bits associated with each of the consecutive non-leaf nodes of the subsection of the tree structure, the sequence of which is The number of bits is equal to or greater than the compression threshold. In some embodiments, the number of bits of the sequence of the compressed node data structure is determined by the presence of (1) one of the consecutive non-leaf nodes having a cotyledon node, (2) one of the consecutive non-leaf nodes having more than one child node is determined by the presence of or (3) the predefined maximum size of the sequence. In some embodiments, the compression threshold is 5 bits. In some embodiments, the predefined maximum size of the sequence is 30 bits.

在步骤1008处,生成非压缩的节点数据结构。非压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述至少一个非叶节点具有多于一个子节点,该序列的比特数小于压缩阈值。在一些实施方式中,路径包括树结构的子部分的多个路径。At step 1008, an uncompressed node data structure is generated. The uncompressed node data structure includes a path of a subsection of the tree structure, the path including a bit sequence formed by the concatenation of one or more single bits associated with at least one non-leaf node of the subsection of the tree structure, so that The at least one non-leaf node has more than one child node, and the number of bits of the sequence is less than the compression threshold. In some implementations, the path includes multiple paths that are sub-portions of the tree structure.

在步骤1010处,方法1000可以将经压缩的节点数据结构或非压缩的节点数据结构存储在非暂态计算机可读存储器中。At step 1010, method 1000 may store the compressed node data structure or the uncompressed node data structure in a non-transitory computer readable memory.

在一些实施方式中,非暂态计算机可读存储器包括第一非暂态计算机可读存储器和第二非暂态计算机可读存储器。在一些实施方式中,第一非暂态计算机可读存储器是第一QDR SRAM存储器的第一存储体,并且第二非暂态计算机可读存储器是第二QDR SRAM存储器的第二存储体。In some implementations, the non-transitory computer-readable memory includes a first non-transitory computer-readable memory and a second non-transitory computer-readable memory. In some embodiments, the first non-transitory computer readable memory is a first bank of a first QDR SRAM memory and the second non-transitory computer readable memory is a second bank of a second QDR SRAM memory.

在一些实施方式中,经压缩的节点数据结构是第一经压缩的节点数据结构,并且(2)非压缩的节点数据结构是第一非压缩的节点数据结构,其中,第一节点数据结构包括第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,并且第二节点数据结构包括第二经压缩的节点数据结构和第二非压缩的数据结构之一。在一些实施方式中,第一节点数据结构存储在第一非暂态计算机可读存储器中,并指向第二非暂态计算机可读存储器的存储有第二节点数据结构的存储器地址。在一些实施方式中,可以通过第一单次存储器访问从第一非暂态计算机可读存储器访问第一节点数据结构,并且可以通过第二单次存储器访问从第二非暂态计算机可读存储器访问第二节点数据结构。In some embodiments, the compressed node data structure is a first compressed node data structure, and (2) the uncompressed node data structure is a first uncompressed node data structure, wherein the first node data structure includes One of the first compressed node data structure and the first uncompressed node data structure, and the second node data structure includes one of the second compressed node data structure and the second uncompressed data structure. In some embodiments, the first node data structure is stored in the first non-transitory computer readable memory and points to a memory address of the second non-transitory computer readable memory where the second node data structure is stored. In some embodiments, the first node data structure can be accessed from the first non-transitory computer readable memory through a first single memory access, and the first node data structure can be accessed from the second non-transitory computer readable memory through a second single memory access Access the second node data structure.

在一些实施方式中,经压缩的节点数据结构是第一经压缩的节点数据结构,并且非压缩的节点数据结构是第一非压缩的节点数据结构,并且其中,非暂态计算机可读存储器包括第一部分、第二部分和第三部分,第一部分存储第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向存储在第二部分中的第二经压缩的节点数据结构和第二非压缩的节点数据结构之一,并且其中,在更新树结构时,将第三经压缩的节点数据结构和第三非压缩的节点数据结构之一存储在第三部分中,并修改第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,使得第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向第三经压缩的节点数据结构和第三非压缩的节点数据结构之一。In some implementations, the compressed node data structure is a first compressed node data structure, and the uncompressed node data structure is a first uncompressed node data structure, and wherein the non-transitory computer-readable memory includes The first part, the second part and the third part, the first part stores one of the first compressed node data structure and the first uncompressed node data structure, the first compressed node data structure and the first uncompressed node data One of the structures points to one of the second compressed node data structure and the second uncompressed node data structure stored in the second portion, and wherein, when updating the tree structure, the third compressed node data structure and One of the third uncompressed node data structures is stored in the third portion, and one of the first compressed node data structure and the first uncompressed node data structure is modified such that the first compressed node data structure and the first One of an uncompressed node data structure points to one of a third compressed node data structure and a third uncompressed node data structure.

在一些实施方式中,方法1000还包括至少一个操作:(1)基于通过网络分组元数据建立的优先级来传输网络分组,(2)基于网络分组元数据识别要对网络分组执行的服务,(3)基于网络分组元数据测试网络分组以确立网络分组是网络攻击的一部分和/或(4)基于网络分组元数据创建对网络分组的流量的度量。In some embodiments, method 1000 further comprises at least one operation of: (1) transmitting the network packet based on a priority established through the network packet metadata, (2) identifying a service to perform on the network packet based on the network packet metadata, ( 3) Test the network packet based on the network packet metadata to establish that the network packet is part of a network attack and/or (4) create a measure of the traffic of the network packet based on the network packet metadata.

尽管上面描述了示例实施方式,但是取决于特定效果或应用,可以以任何期望的方式组合、划分、省略、重新布置、修改或扩充各个特征和步骤。本领域技术人员将容易想到各种改变、修改和改进。尽管未在本文中明确说明,但是通过本公开内容而明显的这样的改变、修改和改进旨在成为本说明书的一部分,并且旨在落入本公开内容的精神和范围内。因此,前面的描述仅作为示例,而不是限制。仅如以下权利要求书及其等同物中所限定的限制该专利。Although example embodiments are described above, the various features and steps may be combined, divided, omitted, rearranged, modified, or augmented in any desired manner, depending on the particular effect or application. Various changes, modifications, and improvements will readily occur to those skilled in the art. Although not expressly stated herein, such changes, modifications, and improvements apparent from the present disclosure are intended to be part of this specification, and are intended to be within the spirit and scope of the present disclosure. Accordingly, the foregoing description is by way of example only, and not limitation. This patent is limited only as defined in the following claims and their equivalents.

Claims (20)

1. A method of analyzing network packets for preventing attacks on a network by filtering illegitimate network packets while granting legitimate network packet access to the network, the filtering being based on associations between network addresses and data packet classifications, the associations being implemented as a tree structure, the data packet classifications enabling a determination of whether a network packet is legitimate, the method being performed by a computing device, the method comprising:
compressing the tree structure associating the network address with the data packet classification, the tree structure including a plurality of leaf nodes including a plurality of data packet classifications and a plurality of non-leaf nodes including a single bit test node, the step of compressing including:
determining whether to compress a sub-portion of the tree structure that includes a consecutive non-leaf node having a single child node based on a number of consecutive non-leaf nodes having a single child node and a compression threshold;
if a determination is made to compress the sub-portion of the tree structure, then:
generating a compressed sub-portion of the tree structure, the compressed sub-portion of the tree structure comprising a sequence of bits formed by a concatenation of a single bit associated with each of the consecutive non-leaf nodes of the sub-portion of the tree structure, the number of bits of the sequence being equal to or greater than the compression threshold; and
storing the compressed sub-portion of the tree structure in a non-transitory computer-readable memory.
2. The method of claim 1, wherein the number of bits of said sequence of said compressed subparts of said tree structure is determined by: (1) the presence of one of the consecutive non-leaf nodes having a child leaf node, (2) the presence of one of the consecutive non-leaf nodes having more than one child node, or (3) a predefined maximum size of the sequence.
3. The method of claim 1, further comprising:
if a determination is made to not compress the sub-portion of the tree structure, then:
generating an uncompressed subsection of the tree structure, the uncompressed subsection of the tree structure comprising a sequence of bits formed by a concatenation of one or more single bits associated with at least one non-leaf node of the subsection of the tree structure having more than one child node, the number of bits of the sequence being less than the compression threshold; and
storing the non-compressed sub-portion of the tree structure in the non-transitory computer readable memory.
4. The method of claim 1, wherein the compression threshold is 5 bits.
5. The method of claim 1, wherein the predefined maximum size of the sequence is 30 bits.
6. The method of claim 1, wherein the non-transitory computer readable memory comprises a first non-transitory computer readable memory and a second non-transitory computer readable memory.
7. The method of claim 6, wherein (1) the compressed subpart of the tree structure is a first compressed subpart of the tree structure and (2) the uncompressed subpart of the tree structure is a first uncompressed subpart of the tree structure, wherein a first subpart of the tree structure comprises one of the first compressed subpart of the tree structure and the first uncompressed subpart of the tree structure and a second subpart of the tree structure comprises one of a second compressed subpart of the tree structure and a second uncompressed subpart of the tree structure.
8. The method of claim 7, wherein the first sub-portion of the tree structure is stored in the first non-transitory computer readable memory and points to a memory address of the second non-transitory computer readable memory at which the second sub-portion of the tree structure is stored.
9. The method of claim 8, wherein the first sub-portion of the tree structure is accessible from the first non-transitory computer readable memory through a first single memory access and the second sub-portion of the tree structure is accessible from the second non-transitory computer readable memory through a second single memory access.
10. The method of claim 6, wherein the first non-transitory computer readable memory is a first bank of a first QDR SRAM memory and the second non-transitory computer readable memory is a second bank of a second QDR SRAM memory.
11. The method of claim 3, wherein the compressed subpart of the tree structure is a first compressed subpart of the tree structure and the non-compressed subpart of the tree structure is a first non-compressed subpart of the tree structure, and wherein the non-transitory computer readable memory comprises a first portion, a second portion, and a third portion, the first portion storing one of the first compressed subpart of the tree structure and the first non-compressed subpart of the tree structure, one of the first compressed subpart of the tree structure and the first non-compressed subpart of the tree structure pointing to one of a second compressed subpart of the tree structure and a second non-compressed subpart of the tree structure stored in the second portion, and wherein:
upon updating the tree structure, storing one of a third compressed subpart of the tree structure and a third non-compressed subpart of the tree structure in the third portion, and modifying one of the first compressed subpart of the tree structure and the first non-compressed subpart of the tree structure such that one of the first compressed subpart of the tree structure and the first non-compressed subpart of the tree structure points to one of the third compressed subpart of the tree structure and the third non-compressed node data structure.
12. The method of claim 1, further comprising at least one operation of: (1) transmit a network packet based on a priority established by the data packet classification, (2) identify a service to perform on the network packet based on the data packet classification, (3) test the network packet based on the data packet classification to establish that the network packet is part of a network attack and/or (4) create a metric of traffic for the network packet based on the data packet classification.
13. A method of compressing a tree structure that associates network packet signatures with network packet metadata, the tree structure including a plurality of leaf nodes that contain network packet metadata and a plurality of non-leaf nodes that contain single-bit test nodes, the method comprising:
for a sub-portion of the tree structure, establishing a number of consecutive non-leaf nodes having a single child node;
determining whether to compress the sub-portion of the tree structure based on the number of consecutive non-leaf nodes having a single child node and a compression threshold;
if a determination is made to compress the sub-portion of the tree structure, then:
generating a compressed node data structure comprising a path of the sub-portion of the tree structure, the path comprising a sequence of bits formed by a concatenation of single bits associated with each of the consecutive non-leaf nodes of the sub-portion of the tree structure, the number of bits of the sequence being equal to or greater than the compression threshold; and
storing the compressed node data structure in a non-transitory computer readable memory.
14. A system for analyzing network packets for preventing attacks on a network by filtering illegitimate network packets while granting legitimate network packet access to the network, the filtering being based on associations between network addresses and data packet classifications, the associations being implemented as a tree structure, the data packet classifications enabling a determination of whether a network packet is legitimate, the system comprising:
a processor;
a non-transitory computer readable medium comprising control logic that when executed by the processor causes:
compressing the tree structure associating the network address with the data packet classification, the tree structure including a plurality of leaf nodes including a plurality of data packet classifications and a plurality of non-leaf nodes including a single bit test node, the step of compressing including:
determining whether to compress a sub-portion of the tree structure that includes a consecutive non-leaf node having a single child node based on a number of consecutive non-leaf nodes having a single child node and a compression threshold;
if a determination is made to compress the sub-portion of the tree structure, then:
generating a compressed sub-portion of the tree structure, the compressed sub-portion of the tree structure comprising a sequence of bits formed by a concatenation of a single bit associated with each of the consecutive non-leaf nodes of the sub-portion of the tree structure, the number of bits of the sequence being equal to or greater than the compression threshold; and
storing the compressed sub-portion of the tree structure.
15. The system of claim 14, wherein a number of bits of the sequence of the compressed subpart of the tree structure is determined by (1) a presence of one of the consecutive non-leaf nodes having child leaf nodes, (2) a presence of one of the consecutive non-leaf nodes having more than one child node, or (3) a predefined maximum size of the sequence.
16. The system of claim 14, wherein the step of compressing further comprises:
if a determination is made to not compress the sub-portion of the tree structure, then:
generating an uncompressed subsection of the tree structure, the uncompressed subsection of the tree structure comprising a sequence of bits formed by a concatenation of one or more single bits associated with at least one non-leaf node of the subsection of the tree structure having more than one child node, the number of bits of the sequence being less than the compression threshold; and
storing the uncompressed subparts of the tree structure.
17. The system of claim 14, wherein the compression threshold is 5 bits.
18. The system of claim 14, wherein the predefined maximum size of the sequence is 30 bits.
19. The system of claim 14, wherein the non-transitory computer readable memory comprises a first non-transitory computer readable memory and a second non-transitory computer readable memory.
20. The system of claim 19, wherein (1) the compressed subpart of the tree structure is a first compressed subpart of the tree structure and (2) the uncompressed subpart of the tree structure is a first uncompressed subpart of the tree structure, wherein a first subpart of the tree structure comprises one of the first compressed subpart of the tree structure and the first uncompressed subpart of the tree structure and a second subpart of the tree structure comprises one of a second compressed subpart of the tree structure and a second uncompressed subpart of the tree structure.
CN201910791760.1A 2018-08-27 2019-08-26 System and method for operating networked devices Active CN110868388B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18315022.6A EP3618389B1 (en) 2018-08-27 2018-08-27 Systems and methods for operating a networking device
EP18315022.6 2018-08-27

Publications (2)

Publication Number Publication Date
CN110868388A true CN110868388A (en) 2020-03-06
CN110868388B CN110868388B (en) 2023-03-24

Family

ID=64664693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910791760.1A Active CN110868388B (en) 2018-08-27 2019-08-26 System and method for operating networked devices

Country Status (5)

Country Link
US (2) US11283764B2 (en)
EP (1) EP3618389B1 (en)
CN (1) CN110868388B (en)
DK (1) DK3618389T3 (en)
PL (1) PL3618389T3 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878025A (en) * 2021-09-28 2023-03-31 慧与发展有限责任合伙企业 Tree structure node compression priority

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006123036A1 (en) * 2005-05-19 2006-11-23 France Telecom Method for the tree structure representation of a group of digital data streams, the associated tree structure and method and system for the detection of a flood attack
US7536476B1 (en) * 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
US20150127783A1 (en) * 2013-11-04 2015-05-07 Amazon Technologies, Inc. Centralized networking configuration in distributed systems
US20170339187A1 (en) * 2016-05-19 2017-11-23 Nec Europe Ltd. Intrusion detection and prevention system and method for generating detection rules and taking countermeasures
CN107534601A (en) * 2015-05-15 2018-01-02 三菱电机株式会社 Packet filtering device and grouping filter method

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression
US6618755B1 (en) 1999-12-07 2003-09-09 Watchguard Technologies, Inc. Automatically identifying subnetworks in a network
US7331060B1 (en) 2001-09-10 2008-02-12 Xangati, Inc. Dynamic DoS flooding protection
US7277426B2 (en) 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US7324447B1 (en) 2002-09-30 2008-01-29 Packeteer, Inc. Methods, apparatuses and systems facilitating concurrent classification and control of tunneled and non-tunneled network traffic
US7571242B2 (en) 2003-10-24 2009-08-04 Alcatel Lucent Method for accelerated packet processing
US7411957B2 (en) 2004-03-26 2008-08-12 Cisco Technology, Inc. Hardware filtering support for denial-of-service attacks
US7397766B2 (en) 2004-03-31 2008-07-08 Lucent Technologies Inc. High-speed traffic measurement and analysis methodologies and protocols
US7366728B2 (en) 2004-04-27 2008-04-29 International Business Machines Corporation System for compressing a search tree structure used in rule classification
US8203972B2 (en) * 2004-06-30 2012-06-19 Sap Ag Method and system for compressing a tree
US7933985B2 (en) 2004-08-13 2011-04-26 Sipera Systems, Inc. System and method for detecting and preventing denial of service attacks in a communications system
US8161549B2 (en) 2005-11-17 2012-04-17 Patrik Lahti Method for defending against denial-of-service attack on the IPV6 neighbor cache
US8046496B1 (en) 2007-12-12 2011-10-25 Narus, Inc. System and method for network data compression
SE532426C2 (en) 2008-05-26 2010-01-19 Oricane Ab Method for data packet classification in a data communication network
US20110138463A1 (en) 2009-12-07 2011-06-09 Electronics And Telecommunications Research Institute Method and system for ddos traffic detection and traffic mitigation using flow statistics
US20130155918A1 (en) 2011-12-20 2013-06-20 Nokia Siemens Networks Oy Techniques To Enhance Header Compression Efficiency And Enhance Mobile Node Security
US9171030B1 (en) 2012-01-09 2015-10-27 Marvell Israel (M.I.S.L.) Ltd. Exact match lookup in network switch devices
US8792494B2 (en) 2012-09-14 2014-07-29 International Business Machines Corporation Facilitating insertion of device MAC addresses into a forwarding database
US9245626B2 (en) 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment
GB201302402D0 (en) 2013-02-11 2013-03-27 Telecom Ltd Q Communication apparatus
US9967187B2 (en) 2013-04-11 2018-05-08 Marvell Israel (M.I.S.L) Ltd. Exact match lookup with variable key sizes
US9356818B2 (en) * 2013-10-30 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Method and computing device for packet classification
JP6463898B2 (en) 2014-03-13 2019-02-06 株式会社東芝 Communication apparatus, information processing apparatus, communication method, and communication program
US9769290B2 (en) 2014-05-23 2017-09-19 Intel Corporation Packet flow classification
US10587516B1 (en) 2014-07-15 2020-03-10 Marvell Israel (M.I.S.L) Ltd. Hash lookup table entry management in a network device
US10277511B2 (en) 2015-12-16 2019-04-30 Nxp Usa, Inc. Hash-based packet classification with multiple algorithms at a network processor
US10616271B2 (en) 2017-01-03 2020-04-07 Microsemi Frequency And Time Corporation System and method for mitigating distributed denial of service attacks
US10511445B1 (en) * 2017-01-05 2019-12-17 Amazon Technologies, Inc. Signature compression for hash-based signature schemes
US11310158B2 (en) 2017-12-08 2022-04-19 Corsa Technology Inc. Packet classification using fingerprint hash table
US10884939B2 (en) 2018-06-11 2021-01-05 Amazon Technologies, Inc. Cache pre-fetching using cyclic buffer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536476B1 (en) * 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
WO2006123036A1 (en) * 2005-05-19 2006-11-23 France Telecom Method for the tree structure representation of a group of digital data streams, the associated tree structure and method and system for the detection of a flood attack
US20150127783A1 (en) * 2013-11-04 2015-05-07 Amazon Technologies, Inc. Centralized networking configuration in distributed systems
CN107534601A (en) * 2015-05-15 2018-01-02 三菱电机株式会社 Packet filtering device and grouping filter method
US20170339187A1 (en) * 2016-05-19 2017-11-23 Nec Europe Ltd. Intrusion detection and prevention system and method for generating detection rules and taking countermeasures

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878025A (en) * 2021-09-28 2023-03-31 慧与发展有限责任合伙企业 Tree structure node compression priority
CN115878025B (en) * 2021-09-28 2024-07-16 慧与发展有限责任合伙企业 Tree structure node compression priority

Also Published As

Publication number Publication date
CN110868388B (en) 2023-03-24
EP3618389B1 (en) 2020-10-07
US20220294764A1 (en) 2022-09-15
US11627110B2 (en) 2023-04-11
US11283764B2 (en) 2022-03-22
DK3618389T3 (en) 2020-11-09
EP3618389A1 (en) 2020-03-04
PL3618389T3 (en) 2021-04-06
US20200067881A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
US10735379B2 (en) Hybrid hardware-software distributed threat analysis
US9736115B2 (en) Firewall packet filtering
US9344366B2 (en) System and method for rule matching in a processor
CN101577721A (en) Method for splitting Broome filter by indexes and inserting, deleting and inquiring methods thereof
JP2009510815A (en) Method and system for reassembling packets before search
US8365045B2 (en) Flow based data packet processing
CN110868387B (en) System and method for operating a networked device
CN108282454B (en) Apparatus, system, and method for accelerating security checks using inline pattern matching
US10681007B2 (en) String search and matching for gate functionality
CN112445771A (en) Data processing method, device and equipment of network flow and storage medium
WO2024099078A1 (en) Method for detecting attack traffic, and related device
KR102014741B1 (en) Matching method of high speed snort rule and yara rule based on fpga
CN110868388B (en) System and method for operating networked devices
CN115865843A (en) Rule storage method, message processing method, device, electronic equipment and medium
US11805050B2 (en) Systems and methods to filter out noisy application signatures to improve precision of first packet application classification
TWI763360B (en) Method of filtering packets in network switch and related filter
CN120850290B (en) Multi-feature code matching method, device, electronic equipment, medium and program product
US20250030784A1 (en) Method and system for high-volume compression of ipv4 unicast addresses
CN119342033B (en) Layer 2 protocol transparent transmission method, device, equipment and storage medium based on access control list
US20250267124A1 (en) System and method for utilization of firewall policies for network security
EP3304852B1 (en) String search and matching for gate functionality
CN116781303A (en) A DDoS attack protection method and related devices
CN116738329A (en) A malicious sample classification method, device, electronic device and storage medium
CN117857098A (en) SYN Flood attack defense system based on radix tree
CN116032592A (en) Server network security detection method, device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant