Packet loss retransmission method and device, computer equipment, readable storage medium and program product

By adding the serial number field to the header report of the IP layer, selective packet loss re-transmission is achieved, solving the problem of re-transmission storm caused by Go-Back-N transmission method, improving network throughput performance and reducing equipment performance that has reduced equipment performance Require.

CN119341704APending Publication Date: 2025-01-21CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER +1

Patent Information

Application Number
CN202411502433.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-25
Publication Date
2025-01-21

AI Technical Summary

Technical Problem

The existing packet loss retransmission method based on Go-Back-N is prone to cause retransmission storms, affecting network throughput performance, and has high requirements for device performance and complex analysis.

Method used

Add extension fields to the target report of the IP layer of the data packet, fill in the sequence number, and perform the IP -level packet loss detection at the receiving end, determine the target sequence number of the lost data packet Bags, realize selective packet loss.

Benefits of technology

It reduces the number of retransmission packets, reduces the impact on network throughput performance, ensures high data throughput and low-latency transmission, improves the performance of the wide area network, and reduces the requirements for device performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119341704A_ABST
    Figure CN119341704A_ABST
Patent Text Reader

Abstract

The invention relates to a lost packet retransmission method and device, computer equipment, a readable storage medium and a program product, and is applied to a receiving end, and the method comprises the following steps: receiving a data packet sent by a sending end; a first extension field is added in a target message header of an IP layer of the data packet, the first extension field is filled with a serial number, and the serial number is used for representing a sequence number of the data packet; performing packet loss detection according to the serial number in the data packet; under the condition that the lost data packet is detected, determining a target serial number of the lost data packet; and sending a retransmission request packet carrying the target serial number to the sending end, so that the sending end retransmits a data packet corresponding to the target serial number. By adopting the method, selective packet loss retransmission can be realized, that is, only the lost / delayed packets are retransmitted, the number of the retransmitted packets can be greatly reduced, the influence on the network throughput performance is reduced, and high throughput and low delay transmission of data is ensured, so that the performance of a wide area network 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 technology, and in particular to a packet loss retransmission method, apparatus, computer equipment, computer-readable storage medium, and computer program product. Background Art

[0002] RoCEv2 (RDMA over Converged Ethernet version 2) is an Ethernet-based RDMA (Remote Direct Memory Access) protocol. It is a node-to-node communication transmission method designed for low-latency, high-throughput data transmission in Ethernet environments. RoCEv2 is very sensitive to packet loss and bit errors. In reality, network congestion, packet loss, and bit errors are almost inevitable. Therefore, how to solve the packet loss problem has become a research focus.

[0003] In related technologies, in packet loss scenarios, the Go-Back-N (GBN, sliding window protocol) retransmission method is generally used to solve the packet loss problem. That is, if the receiving end finds that the Nth data packet is lost, the sending end is required to resend all subsequent data packets starting from the Nth data packet. Therefore, once a packet is lost, it is easy to cause a large number of retransmitted packets in the network, causing a retransmission storm and affecting network throughput performance. Summary of the invention

[0004] Based on this, it is necessary to provide a packet loss retransmission method, apparatus, computer device, computer readable storage medium and computer program product to address the technical problem that the above-mentioned Go-Back-N based packet loss retransmission method is prone to cause retransmission storms and affect network throughput performance.

[0005] In a first aspect, the present application provides a packet loss retransmission method. The method comprises:

[0006] Receive a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet;

[0007] Perform packet loss detection according to the sequence number in the data packet;

[0008] In the event that a lost packet is detected, determining a target sequence number of the lost packet;

[0009] A retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0010] In one embodiment, the packet loss detection according to the sequence number in the data packet includes:

[0011] Detecting the continuity between the sequence number of the data packet and the sequence number of the data packet received by the receiving end;

[0012] If a missing sequence number is detected, the data packet corresponding to the missing sequence number is determined to be a lost data packet.

[0013] In one of the embodiments, before performing packet loss detection according to the sequence number in the data packet, the method further includes:

[0014] Parsing the IP layer of the data packet to determine the message header position corresponding to the target message header;

[0015] The sequence number of the data packet is extracted according to the message header position.

[0016] In one of the embodiments, parsing the IP layer of the data packet to determine the message header position corresponding to the target message header includes:

[0017] Parsing the IP layer of the data packet to determine the message header number filled in the basic message header of the IP layer;

[0018] The position of the message header corresponding to the message header number is used as the message header position corresponding to the target message header.

[0019] In one of the embodiments, before sending the retransmission request packet carrying the target sequence number to the sending end, the method further includes:

[0020] Construct the retransmission request packet; add a first extension field and a second extension field to the target message header of the IP layer of the retransmission request packet, the first extension field is filled with the target sequence number, the second extension field is filled with the first indication information, and the first indication information is used to instruct the receiving end to resend the data packet corresponding to the target sequence number.

