CN114500470A - Data packet processing method and device - Google Patents
Data packet processing method and device Download PDFInfo
- Publication number
- CN114500470A CN114500470A CN202111643710.2A CN202111643710A CN114500470A CN 114500470 A CN114500470 A CN 114500470A CN 202111643710 A CN202111643710 A CN 202111643710A CN 114500470 A CN114500470 A CN 114500470A
- Authority
- CN
- China
- Prior art keywords
- data packet
- address
- cpu
- client
- queue
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000003860 storage Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241000029811 Equus burchellii quagga Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
技术领域technical field
本发明涉及网络技术与安全领域,尤其涉及一种数据包处理方法及装置。The present invention relates to the field of network technology and security, and in particular, to a data packet processing method and device.
背景技术Background technique
接入网关系统开始在电脑项目中研发,主要为了满足云电脑客户端到云端业务系统的安全接入,通过通用性改造,满足不同云电脑客户端到云端业务系统的快速接入。The access gateway system began to be developed in the computer project, mainly to meet the secure access of cloud computer clients to cloud business systems, and to meet the fast access of different cloud computer clients to cloud business systems through general transformation.
云电脑客户端到云端业务系统主要传输图像、文件和用户操作指令数据,具有数据量大,交互实时性要求高的特点。传统的网关系统,主要是在应用层实现,客户端与网关系统建立连接并完成鉴权后,将客户端上传数据缓存至本地内存后转发到对应的业务系统,这种实现方式,主要采用传统的数据包处理方式,通过中央处理器(centralprocessing unit,CPU)中断,即网卡驱动接收到数据包后通过中断通知CPU处理,然后由CPU拷贝数据并交给协议栈。在数据量较大时,这种方式会产生大量CPU中断,导致CPU无法运行其他程序。The cloud computer client to the cloud business system mainly transmits images, files and user operation instruction data, which has the characteristics of large amount of data and high requirements for real-time interaction. The traditional gateway system is mainly implemented at the application layer. After the client establishes a connection with the gateway system and completes the authentication, the data uploaded by the client is cached in the local memory and forwarded to the corresponding business system. This implementation method mainly adopts the traditional The data packet processing method is interrupted by the central processing unit (CPU), that is, after the network card driver receives the data packet, it notifies the CPU to process it through an interrupt, and then the CPU copies the data and hands it to the protocol stack. When the amount of data is large, this method will generate a large number of CPU interrupts, so that the CPU cannot run other programs.
传统的数据包处理方式造成网络IO瓶颈主要因素,包括:The main factors that cause network IO bottlenecks in traditional packet processing methods include:
1.传统的收发报文方式都必须采用硬中断来做通信,每次硬中断大约消耗100微秒,这还不算因为终止上下文所带来的缓存损失(Cache Miss)。1. The traditional method of sending and receiving messages must use hard interrupts for communication. Each hard interrupt consumes about 100 microseconds, which is not counting the cache miss (Cache Miss) caused by the termination of the context.
2.数据必须从内核态和用户态之间切换拷贝,以及全局锁竞争均带来大量CPU消耗。2. Data must be copied between kernel mode and user mode, and global lock competition brings a lot of CPU consumption.
3.收发包都有系统调用的开销。3. There is a system call overhead for sending and receiving packets.
4.内核工作在多核上,避免不了锁总线、内存屏障带来的性能损耗。4. The kernel works on multiple cores, and the performance loss caused by the lock bus and memory barrier cannot be avoided.
因此,亟需一种新的数据包处理方式以克服上述问题。Therefore, a new data packet processing method is urgently needed to overcome the above problems.
发明内容SUMMARY OF THE INVENTION
本发明提供一种数据包处理方法及装置,用以实现提升数据包处理效率。The present invention provides a data packet processing method and device for improving the data packet processing efficiency.
第一方面,本发明提供一种数据包处理方法,该方法包括:第一CPU采用轮询方式读取与自身关联的队列中的来自于客户端的数据包;将所述数据包的源IP地址从所述客户端的IP地址修改为所述第一CPU的本地IP地址;将修改后的数据包发送至所述客户端请求访问的业务系统。In a first aspect, the present invention provides a data packet processing method, the method comprising: a first CPU reads a data packet from a client in a queue associated with itself in a polling manner; Modify the IP address of the client to the local IP address of the first CPU; and send the modified data packet to the business system that the client requests to access.
因此,采用上述方法,每个CPU对各自处理的会话进行管理,不同CPU之间没有锁冲突,大大减少了全局锁等待的时间,因此可以提高数据包的处理效率。Therefore, by adopting the above method, each CPU manages the session handled by itself, and there is no lock conflict between different CPUs, which greatly reduces the waiting time of the global lock, and thus can improve the processing efficiency of data packets.
在一种可能的设计中,还包括:在连接池保存所述客户端的会话信息;In a possible design, the method further includes: saving the session information of the client in the connection pool;
在一种可能的设计中,还包括:接收来自于所述业务系统的回程数据包,所述回程数据包的目标IP地址为所述第一CPU的本地IP地址;在所述连接池查询所述回程数据包对应的会话信息;在所述回程数据包对应的会话信息为所述客户端的会话信息时,将所述第一数据包的目的IP地址从所述第一CPU的本地IP地址修改为所述客户端的IP地址;将修改后的回程数据包发送至所述客户端。In a possible design, the method further includes: receiving a backhaul data packet from the service system, where the destination IP address of the backhaul data packet is the local IP address of the first CPU; querying the connection pool for all the session information corresponding to the backhaul data packet; when the session information corresponding to the backhaul data packet is the session information of the client, modify the destination IP address of the first data packet from the local IP address of the first CPU is the IP address of the client; send the modified backhaul data packet to the client.
在一种可能的设计中,还包括:在将所述数据包的源IP地址修改为所述第一CPU的本地IP地址之前,所述第一CPU与所述数据包对应的客户端执行握手和安全认证过程。In a possible design, the method further includes: before modifying the source IP address of the data packet to the local IP address of the first CPU, performing a handshake between the first CPU and the client corresponding to the data packet and security certification process.
第二方面,本发明提供一种数据包处理方法,包括:网关系统为多个CPU分别配置至少一个本地IP地址和队列;接收来自于客户端的数据包;确定所述数据包归属的队列,并将所述数据包缓存至所述数据包归属的队列,所述数据包归属的队列与第一CPU关联,所述第一CPU为所述多个CPU中的一个。In a second aspect, the present invention provides a data packet processing method, comprising: a gateway system configuring at least one local IP address and a queue for multiple CPUs respectively; receiving data packets from clients; determining the queue to which the data packets belong, and The data packet is buffered in a queue to which the data packet belongs, the queue to which the data packet belongs is associated with a first CPU, and the first CPU is one of the plurality of CPUs.
在一种可能的设计中,还包括:所述网关系统发布虚拟IP地址,所述虚拟IP地址用于所述客户端访问业务系统。In a possible design, the method further includes: the gateway system publishes a virtual IP address, and the virtual IP address is used for the client to access the service system.
在一种可能的设计中,还包括:接收来自于所述业务系统的回程数据包,在所述回程数据包的源IP地址为所述第一CPU的本地IP地址时,将所述回程数据包发送至所述第一CPU。In a possible design, the method further includes: receiving a backhaul data packet from the service system, and when the source IP address of the backhaul data packet is the local IP address of the first CPU, converting the backhaul data The packet is sent to the first CPU.
在一种可能的设计中,还包括:所述网关系统在与所述客户端建立连接时,采用预设算法至少两次对所述客户端发送的报文进行校验。In a possible design, the method further includes: when the gateway system establishes a connection with the client, a preset algorithm is used to verify the packets sent by the client at least twice.
第三方面,本申请还提供一种装置。该装置可以执行上述方法设计。该装置可以是能够执行上述方法对应的功能的芯片或电路,或者是包括该芯片或电路的设备。In a third aspect, the present application further provides an apparatus. The device can perform the above-mentioned method design. The apparatus may be a chip or circuit capable of performing the functions corresponding to the above method, or a device including the chip or circuit.
在一种可能的实现方式中,该装置包括:存储器,用于存储计算机可执行程序代码;以及处理器,处理器与存储器耦合。其中存储器所存储的程序代码包括指令,当处理器执行所述指令时,使该装置或者安装有该装置的设备执行上述任意一种可能的设计中的方法。In one possible implementation, the apparatus includes: a memory for storing computer-executable program code; and a processor coupled to the memory. The program code stored in the memory includes instructions, and when the processor executes the instructions, the apparatus or the device installed with the apparatus executes the method in any of the above possible designs.
其中,该装置还可以包括通信接口,该通信接口可以是收发器,或者,如果该装置为芯片或电路,则通信接口可以是该芯片的输入/输出接口,例如输入/输出管脚等。Wherein, the device may further include a communication interface, which may be a transceiver, or if the device is a chip or a circuit, the communication interface may be an input/output interface of the chip, such as input/output pins.
在一种可能的设计中,该装置包括相应的功能单元,分别用于实现以上方法中的步骤。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。In a possible design, the device includes corresponding functional units, which are respectively used to implement the steps in the above method. The functions can be implemented by hardware, or by executing corresponding software by hardware. The hardware or software includes one or more units corresponding to the above-mentioned functions.
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在装置上运行时,执行上述任意一种可能的设计中的方法。In a fourth aspect, the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program runs on an apparatus, the method in any of the above possible designs is executed.
另外,第三方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。In addition, for the technical effects brought by any one of the implementation manners of the third aspect to the fourth aspect, reference may be made to the technical effects brought by different implementation manners in the first aspect, and details are not described herein again.
附图说明Description of drawings
图1为本发明实施例提供的网关系统架构图;Fig. 1 is a gateway system architecture diagram provided by an embodiment of the present invention;
图2为本发明实施例提供的数据包处理方法的概述流程图;2 is an overview flowchart of a data packet processing method provided by an embodiment of the present invention;
图3为本发明实施例提供的客户端接入业务系统流程图;3 is a flowchart of a client access service system provided by an embodiment of the present invention;
图4为本发明实施例提供的客户端与网关系统建立连接和安全认证流程示意图;FIG. 4 is a schematic diagram of a connection establishment and security authentication process between a client and a gateway system provided by an embodiment of the present invention;
图5为本发明实施例提供的一种装置的结构示意图之一;FIG. 5 is one of the schematic structural diagrams of a device provided by an embodiment of the present invention;
图6为本发明实施例提供的一种装置的结构示意图之二。FIG. 6 is a second schematic structural diagram of an apparatus provided by an embodiment of the present invention.
具体实施方式Detailed ways
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。In order to make the objectives, technical solutions and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. . Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。The application scenarios described in the embodiments of the present invention are for the purpose of illustrating the technical solutions of the embodiments of the present invention more clearly, and do not constitute a limitation on the technical solutions provided by the embodiments of the present invention. It appears that the technical solutions provided by the embodiments of the present invention are also applicable to similar technical problems. Wherein, in the description of the present invention, unless otherwise specified, "plurality" means two or more.
本发明提供的网关系统采用数据平面开发套件(data plane development kit,DPDK)技术,相比于传统的数据包处理方式,DPDK采用轮询方式实现数据包处理过程:DPDK重载了网卡驱动,该驱动在收到数据包后不中断通知CPU,而是将数据包通过零拷贝技术存入内存,这时应用层程序就可以通过DPDK提供的接口,直接从内存读取数据包。这种处理方式节省了CPU中断时间、内存拷贝时间,并向应用层提供了简单易行且高效的数据包处理方式,使得网络应用的开发更加方便。The gateway system provided by the present invention adopts the data plane development kit (DPDK) technology. Compared with the traditional data packet processing method, the DPDK adopts the polling method to realize the data packet processing process: the DPDK overloads the network card driver, the After receiving the data packet, the driver does not interrupt to notify the CPU, but stores the data packet into the memory through zero-copy technology. At this time, the application layer program can directly read the data packet from the memory through the interface provided by DPDK. This processing method saves CPU interruption time and memory copying time, and provides a simple and efficient packet processing method to the application layer, which makes the development of network applications more convenient.
采用DPDK收发包,具有以下优势:减少了CPU中断次数;减少了内存拷贝次数;绕过了linux的协议栈,进入用户协议栈,用户获得了协议栈的控制权,能够定制化协议栈降低复杂度;采用大页内存,减少缓存损失。Using DPDK to send and receive packets has the following advantages: reducing the number of CPU interrupts; reducing the number of memory copies; bypassing the linux protocol stack and entering the user protocol stack, the user gains control over the protocol stack, and can customize the protocol stack to reduce complexity degree; large page memory is used to reduce cache loss.
为了提高网关系统的通用性和可扩展性,本发明采用通用的转发框架,用户可自定义转发规则,相比于传统的应用网关,网关系统与业务功能进一步解耦。同时,系统采用边界网关协议(border gateway protocol,BGP)协议发布网关的虚拟(virtual IP,VIP)地址路由形成等价路由,实现多网关集群部署,提升了系统的可靠性和吞吐量的扩展性。In order to improve the versatility and expansibility of the gateway system, the present invention adopts a general forwarding framework, and users can customize forwarding rules. Compared with the traditional application gateway, the gateway system is further decoupled from business functions. At the same time, the system adopts the border gateway protocol (BGP) protocol to publish the virtual IP (VIP) address route of the gateway to form an equal-cost route, realizes the deployment of multi-gateway clusters, and improves the reliability of the system and the scalability of throughput. .
在本发明实施例中,网关系统作为客户端和云端业务系统接入的“门闸”,为了满足交互实时性要求高,数据吞吐量大的业务场景(如云电脑业务,视频传输等),需要主要考虑以下因素:In the embodiment of the present invention, the gateway system is used as a "gateway" for the access between the client and the cloud service system. The following factors need to be mainly considered:
高数据包转发性能,本发明采用DPDK技术,通过将网卡接收流量以轮询方式直接旁路至用户态,并在用户态实现轻量级的TCP/IP协议栈,实现业务流量高性能转发。High data packet forwarding performance, the present invention adopts DPDK technology to directly bypass the traffic received by the network card to the user mode in a polling manner, and implements a lightweight TCP/IP protocol stack in the user mode to achieve high-performance forwarding of business traffic.
高吞吐量,本发明的网关系统采用25G高性能网卡,结合DPDK软件包,极大限度的提升网卡的使用效率。同时,系统负载均衡部署,如果出现系统吞吐量不足的情形,可以快速扩容,满足不同业务系统的业务吞吐量需求。High throughput, the gateway system of the present invention adopts a 25G high-performance network card, combined with the DPDK software package, to greatly improve the use efficiency of the network card. At the same time, the system load balance is deployed. If the system throughput is insufficient, the capacity can be quickly expanded to meet the business throughput requirements of different business systems.
安全防护,网关系统需要对接入客户端进行安全认证,并对后端业务系统进行保护,防止流量攻击(sys flood)导致业务系统奔溃。高可靠性,本发明采用BGP协议发布网关的VIP地址路由形成等价路由,实现多网关集群部署,单网关节点发生故障时,不影响业务系统对外提供服务。For security protection, the gateway system needs to perform security authentication on the access client and protect the back-end business system to prevent traffic attacks (sys flood) from causing the business system to crash. High reliability, the invention adopts the BGP protocol to publish the VIP address route of the gateway to form an equal-cost route, and realizes multi-gateway cluster deployment. When a single gateway node fails, it does not affect the external service provided by the business system.
本申请的网关系统主要分为数据面和控制面两大部分,该系统整体架构参考图1,数据面部分主要实现客户端数据的转发、会话管理、安全认证、流量统计等功能,主要包括以下模块:The gateway system of this application is mainly divided into two parts: the data plane and the control plane. Refer to Figure 1 for the overall architecture of the system. The data plane part mainly implements functions such as client data forwarding, session management, security authentication, and traffic statistics, mainly including the following Module:
(1)网络设备层:使用DPDK实现网卡收发数据、端口聚合、VLAN、流量控制等功能。(1) Network device layer: Use DPDK to implement functions such as network card sending and receiving data, port aggregation, VLAN, and flow control.
(2)IP协议栈:参考Linux内核协议栈,对内核协议栈精简,实现轻量级IP协议栈。(2) IP protocol stack: Refer to the Linux kernel protocol stack, simplify the kernel protocol stack, and implement a lightweight IP protocol stack.
(3)接入网关层:网关数据转发、会话管理、安全认证、流量统计等功能的主要实现。(3) Access gateway layer: The main realization of gateway data forwarding, session management, security authentication, traffic statistics and other functions.
控制面部分,主要实现网关配置的下发管理和流量监控等功能,主要包括以下模块:逻辑控制层;代理层;Web展示层;配置管理层。The control plane part mainly realizes the functions of gateway configuration delivery management and traffic monitoring, and mainly includes the following modules: logic control layer; proxy layer; Web display layer; configuration management layer.
下面以客户端接入业务系统的具体流程为例,参考图2,说明数据包处理过程。The following takes the specific process of the client accessing the service system as an example, and with reference to FIG. 2 , the data packet processing process is described.
步骤200:网关系统为多个CPU分别配置至少一个本地IP地址和队列。Step 200: The gateway system configures at least one local IP address and a queue for the multiple CPUs respectively.
示例性地,在网关系统启动时,网关程序通过设置内核亲和度,绑定在各个CPU(例如绑定16个CPU)上运行,每个CPU分配至少一个本地IP(local IP,LIP)地址,本地IP地址的数量决定网关系统支持最大并发数量,例如,在CPU的数量为16,为每个CPU分配1个本地IP地址时,最大并发数量为:16×1×65000=104万。例如,如图3所示,网关系统为CPU1配置队列1,为CPU2配置队列2,为CPU3配置队列3,……,为CPUn配置队列n。Exemplarily, when the gateway system is started, the gateway program is bound to run on each CPU (for example, 16 CPUs are bound) by setting the kernel affinity, and each CPU is assigned at least one local IP (local IP, LIP) address. , the number of local IP addresses determines the maximum concurrent number supported by the gateway system. For example, when the number of CPUs is 16 and one local IP address is allocated to each CPU, the maximum concurrent number is: 16 × 1 × 65000 = 1.04 million. For example, as shown in Figure 3, the gateway system configures
步骤210:客户端向网关系统发送数据包。Step 210: The client sends a data packet to the gateway system.
步骤220:网关系统确定数据包归属的队列,并将该数据包缓存至该数据包归属的队列。其中,该数据包归属的队列为第一CPU,第一CPU为多个CPU中的一个。Step 220: The gateway system determines the queue to which the data packet belongs, and buffers the data packet in the queue to which the data packet belongs. The queue to which the data packet belongs is the first CPU, and the first CPU is one of the multiple CPUs.
示例性地,网关系统还采用quagga对外发布虚拟IP地址(即VIP),虚拟IP地址用于客户端访问业务系统。Exemplarily, the gateway system also uses quagga to publish a virtual IP address (ie, VIP) to the outside world, and the virtual IP address is used by the client to access the service system.
例如,VIP地址为115.34.154.1:80,客户端的IP为100.124.101.3:2468,客户端可以通过访问VIP访问网关系统,并进一步访问业务系统。For example, the VIP address is 115.34.154.1:80, and the client's IP is 100.124.101.3:2468. The client can access the gateway system and further access the business system by accessing the VIP.
网关系统根据数据包对应的五元组进行哈希(hash)计算,确定将数据包所属的队列,并缓存至数据包所属的队列,例如如图3所示的队列3。The gateway system performs hash calculation according to the quintuple corresponding to the data packet, determines the queue to which the data packet belongs, and buffers it in the queue to which the data packet belongs, such as queue 3 shown in FIG. 3 .
步骤230:第一CPU使用轮询方式处理与第一CPU关联的队列中的数据包。Step 230: The first CPU processes the data packets in the queue associated with the first CPU in a polling manner.
其中,此时的数据包可以为经过自定义轻量级IP协议栈处理后的数据包,并获取到传输控制协议(transmission control protocol,TCP)层数据段的内容。通过使用轻量级的IP协议栈,可以降低逻辑判断的复杂度。Wherein, the data packet at this time may be a data packet processed by a custom lightweight IP protocol stack, and the content of the data segment of the transmission control protocol (transmission control protocol, TCP) layer is obtained. By using a lightweight IP protocol stack, the complexity of logical judgment can be reduced.
例如,如图3所示,第一CPU为CPU3,与CPU3关联的队列为队列3,是在步骤200时,网关系统为CPU3配置或绑定队列3。For example, as shown in FIG. 3 , the first CPU is CPU3, and the queue associated with CPU3 is queue 3. In step 200, the gateway system configures or binds queue 3 for CPU3.
其中,使用轮询方式从队列直接读取数据包,可以减少内核中断和内核到用户空间的拷贝。Among them, using the polling method to directly read the data packets from the queue can reduce the kernel interrupt and the copying of the kernel to the user space.
步骤240:第一CPU将数据包的源IP地址从客户端的IP地址修改为第一CPU的本地ID地址。Step 240: The first CPU modifies the source IP address of the data packet from the IP address of the client to the local ID address of the first CPU.
例如,在图3中,CPU3的本地IP地址为192.168.1.3。For example, in Figure 3, the local IP address of CPU3 is 192.168.1.3.
此外,第一CPU还将数据包目的IP端口修改为业务系统的IP端口。例如,在图3中,业务系统的IP端口为192.168.244.1:8080。源端口使用非分配端口(例如,1001)。In addition, the first CPU also modifies the destination IP port of the data packet to the IP port of the service system. For example, in Figure 3, the IP port of the business system is 192.168.244.1:8080. The source port uses an unassigned port (eg, 1001).
此外,在将数据包的源IP地址修改为第一CPU的本地IP地址之前,第一CPU与数据包对应的客户端执行握手和安全认证过程。示例性地,可以参考下述第一阶段至第四阶段。In addition, before modifying the source IP address of the data packet to the local IP address of the first CPU, the first CPU performs a handshake and security authentication process with the client corresponding to the data packet. Illustratively, the following first to fourth stages may be referred to.
步骤250:第一CPU将修改后的数据包发送至客户端请求访问的业务系统。Step 250: The first CPU sends the modified data packet to the business system that the client requests to access.
示例性地,第一CPU3将修改后的数据包发送至客户端请求访问的业务系统,并与业务系统建立连接,连接池保存当前会话信息,即客户端的会话信息。Exemplarily, the first CPU 3 sends the modified data packet to the service system that the client requests to access, and establishes a connection with the service system, and the connection pool stores the current session information, that is, the session information of the client.
因此,采用上述方法,每个CPU对各自处理的会话进行管理,不同CPU之间没有锁冲突,大大减少了全局锁等待的时间,因此可以提高数据包的处理效率。Therefore, by adopting the above method, each CPU manages the session handled by itself, and there is no lock conflict between different CPUs, which greatly reduces the waiting time of the global lock, and thus can improve the processing efficiency of data packets.
可选的,所述方法还包括:Optionally, the method further includes:
步骤260:业务系统向网关系统发送回程数据包。Step 260: The service system sends a backhaul data packet to the gateway system.
步骤270:在回程数据包的源IP地址为第一CPU的本地IP地址时,网关系统将回程数据包发送至第一CPU。Step 270: When the source IP address of the backhaul data packet is the local IP address of the first CPU, the gateway system sends the backhaul data packet to the first CPU.
步骤280:第一CPU在连接池查询回程数据包对应的会话信息,在回程数据包对应的会话信息为客户端的会话信息时,将第一数据包的目的IP地址从第一CPU的本地IP地址修改为客户端的IP地址。Step 280: The first CPU queries the connection pool for the session information corresponding to the backhaul data packet, and when the session information corresponding to the backhaul data packet is the session information of the client, changes the destination IP address of the first data packet from the local IP address of the first CPU. Change it to the IP address of the client.
示例性地,第一CPU根据回程数据包对应的五元组进行哈希计算,根据哈希值在连接池中查找回程数据包对应的会话信息,在回程数据包对应的会话信息为客户端的会话信息时,将回程数据包目的IP地址修改为客户端的IP地址,回程数据包的端口修改为客户端的端口。因此,往返的数据包都由同一个CPU处理,会话管理CPU本地化,无锁冲突。Exemplarily, the first CPU performs hash calculation according to the quintuple corresponding to the backhaul data packet, searches the connection pool for session information corresponding to the backhaul data packet according to the hash value, and the session information corresponding to the backhaul data packet is the session of the client. When the information is received, change the destination IP address of the return packet to the IP address of the client, and change the port of the return packet to the port of the client. Therefore, the round-trip packets are all processed by the same CPU, the session management is CPU localized, and there are no lock conflicts.
其中,网关系统可以将回程数据包缓存至与第一CPU关联的队列中的回程数据包,第一CPU可以使用轮询方式处理与第一CPU关联的队列中的回程数据包。The gateway system may buffer the backhaul data packets into the backhaul data packets in the queue associated with the first CPU, and the first CPU may process the backhaul data packets in the queue associated with the first CPU in a polling manner.
步骤290:第一CPU将修改后的回程数据包发送至客户端。Step 290: The first CPU sends the modified backhaul data packet to the client.
对于客户端与网关系统建立连接和安全认证流程是本系统的另一个创新点,整个建立连接和安全认证过程分为4个阶段,参考图4所示。The connection establishment and security authentication process between the client and the gateway system is another innovation point of this system. The entire connection establishment and security authentication process is divided into 4 stages, as shown in Figure 4.
第一阶段:建立连接与防止流量攻击(syn flood)Phase 1: Establishing connections and preventing traffic attacks (syn flood)
1、客户端向网关系统发送同步(Synchronize,Syn)报文。网关系统采用TCP层的预设算法回复Syn报文或确认(acknowledge,Ack)报文,其中,预设算法可以为syn-cookie算法或者其他用于防止流量攻击的算法。1. The client sends a Synchronize (Syn) message to the gateway system. The gateway system uses a preset algorithm at the TCP layer to reply to a Syn message or an acknowledgement (acknowledge, Ack) message, where the preset algorithm may be a syn-cookie algorithm or other algorithms for preventing traffic attacks.
2、客户端三次握手的Ack报文到达网关系统时,网关系统采用TCP层的预设算法校验,校验不通过则丢弃报文,校验通过则完成与Client的三次握手。2. When the Ack message of the client's three-way handshake reaches the gateway system, the gateway system uses the preset algorithm of the TCP layer for verification. If the verification fails, the packet is discarded. If the verification passes, the three-way handshake with the client is completed.
3、网关系统将客户端的Ack报文进行缓存。3. The gateway system caches the client's Ack message.
第二阶段:安全认证Stage 2: Security Certification
1、完成三次握手后,网关系统向客户端发送网关系统的公钥(public key)。1. After completing the three-way handshake, the gateway system sends the public key of the gateway system to the client.
2、客户端生成一串随机数(key),并使用网关系统的公钥(public key)进行加密后数据发送给网关系统。2. The client generates a series of random numbers (keys), encrypts the data with the public key of the gateway system, and sends the data to the gateway system.
3、网关系统使用私钥(private key)对接收到的数据进行解密,使用解密结果对接收的数据进行对称加密后发送给客户端。3. The gateway system uses the private key to decrypt the received data, and uses the decryption result to symmetrically encrypt the received data and send it to the client.
4、客户端使用随机数(key)对接收的数据进行解密,若解密后的明文与上一次发送数据一致,则继续下一步,否则停止认证。4. The client uses a random number (key) to decrypt the received data. If the decrypted plaintext is consistent with the last sent data, continue to the next step, otherwise stop the authentication.
5、客户端使用随机数(key)对认证信息进行加密,发送给网关系统。5. The client uses a random number (key) to encrypt the authentication information and sends it to the gateway system.
6、网关系统获得认证信息后确定需要连接的业务系统的IP和端口。6. After the gateway system obtains the authentication information, it determines the IP and port of the business system to be connected.
第三阶段:网关系统与应用系统建立连接The third stage: the gateway system establishes a connection with the application system
1、网关系统向业务系统发送Syn报文开始建立连接。1. The gateway system sends a Syn message to the service system to establish a connection.
2、网关系统在收到Syn报文或Ack报文后,将第一阶段缓存的客户端的Ack报文发送给业务系统,完成三次握手连接。2. After receiving the Syn message or the Ack message, the gateway system sends the Ack message of the client cached in the first stage to the service system to complete the three-way handshake connection.
第四阶段:数据转发Stage 4: Data Forwarding
后续数据包到达网关系统时,根据第三阶段建立的连接,直接转发至业务系统,中间无需缓存。When the subsequent data packets arrive at the gateway system, they are directly forwarded to the service system according to the connection established in the third stage, without buffering in the middle.
采用本申请实施例提供的方法数据包转发性能方面,相比基于内核态转发的传统网关实现,性能有了明显的提升,包转发率从200万pps提升至800万pps。其次,网关系统在握手阶段实现syn-cookies校验,可以有效阻挡syn flood攻击,保护后端业务系统安全。网关系统在TCP层实现安全传输层协议(transport layer security,TLS)安全协议,客户端每一次连接使用不同的密钥,保证安全认证和数据传输安全。再次,网关系统采用通用的转发框架,基于TCP传输的业务均可通过网关系统进行接入,网关系统与业务完全解耦。最后,系统采用BGP协议发布网关的VIP地址路由形成等价路由,实现多网关集群部署,保证了网关的可靠性和可扩展性。In terms of data packet forwarding performance using the method provided by the embodiments of the present application, compared with the traditional gateway implementation based on kernel-mode forwarding, the performance is significantly improved, and the packet forwarding rate is increased from 2 million pps to 8 million pps. Secondly, the gateway system implements syn-cookies verification in the handshake phase, which can effectively block syn flood attacks and protect the security of the back-end business system. The gateway system implements the transport layer security (TLS) security protocol at the TCP layer, and the client uses a different key for each connection to ensure security authentication and data transmission security. Thirdly, the gateway system adopts a general forwarding framework, and services based on TCP transmission can be accessed through the gateway system, and the gateway system and services are completely decoupled. Finally, the system adopts the BGP protocol to advertise the gateway's VIP address route to form an equal-cost route, realizes the multi-gateway cluster deployment, and ensures the reliability and scalability of the gateway.
网关系统采用C语言进行编写,DPDK采用18.11版本,在部署时,采用MellanoxMT27710 25G网卡,独占使用16个CPU内核,大页内存设置为32G,利用BGP协议发布网关的VIP地址路由形成等价路由。The gateway system is written in C language, and DPDK uses version 18.11. During deployment, MellanoxMT27710 25G network card is used, 16 CPU cores are exclusively used, and the huge page memory is set to 32G. The BGP protocol is used to publish the gateway's VIP address route to form an equal-cost route.
本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。The division of units in the embodiments of the present invention is schematic, and is only a logical function division. In actual implementation, there may be other division methods. In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit. In the device, it can also exist physically alone, or two or more units can be integrated into one unit. The above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
本发明实施例还提供一种装置500,参见图5所示,包括:处理模块510和收发模块520。An embodiment of the present invention further provides an apparatus 500 , as shown in FIG. 5 , including: a processing module 510 and a transceiver module 520 .
收发模块520可以包括接收单元和发送单元。处理模块510用于对装置500的动作进行控制管理。收发模块520用于支持装置500与其他装置的通信。可选地,装置500还可以包括存储单元,所述存储单元用于存储装置500的程序代码和数据。The transceiver module 520 may include a receiving unit and a transmitting unit. The processing module 510 is used to control and manage the actions of the device 500 . The transceiver module 520 is used to support the communication between the device 500 and other devices. Optionally, the apparatus 500 may further include a storage unit for storing program codes and data of the apparatus 500 .
可选地,所述装置500中各个模块可以是通过软件来实现。Optionally, each module in the apparatus 500 may be implemented by software.
可选地,处理模块510可以是处理器或控制器,例如可以是通用中央处理器(central processing unit,CPU),通用处理器,数字信号处理(digital signalprocessing,DSP),专用集成电路(application specific integrated circuits,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。收发模块520可以是通信接口、收发器或收发电路等,其中,该通信接口是统称,在具体实现中,该通信接口可以包括多个接口,存储单元可以是存储器。Optionally, the processing module 510 may be a processor or a controller, for example, may be a general-purpose central processing unit (central processing unit, CPU), a general-purpose processor, a digital signal processing (digital signal processing, DSP), an application specific integrated circuit (application specific integrated circuit) integrated circuits, ASIC), field programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logical blocks, modules and circuits described in connection with the disclosure of the embodiments of this application. The processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like. The transceiver module 520 may be a communication interface, a transceiver or a transceiver circuit, etc., where the communication interface is a general term, and in a specific implementation, the communication interface may include multiple interfaces, and the storage unit may be a memory.
其中,在一种实现方式中,处理模块510,用于采用轮询方式读取与自身关联的队列中的来自于客户端的数据包;将所述数据包的源IP地址从所述客户端的IP地址修改为所述第一CPU的本地IP地址;收发模块520,用于将修改后的数据包发送至所述客户端请求访问的业务系统。Wherein, in an implementation manner, the processing module 510 is configured to read data packets from the client in the queue associated with itself in a polling manner; change the source IP address of the data packet from the IP address of the client The address is modified to the local IP address of the first CPU; the transceiver module 520 is configured to send the modified data packet to the service system that the client requests to access.
在一种实现方式中,处理模块510,用于为多个CPU分别配置至少一个本地IP地址和队列;收发模块520,用于将接收来自于客户端的数据包;处理模块510,用于确定所述数据包归属的队列,并将所述数据包缓存至所述数据包归属的队列,所述数据包归属的队列与第一CPU关联,所述第一CPU为所述多个CPU中的一个。In an implementation manner, the processing module 510 is used to configure at least one local IP address and a queue for the multiple CPUs respectively; the transceiver module 520 is used to receive data packets from the client; the processing module 510 is used to determine the The queue to which the data packet belongs, and the data packet is buffered to the queue to which the data packet belongs, and the queue to which the data packet belongs is associated with the first CPU, and the first CPU is one of the multiple CPUs .
本发明实施例还提供另一种装置600,参见图6所示,包括:An embodiment of the present invention further provides another apparatus 600, as shown in FIG. 6, including:
通信接口601,存储器602以及处理器603;communication interface 601, memory 602 and processor 603;
其中,所述通信装置600通过所述通信接口601与其它设备进行通信,比如收发消息;存储器602,用于存储程序指令;处理器603,用于调用所述存储器602中存储的程序指令,按照获得的程序执行的方法。The communication device 600 communicates with other devices through the communication interface 601, such as sending and receiving messages; the memory 602 is used to store program instructions; the processor 603 is used to call the program instructions stored in the memory 602, according to The method of execution of the obtained program.
通信接口601,获取在第K个时刻N个服务器的网络负载率,K和N为正整数;The communication interface 601 obtains the network load rate of the N servers at the Kth moment, where K and N are positive integers;
在一种实现方式中,处理器603调用存储器602存储的程序指令执行:采用轮询方式读取与自身关联的队列中的来自于客户端的数据包;将所述数据包的源IP地址从所述客户端的IP地址修改为所述第一CPU的本地IP地址;将修改后的数据包发送至所述客户端请求访问的业务系统。In an implementation manner, the processor 603 invokes the program instructions stored in the memory 602 to execute: read the data packets from the client in the queue associated with itself in a polling manner; change the source IP address of the data packets from all The IP address of the client is modified to the local IP address of the first CPU; the modified data packet is sent to the business system that the client requests to access.
在一种实现方式中,处理器603调用存储器602存储的程序指令执行:为多个CPU分别配置至少一个本地IP地址和队列;将接收来自于客户端的数据包;确定所述数据包归属的队列,并将所述数据包缓存至所述数据包归属的队列,所述数据包归属的队列与第一CPU关联,所述第一CPU为所述多个CPU中的一个。In an implementation manner, the processor 603 invokes the program instructions stored in the memory 602 to execute: configure at least one local IP address and a queue for multiple CPUs respectively; receive data packets from clients; determine the queue to which the data packets belong , and buffer the data packet in the queue to which the data packet belongs, the queue to which the data packet belongs is associated with the first CPU, and the first CPU is one of the multiple CPUs.
本发明实施例中不限定上述通信接口601、存储器602以及处理器603之间的具体连接介质,比如总线,总线可以分为地址总线、数据总线、控制总线等。The specific connection medium between the communication interface 601, the memory 602, and the processor 603, such as a bus, is not limited in the embodiments of the present invention, and the bus can be divided into an address bus, a data bus, a control bus, and the like.
在本发明实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。In this embodiment of the present invention, the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, which may implement or The methods, steps and logic block diagrams disclosed in the embodiments of the present invention are executed. A general purpose processor may be a microprocessor or any conventional processor or the like. The steps of the method disclosed in conjunction with the embodiments of the present invention may be directly embodied as executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.
在本发明实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。In this embodiment of the present invention, the memory may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), etc., and may also be a volatile memory (volatile memory), such as random access Access memory (random-access memory, RAM). The memory may also be, but is not limited to, any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and that can be accessed by a computer. The memory in this embodiment of the present invention may also be a circuit or any other device capable of implementing a storage function, for storing program instructions and/or data.
本发明实施例还提供一种计算机可读存储介质,包括程序代码,当程序代码在计算机上运行时,程序代码用于使计算机执行上述本发明实施例上述提供的方法的步骤。Embodiments of the present invention further provide a computer-readable storage medium, including program codes, and when the program codes are run on a computer, the program codes are used to make the computer execute the steps of the methods provided in the foregoing embodiments of the present invention.
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block in the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to the processor of a general purpose computer, special purpose computer, embedded processor or other programmable data processing device to produce a machine such that the instructions executed by the processor of the computer or other programmable data processing device produce Means for implementing the functions specified in a flow or flow of a flowchart and/or a block or blocks of a block diagram.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory result in an article of manufacture comprising instruction means, the instructions The apparatus implements the functions specified in the flow or flow of the flowcharts and/or the block or blocks of the block diagrams.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded on a computer or other programmable data processing device to cause a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process such that The instructions provide steps for implementing the functions specified in the flow or blocks of the flowcharts and/or the block or blocks of the block diagrams.
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。Although preferred embodiments of the present invention have been described, additional changes and modifications to these embodiments may occur to those skilled in the art once the basic inventive concepts are known. Therefore, the appended claims are intended to be construed to include the preferred embodiment and all changes and modifications that fall within the scope of the present invention.
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。Obviously, those skilled in the art can make various changes and modifications to the present invention without departing from the scope of the present invention. Thus, provided that these modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to include these modifications and variations.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643710.2A CN114500470A (en) | 2021-12-29 | 2021-12-29 | Data packet processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643710.2A CN114500470A (en) | 2021-12-29 | 2021-12-29 | Data packet processing method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114500470A true CN114500470A (en) | 2022-05-13 |
Family
ID=81509039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111643710.2A Pending CN114500470A (en) | 2021-12-29 | 2021-12-29 | Data packet processing method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500470A (en) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845513A (en) * | 2006-05-23 | 2006-10-11 | 烽火通信科技股份有限公司 | Method for multi service access node access device sharing public network IP address |
CN101739380A (en) * | 2009-12-11 | 2010-06-16 | 中国航空无线电电子研究所 | Shared memory architecture-based multiprocessor communication device and method thereof |
CN102938718A (en) * | 2012-10-19 | 2013-02-20 | 中兴通讯股份有限公司 | Home gateway and intelligent terminal integrated system and communication method thereof |
CN106713185A (en) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | Load balancing method and apparatus of multi-core CPU |
CN110704211A (en) * | 2019-09-29 | 2020-01-17 | 烽火通信科技股份有限公司 | A method and system for receiving packets across CPUs in a multi-core system |
CN112887229A (en) * | 2021-01-11 | 2021-06-01 | 杭州迪普科技股份有限公司 | Session information synchronization method and device |
CN113010379A (en) * | 2021-03-09 | 2021-06-22 | 爱瑟福信息科技(上海)有限公司 | Electronic equipment monitoring system |
CN113507532A (en) * | 2021-08-24 | 2021-10-15 | 优刻得科技股份有限公司 | Method for network address translation, corresponding server, storage medium and electronic device |
CN113794646A (en) * | 2021-09-13 | 2021-12-14 | 国网电子商务有限公司 | Monitoring data transmission system and method for energy industry |
-
2021
- 2021-12-29 CN CN202111643710.2A patent/CN114500470A/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845513A (en) * | 2006-05-23 | 2006-10-11 | 烽火通信科技股份有限公司 | Method for multi service access node access device sharing public network IP address |
CN101739380A (en) * | 2009-12-11 | 2010-06-16 | 中国航空无线电电子研究所 | Shared memory architecture-based multiprocessor communication device and method thereof |
CN102938718A (en) * | 2012-10-19 | 2013-02-20 | 中兴通讯股份有限公司 | Home gateway and intelligent terminal integrated system and communication method thereof |
CN106713185A (en) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | Load balancing method and apparatus of multi-core CPU |
CN110704211A (en) * | 2019-09-29 | 2020-01-17 | 烽火通信科技股份有限公司 | A method and system for receiving packets across CPUs in a multi-core system |
CN112887229A (en) * | 2021-01-11 | 2021-06-01 | 杭州迪普科技股份有限公司 | Session information synchronization method and device |
CN113010379A (en) * | 2021-03-09 | 2021-06-22 | 爱瑟福信息科技(上海)有限公司 | Electronic equipment monitoring system |
CN113507532A (en) * | 2021-08-24 | 2021-10-15 | 优刻得科技股份有限公司 | Method for network address translation, corresponding server, storage medium and electronic device |
CN113794646A (en) * | 2021-09-13 | 2021-12-14 | 国网电子商务有限公司 | Monitoring data transmission system and method for energy industry |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11804984B2 (en) | Intelligent and dynamic overlay tunnel formation via automatic discovery of citrivity/SDWAN peer in the datapath in a pure plug and play environment with zero networking configuration | |
US20240022519A1 (en) | Reliable, out-of-order transmission of packets | |
US10917344B2 (en) | Connectionless reliable transport | |
US10673772B2 (en) | Connectionless transport service | |
Kaufmann et al. | High performance packet processing with flexnic | |
US7996569B2 (en) | Method and system for zero copy in a virtualized network environment | |
KR101969194B1 (en) | Offloading packet processing for networking device virtualization | |
US20210243227A1 (en) | Detecting attacks using handshake requests systems and methods | |
US9166862B1 (en) | Distributed caching system | |
CN110892380A (en) | Data processing unit for stream processing | |
US11068398B2 (en) | Distributed caching system | |
US9621399B1 (en) | Distributed caching system | |
US20160266925A1 (en) | Data forwarding | |
US11750704B2 (en) | Systems and methods to retain existing connections so that there is no connection loss when nodes are added to a cluster for capacity or when a node is taken out from the cluster for maintenance | |
CN110768994A (en) | A method of improving SIP gateway performance based on DPDK technology | |
WO2021073546A1 (en) | Data access method, device, and first computer device | |
US20210377294A1 (en) | Constraining resource allocation rate for stateful multi-tenant http proxies and denial-of-service attack prevention | |
JP2024517706A (en) | Network-connected MPI processing architecture in SMARTNIC | |
WO2023003773A1 (en) | Cluster-aware multipath transmission control protocol (mptcp) session load balancing | |
US10924423B2 (en) | Adaptive mechanism to adjust UDT packet size based on actual network condition | |
US10798026B2 (en) | Bufferbloat recovery and avoidance systems and methods | |
CN114500470A (en) | Data packet processing method and device | |
US20220224684A1 (en) | Validating session tokens using network properties | |
CN115766729A (en) | Data processing method for four-layer load balancing and related device | |
US20150254100A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - Storage Virtualization Offload Engine (SVOE) |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220513 |
|
RJ01 | Rejection of invention patent application after publication |