一种基于FPGA和hash算法的网络分流装置和方法与流程

文档序号:36896081发布日期:2024-02-02 21:27阅读:25来源:国知局
一种基于FPGA和hash算法的网络分流装置和方法与流程

本发明涉及计算机通信领域,尤其是涉及一种基于fpga和hash算法的网络分流装置和方法。


背景技术:

1、随着以太网技术和光纤通信技术的应用,骨干网带宽的增长以及规模的扩大,大规模的网络流量采集面临着数据规模庞大和流量日益复杂的挑战,这就需要利用网络分流技术对流量进行分类归并和低负载数据传输,来降低流量处理过程的负载开销。

2、目前常见的网络分流技术有tcam查找和hash查找,由于hash查找具有成本低、功耗小的特点,因此受到广泛应用。

3、hash一般叫做散列算法,就是把任意长度的输入通过散列算法,变换成固定长度的输入,相当于一种压缩映射,将任意长度的消息压缩到某一固定长度的消息摘要的函数。

4、目前的hash查找方法通常是将所有的关键特征信息经过hash处理生成特定长度的索引值,由于特征信息急剧减少,信息压缩率很大,导致产生冲突的可能性非常大,需要花费很多的资源和时间来处理冲突。

5、将关键特征信息进行分段hash算法处理,可以有效的减少冲突。利用fpga并行处理的特点,可以加快处理速度。结合两者的优点,能为网络分流找到一个效率更高的方案。


技术实现思路

1、为了解决网络数据庞大、无法快速从海量数据中提取有效信息的问题,本发明提供了一种基于fpga和hash算法的网络分流装置和方法,通过将关键特征信息进行分段hash算法处理,并利用fpga并行处理的特点,实现了一种基于fpga和分段hash的方法来进行网络数据流量的过滤分流,达到有效数据的快速提取处理的目的。

2、本发明采取的技术方案是:一种基于fpga和hash算法的网络分流装置,基于zynqultrascale+soc处理器平台实现,包括pc机、zynq ultrascale+soc芯片、fpga芯片、qdr存储器和若干qsfp光模块;

3、zynq ultrascale+soc芯片通过千兆以太网口与远程pc机连接,接收pc的规则配置指令,将规则的多个特征值分段进行hash算法处理,通过fpga芯片将规则存储到qdr存储器;

4、fpga芯片与zynq ultrascale+soc芯片通过serdes接口连接,负责将zynqultrascale+soc芯片的规则存储到qdr存储器,并从流量数据中提取特征值,在qdr存储器中搜索与流量数据特征匹配的规则,将匹配的流量数据输出到配置的qsfp光模块;

5、qdr存储器与fpga芯片通过hstl数字集成电路接口连接,负责存储经过zynqultrascale+soc芯片处理的规则和临时流量数据的缓存;

6、qsfp光模块与fpga芯片通过serdes接口连接,负责接收光信号,将光信号转换为电信号传给fpga进行流量数据处理;并且负责接收fpga转发的流量数据,转换为光信号发送出去。

7、一种基于fpga和hash算法的网络分流装置,zynq ultrascale+soc芯片组成规则管理单元功能模块,fpga芯片组成流量处理单元功能模块,qdr存储器组成规则存储单元功能模块,qsfp光模块组成流量输入单元功能模块和流量输出单元功能模块。

8、流量输入单元功能模块包括qsfp、sfp、msa一种或多种光转电信号输入模块。流量输出单元功能模块包括qsfp、sfp、msa一种或多种光转电信号输出模块。

9、规则管理单元功能模块对规则进行分段hash算法处理,根据hash算法的结果为每个分段分配索引地址,然后通过所述流量处理单元将规则数据按照约定方式配置到所述规则存储单元。

10、从流量数据中提取特征值,是fpga先对流量数据进行缓冲处理,然后从流量数据中提取ip五元组特征信息,同时对每个元组进行hash算法处理,计算出每一个元组的hash索引值。

11、qdr存储器将规则分成若干个地址块进行存储,地址块的数量由分段的数量决定,支持的最大分段数量由qdr存储器总容量决定。

12、一种基于fpga和hash算法的网络分流方法,包括:

13、步骤1,规则配置;

14、(1-1)规则预处理;是zynq ultrascale+soc芯片接收到pc下发的配置规则指令,先对规则的合法性进行判断,然后对规则去重,最后为规则分配规则id,规则id唯一标识一条规则;

15、(1-2)分段hash算法处理ⅰ;是对ip五元组规则的每个元组分别进行hash算法计算得出hash索引值,然后检查hash索引值是否存在冲突,若存在冲突,将该规则的id存入冲突列表,并更新冲突数量;

16、(1-3)计算规则存储地址;是对分段生成的索引值进行地址映射换算,包括冲突的规则;

17、(1-4)将规则配置到规则存储单元;是zynq ultrascale+soc芯片通过serdes接口,按照与fpga芯片约定的格式,发送需要配置的地址与值,fpga芯片将值存储到qdr存储器相应的地址;

18、步骤2,流量处理;

19、(2-1)流量缓冲处理;是fpga芯片接收流量输入单元发送的流量包,放入fifo缓存;

20、(2-2)ip五元组特征提取;是fpga芯片按照以太网包的结构提取ip五元组信息;

21、(2-3)分段hash算法处理ⅱ;是对提取出的ip五元组信息的每个元组分别进行hash算法计算hash索引值,计算每个元组对应的qdr存储器中的地址;

22、(2-4)qdr匹配查询;是根据每个元组的地址读出相应的规则id、冲突数量和冲突地址;若冲突数量为0,直接比较5个元组的规则id是否相同,相同则命中;若冲突数量不为0,则根据冲突地址获取另外的规则id,然后分别比较,找出5个元组都相同的规则id;找出,则命中;未找出,则不命中;

