一种基于硬件加速的终端处理方法及装置

文档序号:37054713发布日期:2024-02-20 20:58阅读:15来源:国知局
一种基于硬件加速的终端处理方法及装置

本发明属于数据处理,尤其涉及一种基于硬件加速的终端处理方法及装置。


背景技术:

1、随着网络应用功能越来越复杂,网络应用对端系统的网络传输质量提出了更高要求。现在端系统中网络协议栈运行在操作系统的内核态,数据报文接收、处理和发送都耗费cpu资源,向cpu发送中断指令,其处理吞吐量、时延、抖动等关键性能指标控制难度大。同时,加解密、队列调度、高精度时钟同步、流量整形、复杂协议解析等新功能不断叠加,网络协议栈已显得无能为力,难以保障新的数据报文处理需求。

2、为此,行业内提出了一系列dpdk、xdp为典型代表的软件加速解决方案,一方面实现了报文接收过程中零次拷贝,最大可能地降低了i/o拷贝,达到提高数据报文处理的吞吐量,另一方面采用捆绑cpu核用于专门数据报文处理,降低操作系统任务执行对报文处理的干扰。上述方式存在以下弊端与不足:

3、报文处理精细控制能力不足:现有软件加速解决方案可以有效地提升数据报文处理的吞吐量,但在时延优化、抖动控制、队列调度、流量整形等方面仍旧面临能力不足,是无法满足高精度时延抖动场景(如远程医疗手术、工业互联网、远程遥控)的需求。这主要受限于软件方式中cpu时钟周期调用无法精细化控制,难以严格控制报文处理的时钟周期。

4、难以支持复杂报文处理功能:软件方式在功能可编程、敏捷重构方面具有明显优势,但在处理领域计算时性能一般比专用硬件要低,比如加解密等。现有方案仅仅聚焦在报文接收与发送,在定制化协议解析、加解密等复杂功能时,这些功能都需要大量计算开销,无疑增加了报文处理的时延。


技术实现思路

1、本发明针对现有的在报文处理精细控制能力不足、难以支持复杂报文处理功能的技术问题,提出了一种基于硬件加速的终端处理方案。

2、本发明第一方面提出一种基于硬件加速的终端处理方法。所述方法包括:

3、步骤s1、在终端上部署n个网络加速器,n为正整数;其中:

4、所述终端的协议栈具有l个网络协议;

5、第i个网络加速器的协议栈具有mi个与所述l个网络协议不同的网络协议;

6、l和mi均为正整数,i={1,2,...,n};

7、步骤s2、从所述终端的网络应用中获取待发送的数据内容以及所述数据内容的网络协议类型,对所述数据内容进行处理,并利用与所述数据内容的网络协议类型对应的网络协议对经处理的数据内容进行封装,以得到数据报文,将所述数据报文发送至接收方;其中:

8、当所述数据内容的网络协议类型为所述l个网络协议中的任一网络协议且处理所述数据内容所需的计算资源低于第一阈值时,由所述终端的处理器对所述数据内容进行处理,并由所述终端的协议栈利用所述l个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

9、当所述数据内容的网络协议类型为所述mi个网络协议中的任一网络协议时,由所述第i个网络加速器的处理器对所述数据内容进行处理,并由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

10、步骤s3、所述终端接收所述数据报文的响应报文,并确定所述响应报文的网络协议类型,利用与所述响应报文的网络协议类型对应的网络协议对所述响应报文进行解封装,以得到响应数据,并对所述响应数据进行处理;其中:

11、当所述响应报文的网络协议类型为所述l个网络协议中的任一网络协议且处理所述响应报文所需的计算资源低于所述第一阈值时,由所述终端的协议栈利用所述l个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述终端的处理器对所述响应数据进行处理;

12、当所述响应报文的网络协议类型为所述mi个网络协议中的任一网络协议时,由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述第i个网络加速器的处理器对所述响应数据进行处理。

13、根据本发明第一方面的方法,在所述步骤s2中,当所述数据内容的网络协议类型为所述mi个网络协议中的任一网络协议时,所述终端通过总线将所述数据内容发送至所述第i个网络加速器,所述第i个网络加速器确定处理所述数据内容所需的计算资源,其中:

14、当处理所述数据内容所需的计算资源低于第二阈值时,由所述第i个网络加速器的第一处理器对所述数据内容进行处理,并由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

15、当处理所述数据内容所需的计算资源不低于所述第二阈值时,由所述第i个网络加速器的第二处理器对所述数据内容进行处理,并由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

16、其中,所述第二处理器为定制化的处理器,所述第二处理器的数据处理能力高于所述第一处理器。

17、根据本发明第一方面的方法,在所述方法中,所述第i个网络加速器的协议栈还具有ki个与所述l个网络协议中的若干网络协议相同的网络协议,ki为正整数且ki≤l;其中,在所述步骤s2中:

18、当所述数据内容的网络协议类型为所述l个网络协议中的任一网络协议且处理所述数据内容所需的计算资源不低于所述第一阈值时,确定具有与所述数据内容的网络协议类型对应的网络协议的网络加速器作为目标网络加速器t,所述终端通过所述总线将所述数据内容发送至所述目标网络加速器t,由所述目标网络加速器t的第二处理器对所述数据内容进行处理,并由所述目标网络加速器t的协议栈利用与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文。

19、根据本发明第一方面的方法,在所述步骤s3中,当所述响应报文的网络协议类型为所述mi个网络协议中的任一网络协议时,所述终端通过总线将所述响应报文发送至所述第i个网络加速器,所述第i个网络加速器确定处理所述响应报文所需的计算资源,其中:

20、当处理所述响应报文所需的计算资源低于所述第二阈值时,由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述第i个网络加速器的第一处理器对所述响应数据进行处理;