[0021] In one of the embodiments, after performing packet loss detection according to the sequence number in the data packet, the method further includes:

[0022] In the case where no lost data packet is detected, sending a confirmation data packet to the sending end; a first extension field and a second extension field are added to the target message header of the IP layer of the confirmation data packet, the first extension field is filled with the next sequence number of the sequence number of the data packet, and the second extension field is filled with the second indication information, and the second indication information is used to indicate that the data packet transmission is normal;

[0023] The sending end is used to send the data packet corresponding to the next sequence number to the receiving end according to the second indication information.

[0024] In a second aspect, the present application also provides a packet loss retransmission device. The device comprises:

[0025] A receiving module, used for receiving a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet;

[0026] A detection module, used for performing packet loss detection according to a sequence number in the data packet;

[0027] A determination module, used for determining a target sequence number of a lost data packet when a lost data packet is detected;

[0028] The sending module is used to send a retransmission request packet carrying the target sequence number to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0029] In a third aspect, the present application further provides a computer device. The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program:

[0030] Receive a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet;

[0031] Perform packet loss detection according to the sequence number in the data packet;

[0032] In the event that a lost packet is detected, determining a target sequence number of the lost packet;

[0033] A retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0034] In a fourth aspect, the present application further provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are implemented:

[0035] Receive a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet;

[0036] Perform packet loss detection according to the sequence number in the data packet;

[0037] In the event that a lost packet is detected, determining a target sequence number of the lost packet;

[0038] A retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0039] In a fifth aspect, the present application further provides a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, the following steps are implemented:

[0040] Receive a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet;

[0041] Perform packet loss detection according to the sequence number in the data packet;

[0042] In the event that a lost packet is detected, determining a target sequence number of the lost packet;

[0043] A retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0044] In the above-mentioned packet loss retransmission method, device, computer equipment, storage medium and computer program product, the receiving end receives the data packet sent by the sending end. Since a first extension field is added to the target message header of the IP layer of the data packet, and the first extension field is filled with a sequence number, the receiving end can perform packet loss detection according to the sequence number in the data packet, and when a lost data packet is detected, the target sequence number of the lost data packet is determined, and a retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end retransmits the data packet corresponding to the target sequence number. The sending end of the method extends the message header of the IP layer and fills the sequence number, so that after the receiving end receives the data packet, it can perform packet loss detection on the IP layer of the data packet and determine the target sequence number of the lost data packet, thereby further realizing selective packet loss retransmission, that is, only retransmitting the lost / delayed data packet, which will greatly reduce the number of retransmission packets compared to the Go-Back-N retransmission method, reduce the impact on network throughput performance, and ensure high throughput and low latency data transmission, thereby improving the performance of the wide area network, providing a more complete packet loss protection mechanism for RoCEv2 and other UDP-based protocols, and expanding its applicable scope. Furthermore, when parsing data packets, it is only necessary to parse to the IP layer, without parsing UDP, IBTH and other application layers. The receiving end only needs to support the parsing of the IP layer, which greatly reduces the requirements for device performance and improves parsing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] FIG1 is a schematic diagram of a message format of a UDP protocol and a RoCEv2 protocol in one embodiment;

[0046] FIG2 is a schematic diagram of an application of a Go-Back-N retransmission mode in one embodiment;

[0047] FIG3 is a schematic diagram of a flow chart of a packet loss retransmission method according to an embodiment;

[0048] FIG4 is a schematic diagram of the numbering and position used in the target message header in IPv6 format in one embodiment;

[0049] FIG5 is a schematic diagram of a flow chart of a packet loss retransmission method in another embodiment;

[0050] FIG6 is a schematic diagram of the format of a target message header in one embodiment;

[0051] 7 is a schematic diagram of the format of a message header when a transmitting end sends a third data packet in one embodiment;

[0052] FIG8 is a schematic diagram of the format of a confirmation data packet sent by a receiving end in one embodiment;

[0053] FIG9 is a schematic diagram of the format of a retransmission request packet sent by a receiving end in one embodiment;

[0054] FIG10 is a schematic diagram showing the effect of applying the packet loss retransmission method of the present application in one embodiment;

[0055] FIG11 is a structural block diagram of a packet loss retransmission device according to an embodiment;

[0056] FIG. 12 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0057] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0058] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the numbers used in this way can be interchanged where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein.

[0059] In order to facilitate those skilled in the art to further understand the present application, the relevant background of the present application is further explained below.

[0060] The commonly used transport layer protocols for transmitting data in the network are TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). Among them, TCP is a connection-oriented protocol that can provide reliable data transmission, ensuring that data packets arrive in order and are not lost. The UDP protocol is a connectionless protocol that does not guarantee reliability. Data packets may be lost. It does not have the concept of packet loss detection and retransmission, or traffic congestion control. Its format is also very simple and has no sequence number. RoCEv2 uses UDP as the transport layer protocol, which is designed for high-throughput data transmission based on the premise of completely lossless wide area networks. However, packet loss and bit errors are inevitable in IP networks even under light load conditions.

