CN109547318B - Vpn数据报文的处理方法、装置、电子设备 - Google Patents

Vpn数据报文的处理方法、装置、电子设备 Download PDF

Info

Publication number
CN109547318B
CN109547318B CN201910046721.9A CN201910046721A CN109547318B CN 109547318 B CN109547318 B CN 109547318B CN 201910046721 A CN201910046721 A CN 201910046721A CN 109547318 B CN109547318 B CN 109547318B
Authority
CN
China
Prior art keywords
vpn data
parameter
state
data message
processing
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
CN201910046721.9A
Other languages
English (en)
Other versions
CN109547318A (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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201910046721.9A priority Critical patent/CN109547318B/zh
Publication of CN109547318A publication Critical patent/CN109547318A/zh
Application granted granted Critical
Publication of CN109547318B publication Critical patent/CN109547318B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供VPN数据报文的处理方法、装置、电子设备及机器可读存储介质。在本申请中,网络设备设有硬件芯片,通过获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,实现了降低网络设备与硬件芯片数据交换次数,并大幅提升了硬件芯片利用效率以及网络设备的报文转发性能。

Description

VPN数据报文的处理方法、装置、电子设备
技术领域
本申请涉及通信技术领域,尤其涉及VPN数据报文的处理方法、装置、电子设备及机器可读存储介质。
背景技术
由于经济和社会的快速发展,企业信息化程度的提高,一个常见的需求就是各地分公司或办事处同企业总部的需要跨越互联网进行信息交互以及传递,而VPN(VirtualPrivate Network,虚拟专用网络)就是应对上述需求的一种远程访问技术。VPN按隧道协议划分包括多种类型,其中,隧道协议IPSec(Internet Protocol Security,互联网安全协议)作为上述隧道协议中的一种,基于IPSec VPN对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。
以IPSec作为VPN隧道协议的VPN为互联网上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。基于IPSec VPN的多个通信方之间在IP层通过加密与数据源认证等方式,提供了数据机密性、数据完整性、数据来源认证等安全服务。
发明内容
本申请提供一种VPN数据报文的处理方法,所述方法应用于网络设备,所述网络设备设有硬件芯片,所述方法包括:
获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;
将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;
获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
可选的,所述控制块至少包括第一参数、第二参数、第三参数,其中,所述第一参数用于指示所述VPN数据报文的存储位置,所述第二参数用于指示所述VPN数据报文的处理状态,所述第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,所述第三参数的可能值包括:未完成或已完成,所述第三参数的默认值为未完成。
可选的,所述第二参数的可能值至少包括第一状态或第二状态或第三状态或第四状态,其中,所述第一状态用于指示所述VPN数据报文待加密状态,所述第二状态用于指示所述VPN数据报文待执行第一次哈希处理状态,所述第三状态用于指示所述VPN数据报文待执行第二次哈希处理状态,所述第四状态用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为第一状态,所述第二参数对应所述VPN数据报文的处理状态按预设规则进行状态迁移。
可选的,所述获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,包括:
基于所述处理后的VPN数据报文,更新所述控制块的第一参数、第二参数、第三参数,其中,设置所述控制块的第三参数的值为已完成;
若所述控制块的第二参数的值不为第四状态,则设置所述控制块的第三参数的值为未完成;将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理;
若所述控制块的第二参数的值为第四状态且所述控制块的第三参数的值为已完成,则将所述处理后的VPN数据报文按预设VPN协议执行VPN封装。
本申请还提供一种VPN数据报文的处理装置,所述装置应用于网络设备,所述网络设备设有硬件芯片,所述装置包括:
创建模块,用于获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;
处理模块,用于将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;
所述处理模块进一步,获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
可选的,所述控制块至少包括第一参数、第二参数、第三参数,其中,所述第一参数用于指示所述VPN数据报文的存储位置,所述第二参数用于指示所述VPN数据报文的处理状态,所述第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,所述第三参数的可能值包括:未完成或已完成,所述第三参数的默认值为未完成。
可选的,所述第二参数的可能值至少包括第一状态或第二状态或第三状态或第四状态,其中,所述第一状态用于指示所述VPN数据报文待加密状态,所述第二状态用于指示所述VPN数据报文待执行第一次哈希处理状态,所述第三状态用于指示所述VPN数据报文待执行第二次哈希处理状态,所述第四状态用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为第一状态,所述第二参数对应所述VPN数据报文的处理状态按预设规则进行状态迁移。
可选的,所述获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,所述处理模块进一步,包括:
基于所述处理后的VPN数据报文,更新所述控制块的第一参数、第二参数、第三参数,其中,设置所述控制块的第三参数的值为已完成;
若所述控制块的第二参数的值不为第四状态,则设置所述控制块的第三参数的值为未完成;将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理;
若所述控制块的第二参数的值为第四状态且所述控制块的第三参数的值为已完成,则将所述处理后的VPN数据报文按预设VPN协议执行VPN封装。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,网络设备设有硬件芯片,通过获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,实现了降低网络设备与硬件芯片数据交换次数,并大幅提升了硬件芯片利用效率以及网络设备的报文转发性能。
附图说明
图1是一示例性实施例提供的一种VPN数据报文的处理方法的流程图。
图2是一示例性实施例提供的一次VPN数据报文的处理过程的流程图。
图3是一示例性实施例提供的一种VPN数据报文的处理装置的框图。
图4是一示例性实施例提供的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的VPN数据报文的处理的相关技术,进行简要说明。
在一些场景下,基于上述背景技术中所描述的基于IPSec VPN的隧道协议是IPSec,其中,IPSec对应位于OSI(Open System Interconnection,开放系统互联)七层网络模型中第三层,也即IPSec是位于在网络层的协议,上述IPSec所承载的数据报文即为VPN数据报文。由于VPN数据报文的加密处理、哈希处理等过程比较消耗系统资源,通常需要在网络设备中独立的硬件芯片中完成。基于上述场景,通常现有网络层的协议的对应实现属于系统软件的处理范畴,其中上述系统软件通常至少包括应用层软件、驱动层软件,其中应用层软件用于VPN数据报文的获取和按隧道协议进行预处理,驱动层软件用于接收应用层软件经隧道协议预处理后的VPN数据报文进行格式转换,并将上述预处理后的VPN数据报文发送给上述硬件芯片进行处理,其中上述硬件芯片处理对应逻辑软件进行管理。
基于上述说明,在一些场景下,比如:硬件芯片只支持简单的加密和哈希处理,现有技术实现方案中针对VPN数据报文的处理过程包括:上述预处理后的VPN数据报文A发送至硬件芯片进行加密,加密后的密文部分覆盖A的明文部分,得到VPN数据报文B;再将B发送至硬件芯片进行第一次哈希处理,得到哈希处理结果R1、VPN数据报文C,需要将R1、C发送经过硬件芯片进行第二次哈希处理,得到哈希处理结果R2、VPN数据报文D;上述加密和哈希处理由上述驱动层软件下发到上述逻辑软件,由上述逻辑软件所管理的硬件芯片进行处理,硬件芯片处理完成后,经上述逻辑软件将上述R2、VPN数据报文D返回到驱动层软件,再经由上述应用层软件继续按VPN隧道协议,比如:IPSec,进行封装处理。基于上述过程可见,VPN数据报文的预处理、封装等中间过程都由应用层软件完成,VPN数据报文的加密及哈希等处理都是硬件芯片完成,并通过逻辑软件和驱动层软件进行数据交换,驱动层软件在其中只起到将应用层和逻辑层的数据格式转换及简单数据传递的作用。基于上述现有方案实现可见,VPN数据报文对应要执行的加密、第一次哈希处理、第二次哈希处理,需要多次从应用层软件经过驱动层软件下发至硬件芯片,由硬件芯片进行处理后,再由逻辑软件经驱动层软件再返回到应用层软件,如上述过程所述极大了影响了VPN数据报文也即IPSec所承载的数据报文的封装转发性能;同时在上述过程中,一方面由于硬件芯片空闲时间较长,造成了硬件资源的极度浪费,另一方面网络设备由于频繁数据交换,系统资源消耗较大,影响了网络设备的报文转发性能。
基于此,本申请提出一种VPN数据报文的处理方案,该方案应用于网络设备,网络设备设有硬件芯片,通过获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,实现了降低网络设备与硬件芯片数据交换次数,并大幅提升了硬件芯片利用效率以及网络设备的报文转发性能。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种VPN数据报文的处理方法,应用于网络设备,所述网络设备设有硬件芯片,上述方法执行以下步骤:
步骤102、获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程。
具体地,这里的VPN数据报文是指经过网络设备的应用层软件预处理的VPN数据报文,以VPN数据报文是IPSec VPN数据报文为例,所述具体预处理是指应用层软件接收到需要IPSec封装的VPN数据报文,按照ESP(Encapsulating Security Payload IPSec,封装安全负载)协议及IPSec隧道模式封装规则进行预处理,即在原始报文前填充一个IP头和ESP协议头,在原始报文尾部填充ESP尾,具体过程不做赘述。
网络设备的驱动层软件从网络设备的应用层软件获取上述经过预处理的VPN数据报文,创建与所述VPN数据报文对应的控制块DCB。具体地,针对每个VPN数据报文都对应创建一个DCB。由于网络设备通常存在多个或多核CPU,即网络设备的CPU可以被虚拟成多个虚拟CPU,上述虚拟CPU可以分别执行两类功能包括:数据处理和控制处理,其中,所述数据处理是指一部分虚拟CPU负责处理数据报文,所述控制处理控制指一部分虚拟CPU负责处理控制报文,而上述VPN数据报文即是上述数据报文的一种,也即上述VPN数据报文由上述负责数据处理的虚拟CPU进行处理,后续简称负责数据处理的虚拟CPU为数据核VCPU。在一种优选的实施方式中,比如:有N个VCPU,其中N为大于1的正整数,其中第1个至第N-1个VCPU针对每个VPN数据报文都对应创建一个DCB,每个数据核VCPU都维护一个DCB队列,具体上述DCB队列的长度可以根据预设阈值设置,比如:每个DCB列队的的长度都可以是1024,即每个VCPU可以维护一个1024个控制块DCB,用于控制对应1024个VPN数据报文的数据处理过程的记录;第N个VCPU不负责VPN数据报文的处理,而是负责轮询其他第1个至第N-1数据核VCPU的DCB队列,若发现有需要硬件芯片进行处理的VPN数据就拷贝其对应的DCB到自己VCPU的缓存队列,比如:该缓存队列有64个缓存空间),并通知上述逻辑软件来此缓存队列读取DCB,触发硬件芯片基于所述DCB进行VPN数据报文的一次处理,通过使用独立的一个或多个数据核VCPU专门负责与逻辑软件、其他数据核VCPU的数据交互,可以提高上述网络设备的驱动层软件的执行效率。上述硬件芯片具体一次处理的过程,请参见本申请后续描述。
所述控制块DCB至少包括第一参数、第二参数、第三参数,其中,所述第一参数用于指示所述VPN数据报文的存储位置,所述第二参数用于指示所述VPN数据报文的处理状态,所述第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,所述第三参数的可能值包括:未完成或已完成,所述第三参数的默认值为未完成。所述第二参数的可能值至少包括第一状态或第二状态或第三状态或第四状态,其中,所述第一状态用于指示所述VPN数据报文待加密状态,所述第二状态用于指示所述VPN数据报文待执行第一次哈希处理状态,所述第三状态用于指示所述VPN数据报文待执行第二次哈希处理状态,所述第四状态用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为第一状态,所述第二参数对应所述VPN数据报文的处理状态按预设规则进行状态迁移。
具体地,这里的控制块DCB是一个数据结构,所述控制块DCB至少包括addr(第一参数)、state(第二参数)、done(第三参数),其中,addr即第一参数,用于指示所述VPN数据报文的存储位置,state即第二参数用于指示所述VPN数据报文的处理状态,done即第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,done可能值包括:0(未完成)或1(已完成),done的默认值为0(未完成)。根据不同的VPN封装协议类型,对应DCB的state可以存在多种状态值,在一种优选的方式中,state的可能值至少包括s1(第一状态)或s2(第二状态)或s3(第三状态)或s4(第四状态),其中,s1(第一状态)用于指示所述VPN数据报文待加密状态,s2(第二状态)用于指示所述VPN数据报文待执行第一次哈希处理状态,s3(第三状态)用于指示所述VPN数据报文待执行第二次哈希处理状态,s4(第四状态)用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为s1(第一状态);state对应所述VPN数据报文的处理状态按预设规则进行状态迁移是指按着VPN数据报文的处理过程,state从初始状态s1逐步跳转到s2,s2跳转到s3,s3跳转到s4。
步骤104、将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理。
具体地,所述网络设备的驱动层软件将所述VPN数据报文发送至所述硬件芯片,由所述硬件芯片将所述VPN数据报文执行一次硬件算法处理。这里的一次硬件算法具体至少包括加密处理或者哈希处理。以上述步骤102示例继续举例,比如:VPN数据报文的处理过程初始状态是s1也即待加密状态;当VPN数据报文被上述硬件芯片执行加密处理返回给上述驱动层软件后,其状态由s1也即待加密状态变为s2,即待执行第一次哈希处理状态;当VPN数据报文被上述硬件芯片执行第一次哈希处理返回给上述驱动层软件后,其状态由s2也即待执行第一次哈希处理状态变为s3,即待执行第而次哈希处理状态;当VPN数据报文被上述硬件芯片执行第二次哈希处理返回给上述驱动层软件后,其状态由s3也即待执行第二次哈希处理状态变为s4,即VPN数据报文处理完成状态。上述过程中所述的加密处理、第一次哈希处理、第一次哈希处理都是所述一次硬件算法处理的一种具体处理方式。
步骤106、获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
具体地,网络设备的驱动层软件从逻辑软件获取上述硬件芯片执行一次硬件算法处理后的一个VPN数据报文P1,需要对应更新P1所对应的一个控制块DCB_P1。网络设备的驱动层软件针对P1的处理过程,如图2所示例,执行如下步骤:
步骤202、基于所述处理后的VPN数据报文,更新所述控制块的第一参数、第二参数、第三参数,其中,设置所述控制块的第三参数的值为已完成。
具体地,比如:由于VPN数据报文被处理后,数据报文的长度发生变化,需要根据上述逻辑软件返回的处理后的VPN数据报文数据长度更新DCB_P1的第一参数addr;当VPN数据报文被上述硬件芯片执行加密处理返回给上述驱动层软件后,其状态由s1也即待加密状态变为s2,则DCB_P1的第二参数state的值由s1变为s2;由于上述VPN数据报文已被硬件芯片完成一次处理,则设置DCB_P1的第三参数done的值由0变为1,即由“未完成”变成“已完成”,用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的已完成一次处理。上述过程,仅为示例的一种可能实施方式,实际可能存在多种实现方式,再比如:所述网络设备的驱动层软件基于多个VCPU并发同时进行如上述处理过程,具体不再赘述。
步骤204、若所述控制块的第二参数的值不为第四状态,则设置所述控制块的第三参数的值为未完成;将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
具体地,以上述步骤202所示例过程继续举例,网络设备的驱动层软件监测DCB_P1的第二参数state的值,若state的值不为s4,即不为VPN数据报文处理完成状态,则设置DCB_P1的第三参数done的值为0,将上述处理后的VPN数据报文,经由逻辑软件再发送至硬件芯片执行下一次硬件算法处理,上述下一次硬件算法处理的过程类似步骤202所述,具体不再赘述。
步骤206、若所述控制块的第二参数的值为第四状态且所述控制块的第三参数的值为已完成,则将所述处理后的VPN数据报文按预设VPN协议执行VPN封装。
具体地,以上述步骤204所示例过程继续举例,网络设备的驱动层软件监测DCB_P1的第二参数state的值,若state的值为s4,即为VPN数据报文处理完成状态,并且检查DCB_P1的第三参数done的值是否为1,若DCB_P1的第三参数done的值为0,表示当前硬件芯片正在执行最后一次硬件算法处理,直到DCB_P1的第三参数done的值为0时,则将上述处理后的VPN数据报文发送至上述网络设备的应用层软件,由上述应用层软件根据预设VPN协议执行VPN封装,比如:按照IPSec VPN协议执行ESP封装;当上述上述应用层软件完成VPN数据报文的封装后,则可以通过网络接口发送上述封装后的VPN数据报文到目的设备,具体过程不作赘述。
至此,完成图1所示的流程,通过图1所示的流程可以看出,网络设备设有硬件芯片,通过获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,实现了降低网络设备与硬件芯片数据交换次数,并大幅提升了硬件芯片利用效率以及网络设备的报文转发性能。
应用本申请实施例,通过网络设备的驱动层软件创建VPN数据报文对应控制块DCB及其多个参数,判断硬件芯片对所述VPN数据报文的一次硬件处理是否完成及对应状态,以决定是否执行下一步硬件处理,实现了降低网络设备的应用层软件、硬件芯片及其对应的逻辑软件之间的数据交换次数,并大幅提升了硬件芯片利用效率,同时降低网络设备CPU及内存等系统负载,提高了网络设备的报文转发性能。
图3是本申请一示例性实施例提供的一种VPN数据报文的处理装置的框图。与上述方法实施例相对应,本申请还提供了一种VPN数据报文的处理装置的实施例,所述装置应用于网络设备,所述网络设备设有硬件芯片,请参考图3所示例的一种VPN数据报文的处理装置30,所述装置包括:
创建模块301,用于获取VPN数据报文,创建与所述VPN数据报文对应的控制块,其中,所述控制块用于记录所述VPN数据报文的处理过程;
处理模块302,用于将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;
所述处理模块302进一步,获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
在本实施例中,所述控制块至少包括第一参数、第二参数、第三参数,其中,所述第一参数用于指示所述VPN数据报文的存储位置,所述第二参数用于指示所述VPN数据报文的处理状态,所述第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,所述第三参数的可能值包括:未完成或已完成,所述第三参数的默认值为未完成。
在本实施例中,所述第二参数的可能值至少包括第一状态或第二状态或第三状态或第四状态,其中,所述第一状态用于指示所述VPN数据报文待加密状态,所述第二状态用于指示所述VPN数据报文待执行第一次哈希处理状态,所述第三状态用于指示所述VPN数据报文待执行第二次哈希处理状态,所述第四状态用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为第一状态,所述第二参数对应所述VPN数据报文的处理状态按预设规则进行状态迁移。
在本实施例中,所述获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,所述处理模块302进一步,包括:
基于所述处理后的VPN数据报文,更新所述控制块的第一参数、第二参数、第三参数,其中,设置所述控制块的第三参数的值为已完成;
若所述控制块的第二参数的值不为第四状态,则设置所述控制块的第三参数的值为未完成;将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理;
若所述控制块的第二参数的值为第四状态且所述控制块的第三参数的值为已完成,则将所述处理后的VPN数据报文按预设VPN协议执行VPN封装。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本申请的VPN数据报文的处理装置的实施例可以应用在图4所示的电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将机器可读存储介质中对应的计算机程序指令读取后运行形成的机器可执行指令。从硬件层面而言,如图4所示,为本申请的VPN数据报文的处理装置所在电子设备的一种硬件结构图,除了图4所示的处理器、通信接口、总线以及机器可读存储介质之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
对应地,本申请实施例还提供了图3所示装置的一种电子设备的硬件结构,请参见图4,图4为本申请实施例提供的一种电子设备的硬件结构示意图。该设备包含:通信接口401、处理器402、机器可读存储介质403和总线404;其中,通信接口401、处理器402、机器可读存储介质403通过总线404完成相互间的通信。其中,通信接口401,用于进行网络通信。处理器402可以是一个中央处理器(CPU),处理器402可以执行机器可读存储介质403中存储的机器可读指令,以实现以上描述的方法。
本文中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
至此,完成图4所示的硬件结构描述。
此外,本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图4中的机器可读机器可读存储介质403,所述机器可执行指令可由数据处理装置中的处理器402执行以实现以上描述的数据处理方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (8)

