CN110868388B - 用于操作联网设备的系统和方法 - Google Patents

用于操作联网设备的系统和方法 Download PDF

Info

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

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

Description

用于操作联网设备的系统和方法
交叉引用
本申请要求于2018年8月27日提交的欧洲专利申请第1 831 5022.6号的优先权。
技术领域
本文描述的实施方式大体上涉及用于操作联网设备的系统和方法,并且更具体地,涉及用于生成和/或操作将网络数据签名与网络分组元数据相关联的数据结构的系统和方法。
背景技术
连接至因特网的基础设施例如数据中心可能遭受旨在渗透或损害其操作的攻击。例如,包括大量僵尸程序的僵尸网络可以用于引起对数据中心的分布式拒绝服务(DDoS)攻击。DDoS攻击可能使数据中心充斥着过多的请求。在这样的攻击下,数据中心处理和通信能力可能会变得过载,以至于暂时无法向合法用户和客户端提供服务。在至少一个事件中,攻击可以对数据中心施加每秒一(1)太比特的负荷。
因此,需要采取缓解措施,以降低潜在攻击的负面影响。这样的缓解措施可以包括过滤非法网络分组同时准许合法网络分组访问数据中心的网络。鉴于大量网络分组从因特网路由到数据中心,即使在数据中心的规模相对较小的情况下,从合法网络分组中过滤非法网络分组可能需要重要的处理资源,并且可能影响要呈现给合法用户和数据中心的客户端的服务质量(例如,提供托管在数据中心处的给定服务时的时延)。
虽然已经研究了旨在降低缓解措施的负面影响的方法,但仍然需要改进。
背景技术部分中讨论的主题不应仅仅因为是在背景技术部分中提及而被认为是现有技术。类似地,在背景技术部分中提到的问题或与背景技术部分的主题关联的问题不应被认为先前在现有技术中已被认识到。背景技术部分中的主题仅表示不同的方法。
发明内容
以下概述仅出于说明性目的,并不旨在限制或约束详细描述。以下概述仅以简化形式呈现各种所描述的方面作为下面提供的更详细描述的序言。
在某些实例中,过滤和/或分类网络分组可能需要访问将网络分组签名与网络分组元数据相关联的数据结构。
在一些实例中,网络分组签名可以是与发送主机或目的地主机相关联的网络地址。作为示例但不限于此,网络分组签名可以是与网络分组相关联的因特网协议(IP)地址,例如因特网协议版本4(IPv4)地址或因特网协议版本6(IPv6)地址。在另一示例中,网络分组签名可以是IP地址的一部分(例如,IP地址的网络部分或主机部分)。在其他示例中,可以基于IP地址生成网络分组签名。在一些实施方式中,网络分组签名可以包括来自以下列表的一个或更多个元素:该列表包括源IP地址、目的地IP地址、IP协议(例如TCP或UDP)、源TCP或UDP端口、目的地TCP或UDP端口。在一些其他实施方式中,网络分组签名可以包括与一些元数据(例如,简档标识符和/或计数器标识符)相关联的源IP地址和/或目的地IP地址。关于网络分组签名可以包含什么的变型对于本技术领域的技术人员来说将变得明显,并且不应该被解释为是限制性的。
在一些实例中,网络分组元数据可以是与一个或更多个网络分组签名相关联或要与一个或更多个网络分组签名相关联的信息。作为示例,网络分组元数据可以建立数据分组分类和/或过滤规则。这样的数据分组分类可以使得能够确定与网络分组签名相关联的网络分组是否合法。分类和/或过滤规则可以确定应该如何处理数据分组和/或应该执行什么服务。例如,过滤规则可以用于测试从外部计算设备进入数据中心的网络的网络分组,以确保可以拦截进入数据中心的网络的企图。替选过滤规则也可以用于基于优先级传输流量(traffic)。即使在来自第二主机的网络分组可能被丢弃的情况下,也可以传输来自第一主机的网络分组,因为来自第一主机的网络分组具有更高的优先级。在一些实施方式中,网络分组元数据还可以被称为网络分组简档标签。在一些实施方式中,网络分组元数据还可以被称为网络分组标签(或标签)。关于网络分组元数据可以包含什么的变型对于本技术领域的技术人员来说将变得明显,并且不应该被解释为是限制性的。
在某些实例中,将网络分组签名与网络分组元数据相关联的数据结构可以被实现为树结构。树结构可以包括非叶节点和叶节点。非叶节点和叶节点可以包括网络分组元数据(例如,标签)。从树结构的根延伸到树结构的叶(同时穿过一个或更多个非叶节点)的路径可以定义前缀。可以通过将网络分组签名与来自树结构的一个或更多个前缀进行比较来执行对网络分组的过滤和/或分类。然后,可以将与对应于网络分组签名的最长前缀相关联的网络分组元数据确定为要与网络分组数据签名相关联。
在某些方法下,树结构是二叉树,其中逐个测试网络分组签名的每个比特(例如,IP地址的每个比特)。在这样的朴素方法下,可能需要最多32个步骤来过滤和/或分类IPv4地址(即,32位的地址),并且可能需要最多128个步骤来过滤和/或分类IPv6地址(即,128位的地址)。每个步骤均需要存储器访问,从而实现最大过滤和/或分类借记(debit)。结果是,需要压缩树结构以减少所需的存储器访问次数。
在一个方面,本技术的各种实现方式提供了一种分析网络分组以用于通过过滤非法网络分组同时准许合法网络分组访问网络来防止对网络的攻击的方法,过滤基于网络地址与数据分组分类之间的关联,该关联被实现为树结构,数据分组分类使得能够确定网络分组是否合法,该方法由计算设备执行,该方法包括:
压缩将网络地址与数据分组分类相关联的树结构,树结构包括包含数据分组分类的多个叶节点和单比特测试节点的多个非叶节点,压缩的步骤包括:
基于具有单个子节点的连续非叶节点的数量和压缩阈值,确定是否要压缩树结构的包括具有单个子节点的连续非叶节点的子部分;
如果做出要压缩树结构的子部分的确定,则:
生成树结构的经压缩子部分,树结构的经压缩子部分包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值;以及
将树结构的经压缩子部分存储在非暂态计算机可读存储器中。
在一个方面,本技术的各种实现方式提供了一种压缩将网络分组签名与网络分组元数据相关联的树结构的方法,该树结构包括包含网络分组元数据的多个叶节点和单比特测试节点的多个非叶节点,该方法包括:
对于树结构的子部分,确立具有单个子节点的连续非叶节点的数量;
基于具有单个子节点的连续非叶节点的数量和压缩阈值,确定是否要压缩树结构的子部分;
如果做出要压缩树结构的子部分的确定,则:
生成经压缩的节点数据结构,经压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值;以及
将经压缩的节点数据结构存储在非暂态计算机可读存储器中。
在一些实施方式中,经压缩的节点数据结构的序列的比特数通过(1)具有子叶节点的连续非叶节点之一的存在、(2)具有多于一个子节点的连续非叶节点之一的存在或者(3)该序列的预定义最大大小来确定。
在一些实施方式中,如果做出不压缩树结构的子部分的确定,则:
生成非压缩的节点数据结构,非压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述至少一个非叶节点具有多于一个子节点,该序列的比特数小于压缩阈值;以及
将非压缩的节点数据结构存储在非暂态计算机可读存储器中。
在一些实施方式中,压缩阈值是5比特。在一些实施方式中,序列的预定义最大大小是30比特。
在一些实施方式中,非暂态计算机可读存储器包括第一非暂态计算机可读存储器和第二非暂态计算机可读存储器。在一些实施方式中,(1)经压缩的节点数据结构是第一经压缩的节点数据结构,并且(2)非压缩的节点数据结构是第一非压缩的节点数据结构,其中,第一节点数据结构包括第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,并且第二节点数据结构包括第二经压缩的节点数据结构和第二非压缩的数据结构之一。
在一些实施方式中,第一节点数据结构存储在第一非暂态计算机可读存储器中,并指向第二非暂态计算机可读存储器的存储有第二节点数据结构的存储器地址。
在一些实施方式中,可以通过第一单次存储器访问从第一非暂态计算机可读存储器访问第一节点数据结构,并且可以通过第二单次存储器访问从第二非暂态计算机可读存储器访问第二节点数据结构。
在一些实施方式中,第一非暂态计算机可读存储器是第一QDR SRAM存储器的第一存储体,并且第二非暂态计算机可读存储器是第二QDR SRAM存储器的第二存储体。
在一些实施方式中,经压缩的节点数据结构是第一经压缩的节点数据结构,并且非压缩的节点数据结构是第一非压缩的节点数据结构,并且其中,非暂态计算机可读存储器包括第一部分、第二部分和第三部分,第一部分存储第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向存储在第二部分中的第二经压缩的节点数据结构和第二非压缩的节点数据结构之一,并且其中:
在更新树结构时,将第三经压缩的节点数据结构和第三非压缩的节点数据结构之一存储在第三部分中,并且修改第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,使得第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向第三经压缩的节点数据结构和第三非压缩的节点数据结构之一。
在一些实施方式中,该方法还包括至少一个操作:(1)基于通过网络分组元数据建立的优先级来传输网络分组,(2)基于网络分组元数据识别要对网络分组执行的服务,(3)基于网络分组元数据测试网络分组以确立网络分组是网络攻击的一部分和/或(4)基于网络分组元数据创建对网络分组的流量的度量。
在另一方面,本技术的各种实现方式提供了一种被配置成执行以上段落中描述的方法的计算机实现的系统。
在另一方面,本技术的各种实现方式提供了一种包括计算机可执行指令的非暂态计算机可读介质,所述计算机可执行指令使系统执行以上段落中描述的方法。
在本说明书的上下文中,除非另有明确规定,否则联网设备可以指代但不限于“路由器”、“交换机”、“网关”、“系统”、“基于计算机的系统”和/或其适合当前相关任务的任何组合。
在本说明书的上下文中,除非另有明确规定,否则表述“计算机可读介质”和“存储器”旨在包括任何性质和种类的介质,其非限制性示例包括RAM、ROM、盘(CD-ROM、DVD、软盘、硬盘驱动器等)、USB密钥、闪存卡、固态驱动器和磁带驱动器。仍然在本说明书的上下文中,“一种”计算机可读介质和“该”计算机可读介质不应被解释为是同一计算机可读介质。与此相对,在任何合适的时候,“一种”计算机可读介质和“该”计算机可读介质也可以被解释为第一计算机可读介质和第二计算机可读介质。
在本说明书的上下文中,除非另有明确规定,否则词语“第一”、“第二”、“第三”等被用作形容词,仅为了使得能够将其修饰的名词彼此区分的目的,而不是为了描述这些名词之间的任何特定关系的目的。
本技术的实现方式各自具有上述目的和/或方面中的至少一者,但不一定具有所有这些目的和/或方面。应当理解,由于试图获得上述目的而产生的本技术的一些方面可能不满足该目的和/或可能满足本文未具体叙述的其他目的。
根据以下描述、附图和所附权利要求书,本技术的实现方式的附加和/或替选特征、方面和优势将变得明显。
附图说明
参考以下描述、权利要求书和附图,将更好地理解本公开内容的这些和其他特征、方面和优点。本公开内容通过示例的方式示出,并且不受附图的限制,在附图中相似的附图标记表示相似的元件。
图1A和图1B示出了可以用于实现本文描述的任何方法的示例联网设备;
图2示出了根据本技术的实施方式的联网设备及其联网环境的图;
图3示出了根据本技术的实施方式的替选联网设备及其联网环境的图;
图4至图7示出了根据本技术的实施方式的树结构的图;
图8示出了根据本技术的实施方式的节点数据结构的图;
图9示出了根据本技术的实施方式的存储在存储器的多个存储体中的数据结构的图;以及
图10示出了根据本技术的实施方式的压缩树结构的方法的第一流程图。
具体实施方式
在以下对各个说明性实施方式的描述中,参考附图,附图构成其一部分,并且在附图中通过图示的方式示出了可以实践本公开内容的各方面的各种实施方式。应当理解,在不脱离本公开内容的范围的情况下,可以利用其他实施方式并且可以进行结构或功能上的改变。
设备的网络例如容纳在数据中心中的网络可以包括各种不同的联网硬件,例如路由器、交换机、多层交换机、线缆和/或其他联网硬件。联网设备可以服务各种计算设备,例如服务器。联网设备可以在过滤和/或分类网络分组的情况下操作所依赖的数据结构。
图1A示出了根据本技术的实施方式的计算环境100的图。在一些实施方式中,计算环境100可以由传统的个人计算机、服务器、路由器、交换机、控制器和/或电子设备(例如,服务器、控制器单元、控制设备、监视设备等)中的任一个和/或其适合于当前相关任务的任何组合来实现。在一些实施方式中,计算环境100包括各种硬件部件,各种硬件部件包括由处理器110共同表示的一个或更多个单核或多核处理器、固态驱动器120、随机存取存储器(RAM)存储器130、专用存储器170和输入/输出接口150。计算环境100可以是专门设计用于在数据中心环境中操作的计算机。计算环境100可以是通用计算机系统。
在一些实施方式中,计算环境100还可以是上面列出的系统之一的子系统。在一些其他实施方式中,计算环境100可以是“现成的”通用计算机系统。在一些实施方式中,计算环境100还可以分布在多个系统中。计算环境100还可以专门用于实现本技术。如本技术领域的技术人员可以理解的,可以在不脱离本技术的范围的情况下设想关于如何实现计算环境100的多种变型。
计算环境100的各个部件之间的通信可以通过与各个硬件部件电耦接的一个或更多个内部和/或外部总线160(例如,PCI总线、通用串行总线、IEEE 1394“火线(Firewire)”总线、SCSI总线、串行ATA总线、ARINC总线等)实现。
输入/输出接口150可以提供诸如有线或无线访问的联网能力。作为示例,输入/输出接口150可以包括联网接口,例如但不限于一个或更多个网络端口、一个或更多个网络套接字、一个或更多个网络接口控制器等。可以如何实现联网接口的多个示例对于本技术领域的技术人员而言将变得明显。例如但不限于此,联网接口可以实现特定物理层和数据链路层标准,例如以太网、光纤通道、Wi-Fi或令牌环。特定物理层和数据链路层可以为完整网络协议栈提供基础,从而使得能够在同一局域网(LAN)上的计算机小组之间进行通信并通过可路由协议例如因特网协议(IP)进行大规模网络通信。
根据本技术的实现方式,固态驱动器120存储适于被加载到随机存取存储器130中并且由处理器110执行的程序指令。例如,程序指令可以是库或应用的一部分。尽管被示为固态驱动器120,但是可以使用任何类型的存储器例如硬盘、光盘和/或可移除存储介质来代替固态驱动器120。
在本技术的一些实施方式中,处理器110可以是通用处理器例如中央处理单元(CPU),或者专用于特定目的的处理器例如数字信号处理器(DSP)。在一些实施方式中,处理器110还可以依赖于专用于某些给定任务例如执行以下段落中阐述的方法1000的加速器112。在一些实施方式中,处理器110或加速器112可以被实现为一个或更多个现场可编程门阵列(FPGA)。此外,术语“处理器”的明确使用不应被解释为排外地提及能够执行软件的硬件,并且可以隐含地包括但不限于专用集成电路(ASIC)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储装置。还可以包括传统的和/或定制的其他硬件。
在本技术的一些实施方式中,RAM 130可以包括高性能存储器,例如但不限于四倍数据速率(QDR)SRAM存储器。在一些实施方式中,RAM 130可以包括多个QDR SRAM存储器。另外,在一些实施方式中,还可以依赖于专用存储器170。这样的专用存储器170可以是不同的存储器单元或集成到另一部件。在一些实施方式中,专用存储器170是FPGA处理单元的一部分(例如,FPGA的寄存器)。在一些实施方式中,专用存储器170被实现为RAM 130的专用部分。还可以在不脱离本技术的范围的情况下设想其他变型。
图1B示出了根据本技术的实施方式的替选计算环境190的图。在一些实施方式中,计算环境190与计算环境100可以由相似的部件来实现(相似的部件由相同的附图标记指代)。计算环境190包括专用FPGA卡180,专用FPGA卡180可以通过输入/输出接口150或者直接通过内部和/或外部总线160连接至计算环境的其他部件。在一些实施方式中,FPGA卡180包括FPGA芯片组182(其可以包括也被称为“专用存储器”的寄存器)和专用RAM存储器,例如统称为QDR SRAM存储器184的四个不同的QDR SRAM存储器。在一些实施方式中,FPGA卡也可以包括实现至网络的连接的一个或更多个输入/输出接口。
在本文中可以将软件模块或仅仅暗示是软件的模块表示为流程图元素或指示处理步骤的执行和/或文本描述的其他元素的任何组合。这样的模块可以由明确地或隐含地示出的硬件来执行。此外,应该理解,模块可以包括例如但不限于提供所需能力的计算机程序逻辑、计算机程序指令、软件、堆栈、固件、硬件电路或其组合。
图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以及路由器可以实现根据本技术的实施方式的将网络分组签名与网络分组元数据相关联的树结构。
图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。
作为示例但不限于此,也被称为预防火墙的第一子系统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限制等的检测。
在一些实施方式中,第四子系统308生成和/或实现根据本技术的实施方式的将网络分组签名与网络分组元数据相关联的树结构。如可以理解的,树结构可以同等地在不同的联网设备上生成和/或实现,或者甚至以分布式方式在多个联网设备上进行操作(例如,通过子系统305至308中的一个或更多个实现)。在一些实施方式中,根据本技术的实施方式的生成和/或实现将网络分组签名与网络分组元数据相关联的树结构的联网设备可以包括包含FPGA卡的一个或更多个虚拟路由器(vRouter)。适于联网设备的配置的示例可以是但不限于如下:
处理器 2x1697v4
RAM 64GB DD4 ECC
网络卡 2x ConnectX-4 2x 100Gbps
FPGA XUPP3R,4x 100Gbps
也可以使用其他配置,并且对于本技术领域的技术人员来说其他配置将易于变得明显。
现在转到图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”相关联。
每个非叶节点是使得能够指导对整个树结构的浏览的单比特测试节点。非叶节点可以与一个子节点或两个子节点相关联。在非叶节点与两个子节点相关联的实例中,比特值可以确定在树结构的下一级处应该考虑两个子节点中的哪一个。作为示例,如果测试的比特值是1,则非叶节点P10可以指向P12/L8,并且如果测试的比特值是0,则非叶节点P10可以指向P11/L9。在一些实施方式中,即使非叶节点仅有一个子节点,也要测试比特值。在一些实施方式中,比特值的存在确定遍历整个树结构的查找是否应该继续。
每个叶节点与网络分组元数据(例如,标签)相关联,例如,叶节点P3/L3、P1/L1、P11/19。在从根(例如,根P0/L0)浏览整个树结构时,到达叶节点致使浏览结束并且确定网络分组签名可以与叶节点的元数据相关联。在叶节点与标签相关联的一些实施方式中,所选标签是最后匹配节点之一,从而避免必须为每个可能的终止生成一个叶。
作为示例,遍历树结构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”来定义。
如图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。
在多个方面中,本技术提供了压缩树结构例如树结构400的方法。压缩树结构的方法针对树结构的给定子部分确立具有单个子节点的连续非叶节点的数量。在一些实施方式中,具有单个子节点的非叶节点可以被称为不具有分叉的非叶节点,换句话说,它仅具有一个分支。作为示例,如子部分402、502、504、602、604和700所示,子部分可以由树结构的级数定义。子部分可以是单个分支或定义子树结构的分支的组合。在实施方式中,级数可以由比特数来定义。在一些实施方式中,级数可以被定义为非叶节点和/或叶节点的数量。作为示例,子部分可以被定义为树结构的30级(即,30比特)。在不脱离本技术的范围的情况下可以设想变型,作为示例,级数可以多于或少于30并且可以取决于某些约束(例如,存储器结构)。
在一些实施方式中,压缩树结构的方法确定是否要压缩树结构的子部分。在一些实施方式中,该确定基于具有单个子节点的连续非叶节点的数量。在一些实施方式中,压缩阈值可以是6比特,使得将包括多于5个具有单个子节点的连续非叶节点的子部分确定为要被压缩。在不脱离本技术的范围的情况下可以设想变型,作为示例,压缩阈值可以大于或小于5并且可以取决于某些约束(例如,存储器结构)。作为示例,子部分402包括多个非叶节点和多个叶节点,然而,子部分402不包括至少5个仅具有一个子节点的连续非叶节点(例如,非叶节点412和414各自均具有两个子节点)。结果是,该子部分被确定为不被压缩。作为另一示例,子部分504包括10个仅具有一个子节点的连续非叶节点(即,0011111100),则可以做出可以压缩子部分504的确定。
遵循类似的逻辑,可以做出如下确定:将不压缩子部分502,将压缩子部分602(尽管未示出,但子部分602包括32个仅具有一个子节点的连续非叶节点),将不压缩子部分604(仅有3个仅具有一个子节点的非叶节点)和子部分700(一个非叶节点具有两个子节点)。在一些实施方式中,可以定义仅具有一个子节点的连续非叶节点的序列的最大大小。在上述示例中,序列的最大大小是30(例如,30比特)。结果是,即使组合在一起的子部分602和604将产生35个仅具有一个子节点的连续非叶节点,但是子部分602在30处被切断,从而使子部分604不被压缩(因为子部分604只包括5个非叶节点)。如本技术领域的技术人员可以理解,在不脱离本技术的范围的情况下,可以设想压缩阈值和/或序列的最大大小的多种变型。
如果该方法确定要压缩所确定的树结构的给定子部分,则生成经压缩的节点数据结构。如果该方法确定不压缩所确定的树结构的给定子部分,则生成非压缩的节点数据结构。
在图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比特。
对于节点数据结构包含经压缩的节点数据结构810的实例,节点数据结构还包括第四块812“分支长度”,第四块812“分支长度”包括指示仅具有一个子节点的连续非叶节点的数量的5比特。在一些实施方式中,连续非叶节点的最大数量是30。节点数据结构还包括第五块814“分支路径”,第五块814“分支路径”包括指示从当前节点到达下一节点要遵循的路径的30比特。在一些实施方式中,路径包括由与树结构的经压缩子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列(例如,“10111100001000001”)。在一些实施方式中,压缩阈值是5,意味着序列的比特数等于或大于6。如果比特数等于或小于5,则生成非压缩的节点数据结构。在一些其他实施方式中,压缩阈值是3,意味着序列的比特数等于或大于4。如果比特数等于或小于3,则生成非压缩的节点数据结构。因此,可以在不脱离本技术的范围的情况下设想压缩阈值的多个值。
在一些实施方式中,经压缩的节点数据结构的序列的比特数通过具有子叶节点的非叶节点的存在来确定(例如,树结构在子叶节点处结束)。在一些实施方式中,经压缩的节点数据结构的序列的比特数通过具有多于一个子节点(例如,两个子节点)的非叶节点的存在来确定,从而识别需要创建附加节点数据结构(其可以是经压缩的或非压缩的)的树结构中的分叉。在一些实施方式中,经压缩的节点数据结构的序列的比特数是序列的预定义最大大小(例如,30,以满足节点数据结构的格式约束)。
对于节点数据结构包含非压缩的节点数据结构820的实例,节点数据结构还包括第六块822“填充比特”,第六块822“填充比特”包括在该配置中可能是无用比特的3比特(即,它们“填充”数据结构以使其具有恒定的大小例如72比特)。节点数据结构还包括第七块824“停止值”,第七块824“停止值”包括可以指示节点是非叶节点(例如,不是树的末端)还是叶节点(例如,树的末端)的32比特。在一些实施方式中,第七块824指示树结构的子部分的路径。该路径包括由与树结构的子部分的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述至少一个非叶节点具有多于一个子节点,序列的比特数小于压缩阈值(例如,“1011”)。在一些实施方式中,压缩阈值是5,意味着序列的比特数不大于5。如果比特数大于5,则生成经压缩的节点数据结构。
在一些实施方式中,非压缩的节点可以检查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比特路径。
返回压缩树结构的方法,如果该方法确定要压缩树结构的给定子部分,则生成经压缩的节点数据结构(例如,经压缩的节点数据结构810)。如果该方法确定不压缩所确定的树结构的给定子部分,则生成非压缩的节点数据结构(例如,非压缩的节点数据结构820)。根据本技术,树结构400的子部分504可以由经压缩的节点数据结构P2/L2表示,经压缩的节点数据结构P2/L2包括由10比特序列“0011111100”定义的路径。
现在转向图9,示出了包括四个存储器存储体(“存储体0”、“存储体1”、“存储体2”和“存储体3”)的非暂态计算机可读存储器的示例。在一些实施方式中,所有四个存储器是同一非暂态计算机可读存储器的一部分。在一些其他实施方式中,四个存储器中的每一个定义了不同的非暂态计算机可读存储器。在一些实施方式中,四个存储器存储体可以被称为第一非暂态计算机可读存储器、第二非暂态计算机可读存储器、第三非暂态计算机可读存储器和第四非暂态计算机可读存储器。在一些实施方式中,第一非暂态计算机可读存储器、第二非暂态计算机可读存储器、第三非暂态计算机可读存储器和第四非暂态计算机可读存储器中的每一个被实现为不同的QDR SRAM存储器。在这样的实施方式中,存储体0将与第一QDR SRAM存储器相关联,存储体1将与第二QDR SRAM存储器相关联,存储体2将与第三QDR SRAM存储器相关联,并且存储体3将与第四QDR SRAM存储器相关联。
根据本技术的实施方式并结合图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的高性能存储器的情况下更加普遍的有益),同时改进了借记。
在一些实施方式中,每一个存储体被划分成三个部分。第一部分存储树的第一步骤的节点,第二部分存储树的后续步骤的节点,并且第三部分保持未使用。当需要更新树结构时,在存储体的第三部分中引入新的节点数据结构,然后更新存储在第一部分中的节点数据结构中包含的存储器地址,使得其现在指向存储在第三部分中的新创建的节点数据结构。如果需要另外的更新,则在存储体中的一个存储体的第二部分中引入新的节点数据结构,然后更新存储在第一部分中的节点数据结构中包含的存储器地址,使得其现在指向存储在第二部分中的新创建的节点数据结构。因此,该方法可以通过在第二部分和第三部分中进行交替创建来创建新节点数据结构。该方法可以使得能够更新树结构,同时提供对树结构的持续访问。
在一些实施方式中,如果非叶节点指向要被移除的无用叶节点,则可以通过用与标签相关联的值替换指向叶节点的指针将标签(例如,网络分组元数据)直接存储在与非叶节点相关联的节点数据结构中。该方法可以使得能够访问标签的值,而不需要访问非叶节点将指向的另一节点数据结构的额外步骤。
现在转向图10,公开了根据本技术的一个或更多个说明性方面的用于压缩将网络分组签名与网络分组元数据相关联的树结构的方法1000的流程图。在一个或更多个实施方式中,方法1000或者其一个或更多个步骤可以由一个或更多个计算设备或实体执行。例如,方法1000的各部分可以由联网设备100或190的部件执行。方法1000或者其一个或更多个步骤可以以存储在计算机可读介质例如非暂态计算机可读介质中的计算机可执行指令来实施。可以省略或按顺序改变流程图中的一些步骤或步骤中的一部分。
在一个或更多个实施方式中,将网络分组签名与网络分组元数据相关联的树结构包括包含网络分组元数据的多个叶节点和单比特测试节点的多个非叶节点。
在步骤1002处,对于树结构的子部分,该方法确立具有单个子节点的连续非叶节点的数量。然后在步骤1004处,方法1000基于具有单个子节点的连续非叶节点的数量和压缩阈值确定是否要压缩树结构的子部分。如果做出要压缩树结构的子部分的确定,则方法1000进行到步骤1006。如果做出不压缩树结构的子部分的确定,则方法1000进行到步骤1008。
在步骤1006处,生成经压缩的节点数据结构。经压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,该序列的比特数等于或大于压缩阈值。在一些实施方式中,经压缩的节点数据结构的序列的比特数通过(1)具有子叶节点的连续非叶节点之一的存在、(2)具有多于一个子节点的连续非叶节点之一的存在或者(3)该序列的预定义最大大小来确定。在一些实施方式中,压缩阈值是5比特。在一些实施方式中,序列的预定义最大大小是30比特。
在步骤1008处,生成非压缩的节点数据结构。非压缩的节点数据结构包括树结构的子部分的路径,该路径包括由与树结构的子部分的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述至少一个非叶节点具有多于一个子节点,该序列的比特数小于压缩阈值。在一些实施方式中,路径包括树结构的子部分的多个路径。
在步骤1010处,方法1000可以将经压缩的节点数据结构或非压缩的节点数据结构存储在非暂态计算机可读存储器中。
在一些实施方式中,非暂态计算机可读存储器包括第一非暂态计算机可读存储器和第二非暂态计算机可读存储器。在一些实施方式中,第一非暂态计算机可读存储器是第一QDR SRAM存储器的第一存储体,并且第二非暂态计算机可读存储器是第二QDR SRAM存储器的第二存储体。
在一些实施方式中,经压缩的节点数据结构是第一经压缩的节点数据结构,并且(2)非压缩的节点数据结构是第一非压缩的节点数据结构,其中,第一节点数据结构包括第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,并且第二节点数据结构包括第二经压缩的节点数据结构和第二非压缩的数据结构之一。在一些实施方式中,第一节点数据结构存储在第一非暂态计算机可读存储器中,并指向第二非暂态计算机可读存储器的存储有第二节点数据结构的存储器地址。在一些实施方式中,可以通过第一单次存储器访问从第一非暂态计算机可读存储器访问第一节点数据结构,并且可以通过第二单次存储器访问从第二非暂态计算机可读存储器访问第二节点数据结构。
在一些实施方式中,经压缩的节点数据结构是第一经压缩的节点数据结构,并且非压缩的节点数据结构是第一非压缩的节点数据结构,并且其中,非暂态计算机可读存储器包括第一部分、第二部分和第三部分,第一部分存储第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向存储在第二部分中的第二经压缩的节点数据结构和第二非压缩的节点数据结构之一,并且其中,在更新树结构时,将第三经压缩的节点数据结构和第三非压缩的节点数据结构之一存储在第三部分中,并修改第一经压缩的节点数据结构和第一非压缩的节点数据结构之一,使得第一经压缩的节点数据结构和第一非压缩的节点数据结构之一指向第三经压缩的节点数据结构和第三非压缩的节点数据结构之一。
在一些实施方式中,方法1000还包括至少一个操作:(1)基于通过网络分组元数据建立的优先级来传输网络分组,(2)基于网络分组元数据识别要对网络分组执行的服务,(3)基于网络分组元数据测试网络分组以确立网络分组是网络攻击的一部分和/或(4)基于网络分组元数据创建对网络分组的流量的度量。
尽管上面描述了示例实施方式,但是取决于特定效果或应用,可以以任何期望的方式组合、划分、省略、重新布置、修改或扩充各个特征和步骤。本领域技术人员将容易想到各种改变、修改和改进。尽管未在本文中明确说明,但是通过本公开内容而明显的这样的改变、修改和改进旨在成为本说明书的一部分,并且旨在落入本公开内容的精神和范围内。因此,前面的描述仅作为示例,而不是限制。仅如以下权利要求书及其等同物中所限定的限制该专利。