[0061] As shown in Figure 1, the message formats of the common UDP protocol and the RoCEv2 protocol are shown. The RoCEv2 protocol inserts IBTH after UDP. The PSN field of IBTH indicates the message sequence number. The Go-Back-N retransmission method is used to solve the packet loss problem of the RoCEv2 protocol. Specifically, after the receiving end disassembles the UDP and IBTH packets, it detects the IBTH sequence number. If it finds that the Nth data packet is lost, it requires the sending end to resend all the subsequent data packets starting from the Nth data packet. However, this method has the following problems:

[0062] (1) It is easy to cause a retransmission storm. As shown in Figure 2, it is an application diagram of the Go-Back-N retransmission mode. If the loss of the third data packet is detected, all data packets after the third data packet must be retransmitted.

[0063] (2) As shown in Figure 1, the RoCEv2 message format requires parsing the IBTH after the UDP packet to obtain the sequence number when performing packet loss processing, which places high performance requirements on the receiving end.

[0064] (3) Since the UDP protocol itself does not have the concept of packet loss detection, retransmission, or traffic congestion control, packet loss detection cannot be performed.

[0065] (4) UDP does not have the ability to retransmit and control congestion. RoCEv2 uses Go-Back-N retransmission based on IBTH, which makes RoCEv2 more suitable for lossless networks (such as within DCs and short distances). However, long-distance lossless networks are very expensive and cannot be 100% lossless. Therefore, the existing methods restrict its application in long-distance data transmission scenarios.

[0066] Based on the above problems, this application proposes a packet loss retransmission optimization method based on the IP layer. By extending the IP layer header and adding the sequence number and control field, the sender fills in the sending message sequence number, and the receiving end performs packet loss detection at the IP layer, selective packet loss retransmission can be further realized, that is, only retransmitting lost / delayed packets. Compared with the Go-Back-N retransmission method, the number of retransmitted packets will be greatly reduced, and the impact on network throughput performance will be reduced to a very small extent, ensuring high throughput and low latency transmission of data, thereby improving the performance of the wide area network, and providing a more complete packet loss protection mechanism for RoCEv2 and other UDP-based protocols, expanding its scope of application.

[0067] The packet loss retransmission method provided in the embodiment of the present application can be applied to an application environment including a transmitter and a receiver. Among them, the transmitter can be regarded as a transmitter, which is used to send data packets to the receiver. The receiver can be regarded as a receiver, which is used to receive data packets sent by the transmitter. The transmitter and the receiver transmit data through a UDP-based protocol. The transmitter and the receiver can be, but are not limited to, various personal computers, laptops, smart phones, tablet computers, Internet of Things devices and portable wearable devices. The Internet of Things devices can be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. Portable wearable devices can be smart watches, smart bracelets, head-mounted devices, etc.

[0068] 3 is a flow chart of a packet loss retransmission method provided in an embodiment of the present application. This embodiment is illustrated by applying the method to a receiving end. In this embodiment, the method includes the following steps:

[0069] Step S310, receiving a data packet sent by a transmitting end; a first extension field is added to a target message header of an IP layer of the data packet, and the first extension field is filled with a sequence number, which is used to indicate a sequential number of the data packet.

[0070] The target message header is one of the message headers that are not defined and used in the IP layer. For example, generally, the message headers after 180 are not used, and the 190th message header can be selected as the target message header, and the first extension field is added therein to fill the sequence number.

[0071] It can be understood that since the IP message header has strong scalability, the present application improves the packet loss retransmission mechanism based on the IP message. Whether it is a UDP-based RoCEv2 message or an ordinary UDP message, an extension field is added to the IP message header to fill in the sequence number of the sent message.

[0072] In a specific implementation, when the sending end sends a data packet to the receiving end, it first adds a first extension field to the target message header of the IP layer of the data packet as the field of the message sequence number. Then, the sequence number is filled in the first extension field to represent the sequence number of the data packet, and finally the processed data packet is sent to the receiving end, so that the receiving end can receive the data packet containing the sequence number at the IP layer.

[0073] In practical applications, sequence number padding can be performed on data packets of data messages for large bandwidth and quality assurance services, while sequence number padding is not performed on ordinary data packets that are not affected by loss.

[0074] It should be noted that during the continuous transmission of data packets between the sender and the receiver, the position of the target message header of each data packet remains unchanged, that is, the sequence number is filled in the message header at the same position.

[0075] In one embodiment, a second extension field is further added to the target message header, and the second extension field is a retransmission control bit. The information filled in the second extension field in the data packet sent by the sender is used by the sender to send the data packet. If the receiving end sends a data packet to the sending end, the information filled in the second extension field of the retransmission control bit is used by the receiving end to send a confirmation data packet and a retransmission request packet.

