Data message transmission method and device, equipment, storage medium and program product

The data packet replication method in SD-WAN networks uses Replication tunnels with UDP encapsulation to enhance reliability by ensuring multiple paths for packet delivery, addressing data loss in complex networks.

CN120321180APending Publication Date: 2025-07-15CHINA TELECOM CLOUD TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510703967.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-29
Publication Date
2025-07-15

AI Technical Summary

Technical Problem

Due to the complex network architecture and long transmission distance, SD-WAN wide area network is prone to data congestion, resulting in packet loss, affecting the reliability of data transmission.

Method used

Through multiple transmission, selection and collection tunnel technology, candidate messages to be sent are determined, and the number of tunnel interfaces is copied and processed. The data messages are encapsulated according to the target protocol and sent through multiple interfaces. The Replication tunnel is used to transmit key service data in complex networks to avoid the full amount of data passing through the same network, and the UDP protocol is encapsulated to prevent identification and discarding.

Benefits of technology

It reduces the probability of data packet loss and improves the reliability and efficiency of data transmission, especially in complex network environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120321180A_ABST
    Figure CN120321180A_ABST
Patent Text Reader

Abstract

The invention relates to a data message transmission method and device, equipment, a storage medium and a program product. The method comprises the following steps: firstly, determining a first candidate message to be sent through a multi-sending selective receiving tunnel, then copying the first candidate message according to the number of interfaces of the multi-sending selective receiving tunnel to obtain at least one first target message, and packaging the at least one first target message according to a target protocol to obtain a second candidate message; and sending the at least one first target message after packaging processing through a multi-sending selective-receiving tunnel. By adopting the method, the probability of packet loss of the first target message can be reduced, and the reliability of data transmission is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication transmission technologies, and particularly to a data packet transmission method, apparatus, device, storage medium, and program product. Background Art

[0002] With the rapid development of enterprise networks, more and more enterprises choose to use SD-WAN (Software Defined Wide Area Network) technology to build a flexible, efficient, and cost-effective wide area network. SD-WAN technology can achieve intelligent routing selection and traffic management, enabling efficient communication between enterprise branches and headquarters through the public Internet or a dedicated wide area network. In the SD-WAN deployment scenario, VPP (Vector Packet Processing) can be deployed as the gateway device of SD-WAN in enterprise branches and interconnected with the enterprise headquarters through the wide area network via VPN (Virtual Private Network).

[0003] However, currently, due to the complex network architecture and long transmission distance of SD-WAN wide area networks, data congestion is likely to occur, resulting in packet loss of transmitted data packets, which affects the reliability of data transmission. Summary of the Invention

[0004] Based on this, it is necessary to provide a data packet transmission method, apparatus, device, storage medium, and program product that can improve the reliability of data transmission for the above technical problems.

[0005] In a first aspect, the present application provides a data packet transmission method, including:

[0006] Determine a first candidate packet to be sent through a multi-path selection and reception tunnel;

[0007] Perform replication processing on the first candidate packet according to the number of interfaces of the multi-path selection and reception tunnel to obtain at least one first target packet;

[0008] Encapsulate at least one first target packet according to the target protocol, and send the encapsulated at least one first target packet through the multi-path selection and reception tunnel.

[0009] In one embodiment, before determining the first candidate packet to be sent through the multi-path selection and reception tunnel, the method further includes:

[0010] Obtain configuration information, where the configuration information includes multi-path selection and reception tunnel configuration information, multi-path selection and reception link group configuration information, and routing rule configuration information;

[0011] Create a multi-transmit multi-receive tunnel according to the multi-transmit multi-receive tunnel configuration information;

[0012] Create a multi-transmit multi-receive link group according to the multi-transmit multi-receive link group configuration information;

[0013] Configure routing rules according to the routing rule configuration information.

[0014] In one embodiment, determining a first candidate message to be sent through the multi-transmit multi-receive tunnel includes:

[0015] Determine the messages that meet the routing rules in the message buffer as the first candidate messages.

[0016] In one embodiment, the method further includes:

[0017] Receive a second target message sent through the multi-transmit multi-receive tunnel;

[0018] Obtain the message header information of the second target message, where the message header information includes a multi-transmit multi-receive link group identifier, a message sequence number, and a keyword;

[0019] Screen the second target message according to the multi-transmit multi-receive link group identifier and the keyword to determine a second candidate message to be processed;

[0020] Compare the sequence number of the second candidate message with the expected sequence number, and process the second candidate message according to the comparison result.

[0021] In one embodiment, comparing the sequence number of the second candidate message with the expected sequence number and processing the second candidate message according to the comparison result includes:

[0022] If the sequence number of the second candidate message is less than the expected sequence number, discard the second candidate message;

[0023] If the sequence number of the second candidate message is greater than the expected sequence number and within a preset time range, add the second candidate message to the message buffer queue;

