一种IPSec VPN网关数据包处理装置及方法制造方法及图纸

技术编号:21898897 阅读:23 留言:0更新日期:2019-08-17 18:23
本发明专利技术提供一种IPSec VPN网关数据包处理装置及方法,包括:IPSec主模块,用于进行IPSec VPN网关的数据层面和控制层面分离;数据层面包括用户态网卡收发数据包,控制层面包括IPSec协议的密钥协商;用户态收发包模块,用于提供用户态网卡收发数据包的收包接口和发包接口,并与IPSec主模块进行交互实现数据包的收发。本发明专利技术能够实现数据包的零拷贝、数据层面和控制层面分离,有效提升数据包的处理性能。

A Packet Processing Device and Method for IPSec VPN Gateway

【技术实现步骤摘要】
一种IPSecVPN网关数据包处理装置及方法
本专利技术涉及计算机数据处理
,具体涉及一种IPSecVPN网关数据包处理装置及方法。
技术介绍
VPN技术,即虚拟专用网技术,是指在公共网络中建立私有专用网络,数据通过安全的“加密管道”在公共网络中传播。虚拟专用网是一条穿过公用网络的安全、稳定的隧道。通过对网络数据的封包和加密传输,在一个公用网络建立一个临时的、安全的连接,从而实现在公网上传输私有数据,达到私有网络的安全级别。IPSecVPN是采用IPSec协议来实现远程接入的一种目前广泛使用的VPN技术,用以提供公用和专用网络的端对端加密和验证服务。然而传统的IPSecVPN数据传输,是数据包到达网卡后,网卡驱动产生一个中断告知内核,内核将数据包从网卡缓冲区复制到内核缓冲区,最后还需要将数据包拷贝至应用程序的用户态缓冲区,在整个的处理流程中,中断通知、数据包的拷贝、用户态和内核态的切换等导致消耗一定的CPU资源和损耗大量的CPU性能;此外,数据传输还涉及控制层面和数据层面,控制层面是各种协议工作的层面,数据层面是针对数据收发等,采用多CPU切换和调度将使得控制层面和数据层面相互交织,融合处理,如何合理地设计使用CPU资源,使得控制层面和数据层面能够相互分离,提高数据包处理的性能是目前急需解决的问题。为了解决上述所存在的问题,人们一直在寻求一种理想的技术解决方案。
技术实现思路
本专利技术的目的在于针对现有技术中存在的不足,从而提供一种IPSecVPN网关数据包处理装置及方法,通过用户态网卡轮询DMA连续内存机制实现数据包的收发,避免多次拷贝、中断收包以及用户态和内核态的切换;同时,通过将数据层面绑定单独的一CPU核,控制层面绑定另一CPU核,保证数据层面和控制层面分离,避免数据层面和控制层面的CPU资源竞争。为达到上述目的,本专利技术采用的技术方案如下:一种IPSecVPN网关数据包处理装置,包括:IPSec主模块,用于进行IPSecVPN网关的数据层面和控制层面分离;所述数据层面包括用户态网卡收发数据包,所述控制层面包括IPSec协议的密钥协商;用户态收发包模块,用于提供所述用户态网卡收发数据包的收包接口和发包接口,并与所述IPSec主模块进行交互实现数据包的收发。基于上述,所述数据层面独占绑定第一CPU核,所述控制层面绑定第二CPU核;所述数据层面还包括由所述第一CPU核进行数据包的协议解析、包过滤和NAT功能。基于上述,所述用户态收发包模块采用用户态网卡轮询DMA的连续内存机制进行数据包的收发,所述连续内存用于用户态网卡DMA进行数据包的直接存储。基于上述,所述数据包处理装置还包括FPGA加解密模块,用于与所述IPSec主模块进行交互实现数据包的加解密。本专利技术还提供一种应用所述的数据包处理装置的数据包处理方法,所述数据包处理方法包括:通过所述IPSec主模块进行IPSecVPN网关的数据层面和控制层面分离;所述数据层面包括用户态网卡收发数据包,所述控制层面包括IPSec协议的密钥协商;通过所述用户态收发包模块与所述IPSec主模块进行交互实现数据包的收发。基于上述,通过所述IPSec主模块进行IPSecVPN网关的数据层面和控制层面分离具体包括:将所述数据层面独占绑定第一CPU核及将所述控制层面绑定第二CPU核;所述IPSec主模块采用所述第二CPU核进行IPSec协议的密钥协商生成共享密钥;所述IPSec主模块采用所述第一CPU核并通过调用所述用户态收发包模块的收包接口和发包接口进行数据包的收发。基于上述,所述数据包的收发通过所述用户态收发包模块采用用户态网卡轮询DMA的连续内存机制进行数据包的收发。基于上述,所述数据包的收发通过所述用户态收发包模块采用用户态网卡轮询DMA的连续内存机制进行数据包的收发具体包括:所述数据包的收包具体包括:步骤1,初始化用户态网卡申请的连续内存和寄存器;步骤2,申请收包环形队列并从所述连续内存上申请数据包绑定所述收包环形队列;步骤3,设置所述用户态网卡的收包基地址并启动所述用户态网卡;步骤4,通过轮询所述收包环形队列并判断当前节点状态是否就绪,若就绪则将所述数据包的地址发送至所述IPSec主模块处理,否则等待下次轮询;所述数据包的发包具体包括:步骤S1,初始化用户态网卡申请的连续内存和寄存器;步骤S2,申请发包环形队列并从所述IPSec主模块读取待发送的数据包及将所述待发送的数据包放置于所述发包环形队列;步骤S3,通过置位所述用户态网卡的发送寄存器并等待下一个需要发送的数据包。基于上述,所述数据包处理方法还包括:通过所述FPGA加解密模块与所述IPSec主模块进行交互实现数据包的加解密。基于上述,通过所述FPGA加解密模块与所述IPSec主模块进行交互实现数据包的加解密具体包括:所述IPSec主模块将所述共享密钥和收发的所述数据包发送至FPGA加解密模块;所述FPGA加解密模块通过所述共享密钥对收发的所述数据包进行加解密和HMAC计算后返回至所述IPSec主模块。本专利技术具有突出的实质性特点和显著的进步,具体的说:(1)通过用户态收发包模块采用用户态网卡轮询DMA的连续内存进行数据包的收发,绕开内核协议栈,实现用户态直接处理连续内存中的数据包,不需要切换到内核态,有效避免了数据包的拷贝,实现数据包零拷贝;(2)通过数据层面绑定单独的一CPU核,避免与其他的CPU进行资源竞争;控制层面绑定另一CPU核,避免抢占数据层面CPU核;(3)通过IPSec主模块完成控制层面以及调用用户态收发包模块完成数据层面,并使控制层面和数据层面绑定不同的CPU核,有效保证控制层面和数据层面的分离;(4)通过FPGA加解密模块与IPSec主模块进行交互实现数据包的加解密,保证数据包的安全传输;(5)通过采用收包环形队列和发包环形队列,能够高效且频繁地进行多线程通信传递数据包,有效提升数据包的处理性能。附图说明图1为本专利技术IPSecVPN网关数据包处理方法中数据包的收包流程图;图2为本专利技术IPSecVPN网关数据包处理方法中数据包的发包流程图。具体实施方式为了使本专利技术能够更加清楚,下面通过具体实施方式,对本专利技术的技术方案做进一步的详细描述。用户态和内核态的概念:当一个进程在执行用户自己的代码时处于用户运行态(用户态),大部分用户直接面对的程序都是运行在用户态。当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(内核态)。执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。用户运行一个程序,该程序创建的进程开始时运行自己的代码,处于用户态。如果要执行文件操作、网络数据发送等操作必须通过系统调用,这些会调用内核的代码。当在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成一些用户态没有自己特权和能力完成的操作时就会切换到内核态。切换的方式包括:系统调用、异常以及外围设备的中断。零拷贝的概念:零拷贝就是一种避免将数据在内存空间相互复制的技术,主要用于网络协议栈,文件系统以及设备驱动程序。通过使用零拷贝技术,应用程序的重复冗余拷贝操作减少,性能有了明显的提升,并且对于操作系统的资源,使用起来更加的合理。一种IPSecVPN网关数据包处理装置,包括:I本文档来自技高网...

