CN114615195A - 用于fpga的以太网五元组快速匹配查找方法及装置 - Google Patents

用于fpga的以太网五元组快速匹配查找方法及装置 Download PDF

Info

Publication number
CN114615195A
CN114615195A CN202210178723.5A CN202210178723A CN114615195A CN 114615195 A CN114615195 A CN 114615195A CN 202210178723 A CN202210178723 A CN 202210178723A CN 114615195 A CN114615195 A CN 114615195A
Authority
CN
China
Prior art keywords
lookup
fpga
address
matching
quintuple
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.)
Pending
Application number
CN202210178723.5A
Other languages
English (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.)
SUN KAISENS (BEIJING) TECHNOLOGY CO LTD
Original Assignee
SUN KAISENS (BEIJING) TECHNOLOGY CO LTD
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 SUN KAISENS (BEIJING) TECHNOLOGY CO LTD filed Critical SUN KAISENS (BEIJING) TECHNOLOGY CO LTD
Priority to CN202210178723.5A priority Critical patent/CN114615195A/zh
Publication of CN114615195A publication Critical patent/CN114615195A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种用于FPGA的以太网五元组快速匹配查找方法及装置,方法包括:由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作;本申请能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。

Description

用于FPGA的以太网五元组快速匹配查找方法及装置
技术领域
本申请涉及通信技术领域,具体涉及一种用于FPGA的以太网五元组快速匹配查找方法及装置。
背景技术
以太网五元组匹配是现代网络通信的基础组成部分,在IP通信网络中不可或缺的一部分。尤其在网络安全、负载均衡、隧道网络和三层交换领域中扮演重要角色。由于IP数据包的不连续和无规律的特性,在对IP包的来源和目的进行分类处理的时候,往往需要对每一个IP包都进行匹配识别,以得到针对该数据包的处理策略。
随着时代的发展进步,网络速度越来越快,分布式集群和边缘计算的部署,对现有的网络安全和负载均衡技术提出了新的挑战。在这些应用中都包含对IP数据包的过滤、分发、整合和处理,它们都离不开对IP包的匹配查找。其中的IP包匹配查找模块多是运行在CPU上的软件程序,受限于CPU的性能和机制,在处理高并发高频次的IP数据包时往往不能达到接口的实际带宽,且对于不同长度的IP数据包有着不同的处理性能。而造成业务负载的不均衡和处理资源的浪费。
具体的,传统CPU实现的IP数据包匹配查找算法,受限于CPU的性能和处理机制,无法对IP数据包实现流式处理,且由于CPU的输入输出特性导致在一定时间内只能处理固定数量的数据包,在链路上传输的都是解决MTU的数据包时,该模块可以达到接口线速度处理,而处理接近以太网最短包长64字节的数据包时,由于单位时间处理的数据包数量一定,从而导致数据速率远远达不到接口的线速度。总结下来,现有的CPU实现的IP数据包匹配查找算法主要存在的技术问题为:
(1)软件的IP匹配查找算法效率不高,无法应对现在的网络速率需求,且小包的处理速度远远达不到大包的处理速度,无法实现负载均衡。
(2)软件的IP匹配查找算法需要依赖于操作系统、DDR等硬件,导致能耗比不高,CPU和操作系统的空转造成能源的浪费。
(3)由于存在操作系统的启动时间,导致软件IP匹配查找的部署需要等待服务器的开机时间。
发明内容
针对现有技术中的问题,本申请提供一种用于FPGA的以太网五元组快速匹配查找方法及装置,能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
为了解决上述问题中的至少一个,本申请提供以下技术方案:
第一方面,本申请提供一种用于FPGA的以太网五元组快速匹配查找方法,包括:
由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
进一步地,所述二分匹配查找操作包括:
使用两个寄存器组来分别存储当前查询的表项地址和步长;
使用当前表项地址去查找表中读取表项进行比较;
根据比较结果和查找表生成方式确定状态机下一跳的方向,并根据所述步长与当前表项地址完成下一跳操作。
第二方面,本申请提供一种用于FPGA的以太网五元组快速匹配查找装置,包括:
查找表表项设计模块,用于由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
匹配查表模块,用于截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
进一步地,所述匹配查表模块包括:
地址与步长存储单元,用于使用两个寄存器组来分别存储当前查询的表项地址和步长;
表项比较单元,用于使用当前表项地址去查找表中读取表项进行比较;
寄存器跳转单元,用于根据比较结果和查找表生成方式确定状态机下一跳的方向,并根据所述步长与当前表项地址完成下一跳操作。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的用于FPGA的以太网五元组快速匹配查找方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的用于FPGA的以太网五元组快速匹配查找方法的步骤。
第五方面,本申请提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述的用于FPGA的以太网五元组快速匹配查找方法的步骤。
由上述技术方案可知,本申请提供一种用于FPGA的以太网五元组快速匹配查找方法及装置,通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的用于FPGA的以太网五元组快速匹配查找方法的流程示意图之一;
图2为本申请实施例中的用于FPGA的以太网五元组快速匹配查找方法的流程示意图之二;
图3为本申请实施例中的用于FPGA的以太网五元组快速匹配查找装置的结构图之一;
图4为本申请实施例中的用于FPGA的以太网五元组快速匹配查找装置的结构图之二;
图5为本申请一具体实施例中的FPGA功能模块示意图;
图6为本申请一具体实施例中的二分匹配查找算法的流程图;
图7为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
考虑到传统CPU实现的IP数据包匹配查找算法,受限于CPU的性能和处理机制,无法对IP数据包实现流式处理,且由于CPU的输入输出特性导致在一定时间内只能处理固定数量的数据包,在链路上传输的都是解决MTU的数据包时,该模块可以达到接口线速度处理,而处理接近以太网最短包长64字节的数据包时,由于单位时间处理的数据包数量一定,从而导致数据速率远远达不到接口的线速度的问题,本申请提供一种用于FPGA的以太网五元组快速匹配查找方法及装置,通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
可选的,本申请可以在FPGA等可编程逻辑器件中搭建一套对IP数据包进行匹配查找的模块,并能够得出用于下一步处理的必要参数。在FPGA中,经MAC处理的得到的数据包和在CPU中使用rawsocket得到的数据包是一样的,但数据并不是呈空间分布的,能够通过类似于下标的机制去访问数据包的各个位置的内容;而是呈时间分布的,随着以太网的时钟周期,一个周期对于一个到多个字节的数据,所以FPGA可以将数据包处理成数据流,并使用额外的信号来标识每一个数据包的起始或结束,进而实现流水线式的处理流程。这样在处理以太网的小包和大包时只需消耗相应的时钟周期,这样在保证大包吞吐量的同时,也大幅提升了小包的吞吐量,使得大包小包都能够达到接口的线速度。基于FPGA的IP查找匹配应用模块的通用功能框架如图5所示。
为了能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度,本申请提供一种用于FPGA的以太网五元组快速匹配查找方法的实施例,参见图1,所述用于FPGA的以太网五元组快速匹配查找方法具体包含有如下内容:
步骤S101:由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
可选的,本申请查找表使用的是FPGA内部的BRAM资源,BRAM可以以SRAM的方式工作,通过地址直接寻找内容。
在本发明中,BRAM的地址与表项地址是一一对应的关系,因此BRAM的位宽将会和表项内容的比特位宽一致。同时在实际使用中会遇到需要模糊匹配的情况发生,例如通配一个子网的IP段。所以在表项中要提供用于模糊查找的掩码,当IP包命中一条表项后,还要将表项中的部分字段提取出来,供后级处理模块参考,所以该表项的内容设计如下表1所示:
表1
Figure BDA0003521415300000051
可选的,表项地址排布是符合二分查找算法的地址排序,排序过程可以由FPGA内的硬核或软核以及片外的CPU进行,将排序好的数据写入到该表项中。在使用片外的CPU进行配置时,配置信息可以由FPGA的管理网络接口写入,读取亦然。
在使用外网CPU进行配置时,由于以太网MTU限制,可能无法一次性将所有表项更新完全,会存在部分旧表项和部分新表项的情况发生,可能会导致查表错误的发生,在对数据要求较高的场合,可考虑使用乒乓查找表的方式来进行同步切换,以避免上述现象的发生。具体方法为:先将新的表项写入到空闲状态的查找表中,当整表写完后产生一个标志位,如果当前没有数据包需要进行五元组查询,则立即切换查找表为新表项的表,旧表项变为空闲状态;如果当前旧表项正在进行查找操作,则等待当前查找完成之后再进行切换,以实现同步切换。
步骤S102:截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
在FPGA中以太网数据是以时间形式分布的,并且保持这种随时间分布的特性有利于最大化利用带宽,进而实现线速度的查找处理能力。使用先入先出存储器能够在保持随时间分布的特性的同时,为数据提供缓冲区。
进行查表之前,需要先准备好查表所需的关键字,本发明中使用五元组对数据包进行甄别区分,但五元组数据分布在数据包的不同位置,所以先将关键字截取出来。
截取得到五元组关键字之后即可进行匹配查找了。查找算法需要在不破坏数据随时间分布特性的前提下完成查找,并且能够存储尽可能多的表项,因此查找算法使用二分法进行匹配查找。在本发明中,二分法匹配查找是将五元组数据按“协议类型,源IP,目的IP,源端口,目的端口”的顺序组合成一个新的“大数”,与查找表表项中的数据进行二分匹配查找。
二分匹配查找在FPGA中是通过使用状态机的跳转实现的,在具体实现中,二分匹配查找算法需要使用两个寄存器组来分别存储当前查询的表项地址和步长,使用当前表项地址去查找表模块中读取表项来做比较,根据比较结果和查找表生成方式来确定下一跳的方向,并根据步长与当前表项地址完成下一跳。具体实现的逻辑流程图如图6所示。
由流程图和二分匹配查找算法可知在最坏情况下,查找模块也能够在log2(n)次比较内得到查找结果。所以单一二分匹配查找算法模块要确保log2(n)所需的时钟周期要小于以太网中最短的数据包所维持的时钟周期数,这样才能保持数据的时间分布特性,防止造成数据反压,影响速率的现象发生。
若满足以太网最短数据包所维持的时钟周期数的log2(n)所对应的表项数量不能满足具体的业务需求,可以考虑使用多个二分匹配查找模块,发挥FPGA的特长,多个二分匹配查找模块对同一个数据包的五元组数据进行查找,这样在能保证不破坏数据时间分布特性的前提下提升查找表表项容量,从而应对不同的应用场合。
从上述描述可知,本申请实施例提供的用于FPGA的以太网五元组快速匹配查找方法,能够通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
在本申请的用于FPGA的以太网五元组快速匹配查找方法的一实施例中,参见图2,还可以具体包含如下内容:
步骤S201:使用两个寄存器组来分别存储当前查询的表项地址和步长;
步骤S202:使用当前表项地址去查找表中读取表项进行比较;
步骤S203:根据比较结果和查找表生成方式确定状态机下一跳的方向,并根据所述步长与当前表项地址完成下一跳操作。
为了能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度,本申请提供一种用于实现所述用于FPGA的以太网五元组快速匹配查找方法的全部或部分内容的用于FPGA的以太网五元组快速匹配查找装置的实施例,参见图3,所述用于FPGA的以太网五元组快速匹配查找装置具体包含有如下内容:
查找表表项设计模块10,用于由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
匹配查表模块20,用于截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
从上述描述可知,本申请实施例提供的用于FPGA的以太网五元组快速匹配查找装置,能够通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
在本申请的用于FPGA的以太网五元组快速匹配查找装置的一实施例中,参见图4,所述匹配查表模块20包括:
地址与步长存储单元21,用于使用两个寄存器组来分别存储当前查询的表项地址和步长;
表项比较单元22,用于使用当前表项地址去查找表中读取表项进行比较;
寄存器跳转单元23,用于根据比较结果和查找表生成方式确定状态机下一跳的方向,并根据所述步长与当前表项地址完成下一跳操作。
从硬件层面来说,为了能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度,本申请提供一种用于实现所述用于FPGA的以太网五元组快速匹配查找方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现用于FPGA的以太网五元组快速匹配查找装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的用于FPGA的以太网五元组快速匹配查找方法的实施例,以及用于FPGA的以太网五元组快速匹配查找装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,用于FPGA的以太网五元组快速匹配查找方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图7为本申请实施例的电子设备9600的系统构成的示意框图。如图7所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图7是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,用于FPGA的以太网五元组快速匹配查找方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤S101:由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
步骤S102:截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
从上述描述可知,本申请实施例提供的电子设备,通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
在另一个实施方式中,用于FPGA的以太网五元组快速匹配查找装置可以与中央处理器9100分开配置,例如可以将用于FPGA的以太网五元组快速匹配查找装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现用于FPGA的以太网五元组快速匹配查找方法功能。
如图7所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图7中所示的所有部件;此外,电子设备9600还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的用于FPGA的以太网五元组快速匹配查找方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的用于FPGA的以太网五元组快速匹配查找方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤S101:由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
步骤S102:截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的用于FPGA的以太网五元组快速匹配查找方法中全部步骤的一种计算机程序产品,该计算机程序/指令被处理器执行时实现所述的用于FPGA的以太网五元组快速匹配查找方法的步骤,例如,所述计算机程序/指令实现下述步骤:
步骤S101:由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
步骤S102:截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
从上述描述可知,本申请实施例提供的计算机程序产品,通过由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,然后截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作,由此能够在硬件层面实现IP数据包的匹配查找,大幅提高IP数据包匹配查找速度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种用于FPGA的以太网五元组快速匹配查找方法,其特征在于,所述方法包括:
由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
2.根据权利要求1所述的用于FPGA的以太网五元组快速匹配查找方法,其特征在于,所述二分匹配查找操作包括:
使用两个寄存器组来分别存储当前查询的表项地址和步长;
使用当前表项地址去查找表中读取表项进行比较;
根据比较结果和查找表生成方式确定状态机下一跳的方向,并根据所述步长与当前表项地址完成下一跳操作。
3.一种用于FPGA的以太网五元组快速匹配查找装置,其特征在于,包括:
查找表表项设计模块,用于由FPGA的硬核或软核将按照二分匹配查找算法的地址排序好的数据写入查找表表项汇总,将FPGA的BRAM资源地址与所述查找表表项地址建立对应关系,其中,所述查找表表项包含用于模糊查找的掩码;
匹配查表模块,用于截取得到IP数据包中的五元组关键字,根据所述五元组关键字与所述查找表表项中的数据对所述IP数据包进行二分匹配查找操作。
4.根据权利要求3所述的用于FPGA的以太网五元组快速匹配查找装置,其特征在于,所述匹配查表模块包括:
地址与步长存储单元,用于使用两个寄存器组来分别存储当前查询的表项地址和步长;
表项比较单元,用于使用当前表项地址去查找表中读取表项进行比较;
寄存器跳转单元,用于根据比较结果和查找表生成方式确定状态机下一跳的方向,并根据所述步长与当前表项地址完成下一跳操作。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至2任一项所述的用于FPGA的以太网五元组快速匹配查找方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2任一项所述的用于FPGA的以太网五元组快速匹配查找方法的步骤。
7.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至2任一项所述的用于FPGA的以太网五元组快速匹配查找方法的步骤。
CN202210178723.5A 2022-02-25 2022-02-25 用于fpga的以太网五元组快速匹配查找方法及装置 Pending CN114615195A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210178723.5A CN114615195A (zh) 2022-02-25 2022-02-25 用于fpga的以太网五元组快速匹配查找方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210178723.5A CN114615195A (zh) 2022-02-25 2022-02-25 用于fpga的以太网五元组快速匹配查找方法及装置

