一种实现ipsecvpn加解密处理的方法及装置的制作方法

文档序号:7856942阅读:445来源:国知局
专利名称:一种实现ipsec vpn加解密处理的方法及装置的制作方法
技术领域
本发明属于数据通信领域,尤其涉及一种采用异步机制高速实现IPSEC VPN加解密处理的方法及装置。
背景技术
术语解释
IPESC Internet Protocol Security 的缩写,表不 Internet 协议安全性。是一种开放标准的框架结构,通过使用加密的安全服务以确保在Internet协议(IP)网络上进行保密而安全的通讯;VPN :虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技木。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台,如Internet、ATM(异步传输模式〉、Frame Relay (巾贞中继)等之上的逻辑网络,用户数据在逻辑链路中传输。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展。VPN主要采用了隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技木。目前,市场上的IPSECVPN设备在处理数据报文加解密的时候,通常是分别为加解密协处理器和网卡维持単独的数据队列,并采用生产者-消费者模型实现数据报文的处理,其处理模型如图I所示
在网络处理器中,分别用网卡接收队列、网卡发送队列管理网卡接收的未经加解密协处理器处理的数据报文和经加解密协处理器处理后可立即由网卡发送的数据报文,在加解密协处理器中,则用协处理器队列管理等待处理的数据报文,这三个队列都分别配置有生产者和消费者两个队列指针。在中央处理器的调度下,网卡接收的数据报文经指针生产者I指示按序存入网卡接收队列,再经指针消费者I指示从网卡接收队列中按序读取数据报文,同步传输至协处理器,在指针生产者2的指示下按序存入协处理器队列,协处理器经指针消费者2从协处理器队列中读取数据报文进行处理,此时中央处理器需等待协处理器的加解密结果才能继续下一流程,即触发数据发送处理线程工作。处理完的报文同步传输给网卡,在指针生产者3的指示下按序存入网卡发送队列,网卡再在指针消费者3的指示下从网卡发送队列中按序读取数据报文进行发送。现有的这种网络数据报文的处理方法,由于其不但要维持各队列内的数据报文处理,还要时刻维持队列间的同步以及系统内部的实时数据传输,中央处理器经常处于等待状态,造成数据报文的处理效率以及协处理器的利用效率都非常低,而且还需要占用很多的内存资源和中央处理器的开销,数据报文的处理效率(即吞吐率)最高还不到30%
发明内容
本发明所要解决的技术问题是针对现有技术中用多个单独的数据队列来分别管理加解密协处理器和网卡中的数据报文,从而为了維持各队列内的数据报文处理,以及维持队列间的同步和系统内部的实时数据传输,使得数据报文的处理效率及协处理器的利用效率很低,且内存资源和中央处理器的开销过大的问题,提供一种采用异步机制高速实现IPSEC VPN加解密处理的方法及装置,采用内核线程共享的数据接收处理线程(数据接收处理模块)、数据加解密处理线程(数据加解密处理模块)、数据发送处理线程(数据发送处理模块)对网卡输入的数据进行异步处理,同时几个线程(模块)还可同时并行工作,操作队列的生产者、操作者、消费者三个指针实现数据报文的互斥、协同处理,顺序协调队列中数据报文的进出以及与加解密协处理器的通信,加解密协处理器工作时收发网络数据和其他的数据处理工作仍然可以同时进行,从而可以极大地减少数据传输和同步维持带来的开销,实现数据报文的处理率及协处理器的利用效率的大幅提高。除此之外,通过设定生产者指针、操作者指针、消费者指针相对的位置关系,使得对环形缓冲队列中数据的处理效率进ー步提高,除此之外,对网卡输入的不同的数据报文处理采用并行处理,除此之外,在环形缓冲队列中的报文数据经过数据发送处理线程处理后对数据报文的数据缓冲区进行清空,确保下一帧存储在此数据缓冲区的数据的准确性。
本发明采用的技术方案如下
一种实现IPSEC VPN加解密处理的方法包括步骤
步骤ー网卡中断发生时,数据接收处理线程将网卡接收到未经加密协处理器处理的数据报文经生产者指针存入环形缓冲队列,并触发数据加解密处理线程工作;
步骤ニ数据加解密处理线程通过操作者指针从所述环形缓冲队列中获取数据报文发送给加解密协处理器进行处理后,在经由操作者指针存入环形缓冲队列,并触发数据发送处理线程工作;
步骤三数据发送处理线程通过消费者指针从环形缓冲队列获取数据报文发送给网
卡;
所述数据接受处理线程、数据加解密处理线程、数据发送处理线程采用异步方式分别对所述网卡输入的数据报文进行处理后,再通过网卡输出;同时对网卡输入的不同的数据报文处理采用并行处理,数据接受处理线程、数据加解密处理线程、数据发送处理线程对环形缓冲队列共享。所述步骤一中当所述生产者指针将数据存入环形缓冲队列,所述生产者指针地址加一位不超过消费者指针地址时,数据接收处理线程将网卡接收到的未经加解密协处理器处理的数据报文经生产者指针将数据报文存入环形缓冲队列缓存区,设置缓存区当前状态为FULL状态。所述步骤ニ中当操作者指针地址加一位不超过生产者指针地址时,数据加解密处理线程经操作者指针将环形缓冲队列缓冲区为FULL状态的数据交加密协处理器进行加解密处理,完成处理的数据报文经操作者指针存回环形缓冲队列并设置环形缓冲队列缓冲区当前状态为DIRTY状态。所述步骤三中当消费者指针地址加一位不超过操作者指针地址时,数据发送处理线程经消费者指针从环形缓冲队列中获取已经加解密协处理器处理的数据报文交网卡进行发送,并设置环形缓冲队列缓冲区当前状态为EMPTY状态。
所述对已发送给网卡的已经加解密协处理器处理的数据报文在所述环形缓冲队列中对应的数据缓冲区进行清空,所述生产者指针、操作者指针、消费者指针为互斥、协同的指针变量,数据接收处理线程、数据加解密处理线程、数据发送处理线程之间进行流量控制。所述触发数据加解密处理线程工作、触发数据发送线程工作中触发机制是异步软中断方式(区别于常见的同步等待查询方式),网卡发生中断指的是当网卡有接收到来自VPN设备的未经协处理器处理的数据报文或来自网络的数据报文。一种实现IPSEC VPN加解密处理的方法,还包括初始化步骤,所述初始化步骤具体为初始化数据接收处理线程、数据加解密处理线程、数据发送处理线程、生产者指针、操作者指针及消费者指针,构建环形缓冲队列,启动数据接收处理线程、数据加解密处理线程、数据发送处理线程,所述数据接收处理线程、数据加解密处理线程、数据发送处理线程分别对应生产者指针、操作者指针、消费者指针,初始化加解密协处理器,将生产者指针、操作者指针、消费者指针置位,指向环形队列首项,队列中的所有数据状态皆置为EMPTY ; 一种实现IPSEC VPN加解密处理的装置包括
数据接收处理模块,用于接收网卡传送的未经加解密协处理器处理的数据报文,将该数据报文存入所述环形缓冲队列;
数据加解密处理模块,用于将所述环形缓冲队列中的数据报文发送给加解密协处理器处理,然后将加解密协处理器处理完的数据报文存回所述环形缓冲队列;
数据发送处理模块,用于将所述环形缓冲队列中已经加解密协处理器处理的数据报文发送给网卡。所述生产者指针、操作者指针及消费者指针为互斥的指针变量。所述数据发送模块还用于对已发送给网络处理器的已经协处理器处理的数据报文在所述环形缓冲队列中对应的数据缓冲区进行清空。综上所述,由于采用了上述技术方案,本发明的有益效果是
1)采用异步机制高速实现IPSECVPN加解密处理的方法及装置,采用内核线程共享的数据接收处理线程(数据接收处理模块)、数据加解密处理线程(数据加解密处理模块)、数据发送处理线程(数据发送处理模块)对网卡输入的数据进行异步处理,操作队列的生产者、操作者、消费者三个指针实现数据报文的互斥、协同处理,顺序协调队列中数据报文的进出以及与加解密协处理器的通信,加解密协处理器工作时收发网络数据和其他的数据处理工作仍然可以同时进行,从而可以极大地减少数据传输和同步维持带来的开销,实现数据报文的处理率及协处理器的利用效率的大幅提高;
2)通过设置当所述生产者指针将数据存入环形缓冲队列,所述生产者指针地址加一位不超过消费者指针地址时,数据接收处理线程将网卡接收到的未经加解密协处理器处理的数据报文经生产者指针将数据报文存入环形缓冲队列缓存区,设置缓存区当前状态为FULL状态;当操作者指针地址加一位不超过生产者指针地址时,数据加解密处理线程经操作者指针将环形缓冲队列缓冲区为FULL状态的数据交加密协处理器进行加解密处理,完成处理的数据报文经操作者指针存回环形缓冲队列并设置环形缓冲队列缓冲区当前状态为DIRTY状态,当消费者指针地址加一位不超过操作者指针地址吋,数据发送处理线程经消费者指针从环形缓冲队列中获取已经加解密协处理器处理的数据报文交网卡进行发送,并设置环形缓冲队列缓冲区当前状态为EMPTY状态,以上生产者指针、操作者指针、消费者指针分别对应与数据接收处理线程、数据加解密处理线程、数据发送处理线程的配合准确的处理未经加密协处理器处理的数据,使得处理过程中队环形缓冲队列的处理效率进ー步提闻;
3)对网卡输入的不同的数据报文处理采用并行处理;
4)在环形缓冲队列中的报文数据经过数据发送处理线程处理后对数据报文的环形缓冲队列缓冲区进行清空,确保下一帧存储在此数据缓冲区的数据的准确性。


