数据包的处理方法及装置、存储介质、电子设备制造方法及图纸

技术编号:39322920 阅读:8 留言:0更新日期:2023-11-12 16:02
本申请实施例提供了一种数据包的处理方法及装置、存储介质、电子设备,其中,该方法包括:在第一服务器的网卡接收到第一数据包的情况下,通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识;在所述目标操作标识用于指示不将所述第一数据包传输到所述内核进程进行处理、且对所述第一数据包进行转发的情况下,通过所述目标程序获取用于转发所述第一数据包的目标IP地址;通过所述目标程序将所述第一数据包转发至所述目标IP地址。采用上述技术方案,解决了将进行数据包处理的目标程序部署在服务器上,导致使用目标程序进行网络加速的效果较差的问题。标程序进行网络加速的效果较差的问题。标程序进行网络加速的效果较差的问题。

【技术实现步骤摘要】
数据包的处理方法及装置、存储介质、电子设备


[0001]本申请实施例涉及信息传输领域,具体而言,涉及一种数据包的处理方法及装置、存储介质、电子设备。

技术介绍

[0002]目前,传统的内核网络处理数据包时存在比较大的延迟和开销,成为高速网络的瓶颈。而当前加速数据包处理的常见方法是绕过内核网络协议栈直接处理系统用户态的数据包,如数据平面开发工具包(Data Plane Development Kit,简称为DPDK)。虽然这些方法可以显著提高性能,但它们无法与现有系统的以一个相较简单轻松的方式进行集成,还意味着由内核实现的许多网络功能需要在其他地方重新设计,增大改动成本、降低系统兼容性。因而,快速数据路径(eXpress Data Path,简称为 XDP)应运而生,它支持高性能的数据包处理的同时保留内核堆栈。具体地说,XDP连接在网卡驱动程序的接收器(Receiver,简称为RX)路径上。网卡接收到的数据包首先在XDP程序中进行处理,然后程序决定是否将数据包传递到协议栈中,还是直接转发或丢弃,实现栈前数据包处理加速。然而,传统的软件XDP仍是部署在物理服务器上,这意味着服务器上的中央处理器(Central Processing Unit,简称为CPU)仍然必须参与数据包处理,XDP软件的网络加速能力仍然有限。
[0003]针对相关技术中,将进行数据包处理的目标程序部署在服务器上,导致使用目标程序进行网络加速的效果较差的问题,目前尚未提出有效的解决方案。
[0004]因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。

技术实现思路

