Data transmission method and related apparatus

By using a hierarchical and segmented data transmission method, data blocks are divided according to the channel environment and storage resources. Retransmission is performed when no feedback is received, which solves the data integrity problem caused by the discontinuity of the satellite link and improves the data reception success rate.

CN121619608BActive Publication Date: 2026-07-03HONOR DEVICE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202610130135.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-01-30
Publication Date
2026-07-03
Estimated Expiration
2046-01-30

AI Technical Summary

Technical Problem

In wireless communication scenarios, the rapid movement of satellites causes discontinuity in satellite links, resulting in the receiver being unable to fully receive data from the sender.

Method used

A hierarchical and block-based data transmission method is adopted, which divides the data into blocks according to the total amount of data to be transmitted, the channel environment, and the amount of storage resources. This method adapts to the channel environment and equipment conditions, and retransmits the data block when no feedback is received, thus ensuring data integrity.

Benefits of technology

This increases the likelihood of data blocks being successfully received and ensures the integrity of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121619608B_ABST
    Figure CN121619608B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a data transmission method and related device, which are applied to an exemplary scenario that a first device transmits data to a second device in the field of wireless communication technology. The first device sends a first data block to the second device, the first data block being obtained by dividing a second data block, and the second data block being obtained by dividing to-be-sent data. The data amount of the first data block and / or the number of the second data block is related to at least one of the total amount of to-be-sent data, a channel environment, and a storage resource amount. The storage resource amount includes a storage resource amount of the first device and / or the second device. The first device sends the first data block to the second device again based on satisfying a first condition. The first condition includes that no reception feedback of the second device for the first data block is received within a first time range, or the second device indicates that the first data block is not successfully received. The retransmission and adaptively dividing the data blocks of each level based on various factors can guarantee the integrity of the transmitted data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of wireless communication technology, and in particular to a data transmission method and related apparatus. Background Technology

[0002] In wireless communication scenarios, data transmitted by the sending end may not be transmitted completely and effectively to the receiving end for various reasons. For example, when a satellite is used as a relay to transmit data, due to the rapid movement of the satellite, a low-orbit satellite can only cover the target area 1 to 2 times a day. This will result in a discontinuous satellite link, and the receiving end will not be able to receive the complete data sent by the sending end.

[0003] Ensuring the integrity of transmitted data is a problem that needs to be solved. Summary of the Invention

[0004] In view of the above, this application provides a data transmission method and related apparatus to solve at least some of the aforementioned problems, and the disclosed technical solution is as follows:

[0005] Firstly, a data transmission method is provided. This method can be executed by a first device (e.g., a terminal device or a network device), or by a component configured in the first device (e.g., a circuit, a chip, or a chip system), or by a logic module or software capable of implementing all or part of the functions of the first device. This application does not limit this method. The following description uses a first device as an example.

[0006] The method includes: a first device sending a first data block to a second device, the first data block being obtained by dividing a second data block, the second data block being obtained by dividing data to be sent, the data size of the first data block and / or the number of second data blocks being related to at least one of the total amount of data to be sent, the channel environment, and the amount of storage resources, the amount of storage resources including the storage resources of the first device and / or the second device; the first device sending the first data block again to the second device based on satisfying a first condition, the first condition including not receiving a reception feedback from the second device for the first data block within a first time range, or the second device indicating that the first data block was not successfully received.

[0007] For example, the amount of data in the first data block is related to at least one of the channel environment and the amount of storage resources, and the number of the second data blocks is related to the total amount of data to be sent.

[0008] In this method, the first data block is retransmitted when the first condition is met, thus ensuring the integrity of the transmitted data. Furthermore, based on at least one of the total amount of data to be sent, the channel environment, and the amount of storage resources, the data blocks at each level are adaptively divided, so that the first data block can adapt to factors such as the device and the channel environment, which is conducive to increasing the probability of the first data block being successfully received, thereby further ensuring the integrity of the transmitted data.

[0009] In some implementations, before sending the first data block to the second device, the method further includes: the first device sending first information to the second device. This first information includes the data size of the first data block, the data size of the second data block, and the total amount of data to be sent. This first information is used to determine the number of first data blocks and the number of second data blocks. The number of first data blocks and the number of second data blocks can be used by the receiving end to initialize some information, such as initializing the sub-block (first data block) receiving list and the block (second data block) receiving list, laying the foundation for ensuring the integrity of the transmitted data.

[0010] In some implementations, sending the first data block includes sending the first data block contained in the second data block located in the first sliding window, the length of which is determined based on the transmission processing time of the first device, the distance between the first device and the second device, and the processing time of the second device.

[0011] In some implementations, after sending the first data block to the second device again, the method further includes: after the first device successfully sends the second data block in the first sliding window, it sends the second data block located in the second sliding window, wherein the second sliding window is obtained by sliding the first sliding window, and the second data block successfully sent in the first sliding window is not located in the second sliding window.

[0012] The sliding window-based sending mechanism keeps the number of sub-blocks being sent simultaneously within the sliding window length. Combined with the method for determining the sliding window length, it can balance processing efficiency and processing load.

[0013] In some implementations, before retransmitting the first data block to the second device, the method further includes: the first device receiving feedback information from the second device, the feedback information indicating that the first data block was not successfully received. The feedback information can lay the foundation for retransmitting the first data block.

[0014] In some implementations, the feedback information indicating that the first data block was not successfully received includes: the feedback information indicating an identifier of the first data block that was not successfully received; or, the feedback information includes a bitmap indicating whether the first data block was successfully received or not.

[0015] In some implementations, when the amount of data used to transmit the identifier is less than the amount of data used to transmit the bitmap, the feedback information includes the identifier; when the amount of data used to transmit the identifier is not less than the amount of data used to transmit the bitmap, the feedback information includes the bitmap. Multiple feedback information options offer greater flexibility, and determining whether the feedback information is an identifier or a bitmap based on the amount of data helps save transmission resources.

[0016] In some implementations, the feedback information indicating the identifier of the first data block that was not successfully received includes: any feedback information indicating the identifier of the first data block that was not successfully received in a second data block; the bitmap indicating whether the first data block was successfully received or not includes: any bitmap indicating whether the first data block in a second data block was successfully received or not. Feedback on the reception status of the first data blocks within a second data block, using the second data block as a dimension, facilitates processing and retransmission at the sending end. Furthermore, simultaneously feeding back the reception status of the first data blocks within a second data block provides high feedback efficiency, thereby improving retransmission efficiency.

[0017] Secondly, a data transmission method is provided. This method can be executed by a second device (e.g., a network device or a terminal device), or by a component configured in the second device (e.g., a circuit, a chip, or a chip system), or by a logic module or software capable of implementing all or part of the functions of the second device. This application does not limit this method. The following description uses a second device as an example.

[0018] The method includes: a second device receiving a first data block from a first device, the first data block being obtained by dividing a second data block, the second data block being obtained by dividing data to be transmitted, the data size of the first data block and / or the number of the second data blocks being related to at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources, the amount of storage resources including the storage resources of the first device and / or the second device; the second device sending feedback information to the first device based on satisfying a second condition, the feedback information indicating that the first data block was not successfully received, the second condition including that the first data block was not received within a second time range, or that the first data block failed verification; and the second device receiving the first data block from the first device again.

