Data transmission method, device, communication system, computing device, chip, product and storage medium
By introducing a retransmission signal mechanism during data transmission, the problem of errors in data packets in parallel transmission is solved, and efficient data recovery and resource conservation are achieved.
Patent Information
- Application Number
- CN202510461898.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-14
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2045-04-14
AI Technical Summary
During data transmission, especially when data transmission is transmitted in parallel, data packets are prone to loss, garbled code or untimely delivery, resulting in data transmission failure. The prior art cannot effectively ensure that data packets are transmitted without errors and consume a large amount of computing resources.
By introducing a retransmission signal mechanism between the receiving end and the transmitting end, the receiving end then merges data after receiving the retransmission signal. The sending end retransmits the data packet after receiving the confirmation, reducing the continuous merging and verification operations of the parallel channel data by the receiving end.
It saves storage resources and computing resources on the receiver side, improves the reliability and efficiency of data transmission, and reduces invalid data operations.
Smart Images

Figure CN120017229B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of data transmission, and more specifically to a data transmission method, related devices, communication systems, computing equipment, chips, products and storage media. Background Art
[0002] During data transmission, physical wiring and encoding alone cannot guarantee error-free data packet transmission due to various factors. This is especially true when data is transmitted from the sender to the receiver in parallel, making data errors more likely to occur. Examples include packet loss, garbled data during transmission, or delayed data delivery. Data errors can cause data transmission failures. When data errors occur, ensuring normal data transmission with minimal computing resources becomes a pressing issue. Summary of the Invention
[0003] The embodiments of the present application provide a data transmission method, related devices, communication system, computing equipment, chip, product and storage medium, which can solve the problem of continuing normal data transmission after a data transmission error and consume fewer resources.
[0004] In a first aspect, embodiments of the present application provide a data transmission method, which can be applied to a receiving end, such as a chip, a terminal, a computer, a server, a module within a chip, or the like. The method comprises: the receiving end sending a first retransmission indicator, the first retransmission indicator being used to instruct the transmitting end to retransmit a first data micro-slice; the receiving end receiving the first retransmission indicator and receiving, in parallel, a first sub-data packet through an Nth sub-data packet via M channels; wherein the first sub-data packet through the Nth sub-data packet are obtained by splitting the first data micro-slice, and M and N are positive integers; and the first retransmission indicator being used to indicate that the first sub-data packet through the Nth sub-data packet are retransmitted data.
[0005] With this solution, when a transmitter sends data via M channels, the receiver first receives the first retransmission flag and then receives the retransmitted data. This eliminates the need for the receiver to continuously receive data transmitted via M channels and then assemble the data transmitted via these M channels in parallel before receiving the retransmitted data from the transmitter. Instead, the receiver only needs to receive data transmitted via the M channels after receiving the first retransmission flag. This saves storage and computing resources on the receiver.
[0006] In conjunction with the first aspect, in some possible implementations, after receiving the first to Nth sub-data packets in parallel via M channels, the method further includes: the receiving end sending a second identifier, the second identifier indicating that the receiving end has received the first data flake. By sending the second identifier, the sending end can determine that the receiving end has received the first data flake upon receiving the second identifier, thereby continuing subsequent data transmission.
[0007] In combination with the first aspect, in some possible implementations, it also includes: the receiving end receives N sub-data packets in parallel through the M channels, and the N sub-data packets carry a third identifier; the receiving end sends a first retransmission indication identifier, including: if the third identifier is different from the first identifier, the receiving end sends the first retransmission indication identifier.
[0008] In combination with the first aspect, in some possible implementations, the first retransmission indication identifier has the same content as the third identifier.
[0009] In combination with the first aspect, in some possible implementations, the method further includes: if one or more data in the M storage modules overflow, the receiving end clears the sub-data packets stored in the M storage modules, the M storage modules are respectively used to store sub-data packets received from M channels, and the M storage modules correspond one-to-one to the M channels; the sub-data packet first stored in the M storage modules is the sub-data packet obtained by splitting the second data micro-slice; the sub-data packets obtained by splitting the second data micro-slice include the N+1th sub-data packet to the Oth sub-data packet, where O is a positive integer greater than N; the receiving end receives a second retransmission identifier, and receives the N+1th sub-data packet to the Oth sub-data packet in parallel through M channels, the second retransmission identifier is used to indicate that the N+1th sub-data packet to the Oth sub-data packet are retransmitted data.
[0010] In combination with the first aspect, in some possible implementations, the receiving of the first retransmission identifier and the parallel reception of the first sub-packet to the Nth sub-packet through M channels also include: the receiving end receiving a start identifier, and the start identifier instructs the sending end to start sending data micro-slices.
[0011] In combination with the first aspect, in some possible implementations, after receiving the first retransmission identifier and receiving the first to Nth sub-packets in parallel through M channels, it also includes: the receiving end receives an end identifier, and the end identifier indicates that the sending end has completed sending the data micro-slice.
[0012] In a second aspect, embodiments of the present application provide a data transmission method, which can be applied to a transmitting end, which can be a chip, a terminal, a computer, a server, a module in a chip, etc. The method includes: the transmitting end sending a first sub-data packet to an Nth sub-data packet in parallel through M channels; wherein the first sub-data packet to the Nth sub-data packet are obtained by splitting a first data micro-slice, and M and N are positive integers; the transmitting end receives a first retransmission indicator, the first retransmission indicator is used to instruct the transmitting end to retransmit the first data micro-slice; the transmitting end sends a first retransmission indicator based on the first retransmission indicator, and again sends the first sub-data packet to the Nth sub-data packet in parallel through M channels; the first retransmission indicator is used to indicate that the first sub-data packet to the Nth sub-data packet are retransmitted data.
[0013] With this solution, when a transmitter sends data via parallel channels, it first sends a first retransmission flag, followed by the retransmitted data. This allows the receiver to receive the retransmitted data based on the first retransmission flag. In other words, when preparing to receive the retransmitted data from the transmitter, the receiver does not need to continuously receive and reassemble the data transmitted via the parallel channels. This saves storage and computing resources on the receiver.
[0014] In combination with the second aspect, in some possible implementations, after sending the first sub-packet to the Nth sub-packet in parallel through M channels again, it also includes: the sending end receives a second identifier, and the second identifier is used to indicate that the receiving end has received the first data micro-piece.
[0015] In combination with the second aspect, in some possible implementations, the sending of the first retransmission indicator according to the first retransmission indicator, and the sending of the first sub-data packet to the Nth sub-data packet in parallel again through M channels, includes: the sending end determining that the first retransmission indicator is different from the first indicator, sending the first retransmission indicator according to the first retransmission indicator, and sending the first sub-data packet to the Nth sub-data packet in parallel again through M channels.
[0016] In combination with the second aspect, in some possible implementations, the method also includes: if the fourth identifier is not received from the receiving end within the preset time, the sending end sends a second retransmission identifier, and again sends the N+1th sub-packet to the Oth sub-packet in parallel through M channels; the fourth identifier indicates that the receiving end has received the second data micro-piece, and the N+1th sub-packet to the Oth sub-packet are obtained by splitting the second data micro-piece, O is a positive integer greater than N, and the second retransmission identifier is used to indicate that the N+1th sub-packet to the Oth sub-packet are retransmitted data.
[0017] In combination with the second aspect, in some possible implementations, before the sending of the first sub-packet to the Nth sub-packet in parallel through M channels, it also includes: the sending end sending a start flag, and the start flag instructs the sending end to start sending data micro-slices.
[0018] In combination with the second aspect, in some possible implementations, before the first sub-packet is sent to the Nth sub-packet in parallel through M channels, it also includes: the sending end sends an end marker, and the end marker indicates that the sending end has completed sending the data micro-slice.
[0019] In combination with the second aspect, in some possible implementations, after the first sub-packet to the Nth sub-packet are sent in parallel through M channels again, it also includes: the sending end sends the N+1th sub-packet to the Oth sub-packet in parallel through M channels; wherein, the N+1th sub-packet to the Oth sub-packet carry a fourth identifier, and the fourth identifier indicates that the N+1th sub-packet to the Oth sub-packet are obtained by splitting the second data micro-slice, and the second data micro-slice is the data micro-slice adjacent to the first data micro-slice, and O is a positive integer greater than N; the fourth identifier is the first identifier plus 1.
[0020] In combination with the first aspect or the second aspect, in some possible implementations, the first sub-data packet to the Nth sub-data packet all carry a partial identifier of the first identifier.
[0021] In combination with the first or second aspect, in some possible implementations, the first through Nth sub-packets carry the first identifier, indicating that the first through Nth sub-packets are derived from splitting the first data flit. Because the first through Nth sub-packets carry the first identifier, a receiving end can compare the identifier carried by a received sub-packet with the first identifier to determine that the first through Nth sub-packets were correctly transmitted.
[0022] In combination with the first aspect or the second aspect, in some possible implementations, the first identifier and the second identifier have the same content.
[0023] In a third aspect, embodiments of the present application provide a data transmission device having functions corresponding to the method provided in the first aspect. The functions may be implemented in hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the functions described above, and the modules may be software and / or hardware.
[0024] In some possible implementations, the device includes: a sending module, used to send a first retransmission indication identifier, wherein the first retransmission indication identifier is used to instruct the sending end to retransmit the first data micro-fragment; a receiving module, used to receive the first retransmission identifier, and receive the first sub-data packet to the Nth sub-data packet in parallel through M channels; wherein the first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-fragment, and M and N are positive integers; the first retransmission identifier is used to indicate that the first sub-data packet to the Nth sub-data packet are retransmitted data.
[0025] In combination with the third aspect, in some possible implementations, the first sub-data packet to the Nth sub-data packet all carry a partial identifier of the first identifier.
[0026] In conjunction with the third aspect, in some possible implementations, the sending module is further configured to send a second identifier, the second identifier indicating that the receiving end has received the first data fragment. By sending the second identifier, the sending end can determine that the receiving end has received the first data fragment after receiving the second identifier, thereby continuing subsequent data transmission.
[0027] In combination with the third aspect, in some possible implementations, the receiving module is further used to: receive N sub-data packets in parallel through the M channels, and the N sub-data packets carry a third identifier; sending a first retransmission indication identifier includes: if the third identifier is different from the first identifier, sending a first retransmission indication identifier.
[0028] In combination with the third aspect, in some possible implementations, the first retransmission indication identifier has the same content as the third identifier.
[0029] In combination with the third aspect, in some possible implementations, the device also includes a processing module, which is used to: if one or more data in the M storage modules overflow, then clear the sub-data packets stored in the M storage modules, the M storage modules are respectively used to store sub-data packets received from M channels, and the M storage modules correspond one-to-one to the M channels; the sub-data packet first stored in the M storage modules is the sub-data packet obtained by splitting the second data micro-slice; the sub-data packets obtained by splitting the second data micro-slice include the N+1th sub-data packet to the Oth sub-data packet, where O is a positive integer greater than N; the receiving module is also used to: receive a second retransmission identifier, and receive the N+1th sub-data packet to the Oth sub-data packet in parallel through M channels, the second retransmission identifier is used to indicate that the N+1th sub-data packet to the Oth sub-data packet are retransmitted data.
[0030] In conjunction with the third aspect, in some possible implementations, the receiving module is further configured to: receive a start flag, where the start flag instructs the sending end to start sending data flits.
[0031] In combination with the third aspect, in some possible implementations, the receiving module is further configured to: receive an end identifier, where the end identifier indicates that the sending end has completed sending the data flit.
[0032] In a fourth aspect, embodiments of the present application provide a data transmission device having functions corresponding to the method provided in the second aspect. The functions may be implemented in hardware or by hardware executing corresponding software implementations. The hardware or software includes one or more modules corresponding to the functions described above, and the modules may be software and / or hardware.
[0033] In some embodiments, the device includes: a sending module, used to send a first sub-data packet to an N-th sub-data packet in parallel through M channels; wherein, the first sub-data packet to the N-th sub-data packet are obtained by splitting a first data micro-piece, and M and N are positive integers; a receiving module, used to receive a first retransmission indication identifier, and the first retransmission indication identifier is used to instruct the sending end to retransmit the first data micro-piece; the sending module is also used to send a first retransmission identifier according to the first retransmission indication identifier, and again send the first sub-data packet to the N-th sub-data packet in parallel through M channels; the first retransmission identifier is used to indicate that the first sub-data packet to the N-th sub-data packet are retransmitted data.
[0034] In combination with the fourth aspect, in some possible implementations, the receiving module is further used to: receive a second identifier, where the second identifier is used to indicate that the receiving end has received the first data fragment.
[0035] In combination with the fourth aspect, in some possible implementations, sending a first retransmission identifier according to a first retransmission indication identifier, and sending the first sub-data packet to the Nth sub-data packet in parallel again through M channels, includes: determining that the first retransmission indication identifier is different from the first identifier, sending a first retransmission identifier according to the first retransmission indication identifier, and sending the first sub-data packet to the Nth sub-data packet in parallel again through M channels.
[0036] In combination with the fourth aspect, in some possible implementations, the sending module is also used to: if no fourth identifier is received from the receiving end within a preset time, send a second retransmission identifier, and again send the N+1th sub-packet to the Oth sub-packet in parallel through M channels; the fourth identifier indicates that the receiving end has received the second data micro-piece, and the N+1th sub-packet to the Oth sub-packet are obtained by splitting the second data micro-piece, O is a positive integer greater than N, and the second retransmission identifier is used to indicate that the N+1th sub-packet to the Oth sub-packet are retransmitted data.
[0037] In conjunction with the fourth aspect, in some possible implementations, the sending module is further configured to: send a start flag, where the start flag instructs the sending end to start sending data fragments.
[0038] In conjunction with the fourth aspect, in some possible implementations, the sending module is further configured to: send an end identifier, where the end identifier indicates that the sending end has completed sending the data flit.
[0039] In combination with the fourth aspect, in some possible implementations, the sending module is further used to: send the N+1th sub-packet to the Oth sub-packet in parallel through M channels; wherein, the N+1th sub-packet to the Oth sub-packet carry a fourth identifier, and the fourth identifier indicates that the N+1th sub-packet to the Oth sub-packet are obtained by splitting the second data micro-slice, and the second data micro-slice is the data micro-slice adjacent to the first data micro-slice, and O is a positive integer greater than N; the fourth identifier is the first identifier plus 1.
[0040] In combination with the third aspect or the fourth aspect, in some possible implementations, the first sub-data packet to the Nth sub-data packet all carry a partial identifier of the first identifier.
[0041] In conjunction with the third aspect or the fourth aspect, in some possible implementations, the first through Nth sub-packets carry the first identifier, indicating that the first through Nth sub-packets are derived from first data fragments. Because the first through Nth sub-packets carry the first identifier, a receiving end can compare the identifier carried by a received sub-packet with the first identifier to determine that the first through Nth sub-packets were correctly transmitted.
[0042] In combination with the third aspect or the fourth aspect, in some possible implementations, the first identifier and the second identifier have the same content.
[0043] In a fifth aspect, an embodiment of the present application provides a communication system, comprising: a sending device and a receiving device, the sending device being used to execute the method described in the second aspect above, and the receiving device being used to execute the method described in the first aspect above.
[0044] In combination with the fifth aspect, in some possible implementations, the communication system further includes a transmission channel, which is used to transmit data between the sending device and the receiving device.
[0045] In a sixth aspect, an embodiment of the present application provides a computing device comprising a memory, a processor, and a computer program stored in the memory and runnable on the processor, wherein the processor implements the method described in the first aspect when executing the computer program, or implements the method described in the second aspect when executing the computer program.
[0046] In a seventh aspect, an embodiment of the present application provides a computer-readable storage medium comprising instructions, which, when run on a computer, enables the computer to execute the method as described in the first aspect, or, when run on a computer, enables the computer to execute the method as described in the second aspect.
[0047] In an eighth aspect, an embodiment of the present application provides a chip, comprising a processor coupled to a transceiver, configured to execute the technical solution provided in the first aspect of the embodiment of the present application. Alternatively, the chip comprises a processor coupled to a transceiver, configured to execute the technical solution provided in the second aspect of the embodiment of the present application.
[0048] In the ninth aspect, an embodiment of the present application provides a chip system, which includes a processor for implementing the functions involved in the above-mentioned first aspect, for example, generating or processing the information involved in the method provided in the above-mentioned first aspect, or the processor is used to implement the functions involved in the above-mentioned second aspect.
[0049] In one possible design, the chip system further includes a memory, which is connected to the processor via a circuit structure. The memory is used to store program instructions and data required by the terminal. The chip system can be composed of a chip, or it can include a chip and other discrete devices. Further optionally, the chip further includes a communication interface, and the processor is connected to the communication interface. The communication interface is used to receive data and / or information to be processed, and the processor obtains the data and / or information from the communication interface, processes the data and / or information, and outputs the processing results through the communication interface. The communication interface can be an input / output interface.
[0050] In the tenth aspect, an embodiment of the present application provides a computer program product comprising instructions, which, when the computer program product is run on a computer, enables the computer to execute the method provided in the first aspect above, or, when the computer program product is run on a computer, enables the computer to execute the method provided in the second aspect above.
[0051] The effects of the third to tenth aspects mentioned above can be referred to those described in the first and second aspects, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] The objects, features and advantages of the embodiments of the present application will become readily understood by reading the detailed description of the embodiments of the present application with reference to the accompanying drawings.
[0053] Figure 1 This is a schematic diagram of a data transmission system in an embodiment of the present application;
[0054] Figure 2 A flowchart of a data transmission method provided in an embodiment of the present application;
[0055] Figure 3 A schematic diagram of the relationship between a data packet, a data flit, and a sub-data packet according to an embodiment of the present application;
[0056] Figure 4 This is a schematic diagram of a data stream sent by a transmitting end according to an embodiment of the present application;
[0057] Figure 5 This is a schematic diagram of a data stream transmission error in an embodiment of the present application;
[0058] Figure 6 This is a schematic structural diagram of a data transmission device according to an embodiment of the present application;
[0059] Figure 7 A schematic diagram of the structure of a computing device according to an embodiment of the present application;
[0060] Figure 8 A structural diagram of a mobile phone in an embodiment of the present application;
[0061] Figure 9 This is a structural diagram of a server in an embodiment of the present application.
[0062] In the drawings, the same or corresponding reference numerals denote the same or corresponding parts. DETAILED DESCRIPTION
[0063] In the description and claims of the embodiments of the present application, as well as in the accompanying drawings, the terms "first," "second," and the like are used to distinguish similar objects (e.g., the first retransmission identifier and the second retransmission identifier are each represented as different retransmission identifiers, and similarly for other purposes), and are not necessarily used to describe a specific order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. Furthermore, the terms "including," "having," and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or modules is not necessarily limited to those steps or modules explicitly listed, but may include other steps or modules that are not explicitly listed or that are inherent to such process, method, product, or apparatus. The division of modules in the embodiments of the present application is merely a logical division, and other divisions may be used in actual implementations. For example, multiple modules may be combined or integrated into another system, or some features may be omitted or not implemented. In addition, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling between modules, and the communication connection may be electrical or other similar forms, which are not limited in the embodiments of the present application. Moreover, the modules or submodules described as separate components may or may not be physically separated, may or may not be physical modules, or may be distributed across multiple circuit modules, and some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0064] First, the terms involved in the embodiments of this application are explained.
[0065] Flit: A fixed amount of information is called a flit. After receiving upstream data (data packets), a device with data transmission capabilities (such as a data transmitter or receiver) can split the data packet into one or more flit.
[0066] In related technologies, when a transmitting end sends a data packet to a receiving end, data errors may occur, preventing the receiving end from receiving the correct data packet, thus affecting the transmission effect. For example, data may be lost in the transmission channel or the data content may be erroneous. When the transmitting end uses parallel channels to send data packets, there is a greater probability of error. The receiving end needs to merge and verify the data received from multiple channels. If the verification of the merged data fails, the receiving end discards the data and continues to merge and verify the subsequent received data. Once the data is erroneous, the receiving end needs to merge and verify a large amount of data sent by the transmitting end until the verification is successful and the received data is determined to be the required data. In the process of verifying the data, the receiving end needs to consume a large amount of storage resources, computing resources and other resources.
[0067] Based on this, embodiments of the present application provide a data transmission method, related apparatus, and storage medium. The data transmission method provided by embodiments of the present application involves a transmitter adding a retransmission signal before sending retransmitted data via parallel channels. After receiving the retransmission signal, the receiver merges the data received via the parallel channels. This eliminates the need for the receiver to continuously merge data received via the parallel channels. This reduces the need to store, merge, and delete useless data, conserving computing resources.
[0068] The above method can be applied to Figure 1 In the data transmission system shown, the data transmission system includes a data transmission device for transmitting data (referred to as a transmitter), a physical channel for transmitting data (referred to as a channel), and a data transmission device for receiving data (referred to as a receiver). Exemplarily, the system can be a chip system, a communication system, etc. If the system is a chip system, the transmitting end can be a transmitting chip, and the receiving end can be a receiving chip. If the system is a communication system, the transmitting end can be a transmitting computing device, and the receiving end can be a receiving computing device.
[0069] Reference Figure 1 In some embodiments, the sending end includes a loop counter and a first order buffer module.
[0070] The cyclic counter is used to number the data micro-slices. For example, if the counter counts from 0 to 1023, then after the counter records 1023, the next count value is 0, thus numbering the data micro-slices from 0 to 1023.
[0071] The first sequential caching module is configured to cache received data fragments in the order in which their data contents appear within the data packets from which they originated. For example, if the transmitting end splits data packet 1 to obtain data fragments 1 through 4, data packet 1 can be assembled in the order of data fragments 1 through 4. The first sequential caching module can store the data fragments in the order of data fragments 1 through 4. When the transmitting end begins to send data, it splits the data fragments into one or more sub-data packets.
[0072] Still refer to Figure 1 In some embodiments, a physical channel is used to transmit data between a transmitter and a receiver. Data can be transmitted at various granularities, such as data packets, sub-packets, and data slivers. Sub-packets are derived from data slivers, as described below.
[0073] In some embodiments, the physical channel can perform error detection on the transmitted data. If the physical channel detects an error in the transmitted data, it can mark the data. For example, if data changes from 0 to 1 during transmission on the physical channel, the physical channel can mark the error. For example, an error packet identifier can be added after the transmitted data to indicate that an error occurred during transmission on the physical channel. The physical channel can also mark erroneous data using other methods. For more information about these methods, please refer to related art and will not be elaborated here.
[0074] Still refer to Figure 1 In some embodiments, the receiving end includes a second sequential buffer module and an error detection module.
[0075] The second sequential buffer module is configured to store received sub-data packets and the corresponding data flit numbers. The receiving end stores the received sub-data packets in the second sequential buffer module. After receiving all sub-data packets corresponding to a data flit, the receiving end reads the data flit from the second sequential buffer.
[0076] The error detection module is used to perform error detection on sub-data packets.
[0077] The first sequential caching module may be a program based on caching data slices in the order of numbers, or a chip, server or terminal device having the function of caching data slices in the order of numbers.
[0078] The cycle counter may be based on a program for numbering data flakes, or a chip, server or terminal device having a function for numbering data flakes.
[0079] The second sequential cache module can be a program based on storing received sub-data packets and data micro-slice numbers corresponding to the sub-data packets, or a chip, server or terminal device with the function of storing received sub-data packets and data micro-slice numbers corresponding to the sub-data packets.
[0080] The error detection module may be a program based on performing error detection on sub-data packets, or a chip, server or terminal device having the function of performing error detection on sub-data packets.
[0081] In the above embodiment, the first-order cache module and the loop counter can be deployed in an integrated manner or separately. The second-order cache module and the error detection module can be deployed in an integrated manner or separately. For example, the second-order cache module and the error detection module can be set in the same chip, and the same chip implements the functions of these modules. For another example, the second-order cache module can be set in chip 1, and the error detection module can be set in chip 2. Chip 1 can send the data buffered by the second-order cache module to chip 2, and the error detection module in chip 2 judges the received data to determine whether the data meets the preset requirements.
[0082] It should be noted that the computing device involved in the embodiments of the present application may be a server and / or a terminal device.
[0083] The server involved in the embodiments of the present application can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, as well as big data and artificial intelligence platforms.
[0084] The terminal devices involved in the embodiments of the present application may be devices that provide voice and / or data connectivity to users, handheld devices with wireless connectivity, or other processing devices connected to a wireless modem. Examples include mobile phones (or "cellular" phones) and computers with mobile terminals, such as portable, pocket-sized, handheld, computer-built-in, or vehicle-mounted mobile devices that exchange voice and / or data with a wireless access network. Examples include Personal Communication Service (PCS) phones, cordless phones, Session Initiation Protocol (SIP) phones, Wireless Local Loop (WLL) stations, and Personal Digital Assistants (PDAs).
[0085] Reference Figure 2 , Figure 2 This is a flow chart of the data transmission method provided in the embodiment of the present application. Figure 1 The system shown in FIG. 100 performs the method including steps 101 to 104:
[0086] In step 101, a transmitting end transmits a first sub-data packet to an Nth sub-data packet in parallel through M channels. Correspondingly, a receiving end receives N sub-data packets in parallel through M channels.
[0087] The first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-slice, and M and N are positive integers.
[0088] Reference Figure 3 and Figure 4 , Figure 3 Schematic diagram of the relationship between data packets, data flit and sub-data packets according to an embodiment of the present application. Figure 4 This is a schematic diagram of a data stream transmitted by a transmitting end according to an embodiment of the present application. For example, M=4 and N=12. After receiving data packet 1 from upstream, the transmitting end splits data packet 1 into data micro-slices 1 to 4. Data micro-slice 1 is split into sub-data packets 1 to 12. Data micro-slices 2 to 4 are split into sub-data packets 13 to 24, sub-data packets 25 to 36, and sub-data packets 37 to 48, respectively. The transmitting end sends sub-data packets 1 to 12, sub-data packets 13 to 24, sub-data packets 25 to 36, and sub-data packets 37 to 48 in parallel through four physical channels. Multiple sub-data packets transmitted by each physical channel constitute a data stream. The receiving end receives the sub-data packets through four physical channels.
[0089] It is understandable that the size of the data stream may be a fixed value or a non-fixed value.
[0090] The first through Nth sub-packets sent in parallel by the transmitter via M channels may experience errors during transmission. If no errors occur, the N sub-packets received by the receiver are identical to the first through Nth sub-packets. If errors occur, the N sub-packets received by the receiver are different from the first through Nth sub-packets.
[0091] For example, refer to Figure 4 and Figure 5 For example, with N=12, the sender sends subpackets 1 to 12. If no errors occur, the receiver receives subpackets 1 to 12. If an error occurs, such as when subpacket 7 is lost, the receiver receives subpackets 1 to 6, 8 to 12, and 15, which are different from subpackets 1 to 12 sent by the sender.
[0092] For example, if the data in sub-packet 1 changes, for example, from 0000 to 0101, then the sub-packets received by the receiving end are sub-packets 1 to 12, which are the same as the sub-packets sent by the sending end, but the content of sub-packet 1 has changed. In this case, an error still occurs.
[0093] In some examples, the channel can detect changes in data within a sub-packet and mark the sub-packet as an error. The receiving end can determine that an error has occurred in the sub-packet based on the error mark. For example, marking the sub-packet as an error can be implemented by the channel replacing each bit of data in the sub-packet where the error is detected with a 1.
[0094] In some embodiments, the channel can also detect changes in other transmitted data and mark them as errors, such as the start flag and end flag mentioned below. When an error is detected in the flag, the channel replaces all the data occupied by the flag with 1.
[0095] The following is an exemplary description of splitting a data micro-slice into sub-data packets. For example, if the size of a data micro-slice is 600 megabytes and one data micro-slice is split into 12 sub-data packets, then every 50 megabytes of data content in the data micro-slice can be split into one sub-data packet.
[0096] When the sub-data packets are merged into a data flit, 12 sub-data packets may be merged into one data flit according to the order of the sub-data packets.
[0097] The receiving end can determine whether errors have occurred in the N sub-data packets received in parallel via the M channels, and then send a feedback signal to the sending end based on whether an error has occurred in the first data flit. If an error has occurred, the receiving end executes step 102 and sends a first retransmission indication flag. If no errors have occurred in the N sub-data packets received in parallel via the M channels, the receiving end executes step 103 and sends a second indication flag.
[0098] The manner in which the receiving end determines whether errors occur in the received N sub-data packets may refer to the following embodiments.
[0099] Step 102: The receiving end sends a first retransmission indication identifier. Correspondingly, the sending end receives the first retransmission indication identifier.
[0100] The first retransmission indication flag is used to instruct the sending end to retransmit the first data flit.
[0101] Step 103: The receiving end sends a second identifier. Correspondingly, the sending end receives the second identifier.
[0102] The second flag indicates that the receiving end has received the first data fragment.
[0103] The sending end and the receiving end may agree on a first retransmission indicator and a second indicator. Exemplarily, the first retransmission indicator and the second indicator occupy the same flag bit, with the first retransmission indicator being 1 and the second being 0. The receiving end may determine that an error has occurred in the N received sub-data packets and may send a 1. Upon receiving a flag bit of 1, the sending end may determine that the receiving end has not received the correct first data flit and proceed to step 104.
[0104] The receiving end determines that there is no error in the received N sub-data packets and can send 0. After the sending end receives that the marker bit is 0, it can be determined that the receiving end has received the correct first data flit.
[0105] In some embodiments, after the sending end determines that the receiving end has received the correct first data fragment, the sending end may delete the stored first data fragment in the storage space to release the storage space.
[0106] In step 104, the transmitting end sends a first retransmission indicator according to the first retransmission indicator, and again sends the first sub-packet to the Nth sub-packet in parallel through the M channels. Accordingly, the receiving end receives the first retransmission indicator and receives the first sub-packet to the Nth sub-packet in parallel through the M channels.
[0107] The first retransmission flag is used to indicate that the first sub-data packet to the Nth sub-data packet are retransmission data.
[0108] The first retransmission flag is different from the first retransmission indication flag, the start flag, the end flag and other flags mentioned below. When the receiving end reads the first retransmission flag, it can determine that the data after the first retransmission flag is retransmitted data, such as a sub-data packet.
[0109] After receiving the first retransmission identifier, the receiving end receives the first to Nth sub-packets retransmitted by the transmitting end. This eliminates the need for the receiving end to read and assemble subsequent sub-packets received via the parallel channel and determine whether the assembled sub-packets are the first data flit after receiving an erroneous first data flit. This significantly saves storage and computing resources at the receiving end.
[0110] After the sender sends the first to Nth sub-packets again, the receiver receives the first to Nth sub-packets without transmission errors and then executes step 103 to send a second identifier, thereby allowing the sender to continue sending subsequent data fragments.
[0111] The above embodiments provide exemplary introductions to the data transmission method provided by the present application. Other embodiments of the present application are described below. Through the following embodiments, the receiving end can determine whether an error has occurred in the N received sub-packets using the identifiers carried by the N sub-packets. Thus, the receiving end can not only determine whether an error has occurred in the sub-packets during transmission by using the error markings on the sub-packets by the channel, but can also determine whether an error such as loss has occurred in the sub-packets using the identifiers carried by the sub-packets, and determine whether the data micro-slices formed by combining the sub-packets are the correct data micro-slices sent by the sending end.
[0112] In some embodiments, the first to Nth sub-data packets carry a first identifier, wherein the first identifier indicates that the first to Nth sub-data packets are obtained by splitting the first data micro-slice.
[0113] That is, the first identifier is the identifier of the first data fragment.
[0114] Exemplarily, the first through Nth sub-data packets each carry partial content of the first identifier. The partial content of the first identifier carried in the first through Nth sub-data packets can be combined to obtain the first identifier. For example, if N=12 and the first identifier is 0000 0000 0001, the partial content of the first identifier carried in the first sub-data packet is 1, and the partial content of the first identifier carried in the second through twelfth sub-data packets each is 0.
[0115] As another example, some sub-data packets from the first to the Nth sub-data packets carry partial content of the first identifier. Sub-data packets carrying partial content of the first identifier are combined to obtain the first identifier. For example, if N = 12 and the first identifier is 0000 0000 0001, the first sub-data packet, the sixth sub-data packet, and the eleventh sub-data packet carry partial content of the first identifier. The first sub-data packet carries 0001, the sixth sub-data packet carries 0000, and the eleventh sub-data packet carries 0000.
[0116] In the above example, the receiving end can obtain the first identifier from the first to Nth sub-packets. If the first identifier is the same as the identifier corresponding to the first data micro-slice pre-stored in the receiving end, the receiving end can determine that the first to Nth sub-packets are obtained by splitting the first data micro-slice.
[0117] In some embodiments, the first identifier is a number of the first data flake. Exemplarily, the sending end stores the data flakes in the first sequential buffer module in the order in which the data packets are received, and numbers the data flakes sequentially when sending data.
[0118] In some embodiments, the second identifier has the same content as the first identifier.
[0119] For example, if the first identifier is 0000 0000 0001, after the receiving end determines that it has received the first data fragment based on the first identifier carried by the first through Nth sub-packets, it can send the content of the first identifier carried by the first through Nth sub-packets, 0000 0000 0001, as the content of the second identifier. Thus, after receiving the second identifier, the sending end can determine that the second identifier is the same as the pre-stored identifier indicating that the receiving end has received the first data fragment, thereby confirming that the receiving end has received the first data fragment.
[0120] In some embodiments, the N sub-data packets received by the receiving end carry a third identifier. The above step 102 is implemented as follows: if the third identifier is different from the first identifier, the receiving end sends a first retransmission indication identifier.
[0121] Exemplarily, some sub-packets are lost during the transmission of the first to Nth sub-packets sent by the transmitting end. For example, N=12, and the first identifier is 0000 0000 0001. Among them, the sub-packets obtained by splitting the first data micro-slice are sub-packets 1 to sub-packets 12, and the partial contents of the first identifier carried by sub-packets 1 to 11 are all 0, and the partial content of the first identifier carried by sub-packet 12 is 1. The sub-packets obtained by splitting the second data micro-slice are sub-packets 13 to 24. The content of the identifier carried by sub-packet 15 is 1. Figure 5 Assume that subpacket 7 is lost. The 12 subpackets received by the receiving end are subpackets 1 through 6, subpackets 8 through 12, and subpacket 15. The receiving end combines the identifiers carried by the received subpackets to obtain a third identifier: 0000 0100 0001. This third identifier is different from the first identifier, and the receiving end can determine that subpacket 7 sent by the sending end was lost during transmission. The receiving end can then send a first retransmission indication identifier.
[0122] In some embodiments, the above step 104 is implemented as follows: the sending end determines that the first retransmission indication identifier is different from the first identifier, sends the first retransmission identifier according to the first retransmission indication identifier, and again sends the first sub-packet to the Nth sub-packet in parallel to the receiving end through M channels.
[0123] For example, after receiving the first retransmission indicator, the transmitting end may determine that the received first retransmission indicator is different from the first indicator, and then transmit the first retransmission indicator and retransmit sub-data packets 1 to 12 through four channels.
[0124] In some embodiments, the first retransmission indicator and the third indicator have the same content. After determining that an error has occurred in the first data fragment, the receiving end may send the read third indicator without sending other content as the first retransmission indicator. The sending end may compare the received third indicator with the first indicator to determine that an error has occurred in the first data fragment.
[0125] In some embodiments, the transmitting end may further process the received third identifier. For example, in the above example, the transmitting end may determine that sub-packet 7 was lost during transmission. Based on this information, the transmitting end may resend only sub-packet 7 and no longer resend sub-packets 1 to 6 and sub-packets 8 to 12, thereby conserving data transmission resources.
[0126] In some embodiments, before step 101 , step 301 is further included.
[0127] Step 301: The sending end sends a start flag.
[0128] The start flag instructs the sending end to start sending data fragments.
[0129] Reference Figure 4 , the sending end sends the start flag first and then sends the sub-data packet. The receiving end can receive the sub-data packet after receiving the start flag.
[0130] In some embodiments, the receiving end receives a start identifier, receives the sub-data packet, and executes other steps in the above embodiment.
[0131] In other embodiments, if an error occurs during the transmission of the start identifier, such as loss or garbled characters, the receiving end may not receive the start identifier. If the receiving end does not receive the start identifier, the receiving end may not receive the sub-data packet. In other words, if an error occurs during the transmission of the start identifier, resulting in the receiving end not receiving the start identifier, the receiving end will not receive the sub-data packet transmitted after the start identifier.
[0132] For example, refer to Figure 4, the transmitting end sends the data stream to the receiving channel through the first channel to the fourth channel. If the start identifier 1 is lost, the receiving end will not receive sub-data packets 1, 5, 9, 13, etc. If the start identifier 2 is not lost, the receiving end will receive sub-data packets 2, 6, 10, 15, etc. after receiving the start identifier 2. Similarly, if the start identifier 3 is lost, the receiving end will not receive the sub-data packets transmitted by the third channel. If the start identifier 3 is not lost, the receiving end will receive the sub-data packets transmitted by the third channel after receiving the start identifier. If the start identifier 4 is lost, the receiving end will not receive the sub-data packets transmitted by the fourth channel. If the start identifier 4 is not lost, the receiving end will receive the sub-data packets transmitted by the fourth channel after receiving the start identifier.
[0133] In some embodiments, the receiving end includes M storage modules, each of which is used to store sub-packets received from the M channels. Each of the M storage modules corresponds one-to-one to each of the M channels. For example, if M = 4, the receiving end includes storage modules 1 through 4. Storage module 1 is used to store sub-packets received via the first channel, storage module 2 is used to store sub-packets received via the second channel, storage module 3 is used to store sub-packets received via the third channel, and storage module 4 is used to store sub-packets received via the fourth channel.
[0134] In some embodiments, the above method further includes step 401 and step 402.
[0135] Step 401: If one or more data in the M storage modules overflow, the receiving end clears the sub-data packets stored in the M storage modules.
[0136] The M storage modules are respectively configured to store sub-data packets received from the M channels, and the M storage modules correspond one-to-one to the M channels. The sub-data packet first stored in the M storage modules is the sub-data packet obtained by splitting the second data micro-slice. The sub-data packets obtained by splitting the second data micro-slice include the N+1th sub-data packet through the Oth sub-data packet, where O is a positive integer greater than N.
[0137] For example, if each data flit is split into 12 sub-data packets, and storage spaces 1 through 4 each store three sub-data packets, the receiving end can read the sub-data packets, combine them into data flit, and delete the sub-data packets from the storage space to free up space. For example, after deleting sub-data packets 1 through 12 from the first data flit from the storage space, the first data flit stored in the storage space will be sub-data packets 13 through 24 from the second data flit.
[0138] It should be understood that the above example of the second data micro-slice being located after the first data micro-slice is merely an example. The second data micro-slice may be located before the first data micro-slice, or the second data micro-slice and the first data micro-slice may be the same data micro-slice. This embodiment of the present application does not limit the relationship between the second data micro-slice and the first data micro-slice.
[0139] Taking M=4 and O=N+12 as an example, assume that the storage capacity of storage modules 1 through 4 can store 18 sub-packets, and that storage modules 1 through 4 store the sub-packets transmitted via channels 1 through 4, respectively. Storage module 1 is used to store sub-packets N+1, N+5, and N+9; storage module 2 is used to store sub-packets N+2, N+6, and N+10; storage module 3 is used to store sub-packets N+3, N+7, and N+11; and storage module 4 is used to store sub-packets N+4, N+8, and N+12. If storage module 1 has stored sub-packets N+1, N+5, and N+9, totaling 18 sub-packets, and storage module 4 has not stored sub-packet N+12, the receiving end will not export sub-packets N+1 through 0. In other words, the memory occupied by sub-packets N+1 through 0 will not be cleared. If channel 1 continues to transmit data to the receiving end, storage module 1 will overflow. Then, the receiving end clears the data in storage modules 1 to 4.
[0140] In some examples, when storage module 1 overflows, storage modules 2 to 4 may or may not overflow. As long as one of the M storage modules overflows, the receiving end clears the sub-data packets stored in all the storage modules.
[0141] In other examples, if two or more storage modules overflow, the receiving end clears the sub-data packets stored in M storage modules. For example, if storage modules 1 and 2 overflow, the receiving end clears the sub-data packets stored in 4 storage modules.
[0142] In some embodiments, after the receiving end clears the sub-data packets stored in the M storage modules, it no longer receives new sub-data packets until the receiving end subsequently receives a retransmission flag, and then receives new sub-data packets.
[0143] In step 402, if the transmitting end does not receive the fourth identifier from the receiving end within the preset time, the transmitting end sends a second retransmission identifier and again sends the N+1th sub-packet to the Oth sub-packet to the receiving end in parallel through M channels.
[0144] Correspondingly, the receiving end receives the second retransmission identifier and receives the N+1th sub-data packet to the Oth sub-data packet in parallel through M channels.
[0145] Among them, the fourth identifier indicates that the receiving end has received the second data micro-slice, and the N+1th sub-packet to the Oth sub-packet are obtained by splitting the second data micro-slice, O is a positive integer greater than N, and the second retransmission identifier is used to indicate that the N+1th sub-packet to the Oth sub-packet are retransmitted data.
[0146] After sending sub-packets (N+1) through (O), the sending end starts a timer to limit the duration of receiving the fourth identifier from the receiving end. Because the overflow in storage module 1 caused the receiving end to clear the stored sub-packets and not receive the second data fragment, the receiving end does not send the fourth identifier to the sending end. If the sending end does not receive the fourth identifier within the preset time, it sends a second retransmission identifier and again sends sub-packets (N+1) through (O) to the receiving end in parallel via M channels.
[0147] In some embodiments, the second retransmission identifier has the same content as the first retransmission identifier.
[0148] It should be noted that the M storage modules may be provided in the receiving end, or may be provided separately from the receiving end, for example, the M storage modules are communicatively connected to the receiving end.
[0149] By detecting data overflow in the storage module and clearing the storage module, it is possible to better receive sub-data packets split from the same data flit and obtain a complete data flit.
[0150] For example, if M channels receive data at different speeds, the transmission speeds of channels 1 to 3 are faster, while the transmission speed of channel 4 is slower. This can cause the storage module corresponding to channel 1 to overflow. Therefore, if the different transmission speeds of multiple channels prevent the receiving end from synthesizing data flit fragments, the receiving end will clear the stored sub-data packets and re-receive the sub-data packets sent by the sending end, thereby eliminating the impact caused by the different transmission speeds of multiple channels.
[0151] As another example, if the start flag transmitted on the fourth channel is lost, the storage module corresponding to the fourth channel will not store sub-data packets, and one or more of storage modules 1 through 3 will overflow. Consequently, the receiving end will clear the sub-data packets stored in storage modules 1 through 3. The transmitting end will resend the start flag on the first through fourth channels, and the receiving end will re-receive the sub-data packets transmitted on the first through fourth channels and store them in the storage module. Thus, even if the start flag is lost, the receiving end can still identify the data transmission anomaly and maintain data transmission, preventing the data transmission system from becoming stagnant.
[0152] In some embodiments, reference Figure 4After the sender completes sending a sub-packet, it also sends an end marker. Correspondingly, the receiver receives an end marker after receiving a sub-packet. The end marker indicates that the sender has completed sending the data flits.
[0153] Referring to the embodiment described above in which the channel detects a sub-data packet error, the channel can detect that the end identifier has changed during transmission and mark the erroneous end identifier. The receiving end can determine that the end identifier is erroneous based on the error identifier. After identifying the error identifier, the receiving end can refer to step 104 above and receive the sub-data packet after receiving the retransmission identifier. The retransmission identifier indicates that the sub-data packet is a retransmitted sub-data packet. Because the transmitting end has received and sent the identifier of the data flit belonging to the sub-data packet preceding the end identifier, the transmitting end confirms that it has received the data flit preceding the end identifier and continues to send the sub-data packet. Because the receiving end waits for the retransmission identifier before receiving the sub-data packet, it cannot receive the sub-data packet sent by the transmitting end. The receiving end cannot feedback the identifier of the data flit formed by combining the newly sent sub-data packets to the transmitting end. When the timer for the transmitting end to wait for the identifier of the data flit expires, a retransmission is triggered.
[0154] For example, refer to Figure 4 Suppose the sub-packets transmitted in the data stream are data fragments 1 through 3, and an error occurs in end marker 1, causing the channel to mark end marker 1 as an error. After receiving data fragments 1 through 3, the receiving end sends the identifiers for data fragments 1 through 3. After receiving the identifier for data fragment 3, the sending end continues to send the next data stream, which includes data fragments 4 through 6. However, when reading end marker 1, the receiving end reads an error marker. After receiving the identifier for data fragment 3, the receiving end receives an error marker instead of the correct identifier for data fragment 4. Therefore, the receiving end waits for a retransmission marker before continuing to receive the sub-packet for data fragment 4. The receiving end enters a wait-for-retransmission state. After receiving the identifier for data fragment 3, the sending end continues to send the data stream normally, including the start marker, the sub-packets for data fragments 4 through 6, and the end marker. However, the data stream does not include a retransmission marker, so the receiving end does not receive the sub-packets in that data stream. Within the time preset by the sender, the receiver does not return the identifier for data flit 4 to the sender. Consequently, the sender enters a retransmission state. The sender sends the retransmission identifier and sequentially transmits the sub-packets for data flit 4 through 6. Consequently, the receiver can receive the sub-packets for data flit 4 through 6 after receiving the retransmission identifier. This ensures efficient data stream transmission even when the end identifier is incorrect.
[0155] In some embodiments, the retransmission identifier is the same as the first retransmission identifier described above. Upon receiving the retransmission identifier, the receiving end begins receiving the sub-data packet following the retransmission identifier. After receiving the sub-data packets on all parallel channels, the sub-data packets are combined to obtain a data fragment. The identifier of the data fragment is compared with the identifier of the pre-stored data fragment to be received. If they are identical, the contents of the data fragment are saved and the identifier of the pre-stored data fragment is incremented by 1, preparing to receive the next data fragment. If they are different, the receiving end continues to wait for the retransmission identifier and repeats the above-described operation of comparing the data fragment identifiers.
[0156] Referring to the example above where the start flag is lost, if the end flag is lost, the receiving end will continue to wait for the end flag, affecting the receiving end's reception of the start flag in the next data stream. This will also affect the receiving end's reception of the sub-packets following the start flag. In this case, the storage module may also overflow. The transmitting end and the receiving end can achieve data stream transmission through steps 401 and 402 above.
[0157] In some embodiments, after the transmitting end sends the first sub-data packet to the Nth sub-data packet in parallel again through M channels in step 103 , step 501 is further included.
[0158] Step 501: Send the N+1th sub-data packet to the Oth sub-data packet in parallel through M channels.
[0159] Among them, the N+1th sub-data packet to the Oth sub-data packet carry a fourth identifier, and the fourth identifier indicates that the N+1th sub-data packet to the Oth sub-data packet are obtained by splitting the second data micro-slice, and the second data micro-slice is the data micro-slice adjacent to the first data micro-slice. The fourth identifier is the first identifier plus 1.
[0160] Illustratively, the first identifier is 0000 0000 0001, and the fourth identifier is 0000 0000 0010. By setting the fourth identifier of the second data flake to the first identifier of the first data flake plus 1, the receiving end and the sending end can better align the identifiers of the data flakes.
[0161] For example, the receiving end knows that the identifier of the first data micro-slice is 0000 0000 0001. After receiving the first data micro-slice, the receiving end can increment the first identifier of the first data micro-slice by 1 to obtain the fourth identifier of the second data micro-slice. Thus, the receiving end does not need to store the fourth identifier, thus conserving storage resources. Similarly, after the sending end determines that the receiving end has received the first data micro-slice, the cyclic counter in the sending end can increment the first identifier of the first data micro-slice by 1 to obtain the fourth identifier of the second data micro-slice. The cyclic counter can then carry the fourth identifier when sending the sub-data packet of the fourth data micro-slice. Thus, the sending end also does not need to store the fourth identifier, thus conserving storage resources.
[0162] In some embodiments, the receiving end has already received and stored the third data fragment, but then receives the same third data fragment again in the data stream. That is, the identifier of the third data fragment received by the receiving end is the same as the identifier of the already stored data fragment. The receiving end does not store the sub-data packet of the third data fragment, but instead sends feedback information about the third data fragment. Accordingly, the sending end receives feedback information about the third data fragment.
[0163] For example, the identifier of the third data fragment is 0000 0000 0100. When the receiving end first receives a sub-data packet of the third data fragment, it receives and stores the identifier of the third data fragment. Subsequently, the receiving end increments the identifier by 1 and sends feedback information (e.g., 0000 0000 0100) to the sending end, indicating that the receiving end has received the third data fragment. If the sending end does not receive the feedback information, it will resend the third data fragment. Upon receiving the sub-data packets split from the third data fragment, the receiving end can determine, based on the identifier 0000 0000 0100, that it has already received these sub-data packets. The receiving end no longer stores these sub-data packets of the third data fragment. However, the receiving end will again send feedback information 0000 0000 0100 to the sending end. This allows the sending end to determine that it has received data fragment 1 and thus continue to send data fragment 2. This allows the data stream sent from the sending end to the receiving end to resume normal transmission more quickly.
[0164] The above describes the data transmission method in the embodiment of the present application. The following introduces the data transmission devices (such as the sending end and the receiving end) that execute the above method.
[0165] See Figure 6 ,like Figure 6 The data transmission device in the embodiment of the present application can realize the above-mentioned Figure 2 The steps of the data transmission method executed in the corresponding embodiment. The functions implemented by the data transmission device can be implemented by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions, and the modules can be software and / or hardware. The data transmission device may include an input and output module 601 and a processing module 602. The functions of the processing module 602 and the input and output module 601 can be implemented by reference to Figure 2 The operations performed in the corresponding embodiments are not described in detail here. For example, the processing module 602 can be used to control the operations of the input / output module 601 such as sending, receiving, and obtaining.
[0166] In some embodiments, the input / output module 601 is configured to send a first retransmission indication identifier, receive a first retransmission identifier, and receive the first sub-data packet to the Nth sub-data packet in parallel through M channels.
[0167] The first retransmission indicator is used to instruct the transmitter to retransmit the first data micro-slice. The first sub-data packet through the Nth sub-data packet are obtained by splitting the first data micro-slice, where M and N are positive integers. The first retransmission indicator is used to indicate that the first sub-data packet through the Nth sub-data packet are retransmitted data.
[0168] The processing module 602 is configured to control the operations of the input / output module 601 such as sending, receiving, and acquiring.
[0169] In other embodiments, the input-output module 601 is configured to send the first sub-data packet to the Nth sub-data packet in parallel through M channels, receive a first retransmission indication identifier, send a first retransmission identifier based on the first retransmission indication identifier, and send the first sub-data packet to the Nth sub-data packet in parallel again through M channels.
[0170] The first to Nth sub-packets are obtained by splitting the first data micro-slice, and M and N are positive integers. The first retransmission indicator is used to instruct the sender to retransmit the first data micro-slice. The first retransmission indicator is used to indicate that the first to Nth sub-packets are retransmitted data.
[0171] The processing module 602 is configured to control the operations of the input / output module 601 such as sending, receiving, and acquiring.
[0172] The data transmission device 60 in the embodiment of the present application is described above from the perspective of modular functional entities. The data transmission device in the embodiment of the present application is described below from the perspective of hardware processing.
[0173] It should be noted that Figure 6 The physical device corresponding to the input / output module 601 shown may be a transceiver, a radio frequency circuit, a communication module, an input / output (I / O) interface, etc., and the physical device corresponding to the processing module 602 may be a processor.
[0174] Figure 6 The devices shown can all have Figure 7 The structure shown, when Figure 6 The data transmission device 60 shown has the following features: Figure 7 When the structure shown is Figure 7 The processor and transceiver in the embodiment can realize the same or similar functions as the processing module 602 and the input / output module 601 provided in the aforementioned device embodiment corresponding to the device. Figure 7The memory in the storage device stores a computer program that needs to be called when the processor executes the above data transmission method.
[0175] An embodiment of the present application also relates to a chip system, which includes at least one processor and an interface circuit, wherein the processor includes multiple vector storage units, and the processor is used to execute instructions and / or data interaction through the interface circuit, so that the chip system executes the method of any of the above embodiments.
[0176] In a possible implementation, the chip system may also directly include a memory, in which a computer program or computer instructions are stored.
[0177] For example, the memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache memory. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DRRAM).
[0178] An embodiment of the present application further relates to a processor, which includes multiple storage units for calling computer programs or computer instructions stored in the memory so that the processor executes the method described in any of the above embodiments.
[0179] For example, in an embodiment of the present application, the processor is an integrated circuit chip with signal processing capabilities. For example, the processor can be an FPGA, a general-purpose processor, a DSP, an ASIC or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, a SoC, a CPU, a network processor (NP), a microcontroller unit (MCU), a PLD or other integrated chip, which can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. In one possible implementation, the embodiment of the present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores program code, and when the program code is run on the computer, the computer executes the above method embodiment.
[0180] The present application also provides a terminal device, such as Figure 8 For ease of explanation, only the parts related to the embodiments of the present application are shown. For specific technical details not disclosed, please refer to the method part of the embodiments of the present application. The terminal device can be any terminal device including a mobile phone, tablet computer, personal digital assistant (PDA), point of sales (POS), car computer, etc., taking the mobile phone as an example:
[0181] Figure 8 The block diagram shows a partial structure of a mobile phone related to the terminal device provided in the embodiment of the present application. Figure 8 The mobile phone includes components such as a radio frequency (RF) circuit 1010, a memory 1020, an input unit 1030, a display unit 1040, a sensor 1050, an audio circuit 1060, a wireless fidelity (WiFi) module 1070, a processor 1080, and a power supply 1090. Those skilled in the art will understand that Figure 8 The mobile phone structure shown in the figure does not constitute a limitation to the mobile phone, and may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.
[0182] The following combination Figure 8 A detailed introduction to the various components of a mobile phone:
[0183] The RF circuit 1010 can be used to receive and send signals during information transmission or calls. In particular, after receiving the downlink information from the base station, it is sent to the processor 1080 for processing; in addition, the designed uplink data is sent to the base station. Generally, the RF circuit 1010 includes but is not limited to an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier (LNA), a duplexer, etc. In addition, the RF circuit 1010 can also communicate with the network and other devices through wireless communication. The above-mentioned wireless communication can use any communication standard or protocol, including but not limited to Global System of Mobile communication (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long Term Evolution (LTE), email, Short Messaging Service (SMS), etc.
[0184] The memory 1020 can be used to store software programs and modules. The processor 1080 executes the various functional applications and data processing of the mobile phone by running the software programs and modules stored in the memory 1020. The memory 1020 may mainly include a program storage area and a data storage area. The program storage area may store an operating system and at least one application required for a function (such as a sound playback function, an image playback function, etc.); the data storage area may store data created based on the use of the mobile phone (such as audio data, a phone book, etc.). In addition, the memory 1020 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, a flash memory device, or other volatile solid-state memory device.
[0185] The input unit 1030 can be used to receive input digital or character information, and to generate key signal input related to the user settings and function control of the mobile phone. Specifically, the input unit 1030 may include a touch panel 1031 and other input devices 1032. The touch panel 1031, also known as a touch screen, can collect user touch operations on or near it (such as operations performed by the user using any suitable object or accessory such as a finger, stylus, etc. on or near the touch panel 1031) and drive the corresponding connection device according to a pre-set program. Optionally, the touch panel 1031 may include two parts: a touch detection device and a touch controller. Among them, the touch detection device detects the user's touch direction and detects the signal caused by the touch operation, and transmits the signal to the touch controller; the touch controller receives the touch information from the touch detection device and converts it into touch point coordinates, which are then sent to the processor 1080. It can also receive commands sent by the processor 1080 and execute them. In addition, the touch panel 1031 can be implemented using various types such as resistive, capacitive, infrared and surface acoustic wave. In addition to the touch panel 1031, the input unit 1030 may further include other input devices 1032. Specifically, the other input devices 1032 may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, and a joystick.
[0186] The display unit 1040 can be used to display information input by the user or information provided to the user and various menus of the mobile phone. The display unit 1040 may include a display panel 1041. Optionally, the display panel 1041 may be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), etc. Further, the touch panel 1031 may cover the display panel 1041. When the touch panel 1031 detects a touch operation on or near it, it is transmitted to the processor 1080 to determine the type of touch event. Subsequently, the processor 1080 provides corresponding visual output on the display panel 1041 according to the type of touch event. Although in Figure 8 In the embodiment, the touch panel 1031 and the display panel 1041 are used as two independent components to realize the input and output functions of the mobile phone, but in some embodiments, the touch panel 1031 and the display panel 1041 can be integrated to realize the input and output functions of the mobile phone.
[0187] The mobile phone may also include at least one sensor 1050, such as a light sensor, a motion sensor, and other sensors. Specifically, the light sensor may include an ambient light sensor and a proximity sensor, wherein the ambient light sensor may adjust the brightness of the display panel 1041 according to the brightness of the ambient light, and the proximity sensor may turn off the display panel 1041 and / or the backlight when the mobile phone is moved to the ear. As a type of motion sensor, the accelerometer sensor can detect the magnitude of acceleration in all directions (generally three axes), and can detect the magnitude and direction of gravity when stationary. It can be used for applications that identify the posture of the mobile phone (such as horizontal and vertical screen switching, related games, magnetometer posture calibration), vibration recognition related functions (such as pedometer, tapping), etc.; as for other sensors that the mobile phone can also be configured with, such as gyroscopes, barometers, hygrometers, thermometers, infrared sensors, etc., they will not be described here.
[0188] Audio circuit 1060, speaker 1061, and microphone 1062 provide an audio interface between the user and the phone. Audio circuit 1060 converts received audio data into electrical signals and transmits them to speaker 1061, which then converts them into sound signals for output. Microphone 1062, on the other hand, converts collected sound signals into electrical signals, which are then received by audio circuit 1060 and converted into audio data. The audio data is then processed by processor 1080 and transmitted to, for example, another phone via RF circuit 1010, or stored in memory 1020 for further processing.
[0189] Wi-Fi is a short-range wireless transmission technology. The mobile phone can help users send and receive emails, browse the web, and access streaming media through the Wi-Fi module 1070. It provides users with wireless broadband Internet access. Figure 8 A Wi-Fi module 1070 is shown, but it is understandable that it is not an essential component of the mobile phone and can be omitted as needed without changing the essence of the invention.
[0190] Processor 1080 is the control center of the phone, connecting all parts of the phone using various interfaces and circuits. By running or executing software programs and / or modules stored in memory 1020 and accessing data stored in memory 1020, it performs various phone functions and processes data, thereby providing overall monitoring of the phone. Optionally, processor 1080 may include one or more processing units; alternatively, processor 1080 may integrate an application processor and a modem processor, with the application processor primarily handling the operating system, user interface, and application programs, while the modem processor primarily handles wireless communications. It is understood that the modem processor may not be integrated into processor 1080.
[0191] The mobile phone also includes a power supply 1090 (such as a battery) for supplying power to various components. Optionally, the power supply can be logically connected to the processor 1080 through a power management system, thereby managing charging, discharging, and power consumption through the power management system.
[0192] Although not shown, the mobile phone may also include a camera, a Bluetooth module, etc., which will not be described in detail here.
[0193] In the embodiment of the present application, the processor 1080 included in the mobile phone also has the function of controlling and executing the data transmission method process performed by the data transmission device. For example, the mobile phone can be the receiving end that executes the above-mentioned data transmission method. For another example, the mobile phone can be the sending end that executes the above-mentioned data transmission method.
[0194] The present application also provides a server. Figure 9 , Figure 9 This is a schematic diagram of a server structure provided in an embodiment of the present application. The server 1100 may vary significantly due to configuration or performance differences and may include one or more central processing units (CPUs) 1122 (e.g., one or more processors), memory 1132, and one or more storage media 1130 (e.g., one or more mass storage devices) storing application programs 1142 or data 1144. The memory 1132 and storage media 1130 may be either transient or persistent storage. The program stored in the storage medium 1130 may include one or more modules (not shown), each of which may include a series of instruction operations on the server. Furthermore, the CPU 1122 may be configured to communicate with the storage medium 1130 to execute the series of instruction operations in the storage medium 1130 on the server 1100.
[0195] The server 1100 may also include one or more power supplies 1126, one or more wired or wireless network interfaces 1150, one or more input and output interfaces 1158, and / or one or more operating systems 1141, such as Windows Server, Mac OS X, Unix, Linux, FreeBSD, etc.
[0196] The steps performed by the server in the above embodiment can be based on the Figure 9 The structure of the server 1100 is shown in FIG. Figure 6 The steps performed by the data transmission device 60 shown can be based on the Figure 9For example, the central processing unit 1122 executes the operations of the sending end in the above-mentioned data transmission method by calling the instructions in the memory 1132. For example, the central processing unit 1122 executes the operations of the receiving end in the above-mentioned data transmission method by calling the instructions in the memory 1132.
[0197] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0198] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and modules described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0199] In the several embodiments provided in the embodiments of the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is only a logical function division. There may be other division methods in actual implementation, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, which can be electrical, mechanical or other forms.
[0200] The modules described as separate components may or may not be physically separate, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected to achieve the purpose of the present embodiment according to actual needs.
[0201] In addition, the functional modules in each embodiment of the present application can be integrated into a processing module, or each module can exist physically separately, or two or more modules can be integrated into a module. The above-mentioned integrated modules can be implemented in the form of hardware or in the form of software functional modules. If the integrated modules are implemented in the form of software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium.
[0202] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product.
[0203] The computer program product includes one or more computer instructions. When the computer program is loaded and executed on a computer, the process or function described in accordance with the embodiments of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that can be stored on a computer or a data storage device such as a server or data center that includes one or more available media. The available medium may be a magnetic medium (e.g., a floppy disk, hard disk, or magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)).
[0204] The above is a detailed introduction to the technical solutions provided in the embodiments of the present application. Specific examples are used in the embodiments of the present application to illustrate the principles and implementation methods of the embodiments of the present application. The description of the above embodiments is only used to help understand the methods and core ideas of the embodiments of the present application. At the same time, for those skilled in the art, according to the ideas of the embodiments of the present application, there will be changes in the specific implementation methods and application scopes. In summary, the content of this specification should not be understood as a limitation on the embodiments of the present application.
Claims
1. A data transmission method, comprising: The receiving end receives N sub-data packets in parallel through M channels; where M and N are positive integers; The receiving end combines the identifiers carried by the N received sub-data packets to obtain a third identifier; the third identifier is different from the first identifier, and the first identifier is obtained by combining the identifiers carried by the first sub-data packet to the Nth sub-data packet, and the first sub-data packet to the Nth sub-data packet all carry part of the first identifier, and the first identifier indicates that the first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-slice; The receiving end sends a first retransmission indication identifier, where the first retransmission indication identifier is used to instruct the sending end to retransmit the first data fragment; wherein the first retransmission indication identifier has the same content as the third identifier; The receiving end receives a first retransmission flag and receives the first sub-data packet to the Nth sub-data packet in parallel through M channels; the first retransmission flag is used to indicate that the first sub-data packet to the Nth sub-data packet are retransmitted data; If one or more data in the M storage modules overflow, the receiving end clears the sub-data packets stored in the M storage modules, the M storage modules being respectively used to store sub-data packets received from the M channels, and the M storage modules corresponding one-to-one to the M channels; the sub-data packets first stored in the M storage modules are the sub-data packets obtained by splitting the second data micro-slice; the sub-data packets obtained by splitting the second data micro-slice include the N+1th sub-data packet to the Oth sub-data packet, where O is a positive integer greater than N; The receiving end receives a second retransmission identifier and receives the N+1th to Oth sub-packets in parallel through M channels, where the second retransmission identifier is used to indicate that the N+1th to Oth sub-packets are retransmitted data.
2. The method according to claim 1, characterized in that After receiving the first to Nth sub-data packets in parallel through the M channels, the method further includes: The receiving end sends a second identifier, where the second identifier indicates that the receiving end has received the first data fragment.
3. The method according to claim 2, characterized in that The first identifier and the second identifier have the same content.
4. The method according to any one of claims 1 to 3, characterized in that The method further includes: the receiving end determining, based on the third identifier, that the Kth sub-data packet among the N sub-data packets is different from the Kth sub-data packet among the first to Nth sub-data packets; The receiving of the first to Nth sub-data packets in parallel through the M channels further includes: receiving the Kth sub-data packet from a transmitting end.
5. A data transmission method, the method comprising: The transmitting end transmits a first sub-data packet to an Nth sub-data packet in parallel through M channels; wherein the first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-slice, and M and N are positive integers; the first sub-data packet to the Nth sub-data packet carry a first identifier, and the first identifier indicates that the first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-slice; The transmitting end receives a first retransmission indication identifier, the first retransmission indication identifier being used to instruct the transmitting end to retransmit the first data fragment; wherein the first retransmission indication identifier and the third identifier have the same content; the third identifier is obtained by combining identifiers carried by N sub-data packets received by the receiving end, and the third identifier is different from the first identifier; The transmitting end sends a first retransmission flag according to the first retransmission indication flag, and again sends the first sub-data packet to the Nth sub-data packet in parallel through M channels; the first retransmission flag is used to indicate that the first sub-data packet to the Nth sub-data packet are retransmitted data; If the fourth identifier is not received from the receiving end within the preset time, the transmitting end sends a second retransmission identifier and again sends the N+1th to Oth sub-packets in parallel through M channels; the fourth identifier indicates that the receiving end has received the second data micro-slice, and the N+1th to Oth sub-packets are obtained by splitting the second data micro-slice, O is a positive integer greater than N, and the second retransmission identifier is used to indicate that the N+1th to Oth sub-packets are retransmitted data; Among them, if one or more data in the M storage modules overflow, the receiving end clears the sub-data packets stored in the M storage modules, and the M storage modules are respectively used to store sub-data packets received from the M channels, and the M storage modules correspond one-to-one to the M channels; the sub-data packet first stored in the M storage modules is the sub-data packet obtained by splitting the second data micro-slice.
6. The method according to claim 5, characterized in that After the first sub-data packet is sent to the Nth sub-data packet in parallel again through M channels, the method further includes: the transmitting end receiving a second identifier, where the second identifier is used to indicate that the receiving end has received the first data fragment.
7. The method according to claim 6, characterized in that The first identifier and the second identifier have the same content.
8. The method according to any one of claims 5 to 7, characterized in that: The method further includes: the transmitting end comparing the first retransmission indication identifier with the first identifier to obtain an erroneous sub-data packet; The sending the first sub-data packet to the Nth sub-data packet in parallel again through M channels further includes: sending the erroneous sub-data packet.
9. A data transmission device, characterized in that: The device comprises: A receiving module, configured to receive N sub-data packets in parallel through M channels; wherein M and N are positive integers; a processing module, configured to combine identifiers carried by the N received sub-data packets to obtain a third identifier; the third identifier being different from the first identifier, the first identifier being obtained by combining identifiers carried by the first sub-data packet to the Nth sub-data packet, the first sub-data packet to the Nth sub-data packet each carrying a portion of the first identifier, the first identifier indicating that the first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-slice; The sending module is used to send a first retransmission indication identifier, where the first retransmission indication identifier is used to instruct the sending end to retransmit the first data fragment; wherein the first retransmission indication identifier has the same content as the third identifier; The receiving module is further configured to receive a first retransmission flag and receive the first sub-data packet to the Nth sub-data packet in parallel through M channels; the first retransmission flag is configured to indicate that the first sub-data packet to the Nth sub-data packet are retransmission data; The processing module is further configured to clear sub-data packets stored in the M storage modules if one or more data in the M storage modules overflow, the M storage modules being respectively configured to store sub-data packets received from the M channels, the M storage modules corresponding one-to-one to the M channels; the sub-data packets first stored in the M storage modules are sub-data packets obtained by splitting the second data micro-slice; the sub-data packets obtained by splitting the second data micro-slice include the N+1th sub-data packet to the Oth sub-data packet, where O is a positive integer greater than N; The receiving module is further configured to receive a second retransmission identifier and receive the N+1th to Oth sub-packets in parallel through M channels, wherein the second retransmission identifier is configured to indicate that the N+1th to Oth sub-packets are retransmitted data.
10. The device according to claim 9, characterized in that The processing module is further configured to determine, based on the third identifier, that the Kth sub-data packet among the N sub-data packets is different from the Kth sub-data packet among the first to Nth sub-data packets; The receiving of the first to Nth sub-data packets in parallel through the M channels further includes: receiving the Kth sub-data packet from a transmitting end.
11. A data transmission device, characterized in that: The device comprises: A sending module, configured to send a first sub-data packet to an Nth sub-data packet in parallel through M channels; wherein the first sub-data packet to the Nth sub-data packet are obtained by splitting a first data micro-slice, and M and N are positive integers; the first sub-data packet to the Nth sub-data packet carry a first identifier, the first identifier indicating that the first sub-data packet to the Nth sub-data packet are obtained by splitting the first data micro-slice; a receiving module, configured to receive a first retransmission indication identifier, the first retransmission indication identifier being used to instruct a transmitting end to retransmit the first data micro-slice; wherein the first retransmission indication identifier and a third identifier have the same content; the third identifier is obtained by combining identifiers carried by N sub-data packets received by a receiving end, and the third identifier is different from the first identifier; The sending module is further configured to send a first retransmission flag according to the first retransmission indication flag, and to send the first sub-data packet to the Nth sub-data packet in parallel again through the M channels; the first retransmission flag is configured to indicate that the first sub-data packet to the Nth sub-data packet are retransmitted data; The sending module is further configured to, if no fourth identifier is received from the receiving end within a preset time, send a second retransmission identifier and again send the N+1th sub-packet to the Oth sub-packet in parallel through the M channels; the fourth identifier indicates that the receiving end has received the second data micro-slice, and the N+1th sub-packet to the Oth sub-packet are obtained by splitting the second data micro-slice, O is a positive integer greater than N, and the second retransmission identifier is used to indicate that the N+1th sub-packet to the Oth sub-packet are retransmitted data; Among them, if one or more data in the M storage modules overflow, the receiving end clears the sub-data packets stored in the M storage modules, and the M storage modules are respectively used to store sub-data packets received from the M channels, and the M storage modules correspond one-to-one to the M channels; the sub-data packet first stored in the M storage modules is the sub-data packet obtained by splitting the second data micro-slice.
12. The device according to claim 11, characterized in that The apparatus further includes: a processing module, configured to compare the first retransmission indication identifier with the first identifier to obtain an erroneous sub-data packet; The sending the first sub-data packet to the Nth sub-data packet in parallel again through M channels further includes: sending the erroneous sub-data packet.
13. A communication system, characterized in that: include: A sending device and a receiving device, wherein the sending device is configured to execute the method according to any one of claims 5 to 8; The receiving device is configured to execute the method according to any one of claims 1 to 4.
14. A computing device, characterized in that It includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method according to any one of claims 1 to 4, or the processor executes the computer program to implement the method according to any one of claims 5 to 8.
15. A computer-readable storage medium, characterized in that The method comprises instructions, which, when executed on a computer, enable the computer to execute the method according to any one of claims 1 to 4; or, when executed on a computer, enable the computer to execute the method according to any one of claims 5 to 8.
16. A chip, characterized in that: The chip includes a processor coupled to the transceiver, wherein the processor is configured to execute the method according to any one of claims 1 to 4, or the processor is configured to execute the method according to any one of claims 5 to 8.
17. A computer program product comprising computer instructions, characterized in that When the computer instruction is executed by a processor, the method according to any one of claims 1 to 4 is implemented; or, when the computer instruction is executed by a processor, the method according to any one of claims 5 to 8 is implemented.
Citation Information
Patent Citations
Lane error detection and lane removal mechanism of reduce the probability of data corruption
CN105706388A