1.一种VPN数据报文的处理方法,其特征在于,所述方法应用于网络设备,所述网络设备设有硬件芯片,所述方法包括:
获取VPN数据报文,创建与所述VPN数据报文对应的控制块,所述控制块用于记录所述VPN数据报文被所述硬件芯片处理的过程;所述控制块至少包括第一参数、第二参数和第三参数,其中,所述第一参数用于指示所述VPN数据报文的存储位置,所述第二参数用于指示所述VPN数据报文的处理状态,所述第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,所述第三参数的可能值包括:未完成或已完成,所述第三参数的默认值为未完成;
将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;
获取所述处理后的VPN数据报文,并更新所述控制块,若所述控制块的第二参数的值不为指示所述VPN数据报文处理完成状态,则将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
2.根据权利要求1所述的方法,其特征在于,所述第二参数的可能值至少包括第一状态或第二状态或第三状态或第四状态,其中,所述第一状态用于指示所述VPN数据报文待加密状态,所述第二状态用于指示所述VPN数据报文待执行第一次哈希处理状态,所述第三状态用于指示所述VPN数据报文待执行第二次哈希处理状态,所述第四状态用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为第一状态,所述第二参数对应所述VPN数据报文的处理状态按预设规则进行状态迁移。
3.根据权利要求1所述的方法,其特征在于,所述获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,包括:
基于所述处理后的VPN数据报文,更新所述控制块的第一参数、第二参数和第三参数,其中,设置所述控制块的第三参数的值为已完成;
若所述控制块的第二参数的值不为指示所述VPN数据报文处理完成状态,则设置所述控制块的第三参数的值为未完成;将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理;
若所述控制块的第二参数的值为指示所述VPN数据报文处理完成状态,且所述控制块的第三参数的值为已完成,则将所述处理后的VPN数据报文按预设VPN协议执行VPN封装。
4.一种VPN数据报文的处理装置,其特征在于,所述装置应用于网络设备,所述网络设备设有硬件芯片,所述装置包括:
创建模块,用于获取VPN数据报文,创建与所述VPN数据报文对应的控制块,所述控制块用于记录所述VPN数据报文被所述硬件芯片处理的过程;所述控制块至少包括第一参数、第二参数和第三参数,其中,所述第一参数用于指示所述VPN数据报文的存储位置,所述第二参数用于指示所述VPN数据报文的处理状态,所述第三参数用于指示所述VPN数据报文被所述硬件芯片执行一次硬件算法处理过程的是否完成的标识,所述第三参数的可能值包括:未完成或已完成,所述第三参数的默认值为未完成;
处理模块,用于将所述VPN数据报文发送至所述硬件芯片,其中,所述硬件芯片将所述VPN数据报文执行一次硬件算法处理;
所述处理模块进一步,获取所述处理后的VPN数据报文,并更新所述控制块,若所述控制块的第二参数的值不为指示所述VPN数据报文处理完成状态,则将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理。
5.根据权利要求4所述的装置,其特征在于,所述第二参数的可能值至少包括第一状态或第二状态或第三状态或第四状态,其中,所述第一状态用于指示所述VPN数据报文待加密状态,所述第二状态用于指示所述VPN数据报文待执行第一次哈希处理状态,所述第三状态用于指示所述VPN数据报文待执行第二次哈希处理状态,所述第四状态用于指示所述VPN数据报文处理完成状态,所述第二参数默认值为第一状态,所述第二参数对应所述VPN数据报文的处理状态按预设规则进行状态迁移。
6.根据权利要求4所述的装置,其特征在于,所述获取所述处理后的VPN数据报文,并更新所述控制块,将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理,所述处理模块进一步,包括:
基于所述处理后的VPN数据报文,更新所述控制块的第一参数、第二参数和第三参数,其中,设置所述控制块的第三参数的值为已完成;
若所述控制块的第二参数的值不为指示所述VPN数据报文处理完成状态,则设置所述控制块的第三参数的值为未完成;将所述处理后的VPN数据报文发送至所述硬件芯片执行下一次硬件算法处理;
若所述控制块的第二参数的值为指示所述VPN数据报文处理完成状态,且所述控制块的第三参数的值为已完成,则将所述处理后的VPN数据报文按预设VPN协议执行VPN封装。
7.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至3任一项所述的方法。
8.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至3任一项所述的方法。
CN201910046721.9A 2019-01-18 2019-01-18 Vpn数据报文的处理方法、装置、电子设备 Active CN109547318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910046721.9A CN109547318B (zh) 2019-01-18 2019-01-18 Vpn数据报文的处理方法、装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910046721.9A CN109547318B (zh) 2019-01-18 2019-01-18 Vpn数据报文的处理方法、装置、电子设备

