CN113986811B - 一种高性能内核态网络数据包加速方法 - Google Patents

一种高性能内核态网络数据包加速方法 Download PDF

Info

Publication number
CN113986811B
CN113986811B CN202111109765.5A CN202111109765A CN113986811B CN 113986811 B CN113986811 B CN 113986811B CN 202111109765 A CN202111109765 A CN 202111109765A CN 113986811 B CN113986811 B CN 113986811B
Authority
CN
China
Prior art keywords
data packet
kernel
mode
network
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111109765.5A
Other languages
English (en)
Other versions
CN113986811A (zh
Inventor
张春林
刘如君
常江波
张运春
刘志杰
董雷
张靖宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Digital Paradise Information Technology Co ltd
Beijing Dongfangtong Software Co ltd
Beijing Testor Technology Co ltd
Shanghai Dongfangtong Software Technology Co ltd
Beijing Dongfang Tongwangxin Technology Co ltd
Beijing Tongtech Co Ltd
Original Assignee
Beijing Digital Paradise Information Technology Co ltd
Beijing Dongfangtong Software Co ltd
Beijing Testor Technology Co ltd
Shanghai Dongfangtong Software Technology Co ltd
Beijing Dongfang Tongwangxin Technology Co ltd
Beijing Tongtech Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Digital Paradise Information Technology Co ltd, Beijing Dongfangtong Software Co ltd, Beijing Testor Technology Co ltd, Shanghai Dongfangtong Software Technology Co ltd, Beijing Dongfang Tongwangxin Technology Co ltd, Beijing Tongtech Co Ltd filed Critical Beijing Digital Paradise Information Technology Co ltd
Priority to CN202111109765.5A priority Critical patent/CN113986811B/zh
Publication of CN113986811A publication Critical patent/CN113986811A/zh
Application granted granted Critical
Publication of CN113986811B publication Critical patent/CN113986811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本发明提供了高性能内核态网络数据包加速方法,获取网卡中待处理的网络数据包,并进行解析,确定数据包内容;通过零拷贝程序将所述数据包内容转移至内核态缓存区基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域;在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区。本发明有益效果在于:避免了在加速技术中,传输的数据通过多次拷贝的方式,减少了中间的拷贝环节,更减少了数据经过内核态进程进行处理的环节,极大的减少了数据在进行传输的时候的时间。

Description

一种高性能内核态网络数据包加速方法
技术领域
本发明涉及数据加速技术领域,特别涉及一种高性能内核态网络数据包加速方法。
背景技术
目前,在网络安全领域,现有技术的网络数据的传输过程中,路由设备转发目前使用的处理数据包,数据包从网卡接收到后,由网卡驱动捕捉收包中断,经内核协议栈后送给用户态进程处理;处理完将数据包交给协议栈,最终由网卡发送出去。
在上述过程中,数据包在整个过程中经过了多次转移,包括从网卡到内核的转移,以及从内核到用户空间的转移等等,占用大量的CPU资源和内存资源,而且转发性能较低。
发明内容
本发明提供一种高性能内核态网络数据包加速方法,用以解决现有技术中网络数据的数据包在整个过程中经过了多次转移,包括从网卡到内核的转移,以及从内核到用户空间的转移等等,占用大量的CPU资源和内存资源,而且转发性能较低的情况。
一种高性能内核态网络数据包加速方法,包括:
获取网卡中待处理的网络数据包,并进行解析,确定数据包内容;其中,
所述数据包内容由网络地址、地址数据包和传输数据包确定;
通过零拷贝程序将所述数据包内容转移至内核态缓存区基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域;在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区。
作为本发明的一种实施例:所述获取网卡中待处理的网络数据包,并进行解析,确定数据包内容,包括:
建立数据包调用机制;
通过所述数据包调用机制对网卡内的信息进行拦截,确定需要进行加速的目标网络数据包,并确定目标网络数据包的位置;
根据所述目标网络数据包的位置,通过负载均衡算法将所述目标网络数据包的数据传输通道连接至数据解析接口;其中,
所述数据解析接口为统一接口,其设置有数据类型识别规则和解析步骤匹配规则;
根据所述数据类型识别规则,确定所述目标网络数据包的数据类型;
根据所述数据类型和解析步骤匹配规则,将所述目标网络数据包传输至链路解析层、网络解析层和传输解析层中匹配的解析接口进行解析,确定网络数据包的网络地址、地址数据包和传输数据包;
根据所述网络地址、地址数据包和传输数据包,确定数据包内容。
作为本发明的一种实施例:所述建立数据包调用机制,包括:
在网卡内构建拦截器,拦截网卡内的请求信息和响应信息;
构建服务发现模块,对所述请求信息和响应信息进行识别,确定需要进行的用户服务;其中,
所述用户服务包括加速服务和进程检测服务;
基于预设的负载均衡算法,确定数据解析过程,生成数据解析接口;
根据所述数据解析接口,构建文件缓冲区,并将所述网络数据包循环式的传输至所述文件缓冲区;
通过所述文件缓冲区,生成数据调用机制。。
作为本发明的一种实施例:所述通过负载均衡算法将所述目标网络数据包的数据传输通道连接至数据解析接口,包括:
根据所述负载均衡算法,确定目标网络数据包对应的解析方式;
根据所述解析方式,构建基于协议解析的二叉树模型;
根据所述二叉树模型,确定协议解析的子节点;其中,
所述子节点包括链路节点、网络节点和传输节点;
根据所述子节点,将所述目标网络数据包的数据传输通道连接至数据解析接口。
作为本发明的一种实施例:所述基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域,包括:
在内核态进程中设置内核态缓存区;
基于内存映射和零拷贝程序将所述数据包内容映射至所述内核态缓存区;
通过所述内核态缓存区将所述数据包内容封装为内核态网络数据包;
获取所述内核态进程连接的用户态进程和网卡,并确定用户态进程和网卡的共享缓冲区域;
将所述内核态网络数据包通过零拷贝程序的同步内核协议栈传输至用户态进程和网卡的共享缓冲区域。
作为本发明的一种实施例:所述基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域,还包括:
根据所述数据包内容,确定用户态进程的数据包地址;
将数据包地址传输至内核态进程的空闲缓冲队列,判断内核态进程的内核态缓存区是否空闲;
当内核态缓存区存在空闲时,根据所述数据包地址,将数据包内容进行映射;
当内核态缓存区不存在空闲时,在内核态进程中设定一个空闲的内核缓冲区域,并将数据包内容映射至设定的内核缓冲区域。
作为本发明的一种实施例:所述在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区,包括:
构建分布式解析模型,并构建用户态进程和网卡的共享缓冲区域;
捕获所述内核态网络数据包,并存储在所述共享缓冲区域;
根据所述分布式解析模型,确定所述内核态网络数据包的文件信息,并根据文件信息进行分组集群;其中,
所述文件信息包括:数据包大小、数据包个数、数据包生成时间、数据包关键字;
所述分组集群按照数据包关键字进行分组,并将每一系列的关键字作为一个单一集群;
分别对每个单一集群进行按照关键字进行读取,并确定每个数据包的关键信息、数据属性、源IP地址、目的IP地址、目的端口、目的进程、协议类型、数据包长度和数据包捕获时间;
在每个单一集群的关键字读取之后,通过共享缓冲区域将数据包内容传输至网卡和用户态缓冲区。
作为本发明的一种实施例:所述构建分布式解析模型,包括:
获取内核态网络数据包的数据包特征,创建内核态网络数据包的捕获函数;
根据所述捕获函数,创建分包集群;
根据所述分包集群,生成控制节点和数据包节点;其中,
所述控制节点用于对内核态网络数据包进行管理;
所述数据包节点用于存储和计算内核态网络数据包;
根据所述控制节点,设置所述数据包节点的解析内容;
根据所述解析内容,设置解析内容的解析键值;
根据所述解析键值,设置键值聚合节点;
根据所述键值聚合节点,对每个数据包的键值进行规约合并;
根据所述规约合并,确定分布式解析模型。
作为本发明的一种实施例:所述在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区,还包括:
根据所述网卡和用户态缓冲区,确定所述共享缓冲区域可识别数据包的数据包规格;
根据所述内核态网络数据包的数据包内容,确定目的IP地址;
根据所述数据包规格,将所述内核态网络数据包的数据包内容进行转换,并在转换后封装为网卡和用户态缓冲区可识别的网络数据包;
根据所述目的IP地址,将所述网络数据包传输至网卡和用户态缓冲区。
作为本发明的一种实施例:所述重新生成网卡和用户态进程可识别的网络数据包,传输至网卡和用户态进程,还包括:
步骤1:获取所述网卡和用户态进程的数据包规格,并提取网络数据包的目标特征:
Figure 537228DEST_PATH_IMAGE001
其中,
Figure 251106DEST_PATH_IMAGE002
表示网卡和用户态进程的网络数据包的最大数据容量;
Figure 889898DEST_PATH_IMAGE003
表示网络数 据包中数据文件的数目;
Figure 753948DEST_PATH_IMAGE004
表示网络数据包中第
Figure 161796DEST_PATH_IMAGE005
个数据文件的语义;
Figure 187521DEST_PATH_IMAGE006
表示网络数据包的 链路特征;
Figure 48029DEST_PATH_IMAGE007
表示网络数据包的地址特征;
Figure 715771DEST_PATH_IMAGE008
Figure 978125DEST_PATH_IMAGE009
表示网络数据包的目标 特征;
步骤2:根据所述内核态网络数据包的数据包内容,确定数据包内容的内容特征;
Figure 440331DEST_PATH_IMAGE010
其中,
Figure 460239DEST_PATH_IMAGE011
表示第
Figure 790726DEST_PATH_IMAGE012
个网络数据包的内容参数;
Figure 782953DEST_PATH_IMAGE013
表示第𝑗个网络数据包的的类型参 数;
Figure 540694DEST_PATH_IMAGE014
表示第
Figure 709550DEST_PATH_IMAGE012
个网络数据包的格式参数;
Figure 781411DEST_PATH_IMAGE015
表示数据包内容中每个数据文件的数据平均参 数;
Figure 283937DEST_PATH_IMAGE016
表示第
Figure 87945DEST_PATH_IMAGE012
个网络数据包中每个数据文件的数据容量在
Figure 269396DEST_PATH_IMAGE017
之间;
Figure 410527DEST_PATH_IMAGE018
表示第
Figure 642926DEST_PATH_IMAGE012
个网络数据包中每个数据文件的数据容量在
Figure 8048DEST_PATH_IMAGE017
之间的标志参 数;
Figure 755424DEST_PATH_IMAGE019
Figure 106771DEST_PATH_IMAGE020
表示数据包的总数量;
步骤3:根据所述网络数据包的目标特征和数据包内容的内容特征,通过下式的融合算法生成网卡和用户态进程可识别的网络数据包:
Figure 52730DEST_PATH_IMAGE021
其中,
Figure 260858DEST_PATH_IMAGE022
表示通过融合算法生成网卡和用户态进程可识别的网络数据包的融合参 数。
本发明有益效果在于:避免了了在加速技术中,传输的数据通过多次拷贝的方式,仅从数据映射的角度进行数据同步映射产生,然后传输至网卡和用户态进程,减少了中间的拷贝环节,更减少了数据经过内核态进程进行处理的环节,极大的减少了数据在进行传输的时候的时间。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种高性能内核态网络数据包加速方法的方法流程图;
图2为本发明实施例中一种建立数据包调用机制构建流程图;
图3为本发明实施例中一种数据包内容转换的转换流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如附图1所示,本发明为一种高性能内核态网络数据包加速方法,包括:
步骤100:
获取网卡中待处理的网络数据包,并进行解析,确定数据包内容;其中,
所述数据包内容由网络地址、地址数据包和传输数据包确定;
在数据传输的过程中,我们的路由设备或者说手机电脑等设备是基于网卡在网络环境下进行数据传输。在进行数据传输的时候,网卡中的数据以数据包的形式传输,数据包在一些条件下,会以加密的形式,也有可能不加密,只是要符合传输规则。但是不管任何数据包,只有通过解析,才能确定数据包包含的具体内容。
步骤101:基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域;
一般情况下在进行数据包转移的时候,数据包会传输至内核态,此时需要调用内存进程实现数据复制,这时,需要进程的调用,存在通过一些应用进行对用户态进行识别和数据处理。而本发明是掠过应用进程的参与,减小数据传输时,因为一些进程的参与而导致传输缓慢,甚至存在数据丢失的问题,而是直接通过零拷贝技术,拷贝到内核态缓冲区域,而且,拷贝的是具体的内容,而不是数据包,然后在内核态的缓冲区域在进行生成数据包,而在缓冲区域之后本发明再通过零拷贝技术将其转移到共享缓冲区域。而在现有技术中,采用的方式是通过CPU控制内核态进程将数据调用至网卡的数据或者用户态进程的数据,此时就会存在一些内核态的进程参与。这里面同一存在诸多的复制粘贴和通过内核态的进程进行数据处理,而本发明是将数据转移至共享缓冲区域,直接跳过了用户态缓冲区域,直接到共享缓冲区域,共享缓冲区域适用于已经接收到了数据的区域。这是通过一种新的方式实现了数据加速。
步骤102:在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区。
上述技术方案的工作原理为:本发明相对于现有技术的数据加速方式,改变了数据的初期处理方式,基于零拷贝技术获取数据,确定数据内容,然后通过在内核态进程中建立缓冲区域,数据通过同步映射在缓冲区域生成,然后通过内核态进程的缓冲区域直接生成网卡和用户态进程可以识别的数据进行传输。
上述技术方案的有益效果为:本发明避免了了在加速技术中,传输的数据通过多次拷贝的方式,仅从数据映射的角度进行数据同步映射产生,然后传输至网卡和用户态进程,减少了中间的拷贝环节,更减少了数据经过内核态进程进行处理的环节,极大的减少了数据在进行传输的时候的时间。
作为本发明的一种实施例:所述获取网卡中待处理的网络数据包,并进行解析,确定数据包内容;,包括:
建立数据包调用机制;数据包调用机制是实现数据包的拦截和调用两部分。
通过所述数据包调用机制对网卡内的信息进行拦截,确定需要进行加速的目标网络数据包,并确定目标网络数据包的位置;数据包调用机制的作用是信息数据信息的拦截,因为只有拦截后,网络数据包才不会通过用户进程实现数据的调用和复制。常规情况下,网卡再接收到数据包的时候,会先通过一些进程进行处理,在数据包拦截成功后,直接基于零拷贝技术实现数据的内核复制,不会存在其它进程调用传输和数据处理。
根据所述目标网络数据包的位置,通过负载均衡算法将所述目标网络数据包的数据传输通道连接至数据解析接口;其中,
所述数据解析接口为统一接口,其设置有数据类型识别规则和解析步骤匹配规则;负载均衡算法的作用是通过实现数据包传输和解析式同步进行的,方式数据传输通道因为传输太快或者超过数据传输通道的带宽而导致了存在数据遗失。所以本发明设置了负载均衡算法,用于保证的是传输前的数据包传输进度,解析进度一样的,处于均衡传输的状态。数据类型识别规则和解析步骤匹配规则就是在进行数据解析的时候设置不同类型的数据识别方法,以规则的形式实现数据识别。解析步骤匹配是为了在数据解析的过程中,数据解析的步骤是数据依次按照链路解析、网络解析和传输解析三种解析方式依次匹配解析,能确定最适合的传输链路,最适合的网络环境,以及最适合的传输方式。本发明实现零拷贝在本阶段最大的目的是,在进行零拷贝的时候,是需要将内容直接拷贝过去,而不是数据包拷贝过去。因为如果是向内核态进行传输数据包,是无法实现不采用进程程序的。
根据所述数据类型识别规则,确定所述目标网络数据包的数据类型;
根据所述数据类型和解析步骤匹配规则,将所述目标网络数据包传输至链路解析层、网络解析层和传输解析层中匹配的解析接口进行解析,确定网络数据包的网络地址、地址数据包和传输数据包;
根据所述网络地址、地址数据包和传输数据包,确定数据包内容。
地址数据包确定了传输的链路,网络地址确定了传输的网络环境,传输数据包确定了数据传输的方式。
上述技术方案的工作原理为:本发明在进行零拷贝的时候,通过建立零拷贝的调用机制实现加速请求的拦截,然后通过统一的数据接口进行数据包的识别,进而确定数据包内容和数据包的信息。
上述技术方案的有益效果为:本发明能够在零拷贝的时候,基于用户态进程的数据处理机制,快速确定需要进行加速的数据内容和生成数据包的数据包信息,提高数据的处理效率。
作为本发明的一种实施例:如附图2所示,所述建立数据包调用机制,包括:
步骤1001:在网卡内构建拦截器,拦截网卡内的请求信息和响应信息;
网卡在进行数据传输的时候,会存在数据传输的请求,根据传输请求都具有对应的响应信息,用以判断要传输什么信息,以及如何进行传输。
步骤1002:构建服务发现模块,对所述请求信息和响应信息进行识别,确定需要进行的用户服务;其中,
所述用户服务包括加速服务和进程检测服务;
加速服务就是在数据传输的时候进行加速,而进程检测服务就是判断每一个进程执行的指令是否正确。
步骤1003:基于预设的负载均衡算法,确定数据解析过程,生成数据解析接口;数据解析接口设置有预设的协议,对于进入的数据包按照类型进行划分。
步骤1004:根据所述数据解析接口,构建文件缓冲区,并将所述网络数据包循环式的传输至所述文件缓冲区;
文件缓冲区用于存储解析后的数据内容,辅助这些内容通过零拷贝技术传输,循环式的传输是所有的数据包都是循环式的传入文件缓冲区,防止数据出现损失。
步骤1005:通过所述文件缓冲区,将所述用户数据进行调用。
上述技术方案的工作原理为:本发明在建立零拷贝的数据调用机制的时候,构建了拦截器、用户服务、负载均衡算法支持的数据解析接口和文件缓冲区域。
上述技术方案的有益效果为:能够识别加速请求,根据和用户服务器进行对应的数据解析,进而将数据传输至对应的缓冲区域。
作为本发明的一种实施例:所述通过负载均衡算法将所述目标网络数据包的数据传输通道连接至数据解析接口,包括:
根据所述负载均衡算法,确定目标网络数据包对应的解析方式;每一种类型的数据包,都具有不同的解析方式,也会通过不同的解析方式进行数据解析。例如:对于图片文件,会以图片解析,目标识别的方式也是图片解析的方式,包括解析每个图片的元素和组成,以及图片规格。
根据所述解析方式,构建基于协议解析的二叉树模型;
二叉树模型的目的是将协议解析和数据类型并列在二叉树模型两侧,并且一一对应。
根据所述二叉树模型,确定协议解析的子节点;其中,
所述子节点包括链路节点、网络节点和传输节点;
子节点是因为本发明将每个数据进行解析的方式在二叉树模型上进行对比,判断每个数据包对应的解析方式。
根据所述子节点,将所述目标网络数据包的数据传输通道连接至数据解析接口。子节点确定了数据解析方式之后,就可以实现数据的解析,及析出具体的数据内容。
上述技术方案的工作原理为:基于二叉树模型否见数据解析接口,每一个节点都代表着负载均衡算法中的数据参数,进而能够进行全面的数据解析,生成统一数据解析接口。
上述技术方案的有益效果为:本发明能够快速进行数据解析,依赖于二叉树模型识别数据,能够快速高效的进行数据包的内容和信息的解析。
作为本发明的一种实施例:所述通过零拷贝程序将所述数据包内容转移至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至的共享缓冲区域,包括:
在内核态进程中设置内核态缓存区;
内核态缓存区是用于存储从网卡中传输至内核态的数据,也就是数据包的内容。
基于内存映射和零拷贝程序将所述数据包内容映射至所述内核态缓存区;
通过所述内核态缓存区将所述数据包内容封装为内核态网络数据包;
获取所述内核态进程连接的用户态进程和网卡,并确定用户态进程和网卡的共享缓冲区域;因为数据传输到内核态的时候会需要启动进程,而本发明通过设置共享缓冲区域,就可以实现在内核态本应该进行传输的数据的在共享缓冲区域生成数据包传输,进而实现数据包的传输,并共享缓冲区域进行存储。
将所述内核态网络数据包通过零拷贝程序的同步内核协议栈传输至用户态进程和网卡的共享缓冲区域。
同步内核协议栈就这些传输的数据可以通过向上或者向下的结数据接口和软件自身的分层,以符合内核协议规则的方式,传输到共享缓冲区域。
上述技术方案的工作原理为:本发明在内核态进程中设立内核缓冲区域,并且与用户态进程的缓冲区域同步对应,采用同步的内核协议栈,有利于数据包内容的直接映射。
上述技术方案的有益效果为:能够直接将数据包中的数据直接映射至内核态进程的缓冲区域,不包含拷贝的方案,而且能够提高速度。
作为本发明的一种实施例:所述通过零拷贝程序将所述数据包内容转移至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至的共享缓冲区域,还包括:
根据所述数据包内容,确定数据包地址;数据包地址代表数据包中解析出来的,数据包的内容要传输的地址信息。
将数据包地址传输至内核态进程的空闲缓冲队列,判断内核态进程的内核态缓存区是否空闲;
数据包地址传输到内核态进程的空闲缓冲队列的时候,就可以实现数据包内容的映射。而判断是否内核态缓存区是否空闲,是判断数据是否能存储在这个内核态缓存区。内核态进程的内核态缓存区是因为本发明不能让进程参与,所以内核态进程空闲的时候,利用这些空闲的缓存区,内核态进程也是不启动的,因为内核态进程和内核态进程的缓存区是相对独立的。
当内核态缓存区存在空闲时,根据所述数据包地址,将数据包内容进行映射;数据映射的目的就是将数据映射至目标区域。
当内核态缓存区不存在空闲时,在内核态进程中设定一个空闲的内核缓冲区域,并将数据包内容映射至设定的内核缓冲区域。因为,本发明就是为了规避数据传输时,具有一些进程的参与导致数据传输效果不好,所以数据包内容传输至内核态缓存区域的时候,必定是空闲的缓存区域。
上述技术方案的工作原理为:在建立内核缓冲区域的时候,本发明设立空闲缓冲队列的检测机制,然后确定空闲状态下,数据包的内容可以传输的空闲区域,进而实施空闲区域的数据存储。
上述技术方案的有益效果为:通过空闲缓冲队列,能够让需要加速的数据包内容进行快速的加速。
作为本发明的一种实施例:所述在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区,包括:
构建分布式解析模型,并构建用户态进程的共享缓冲区域;
因为数据包的内容最终还是传输至用户态进程中,进行数据的使用。而且采用的是零拷贝的方式,所以本发明在用户态进程设置共享缓冲区域,数据传输至共享缓冲区域的时候,用户态进程就可以实现调用。
捕获所述内核态网络数据包,并存储在所述共享缓冲区域;
根据所述分布式解析模型,确定所述内核态网络数据包的文件信息,并根据文件信息进行分组集群;其中,
所述文件信息包括:数据包大小、数据包个数、数据包生成时间、数据包关键字;
所述分组集群按照数据包关键字进行分组,并将每一系列的关键字作为一个单一集群;
分别对每个单一集群进行按照关键字进行读取,并确定每个数据包的关键信息、数据属性、源IP地址、目的IP地址、目的端口、目的进程、协议类型、数据包长度和数据包捕获时间;
在每个单一集群的关键字读取之后,通过共享缓冲区域将数据包内容传输至网卡和用户态缓冲区。
在内核态数据包到达共享缓冲区域的时候,就可以通过解析,分析出数据的类型和数据的属性等各种数据信息。
上述技术方案的工作原理为:本发明在进行数据包内容解析的时候,会根据网卡和用户态进程的数据接受方式,通过文件分组,实现数据包内容信息的读取。
上述技术方案的有益效果为:确定每个数据包的数据包信息,并确定每个数据包对应的网卡和用户态进程的文件参数,进而实现对数据包内容的解析,确定数据包内容的具体情况。
作为本发明的一种实施例:所述构建分布式解析模型,包括:
获取内核态网络数据包的数据包特征,创建内核态网络数据包的捕获函数;
这个捕获函数的作用是判断共享缓冲区域的数据包是不是内核态数据包,从而防止数据出现混乱。
根据所述捕获函数,创建分包集群;分包集群就是将数据包进行划分的集群。而集群又是以节点的形式体现,本发明参考分布式技术建立了具有创造性的数据解析方式。
根据所述分包集群,生成控制节点和数据包节点;其中,
所述控制节点用于对内核态网络数据包进行管理;
进行管理的含义数据,控制节点负责数据包的类型划分和数据分发。
所述数据包节点用于存储和计算内核态网络数据包;
数据包节点就是存储节点用于存储数据,并进行数据解析。
根据所述控制节点,设置所述数据包节点的解析内容;
根据所述解析内容,设置解析内容的解析键值;
根据所述解析键值,设置键值聚合节点;聚合节点的设置书通过数据聚合技术,将同一批数据的设置在同一批聚合阈值之内,实现数据的合并。如何数据都在一个聚合阈值之内,就表明数据是同一批,进而可以实现数据合并。
根据所述键值聚合节点,对每个数据包的键值进行规约合并;
根据所述规约合并,确定分布式解析模型。
上述技术方案的工作原理为:本发明构建分布式解析机制的时候,通过构建捕获函数,通过分包集群实现数据的解析,最后基于键值实现分布式解析的规约合并,生成分布式解析模型。
上述技术方案的有益效果为:本发明能够对分布式网络的加速数据进行解析,进而确定分布式系统的解析方式,进而通过解析的方式进行数据吧的解析。
作为本发明的一种实施例:如附图3所示,本发明还包括一种数据转换步骤,根据所述在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区,还包括:
步骤1101:根据所述用户态缓冲区,确定所述共享缓冲区域可识别数据包的数据包规格;
步骤1102:根据所述内核态网络数据包的数据包内容,确定目的IP地址;
步骤1103:根据所述数据包规格,将所述内核态网络数据包的数据包内容进行转换,并在转换后封装为网卡和用户态缓冲区可识别的网络数据包;
步骤1104根据所述目的IP地址,将所述网络数据包传输至用户态缓冲区。
数据传输到最后的目的还是用户态进程可以利用和识别这些数据,所以本发明还会进行数据转换,转换为用户态进程可以识别的数据,最终传输至用户态进程。
上述技术方案的工作原理为:本发明在将数据包往网卡和用户态进程传输的时候,存在需要数据地址,因此,本发明建立地址是别的数据包规格方式,通过地址信息的确定进行数据包的内容传输,最后基于封装和转换,实现网络数据的加速。
上述技术方案的有益效果为:本发明能够根据IP地址快速的找到网卡和用户态进程,进而快速将加速信息和加速内容传输至网卡和用户态进程。
作为本发明的一种实施例:所述并在转换后封装为用户态缓冲区可识别的网络数据包,包括:
步骤1:获取所述网卡和用户态进程的数据包规格,并提取网络数据包的目标特征:
Figure 902055DEST_PATH_IMAGE023
其中,
Figure 916147DEST_PATH_IMAGE002
表示用户态进程的网络数据包的最大数据容量;
Figure 857558DEST_PATH_IMAGE003
表示网络数据包中 数据文件的数目;
Figure 236587DEST_PATH_IMAGE004
表示网络数据包中第
Figure 958555DEST_PATH_IMAGE005
个数据文件的语义参数;
Figure 41918DEST_PATH_IMAGE006
表示网络数据包的链 路特征;
Figure 900152DEST_PATH_IMAGE007
表示网络数据包的地址特征;
Figure 918924DEST_PATH_IMAGE008
Figure 924926DEST_PATH_IMAGE009
表示网络数据包的目标特 征;
在步骤1中,本发明计算的是网络数据包的目标特征,在这个计算过程中,本发明 提取目标特征的方式是通过网络数据包的容量、语义参数、链路特征、地址特征计算得到。 在本发明中,语义参数是具有一定限定得特定数值,每个语义参数都由一个数字代替。但是 这个数字不会为1。
Figure 156187DEST_PATH_IMAGE017
表示数据包得容量范围,本发明的计算以这个最大容量范 围的和引入计算,就能够突出每个数据包具体的语义特征和特点,同样也加强了地址和链 路的数据代入,使得数据包的总体特征是偏向于地址、链路和自身的语义参数,在引入坐标 的时候,每个数据包的目标特征也是不同的指数坐标进行体现。
步骤2:根据所述内核态网络数据包的数据包内容,确定数据包内容的内容特征;
Figure 925386DEST_PATH_IMAGE024
其中,
Figure 583900DEST_PATH_IMAGE011
表示第
Figure 749302DEST_PATH_IMAGE012
个网络数据包的内容参数;
Figure 643309DEST_PATH_IMAGE013
表示第𝑗个网络数据包的的类型参 数;
Figure 413819DEST_PATH_IMAGE014
表示第
Figure 39972DEST_PATH_IMAGE012
个网络数据包的格式参数;
Figure 20567DEST_PATH_IMAGE015
表示数据包内容中每个数据文件的数据平均参 数;
Figure 593631DEST_PATH_IMAGE016
表示第
Figure 77702DEST_PATH_IMAGE012
个网络数据包中每个数据文件的数据容量在
Figure 140335DEST_PATH_IMAGE017
之间;
Figure 952434DEST_PATH_IMAGE018
表示第
Figure 719401DEST_PATH_IMAGE012
个网络数据包中每个数据文件的数据容量在
Figure 995662DEST_PATH_IMAGE017
之间的标志参 数;
Figure 432459DEST_PATH_IMAGE019
Figure 856488DEST_PATH_IMAGE020
表示数据包的总数量;
在步骤2中,本发明计算的是数据包得内容特征,内容特征本发明在计算的过程中 是要除以数据平均参数,数据平均参数是数据的综合参数,主要体现在数据容量、数据语义 的容量参数,因为一个数据包中可能存在多个数据文件,每个数据文件是不同的,所以本发 明引入了这个参数。在这个计算过程中,主要计算的是每个数据包的内容所体现的平均内 容参数。本发明还引入了每个数据的容量的具体参数,并且容量是在
Figure 36933DEST_PATH_IMAGE017
之内,这 是因为,本发明需要一个筛选,本发明步骤1已经表明数据容量在
Figure 495596DEST_PATH_IMAGE017
,这个过程 也是对既定数据包内容的一个筛选,从而确定整个数据包确切的数据内容特征。
步骤3:根据所述网络数据包的目标特征和数据包内容的内容特征,通过下式的融合算法生成网卡和用户态进程可识别的网络数据包:
Figure 696771DEST_PATH_IMAGE025
其中,
Figure 749040DEST_PATH_IMAGE022
表示通过融合算法生成网卡和用户态进程可识别的网络数据包的融合参 数。
在步骤1中本发明计算的是单个数据文件的特征,也是用户态进程可以识别的数据是什么特征,在步骤2中本发明计算的是整个数据包的具体特征,因此,在步骤3中本发明实际计算的是每个文件的目标特征和数据包整体特征的比值,本发明最后的目的是封装为用户态缓冲区可识别的网络数据包,在这个识别上,本发明采用的是数据融合的形式,目的是实现数据融合,从而可以容用户态进程识别这些数据包。融合之后的数据包在特征上是和用户态进程可以识别的目标特征是相同的。本发明采用比值的方式其实就是确定用户态文件和网络数据的比值系数,再明确比值系数之后,为了可以识别数据包的内容,应该是根据这个系数对数据包特征进行替换。所以本发明采用了公式3,进行数据替换,最后得到的必定是可以识别的。
上述技术方案的工作原理为:本发明的数据传输至网卡和用户态进程,是一种将网络数据包的内容转换为网卡和用户态进程可以识别的特征。因此,本发明通过提取网络数据包的目标特征和数据包内容的内容特征进行数据融合,而融合后的网络数据包的唯一参数,来确定最终的网络数据包。
上述技术方案的有益效果为:本发明在进行数据包传输的时候,通过了融合算法,更加有利的结合了数据原特征和解析特征,实现了数据快速识别和高效加速。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种高性能内核态网络数据包加速方法,其特征在于,包括:
获取网卡中待处理的网络数据包,并进行解析,确定数据包内容;其中,
所述数据包内容由网络地址、地址数据包和传输数据包确定;
基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域;
在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区。
2.如权利要求1所述的一种高性能内核态网络数据包加速方法,其特征在于,所述获取网卡中待处理的网络数据包,并进行解析,确定数据包内容,包括:
建立数据包调用机制;
通过所述数据包调用机制对网卡内的信息进行拦截,确定需要进行加速的目标网络数据包,并确定目标网络数据包的位置;
根据所述目标网络数据包的位置,通过负载均衡算法将所述目标网络数据包的数据传输通道连接至数据解析接口;其中,
所述数据解析接口为统一接口,其设置有数据类型识别规则和解析步骤匹配规则;
根据所述数据类型识别规则,确定所述目标网络数据包的数据类型;
根据所述数据类型和解析步骤匹配规则,将所述目标网络数据包传输至链路解析层、网络解析层和传输解析层中匹配的解析接口进行解析,确定网络数据包的网络地址、地址数据包和传输数据包。
3.如权利要求2所述的一种高性能内核态网络数据包加速方法,其特征在于,所述建立数据包调用机制,包括:
在网卡内构建拦截器,拦截网卡内的请求信息和响应信息;
构建服务发现模块,对所述请求信息和响应信息进行识别,确定需要进行的用户服务;其中,
所述用户服务包括加速服务和进程检测服务;
基于预设的负载均衡算法,确定数据解析过程,生成数据解析接口;
根据所述数据解析接口,构建文件缓冲区,并将所述网络数据包循环式的传输至所述文件缓冲区;
通过所述文件缓冲区,生成数据调用机制。
4.如权利要求3所述的一种高性能内核态网络数据包加速方法,其特征在于,所述通过负载均衡算法将所述目标网络数据包的数据传输通道连接至数据解析接口,包括:
根据所述负载均衡算法,确定目标网络数据包对应的解析方式;
根据所述解析方式,构建基于协议解析的二叉树模型;
根据所述二叉树模型,确定协议解析的子节点;其中,
所述子节点包括链路节点、网络节点和传输节点;
根据所述子节点,将所述目标网络数据包的数据传输通道连接至数据解析接口。
5.如权利要求1所述的一种高性能内核态网络数据包加速方法,其特征在于,所述基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域,包括:
在内核态进程中设置内核态缓存区;
基于内存映射和零拷贝程序将所述数据包内容映射至所述内核态缓存区;
通过所述内核态缓存区将所述数据包内容封装为内核态网络数据包;
获取所述内核态进程连接的用户态进程和网卡,并确定用户态进程和网卡的共享缓冲区域;
将所述内核态网络数据包通过零拷贝程序的同步内核协议栈传输至用户态进程和网卡的共享缓冲区域。
6.如权利要求1所述的一种高性能内核态网络数据包加速方法,其特征在于,所述基于内存映射和零拷贝程序将所述数据包内容映射至内核态缓存区,形成内核态网络数据包,并通过零拷贝程序将所述内核态网络数据包传输至用户态进程和网卡的共享缓冲区域,还包括:
根据所述数据包内容,确定数据包地址;
将数据包地址传输至内核态进程的空闲缓冲队列,判断内核态进程的内核态缓存区是否空闲;
当内核态缓存区存在空闲时,根据所述数据包地址,将数据包内容进行映射;
当内核态缓存区不存在空闲时,在内核态进程中设定一个空闲的内核缓冲区域,并将数据包内容映射至设定的内核缓冲区域。
7.如权利要求1所述的一种高性能内核态网络数据包加速方法,其特征在于,所述在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区,包括:
构建分布式解析模型,并构建用户态进程和网卡的共享缓冲区域;
捕获所述内核态网络数据包,并存储在所述共享缓冲区域;
根据所述分布式解析模型,确定所述内核态网络数据包的文件信息,并根据文件信息进行分组集群;其中,
所述文件信息包括:数据包大小、数据包个数、数据包生成时间、数据包关键字;
所述分组集群按照数据包关键字进行分组,并将每一系列的关键字作为一个单一集群;
分别对每个单一集群进行按照关键字进行读取,并确定每个数据包的关键信息、数据属性、源IP地址、目的IP地址、目的端口、目的进程、协议类型、数据包长度和数据包捕获时间;
在每个单一集群的关键字读取之后,通过共享缓冲区域将数据包内容传输至用户态缓冲区。
8.如权利要求7所述的一种高性能内核态网络数据包加速方法,其特征在于,所述构建分布式解析模型,包括:
获取内核态网络数据包的数据包特征,创建内核态网络数据包的捕获函数;
根据所述捕获函数,创建分包集群;
根据所述分包集群,生成控制节点和数据包节点;其中,
所述控制节点用于对内核态网络数据包进行管理;
所述数据包节点用于存储和计算内核态网络数据包;
根据所述控制节点,设置所述数据包节点的解析内容;
根据所述解析内容,设置解析内容的解析键值;
根据所述解析键值,设置键值聚合节点;
根据所述键值聚合节点,对每个数据包的键值进行规约合并;
根据所述规约合并,确定分布式解析模型。
9.如权利要求1所述的一种高性能内核态网络数据包加速方法,其特征在于,所述在所述共享缓冲区域将所述内核态网络数据包的数据包内容解析出来,并传输至用户态缓冲区,还包括:
根据所述用户态缓冲区,确定所述共享缓冲区域可识别数据包的数据包规格;
根据所述内核态网络数据包的数据包内容,确定目的IP地址;
根据所述数据包规格,将所述内核态网络数据包的数据包内容进行转换,并在转换后封装为用户态缓冲区可识别的网络数据包;
根据所述目的IP地址,将所述网络数据包传输至用户态缓冲区。
CN202111109765.5A 2021-09-23 2021-09-23 一种高性能内核态网络数据包加速方法 Active CN113986811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111109765.5A CN113986811B (zh) 2021-09-23 2021-09-23 一种高性能内核态网络数据包加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111109765.5A CN113986811B (zh) 2021-09-23 2021-09-23 一种高性能内核态网络数据包加速方法

Publications (2)

Publication Number Publication Date
CN113986811A CN113986811A (zh) 2022-01-28
CN113986811B true CN113986811B (zh) 2022-05-10

Family

ID=79736307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111109765.5A Active CN113986811B (zh) 2021-09-23 2021-09-23 一种高性能内核态网络数据包加速方法

Country Status (1)

Country Link
CN (1) CN113986811B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115567590B (zh) * 2022-11-17 2023-03-10 鹏城实验室 数据包调度方法、装置、设备及可读存储介质
CN116455612B (zh) * 2023-03-23 2023-11-28 京信数据科技有限公司 一种隐私计算中间数据流零拷贝装置及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106549869A (zh) * 2015-09-21 2017-03-29 北京信威通信技术股份有限公司 数据包处理方法及装置
CN106850565A (zh) * 2016-12-29 2017-06-13 河北远东通信系统工程有限公司 一种高速的网络数据传输方法
CN109766187A (zh) * 2019-01-10 2019-05-17 烽火通信科技股份有限公司 网络数据包高速处理转发方法及系统
CN110505244A (zh) * 2019-09-19 2019-11-26 南方电网数字电网研究院有限公司 远程隧道访问技术网关以及服务器
CN110855610A (zh) * 2019-09-30 2020-02-28 视联动力信息技术股份有限公司 一种数据包的处理方法、装置及存储介质
CN111431757A (zh) * 2020-02-18 2020-07-17 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2555517B (en) * 2016-08-03 2022-05-11 Sophos Ltd Mitigation of return-oriented programming attacks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106549869A (zh) * 2015-09-21 2017-03-29 北京信威通信技术股份有限公司 数据包处理方法及装置
CN106850565A (zh) * 2016-12-29 2017-06-13 河北远东通信系统工程有限公司 一种高速的网络数据传输方法
CN109766187A (zh) * 2019-01-10 2019-05-17 烽火通信科技股份有限公司 网络数据包高速处理转发方法及系统
CN110505244A (zh) * 2019-09-19 2019-11-26 南方电网数字电网研究院有限公司 远程隧道访问技术网关以及服务器
CN110855610A (zh) * 2019-09-30 2020-02-28 视联动力信息技术股份有限公司 一种数据包的处理方法、装置及存储介质
CN111431757A (zh) * 2020-02-18 2020-07-17 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置

Also Published As

Publication number Publication date
CN113986811A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
US6370599B1 (en) System for ascertaining task off-load capabilities of a device and enabling selected capabilities and when needed selectively and dynamically requesting the device to perform the task
CN101217464B (zh) 一种udp数据包的传输方法
CN113986811B (zh) 一种高性能内核态网络数据包加速方法
US7274706B1 (en) Methods and systems for processing network data
US7437547B2 (en) Method and computer program product for offloading processing tasks from software to hardware
US6614808B1 (en) Network packet aggregation
US7577896B2 (en) Apparatus and method for performing cyclic redundancy check (CRC) on partial protocol data units (PDUS)
US9356844B2 (en) Efficient application recognition in network traffic
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
JP2004534311A (ja) 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成
CN101217493A (zh) 一种tcp数据包的传输方法
US10609125B2 (en) Method and system for transmitting communication data
US9794354B1 (en) System and method for communication between networked applications
EP2755363A1 (en) Data-fast-distribution method and device
US20220027208A1 (en) Method for controlling of accelerating edge platform network and electronic device using the same
US20210359952A1 (en) Technologies for protocol-agnostic network packet segmentation
CN110661891B (zh) 一种基于单向网络的跨网文件即时传输方法及系统
CN114153778A (zh) 跨网络桥接
WO2022068756A1 (zh) 基于微服务的服务网格系统及服务治理方法
US8990422B1 (en) TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data
US7580410B2 (en) Extensible protocol processing system
CN103368872A (zh) 数据包转发系统和方法
WO2001016742A2 (en) Network shared memory
WO2017054515A1 (zh) 一种色情图像检测方法和系统
CN114629891A (zh) 文件传输方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant