发布信息

一种数据转发方法及装置与流程 专利技术说明

作者:admin      2022-12-06 19:34:51     715



电子通信装置的制造及其应用技术1.本技术涉及虚拟专用网络技术领域,尤其涉及一种数据转发方法及装置。背景技术:2.目前的虚拟专用网络(virtual private network,vpn)技术中,安全套接字层协议(security socket layer,ssl)vpn(sslvpn)服务器可用于给处于外部不安全网络环境中的用户(client)提供安全访问内网服务的通道。但是,目前sslvpn服务器采用单队列方式转发数据,受限于单队列下的虚机性能瓶颈,网络收发包每秒发包数量(packets per second,pps)较低,导致sslvpn服务器与处于外部网络环境的用户之间的数据传输性能降低。技术实现要素:3.本发明通过了一种数据转发方法及装置,用以提升sslvpn服务器与外网之间的数据传输性能。4.本技术实施例提供了一种数据转发方法,包括:5.数据转发装置通过第一接收队列获取第一vpn设备的第一数据;数据转发装置根据第一数据的地址信息确定第一标识,第一标识与第一内核对应,第一内核是数据转发装置的多个处理器内核中的一个;数据转发装置通过第一内核处理第一数据,获得第二数据;数据转发装置将第二数据通过第一发送队列发送,第一发送队列对应第一接收队列。6.可选的,第一数据的地址信息包括第一数据的四元组,数据转发装置根据第一数据的地址信息确定第一标识,包括:根据四元组通过哈希算法获得第一标识。7.可选的,数据转发装置根据第二数据的网际协议(internet protocol,ip)地址以及ip地址与vpn网卡之间的对应关系,确定第二数据的ip地址对应的第一vpn网卡,第一vpn网卡为数据转发装置的多个vpn网卡中的一个;将第二数据发送至第一vpn网卡。8.可选的,第一数据来自于第一vpn网卡,数据转发装置存储第一数据的ip地址与第一vpn网卡之间的对应关系,第一vpn网卡为数据转发装置的多个vpn网卡中的一个。9.可选的,数据转发装置的ip地址至少包括第一vpn网卡对应的ip地址和第二vpn网卡对应的ip地址,第二vpn网卡包括在多个vpn网卡中。10.本技术实施例还提供了一种数据转发装置,装置包括处理模块和通信模块。11.通信模块,可用于通过第一接收队列获取第一vpn设备的第一数据;12.处理模块,可用于根据第一数据的地址信息确定第一标识,第一标识与第一内核对应,第一内核是数据转发装置的多个处理器内核中的一个;13.处理模块,还可用于通过第一内核处理第一数据,获得第二数据;14.通信模块,还可用于将第二数据通过第一发送队列发送,第一发送队列对应于第一接收队列。15.可选的,第一数据的地址信息包括第一数据的四元组,处理模块,可用于根据第一数据的地址信息确定第一标识,包括:根据四元组通过哈希算法获得第一标识。16.可选的,处理模块,还可用于根据第二数据的ip地址以及ip地址与vpn网卡之间的对应关系,确定第二数据的ip地址对应的第一vpn网卡,第一vpn网卡为数据转发装置的多个vpn网卡中的一个;通信模块,还可用于将第二数据发送至第一vpn网卡;17.可选的,第一数据来自于第一vpn网卡,处理模块,还可用于存储第一数据的ip地址与第一vpn网卡之间的对应关系,第一vpn网卡为数据转发装置的多个vpn网卡中的一个。18.申请实施例还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述中任一所述数据转发方法的步骤。19.本技术实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一所述数据转发方法的步骤。20.本技术实施例中,sslvpn服务器采用网卡多队列方案,根据数据的标识,将不同的数据分配到对应的内核上,发挥处理器多核的能力,同时采用多网卡方案,不同的网卡使用不同的子网,监听不同的端口,提高sslvpn转发性能,因此可以提升sslvpn服务器与外网之间的数据传输性能。附图说明21.图1为应用sslvpn服务器的系统架构示意图。22.图2为本技术实施例提供的数据转发装置系统示意图。23.图3为本发明实施例提供的一种数据转发方法的流程示意图。24.图4为本技术实施例提供的数据转发装置系统的网卡多队列示意图。25.图5为本技术实施例提供的数据转发装置系统的多网卡多实例示意图。26.图6为本技术实施例提供的一种数据转发装置结构示意图。27.图7为本技术实施例提供的一种电子设备结构示意图。具体实施方式28.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作可选的详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。29.下面,结合现有技术对基于sslvpn的数据转发方法进行介绍。30.图1为应用sslvpn服务器的系统架构图。sslvpn服务器可作为网关设备使用,用以给处于外部的不安全网络环境中的用户(client)提供安全访问内网服务的通道。此外,如图1所示,web表示(显示信息的网页),oa表示(内部办公系统)。31.示例性的,sslvpn服务器可使用网络底层编程技术在主机创建一个虚拟网卡,服务程序可以在应用层打开虚拟网卡。如果应用软件向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到,虚拟网卡的存在使sslvpn能够跨平台。32.在sslvpn服务器中,如果用户访问一个远程的虚拟地址,则操作系统会通过路由机制将以虚拟三层隧道网卡(tun)模式传输的数据包或以虚拟二层网卡(tap)模式传输的数据帧发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过套接字(socket)从外网上发送出去。此外,远程服务程序还可通过socket从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程。可选的,sslvpn服务器中使用了开放安全套接层(openssl)的加密以及验证功能,提高连接的安全性。33.但是,目前sslvpn服务器采用单队列方式转发数据,受限于单队列下的虚机性能瓶颈,pps较低,导致sslvpn服务器与外网之间的数据传输性能降低。34.为了解决上述缺陷,本技术提供一种数据转发方法及装置,用以提升sslvpn服务器与外网之间的数据传输性能。35.可以理解,该数据转发装置可用于执行本技术提供的数据转发方法的动作。例如,该装置可包括vpn服务器。可选的,该装置可以是多个组件组成的系统。如图2所示,本技术实施例提供的数据转发装置(或系统)可包括物理网卡、内核网桥、网络虚拟化(virtual host,vhost)模块、虚拟网卡和vpn服务端。36.其中,物理网卡可以是宿主机物理网卡;37.内核网桥可以是一种虚拟设备,可用于将linux内部多个网络接口连接起来;38.vhost模块,可用于使虚拟机的网络通讯直接绕过虚拟化层,直接可以和内核通讯。其中,本技术实施例提供的vhost模块可采用网卡多队列方案,根据规格启用多个vhost进程,把软中断的负载均衡到vpn服务器中央处理器(central processing unit,cpu)的各个核(core)上,比较充分地发挥多核的能力。39.vpn服务端可用于执行虚拟网关与vpn网卡之间的数据交换。40.可以理解,图2中虚线所示结构对于本技术提供的数据转发装置来说时可选的结构。41.图3为本发明实施例提供的一种数据转发方法的流程示意图。该流程可以包括以下步骤:42.s101,数据转发装置通过第一接收队列获取第一vpn设备的第一数据。43.示例性的,图4为数据转发装置的示意图,第一接收队列为接收队列中的一个队列,此外,接收队列至少包含第一接收队列和第二接收队列。44.可以理解的是,在由vpn服务器向外网发送数据时,接收队列为vhost模块在虚拟网卡一侧的数据队列,相应的,发送队列为vhost模块在内核网桥一侧的数据队列。在由外网向vpn服务器发送数据时,接收队列为vhost模块在内核网桥一侧的数据队列,相应的,发送队列为vhost模块在虚拟网卡一侧的数据队列。45.可选的,第一数据包含第一数据的地址信息,例如,第一数据的包头中包括第一数据的地址信息,地址信息例如四元组:源ip地址、源四层端口、目的ip地址和目的四层端口。46.可以理解,本技术中的数据可以替换为数据包。47.可选的,如图5所示,本技术中的vpn服务器可以具有多个vpn网卡(如图所示为tun0……tun3),其中,vpn网卡可与子网(或ip网段)和进程一一对应,例如,tun0对应于子网1和进程1,tun3对应于子网3和进程3。可选的,vpn服务器可将ip地址网段分为n个区间,每个区间作为一个子网,也就是说,每个区间对应于一个vpn网卡。48.作为一种可能的示例,在由vpn服务器向外网发送数据时,第一数据可以来自于vpn网卡(如tun0),则数据转发装置可以存储第一数据的ip地址信息(这里指第一数据的源ip地址,如该ip地址属于子网1)与vpn网卡之间的对应关系。可以理解,第一数据的生成过程,可以由tun0对应的进程1执行。49.s102,数据转发装置根据第一数据的地址信息确定第一标识。50.可选的,第一数据的地址信息包括第一数据的四元组。51.此外,可选的,第一标识可以根据四元组通过哈希算法获得。第一标识对应于第一内核。示例性的,根据第一数据的四元组确定哈希值,数据转发装置对第一数据生成对应的哈希标识。52.s103,数据转发装置通过第一内核处理第一数据,获得第二数据。53.可选的,数据转发装置根据第一数据的第一标识,将第一数据分配到对应的第一内核上。54.第一内核是数据转发装置的多个处理器内核中的一个。多个处理器内核至少包含两个内核。示例性的,接收队列包括多个数据包,可根据步骤s101和s102确定多个数据包分别的第一标识,根据第一标识将多个数据包分配到内核。可选的,用于第一标识根据数据的四元组通过哈希算法确定,因此,四元组不同的数据包所对应的第一标识不同,可以根据不同的第一标识将多个数据包分配到不同的内核进行处理,以提高内核对数据包的处理效率。55.可以理解,s103中,第一内核对于第一数据的处理包括但不限于通过如图4所示的以下结构或模块处理或转发数据:56.新应用程序编程接口(new application program interface,napi/new api),用于支持高速网卡处理网络数据包的一种机制;混合中断和轮询的方式来收包,当有中断来了,驱动关闭中断,通知内核收包,内核软中断轮询当前网卡,在规定时间尽可能多的收包。时间用尽或者没有数据可收,内核再次开启中断,准备下一次收包。57.转发(forwarding):cpu多核转发模块。58.根据网络排队规则(queue discipline,qdisc)(或称为队列)对数据排队。59.可以理解,本技术中第一内核可对应于一个napi和一个qdis。例如,第一接收队列可将第一数据发送至第一内核相应的napi,第一接收队列可从第一内核相应的qdis接收第二数据。60.另一种理解可以是,第一接收队列对应于第一内核(或第一内核对应的napi),第一发送队列对应于第一内核(或第一内核对应的qdis)。该示例中,数据转发装置可以在s101之前执行s102,即数据转发装置在根据第一数据确定第一标识后,根据第一标识确定第一内核,再执行s101,即通过第一接收队列接收第一数据,之后执行s103。61.s104,数据转发装置通过第一发送队列发送第二数据。62.其中,第一发送队列对应于第一接收队列。或者,第一发送队列对应于第一内核。63.可选的,第二数据包括第二数据的ip地址。数据转发装置根据第二数据的ip地址转发第二数据。64.可选的,图5所示vpn服务端与多个vpn网卡连接,则在由外网向vpn服务器发送数据时,数据转发装置根据第二数据的ip地址以及ip地址与vpn网卡之间的对应关系,确定第二数据的ip地址对应的vpn网卡,并将第二数据发送至该vpn网卡。65.其中,该ip地址可以是第二数据的目标ip地址。66.可选的,该ip地址与vpn网卡之间的对应关系,可以是预先配置的,也可以是数据转发装置在从该vpn网卡接收源ip地址为该ip地址的数据包后存储的。67.基于图3所示流程,本技术中,sslvpn服务器采用多队列方式转发数据,其中多队列至少包含第一队列和第二队列。区别与现有技术采用单队列方式转发数据,提高网络收发包的速率。数据转发装置根据数据的标识,将不同的数据分配到对应的内核上,发挥处理器多核的能力,同时采用多网卡方案,不同的网卡使用不同的子网,监听不同的端口,提高sslvpn转发性能,因此可以提升sslvpn服务器与外网之间的数据传输性能。68.图6为本技术实施例提供的一种数据转发装置结构示意图,该装置包括:69.通信模块202,可用于通过第一接收队列获取第一vpn设备的第一数据;70.处理模块201,可用于根据第一数据的地址信息确定第一标识,第一标识与第一内核对应,第一内核是数据转发装置的多个处理器内核中的一个;71.处理模块201,还可用于通过第一内核处理第一数据,获得第二数据;72.通信模块202,还可用于将第二数据通过第一发送队列发送,第一发送队列对应于第一接收队列。73.在一种可能的实施方式中,第一数据的地址信息包括第一数据的四元组,处理模块201,可用于根据第一数据的地址信息确定第一标识,包括:根据四元组通过哈希算法获得第一标识。74.在一种可能的实施方式中,处理模块201,可用于根据第二数据的ip地址以及ip地址与vpn网卡之间的对应关系,确定第二数据的ip地址对应的第一vpn网卡,第一vpn网卡为数据转发装置的多个vpn网卡中的一个;通信模块202,可用于将第二数据发送至第一vpn网卡。75.在一种可能的实施方式中,处理模块201,用于存储第一数据的ip地址与第一vpn网卡之间的对应关系,第一vpn网卡为数据转发装置的多个vpn网卡中的一个。76.在上述实施例的基础上,本技术实施例还提供了一种电子设备,图7为本技术实施例提供的一种电子设备结构示意图,如图7所示,包括:处理器31、输出接口32、存储器33、通信总线34和通信模块35,其中,处理器31,输出接口32,存储器33,通信模块35通过通信总线34完成相互间的通信。77.该装置在实现本技术实施例提供的方法时,通信模块35,可用于通过第一接收队列获取第一vpn设备的第一数据;处理器31,可用于根据第一数据的地址信息确定第一标识,第一标识与第一内核对应,第一内核是数据转发装置的多个处理器内核中的一个;处理器31,还可用于通过第一内核处理第一数据,获得第二数据;通信模块35,还可用于将第二数据通过第一发送队列发送,第一发送队列对应于第一接收队列。78.在一种可能的实施方式中,第一数据的地址信息包括第一数据的四元组,处理器31根据第一数据的地址信息确定第一标识,包括:根据四元组通过哈希算法获得第一标识。79.在一种可能的实施方式中,处理器31具体用于:根据第二数据的ip地址以及ip地址与vpn网卡之间的对应关系,确定第二数据的ip地址对应的第一vpn网卡,第一vpn网卡为数据转发装置的多个vpn网卡中的一个;通信模块35具体用于:将第二数据发送至第一vpn网卡。80.在一种可能的实施方式中,处理模块31具体用于:存储第一数据的ip地址与第一vpn网卡之间的对应关系,第一vpn网卡为数据转发装置的多个vpn网卡中的一个。81.在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由处理器执行的计算机程序,当程序在处理器上运行时,使得处理器执行时实现如下步骤:82.数据转发装置通过第一接收队列获取第一vpn设备的第一数据;数据转发装置根据第一数据的地址信息确定第一标识,第一标识与第一内核对应,第一内核是数据转发装置的多个处理器内核中的一个;数据转发装置通过第一内核处理第一数据,获得第二数据;数据转发装置将第二数据通过第一发送队列发送,第一发送队列对应第一接收队列。83.在一种可能的实施方式中,第一数据的地址信息包括第一数据的四元组,数据转发装置根据第一数据的地址信息确定第一标识,包括:根据四元组通过哈希算法获得第一标识。84.在一种可能的实施方式中,数据转发装置根据第二数据的ip地址以及ip地址与vpn网卡之间的对应关系,确定第二数据的ip地址对应的第一vpn网卡,第一vpn网卡为数据转发装置的多个vpn网卡中的一个;将第二数据发送至第一vpn网卡。85.在一种可能的实施方式中,第一数据来自于第一vpn网卡,方法还包括:数据转发装置存储第一数据的ip地址与第一vpn网卡之间的对应关系,第一vpn网卡为数据转发装置的多个vpn网卡中的一个。86.在一种可能的实施方式中,数据转发装置的ip地址至少包括第一vpn网卡对应的ip地址和第二vpn网卡对应的ip地址,第二vpn网卡包括在多个vpn网卡中。87.由于上述计算机可读存储介质解决问题的原理与数据转发相似,因此上述计算机可读存储介质的实施可以参见方法的实施例,重复之处不再赘述。88.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。89.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。90.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。91.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。92.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部