[go: up one dir, main page]

CN116260553A - Method, device and system for retransmitting data - Google Patents

Method, device and system for retransmitting data Download PDF

Info

Publication number
CN116260553A
CN116260553A CN202111506237.3A CN202111506237A CN116260553A CN 116260553 A CN116260553 A CN 116260553A CN 202111506237 A CN202111506237 A CN 202111506237A CN 116260553 A CN116260553 A CN 116260553A
Authority
CN
China
Prior art keywords
data packet
section
sequence information
retransmission request
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111506237.3A
Other languages
Chinese (zh)
Inventor
丁力
刘永志
孙德胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111506237.3A priority Critical patent/CN116260553A/en
Publication of CN116260553A publication Critical patent/CN116260553A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

The application provides a data retransmission method, device and system, wherein the data retransmission method comprises the following steps: detecting whether a received part of the first data packet has errors or not by taking a section as a unit in the process of receiving the first data packet or after receiving the first data packet, wherein the length of the section is smaller than or equal to the first length; determining that a first section in the first data packet has an error; a first retransmission request is sent requesting retransmission of the first section of the first data packet and the remainder of the first section of the first data packet. In the method, the first retransmission request is sent to the sending end network element, so that the sending end network element can determine the first data packet needing to be retransmitted and the starting position of retransmission, and the whole data packet does not need to be retransmitted, so that the time delay caused by frame-based link-level retransmission can be reduced. In addition, the method and the device do not need to introduce additional overhead, so that the overhead required by data transmission can be saved.

Description