Claims (20)

1.一种分析网络分组以用于通过过滤非法网络分组同时准许合法网络分组访问网络来防止对所述网络的攻击的方法,所述过滤基于网络地址与数据分组分类之间的关联,所述关联被实现为树结构,所述数据分组分类使得能够确定网络分组是否合法,所述方法由计算设备执行,所述方法包括:
压缩将所述网络地址与所述数据分组分类相关联的所述树结构,所述树结构包括包含数据分组分类的多个叶节点和单比特测试节点的多个非叶节点,所述压缩的步骤包括:
基于具有单个子节点的连续非叶节点的数量和压缩阈值,确定是否要压缩所述树结构的包括具有单个子节点的所述连续非叶节点的子部分;
如果做出要压缩所述树结构的所述子部分的确定,则:
生成所述树结构的经压缩子部分,所述树结构的所述经压缩子部分包括由与所述树结构的所述子部分的所述连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,所述序列的比特数等于或大于所述压缩阈值;以及
将所述树结构的所述经压缩子部分存储在非暂态计算机可读存储器中。
2.根据权利要求1所述的方法,其中,通过以下来确定所述树结构的所述经压缩子部分的所述序列的比特数:(1)具有子叶节点的所述连续非叶节点之一的存在、(2)具有多于一个子节点的所述连续非叶节点之一的存在或者(3)所述序列的预定义最大大小。
3.根据权利要求1所述的方法,还包括:
如果做出不压缩所述树结构的所述子部分的确定,则:
生成所述树结构的非压缩子部分,所述树结构的所述非压缩子部分包括由与所述树结构的所述子部分的具有多于一个子节点的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述序列的比特数小于所述压缩阈值;以及
将所述树结构的所述非压缩子部分存储在所述非暂态计算机可读存储器中。
4.根据权利要求1所述的方法,其中,所述压缩阈值是5比特。
5.根据权利要求2所述的方法,其中,所述序列的所述预定义最大大小是30比特。
6.根据权利要求1所述的方法,其中,所述非暂态计算机可读存储器包括第一非暂态计算机可读存储器和第二非暂态计算机可读存储器。
7.根据权利要求6所述的方法,其中,(1)所述树结构的所述经压缩子部分是所述树结构的第一经压缩子部分,并且(2)所述树结构的非压缩子部分是所述树结构的第一非压缩子部分,其中,所述树结构的第一子部分包括所述树结构的所述第一经压缩子部分和所述树结构的所述第一非压缩子部分之一,并且所述树结构的第二子部分包括所述树结构的第二经压缩子部分和所述树结构的第二非压缩子部分之一。
8.根据权利要求7所述的方法,其中,所述树结构的所述第一子部分存储在所述第一非暂态计算机可读存储器中,并且指向所述第二非暂态计算机可读存储器的存储有所述树结构的所述第二子部分的存储器地址。
9.根据权利要求8所述的方法,其中,能够通过第一单次存储器访问从所述第一非暂态计算机可读存储器访问所述树结构的所述第一子部分,并且能够通过第二单次存储器访问从所述第二非暂态计算机可读存储器访问所述树结构的所述第二子部分。
10.根据权利要求6所述的方法,其中,所述第一非暂态计算机可读存储器是第一QDRSRAM存储器的第一存储体,并且所述第二非暂态计算机可读存储器是第二QDR SRAM存储器的第二存储体。
11.根据权利要求3所述的方法,其中,所述树结构的所述经压缩子部分是所述树结构的第一经压缩子部分,并且所述树结构的所述非压缩子部分是所述树结构的第一非压缩子部分,并且其中,所述非暂态计算机可读存储器包括第一部分、第二部分和第三部分,所述第一部分存储所述树结构的所述第一经压缩子部分和所述树结构的所述第一非压缩子部分之一,所述树结构的所述第一经压缩子部分和所述树结构的所述第一非压缩子部分之一指向存储在所述第二部分中的所述树结构的第二经压缩子部分和所述树结构的第二非压缩子部分之一,并且其中:
在更新所述树结构时,将所述树结构的第三经压缩子部分和所述树结构的第三非压缩子部分之一存储在所述第三部分中,并且修改所述树结构的所述第一经压缩子部分和所述树结构的所述第一非压缩子部分之一,使得所述树结构的所述第一经压缩子部分和所述树结构的所述第一非压缩子部分之一指向所述树结构的所述第三经压缩子部分和所述第三非压缩节点数据结构之一。
12.根据权利要求1所述的方法,还包括至少一个操作:(1)基于通过所述数据分组分类建立的优先级来传输网络分组,(2)基于所述数据分组分类识别要对网络分组执行的服务,(3)基于所述数据分组分类测试网络分组以确立所述网络分组是网络攻击的一部分和/或(4)基于所述数据分组分类创建对网络分组的流量的度量。
13.一种压缩将网络分组签名与网络分组元数据相关联的树结构的方法,所述方法用于通过过滤非法网络分组同时准许合法网络分组访问网络来防止对所述网络的攻击,所述过滤基于网络地址与数据分组分类之间的关联,所述关联被实现为树结构,所述数据分组分类使得能够确定网络分组是否合法,所述树结构包括包含网络分组元数据的多个叶节点和单比特测试节点的多个非叶节点,所述方法包括:
对于所述树结构的子部分,确立具有单个子节点的连续非叶节点的数量;
基于具有单个子节点的连续非叶节点的所述数量和压缩阈值,确定是否要压缩所述树结构的所述子部分;
如果做出要压缩所述树结构的所述子部分的确定,则:
生成经压缩的节点数据结构,所述经压缩的节点数据结构包括所述树结构的所述子部分的路径,所述路径包括由与所述树结构的所述子部分的所述连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,所述序列的比特数等于或大于所述压缩阈值;以及
将所述经压缩的节点数据结构存储在非暂态计算机可读存储器中。
14.一种用于分析网络分组以用于通过过滤非法网络分组同时准许合法网络分组访问网络来防止对所述网络的攻击的系统,所述过滤基于网络地址与数据分组分类之间的关联,所述关联被实现为树结构,所述数据分组分类使得能够确定网络分组是否合法,所述系统包括:
处理器;
非暂态计算机可读介质,所述非暂态计算机可读介质包括控制逻辑,所述控制逻辑在由所述处理器执行时使得:
压缩将所述网络地址与所述数据分组分类相关联的所述树结构,所述树结构包括包含数据分组分类的多个叶节点和单比特测试节点的多个非叶节点,所述压缩的步骤包括:
基于具有单个子节点的连续非叶节点的数量和压缩阈值,确定是否要压缩所述树结构的包括具有单个子节点的所述连续非叶节点的子部分;
如果做出要压缩所述树结构的所述子部分的确定,则:
生成所述树结构的经压缩子部分,所述树结构的所述经压缩子部分包括由与所述树结构的所述子部分的所述连续非叶节点中的每一个相关联的单比特的级联形成的比特序列,所述序列的比特数等于或大于所述压缩阈值;以及
存储所述树结构的所述经压缩子部分。
15.根据权利要求14所述的系统,其中,所述树结构的所述经压缩子部分的所述序列的比特数通过(1)具有子叶节点的所述连续非叶节点之一的存在、(2)具有多于一个子节点的所述连续非叶节点之一的存在或者(3)所述序列的预定义最大大小来确定。
16.根据权利要求14所述的系统,其中,所述压缩的步骤还包括:
如果做出不压缩所述树结构的所述子部分的确定,则:
生成所述树结构的非压缩子部分,所述树结构的所述非压缩子部分包括由与所述树结构的所述子部分的具有多于一个子节点的至少一个非叶节点相关联的一个或更多个单比特的级联形成的比特序列,所述序列的比特数小于所述压缩阈值;以及
存储所述树结构的所述非压缩子部分。
17.根据权利要求14所述的系统,其中,所述压缩阈值是5比特。
18.根据权利要求15所述的系统,其中,所述序列的所述预定义最大大小是30比特。
19.根据权利要求14所述的系统,其中,所述非暂态计算机可读存储器包括第一非暂态计算机可读存储器和第二非暂态计算机可读存储器。
20.根据权利要求19所述的系统,其中,(1)所述树结构的所述经压缩子部分是所述树结构的第一经压缩子部分,并且(2)所述树结构的非压缩子部分是所述树结构的第一非压缩子部分,其中,所述树结构的第一子部分包括所述树结构的所述第一经压缩子部分和所述树结构的所述第一非压缩子部分之一,并且所述树结构的第二子部分包括所述树结构的第二经压缩子部分和所述树结构的第二非压缩子部分之一。
CN201910791760.1A 2018-08-27 2019-08-26 用于操作联网设备的系统和方法 Active CN110868388B (zh)

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 CN110868388A (zh) 2020-03-06
CN110868388B true CN110868388B (zh) 2023-03-24

