System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于NETMAP的FPGA算法卡调用处理方法及系统技术方案_技高网

基于NETMAP的FPGA算法卡调用处理方法及系统技术方案

技术编号:41695836 阅读:2 留言:0更新日期:2024-06-19 12:31
基于NETMAP的FPGA算法卡调用处理方法及系统,该方法从第一网口接收到客户发来的网络数据包;NETMAP内核驱动从内核数据包池中提取一个数据包,将接收到网络数据包的数据拷贝至从内核数据包池中提取的数据包;业务处理程序解析数据包,将数据包发送到第二网口;FPGA算法卡通过数据包的控制头之后的实际网络数据包内容进行算法计算;将计算后的数据包发送到第二网口;业务处理程序将数据包发送到第一网口;NETMAP内核驱动将数据包偏移第一数量字节之后的存储物理地址,赋值到DMA ENGINE的BD数组的对应位置,通知第一网口发送数据。本发明专利技术解决了FPGA算法卡调用性能低,网络数据包的处理性能差,CPU压力大的问题。

【技术实现步骤摘要】

本专利技术涉及计算机网络通信,具体涉及一种基于netmap的fpga算法卡调用处理方法及系统。


技术介绍

1、netmap是一个高性能收发原始数据包的框架,由luigi rizzo等人开发完成,其包含了内核模块以及用户态库函数。其目标是不修改现有操作系统软件以及不需要特殊硬件支持,实现用户态和网卡之间数据包的高性能传递。

2、fpga(field-programmable gate array)即现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发展的产物,作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

3、目前,现有技术中,服务器密码机主要是通过硬件算法卡实现算法的调用式服务。对于小型服务器密码机而言,cpu的接口往往并不丰富,无法使用pci-e等高速接口。

4、如何提高fpga算法卡调用性能,提升网络数据包的处理性能,减少cpu压力是亟待解决的问题。


技术实现思路

1、为此,本专利技术提供一种基于netmap的fpga算法卡调用处理方法及系统。以解决fpga算法卡调用性能低,网络数据包的处理性能差,cpu压力大的问题。

2、为了实现上述目的,本专利技术提供如下技术方案:基于netmap的fpga算法卡调用处理方法,包括:

3、调用数据接收模块,从第一网口接收到客户发来的网络数据包;

4、netmap内核驱动从内核数据包池中提取一个数据包,将从第一网口接收到所述网络数据包的数据拷贝至从内核数据包池中提取的数据包;数据拷贝时,将所述从内核数据包池中提取的数据包的前第一数量字节作为预留空间,第一数量字节之后是所述网络数据包的数据;

5、业务处理程序通过调用netmap用户态lib库接收所述从内核数据包池中提取的数据包;业务处理程序解析所述从内核数据包池中提取的数据包,判断网络数据包类型,识别出用户自定义协议报文、非ip报文和ip报文并进行解析,得到相应信息;

6、业务处理程序通过根据解析出的所述相应信息,按需填充所述从内核数据包池中提取的数据包的前第一数量字节;所述从内核数据包池中提取的数据包的前第一数量字节是cpu与fpga算法卡通信的控制协议头;

7、业务处理程序通过调用netmap用户态lib库,使用零拷贝方式,将所述从内核数据包池中提取的数据包发送到第二网口;

8、fpga算法卡从第二网口接收到所述从内核数据包池中提取的数据包,fpga算法卡通过所述从内核数据包池中提取的数据包的前第一数量字节控制头,对所述从内核数据包池中提取的数据包第一数量字节之后的实际网络数据包内容进行算法计算;计算完成后,fpga算法卡将计算后的数据包发送到第二网口;

9、业务处理程序通过调用netmap用户态lib库,接收第二网口的所述计算后的数据包;并使用零拷贝的方式,将所述计算后的数据包发送到第一网口;

10、netmap内核驱动检测到第一网口的发送缓冲队列中有要发送出去的所述计算后的数据包,netmap内核驱动将所述计算后的数据包偏移第一数量字节之后的存储物理地址,赋值到dma engine的bd数组的对应位置,完成后netmap内核驱动通知第一网口发送数据。

11、作为基于netmap的fpga算法卡调用处理方法优选方案,所述相应信息包括:协议号、源ip、目的ip、源端口号、目的端口号信息。

12、作为基于netmap的fpga算法卡调用处理方法优选方案,所述ip报文通过ip头中的协议字段识别出tcp报文、udp报文和指定类型报文,解析出所述协议号、所述源ip和所述目的ip信息。

13、作为基于netmap的fpga算法卡调用处理方法优选方案,业务处理程序通过所述tcp报文的格式对所述tcp报文进行解析,解析出所述源端口号和目的端口号信息。

14、作为基于netmap的fpga算法卡调用处理方法优选方案,业务处理程序通过所述udp报文格式对所述udp报文进行解析,解析出所述源端口号和目的端口号信息。

15、本专利技术还提供一种基于netmap的fpga算法卡调用处理系统,包括:

16、数据接收模块,用于从第一网口接收到客户发来的网络数据包;

17、netmap内核驱动数据拷贝模块,用于从内核数据包池中提取一个数据包,将从第一网口接收到所述网络数据包的数据拷贝至从内核数据包池中提取的数据包;数据拷贝时,将所述从内核数据包池中提取的数据包的前第一数量字节作为预留空间,第一数量字节之后是所述网络数据包的数据;