Method, device and system for retransmitting data
Technical Field
The present invention relates to the field of network communications, and in particular, to a method, an apparatus, and a system for retransmitting data.
Background
The packet loss every day/hour becomes a necessary event in the high-speed ethernet interface at critical error performance. Conventional ethernet connectionless retransmission mechanisms rely either on remote direct data access (remote direct memory access, RDMA) or transmission control protocol (transmission control protocol, TCP) end-to-end retransmission or on link-level enhanced coordination sublayer (reconciliation sublayer, RS) schemes when packet loss occurs. However, in the two schemes, the end-to-end retransmission of the former will bring about a larger delay, while the latter implies a larger area, power consumption and static delay.
Therefore, in order to solve the problem of packet loss of the Ethernet, the conventional Ethernet can be enhanced, and the recovery of packet loss is realized by adding link-level retransmission. In addition, in the high-speed ethernet, the ethernet frame is mapped into a plurality of FEC codes through Reed-solomon forward error correction codes (Reed-Solomon forward error correction, RS-FEC), so that errors occurring in the transmission process are corrected, and when one FEC codeword cannot be corrected, a reverse-transcoded code block is mapped into an E code block (error code block). However, since ethernet supports large frames (e.g., 9600 bytes), when a frame has only the last 1 bit error, conventional frame-based retransmission mechanisms still need to retransmit the entire frame once, thus introducing a large sequence number delay, e.g., 76.8us for a 1Gbps port for 9600 byte frames.
To address the latency issues associated with the retransmission of a macro frame, the 802.11 specification divides a macro frame into multiple small frames. Specifically, by slicing, a long frame is split into a plurality of small frames, the head of each small frame is added with a sequence number of the long frame to which the small frame belongs and the sequence number of the small frame, and the tail of each small frame is added with a cyclic redundancy check (cyclic redundancy check, CRC). Since each small frame is short in length, errors are less likely to occur. If the error in the data transmission process needs to be retransmitted, only the error small frame is retransmitted, and the whole original frame is not retransmitted. However, this approach requires additional overhead to be added to the header and/or trailer of each small frame.
Therefore, how to solve the latency problem caused by frame-based link level retransmission and save the overhead required by data transmission is a problem to be solved urgently.
Disclosure of Invention
The application provides a data retransmission method, device and system, which can reduce time delay caused by frame-based link-level retransmission and can save cost required by data transmission.
In a first aspect, a method of data retransmission is provided that may be applied in a processor-based and I/O device interconnect interface (peripheral component interconnect express, PCIe) or ethernet connection-based network between two or more devices. The method may be performed by a receiving end network element.
The method may include: detecting whether a received part of the first data packet has an error in a section unit during or after receiving the first data packet, wherein the length of the section is less than or equal to the first length; determining that the error exists in a first section of the first data packet; a first retransmission request is sent requesting retransmission of the first section of the first data packet and a remaining portion of the first data packet after the first section.
Specifically, the first data packet may be an ethernet data packet, or may be other data packets. In some possible implementations, the first packet may also be a TLP, or may also be a flit.
It will be appreciated that the first data packet described above includes a preamble and a frame check sequence FCS.
In some possible implementations, the preamble of the first data packet carries sequence information of the first data packet, where the sequence information of the first data packet is used to indicate a sending sequence of the first data packet; or the preamble of the first data packet carries the sequence information of the first section of the first data packet. In some possible implementations, the sequence information of the first section of the first data packet is determined by the transmitting network element according to the sum of sections included in the data packet that has been transmitted before the first data packet is transmitted in the current data transmission process.
It should be noted that the first section is a section (segment) of the received portion of the first data packet, that is, the first section does not include additional header and trailer overhead.
Further, the detected section is determined according to a first length agreed with the network element at the transmitting end, and the network element at the receiving end sequentially determines which section in the first data packet has an error by taking the first length as a unit.
In some possible implementations, the errors described above may be embodied by E-code blocks (or error control words).
In some possible implementations, after the sending network element receives the first retransmission request, it determines, according to the sequence information of the first section, to retransmit from the error portion of the first data packet, instead of retransmitting the entire first data packet.
It should be understood that after receiving the first section of the first data packet and the remaining portion of the first section of the first data packet, the received first data packet segment is still detected according to the agreed first length, and if an error is still detected, the first retransmission request is sent again until the complete correct data packet.
In the technical scheme, through the agreed first length, whether a certain section with the first length in the received data packet is wrong or not is checked, and extra head overhead or check overhead is not needed to be added for the section. When an erroneous data packet is received, retransmission is requested from the erroneous section, retransmission of the entire data packet is avoided, and retransmission delay is reduced. And, since overhead is not additionally introduced, overhead required for data transmission can be saved.
With reference to the first aspect, in certain implementations of the first aspect, the method further includes: detecting whether the error exists in the idle code block by taking the section as a unit; and after determining that the idle code block has the error, sending the first retransmission request, wherein the first retransmission request is used for requesting to retransmit the data packet after the idle code block.
It should be appreciated that the idle code block is the code block between two data packets. In some possible implementation manners, when the section where the idle code block is located detects an error, the sending end network element is still requested to retransmit the data packet after the idle code block, so as to improve data transmission efficiency and reduce retransmission delay.
With reference to the first aspect, in certain implementations of the first aspect, the method further includes: detecting whether the E code block exists in the received part of the first data packet in a section unit.
It will be appreciated that when the error marker function of FEC is turned on, a reverse transcoded code block will be mapped to an E code block when one FEC codeword cannot be corrected. When an E-code block is detected, data representing the code block is corrupted and a retransmission needs to be requested.
With reference to the first aspect, in certain implementations of the first aspect, the method further includes: after determining that the error exists in the first section of the first data packet, discarding the first section of the first data packet and the remaining part of the first data packet after the first section.
With reference to the first aspect, in certain implementations of the first aspect, the first retransmission request carries sequence information of the first section.
In some possible implementations, the sequence information of the first section is determined by the receiving network element according to the sequence information of the first section of the first data packet carried in the preamble.
In some possible implementations, the first retransmission request carries the sequence information of the first section and the sequence information of the first data packet, and the sequence information of the first section may be the number of sections in the first data packet in which no error is detected before the first section.
With reference to the first aspect, in certain implementations of the first aspect, the sequence information of the first section indicates a number of sections detected without errors before the first section.
In some possible implementations, the first length is N bytes, and the first section in the first data packet is a section of the first section in the first data packet with a length of N bytes, where the section number of the section may be denoted as "0", and the number is denoted as "1" after the receiving network element determines that there is no error in the first section. Every time a section with a length of N bytes is detected, the number is increased by 1, namely, after the nth section is detected and the nth section is determined to be free of errors, the number is marked as N, and the section serial number of the nth section is N-1. If the n+1th section is detected to be in error, carrying the recorded number 'n' in the sequence information of the first section so as to request the network element at the transmitting end to retransmit data from the n+1th section.
With reference to the first aspect, in certain implementations of the first aspect, the method further includes: determining sequence information of the first data packet according to the preamble of the first data packet; or determining the sequence information of the first section according to the preamble of the first data packet.
With reference to the first aspect, in certain implementations of the first aspect, the method further includes: and checking the first data packet, and when the first data packet fails to check, sending a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the second retransmission request is used for requesting to retransmit the first data packet, and the sequence information of the second section is a specific value or the sequence information of the second section is null.
In some possible implementations, the first data packet is checked by the FCS.
In some possible implementations, no errors are detected when detecting one or more sections in the first data packet. However, if the FCS check of the first data packet fails, which indicates that the transmission of the first data packet is wrong, the first data packet still needs to be retransmitted.
In some possible implementations, the sequence information of the first data packet may also be null.
In some possible implementations, the second section may be a first section in the first data packet, and the specific value may be a section number of the first section of the first data packet. Further, the segment number of the first segment may be the sequence number of the segment in the first data packet, for example: "0"; alternatively, the sequence number may be a segment sequence number carried in the first packet preamble.
In some possible implementations, the sending network element may determine that the first data packet is wrong according to the second retransmission request, and retransmit the first data packet.
In the technical scheme, when one or more sections in the first data packet do not detect errors, but the FCS check of the data packet fails, retransmission of the data packet and the subsequent data packets is requested to ensure the accuracy of data transmission.
With reference to the first aspect, in certain implementations of the first aspect, the method further includes: the first length is the length agreed with the network element at the transmitting end for transmitting the first data packet; alternatively, the first length is a preconfigured length.
In a second aspect, a method for retransmitting data is provided, which may be performed by a transmitting network element. Specifically, the method comprises the following steps: receiving a first retransmission request, wherein the first retransmission request carries sequence information of a first section of a first data packet with errors, the first section is a section with a length smaller than or equal to a first length in the first data packet, and the first length is a length agreed with a network element at a receiving end for receiving the first data packet; alternatively, the first length is a preconfigured length; and transmitting the first section and the rest part after the first section in the first data packet according to the first retransmission request.
In the technical scheme of the application, a transmitting end network element determines an error data packet and an error position of the error data packet according to sequence information of a first section of a first data packet in a first retransmission request, and retransmits from the error position. And the whole data packet is prevented from being retransmitted, and the retransmission time delay is reduced. And, since no additional overhead is additionally introduced, overhead required for data transmission can be saved.
With reference to the second aspect, in certain implementations of the second aspect, the method further includes: before the first section and the rest part after the first section in the first data packet are sent according to the first retransmission request, determining the first section of the first data packet needing to be retransmitted according to the sequence information of the first section.
In some possible implementations, the first retransmission request carries sequence information of the first data packet, and the sending-end network element determines a storage position of the first data packet in the retransmission buffer according to the sequence information of the first data packet.
In some possible implementations, the sending network element determines the location of the first segment in the first data packet according to the sequence information of the first segment and the first length agreed with the receiving network element.
With reference to the second aspect, in certain implementations of the second aspect, the method further includes: determining sequence information of a second section according to the first length before the first retransmission request is received, wherein the second section is a first section of the first data packet; the sequence information of the second section is carried in the preamble of the first data packet.
With reference to the second aspect, in certain implementations of the second aspect, the method further includes: receiving a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the sequence information of the second section is a specific value or the sequence information of the second section is null; and sending the first data packet according to the second retransmission request.
In the technical scheme, when errors are not detected in one or more sections in the first data packet, but the FCS check of the data packet fails, the sending end network element retransmits the data packet and the subsequent data packets thereof so as to ensure the accuracy of data transmission.
In a third aspect, an apparatus for retransmitting data is provided, the apparatus comprising: the processing unit is used for detecting whether the received part of the first data packet has errors or not by taking a section as a unit in the process of receiving the first data packet or after receiving the first data packet, and the length of the section is smaller than or equal to the first length; the processing unit is further configured to determine that the error exists in a first section of the first data packet; and the receiving and transmitting unit is used for transmitting a first retransmission request, wherein the first retransmission request is used for requesting retransmission of the first section of the first data packet and the rest part of the first section of the first data packet.
With reference to the third aspect, in some implementations of the third aspect, the processing unit is further configured to detect whether the idle code block has the error in units of the section; the receiving and transmitting unit is configured to send the first retransmission request after the processing unit determines that the idle code block has the error, where the first retransmission request is used to request retransmission of a data packet after the idle code block.
With reference to the third aspect, in certain implementations of the third aspect, the processing unit is further configured to: detecting whether the E code block exists in the received part of the first data packet in a section unit.
With reference to the third aspect, in certain implementations of the third aspect, the processing unit is further configured to: after the determination that the error exists in the first section of the first data packet, discarding the first section of the first data packet and a remaining portion of the first data packet after the first section.
With reference to the third aspect, in some implementations of the third aspect, the first retransmission request carries sequence information of the first section.
With reference to the third aspect, in certain implementations of the third aspect, the sequence information of the first section indicates a number of sections before the first section that are detected without errors.
With reference to the third aspect, in certain implementations of the third aspect, the processing unit is further configured to: before the first retransmission request is sent, determining sequence information of the first data packet according to a preamble of the first data packet; or determining the sequence information of the first section according to the preamble of the first data packet.
With reference to the third aspect, in certain implementations of the third aspect, the processing unit is further configured to: checking the first data packet; the transceiver unit is further configured to: and when the first data packet fails to be checked, a second retransmission request is sent, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the second retransmission request is used for requesting to retransmit the first data packet, and the sequence information of the second section is a specific value or the sequence information of the second section is null.
With reference to the third aspect, in some implementations of the third aspect, the first length is a length agreed with a network element at a transmitting end that transmits the first data packet; alternatively, the first length is a preconfigured length.
In a fourth aspect, there is provided an apparatus for retransmitting data, the apparatus comprising: the receiving and transmitting unit is used for receiving a first retransmission request, wherein the first retransmission request carries sequence information of a first section of a first data packet with errors, the first section is a section with a length smaller than or equal to a first length in the first data packet, and the first length is a length agreed with a network element at a receiving end for receiving the first data packet; alternatively, the first length is a preconfigured length; the transceiver unit is further configured to send the first section and a remaining portion of the first data packet after the first section according to the first retransmission request.
With reference to the fourth aspect, in certain implementations of the fourth aspect, the apparatus further includes a processing unit configured to: before the first section and the rest part of the first data packet after the first section are sent according to the first retransmission request, determining the storage position of the first data packet according to the sequence information of the first data packet; and determining the position of the first section in the first data packet according to the sequence information of the first section.
With reference to the fourth aspect, in certain implementations of the fourth aspect, the processing unit is further configured to: determining sequence information of a second section according to the first length before the first retransmission request is received, wherein the second section is a first section of the first data packet; the sequence information of the second section is carried in the preamble of the first data packet.
With reference to the fourth aspect, in some implementations of the fourth aspect, the transceiver unit is further configured to: receiving a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the sequence information of the second section is a specific value or the sequence information of the second section is null; and sending the first data packet according to the second retransmission request.
In a fifth aspect, a system for data retransmission is provided, the system comprising means for data retransmission as in any one of the possible implementations of the third aspect or the third aspect, and means for data retransmission as in any one of the possible implementations of the fourth aspect or the fourth aspect.
In a sixth aspect, there is provided a computer program product comprising: computer program code which, when run on a computer, causes the computer to perform the method of any one of the first to second aspects described above as possible.
In a seventh aspect, there is provided a computer readable medium storing program code which, when run on a computer, causes the computer to perform the first and second aspects and any one of the methods of the first and second aspects. These computer-readable stores include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), flash memory, electrically EPROM (EEPROM), and hard disk drive (harddrive).
In an eighth aspect, a chip is provided, the chip comprising a processor and a data interface, wherein the processor reads instructions stored on a memory via the data interface to perform the method of the first aspect or any one of the possible implementations of the first aspect. In a specific implementation, the chip may be implemented in the form of a Central Processing Unit (CPU), a microcontroller (microcontroller unit, MCU), a microprocessor (micro processing unit, MPU), a digital signal processor (digital signal processing, DSP), a system on chip (SoC), an application-specific integrated circuit (ASIC), a field programmable gate array (field programmable gate array, FPGA), or an editable logic device (programmable logic device, PLD).
Drawings
Fig. 1 is a schematic diagram of an application scenario of a method for retransmitting data provided in the present application;
fig. 2 is a schematic diagram of an application scenario of a device for retransmitting data provided in the present application;
fig. 3 is a schematic protocol stack architecture of a method for retransmitting data provided in the present application;
fig. 4 is a schematic diagram of a control code block used in a method for retransmitting data provided in the present application;
Fig. 5 is a schematic diagram of a method for retransmitting data provided in the present application;
fig. 6 is a schematic flow chart diagram of a method of data retransmission provided herein;
fig. 7 is a schematic flow chart diagram of a method of data retransmission provided herein;
fig. 8 is a schematic flow chart diagram of yet another method of data retransmission provided herein;
fig. 9 is a schematic flow chart diagram of yet another method of data retransmission provided herein;
fig. 10 is a schematic flow chart diagram of yet another method of data retransmission provided herein;
fig. 11 is a schematic flow chart diagram of yet another method of data retransmission provided herein;
fig. 12 is a schematic diagram of an apparatus for data retransmission provided in the present application;
fig. 13 is a schematic diagram of an apparatus for data retransmission provided in the present application.
Detailed Description
In order to facilitate understanding of the embodiments of the present application, related concepts related to the embodiments of the present application will be briefly described first:
1. 64B/66B code block (block): the 64B/66B code encodes 8 data bytes (data words) or control words into one code block. 64B/66B encoding data octets as D 0 ~D 7 The method comprises the steps of carrying out a first treatment on the surface of the Control words other than/O/,/S/and/T/are labeled C 0 ~C 7 The method comprises the steps of carrying out a first treatment on the surface of the Marking control words for ordered sets as O 0 Or O 4 The method comprises the steps of carrying out a first treatment on the surface of the Marking the control word for start as S 0 Or S 4 The method comprises the steps of carrying out a first treatment on the surface of the Marking control words for termination as T 0 ~T 7 . IEEE802.3 specifies a 64B/66B encoded pattern in which a data code block carrying a 2-bit synchronization header (sync header) and carrying 8 bytes (byte, i.e., 64 bits) is encoded as a physical layer (PHY) transport coding format for ethernet networks such as terabytes, 40G/100G/200G/400G, etc. Table 1 shows coding schemes of several control code blocks in 64B/66B coding, respectively S code block and T code block 7 Code blocks, I code blocks (idle code blocks), low power consumption code blocks (LI code blocks), and D code blocks.
Table 1, 66 bit coding schematic of several control code blocks
Figure BDA0003404492950000061
2. Layer 3 (L3/Layer 3): the network protocol (Internet protocol, IP)/multiprotocol label switching protocol layer (MPLS) layer, data transmission is routed through L1, L2 and network protocols of that layer, but not up-bound to higher layer logic functional units.
3. Layer 2 (L2/Layer 2): a medium access control layer (medium access control, MAC) routes data transfer through L1 and the layer's network protocols, but does not upload L3 and higher layer logic functional units for processing.
4. Layer 1 (L1/Layer 1): PHY layer, data transmission is only routed through the network protocol of this layer, and is not passed up to L2 and higher layer logic functional units for processing.
5. Coordination sublayer (reconciliation sublayer, RS) layer: the IEEE 802.3 standard defines a functional unit, which is located between the physical coding sublayers (physical coding sublayer, PCS) in the MAC layer and the PHY layer and is responsible for the negotiation of link failure and the mutual conversion of data code streams from the MAC layer to the PCS sublayer.
6. PHY link/physical link: the link between the two physical ports is connected.
7. Line card (linecard): carrying a set of cards with the same rate, function and type of physical ports. Most of the functionality of the subordinate physical ports of a line card is provided by the line card chip on that line card.
8. Reed-solomon forward error correction code (Reed-Solomon forward error correction, RS-FEC): an ethernet frame is finally mapped to one or more FEC Codewords (CW), which map reverse transcoded code blocks to E code blocks (error control words) when the error marker function of FEC is turned on.
9. Processor-based and I/O device interconnect interface (peripheral component interconnect express, PCIe) link-level retransmission mechanism: the protocol stack architecture of the PCIe link includes a transaction layer (transaction layer), a data link layer (data link), and a physical layer. Information for a general processor or I/O communication is encapsulated in one or more transaction layer messages (transaction layer packet, TLP) for transmission. And control information for flow control, as well as reliability aspects, is sent via data link layer messages (data link layer packet, DLLP). PCIe employs link-level retransmission techniques in order to ensure that the data packets are accurate and error-free. The link-level retransmission technique is mainly characterized by designing a DLLP with an ACK/NAK mechanism. ACK DLLP is used to acknowledge that the TLP was successfully received and NAK DLLP is used to indicate that an error was encountered in the TLP transmission. Specifically, the sender will make a backup for each TLP in a Replay Buffer (Replay Buffer), and will not delete the backup until it receives an ACK DLLP from the receiver, acknowledging that the TLP has been successfully accepted. If the receiving side finds that the TLP is wrong, NAK DLLP is sent to the sending side, and then the sending side fetches data from the Replay Buffer and resends the TLP. The TLP of PCIe sets a Sequence (Sequence) field in the header and arranges a CRC check mechanism in the trailer. Normally, each TLP and Sequence count sent and received is continuously accumulated, and after the accumulation reaches the maximum value, the process starts again at 0, and the receiving end determines whether the TLP is wrong or lost according to whether the Sequence is continuous or whether the CRC is correct.
10. Ethernet frame: the frame format sent by the Ethernet is as follows from the head to the tail in sequence: 6 OCTETS (OCTETS) destination address, 6 OCTETS source address, 2 OCTETS length/type, 46-1500 OCTETS or 46-1504 OCTETS or 46-1982 OCTETS MAC client data and program related data, and 4 OCTETS frame check sequence (frame check sequence, FCS). Wherein the FCS field places the result of the CRC-32 calculation for protecting the entire ethernet frame.
The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
An application scenario of an embodiment of the present application is described with reference to fig. 1, and the embodiment of the present application may be applied to a network supporting ethernet connection between two or more devices. As shown in fig. 1 (a), the network comprises a head-end node a and a tail-end node B, between which one or more links may exist; alternatively, as shown in (B) of fig. 1, the method and apparatus of the embodiments of the present application may be applied between adjacent nodes (a-B, B-C) or end-to-end (a-C). It should be understood that the embodiment of the present application is shown in fig. 1 for illustrating an exemplary manner, and the network may include a plurality of nodes, and the method and apparatus of the embodiment of the present application may be applied between each adjacent node and each adjacent node, which is not limited in this embodiment. It should be understood that A, B and C shown in fig. 1 may be both transmitting and receiving network elements.
Further, the present application may be applied in a device product supporting connection of ethernet technology. As shown in fig. 2, the apparatus 100 provided in the embodiment of the present application may be applied to a computer, and in particular, may be applied to an interface processing unit of a central processing unit (central processing unit, CPU), a solid state disk (solid state disk or solid state drive, SSD), a graphics processor (graphics processing unit, GPU), or the like; or, the method can also be applied to interface processing units of devices such as box-type or frame-type Ethernet switches, ethernet card routers and the like; alternatively, the present embodiment may be applied to an interface processing unit of another processor, which is not limited in this application.
Fig. 3 is a schematic diagram of a protocol stack structure applied to a method, an apparatus and a system for data retransmission according to an embodiment of the present application. Among them, the PHY layer of the ethernet layer includes a PCS layer, a forward error correction layer (forward error correction, FEC), a physical medium access sublayer (physical medium attachment, PMA), a physical medium correlation sublayer (physical medium dependent, PMD), and AN Auto-negotiation layer (AN). The receiving end FEC layer decodes the received signals, and corrects error codes generated in the transmission process after finding out the error codes. When the FEC layer cannot correct the error code, the code block converted by the codeword is marked as an E code block. It should be understood that fig. 3 is only an exemplary illustration, and the architecture to which embodiments of the present application apply is not limited thereto.
As described above, since the initial wireless transmission is susceptible to interference or noise, it is not suitable for transmitting a long data frame. The longer the data frame, the greater the probability of error. Therefore, to solve the latency problem caused by the macro-frame retransmission, a long frame or message is usually split into multiple "slices", and each "slice" is less prone to error due to its shorter length. Specifically, the "sliced" form includes: small frames, link transport packets (link transfer packets, LTP), flits (flits), etc. The following describes the above-mentioned several slices in detail:
in one implementation, layer 2 divides a macro frame into a plurality of small frames. The small frames include a portion of the data of the entire frame, and furthermore, the header of each small frame is additionally increased by the overhead of one MAC HDR (including frame sequence number, slice sequence number) and the tail is additionally increased by the overhead of one CRC. If the error in the data transmission process needs to be retransmitted, only the error small frame is retransmitted, and the whole original frame is not retransmitted.
In another implementation, the Layer 2 to Layer 1.5 interface fragments a maximum 10368bit message into 128-byte LTPs, each LTP including 16 flits of 65 bits in length, and adds an additional 14bit CRC at the tail of the LTP. Whether each LTP is in error or not is judged through CRC, and the retransmission granularity is one LTP instead of the whole Ethernet frame.
In yet another implementation, the TLP is fragmented into flits of 68-bytes, the tail of each flit is incremented by 2 bytes of CRC, and the retransmission granularity is one flit, instead of the TLP of the upper layer.
It can be seen that in the above several implementations, when performing link retransmission, although the entire frame structure is not required to be retransmitted, overhead is introduced after slicing. In view of this, the embodiments of the present application provide a method, an apparatus, and a system for retransmitting data, which can solve the latency problem caused by the retransmission of a huge frame, and can avoid the additional overhead caused by the fragmentation of the frame.
In some possible implementations of embodiments of the present application, taking the deployment of a 100G ethernet link between a and Z network elements as an example, the MAC/PCS is based on 64B/66B encoding and decoding, and the automatic repeat request (automatic repeat request, ARQ)/response message is based on a 64B/66B control code block of IEEE802.3 specification, of type 0x4B, o 0 A reserved value, such as 0x7, is selected. Fig. 4 (a) and (B) show two types of 0x4B control code blocks, respectively, applied to the embodiment of the present application. In the type shown in FIG. 4 (a), D 0 ,D 1 ,D 2 ,D 5 ,D 6 And D 7 For carrying ARQ request/response messages. Of the types shown in fig. 4 (b), only D1 to D3 are available for three bytes in total. The individual field definitions of the O-code block shown in fig. 4 are shown in table 2.
Table 2, O code block individual field definitions
Figure BDA0003404492950000091
It should be noted that, in some possible implementations, for example, when an error occurs between two data packets, the sequence number carried in the PktSeqID field of [11:0] may also be the sequence number of the previous data packet of the data packet where the section to be retransmitted is located. In some possible implementations, the segment number carried in the slice id field of [9:0] may also be the segment number of the last segment of the segments that need to be retransmitted, which is not specifically limited in the embodiments of the present application. It should be noted that, the receiving end network element and the sending end network element need to agree in advance on which information the fields carry.
It will be appreciated that after 64B/66B encoding of the ethernet frame, a sequence is formed comprising a header code block S, a data code block D and a tail code block T, the S code block comprising S 0 And S is 4 Two, T includes T 0 ~T 7 8 kinds of the materials are used. S of the embodiment of the present applicationCode block selection S 0 According to IEEE802.3, S 0 D of code block 1 ~D 6 Byte value is binary 10101010, D 7 The value is 10101011. The embodiment adopts S 0 D of code block 3 And D 4 Sequence number (sequence number) carrying ethernet messages. When the message is transmitted, the sequence number is generated by 64B/66B coding of PCS, and S is used for generating the sequence number 0 D of (2) 3 And D 4 The bearer is used for identifying the front-to-back sequence of the Ethernet message (or frame) transmission. The receiving end can receive the data from S 0 D of (2) 3 And D 4 The sequence number is extracted. Further, a byte, such as D, may be arranged 5 And the method is used for bearing CRC-8 and protecting 16 bits of the whole sequence number.
Fig. 5 illustrates a method for retransmitting data according to an embodiment of the present application, where an ethernet packet is divided into virtual slices (slices) with a fixed length (a fixed size), and the virtual slices are a segment with a fixed length in the ethernet packet, so as to be distinguished from the above-mentioned "slices", which will be hereinafter referred to as "segments". It should be appreciated that this section is virtually set for ease of detection and request for retransmission, each section does not add any header (sequence number) and trailer (check) overhead. Specifically, the embodiments of the present application relate to a receiving (Tx) end network element and a transmitting (Rx) end network element of a data link, where the Tx end network element and the Rx end network element agree on a length N of a section. In some possible implementations, the Tx end network element and the Rx end network element may agree on the length N of the segment through static configuration or through negotiation determination, which is not limited in the embodiments of the present application. Specifically, as shown in fig. 5, 1) when the length M of a packet is less than or equal to N, the packet corresponds to a section; 2) When the length M of a data packet is greater than or equal to N, the data packet corresponds to a plurality of sections: (1) when M% n=0, the packet corresponds to M/N sections; (2) when M% N-! When=0, the packet corresponds to ceil (M/N) sections, where the length of the last section is M% N.
Fig. 6 is a schematic flowchart of a method for retransmitting data, which is provided in an embodiment of the present application, and may be applied to the scenario shown in fig. 1, or may be applied to the apparatus 100 shown in fig. 2. In some possible implementations, the method may also be used in the protocol stack architecture shown in fig. 3, which is not limited by the embodiment of the present application. The method 600 will be described in detail below in conjunction with fig. 6-9. Specifically, the method 600 includes the following process.
S601, a transmitting end network element transmits a first data packet.
The first data packet may be an ethernet frame, or may be another data frame. In some possible implementations, the first packet may also be a TLP, or may also be a flit, which is not limited in this embodiment of the present application.
In some possible implementations, the MAC/PCS of the sending network element receives a first packet from the network layer, carries a sequence number of the first packet in a preamble of a first data packet, and sends the first data packet to the receiving network element; meanwhile, the PCS layer of the transmitting network element stores the first data packet in a replay buffer (replay buffer) shown in fig. 7.
In some possible implementations, the transmitting network element carries the segment number of the first segment of the first data packet in a preamble, and sends the first data packet to the receiving network element.
Specifically, the transmitting network element determines the segment number of the first segment of the first data packet according to the agreed segment length N. In some possible implementations, the first data packet is a first data packet sent by the sending end network element to the receiving end network element, and the section sequence number of the first section carried in the preamble is "0"; in some possible implementations, the first data packet is an nth data packet sent by the sending end network element to the receiving end network element, and the first n-1 data packets have X segments, where the segment number of the first segment carried in the preamble of the first data packet is "X".
It should be appreciated that the first packet is terminated with an FCS.
It should be noted that, since the high-speed ethernet can provide bidirectional broadband communication, bandwidth upgrade can be flexibly performed according to the requirement of the user for bandwidth. In order to solve the problem of ethernet packet loss, the sending end network element and the receiving end network element need to turn on the error marking function of RS-FEC.
In some possible implementations, before the sending end network element sends the first data packet to the receiving end network element, the FEC layer encodes the first data packet based on RS-FEC so that the receiving end network element checks the first data packet.
S602, the FEC layer of the network element at the receiving end decodes the first data packet, and marks the code block converted by the uncorrectable error code word generated in the transmission process as an E code block.
When the receiving end network element receives the first data packet, and when one RS-FEC codeword cannot be corrected, the code block converted by the whole codeword is marked as an E code block, as shown in fig. 8.
S603, the MAC layer of the receiving end network element checks whether E code blocks exist in one or more sections of the first data packet according to the agreed length N.
It should be appreciated that the one or more segments are virtual fragments illustrated in fig. 5, which are essentially a segment (segment) of the first packet that has a length less than or equal to the contracted length N.
Illustratively, in connection with fig. 9, a description will be given of a section length of 256B agreed by the transmitting-end network element and the receiving-end network element. As shown in fig. 9, the transmitting network element transmits 768B of the data packet 0, and the data packet may be divided into 3 segments according to the agreed segment length; packet 1 of 768B is then sent, also divided into 3 sections. It should be understood that packet 0 represents the packet sequence number 0 and represents the first packet that the packet is sent. Further, the step of checking the received data packet by the receiving end network element is as follows:
In some possible implementations, the receiving network element determines the sequence number of the first data packet according to the preamble of the first data packet. Further, during or after the receiving end network element receives the first data packet, the MAC layer sequentially detects whether an E code block exists in each 256B-sized section with 256B as a section unit. It should be noted that, while detecting, the detected sections without errors are counted, the section number of the first section in each packet is marked as 0, the section number of the second section is marked as 1, and so on. It should be understood that when the nth segment of the nth packet is detected, the segment number recorded by the receiving network element is n-1. When detecting that there is an E-code block in a certain segment, the receiving-end network element sends an ARQ request to the transmitting-end network element, i.e., S604 is performed.
In some possible implementations, the receiving network element determines the segment number of the first segment of the first data packet according to the preamble of the first data packet. Further, the receiving end network element sequentially detects whether an E code block exists in each 256B-sized segment by taking 256B as a segment unit. At the same time as the detection, the detected sections without errors are counted. It should be noted that, the starting sequence number counted at this time is the segment sequence number of the first segment of the first data packet carried in the preamble of the first data packet. For example, if the segment number of the first segment in the first data packet carried in the preamble is X, when the nth segment of the first data packet is detected, the segment number recorded by the receiving end network element is x+n-1. When detecting that there is an E-code block in a certain segment, the receiving-end network element sends an ARQ request to the transmitting-end network element, i.e., S604 is performed.
And S604, when the E code block exists in the first section, the receiving end network element sends an ARQ request.
Specifically, when there is an E-code block in the first segment, it represents that the segment and its subsequent segments and data packets need to be retransmitted. It should be noted that the ARQ request carries first information, where the first information is used to indicate a location where the first segment is located in one or more first data packets sent by the sending network element.
In some possible implementations, the error may occur in a D code block of the data packet, i.e., a D code block is an E code block, as shown in (a) of fig. 9, where an error occurs in a third D code block of the second data packet, i.e., an error occurs in a second section of the second data packet; alternatively, the error may occur in the T-code block of the data packet, i.e., the T-code block is the E-code block, as shown in (b) of fig. 9, and the T-code block of the second data packet has an error, i.e., the third section of the second data packet has an error; alternatively, the error may occur in the S code block of the data packet, that is, the S code block is the E code block, as shown in (c) of fig. 9, and the S code block of the second data packet has an error, that is, the first section of the second data packet has an error; alternatively, an error may occur in an I-code block between two data packets, i.e., the I-code block is an E-code block, and as shown in (d) of fig. 9, an error occurs in an I-code block in the middle of the first data packet and the second data packet, and it may be considered that an error occurs in the first section of the second data packet.
In some possible implementations, the ARQ request may be sent based on an O-code, and the information carried by each field of the O-code may be as shown in table 3 or table 4, corresponding to the error. For example, the first information may be expressed as < PktSeqID: n, sliceID: m >, indicating that the section requiring retransmission is the (m+1) th section in the nth data packet. As shown in table 3.
One example of information carried by each field of the O code corresponding to each error in tables 3 and 9
Figure BDA0003404492950000111
In some possible implementations, the first information may be expressed as < PktSeqID: n, sliceID: m >, indicating that the section requiring retransmission is the m+2th section in the nth packet, or indicating that the section requiring retransmission is the first section of the n+1th packet, as shown in table 4.
Another illustration of information carried by each field of the O-code corresponding to each error in tables 4 and 9
Figure BDA0003404492950000121
In some possible implementations, the first information may be expressed as < sliceID: m >, indicating the location of the section that needs to be retransmitted in all the packets sent this time.
It should be understood that the form of the first information is merely illustrative, and the first information may be other sequence information of the data packet where the section capable of indicating the error exists and the information of the section sequence number.
It should be noted that, when the receiving end network element detects that the first section has the E code block, the receiving end network element discards the first section and the subsequent data packet or message until receiving the ARQ response.
S605, the transmitting network element determines, according to the ARQ request, a position of the first data packet to be retransmitted in the replay buffer and a position of the first segment in the first data packet.
The transmitting end network element determines the position of a first data packet needing to be retransmitted in a replay buffer area and the position of a first section in the first data packet according to the first information in the ARQ request.
In some possible implementations, the sending network element determines the location of the first data packet in the playback buffer according to the sequence number in the first information, and determines the location of the first section in the first data packet according to the section sequence number in the first information.
In some possible implementations, the sending network element determines an erroneous data packet according to the segment sequence number, and the position of the erroneous segment in the erroneous data packet.
S606, the transmitting end network element transmits ARQ response.
Note that the ARQ response may be sent based on an O code, and more specifically, the corresponding field of [3:1] in the ARQ response is 3' b010, corresponding to the ARQ request in table 3 or table 4, and the other fields are unchanged.
S607, the transmitting end network element transmits the first section and the subsequent sections of the first data packet.
Specifically, the sending network element retransmits the playback buffer, the first section, the subsequent section in the first data packet, and the subsequent data packet once, as shown in fig. 9.
It should be noted that, in the embodiment of the present application, the ARQ request/response message may use the control code block shown in fig. 4, or may also use other control code blocks that may carry the sequence number of the first data packet with error and the segment sequence number of the first segment with error, which is not limited in the embodiment of the present application.
It should be understood that the first data packet in the embodiments of the present application may be any data packet in the data transmission process, and the first section may be any section in the first data packet.
According to the data retransmission method provided by the embodiment of the application, whether the E code block appears in the section of the data packet is checked through the agreed section size, whether the section is in error is judged, and any header overhead or check overhead is not required to be added to the section. When an erroneous data packet is received, retransmission is requested from the erroneous section, retransmission of the entire data packet is avoided, and retransmission delay is reduced.
In some possible implementations, when the receiving network element detects the received first data packet according to the agreed section length N, it detects that none of the last sections of the first data packet detects the E-code block. However, when the FCS of the first packet is checked, the FCS check fails, which means that the packet is in error during transmission, and an ARQ request still needs to be initiated for the first packet. At this time, in the first information carried in the ARQ request, the sequence number may be the sequence number of the first data packet, and the segment sequence number may be the segment sequence number of the first segment of the first data packet, that is, 0. As shown in (b) of fig. 9, if FCS check of the first packet fails, the first information may be < PktSeqID:0, sliceid:0>. It should be understood that the data retransmitted at this time is the first data packet and the subsequent data packets. In some possible implementations, in the first information carried in the ARQ request, the sequence number may be a sequence number of the first data packet, and the segment sequence number may be null. In some possible implementations, in the first information carried in the ARQ request, the sequence number may be null, and the segment sequence number may be a segment sequence number of a first segment of the first data packet carried in a preamble of the first data packet.
In some possible implementations, when the information carried by the preamble of the first data packet is the segment number of the first segment of the first data packet, the receiving network element may still determine the sequence number of the first data packet by counting the preamble.
It should be understood that after the receiving end network element receives the retransmitted segment or data packet, the receiving end network element still detects and verifies the received retransmitted segment or data packet according to the agreed segment length N, and if there is an error, S604-S607 are repeated until all correct data packets are received.
According to the data retransmission method provided by the embodiment of the application, whether the section of the data packet is in error is judged by checking whether the section has the E code block or not. When the E code block is not detected in a received data packet, but the FCS check of the data packet fails, retransmitting the data packet and the following data packets so as to ensure the accuracy of data transmission.
Fig. 10 shows a schematic flowchart of a method 1000 for retransmitting data according to an embodiment of the present application, where the method 1000 may be applied to the scenario shown in fig. 1 or may be applied to the apparatus 100 shown in fig. 2. In some possible implementations, the method may also be used in the protocol stack architecture shown in fig. 3, which is not limited by the embodiment of the present application. Specifically, the method 1000 may be performed by a receiving end network element, where the method 1000 includes:
S1010, detecting whether the received part of the first data packet has errors or not by taking a section as a unit in the process of receiving the first data packet or after receiving the first data packet, wherein the length of the section is smaller than or equal to the first length.
The first data packet may be the first data packet in the method 600, or may be another data packet, which is not limited in this embodiment of the present application.
In some possible implementations, the error may be an E-code block (or referred to as an error control word) in the foregoing embodiment, and a method flow for determining that an error check exists may refer to descriptions in the foregoing embodiments, which are not repeated herein.
In some possible implementations, the first length may be a length N agreed by the sending network element and the receiving network element in the method 600, or may be a length configured in advance.
S1020, determining that an error exists in the first section of the first data packet.
Illustratively, the first section may be the first section in method 600.
S1030, a first retransmission request is sent, where the first retransmission request is used to request retransmission of the first section of the first data packet and the remaining portion of the first data packet after the first section.
The first retransmission request may be, for example, an ARQ request in method 600.
Further, after receiving the first retransmission request, the transmitting end network element determines a first data packet needing to be retransmitted and a retransmission starting position of the first data packet according to the first retransmission request.
According to the embodiment of the invention, the data packet is divided into a plurality of virtual sections through the agreed length or the preconfigured length, the receiving end further detects the received data packet by taking the section as a unit, when the error control word exists in the section, a retransmission request is sent, and the transmitting end is requested to retransmit the error section and the rest part after the section, so that the whole data packet does not need to be retransmitted, and the time delay caused by the link-level retransmission based on the packet can be reduced. In addition, the embodiment of the application does not add extra overhead at the head or tail of the section, so that the overhead required by data transmission can be saved.
Fig. 11 shows a schematic flowchart of a method 1100 for retransmitting data according to an embodiment of the present application, where the method 1100 may be applied to the scenario shown in fig. 1 or may be applied to the apparatus 100 shown in fig. 2. In some possible implementations, the method may also be used in the protocol stack architecture shown in fig. 3, which is not limited by the embodiment of the present application. Specifically, the method 1100 may be performed by a sender network element, where the method 1100 includes:
S1110, receiving a first retransmission request, wherein the first retransmission request carries sequence information of a first section of a first data packet with errors, the first section is a section with a length smaller than or equal to a first length in the first data packet, and the first length is a length agreed with a network element at a receiving end for receiving the first data packet; alternatively, the first length is a preconfigured length.
Illustratively, the first retransmission request may be an ARQ request in method 600; the first data packet may be the first data packet in the method 600; the first section may be a first section in method 600; the sequence information of the first section may include a section number of the first section in the above embodiment; the length may be the length N agreed by the sending network element and the receiving network element in the method 600.
S1120, the first section and the rest part after the first section in the first data packet are sent according to the first retransmission request.
It should be appreciated that, the method flow of transmitting the first section and the remaining portion after the first section in the first data packet according to the first retransmission request may refer to the above embodiment, which is not limited in this application.
According to the embodiment of the invention, the data packet is divided into a plurality of virtual sections through the agreed length or the preconfigured length, the transmitting end determines the section needing to be retransmitted and the subsequent section according to the retransmission request sent by the receiving end, and the whole data packet does not need to be retransmitted, so that the time delay caused by the link-level retransmission based on the packet can be reduced. In addition, the embodiment of the application does not add extra overhead at the head or tail of the section, so that the overhead required by data transmission can be saved.
The method provided in the embodiments of the present application is described in detail above in connection with fig. 1 to 11. The apparatus provided in the embodiments of the present application will be described in detail below with reference to fig. 12 to 13. It should be understood that the descriptions of the apparatus embodiments and the descriptions of the method embodiments correspond to each other, and thus, descriptions of details not described may be referred to the above method embodiments, which are not repeated herein for brevity.
Fig. 12 is a schematic block diagram of an apparatus for data retransmission provided in an embodiment of the present application. The apparatus 1200 includes a transceiver unit 1210 and a processing unit 1220. The transceiver unit 1210 may implement a corresponding communication function, and the processing unit 1220 is configured to perform data processing.
Optionally, the apparatus 1200 may further include a storage unit, where the storage unit may be used to store instructions and/or data, and the processing unit 1220 may read the instructions and/or data in the storage unit, so that the apparatus implements the foregoing method embodiments.
The apparatus 1200 may include means for performing the method of fig. 6 or 10-11. And, each unit in the apparatus 1200 and the other operations and/or functions described above are respectively for implementing the corresponding flow of the method embodiment in fig. 6 or fig. 10 to 11.
When the apparatus 1200 is used for executing the method 1000 in fig. 10, the transceiver unit 1210 may be used for executing S1030 in the method 1000, and the processing unit 1220 may be used for executing S1010 and S1020 in the method 1000.
Specifically, the apparatus 1200 includes: a processing unit 1220, configured to detect whether a received portion of the first data packet has an error in a unit of a section during or after receiving the first data packet, where the length of the section is less than or equal to the first length; the processing unit 1220 is further configured to determine that the error exists in the first section of the first data packet; the transceiver 1210 is configured to send a first retransmission request, where the first retransmission request is used to request retransmission of the first section of the first data packet and a remaining portion of the first data packet after the first section.
In some possible implementations, the processing unit 1220 is further configured to: detecting whether the E code block exists in the received part of the first data packet in a section unit.
In some possible implementations, the processing unit 1220 is further configured to: after the determination that the error exists in the first section of the first data packet, discarding the first section of the first data packet and a remaining portion of the first data packet after the first section.
In some possible implementations, the first retransmission request carries sequence information of the first section.
In some possible implementations, the sequence information of the first section indicates a number of sections detected without errors before the first section.
In some possible implementations, the processing unit 1220 is further configured to: before the first retransmission request is sent, determining sequence information of the first data packet according to a preamble of the first data packet; or determining the sequence information of the first section according to the preamble of the first data packet.
In some possible implementations, the processing unit 1220 is further configured to: checking the first data packet; the transceiver unit 1210 is further configured to: and when the first data packet fails to be checked, a second retransmission request is sent, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the second retransmission request is used for requesting to retransmit the first data packet, and the sequence information of the second section is a specific value or the sequence information of the second section is null.
In some possible implementations, the first length is a length agreed with a network element at a transmitting end that transmits the first data packet; alternatively, the first length is a preconfigured length.
The apparatus 1200 may also be used to perform the method 1100 of fig. 11, and the transceiving unit 1210 may be used to perform S1110 and S1120 of the method 1100 when the apparatus 1200 is used to perform the method 1100 of fig. 11.
Specifically, the device comprises: a transceiver 1210, configured to receive a first retransmission request, where the first retransmission request carries sequence information of a first section of a first data packet in which an error occurs, where the first section is a section of the first data packet having a length less than or equal to a first length, and the first length is a length agreed with a network element at a receiving end that receives the first data packet; alternatively, the first length is a preconfigured length; the transceiver 1210 is further configured to send the first segment and a remaining portion of the first data packet after the first segment according to the first retransmission request.
In some possible implementations, the processing unit 1220 is further configured to: before the first section and the remaining part of the first data packet after the first section are sent according to the first retransmission request, the first section of the first data packet is determined according to the sequence information of the first section.
In some possible implementations, the processing unit 1220 is further configured to: determining sequence information of a second section according to the first length before the first retransmission request is received, wherein the second section is a first section of the first data packet; the sequence information of the second section is carried in the preamble of the first data packet.
In some possible implementations, the transceiver unit 1210 is further configured to: receiving a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the sequence information of the second section is a specific value or the sequence information of the second section is null; and sending the first data packet according to the second retransmission request.
The processing unit 1220 in fig. 12 may be implemented by at least one processor or processor-related circuit, the transceiving unit 1210 may be implemented by a transceiver or transceiver-related circuit, and the storage unit may be implemented by at least one memory.
Fig. 13 is a schematic block diagram of an apparatus for data retransmission according to an embodiment of the present application. The apparatus 1300 for data retransmission shown in fig. 13 may include: processor 1310, transceiver 1320, and memory 1330. Wherein the processor 1310, the transceiver 1320 and the memory 1330 are connected through an internal connection path, the memory 1330 is used for storing instructions, and the processor 1310 is used for executing the instructions stored in the memory 1330, so that the transceiver 1330 receives/transmits a part of parameters. Alternatively, the memory 1330 may be coupled to the processor 1310 through an interface or may be integrated with the processor 1310.
It should be noted that the transceiver 1320 may include, but is not limited to, a transceiver device such as an input/output interface (i/o interface) to enable communication between the communication device 1300 and other devices or communication networks.
In implementation, the steps of the methods described above may be performed by integrated logic circuitry in hardware or instructions in software in processor 1310. The method disclosed in connection with the embodiments of the present application may be embodied directly in hardware processor execution or in a combination of hardware and software modules in a processor. The software modules may be located in a random access memory, flash memory, read only memory, programmable read only memory, or electrically erasable programmable memory, registers, etc. as well known in the art. The storage medium is located in the memory 1330, and the processor 1310 reads information in the memory 1330 and performs the steps of the method in combination with its hardware. To avoid repetition, a detailed description is not provided herein.
It should also be appreciated that in embodiments of the present application, the memory may include read only memory and random access memory, and provide instructions and data to the processor. A portion of the processor may also include nonvolatile random access memory. The processor may also store information of the device type, for example.
Embodiments of the present application also provide a computer readable storage medium storing program code which, when run on a computer, causes the computer to perform the above-described method of any one of fig. 6 or 10 to 11.
The embodiment of the application also provides a chip, which comprises: at least one processor and a memory, the at least one processor being coupled to the memory for reading and executing instructions in the memory to perform any of the methods of fig. 6 or 10-11 described above.
The present application will present various aspects, embodiments, or features about a system comprising a plurality of devices, components, modules, etc. It is to be understood and appreciated that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. Furthermore, combinations of these schemes may also be used.
In addition, in the embodiments of the present application, words such as "exemplary," "for example," and the like are used to indicate an example, instance, or illustration. Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, the term use of an example is intended to present concepts in a concrete fashion.
In the embodiments of the present application, "corresponding" and "corresponding" may sometimes be used in combination, and it should be noted that the meaning to be expressed is consistent when the distinction is not emphasized.
The network architecture and the service scenario described in the embodiments of the present application are for more clearly describing the technical solution of the embodiments of the present application, and do not constitute a limitation on the technical solution provided in the embodiments of the present application, and those skilled in the art can know that, with the evolution of the network architecture and the appearance of the new service scenario, the technical solution provided in the embodiments of the present application is also applicable to similar technical problems.
Reference in the specification to "one embodiment" or "some embodiments" or the like means that a particular feature, structure, or characteristic described in connection with the embodiment is included in one or more embodiments of the application. Thus, appearances of the phrases "in one embodiment," "in some embodiments," "in other embodiments," and the like in the specification are not necessarily all referring to the same embodiment, but mean "one or more but not all embodiments" unless expressly specified otherwise. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless expressly specified otherwise.
In the present application, "at least one" means one or more, and "a plurality" means two or more. "and/or", describes an association relationship of an association object, and indicates that there may be three relationships, for example, a and/or B, and may indicate: including the case where a alone exists, both a and B together, and B alone, where a, B may be singular or plural. The character "/" generally indicates that the context-dependent object is an "or" relationship. "at least one of" or the like means any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (one) of a, b, or c may represent: a, b, c, a-b, a-c, b-c, or a-b-c, wherein a, b, c may be single or plural.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, and are not repeated herein.
In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in each embodiment of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on such understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a random access Memory (Random Access Memory, RAM), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
The foregoing is merely specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily think about changes or substitutions within the technical scope of the present application, and the changes and substitutions are intended to be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (29)