本发明将通过例子并參照附图的方式说明,其中
图I是现有的网络数据报文处理模型;
图2是本发明网络数据报文处理方法的实现流程 图3是本发明网络数据报文处理模型;
图4是本发明网络数据报文处理装置的结构 图中41-网卡42-处理系统
43-加解密协处理器44-中央处理器
421-初始化模块422数据接收处理模块
423-数据发送处理模块424-数据加解密处理模块。
具体实施例方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是ー系列等效或类似特征中的ー个例子而已。本发明相关术语解释
生产者及生产者指针分别与生产者-消费者模型中生产者及生产者指针定义相同。消费者及消费者指针分别与生产者-消费者模型中消费者及消费者指针定义相同。操作者指针在生产者和消费者之间对等待加解密以及完成加解密处理的数据报文进行传递的指针。FULL状态表示该缓冲区已填入等待加解密处理的数据报文。DIRTY状态表示该缓冲区的数据报文已经完成加解密处理,可以发送。EMPTY状态表示该缓冲区的数据报文已经被发送,可填入新的等待加解密处理的数据报文。数据接收处理线程、数据加解密处理线程、数据发送处理线程异步的方式独立エ作,上ー线程的处理结果存入环形缓冲队列并通知下一线程即可,例如数据接收处理线程处理结果存入环形缓冲队列并通知数据加解密处理线程;数据加解密处理线程处理结果存入环形缓冲队列并通知数据发送处理线程;数据发送处理线程处理结果存入环形缓冲队列并通知数据接收处理线程。生产者指针、操作者指针、消费者指针进行协同和互斥,通过内核消息互相通知。工作原理本发明采用异步机制高速实现IPSEC VPN加解密处理的方法及装置,通过采用环形缓冲队列统一管理网络数据报文,并通过生产者指针、操作者指针、消费者指针以及对应的数据接收处理线程、数据加解密处理线程、数据发送处理线程来实现网络数据报文收发以及加解密处理的并行,从而可以极大地减少数据传输和同步维持带来的开销,实现数据报文的处理率及加解密协处理器的利用效率的大幅提高。实施例一一种实现IPSEC VPN加解密处理的方法,包括步骤
步骤ー网卡中断发生时,数据接收处理线程将网卡接收到未经加密协处理器处理的数据报文经生产者指针存入环形缓冲队列,并触发数据加解密处理线程工作;
步骤ニ数据加解密处理线程通过操作者指针从所述环形缓冲队列中获取数据报文发送给加解密协处理器进行处理后,在经由操作者指针存入环形缓冲队列,并触发数据发送处理线程工作;
步骤三数据发送处理线程通过消费者指针从环形缓冲队列获取数据报文发送给网
卡;
所述数据接受处理线程、数据加解密处理线程、数据发送处理线程采用异步方式分别对所述网卡输入的数据报文进行处理后,再通过网卡输出;同时对网卡输入的不同的数据报文处理采用并行处理,数据接受处理线程、数据加解密处理线程、数据发送处理线程对环形缓冲队列共享。实施例ニ 在实施例一基础上,所述步骤一中当所述生产者指针将数据存入环形缓冲队列,所述生产者指针地址加一位不超过消费者指针地址时,数据接收处理线程将网卡接收到的未经加解密协处理器处理的数据报文经生产者指针将数据报文存入环形缓冲队列缓存区,设置缓存区当前状态为FULL状态。实施例三在实施例ニ基础上,所述步骤ニ中当操作者指针地址加一位不超过生产者指针地址吋,数据加解密处理线程经操作者指针将环形缓冲队列缓冲区为FULL状态的数据交加密协处理器进行加解密处理,完成处理的数据报文经操作者指针存回环形缓冲队列并设置环形缓冲队列缓冲区当前状态为DIRTY状态。实施例四,在实施例三基础上,所述步骤三中当消费者指针地址加一位不超过操作者指针地址时,数据发送处理线程经消费者指针从环形缓冲队列中获取已经加解密协处理器处理的数据报文交网卡进行发送,并设置环形缓冲队列缓冲区当前状态为EMPTY状态。实施例五,在实施例基础上,所述对已发送给网卡的已经加解密协处理器处理的数据报文在所述环形缓冲队列中对应的数据缓冲区进行清空,所述生产者指针、操作者指针、消费者指针为互斥、协同的指针变量,数据接收处理线程、数据加解密处理线程、数据发送处理线程之间进行流量控制。实施例六,在实施例四或五基础上,所述触发数据加解密处理线程工作、触发数据发送线程工作中触发机制是异步软中断方式,网卡发生中断指的是当网卡有接收到来自VPN设备的未经协处理器处理的数据报文或来自网络的数据报文。实施例七在实施例一至六之一基础上,所述步骤一之前还包括初始化步骤,所述、初始化步骤具体为初始化数据接收处理线程、数据加解密处理线程、数据发送处理线程、生产者指针、操作者指针及消费者指针,构建环形缓冲队列,启动数据接收处理线程、数据加解密处理线程、数据发送处理线程,所述数据接收处理线程、数据加解密处理线程、数据发送处理线程分别对应生产者指针、操作者指针、消费者指针,初始化加解密协处理器,将生产者指针、操作者指针、消费者指针置位,指向环形队列首项,队列中的所有数据状态皆置为HMPTY。实施例八,图2示出了本发明实现IPSEC VPN加解密处理方法的实现流程,详述如下
在步骤ー(S201)中,构建环形缓冲队列,并为该队列配置三个指针,分别设为生产者指针、操作者指针、消费者指针,同时启动数据接收处理线程、数据加解密处理线程、数据发送处理线程三个内核线程,所述启动数据接收处理线程、数据加解密处理线程、数 据报文发送处理线程分别对应生产者指针、操作者指针、消费者指针。加解密协处理器/网卡初始化吋,预分配n个缓冲区,通过双向指针将该n个缓冲区连接成环形队列,并为该队列配置三个互斥的指针,分别设为生产者指针、操作者指针、消费者指针,同吋,将生产者指针、操作者指针、消费者指针置位,指向环形队列首项,队列中的所有数据状态皆置为EMPTY。在步骤ニ(S202)中,网卡中断发生吋,网卡接收的数据报文经生产者指针存入环形缓冲队列。当网卡有接收到来自设备内部的未经协处理器处理的数据报文,或来自网络的数据帧时,网卡中断发生,继而通知数据报文接收处理线程,将网卡接收的本地数据报文解析后的数据报文在生产者指针的指示下按序存入上述环形缓冲队列,并将队列中相应数据状态置为FULL。在步骤三(S203)中,数据加解密处理线程经操作者指针从环形缓冲队列中获取数据报文交加解密协处理器进行处理,加解密协处理器工作时收发网络数据和其他的数据处理工作仍然可以同时进行,协处理器处理完的报文再经操作者指针存入队列,并将队列中相应数据状态置为DIRTY。在步骤四(S204)中,数据发送处理线程经消费者指针从队列中获取处理完的数据报文交网卡进行发送。基于上述方法的网络数据报文处理模型如图3所示
在本发明实施例中,缓冲区I、缓冲区2、缓冲区3、…、缓冲区n3、…、缓冲区n2、…、缓冲区nl、…、缓冲区n、缓冲区I依次被连接成环形缓冲队列,缓冲区I的首地址为队列首项,初始化时,指针生产者指针、操作者指针、消费者指针均指向环形缓冲队列首项,环形缓冲队列所有数据的初始状态皆置为EMPTY,其中生产者指针、操作者指针、消费者指针依次通过环形缓冲队列。网卡中断发生时,数据接收处理线程在生产者指针的指示下,将数据报文依次存入缓冲区I、缓冲区2、……并将其状态一一置为FULL ;当有一个或者多个数据报文完成存入队列吋,即可通过异步软中断事件等方式触发下ー过程,即数据加解密处理线程在操作者指针的指示下,从缓冲区I的首个存储地址开始,逐个获取队列中的状态为FULL的数据报文交加解密协处理器进行相应处理,完成处理的数据报文则实时地经操作者指针存回队列井置状态为DIRTY ;当队列中有一个或者多个数据报文完成处理时,即可触发处理该数据报文的下ー过程,即数据发送处理线程在消费者指针的指示下,从缓冲区I的首个存储地址开始,逐个获取队列中已经过处理即状态为DIRTY的数据报文进行发送,同时,对该数据报文在队列中对应的数据缓冲区进行清空井置状态为EMPTY。在上述过程中,生产者指针、操作者指针及消费者指针沿着环形队列移动,且操作者指针地址加一位不超过生产者指针地址,消费者指针地址加一位不超过操作者指针地址,生产者指针加一位不超过消费者指针地址,数据接收处理线程只能将数据存入状态为EMPTY的环形缓冲队列数据,数据加解密处理线程只能对状态为FULL的环形缓冲队列数据进行操作,数据发送处理线程只能发送状态为DIRTY的环形缓冲队列数据。而网卡接收数据报文、加解密协处理器处理数据报文以及网卡发送数据报文这三个过程在满足以上条件的前提下则可以并行,在同一时间处理不同数据报文的不同流程(接收、发送、加解密),从而形成流水线的处理机制,各个过程之间无需等待与同步维持,也不需要数据传输。图4是本发明实现IPSEC VPN加解密处理装置,其中处理系统42即示出了本发明 实现IPSEC VPN加解密处理装置,为了便于说明,仅示出了与本发明实施例相关的部分,这些部分可以是软件、硬件或软硬件结合的模块
实施例一,一种实现IPSEC VPN加解密处理的装置(处理系统42)包括初始化模块421、数据接受处理模块422、数据处理模块423以及数据发送处理模块424。初始化模块421用于构建环形缓冲队列,设置并初始化生产者、操作者及消费者指针,启动数据接收处理线程、数据加解密处理线程、数据发送处理线程三个内核线程。其中生产者指针、操作者指针、消费者指针依从缓冲区I、缓冲区2、缓冲区3、…、缓冲区n3、…、缓冲区n2、…、缓冲区nl、 、到缓冲区n,生产者指针、操作者指针、消费者指针地址分别依次増加一位,当各个指针地址从缓存区n的地址加一位后默认成为缓存区I的地址。数据接收处理模块422 (用于接收网卡传送的未经加解密协处理器处理的数据报文,将该数据报文存入所述环形缓冲队列)在中央处理器44的信号启动下,接收网卡41传送的需经加解密协处理器43处理的数据报文,通过生产者指针将数据报文按序存入环形缓冲队列,并控制生产者指针不超过消费者指针(生产者指针地址加一位不超过消费者指针地址),置FULL状态,井向中央处理器44发送中断信号,以启动处理该数据报文的数据报文加解密处理模块。中央处理器44则根据上述中断信号发送启动信号至数据加解密处理模块424(用于将所述环形缓冲队列中的数据报文发送给加解密协处理器处理,然后将加解密协处理器处理完的数据报文存回所述环形缓冲队列),由数据加解密处理模块424通过操作者指针将环形缓冲队列中的数据报文发送给加解密协处理器43处理,并将处理完的数据报文再通过操作者指针存回环形缓冲队列,以及控制操作者指针不超过生产者指针(操作者指针地址加一位不超过生产者指针),置DIRTY状态,并发送中断信号至中央处理器44。数据发送模块423(数据发送处理模块,用于将所述环形缓冲队列中已经加解密协处理器处理的数据报文发送给网卡)在中央处理器44的信号启动下,通过消费者指针将环形缓冲队列中已经加解密协处理器43处理的数据报文发送给网卡41,以及控制消费者指针不超过操作者指针(消费者指针地址加一位不超过操作者指针地址),井清空队列中完成发送的数据缓冲区,置EMPTY状态。在本发明实施例中,上述数据接受处理模块422、数据加解密处理模块424、数据发送处理模块423 —旦启动后,各模块对数据报文的处理可以并行,在同一时间处理不同数据报文的不同流程(接收、发送、加解密),从而形成流水线的处理机制。本发明实施例通过将现有技术中的三个独立的数据报文处理队列统ー为ー个环形队列,并通过操作队列的三个指针(生产者指针、操作者指针、消费者指针)和环形缓冲队列数据缓冲区的三个状态(FULL、DIRTY、EMPTY)实现与网卡和加解密协处理器间的数据高效传递,数据报文只在环形队列中維持一份拷贝,不但可以节省大量的内存资源,而且还可以消除现有技术中因为频繁分配和释放内存资源所帯来的时间、内存与中央处理器的消耗,并且可以将等待和同步带来的时间延迟和中央处理器的资源消耗减小到最低,同时,利 用指针生产者指针、操作者指针、消费者指针之间的互斥以及FULL、DIRTY、EMPTY三个状态之间的迁移可以实现对流量的控制,利用三个内核处理线程的并行工作可以实现快速流水线处理流程,从而使数据报文处理的呑吐率达到最佳,从而实现对网络数据报文进行快速的安全处理和转发处理。经实践检测,采用本发明实施例提供的高速实现IPSEC VPN加解密处理的方法及系统进行优化后的IPSEC VPN设备,数据报文的处理效率可达到90%以上。可以通过实验表格进行证明。实施例ニ在实施例一基础上,所述生产者指针、操作者指针及消费者指针为互斥的指针变量。实施例三所述数据发送模块还用于对已发送给网络处理器的已经协处理器处理的数据报文在所述环形缓冲队列中对应的数据缓冲区进行清空。本发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
1.一种实现IPSEC VPN加解密处理的方法,其特征在于,包括步骤 步骤一网卡中断发生时,数据接收处理线程将网卡接收到未经加密协处理器处理的数据报文经生产者指针存入环形缓冲队列,并触发数据加解密处理线程工作; 步骤ニ数据加解密处理线程通过操作者指针从所述环形缓冲队列中获取数据报文发送给加解密协处理器进行处理后,在经由操作者指针存入环形缓冲队列,并触发数据发送处理线程工作; 步骤三数据发送处理线程通过消费者指针从环形缓冲队列获取数据报文发送给网卡; 所述数据接受处理线程、数据加解密处理线程、数据发送处理线程采用异步方式分别对所述网卡输入的数据报文进行处理后,再通过网卡输出;同时对网卡输入的不同的数据报文处理采用并行处理,数据接受处理线程、数据加解密处理线程、数据发送处理线程对环形缓冲队列共享。
2.根据权利要求I所述的ー种实现IPSECVPN加解密处理的方法,其特征在于所述步骤一中当所述生产者指针将数据存入环形缓冲队列,所述生产者指针地址加一位不超过消费者指针地址时,数据接收处理线程将网卡接收到的未经加解密协处理器处理的数据报文经生产者指针将数据报文存入环形缓冲队列缓存区,设置缓存区当前状态为FULL状态。
3.根据权利要求2所述的ー种实现IPSECVPN加解密处理的方法,其特征在于所述步骤ニ中当操作者指针地址加一位不超过生产者指针地址时,数据加解密处理线程经操作者指针将环形缓冲队列缓冲区为FULL状态的数据交加密协处理器进行加解密处理,完成处理的数据报文经操作者指针存回环形缓冲队列并设置环形缓冲队列缓冲区当前状态为DIRTY状态。
4.根据权利要求3之一所述的ー种实现IPSECVPN加解密处理的方法,其特征在于所述步骤三中当消费者指针地址加一位不超过操作者指针地址时,数据发送处理线程经消费者指针从环形缓冲队列中获取已经加解密协处理器处理的数据报文交网卡进行发送,并设置环形缓冲队列缓冲区当前状态为EMPTY状态。
5.根据权利要求4所述的ー种实现IPSECVPN加解密处理的方法,其特征在于所述对已发送给网卡的已经加解密协处理器处理的数据报文在所述环形缓冲队列中对应的数据缓冲区进行清空,所述生产者指针、操作者指针、消费者指针为互斥、协同的指针变量,数据接收处理线程、数据加解密处理线程、数据发送处理线程之间进行流量控制。
6.根据权利要求4所述的ー种实现IPSECVPN加解密处理的方法,其特征在于所述触发数据加解密处理线程工作、触发数据发送线程工作中触发机制是异步软中断方式,网卡发生中断指的是当网卡有接收到来自VPN设备的未经协处理器处理的数据报文或来自网络的数据报文。
7.根据权利要求I至6之一所述的ー种实现IPSECVPN加解密处理的方法,其特征在于所述步骤一之前还包括初始化步骤,所述初始化步骤具体为初始化数据接收处理线程、数据加解密处理线程、数据发送处理线程、生产者指针、操作者指针及消费者指针,构建环形缓冲队列,启动数据接收处理线程、数据加解密处理线程、数据发送处理线程,所述数据接收处理线程、数据加解密处理线程、数据发送处理线程分别对应生产者指针、操作者指针、消费者指针,初始化加解密协处理器,将生产者指针、操作者指针、消费者指针置位,指向环形队列首项,队列中的所有数据状态皆置为EMPTY。
8.根据权利要求I所述的ー种实现IPSECVPN加解密处理的装置,其特征在于包括 初始化模块用于构建环形缓冲队列,设置并初始化生产者、操作者及消费者指针,启动数据接收处理线程、数据加解密处理线程、数据发送处理线程三个内核线程,其中生产者指针、操作者指针、消费者指针依次通过环形缓冲队列,生产者指针、操作者指针、消费者指针地址分别依次増加一位,当各个指针地址从缓存区n的地址加一位后默认成为缓存区I的地址; 数据接收处理模块,用于接收网卡传送的未经加解密协处理器处理的数据报文,将该数据报文存入所述环形缓冲队列; 数据加解密处理模块,用于将所述环形缓冲队列中的数据报文发送给加解密协处理器处理,然后将加解密协处理器处理完的数据报文存回所述环形缓冲队列; 数据发送处理模块,用于将所述环形缓冲队列中已经加解密协处理器处理的数据报文发送给网卡。
9.根据权利要求8所述的ー种实现IPSECVPN加解密处理的装置,其特征在于所述生产者指针、操作者指针及消费者指针为互斥的指针变量。
10.根据权利要求9所述的ー种实现IPSECVPN加解密处理的装置,其特征在于所述数据发送模块还用于对已发送给网络处理器的已经协处理器处理的数据报文在所述环形缓冲队列中对应的数据缓冲区进行清空。
全文摘要
本发明属于数据通信领域,尤其涉及一种采用异步机制高速实现IPSEC VPN加解密处理的方法及装置。本发明针对现有技术的问题,提供一种实现IPSEC VPN加解密处理的方法及装置,采用三个内核线程共享对网卡输入的数据进行异步处理,同时几个线程(模块)还可同时并行工作,从而实现数据报文的处理率及协处理器的利用效率的大幅提高。本发明主要包括数据加解密处理线程、数据加解密处理线程、数据发送处理线程,通过数据接收处理线程将网卡接收到未经加密协处理器处理的数据报文经生产者指针存入环形缓冲队列,并触发数据加解密处理线程工作等完成本设计,本发明主要应用于IPSEC VPN数据处理领域。
文档编号H04L12/56GK102780625SQ20121026484
公开日2012年11月14日 申请日期2012年7月30日 优先权日2012年7月30日
发明者罗俊 申请人:成都卫士通信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1