基于FPGA的报文去重方法、装置及FPGA芯片.pdf

上传人:王** 文档编号:10296291 上传时间:2021-06-17 格式:PDF 页数:17 大小:736.79KB
收藏 版权申诉 举报 下载
基于FPGA的报文去重方法、装置及FPGA芯片.pdf_第1页
第1页 / 共17页
基于FPGA的报文去重方法、装置及FPGA芯片.pdf_第2页
第2页 / 共17页
基于FPGA的报文去重方法、装置及FPGA芯片.pdf_第3页
第3页 / 共17页
文档描述:

《基于FPGA的报文去重方法、装置及FPGA芯片.pdf》由会员分享,可在线阅读,更多相关《基于FPGA的报文去重方法、装置及FPGA芯片.pdf(17页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010602591.5 (22)申请日 2020.06.28 (71)申请人 湖南有马信息技术有限公司 地址 410016 湖南省长沙市雨花区韶山中 路489号万博汇名邸三期2303房 (72)发明人 吴敏源金玉超 (74)专利代理机构 北京集佳知识产权代理有限 公司 11227 代理人 张春辉 (51)Int.Cl. H04L 12/801(2013.01) H04L 12/743(2013.01) H04L 12/751(2013.01) G06F 15/78(2006。

2、.01) H04L 12/891(2013.01) (54)发明名称 基于FPGA的报文去重方法、 装置及FPGA芯片 (57)摘要 本申请公开了一种基于FPGA的报文去重方 法, 该方法中调用基于哈希值作为读取索引地址 的查找表基于流水线操作进行报文重复匹配比 对, 提高了去重比对的效率; 由于流量数据的哈 希值相对于流量数据本身数据长度大大缩短, 基 于哈希值进行匹配比对可以提升匹配比对效率; 而且该方法中将哈希值作为读取索引地址, 依照 哈希值可以直接读取查找表中的历史表项中与 该哈希值相同的表项进行匹配比对, 避免了历史 流量数据的遍历匹配, 显著提升重复比对效率, 实现快速报文去重。。

3、 本申请还提供了一种基于 FPGA的报文去重装置、 设备及一种可读存储介 质, 具有上述有益效果。 权利要求书2页 说明书9页 附图5页 CN 111770023 A 2020.10.13 CN 111770023 A 1.一种基于FPGA的报文去重方法, 其特征在于, 包括: 获取链路流量数据, 对所述链路流量数据进行哈希计算, 得到哈希值; 提取所述链路流量数据中的流量身份信息, 并将所述流量身份信息以及所述哈希值作 为所述链路流量数据的识别信息, 添加至查找表的表项中; 其中, 所述查找表中自动清理添 加时长超过阈值的表项; 将所述哈希值作为DDR索引地址, 流水线执行所述查找表表项的读。

4、取以及表项匹配操 作; 若不存在匹配表项, 判定所述链路流量数据非重复报文, 输出所述链路流量数据; 若存 在匹配表项, 判定所述链路流量数据为重复报文, 剔除所述链路流量数据。 2.如权利要求1所述的基于FPGA的报文去重方法, 其特征在于, 自动清理所述查找表中 添加时长超过阈值的表项的实现方法包括: 将所述识别信息添加至老化表的表项中, 并在所述老化表的表项中添加带有表项添加 时间的时间戳; 其中, 所述老化表为先入先出DDR缓存空间; 预读出所述老化表中最先写入的表项; 判断预读的表项的时间戳与当前时间的时间差是否超过所述阈值; 若是, 删除所述老化表中所述预读的表项以及在所述查找表中。

5、对应的表项; 若否, 预设 时长后执行预读出所述老化表中最先写入的表项的步骤。 3.如权利要求2所述的基于FPGA的报文去重方法, 其特征在于, 还包括: 在所述查找表的各表项添加重复老化计数器, 并设置所述重复老化计数器的初始值为 1; 若存在匹配表项, 将所述匹配表项中的重复老化计数器加1; 当接收到所述老化表对于所述匹配表项的老化删除指令后, 将所述匹配表项中的重复 老化计数器减1; 当所述重复老化计数器减为0时, 将所述匹配表项删除。 4.如权利要求1所述的基于FPGA的报文去重方法, 其特征在于, 在对所述链路流量数据 基于整包内容进行哈希计算之前, 还包括: 对所述链路流量数据进行。

6、公共项信息裁剪以及非公共项信息替换, 以剥离所述链路流 量数据中的不相关数据。 5.如权利要求1所述的基于FPGA的报文去重方法, 其特征在于, 获取链路流量数据, 并 提取所述链路流量数据中的流量身份信息, 包括: 获取链路流量数据, 并提取所述链路流量数据的源IP、 目的IP以及IP ID, 作为所述流 量身份信息。 6.如权利要求1所述的基于FPGA的报文去重方法, 其特征在于, 对所述链路流量数据进 行哈希计算, 得到哈希值, 包括: 对所述链路流量数据基于整包内容进行哈希计算, 得到哈希值。 7.一种基于FPGA的报文去重装置, 其特征在于, 包括: 数据获取模块, 用于获取链路流量。

7、数据, 对所述链路流量数据进行哈希计算, 得到哈希 值; 表项添加模块, 用于提取所述链路流量数据中的流量身份信息, 并将所述流量身份信 权利要求书 1/2 页 2 CN 111770023 A 2 息以及所述哈希值作为所述链路流量数据的识别信息, 添加至查找表的表项中; 其中, 所述 查找表中自动清理添加时长超过阈值的表项; 表项匹配模块, 用于将所述哈希值作为DDR索引地址, 流水线执行所述查找表表项的读 取以及表项匹配操作; 判别模块, 用于若不存在匹配表项, 判定所述链路流量数据非重复报文, 输出所述链路 流量数据; 若存在匹配表项, 判定所述链路流量数据为重复报文, 剔除所述链路流量。

8、数据。 8.一种FPGA芯片, 其特征在于, 所述FPGA用于实现如权利要求1至6任一项所述基于 FPGA的报文去重方法的步骤。 权利要求书 2/2 页 3 CN 111770023 A 3 基于FPGA的报文去重方法、 装置及FPGA芯片 技术领域 0001 本申请涉及图像处理技术领域, 特别涉及一种基于FPGA的报文去重方法、 装置及 一种FPGA芯片。 背景技术 0002 在网络分析监测领域, 网络可视化采集分流设备的作用正越发重要。 网络可视化 采集中分流器通过将多条链路的流量数据进行采集, 汇聚分流输出的方式, 将链路中的数 据流量引入到后端的分析服务器中, 在可视化平台和用户数据链。

9、路中扮演了一个筛选分类 的 “物流” 角色。 0003 由于采集分流设备通常会完成多个链路汇聚并分流输出的功能, 而多个链路通常 对应多个链路的以太网分光点, 这多个以太网分光点里有时会存在大量的相同的以太网数 据流量, 这些重复流量会加大后台分析服务器的处理压力, 并增加后台处理的复杂程度。 0004 为了解决链路重复报文过滤的问题, 相关技术中提供了一种基于CPU平台的重复 报文检测方法, 该传统去重方法采用了五元组流表查找的方法, 该方法去重对比速度较低, 且对比精度不高, 难以满足高效的数据处理需求, 且面对大数据流量, 对于重复报文检测端 会产生较大的处理负担。 0005 因此, 如。

10、何实现大带宽下的高效快速报文去重处理, 是本领域技术人员急需解决 的问题。 发明内容 0006 本申请的目的是提供一种基于FPGA的报文去重方法, 该方法可以实现高效快速报 文去重处理; 本申请的另一目的是提供一种基于FPGA的报文去重装置及一种FPGA芯片。 0007 为解决上述技术问题, 本申请提供一种基于FPGA的报文去重方法, 包括: 0008 获取链路流量数据, 对所述链路流量数据进行哈希计算, 得到哈希值; 0009 提取所述链路流量数据中的流量身份信息, 并将所述流量身份信息以及所述哈希 值作为所述链路流量数据的识别信息, 添加至查找表的表项中; 其中, 所述查找表中自动清 理添。

11、加时长超过阈值的表项; 0010 将所述哈希值作为DDR索引地址, 流水线执行所述查找表表项的读取以及表项匹 配操作; 0011 若不存在匹配表项, 判定所述链路流量数据非重复报文, 输出所述链路流量数据; 若存在匹配表项, 判定所述链路流量数据为重复报文, 剔除所述链路流量数据。 0012 可选地, 自动清理所述查找表中添加时长超过阈值的表项的实现方法包括: 0013 将所述识别信息添加至老化表的表项中, 并在所述老化表的表项中添加带有表项 添加时间的时间戳; 其中, 所述老化表为先入先出DDR缓存空间; 0014 预读出所述老化表中最先写入的表项; 0015 判断预读的表项的时间戳与当前时。

12、间的时间差是否超过所述阈值; 说明书 1/9 页 4 CN 111770023 A 4 0016 若是, 删除所述老化表中所述预读的表项以及在所述查找表中对应的表项; 若否, 预设时长后执行预读出所述老化表中最先写入的表项的步骤。 0017 可选地, 所述基于FPGA的报文去重方法还包括: 0018 在所述查找表的各表项添加重复老化计数器, 并设置所述重复老化计数器的初始 值为1; 0019 若存在匹配表项, 将所述匹配表项中的重复老化计数器加1; 0020 当接收到所述老化表对于所述匹配表项的老化删除指令后, 将所述匹配表项中的 重复老化计数器减1; 0021 当所述重复老化计数器减为0时,。

13、 将所述匹配表项删除。 0022 可选地, 在对所述链路流量数据基于整包内容进行哈希计算之前, 还包括: 0023 对所述链路流量数据进行公共项信息裁剪以及非公共项信息替换, 以剥离所述链 路流量数据中的不相关数据。 0024 可选地, 获取链路流量数据, 并提取所述链路流量数据中的流量身份信息, 包括: 0025 获取链路流量数据, 并提取所述链路流量数据的源IP、 目的IP以及IP ID, 作为所 述流量身份信息。 0026 可选地, 对所述链路流量数据进行哈希计算, 得到哈希值, 包括: 0027 对所述链路流量数据基于整包内容进行哈希计算, 得到哈希值。 0028 本申请还提供了一种基。

14、于FPGA的报文去重装置, 包括: 0029 数据获取模块, 用于获取链路流量数据, 对所述链路流量数据进行哈希计算, 得到 哈希值; 0030 表项添加模块, 用于提取所述链路流量数据中的流量身份信息, 并将所述流量身 份信息以及所述哈希值作为所述链路流量数据的识别信息, 添加至查找表的表项中; 其中, 所述查找表中自动清理添加时长超过阈值的表项; 0031 表项匹配模块, 用于将所述哈希值作为DDR索引地址, 流水线执行所述查找表表项 的读取以及表项匹配操作; 0032 判别模块, 用于若不存在匹配表项, 判定所述链路流量数据非重复报文, 输出所述 链路流量数据; 若存在匹配表项, 判定所。

15、述链路流量数据为重复报文, 剔除所述链路流量数 据。 0033 本申请还提供了一种FPGA芯片, 所述FPGA用于实现所述基于FPGA的报文去重方法 的步骤。 0034 本申请所提供的基于FPGA的报文去重方法, 该方法中调用基于哈希值作为读取索 引地址的查找表基于流水线操作进行报文重复匹配比对, 提高了去重比对的效率; 其中, 由 于流量数据的哈希值相对于流量数据本身数据长度大大缩短, 基于哈希值进行匹配比对可 以简化匹配比对实现技术难度, 提升匹配比对效率; 而且该方法中将哈希值作为读取索引 地址, 依照哈希值可以直接读取查找表中的历史表项中与该哈希值相同的表项进行匹配比 对, 避免了历史。

16、流量数据的遍历匹配, 简化了流量数据的重复比对过程, 在大带宽带来的大 量历史数据中查找简化效果更为显著, 该方法可以显著提升重复比对效率, 实现快速报文 去重。 0035 本申请还提供了一种基于FPGA的报文去重装置及一种FPGA芯片, 具有上述有益效 说明书 2/9 页 5 CN 111770023 A 5 果, 在此不再赘述。 附图说明 0036 为了更清楚地说明本申请实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 申请的实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据。

17、 提供的附图获得其他的附图。 0037 图1为一种采集分光链路导致重复报文示意图; 0038 图2为本申请实施例提供的一种基于FPGA的报文去重方法的流程图; 0039 图3为一种传统的查找匹配示意图; 0040 图4为本申请实施例提供的一种流水线操作查找匹配示意图; 0041 图5为本申请实施例提供的一种流水线操作查找匹配示意图; 0042 图6为本申请实施例提供的一种基于FPGA的报文去重装置的结构框图; 0043 图7为本申请实施例提供的一种模块的连接示意图; 0044 图8为本申请实施例提供的一种工作流程示意图。 具体实施方式 0045 本申请的核心是提供一种基于FPGA的报文去重方法。

18、, 该方法可以实现高效快速报 文去重处理; 本申请的另一核心是提供一种基于FPGA的报文去重装置及一种FPGA芯片。 0046 为使本申请实施例的目的、 技术方案和优点更加清楚, 下面将结合本申请实施例 中的附图, 对本申请实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本申请一部分实施例, 而不是全部的实施例。 基于本申请中的实施例, 本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例, 都属于本申请保护的范围。 0047 网络数据采集通常分两种, 一个是光链路的直接1进2出的分光, 一个是网络路由 器镜像口输出, 如图1所示为一种采集分光链路导致重复。

19、报文示意图, 多个分光点的报文都 可以作为重复数据。 0048 具体地, 图1中报文A1-A5都是同源的报文, 只是因为做抓取的网络位置不同, 所以 报文的封装和一部分特征字段会存在差异, 属于重复报文。 0049 报文A1和报文A2是在同一条链路上的两个采集点通过分光方式采集的两个报文, 这两个报文完全相同。 0050 报文A3与报文A1和A2相比较, 报文承载的Payload(负荷)相同, A1和A2数据包存在 VLAN tag(虚拟局域网标签), A3没有VLAN tag, 属于重复报文。 0051 报文A4与报文A3相比较, 因为经过了一台交换设备转发, 数据包MAC(局域网)地 址、。

20、 IP_TTL、 IP_Checksum(IP校验和)等的值不同, 但传输的数据本质相同, 所以属于重复报 文。 0052 报文A5的数据带有GRE(Generic Routing Encapsulation通用路由封装协议)、 GTP(GPRS隧道协议)、 VxLAN(Virtual eXtensible Local Area Network虚拟可扩展的局域 网协议)等隧道协议的封装, Payload部分与报文A4相同, 但是多了层隧道协议的封装, 属于 重复报文。 说明书 3/9 页 6 CN 111770023 A 6 0053 前端采集捕获的数据包, 会发给后端的网络可视化分析工具进行。

21、进一步的解码, 重复数据包的采集, 会给后端分析工具带来影响, 所以需要网络智能采集平台进行去重处 理, 将去重后的数据报文转发至分析工具探针, 这些影响主要包括: 0054 (1)增加处理压力: 重复数据的采集, 势必带来大量的冗余数据, 这些冗余数据会 占用宝贵的分析工具探针的处理性能, 0055 (2)增加业务合成的处理复杂度: 一次会话过程的业务合成中如果出现多个冗余 数据, 则分析工具探针就需要做冗余判断, 才可以确保最终业务合成的准确性, 从而使分析 工具探针的处理逻辑更为复杂。 0056 (3)增加业务统计的处理复杂度: 一次业务过程如果因为多次采集带来的冗余数 据的问题, 而被。

22、合成为多次业务过程, 则为了确保业务统计的准确性, 后端分析工具就需要 在进行业务统计之前剔除这些冗余记录才能保障统计的准确性。 0057 而为了避免重复报文对于给后端分析工具带来的负面影响, 需要进行报文去重, 将多份重复数据流量最终过滤后只保留一份。 0058 请参考图2, 图2为本实施例提供的基于FPGA的报文去重方法的流程图, 该方法的 执行主体为分流器, 可以基于传统的分流器实现功能的添加, 支持同一报文多次重复的过 滤, 该方法主要包括: 0059 步骤s110、 获取链路流量数据, 对链路流量数据进行哈希计算, 得到哈希值; 0060 获取链路流量数据, 不限定以分光点获取方式或。

23、者其他获取方式, 可以参照相关 技术的实现方式。 0061 为了确定链路流量数据的内容, 实现链路内容的比对, 同时减少数据比对量, 本实 施例中通过对链路流量数据进行哈希计算, 以根据链路流量内容确定的哈希值进行后续重 复报文的比对。 0062 为了保证任意报文部分调整均可以体现, 可选地, 对链路流量数据进行哈希计算 可以为: 对链路流量数据基于整包内容进行哈希计算, 得到哈希值。 该方法可以全面考虑整 包内容中各部分数据的变化。 0063 需要说明的是, 对整包内容进行hash值的计算, 而提取链路流量数据中的流量身 份信息与对链路流量数据进行哈希计算两过程可以同时执行, 即可以提取出流。

24、量的源IP和 目的IP和IP ID号, 同时对整包内容进行hash值的计算, 以提升报文去重实现效率。 另外, 哈 希计算可以采取CRC32的hash计算算法, 也可以采取其他哈希计算算法, 在此不作限定。 0064 步骤s120、 提取链路流量数据中的流量身份信息, 并将流量身份信息以及哈希值 作为链路流量数据的识别信息, 添加至查找表的表项中; 0065 获取到链路流量数据后, 通过解析所接收的报文, 提取链路流量数据中的流量身 份信息, 流量身份信息指可以在若干流量数据中用于识别出该流量数据的信息, 本实施例 中对于具体提取的身份信息的信息类型不做限定, 可选地, 可以提取链路流量数据的。

25、源IP、 目的IP以及IP ID作为流量身份信息, 提取源IP、 目的IP以及IP ID可以实现较为有效的区 分, 而且信息种类较少, 便于后续的匹配比对过程的快速实现, 本实施例中主要以身份信息 为源IP、 目的IP以及IP ID为例进行介绍, 提取的其他信息类型, 比如报文长度以及报文协 议号等均可参照本实施例的介绍, 在此不再赘述。 0066 本实施例中以流量身份信息以及哈希值作为链路流量数据的识别信息, 将所提取 说明书 4/9 页 7 CN 111770023 A 7 的IP、 IP ID、 HASH值送入查找表中进行去重的查找匹配, 以实现流量数据的精准识别。 0067 其中, 查。

26、找表采用基于哈希值作为DDR索引地址的表项添加规则, 根据各数据的哈 希值进行表项的排布, 该种设置下可以直接确定各哈希值下的表项位置。 比如目前查找表 中包括哈希值的大小按顺序排布, 当需要找哈希值为20的表项时, 可以直接确定表项地址, 无需遍历各表项, 查看个表项中的哈希值, 逐一遍历各表项中哈希值是否为20, 有效减少了 表项遍历次数。 0068 而且本实施例中为过滤预设时间内的重复报文, 实现频繁重复的数据对于后续数 据处理过程的干扰, 查找表中自动清理添加时长超过阈值的表项, 阈值根据预设时间设定, 比如为了实现过滤2s内的重复报文, 阈值可以设置为2s, 添加时长超过2s后的表项。

27、自动删 除, 从而保证在查找表中比对得到的重复报文均属于阈值内的重复报文。 而其中, 自动清理 查找表中添加时长超过阈值的表项的实现方式可以根据实际使用需求进行设定, 在此不做 赘述。 0069 另外, 本实施例中对于查找表的位宽不做限定, 可以外挂32bit位宽的DDR作为查 找表进行对比。 0070 步骤s130、 将哈希值作为DDR索引地址, 流水线执行查找表表项的读取以及表项匹 配操作; 0071 将哈希值作为DDR索引地址时, 可以直接读取查找表中与哈希值相同的表项, 哈希 值相同指示报文内容相同的表项, 报文内容相同是作为重复报文的基础, 直接获取哈希值 相同的表项进行重复报文的比。

28、对可以避免与大量报文内容不同的数据进行比对的过程, 极 大的提高了匹配效率。 0072 将哈希值作为DDR索引地址, 流水线执行查找表表项的读取以及表项匹配操作, 其 中, 流水线执行指下发对于哈希值的匹配读取查找命令后的哈希值查找等待时, 下发对于 下一个链路流量数据对应的哈希值的匹配读取查找命令。 0073 在下发查找命令后, 由于DDR返回接口有对应的时延, 传统控制方法下操作将进度 等待状态, 一直等到回读结果返回才会继续下一个查找匹配动作, 如图3所示为一种传统的 查找匹配示意图。 而为了提升大流量下的快速报文去重处理, 本实施例中提出了流水线 操作, 在下发查找命令后, 无需等待,。

29、 直接继续执行下一个查找命令, 直到发现有回读结果 后优先执行回读结果的匹配动作, 如图4所示为本实施例提供的一种流水线操作查找匹 配示意图, 可见在本实施例提供的方法中在传统方法下等待的时间内可以执行其他数据的 老化读取以及老化删除等操作(老化读取以及老化删除指查找表中清理添加时长超过阈值 的表项的过程), 本实施例提供的FPGA的流水线设计可以极大的提高了匹配查找的速度。 0074 在确定查找表中与哈希值相同的表项后将当前新添加的表项与该表项进行表项 匹配, 表项匹配的具体实现过程在此不做限定, 可以参照相关技术中的实现方式, 比如可以 比对流量身份信息是否相同。 由于查找表中的表项的添加。

30、时间均未达到阈值, 若存在匹配 的表项, 则可以判定当前比对的链路流量数据为重复报文。 0075 而若不存在与当前哈希值相同的表项时, 指示当前查找表中不存在与当前链路流 量数据内容相同的数据, 则链路流量数据非重复报文, 可以直接输出链路流量数据。 0076 步骤s140、 若不存在匹配表项, 判定链路流量数据非重复报文, 输出链路流量数 据; 说明书 5/9 页 8 CN 111770023 A 8 0077 若不存在匹配表项, 判定链路流量数据非重复报文, 可以直接输出链路流量数据。 0078 步骤s150、 若存在匹配表项, 判定链路流量数据为重复报文, 剔除链路流量数据。 0079 。

31、若存在匹配表项, 则可以判定当前链路流量数据为阈值时长内的重复报文, 可以 返回当前数据为重复报文的检测结果, 以便剔除链路流量数据, 实现报文去重。 0080 基于上述介绍, 本实施例提供的基于FPGA的报文去重方法调用基于哈希值作为读 取索引地址的查找表基于流水线操作进行报文重复匹配比对, 提高了去重比对的效率; 其 中, 由于流量数据的哈希值相对于流量数据本身数据长度大大缩短, 基于哈希值进行匹配 比对可以简化匹配比对实现技术难度, 提升匹配比对效率; 而且该方法中将哈希值作为读 取索引地址, 依照哈希值可以直接读取查找表中的历史表项中与该哈希值相同的表项进行 匹配比对, 避免了历史流量。

32、数据的遍历匹配, 简化了流量数据的重复比对过程, 在大带宽带 来的大量历史数据中查找简化效果更为显著, 该方法可以显著提升重复比对效率, 实现快 速报文去重。 0081 基于上述实施例, 在对链路流量数据基于整包内容进行哈希计算之前, 可以进一 步执行以下步骤: 对链路流量数据进行公共项信息裁剪以及非公共项信息替换, 以剥离链 路流量数据中的不相关数据。 0082 本实施例中提出在报文去重中忽略MAC地址, VLAN, TTL, CHECKSUM等不相关信息, 这些不相关信息是在不同的数据传输方式以及格式中对数据添加的信息, 为避免这些信息 对于数据报文内容的影响, 对报文进行hash值计算前。

33、需要对报文进行裁剪替换, 裁剪掉链 路报文数据中的公共项信息(指各链路流量数据除本身数据外的非必须包含的字段信息, 比如MAC地址, VLAN), 替换掉链路报文数据中的公共项信息(指各链路流量数据除本身数据 外的均包含的字段信息, 比如TTL, CHECKSUM), 替换具体可以为将字段置零, 或统一置其他 数字, 本实施例中对此不作限定。 进行公共项信息裁剪以及非公共项信息替换从而剥离掉 报文中不需要的信息, 裁剪替换后对链路流量数据进行哈希值的计算。 0083 上述实施例中指出自动清理查找表中添加时长超过阈值的表项的实现方式可以 根据实际使用情况进行设定, 本实施例中主要介绍一种实现方式。

34、, 不仅可以提升表项的老 化删除速度, 而且降低系统处理负担。 0084 一种自动清理查找表中添加时长超过阈值的表项的实现方法包括: 0085 (1)将识别信息添加至老化表的表项中, 并在老化表的表项中添加带有表项添加 时间的时间戳; 0086 其中, 老化表为先入先出DDR缓存空间, 则老化表中各表项按照插入时间排布, 如 图5所示为一种老化表先入先出读写示意图, 有新数据后按时间顺序插入老化表的尾部, 每 个表项数据带时间戳, 时间戳指向插入老化表的时间, 为了实现对于查找表中各表项的及 时超时清理, 尽量保证数据插入老化表的时间与插入查找表的时间尽量相同, 或者根据查 找表的清理阈值与插。

35、入老化表的时间差进行老化表的表项删除的阈值设定, 老化的时间差 值可以根据配置动态实现调整, 最高可支持1秒以内的表项老化时间。 本实施例中仅以前述 情况为例进行介绍, 即查找表的自动清理时间阈值与老化表中的阈值相同。 0087 (2)预读出老化表中最先写入的表项; 0088 其中, 预读的表项数量不做限定, 为提升老化删除的速度, 可以预读出16个最先写 入的老化表项进行比对。 说明书 6/9 页 9 CN 111770023 A 9 0089 (3)判断预读的表项的时间戳与当前时间的时间差是否超过阈值; 0090 时间戳与当前时间的时间差指示表项插入老化表的时间, 通过对比时间戳和当前 时。

36、间差距判断表项是否老化, 若时间差超过阈值, 指示表项的添加时间超过阈值, 需要删除 表项。 0091 (4)若是, 删除老化表中预读的表项以及在查找表中对应的表项; 若否, 预设时长 后执行预读出老化表中最先写入的表项的步骤。 0092 表项存在的时间大于1s时, 删除查找表和老化表中的该表项; 表项存在的时间未 达到1s后, 暂时不做处理, 等待超过预设时长后, 直到系统当前时间与表项的时间戳的时间 间的差值超过阈值, 把查找表和老化表中的该表项删除。 0093 本实施例中对于老化表的位宽不做限定, 可以外挂16bit位宽的DDR作为老化表进 行老化对比。 0094 进一步地, 可以在查找。

37、表的各表项添加重复老化计数器, 并设置重复老化计数器 的初始值为1; 0095 若存在匹配表项, 将匹配表项中的重复老化计数器加1; 0096 当接收到老化表对于匹配表项的老化删除指令后, 将匹配表项中的重复老化计数 器减1; 0097 当重复老化计数器减为0时, 将匹配表项删除。 0098 由于链路中重复报文可能不止一份且各个重复报文的到达时间间隔不定, 假设有 四个相同的报文每隔0.6s发送, 此时需要确保0.6s的第一个报文通过, 而1.2s、 1.8s以及 2.4s的报文都要丢弃, 为了支持多重复报文匹配过滤, 所查找的去重表项中放置一个8bit 位的重复老化计数器, 当有多个相同的报。

38、文输入时, 去重表项内的重复老化计数器加1, 老 化删除命令下发时计数器减1, 只有当计数器减为0时才会彻底删除该去重表项, 这就保证 了多个重复报文不同间隔时间大概依然能达到正确去重效果。 0099 请参考图6, 图6为本实施例提供的基于FPGA的报文去重装置的结构框图; 主要包 括: 数据获取模块210、 表项添加模块220、 表项匹配模块230、 第一判别模块240以及第二判 别模块250。 本实施例提供的基于FPGA的报文去重装置可与上述基于FPGA的报文去重方法 相互对照。 0100 其中, 数据获取模块210主要用于获取链路流量数据, 对链路流量数据进行哈希计 算, 得到哈希值; 。

39、0101 表项添加模块220主要用于提取链路流量数据中的流量身份信息, 并将流量身份 信息以及哈希值作为链路流量数据的识别信息, 添加至查找表的表项中; 其中, 查找表中自 动清理添加时长超过阈值的表项; 0102 表项匹配模块230主要用于将哈希值作为DDR索引地址, 流水线执行查找表表项的 读取以及表项匹配操作; 0103 第一判别模块240主要用于若不存在匹配表项, 判定链路流量数据非重复报文, 输 出链路流量数据; 0104 第二判别模块250主要用于若存在匹配表项, 判定链路流量数据为重复报文, 剔除 链路流量数据。 0105 上述实施例提供了一种基于FPGA的报文去重装置的模块功能。

40、分配方式, 不同的功 说明书 7/9 页 10 CN 111770023 A 10 能模块的分配方式不做限定, 本实施例提供另一种模块的功能划分方式, 主要包括: 报文解 析及hash值计算模块、 去重查找模块以及老化表查找模块, 各模块的连接示意图如图7所 示, 相应的工作流程如图8所示。 0106 在FPGA的多接口接入汇聚接收到去重前的数据流后, 将其输入至报文解析及hash 值计算模块, 报文解析及hash值计算模块通过解析所接收的报文, 提取出流量的源目IP和 IP ID号, 对报文进行裁剪替换, 剥离掉报文头不需要的信息, 并且将不关心的字段置位为 0, 裁剪替换后对整包采取CRC。

41、32的hash计算, 得出最终的整包hash值, 将所提取的IP、 IP ID、 HASH值送入去重表查找模块进行去重的查找匹配。 同时该模块还回读去重查找后的结 果, 根据匹配结果丢弃重复报文, 转发非重复报文。 0107 去重查找模块, 将输入的匹配动作进行DDR索引(指把哈希值作为读取索引地址, 把报文的哈希值写入表中, 读取查找表中的表项(指固定长度的值)查找, 将输入的hash值 作为DDR(Double Data Rate SDRAM双倍速率同步动态随机存储器)的索引地址, 读出去重 表项并匹配对比, 返回对比的匹配结果后送出, 同时将当前报文所查找的项生成老化写入 命令送给老化查。

42、找表模块。 同时本模块接收老化表查找模块的老化删除命令, 也进行DDR索 引查找, 并将对应的表项进行删除。 0108 老化表查找模块接收到去重表查找模块的老化插入命令后, 将当前时间的时间戳 附加到表项里去, 并按照顺序写入到DDR缓存, 整个16bit的老化表项DDR的内存项组织成一 个FIFO的形式, 实现first-in-first-out的先入先出的读写顺序。 老化查找采用预读的方 式, 提前读出16个最先写入的老化表项, 同时预读出时间戳最老的表项, 通过对比时间戳和 当前时间差距, 判断是否老化(删除)当前的查找表项。 如果需要老化, 则传送老化删除命令 给去重表查找模块, 以删。

43、除老化表与查找表中的老化表项。 0109 本实施例提供的基于FPGA的报文去重装置基于FPGA实现, 整个功能块移植方便, 而且只需通过增加外挂DDR个数的方式, 即可成倍的加速对比过滤速度。 而且在去重查找模 块中采用的是源IP+目的IP+源端口+目的端口+协议号+流ID这些关键字来进行判断, 采用 的是全包内容hash加源IP+目的IP+流ID的对比匹配方式, 过滤精度非常高; 同时去重查找 模块中可以基于FPGA的 “查找-匹配” 的流水线实现, 避免无谓的等待周期, 可以极大的提高 整体的读写匹配速度, 而且在去重查找模块中可以设置重复老化计数器, 让多个报文不同 间隔的重复报文也能达。

44、到精准的去重结果。 0110 经过检测, 本实施例提供的装置可以达到100G的去重过滤能力, 支持多个重复报 文匹配, 且去重精度高达99.99, 可以实现高效快速精准去重。 0111 本实施例提供一种FPGA芯片, 该芯片主要实现如上述实施例介绍的基于FPGA的报 文去重方法的步骤, 具体可参照上述基于FPGA的报文去重方法的介绍。 芯片中具体的接口 以及模块设置可以参照图7的介绍, 各接口以及模块间的协同工作可以参照图8的介绍, 在 此不再赘述。 0112 上面图1所描述的基于FPGA的报文去重方法中的步骤可以由本实施例介绍的FPGA 实现。 0113 说明书中各个实施例采用递进的方式描述。

45、, 每个实施例重点说明的都是与其他实 施例的不同之处, 各个实施例之间相同相似部分互相参见即可。 对于实施例公开的装置而 言, 由于其与实施例公开的方法相对应, 所以描述的比较简单, 相关之处参见方法部分说明 说明书 8/9 页 11 CN 111770023 A 11 即可。 0114 专业人员还可以进一步意识到, 结合本文中所公开的实施例描述的各示例的模块 及算法步骤, 能够以电子硬件、 计算机软件或者二者的结合来实现, 为了清楚地说明硬件和 软件的可互换性, 在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。 这些 功能究竟以硬件还是软件方式来执行, 取决于技术方案的特定应用和设。

46、计约束条件。 专业 技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能, 但是这种实现不应 认为超出本申请的范围。 0115 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、 处理器执 行的软件模块, 或者二者的结合来实施。 软件模块可以置于随机存储器(RAM)、 内存、 只读存 储器(ROM)、 电可编程ROM、 电可擦除可编程ROM、 寄存器、 硬盘、 可移动磁盘、 CD-ROM、 或技术 领域内所公知的任意其它形式的存储介质中。 0116 以上对本申请所提供的基于FPGA的报文去重方法、 装置及FPGA芯片进行了详细介 绍。 本文中应用了具体个例对本申请的原理及实。

47、施方式进行了阐述, 以上实施例的说明只 是用于帮助理解本申请的方法及其核心思想。 应当指出, 对于本技术领域的普通技术人员 来说, 在不脱离本申请原理的前提下, 还可以对本申请进行若干改进和修饰, 这些改进和修 饰也落入本申请权利要求的保护范围内。 说明书 9/9 页 12 CN 111770023 A 12 图1 说明书附图 1/5 页 13 CN 111770023 A 13 图2 图3 说明书附图 2/5 页 14 CN 111770023 A 14 图4 图5 图6 说明书附图 3/5 页 15 CN 111770023 A 15 图7 说明书附图 4/5 页 16 CN 111770023 A 16 图8 说明书附图 5/5 页 17 CN 111770023 A 17 。

展开阅读全文
内容关键字: 基于 FPGA 报文 方法 装置 芯片
关于本文
本文标题:基于FPGA的报文去重方法、装置及FPGA芯片.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10296291.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1