[0024] If the sequence number of the second candidate message is equal to the expected sequence number and within a preset time range, forward the second candidate message and modify the expected sequence number.

[0025] In one embodiment, the method further includes:

[0026] If the preset time range is exceeded or the length of the message buffer queue exceeds the preset length threshold, forward the messages in the message buffer queue and modify the expected sequence number.

[0027] In a second aspect, the present application further provides a data message transmission device, including:

[0028] A determination module, configured to determine a first candidate message to be sent through a multi - send - multi - receive tunnel;

[0029] A replication module, configured to perform replication processing on the first candidate message according to the number of interfaces of the multi - send - multi - receive tunnel to obtain at least one first target message;

[0030] An encapsulation module, configured to perform encapsulation processing on at least one first target message according to a target protocol, and send the at least one first target message after encapsulation processing through the multi - send - multi - receive tunnel.

[0031] In a third aspect, the present application further provides a computer device, including a memory and a processor, where the memory stores a computer program, and when the processor executes the computer program, the steps of the data message transmission method described in any item of the first aspect above are implemented.

[0032] In a fourth aspect, the present application further provides a computer - readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the data message transmission method described in any item of the first aspect above are implemented.

[0033] In a fifth aspect, the present application further provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of the data message transmission method described in any item of the first aspect above are implemented.

[0034] For the data message transmission method, apparatus, device, storage medium, and program product described above, first, a first candidate message to be sent through a multi - send - multi - receive tunnel is determined, and then, replication processing is performed on the first candidate message according to the number of interfaces of the multi - send - multi - receive tunnel to obtain at least one first target message. The at least one first target message is subjected to encapsulation processing according to a target protocol, and the at least one first target message after encapsulation processing is sent through the multi - send - multi - receive tunnel. In this way, during the data message transmission process, after encapsulating at least one first target message according to the target protocol, it is sent through multiple interfaces in the multi - send - multi - receive tunnel, reducing the probability of packet loss of the first target message and improving the reliability of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required to be used in the description of the embodiments of the present application or related technologies. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other related drawings can also be obtained based on these drawings.

[0036] Figure 1 It is an application environment diagram of the data message transmission method in an embodiment;

[0037] Figure 2 is a schematic flowchart of a data packet transmission method in an embodiment;

[0038] Figure 3 is a schematic diagram of the encapsulation format of a Replication packet in an embodiment;

[0039] Figure 4 is a schematic diagram of the format of a Replication header in an embodiment;

[0040] Figure 5 is a schematic flowchart of a data packet transmission method in another embodiment;

[0041] Figure 6 is a schematic diagram of the networking configuration of a multi - send and select - receive tunnel interface and link group in an embodiment;

[0042] Figure 7 is a schematic flowchart of a data packet transmission method in another embodiment;

[0043] Figure 8 is a schematic flowchart of a data packet transmission method in another embodiment;

[0044] Figure 9 is a system architecture diagram of a data packet transmission system in an embodiment;

[0045] Figure 10 is a schematic flowchart of the processing flow of multi - send and select - receive function service forwarding in an embodiment;

[0046] Figure 11 is a schematic flowchart of the processing flow of a multi - send and select - receive decapsulation module in an embodiment;

[0047] Figure 12 is a schematic diagram of the storage structure of a multi - send and select - receive decoded packet buffer in an embodiment;

[0048] Figure 13 is a schematic flowchart of the processing flow of a multi - send and select - receive decapsulation module in an embodiment;

[0049] Figure 14 is a structural block diagram of a data packet transmission device in an embodiment;

[0050] Figure 15 is an internal structure diagram of a computer device in an embodiment. Detailed implementation manners

[0051] In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely used to explain the present application and are not used to limit the present application.

[0052] The data packet transmission method provided by the embodiment of the present application can be applied to an application environment as Figure 1 shown. Among them, in the wide area network composed of SD-WAN, multiple VPP network elements 102 communicate with each other through the network. The VPP network element 102 can run on an independent physical server, or on a server cluster or distributed system composed of multiple physical servers, or can also be a cloud server providing cloud computing services.

[0053] In an exemplary embodiment, the present application provides a data packet transmission method, taking any one of the VPP network elements in Figure 1 as an example for illustration. As Figure 2 shown, it includes:

[0054] Step 201, determine a first candidate packet to be sent through a multi-send multi-receive tunnel.

[0055] Among them, the multi-send multi-receive tunnels currently applied in VPP include GRE tunnels (Generic Routing Encapsulation). In order to improve the flexibility of processing multi-send multi-receive services, the present application also proposes a Replication tunnel. By creating a virtual point-to-point connection in the network, it allows encapsulating the data packets of another network in one network, so as to be transmitted through the intermediate network. After the packet enters the Replication tunnel, a copy will be made and sent out from other exits, thus realizing the multi-send function.