[0005]本申请实施例提供了一种数据包的处理方法及装置、存储介质、电子设备,以至少解决将进行数据包处理的目标程序部署在服务器上,导致使用目标程序进行网络加速的效果较差的问题。
[0006]根据本申请的一个实施例,提供了一种数据包的处理方法,包括:在第一服务器的网卡接收到第一数据包的情况下,通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识;在所述目标操作标识用于指示不将所述第一数据包传输到内核进程进行处理、且对所述第一数据包进行转发的情况下,通过所述目标程序获取用于转发所述第一数据包的目标IP地址;通过所述目标程序将所述第一数据包转发至所述目标IP地址。
[0007]在一个示例性的实施例中,所述在第一服务器的网卡接收到第一数据包的情况下,通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识,包括:在所述第一服务器的网卡接收到第一数据包的情况下,通过预设的钩子程序触发运行所述目标程序,并通过所述目标程序确定对所述第一数据包进行操作的目标操作标识。
[0008]在一个示例性的实施例中,所述通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识,包括:通过所述目标程序判断所述第一数据包是否为
合法数据包;在判断出所述第一数据包是合法数据包的情况下,通过所述目标程序获取所述第一数据包中的预定字段的取值;通过所述目标程序根据所述预定字段的取值确定对所述第一数据包进行操作的目标操作标识。
[0009]在一个示例性的实施例中,所述通过所述目标程序判断所述第一数据包是否为合法数据包,包括:通过所述目标程序中的过滤模块获取所述第一数据包的包头;通过所述过滤模块根据所述包头判断所述第一数据包是否为合法数据包。
[0010]在一个示例性的实施例中,所述通过所述过滤模块根据所述包头判断所述第一数据包是否为合法数据包,包括: 通过所述过滤模块判断所述包头中的第一字段的取值是否预设的异常取值或位于预设的异常取值范围内;在所述第一字段的取值是所述异常取值或位于所述异常取值范围内的情况下,判断出所述第一数据包不是合法数据包;在所述第一字段的取值不是所述异常取值或不位于所述异常取值范围内的情况下,判断出所述第一数据包是合法数据包。
[0011]在一个示例性的实施例中,所述通过所述目标程序根据所述预定字段的取值确定对所述第一数据包进行操作的目标操作标识,包括:通过所述目标程序中的过滤模块以所述预定字段的取值为查询条件查询元数据表格,得到第一查询结果,其中,所述元数据表格中记录了多组具有对应关系的所述预定字段的不同取值和不同操作标识;在所述第一查询结果包括查询到的与所述预定字段的取值具有对应关系的第一操作标识的情况下,确定所述目标操作标识为所述第一操作标识,其中,所述第一操作标识用于指示将所述第一数据包传输到所述内核进程进行处理、或者用于指示对所述第一数据包进行转发、或者用于指示丢弃所述第一数据包;在所述第一查询结果未包括查询到的与所述预定字段的取值具有对应关系的操作标识的情况下,确定所述目标操作标识为第二操作标识别,其中,所述第二操作标识用于指示将所述第一数据包传输到所述内核进程进行处理。
[0012]在一个示例性的实施例中,在通过所述目标程序判断是否将所述第一数据包是否为合法数据包之后,所述方法还包括:在判断出所述第一数据包不是合法数据包的情况下,丢弃所述第一数据包。
[0013]在一个示例性的实施例中,所述通过所述目标程序获取用于转发所述第一数据包的目标IP地址,包括:通过所述目标程序中的转发模块获取所述第一数据包的包头中的第一目的IP地址;通过所述目标程序中的转发模块以所述第一目的IP地址为查询条件查询元数据表格,得到第二查询结果,其中,所述元数据表格中记录了多组具有对应关系的地址转换前的IP地址和地址转换后的IP地址;在所述第二查询结果包括查询到的与所述第一目的IP地址具有对应关系的第二目的IP地址的情况下,通过所述目标程序中的所述转发模块获取所述第二目的IP地址,其中,用于转发所述第一数据包的所述目标IP地址为所述第二目的IP地址。
[0014]在一个示例性的实施例中,所述通过所述目标程序将所述第一数据包转发至所述目标IP地址,包括:通过所述目标程序中的所述转发模块获取所述第一数据包中携带的数据字段的取值;通过所述目标程序中的所述转发模块将所述数据字段的取值和所述第二目的IP地址封装成第二数据包;通过所述目标程序中的所述转发模块将所述第二数据包转发至所述第二目的IP地址。
[0015]在一个示例性的实施例中,通过所述目标程序中的转发模块以所述第一目的IP地
址为查询条件查询元数据表格,得到第二查询结果之后,所述方法还包括: 在所述第二查询结果表示未查询到与所述第一目的IP地址具有对应关系的所述第二目的IP地址的情况下,丢弃所述第一数据包。
[0016]在一个示例性的实施例中,所述目标程序为快速数据路径XDP程序。
[0017]在一个示例性的实施例中,所述元数据表格存储在所述网卡的内存中。
[0018]在一个示例性的实施例中,所述目标程序被设置为允许访问所述内存中的所述元数据表格、且禁止访问所述第一服务器中与所述元数据表格在所述内存中的存储区域不同的其他存储区域。
[0019]在一个示例性的实施例中,所述内核进程中运行的程序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据包的处理方法,其特征在于,包括:在第一服务器的网卡接收到第一数据包的情况下,通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识;在所述目标操作标识用于指示不将所述第一数据包传输到内核进程进行处理、且对所述第一数据包进行转发的情况下,通过所述目标程序获取用于转发所述第一数据包的目标IP地址;通过所述目标程序将所述第一数据包转发至所述目标IP地址。2.根据权利要求1所述的方法,其特征在于,所述在第一服务器的网卡接收到第一数据包的情况下,通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识,包括:在所述第一服务器的网卡接收到第一数据包的情况下,通过预设的钩子程序触发运行所述目标程序,并通过所述目标程序确定对所述第一数据包进行操作的目标操作标识。3.根据权利要求1所述的方法,其特征在于,所述通过运行在所述网卡上的目标程序确定对所述第一数据包进行操作的目标操作标识,包括:通过所述目标程序判断所述第一数据包是否为合法数据包;在判断出所述第一数据包是合法数据包的情况下,通过所述目标程序获取所述第一数据包中的预定字段的取值;通过所述目标程序根据所述预定字段的取值确定对所述第一数据包进行操作的目标操作标识。4.根据权利要求3所述的方法,其特征在于,所述通过所述目标程序判断所述第一数据包是否为合法数据包,包括:通过所述目标程序中的过滤模块获取所述第一数据包的包头;通过所述过滤模块根据所述包头判断所述第一数据包是否为合法数据包。5.根据权利要求4所述的方法,其特征在于,所述通过所述过滤模块根据所述包头判断所述第一数据包是否为合法数据包,包括:通过所述过滤模块判断所述包头中的第一字段的取值是否预设的异常取值或位于预设的异常取值范围内;在所述第一字段的取值是所述异常取值或位于所述异常取值范围内的情况下,判断出所述第一数据包不是合法数据包;在所述第一字段的取值不是所述异常取值或不位于所述异常取值范围内的情况下,判断出所述第一数据包是合法数据包。6.根据权利要求3所述的方法,其特征在于,所述通过所述目标程序根据所述预定字段的取值确定对所述第一数据包进行操作的目标操作标识,包括:通过所述目标程序中的过滤模块以所述预定字段的取值为查询条件查询元数据表格,得到第一查询结果,其中,所述元数据表格中记录了多组具有对应关系的所述预定字段的不同取值和不同操作标识;在所述第一查询结果包括查询到的与所述预定字段的取值具有对应关系的第一操作标识的情况下,确定所述目标操作标识为所述第一操作标识,其中,所述第一操作标识用于指示将所述第一数据包传输到所述内核进程进行处理、或者用于指示对所述第一数据包进
行转发、或者用于指示丢弃所述第一数据包;在所述第一查询结果未包括查询到的与所述预定字段的取值具有对应关系的操作标识的情况下,确定所述目标操作标识为第二操作标识别,其中,所述第二操作标识用于指示将所述第一数据包传输到所述内核进程进行处理。7.根据权利要求3所述的方法,其特征在于,在通过所述目标程序判断是否将所述第一数据包是否为合法数据包之后,所述方法还包括:在判断出所述第一数据包不是合法数据包的情况下,丢弃所述第一数据包。8.根据权利要求1所述的方法,其特征在于,所述通过所述目标程序获取用于转发所述第一数据包的目标IP地址,包括:通过所述目标程序中的转发模块获取所述第一数据包的包头中的第一目的IP地址;通过所述目标程序中的转发模块以所述第一目的IP地址为查询条件查询元数据表格,得到第二查询结果,其中,所述元数据表格中记录了多组具有对应关系的地址转换前的IP地址和地址转换后的IP地址;在所述第二查询结果包括查询到的与所述第一目的IP地址具有对应关系的第二目的IP地址的情况下,通过所述目标程序中的所述转发模块获取所述第二目的IP地址,其中,用于转发所述第一数据包的所述目标IP地址为所述第二目的IP地址。9.根据权利要求8所述的方法,其特征在于,所述通过所述目标程序将所述第一数据包转发至所述目标IP地址...

【专利技术属性】
技术研发人员:张源
申请(专利权)人:苏州元脑智能科技有限公司
类型:发明
国别省市:

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

1