[0076] Step S320: performing packet loss detection according to the sequence number in the data packet.

[0077] In a specific implementation, the sending end continuously sends data packets to the receiving end, and the receiving end can perform a packet loss detection after each data packet is received, or it can perform a packet loss detection after receiving a preset number (such as 3) of data packets. More specifically, after receiving the data packet sent by the sending end, the receiving end parses the data packet, specifically parses the IP layer of the data packet, and then locates the target message header, and extracts the sequence number of the data packet from the first extension field of the target message header. Since the sequence number represents the sequential numbering of the data packet, packet loss detection can be performed based on the continuity of the sequence number in the received data packet. For example, the sequence numbers of the received data packets are 1, 2, 4, and 5, and the lack of sequence number 3 indicates that the third data packet is lost.

[0078] Step S330: when it is detected that there is a lost data packet, determine the target sequence number of the lost data packet.

[0079] In a specific implementation, when the receiving end detects that there is a lost data packet, that is, the sequence number of the received data packet is discontinuous and missing, the missing sequence number can be used as the target sequence number of the lost data packet to facilitate targeted retransmission of the lost data packet.

[0080] Step S340, sending a retransmission request packet carrying the target sequence number to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0081] In a specific implementation, after determining the target sequence number of the lost data packet, the receiving end can interact with the sending end in a targeted packet loss retransmission for the lost data packet. Specifically, a retransmission request packet carrying the target sequence number can be constructed. Similar to the data packet sent by the sending end, the target sequence number can be filled in the first extension field in the target message header of the IP layer of the retransmission request packet. After receiving the retransmission request packet, the sending end can parse the IP layer of the retransmission request packet, extract the target sequence number, find the data packet corresponding to the target sequence number from the cache, and resend it to the receiving end.

[0082] In the above packet loss retransmission method, the receiving end receives the data packet sent by the sending end. Since the first extension field is added to the target message header of the IP layer of the data packet, and the first extension field is filled with a sequence number, the receiving end can perform packet loss detection according to the sequence number in the data packet, and when the lost data packet is detected, the target sequence number of the lost data packet is determined, and a retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end retransmits the data packet corresponding to the target sequence number. In this method, the sending end extends the message header of the IP layer and fills the sequence number, so that after the receiving end receives the data packet, it can perform packet loss detection on the IP layer of the data packet and determine the target sequence number of the lost data packet, thereby further realizing selective packet loss retransmission, that is, only retransmitting the lost / delayed packets. Compared with the Go-Back-N retransmission method, the number of retransmission packets will be greatly reduced, the impact on network throughput performance will be reduced, and high throughput and low latency data transmission will be guaranteed, thereby improving the performance of the wide area network, providing a more complete packet loss protection mechanism for RoCEv2 and other UDP-based protocols, and expanding its applicable scope. Furthermore, when parsing data packets, it is only necessary to parse to the IP layer, without parsing UDP, IBTH and other application layers. The receiving end only needs to support the parsing of the IP layer, which greatly reduces the requirements for device performance and improves parsing efficiency.

[0083] In an exemplary embodiment, the above step S320 performs packet loss detection based on the sequence number in the data packet, including: detecting the continuity between the sequence number of the data packet and the sequence number of the data packet received by the receiving end; if a missing sequence number is detected, determining that the data packet corresponding to the missing sequence number is a lost data packet.

[0084] In the specific implementation, the receiving end receives and parses each data packet sent from the sending end. During the parsing process, the serial number of each data packet is extracted and recorded. For each newly received data packet, the continuity between its serial number and the serial number of the previously received data packet is checked. For example, if the serial number of the currently received data packet is N, it is necessary to verify whether the serial numbers of the data packets received in the last few times (such as 2 times) are continuous with the serial number N. If not continuous, there is a missing sequence number, then the data packet corresponding to the missing sequence number is determined as a lost data packet.

[0085] In this embodiment, packet loss detection is performed by detecting the continuity between the sequence number of the data packet and the sequence number of the data packet already received by the receiving end, which can effectively monitor the loss of data packets and accurately locate the lost data packets, so that selective retransmission operations can be performed.

[0086] In an exemplary embodiment, before performing packet loss detection according to the sequence number in the data packet in the above step S320, it also includes: parsing the IP layer of the data packet to determine the header position corresponding to the target header; and extracting the sequence number of the data packet according to the header position.

[0087] In the specific implementation, the receiving end needs to extract the sequence number of the data packet before performing packet loss detection. That is, the IP layer of the data packet is first parsed, the header position corresponding to the target header is determined in the IP layer, and then the sequence number of the data packet is extracted from the header corresponding to the header position, that is, the first extension field of the target header.