[0056] The first candidate packet can be a data packet of a key service screened and determined from the received data packets according to the policy pre-set by the user. Sending the data packets of the key service through the multi-send multi-receive tunnel improves the reliability of the data packet transmission of the key service. At the same time, it avoids using more network bandwidth when all data packets are sent through the multi-send multi-receive tunnel.

[0057] Step 202, perform replication processing on the first candidate packet according to the number of interfaces of the multi-send multi-receive tunnel to obtain at least one first target packet.

[0058] Optionally, the multi - send and multi - receive tunnel may include multiple interfaces. By sending the first candidate message through the multiple interfaces, multi - sending of the first candidate message is achieved. The first candidate message is replicated according to the number of interfaces of the multi - send and multi - receive tunnel to obtain at least one first target message, and the number of the first target messages is the same as the number of interfaces of the multi - send and multi - receive tunnel.

[0059] Step 203: Encapsulate at least one first target message according to the target protocol, and send the encapsulated at least one first target message through the multi - send and multi - receive tunnel.

[0060] Among them, the target protocol defines a Replication protocol for the Replication tunnel. By encapsulating the first target message through the target protocol, the transmission of the first target message in different networks is achieved. To prevent the Replication protocol from being discarded because it cannot be recognized by the security in the network, the UDP (User Datagram Protocol) protocol can be used to encapsulate and carry the Replication message, and the Replication message is identified through a custom port number.

[0061] Optionally, the encapsulation format of the Replication message can be as Figure 3 shown. Among them, ip hdr is the IP message header, udphdr is the UDP message header, and replication hdr is the Replication message header. ip hdr and data are the original messages. The format of the Replication message header is as Figure 4 shown. The descriptions of each field of the Replication message header are as follows.

[0062] C is used for the check - sum verification bit, with a length of 1 bit. If this bit is set to 1, it means that a check - sum (CheckSum) field is inserted into the Replication header. If this bit is 0, it means that the check - sum field is not included. K is the keyword bit, with a length of 1 bit. If this bit is set to 1, it means that a keyword field (Key) is inserted into the Replication header; if this bit is 0, it means that the keyword field is not included. Link num is the link number, which is used to represent from which member port of the multi - send routing link group, that is, the interface, the current message is sent. Pathgroup - ID is the link group ID, which is used to represent the ID of the multi - send and multi - receive link group where the current message is sent. Sequence num is the sequence number of the current message in the multi - send and multi - receive link group, and it needs to be filled in strictly according to the order during encoding, otherwise it will affect Replication decoding. Checksum is the check - sum field of the Replication header and the payload. Key is the keyword field, which is used for the receiving end of the Replication tunnel to verify the received message.

[0063] In the above embodiments, first, a first candidate message to be sent through a multi-send multi-receive tunnel is determined. Then, the first candidate message is copied according to the number of interfaces of the multi-send multi-receive tunnel to obtain at least one first target message. The at least one first target message is encapsulated according to the target protocol, and the encapsulated at least one first target message is sent through the multi-send multi-receive tunnel. In this way, during the transmission of data messages, after encapsulating at least one first target message according to the target protocol, it is sent through multiple interfaces in the multi-send multi-receive tunnel, reducing the probability of packet loss of the first target message and improving the reliability of data transmission.

[0064] In an embodiment of the present application, in order to implement multi-send multi-receive of data messages, as Figure 5 shown, the method further includes:

[0065] Step 501, obtain configuration information.

[0066] Among them, the configuration information includes multi-send multi-receive tunnel configuration information, multi-send multi-receive link group configuration information, and routing rule configuration information. The configuration information can be sent by the user through the command line configuration program interface, or can be sent by the user through the network.

[0067] Step 502, create a multi-send multi-receive tunnel according to the multi-send multi-receive tunnel configuration information.

[0068] The multi-send multi-receive tunnel configuration information is used for creating the multi-send multi-receive tunnel, and the multi-send multi-receive tunnel can be created according to the interfaces of the sending end and the receiving end of the data packet. For example, as Figure 6 shown, based on wan1 of device 1 and wan of device 2, and wan2 of device 1 and the wan port of device 2, 2 replication tunnels are respectively created, such as Figure 6 replication_tunnel1 and replication_tunnel2 in it.

[0069] Step 503, create a multi-send multi-receive link group according to the multi-send multi-receive link group configuration information.

[0070] Optionally, the device may include multiple multi-send multi-receive link groups, and different multi-send multi-receive link groups can be used to process different services. According to the user's multi-send multi-receive link group configuration information, at least one multi-send multi-receive link group is created, and the created replication tunnel is added to the specified multi-send multi-receive link group. As Figure 4 shown: create a replication link group, and then add the replication tunnels replication_tunnel1 and replication_tunnel2 to the link group.

[0071] Step 504: Configure routing rules according to the routing rule configuration information.

