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

技术编号:36688966 阅读:16 留言:0更新日期:2023-02-27 19:54
本申请提供一种网络数据包处理方法、网络数据包处理装置、电子设备以及计算机可读存储介质。方法包括:通过网卡接收网络数据包;通过数据包过滤器,将网络数据包分为第一类数据包和第二类数据包;将第一类数据包传递至用户空间,由用户态协议栈处理;将第二类数据包传递至内核空间,由内核态协议栈处理。根据本申请,能够提高网络数据包的处理速度,同时保证安全性。性。性。

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


[0001]本专利技术涉及计算机网络通信
,具体涉及一种网络数据包处理方法、网络数据包处理装置、电子设备以及计算机可读存储介质。

技术介绍

[0002]网络通信中,传统的网络数据包处理程序是所有数据包都进入内核空间,由内核态协议栈层层处理后再传递至用户空间,这样的处理方式对内核造成了很大的压力,降低了数据包的处理速度,影响了通信效率。一些现有技术、例如DPDK(Data Plane Development Kit,数据平面开发套件)技术能够实现允许数据包绕过内核,直接全部传递到用户空间。但是,这样的技术无法允许内核态协议栈和用户态协议栈同时工作,使得内核态协议栈提供的安全机制无法得到发挥,影响了数据包的处理效率和安全性。

技术实现思路