18、业务处理程序数据判断、解析模块,用于通过调用netmap用户态lib库接收所述从内核数据包池中提取的数据包;业务处理程序解析所述从内核数据包池中提取的数据包,判断网络数据包类型,识别出用户自定义协议报文、非ip报文和ip报文并进行解析,得到相应信息;

19、业务处理程序数据填充模块,用于通过根据解析出的所述相应信息,按需填充所述从内核数据包池中提取的数据包的前第一数量字节;所述从内核数据包池中提取的数据包的前第一数量字节是cpu与fpga算法卡通信的控制协议头;

20、业务处理程序数据发送模块,用于通过调用netmap用户态lib库,使用零拷贝方式,将所述从内核数据包池中提取的数据包发送到第二网口;

21、fpga算法卡数据计算模块,用于从第二网口接收到所述从内核数据包池中提取的数据包,fpga算法卡通过所述从内核数据包池中提取的数据包的前第一数量字节控制头,对所述从内核数据包池中提取的数据包第一数量字节之后的实际网络数据包内容进行算法计算;计算完成后,fpga算法卡将计算后的数据包发送到第二网口;

22、业务处理程序数据转发模块,用于通过调用netmap用户态lib库,接收第二网口的所述计算后的数据包;并使用零拷贝的方式,将所述计算后的数据包发送到第一网口;

23、netmap内核驱动发送数据处理模块,用于netmap内核驱动检测到第一网口的发送缓冲队列中有要发送出去的所述计算后的数据包,netmap内核驱动将所述计算后的数据包偏移第一数量字节之后的存储物理地址,赋值到dma engine的bd数组的对应位置,完成后netmap内核驱动通知第一网口发送数据。

24、作为基于netmap的fpga算法卡调用处理系统优选方案,所述业务处理程序数据判断、解析模块中,所述相应信息包括:协议号、源ip、目的ip、源端口号、目的端口号信息。

25、作为基于netmap的fpga算法卡调用处理系统优选方案,所述业务处理程序数据判断、解析模块中,所述ip报文通过ip头中的协议字段识别出tcp报文、udp报文和指定类型报文,解析出所述协议号、所述源ip和所述目的ip信息。

26、作为基于netmap的fpga算法卡本文档来自技高网...

【技术保护点】

1.一种基于NETMAP的FPGA算法卡调用处理方法,其特征在于,包括:

2.根据权利要求1所述基于NETMAP的FPGA算法卡调用处理方法,其特征在于,所述相应信息包括:协议号、源IP、目的IP、源端口号、目的端口号信息。

3.根据权利要求2所述基于NETMAP的FPGA算法卡调用处理方法,其特征在于,所述IP报文通过IP头中的协议字段识别出TCP报文、UDP报文和指定类型报文,解析出所述协议号、所述源IP和所述目的IP信息。

4.根据权利要求3所述基于NETMAP的FPGA算法卡调用处理方法,其特征在于,业务处理程序通过所述TCP报文的格式对所述TCP报文进行解析,解析出所述源端口号和目的端口号信息。

5.根据权利要求3所述基于NETMAP的FPGA算法卡调用处理方法,其特征在于,业务处理程序通过所述UDP报文格式对所述UDP报文进行解析,解析出所述源端口号和目的端口号信息。

6.基于NETMAP的FPGA算法卡调用处理系统,其特征在于,包括:

7.根据权利要求6所述的基于NETMAP的FPGA算法卡调用处理系统,其特征在于,所述业务处理程序数据判断、解析模块中,所述相应信息包括:协议号、源IP、目的IP、源端口号、目的端口号信息。

8.根据权利要求7所述的基于NETMAP的FPGA算法卡调用处理系统,其特征在于,所述业务处理程序数据判断、解析模块中,所述IP报文通过IP头中的协议字段识别出TCP报文、UDP报文和指定类型报文,解析出所述协议号、所述源IP和所述目的IP信息。

9.根据权利要求8所述的基于NETMAP的FPGA算法卡调用处理系统,其特征在于,所述业务处理程序数据判断、解析模块中,业务处理程序通过所述TCP报文的格式对所述TCP报文进行解析,解析出所述源端口号和目的端口号信息。

10.根据权利要求8所述的基于NETMAP的FPGA算法卡调用处理系统,其特征在于,所述业务处理程序数据判断、解析模块中,业务处理程序通过所述UDP报文格式对所述UDP报文进行解析,解析出所述源端口号和目的端口号信息。

...

【技术特征摘要】

1.一种基于netmap的fpga算法卡调用处理方法,其特征在于,包括:

2.根据权利要求1所述基于netmap的fpga算法卡调用处理方法,其特征在于,所述相应信息包括:协议号、源ip、目的ip、源端口号、目的端口号信息。

3.根据权利要求2所述基于netmap的fpga算法卡调用处理方法,其特征在于,所述ip报文通过ip头中的协议字段识别出tcp报文、udp报文和指定类型报文,解析出所述协议号、所述源ip和所述目的ip信息。

4.根据权利要求3所述基于netmap的fpga算法卡调用处理方法,其特征在于,业务处理程序通过所述tcp报文的格式对所述tcp报文进行解析,解析出所述源端口号和目的端口号信息。

5.根据权利要求3所述基于netmap的fpga算法卡调用处理方法,其特征在于,业务处理程序通过所述udp报文格式对所述udp报文进行解析,解析出所述源端口号和目的端口号信息。

6.基于netmap的fpga算法卡调用处理系统,其特征在于,包括:

【专利技术属性】
技术研发人员:欧立汪海洋郏晖白红霞马娜王潇徐剑南李海亮甄小丽
申请(专利权)人:江苏新质信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1