[0072] Among them, in order to prioritize the processing of critical services, routing rules are configured to identify and prioritize the processing of users' critical services, and then the critical service traffic is sent through the multi-send and multi-receive link group to ensure that each data packet can be copied and sent out from multiple interfaces within the multi-send and multi-receive link group. The routing rules can be determined according to the routing rule configuration information set by the user.

[0073] In the above embodiments, the configuration of the multi-send and multi-receive tunnel, link group, and routing rules is realized through the configuration information, and the data packets of critical services can be sent through the multi-send and multi-receive tunnel.

[0074] In one embodiment, determining the first candidate packet to be sent through the multi-send and multi-receive tunnel includes: determining the packets in the packet buffer that conform to the routing rules as the first candidate packets.

[0075] Optionally, all packets to be processed are stored in the packet buffer, and it is judged whether they conform to the routing rules according to the five-tuple of packet characteristics or the application of the packet source. If so, they are determined as the first candidate packets that can be sent through the multi-send and multi-receive tunnel. To ensure the reliability of data transmission of the first candidate packets, it is also necessary to judge whether the connection status of the multi-send and multi-receive link group is normal. If the status is normal, the first candidate packets can be sent through the multi-send and multi-receive link group. If the status is abnormal, the first candidate packets query the route according to the destination IP and are sent through the IP address. Among them, the connection status of the multi-send and multi-receive link group is detected in real time, and the connectivity of the multi-send and multi-receive link group can be queried through the ping command.

[0076] After determining that the first candidate packets can be sent through the multi-send and multi-receive link group, the first candidate packets are replicated according to the number of links in the multi-send and multi-receive link group to obtain at least one first target packet, and each first target packet is encapsulated with Replication header information, including recombination and sorting information such as the sequence number of the packet in the link group, link group ID, and link number. After encapsulating the Replication header information, the packets are further encapsulated with the outer layer of the tunnel and then sent out from each link in the link group.

[0077] In the embodiments of the present application, each VPP network element can be a sending end or a receiving end. When acting as a receiving end, as Figure 7 shown, the method further includes:

[0078] Step 701: Receive the second target packet sent through the multi-send and multi-receive tunnel.

[0079] Receive the second target packet sent by other network elements through the multiple-send-and-selective-receive tunnel, determine whether it is the local IP according to the destination IP address of the second target packet, and identify whether the UDP port of the packet is the port registered by the multiple-send-and-selective-receive tunnel. If it is determined to be so, perform decoding processing on the second target packet.

[0080] Step 702, obtain the header information of the second target packet.

[0081] Among them, the header information includes the multiple-send-and-selective-receive link group identifier, the packet sequence number, and the keyword. The multiple-send-and-selective-receive link group identifier is the link group ID, and the packet sequence number is the sequence number of the packet in the link group.

[0082] Step 703, screen the second target packet according to the multiple-send-and-selective-receive link group identifier and the keyword to determine the second candidate packet to be processed.

[0083] After receiving the second target packet, first determine whether the multiple-send-and-selective-receive link group identifier of the second target packet is valid and whether the keyword field matches. If it is invalid or does not match, directly discard the second target packet. If it is valid and matches, determine it as the second candidate packet to be processed.

[0084] Step 704, compare the sequence number of the second candidate packet with the expected sequence number, and process the second candidate packet according to the comparison result.

[0085] Optionally, there are two structures in the receive buffer of the receiving end. One is the head node of the multiple-send-and-selective-receive decoding queue buffer area, which is used to record the current link group queue status, the buffer queue length, the expected processing sequence number, the packet header node information, etc. The other is the multiple-send-and-selective-receive information record structure, which is used to store the multiple-send-and-selective-receive link group sequence number, the ID pointing to the index of the next packet buffer area, that is, the expected sequence number, and the current packet reception time. Compare the sequence number of the second candidate packet with the expected sequence number to implement sorting and duplicate removal operations on the second candidate packet.

[0086] In the above embodiments, the VPP packet buffer structure is used to store the structure. Without increasing additional memory consumption, effective management of the data queue buffer is achieved through the structure, including sorting, duplicate removal, and timeout detection functions.

[0087] Optionally, the methods for processing the second candidate packet include the following situations.

[0088] The first situation, if the sequence number of the second candidate packet is less than the expected sequence number, discard the second candidate packet.

[0089] Compare the sequence number of the second candidate message with the expected sequence number stored in the structure. If the sequence number of the second candidate message is less than the expected sequence number, directly discard the second candidate message.

[0090] In the second case, if the sequence number of the second candidate message is greater than the expected sequence number and within the preset time range, add the second candidate message to the message cache queue.

[0091] Among them, the preset time range is the preset timing time, which can be monitored through a timing task. Within the preset time range, that is, when the timing task has not expired, if the sequence number of the second candidate message received at this time is greater than the expected sequence number, insert the second candidate message at the tail of the message linked list in the message buffer area, and record the number of messages in the message linked list in the current message buffer area at the same time.