[0003]因此,本申请致力于提供一种网络数据包处理方法、网络数据包处理装置、电子设备以及计算机可读存储介质,其能够提高网络数据包的处理速度,同时保证安全性。
[0004]在一方面,本申请提供一种网络数据包处理方法,包括:通过网卡接收网络数据包;通过数据包过滤器,将网络数据包分为第一类数据包和第二类数据包;将第一类数据包传递至用户空间,由用户态协议栈处理;将第二类数据包传递至内核空间,由内核态协议栈处理。
[0005]根据本申请一特别实施例,数据包过滤器包括XDP过滤器。根据本实施例,XDP技术具有在过滤数据包的同时允许内核态协议栈和用户态协议栈共同工作的优点,从而避免传统的过滤技术在过滤时仅能允许用户态协议栈工作,内核态协议栈不能工作的缺点。
[0006]根据本申请一特别实施例,通过网卡接收网络数据包,包括:通过网卡接收网络数据包;通过XDP Hook点,将网络数据包传递XDP过滤器。根据本实施例,通过设置XDP Hook点,能够允许XDP程序尽早捕获数据包,从而实现快速过滤,加快数据包的处理速度。
[0007]根据本申请一特别实施例,将第一类数据包传递至用户空间,由用户态协议栈处理,包括:通过eBPF Map建立内核空间和用户空间之间的通道;将第一类数据包通过eBPF Map传递至用户态协议栈。根据本实施例,通过采用eBPF Map来将第一类数据包传递至用户态协议栈,能够减少第一类数据包的拷贝次数,避免多次拷贝数据包带来的计算开销。
[0008]根据本申请一特别实施例,将第一类数据包通过eBPF Map传递至用户态协议栈,包括:通过共享内存的方式,将第一类数据包从eBPF Map的接收进程传递到用户态协议栈的进程中。根据本实施例,通过采用共享内存的方式,使数据包的接收进程和用户态协议栈的进程所需要的数据能够共享,能够加快用户态协议栈的运行速度,减少数据包的拷贝。
[0009]根据本申请一特别实施例,将第一类数据包传递至用户空间,由用户态协议栈处理,包括:通过AF_XDP套接字控制第一类数据包的收发。根据本实施例,通过AF_XDP套接字控制数据包的收发,能够允许第一类数据包的高效收发,实现第一类数据包的重定向,从而
加快数据包的处理进程。
[0010]根据本申请一特别实施例,网卡包括多个网卡,AF_XDP套接字包括多个AF_XDP套接字,多个AF_XDP套接字与多个网卡一一匹配。根据本实施例,多个网卡的设置有利于增大数据的流量,使得能够处理更大数量、更多类型的数据包。多个网卡与多个套接字一一匹配,使得每个套接字都能根据网卡的不同采取相应的控制方式,实现了分类控制,加快了数据包的流速。
[0011]在另一方面,本申请提供一种网络数据包处理装置,包括:接收模块,用于通过网卡接收网络数据包;过滤模块,用于通过数据包过滤器,将网络数据包分为第一类数据包和第二类数据包;第一传递模块,用于将第一类数据包传递至用户空间,由用户态协议栈处理;第二传递模块,用于将第二类数据包传递至内核空间,由内核态协议栈处理。
[0012]在另一方面,本申请提供一种电子设备,包括:处理器;存储器;应用程序,应用程序存储在存储器中,并配置成由处理器执行,应用程序包括用于执行上述的网络数据包处理方法的指令。
[0013]在另一方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述的网络数据包处理方法。
[0014]根据本申请的网络数据包处理方法、网络数据包处理装置、电子设备以及计算机可读存储介质,通过对网络数据包进行过滤和分类,将适合用户态协议栈处理的数据包直接重定向到用户空间,将适合内核态协议栈处理的数据包按原路传递至内核态协议栈,能够加快数据包的处理进程以及用户态协议栈的运行速度,同时避免其它技术方案中用户态协议栈和内核态协议栈不能同时工作的缺点。
附图说明
[0015]以下,结合附图详细描述本申请的具体实施方式,其中:
[0016]图1示出根据本申请一实施例的网络数据包处理方法的示意流程图;
[0017]图2示出根据本申请另一实施例的网络数据包处理方法的示意流程图;
[0018]图3示出根据本申请另一实施例的网络数据包处理方法的示意流程图;
[0019]图4示出根据本申请一实施例的网络数据包处理装置的示意结构图;
[0020]图5示出根据本申请另一实施例的网络数据包处理装置的示意结构图;
[0021]图6示出根本本申请一实施例的电子设备的示意结构图。
具体实施方式
[0022]为了使本领域技术人员更加清楚地理解本申请的概念和思想,以下结合具体实施例详细描述本申请。应理解,本文给出的实施例都只是本申请可能具有的所有实施例的一部分。本领域技术人员在阅读本申请的说明书以后,有能力对下述实施例的部分或整体作出改进、改造或替换,这些改进、改造或替换也都包含在本申请要求保护的范围内。
[0023]在本文中,术语“第一”、“第二”和其它类似词语并不意在暗示任何顺序、数量和重要性,而是仅仅用于对不同的元件进行区分。在本文中,术语“一”、“一个”和其它类似词语并不意在表示只存在一个所述事物,而是表示有关描述仅仅针对所述事物中的一个,所述事物可能具有一个或多个。在本文中,术语“包含”、“包括”和其它类似词语意在表示逻辑上
的相互关系,而不能视作表示空间结构上的关系。例如,“A包括B”意在表示在逻辑上B属于A,而不表示在空间上B位于A的内部。另外,术语“包含”、“包括”和其它类似词语的含义应视为开放性的,而非封闭性的。例如,“A包括B”意在表示B属于A,但是B不一定构成A的全部,A还可能包括C、D、E等其它元素。
[0024]在本文中,术语“实施例”、“本实施例”、“一实施例”、“一个实施例”并不表示有关描述仅仅适用于一个特定的实施例,而是表示这些描述还可能适用于另外一个或多个实施例中。本领域技术人员应理解,在本文中,任何针对某一个实施例所做的描述都可以与另外一个或多个实施例中的有关描述进行替代、组合、或者以其它方式结合,所述替代、组合、或者以其它方式结合所产生的新本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络数据包处理方法,包括:通过网卡接收网络数据包;通过数据包过滤器,将所述网络数据包分为第一类数据包和第二类数据包;将所述第一类数据包传递至用户空间,由用户态协议栈处理;将所述第二类数据包传递至内核空间,由内核态协议栈处理。2.根据权利要求1所述的网络数据包处理方法,其中,所述数据包过滤器包括快速数据路径XDP过滤器。3.根据权利要求2所述的网络数据包处理方法,其中,所述通过网卡接收网络数据包,包括:通过所述网卡接收所述网络数据包;通过XDP Hook点,将所述网络数据包传递至所述快速数据路径XDP过滤器。4.根据权利要求1至3中任一项所述的网络数据包处理方法,其中,所述将所述第一类数据包传递至用户空间,由用户态协议栈处理,包括:通过eBPF Map建立所述内核空间和所述用户空间之间的通道;将所述第一类数据包通过所述eBPF Map传递至所述用户态协议栈。5.根据权利要求4所述的网络数据包处理方法,其中,所述将所述第一类数据包通过所述eBPF Map传递至所述用户态协议栈,包括:通过共享内存的方式,将所述第一类数据包从所述eBPF Map的接收进程传递到所述用户态协议栈的进...

【专利技术属性】
技术研发人员:张心晴黄永锦王冬举覃毅芳李焯坚王淼鑫周旭
申请(专利权)人:中国科学院计算机网络信息中心
类型:发明
国别省市:

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

1