WO2020224300A1 - 基于用户态协议栈的报文分流方法、装置及系统 - Google Patents

基于用户态协议栈的报文分流方法、装置及系统 Download PDF

Info

Publication number
WO2020224300A1
WO2020224300A1 PCT/CN2020/072074 CN2020072074W WO2020224300A1 WO 2020224300 A1 WO2020224300 A1 WO 2020224300A1 CN 2020072074 W CN2020072074 W CN 2020072074W WO 2020224300 A1 WO2020224300 A1 WO 2020224300A1
Authority
WO
WIPO (PCT)
Prior art keywords
user mode
message
protocol stack
application service
mode protocol
Prior art date
Application number
PCT/CN2020/072074
Other languages
English (en)
French (fr)
Inventor
曹淋
Original Assignee
创新先进技术有限公司
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 创新先进技术有限公司 filed Critical 创新先进技术有限公司
Priority to US16/827,118 priority Critical patent/US10904719B2/en
Publication of WO2020224300A1 publication Critical patent/WO2020224300A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Definitions

  • the embodiments of this specification relate to the computer field, and in particular, to a method, device and system for packet distribution based on a user-mode protocol stack.
  • User mode is a run level of the operating system, which corresponds to the kernel mode. User mode is the privilege level of ordinary user processes running, and most of the applications that users directly face are running in user mode.
  • the TCP/IP protocol stack is the sum of a series of network protocols and constitutes the core framework of network communication. It defines how terminals connect to the Internet and how data is transmitted between them.
  • User mode protocol stack refers to the TCP/IP protocol stack running in user mode. How to efficiently process messages based on the user mode protocol stack is a technical issue that needs to be considered.
  • the embodiments of this specification provide a method, device, system, server, and storage medium for packet distribution based on a user-mode protocol stack.
  • an embodiment of this specification provides a message shunting method based on a user mode protocol stack.
  • the method includes: receiving an application service data message from a message transceiver; determining all data messages from a plurality of user mode protocol stacks.
  • the user mode protocol stack corresponding to the application service data message, so that the application service data message is sent to the determined instance of the user mode protocol stack, wherein each user mode protocol stack corresponds to an instance;
  • the instance of the user mode protocol stack processes the received application service data message, and sends the processed message to the application service corresponding to the user mode protocol stack.
  • an embodiment of the present specification provides a message shunting device based on a user mode protocol stack, the device comprising: a message receiving unit, configured to receive application service data messages from a message transceiver; and message shunt control A unit for determining the user mode protocol stack corresponding to the application service data message from a plurality of user mode protocol stacks, thereby sending the application service data message to the determined instance of the user mode protocol stack , Where each user mode protocol stack corresponds to an instance.
  • the embodiments of this specification provide a message shunt system based on a user mode protocol stack
  • the system includes: a message transceiver, a message shunt processor, multiple user mode protocol stacks, and one or more applications Service, where each user mode protocol stack corresponds to an instance; the message shunt processor is used to receive application service data messages from the message transceiver; and determine the application from multiple user mode protocol stacks The user mode protocol stack corresponding to the service data message, so that the application service data message is sent to the determined instance of the user mode protocol stack; the instance of the user mode protocol stack is for the received application service data The message is processed, and the processed message is sent to the application service corresponding to the user mode protocol stack.
  • an embodiment of the present specification provides a server including a memory, a processor, and a computer program stored in the memory and capable of running on the processor, and the processor executes the steps of any one of the above methods.
  • an embodiment of the present specification provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the steps of any one of the above methods are implemented.
  • each instance corresponds to a user mode protocol stack
  • the instance processes messages, the message processing can be performed based on the resources of different user mode protocol stacks, thus avoiding multiple instances belonging to the same user mode.
  • the resource mutual exclusion problem caused by the protocol stack, heterogeneous capabilities have been enhanced, and since each instance belongs to a different user-mode protocol stack, it supports application services to select a user-mode protocol stack that suits them, thereby improving the performance of application services .
  • FIG. 1 is a schematic diagram of the corresponding relationship between the user mode protocol stack and the instance in the embodiment of this specification;
  • FIG. 2 is a flowchart of a method for packet distribution based on a user mode protocol stack provided in the first aspect of the embodiments of this specification;
  • FIG. 3 is a schematic diagram of an example system of packet offloading based on a user mode protocol stack provided in the second aspect of the embodiments of the present specification;
  • FIG. 4 is a schematic structural diagram of a packet shunting device based on a user mode protocol stack provided in the third aspect of the embodiment of this specification;
  • Fig. 5 is a schematic structural diagram of a server based on user-mode protocol stack-based packet shunting provided in the fourth aspect of the embodiment of this specification.
  • the protocol stack is a module usually included in the network processing part of the operating system. When the process/thread related to the network processing part runs in the user space, the protocol stack pointed to by the cpu stack pointer register is the user mode protocol stack .
  • the user mode protocol stack can be understood as a TCP/IP protocol stack running in the user mode.
  • Instance In the computer field, a "class” is called an “instance” after instantiation.
  • the "class” is static and does not occupy process memory, while the “instance” has dynamic memory.
  • an instance refers to a thread or process running on the user mode protocol stack.
  • Heterogeneous capabilities is a type of parallel computing that makes the type of parallelism (code type) of computing tasks best match the type of computing (ie, machine capabilities) that the machine can effectively support, and makes the most of various computing resources Distributed computing technology.
  • code type type of parallelism
  • machine capabilities type of computing
  • the heterogeneous capability refers to the capability of running different user mode protocol stacks between instances.
  • Message shunt processor refers to a software unit that classifies messages and performs corresponding processing according to their types.
  • the message shunt processor performs shunting (classification) of the message to determine whether it is suitable for the message.
  • the user mode protocol stack of the message type realizes the instance of shunting various messages to the corresponding user mode protocol stack.
  • the so-called message type is divided according to each application service, that is, various messages and each application Service corresponds.
  • each instance is set to belong to different user mode protocol stacks.
  • FIG. 1 is a schematic diagram of the corresponding relationship between the user mode protocol stack and the instance in this embodiment of this specification.
  • each user mode protocol stack corresponds to an instance.
  • user mode protocol stack A corresponds to instance 1
  • user mode protocol stack B corresponds to instance 2
  • user mode protocol stack X corresponds to Instance n corresponds.
  • the embodiments of this specification provide a method for packet offloading based on a user mode protocol stack. Please refer to FIG. 2.
  • the method for packet offloading based on a user mode protocol stack includes steps S201-S203.
  • S201 Receive an application service data message from the message transceiver.
  • the message transceiver is a hardware unit that receives and sends network messages. In the message receiving direction, the message transceiver receives messages from devices such as clients, and then hands the messages to the message shunt processor for processing.
  • step S201 it means that the message shunt processor receives a message from the message transceiver.
  • the message shunt processor will receive various types of messages from the message transceiver, for example, including but not limited to application service data messages and protocol data messages.
  • the application service data message refers to the data message related to the application service, and can further include the data message that the application service needs to process and the protocol message corresponding to the connection;
  • the protocol data message refers to all non-application service data Message.
  • the method adopted is to support the application service to select a user-mode protocol stack suitable for it.
  • the application service data message corresponding to the application service must be mapped to the user mode protocol stack corresponding to the application service, and processed by the instance of the user mode protocol stack.
  • the message shunt processor After receiving various types of messages from the message transceiver, the message shunt processor subdivides the messages into application service data messages and protocol data messages according to the content of the messages (for example, according to the message type field). Among them, for the application service data message, the subsequent steps are executed, so as to be offloaded (classified) to the user mode protocol stack corresponding to the application service.
  • S202 Determine the user mode protocol stack corresponding to the application service data message from the multiple user mode protocol stacks, so as to send the application service data message to the determined user mode protocol stack instance, where each user mode protocol The stack corresponds to an instance.
  • the message shunt processor After the message shunt processor receives various types of messages from the message transceiver, it extracts the application service data message according to the message content, and selects an adapted user mode protocol stack for the application service data message.
  • the step of determining the user mode protocol stack corresponding to the application service data message may include: (1) determining the application service corresponding to the application service data message; (2) according to preset application services and users (3) According to the corresponding relationship between the application service data message and the application service, and the corresponding relationship between the application service and the user mode protocol stack, the user mode protocol stack corresponding to the application service data message is determined.
  • a message is a unit of network transmission. During the transmission process, it will be continuously encapsulated into groups, packets, and frames for transmission.
  • the encapsulation method is to add some information segments (fields). Data organized in a format. For example, there are message type, message version, message length, message entity, and so on.
  • the message shunt processor analyzes the application service data message, and can determine the application service corresponding to the message according to each field in the message header. For example, the application service corresponding to the application service data is determined through fields such as the message type and message destination address.
  • the method adopted is to support the selection of user-mode protocol stacks suitable for application services, that is, each application service has a corresponding relationship with one or more user-mode protocol stacks. .
  • the message shunt processor in order to shunt the application service data message to the user mode protocol stack corresponding to the application service, it is necessary to know the correspondence between the application service and the user mode protocol stack.
  • the correspondence information between the application service and the user mode protocol stack can be saved and updated in a module on the message shunt processor, or the correspondence information between the application service and the user mode protocol stack can be saved and updated on a server ,
  • the message shunt processor obtains the correspondence information from the server.
  • the saved correspondence information needs to be synchronized with the actual correspondence to ensure its accuracy.
  • the message shunt processor currently receives an application service data message, and by analyzing the currently received application service data message, it determines that the application service corresponding to the application service data message is application service i. At the same time, it passes Look up the correspondence information between the application service and the user-mode protocol stack, and determine that the user-mode protocol stack corresponding to the application service i is the user-mode protocol stack j. Then, determine that the current application service data message corresponds to the user-mode protocol stack j.
  • the correspondence between application services and user-mode protocol stacks can be a one-to-one correspondence, that is, an application service corresponds to a user-mode protocol stack, or a one-to-many relationship, that is, an application service and Corresponding to multiple user mode protocol stacks.
  • a user-mode protocol stack equal to the number of application services is set.
  • application service 1 corresponds to user-mode protocol stack 1
  • application service 2 corresponds to user-mode protocol stack 2.
  • application service n corresponds to user mode protocol stack n. Since each user mode protocol stack corresponds to an instance, it can be understood that each application service corresponds to an instance of user mode protocol stack. In this way, it is possible to process messages through instances belonging to different user mode protocol stacks, thereby avoiding Resource mutual exclusion issues improve application service performance.
  • each application service can correspond to multiple user-mode protocol stacks (of course, the above description is from the perspective of application services. In fact, multiple different applications
  • the service can correspond to a user mode protocol stack), for example, the application service 1 corresponds to the user mode protocol stack 1, the user mode protocol stack 3, and the user mode protocol stack 5. Since each user-mode protocol stack corresponds to one instance, it can be understood that each application service corresponds to multiple instances of multiple user-mode protocol stacks. In this way, messages can be sent through each instance belonging to different user-mode protocol stacks. Processing to avoid resource mutual exclusion problems and improve application service performance.
  • S203 The instance of the user mode protocol stack processes the received application service data message, and sends the processed message to the application service corresponding to the user mode protocol stack.
  • the instance of the user mode protocol stack refers to the thread or process running the user mode protocol stack. Taking thread as an example, it is the smallest unit that the operating system can perform operation scheduling. It is included in the process and is the actual operating unit in the process. A thread refers to a single sequential control flow in a process. Multiple threads can be concurrent in a process, and each thread executes different tasks in parallel.
  • the message shunt processor submits the application service data message to the instance of the user mode protocol stack, the instance processes the message.
  • the instance of the user mode protocol stack processes the message, it sends the message to the application service corresponding to the user mode protocol stack.
  • each instance corresponds to a user mode protocol stack in the embodiment of this specification, when the instance processes messages, it can process messages based on the resources of different user mode protocol stacks, thus avoiding multiple instances belonging to the same one.
  • the resource mutual exclusion problem caused by the user-mode protocol stack has enhanced heterogeneous capabilities.
  • each instance belongs to a different user-mode protocol stack, it supports application services to select a user-mode protocol stack that is compatible with it, thereby improving application services Performance.
  • FIG. 3 is a schematic diagram of an example of a message distribution system based on a user mode protocol stack provided by an embodiment of this specification.
  • the system includes a message transceiver, a message shunt processor, multiple user mode protocol stacks, and one or more application services, wherein each user mode protocol stack corresponds to an instance.
  • Message transceiver used to receive and send messages.
  • the message shunt processor classifies messages to determine a user mode protocol stack suitable for the message type, so as to realize an instance of shunting various messages to the corresponding user mode protocol stack.
  • User mode protocol stack specifically including multiple user mode protocol stack A, user mode protocol stack B,..., user mode protocol stack X, each user mode protocol stack corresponds to an instance, and each instance is represented as instance 1, instance 2. ,..., instance n.
  • Application service including one or more application services, is represented as application service i, application service j,..., application service k.
  • Each application service corresponds to one or more user mode protocol stacks.
  • FIG. 3 the corresponding relationship between each application service and multiple user mode protocol stacks is exemplarily shown.
  • each application service can be set to correspond to a user mode protocol stack.
  • the message transceiver delivers the received message to the message shunt processor.
  • the message shunt processor will subdivide the message content field into application service data messages and protocol data messages.
  • the application service data message refers to the message containing the data to be processed by the application service and the protocol message corresponding to the connection
  • the protocol data message refers to all non-application service data messages.
  • the message shunt processor determines its corresponding user mode protocol stack. Specifically, the message shunt processor is used to receive the application service data message from the message transceiver, and from multiple user mode protocol stacks, determine the user mode protocol stack corresponding to the application service data message, thereby transferring the application service data message The text is sent to the determined instance of the user mode protocol stack.
  • the user mode protocol stack corresponding to the application service data message is determined by the following steps: hash evaluation of a specific field in the application service data message, and use the hash value to obtain the user mode protocol stack correspondence To determine the user mode protocol stack corresponding to the mapping number.
  • the mapping number is a preset number of the user mode protocol stack corresponding to a specific application service. Since the corresponding specific application service can be learned by parsing the fields of the application service data message, the corresponding specific application service is determined by the above method. The mapping number of the user mode protocol stack corresponding to a specific application service can match which user mode protocol stack the application service data message corresponds to.
  • the IP quintuple in the application service data message is hashed first, and then the hash value is used to obtain the The mapping number of the user mode protocol stack corresponding to the application service one-to-one, and finally the user mode protocol stack corresponding to the mapping number is determined.
  • the application service data message is finally delivered to the instance of the corresponding user mode protocol stack for subsequent processing according to the mapping number.
  • the port number (or other fields) in the application service data message is hashed and evaluated, and then the The hash value obtains multiple mapping numbers of multiple user mode protocol stacks corresponding to the application service, and finally determines multiple user mode protocol stacks corresponding to the multiple mapping numbers.
  • the embodiment of this specification does not limit the method of determining the mapping number of the user mode protocol stack corresponding to the message based on which field.
  • the above method of IP quintuple and port number is only given as an example, and is not limited to These two ways.
  • the message shunt processor only needs to process ARP (Address Resolution Protocol) messages, that is, for ARP request messages, they are randomly handed to one
  • ARP Address Resolution Protocol
  • the instance of the user mode protocol stack performs subsequent processing; for ARP responses and gratuitous ARP messages, a copy of the message is copied for each instance of the user mode protocol stack and the destination link address of the copied message is modified to the broadcast address, and then These copied messages are handed over to the corresponding user mode protocol stack instance for subsequent processing.
  • ARP Address Resolution Protocol
  • the message delivered by the message shunt processor can be processed according to its normal flow. For example, when an application service data message is received, the instance of the user mode protocol stack processes the application service data message and sends the processed message to the application service corresponding to the user mode protocol stack.
  • the instance of the user mode protocol stack is normal The process can be processed and finally handed over to the message shunt processor.
  • the message shunt processor After the message shunt processor receives the message from the instance of the user mode protocol stack, it directly delivers it to the message transceiver.
  • the message transceiver After the message transceiver receives the message from the message shunt processor, it sends the message.
  • the embodiments of this specification provide a packet shunt device based on a user mode protocol stack (corresponding to the aforementioned packet shunt processor or a part of the aforementioned packet shunt processor), please refer to the figure 4.
  • the device includes:
  • the message receiving unit 401 is configured to receive application service data messages from the message transceiver;
  • the message distribution control unit 402 is configured to determine the user mode protocol stack corresponding to the application service data message from a plurality of user mode protocol stacks, so as to send the application service data message to the determined user mode On the instance of the protocol stack, each user mode protocol stack corresponds to an instance.
  • the packet offload control unit 402 is specifically configured to: determine the application service corresponding to the application service data packet, and obtain according to the preset correspondence between the application service and the user mode protocol stack The user mode protocol stack corresponding to the application service data message.
  • the packet distribution control unit 402 includes:
  • the hash evaluation subunit 4021 is configured to perform hash evaluation on a specific field in the application service data message
  • the mapping number determining subunit 4022 is configured to obtain the mapping number corresponding to the user mode protocol stack by using the hash value;
  • the user mode protocol stack determining subunit 4023 is used to determine the user mode protocol stack corresponding to the mapping number.
  • the preset correspondence relationship between the application service and the user mode protocol stack is a one-to-one correspondence; the hash evaluation subunit 4021 is configured to compare the data in the application service data message The specific field of the hash evaluation.
  • the preset correspondence between the application service and the user-mode protocol stack is a one-to-many correspondence;
  • the hash evaluation subunit 4021 is configured to send a datagram to the application service The port number in the text is hashed and evaluated;
  • the mapping number determining subunit 4022 is configured to use the hash value to obtain multiple mapping numbers of multiple user mode protocol stacks corresponding to the application service;
  • the user mode protocol The stack determining subunit 4023 is used to determine multiple user mode protocol stacks corresponding to the multiple mapping numbers.
  • the message receiving unit 401 is further configured to: receive an ARP protocol data message from the message transceiver;
  • the message distribution control unit 402 is further configured to: randomly submit the ARP request message to any instance of the user mode protocol stack for processing; and, for each user ARP reply message or gratuitous ARP message, The instance of the state protocol stack copies the ARP response message or gratuitous ARP message, and modifies the destination link address of the copied message to a broadcast address.
  • an embodiment of this specification also provides a server, as shown in FIG. 5, including a memory 504, a processor 502, and a storage
  • a server as shown in FIG. 5, including a memory 504, a processor 502, and a storage
  • a computer program that is on the memory 504 and can be run on the processor 502, and when the processor 502 executes the program, the steps of any method of the user-mode protocol stack-based message shunt method described above are implemented.
  • bus 500 may include any number of interconnected buses and bridges, bus 500 will include one or more processors represented by processor 502 and memory 504 represented by The various circuits of the memory are linked together.
  • the bus 500 may also link various other circuits such as peripheral devices, voltage regulators, power management circuits, etc., which are all known in the art, and therefore, no further description will be given herein.
  • the bus interface 506 provides an interface between the bus 500 and the receiver 501 and transmitter 503.
  • the receiver 501 and the transmitter 503 may be the same element, namely a transceiver, which provides a unit for communicating with various other devices on the transmission medium.
  • the processor 502 is responsible for managing the bus 500 and general processing, and the memory 504 may be used to store data used by the processor 502 when performing operations.
  • the embodiment of this specification also provides a computer-readable storage medium on which a computer program is stored, and the program is When executed, the steps of any one of the aforementioned methods for packet distribution based on the user mode protocol stack are implemented.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.