[0092] In the third case, if the sequence number of the second candidate message is equal to the expected sequence number and within the preset time range, forward the second candidate message and modify the expected sequence number.

[0093] If the sequence number of the second candidate message is equal to the expected sequence number, that is, the currently received second candidate message is the message to be received, forward the second candidate message, and at the same time increment the expected sequence number in the structure by 1, and then continue to judge the next message.

[0094] Optionally, during the message processing, if the preset time range is exceeded or the length of the message cache queue exceeds the preset length threshold, forward the messages in the message cache queue and modify the expected sequence number.

[0095] If after the timing time is exceeded, or the length of the message cache queue exceeds the preset message length threshold and the second candidate message with the expected sequence number has not been received yet, skip the second candidate message with the expected sequence number, forward the messages in the message cache queue, and increment the expected sequence number by 1.

[0096] In the embodiments of the present application, a data message transmission method is provided. The steps of data message sending may include:

[0097] Step 801, obtain configuration information.

[0098] Step 802, create a multi-send multi-receive tunnel according to the multi-send multi-receive tunnel configuration information.

[0099] Step 803, create a multi-send multi-receive link group according to the multi-send multi-receive link group configuration information.

[0100] Step 804, configure routing rules according to the routing rule configuration information.

[0101] Step 805: Determine the first candidate message to be sent through the multi-send multi-receive tunnel.

[0102] Step 806: Copy the first candidate message according to the number of interfaces of the multi-send multi-receive tunnel to obtain at least one first target message.

[0103] Step 807: Encapsulate at least one first target message according to the target protocol, and send the encapsulated at least one first target message through the multi-send multi-receive tunnel.

[0104] In the embodiments of the present application, a data message transmission method is provided, which can be applied to a data message transmission system implemented by VPP. The system architecture diagram of the data message transmission system can be as Figure 9 shown, including a configuration module and a forwarding module. The configuration module includes a multi-send multi-receive tunnel interface configuration module, a multi-send multi-receive link group creation module, and a policy routing configuration module, which are used to execute the steps of obtaining configuration information and performing configuration. The forwarding module includes a policy routing module, a multi-send multi-receive encapsulation module, and a multi-send multi-receive decapsulation module. The policy routing module is used to determine the first candidate message according to the routing rules. The multi-send multi-receive encapsulation module is used to encapsulate at least one first target message after copying the first candidate message and then send it. The multi-send multi-receive decapsulation module is used at the receiving end to sort and de-duplicate the received second target message and then perform further processing. As Figure 10 shown, it is a schematic diagram of the processing flow of the multi-send multi-receive function service forwarding. The multi-send multi-receive encapsulation module copies the first candidate message to obtain two first target messages, encapsulates them, and sends them out from the wan1 port through replication_tunnel1 and from the wan2 port through replication_tunnel2.

[0105] The processing flow of the multi-send multi-receive decapsulation module can be as Figure 11 shown. Process the received second target message, that is, the replication encapsulated message. If the UDP destination port number of the replication encapsulated message is the port number registered by replication, then after decapsulation through the multi-send multi-receive decapsulation module replication-decode-node, the original message is obtained. Figure 11Each step in it is the corresponding processing function. The multiple transmission and selective reception encapsulation module creates two structures. Structure 1 is used to store the head node information of the multiple transmission and selective reception buffer, including queue status, buffer length, expected sequence number, message buffer head node index, and current scheduling time. Structure 2 is used to store information related to multiple transmission and selective reception. Optionally, Structure 2 can be stored in the private area of the message metadata. Structure 2 includes the multiple transmission and selective reception link group sequence number, the ID pointing to the next message buffer index, and the current message reception time information.

[0106] For easy understanding, the processing flow of the above multiple transmission and selective reception decoding module is illustrated by an example. The decoded message buffer storage structure concatenates the buffer messages in the order of the sequence number Sequence num through the ID pointing to the next message buffer index, i.e., next_bi, as follows Figure 12 As shown, the current expected sequence number is 9, and the messages with sequence numbers 10, 11, and 12 are buffered in sequence number order. When processing the second candidate message later, the following situations include.

[0107] 1. If the second candidate message received has already existed in the message buffer or is less than the expected sequence number, the second candidate message is directly discarded.

[0108] 2. If the second candidate message with sequence number 14 is received within the timeout period, it is directly inserted into the tail of the message buffer linked list, and the number of messages in the current queue is recorded.

[0109] 3. If the second candidate message with sequence number 9 is not received within the timeout period, but the queue length has reached the length threshold of 256 at this time, it will no longer wait, skip sequence number 9, and send subsequent messages.

[0110] 4. If the second candidate message with sequence number 9 is received within the timeout period, the messages are sent sequentially in order.

[0111] 5. After the timeout period has been reached and the second candidate message with sequence number 9 has still not been received, skip sequence number 9 and send the second candidate messages 10, 11, and 12 in sequence.

