收藏 分销(赏)

一种基于软硬件协同的流分类技术研究_赵大胜.pdf

上传人:自信****多点 文档编号:477488 上传时间:2023-10-16 格式:PDF 页数:4 大小:1MB
下载 相关 举报
一种基于软硬件协同的流分类技术研究_赵大胜.pdf_第1页
第1页 / 共4页
一种基于软硬件协同的流分类技术研究_赵大胜.pdf_第2页
第2页 / 共4页
一种基于软硬件协同的流分类技术研究_赵大胜.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、舰 船 电 子 工 程2022 年第 11 期1引言某型万兆网络密码机采用红黑隔离架构,红黑区处理单元均基于通用处理器实现,红黑区之间以FPGA加密卡隔离。网络密码机内置ACL规则表,每行规则包含行号、五元组各字段范围(上限、下限)、优先级和动作(密传/明传/丢弃)等信息。CPU根据来包的五元组信息在规则表中进行分类匹配,决定后续处理,如密传/明传/丢弃等。该项目流分类技术难点主要有三点,第一要支持万兆速率下线速流分类,当包长为64字节时每秒需进行14.88兆次流分类;第二要支持五元组各字段的范围匹配,不同于传统算法中IP地址字段仅支持掩码匹配或精确匹配;第三要支持ACL规则表实时更新,这使得

2、基于规则表预生成二叉树的范围匹配算法难以适用。FPGA可实现范围匹配和规则表快速更新,但如每个数据包均由FPGA计算匹配的规则行号,再将行号返回CPU则总线通信开销极大13。本文基于设备硬件架构,设计了一种软硬件协同的流分类算法。对于各数据流的首包,使用FPGA进行范围匹配,并在CPU侧建立对应流表;该流收稿日期:2022年5月8日,修回日期:2022年6月19日基金项目:湖北省重点研发计划项目(编号:2020BAB103)资助。作者简介:赵大胜,男,研究员,研究方向:无线通信及网络加密。黄馨,女,高级工程师,研究方向:计算机软件。周愚,男,高级工程师,研究方向:FPGA算法及逻辑设计。一种基

3、于软硬件协同的流分类技术研究赵大胜黄馨周愚(武汉船舶通信研究所武汉430205)摘要流分类指根据IP包的五元组信息在规则表中进行匹配分类。某网络密码机使用通用处理器进行流分类和报文处理,但现有流分类算法无法在通用处理器上同时支持五元组线速范围匹配和规则库实时更新。论文基于软硬件协同方式解决该问题,对数据流首包基于FPGA进行范围匹配并在CPU侧建立流表,后续包则基于CPU进行流表哈希匹配,并设计了规则库和流表同步更新机制,可满足万兆线速流分类要求且显著降低计算开销和通信开销。关键词流分类;范围匹配;布谷鸟哈希;规则表更新中图分类号TN915.05DOI:10.3969/j.issn.1672-

4、9730.2022.11.015Research on a Flow Classification Algorithm with Software andHardware CooperationZHAO DashengHUANG XinZHOU Yu(Wuhan Maritime Communication Institute,Wuhan430205)AbstractFlow classification matches a packet headers 5 tuple against the predefined rule set.A network encryption machineus

5、es a CPU for flow classification and packet processing.But the existing flow classification algorithms cannot support theline-speed range matching and real-time rule set modification on CPU at the same time.In this paper,the problem with softwareand hardware cooperation is solved.The range matching

6、on the first packet of the data stream on FPGA is performed and a flow tableitem on the CPU side is established,then flow table hash matching on subsequent packets with CPU is performed.A synchronous update mechanism of rule set and flow table is designed.It can meet the requirements of 10G network

7、and significantly reduce computation and communication overhead.Key Wordsflow classification,range match,Cuckoo hash,rule set updatingClass NumberTN915.05总第 341 期2022 年第 11 期舰 船 电 子 工 程Ship Electronic EngineeringVol.42 No.1165总第341期的后续包在CPU侧基于流表进行哈希精确匹配,可大幅度降低计算开销和通信开销。此外,设计了基于计数器同步的规则表和流表的实时分布式更新机制

8、,由入站流量触发动态更新,可降低更新流表的计算开销。2流分类技术研究现状流分类的规则匹配分为精确匹配、掩码匹配和范围匹配,其中范围匹配实现难度最大。五元组范围匹配实现方式包括TCAM芯片匹配、CPU侧二叉树范围匹配和FPGA侧向量匹配方式16。TCAM芯片常用于掩码匹配,将之用于范围匹配需要将规则展开成多行以进行掩码匹配,存在规则过度扩展问题,例如3bit范围 1,8)展开为3条掩码规则 001,01*,1*。多个字段则展开项为幂次关系,TCAM存储空间有限且匹配条目过多时功耗显著增加,因此在采用大规则表时,规则表拆解为掩码造成的规则条目过度扩张将使得TCAM芯片难以满足要求45。CPU侧范围