21、当处理所述响应报文所需的计算资源不低于所述第二阈值时,由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述第i个网络加速器的第二处理器对所述响应数据进行处理。

22、根据本发明第一方面的方法,在所述步骤s3中,当所述响应报文的网络协议类型为所述l个网络协议中的任一网络协议且处理所述响应报文所需的计算资源不低于所述第一阈值时,确定具有与所述响应报文的网络协议类型对应的网络协议的网络加速器作为目标网络加速器t’,所述终端通过所述总线将所述响应报文发送至所述目标网络加速器t’,由所述目标网络加速器t’的协议栈利用与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述目标网络加速器t’的第二处理器对所述响应数据进行处理。

23、本发明第二方面提出一种基于硬件加速的终端处理装置。所述装置包括终端和部署在所述终端上的n个网络加速器,所述终端的协议栈具有l个网络协议,第i个网络加速器的协议栈具有mi个与所述l个网络协议不同的网络协议,l和mi均为正整数,i={1,2,...,n};

24、所述终端向接收方发送数据报文时:

25、从所述终端的网络应用中获取待发送的数据内容以及所述数据内容的网络协议类型,对所述数据内容进行处理,并利用与所述数据内容的网络协议类型对应的网络协议对经处理的数据内容进行封装,以得到数据报文,将所述数据报文发送至所述接收方;其中:

26、当所述数据内容的网络协议类型为所述l个网络协议中的任一网络协议且处理所述数据内容所需的计算资源低于第一阈值时,由所述终端的处理器对所述数据内容进行处理,并由所述终端的协议栈利用所述l个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

27、当所述数据内容的网络协议类型为所述mi个网络协议中的任一网络协议时,由所述第i个网络加速器的处理器对所述数据内容进行处理,并由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

28、所述终端接收所述数据报文的响应报文时:

29、所述终端接收到所述响应报文后,确定所述响应报文的网络协议类型,利用与所述响应报文的网络协议类型对应的网络协议对所述响应报文进行解封装,以得到响应数据,并对所述响应数据进行处理;其中:

30、当所述响应报文的网络协议类型为所述l个网络协议中的任一网络协议且处理所述响应报文所需的计算资源低于所述第一阈值时,由所述终端的协议栈利用所述l个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述终端的处理器对所述响应数据进行处理;

31、当所述响应报文的网络协议类型为所述mi个网络协议中的任一网络协议时,由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述第i个网络加速器的处理器对所述响应数据进行处理。

32、根据本发明第二方面的装置,当所述数据内容的网络协议类型为所述mi个网络协议中的任一网络协议时,所述终端通过总线将所述数据内容发送至所述第i个网络加速器,所述第i个网络加速器确定处理所述数据内容所需的计算资源,其中:

33、当处理所述数据内容所需的计算资源低于第二阈值时,由所述第i个网络加速器的第一处理器对所述数据内容进行处理,并由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

34、当处理所述数据内容所需的计算资源不低于所述第二阈值时,由所述第i个网络加速器的第二处理器对所述数据内容进行处理,并由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文;

35、其中,所述第二处理器为定制化的处理器,所述第二处理器的数据处理能力高于所述第一处理器。

36、根据本发明第二方面的装置,所述第i个网络加速器的协议栈还具有ki个与所述l个网络协议中的若干网络协议相同的网络协议,ki为正整数且ki≤l;其中:

37、当所述数据内容的网络协议类型为所述l个网络协议中的任一网络协议且处理所述数据内容所需的计算资源不低于所述第一阈值时,确定具有与所述数据内容的网络协议类型对应的网络协议的网络加速器作为目标网络加速器t,所述终端通过所述总线将所述数据内容发送至所述目标网络加速器t,由所述目标网络加速器t的第二处理器对所述数据内容进行处理,并由所述目标网络加速器t的协议栈利用与所述数据内容的网络协议类型对应的网络协议将经处理的数据内容封装成所述数据报文。

38、根据本发明第二方面的装置,当所述响应报文的网络协议类型为所述mi个网络协议中的任一网络协议时,所述终端通过总线将所述响应报文发送至所述第i个网络加速器,所述第i个网络加速器确定处理所述响应报文所需的计算资源,其中:

39、当处理所述响应报文所需的计算资源低于所述第二阈值时,由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述第i个网络加速器的第一处理器对所述响应数据进行处理;

40、当处理所述响应报文所需的计算资源不低于所述第二阈值时,由所述第i个网络加速器的协议栈利用所述mi个网络协议中与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述第i个网络加速器的第二处理器对所述响应数据进行处理;

41、根据本发明第二方面的装置,当所述响应报文的网络协议类型为所述l个网络协议中的任一网络协议且处理所述响应报文所需的计算资源不低于所述第一阈值时,确定具有与所述响应报文的网络协议类型对应的网络协议的网络加速器作为目标网络加速器t’,所述终端通过所述总线将所述响应报文发送至所述目标网络加速器t’,由所述目标网络加速器t’的协议栈利用与所述响应报文的网络协议类型对应的网络协议将所述响应报文解封装成所述响应数据,并由所述目标网络加速器t’的第二处理器对所述响应数据进行处理。

42、本发明第三方面公开了一种电子设备。电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时,实现本公开第一方面的一种基于硬件加速的终端处理方法中的步骤。

43、本发明第四方面公开了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现本公开第一方面的一种基于硬件加速的终端处理方法中的步骤。

44、综上,本发明能够将所述终端的计算任务卸载至所述网络加速器中,减轻了所述终端的计算压力;同时对于所述终端不支持的网络协议,由所述网络加速器来针对性的进行协议处理,丰富了终端对于不同协议类型的报文的接受度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1