[0112] The processing flow of the multiple transmission and selective reception decoding module replication-decode-node can be as Figure 13As shown, it is determined whether to perform enqueue processing based on the message sequence number and the expected sequence number. If enqueue is required, the message is sorted and inserted into the message cache queue based on the message sequence number. If the message sequence number already exists, the message is discarded. During the message dequeue detection process, when the message sequence number of the head message in the message cache queue is equal to the expected sequence number, the message is dequeued and the message routing and forwarding are queried. If the head message in the message cache queue has exceeded the preset time range or the length of the message cache queue exceeds the preset length threshold, after incrementing the expected sequence number by 1, the dequeue detection continues to be executed.

[0113] In the above embodiments, through the point-to-point Replication tunnel logical interface on the VPP platform, the Replication encapsulation and decapsulation operations of data packets are efficiently implemented. The reliability and efficiency of data messages transmitted in a complex network environment are improved. At the same time, the advantage of the fast data packet processing speed of the VPP platform is fully utilized to minimize the processing delay. At the receiving end, through the design of the multi-send and select-receive decoding queue cache and the scheduling processing logic, and by using the VPP message buffer structure, the effective management of the data queue cache is realized without additional memory consumption, including functions such as sorting, deduplication, and timeout detection. It can be understood that this data message transmission method is not limited to being applied within VPP, but can also be widely deployed in diverse network architectures, and the embodiments of this application do not limit this.

[0114] It should be understood that although the steps in the flowcharts involved in the above embodiments are shown in sequence according to the arrows, these steps do not necessarily have to be executed in the order indicated by the arrows. Unless there is a clear indication in this article, the execution of these steps does not have a strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages do not necessarily have to be executed at the same time, but can be executed at different times. The execution order of these steps or stages does not necessarily have to be sequential, but can be executed alternately or in turn with at least a part of other steps or steps in other steps.

[0115] Based on the same inventive concept, the embodiments of this application also provide a data message transmission device for implementing the data message transmission method involved above. The solution provided by this device to solve the problem is similar to the solution described in the above method. Therefore, the specific limitations in one or more embodiments of the data message transmission device provided below can refer to the limitations on the data message transmission method in the above text, and will not be repeated here.

[0116] In an exemplary embodiment, as Figure 14As shown, a data packet transmission device 1400 is provided, including: a determination module 1401, a replication module 1402, and an encapsulation module 1403, where:

[0117] The determination module 1401 is used to determine a first candidate packet to be sent through a multi-send multi-receive tunnel;

[0118] The replication module 1402 is used to perform replication processing on the first candidate packet according to the number of interfaces of the multi-send multi-receive tunnel to obtain at least one first target packet;

[0119] The encapsulation module 1403 is used to encapsulate at least one first target packet according to the target protocol, and send the encapsulated at least one first target packet through the multi-send multi-receive tunnel.

[0120] In one embodiment, the device further includes a configuration module, which is used to obtain configuration information, where the configuration information includes multi-send multi-receive tunnel configuration information, multi-send multi-receive link group configuration information, and routing rule configuration information; create a multi-send multi-receive tunnel according to the multi-send multi-receive tunnel configuration information; create a multi-send multi-receive link group according to the multi-send multi-receive link group configuration information; configure routing rules according to the routing rule configuration information.

[0121] In one embodiment, the determination module 1401 is specifically used to determine a packet that conforms to the routing rule in the packet buffer as the first candidate packet.

[0122] In one embodiment, the device further includes a receiving module, which is used to receive a second target packet sent through the multi-send multi-receive tunnel; obtain the packet header information of the second target packet, where the packet header information includes a multi-send multi-receive link group identifier, a packet sequence number, and a keyword; screen the second target packet according to the multi-send multi-receive link group identifier and the keyword to determine a second candidate packet to be processed; compare the sequence number of the second candidate packet with the expected sequence number, and process the second candidate packet according to the comparison result.

[0123] In one embodiment, the receiving module is specifically used to discard the second candidate packet if the sequence number of the second candidate packet is less than the expected sequence number; add the second candidate packet to the packet buffer queue if the sequence number of the second candidate packet is greater than the expected sequence number and within a preset time range; forward the second candidate packet and modify the expected sequence number if the sequence number of the second candidate packet is equal to the expected sequence number and within a preset time range.

[0124] In one embodiment, the device further includes a forwarding module, which is used to forward the packets in the packet buffer queue and modify the expected sequence number if the preset time range is exceeded or the length of the packet buffer queue exceeds a preset length threshold.

[0125] Each module in the above data packet transmission device can be implemented in whole or in part by software, hardware, or a combination thereof. Each of the above modules can be embedded in the processor of the computer device in hardware form or be independent of it, or stored in the memory of the computer device in software form, so that the processor can call and execute the operations corresponding to each of the above modules.

[0126] In an exemplary embodiment, a computer device is provided. The computer device can be a server, and its internal structure diagram can be as Figure 15 shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, abbreviated as I / O), and a communication interface. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data packet data. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals through a network connection. When the computer program is executed by the processor, it implements a data packet transmission method.

[0127] Those skilled in the art can understand that Figure 15 the structure shown in

[0128] In an exemplary embodiment, a computer device is provided, including a memory and a processor. A computer program is stored in the memory. When the processor executes the computer program, the following steps are implemented: determining a first candidate packet to be sent through a multi-transmit multi-receive tunnel; performing a replication process on the first candidate packet according to the number of interfaces of the multi-transmit multi-receive tunnel to obtain at least one first target packet; encapsulating the at least one first target packet according to a target protocol, and sending the encapsulated at least one first target packet through the multi-transmit multi-receive tunnel.

[0129] In one embodiment, when the processor executes the computer program, the following steps are implemented: obtaining configuration information, where the configuration information includes multi-transmit multi-receive tunnel configuration information, multi-transmit multi-receive link group configuration information, and routing rule configuration information; creating a multi-transmit multi-receive tunnel according to the multi-transmit multi-receive tunnel configuration information; creating a multi-transmit multi-receive link group according to the multi-transmit multi-receive link group configuration information; and configuring routing rules according to the routing rule configuration information.

[0130] In one embodiment, when the processor executes the computer program, the following steps are implemented: determining, as first candidate packets, the packets in the packet buffer that conform to the routing rules.

[0131] In one embodiment, when the processor executes the computer program, the following steps are implemented: receiving a second target packet sent through the multi-transmit multi-receive tunnel; obtaining the packet header information of the second target packet, where the packet header information includes a multi-transmit multi-receive link group identifier, a packet sequence number, and a keyword; screening the second target packet according to the multi-transmit multi-receive link group identifier and the keyword to determine a second candidate packet to be processed; and comparing the sequence number of the second candidate packet with the expected sequence number and processing the second candidate packet according to the comparison result.

[0132] In one embodiment, when the processor executes the computer program, the following steps are implemented: if the sequence number of the second candidate packet is less than the expected sequence number, discarding the second candidate packet; if the sequence number of the second candidate packet is greater than the expected sequence number and within a preset time range, adding the second candidate packet to the packet buffer queue; and if the sequence number of the second candidate packet is equal to the expected sequence number and within a preset time range, forwarding the second candidate packet and modifying the expected sequence number.

[0133] In one embodiment, when the processor executes the computer program, the following steps are implemented: if the preset time range is exceeded or the length of the packet buffer queue exceeds a preset length threshold, forwarding the packets in the packet buffer queue and modifying the expected sequence number.

[0134] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented: determining first candidate packets to be sent through the multi-transmit multi-receive tunnel; copying the first candidate packets according to the number of interfaces of the multi-transmit multi-receive tunnel to obtain at least one first target packet; encapsulating the at least one first target packet according to the target protocol, and sending the encapsulated at least one first target packet through the multi-transmit multi-receive tunnel.

[0135] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: obtaining configuration information, where the configuration information includes multi-transmit multi-receive tunnel configuration information, multi-transmit multi-receive link group configuration information, and routing rule configuration information; creating a multi-transmit multi-receive tunnel according to the multi-transmit multi-receive tunnel configuration information; creating a multi-transmit multi-receive link group according to the multi-transmit multi-receive link group configuration information; and configuring routing rules according to the routing rule configuration information.

[0136] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: determining, as first candidate packets, the packets in the packet buffer that conform to the routing rules.

[0137] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: receiving a second target packet sent through a multi-transmit multi-receive tunnel; obtaining the packet header information of the second target packet, where the packet header information includes a multi-transmit multi-receive link group identifier, a packet sequence number, and a keyword; screening the second target packet according to the multi-transmit multi-receive link group identifier and the keyword to determine a second candidate packet to be processed; and comparing the sequence number of the second candidate packet with an expected sequence number, and processing the second candidate packet according to the comparison result.

[0138] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the sequence number of the second candidate packet is less than the expected sequence number, discarding the second candidate packet; if the sequence number of the second candidate packet is greater than the expected sequence number and within a preset time range, adding the second candidate packet to the packet buffer queue; and if the sequence number of the second candidate packet is equal to the expected sequence number and within a preset time range, forwarding the second candidate packet and modifying the expected sequence number.

[0139] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the preset time range is exceeded or the length of the packet buffer queue exceeds a preset length threshold, forwarding the packets in the packet buffer queue and modifying the expected sequence number.

[0140] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the following steps: determining first candidate packets to be sent through a multi-transmit multi-receive tunnel; copying the first candidate packets according to the number of interfaces of the multi-transmit multi-receive tunnel to obtain at least one first target packet; encapsulating the at least one first target packet according to a target protocol, and sending the encapsulated at least one first target packet through the multi-transmit multi-receive tunnel.