9、匹配原理是基于规则表构建二叉树进行范围匹配,二叉树的构建方式不同影响搜索深度和搜索效率。学术界提出了不少优化算法,利用规则表统计特性提高效率,典型代表为 Hypercut、Bitcut等算法69。但此类算法存在三个问题,第一,二叉树深度与规则表统计特性相关,不具普适性,使得流分类延时不固定;第二,当规则库修改后,二叉树需要重新构建,不能支持规则库实时更新;第三,其计算开销较大,目前常用的软件流分类算法处理10Gbps速率时,Bitcut等算法要使用四核Intel E3-1225志强处理器的三个核心。FPGA侧基于向量匹配实现范围匹配,典型算法为 StrideBV 和 QuYun 多域分类算法1

10、011。其将五元组的各字段分别进行范围匹配,获得五个N行列向量(N为规则表行数),其中对应行为1则表示该字段在匹配范围内,否则为0;而后将五个列向量相与,结果为1的行为匹配行,当有多个匹配行时再进行优先级比较,选择最高优先级的行作为最终匹配成功行。向量匹配方式对规则表具有普适性,任何规则均能适配,其中StrideBV存储开销较大,本项目基于QuYun多域分类算法实现FPGA侧流分类处理。3算法描述3.1流分类处理流程当数据流通过网卡进入CPU后,CPU首先根据五元组哈希值查询流表,如果查询不到则将五元组通过PCIe总线交FPGA处理。FPGA返回五元组信息及匹配到的行号,CPU收到匹配结果后建

11、立对应的流表表项。CPU对该流后续包计算hash值,在哈希桶中获取流表index索引值,根据该值在流表中进行索引,获取对应的规则表行号,进而使用该行号索引规则表,根据规则表中规则进行对应处理。流分类示意图如图1所示。图1流分类流程以下以1024行规则为例,介绍FPGA侧流分类引擎处理流程。流分类引擎由8个五元组匹配模块(PE)和8个优先级比较模块(PR)组成。每个PE包含128行五元组比较单元(LINE),每个PR处理128行规则的优先级比较。PE中每个LINE对应一行规则,包含5个比较器FE,每个FE处理五元组中的一个字段的范围比较,5个FE结果相与作为该行范围匹配的结果。PR中128行的比

12、较器采用两两比较方式,横向多级比较后输出该 128 行匹配结果。图2FPGA流分类引擎流分类引擎采用二维流水线方式,五元组沿PE纵向移动匹配,每个PE将匹配结果送入PR中进行优先级比较,PR优先级比较的结果(匹配与赵大胜等:一种基于软硬件协同的流分类技术研究66舰 船 电 子 工 程2022 年第 11 期否、行号、优先级)沿各PR纵向移动匹配,本PR与上一个 PR 中结果比较后将结果送入下一个 PR中。FPGA侧修改规则表参数相对容易,修改规则仅需修改BRAM或寄存器中对应值即可,删除规则将对应行无效即可。FPGA流分类引擎组成如图2所示。CPU 侧流表匹配使用 DPDK 自带的 Cucko

13、ohash算法,又称布谷鸟哈希,由于其结构紧凑(CPUCache友好),空间利用率高且访存性能确定,被Intel公司用于DPDK数据转发平面查表操作。布谷鸟哈希查找首先利用主 hash 函数对五元组计算hash值,对hash值取余或移位作为主表哈希桶索引在该桶中查找,哈希桶中包含8个hash值高位字节(832bit)和8个index值(832bit)。如果hash值匹配则返回流表索引 index,index 用于指示流表行号。如果主表未查到,则利用副hash函数在副表中查找。布谷鸟哈希插入时采用hash桶方式,并使用主表、副表进一步降低冲突概率,如果发生冲突则将原位置数据移出,再进行插入操作。

14、DPDK实现的hash库的最大优点,在于其一次查找到时间具有上限。官方试验结果表明,只有当哈希表节点使用率达到95时才会出现插入失败,在50以下时基本可以保证绝大部分节点都保存在主哈希桶中12。流表匹配过程如图3所示,图中设置计数器目的是解决规则表修改后流表的分布式更新。3.2规则表更新处理流程规则表仅千行量级,但流表数以百万计,为降低开销,本文通过对流表和规则行设置计数器实现由数据流触发的分布式同步更新。对于两行规则A、B而言,如果存在交集,则指有数据流同时满足A规则和B规则。对于交集中的流分类应选择优先级高的规则行作为匹配结果。因此,对某行规则的修改可能会影响与之有交集的对应行。规则更新包