Abstract

本说明书实施例提供了一种基于用户态协议栈的报文分流方法,通过设置每个实例对应一个用户态协议栈,从而当实例对报文进行处理时,可基于不同用户态协议栈的资源进行报文处理,从而提升异构能力,而且,由于各个实例分属于不同的用户态协议栈,因此支持应用服务选择与其相适应的用户态协议栈,从而提升应用服务的性能。

Description

基于用户态协议栈的报文分流方法、装置及系统 技术领域
本说明书实施例涉及计算机领域,尤其涉及一种基于用户态协议栈的报文分流方法、装置及系统。
背景技术
用户态是操作系统的一种运行级别,它与内核态相对应。用户态是普通的用户进程运行的特权级,大部分用户直接面对的应用程序都是运行在用户态。TCP/IP协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了终端如何连入因特网,以及数据如何在它们之间进行传输。用户态协议栈,是指运行于用户态的TCP/IP协议栈。如何基于用户态协议栈对报文进行高效处理,是需要考虑的一个技术问题。
发明内容
本说明书实施例提供及一种基于用户态协议栈的报文分流方法、装置、系统、服务器及存储介质。
第一方面,本说明书实施例提供一种基于用户态协议栈的报文分流方法,所述方法包括:从报文收发器接收应用服务数据报文;从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上,其中,每个用户态协议栈对应一个实例;所述用户态协议栈的实例对接收到的应用服务数据报文进行处理,并将处理后的报文发送给所述用户态协议栈对应的应用服务。
第二方面,本说明书实施例提供一种基于用户态协议栈的报文分流装置,所述装置包括:报文接收单元,用于从报文收发器接收应用服务数据报文;报文分流控制单元,用于从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上,其中,每个用户态协议栈对应一个实例。
第三方面,本说明书实施例提供一种基于用户态协议栈的报文分流系统,所述系统包括:报文收发器、报文分流处理器、多个用户态协议栈以及一个或多个应用服务,其 中,每个用户态协议栈对应一个实例;所述报文分流处理器,用于从报文收发器接收应用服务数据报文;并从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上;所述用户态协议栈的实例,对接收到的应用服务数据报文进行处理,并将处理后的报文发送给所述用户态协议栈对应的应用服务。
第四方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一项所述方法的步骤。
第五方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本说明书实施例有益效果如下:
由于在本说明书实施例中,每个实例对应一个用户态协议栈,从而当实例进行报文处理时,可基于不同用户态协议栈的资源进行报文处理,因此避免多个实例同属一个用户态协议栈而导致的资源互斥问题,异构能力得到增强,而且,由于各个实例分属于不同的用户态协议栈,因此支持应用服务选择与其相适应的用户态协议栈,从而提升应用服务的性能。
附图说明
图1为本说明书实施例用户态协议栈与实例对应关系示意图;
图2本说明书实施例第一方面提供的基于用户态协议栈的报文分流方法流程图;
图3本说明书实施例第二方面提供的基于用户态协议栈的报文分流实例系统示意图;
图4本说明书实施例第三方面提供的基于用户态协议栈的报文分流装置结构示意图;
图5本说明书实施例第四方面提供的基于用户态协议栈的报文分流的服务器结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况 下,本说明书实施例以及实施例中的技术特征可以相互组合。
首先对本说明书实施例涉及的技术术语解释如下。
用户态协议栈:协议栈是操作系统的网络处理部分通常都包含的模块,当与网络处理部分相关的进程/线程在用户空间运行时,cpu堆栈指针寄存器指向的协议栈即为用户态协议栈。本说明书实施例中,用户态协议栈可以理解为运行于用户态的TCP/IP协议栈。
实例:在计算机领域中,“类”在实例化之后叫做一个“实例”,“类”是静态的,不占进程内存,而“实例”拥有动态内存。本说明书实施例中,实例是指运行于用户态协议栈的线程或进程。
异构能力:异构计算技术是一种使计算任务的并行性类型(代码类型)与机器能有效支持的计算类型(即机器能力)最相匹配、最能充分利用各种计算资源的并行和分布计算技术。本说明书实施例中,异构能力是指实例之间运行不同用户态协议栈的能力。
报文分流处理器:是指对报文进行分类并根据其类型做相应处理的软件单元,本说明书实施例中,报文分流处理器对报文进行分流(分类),以确定出适应该报文类型的用户态协议栈,从而实现将各类报文分流到对应的用户态协议栈的实例,其中,所谓的报文类型是依据各个应用服务进行划分的,即各类报文与各个应用服务相对应。
在上述技术术语含义明确的基础上,对说明书实施例进行详细介绍。
本领域技术人员理解,基于用户态协议栈的应用服务(APP),如果多实例共同属于一个协议栈,就会引入资源互斥问题,导致应用服务性能受限,使得异构能力不足。因此,在本说明书实施例中,设置各个实例分属于不同的用户态协议栈,请参见图1,为本说明书实施例用户态协议栈与实例对应关系示意图。在该示意图中,每个用户态协议栈与一个实例相对应,图1中,用户态协议栈A与实例1对应,用户态协议栈B与实例2对应,……,用户态协议栈X与实例n对应。可见,用户态协议栈与实例一一对应,从而支持应用服务选择与其相适应的用户态协议栈(而不会多个实例共同属于一个用户态协议栈),由于各个用户态协议栈的实例之间不存在资源互斥问题,由此提升应用服务的性能。
第一方面,本说明书实施例提供一种基于用户态协议栈的报文分流方法,请参考图2,该基于用户态协议栈的报文分流的方法包括步骤S201-S203。
S201:从报文收发器接收应用服务数据报文。
报文收发器是接收和发送网络报文的硬件单元。报文收发器在报文接收方向,接收来自客户端等设备的报文,然后将报文交由报文分流处理器进行处理。
在步骤S201中,是指报文分流处理器从报文收发器接收到报文。在实际场景中,报文分流处理器会从报文收发器接收到各种类型的报文,例如,包括但不限于应用服务数据报文和协议数据报文。其中,应用服务数据报文是指与应用服务相关的数据报文,又进一步可包含应用服务需要处理的数据报文和对应连接的协议报文;协议数据报文是指所有的非应用服务数据报文。
在本说明书实施例中,如前分析的,为了提升应用服务的提供服务的性能,采取的方式是支持应用服务选择与其相适应的用户态协议栈。为了实现这个目的,就要将应用服务对应的应用服务数据报文映射给该应用服务对应的用户态协议栈,由该用户态协议栈的实例进行处理。
报文分流处理器从报文收发器接收到各类型报文后,根据报文内容(例如,根据报文类型字段)将报文细分为应用服务数据报文和协议数据报文。其中,针对应用服务数据报文,执行后续的步骤,从而将其分流(分类)到应用服务对应的用户态协议栈。
S202:从多个用户态协议栈中,确定应用服务数据报文对应的用户态协议栈,从而将应用服务数据报文发送到确定的用户态协议栈的实例上,其中,每个用户态协议栈对应一个实例。
报文分流处理器从报文收发器接收到各类型报文后,根据报文内容提取出应用服务数据报文,并针对应用服务数据报文进行选择适应的用户态协议栈。
在一种可选方式中,确定应用服务数据报文对应的用户态协议栈的步骤可以包括:(1)确定应用服务数据报文对应的应用服务;(2)根据预置的应用服务与用户态协议栈的对应关系;(3)根据应用服务数据报文与应用服务的对应关系、应用服务与用户态协议栈的对应关系,从而确定应用服务数据报文对应的用户态协议栈。
首先,需要确定应用服务数据报文对应的应用服务。
本领域技术人员理解,报文是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段(字段),这些字段就是报文头以一定格式组织起来的数据。比如里面有报文类型,报文版本,报文长度,报文实体等等信息。报文分流处理器对应用服务数据报文进行解析,根据报文头中的各个字段,可确定该报文对应的应用服务。例如,通过报文类型及报文目的地址等字段,确定该应用服务数据 对应的应用服务。
然后,得到预置的应用服务与用户态协议栈的对应关系。
如前分析的,为了提升应用服务的提供服务的性能,采取的方式是支持应用服务选择与其相适应的用户态协议栈,也就是,各个应用服务与一个或多个用户态协议栈存在对应关系。在报文分流处理器上,为了实现将应用服务数据报文分流到应用服务对应的用户态协议栈上,需要获知应用服务与用户态协议栈的对应关系。具体的,可以在报文分流处理器上的一个模块中保存并更新应用服务与用户态协议栈的对应关系信息,或者,在一个服务器上保存并更新应用服务与用户态协议栈的对应关系信息,报文分流处理器从该服务器上获取对应关系信息。保存的对应关系信息需要与实际对应关系同步,以确保其准确性。
最后,由于已知应用服务数据报文对应的应用服务以及应用服务与用户态协议栈的对应关系,即可确定出应用服务数据报文对应哪一个或哪一些用户态协议栈。
举例说明,假设报文分流处理器当前接收到应用服务数据报文,通过解析当前接收到的应用服务数据报文,确定出该应用服务数据报文对应的应用服务为应用服务i,同时,通过查找应用服务与用户态协议栈的对应关系信息,确定出应用服务i对应的用户态协议栈为用户态协议栈j,那么,确定当前应用服务数据报文对应用户态协议栈j。
在具体实现中,应用服务与用户态协议栈的对应关系可以是一一对应关系,即一个应用服务与一个用户态协议栈对应,还可以是一对多的对应关系,即,一个应用服务与多个用户态协议栈对应。
在应用服务与用户态协议栈一一对应关系的情况下,即设置与应用服务数量相等的用户态协议栈,例如,应用服务1对应用户态协议栈1,应用服务2对应用户态协议栈2,……,应用服务n对应用户态协议栈n。由于每个用户态协议栈都对应一个实例,因此可以理解,每个应用服务对应一个用户态协议栈的实例,这样,就可以通过分属于不同用户态协议栈的实例进行报文处理,从而避免资源互斥问题,提升应用服务性能。
在应用服务与用户态协议栈一对多对应关系的情况下,即每个应用服务可对应多个用户态协议栈(当然,上述描述是从应用服务角度出发,实际上,多个不同的应用服务可对应一个用户态协议栈),例如,应用服务1对应用户态协议栈1、用户态协议栈3、用户态协议栈5。由于每个用户态协议栈都对应一个实例,因此可以理解,每个应用服务对应多个用户态协议栈的多个实例,这样,就可以通过分属于不同用户态协议栈的各 个实例进行报文处理,从而避免资源互斥问题,提升应用服务性能。
S203:用户态协议栈的实例对接收到的应用服务数据报文进行处理,并将处理后的报文发送给用户态协议栈对应的应用服务。
如前描述的,用户态协议栈的实例是指运行用户态协议栈的线程或进程。以线程为例,它是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。当报文分流处理器将应用服务数据报文提交给用户态协议栈的实例后,该实例针对报文进行处理。用户态协议栈的实例对报文进行处理后,将报文发送给用户态协议栈对应的应用服务。
可见,由于在本说明书实施例中,每个实例对应一个用户态协议栈,从而当实例进行报文处理时,可基于不同用户态协议栈的资源进行报文处理,因此避免多个实例同属一个用户态协议栈而导致的资源互斥问题,异构能力得到增强,而且,由于各个实例分属于不同的用户态协议栈,因此支持应用服务选择与其相适应的用户态协议栈,从而提升应用服务的性能。
第二方面,请参考图3,为本说明书实施例提供的一种基于用户态协议栈的报文分流系统实例示意图。所述系统包括报文收发器、报文分流处理器、多个用户态协议栈以及一个或多个应用服务,其中,每个用户态协议栈对应一个实例。
报文收发器,用于接收和发送报文。
报文分流处理器,对报文进行分类,以确定出适应该报文类型的用户态协议栈,从而实现将各类报文分流到对应的用户态协议栈的实例。
用户态协议栈,具体包括多个用户态协议栈A、用户态协议栈B、……、用户态协议栈X,每个用户态协议栈与一个实例对应,各个实例表示为实例1、实例2、……、实例n。
应用服务,包括一个或多个应用服务,表示为应用服务i、应用服务j、……、应用服务k。每个应用服务对应一个或多个用户态协议栈,图3中,示例性示出了每个应用服务与多个用户态协议栈相对应的对应关系。在一种最简单的对应关系中,可以设置每一个应用服务与一个用户态协议栈相对应。
下面从报文收发器接收和发送报文两个方向,对本说明书实施例进行介绍。
1、报文接收方向
1.1报文收发器把收到的报文交给报文分流处理器。
1.2报文分流处理器会根据报文内容字段把其细分为应用服务数据报文和协议数据报文。其中,应用服务数据报文,即包含应用服务需要处理的数据的报文和对应连接的协议报文,而协议数据报文则指所有非应用服务数据报文。
1.3对于应用服务数据报文,报文分流处理器确定其对应的用户态协议栈。具体的,报文分流处理器用于从报文收发器接收应用服务数据报文,并从多个用户态协议栈中,确定应用服务数据报文对应的用户态协议栈,从而将应用服务数据报文发送到确定的用户态协议栈的实例上。
在一种实现方式中,通过如下步骤确定应用服务数据报文对应的用户态协议栈:对应用服务数据报文中的特定字段进行散列求值,并利用散列值得到用户态协议栈对应的映射号,确定出映射号对应的用户态协议栈。其中,映射号是预先设置的与具体某个应用服务对应的用户态协议栈的编号,由于通过解析应用服务数据报文的字段可获知其对应的特定应用服务,因此,通过上述方式确定出该特定应用服务对应的用户态协议栈的映射号,即可匹配出该应用服务数据报文对应于哪个用户态协议栈了。
其中,当预置的应用服务与用户态协议栈的对应关系为一一对应关系时,首先对应用服务数据报文中的IP五元组进行散列求值,然后利用该散列值得到与应用服务一一对应的用户态协议栈的映射号,最后确定出映射号对应的用户态协议栈。例如,首先会根据用户态协议栈数据报文中的IP五元组进行散列求值,然后用该散列值对用户态协议栈的实例个数取模以得到与协议栈的实例一一对应的映射号,最后根据映射号把应用服务数据报文交付给对应用户态协议栈的实例进行后续处理。
其中,当预置的应用服务与用户态协议栈的对应关系为一对多的对应关系时,首先对应用服务数据报文中的端口号(或其他字段)进行散列求值,然后利用该散列值得到与应用服务对应的多个用户态协议栈的多个映射号,最后确定出多个映射号对应的多个用户态协议栈。
需要说明的是,本说明书实施例对基于何种字段确定报文对应的用户态协议栈的映射号的方式不作限制,上述IP五元组及端口号的方式仅作示例给出,并不限于此两种方式。
1.4对于协议数据报文,为维持协议栈实例可运行的最小要求,报文分流处理器仅 需处理ARP(Address Resolution Protocol,地址解析协议)报文,即对于ARP请求报文,随机交给一个用户态协议栈的实例进行后续处理;对于ARP应答和免费ARP报文,则为每个用户态协议栈的实例复制一份该报文且修改复制报文的目的链路地址为广播地址,然后把这些复制报文逐个交给对应用户态协议栈的实例进行后续处理。
1.5用户态协议栈的实例无论收到何种报文分流处理器递交的报文,按其正常流程处理即可。例如,当接收到应用服务数据报文,用户态协议栈的实例对应用服务数据报文进行处理,并将处理后的报文发送给用户态协议栈对应的应用服务。
2.报文发送方向
2.1无论是应用服务通过用户态协议栈的实例发送的应用服务数据报文,还是用户态协议栈的实例自身产生的协议数据报文(如ARP报文),用户态协议栈的实例按其正常流程处理即可,并最终交给报文分流处理器。
2.2报文分流处理器收到来自用户态协议栈的实例的报文后,直接将其交给报文收发器即可。
2.3报文收发器收到来自报文分流处理器的报文后,进行报文发送。
第三方面,基于同一发明构思,本说明书实施例提供一种基于用户态协议栈的报文分流装置(可对应前述报文分流处理器或对应前述报文分流处理器的一部分),请参考图4,该装置包括:
报文接收单元401,用于从报文收发器接收应用服务数据报文;
报文分流控制单元402,用于从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上,其中,每个用户态协议栈对应一个实例。
在一种可选方式中,所述报文分流控制单元402具体用于:确定所述应用服务数据报文对应的应用服务,并根据预置的应用服务与用户态协议栈的对应关系,得到所述应用服务数据报文对应的用户态协议栈。
在一种可选方式中,所述报文分流控制单元402包括:
散列求值子单元4021,用于对所述应用服务数据报文中的特定字段进行散列求值;
映射号确定子单元4022,用于利用所述散列值得到用户态协议栈对应的映射号;
用户态协议栈确定子单元4023,用于确定出所述映射号对应的用户态协议栈。
在一种可选方式中,所述预置的应用服务与用户态协议栈的对应关系为一一对应关系;所述散列求值子单元4021,用于对所述应用服务数据报文中的特定字段进行散列求值。
在一种可选方式中,所述预置的应用服务与用户态协议栈的对应关系为一对多的对应关系;所述散列求值子单元4021,用于对所述应用服务数据报文中的端口号进行散列求值;所述映射号确定子单元4022,用于利用该散列值得到与应用服务对应的多个用户态协议栈的多个映射号;所述用户态协议栈确定子单元4023,用于确定出所述多个映射号对应的多个用户态协议栈。
在一种可选方式中,
所述报文接收单元401还用于:从报文收发器接收到ARP协议数据报文;
所述报文分流控制单元402还用于:将所述ARP请求报文随机提交给任一个用户态协议栈的实例进行处理;以及,针对ARP应答报文或免费ARP报文,为每个用户态协议栈的实例复制一份所述ARP应答报文或免费ARP报文,并将所复制报文的目的链路地址修改为广播地址。
第四方面,基于与前述实施例中基于用户态协议栈的报文分流方法同样的发明构思,本说明书实施例还提供一种服务器,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,所述处理器502执行所述程序时实现前文所述基于用户态协议栈的报文分流方法的任一方法的步骤。
其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口506在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。
第五方面,基于与前述实施例中基于用户态协议栈的报文分流方法的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于用户态协议栈的报文分流方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (20)

  1. 一种基于用户态协议栈的报文分流方法,所述方法包括:
    从报文收发器接收应用服务数据报文;
    从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上,其中,每个用户态协议栈对应一个实例;
    所述用户态协议栈的实例对接收到的应用服务数据报文进行处理,并将处理后的报文发送给所述用户态协议栈对应的应用服务。
  2. 根据权利要求1所述的方法,所述确定所述应用服务数据报文对应的用户态协议栈,包括:
    确定所述应用服务数据报文对应的应用服务,并根据预置的应用服务与用户态协议栈的对应关系,得到所述应用服务数据报文对应的用户态协议栈。
  3. 根据权利要求1所述的方法,所述确定所述应用服务数据报文对应的用户态协议栈,包括:
    对所述应用服务数据报文中的特定字段进行散列求值,并利用所述散列值得到用户态协议栈对应的映射号,确定出所述映射号对应的用户态协议栈。
  4. 根据权利要求3所述的方法,所述预置的应用服务与用户态协议栈的对应关系为一一对应关系;
    所述确定所述应用服务数据报文对应的用户态协议栈,包括:
    对所述应用服务数据报文中的IP五元组进行散列求值,并利用该散列值得到与应用服务一一对应的用户态协议栈的映射号,确定出所述映射号对应的用户态协议栈。
  5. 根据权利要求3所述的方法,所述预置的应用服务与用户态协议栈的对应关系为一对多的对应关系;
    所述确定所述应用服务数据报文对应的用户态协议栈,包括:
    对所述应用服务数据报文中的端口号进行散列求值,并利用该散列值得到与应用服务对应的多个用户态协议栈的多个映射号,确定出所述多个映射号对应的多个用户态协议栈。
  6. 根据权利要求1-5任一项所述的方法,还包括:
    从报文收发器接收到ARP协议数据报文;
    如果所述ARP协议数据报文为ARP请求报文,则将所述ARP请求报文随机提交给任一个用户态协议栈的实例进行处理;
    如果所述ARP协议数据报文为ARP应答报文或免费ARP报文,则为每个用户态协议栈的实例复制一份所述ARP应答报文或免费ARP报文,并将所复制报文的目的链路地址修改为广播地址。
  7. 根据权利要求1-5任一项所述的方法,还包括:
    应用服务将应用服务数据报文或协议数据报文发送至应用服务对应的一个或多个用户态协议栈的实例,用户态协议栈的实例对报文处理后,提供给报文收发器。
  8. 一种基于用户态协议栈的报文分流装置,所述装置包括:
    报文接收单元,用于从报文收发器接收应用服务数据报文;
    报文分流控制单元,用于从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上,其中,每个用户态协议栈对应一个实例。
  9. 根据权利要求8所述的装置,所述报文分流控制单元具体用于:确定所述应用服务数据报文对应的应用服务,并根据预置的应用服务与用户态协议栈的对应关系,得到所述应用服务数据报文对应的用户态协议栈。
  10. 根据权利要求8所述的装置,所述报文分流控制单元包括:
    散列求值子单元,用于对所述应用服务数据报文中的特定字段进行散列求值;
    映射号确定子单元,用于利用所述散列值得到用户态协议栈对应的映射号;
    用户态协议栈确定子单元,用于确定出所述映射号对应的用户态协议栈。
  11. 根据权利要求10所述的装置,所述预置的应用服务与用户态协议栈的对应关系为一一对应关系;所述散列求值子单元,用于对所述应用服务数据报文中的特定字段进行散列求值。
  12. 根据权利要求10所述的装置,所述预置的应用服务与用户态协议栈的对应关系为一对多的对应关系;所述散列求值子单元,用于对所述应用服务数据报文中的端口号进行散列求值;所述映射号确定子单元,用于利用该散列值得到与应用服务对应的多个用户态协议栈的多个映射号;所述用户态协议栈确定子单元,用于确定出所述多个映射号对应的多个用户态协议栈。
  13. 根据权利要求8-12任一项所述的装置,
    所述报文接收单元还用于:从报文收发器接收到ARP协议数据报文;
    所述报文分流控制单元,还用于将所述ARP请求报文随机提交给任一个用户态协议栈的实例进行处理;以及,针对ARP应答报文或免费ARP报文,为每个用户态协议栈的实例复制一份所述ARP应答报文或免费ARP报文,并将所复制报文的目的链路地 址修改为广播地址。
  14. 一种基于用户态协议栈的报文分流系统,所述系统包括:
    报文收发器、报文分流处理器、多个用户态协议栈以及一个或多个应用服务,其中,每个用户态协议栈对应一个实例;
    所述报文分流处理器,用于从报文收发器接收应用服务数据报文;并从多个用户态协议栈中,确定所述应用服务数据报文对应的用户态协议栈,从而将所述应用服务数据报文发送到确定的所述用户态协议栈的实例上;
    所述用户态协议栈的实例,对接收到的应用服务数据报文进行处理,并将处理后的报文发送给所述用户态协议栈对应的应用服务。
  15. 根据权利要求14所述的系统,所述报文分流处理器具体用于:确定所述应用服务数据报文对应的应用服务,并根据预置的应用服务与用户态协议栈的对应关系,得到所述应用服务数据报文对应的用户态协议栈。
  16. 根据权利要求14所述的系统,所述报文分流处理器具体用于:对所述应用服务数据报文中的特定字段进行散列求值,并利用所述散列值得到用户态协议栈对应的映射号,确定出所述映射号对应的用户态协议栈。
  17. 根据权利要求14-16任一项所述的系统,
    所述报文分流处理器还用于:从报文收发器接收到ARP协议数据报文;如果所述ARP协议数据报文为ARP请求报文,则控制将所述ARP请求报文随机提交给任一个用户态协议栈的实例进行处理;如果所述ARP协议数据报文为ARP应答报文或免费ARP报文,则控制为每个用户态协议栈的实例复制一份所述ARP应答报文或免费ARP报文,并将所复制报文的目的链路地址修改为广播地址。
  18. 根据权利要求14-16任一项所述的系统,
    所述应用服务用于,将应用服务数据报文或协议数据报文发送至应用服务对应的一个或多个用户态协议栈的实例;
    所述用户态协议栈的实例,对从应用服务接收的报文进行处理后,通过报文分流处理器提供给报文收发器。
  19. 一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
  20. 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