[0088] As shown in Figure 1, the message formats of ordinary UDP and RoCEv2 show that the IP layer is located under the Ethernet layer. Therefore, when parsing the data packet, it is only necessary to parse it to the IP layer, without parsing UDP, IBTH, RTP and other application layers. The receiving end only needs to support the parsing of the IP layer, which greatly reduces the requirements for device performance and improves the parsing efficiency. This can solve the problem that the existing UDP-based technology (including RoCEv2) can only achieve reliable transmission through application layer (or IBTH) communication, has high requirements for equipment (needs to parse data at UDP and above levels) and has low efficiency.

[0089] Further, in an exemplary embodiment, the IP layer of the data packet is parsed to determine the header position corresponding to the target header, including: parsing the IP layer of the data packet to determine the header number filled in the basic header of the IP layer; and using the header position corresponding to the header number as the header position corresponding to the target header.

[0090] Specifically, taking the IPv6 header as an example, the number and position used by the target header are shown in Figure 4. NH (NextHeader) indicates the information type of the extended header following the IPv6 basic header. The header selected in the box in the figure can be regarded as the basic header. NH=190, which indicates the header number filled in the basic header, represents the position of the target header filled with the serial number of the data packet. Therefore, the IP layer of the data packet can be parsed, and the header number, that is, the number of the target header, can be extracted from the basic header. The position of the target header is determined based on the header number, and the serial number of the data packet can be further extracted from the target header.

[0091] In this embodiment, by explicitly parsing the IP layer and identifying the location of the target message header, the corresponding sequence number can be extracted more accurately and efficiently.

[0092] In an exemplary embodiment, before the above step S340 sends the retransmission request packet carrying the target sequence number to the sending end, it also includes: constructing a retransmission request packet; adding a first extension field and a second extension field to the target message header of the IP layer of the retransmission request packet, the first extension field is filled with the target sequence number, and the second extension field is filled with the first indication information.

[0093] In a specific implementation, after confirming the target sequence number of the data packet that needs to be retransmitted, the receiving end can construct a retransmission request packet carrying the target sequence number. Specifically, a first extension field and a second extension field can be added to the target message header of the IP layer of the retransmission request packet, the first extension field is filled with the target sequence number, and the second extension field is filled with the first indication information, and the first indication information is used to instruct the receiving end to resend the data packet corresponding to the target sequence number. Therefore, after the sending end receives the retransmission request packet sent by the receiving end, it can parse and obtain the first indication information and the target sequence number, so that it can be determined that the data packet needs to be retransmitted based on the first indication information, and the sequence number of the data packet that needs to be retransmitted can be determined based on the target sequence number. Then, the data packet with the sequence number of the target sequence number can be found in the cache and resent to the receiving end.

[0094] In this embodiment, by constructing a retransmission request packet, setting the first indication information and the target sequence number in the retransmission request packet, the sending end can determine that the data packet corresponding to the target sequence number needs to be resent to the receiving end according to the first indication information and the target sequence number. This clear retransmission request mechanism can achieve the retransmission of specific lost data packets without sending data packets that are not lost, thereby effectively reducing the network load and bandwidth consumption.

[0095] In an exemplary embodiment, after performing packet loss detection according to the sequence number in the data packet in step S320, it also includes: sending a confirmation data packet to the sending end if no lost data packet is detected; adding a first extension field and a second extension field to the target message header of the IP layer of the confirmation data packet, the first extension field is filled with the next sequence number of the sequence number of the data packet, and the second extension field is filled with second indication information, the second indication information is used to indicate that the data packet transmission is normal; the sending end is used to send the data packet corresponding to the next sequence number to the receiving end according to the second indication information.

[0096] In a specific implementation, if the receiving end does not detect lost data packets, that is, the data packets are transmitted normally, a confirmation data packet can be sent to the sending end. A first extension field and a second extension field are added to the target message header of the IP layer of the confirmation data packet. The first extension field is filled with the next sequence number of the sequence number of the data packet, and the second extension field is filled with the second indication information. The second indication information is used to indicate that the data packet transmission is normal. Therefore, after the sending end receives the confirmation data packet sent by the receiving end, it can parse and obtain the second indication information and the sequence number of the next data packet to be sent, that is, the next sequence number, so that according to the second indication information, it can be determined that the data packet is received normally, and the next data packet can continue to be sent, and the sequence number of the next data packet can be determined according to the sequence number filled in the first extension field, and then the next data packet is sent to the receiving end.

[0097] In this embodiment, by confirming the data packet, the receiving end can promptly feedback the reception status of the data packet, and fill in the next sequence number in the confirmation data packet, so that the sending end can quickly determine the next data packet to be sent. This precise confirmation mechanism and sequence number management method not only improves the reliability and efficiency of data transmission, but also enhances the overall flexibility and adaptability.

[0098] In an exemplary embodiment, as shown in FIG5 , a specific flow chart of a packet loss retransmission method is shown, which includes the following steps:

[0099] Step S510, receiving a data packet sent by a transmitting end; a first extension field is added to a target message header of an IP layer of the data packet, and the first extension field is filled with a sequence number, which is used to indicate a sequential number of the data packet.

[0100] Step S520, parse the IP layer of the data packet, determine the message header number filled in the basic message header of the IP layer, and obtain the message header position corresponding to the target message header.

[0101] Step S530: extract the sequence number of the data packet according to the message header position.

[0102] Step S540, detecting the continuity between the sequence number of the data packet and the sequence number of the data packet received by the receiving end.

[0103] Step S550: If a missing sequence number is detected, it is determined that the data packet corresponding to the missing sequence number is a lost data packet, and the missing sequence number is used as the target sequence number.

[0104] Step S560: construct a retransmission request packet and send the retransmission request packet to the sending end.

[0105] Among them, a first extension field and a second extension field are added to the target message header of the IP layer of the retransmission request packet, the first extension field is filled with the target sequence number, and the second extension field is filled with first indication information, and the first indication information is used to instruct the receiving end to resend the data packet corresponding to the target sequence number.

[0106] Step S570: If no missing sequence number is detected, a confirmation data packet is sent to the sending end.

[0107] Among them, a first extension field and a second extension field are added to the target message header of the IP layer of the confirmation data packet, the first extension field is filled with the next sequence number of the sequence number of the data packet, and the second extension field is filled with second indication information, and the second indication information is used to indicate that the data packet transmission is normal; the sending end is used to send the data packet corresponding to the next sequence number to the receiving end according to the second indication information.

[0108] In the packet loss retransmission method provided in this embodiment, the sender extends the message header of the IP layer and fills the sequence number, so that after the receiving end receives the data packet, it can perform packet loss detection on the data packet at the IP layer and determine the target sequence number of the lost data packet, thereby further realizing selective packet loss retransmission, that is, only retransmitting the lost / delayed packets, which will greatly reduce the number of retransmitted packets compared to the Go-Back-N retransmission method, reduce the impact on network throughput performance, ensure high throughput and low latency data transmission, thereby improving the performance of the wide area network, and provide a more complete packet loss protection mechanism for RoCEv2 and other UDP-based protocols, expanding its applicable scope. Furthermore, when parsing the data packet, it only needs to be parsed to the IP layer, without parsing UDP, IBTH and other application layers. The receiving end only needs to support the parsing of the IP layer, which greatly reduces the requirements for device performance and improves the parsing efficiency. In addition, packet loss protection of ordinary UDP can be realized, and the packet loss retransmission mechanism in the RoCEv2 scenario is optimized to improve the transmission efficiency and network throughput, so that RoCEv2 can be applied to non-strictly lossless wide area scenarios (including IP networks).

[0109] In one embodiment, in order to facilitate those skilled in the art to understand the embodiments of the present application, specific examples will be described below with reference to the accompanying drawings.

[0110] This application proposes to add an extension header / extension field to the message header of the IP layer as a message sequence number and retransmission control flag. The sender fills in the sequence number and performs timeout, packet loss judgment and selective retransmission based on the extension header between the sender and the receiver. In specific applications, the sender fills in the sequence number in the corresponding extension header for data packets with large bandwidth and quality assurance services, which represents the order number of the data packet. The receiver determines whether there is a loss based on the sequence number of the received data packet and reorganizes it. The two parties perform selective packet loss retransmission based on the interaction of confirmation packets or retransmission packets. With the development of RDMA and lossless technology, network equipment basically has a large cache. Therefore, both the sender and the receiver can cache data packets within a certain sequence number range. When a certain sequence number packet is found to be lost, the sender can find the packet in the cache and retransmit it, optimizing the packet loss retransmission mechanism represented by RoCEv2 to avoid network retransmission storms.

[0111] Referring to FIG. 6 , the format of the target message header defined in this application is shown, and the meanings of the fields are as follows:

[0112] NH (Next Header): The next extension header following this extension header (if any).

[0113] Length: extension header length.

[0114] Reserve: Reserved for subsequent processing expansion.

[0115] RT: retransmission control bit, 00 is used for the sender to send a data packet, 01 is used for the receiver to send an acknowledgment packet, and 10 is used for the receiver to send a request for retransmission packet. It can be expanded as needed.

[0116] SN: Sequence number, byte or message number. Packet loss can be detected based on the continuity of the sequence number.

[0117] The sender uses the IP message sequence number extension header (generated by itself or copied from the PSN of RoCEv2 IBTH) and combines the large cache capabilities of the sender and receiver. The receiver can detect and report to the sender the data packets that were not received on time (for example, the sequence number is N). The receiver performs selective retransmission (finds and retransmits only the data packets with the sequence number N from the cache), which maximizes the guarantee of no packet loss in the network and does not affect the network throughput.