15、括删除行、插入行和修改行,各种操作对流表影响不同,以下分别分析。在规则表中删除行操作:删除时把对应行号的使能值调整为0。则数据流进入时,CPU查阅规则表后发现该行已失效,会触发FPGA重新计算流分类值进而更新对应流表。在规则表中插入行操作:将某行插入时需要计算与该行有交集的规则行,如果本行优先级高于与之有关联的行,则将相关关联行的计数值加一,在有相关数据流时触发关联行涉及流表的重新计算。在规则表中修改行操作:规则表修改涉及范围修改和优先级修改,与插入行影响类似。此时需要计算与之有交集的规则行,如果待修改行的优先级高于交集中关联规则行,则相应关联规则行的计数值加一。图3CPU侧流表匹配流程规则表

16、修改流程如图4所示。4效能分析设计关注的指标包括流表插入速率、检索速率、规则更新速度和通信开销等,利用 Intel XeonE5-2699志强处理器和Xilinx公司的K7325T FPGA进行测试验证。流表插入方面,目前DPDK18.05使用 的 哈 希 算 法 为 Sameh Gobriel 等 学 者 设 计 的RTE-Hash布谷鸟哈希算法,3200万条五元组流表可放入cache内。使用4个CPU核时流表插入速率可达20MPPS(Packet Per Second),使用8个核时插入速率超过 35MPPS12。流表检索方面,使用单CPU 核 时 100 万 条 流 表 哈 希 查 找

17、速 率 超 过67总第341期16MPPS,3200万条流表查找速率超过15MPPS,使用4个CPU核进行流表查找时千万级流表查找速率 超 过 50MPPS,FPGA 侧 进 行 范 围 匹 配 时 在K7325T上时钟频率可达200MHz,流分类速度达到400MPPS,二者组合后远远超过万兆 64字节小包的14.88MPPS线速流分类要求。规则更新方面,涉及FPGA侧规则更新和CPU侧规则更新。FPGA侧更新仅需更新BRAM或寄存器中参数值,更新速度可达一百万次/秒11。CPU侧处理规则更新时,删除规则仅需将规则表中对应行失效即可,修改规则时需要计算与之有交集的规则行,当程序在E5-2699

18、CPU上运行时,对于1000条规则计算时延小于0.5ms,因此规则更新速度可达2000次/秒。通信开销方面,仅流的首包需要涉及CPU与FPGA间总线开销,后续包由CPU自行进行流分类,以一个流平均20包计算,相比FPGA流分类再将结果返还CPU方式,可以节约95的总线通信开销。图4规则表修改流程5结语本文提出的软硬件协同流分类算法,可支持流分类范围匹配和流分类规则的快速更新。在FPGA上采用成熟的范围匹配算法,在CPU侧使用DPDK自带的布谷鸟哈希算法,降低了开发风险和难度。并通过在流表和规则表中设置计数器,实现了由流触发的流表自动更新机制,可以显著降低流表计算开销和规则更新时延。参 考 文

19、献1N.McKeown,T.Anderson,H.Balakrishnan.OpenFlow:Enabling innovation in campus networks C/SIGCOMM,2008,2(38):69-74.2P.Gupta,N.McKeown.Algorithms for packet classification J.IEEE Network.,2001,2(15):24-32.3 P.Gupta,N.McKeown.Dynamicalgorithmswithworst-case performance for packet classification C/NETWOR

20、KING 2000:Networking 2000 Broadband Communications,2000:528-539.4F.Yu,R.H.Katz,T.V.Lakshman.Efficient multimatchpacket classification and lookup with TCAM J.IEEE Micro,2005,1(25):50-59.5K.Lakshminarayanan,A.Rangarajan,S.Venkatachary.Algorithms for advanced packet classification with ternaryCAMs C/SI

21、GCOMM,2005,4(35):193-204.6亓亚烜,李军.高性能网包分类理论与算法综述 J.计算机学报,2013,36(2):408-421.7郑凌.高性能SDN数据面若干关键技术研究 D.西安:西安电子科技大学,2019:25-60.8S.Singh,F.Baboescu,G.Varghese.Packet classificationusingmultidimensionalcutting C/ACMSigcomm,2003:213-224.9LIU Zhi,SUN Shijie,et al.BitCuts:A fast packet classification algorith

22、m using bit-level cuttingJ.ComputerCommunications,2017,109(1):38-52.10 T.Ganegedara,V.K.Prasanna.StrideBV:Single Chip400G+Packet ClassificationC/Proceeding of HPSR,2012:1-6.11Yun R.Qu,Viktor K.Prasanna.High-Performance andDynamically Updatable Packet Classification Engine onFPGA J.IEEE Transaction on Parallel and DistributedSystems,2016,27(1):197-209.12Sameh Gobriel,Charlie Tai.Flow Classification optimizations in DPDKC/Intel DPDK US Summit-San Jose,2016:1-10.赵大胜等:一种基于软硬件协同的流分类技术研究68

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 品牌综合 > 临存文档

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服