[0141] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: obtaining configuration information, where the configuration information includes multi-transmit multi-receive tunnel configuration information, multi-transmit multi-receive link group configuration information, and routing rule configuration information; creating a multi-transmit multi-receive tunnel according to the multi-transmit multi-receive tunnel configuration information; creating a multi-transmit multi-receive link group according to the multi-transmit multi-receive link group configuration information; and configuring routing rules according to the routing rule configuration information.

[0142] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: determining a first candidate packet from the packets in the packet buffer that conform to the routing rules.

[0143] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: receiving a second target packet sent through a multi-transmit multi-receive tunnel; obtaining the packet header information of the second target packet, where the packet header information includes a multi-transmit multi-receive link group identifier, a packet sequence number, and a keyword; screening the second target packet according to the multi-transmit multi-receive link group identifier and the keyword to determine a second candidate packet to be processed; and comparing the sequence number of the second candidate packet with an expected sequence number, and processing the second candidate packet according to the comparison result.

[0144] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the sequence number of the second candidate packet is less than the expected sequence number, discarding the second candidate packet; if the sequence number of the second candidate packet is greater than the expected sequence number and within a preset time range, adding the second candidate packet to the packet buffer queue; if the sequence number of the second candidate packet is equal to the expected sequence number and within a preset time range, forwarding the second candidate packet and modifying the expected sequence number.

[0145] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the preset time range is exceeded or the length of the packet buffer queue exceeds a preset length threshold, forwarding the packets in the packet buffer queue and modifying the expected sequence number.

[0146] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in this application are all information and data that have been authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with relevant regulations.

[0147] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include Read-Only Memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, Resistive Random Access Memory (ReRAM), Magnetoresistive Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Phase Change Memory (PCM), graphene memory, etc. Volatile memory can include Random Access Memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM), etc. The databases involved in the embodiments provided in this application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in this application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, Artificial Intelligence (AI) processors, etc., without limitation.

[0148] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope recorded in this application.

[0149] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all fall within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.

Claims

1. A data packet transmission method, characterized in that, The method includes: Determining a first candidate message to be sent through a multi - send - multi - receive tunnel; Performing a replication process on the first candidate message according to the number of interfaces of the multi - send - multi - receive tunnel to obtain at least one first target message; Encapsulating the at least one first target message according to a target protocol, and sending the encapsulated at least one first target message through the multi - send - multi - receive tunnel.

2. The method according to claim 1, characterized in that, Before determining the first candidate message to be sent through the multi - send - multi - receive tunnel, the method further includes: Obtaining configuration information, where the configuration information includes multi - send - multi - receive tunnel configuration information, multi - send - multi - receive link group configuration information, and routing rule configuration information; Creating the multi - send - multi - receive tunnel according to the multi - send - multi - receive tunnel configuration information; Creating a multi - send - multi - receive link group according to the multi - send - multi - receive link group configuration information; Configuring routing rules according to the routing rule configuration information.

3. The method according to claim 2, wherein Determining the first candidate message to be sent through the multi - send - multi - receive tunnel includes: Determining, as the first candidate message, the message in the message buffer that conforms to the routing rules.

4. The method according to claim 1, wherein The method further includes: Receiving a second target message sent through the multi - send - multi - receive tunnel; Obtaining the message header information of the second target message, where the message header information includes a multi - send - multi - receive link group identifier, a message sequence number, and a keyword; Filtering the second target message according to the multi - send - multi - receive link group identifier and the keyword to determine a second candidate message to be processed; Comparing the sequence number of the second candidate message with an expected sequence number, and processing the second candidate message according to the comparison result.

5. The method according to claim 4, wherein Comparing the sequence number of the second candidate message with an expected sequence number, and processing the second candidate message according to the comparison result includes: If the sequence number of the second candidate message is less than the expected sequence number, discarding the second candidate message; If the sequence number of the second candidate message is greater than the expected sequence number and within a preset time range, adding the second candidate message to the message buffer queue; If the sequence number of the second candidate message is equal to the expected sequence number and within the preset time range, forwarding the second candidate message and modifying the expected sequence number.

6. The method according to claim 5, wherein The method further includes: If the preset time range is exceeded or the length of the message buffer queue exceeds a preset length threshold, forwarding the messages in the message buffer queue and modifying the expected sequence number.

7. A data packet transmission device, characterized in that, The device includes: A determination module, configured to determine a first candidate message to be sent through a multi - send - multi - receive tunnel; A replication module, configured to perform a replication process on the first candidate message according to the number of interfaces of the multi - send - multi - receive tunnel to obtain at least one first target message; An encapsulation module, configured to encapsulate the at least one first target message according to a target protocol, and send the encapsulated at least one first target message through the multi - send - multi - receive tunnel.

8. A computer device, comprising a memory and a processor, the memory storing a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.