Publications (1)

Publication Number Publication Date
CN114615195A true CN114615195A (zh) 2022-06-10

Family

ID=81859681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210178723.5A Pending CN114615195A (zh) 2022-02-25 2022-02-25 用于fpga的以太网五元组快速匹配查找方法及装置

Country Status (1)

Country Link
CN (1) CN114615195A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1434603A (zh) * 2002-01-23 2003-08-06 华为技术有限公司 一种查找表电路的实现方法及查找表电路
US7379451B1 (en) * 2003-04-21 2008-05-27 Xilinx, Inc. Address lookup table
CN105827530A (zh) * 2016-03-11 2016-08-03 中国互联网络信息中心 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN109921995A (zh) * 2017-12-13 2019-06-21 华为技术有限公司 一种配置地址表的方法、fpga和应用该fpga的网络设备
CN113037634A (zh) * 2021-03-31 2021-06-25 李远平 基于fpga的匹配动作表的处理方法、逻辑电路和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1434603A (zh) * 2002-01-23 2003-08-06 华为技术有限公司 一种查找表电路的实现方法及查找表电路
US7379451B1 (en) * 2003-04-21 2008-05-27 Xilinx, Inc. Address lookup table
CN105827530A (zh) * 2016-03-11 2016-08-03 中国互联网络信息中心 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN109921995A (zh) * 2017-12-13 2019-06-21 华为技术有限公司 一种配置地址表的方法、fpga和应用该fpga的网络设备
CN113037634A (zh) * 2021-03-31 2021-06-25 李远平 基于fpga的匹配动作表的处理方法、逻辑电路和设备