【技术保护点】
1.一种IPSec VPN网关数据包处理装置,其特征在于,包括:IPSec主模块,用于进行IPSec VPN网关的数据层面和控制层面分离;所述数据层面包括用户态网卡收发数据包,所述控制层面包括IPSec协议的密钥协商;用户态收发包模块,用于提供所述用户态网卡收发数据包的收包接口和发包接口,并与所述IPSec主模块进行交互实现数据包的收发。

【技术特征摘要】
1.一种IPSecVPN网关数据包处理装置,其特征在于,包括:IPSec主模块,用于进行IPSecVPN网关的数据层面和控制层面分离;所述数据层面包括用户态网卡收发数据包,所述控制层面包括IPSec协议的密钥协商;用户态收发包模块,用于提供所述用户态网卡收发数据包的收包接口和发包接口,并与所述IPSec主模块进行交互实现数据包的收发。2.根据权利要求1所述的IPSecVPN网关数据包处理装置,其特征在于,所述数据层面独占绑定第一CPU核,所述控制层面绑定第二CPU核;所述数据层面还包括由所述第一CPU核进行数据包的协议解析、包过滤和NAT功能。3.根据权利要求1所述的IPSecVPN网关数据包处理装置,其特征在于,所述用户态收发包模块采用用户态网卡轮询DMA的连续内存机制进行数据包的收发,所述连续内存用于用户态网卡DMA进行数据包的直接存储。4.根据权利要求1所述的IPSecVPN网关数据包处理装置,其特征在于,所述数据包处理装置还包括FPGA加解密模块,用于与所述IPSec主模块进行交互实现数据包的加解密。5.一种应用权利要求1所述的IPSecVPN网关数据包处理装置的数据包处理方法,其特征在于,所述数据包处理方法包括:通过所述IPSec主模块进行IPSecVPN网关的数据层面和控制层面分离;所述数据层面包括用户态网卡收发数据包,所述控制层面包括IPSec协议的密钥协商;通过所述用户态收发包模块与所述IPSec主模块进行交互实现数据包的收发。6.根据权利要求5所述的数据包处理方法,其特征在于,通过所述IPSec主模块进行IPSecVPN网关的数据层面和控制层面分离具体包括:将所述数据层面独占绑定第一CPU核及将所述控制层面绑定第二CPU核;所述IPSec主模块采用所述第二CPU核进行IPSec协...

【专利技术属性】
技术研发人员:廖正赟孙晓鹏李亚运卫志刚刘武忠李顶占李鑫武宗品
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南,41

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

1