Family

ID=64664693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910791760.1A Active CN110868388B (zh) 2018-08-27 2019-08-26 用于操作联网设备的系统和方法

Country Status (5)

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

Family Cites Families (35)

* 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
US7536476B1 (en) * 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
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
WO2006123036A1 (fr) * 2005-05-19 2006-11-23 France Telecom Procede de representation en structure arborescente d'un groupe de flots de donnees numeriques. structure arborescente, procede et systeme de detection d'une attaque par inondation
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 (sv) 2008-05-26 2010-01-19 Oricane Ab Metod för datapaketklassificering i ett datakommunikationsnät
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
US10002011B2 (en) * 2013-11-04 2018-06-19 Amazon Technologies, Inc. Centralized networking configuration in distributed systems
JP6463898B2 (ja) 2014-03-13 2019-02-06 株式会社東芝 通信装置、情報処理装置、通信方法及び通信プログラム
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
US9979697B2 (en) * 2015-05-15 2018-05-22 Mitsubishi Electric Corporation Packet filtering apparatus and packet filtering method
US10277511B2 (en) 2015-12-16 2019-04-30 Nxp Usa, Inc. Hash-based packet classification with multiple algorithms at a network processor
US10084822B2 (en) * 2016-05-19 2018-09-25 Nec Corporation Intrusion detection and prevention system and method for generating detection rules and taking countermeasures
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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN108701187B (zh) 用于混合硬件软件分布式威胁分析的设备和方法
US10084752B2 (en) Hybrid hardware-software distributed threat analysis
US8474043B2 (en) Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
US20180367518A1 (en) Device identification and authentication in a network
US11811733B2 (en) Systems and methods for operating a networking device
US10491513B2 (en) Verifying packet tags in software defined networks
US8365045B2 (en) Flow based data packet processing
Yang Hybrid single-packet IP traceback with low storage and high accuracy
CN110868388B (zh) 用于操作联网设备的系统和方法
CN113992410B (zh) 一种私有加密数据识别方法及系统
CN108282454B (zh) 用于使用内联模式匹配加速安全检查的装置、系统和方法
US11805050B2 (en) Systems and methods to filter out noisy application signatures to improve precision of first packet application classification
US10819683B2 (en) Inspection context caching for deep packet inspection
WO2024099078A1 (zh) 检测攻击流量的方法及相关设备
CN113935430B (zh) 一种多样化识别私有加密数据的方法及系统
EP3304852B1 (en) String search and matching for gate functionality
CN116781303A (zh) 一种DDoS攻击防护方法和相关装置
CN117857109A (zh) 数据过滤方法、装置、系统及存储介质
CN112445771A (zh) 网络流量的数据处理方法、装置、设备及存储介质

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