[0019] In some implementations, sending feedback information to the first device includes: if a third condition is met, sending an identifier of the first data block that was not successfully received to the first device; if the third condition is not met, sending the bitmap to the first device. The third condition includes: the amount of data used to transmit the identifier is less than the amount of data used to transmit the bitmap.

[0020] The second aspect is the implementation of the counterpart device to the first aspect. The explanations, supplements, and descriptions of the beneficial effects of the first aspect also apply to the second aspect, and will not be repeated here.

[0021] Thirdly, a communication device is provided, comprising a transceiver module. The transceiver module is configured to send a first data block to a second device, the first data block being obtained by dividing a second data block, the second data block being obtained by dividing data to be transmitted, the data size of the first data block and / or the number of the second data blocks being related to at least one of the total amount of data to be transmitted, a channel environment, and storage resources, the storage resources including the storage resources of the first device and / or the second device; and, based on satisfying a first condition, to resend the first data block to the second device, the first condition including not receiving reception feedback from the second device for the first data block within a first time range, or the second device indicating that the first data block was not successfully received.

[0022] In some implementations, the communication device further includes a processing module for determining first information, constructing a first data unit based on a first data block, etc. The first information includes the data volume of the first data block, the data volume of the second data block, and the total amount of data to be sent. The first information is used to determine the number of the first data block and the number of the second data block.

[0023] Fourthly, a communication device is provided, comprising a transceiver module. The transceiver module is configured to receive a first data block from a first device, the first data block being obtained by dividing a second data block, the second data block being obtained by dividing data to be transmitted, the data size of the first data block and / or the number of the second data blocks being related to at least one of the total amount of data to be transmitted, a channel environment, and storage resources, the storage resources including the storage resources of the first device and / or the second device; send feedback information to the first device, the feedback information indicating that the first data block was not successfully received, the second condition including that the first data block was not received within a second time range, or that the first data block failed verification; and receive the first data block from the first device again.

[0024] In some implementations, the communication device also includes a processing module for determining the feedback information, including identifiers or bitmaps.

[0025] The third and fourth aspects are the implementation on the device side, which correspond to the first and second aspects. The explanations, supplements, and descriptions of the beneficial effects of the first and second aspects also apply to the third and fourth aspects, and will not be repeated here.

[0026] Fifthly, a communication device is provided, including a processor. The processor is coupled to a memory and can be used to execute instructions or data in the memory to implement the method in any possible implementation of the first aspect described above. Optionally, the communication device further includes a memory. Optionally, the communication device further includes a communication interface, and the processor is coupled to the communication interface.

[0027] In one implementation, the communication interface may be a transceiver, or an input / output interface.

[0028] In another implementation, the communication device is a chip configured in the first device. When the communication device is a chip configured in the first device, the communication interface can be an input / output interface.

[0029] In a sixth aspect, a communication device is provided, including a processor. The processor is coupled to a memory and can be used to execute instructions or data in the memory to implement the method in any possible implementation of the second aspect described above. Optionally, the communication device further includes a memory. Optionally, the communication device further includes a communication interface, and the processor is coupled to the communication interface.

[0030] In one implementation, the communication interface may be a transceiver, or an input / output interface.

[0031] In another implementation, the communication device is a chip configured in a satellite. When the communication device is a chip configured in a satellite, the communication interface can be an input / output interface.

[0032] In a seventh aspect, a processor is provided, comprising: an input circuit, an output circuit, and a processing circuit. The processing circuit is configured to receive signals through the input circuit and transmit signals through the output circuit, causing the processor to execute a method in any possible implementation of any aspect.

[0033] In specific implementation, the processor can be one or more chips, the input circuit can be input pins, the output circuit can be output pins, and the processing circuit can be transistors, gate circuits, flip-flops, and various logic circuits. The input signal received by the input circuit can be received and input by, for example, but not limited to, a receiver, and the signal output by the output circuit can be, for example, but not limited to, output to and transmitted by a transmitter. Furthermore, the input circuit and the output circuit can be the same circuit, which is used as both the input circuit and the output circuit at different times. This application does not limit the specific implementation of the processor and various circuits.

[0034] Eighthly, a communication device is provided, including a processor and a memory. The processor is used to read instructions stored in the memory, receive signals via a receiver, and transmit signals via a transmitter to execute the method in any possible implementation of any of the preceding aspects.

[0035] Optionally, the processor may be one or more, and the memory may be one or more.

[0036] Ninthly, a computer program product is provided, the computer program product comprising: a computer program (also referred to as code or instructions) that, when the computer program is run, causes a computer to perform a method in any possible implementation of any of the above aspects.

[0037] In a tenth aspect, a computer-readable storage medium is provided that stores a computer program (also referred to as code or instructions) that, when run on a computer, causes the computer to perform the methods in any possible implementation of any of the preceding aspects.

[0038] Eleventhly, embodiments of this application provide a chip system including one or more processors for calling and executing instructions stored in memory, causing the methods in any of the above aspects or possible implementations to be executed. The chip system may be composed of chips or may include chips and other discrete devices.

[0039] The chip system may include input circuits or interfaces for transmitting information or data, and output circuits or interfaces for receiving information or data.

[0040] In a twelfth aspect, a communication system is provided, including the aforementioned first device and second device. Optionally, the communication system may further include other devices that communicate with the first device and / or the second device. Attached Figure Description

[0041] Figure 1This is a schematic diagram of a communication system used in an embodiment of this application;

[0042] Figure 2 This is a schematic diagram illustrating a scenario where a terminal device transmits data via NTN.

[0043] Figure 3 A flowchart of a data transmission method is provided for an embodiment of this application;

[0044] Figure 4 Example diagram of a block reception list provided for embodiments of this application;

[0045] Figure 5 Example diagram of a sub-block receiving list for any block provided in an embodiment of this application;

[0046] Figure 6 Example diagrams for constructing the first data unit provided for embodiments of this application;

[0047] Figure 7 A flowchart illustrating the data transmission process provided for embodiments of this application;

[0048] Figure 8 A flowchart illustrating the receiving end receiving data as provided in an embodiment of this application;

[0049] Figure 9 A schematic diagram of a communication device provided in an embodiment of this application;

[0050] Figure 10 This is a schematic diagram of another communication device provided in an embodiment of this application. Detailed Implementation

[0051] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. The terminology used in the following embodiments is for the purpose of describing specific embodiments only and is not intended to be a limitation of this application. As used in the specification and appended claims of this application, the singular expressions "a," "an," "the," "the," "the," and "this" are intended to also include expressions such as "one or more," unless the context clearly indicates otherwise. It should also be understood that in the embodiments of this application, "one or more" refers to one, two, or more; "and / or" describes the relationship between related objects, indicating that three relationships may exist; for example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship.

[0052] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.

[0053] The "multiple" mentioned in the embodiments of this application refers to two or more. It should be noted that in the description of the embodiments of this application, terms such as "first" and "second" are used only for the purpose of distinguishing descriptions and should not be construed as indicating or implying relative importance, nor should they be construed as indicating or implying order.

[0054] The technical solutions provided in this application can be applied to various communication systems, such as: Global System for Mobile Communications (GSM) systems, General Packet Radio Service (GPRS), Wireless Local Area Network (WLAN), Long Term Evolution (LTE) systems, LTE Frequency Division Duplex (FDD) systems, LTE Time Division Duplex (TDD) systems, sidelink communication systems, Universal Mobile Telecommunication System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) communication systems, non-terrestrial network (NTN) communication systems, 5th generation (5G) mobile communication systems, or new radio access technology (NR). Among these, 5G mobile communication systems can include non-standalone (NSA) and / or standalone (SA) networking. The technical solutions provided in this application can also be applied to future communication systems. This application does not limit the scope of these applications.

[0055] Figure 1 This is a schematic diagram of a communication system used in an embodiment of this application. The communication system may include network devices, such as... Figure 1 The network device 1 shown. This communication system may also include terminal devices, such as... Figure 1 The terminal device 2 shown. Network device 1 and terminal device 2 can communicate via a wireless link.

[0056] Figure 1 An exemplary network device 1 and a terminal device 2 are shown. Optionally, the communication system may also include multiple network devices and / or multiple terminal devices.

[0057] The network equipment in this application can be network-side equipment such as access network and core network equipment. Access network equipment is sometimes also called access node. Access network equipment has wireless transceiver capabilities and is used to communicate with terminals. Access network equipment includes, but is not limited to, base stations, evolved NodeBs (eNodeBs), transmission reception points (TRPs) in the above-mentioned communication systems, next-generation NodeBs (gNBs) in 5G mobile communication systems, access network equipment or modules of access network equipment in open RAN (ORAN) systems, satellites in NTN communication systems, base stations in future mobile communication systems, or access nodes in WiFi systems. Access network equipment can also be modules or units capable of implementing some of the functions of a base station. Access network equipment can be macro base stations, micro base stations, or indoor stations, relay nodes or donor nodes, or wireless controllers in cloud radioaccess network (CRAN) scenarios. Optionally, access network equipment can also be servers, wearable devices, or vehicle-mounted equipment, etc. For example, the access network equipment in vehicle-to-everything (V2X) technology can be a roadside unit (RSU). Multiple access network devices in a communication system can be base stations of the same type or different types. Base stations can communicate with terminals directly or via relay stations. Terminals can communicate with multiple base stations using different access technologies. The embodiments of this application do not limit the specific technology or device form used in the access network equipment. In this application, the access network equipment is referred to as a network device.

[0058] In this application, the means for implementing the functions of a network device can be a network device itself, or a means capable of supporting the network device in implementing those functions, such as a processor, circuit, chip, or chip system. This means can be installed in or connected to the network device. In the technical solutions provided in this application, the example of a network device being used to implement the functions of a network device is used to describe the technical solutions provided in this application.

[0059] The terminal device in this application can be a wireless terminal device capable of receiving network device scheduling and instruction information. The wireless terminal device can be a device providing voice and / or data connectivity to a user, a handheld device with wireless connectivity, or other processing devices connected to a wireless modem. For example, the terminal device can communicate with one or more core networks or the Internet via a radio access network (RAN). The terminal device can also be referred to as a terminal, user equipment (UE), mobile station, mobile terminal, etc. Terminal devices can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things (IoT), ultra-reliable low-latency communication (URLLC), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grids, smart furniture, smart offices, smart wearables, smart transportation, smart cities, or satellite communication, etc. The terminal can be a mobile phone, tablet computer, computer with wireless transceiver capabilities, wearable device, vehicle, aircraft (such as drone, helicopter, airplane), hot air balloon, ship, robot, robotic arm, or smart home device, etc. The embodiments of this application do not limit the form of the terminal device.

[0060] In this application, the apparatus for implementing the functions of a terminal device can be the terminal device itself, or any apparatus capable of supporting the terminal device in implementing those functions, such as a processor, circuit, chip, or chip system. This apparatus can be installed in or connected to the terminal device. In the technical solutions provided in this application, the example of a terminal device being used to implement the functions of a terminal device is used to describe the technical solutions provided in this application.

[0061] Access network equipment and / or terminal equipment can be fixed or mobile. They can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; on water; or in the air on aircraft, balloons, and satellites. This application does not limit the application scenarios of the access network equipment and terminal equipment. They can be deployed in the same or different scenarios; for example, both can be deployed on land simultaneously; or the access network equipment can be deployed on land while the terminal equipment is deployed on water, etc., and so on.

[0062] In practical applications, multiple network devices can collaborate to assist terminals in achieving wireless access, with different network devices each implementing a portion of the base station's functions. For example, network devices can be central units (CUs), distributed units (DUs), CUs (control planes, CPs), CUs (user planes, UPs), or radio units (RUs), etc. CUs and DUs can be set up separately or included in the same network element, such as a baseband unit (BBU). RUs can be included in radio frequency equipment or radio frequency units, such as remote radio units (RRUs), active antenna units (AAUs), or remote radio heads (RRHs).

[0063] In different systems, CU (or CU-CP and CU-UP), DU, or RU may have different names, but those skilled in the art will understand their meaning. For example, in an ORAN system, CU can also be called O-CU (Open CU), DU can also be called O-DU, CU-CP can also be called O-CU-CP, CU-UP can also be called O-CU-UP, and RU can also be called O-RU. Any of the units among CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented through software modules, hardware modules, or a combination of software and hardware modules. CU (or CU-CP and CU-UP), DU, and RU can implement different protocol layer functions.

[0064] Figure 2This scenario involves terminal devices transmitting data via NTN. The terminal forwards data to a ground station via satellite, and the ground station then forwards it to the core network. The upper-layer network is responsible for reassembling and verifying the integrity of the data. Due to the rapid movement of satellites, low-Earth orbit satellites can only cover the target area 1-2 times per day. This results in discontinuous satellite links, causing the terminal to lose visibility within an uplink transmission cycle. Figure 2 For example, a UE might switch from being covered by satellite 3 to being covered by satellite 4. During the handover process, uplink interruptions might occur, causing some data sent by the UE to fail to be transmitted to the core network. Therefore, ensuring the integrity of transmitted data is a problem that needs to be solved.

[0065] To address the aforementioned problems, embodiments of this application provide a data transmission method, comprising: a first device sending a first data block to a second device, the first data block being obtained by dividing a second data block, the second data block being obtained by dividing data to be transmitted, the data size of the first data block and / or the number of second data blocks being related to at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources, the amount of storage resources including the storage resources of the first device and / or the second device; the first device sending the first data block again to the second device based on satisfying a first condition, the first condition including not receiving a reception feedback from the second device for the first data block within a first time range, or the second device indicating that the first data block was not successfully received. Because the amount of data in the first data block and / or the number of the second data blocks are determined based on at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources, the first data block and the second data block are divided to adapt to at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources. In other words, this application uses a hierarchical block-based approach to obtain the first data block to be transmitted. Therefore, the first data block can better adapt to the total amount of data to be transmitted, the channel environment, and the amount of storage resources, which is conducive to increasing the probability that the first data block will be successfully received by the second device. Furthermore, under the condition of satisfying the first condition, the first data block can be retransmitted. In summary, this data transmission method is conducive to ensuring the integrity of the transmitted data.

[0066] Accordingly, embodiments of this application provide a data transmission method, comprising: a second device receiving a first data block from a first device, the first data block being obtained by dividing it into second data blocks, the second data blocks being obtained by dividing data to be transmitted, the data size of the first data block and / or the number of second data blocks being related to at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources, the amount of storage resources including the storage resources of the first device and / or the second device; the second device sending feedback information to the first device based on satisfying a second condition, the feedback information indicating that the first data block was not successfully received, the second condition including not receiving the first data block within a second time range, or the first data block failing verification; and the second device receiving the first data block from the first device again. This method can ensure the integrity of the transmitted data.

[0067] The solution provided in this application will be described in detail below with reference to the corresponding flowcharts. It is understood that the illustrative flowcharts provided in this application primarily use different devices (e.g., terminal devices, network devices) as examples of the execution subjects of this interactive illustration to illustrate the method, but this application does not limit the execution subjects of the interactive illustrations. For example, the devices (e.g., terminal devices, network devices) in the illustrative flowcharts can also be chips, chip systems, or processors that support the implementation of this method on the device, or logic modules or software that can implement all or part of the functions of the device.

[0068] As a general statement, the message or signaling interactions involved in the interaction process of this application embodiment can be standard messages or signaling or newly introduced messages or signaling. This application embodiment does not make specific limitations on this.

[0069] The following embodiments of this application are applicable to, but not limited to, NTN scenarios. That is, they can be applied to NTN scenarios, including scenarios where the satellite is used as a transparent relay device and a non-transparent relay device, as well as non-NTN scenarios.

[0070] Figure 3 This application provides a data transmission method through its embodiments. Figure 3 The sending end shown can be a terminal device or a network device, collectively referred to as the first device. Figure 3 The receiving end shown can be a network device (such as a core network device) or a terminal device, collectively referred to as the second device. The relay device between the first device and the second device can be a satellite or other devices, such as a base station.

[0071] Figure 3 The process includes the following steps:

[0072] S101. The sending end sends initialization information (also known as the first information), and the receiving end receives the initialization information accordingly.

[0073] In this embodiment, a combination of blocks and sub-blocks is used for data transmission. Each block has a size of D0, and each sub-block has a size of k. That is, a hierarchical block-based approach is adopted to divide the data to be sent: the data to be sent is divided into blocks, and each block is further divided into sub-blocks. Sub-blocks can also be referred to as first data blocks, and blocks can also be referred to as second data blocks.

[0074] The initialization information includes: the total data volume D (in bits) of the data to be sent, the block data volume D0 (in bits), and the sub-block data volume k (in bits).

[0075] For example, the total amount of data to be sent is determined based on the actual total amount of data to be sent. Before sending the data, the sending end can know the size of the total amount of data to be sent, which is D.

[0076] For example, the block size D0 of each data block can be configured to a fixed value, which can be understood as a "standard size". Therefore, the larger the total amount of data D to be sent, the more data blocks there will be. That is, the number of blocks (second data blocks) is determined based on the total amount of data to be sent.

[0077] For example, the data size k of each sub-block is determined based on at least one of the channel environment (i.e., channel quality) and the amount of storage resources. For instance, the data size k of each sub-block is greater when the channel environment is better than when the channel environment is worse, so as to improve transmission efficiency when the channel environment is better and increase the probability of the sub-block being successfully received when the channel environment is worse.

[0078] Storage resources include the storage resources of the receiving end and / or the sending end. For example, the data size k of each sub-block when the storage resources are large is greater than the data size k of each sub-block when the storage resources are small, so as to balance the processing capacity of the device and the transmission efficiency of the sub-block.

[0079] In summary, in this embodiment, the amount of data in a sub-block and / or the number of blocks are related to at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources.

[0080] S102. The receiving end initializes the sub-block receiving list and the block receiving list based on the initialization information.

[0081] The sub-block receiving list is used to record whether each sub-block has been successfully received by the receiving end. For example, if any sub-block is successfully received, the sub-block is recorded as 1 in the sub-block receiving list; otherwise, it is recorded as 0. Therefore, the value corresponding to each sub-block in the sub-block receiving list initialized in this step is 0.

[0082] The block reception list is used to record whether each block has been successfully received by the receiving end. For example, if all sub-blocks in any block are successfully received, the block is recorded as 1 in the block reception list; otherwise, it is recorded as 0. Therefore, the value corresponding to each block in the block reception list initialized in this step is 0.

[0083] Figure 4 This is an example diagram of the block receive list. Figure 4 In, the number of blocks is indivual, (1) For example, the blocks are configured with numbers (also known as identifiers), namely 0, 1, 2, 3, ... -1 (in practice, each number is a binary code). Figure 4 L in the text represents the length of the sliding window, which will be explained in subsequent steps. Figure 5 This is an example diagram of the child block receiving list for any given block, with the number of child blocks being... indivual, (2) For example, the sub-blocks are configured with numbers (also known as identifiers), namely 0, 1, 2, 3, ... -1.

[0084] S103. The receiving end sends feedback information on the initialization information, and the sending end receives the feedback information on the initialization information accordingly.

[0085] Feedback information regarding the initialization information is used to indicate that the initialization information was successfully received.

[0086] For example, the feedback information for the initialization information is a first identifier indicating that the initialization information has been successfully received.

[0087] S104. The transmitting end constructs the first data unit and performs initialization processing.

[0088] The first data unit is the data unit to be sent.

[0089] Specifically, the sending end calculates based on equation (1). Calculated based on equation (2) And divide the data to be sent into Each block contains [number] blocks. Individual blocks.

[0090] For example, in Less than In this case, A value of 1 indicates that the total amount of data to be sent is small and only needs to be divided into one block.

[0091] For example, such as Figure 6 As shown, the D bits of data to be transmitted are divided into... There are 10 blocks, each configured with a number: 0, 1, 2, 3, ... -1, the size of each block is Taking block number 0 as an example, this block is divided into There are k sub-blocks, each of which has a size of k.

[0092] Figure 6 In this context, the data size of the identifier of any block (i.e., the aforementioned block number) is 1. The data size of the identifier of any sub-block (i.e., the aforementioned sub-block number) is .

[0093] In summary, the first data unit constructed by the sending end includes: the block identifier (i.e., block ID), the sub-block identifier (i.e., sub-block ID), the sub-block, and checksum data. The block ID contains a data size of [data missing]. The data size of the sub-block ID is The data size of the sub-block is k. For example, the check data is cyclic redundancy check (CRC) data. Therefore, the length of each first data unit is... (3), The length of the CRC data (in bits).

[0094] Specifically, the initialization process includes, but is not limited to: initializing the sub-block send list and the block send list, as well as initializing the timers for each block. The role of the timers will be explained in subsequent steps.

[0095] The sub-block transmission list is used to record whether each sub-block has been successfully received (i.e. successfully transmitted) by the receiving end. For example, if any sub-block is successfully received, the corresponding bit in the sub-block transmission list is recorded as 1; otherwise, it is recorded as 0. Therefore, in this step, the value of the bit corresponding to each sub-block in the initialized sub-block transmission list is 0.

[0096] The block sending list is used to record whether each block has been successfully received (i.e. successfully sent) by the receiving end. For example, if all sub-blocks in any block are successfully received, then the block is successfully received and is recorded as 1 in the block sending list; otherwise, it is recorded as 0. Therefore, the value corresponding to each block in the block sending list initialized in this step is 0.

[0097] Example of a block send list: Figure 4 As shown, an example of a sub-block sending list is as follows: Figure 5 As shown, it can be understood that although the block send list and the block receive list have the same form, the former is set at the sender end and the latter is set at the receiver end. They are different tables. The sub-block send list and the sub-block receive list are similar.