Publications (2)

Publication Number Publication Date
CN109547318A CN109547318A (zh) 2019-03-29
CN109547318B true CN109547318B (zh) 2021-03-23

Family

ID=65835578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910046721.9A Active CN109547318B (zh) 2019-01-18 2019-01-18 Vpn数据报文的处理方法、装置、电子设备

Country Status (1)

Country Link
CN (1) CN109547318B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086787B (zh) * 2019-04-15 2021-11-02 杭州迪普信息技术有限公司 报文识别方法、装置、电子设备及机器可读存储介质
CN116319619A (zh) * 2021-12-07 2023-06-23 中兴通讯股份有限公司 网络处理模块、数据处理方法、网络节点和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592152A (zh) * 2003-08-08 2005-03-09 三菱电机株式会社 具有软件组件的电信设备
CN101969404A (zh) * 2010-10-25 2011-02-09 杭州华三通信技术有限公司 报文处理的方法及设备
CN102118426A (zh) * 2009-12-31 2011-07-06 北大方正集团有限公司 网络安全支付终端及其网络安全支付方法
CN102571613A (zh) * 2012-03-09 2012-07-11 华为技术有限公司 一种转发报文的方法及网络设备
WO2015006901A1 (zh) * 2013-07-15 2015-01-22 华为技术有限公司 一种数据流处理方法、设备和系统
US9904797B2 (en) * 2010-12-27 2018-02-27 Nokia Technologies Oy Method and apparatus for providing data based on granularity information

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843769B2 (en) * 2011-04-18 2014-09-23 Texas Instruments Incorporated Microcontroller with embedded secure feature

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592152A (zh) * 2003-08-08 2005-03-09 三菱电机株式会社 具有软件组件的电信设备
CN102118426A (zh) * 2009-12-31 2011-07-06 北大方正集团有限公司 网络安全支付终端及其网络安全支付方法
CN101969404A (zh) * 2010-10-25 2011-02-09 杭州华三通信技术有限公司 报文处理的方法及设备
US9904797B2 (en) * 2010-12-27 2018-02-27 Nokia Technologies Oy Method and apparatus for providing data based on granularity information
CN102571613A (zh) * 2012-03-09 2012-07-11 华为技术有限公司 一种转发报文的方法及网络设备
WO2015006901A1 (zh) * 2013-07-15 2015-01-22 华为技术有限公司 一种数据流处理方法、设备和系统