[0118] Based on this method, a message sequence number is added to the IP layer and combined with a selective retransmission mechanism, there is no need for the device to read the IBTH header or rely on the development of the application layer, and there is no need for go-back-n, thereby improving the packet loss detection retransmission and traffic congestion control mechanism and improving efficiency and performance.

[0119] The following further describes this solution by taking the IPv6 message header as an example. It is understandable that this solution can also be applied to other types of IP message headers, such as the IPv4 message header, by performing similar extensions in the option field, so as to be applied in the IPv4 scenario.

[0120] On the sending side:

[0121] The sender adds a sequence number extension field to the IPv6 header, where the message format of the third data packet is shown in FIG7 , the RT field is set to 00, and the SN field is set to 03; thereafter, the fourth, fifth, sixth, ... messages are sent continuously.

[0122] On the receiving end:

[0123] Scenario 1: The receiving end receives the third data packet, and after confirming that it is correct, it sends a confirmation data packet to the sending end. At this time, the RT field is set to 01 and the SN field is set to 04, indicating that the third data packet has been received and it hopes to receive the fourth data packet next. The format is shown in Figure 8.

[0124] Scenario 2: If the receiving end does not receive the third data packet within the timeout period, it sends a retransmission request packet to the sending end. At this time, the RT field is set to 10 and the SN field is set to 03, indicating that the sending end is expected to retransmit the third packet. The format is shown in Figure 9, and the effect is shown in Figure 10. Only the lost third data packet needs to be retransmitted.

[0125] It should be noted that when a data packet is retransmitted, the sender may also actively retransmit it. For example, when the sender does not receive a confirmation data packet from the receiver within the timeout period, it is considered lost and the third data packet is retransmitted.

[0126] It can be understood that existing UDP-based technologies (including RoCEv2) can only achieve reliable transmission with the help of application layer (or IBTH) communication, which has high requirements for equipment (data needs to be parsed to UDP and above levels) and low efficiency. The go-back-n retransmission mechanism causes a large number of retransmission packets, affecting network throughput performance. The method proposed in this application is based on the IPv6 extension header. The device only needs to support IPv6 and only needs to be parsed to the IP layer. The sender and receiver do not need to parse UDP, IBTH, RTP and other application layers, and by combining with the selective retransmission mechanism, efficient and lossless transmission in the wide area network can be achieved. The packet loss retransmission mechanism in UDP and RoCEv2 scenarios can be optimized, the transmission efficiency and network throughput can be improved, and RoCEv2 can be applied to non-strictly lossless wide area scenarios (including IP networks), expanding the value connotation of RoCEv2, expanding the scope of application, and reducing deployment costs. In the future, it can be integrated and deployed with technologies such as RDMA, PFC (Priority Flow Control), and ECN (Explicit Congestion Notification). Through the intelligent and dynamic combination of the retransmission mechanism and cache of this method, it can provide end-to-end wide-area lossless, high-throughput, and low-latency transmission from DC / cloud / server to the other end via the wide area network, achieving the best balance of performance, stability, and quality from the near end, network, and far end, and meeting business needs such as remote intelligent computing, storage and computing separation, high-throughput data circulation, and massive data migration.

[0127] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0128] Based on the same inventive concept, the embodiment of the present application also provides a packet loss retransmission device for implementing the packet loss retransmission method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more packet loss retransmission device embodiments provided below can refer to the limitations of the packet loss retransmission method above, and will not be repeated here.

[0129] In one embodiment, as shown in FIG11 , a packet loss retransmission device is provided, comprising:

[0130] The receiving module 1101 is used to receive a data packet sent by a sending end; a first extension field is added to the target message header of the IP layer of the data packet, and the first extension field is filled with a sequence number, which is used to indicate the sequence number of the data packet;

[0131] A detection module 1102, configured to perform packet loss detection according to a sequence number in a data packet;

[0132] The determination module 1103 is used to determine the target sequence number of the lost data packet when detecting that there is a lost data packet;

[0133] The sending module 1104 is used to send a retransmission request packet carrying a target sequence number to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

[0134] In one embodiment, the detection module 1102 is further used to detect the continuity between the sequence number of the data packet and the sequence number of the data packet received by the receiving end; if a missing sequence number is detected, the data packet corresponding to the missing sequence number is determined to be a lost data packet.

[0135] In one of the embodiments, the device further includes a sequence number extraction module for parsing the IP layer of the data packet to determine the message header position corresponding to the target message header; and extracting the sequence number of the data packet according to the message header position.

[0136] In one of the embodiments, the sequence number extraction module is further used to parse the IP layer of the data packet, determine the header number filled in the basic header of the IP layer; and use the position of the header corresponding to the header number as the header position corresponding to the target header.

[0137] In one of the embodiments, the device also includes a request packet construction module for constructing a retransmission request packet; a first extension field and a second extension field are added to the target message header of the IP layer of the retransmission request packet, the first extension field is filled with the target sequence number, and the second extension field is filled with first indication information, and the first indication information is used to instruct the receiving end to resend the data packet corresponding to the target sequence number.