[0098] The purpose of executing S104 after receiving feedback information on the initialization information is to avoid meaningless initialization processing and data unit construction by the sending end when the receiving end fails to receive the initialization information.

[0099] S105. The transmitting end sends the first data unit, and correspondingly, the receiving end sends back information about the sub-blocks that were not successfully received (i.e., feedback information).

[0100] Specifically, the sending end sends the first data unit, including sending the first data unit for the first time and retransmitting the first data unit based on the information of the sub-blocks that were not successfully sent.

[0101] Understandably, S105 can be executed multiple times until all the data to be sent has been sent.

[0102] For example, the process of the sender initially sending and retransmitting the first data unit is as follows: Figure 7 As shown, it includes the following steps:

[0103] S201. Set the starting position of the sliding window.

[0104] The sliding window at the starting position is called the first sliding window, and it serves as the current sliding window. For example, the length of the sliding window is L, which is determined based on the sending processing time of the sender, the distance between the sender and the receiver, and the processing time of the receiver. For example, L is 3, indicating that the sliding window includes 3 blocks.

[0105] One of the transmission principles of this embodiment is as follows: using a sliding window as a dimension, if all sub-blocks in any block within the sliding window are successfully received by the receiver, the sliding window slides forward one block. If a block in the sliding window is not successfully received, the unreceived sub-blocks are retransmitted without sliding the window further. This method of limiting the initial transmission and retransmission to the sliding window keeps the number of sub-block transmission lists maintained simultaneously within a set range of L, such as a sub-block transmission list of 3 blocks. The number of sub-block reception lists maintained by the receiver is similar, thus balancing processing efficiency and processing load.

[0106] In this step, it is assumed that the starting position of the sliding window is the starting position of block 0 (block numbered 0), and the sliding window at the starting position includes block 0, block 1 and block 2.

[0107] For ease of distinction, the first sliding window after sliding is referred to as the second sliding window.

[0108] Understandably, the sliding window sending mechanism also applies to the case where there is only one block. In this case, the sliding window includes that one block, and the sub-blocks in that block are sent sequentially. The sending is completed when all the sub-blocks in that block have been successfully sent, without needing to slide the sliding window.

[0109] S202. Based on the list to be sent, send the first data unit of the sub-block in the block located in the current sliding window in sequence.

[0110] For example, the to-be-sent list is used to record information about the blocks to be sent and the sub-blocks within those blocks. In this step, the sub-blocks in each block to be sent in the to-be-sent list are sent sequentially. For example, based on the block numbers in ascending order, the sub-blocks in block 0 are sent first, then the sub-blocks in block 1, and finally the sub-blocks in block 2. During the sending of sub-blocks within any block, the sub-blocks are sent sequentially based on their numbers in ascending order. It can be understood that sending a sub-block refers to sending the first data unit containing (i.e., including) the sub-block.

[0111] The block corresponding to the starting position of the sliding window is called the current block. The block corresponding to the starting position of the sliding window refers to the block whose starting position coincides with the starting position of the sliding window.

[0112] The list to be sent can be configured in S104.

[0113] Based on the above method of setting the sliding window length, it can be seen that sending the first data block based on the sliding window can balance transmission efficiency and the load on the sending end.

[0114] S203. In response to sending the first data unit, start the timer for the block (i.e. the current block) containing the sub-blocks included in the first data unit.

[0115] The timer for block P (referred to as block P) is denoted as... .

[0116] S204. Determine whether the timing length of the timer for the current block exceeds the first threshold. .

[0117] The first threshold can be pre-configured at the sending end, or it can be indicated by the receiving end to the sending end, etc.

[0118] If the first threshold is exceeded, execute S205; otherwise, execute S206.

[0119] S205. Add the information of all sub-blocks contained in the current block to the list to be sent.

[0120] Add information about all sub-blocks contained in the current block to the to-send list, indicating that all sub-blocks in the current block will be resent.

[0121] After S205, return to execute S202 and subsequent corresponding steps.

[0122] S206. Determine whether feedback information from the current block's sub-blocks has been received from the receiving end. If yes, execute S207; otherwise, execute S204.

[0123] S207. Reset the timer for the current block and update the block send list and sub-block send list based on the feedback information.

[0124] Resetting the timer means clearing the already recorded duration to zero, so that the timer starts counting again. When feedback information of the current block's sub-blocks is received from the receiver, the purpose of resetting the timer of the current block is to continue processing the block, such as retransmitting the sub-blocks in the block that have not been re-received.

[0125] For example, based on the information (such as the number) of the unreceived sub-blocks indicated by the feedback information, the values ​​of the bits corresponding to the unreceived sub-blocks in the sub-block transmission list of the current block are updated. For example, if the unreceived sub-blocks indicated by the feedback information are sub-block 1, sub-block 3, and sub-block 5, then the bits corresponding to the other sub-blocks in the sub-block transmission list of the current block, excluding sub-block 1, sub-block 3, and sub-block 5, are set to 1, indicating that these sub-blocks (i.e., other sub-blocks) have been successfully received, while the bits corresponding to sub-block 1, sub-block 3, and sub-block 5 are kept at 0.

[0126] For example, if all bits in the sub-block sending list of the current block are 1, it means that all sub-blocks of the current block have been sent successfully. In this case, the bit corresponding to the current block in the block sending list is set to 1 to indicate that the current block has been sent successfully. Otherwise, the bit corresponding to the current block in the block sending list is kept at 0.

[0127] As can be seen from S204-S207, the timer and the first threshold of the current block are used to limit the time from the start of sending the sub-blocks in the current block until feedback information indicating that the sub-blocks in the current block have not been successfully received is not received. If the feedback information is not received after the first threshold is exceeded, it indicates that the link quality is poor. In order to improve transmission efficiency, the system will not wait indefinitely for feedback information from the receiving end, but will retransmit all sub-blocks in the current block.

[0128] As can be seen from S204-S207, the condition for the transmitter to retransmit the sub-block (called the first condition) is: no feedback information for the sub-block is received from the receiver within the first time range, or the receiver indicates that the sub-block was not successfully received.

[0129] S208. Based on the updated block sending list, determine whether the current block has been sent. If yes, execute S210; otherwise, execute S209.

[0130] S209. Add the information of the sub-blocks that were not successfully sent in the current block to the list to be sent, and reset the timer of the current block.

[0131] After S209, execute S202 and subsequent corresponding steps.

[0132] S210, Update the relevant information for the current block.

[0133] Specifically, remove the information of the sub-blocks in the current block from the list to be sent, remove the timer for the current block, and set the bit corresponding to the current block in the block sending list to 1.

[0134] S211. Slide the first sliding window backward by one block to obtain the second sliding window, and use it as the current sliding window.

[0135] After S211, execute S212.

[0136] The execution order of S210 and S211 is not a limitation.

[0137] S212. Determine whether the data to be sent has been sent successfully. If yes, end the process. If no, execute S202.

[0138] from Figure 7 As can be seen from the process shown, the sending end adopts a hierarchical block division, sliding window mechanism, and timer mechanism. By sending sub-block data, it maintains both the block sending list and the sub-block sending list, which can ensure the integrity of the transmitted data while taking into account transmission efficiency and load.

[0139] The process of the receiving end receiving sub-blocks and sending back information about sub-blocks that were not successfully received is as follows: Figure 8 As shown, it includes the following steps:

[0140] S301. Set the block with the identifier i=0 as the current block.

[0141] S302. Reset and start the timer for the current block.

[0142] S303. Determine whether the timing length of the timer for the current block exceeds the second threshold.

[0143] The first threshold and the second threshold can be the same or different.

[0144] If yes, execute S304; otherwise, execute S305.

[0145] S304. Based on the block reception list and the sub-block reception list, send information about the sub-blocks in the current block that were not successfully received to the sender.

[0146] For example, a second data unit is sent to the sending end. The second data unit includes: information of the current block (such as an identifier), information of the sub-blocks in the current block that were not successfully received (such as identifiers), and CRC data.

[0147] For example, information about sub-blocks that were not successfully received in the current block is indicated in two ways:

[0148] The first method is as follows: the information of the sub-blocks that were not successfully received in the current block is the identifier (binary encoding) of the sub-blocks that were not successfully received in the current block, see [link to relevant documentation]. Figure 6 The sub-block IDs shown are because the length (data size) of each sub-block identifier is [missing information]. Therefore, let n be the number of sub-blocks in this block that were not successfully received. This indicates that the number of unsuccessfully received sub-blocks that need to be indicated is relatively large, resulting in a large amount of data identifying these unsuccessfully received sub-blocks. In this case, it will consume a significant amount of transmission resources. Therefore, the condition for using the first method is... .

[0149] The second approach involves representing the information of sub-blocks that were not successfully received within the current block using a bitmap. For example, this bitmap might be the value of each bit in the sub-block reception list of the current block. As mentioned earlier, it is understood that the condition for using this second approach is... .

[0150] After S304, return to execute S302.

[0151] S305. Receive the first data unit and determine whether the sub-block in the first data unit has passed the verification.

[0152] For example, a CRC check is performed on the sub-block in the first data unit. If the CRC check passes, it means that the sub-block check passes, and S306 is executed. If the CRC check fails, it means that the sub-block check fails, and S307 is executed.

[0153] S306. Set the bit corresponding to the verified sub-block in the sub-block receiving list to 1, and update the block receiving list based on the sub-block receiving list.

[0154] If the sub-block verification fails, the corresponding bit in the sub-block receive list is kept at 0. Keeping it can be understood as not processing it.

[0155] For example, if all sub-blocks contained in any block are successfully received, the bit corresponding to that block in the block reception list is set to 1; otherwise, the bit corresponding to that block in the block reception list is kept at 0.

[0156] As can be seen from S303-S306, if the timer of the current block times out, it means that the receiving end has not received the sub-blocks of the current block from the sending end. In order to improve transmission efficiency, the receiving end will not wait indefinitely, but will send feedback information to the sending end. This feedback information indicates the information of the sub-blocks in the current block that have not been successfully received. It can be understood that if the timer of the current block times out, this feedback information indicates that all sub-blocks in the current block are sub-blocks that have not been successfully received.

[0157] S307. Determine whether all sub-blocks in the current block have been successfully received. If yes, execute S308; otherwise, execute S304.

[0158] For example, if the bit corresponding to the current block in the block reception list is 1, then all sub-blocks in the current block have been successfully received.

[0159] For example, if all child blocks in the current block have been successfully received, the child block reception list of the current block is deleted.

[0160] S308. Update the identifier of the current block to i+1.

[0161] S309. Determine whether the data reception is complete. If yes, end the process. If no, return to execute S302.

[0162] For example, if all the bits corresponding to each block in the block reception list are 1, it means that each block has been successfully received, and therefore, data reception is complete.

[0163] Figure 8 The receiver shown uses a two-level reception and feedback process based on blocks and sub-blocks. It uses a timer mechanism to provide feedback on sub-blocks that were not successfully received, which balances transmission efficiency and load. More importantly, the feedback method (binary code or bitmap of the identifier) ​​is determined based on the number of sub-blocks that were not successfully received, which can further save transmission resources.

[0164] based on Figure 3 , Figure 7 as well as Figure 8 The data transmission method provided by the embodiments of this application, as shown in the process, not only ensures the integrity of the transmitted data but also improves transmission efficiency.

[0165] Combination Figure 2In the scenario shown, when a large amount of data is transmitted from the UE to the core network, satellite handover and other factors may cause the core network to fail to receive the data from the UE correctly. If retransmission is not used, data loss will occur, while retransmission can ensure data integrity. If only the lost data is retransmitted without being divided into blocks, the transmission efficiency will be reduced. If blocks are divided but not into sub-blocks, the data volume of the divided blocks may be large, resulting in a high probability of retransmission and low data transmission efficiency. The data transmission method based on hierarchical block division, and the use of feedback mechanisms such as feedback flags or bitmaps according to the amount of data to be sent, can effectively improve data transmission efficiency.

[0166] It should be understood that Figures 1 to 8 The flowcharts or scene diagrams shown are for illustrative purposes only and are not intended to limit the embodiments of this application to the examples illustrated. In fact, those skilled in the art can interpret the embodiments based on... Figures 1 to 8 The examples in the document can be transformed into equivalent ways to obtain more implementations.

[0167] The above text combined Figures 1 to 8 This document describes in detail the communication method provided in the embodiments of this application. The following will combine... Figures 9 to 10 The device embodiments of this application are described in detail below. It should be understood that the communication device of this application embodiment can execute the various communication methods of the foregoing embodiments of this application, that is, the specific working processes of the various products below can be referred to the corresponding processes in the foregoing method embodiments.

[0168] In the embodiments described above, the first device may execute some or all of the steps in each embodiment; the second device may execute some or all of the steps in each embodiment. These steps or operations are merely examples, and the embodiments of this application may also perform other operations or variations thereof. Furthermore, the steps may be executed in different orders as presented in the embodiments, and it is not necessary to execute all the operations in the embodiments of this application. Moreover, the sequence number of each step does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0169] Figure 9 This is a schematic block diagram of a communication device provided in an embodiment of this application. Figure 9 As shown, the communication device 100 may include a communication module 120. The communication module 120 can implement corresponding communication functions, which can be internal communication functions of the communication device 100 or communication functions between the communication device 100 and other devices. Optionally, the communication module 120 may also be referred to as a communication interface or transceiver module. Optionally, the communication device 100 also includes a processing module 110. The processing module 110 can implement corresponding processing functions.

[0170] Optionally, the communication device 100 further includes a storage module, which can be used to store instructions and / or data; the processing module 110 can read the instructions and / or data in the storage module so that the communication device 100 can implement the aforementioned method embodiments.

[0171] In one possible design, the communication device 100 may correspond to the transmitting end (i.e., the first device) in the above method embodiments, or a component (such as a circuit, chip, or chip system) configured in the transmitting end. The communication device 100 can be used to perform the steps or processes executed by the transmitting end in any of the above method embodiments.

[0172] For example, the communication module 120 is used to send a first data block to a second device. The first data block is obtained by dividing a second data block, which is obtained by dividing data to be sent. The data size of the first data block and / or the number of the second data blocks are related to at least one of the total amount of data to be sent, the channel environment, and the amount of storage resources, including the storage resources of the first device and / or the second device. Based on satisfying a first condition, the first data block is sent to the second device again. The first condition includes not receiving a reception feedback from the second device for the first data block within a first time range, or the second device indicating that the first data block was not successfully received.