Also Published As

Publication number Publication date
CN109547318A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN110535742B (zh) 报文转发方法、装置、电子设备及机器可读存储介质
CA2936956C (en) An entity handle registry to support traffic policy enforcement
US10084647B2 (en) Data forwarding to server via virtual network card or to external network via network interface, based on fusion descriptor
US10404674B1 (en) Efficient memory management in multi-tenant virtualized environment
WO2012011218A1 (en) Computer system and offloading method in computer system
US20160266925A1 (en) Data forwarding
WO2018130079A1 (zh) 一种英特网协议安全IPSec协议加密方法和网络设备
WO2024037296A1 (zh) 基于协议族的quic数据传输方法及装置
CN109547318B (zh) Vpn数据报文的处理方法、装置、电子设备
CN111343089B (zh) 解决mac地址hash冲突导致洪泛问题的方法及系统
US10827044B2 (en) Method, apparatus and computer program product for processing data
EP4199469A1 (en) Method and apparatus to assign and check anti-replay sequence numbers using load balancing
CN116049085A (zh) 一种数据处理系统及方法
JP2009218743A (ja) Ipプロトコル処理装置及びその処理方法
JP2007193786A (ja) ネットワーク・プロトコル・スタック隔離のためのネットワーク・アーキテクチャ、方法、およびコンピュータ・プログラム(ネットワーク・プロトコル・スタック隔離)
CN113810397B (zh) 协议数据的处理方法及装置
CN116775522A (zh) 一种基于网络设备的数据处理方法及网络设备
CN113472523A (zh) 用户态协议栈报文处理优化方法、系统、装置及存储介质
CN109726144B (zh) 一种数据报文的处理方法和装置
CN110798366B (zh) 任务逻辑的处理方法、装置及设备
CN110463157B (zh) 用于分配spi值的系统与方法
US20060013397A1 (en) Channel adapter managed trusted queue pairs
US11283768B1 (en) Systems and methods for managing connections
CN110365570B (zh) IPSec流量转发方法、装置、电子设备
CN111107142B (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