23、(2-5)包结果处理;是从fpga芯片的fifo缓存中将以太网包取出,同时根据返回的结果决定包的结果;命中,则转发;不命中,则丢弃;

24、(2-6)流量转发处理;是将需要转发的流量发送到配置的流量输出单元,流量输出单元将流量转发出去;

25、通过以上步骤,完成了基于fpga和hash算法的网络分流功能。

26、本发明的有益效果是:

27、本发明提供了一种基于fpga和hash算法的网络分流装置和方法,充分利用了fpga并行计算的特点,加快了处理速度,同时将接入的大流量数据经过关键特征信息进行分段hash算法处理,提取出有效的流量,根据需求将符合要求的流量从不同的端口转发出去,达到网络数据分流的效果,有效的减少了冲突。



技术特征:

1.一种基于fpga和hash算法的网络分流装置,包括pc机,基于zynq ultrascale+soc处理器平台实现,其特征在于,还包括zynq ultrascale+soc芯片、fpga芯片、qdr存储器和若干qsfp光模块;

2.根据权利要求1所述的一种基于fpga和hash算法的网络分流装置,其特征在于,所述zynq ultrascale+soc芯片组成规则管理单元功能模块,所述fpga芯片组成流量处理单元功能模块,所述qdr存储器组成规则存储单元功能模块,所述qsfp光模块组成流量输入单元功能模块和流量输出单元功能模块。

3.根据权利要求2所述的一种基于fpga和hash算法的网络分流装置,其特征在于,所述流量输入单元功能模块包括qsfp、sfp、msa中的一种或多种类型的光转电信号模块。

4.根据权利要求2所述的一种基于fpga和hash算法的网络分流装置,其特征在于,所述流量输出单元功能模块包括qsfp、sfp、msa中的一种或多种类型的光转电信号模块。

5.根据权利要求2所述的一种基于fpga和hash算法的网络分流装置,其特征在于,所述规则管理单元功能模块对规则进行分段hash算法处理,根据hash算法的结果为每个分段分配索引地址,然后通过所述流量处理单元将规则数据按照约定方式配置到规则存储单元。

6.根据权利要求1所述的一种基于fpga和hash算法的网络分流装置,其特征在于,所述从流量数据中提取特征值,是fpga先对流量数据进行缓冲处理,然后从流量数据中提取ip五元组特征信息,同时对每个元组进行hash算法处理,计算出每一个元组的hash索引值。

7.根据权利要求1所述的一种基于fpga和hash算法的网络分流装置,其特征在于,所述qdr存储器将规则分成若干个地址块进行存储,地址块的数量由分段的数量决定,支持的最大分段数量由qdr存储器总容量决定。

8.一种基于fpga和hash算法的网络分流方法,其特征在于,所述方法包括如下步骤:

9.根据权利要求8所述的一种基于fpga和hash算法的网络分流方法,其特征在于,所述规则预处理,是zynq ultrascale+soc芯片接收到pc下发的配置规则指令,先对规则的合法性进行判断,然后对规则去重,最后为规则分配规则id;所述分段hash算法处理ⅰ,是对ip五元组规则的每个元组分别进行hash算法计算得出hash索引值,然后检查hash索引值是否存在冲突,若存在冲突,将该规则的id存入冲突列表,并更新冲突数量;所述计算规则存储地址,是对分段生成的索引值进行地址映射换算,包括冲突的规则;所述将规则配置到规则存储单元,是zynq ultrascale+soc芯片按照与fpga芯片约定的格式,发送需要配置的地址与值,fpga芯片将值存储到qdr存储器相应的地址。

10.根据权利要求8所述的一种基于fpga和hash算法的网络分流方法,其特征在于,所述流量缓冲处理,是fpga芯片接收流量输入单元发送的流量包,放入fifo缓存;所述ip五元组特征提取,是fpga芯片按照以太网包的结构提取ip五元组信息;所述分段hash算法处理ⅱ,是对提取出的ip五元组信息的每个元组分别进行hash算法计算hash索引值,计算每个元组对应的qdr存储器中的地址;所述qdr匹配查询,是根据每个元组的地址读出相应的规则id、冲突数量和冲突地址;若冲突数量为0,直接比较5个元组的规则id是否相同,相同则命中;若冲突数量不为0,则根据冲突地址获取另外的规则id,然后分别比较,找出5个元组都相同的规则id;找出,则命中;未找出,则不命中;所述包结果处理,是从fpga芯片的fifo缓存中将以太网包取出,同时根据返回的结果决定包的结果;命中,则转发;不命中,则丢弃;所述流量转发处理,是将需要转发的流量发送到配置的流量输出单元,流量输出单元将流量转发出去。


技术总结
一种基于FPGA和hash算法的网络分流装置和方法,包括PC机、Zynq Ultrascale+Soc芯片、FPGA芯片、QDR存储器和若干QSFP光模块。Zynq Ultrascale+Soc芯片与远程PC机互连,接收规则配置指令,并将规则的多个特征值分段进行hash算法处理,通过FPGA芯片存储到QDR存储器;QSFP光模块将接收的数据放入FPGA芯片缓存;FPGA芯片从数据中提取IP五元组特征信息并进行hash算法处理,计算每一元组的hash索引值,到QDR存储器中进行匹配查找,命中规则后将缓存的数据通过QSFP光模块发送出去,实现了网络数据的分类归并及数据分流的目的。

技术研发人员:杨小燕,王佳成,杜林颖,李振华,宫铭赫
受保护的技术使用者:天津光电通信技术有限公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1