Data retransmission method and device, equipment and storage medium
By identifying lost data packets based on the sequence number and reception status of the data packets and adopting a target retransmission mode, the problem of packet loss in data transmission is solved, and the efficiency and accuracy of data retransmission are improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING VOLCANO ENGINE TECH CO LTD
- Filing Date
- 2024-10-11
- Publication Date
- 2026-04-21
AI Technical Summary
In existing technologies, packet loss during data transmission due to network congestion, signal interference, and other reasons leads to low efficiency and inaccuracy in data retransmission.
By using the receiving device to identify lost data packets based on their sequence number and reception status, and then using the target retransmission mode to request a retransmission, the timely identification and retransmission of lost data packets can be ensured.
It implements accurate packet loss detection and a rapid response mechanism, improving the efficiency and accuracy of data retransmission.
Smart Images

Figure CN121907412A_ABST
Abstract
Description
Technical Field
[0001] The exemplary embodiments disclosed herein relate generally to the field of computers, and more particularly to methods, apparatus, devices and computer-readable storage media for data retransmission. Background Technology
[0002] Data retransmission is a key technology in the field of data transmission. It involves the process by which a sending device retransmits data when it fails to reach the receiving device during transmission due to various reasons (such as network congestion, signal interference, transmission errors, etc.). Data retransmission is crucial for ensuring data integrity and reliability, and how to perform data retransmission efficiently and accurately is a key concern. Summary of the Invention
[0003] In a first aspect of this disclosure, a method for data retransmission is provided. The method includes: receiving a set of data packets from a transmitting device; wherein the set of data packets includes a plurality of data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different; based on the sequence numbers of the set of data packets, identifying at least one data packet not received from the transmitting device within a target time length as a lost data packet, the target time length being a predetermined time length starting from a target time, and the target time being the time when the previously received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device; determining the reception status of a target data packet set corresponding to the lost data packet, wherein the data packets in the target data packet set include data information from the lost data packet, and the target data packet set is a set of data packets to be transmitted; determining a target retransmission mode based at least on the reception status, the target retransmission mode indicating at least the parameter information required to initiate a retransmission request for the lost data packet; and in response to the retransmission conditions of the target retransmission mode being met, sending a first retransmission instruction to the transmitting device to instruct the transmitting device to retransmit the lost data packet.
[0004] In a second aspect of this disclosure, an apparatus for data retransmission is provided. The apparatus includes: a receiving module configured to receive a set of data packets from a transmitting device; wherein the set of data packets includes a plurality of data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different; a first determining module configured to determine at least one data packet not received from the transmitting device within a target time length as a lost data packet based on the sequence number of the set of data packets, the target time length being a predetermined time length starting from a target time, and the target time being the time when the previously received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device; a second determining module configured to determine the receiving state of a target data packet set corresponding to the lost data packet, wherein the data packets in the target data packet set include data information from the lost data packet, and the target data packet set is a set of data packets to be transmitted; a third determining module configured to determine a target retransmission mode based at least on the receiving state, the target retransmission mode indicating at least the parameter information required to initiate a retransmission request for the lost data packet; and a sending module configured to send a first retransmission instruction to the transmitting device in response to the retransmission condition of the target retransmission mode being met, to instruct the transmitting device to retransmit the lost data packet. In a third aspect of this disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the device to perform the method of the first aspect.
[0005] In a fourth aspect of this disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program that can be executed by a processor to implement the method of the first aspect.
[0006] It should be understood that the content described in this content section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0007] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:
[0008] Figure 1 A schematic diagram of an example environment in which embodiments of the present disclosure can be implemented is shown;
[0009] Figure 2 A flowchart illustrating a data retransmission process according to some embodiments of the present disclosure is shown;
[0010] Figure 3 An example flowchart of data retransmission according to some embodiments of this disclosure is shown;
[0011] Figure 4 A schematic structural block diagram of an apparatus for data retransmission according to certain embodiments of the present disclosure is shown;
[0012] Figure 5 A block diagram of an electronic device capable of implementing several embodiments of the present disclosure is shown. Detailed Implementation
[0013] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0014] It should be noted that the headings of any section / subsection provided herein are not limiting. Various embodiments are described throughout this document, and embodiments of any type may be included under any section / subsection. Furthermore, embodiments described in any section / subsection may be combined in any way with any other embodiments described in the same section / subsection and / or different sections / subsections.
[0015] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below. The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0016] The embodiments of this disclosure may involve user data, data acquisition, and / or use. All of these aspects comply with applicable laws, regulations, and relevant provisions. In the embodiments of this disclosure, all data collection, acquisition, processing, manipulation, forwarding, and use are conducted with the user's knowledge and confirmation. Accordingly, in implementing the embodiments of this disclosure, the type, scope of use, and usage scenarios of any data or information that may be involved should be communicated to the user and their authorization obtained in accordance with relevant laws and regulations through appropriate means. The specific methods of notification and / or authorization may vary depending on the actual situation and application scenario, and the scope of this disclosure is not limited in this respect.
[0017] In this specification and the embodiments, any processing of personal information will be carried out only under the premise of legality (such as obtaining the consent of the personal information subject, or being necessary for the performance of a contract), and will only be carried out within the scope stipulated or agreed upon. A user's refusal to process personal information other than that necessary for basic functions will not affect the user's use of basic functions.
[0018] This disclosure provides a data retransmission scheme. According to the scheme, a set of data packets is received from a transmitting device; wherein the set of data packets includes several data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different; based on the sequence numbers of the set of data packets, at least one data packet not received from the transmitting device within a target time length is identified as a lost data packet, the target time length being a predetermined time length starting from a target time, and the target time being the time when the previously received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device; the receiving state of a target data packet set corresponding to the lost data packet is determined, wherein the data packets in the target data packet set include data information from the lost data packet, and the target data packet set is a set of data packets to be transmitted; at least based on the receiving state, a target retransmission mode is determined, the target retransmission mode indicating at least the parameter information required to initiate a retransmission request for the lost data packet; and in response to the retransmission conditions of the target retransmission mode being met, a first retransmission instruction is sent to the transmitting device to instruct the transmitting device to retransmit the lost data packet.
[0019] Based on this approach, the embodiments of this disclosure can achieve accurate packet loss detection and a rapid response mechanism, ensuring that lost data packets can be identified and retransmitted in a timely manner, effectively improving the efficiency and accuracy of data retransmission.
[0020] Example Environment
[0021] Figure 1 A schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown. For example... Figure 1 As shown, example environment 100 may include transmitting device 110 and receiving device 120.
[0022] In this example environment 100, sending device 110 can transmit target data to content delivery network 130 (CDN). The target data can be any appropriate data stream, such as a live video stream, which can be real-time video and audio signals captured by the broadcaster's camera and microphone, etc.
[0023] In some embodiments, the target data can be converted by the encoder into data in a predetermined data format, such as data converted using video encoding standards such as H.264 or H.265.
[0024] Content delivery network 130 can split target data into multiple data packet sets and send them to multiple edge devices as units, so that users can subscribe to substreams from multiple edge devices based on receiving device 120 and combine them into a complete target data at the user node.
[0025] As an example, the content delivery network 130 can split target data into multiple sub-streams. Figure 1 As an example, the content delivery network 130 can split the target data into sub-streams 101 and 102. In some embodiments, each sub-stream in sub-streams 101 and 102 may include multiple data packet sets. Each of these multiple data packet sets is expected to transmit multiple consecutive data packets, where consecutive data packets indicate that a predetermined transmission interval between any two adjacent data packets is less than a predetermined threshold. Each data packet set contains a portion of the target data. As an example, the data packet set can be a Network Abstraction Layer Unit (NALU), which is the smallest unit of data in the H.264 / AVC encoding standard. It should be noted that although it is expected that multiple consecutive data packets in a data packet set can be transmitted consecutively during data transmission, packet loss or out-of-order delivery of one or more data packets cannot be ruled out.
[0026] In some embodiments, multiple data packet sets can be allocated in various substreams based on a predetermined method. As an example, each substream may include all data packet sets corresponding to the target data. As another example, each substream may include a portion of the data packet sets corresponding to the target data, and the portion of the data packet sets corresponding to each substream may constitute all data packet sets corresponding to the target data.
[0027] In some embodiments, the content delivery network may first allocate a first set of data packets to sub-stream 101, then allocate a second set of data packets to sub-stream 102, then allocate a third set of data packets to sub-stream 101, and so on, until all data packets have been allocated.
[0028] by Figure 1 As an example, substream 101 may include data set 150 and data set 152, and substream 102 may include data set 151 and data set 153. Figure 1 (Not shown in the image).
[0029] In some embodiments, the content delivery network can transmit individual substreams to various edge devices, allowing a user to subscribe to substreams from multiple edge devices based on the receiving device 120, and then combine them into a complete target data at the user node. Figure 1 As an example, substream 101 can be transmitted to edge device 140-1, and substream 102 can be transmitted to edge device 140-2. For each edge device, the edge device can provide business services to multiple users, that is, it can provide data to multiple users.
[0030] The receiving device can use target programs (such as Tracker) to track information about edge devices, including their remaining bandwidth capacity, substream subscription status, and so on. These target programs can be deployed on pre-defined service devices. To obtain target data, the receiving device can subscribe to substreams from multiple edge devices and attempt to query the Tracker to identify available edge devices, establishing connections with them in advance.
[0031] Once the receiving device has sufficient local cache and has successfully established connections with multiple edge devices, it can switch from subscribing to the full stream from the content delivery network to subscribing to substreams from the edge devices. Ultimately, all substreams are merged into a single complete target data at the receiving device.
[0032] For scenarios involving scheduled real-time data transmission, the data is generated and transmitted in real time. That is, after the edge device receives the data from the content delivery network, it will forward it to all subscribed users.
[0033] In some embodiments, the transmitting device 110 can be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable gaming terminals, VR / AR devices, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the transmitting device 110 can also support any type of interface for the target user (such as "wearable" circuitry). The transmitting device 110 can also be a server, etc.
[0034] In some embodiments, the receiving device 120 may be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable gaming terminals, VR / AR devices, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the receiving device 120 may also support any type of interface for the target user (such as "wearable" circuitry).
[0035] A communication connection can be established between any two devices that have a data transmission relationship. The communication connection can be established via wired or wireless means. The communication connection may include, but is not limited to, Bluetooth connections, mobile network connections, Universal Serial Bus (USB) connections, Wireless Fidelity (WiFi) connections, etc., and the embodiments of this disclosure are not limited in this respect. In the embodiments of this disclosure, two devices that have a data transmission relationship can achieve signaling interaction through the communication connection between them.
[0036] It should be understood that the structure and function of the various elements in environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure.
[0037] The following description will continue with reference to the accompanying drawings, which will provide some exemplary embodiments of this disclosure.
[0038] Example process
[0039] Figure 2 A flowchart of a data retransmission process 200 according to some embodiments of the present disclosure is shown. Process 200 can be implemented at receiving device 120. Reference is made below. Figure 1 Describe the process 200.
[0040] In box 210, receiving device 120 receives a set of data packets from sending device; wherein the set of data packets includes several data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different.
[0041] In some embodiments, this set of data packets can be data packets that are expected to be transmitted in one data packet set, such as data packets that are expected to be transmitted in data packet set A. It can also be data packets that are expected to be transmitted in multiple data packet sets, such as some data packets in this set of data packets that are expected to be transmitted in data packet set A, and other data packets that are expected to be transmitted in data packet set B.
[0042] In some embodiments, the transmission interval between any two adjacent data packets in a plurality of consecutive data packets included in the data packet set is less than a predetermined first threshold. The first threshold can be any suitable threshold, which will not be elaborated here.
[0043] by Figure 3 As an example, this set of data packets can be the data packet with sequence number 1, the data packet with sequence number 2, and the data packet with sequence number 3 in data packet set 310, or the data packet with sequence number 1, the data packet with sequence number 2, and the data packet with sequence number 3 in data packet set 310, the data packet with sequence number 1, the data packet with sequence number 2 in data packet set 320, and so on.
[0044] In some embodiments, taking the transmission of target data divided into a first sub-stream and a second sub-stream as an example, each sub-stream may include multiple data packet sets.
[0045] In some embodiments, for each two adjacent data packet sets in multiple data packet sets located in the same substream, the transmission interval between the tail data packet in the preceding data packet set and the head data packet in the following data packet set may be greater than a predetermined second threshold, wherein the first threshold is less than the second threshold.
[0046] by Figure 3 As an example, the transmission interval 301 between the tail packet of the first packet set and the head packet of the second packet set in two adjacent packet sets in the same subflow is greater than the transmission interval 302 between two adjacent packets in the same packet set.
[0047] In some embodiments, for each data packet, the sequence number is used to characterize the predetermined transmission order of that data packet. The larger the sequence number, the later the predetermined transmission order. Figure 3 As an example, for the six data packets in data packet set 310, namely data packet with sequence number 1, data packet with sequence number 2, data packet with sequence number 3, data packet with sequence number 4, data packet with sequence number 5 and data packet with sequence number 6, the data packet with sequence number 6 is the data packet with the latest predetermined transmission order in data packet set 310, and the data packet with sequence number 1 is the data packet with the earliest predetermined transmission order in data packet set 310.
[0048] In box 220, receiving device 120 determines at least one data packet that has not been received from sending device within a target time length as a lost data packet based on a set of data packet sequence numbers. The target time length is a predetermined time length starting from a target time, and the target time is the time when the last received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device.
[0049] In some embodiments, the receiving device 120 may determine the first data packet as a lost data packet in response to a set of data packets not including the first data packet, wherein the sequence number of the first data packet is less than the sequence number of at least one data packet in the set of data packets.
[0050] In some embodiments, the first data packet can be located at any position in the data packet set for which the data packet is to be transmitted. For example, data packet set A is expected to include data packet 1, data packet 2, and data packet 3. Taking data packet 3 as the first data packet, this first data packet is located at the end of data packet set A.
[0051] As an example, the first data packet can be a data packet at a non-tail position in a data packet set, which indicates that other data packets with sequence numbers greater than the first data packet will be received after this first data packet.
[0052] For example, the receiving device 120 may sequentially receive data packet A with sequence number 1, data packet B with sequence number 2, data packet C with sequence number 3, and data packet D with sequence number 4 in data packet set Q based on the first substream. However, if the receiving device 120 has only received a set of data packets with sequence number 1, data packet B with sequence number 2, and data packet D with sequence number 4 based on the first substream, and has not received data packet C with sequence number 3, then it can be determined that data packet C with sequence number 3 is a lost data packet.
[0053] As another example, the first data packet can also be data at the end of a data packet set, where the data packet at the end of the data packet set indicates that other data packets in the data packet set, excluding those with a sequence number greater than that of the first data packet, are scheduled to be received after the first data packet.
[0054] For example, the receiving device 120 can receive data packet A with sequence number 1, data packet B with sequence number 2, data packet C with sequence number 3, and data packet D with sequence number 4 in data packet set S based on the first substream. Then, it can receive data packet E with sequence number 5 in data packet set Q in sequence based on the first substream. However, the receiving device 120 has only received a set of data packets with sequence number 1 and sequence number 2 based on the first substream. It has not received data packet C with sequence number 3 and data packet D with sequence number 4, but has received data packet E with sequence number 5. Therefore, it can be determined that data packets C with sequence number 3 and data packet D with sequence number 4 are lost data packets.
[0055] In some embodiments, this set of data packets may be received by a first substream. The electronic device may determine, in response to determining that a first set of data packets has not been received in the first substream based on the sequence number of a set of data packets already received in the first substream, and a second set of data packets has been received in the second substream, wherein the predetermined transmission order corresponding to the first set of data packets is earlier than that of the second set of data packets, determine the data packets included in the first set of data packets as lost data packets.
[0056] For example, the receiving device 120 can receive data packets A (sequence number 1), B (sequence number 2), C (sequence number 3), and D (sequence number 4) from data packet set W based on the second substream. Then, based on the first substream, it can sequentially receive data packets E (sequence number 5), F (sequence number 6), G (sequence number 7), and H (sequence number 8) from data packet set Q. However, if the receiving device 120 has only received a set of data packets based on the first substream that include data packets E (sequence number 5), F (sequence number 6), G (sequence number 7), and H (sequence number 8), and has not received data packets A (sequence number 1), B (sequence number 2), C (sequence number 3), and D (sequence number 4), then it can be determined that data packets A (sequence number 1), B (sequence number 2), C (sequence number 3), and D (sequence number 4) are lost data packets.
[0057] In some embodiments, the receiving device 120 may, in response to determining that a third set of data packets has not been received within a predetermined time period based on the sequence numbers of a set of data packets, identify the data packets included in the third set of data packets as lost data packets. This set of data packets may be data packets on a first substream, or data packets on other substreams. The predetermined time period can be set as needed.
[0058] In some embodiments, the receiving device 120 may also determine the fourth data packet as a lost data packet if the fourth data packet, whose sequence number is greater than the maximum sequence number in a set of received data packets, is not received within a predetermined time period. The predetermined time period can be any appropriate time period and can be set according to requirements.
[0059] As an example, the data packet corresponding to this maximum sequence number can be a tail data packet in the data packet set.
[0060] For example, the receiving device 120 may sequentially receive data packet A with sequence number 1, data packet B with sequence number 2, data packet C with sequence number 3, and data packet D with sequence number 4 in data packet set Q based on the first substream. However, if the receiving device 120 has only received data packet A with sequence number 1 and data packet B with sequence number 2 based on the first substream, and has not received data packet C with sequence number 3 and data packet D with sequence number 4 after a predetermined time length, then it can be determined that data packet C with sequence number 3 and data packet D with sequence number 4 are lost data packets.
[0061] In box 230, receiving device 120 determines the reception status of the target data packet set corresponding to the lost data packet, wherein the data packets in the target data packet set include the data information in the lost data packet, and the target data packet set is a set of data packets to be transmitted.
[0062] In some embodiments, the reception status can indicate whether each data packet of the target data packet set has been received completely, whether there are any errors, whether any data packets have been lost, etc.
[0063] In some embodiments, the set of data packets to be transmitted includes the lost data packets. For example, if data packet set A is to be transmitted, the data packets to be transmitted include data packet 1, data packet 2, and data packet 3. If the receiving device 120 receives data packet 1 and data packet 3, then data packet 3 is a lost data packet, and its corresponding target data packet set is data packet set A.
[0064] In some embodiments, the target data set can be a single data set or it can include multiple sub-data set sets. For example, data set A is the data set expected to transmit data packets 1 and 2, and data set B is the data set expected to transmit data packets 3 and 4. If data packets 3 and 4 are lost, the target dataset corresponding to data packets 3 and 4 can be data set A and data set B. Alternatively, data set A is the data set expected to transmit data packets 1, 2, and 3. If data packet 3 is lost, the target dataset corresponding to data packet 3 can be data set A.
[0065] In some embodiments, in response to the loss of some data packets in the target data packet set, the data packets in the target data packet set may include data information from other data packets that were not lost, in addition to the data information from the lost data packets.
[0066] In box 230, receiving device 120 determines a target retransmission mode based at least on the receiving state, the target retransmission mode indicating at least the parameter information required to initiate a retransmission request for lost data packets.
[0067] In some embodiments, the retransmission mode can be any suitable mode, which at least indicates the parameter information required to initiate a retransmission request for lost data packets. The parameter information can be any suitable information, such as a waiting duration. As an example, the retransmission mode can be a fast retransmission mode, a non-fast retransmission mode, etc., wherein the waiting duration indicated by the fast retransmission mode for initiating a retransmission request is shorter than the waiting duration indicated by the non-fast retransmission mode for initiating a retransmission request. The waiting durations corresponding to different retransmission modes can be the same or different. The waiting durations corresponding to the same retransmission mode can be the same or different under different reception states.
[0068] The following explains how to determine the target retransmission mode based on the reception status of the target data packet set, in the case where the first data packet is not included in a set of data packets, and the sequence number of the first data packet is less than the sequence number of the lost data packet in the set of data packets.
[0069] In some embodiments, the receiving device 120 may determine the target retransmission mode as the first retransmission mode in response to a reception status indication of the target data packet set indicating that at least one second data packet in the target data packet set has not been received, and receiving other data packets in the target data packet set with sequence numbers greater than the lost data packets. That is, the receiving device 120 may determine the target retransmission mode as the first retransmission mode in response to the loss of non-tail data in the target data packet set.
[0070] In other embodiments, the receiving device 120 may determine the target retransmission mode as the first retransmission mode in response to a reception status indication that at least one third data packet in the first sub-data packet set of the target data packet set has not been received, and that other data packets in the first sub-data packet set whose sequence number is greater than that of at least one third data packet have been received, and that data has been received in the second sub-data packet set of the target data packet set. That is, the receiving device 120 may determine that the lost tail data packets will be retransmitted based on the first retransmission mode in response to the loss of the tail data packets in a certain data packet set, and that data packets included in other data packet sets scheduled to be transmitted after this data packet set have been received.
[0071] In some embodiments, the first retransmission mode can be when no lost data packet is received after a target time length and / or the difference between the sequence number of the largest received data packet and the sequence number corresponding to the lost data packet is less than a predetermined threshold.
[0072] The following section explains the process for determining the target time length and the predetermined threshold.
[0073] The receiving device 120 can add out-of-order data packets to the second target queue based on the real-time data transmission situation. Out-of-order data packets are non-retransmitted data packets that arrive out of order, that is, data packets that arrive later than the predetermined transmission order but are not retransmitted based on a retransmission instruction.
[0074] In some embodiments, the receiving device 120 can determine a candidate time length for a group of out-of-order data packets in the second target queue, based on a first time the data packet arrives at the receiving device 120 and a second time the preceding data packet arrives at the receiving device 120. Specifically, the receiving device 120 can determine the candidate time length based on the difference between the second time and the first time corresponding to the data packet. The receiving device 120 can determine a target time length based on the candidate time lengths of a group of data packets in the second target queue. As an example, the receiving device 120 can determine the target time length based on the average of the candidate time lengths of this group of data packets in the second target queue. As another example, the receiving device 120 can set corresponding weight values for this group of data packets in the second target queue, and determine a target weight sum based on the candidate time lengths and the corresponding weight values of this group of data packets, and finally determine this target weight sum as the target time length. The weight values of this group of data packets can be set as needed, and the sum of the weight values of this group of data packets is 1. As an example, for this group of data packets in the second target queue, the later the data packet is added to the second target queue, the larger the weight value corresponding to the data packet can be set.
[0075] In some embodiments, to quickly track rapidly changing network latency, the receiving device 120 can determine the number of spurious retransmissions during data packet transmission after determining the target time length, and update the target time length based on the number of spurious retransmissions. A spurious retransmission represents an unnecessary retransmission during data transmission due to erroneous packet loss detection. That is, the data packet is not actually lost, but the acknowledgment is delayed or lost due to network latency, out-of-order arrival, or other non-packet loss reasons. Retransmissions occurring in this case are spurious retransmissions.
[0076] For example, receiving device 120 can update the target time length based on the following formula:
[0077] out_of_order_time2=alpha_quick*out_of_order_time1
[0078] Where out_of_order_time2 is the updated target time length, out_of_order_time1 is the original target time length, and alpha_quick is the spurious retransmission wait factor. This spurious retransmission wait factor is related to the number of spurious retransmissions, and the spurious retransmission wait factor increases with the increase of the number of spurious retransmissions.
[0079] As an example, alpha_quick can grow exponentially each time a false retransmission is triggered. If no false retransmission is triggered within a predetermined time period, alpha_quick can decrease additively. In some embodiments, the receiving device 120 can be configured to trigger the growth of alpha_quick at most once per retransmission detection period.
[0080] In some embodiments, the receiving device 120 can determine a candidate sequence number value for a group of data packets in the second target queue based on the sequence number of the data packet and the sequence number of the preceding arriving data packet. Specifically, the receiving device 120 can determine the candidate sequence number value based on the difference between the sequence number of the data packet and the sequence number of the preceding arriving data packet. The receiving device 120 can determine a predetermined threshold based on the candidate sequence number values of the group of data packets in the second target queue. As an example, the receiving device 120 can determine the predetermined threshold based on the average value of the candidate sequence number values of the group of data packets in the second target queue. As another example, the receiving device 120 can set corresponding weight values for the group of data packets in the second target queue, determine a target weight sum based on the predetermined threshold and the corresponding weight values, and set this target weight sum as the predetermined threshold. The weight values of this group of data packets can be set as needed, and the sum of the weight values of this group of data packets is 1. As an example, for this group of data packets in the second target queue, the later the data packet is added to the second target queue, the larger the weight value corresponding to the data packet can be set.
[0081] In some embodiments, the second target queue can be updated based on out-of-order data packets determined in real time during data packet transmission. Specifically, if a new out-of-order data packet is determined, the earliest data packet added to the second target queue can be deleted, and this new out-of-order data packet can be added to the second target queue.
[0082] The following explains how to determine the target retransmission mode based on the reception status of the target dataset, in the case where the sequence number of a set of data packets already received in the first substream indicates that the first data packet set has not been received in the first substream, and the second data packet set has been received in the second substream, wherein the predetermined transmission order corresponding to the first data packet set is earlier than that of the second data packet set.
[0083] In some embodiments, the receiving device 120 may determine the target retransmission mode as the second retransmission mode in response to the reception status indication of the target data packet set indicating that all data packets included in the target data packet set have not been received. That is, if the first data packet set with an earlier transmission time has not been received in the first substream, but the second data packet set with a later transmission time has been received in the second substream, then it is determined that the first data packet set is lost as a whole.
[0084] In some embodiments, the retransmission condition for the second retransmission mode can be that the current time is greater than the sum of the creation time of the target relational chain node and the first determination time.
[0085] In some embodiments, the target relation chain at least indicates the receiving order of data packet sets transmitted in each substream, for example, by Figure 3 As an example, if receiving device 120 sequentially receives data packet sets 310, 320, 330, and 340, then the target relationship chain is data packet set 310 -> data packet set 320 -> data packet set 330 -> data packet set 340. In some embodiments, each time receiving device 120 receives a new data packet set, it can update the target relationship chain based on this new data packet set.
[0086] In some embodiments, the creation time is the time when the first data packet set transmitted by each substream is received. For example, if the target relationship chain is data packet set 310 -> data packet set 320 -> data packet set 330 -> data packet set 340, then the creation time is the time when the receiving device 120 receives data packet set 310.
[0087] In some embodiments, each node in the relationship chain also includes information such as the decoding time stamp (DTS) of the data packet set and the number of data packets contained in the data packet set, which will not be elaborated here.
[0088] In some embodiments, in addition to the receiving device 120 corresponding to a target relationship chain, the content delivery network and each edge device also correspond to a relationship chain. The relationship chain includes the sequential relationship of the global real-time data packet set. The data sent by the content delivery network can carry the real-time complete relationship chain currently possessed by the content delivery network.
[0089] The process for determining the first determination time is explained below.
[0090] The receiving device 120 can determine the target difference in one-way path delay between the first substream and the second substream. The one-way path delay of the first substream and the second substream can be periodically statistically calculated.
[0091] The receiving device 120 can determine the first path delay jitter corresponding to the first sub-stream based on the arrival time of each first target data packet received in the first sub-stream and the transmission time of each first target data packet in the sending device 110.
[0092] The receiving device 120 can determine the second path delay jitter corresponding to the second sub-stream based on the arrival time of each second target data packet received in the second sub-stream and the transmission time of each second target data packet in the sending device 110.
[0093] The receiving device 120 can determine the first determination time based on the target difference, the number of data packets in other data packet sets besides the target data packet set, the first average arrival interval between two adjacent data packets in the other data packet sets, the first delay jitter corresponding to the first sub-stream, the second delay jitter corresponding to the second sub-stream, and the target time length. The other data packet sets are any data packet sets already received in the first sub-stream. The process for determining the target time length has already been described above and will not be repeated here.
[0094] As an example, the receiving device 120 can determine the first determination time based on the following formula: T1 = target difference of one-way path delay between the first sub-stream and the second sub-stream + number of data packets in other data packet sets besides the target data packet set * average arrival interval between two adjacent data packets in other data packet sets + k * first delay jitter corresponding to the first sub-stream + k * second delay jitter corresponding to the second sub-stream + target time length, where T1 is the first determination time and k is a predetermined value that can be set according to requirements.
[0095] In some embodiments, to compensate for the inaccuracy of the timeout start time, the receiving device 120 considers the target difference in the one-way path delay between the first sub-stream and the second sub-stream when determining the first determination time. Since the data packets of the other sub-stream may arrive earlier, the receiving device 120 also considers the second delay jitter corresponding to the second sub-stream when determining the first determination time, which can also compensate for the inaccuracy of the timeout start time.
[0096] The following section explains how to determine the target retransmission mode based on the reception status of the target data set, in the case where a third data set is not received within a predetermined time period based on the sequence number of a set of data packets, and the data packets included in the third data set are identified as lost data packets.
[0097] In some embodiments, the receiving device 120 may determine the target retransmission mode as the third retransmission mode in response to a reception status indication of the target data packet set indicating that all data packets included in the target data packet set have not been received.
[0098] In some embodiments, the retransmission condition for the third retransmission mode can also be the sum of the current time and the reception time of the first target time and the previously received non-retransmission data packet.
[0099] The process of determining the first target time will be explained below.
[0100] The receiving device 120 can determine the ideal time interval between the target data packet set and the previously received data packet set. Specifically, the ideal time interval is the expected time difference between the target data packet set and the previous data packet set. The target data packet set and the previous data packet set can be data packet sets located in the first substream.
[0101] The receiving device 120 can determine the target time interval corresponding to each out-of-order data packet in the first target queue based on the arrival time of the retransmission of the out-of-order data packet to the receiving device and the arrival time of the adjacent data packets that arrived before the out-of-order data packet. Out-of-order data packets in the first target queue are those that arrived out of the predetermined transmission order but are subsequently retransmitted to the receiving device 120 based on a retransmission instruction. Specifically, since HTTP transmission can be used between the CDN and the Edge / Box, its underlying layer is TCP, where TCP is a reliable sequential delivery protocol. If an out-of-order data packet is lost during transmission from the CDN to the edge device, other data packets whose predetermined transmission order follows the out-of-order data packet need to wait at the edge service device for the retransmission of the out-of-order data packet and cannot be transmitted to the receiving device 120 before the out-of-order data packet. This retransmitted data packet can then be added to the first target queue. For example, a data packet set consists of 5 data packets, and these 5 data packets are scheduled to be transmitted in the order of data packet 1, data packet 2, data packet 3, data packet 4, and data packet 5. If data packet 3 is lost, data packets 4 and 5 need to wait on the edge service device until the CDN retransmits data packet 3 and arrives at the edge service device before they can be sent out together in sequence.
[0102] Specifically, the receiving device 120 can determine the target time interval corresponding to the out-of-order data packet based on the difference between the arrival time of the retransmission of the out-of-order data packet and the arrival time of the data packet that is adjacent to the out-of-order data packet and arrives at the receiving device before the out-of-order data packet.
[0103] The receiving device 120 can determine the first target time based on the ideal time interval, the average value of the target time intervals corresponding to each out-of-order data packet in the first target queue, the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, the number of data packets in the target data packet set, and the second average arrival interval of two adjacent data packets in other data packet sets other than the target data packet set.
[0104] For example, receiving device 120 can determine the first target time based on the following formula:
[0105] TailWaitTime1=Nalu_Gap+BlockTime_List.GetAverage()+k*BlockTime_List.GetStd()+r
[0106] emainNum1*T_normal1
[0107] Where TailWaitTime1 is the first target time, Nalu_Gap is the ideal time interval, BlockTime_List.GetAverage() is the average of the target time intervals corresponding to each out-of-order data packet in the first target queue, k is any predefined appropriate parameter, such as 4, BlockTime_List.GetStd() is the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, remainNum1 is the number of data packets in the target data packet set, and T_normal1 is the second average arrival interval between two adjacent data packets based on the data packet sets other than the target data packet set received by the first substream.
[0108] The process of determining the first target queue is explained below.
[0109] The receiving device 120 can determine the arrival interval between two adjacent data packets based on the arrival time of a received retransmitted candidate data packet and the arrival time of the previous data packet adjacent to the candidate data packet. Specifically, the receiving device 120 can determine the candidate arrival interval between two adjacent data packets based on the arrival times of the received data packets in the candidate data packet set corresponding to the candidate data packet. As an example, the receiving device 120 can determine the arrival interval between two adjacent data packets based on the difference in arrival times of any two adjacent data packets in the candidate data packet set corresponding to the candidate data packet.
[0110] The receiving device 120 can determine the second candidate time interval based on the average arrival time interval of every two adjacent data packets in the candidate data packet set and the standard deviation of the arrival time interval of any two adjacent data packets in the candidate data packet set.
[0111] Specifically, the receiving device 120 can determine the second candidate time interval based on the following formula:
[0112] T2 = T_normal + b * T_Var
[0113] Where T2 is the second candidate time interval, T_normal is the average arrival time interval of any two adjacent data packets in the candidate data packet set, T_Var is the standard deviation of the arrival time interval of any two adjacent data packets in the candidate data packet set, and b is a predetermined parameter, such as 4.
[0114] The receiving device 120 can determine whether the first candidate time interval is greater than the second candidate time interval. In response to the first candidate time interval being greater than the second candidate time interval, the receiving device 120 can add the candidate data packet to the first target queue.
[0115] The following section explains how to determine the target retransmission mode based on the reception status of the target data packet set, when the fourth data packet corresponding to the data packet with a sequence number greater than the maximum sequence number in a group of received data packets is not received within a predetermined time period, and the fourth data packet is identified as a lost data packet.
[0116] In some embodiments, the receiving device 120 may determine the target retransmission mode as the fourth retransmission mode in response to a reception status indication of the target data packet set, that at least one fifth data packet in the target data packet set has not been received, other data packets in the target data packet set that do not include received data packets with sequence numbers greater than at least one third data packet being received, and data packets included in the next data packet set following the target data packet set not being received. That is, the receiving device 120 may determine the target retransmission mode as the fourth retransmission mode in response to a tail data packet in a certain data packet set not being received, and data packets in the next data packet set corresponding to this data packet set not being received either.
[0117] In some embodiments, the retransmission condition corresponding to the fourth retransmission mode can be that the current time is greater than the sum of the reception time of the previous data packet and the second determination time. The previous data packet is the data packet received before the determination that the lost data packet was lost.
[0118] The second determination time can be determined based on the following process:
[0119] The receiving device 120 can determine a second average arrival interval between two adjacent data packets in each first data packet in the target data packet set based on the first arrival time of each first data packet that has arrived at the receiving device 120. The receiving device 120 can determine a third path delay jitter based on the arrival time of each second data packet and the transmission time of each second data packet at the sending device 110. The receiving device 120 can determine a second determination time based on the number of unreceived data packets in the target data packet set, the average arrival interval, the third path delay jitter, and the target time length.
[0120] As an example, the receiving device 120 can determine the second decision time based on the following formula:
[0121] T2 = Number of unreceived data packets in the target data packet set * Average arrival interval between two adjacent data packets + k * Path delay jitter corresponding to the first sub-stream + Target time length, where T2 is the second determination time and k is a predetermined value that can be set according to requirements.
[0122] As an example, K can be 4.
[0123] In some embodiments, the determination of the second determination time takes into account the number of unreceived data packets in the target data packet set element * the average arrival interval of two adjacent data packets. This is mainly to ensure that the system can switch to the first or second retransmission mode before triggering the fourth retransmission mode, where the fourth retransmission mode is a non-fast retransmission mode, and the first or second retransmission mode can be a fast retransmission mode. Since fast retransmission is more accurate and has better retransmission efficiency, even if a false retransmission occurs, its consequences are much smaller. The target time length is an important variable for combating false retransmissions. k* The path delay jitter corresponding to the first substream is similar to the setting in (Retransmission TimeOut, RTO), representing a jitter in the path delay.
[0124] In other embodiments, the retransmission condition corresponding to the fourth retransmission mode can be the sum of the current time and the reception time of the second target time and the previously received non-retransmission data packet.
[0125] The process for determining the second target time is explained below:
[0126] The receiving device 120 can determine the target time interval corresponding to each out-of-order data packet in the first target queue based on the arrival time of the retransmission of the out-of-order data packet and the arrival time of adjacent data packets that arrived before the out-of-order data packet. Specifically, the receiving device 120 can determine the target time interval corresponding to the out-of-order data packet based on the difference between the arrival time of the retransmission of the out-of-order data packet and the arrival time of adjacent data packets that arrived before the out-of-order data packet. As an example, a data packet set consists of 5 data packets, and these 5 data packets are scheduled to be transmitted sequentially in the order of data packet 1, data packet 2, data packet 3, data packet 4, and data packet 5. If data packet 3 is lost, the target time interval corresponding to data packet 3 is the difference between the time of receiving the retransmitted data packet 3 and the time of receiving data packet 2.
[0127] The receiving device 120 can determine the second target time based on the average value of the target time interval corresponding to each out-of-order data packet in the first target queue, the standard deviation of the target time interval corresponding to each out-of-order data packet in the first target queue, the number of unreceived data packets in the target data packet set, and the third average arrival interval between two adjacent data packets in the received data packets in the target data packet set.
[0128] For example, receiving device 120 can determine the first target time based on the following formula:
[0129] TailWaitTime2=BlockTime_List.GetAverage()+k*BlockTime_List.GetStd()+remainNum2
[0130] *T_normal2
[0131] Where TailWaitTime2 is the second target time, BlockTime_List.GetAverage() is the average of the target time intervals corresponding to each out-of-order data packet in the first target queue, k is any predefined appropriate parameter, such as 4, BlockTime_List.GetStd() is the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, remainNum2 is the number of data packets not received in the target data packet set, and T_normal2 is the third average arrival interval between two adjacent data packets among the data packets already received in the target data packet set.
[0132] In block 250, receiving device 120 sends a first retransmission instruction to sending device 110 in response to the retransmission condition of the target retransmission mode being met, instructing sending device 110 to retransmit the lost data packet.
[0133] Taking the target retransmission mode as the first retransmission mode as an example, the receiving device 120 can send a first retransmission command to the sending device 110 in response to not receiving the lost data packet after a target time length. The sending device 110 can retransmit the lost data packet to the receiving device 120 in response to receiving the first retransmission command for the lost data packet.
[0134] In some embodiments, after the receiving device 120 sends a first retransmission instruction, it may not receive the data packet sent by the sending device 110 after a certain waiting period. To obtain the retransmitted lost data packet, the receiving device 120 can determine the waiting period corresponding to the next time it sends a second retransmission instruction to the sending device 110, based on the round-trip time of data transmission from the edge device to the receiving device 120. After the waiting period, the receiving device 120 can send a second retransmission instruction to the sending device 110. In response to receiving the second retransmission instruction for this lost data packet, the sending device 110 can retransmit the lost data packet to the receiving device 120.
[0135] For different retransmission modes, the waiting time for the next second retransmission command to be sent to the sending device 110 is different.
[0136] In some embodiments, the receiving device 120 may, in response to the target retransmission mode corresponding to the lost data packet being a predetermined retransmission mode, determine a candidate waiting duration based on the round-trip time of data transmission from the edge device to the receiving device 120. That is, the receiving device 120 may assume the lost data packet was lost during transmission from the edge device to the receiving device 120, because the round-trip time of data transmission from the edge device to the receiving device 120 is initially set as the waiting time for the next retransmission. The predetermined retransmission mode can be a second retransmission mode, a third retransmission mode, or a fourth retransmission mode, i.e., a non-fast retransmission mode. In response to receiving a target instruction from the edge device indicating that a second data packet has not been received after waiting for the candidate waiting duration, the receiving device 120 may determine the waiting duration based on the round-trip time of data transmission from the edge device to the receiving device 120 and the round-trip time of data transmission from the content delivery network to the edge device. Specifically, the waiting duration is determined based on the sum of the round-trip time of data transmission from the edge device to the receiving device 120 and the round-trip time of data transmission from the content delivery network to the edge device. That is, when the receiving device 120 receives a target instruction sent by the edge device indicating that the second data packet has not been received, it can determine that the lost data packet has not reached the edge device, and thus can increase the waiting time for the next retransmission.
[0137] In some embodiments, if the lost data packet is not received after a waiting period, the receiving device 120 may increase the waiting period according to a predetermined rule until the lost data packet is received.
[0138] Receiving device 120 can determine the waiting time based on the round-trip time of data transmission from the edge device to receiving device 120 in response to the target retransmission mode corresponding to the lost data packet being a non-predetermined retransmission mode. That is, receiving device 120 can determine that the lost data packet corresponding to the non-predetermined retransmission mode was lost during transmission from the edge device to receiving device 120. The non-predetermined retransmission mode can be either a first retransmission mode or a second retransmission mode, i.e., a fast retransmission mode.
[0139] In other embodiments, after the receiving device 120 sends the first retransmission instruction, it may not receive the data packets sent by the sending device 110 after a certain period of time. To obtain the retransmitted lost data packets, the receiving device 120 can determine the target number of retransmissions allowed based on the time it takes for the target data packet set to be delivered to the target player and the transmission time of the data packets from the edge device to the receiving device. The transmission time of the data packets from the edge device to the receiving device is the transmission time determined by the receiving device 120 based on the real-time transmission status of the data packets.
[0140] In some embodiments, the receiving device 120 may send a third retransmission instruction to the sending device in response to a target number of times being less than or equal to a predetermined first threshold and greater than a predetermined second threshold, to instruct the sending device to retransmit the lost data packets. The first threshold is greater than the second threshold. The first threshold and the second threshold can be any suitable threshold; the first threshold can be 2, and the second threshold can be 1.
[0141] In other embodiments, receiving device 120 may determine a target backup edge device for transmitting lost data packets based on the packet loss rate and / or transmission time and / or remaining subscriptions of a plurality of backup edge devices transmitting lost data packets, in response to a target number of transmissions being less than or equal to a predetermined second number of transmissions threshold. As an example, the electronic device may determine a target backup edge device from backup edge devices whose packet loss rate is less than a predetermined packet loss rate threshold, whose transmission time is less than a predetermined transmission time threshold, and whose remaining subscriptions are greater than a predetermined subscription threshold. The packet loss rate threshold may be 5%, the transmission time threshold may be the Rtt from the current edge device to receiving device 120, and the subscription threshold may be 0.
[0142] In some embodiments, the receiving device 120 may send a fourth retransmission instruction to the sending device to instruct the sending device to retransmit the lost data packets based on the target backup edge device.
[0143] Based on this approach, the embodiments of this disclosure can achieve accurate packet loss detection and a rapid response mechanism, ensuring that lost data packets can be identified and retransmitted in a timely manner, effectively improving the efficiency and accuracy of data retransmission.
[0144] Example devices and equipment
[0145] Embodiments of this disclosure also provide corresponding apparatus for implementing the above methods or processes. Figure 4 A schematic structural block diagram of an apparatus 400 for data retransmission according to certain embodiments of the present disclosure is shown. The apparatus 400 may be implemented as or included in the receiving device 120 as discussed above. The various modules / components in the apparatus 400 may be implemented by hardware, software, firmware, or any combination thereof.
[0146] like Figure 4As shown, the device 400 includes a receiving module 410 configured to receive a set of data packets from a transmitting device; wherein the set of data packets includes several data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different; a first determining module 420 configured to determine at least one data packet not received from the transmitting device within a target time length as a lost data packet based on the sequence number of the set of data packets, the target time length being a predetermined time length starting from a target time, and the target time being the time when the previously received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device; a second The determining module 430 is configured to determine the reception status of the target data packet set corresponding to the lost data packet, wherein the data packets in the target data packet set include data information from the lost data packet, and the target data packet set is a set of data packets to be transmitted; the third determining module 440 is configured to determine a target retransmission mode based at least on the reception status, wherein the target retransmission mode at least indicates the parameter information required to initiate a retransmission request for the lost data packet; and the sending module 450 is configured to send a first retransmission instruction to the sending device in response to the retransmission condition of the target retransmission mode being met, to instruct the sending device to retransmit the lost data packet.
[0147] In some embodiments, the first determining module 420 is further configured to: determine the first data packet as a lost data packet in response to a set of data packets not including the first data packet, wherein the sequence number of the first data packet is less than the sequence number of at least one data packet in the set of data packets.
[0148] In some embodiments, the third determining module 440 is further configured to: determine the target retransmission mode as a first retransmission mode in response to a reception status indication of the target data packet set indicating that at least one second data packet in the target data packet set has not been received, and other data packets in the target data packet set with sequence numbers greater than the lost data packets have been received; or determine the target retransmission mode as a first retransmission mode in response to a reception status indication that at least one third data packet in the first sub-data packet set of the target data packet set has not been received, and other data packets in the first sub-data packet set, excluding those with sequence numbers greater than the sequence numbers of at least one third data packet, have been received, and data exists in the second sub-data packet set of the target data packet set that has been received.
[0149] In some embodiments, the retransmission conditions corresponding to the first retransmission mode include: no lost data packet is received after a target time length, and / or the difference between the sequence number of the largest received data packet and the sequence number corresponding to the lost data packet is less than a predetermined threshold.
[0150] In some embodiments, the first determining module 420 is further configured to: in response to determining, based on the sequence number of a set of data packets already received in the first substream, that a first data packet set has not been received in the first substream, and a second data packet set has been received in the second substream, wherein the predetermined transmission order corresponding to the first data packet set is earlier than that of the second data packet set, determine the data packets included in the first data packet set as lost data packets.
[0151] In some embodiments, the third determining module 440 is further configured to: determine the target retransmission mode as the second retransmission mode in response to a reception status indication of the target data packet set indicating that all data packets included in the target data packet set have not been received.
[0152] In some embodiments, the retransmission conditions of the second retransmission mode include: the current time being greater than the sum of the creation time of the target relation chain node and the first determination time; the target relation chain at least indicates the receiving order of the data packet sets transmitted by the first sub-stream and the second sub-stream; and the creation time being the receiving time of the first data packet set transmitted by the first sub-stream and the second sub-stream.
[0153] In some embodiments, the first determination time is determined based on the following process: determining a target difference in the one-way path delay between the first sub-stream and the second sub-stream; determining a first path delay jitter corresponding to the first sub-stream based on the arrival time of each first target data packet received in the first sub-stream and the transmission time of each first target data packet at the transmitting device; determining a second path delay jitter corresponding to the second sub-stream based on the arrival time of each second target data packet received in the second sub-stream and the transmission time of each second target data packet at the transmitting device; and determining the first determination time based on the target difference, the number of data packets in other data packet sets besides the target data packet set in each data packet set in the first sub-stream, the first average arrival interval between two adjacent data packets in other data packet sets, the first path delay jitter, the second path delay jitter, and the target time length.
[0154] In some embodiments, the first determining module 420 is further configured to: determine the data packets included in the third data packet set as lost data packets in response to determining that a third data packet set has not been received within a predetermined time length based on the sequence number of a set of data packets.
[0155] In some embodiments, the third determining module 440 is further configured to: determine the target retransmission mode as the third retransmission mode in response to a reception status indication of the target data packet set indicating that all data packets included in the target data packet set have not been received.
[0156] In some embodiments, the retransmission condition for the third retransmission mode includes: the current time is greater than the sum of the first target time and the reception time of the last received non-retransmission data packet.
[0157] In some embodiments, the first target time is determined based on the following process: determining an ideal time interval between the target data packet set and the previous received data packet set; for each out-of-order data packet in the first target queue, determining a target time interval corresponding to the out-of-order data packet based on the arrival time of the retransmission of the out-of-order data packet to the receiving device and the arrival time of the data packet adjacent to the out-of-order data packet and arriving at the receiving device before the out-of-order data packet; and determining the first target time based on the ideal time interval, the average value of the target time intervals corresponding to each out-of-order data packet in the first target queue, the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, the number of data packets in the target data packet set, and a second average arrival interval between two adjacent data packets in other received data packet sets besides the target data packet set.
[0158] In some embodiments, the first determining module 420 is further configured to: determine the fourth data packet as a lost data packet if the fourth data packet whose response sequence number is greater than the maximum sequence number in a set of received data packets is not received within a predetermined time period.
[0159] In some embodiments, the third determining module 440 is further configured to: determine the target retransmission mode as the fourth retransmission mode in response to the reception status indication of the target data packet set indicating that at least one fifth data packet in the target data packet set has not been received, other data packets in the target data packet set that do not include received data packets with sequence numbers greater than at least one third data packet have been received, and data packets included in the next data packet set after the target data packet set have not been received.
[0160] In some embodiments, the retransmission conditions corresponding to the fourth retransmission mode include: the current time is greater than the sum of the reception time of the previous data packet and the second determination time, or the current time is greater than the sum of the second target time and the reception time based on the previously received non-retransmission data packet.
[0161] In some embodiments, the second determination time is determined based on the following process: determining a second average arrival interval between two adjacent data packets in each third target data packet that has arrived at the receiving device based on the first arrival time of each third target data packet in the target data packet set; determining a third path delay jitter based on the arrival time of each fourth target data packet arriving at the receiving device and the transmission time of each fourth target data packet at the transmitting device; and determining a second determination time based on the number of unreceived data packets in the target data packet set, the second average arrival interval, the third path delay jitter, and the target time length; and / or the second target time is determined based on the following process: for each out-of-order data packet in the first target queue, determining a target time interval corresponding to the out-of-order data packet based on the arrival time of the retransmission of the out-of-order data packet to the receiving device and the arrival time of the data packets adjacent to and arriving at the receiving device before the out-of-order data packet; and determining a second target time based on the average value of the target time intervals corresponding to each out-of-order data packet in the first target queue, the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, the number of unreceived data packets in the target data packet set, and the third average arrival interval between two adjacent data packets in the received data packets in the target data packet set.
[0162] In some embodiments, a first target queue is determined based on the following process: a first candidate time interval corresponding to the arrival time of a received retransmitted candidate data packet and the arrival time of the previous data packet adjacent to the candidate data packet; an arrival interval between two adjacent data packets based on the arrival times of the data packets received in the candidate data packet set corresponding to the candidate data packet; a second candidate time interval based on the average arrival time interval of every two adjacent data packets in the candidate data packet set and the standard deviation of the arrival time interval between any two adjacent data packets in the candidate data packet set; a determination of whether the first candidate time interval is greater than the second candidate time interval; and, in response to the first candidate time interval being greater than the second candidate time interval, adding the candidate data packet to the first target queue.
[0163] In some embodiments, the target time length is determined based on the following process: for a set of out-of-order packets in the second target queue, a candidate time length corresponding to the packet is determined based on a first time when the packet arrives at the receiving device and a second time when the packet corresponding to the packet arrives at the receiving device, wherein the out-of-order packets are non-retransmitted packets that did not arrive in the predetermined transmission order; and the target time length is determined based on the candidate time length corresponding to a set of packets in the second target queue.
[0164] In some embodiments, the apparatus 400 further includes a fourth determining module configured to: determine the number of false retransmissions during data packet transmission; an updating module configured to: update a target time length based on the number of false retransmissions; and / or update a second target queue based on out-of-order data packets determined in real time during data packet transmission; and / or determine a predetermined threshold based on the following process: for a set of data packets, determining a candidate sequence number value corresponding to the data packet based on the sequence number of the data packet and the sequence number of the preceding arriving data packet corresponding to the data packet; and determining a predetermined threshold based on the candidate sequence number values corresponding to a set of data packets in the target queue. In some embodiments, the apparatus 400 further includes a fifth determining module configured to: determine a waiting time corresponding to the next sending of a second retransmission instruction to the sending device based on the round-trip time of data transmission from the edge device to the receiving device; and a first instruction sending module configured to: after the waiting time, send a second retransmission instruction to the sending device to instruct the sending device to retransmit the lost data packets; or determine a target number of retransmissions allowed based on the time length of time the target data packet set is delivered to the target player of the receiving device and the transmission time of the data packets from the edge device to the receiving device; and a second instruction sending module configured to: in response to the target number being less than a predetermined first number threshold and greater than or equal to a predetermined second number threshold, send a third retransmission instruction to the sending device to instruct the sending device to retransmit the lost data packets.
[0165] In some embodiments, the fifth determining module is further configured to: determine a candidate waiting time based on the round-trip time of data transmission from the edge device to the receiving device in response to the target retransmission mode corresponding to the lost data packet being a predetermined retransmission mode; and determine the waiting time based on the round-trip time of data transmission from the edge device to the receiving device and the round-trip time of data transmission from the content delivery network to the edge device after waiting for the candidate waiting time and receiving a target instruction sent by the edge device indicating that the lost data packet has not been received.
[0166] In some embodiments, the apparatus 400 further includes a seventh determining module configured to: in response to a target number being less than or equal to a predetermined second number threshold, determine a target backup edge device based on the packet loss rate and / or transmission time and / or remaining subscriptions of a plurality of backup edge devices transmitting lost data packets; the backup edge device is used to transmit lost data packets; and a third instruction sending module configured to: send a fourth retransmission instruction to the sending device to instruct the sending device to retransmit the lost data packets based on the target backup edge device.
[0167] The units included in device 400 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units may be implemented using software and / or firmware, such as machine-executable instructions stored on a storage medium. In addition to or as an alternative to machine-executable instructions, some or all of the units in device 400 may be implemented at least partially by one or more hardware logic components. By way of example and not limitation, exemplary types of hardware logic components that may be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-chips (SoCs), complex programmable logic devices (CPLDs), and so on.
[0168] Figure 5 A block diagram of an electronic device 500 in which one or more embodiments of the present disclosure may be implemented is shown. It should be understood that... Figure 5 The electronic device 500 shown is merely exemplary and should not be construed as limiting the functionality and scope of the embodiments described herein. Figure 5 The electronic device 500 shown can be used to achieve Figure 1 The receiving device 120 shown.
[0169] like Figure 5 As shown, electronic device 500 is in the form of a general-purpose electronic device. Components of electronic device 500 may include, but are not limited to, one or more processors or processing units 510, memory 520, storage device 530, one or more communication units 540, one or more input devices 550, and one or more output devices 560. Processing unit 510 may be a physical or virtual processor and is capable of performing various processes according to programs stored in memory 520. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of electronic device 500.
[0170] Electronic device 500 typically includes multiple computer storage media. Such media can be any accessible media that is accessible to electronic device 500, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 520 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Storage device 530 can be a removable or non-removable medium and can include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data (e.g., training data for training) and can be accessed within electronic device 500.
[0171] Electronic device 500 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not explicitly stated... Figure 5 As shown, disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks can be provided. In these cases, each drive can be connected to a bus (not shown) via one or more data media interfaces. Memory 520 may include computer program product 525 having one or more program modules configured to perform various methods or actions of various embodiments of this disclosure.
[0172] Communication unit 540 enables communication with other electronic devices via a communication medium. Additionally, the functionality of components of electronic device 500 can be implemented using a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, electronic device 500 can operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another network node.
[0173] Input device 550 can be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 560 can be one or more output devices, such as a monitor, speaker, printer, etc. Electronic device 500 can also communicate with one or more external devices (not shown) via communication unit 540 as needed. These external devices include storage devices, display devices, etc., and can communicate with one or more devices that enable user interaction with electronic device 500, or with any device that enables electronic device 500 to communicate with one or more other electronic devices (e.g., network card, modem, etc.). Such communication can be performed via input / output (I / O) interface (not shown).
[0174] According to an exemplary implementation of this disclosure, a computer-readable storage medium is provided that stores computer-executable instructions thereon, wherein the computer-executable instructions are executed by a processor to implement the methods described above. According to an exemplary implementation of this disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the methods described above.
[0175] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0176] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0177] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0178] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0179] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.
Claims
1. A data retransmission method, comprising: Receive a set of data packets from the sending device; wherein the set of data packets includes several data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different; Based on the sequence number of the set of data packets, at least one data packet that is not received from the sending device within the target time length is identified as a lost data packet. The target time length is a predetermined time length starting from the target time. The target time is the time when the previously received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device. Determine the reception status of the target data packet set corresponding to the lost data packet, wherein the data packets in the target data packet set include the data information in the lost data packet, and the target data packet set is a set of data packets to be transmitted; Based at least on the received state, a target retransmission mode is determined, the target retransmission mode indicating at least the parameter information required to initiate a retransmission request for the lost data packet; and In response to the retransmission condition of the target retransmission mode being met, a first retransmission instruction is sent to the sending device to instruct the sending device to retransmit the lost data packet.
2. The method according to claim 1, wherein determining at least one data packet not received from the transmitting device within a target time period as a lost data packet based on the sequence number of the set of data packets includes: In response to the fact that the first data packet is not included in the set of data packets, and the sequence number of the first data packet is less than the sequence number of at least one data packet in the set of data packets, the first data packet is determined to be the lost data packet.
3. The method of claim 2, wherein determining the target retransmission mode based at least on the reception state includes: In response to a reception status indication that at least one second data packet in the target data packet set has not been received, and other data packets in the target data packet set with sequence numbers greater than the lost data packet are received, the target retransmission mode is determined to be the first retransmission mode. or In response to the reception status indicating that at least one third data packet in the first sub-data packet set of the target data packet set has not been received, and that the first sub-data packet set does not include other data packets with sequence numbers greater than the sequence number of the at least one third data packet that have been received, and that data has been received in the second sub-data packet set of the target data packet set, the target retransmission mode is determined to be the first retransmission mode.
4. The method according to claim 3, wherein the retransmission condition corresponding to the first retransmission mode includes: If the lost data packet is not received after the target time period, and / or The difference between the sequence number of the largest received data packet and the sequence number corresponding to the lost data packet is less than a predetermined threshold.
5. The method of claim 1, wherein the set of data packets is received based on a first substream, and determining at least one data packet not received from the transmitting device within a target time period as a lost data packet based on the sequence number of the set of data packets includes: In response to determining, based on the sequence number of a set of data packets already received in the first sub-stream, that a first data packet set has not been received in the first sub-stream, and a second data packet set has been received in the second sub-stream, wherein the predetermined transmission order corresponding to the first data packet set is earlier than that of the second data packet set, the data packets included in the first data packet set are determined to be the lost data packets.
6. The method of claim 5, wherein determining the target retransmission mode based at least on the reception state comprises: In response to the reception status indication of the target data packet set indicating that all data packets included in the target data packet set have not been received, the target retransmission mode is determined to be the second retransmission mode.
7. The method according to claim 6, wherein the retransmission condition of the second retransmission mode includes: The current time is greater than the sum of the creation time of the target relationship chain node and the first determination time. The target relationship chain at least indicates the receiving order of the data packet sets transmitted by the first sub-stream and the second sub-stream. The creation time is the receiving time of the first data packet set transmitted by the first sub-stream and the second sub-stream.
8. The method of claim 7, wherein the first determination time is determined based on the following process: Determine the target difference in one-way path delay between the first sub-stream and the second sub-stream; Based on the arrival time of each first target data packet received in the first sub-stream and the transmission time of each first target data packet at the transmitting device, the first path delay jitter corresponding to the first sub-stream is determined; Based on the arrival time of each second target data packet received in the second sub-stream and the transmission time of each second target data packet at the transmitting device, the second path delay jitter corresponding to the second sub-stream is determined; as well as The first determination time is determined based on the target difference, the number of data packets in each data packet set in the first sub-stream other than the target data packet set, the first average arrival interval between two adjacent data packets in the other data packet sets, the first path delay jitter, the second path delay jitter, and the target time length.
9. The method of claim 1, wherein determining at least one data packet not received from the transmitting device within a target time period as a lost data packet based on the sequence number of the set of data packets comprises: In response to determining, based on the sequence number of the set of data packets, that a third set of data packets has not been received within a predetermined time period, the data packets included in the third set of data packets are identified as the lost data packets.
10. The method of claim 9, wherein determining the target retransmission mode based at least on the reception state comprises: In response to the reception status indication of the target data packet set indicating that all data packets included in the target data packet set have not been received, the target retransmission mode is determined to be the third retransmission mode.
11. The method of claim 10, wherein the retransmission condition of the third retransmission mode includes: The current time is greater than the sum of the first target time and the reception time of the last received non-retransmitted data packet.
12. The method of claim 11, wherein the first target time is determined based on the following process: Determine the ideal time interval between the target data packet set and the previous received data packet set; For each out-of-order data packet in the first target queue, the target time interval corresponding to the out-of-order data packet is determined based on the arrival time of the retransmission of the out-of-order data packet to the receiving device and the arrival time of the data packets adjacent to the out-of-order data packet but arriving at the receiving device before the out-of-order data packet. The first target time is determined based on the ideal time interval, the average value of the target time intervals corresponding to each out-of-order data packet in the first target queue, the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, the number of data packets in the target data packet set, and the second average arrival interval between two adjacent data packets in other data packet sets other than the target data packet set.
13. The method of claim 1, wherein determining at least one data packet not received from the transmitting device within a target time period as a lost data packet based on the sequence number of the set of data packets comprises: If the fourth data packet, whose sequence number is greater than the maximum sequence number among the received data packets, is not received within a predetermined time period, the fourth data packet is identified as the lost data packet.
14. The method of claim 13, wherein determining the target retransmission mode based at least on the reception state comprises: In response to a reception status indication that at least one fifth data packet in the target data packet set has not been received, the target data packet set does not include other data packets with sequence numbers greater than the at least one third data packet that have been received, and the data packets included in the next data packet set after the target data packet set have not been received, the target retransmission mode is determined to be the fourth retransmission mode.
15. The method according to claim 14, wherein the retransmission condition corresponding to the fourth retransmission mode includes: The current time is greater than the sum of the reception time of the previous data packet and the second determination time; or The current time is greater than the sum of the second target time and the reception time based on the previously received non-retransmitted data packet.
16. The method of claim 15, wherein the second determination time is determined based on the following process: Based on the first arrival time of each third target data packet in the target data packet set that has arrived at the receiving device, a second average arrival interval between two adjacent data packets in each of the third target data packets is determined; based on the arrival time of each transmitted fourth target data packet arriving at the receiving device and the transmission time of each fourth target data packet at the transmitting device, a third path delay jitter is determined; and based on the number of data packets not received in the target data packet set, the second average arrival interval, the third path delay jitter, and the target time length, a second determination time is determined; and / or The second target time is determined based on the following process: for each out-of-order data packet in the first target queue, the target time interval corresponding to the out-of-order data packet is determined based on the arrival time of the retransmission of the out-of-order data packet to the receiving device and the arrival time of the data packets adjacent to the out-of-order data packet and arriving at the receiving device before the out-of-order data packet; the second target time is determined based on the average value of the target time intervals corresponding to each out-of-order data packet in the first target queue, the standard deviation of the target time intervals corresponding to each out-of-order data packet in the first target queue, the number of unreceived data packets in the target data packet set, and the third average arrival interval of two adjacent data packets in the received data packets in the target data packet set.
17. The method of claim 12 or 16, wherein the first target queue is determined based on the following process: The first candidate time interval is based on the arrival time of the received retransmitted candidate data packet and the arrival time of the previous data packet adjacent to the candidate data packet. Based on the arrival times of the data packets already received in the candidate data packet set corresponding to the candidate data packet, the arrival interval between two adjacent data packets is determined. The second candidate time interval is determined based on the average arrival time interval of every two adjacent data packets in the candidate data packet set and the standard deviation of the arrival time interval of any two adjacent data packets in the candidate data packet set. Determine whether the first candidate time interval is greater than the second candidate time interval; In response to the first candidate time interval being greater than the second candidate time interval, the candidate data packet is added to the first target queue.
18. The method of claim 4, 8, or 16, wherein the target time length is determined based on the following process: For a group of data packets arriving out of order in the second target queue, a candidate time length corresponding to the data packet is determined based on the first time the data packet arrives at the receiving device and the second time the preceding data packet arrives at the receiving device. The out-of-order data packets are non-retransmitted data packets that did not arrive in the predetermined transmission order. The target time length is determined based on the candidate time lengths corresponding to the group of data packets in the second target queue.
19. The method according to claim 18, wherein, After determining the target time length, the method further includes: Determine the number of false retransmissions during data packet transmission; update the target time length based on the number of false retransmissions; and / or The second target queue is updated based on out-of-order data packets determined in real time during data packet transmission; and / or the predetermined threshold is determined based on the following process: for the set of data packets, a candidate sequence number value corresponding to the data packet is determined based on the sequence number of the data packet and the sequence number of the previous arriving data packet corresponding to the data packet; and the predetermined threshold is determined based on the candidate sequence number value corresponding to the set of data packets in the target queue.
20. The method according to claim 1, wherein, After sending the first retransmission command to the transmitting device, the method further includes: Based on the round-trip time of data transmission from the edge device to the receiving device, determine the waiting time corresponding to the next sending of the second retransmission instruction to the sending device; and after the waiting time, send the second retransmission instruction to the sending device to instruct the sending device to retransmit the lost data packet; or Based on the time length of the target data packet set delivered to the target player of the receiving device and the transmission time of the data packet from the edge device to the receiving device, a target number of retransmissions is determined; and in response to the target number being less than a predetermined first number threshold and greater than or equal to a predetermined second number threshold, a third retransmission instruction is sent to the sending device to instruct the sending device to retransmit the lost data packet.
21. The method of claim 20, wherein determining the waiting time for the next transmission of a second retransmission instruction to the transmitting device based on the round-trip time of data transmission from the edge device to the receiving device includes: In response to the target retransmission mode corresponding to the lost data packet being a predetermined retransmission mode, a candidate waiting time is determined based on the round-trip time of data transmission from the edge device to the receiving device. In response to receiving a target instruction from the edge device indicating that the lost data packet was not received after waiting for the candidate waiting time, the waiting time is determined based on the round-trip time of data transmission from the edge device to the receiving device and the round-trip time of data transmission from the content delivery network to the edge device.
22. The method according to claim 20, wherein, After determining the target number of retransmissions allowed based on the time length of the target data packet set delivered to the target player of the receiving device and the transmission time of the data packet from the edge device to the receiving device, the method further includes: In response to the target number being less than or equal to a predetermined second number threshold, a target backup edge device is determined based on the packet loss rate and / or transmission time and / or remaining subscriptions of multiple backup edge devices transmitting the lost data packets; the backup edge device is used to transmit the lost data packets. A fourth retransmission instruction is sent to the sending device to instruct the sending device to retransmit the lost data packet based on the target backup edge device.
23. An apparatus for data retransmission, comprising: The receiving module is configured to receive a set of data packets from the sending device; wherein the set of data packets includes several data packets, and each data packet corresponds to a sequence number, and the sequence numbers corresponding to each data packet are different; The first determining module is configured to determine at least one data packet that has not been received from the sending device within a target time length as a lost data packet based on the sequence number of the set of data packets. The target time length is a predetermined time length with a target time as the starting point, and the target time is the time when the previously received non-retransmitted data packet with a sequence number smaller than the sequence number of the lost data packet arrives at the receiving device. The second determining module is configured to determine the reception status of a target data packet set corresponding to the lost data packet, wherein the data packets in the target data packet set include the data information in the lost data packet, and the target data packet set is a set of data packets to be transmitted; The third determining module is configured to determine a target retransmission mode based at least on the received state, the target retransmission mode indicating at least the parameter information required to initiate a retransmission request for the lost data packet; and The sending module is configured to send a first retransmission instruction to the sending device in response to the retransmission condition of the target retransmission mode being met, so as to instruct the sending device to retransmit the lost data packet.
24. An electronic device, comprising: At least one processing unit; as well as At least one memory, coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 22 when executed by the at least one processing unit.
25. A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method according to any one of claims 1 to 22.