1. A method of data retransmission, comprising:
detecting whether a received part of the first data packet has errors or not by taking a section as a unit in the process of receiving the first data packet or after receiving the first data packet, wherein the length of the section is smaller than or equal to the first length;
determining that the error exists in a first section of a first data packet;
a first retransmission request is sent requesting retransmission of the first section of the first data packet and a remaining portion of the first data packet after the first section.
2. The method according to claim 1, wherein the method further comprises:
detecting whether the error exists in the idle code block by taking the section as a unit;
and after determining that the idle code block has the error, sending the first retransmission request, wherein the first retransmission request is used for requesting to retransmit the data packet after the idle code block.
3. The method according to claim 1 or 2, wherein detecting whether there is an error in the received portion of the first data packet in units of sections comprises:
detecting whether an E-code block exists in the received portion of the first data packet in a segment unit.
4. A method according to any one of claims 1 to 3, wherein after said determining that the first section in the first data packet is in the presence of said error, the method further comprises:
discarding the first section of the first data packet and a remaining portion of the first data packet after the first section.
5. The method according to any of claims 1 to 4, wherein the first retransmission request carries sequence information of the first section.
6. The method of claim 5, wherein the sequence information of the first section indicates a number of sections detected without error before the first section.
7. The method according to any one of claims 1 to 6, wherein prior to the sending the first retransmission request, the method further comprises:
determining sequence information of the first data packet according to the preamble of the first data packet; or alternatively
And determining the sequence information of the first section according to the preamble of the first data packet.
8. The method according to any one of claims 1 to 7, further comprising:
and checking the first data packet, and when the first data packet fails to check, sending a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the second retransmission request is used for requesting to retransmit the first data packet, and the sequence information of the second section is a specific value or the sequence information of the second section is null.
9. The method according to any one of claims 1 to 8, wherein the first length is a length agreed with a transmitting end network element transmitting the first data packet; alternatively, the first length is a preconfigured length.
10. A method of data retransmission, comprising:
receiving a first retransmission request, wherein the first retransmission request carries sequence information of a first section of a first data packet with errors, and the first section is a section with a length smaller than or equal to a first length in the first data packet, and the first length is a length agreed with a network element at a receiving end for receiving the first data packet; or, the first length is a preconfigured length;
and sending the first section and the rest part after the first section in the first data packet according to the first retransmission request.
11. The method of claim 10, wherein prior to the transmitting the first section and the remaining portion of the first data packet after the first section in accordance with the first retransmission request, the method further comprises:
and determining the first section of the first data packet to be transmitted according to the sequence information of the first section.
12. The method according to claim 10 or 11, wherein prior to the receiving the first retransmission request, the method further comprises:
determining sequence information of a second section according to the first length, wherein the second section is a first section of the first data packet;
and carrying the sequence information of the second section in a preamble of the first data packet.
13. The method according to any one of claims 10 to 12, further comprising:
receiving a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the sequence information of the second section is a specific value or the sequence information of the second section is null;
and sending the first data packet according to the second retransmission request.
14. An apparatus for retransmitting data, comprising:
the processing unit is used for detecting whether the received part of the first data packet has errors or not by taking a section as a unit in the process of receiving the first data packet or after receiving the first data packet, and the length of the section is smaller than or equal to the first length;
the processing unit is further configured to determine that the error exists in a first section of the first data packet;
And the receiving and transmitting unit is used for sending a first retransmission request, wherein the first retransmission request is used for requesting retransmission of the first section of the first data packet and the rest part of the first data packet after the first section.
15. The apparatus of claim 14, wherein the processing unit is further configured to:
detecting whether the error exists in the idle code block by taking the section as a unit;
the receiving and transmitting unit is configured to send the first retransmission request after the processing unit determines that the idle code block has the error, where the first retransmission request is used to request retransmission of a data packet after the idle code block.
16. The apparatus according to claim 14 or 15, wherein the processing unit is further configured to:
detecting whether an E-code block exists in the received portion of the first data packet in a segment unit.
17. The apparatus of any of claims 14 to 16, wherein after the determining that the error exists in the first section of the first data packet, the processing unit is further configured to:
discarding the first section of the first data packet and a remaining portion of the first data packet after the first section.
18. The apparatus according to any of claims 14 to 17, wherein the first retransmission request carries sequence information of the first section.
19. The apparatus according to any one of claims 14 to 18, wherein the sequence information of the first section indicates a number of sections detected without errors before the first section.
20. The apparatus according to any one of claims 14 to 19, wherein prior to the sending the first retransmission request, the processing unit is further configured to:
determining sequence information of the first data packet according to the preamble of the first data packet; or alternatively
And determining the sequence information of the first section according to the preamble of the first data packet.
21. The apparatus according to any one of claims 14 to 20, wherein the processing unit is further configured to:
checking the first data packet; the transceiver unit is further configured to:
and when the first data packet fails to be checked, a second retransmission request is sent, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the second retransmission request is used for requesting to retransmit the first data packet, and the sequence information of the second section is a specific value or the sequence information of the second section is null.
22. The apparatus according to any one of claims 14 to 21, wherein the first length is a length agreed with a transmitting end network element transmitting the first data packet; alternatively, the first length is a preconfigured length.
23. An apparatus for retransmitting data, comprising:
a transceiver unit, configured to receive a first retransmission request, where the first retransmission request carries sequence information of a first section of a first data packet in which an error occurs, where the first section is a section of the first data packet having a length less than or equal to a first length, and the first length is a length agreed with a network element at a receiving end that receives the first data packet; or, the first length is a preconfigured length;
the transceiver unit is further configured to send the first section and a remaining portion of the first data packet after the first section according to the first retransmission request.
24. The apparatus of claim 23, further comprising a processing unit to:
and before the first section and the rest part after the first section in the first data packet are sent according to the first retransmission request, determining the first section of the first data packet needing to be retransmitted according to the sequence information of the first section.
25. The apparatus of claim 23 or 24, wherein the processing unit is further configured to:
determining sequence information of a second section according to the first length before the first retransmission request is received, wherein the second section is a first section of the first data packet;
and carrying the sequence information of the second section in a preamble of the first data packet.
26. The apparatus according to any one of claims 23 to 25, wherein the transceiver unit is further configured to:
receiving a second retransmission request, wherein the second retransmission request carries the sequence information of the first data packet and the sequence information of a second section, and the sequence information of the second section is a specific value or the sequence information of the second section is null;
and sending the first data packet according to the second retransmission request.
27. An apparatus for retransmitting data, comprising:
a transceiver for receiving and transmitting messages;
a memory for storing a computer program;
a processor for executing the computer program stored in the memory to cause the apparatus to perform the method of any one of claims 1 to 13; the processor is coupled with the memory.
28. A system of data retransmission comprising the apparatus of any one of claims 14 to 22 and the apparatus of any one of claims 23 to 26.
29. A computer-readable storage medium, characterized in that a computer program is stored thereon, which computer program, when being executed by a computer, causes the method according to any of claims 1 to 13 to be implemented.
CN202111506237.3A 2021-12-10 2021-12-10 Method, device and system for retransmitting data Pending CN116260553A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111506237.3A CN116260553A (en) 2021-12-10 2021-12-10 Method, device and system for retransmitting data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111506237.3A CN116260553A (en) 2021-12-10 2021-12-10 Method, device and system for retransmitting data