PCT/CN2020/072074 2019-05-06 2020-01-14 基于用户态协议栈的报文分流方法、装置及系统 WO2020224300A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/827,118 US10904719B2 (en) 2019-05-06 2020-03-23 Message shunting method, device and system based on user mode protocol stack

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910372260.4A CN110278161B (zh) 2019-05-06 2019-05-06 基于用户态协议栈的报文分流方法、装置及系统
CN201910372260.4 2019-05-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/827,118 Continuation US10904719B2 (en) 2019-05-06 2020-03-23 Message shunting method, device and system based on user mode protocol stack

Publications (1)

Publication Number Publication Date
WO2020224300A1 true WO2020224300A1 (zh) 2020-11-12

Family

ID=67960288

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/072074 WO2020224300A1 (zh) 2019-05-06 2020-01-14 基于用户态协议栈的报文分流方法、装置及系统

Country Status (2)

Country Link
CN (1) CN110278161B (zh)
WO (1) WO2020224300A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278161B (zh) * 2019-05-06 2020-08-11 阿里巴巴集团控股有限公司 基于用户态协议栈的报文分流方法、装置及系统
US10904719B2 (en) 2019-05-06 2021-01-26 Advanced New Technologies Co., Ltd. Message shunting method, device and system based on user mode protocol stack
CN112637329B (zh) * 2020-12-21 2022-08-23 网络通信与安全紫金山实验室 一种多应用程序的标识方法、装置、设备及存储介质
CN112968965B (zh) * 2021-02-25 2022-12-09 网宿科技股份有限公司 Nfv网络节点的元数据服务方法、服务器及存储介质
CN114143061B (zh) * 2021-11-25 2023-06-02 郑州信大信息技术研究院有限公司 基于用户态协议栈实现数据安全可靠传输的方法及系统
CN117097779B (zh) * 2023-10-16 2024-01-30 之江实验室 一种网络通信的方法、装置、存储介质及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142867A (zh) * 2013-05-09 2014-11-12 华为技术有限公司 数据处理装置及数据处理方法
WO2015113435A1 (zh) * 2014-01-29 2015-08-06 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
CN105245271A (zh) * 2015-10-27 2016-01-13 航天恒星科技有限公司 卫星通信网络加速装置以及方法
CN106850565A (zh) * 2016-12-29 2017-06-13 河北远东通信系统工程有限公司 一种高速的网络数据传输方法
CN108111558A (zh) * 2016-11-25 2018-06-01 中兴通讯股份有限公司 一种高速报文处理方法、装置及系统
CN109379303A (zh) * 2018-08-22 2019-02-22 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于提升万兆以太网性能的并行化处理框架系统和方法
CN110278161A (zh) * 2019-05-06 2019-09-24 阿里巴巴集团控股有限公司 基于用户态协议栈的报文分流方法、装置及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519718B2 (en) * 2004-02-27 2009-04-14 International Business Machines Corporation Server-side protocol configuration of accessing clients
CN101867558B (zh) * 2009-04-17 2012-11-14 深圳市永达电子股份有限公司 用户态网络协议栈系统及处理报文的方法
CN104951357B (zh) * 2014-03-28 2018-06-26 华为技术有限公司 并行用户态协议栈的管理方法和协议栈系统
US10356182B2 (en) * 2016-07-19 2019-07-16 Telefonaktiebolaget Lm Ericsson (Publ) Communication stack optimized per application without virtual machine overhead
CN108270813B (zh) * 2016-12-30 2021-02-12 华为技术有限公司 一种异构多协议栈方法、装置及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142867A (zh) * 2013-05-09 2014-11-12 华为技术有限公司 数据处理装置及数据处理方法
WO2015113435A1 (zh) * 2014-01-29 2015-08-06 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
CN105245271A (zh) * 2015-10-27 2016-01-13 航天恒星科技有限公司 卫星通信网络加速装置以及方法
CN108111558A (zh) * 2016-11-25 2018-06-01 中兴通讯股份有限公司 一种高速报文处理方法、装置及系统
CN106850565A (zh) * 2016-12-29 2017-06-13 河北远东通信系统工程有限公司 一种高速的网络数据传输方法
CN109379303A (zh) * 2018-08-22 2019-02-22 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于提升万兆以太网性能的并行化处理框架系统和方法
CN110278161A (zh) * 2019-05-06 2019-09-24 阿里巴巴集团控股有限公司 基于用户态协议栈的报文分流方法、装置及系统

Also Published As

Publication number Publication date
CN110278161B (zh) 2020-08-11
CN110278161A (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
WO2020224300A1 (zh) 基于用户态协议栈的报文分流方法、装置及系统
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US20160077872A1 (en) Data processing apparatus and data processing method
US9535871B2 (en) Dynamic routing through virtual appliances
US9454392B2 (en) Routing data packets between virtual machines using shared memory without copying the data packet
US9363172B2 (en) Managing a configurable routing scheme for virtual appliances
US11922304B2 (en) Remote artificial intelligence (AI) acceleration system
EP2321937B1 (en) Load balancing for services
CN112261094B (zh) 一种报文处理方法及代理服务器
WO2023005773A1 (zh) 基于远程直接数据存储的报文转发方法、装置、网卡及设备
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
US20150244574A1 (en) Offloading to a network interface card
US9680774B2 (en) Network interface card offloading
US20210359952A1 (en) Technologies for protocol-agnostic network packet segmentation
US9864856B2 (en) Efficient hardware trust verification in data communication systems that comprise network interface cards, central processing units, and data memory buffers
CN107094119A (zh) 一种基于云计算和sdn网络的负载均衡控制方法及系统
US10904719B2 (en) Message shunting method, device and system based on user mode protocol stack
US11561916B2 (en) Processing task deployment in adapter devices and accelerators
WO2023179786A1 (zh) 网络地址转换网关的扩容方法、设备及存储介质
US20200329090A1 (en) Method and network node for handling sctp packets
US20190324817A1 (en) Method, apparatus, and computer program product for optimization in distributed system
US20220291928A1 (en) Event controller in a device
US10142245B2 (en) Apparatus and method for parallel processing
US10439960B1 (en) Memory page request for optimizing memory page latency associated with network nodes
US20230153159A1 (en) Hardware Accelerator Service Aggregation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20802004

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20802004

Country of ref document: EP

Kind code of ref document: A1