[0173] In some implementations, the communication module 120 is further configured to send first information to the second device before sending the first data block to the second device. The first information includes the data size of the first data block, the data size of the second data block, and the total amount of data to be sent. The first information is used to determine the number of the first data block and the number of the second data block.

[0174] In some implementations, the communication module 120 sends the first data block by sending the first data block contained in the second data block located in a first sliding window, the length of which is determined based on the sending processing time of the first device, the distance between the first device and the second device, and the processing time of the second device.

[0175] In some implementations, the communication module 120 is further configured to, after sending the first data block to the second device again, send the second data block located in the second slide window after one of the second data blocks in the first slide window has been successfully sent, wherein the second slide window is obtained by sliding the first slide window, and the second data block successfully sent in the first slide window is not located in the second slide window.

[0176] In some implementations, the communication module 120 is further configured to receive feedback information from the second device before retransmitting the first data block to the second device, the feedback information indicating that the first data block was not successfully received.

[0177] In some implementations, the feedback information indicating that the first data block was not successfully received includes: the feedback information indicating an identifier of the first data block that was not successfully received; or, the feedback information includes a bitmap, the bitmap representing whether the first data block was successfully received or not.

[0178] In some implementations, when the amount of data occupied by transmitting the identifier is less than the amount of data occupied by transmitting the bitmap, the feedback information includes the identifier; when the amount of data occupied by transmitting the identifier is not less than the amount of data occupied by transmitting the bitmap, the feedback information includes the bitmap.

[0179] In some implementations, the feedback information indicating the identifier of the first data block that was not successfully received includes: any of the feedback information indicating the identifier of the first data block that was not successfully received in a second data block; the bitmap indicating whether the first data block was not successfully received or was successfully received includes: any of the bitmaps indicating whether the first data block in a second data block was not successfully received or was successfully received.

[0180] In some implementations, the communication module 120 may resend the first data block to the second device by sequentially sending multiple first data blocks that were not successfully received as indicated by the feedback information.

[0181] The above are merely examples; for detailed steps or procedures, please refer to the descriptions in the foregoing embodiments.

[0182] In one possible design, the communication device 100 may correspond to the receiving end (i.e., the second device) in the above method embodiments, or a component (such as a circuit, chip, or chip system) configured in the receiving end. The communication device 100 can be used to perform the steps or processes executed by the receiving end in any of the above method embodiments.

[0183] For example, the communication module 120 is configured to receive a first data block from a first device, the first data block being obtained by dividing a second data block, the second data block being obtained by dividing data to be transmitted, the data size of the first data block and / or the number of the second data blocks being related to at least one of the total amount of data to be transmitted, the channel environment, and the amount of storage resources, the amount of storage resources including the storage resources of the first device and / or the second device; based on satisfying a second condition, sending feedback information to the first device, the feedback information indicating that the first data block was not successfully received, the second condition including that the first data block was not received within a second time range, or that the first data block failed verification; and receiving the first data block from the first device again.

[0184] In some implementations, the communication module 120 is further configured to receive first information from the first device before receiving the first data block from the first device. The first information includes the data volume of the first data block, the data volume of the second data block, and the total amount of data to be sent. The first information is used to determine the number of the first data block and the number of the second data block.

[0185] In some implementations, the communication module 120 is further configured to send feedback information to the first device before receiving the first data block from the first device again, the feedback information indicating that the first data block was not successfully received.

[0186] In some implementations, the feedback information indicating that the first data block was not successfully received includes: the feedback information indicating an identifier of the first data block that was not successfully received; or, the feedback information includes a bitmap, the bitmap representing whether the first data block was successfully received or not.

[0187] In some implementations, the communication module 120 sends feedback information to the first device in the following ways: if a third condition is met, it sends an identifier of the first data block that was not successfully received to the first device; if the third condition is not met, it sends the bitmap to the first device. The third condition includes: the amount of data occupied by transmitting the identifier is less than the amount of data occupied by transmitting the bitmap.

[0188] In some implementations, the feedback information indicating the identifier of the first data block that was not successfully received includes: any of the feedback information indicating the identifier of the first data block that was not successfully received in a second data block; the bitmap indicating whether the first data block was not successfully received or was successfully received includes: any of the bitmaps indicating whether the first data block in a second data block was not successfully received or was successfully received.

[0189] The above are merely examples; for detailed steps or procedures, please refer to the descriptions in the foregoing embodiments.

[0190] Figure 10 This is another schematic block diagram of the communication device 200 provided in the embodiments of this application. The communication device 200 may be a chip, chip system, or processor, etc., that implements the above-described methods in a first or second device. The communication device 200 can be used to implement the methods described in the above method embodiments; for details, please refer to the descriptions in the above method embodiments.

[0191] like Figure 10 As shown, the communication device 200 may include one or more processors 210, which may also be referred to as processing units or processing modules, and can implement certain control functions. The processor 210 may be a general-purpose processor or a dedicated processor, such as a baseband processor or a central processing unit. The baseband processor can be used to process communication protocols and communication data, while the central processing unit can be used to control the communication device 200 (e.g., a base station, baseband chip, user, user chip), execute software programs, and process data from the software programs.

[0192] In an alternative design, the processor 210 may also store instructions and / or data that can be executed by the processor 210 to cause the communication device 200 to perform the methods described in the above method embodiments.

[0193] In another alternative design, the communication device 200 may include a communication interface 220 for implementing receiving and transmitting functions. For example, the communication interface 220 may be a transceiver circuit, interface, interface circuit, or transceiver. The transceiver circuit, interface, interface circuit, or transceiver for implementing receiving and transmitting functions may be separate or integrated. The aforementioned transceiver circuit, interface, interface circuit, or transceiver may be used for reading and writing code / data, or it may be used for transmitting or relaying signals.

[0194] Optionally, the communication device 200 may include one or more memories 230, which may store instructions that can be executed on the processor 210, causing the communication device 200 to perform the methods described in the above method embodiments. Optionally, the memories 230 may also store data. Optionally, the processor 210 may also store instructions and / or data. The processor 210 and the memories 230 may be provided separately or integrated together.

[0195] It should be understood that, in one possible design, the steps in the method embodiments provided in this application can be implemented by integrated logic circuits in the processor's hardware or by instructions in software form. The steps of the methods disclosed in the embodiments of this application can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method. To avoid repetition, detailed descriptions are not provided here.

[0196] In one implementation, the communication device 200 may correspond to the first device in the above method embodiments and may be used to execute the various steps and / or processes executed by the first device in the above method embodiments. The processor 210 may be used to execute instructions stored in the memory 230, and when the processor 210 executes the instructions stored in the memory, the processor 210 is used to execute the various steps and / or processes of the above method embodiments corresponding to the first device.

[0197] In another implementation, the communication device 200 may correspond to the second device in the above method embodiments and may be used to execute the various steps and / or processes executed by the second device in the above method embodiments. The processor 210 may be used to execute instructions stored in the memory 230, and when the processor 210 executes the instructions stored in the memory, the processor 210 is used to execute the various steps and / or processes of the above method embodiments corresponding to the second device.

[0198] It should be understood that the aforementioned processing device can be one or more chips. For example, the processing device can be a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a system-on-chip (SoC), a central processor unit (CPU), a network processor (NP), a digital signal processor (DSP), a microcontroller unit (MCU), a programmable logic device (PLD), or other integrated chips.