Publications (1)

Publication Number Publication Date
CN116260553A true CN116260553A (en) 2023-06-13

Family

ID=86677989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111506237.3A Pending CN116260553A (en) 2021-12-10 2021-12-10 Method, device and system for retransmitting data

Country Status (1)

Country Link
CN (1) CN116260553A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025055797A1 (en) * 2023-09-13 2025-03-20 华为技术有限公司 Data retransmission method, apparatus, and system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025055797A1 (en) * 2023-09-13 2025-03-20 华为技术有限公司 Data retransmission method, apparatus, and system

Similar Documents

Publication Publication Date Title
US11063884B2 (en) Ethernet enhancements
US8386901B2 (en) Method, device and software application for transmitting data packets in a communication system
US9094163B2 (en) Assessment and correction of transmitted data
US20080195912A1 (en) Method of communicatoin
US20030023915A1 (en) Forward error correction system and method for packet based communication systems
US8307266B2 (en) Chained checksum error correction mechanism to improve TCP performance over network with wireless links
US20100142560A1 (en) Data packet header compression
US9876727B2 (en) Physical-layer signaling of flow control updates
US7860108B2 (en) Methods and devices for transferring and for recovering data packets
EP1169801B1 (en) Method and devices for digital data transfer
JP4731155B2 (en) Error control mechanism for segment-based link layer in digital networks
US8427951B2 (en) Method, system, and apparatus for reliable data packet recovery in a link layer of a data center ethernet network
US20090262646A1 (en) Transport protocol for efficient aggregation of heterogeneous losssy paths
US9819602B2 (en) Efficient datagram segmentation and reassembly for packet-switched networks
CN104038327A (en) Error retransmission method for FC (fiber channel) network
CN116260553A (en) Method, device and system for retransmitting data
WO2021208694A1 (en) Data transmission method and network device
CN114095117A (en) Retransmission method and related device for Ethernet error frame
JP5817387B2 (en) Communication apparatus and communication method
WO2022105753A1 (en) Network data encoding transmission method and apparatus
WO2015137854A1 (en) Method and devices for providing feedback in a communication system
CN115412197A (en) Data transmission method and equipment
WO2024165143A1 (en) Hybrid automatic repeat request with pre-configured redundancy versions
TR2023001386A2 (en) HYBRID AUTOMATIC REPEAT REQUEST WITH PRE-CONFIGURED REDUNDANCY VERSIONS
US20030167434A1 (en) Legacy-compatible forward error correction in telecommunications networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination