CN113259274B - Method for processing network message out-of-order and load balancing in multi-core mode and storage medium - Google Patents

Method for processing network message out-of-order and load balancing in multi-core mode and storage medium Download PDF

Info

Publication number
CN113259274B
CN113259274B CN202110652934.3A CN202110652934A CN113259274B CN 113259274 B CN113259274 B CN 113259274B CN 202110652934 A CN202110652934 A CN 202110652934A CN 113259274 B CN113259274 B CN 113259274B
Authority
CN
China
Prior art keywords
network message
network
sequence number
sending
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110652934.3A
Other languages
Chinese (zh)
Other versions
CN113259274A (en
Inventor
叶柯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangshi Technology Co ltd
Original Assignee
Shenzhen Wangshi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Wangshi Technology Co ltd filed Critical Shenzhen Wangshi Technology Co ltd
Priority to CN202110652934.3A priority Critical patent/CN113259274B/en
Publication of CN113259274A publication Critical patent/CN113259274A/en
Application granted granted Critical
Publication of CN113259274B publication Critical patent/CN113259274B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

The invention discloses a method for processing network message disorder and load balance in a multi-core mode, which comprises the steps of establishing a sequence counting table based on a source MAC address SMAC of a received network message; the network message is provided from the hardware abstraction layer HAL to the network driver layer; after receiving the network message from the network driving layer, marking the receiving sequence number of the network message according to the same SMAC in sequence, and updating the receiving sequence number in the sequence counting table; placing the marked network message in a receiving queue; and the multi-core CPU or the multithread in the multi-core mode takes the network message from the receiving queue for processing according to the idle degree, and recovers the network message data stream according to the receiving sequence number of the network message of the same SMAC after the processing. The invention effectively solves the problem of poor performance caused by out-of-order solving when the multi-core system forwards the network flow, achieves the purpose of balancing the dynamic load of the forwarding message to a plurality of cores, and effectively improves the system throughput under the condition of ensuring no out-of-order.

Description

Method for processing network message out-of-order and load balancing in multi-core mode and storage medium
Technical Field
The present invention relates to network communication technology, and in particular, to a method and a storage medium for processing network packet out-of-order and load balancing in a multi-core mode.
Background
The currently existing network protocol stack is sensitive to the order in which network messages are received. When a network protocol stack receives a disorder message (a message sent later arrives first), the network protocol stack cannot distinguish whether a disorder event occurs or a message is lost, the network protocol stack can start a complex mechanism to process, the robustness and the stability of the network protocol stack are examined under the condition, the simple network protocol stack loses the message, and the robust protocol stack consumes more CPU performance.
The conventional way to solve this situation at present is rps (receive Packet fastening), which is a Linux kernel patch submitted by Tom Herbert, an engineer of Google, and the principle of the scheme is to solve the problem of disorder by distributing network packets of the same data stream (source port, source IP, destination port, destination IP, and protocol number) to the same CPU and processing the network packets of the same data stream by the same CPU. However, this solution does not perfectly solve the problem of load balancing of the respective CPUs (the load of each CPU depends on the number of network messages in the respective data stream), and an unbalanced situation occurs when a single CPU is fully loaded and other CPUs are idle while processing a unique data stream, which is especially obvious in a single test data stream (a data stream of one source and one destination address).
Disclosure of Invention
Aiming at the technical problem, the invention provides a method for processing network message disorder and load balancing in a multi-core mode, which solves the problem of poor performance caused by disorder resolution when a multi-core system forwards network traffic.
In order to achieve the purpose, the technical scheme adopted by the invention is as follows:
a method for processing network message disorder and load balance in a multi-core mode is used for a network message receiving end and comprises the following steps:
r100, establishing a sequence counting table based on a source MAC address SMAC of the received network message;
r200, the network message is provided to a network driving layer from a hardware abstraction layer HAL;
r300, after receiving the network message from the network driving layer, marking the receiving sequence number of the network message according to the same SMAC in sequence, and updating the receiving sequence number in the sequence counting table;
r400, placing the marked network message in a receiving queue;
r500, taking the network message from the receiving queue for processing according to the idle degree by the multi-core CPU or the multithread in the multi-core mode, and recovering the network message data stream according to the receiving sequence number of the network message of the same SMAC after processing.
Specifically, in step R300, after receiving the network packet, the SMAC extracting the network packet is queried in the sequence count table,
if the SMAC record exists, the network message is marked by using the receiving serial number currently corresponding to the SMAC, and the receiving serial number of the SMAC is accumulated by one in a sequence counting table after marking,
if the SMAC record does not exist, establishing a table entry of the SMAC in a sequence count table, and marking and counting the network message of the SMAC from the initial receiving sequence number.
Specifically, in step R500, the CPU or the thread with the highest idleness preferentially takes the network packet out of the receive queue.
The invention also provides a method for processing network message disorder and load balance in a multi-core mode, which is used for a network message sending end and comprises the following steps:
s100, establishing a sequence counting table of a target MAC address DMAC based on the transmitted network message;
s200, before a multi-core CPU or a multi-thread processing network message data stream to be sent, marking a sending sequence number for each network message to be sent according to the same DMAC in sequence;
s300, the multi-core CPU or the multiple threads take the network message marked with the sending sequence number according to the idle degree to process;
s400, judging whether the processed network message is matched with the current sending sequence number of the same DMAC (dimethylacetamide) recorded in the sequence counting table according to the marked sending sequence number, if so, directly sending the network message through a network driving layer and a hardware abstraction layer HAL (hardware abstraction layer), updating the sending sequence number in the sequence counting table, and if not, temporarily storing the network message in a sending cache;
s500, after the current network message is sent, whether a network message which is the same as the DMAC of the sent network message and is matched with the current sending sequence number exists in a sending cache is checked, if yes, the network message is sent through a network driving layer and a hardware abstraction layer HAL, the sending sequence number is updated in a sequence counting table, then the step S400 is skipped to carry out sending judgment on the next network message, and if not, the step S400 is directly skipped to carry out sending judgment on the next network message.
Specifically, in step S300, the CPU or the thread with the highest idleness preferentially takes the network packet marked with the sending sequence number for processing.
Specifically, in step S400, the sending cache stores the network packets that are not sent temporarily after the processing according to the same DMAC partition;
in step S500, the sending sequence number of each network packet tag is checked according to the DMAC partition when the sending cache is checked.
Specifically, in step S400, the DMAC extracting the network packet queries the sequence count table, and if no corresponding entry is found, exception handling is performed.
Furthermore, the present invention also provides a computer readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the computer program implements the steps of the method for processing network packet out-of-order and load balancing in the multi-core mode.
Compared with the prior art, the invention has the following beneficial effects:
(1) the invention adopts the mode of marking network messages at the receiving end and carrying out cache sequencing at the transmitting end, cancels the mode of distributing different CPUs to different data streams by the RPS, not only controls disorder at the receiving end, but also controls at the receiving end and the transmitting end simultaneously.
(2) The invention effectively solves the problem of poor performance caused by disorder when the multi-core system forwards the network flow, achieves the purpose of carrying out dynamic load balancing on the forwarding message to a plurality of cores, can still simultaneously use a plurality of cores to process message forwarding under the condition of ensuring no disorder even in the message data flow of single and fixed source and destination addresses (one source and one destination address), and effectively improves the system throughput.
Drawings
Fig. 1 is a flow chart of a receiving end in an embodiment of the present invention.
Fig. 2 is a flowchart of a transmitting end in an embodiment of the present invention.
FIG. 3 is a schematic diagram of an interaction flow according to an embodiment of the present invention.
Detailed Description
The present invention is further illustrated by the following figures and examples, which include, but are not limited to, the following examples.
Example 1
As shown in fig. 1, the method for processing network packet out-of-order and load balancing in a multi-core mode according to this embodiment is used at a network packet receiving end, and includes the following steps:
r100, establishing a sequence count table based on a source MAC address SMAC of the received network packet, where a data structure of the sequence count table may be as shown in table 1 below:
SMAC receiving sequence number counter
XX:XX:XX:XX:XX:XA 2
XX:XX:XX:XX:XX:XB 4
XX:XX:XX:XX:XX:XC 0
Table 1 data structure of the sequence count table.
R200, the network message is provided to the network driving layer from the hardware abstraction layer HAL, in the concrete implementation process, the step checks and judges whether the network message to be received at the network driving layer is available, if yes, the next step is continued, otherwise, the checking process is repeatedly executed.
R300, after receiving the network message from the network driving layer, marking the receiving sequence number of the network message according to the same SMAC in sequence, and updating the receiving sequence number in the sequence counting table, which is as follows:
after receiving the network message, extracting the SMAC of the network message and inquiring in a sequence counting table (such as the table 1);
if the SMAC record exists, marking the network message by using the receiving serial number corresponding to the SMAC currently, and accumulating one receiving serial number of the SMAC in a sequence counting table after marking, for example, if the current receiving serial number of the table item of 'XX: XX: XX: XX: XA' in the table 1 is counted to be 2, marking the receiving serial number of the network message as 2, and updating the receiving serial number of the table item to be 3 after marking;
if the SMAC record does not exist, newly creating an entry of the SMAC in a sequence count table, such as the 'XX: XX: XX: XX: XX: XC' entry in the table 1, marking the network message of the SMAC from the initial receiving sequence number 0, and updating the receiving sequence number count of the entry to 1 after marking.
And R400, placing the marked network message in a receiving queue.
R500, selecting the CPU or thread with the highest idle degree according to the idle degree by the multi-core CPU or the multi-thread in the multi-core mode, preferentially taking the network message from the receiving queue for processing, and recovering the network message data stream according to the receiving sequence number of the network message of the same SMAC after processing.
Through the process, no matter what sequence and mode the multi-core CPU or the multithread processes each network message, the final network message data stream can be restored according to the receiving sequence number marked in advance, and the load of the multi-core CPU is effectively balanced on the basis of ensuring that the receiving disorder is not generated.
Example 2
As shown in fig. 2, the method for processing network message out-of-order and load balancing in a multi-core mode according to this embodiment is used for a network message sending end, and includes the following steps:
s100, establishing a sequence count table of a target MAC address DMAC based on the transmitted network message, wherein the data structure of the sequence count table can be as shown in the following table 2:
DMAC sending sequence number counter Message buffer queue head
XX:XX:XX:XX:XX:XD 1
XX:XX:XX:XX:XX:XE 3 5
XX:XX:XX:XX:XX:XF 2 3
Table 2 data structure of the sequence count table.
S200, before the multi-core CPU or the multi-thread processing of the network message data stream to be sent, marking a sending sequence number for each network message to be sent according to the same DMAC in sequence.
S300, the multi-core CPU or the multi-thread preferentially takes the network message marked with the sending sequence number for processing according to the CPU or the thread with the highest idle degree.
S400, for the processed network message, extracting the DMAC of the network message, inquiring in a sequence count table (such as the table 2), and if the corresponding table entry is not found, performing exception handling, wherein the exception handling can adopt the conventional technology, and is not described in detail in the embodiment; if the corresponding table entry is found, judging whether the transmission sequence number marked by the table entry is consistent with the current transmission sequence number of the same DMAC recorded in the sequence count table,
if the network message is matched with the network message, the network message is directly sent through a network driving layer and a hardware abstraction layer HAL, and a sending sequence number is updated in a sequence counting table, for example, the current sending sequence number of the table entry of 'XX: XX: XX: XX: XD' in the table 2 is 1, and the sending sequence number marked on the network message is also 1, the network message can be directly sent, and after the network message is sent, the current sending sequence number corresponding to the table entry of 'XX: XX: XX: XX: XX: XD' in the table 2 is updated to be 2;
if not, the network packet is temporarily stored in a sending cache, for example, the current sending sequence number of the "XX: XF" entry in the table 2 is 2, and the sending sequence number marked on the network packet is 3, the network packet is temporarily stored in the sending cache, and meanwhile, a "cache queue head" entry may also be added in the table 2 to record the minimum sending sequence number in the sending cache, for example, the sending sequence number of the network packet temporarily stored in the sending cache is recorded in the "cache queue head" entry corresponding to the "XX: XF" entry.
S500, after the current network message is sent, checking whether a network message which is the same as the DMAC of the sent network message and is matched with the current sending sequence number exists in the sending cache, comparing the content of the 'cache queue head' table entry corresponding to the DMAC with the content of the current sending sequence number at the moment, judging whether the contents are consistent,
if so, the network packet is sent through the network driver layer and the hardware abstraction layer HAL, and the sending sequence number and the cache sequence number shown by the "cache queue head" entry are updated in the sequence count table, for example, the network packet sent in step 400 is a network packet with DMAC XX: XF and the sending sequence number 2, after the network packet is sent, the current sending sequence number corresponding to the "XX: XF" entry is updated to 3, the content of the "cache queue head" entry is also 3 when the sending cache is checked, and the current sending sequence number is updated to 4, and the number 3 in the content of the cache queue head entry is deleted, if other network packets (for example, the sending sequence numbers 6 and 8) with DMAC XX: XF also exist in the sending cache, then the content of the head table entry of the cache queue can be updated to the number 6 with the minimum sending sequence number; then, step S400 is skipped to determine the next network packet.
If not, directly skipping to the step S400 to send and judge the next network message.
In addition, the recording mode and the checking mode of the sending buffer can be realized as follows: in the step S400, the transmission cache stores the network packets which are not transmitted temporarily after the processing according to the same DMAC partition; in step S500, the sending sequence number of each network packet tag is checked according to the DMAC partition when the sending cache is checked.
Through the process, the network message data flow is marked in advance, so that the multi-core CPU or the multithread can process each network message in any sequence and mode, each network message can be sent according to the data flow sequence during sending, and the load of the multi-core CPU is effectively balanced on the basis of ensuring that sending disorder is not generated.
Example 3
As shown in fig. 3, this embodiment provides a method for processing network packet out-of-order and load balancing in a multi-core mode based on interaction between a receiving end and a transmitting end, where one sequence count table may be shared according to requirements, and a data structure of the sequence count table is shown in table 3:
SDMAC receiving sequence number counter Sending sequence number counter Message buffer queue head
XX:XX:XX:XX:XX:XX 1 0
Table 3 data structure of the sequence count table.
And the sending sequence number and the receiving sequence number can share a set of counting scheme, so that the program design can be simplified and the application function can be better matched for the equipment which mainly realizes data forwarding, such as a router and an exchanger.
The steps R300 to R500 in embodiment 1 may be performed during the reception process, and the steps S300 to S500 in embodiment 2 may be performed during the transmission process.
Example 4
The present embodiment provides a computer-readable storage medium, on which a computer program is stored, where the computer program, when executed by a processor, implements the steps of the method for processing network message out-of-order and load balancing in the multi-core mode.
In the computer-readable storage medium provided in this embodiment, the computer program stored thereon is not limited to the above method steps, and may also perform operations related to the method for processing network packet out-of-order and load balancing in the multi-core mode provided in any embodiment of the present application.
The computer storage media of the embodiments of the present application may take any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or FLASH FLASH), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, or the like, as well as conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
By testing the scheme, the advantages of no disorder of network messages and full load balancing of the multi-core CPU can be realized no matter in a common environment or an extreme environment (only a single data stream).
The above embodiments are only preferred embodiments of the present invention, and are not intended to limit the scope of the present invention, but all changes that can be made by applying the principles of the present invention and performing non-inventive work on the basis of the principles shall fall within the scope of the present invention.

Claims (8)

1. A method for processing network message disorder and load balance under a multi-core mode is characterized by comprising the following steps:
r100, establishing a sequence counting table based on a source MAC address SMAC of the received network message;
r200, the network message is provided to a network driving layer from a hardware abstraction layer HAL;
r300, after receiving the network message from the network driving layer, marking the receiving sequence number of the network message according to the same SMAC in sequence, and updating the receiving sequence number in the sequence counting table;
r400, placing the marked network message in a receiving queue;
r500, taking the network message from the receiving queue for processing according to the idle degree by the multi-core CPU or the multithread in the multi-core mode, and recovering the network message data stream according to the receiving sequence number of the network message of the same SMAC after processing.
2. The method according to claim 1, wherein in step R300, after receiving the network packet, the SMACs for extracting the network packet are looked up in the sequence count table,
if the SMAC record exists, the network message is marked by using the receiving serial number currently corresponding to the SMAC, and the receiving serial number of the SMAC is accumulated by one in a sequence counting table after marking,
if the SMAC record does not exist, establishing a table entry of the SMAC in a sequence count table, and marking and counting the network message of the SMAC from the initial receiving sequence number.
3. The method according to claim 2, wherein in step R500, the CPU or thread with the highest idleness preferentially takes the network packet out of the receive queue.
4. A method for processing network message disorder and load balance under a multi-core mode is characterized by comprising the following steps:
s100, establishing a sequence counting table of a target MAC address DMAC based on the transmitted network message;
s200, before a multi-core CPU or a multi-thread processing network message data stream to be sent, marking a sending sequence number for each network message to be sent according to the same DMAC in sequence;
s300, the multi-core CPU or the multiple threads take the network message marked with the sending sequence number according to the idle degree to process;
s400, judging whether the processed network message is matched with the current sending sequence number of the same DMAC (dimethylacetamide) recorded in the sequence counting table according to the marked sending sequence number, if so, directly sending the network message through a network driving layer and a hardware abstraction layer HAL (hardware abstraction layer), updating the sending sequence number in the sequence counting table, and if not, temporarily storing the network message in a sending cache;
s500, after the current network message is sent, whether a network message which is the same as the DMAC of the sent network message and is matched with the current sending sequence number exists in a sending cache is checked, if yes, the network message is sent through a network driving layer and a hardware abstraction layer HAL, the sending sequence number is updated in a sequence counting table, then the step S400 is skipped to carry out sending judgment on the next network message, and if not, the step S400 is directly skipped to carry out sending judgment on the next network message.
5. The method according to claim 4, wherein in step S300, the CPU or thread with the highest idleness preferentially takes away the network packet marked with the sending sequence number for processing.
6. The method according to claim 4, wherein in step S400, the sending buffer stores the network packets that are not sent after processing according to the same DMAC partition;
in step S500, the sending sequence number of each network packet tag is checked according to the DMAC partition when the sending cache is checked.
7. The method according to claim 4, wherein in step S400, the DMAC that extracts the network packet queries a sequence count table, and if no corresponding entry is found, performs exception handling.
8. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method according to any one of claims 1 to 7.
CN202110652934.3A 2021-06-11 2021-06-11 Method for processing network message out-of-order and load balancing in multi-core mode and storage medium Active CN113259274B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110652934.3A CN113259274B (en) 2021-06-11 2021-06-11 Method for processing network message out-of-order and load balancing in multi-core mode and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110652934.3A CN113259274B (en) 2021-06-11 2021-06-11 Method for processing network message out-of-order and load balancing in multi-core mode and storage medium

Publications (2)

Publication Number Publication Date
CN113259274A CN113259274A (en) 2021-08-13
CN113259274B true CN113259274B (en) 2022-05-31

Family

ID=77187639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110652934.3A Active CN113259274B (en) 2021-06-11 2021-06-11 Method for processing network message out-of-order and load balancing in multi-core mode and storage medium

Country Status (1)

Country Link
CN (1) CN113259274B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117478615B (en) * 2023-12-28 2024-02-27 贵州大学 Reliable transmission method in deterministic network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101175033A (en) * 2007-11-27 2008-05-07 中兴通讯股份有限公司 Message order-preserving method and device thereof
CN101291194A (en) * 2008-05-20 2008-10-22 华为技术有限公司 Method and system for keeping sequence of report
CN102868635A (en) * 2012-08-24 2013-01-09 汉柏科技有限公司 Multi-core and multi-thread method and system for preserving order of messages

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2176773B1 (en) * 2007-07-09 2015-09-02 Hewlett-Packard Development Company, L. P. Data packet processing method for a multi core processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101175033A (en) * 2007-11-27 2008-05-07 中兴通讯股份有限公司 Message order-preserving method and device thereof
CN101291194A (en) * 2008-05-20 2008-10-22 华为技术有限公司 Method and system for keeping sequence of report
CN102868635A (en) * 2012-08-24 2013-01-09 汉柏科技有限公司 Multi-core and multi-thread method and system for preserving order of messages

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨惠等.面向多核网络分组处理系统的线程亲和缓冲区管理机制.《国防科技大学学报》.2016,(第05期), *

Also Published As

Publication number Publication date
CN113259274A (en) 2021-08-13

Similar Documents

Publication Publication Date Title
US20220214919A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
US10305813B2 (en) Socket management with reduced latency packet processing
US6735647B2 (en) Data reordering mechanism for high performance networks
EP2406723B1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
US9069722B2 (en) NUMA-aware scaling for network devices
US7702796B2 (en) Recovering a pool of connections
US11023411B2 (en) Programmed input/output mode
US8588228B1 (en) Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner
US20090083392A1 (en) Simple, efficient rdma mechanism
US20060010254A1 (en) Dynamic network interface
US7457845B2 (en) Method and system for TCP/IP using generic buffers for non-posting TCP applications
CN111949568A (en) Message processing method and device and network chip
CN113259274B (en) Method for processing network message out-of-order and load balancing in multi-core mode and storage medium
KR20150077288A (en) A look-aside processor unit with internal and external access for multicore processors
US7466716B2 (en) Reducing latency in a channel adapter by accelerated I/O control block processing
US8351426B2 (en) Ethernet virtualization using assisted frame correction
CN100486248C (en) Zero-copy communication method under real-time environment
US8478877B2 (en) Architecture-aware allocation of network buffers
CN109474525B (en) Message processing method, device, equipment and readable storage medium
US8559430B2 (en) Network connection device, switching circuit device, and method for learning address
CN109861967A (en) Remote direct memory based on Spark Shuffle accesses system
US20050078605A1 (en) Managing message arrival to ensure proper matching of unordered messages
US20120331172A1 (en) Method And System For Improved Performance Of Network Communications With Interface Specific Buffers
US20100309909A1 (en) Communication apparatus, control method for communication apparatus, and computer program
CN113176940A (en) Data flow splitting method and device and network equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 337000, Floor 1, Building 6, Tongjiu Road, Pingxiang Economic and Technological Development Zone, Pingxiang City, Jiangxi Province

Patentee after: Wangshi Technology Co.,Ltd.

Address before: Room 801, building B, Tongfang information port, No. 11, Langshan Road, songpingshan community, Xili street, Nanshan District, Shenzhen, Guangdong 518000

Patentee before: SHENZHEN WANGSHI TECHNOLOGY Co.,Ltd.