[0199] It is understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0200] According to the method provided in the embodiments of this application, this application also provides a chip system, which includes one or more processors for calling and executing instructions stored in memory, thereby causing the method described in the embodiments of this application to be executed. The chip system may be composed of chips or may include chips and other discrete devices.

[0201] The chip system may include input circuits or interfaces for transmitting information or data, and output circuits or interfaces for receiving information or data.

[0202] According to the method provided in the embodiments of this application, this application also provides a communication system, which includes the aforementioned first device and second device.

[0203] According to the method provided in the embodiments of this application, this application also provides a computer program product, which includes: computer program code, which, when run on a computer, causes the computer to execute the various steps or processes executed by the first device or the second device in any of the foregoing method embodiments.

[0204] According to the method provided in the embodiments of this application, this application also provides a computer-readable storage medium storing program code, which, when run on a computer, causes the computer to execute the various steps or processes executed by the first device or the second device in any of the foregoing method embodiments.

[0205] The computer-readable storage medium may be the aforementioned volatile memory or non-volatile memory, or it may include both volatile memory and non-volatile memory.

[0206] In the embodiments of this application, the terms and English abbreviations are exemplary examples given for ease of description and should not be construed as limiting the application in any way. This application does not preclude the possibility of defining other terms that can achieve the same or similar functions in existing or future agreements.

[0207] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When these computer instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated.

[0208] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0209] It should be understood that in the various embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0210] In summary, the above description is merely a preferred embodiment of the technical solution of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.

Claims

1. A data transmission method, characterized by, include: The first device sends a first data block containing a second data block located in a first sliding window to the second device. The first data block is obtained by dividing the second data block. The second data block is obtained by dividing the data to be sent. The number of the second data blocks is related to the total amount of the data to be sent. The amount of data in the first data block is related to at least one of the channel environment and the amount of storage resources. The amount of storage resources includes the storage resources of the first device and / or the second device. Based on satisfying a first condition, the first device sends the first data block located in the first sliding window to the second device again. The first condition includes not receiving reception feedback from the second device for the first data block contained in the second data block located in the first sliding window within a first time range, or the second device indicating that the first data block contained in the second data block located in the first sliding window has not been successfully received. After the first device successfully sends the second data block in the first sliding window, it sends the first data block contained in the second data block located in the second sliding window. The second sliding window is obtained by sliding the first sliding window, and the second data block successfully sent in the first sliding window is not located in the second sliding window.

2. The method of claim 1, wherein, Before sending the first data block to the second device, the method further includes: The first device sends first information to the second device. The first information includes the data volume of the first data block, the data volume of the second data block, and the total amount of data to be sent. The first information is used to determine the number of the first data block and the number of the second data block.

3. The method according to claim 1 or 2, characterized in that, The length of the sliding window is determined based on the transmission processing time of the first device, the distance between the first device and the second device, and the processing time of the second device.

4. The method according to claim 1 or 2, characterized in that, Before sending the first data block to the second device again, the process also includes: The first device receives feedback information from the second device, the feedback information indicating that the first data block was not successfully received.

5. The method of claim 4, wherein, The feedback information indicating that the first data block was not successfully received includes: The feedback information indicates the identifier of the first data block that was not successfully received; or, the feedback information includes a bitmap, the bitmap indicating whether the first data block was successfully received or not.

6. The method of claim 5, wherein, When the amount of data used to transmit the identifier is less than the amount of data used to transmit the bitmap, the feedback information includes the identifier; when the amount of data used to transmit the identifier is not less than the amount of data used to transmit the bitmap, the feedback information includes the bitmap.

7. The method of claim 5, wherein, The feedback information indicates the identifier of the first data block that was not successfully received, including: Any of the feedback messages indicates the identifier of a first data block that was not successfully received in a second data block; The bitmap represents whether the first data block was successfully received or not, including: Any of the bitmaps indicates whether the first data block in a second data block was not successfully received or was successfully received.

8. The method of claim 4, wherein, The step of sending the first data block to the second device again includes: The first data blocks that were not successfully received, as indicated by the feedback information, are sent sequentially.

9. A data transmission method, characterized in that, include: The second device receives a first data block contained in a second data block located in a first sliding window from the first device. The first data block is obtained by dividing the second data block. The second data block is obtained by dividing the data to be sent. The number of the second data blocks is related to the total amount of the data to be sent. The amount of data in the first data block is related to at least one of the channel environment and the amount of storage resources. The amount of storage resources includes the storage resources of the first device and / or the second device. The second device sends feedback information to the first device based on the fulfillment of the second condition. The feedback information indicates that the first data block contained in the second data block located in the first sliding window was not successfully received. The second condition includes that the first data block contained in the second data block located in the first sliding window was not received within a second time range, or that the first data block failed the verification. The second device receives the first data block again from the first device, located in the first sliding window; After the second data block in the first sliding window is successfully sent, the second device receives the first data block contained in the second data block located in the second sliding window from the first device. The second sliding window is obtained by sliding the first sliding window, and the second data block that was successfully sent in the first sliding window is not located in the second sliding window.

10. The method of claim 9, wherein, Before receiving the first data block from the first device, the method further includes: The second device receives first information from the first device. The first information includes the data volume of the first data block, the data volume of the second data block, and the total amount of data to be sent. The first information is used to determine the number of the first data block and the number of the second data block.

11. The method according to claim 9 or 10, characterized in that, Before receiving the first data block from the first device again, the method further includes: The second device sends feedback information to the first device, indicating that the first data block was not successfully received.

12. The method of claim 11, wherein, The feedback information indicating that the first data block was not successfully received includes: The feedback information indicates the identifier of the first data block that was not successfully received; or, the feedback information includes a bitmap, the bitmap indicating whether the first data block was successfully received or not.

13. The method of claim 12, wherein, Sending feedback information to the first device includes: If the third condition is met, an identifier of the first data block that was not successfully received is sent to the first device; if the third condition is not met, the bitmap is sent to the first device. The third condition includes: the amount of data used to transmit the identifier is less than the amount of data used to transmit the bitmap.

14. The method according to claim 12, characterized in that, The feedback information indicates the identifier of the first data block that was not successfully received, including: Any of the feedback messages indicates the identifier of a first data block that was not successfully received in a second data block; The bitmap represents whether the first data block was successfully received or not, including: Any of the bitmaps indicates whether the first data block in a second data block was not successfully received or was successfully received.

15. A communication device, characterized in that, The device includes at least one processor coupled to a memory storing a program or instructions, the processor executing the program or instructions to cause the device to perform the method as described in any one of claims 1 to 14.

16. A computer readable storage medium having stored thereon a computer program or instructions, characterized in that, When the computer program or instructions are executed, they cause the computer to perform the method as described in any one of claims 1 to 14.

17. A communication system, characterized by Includes the communication device as described in claim 15.

18. A chip system, characterized by The chip system includes one or more processors, which are configured to retrieve and execute instructions stored in memory, such that the method as described in any one of claims 1 to 14 is performed.

Citation Information

Patent Citations

  • Centralized point-to-point data transmission method and device

    CN116886642A

  • Data optimization transmission method and device based on partitioning, equipment and medium

    CN120614315A