Similar Documents

Publication Publication Date Title
CN111241138B (zh) 数据匹配方法及装置
US9367645B1 (en) Network device architecture to support algorithmic content addressable memory (CAM) processing
CN105917632B (zh) 用于电信中的可扩缩分布式网络业务分析的方法
US8937945B2 (en) Method and apparatus for optimizing usage of ternary content addressable memory (TCAM)
US10394784B2 (en) Technologies for management of lookup tables
CN105224692A (zh) 支持多核处理器的sdn多级流表并行查找的系统及方法
US10243852B2 (en) Look-up table creation method and query method, controller, forwarding device, and system
CN104079478A (zh) 报文转发方法和装置
CN102333039A (zh) 一种转发报文的方法、生成表项的方法及装置
CN111464352A (zh) 调用链路数据处理方法及装置
US11126249B1 (en) Power reduction methods for variable sized tables
Sun et al. Design and demonstration of high-throughput protocol oblivious packet forwarding to support software-defined vehicular networks
CN104601645A (zh) 一种数据包处理方法及装置
CN108833200A (zh) 一种大数据文件自适应单向传输方法及装置
CN114615195A (zh) 用于fpga的以太网五元组快速匹配查找方法及装置
CN109753359B (zh) 一种用于构建资源池的fpga板卡、服务器和系统
CN114338529B (zh) 五元组规则匹配方法及装置
EP4136809B1 (en) Distributed flow processing and flow cache
CN114328619A (zh) 多要素数据匹配方法及装置
CN116032837A (zh) 一种流表卸载方法及装置
CN111107142B (zh) 业务访问方法和装置
Chiu et al. The design and implementation of a latency-aware packet classification for OpenFlow protocol based on FPGA
WO2016197607A1 (zh) 一种实现路由查找的方法及装置
Zhang et al. Efficient dynamic service maintenance for edge services
CN104486240A (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