[0138] In one of the embodiments, the sending module 1104 is also used to send a confirmation data packet to the sending end when no lost data packet is detected; a first extension field and a second extension field are added to the target message header of the IP layer of the confirmation data packet, the first extension field is filled with the next sequence number of the sequence number of the data packet, and the second extension field is filled with second indication information, and the second indication information is used to indicate that the data packet transmission is normal; the sending end is used to send the data packet corresponding to the next sequence number to the receiving end according to the second indication information.

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

[0140] In one embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be shown in FIG12. The computer device includes a processor, a memory, a communication interface, a display screen, and an input device connected through a system bus. 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 and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a packet loss retransmission method is implemented. The display screen of the computer device may be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device may be a touch layer covered on the display screen, or a key, trackball or touchpad provided on the housing of the computer device, or an external keyboard, touchpad or mouse, etc.

[0141] Those skilled in the art will understand that the structure shown in FIG. 12 is merely a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.

[0142] In one embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiments when executing the computer program.

[0143] 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 steps in the above-mentioned method embodiments are implemented.

[0144] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.

[0145] 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 used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.

[0146] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and 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-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile 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. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.

[0147] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, 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, they should be considered to be within the scope of this specification.

[0148] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A packet loss retransmission method, characterized in that: Applied to the receiving end, the method includes: Receive a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet; Perform packet loss detection according to the sequence number in the data packet; In the event that a lost packet is detected, determining a target sequence number of the lost packet; A retransmission request packet carrying the target sequence number is sent to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

2. The method according to claim 1, characterized in that: The performing packet loss detection according to the sequence number in the data packet includes: Detecting the continuity between the sequence number of the data packet and the sequence number of the data packet received by the receiving end; If a missing sequence number is detected, the data packet corresponding to the missing sequence number is determined to be a lost data packet.

3. The method according to claim 1, characterized in that Before performing packet loss detection according to the sequence number in the data packet, the method further includes: Parsing the IP layer of the data packet to determine the message header position corresponding to the target message header; The sequence number of the data packet is extracted according to the message header position.

4. The method according to claim 3, characterized in that The parsing of the IP layer of the data packet to determine the message header position corresponding to the target message header includes: Parsing the IP layer of the data packet to determine the message header number filled in the basic message header of the IP layer; The position of the message header corresponding to the message header number is used as the message header position corresponding to the target message header.

5. The method according to claim 1, characterized in that Before sending the retransmission request packet carrying the target sequence number to the transmitting end, the method further includes: Construct the retransmission request packet; add a first extension field and a second extension field to the target message header of the IP layer of the retransmission request packet, the first extension field is filled with the target sequence number, the second extension field is filled with the first indication information, and the first indication information is used to instruct the receiving end to resend the data packet corresponding to the target sequence number.

6. The method according to claim 1, characterized in that After performing packet loss detection according to the sequence number in the data packet, the method further includes: In the case where no lost data packet is detected, sending a confirmation data packet to the sending end; a first extension field and a second extension field are added to the target message header of the IP layer of the confirmation data packet, the first extension field is filled with the next sequence number of the sequence number of the data packet, and the second extension field is filled with the second indication information, and the second indication information is used to indicate that the data packet transmission is normal; The sending end is used to send the data packet corresponding to the next sequence number to the receiving end according to the second indication information.

7. A packet loss retransmission device, characterized in that: The device comprises: A receiving module, used for receiving a data packet sent by a sending end; a first extension field is added to a target message header of an IP layer of the data packet, the first extension field is filled with a sequence number, and the sequence number is used to indicate a sequence number of the data packet; A detection module, used for performing packet loss detection according to a sequence number in the data packet; A determination module, used for determining a target sequence number of a lost data packet when a lost data packet is detected; The sending module is used to send a retransmission request packet carrying the target sequence number to the sending end, so that the sending end resends the data packet corresponding to the target sequence number.

8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the packet loss retransmission method according to any one of claims 1 to 6 are implemented.

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

10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the packet loss retransmission method described in any one of claims 1 to 6 are implemented.

Citation Information

Patent Citations

  • Data transmission method and device based on UDP (User Datagram Protocol)

    CN105791154A

  • Method and device for solving video frame packet loss by using RTP extension header

    CN110876091A

  • Data retransmission processing method and device, computer equipment and storage medium

    CN113037440A

  • Data transmission method and device, network equipment and storage medium

    CN117527681A

  • Packet transmission method, terminal, network device, and communications system

    US20190319889A1

Cited By

  • Data retransmission method and device, chip, network interface card, equipment, medium and program product

    CN120378065A

  • Data retransmission method, device, chip, network interface card, equipment, medium and program product

    CN120378065B

  • Message data synchronization method and system

    CN121037965A

  • Virtual data packet transmission method and device, equipment, storage medium and program

    CN121396927A