CN115150464A - 应用代理方法、装置、设备及介质 - Google Patents
应用代理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115150464A CN115150464A CN202210712355.8A CN202210712355A CN115150464A CN 115150464 A CN115150464 A CN 115150464A CN 202210712355 A CN202210712355 A CN 202210712355A CN 115150464 A CN115150464 A CN 115150464A
- Authority
- CN
- China
- Prior art keywords
- subprocess
- agent
- data plane
- data
- lock
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 312
- 230000008569 process Effects 0.000 claims abstract description 181
- 230000005540 biological transmission Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 6
- 239000003795 chemical substances by application Substances 0.000 description 303
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开实施例涉及一种应用代理方法、装置、设备及介质,其中该方法包括:通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;通过数据面主进程建立数据面子进程和代理子进程之间的无锁队列;通过数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于无锁队列将报文数据传输至代理子进程。本公开实施例通过性能较高的无锁队列以及轮询模式提高了报文数据的收发性能,从而能够满足快速转发的需求,并且使用数据面子进程实现报文数据的转发,使用代理子进程实现了应用代理,因而当代理子进程重启时,不会影响数据面子进程中转发的报文,从而避免了因为代理子进程重启造成的丢包现象。
Description
技术领域
本公开涉及数据传输领域,尤其涉及一种应用代理方法、装置、设备及介质。
背景技术
随着网络技术的快速发展,网络安全引起了全社会的高度重视,防火墙、负载均衡等设备被大量部署到实际的网络环境中,应用代理是防火墙、数据防泄漏、负载均衡等设备提供的主要功能之一,其中http等应用层服务器的应用代理功能可以基于Nginx等反向代理软件实现。
相关技术中,通过运行反向代理软件可以创建反向代理主进程和反向代理子进程,其中反向代理主进程能够对反向代理子进程进行管理,反向代理子进程能够基于Linux内核协议栈和Linux内核进行报文数据的接收和发送,Linux内核能够基于硬件中断模式和网卡进行报文数据的接收和发送。但是,该种方案中,报文的收发性能较低,不能满足快速转发的需求。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种应用代理方法、装置、设备及介质。
本公开实施例提供了一种应用代理方法,所述方法包括:
通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;
通过所述数据面主进程建立所述数据面子进程和所述代理子进程之间的无锁队列;
通过所述数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于所述无锁队列将所述报文数据传输至所述代理子进程。
本公开实施例还提供了一种应用代理装置,所述装置包括:
第一启动模块,用于通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;
第一建立模块,用于通过所述数据面主进程建立所述数据面子进程和所述代理子进程之间的无锁队列;
第一传输模块,用于通过所述数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于所述无锁队列将所述报文数据传输至所述代理子进程。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的应用代理方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的应用代理方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例中提供的应用代理方案,通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;通过数据面主进程建立数据面子进程和代理子进程之间的无锁队列;通过数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于无锁队列将报文数据传输至代理子进程。采用上述技术方案,通过性能较高的无锁队列以及轮询模式提高了报文数据的收发性能,从而能够满足快速转发的需求,并且使用数据面子进程实现报文数据的转发,使用代理子进程实现了应用代理,因而当代理子进程重启时,不会影响数据面子进程中转发的报文,从而避免了因为代理子进程重启造成的丢包现象。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种应用代理方法的流程示意图;
图2为本公开实施例提供的另一种应用代理方法的流程示意图;
图3为本公开实施例提供的一种应用代理方法的数据传输示意图;
图4为本公开实施例提供的另一种应用代理方法的数据传输示意图;
图5为本公开实施例提供的又一种应用代理方法的数据传输示意图;
图6为本公开实施例提供的再一种应用代理方法的数据传输示意图;
图7为本公开实施例提供的一种应用代理装置的结构示意图;
图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
随着网络技术的快速发展,网络安全引起了全社会的高度重视,防火墙、负载均衡等设备被大量部署到实际的网络环境中,应用代理是防火墙、数据防泄漏、负载均衡等设备提供的主要功能之一,其中http等应用层服务器的应用代理功能可以基于Nginx等反向代理软件实现。
相关技术中,通过运行反向代理软件可以创建反向代理主进程和反向代理子进程,其中反向代理主进程能够对反向代理子进程进行管理,反向代理子进程能够基于Linux内核协议栈和Linux内核进行报文数据的接收和发送,Linux内核能够基于硬件中断模式和网卡进行报文数据的接收和发送。但是,该种方案中,报文的收发性能较低,不能满足快速转发的需求。
另一种相关技术中,反向代理子进程从网卡接收报文,但是当进行代理配置切换时,需要重启全部反向代理子进程,从而造成了数据传输的中断。并且该技术中缺少相关基础组件,从而不适合运行应用代理之外的其他用户态安全进程。并且当反向代理进程出现问题时,其他的用户态安全进程的数据传输均会中断。
为了解决上述问题,本公开实施例提供了一种应用代理方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的一种应用代理方法的流程示意图,该方法可以由应用代理装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:
步骤101,通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程。
本公开实施例中,在应用代理装置中可以运行的进程包括数据面主进程、数据面子进程、代理主进程、代理子进程。其中,数据面主进程可以为数据平面开发套件(DataPlane Development Kit,DPDK)主进程(primary process),该数据面主进程可以为对数据面子进程进行管理的进程。数据面子进程可以为DPDK子进程(secondary process),该数据面子进程又称ncore进程,该数据面子进程可以为能够进行报文转发的进程,该数据面子进程可以从网卡获取报文数据,并对该报文数据进行转发处理。代理主进程可以为Nginx主进程(Nginxmaster process),该代理主进程可以为对代理子进程进行管理的进程。代理子进程可以为Nginx子进程(Nginxworker process),该代理子进程可以为接收报文数据并对该报文数据进行应用代理的进程。在应用代理中,内网和外网之间的数据交互需要通过代理进程的转发实现,从而降低了内网受到破坏的概率,其中内网可以为发起数据获取请求的客户端,外网可以为响应数据获取请求的服务端。
在本公开实施例中,可以预先编辑能够创建并启动数据面主进程和代理主进程的可执行文件,执行该可执行文件,创建数据面主进程和代理主进程,进而运行该数据面主进程创建并启动数据面子进程,运行该代理主进程创建并启动代理子进程。
在一些实施例中,通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程,包括:创建并启动数据面主进程和代理主进程;通过数据面主进程根据预设配置文件中的数据面参数启动数据面子进程;通过代理主进程根据预设配置文件中的代理参数启动代理子进程。
其中,预设配置文件可以为预先设置的、用于记录子进程启动过程中的相关参数的文件,该预设配置文件可以包括数据面参数、代理参数。其中,数据面参数可以为表征各数据面子进程属性的参数,该数据面参数可以包括数据面子进程的数量、数据面子进程与中央处理器(central processing unit,CPU)内核的对应关系。代理参数可以为表征各代理子进程属性的参数,该代理参数可以包括代理子进程的数量、代理子进程与CPU内核的对应关系。
在本实施例中,用户可以根据具体应用场景中对于报文转发能力的需求以及对于应用代理能力的需求设置数据面子进程和代理子进程的比例关系,例如,若对于报文转发能力的需求较高,则该比例关系可以较大。并根据该比例关系设置预设配置文件中数据面子进程的数量和数据面子进程与CPU内核的对应关系,以及代理子进程的数量和代理子进程与CPU内核的对应关系。通过脚本可以读取该预设配置文件,并可以基于该预设配置文件设置DPDK启动运行参数。在本实施例中,可以存在数据面可执行程序以及代理可执行程序,该数据面可执行程序和代理可执行程序的类型可以为二进制程序。运行该数据面可执行程序,能够启动数据面主进程,通过该数据面主进程读取DPDK启动运行参数中的数据面子进程数量、以及数据面子进程和CPU内核的对应关系,并通过该数据面主进程拉起各数据面子进程。运行该代理可执行程序,能够启动代理主进程,通过该代理主进程读取DPDK启动运行参数中的代理子进程数量、以及代理子进程和CPU内核的对应关系,通过该代理主进程拉起各代理子进程。并且,该各代理子进程间的资源相互独立。
步骤102,通过数据面主进程建立数据面子进程和代理子进程之间的无锁队列。
其中,无锁队列可以为DPDK无锁环形队列(rte_ring),该无锁队列可以为一种基于无锁数据结构的环形数据传输队列。
在一些实施例中,无锁队列中包括多个队列内存块,基于无锁队列将报文数据传输至代理子进程,包括:在通过数据面子进程将接收到的报文数据写入多个队列内存块中的过程中,并行通过代理子进程从多个队列内存块中按照先进先出的原则读取报文数据。
其中,通过数据面主进程能够初始化确定DPDK大页内存,基于该DPDK大页内存能够确定存储器缓存(memory buffer,mbuf)内存池,队列内存块可以为存储器缓存内存池中的内存块。先入先出(first input first output,FIFO)的原则可以理解为先存储入无锁队列的报文数据将先被从无锁队列中读取,后存储入无锁队列的报文数据将后被从无锁队列中读取。
在本实施例中,通过无锁队列可以实现从该无锁队列读取数据和向该无锁队列写入数据的同时进行。具体的,通过数据面子进程获取到报文数据之后,可以通过数据面子进程将获取到的报文数据写入该无锁队列中,即写入该多个队列内存块中,其中,可以为写入多个队列内存块中的一个队列内存块,也可以为写入多个队列内存块中的至少两个内存块。在通过数据面子进程将报文数据写入无锁队列的同时,可以通过代理子进程从该无锁队列中读取报文数据,即从多个队列内存块中按照先写入无锁队列的报文数据先被读取的原则读取报文数据。从而实现了数据面子进程在无锁队列中写入报文数据和代理子进程从无锁队列中读取数据的同步执行,提高了报文转发的速度。
步骤103,通过数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于无锁队列将报文数据传输至代理子进程。
其中,轮询模式可以为DPDK中的用户态驱动轮询模式(igb_uio)。网卡可以为用于进行通信的硬件设备。
在本公开实施例中,通过数据面子进程能够从网卡按照轮询模式获取报文数据,并且在获取报文数据之后,通过数据面子进程将该报文数据通过建立完成的无锁队列发送至代理子进程,进而通过代理子进程能够接收到该报文数据。
在一些实施例中,轮询模式定义了获取报文数据的预设时间周期,通过数据面子进程基于预先确定的轮询模式从网卡获取报文数据,包括:通过数据面子进程判断当前时间距离历史获取时间的时间间隔是否满足预设时间周期,其中,历史获取时间为上一次从网卡中获取报文数据的时间;若时间间隔满足预设时间周期,则从网卡中获取报文数据。
其中,预设时间周期可以为通过默认配置、用户配置等方法确定的周期,该预设时间周期可以表征通过数据面子进程从网卡获取报文数据的频率,可以理解地,该预设时间周期越短,则通过数据面子进程从网卡获取报文数据的频率越高,该预设时间周期越长,则通过数据面子进程从网卡获取报文数据的频率越低。当前时间可以为当前时间点,历史获取时间可以为上一次通过数据面子进程从网卡中获取报文数据的时间点,则当前时间和示例获取时间的时间间隔可以为当前时间点与上一次通过数据面子进程从网卡获取报文数据的时间点之间的时间段。
在本实施例中,应用代理装置可以获取当前时间距离历史获取时间的时间间隔,通过数据面子进程判断该时间间隔是否大于预设时间周期的周期长度。若该时间间隔大于预设时间周期的周期长度,则该时间间隔满足预设时间周期,进而通过该数据面子进程从网卡中获取报文数据。可选的,若数据面子进程有多个,则在网卡中可以运行有与数据面子进程一一对应的网卡收发队列,在该网卡收发队列中可以存储有一个或多个报文数据,在通过数据面子进程从网卡中获取报文数据时,首先确定该数据面子进程对应的目标网卡收发队列,通过数据面子进程获取该目标网卡收发队列中包括的报文数据。
本公开实施例中提供的上述应用代理方法,包括:通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;通过数据面主进程建立数据面子进程和代理子进程之间的无锁队列;通过数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于无锁队列将报文数据传输至代理子进程。采用上述技术方案,通过性能较高的无锁队列以及轮询模式提高了报文数据的收发性能,从而能够满足快速转发的需求,并且使用数据面子进程实现报文数据的转发,使用代理子进程实现了应用代理,因而当代理子进程重启时,不会影响数据面子进程中转发的报文,从而避免了因为代理子进程重启造成的丢包现象。
在一些实施例中,该应用方法还包括:若满足目标条件,通过数据面子进程将报文数据传输至代理子进程对应的服务器;其中,目标条件包括以下至少一种:无锁队列中的数据资源占用量大于占用量阈值、无锁队列中的数据数量大于数量阈值、代理子进程的当前状态为停止运行。
其中,目标条件可以为判断是否需要跳过代理子进程将报文数据直接转发至服务器的依据,该目标条件可以根据用户需求、应用代理方法的应用场景等进行设置。占用量阈值可以为表征无锁队列能够同时存储的数据量的最大值的参数。数量阈值可以表征无锁队列能够同时存储的报文数据的数量最大值的参数。停止运行可以表征进程为非运行状态,例如,当进程被终止运行,且未再启动该进程,则该进程的状态为停止运行。
在本实施例中,应用代理装置可以获取无锁队列中当前存储的报文数据的数据资源占用量,并判断该数据资源占用量是否大于占用量阈值,若是,则满足目标条件。应用代理装置还可以获取无锁队列中当前存储的报文数据的数据数量,并判断该数据数量是否大于数量阈值,若是,则满足目标条件。应用代理装置还可以获取代理子进程的当前状态,并判断该当前状态是否为停止运行,若是,则满足目标条件。若满足目标条件,则确定通过数据面子进程将报文数据转发至的代理子进程,并确定该代理子进程所代理的服务器,进而通过数据面子进程将该报文数据转发至该服务器。
上述方案中,实现了在无法通过无锁队列进行报文数据传输和/或代理子进程无法正常运行的情况下,跳过该代理子进程,直接将报文数据转发至代理子进程所代理的服务器,从而避免了因无法进行应用代理造成的服务器访问失败。
在一些实施例中,代理子进程的数量为至少两个,图2为本公开实施例提供的另一种应用代理方法的流程示意图,如图2所示,该应用代理方法还包括:
步骤201,通过数据面主进程,建立数据面主进程针对代理子进程的套接字监听,以接收代理子进程的套接字连接请求。
其中,套接字监听又称socket监听,通过该套接字监听能够监听套接字请求,该套接字请求用于请求建立套接字连接,该套接字请求可以理解为一种注册信息。
在本实施例中,通过数据面主进程能够建立数据面主进程对代理子进程的套接字监听,通过该套接字监听能够监听代理子进程是否发起套接字连接请求。
步骤202,基于套接字请求建立数据面主进程和代理子进程之间的套接字连接,以基于套接字连接接收代理子进程发送的心跳信息。
其中,心跳信息可以为代理子进程发送的,用于表征当前代理子进程的运行状态的信息,该心跳信息可以按照预设的心跳周期进行周期性的发送。可以理解地,若通过数据面主进程接收到的代理子进程的心跳信息的规律与预设的心跳周期相符,则说明该代理子进程当前的运行状态为正常运行。
在本实施例中,通过代理子进程向数据面主进程发送套接字连接请求,基于数据面主进程的套接字监听对该套接字连接请求进行响应,通过数据面主进程建立数据面主进程和代理子进程之间的套接字连接。建立该套接字连接之后,通过代理子进程能够发送心跳信息至数据面主进程。从而数据面主进程能够获取与该数据面主进程存在套接字连接的各代理子进程的当前运行状态。
步骤203,基于心跳信息生成全局调度表。
步骤204,基于全局调度表确定至少两个代理进程中的目标代理子进程。
其中,全局调度表可以为记录代理子进程的特征信息的文件,该全局调度表中可以包括:对各代理子进程的心跳信息的汇总、各代理子进程和CPU内核的对应关系等。通过该全局调度表可以确定各代理子进程的运行状态,从而可以确定当前能够进行应用代理的代理子进程。
在本实施例中,数据面主进程通过套接字连接接收到代理子进程的心跳信息之后,可以根据该心跳信息生成全局调度表。通过数据面子进程可以获取该全局调度表,从而确定当前能够进行应用代理的可用代理子进程,从该可用代理子进程中确定目标代理子进程。其中,从可用代理子进程中确定目标代理子进程的方法有多种,本实施例不做限制。举例而言,可以依次将可用代理子进程作为目标子进程,例如若可用代理子进程包括第一代理子进程、第二代理子进程、第三代理子进程,则数据面子进程在进行第一次报文数据的转发时,可以将该报文数据转发至第一代理子进程,在进行第二次报文数据的转发时,可以将该报文数据转发至第二代理子进程,以此类推。在根据可用代理子进程确定目标代理子进程时,还可以根据可用代理子进程中是否包括对该报文数据进行过代理的历史代理子进程确定目标代理子进程,具体如下述实施例:
在一些实施例中,通过数据面子进程基于全局调度表确定至少两个代理进程中的目标代理子进程,包括:通过数据面子进程获取报文数据对应的报文五元组,若报文五元组属于历史报文五元组,确定报文五元组对应的历史代理子进程;若历史代理子进程属于全局调度表中的可用代理子进程,将历史代理子进程确定为目标代理子进程。
其中,报文五元组可以包括:源互联网协议(Internet Protocol,IP)地址、目的IP地址、源端口、目的端口、传输层协议。历史报文五元组可以为通过该应用代理装置中的数据面子进程进行过至少一次报文数据转发的报文五元组。历史代理子进程可以为上一次对该历史报文五元组进行应用代理的代理子进程。
在本实施例中,通过各数据面子进程能够根据报文五元组建立会话控制(session)连接,会话控制连接存在对应的会话内存,通过该会话内存能够记录传输该报文五元组对应的报文数据的无锁队列的无锁队列序号,其中该无锁队列序号与无锁队列一一对应。在确定目标代理子进程时,可以判断应用代理装置是否处理过与该报文五元组相同的历史报文五元组,若是,则读取会话内存中该历史报文五元组对应的无锁队列序号,将该无锁队列序号对应的代理子进程确定为历史代理子进程,并根据该历史代理子进程对全局调度表进行查询操作,若在全局调度表中查询到该历史代理子进程,说明该历史代理子进程当前可以进行应用代理,则将该历史代理子进程确定为目标代理子进程;若在全局调度表中未查询到该历史代理子进程,说明该历史代理子进程当前不能进行应用代理,则可以基于报文五元组进行哈希计算,获得哈希计算结果,根据该哈希计算结果除以全局调度表中可用代理子进程数量的余数,确定目标代理子进程。
若报文五元组不属于历史报文五元组,则基于报文五元组进行哈希计算,获得哈希计算结果,根据该哈希计算结果除以全局调度表中可用代理子进程数量的余数,确定目标代理子进程。
上述方案中,在数据面主进程和代理子进程之间建立了套接字连接,通过该套接字连接数据面主进程能够接收代理子进程的心跳信息,并生成记录有当前能够进行应用代理的代理子进程的全局调度表,基于该全局调度表能够确定目标代理子进程。从而,通过全局调度表实现了对代理子进程的状态的统计,并且基于该全局调度表能够高效的确定目标代理子进程。
在一些实施例中,该应用代理方法还包括:通过数据面主进程建立数据面主进程和数据面子进程之间的预设共享内存。其中,预设共享内存可以为数据面主进程和数据面子进程均能够进行数据写入和数据读取的内存。在本实施例中,通过数据面主进程可以建立该预设共享内存。
进一步的,在该实施例中,基于上述建立的数据面主进程和数据面子进程之间的预设共享内存,在通过数据面主进程基于心跳信息生成全局调度表之后,该应用代理方法还包括:
首先,通过数据面主进程将全局调度表保存至预设共享内存,并生成全局调度表对应的全局版本号。其中,全局版本号可以为表征全局调度表版本的序号。可选的,在通过数据面主进程接收一次各代理子进程的心跳信息之后,可以通过数据面主进程基于该心跳信息对全局调度表进行更新,并生成相应的全局版本号。
进一步地,通过数据面子进程从预设共享内存中获取全局调度表之后,基于全局调度表生成各数据面子进程对应的本地调度表及其对应的本地版本号,其中,本地版本号和全局版本号用于对本地调度表和全局调度表进行一致性验证。本地调度表可以为存储在数据面子进程的本地内存空间的针对全局调度表的复制文件。本地版本号可以为表征本地调度表版本的序号。在本实施例中,通过数据面子进程能够获取预设共享空间中的全局调度表,并将该全局调度表复制至数据面子进程对应的本地内存,生成本地调度表及其对应的本地版本号,该本地版本号可以与被复制的全局调度表的全局版本号相同。
进一步地,通过数据面子进程基于本地版本号和全局版本号判断全局调度表和本地调度表是否一致。在本实施例中,可以判断本地版本号与全局版本号是否相同,若是,则说明本地调度表和全局调度表一致,通过该一致性验证,可以基于该本地调度表进行报文数据转发操作;否则,说明本地调度表和全局调度表不一致,未通过该一致性验证。若本地调度表和全局调度表不一致,则根据全局调度表更新该本地调度表之后,再根据本地调度表进行报文数据转发操作。
上述方案中,通过生成各数据面子进程对应的本地调度表,并且通过本地版本号和全局版本号保持全局调度表和本地调度表一致,避免了各数据面子进程对数据面主进程中的全局调度表同时进行读取造成的对全局调度表加锁,从而避免了因为对全局调度表加锁造成的报文数据的转发性能降低,提高了报文数据的转发性能。
图3为本公开实施例提供的一种应用代理方法的数据传输示意图,如图3所示,包括数据面主进程、数据面子进程1、数据面子进程2、代理主进程、代理子进程1、代理子进程2、代理缓存进程、网卡。其中,代理缓存进程可以包括代理缓存加载进程(Nginxcacheloaderprocess)和代理缓存管理进程(Nginxcachemanagerprocess)。数据面进程组可以包括一个数据面主进程和多个数据面子进程。数据面主进程可以运行在CPU的0核上,通过数据面主进程能够进行建立DPDK大页内存、建立网卡驱动等资源初始化操作,通过数据面主进程还能够对数据面子进程进行管理。并且数据面子进程和CPU内核一一对应、且数据面子进程和网卡中运行的网卡收发队列一一对应。数据面子进程和网卡通过轮询模式进行数据交互,通过该数据面子进程能够从网卡接收报文数据。数据面子进程和代理子进程通过无锁队列进行数据交互,通过数据面子进程将报文数据转发至相应的代理子进程进行处理,或者若该数据面子进程不能将该报文数据转发至相应的代理子进程,可以通过数据面子进程将报文数据转发回网卡。
代理进程组可以包括一个代理主进程、一个代理缓存加载进程、一个代理缓存管理进程和多个代理子进程,并且每个代理进程对应一个CPU内核,通过代理主进程能够建立、启动代理子进程和代理缓存进程,并通过信号机制管理代理子进程和代理缓存进程。通过代理子进程能够实现应用代理。各代理子进程独立运行,并且各代理子进程上可以运行一个Freebsd用户态协议栈。其中,通过代理子进程经过本地套接字连接向数据面主进程进行注册并发送心跳信息。通过数据面子进程,基于无锁队列能够将报文数据传输至代理子进程,通过代理子进程能够根据报文数据进行应用代理。
图4为本公开实施例提供的另一种应用代理方法的数据传输示意图,如图4所示,在该实施例中,通过数据面子进程基于轮询模式从网卡接收报文数据,通过数据面子进程基于无锁队列将该报文数据转发至代理子进程。通过代理子进程基于该报文数据进行应用代理,并基于无锁队列将回复信息发送至数据面子进程,通过数据面子进程将该回复信息基于轮询模式发送至网卡。
图5为本公开实施例提供的又一种应用代理方法的数据传输示意图,如图5所示,在该实施例中,当代理子进程出现异常时,可以跳过该代理子进程,并且数据面子进程的其他报文数据转发可以正常处理,该其他报文数据可以包括:跳过应用代理也可以执行的访问、与应用代理无关的报文数据(例如,执行电脑病毒扫描的报文数据等)。具体地,通过数据面子进程基于轮询模式从网卡接收报文数据,若跳过代理子进程也可以发送该报文数据,则通过数据面子进程将该报文数据跳过代理子进程发送至相应的服务器;若该报文数据与应用代理无关,则可以正常转发该报文数据,并通过该数据面子进程基于轮询模式向网卡发送数据。
在一些实施例中,数据面子进程和CPU内核之间存在主无锁队列和备用无锁队列两个无锁队列;一个中央处理器内核能够运行主代理子进程和备用代理子进程两个代理子进程。在本实施例中,通过主代理子进程和备用代理子进程实现了在代理进程配置变更过程中报文数据传输不中断。其中,主代理子进程可以为代理进程配置变更之前进行应用代理的进程;备用代理子进程可以为为了保证报文传输不中断设置的与主代理子进程对应的备用进程。并且,一个CPU内核可以运行主代理子进程和备用代理子进程,主代理子进程和数据面子进程之间存在主无锁队列,备用代理子进程和数据面子进程之间存在备用无锁队列。
相应的,响应于代理配置切换指令,通过代理主进程在运行有主代理子进程的各中央处理器内核上启动对应的备用代理子进程,并基于备用代理子进程更新全局调度表,以使数据面子进程将新接收到的报文数据经过备用无锁队列转发至对应的备用代理子进程。其中,代理配置切换指令可以为指示进行代理配置更改的指令,该代理配置更改有多种,包括但不限于:代理端口的更改和/或代理服务器互联网协议地址的更改。
在本实施例中,数据面主进程在数据面子进程和包括代理子进程的CPU内核之间初始化主无锁队列和备用无锁队列两个无锁队列。响应于代理配置切换指令,将主无锁队列切换为备用无锁队列,从而使得数据面子进程由基于主无锁队列和主代理子进程进行数据交互,切换为了主要基于备用无锁队列和备用代理子进程进行数据交互。并且备用代理子进程启动后,向数据面主进程注册,从而建立备用代理子进程和数据面主进程之间的套接字连接,备用代理子进程能够通过该套接字连接向数据面主进程发送心跳信息,并且在全局调度表中,更新与备用代理子进程和主代理子进程相关的信息。具体地,可以在全局调度表中标注不再通过主无锁队列进行新的报文数据的转发。即通过主无锁队列将正在通信的报文数据发送至主代理子进程,而新发起的报文数据通过备用无锁队列实现发送至备用代理子进程。
在一些实施例中,该应用代理方法还包括:响应于主代理子进程满足预设停止条件,通过代理主进程向主代理子进程发送运行停止信号,以使主代理子进程结束运行。其中,预设停止条件为指示主代理子进程停止运行的条件,该预设停止条件可以根据应用场景进行设置,本实施例不做限制。例如,该预设停止条件可以包括:正在通信的报文数据已经完成处理和/或正在通信的报文数据的处理时长大于预设时长阈值。运行停止信号可以为指示主代理子进程停止运行的指令。
通过代理主进程可以判断主代理子进程是否满足预设停止条件,若满足预设停止条件,通过代理主进程基于信号机制发送运行停止信号至主代理子进程。主代理子进程接收到该运行停止信号之后,停止运行。因而,在各主代理子进程满足该预设停止条件之后,各主代理子进程均会停止运行,从而在CPU内核中运行备用代理子进程。需要说明的是,上述同一个CPU内核中最多同时运行两个代理子进程。
上述方案中,通过建立主代理子进程及其对应的主无锁队列,和备用代理子进程及其对应的备用无锁队列,从而实现了在代理配置切换的过程中,在同一个CPU内核上同时运行两个代理子进程,已经在处理过程中的旧数据发送至主代理子进程,新发起处理的新数据发送至备用代理子进程。并且通过全局调度表实现了上述数据的正确发送,实现了在代理配置切换的过程中的数据传输也可以正常进行。
图6为本公开实施例提供的再一种应用代理方法的数据传输示意图,如图6所示,响应于代理配置切换指令,CPU内核2上运行有主代理子进程和备用代理主进程,CPU内核1上运行有数据面子进程,该数据面子进程基于轮询模式从网卡获取报文数据,若该报文数据属于正在处理中的报文数据,则通过主无锁队列将该报文数据传输至主代理子进程;若该报文数据属于未开始处理的报文数据,则通过备用无锁队列将该报文数据传输至备用代理子进程。
本实施例提供的应用代理方法具有如下优点:
基于DPDK技术建立了数据面子进程和代理子进程,其中数据面子进程通过网卡中对应的网卡收发队列进行报文数据的收取与发送,代理子进程进行应用代理,数据面进程和代理进程独立编译运行,通过无锁队列实现数据面子进程和代理子进程之间的报文数据零拷贝传输,代理子进程基于用户态协议栈独立运行代理进程,并且该代理子进程的配置切换、进程重启等不影响系统中数据面子进程上其他安全进程(例如,扫毒)的正常通信,从而提高了应用代理装置的运行稳定性。因而,本公开实施例可应用在多CPU内核的设备上,从而充分利用各CPU内核,同时实现代理进程和其他安全进程,部署灵活且性能较高。
代理配置切换时,在一个CPU内核上再建立并启动备用代理子进程,备用代理子进程和主代理子进程同时运行,主代理子进程处理旧数据,备用代理子进程处理新发起的数据,数据面子进程通过无锁队列、历史报文五元组、本地调度表,保证报文数据转发给正确的代理子进程,从而实现代理配置切换而报文数据可以正常进行转发、代理等,从而提高了应用代理装置的易用性和可扩展性。
图7为本公开实施例提供的一种应用代理装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图7所示,该装置包括:
第一启动模块701,用于通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;
第一建立模块702,用于通过所述数据面主进程建立所述数据面子进程和所述代理子进程之间的无锁队列;
第一传输模块703,用于通过所述数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于所述无锁队列将所述报文数据传输至所述代理子进程。
本公开实施例中提供的应用代理方案,包括:通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;通过数据面主进程建立数据面子进程和代理子进程之间的无锁队列;通过数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于无锁队列将报文数据传输至代理子进程。采用上述技术方案,通过性能较高的无锁队列以及轮询模式提高了报文数据的收发性能,从而能够满足快速转发的需求,并且使用数据面子进程实现报文数据的转发,使用代理子进程实现了应用代理,因而当代理子进程重启时,不会影响数据面子进程中转发的报文,从而避免了因为代理子进程重启造成的丢包现象。
可选的,所述第一启动模块701具体用于:
创建并启动所述数据面主进程和所述代理主进程;
通过所述数据面主进程根据预设配置文件中的数据面参数启动所述数据面子进程;
通过所述代理主进程根据所述预设配置文件中的代理参数启动所述代理子进程。
可选地,所述无锁队列中包括多个队列内存块,所述第一传输模块703具体用于:
在通过所述数据面子进程将接收到的报文数据写入所述多个队列内存块中的过程中,并行通过所述代理子进程从所述多个队列内存块中按照先进先出的原则读取所述报文数据。
可选的,所述轮询模式定义了获取报文数据的预设时间周期,所述第一传输模块703具体用于:
通过所述数据面子进程判断当前时间距离历史获取时间的时间间隔是否满足所述预设时间周期,其中,所述历史获取时间为上一次从网卡中获取报文数据的时间;
若所述时间间隔满足所述预设时间周期,则从网卡中获取报文数据。
可选的,所述装置还包括:
第二传输模块,用于若满足目标条件,通过所述数据面子进程将所述报文数据传输至所述代理子进程对应的服务器;其中,所述目标条件包括以下至少一种:所述无锁队列中的数据资源占用量大于占用量阈值、所述无锁队列中的数据数量大于数量阈值、所述代理子进程的当前状态为停止运行。
可选的,所述代理子进程的数量为至少两个,所述装置还包括:
第二建立模块,用于通过所述数据面主进程,建立所述数据面主进程针对所述代理子进程的套接字监听,以接收所述代理子进程的套接字连接请求;
发送模块,用于基于所述套接字请求建立所述数据面主进程和所述代理子进程之间的套接字连接,以基于所述套接字连接接收所述代理子进程发送的心跳信息;
第一生成模块,用于基于所述心跳信息生成全局调度表;
确定模块,用于基于所述全局调度表确定至少两个所述代理进程中的目标代理子进程。
可选地,所述装置还包括:
第三建立模块,用于通过所述数据面主进程建立所述数据面主进程和所述数据面子进程之间的预设共享内存。
可选地,所述装置还包括:
第二生成模块,用于通过所述数据面主进程将所述全局调度表保存至所述预设共享内存,并生成所述全局调度表对应的全局版本号;
第三生成模块,用于通过所述数据面子进程从所述预设共享内存中获取所述全局调度表之后,基于所述全局调度表生成各所述数据面子进程对应的本地调度表及其对应的本地版本号,其中,所述本地版本号和全局版本号用于对所述本地调度表和所述全局调度表进行一致性验证;
判断模块,用于通过所述数据面子进程基于所述本地版本号和所述全局版本号判断所述全局调度表和所述本地调度表是否一致。
可选地,所述确定模块具体用于:
通过所述数据面子进程获取所述报文数据对应的报文五元组,若所述报文五元组属于历史报文五元组,确定所述报文五元组对应的历史代理子进程;若所述历史代理子进程属于所述全局调度表中的可用代理子进程,将所述历史代理子进程确定为目标代理子进程。
可选地,所述数据面子进程和CPU内核之间存在主无锁队列和备用无锁队列两个无锁队列;一个中央处理器内核能够运行主代理子进程和备用代理子进程两个代理子进程,所述装置还包括:
第二启动模块,用于响应于代理配置切换指令,通过代理主进程在运行有主代理子进程的各中央处理器内核上启动对应的备用代理子进程,并基于所述备用代理子进程更新所述全局调度表,以使所述数据面子进程将新接收到的报文数据经过备用无锁队列转发至对应的备用代理子进程。
可选地,所述装置还包括:
停止模块,用于响应于所述主代理子进程满足预设停止条件,通过所述代理主进程向所述主代理子进程发送运行停止信号,以使所述主代理子进程结束运行。
本公开实施例所提供的应用代理装置可执行本公开任意实施例所提供的应用代理方法,具备执行方法相应的功能模块和有益效果。
图8为本公开实施例提供的一种电子设备的结构示意图。如图8所示,电子设备800包括一个或多个处理器801和存储器802。
处理器801可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备800中的其他组件以执行期望的功能。
存储器802可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器801可以运行所述程序指令,以实现上文所述的本公开的实施例的应用代理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备800还可以包括:输入装置803和输出装置804,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置803还可以包括例如键盘、鼠标等等。
该输出装置804可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置804可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备800中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备800还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的应用代理方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的应用代理方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用代理方法,其特征在于,包括:
通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;
通过所述数据面主进程建立所述数据面子进程和所述代理子进程之间的无锁队列;
通过所述数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于所述无锁队列将所述报文数据传输至所述代理子进程。
2.根据权利要求1所述的方法,其特征在于,所述轮询模式定义了获取报文数据的预设时间周期,所述通过所述数据面子进程基于预先确定的轮询模式从网卡获取报文数据,包括:
通过所述数据面子进程判断当前时间距离历史获取时间的时间间隔是否满足所述预设时间周期,其中,所述历史获取时间为上一次从网卡中获取报文数据的时间;
若所述时间间隔满足所述预设时间周期,则从网卡中获取报文数据。
3.根据权利要求1所述的方法,其特征在于,所述无锁队列中包括多个队列内存块,基于所述无锁队列将所述报文数据传输至所述代理子进程,包括:
在通过所述数据面子进程将接收到的报文数据写入所述多个队列内存块中的过程中,并行通过所述代理子进程从所述多个队列内存块中按照先进先出的原则读取所述报文数据。
4.根据权利要求1所述的方法,其特征在于,所述代理子进程的数量为至少两个,所述方法还包括:
通过所述数据面主进程,建立所述数据面主进程针对所述代理子进程的套接字监听,以接收所述代理子进程的套接字连接请求;
基于所述套接字请求建立所述数据面主进程和所述代理子进程之间的套接字连接,以基于所述套接字连接接收所述代理子进程发送的心跳信息;
基于所述心跳信息生成全局调度表;
基于所述全局调度表确定至少两个所述代理进程中的目标代理子进程。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过所述数据面主进程建立所述数据面主进程和所述数据面子进程之间的预设共享内存。
6.根据权利要求4所述的方法,其特征在于,所述通过所述数据面子进程基于所述全局调度表确定至少两个所述代理进程中的目标代理子进程,包括:
通过所述数据面子进程获取所述报文数据对应的报文五元组,若所述报文五元组属于历史报文五元组,确定所述报文五元组对应的历史代理子进程;
若所述历史代理子进程属于所述全局调度表中的可用代理子进程,将所述历史代理子进程确定为目标代理子进程。
7.根据权利要求4所述的方法,其特征在于,所述数据面子进程和CPU内核之间存在主无锁队列和备用无锁队列两个无锁队列;一个中央处理器内核能够运行主代理子进程和备用代理子进程两个代理子进程;
响应于代理配置切换指令,通过代理主进程在运行有主代理子进程的各中央处理器内核上启动对应的备用代理子进程,并基于所述备用代理子进程更新所述全局调度表,以使所述数据面子进程将新接收到的报文数据经过备用无锁队列转发至对应的备用代理子进程。
8.一种应用代理装置,其特征在于,包括:
第一启动模块,用于通过数据面主进程创建并启动数据面子进程,并通过代理主进程创建并启动代理子进程;
第一建立模块,用于通过所述数据面主进程建立所述数据面子进程和所述代理子进程之间的无锁队列;
第一传输模块,用于通过所述数据面子进程基于预先确定的轮询模式从网卡获取报文数据之后,基于所述无锁队列将所述报文数据传输至所述代理子进程。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7中任一所述的应用代理方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7中任一所述的应用代理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210712355.8A CN115150464B (zh) | 2022-06-22 | 2022-06-22 | 应用代理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210712355.8A CN115150464B (zh) | 2022-06-22 | 2022-06-22 | 应用代理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115150464A true CN115150464A (zh) | 2022-10-04 |
CN115150464B CN115150464B (zh) | 2024-03-15 |
Family
ID=83408110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210712355.8A Active CN115150464B (zh) | 2022-06-22 | 2022-06-22 | 应用代理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150464B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934361A (zh) * | 2023-02-01 | 2023-04-07 | 天翼云科技有限公司 | 本地域名系统服务器的优化方法及相关设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296375B1 (en) * | 2017-08-26 | 2019-05-21 | Plesk International Gmbh | Method of fast file transfer across network |
WO2019144777A1 (zh) * | 2018-01-24 | 2019-08-01 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
CN110719234A (zh) * | 2019-10-17 | 2020-01-21 | 南京中孚信息技术有限公司 | 一种基于dpdk的数据包处理方法及装置 |
CN111385296A (zh) * | 2020-03-04 | 2020-07-07 | 深信服科技股份有限公司 | 一种业务进程重启方法、装置、存储介质以及系统 |
CN111447155A (zh) * | 2020-03-24 | 2020-07-24 | 广州市百果园信息技术有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111600833A (zh) * | 2019-07-30 | 2020-08-28 | 新华三技术有限公司 | 网络操作系统及报文转发方法 |
US20200278892A1 (en) * | 2019-02-28 | 2020-09-03 | Cisco Technology, Inc. | Remote smart nic-based service acceleration |
CN112261094A (zh) * | 2020-10-10 | 2021-01-22 | 厦门网宿有限公司 | 一种报文处理方法及代理服务器 |
CN113051057A (zh) * | 2021-03-30 | 2021-06-29 | 联想(北京)有限公司 | 多线程数据无锁处理方法、装置及电子设备 |
CN113098925A (zh) * | 2021-03-06 | 2021-07-09 | 郑州信大捷安信息技术股份有限公司 | 一种基于F-Stack和Nginx实现动态代理的方法和系统 |
CN113157467A (zh) * | 2021-05-07 | 2021-07-23 | 瑞斯康达科技发展股份有限公司 | 一种多进程数据输出方法 |
US20210243169A1 (en) * | 2020-01-31 | 2021-08-05 | Pensando Systems Inc. | Proxy service through hardware acceleration using an io device |
CN113672410A (zh) * | 2021-08-25 | 2021-11-19 | 北京天融信网络安全技术有限公司 | 一种数据处理方法及电子装置 |
CN113691619A (zh) * | 2021-08-24 | 2021-11-23 | 北京天融信网络安全技术有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
CN114253792A (zh) * | 2020-09-24 | 2022-03-29 | 中国移动通信集团有限公司 | 日志跟踪方法、装置、设备和存储介质 |
CN114531351A (zh) * | 2020-10-31 | 2022-05-24 | 北京华为数字技术有限公司 | 传输报文的方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-06-22 CN CN202210712355.8A patent/CN115150464B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296375B1 (en) * | 2017-08-26 | 2019-05-21 | Plesk International Gmbh | Method of fast file transfer across network |
WO2019144777A1 (zh) * | 2018-01-24 | 2019-08-01 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
US20200278892A1 (en) * | 2019-02-28 | 2020-09-03 | Cisco Technology, Inc. | Remote smart nic-based service acceleration |
CN111600833A (zh) * | 2019-07-30 | 2020-08-28 | 新华三技术有限公司 | 网络操作系统及报文转发方法 |
CN110719234A (zh) * | 2019-10-17 | 2020-01-21 | 南京中孚信息技术有限公司 | 一种基于dpdk的数据包处理方法及装置 |
US20210243169A1 (en) * | 2020-01-31 | 2021-08-05 | Pensando Systems Inc. | Proxy service through hardware acceleration using an io device |
CN111385296A (zh) * | 2020-03-04 | 2020-07-07 | 深信服科技股份有限公司 | 一种业务进程重启方法、装置、存储介质以及系统 |
CN111447155A (zh) * | 2020-03-24 | 2020-07-24 | 广州市百果园信息技术有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114253792A (zh) * | 2020-09-24 | 2022-03-29 | 中国移动通信集团有限公司 | 日志跟踪方法、装置、设备和存储介质 |
CN112261094A (zh) * | 2020-10-10 | 2021-01-22 | 厦门网宿有限公司 | 一种报文处理方法及代理服务器 |
CN114531351A (zh) * | 2020-10-31 | 2022-05-24 | 北京华为数字技术有限公司 | 传输报文的方法、装置、设备及计算机可读存储介质 |
CN113098925A (zh) * | 2021-03-06 | 2021-07-09 | 郑州信大捷安信息技术股份有限公司 | 一种基于F-Stack和Nginx实现动态代理的方法和系统 |
CN113051057A (zh) * | 2021-03-30 | 2021-06-29 | 联想(北京)有限公司 | 多线程数据无锁处理方法、装置及电子设备 |
CN113157467A (zh) * | 2021-05-07 | 2021-07-23 | 瑞斯康达科技发展股份有限公司 | 一种多进程数据输出方法 |
CN113691619A (zh) * | 2021-08-24 | 2021-11-23 | 北京天融信网络安全技术有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
CN113672410A (zh) * | 2021-08-25 | 2021-11-19 | 北京天融信网络安全技术有限公司 | 一种数据处理方法及电子装置 |
Non-Patent Citations (1)
Title |
---|
别体伟;华蓓;: "用户空间协议栈的并行化与性能优化", 电子技术, no. 08 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934361A (zh) * | 2023-02-01 | 2023-04-07 | 天翼云科技有限公司 | 本地域名系统服务器的优化方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115150464B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI344090B (en) | Management of a scalable computer system | |
US20080127202A1 (en) | Stateless asynchronous message transmission | |
CN110352401B (zh) | 具有按需代码执行能力的本地装置协调器 | |
US9448827B1 (en) | Stub domain for request servicing | |
CN115150464B (zh) | 应用代理方法、装置、设备及介质 | |
US20090157896A1 (en) | Tcp offload engine apparatus and method for system call processing for static file transmission | |
US8442939B2 (en) | File sharing method, computer system, and job scheduler | |
JP2008544371A (ja) | ロック関連の一貫性欠如を処理する方法 | |
CN114827017B (zh) | Kafka集群的通信方法、装置、电子设备和存储介质 | |
JP6115455B2 (ja) | 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 | |
JP4414447B2 (ja) | 情報処理装置、情報処理システムおよび情報処理方法 | |
CN111367921A (zh) | 数据对象的刷新方法及装置 | |
CN114979286A (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
CN114785861A (zh) | 一种服务请求转发系统、方法、计算机设备和存储介质 | |
WO2022061587A1 (zh) | 边缘计算方法及系统、边缘设备和控制服务器 | |
US8966019B2 (en) | Application server for mainframe computer systems | |
CN112202854B (zh) | 一种联调方法、装置、设备及介质 | |
CN114124680B (zh) | 一种文件访问控制告警日志管理方法及装置 | |
JP4833911B2 (ja) | プロセッサユニットおよび情報処理方法 | |
CN114356214B (zh) | 一种针对kubernetes系统提供本地存储卷的方法及系统 | |
JP5390947B2 (ja) | ジョブ管理システム、ジョブ管理装置及びそのプログラム | |
CN113032338B (zh) | 一种跨数据中心的数据存储和查询方法与系统 | |
JP7326234B2 (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
JP6115253B2 (ja) | プリントシステム、スプールサーバ、スプール方法、及びプログラム | |
US10652424B2 (en) | Communication apparatus, communication method, and nontransitory computer readable storage medium that resends data when no response is received and records the result |
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 |