Out-of-order jitter retransmission control method and device, equipment and storage medium

By setting the out-of-order cache threshold and sequence number cache interval in network transmission, we can determine whether the data packet to be received is retransmitted, and unnecessary retransmission problems caused by out-of-order jitter is solved, and bandwidth saving and smooth packet transmission are achieved.

CN119814238APending Publication Date: 2025-04-11BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411885417.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-19
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

In network transmission, out-of-order jitter causes data packets to arrive at the destination in sequence, causing misjudgment and unnecessary data retransmission, wasting bandwidth and reducing transmission quality.

Method used

By setting the out-of-order cache threshold, setting the sequence number cache interval in the packet sequence, determining whether the data packet to be received is in the interval, and determining whether the retransmission mechanism is triggered to avoid unnecessary packet retransmission.

Benefits of technology

It effectively avoids unnecessary packet retransmission, saves bandwidth resources, and ensures the smoothness of packet transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814238A_ABST
    Figure CN119814238A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides an out-of-order jitter retransmission control method and device, electronic equipment and a storage medium, and relates to the technical field of the Internet. The method comprises the following steps: receiving a first data packet; in response to the fact that the first serial number is smaller than the maximum serial number of the received data packet, determining that disorder occurs; determining a serial number difference value between the serial number of the to-be-received data packet and the maximum serial number in response to the disorder; in response to the condition that the serial number difference value is smaller than or equal to an out-of-order cache threshold value, waiting for receiving the to-be-received data And in response to the condition that the serial number difference value is greater than the out-of-order cache threshold value, indicating to retransmit the to-be-received data packet. According to the method, by setting the serial number cache interval, unnecessary data packet retransmission is avoided, so that limited bandwidth resources are saved, and smooth transmission of related data packets is ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of Internet technology, and in particular to a method, device, electronic device, storage medium and computer program product for retransmission control of out-of-order jitter. Background Art

[0002] The complexity of network transmission systems makes data face multiple challenges during transmission, and out-of-order jitter is one of the typical problems. When data packets travel through the network, they do not always reach the destination in the order they were sent. This disorder may be caused by factors such as changes in network paths and processing differences in routing devices. For applications that rely on precise sequences for communication, out-of-order jitter may cause a series of problems, especially in scenarios with high real-time requirements.

[0003] In applications such as video conferencing that require real-time audio and video interaction, severe out-of-order jitter will bring additional complexity. The traditional method of judging packet loss based on sequence numbers is prone to misjudgment when faced with out-of-order jitter, and out-of-order data packets are considered lost, thereby triggering unnecessary redundant data retransmission mechanisms. This not only wastes precious bandwidth resources, but also exacerbates the deterioration of transmission quality when bandwidth is limited, ultimately leading to a freeze in user experience. Summary of the invention

[0004] Embodiments of the present disclosure provide a method, device, electronic device, storage medium, and computer program product for retransmission control of out-of-order jitter.

[0005] According to a first aspect of an embodiment of the present disclosure, a retransmission control method for out-of-order jitter is provided, comprising: receiving a first data packet; the first data packet corresponds to a first sequence number; in response to the first sequence number being less than the maximum sequence number of received data packets, determining that out-of-order has occurred; in response to the occurrence of out-of-order, determining a sequence number difference between the sequence number of a data packet to be received and the maximum sequence number; in response to the sequence number difference being less than or equal to an out-of-order cache threshold, waiting to receive the data packet to be received; in response to the sequence number difference being greater than the out-of-order cache threshold, instructing to retransmit the data packet to be received.

[0006] In some exemplary embodiments of the present disclosure, the method further includes: determining a first sequence number difference between the first sequence number and the maximum sequence number; in response to the first sequence number difference being greater than the out-of-order cache threshold, updating the out-of-order cache threshold according to the first sequence number difference.

[0007] In some exemplary embodiments of the present disclosure, updating the out-of-order cache threshold according to the first sequence number difference includes: taking a smaller value between the first sequence number difference and a preset out-of-order cache limit as the out-of-order cache threshold.

[0008] In some exemplary embodiments of the present disclosure, the method further includes: in response to the first sequence number being greater than a maximum sequence number of received data packets, updating the out-of-order buffer threshold.

[0009] In some exemplary embodiments of the present disclosure, the instructing to retransmit the data packet to be received includes: determining whether to retransmit the data packet to be received based on the retransmission probability; in response to determining that the data packet to be received is not to be retransmitted, waiting to receive the data packet to be received; in response to determining that the data packet to be received is to be retransmitted, instructing to retransmit the data packet to be received.

[0010] In some exemplary embodiments of the present disclosure, determining whether the to-be-received data packet is to be retransmitted based on the retransmission probability includes: generating a random number corresponding to the to-be-received data packet; and determining whether the to-be-received data packet is to be retransmitted based on the random number and the retransmission probability.

[0011] In some exemplary embodiments of the present disclosure, the method further comprises: in response to the existence of repeated transmission of data packets, reducing the retransmission probability; in response to the existence of lost data packets, increasing the retransmission probability.

[0012] In some exemplary embodiments of the present disclosure, the method further includes: performing a retransmission indication count in response to an indication to retransmit the data packet to be received; performing a repeated transmission count in response to a second sequence number of a received second data packet being repeated with a sequence number of a received data packet; and determining whether a data packet is repeatedly transmitted or lost based on a difference between the retransmission indication count and the repeated transmission count.

[0013] In some exemplary embodiments of the present disclosure, determining the existence of repeated transmission of data packets or lost data packets based on the difference between the retransmission indication count and the repeated transmission count includes: determining the existence of lost data packets in response to an increase in the difference between the retransmission indication count and the repeated transmission count; and determining the existence of repeated transmission of data packets in response to a decrease in the difference between the retransmission indication count and the repeated transmission count.

[0014] In some exemplary embodiments of the present disclosure, the method further includes: determining a third data packet based on the out-of-order cache threshold and the received data packets corresponding to the maximum sequence number; and generating a packet loss rate based on data packets within a preset range before the third data packet.

[0015] In some exemplary embodiments of the present disclosure, the preset range is a preset time range or a preset number of data packets.

[0016] According to a second aspect of an embodiment of the present disclosure, there is provided a retransmission control device for out-of-order jitter, comprising: a data packet receiving module, configured to receive a first data packet; the first data packet corresponds to a first sequence number; an out-of-order determination module, configured to determine that out-of-order has occurred in response to the first sequence number being less than the maximum sequence number of received data packets; a sequence number difference module, configured to determine the sequence number difference between the sequence number of a data packet to be received and the maximum sequence number in response to out-of-order occurrence; a retransmission control module, configured to wait for receiving the data packet to be received in response to the sequence number difference being less than or equal to an out-of-order cache threshold; and instruct to retransmit the data packet to be received in response to the sequence number difference being greater than the out-of-order cache threshold.

[0017] According to a third aspect of an embodiment of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the executable instructions to implement any one of the out-of-order jitter retransmission control methods described.

[0018] According to a fourth aspect of an embodiment of the present disclosure, a computer-readable storage medium is provided. When instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute any one of the out-of-order jitter retransmission control methods.

[0019] According to a fifth aspect of an embodiment of the present disclosure, a computer program product is provided, comprising a computer program / instruction, wherein when the computer program / instruction is executed by a processor, the computer program / instruction implements any one of the methods for retransmission control of out-of-order jitter.

[0020] The retransmission control method for out-of-order jitter provided by the embodiment of the present disclosure sets a sequence number buffer interval in a data packet sequence through an out-of-order buffer threshold. When determining that the transmission is out of order, whether to trigger a retransmission mechanism for the data packet to be received is determined based on whether the data packet to be received is located in the sequence number buffer interval. The method avoids unnecessary data packet retransmission by setting the sequence number buffer interval, thereby saving limited bandwidth resources and ensuring smooth transmission of related data packets.

[0021] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.

[0023] Figure 1 A schematic diagram showing an exemplary system architecture to which the method according to an embodiment of the present disclosure can be applied is shown.

[0024] Figure 2 The present invention is a flow chart of a method for controlling retransmission of out-of-order jitter according to an exemplary embodiment.

[0025] Figure 3 The flowchart of the out-of-order cache threshold updating method is shown according to an example.

[0026] Figure 4 The present invention is a flowchart of a retransmission determination method according to an example.

[0027] Figure 5 is a flowchart of a method for updating a retransmission probability according to an example.

[0028] Figure 6 The figure is a flow chart of a packet loss rate statistics method according to an example.

[0029] Figure 7 is a schematic diagram of a data packet status in an out-of-order jitter situation according to an example.

[0030] Figure 8 The invention is a block diagram of a retransmission control device for out-of-sequence jitter according to an exemplary embodiment.

[0031] Fig. 9 It is a schematic diagram showing the structure of an electronic device suitable for implementing the exemplary embodiments of the present disclosure according to an exemplary embodiment. DETAILED DESCRIPTION

[0032] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in many forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be comprehensive and complete and will fully convey the concepts of the example embodiments to those skilled in the art. The same reference numerals in the figures represent the same or similar parts, and thus their repeated description will be omitted.

[0033] The features, structures or characteristics described in the present disclosure may be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present disclosure. However, those skilled in the art will appreciate that the technical solutions of the present disclosure may be practiced while omitting one or more of the specific details, or other methods, components, devices, steps, etc. may be adopted. In other cases, known methods, devices, implementations or operations are not shown or described in detail to avoid blurring the various aspects of the present disclosure.

[0034] The accompanying drawings are only schematic diagrams of the present disclosure, and the same reference numerals in the drawings represent the same or similar parts, so their repeated description will be omitted. Some block diagrams shown in the accompanying drawings do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in at least one hardware module or integrated circuit, or implemented in different networks and / or processor devices and / or microcontroller devices.

[0035] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and steps, nor must they be executed in the order described. For example, some steps can be decomposed, and some steps can be combined or partially combined, so the actual execution order may change according to actual conditions.

[0036] In this specification, the terms "a", "an", "the", "said" and "at least one" are used to indicate the presence of at least one element / component / etc.; the terms "comprising", "including" and "having" are used to express an open-ended inclusion and mean that additional elements / components / etc. may exist in addition to the listed elements / components / etc.; the terms "first", "second" and "third" etc. are used only as labels and are not intended to limit the quantity of their objects.

[0037] Figure 1 A schematic diagram showing an exemplary system architecture to which the method according to an embodiment of the present disclosure can be applied is shown.

[0038] like Figure 1 As shown, the system architecture may include a server 101, a network 102, a terminal device 103, a terminal device 104, and a terminal device 105. The network 102 is used to provide a medium for a communication link between the terminal device 103, the terminal device 104, or the terminal device 105 and the server 101. The network 102 may include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.

[0039] The server 101 may be a server that provides various services, such as a background management server that provides support for devices operated by users using the terminal device 103, the terminal device 104, or the terminal device 105. The background management server may analyze and process the received request and other data, and feed back the processing results to the terminal device 103, the terminal device 104, or the terminal device 105.

[0040] Terminal device 103, terminal device 104 and terminal device 105 can be a smart phone, a tablet computer, a laptop computer, a desktop computer, a smart speaker, a wearable smart device, a virtual reality device, an augmented reality device, etc., but are not limited thereto.

[0041] It should be understood that Figure 1 The number of terminal devices 103, terminal devices 104, terminal devices 105, networks 102 and servers 101 are merely illustrative. Server 101 may be a physical server, a server cluster consisting of multiple servers, or a cloud server. Depending on actual needs, any number of terminal devices, networks and servers may be provided.

[0042] Below, each step of the method in the exemplary embodiment of the present disclosure will be described in more detail with reference to the accompanying drawings and embodiments.

[0043] Figure 2 The present invention is a flow chart of a method for controlling retransmission of out-of-order jitter according to an exemplary embodiment. Figure 7 is a schematic diagram of a data packet status in an out-of-order jitter situation according to an example. Figure 2 The method provided in the embodiment is applied to the client and can be executed by any electronic device, such as the above Figure 1 The terminal device in Figure 1 Servers in, or Figure 1 The terminal device and the server in the embodiment are jointly executed, but the present disclosure is not limited to this.

[0044] In step S210, a first data packet is received; the first data packet corresponds to a first sequence number.

[0045] In the related art, when the sender sends data packets at a stable interval and the network condition is good, the data packets received by the receiver will also maintain an orderly and stable time interval. At this time, the packet loss situation can be accurately judged by detecting the holes in the packet sequence number. When a data packet with a later sequence number is received, it is considered that the data packet with the previous sequence number has been lost, and based on this, the sender is instructed to retransmit the data packet. However, if there is out-of-order jitter in the network, this will also cause temporary holes in the packet sequence number; in this case, if all sequence number holes are indiscriminately regarded as packet loss, it may cause unnecessary data retransmission and lead to inaccurate calculation of packet loss rate.

[0046] In order to cope with the above-mentioned out-of-order jitter situation, the present disclosure provides a retransmission control method for out-of-order jitter, which adopts an adaptive cache mechanism to allow data packets in a part of packet sequence number holes not to be retransmitted first, so as to avoid misjudgment and unnecessary retransmission.

[0047] In the disclosed embodiment, a first data packet is received. The first data packet may be any data packet. The first data packet corresponds to a first sequence number. Any data packet has a unique sequence number. The sequence number corresponds to the order between the data packets.

[0048] In an exemplary embodiment, the first data packet may be a data packet received by the receiving end, or may be an acknowledgment packet (ACK packet) received by the sending end and fed back by the receiving end. The acknowledgment packet is used to confirm that the receiving end has successfully received the data packet. The acknowledgment packet also corresponds to a corresponding sequence number.

[0049] In step S220, in response to the first sequence number being smaller than the maximum sequence number of received data packets, it is determined that disorder has occurred.

[0050] The retransmission control method provided by the present disclosure is designed for the situation of disordered jitter in the network. If there is no disordered jitter in the network, the control can be performed according to the normal retransmission control strategy. Therefore, the present disclosure first needs to determine whether there is disordered situation in the current network condition.

[0051] In the embodiment of the present disclosure, when receiving the first data packet, it is detected whether a data packet with a sequence number greater than the first sequence number has been received. If the first sequence number is less than the maximum sequence number in the received data packets, that is, there is a reverse sequence number situation, it is determined that there is an out-of-sequence jitter situation, and based on this, the relevant retransmission control mechanism is triggered.

[0052] In an exemplary embodiment, if Figure 7 As shown, a data packet with sequence number 12 has been received before receiving a data packet with sequence number 7. Based on the fact that sequence number 7 is less than the maximum sequence number 12 of the received data packets, it is determined that out-of-sequence jitter exists.

[0053] In step S230, in response to the disorder occurring, a sequence number difference between the sequence number of the to-be-received data packet and the maximum sequence number is determined.

[0054] In the embodiment of the present disclosure, in response to the existence of disorder, a data packet to be received before the data packet corresponding to the maximum sequence number is determined. The data packet to be received is a data packet whose sequence number is before the maximum sequence number and is received, that is, a data packet with a sequence number hole. The data packet to be received may be one or more. In the related art, the data packet to be received is determined to have a packet loss situation and triggers a retransmission mechanism, instructing the sender to resend the data packet to be received.

[0055] In the disclosed embodiment, the retransmission mechanism of the to-be-received data packet is not directly triggered, but the sequence number difference between each to-be-received data packet and the maximum sequence number is calculated based on the sequence number of each to-be-received data packet.

[0056] In an exemplary embodiment, if Figure 7As shown, in the case of determining that there is disorder, the data packets to be received before the maximum sequence number 12 are determined to include: data packet 2, data packet 6, and data packets 8-11. The sequence number difference is calculated based on the sequence number of each data packet to be received. For example, for data packet 6, the corresponding sequence number difference is 6; for data packet 8, the corresponding sequence number difference is 4.

[0057] In step S240, in response to the sequence number difference being less than or equal to the out-of-order buffer threshold, waiting to receive the to-be-received data packet.

[0058] In the embodiment of the present disclosure, in view of the characteristics of the out-of-order jitter situation, the present disclosure sets a sequence number cache interval, and the to-be-received data packets within the sequence number cache interval will not trigger the retransmission mechanism, while the to-be-received data packets outside the sequence number cache interval will trigger the retransmission mechanism. The length of the sequence number cache interval is controlled by the out-of-order cache threshold. When the sequence number difference corresponding to the to-be-received data packet is less than or equal to the out-of-order cache threshold, it is considered that it will not trigger the retransmission mechanism within the sequence number cache interval, but continues to wait for the to-be-received data packet to be received. The to-be-received data packet within the sequence number cache interval is considered to have a high probability of being affected by out-of-order jitter, and the data packet may still be received by continuing to wait. Based on this mechanism, unnecessary data packet retransmission can be avoided, thereby saving limited bandwidth resources and ensuring smooth transmission of related data packets.

[0059] It should be noted that the out-of-order buffer threshold may be a preset fixed value, or a threshold that is adaptively and dynamically adjusted according to network conditions.

[0060] In an exemplary embodiment, if Figure 7 As shown, it is assumed that the out-of-order buffer threshold is 5. For data packets 8-11, the corresponding sequence number difference is less than the out-of-order buffer threshold, so the retransmission mechanism will not be triggered, but continues to wait until the relevant data packets are received.

[0061] In step S250, in response to the sequence number difference being greater than the out-of-order buffer threshold, an instruction is given to retransmit the to-be-received data packet.

[0062] In the disclosed embodiment, when the sequence number difference corresponding to the to-be-received data packet is greater than the out-of-order buffer threshold, that is, the data packet is outside the sequence number buffer interval, it is considered that the data packet has a high probability of being lost. Therefore, it is necessary to trigger a retransmission mechanism for the to-be-received data packet to instruct the retransmission of the data packet.

[0063] In an exemplary embodiment, if Figure 7 As shown, it is assumed that the out-of-order buffer threshold is 5. For data packets 2 and 6, the difference in their corresponding sequence numbers is greater than the out-of-order buffer threshold, so the retransmission mechanism is triggered, indicating that the data packets 2 and 6 are to be retransmitted.

[0064] The retransmission control method for out-of-order jitter provided by the embodiment of the present disclosure sets a sequence number buffer interval in a data packet sequence through an out-of-order buffer threshold. When determining that the transmission is out of order, whether to trigger a retransmission mechanism for the data packet to be received is determined based on whether the data packet to be received is located in the sequence number buffer interval. The method avoids unnecessary data packet retransmission by setting the sequence number buffer interval, thereby saving limited bandwidth resources and ensuring smooth transmission of related data packets.

[0065] As mentioned above, the retransmission control method for out-of-order jitter provided by the present disclosure sets a sequence number buffer interval in the data packet queue. The data packets to be received within the sequence number buffer interval will not trigger the retransmission mechanism, while the data packets to be received outside the sequence number buffer interval will trigger the retransmission mechanism. The length of the sequence number buffer interval is controlled by the out-of-order buffer threshold. It can be seen that the setting of the out-of-order buffer threshold is crucial to the implementation effect of the retransmission control method. Based on this, the present disclosure further provides a mechanism for dynamically updating the out-of-order buffer threshold.

[0066] Figure 3 FIG. 1 is a flow chart of a method for updating a random cache threshold according to an example. Figure 3 As shown, the out-of-order cache threshold updating method may include the following steps.

[0067] In step S310, a first sequence number difference between the first sequence number and a maximum sequence number is determined.

[0068] In an embodiment of the present disclosure, the difference between the first sequence number and the maximum sequence number is calculated according to the first sequence number corresponding to the latest received first data packet to obtain the first sequence number difference. The present disclosure determines the degree of the current disorder according to the sequence number of the latest received data packet, and then dynamically adjusts the disorder cache threshold based on this. If the first sequence number difference is large, it means that the amplitude of the current disorder jitter is large, so the disorder cache threshold needs to be increased. On the contrary, if the first sequence number difference is small, it means that the amplitude of the current disorder jitter is small, and the disorder cache threshold can be reduced or maintained unchanged.

[0069] In an exemplary embodiment, if Figure 7 As shown, the first data packet currently received is data packet 7, and the data packet with the largest sequence number received is data packet 12. Based on this, the first sequence number difference is calculated to be 5.

[0070] In step S320, in response to the first sequence number difference being greater than the out-of-order cache threshold, the out-of-order cache threshold is updated according to the first sequence number difference.

[0071] In the disclosed embodiment, when the first sequence number difference is greater than the current out-of-order cache threshold, it indicates that the current out-of-order jitter amplitude is greater than the current out-of-order cache threshold. Therefore, the out-of-order cache threshold can be updated according to the first sequence number difference, thereby expanding the out-of-order cache threshold to match the current out-of-order jitter degree.

[0072] In an exemplary embodiment, the updating of the out-of-order cache threshold may be to set the first sequence number difference as the out-of-order cache threshold.

[0073] In an exemplary embodiment, the out-of-order buffer threshold is also preset with an out-of-order buffer limit. The out-of-order buffer limit is the upper limit of the out-of-order buffer threshold to prevent the out-of-order buffer threshold from being mistakenly set to be too large, affecting the retransmission triggering of normal data packets. Based on this, the out-of-order buffer threshold is updated, and the smaller value between the first sequence number difference and the preset out-of-order buffer limit can be used as the out-of-order buffer threshold.

[0074] In an exemplary embodiment, if Figure 7 As shown, it is assumed that the current out-of-order buffer threshold is 3. The first data packet currently received is data packet 7, and the data packet with the largest sequence number received is data packet 12. The first sequence number difference is 5, which is greater than the current out-of-order buffer threshold 3. Therefore, the out-of-order buffer threshold is updated to 5 based on the first sequence number difference 5.

[0075] In an exemplary embodiment, in addition to expanding and updating the out-of-order cache threshold based on the first sequence number difference, the present disclosure can also reduce and update the out-of-order cache threshold based on the receipt of a positive sequence data packet. When the first sequence number of the first data packet is greater than the maximum sequence number of the received data packets, that is, the first data packet is a positive sequence data packet, it means that the current out-of-order jitter situation may be improved, so the out-of-order cache threshold can be reduced and updated. For example, the out-of-order cache threshold is reduced by 1 based on the current value. In this way, as more positive sequence data packets are received, the out-of-order cache threshold is gradually reduced until the out-of-order cache threshold is reduced to 0, that is, the out-of-order state is exited.

[0076] The retransmission control method for out-of-order jitter provided by the embodiment of the present disclosure provides a mechanism for dynamically updating the out-of-order cache threshold. When the out-of-order jitter amplitude in the network increases, the out-of-order cache threshold is expanded to match the current out-of-order jitter degree. Conversely, when the out-of-order jitter amplitude in the network decreases, the out-of-order cache threshold is gradually reduced until the out-of-order cache threshold is reduced to 0. By adjusting the out-of-order cache threshold, the size of the sequence number cache interval can be dynamically adjusted to adapt to network changes.

[0077] Figure 4 FIG. 1 is a flow chart of a retransmission determination method according to an example. Figure 4 As shown, the aforementioned step S150 may include the following steps.

[0078] In step S410, it is determined whether the to-be-received data packet is to be retransmitted according to the retransmission probability.

[0079] In the disclosed embodiment, when the data packet to be received is outside the sequence number buffer interval, the retransmission mechanism will not be directly triggered, and whether to trigger the retransmission mechanism is further determined based on the retransmission probability. The retransmission probability is used to determine the probability of triggering the retransmission mechanism when the data packet to be received is outside the sequence number buffer interval. The retransmission probability can be a pre-set fixed value, or it can be a probability value dynamically adjusted based on the actual feedback after the data packet is retransmitted.

[0080] In an exemplary embodiment, the determining whether to retransmit the to-be-received data packet according to the retransmission probability may include the following steps.

[0081] Generate a random number corresponding to the data packet to be received.

[0082] Whether to retransmit the data packet to be received is determined according to the random number and the retransmission probability.

[0083] In the embodiment of the present disclosure, a corresponding random number is independently generated for each data packet to be received outside the sequence number buffer interval. Based on the random number and the retransmission probability, it is determined whether the data packet to be received triggers the retransmission mechanism to determine whether to trigger retransmission. The present disclosure further adds a determination mechanism for whether the data packet to be received is retransmitted through the retransmission probability. By adjusting the retransmission probability, the probability of triggering the retransmission mechanism can be adjusted, thereby providing a further adjustment mechanism for the needs of different application scenarios.

[0084] In step S420, in response to determining that the to-be-received data packet is not to be retransmitted, waiting to receive the to-be-received data packet.

[0085] In the disclosed embodiment, in response to the probability determination mechanism based on step S410 determining that the to-be-received data packet is not to be retransmitted, the waiting for receiving the data packet continues. Based on this mechanism, retransmission of the data packet is further avoided, thereby saving limited bandwidth resources.

[0086] In step S430, in response to determining that the to-be-received data packet is to be retransmitted, an instruction is given to retransmit the to-be-received data packet.

[0087] In the embodiment of the present disclosure, in response to the probability determination mechanism based on step S410 determining that the to-be-received data packet is to be retransmitted, a retransmission mechanism for the to-be-received data packet is triggered, indicating that the data packet is to be retransmitted.

[0088] As mentioned earlier, in Figure 4The retransmission determination method shown introduces a retransmission probability to add a relevant determination mechanism for whether a data packet to be received outside the sequence number buffer interval triggers a retransmission mechanism, thereby further providing an adjustment mechanism. Based on this mechanism, the probability of a data packet triggering a retransmission mechanism can be adjusted by adjusting the retransmission probability. Based on this, the present disclosure further provides a mechanism for dynamically updating the retransmission probability.

[0089] Figure 5 FIG. 1 is a flow chart of a method for updating a retransmission probability according to an example. Figure 5 As shown, the retransmission probability updating method may include the following steps.

[0090] In step S510, the to-be-received data packet is retransmitted in response to the instruction, and a retransmission instruction count is performed.

[0091] In the embodiment of the present disclosure, a first counter is provided. When the to-be-received data packet triggers a retransmission mechanism and is instructed to retransmit, the first counter counts to obtain a retransmission indication count.

[0092] In step S520, in response to the second sequence number of the received second data packet being repeated with the sequence number of the received data packet, repeated transmission counting is performed.

[0093] In the embodiment of the present disclosure, a second counter is provided. When a data packet is repeatedly sent, the second counter counts to obtain a repeated sending count. The data packet is repeatedly sent because the data packet is repeatedly sent because the retransmission mechanism is triggered due to network jitter before it is delivered to the receiving end. This repeated sending situation is what the retransmission control method of the present disclosure tries to avoid. The situation in which the data packet is repeatedly sent can be judged by whether the second sequence number corresponding to the second data packet received is the same as the sequence number of the received data packet. If the sequence number is repeated, it means that the data packet has been received twice, that is, the data packet is repeatedly sent.

[0094] In step S530, the difference between the retransmission indication count and the repeated transmission count is calculated.

[0095] In the disclosed embodiment, the difference between the retransmission indication count and the repeated transmission count is calculated. Since only a portion of the data packets indicated for retransmission involve repeated transmission, the retransmission indication count is greater than the repeated transmission count. Therefore, the difference is the retransmission indication count minus the repeated transmission count.

[0096] In step S540, in response to the difference between the retransmission indication count and the repeated transmission count increasing, it is determined that there is a lost data packet.

[0097] In the disclosed embodiment, if the difference increases, it means that the data packet instructed to be retransmitted is not caused by network jitter, but by real packet loss. Therefore, the current network situation can be determined as the presence of lost data packets. In this case, the retransmission of the triggered data packets should be increased to receive the lost data packets as soon as possible.

[0098] In step S550, in response to the difference between the retransmission indication count and the repeated transmission count decreasing, it is determined that there is a repeated transmission of the data packet.

[0099] In the disclosed embodiment, if the difference decreases, it means that the data packet instructed to be retransmitted is caused by network jitter, not packet loss. Therefore, the current network situation can be determined as repeated transmission of data packets. In this case, the retransmission of the triggered data packet should be reduced to avoid the waste of network resources caused by repeated transmission of data packets.

[0100] In step S560, in response to the existence of lost data packets, the retransmission probability is increased.

[0101] In the disclosed embodiment, when it is determined that there is a lost data packet, the retransmission probability is increased so that more data packets to be received outside the sequence number buffer interval are triggered to trigger the retransmission mechanism, so as to receive the lost data packet as soon as possible.

[0102] In step S570, in response to the existence of repeated transmission of data packets, the retransmission probability is reduced.

[0103] In the disclosed embodiment, when it is determined that a data packet is sent repeatedly, the retransmission probability is reduced so that more data packets to be received outside the sequence number cache interval will not trigger the retransmission mechanism and continue to wait for receiving the data packet, thereby avoiding the waste of network resources caused by repeated sending of data packets.

[0104] In an exemplary embodiment, if the difference remains unchanged, it can be further determined whether the repeated transmission count is increasing. If the repeated transmission count is increasing, it means that although the difference remains unchanged, there are still data packets that are misjudged and retransmitted in the network. Therefore, for this situation, the retransmission probability can be reduced by referring to the situation where there are repeated transmission data packets.

[0105] In an exemplary embodiment, the update strategy of the retransmission probability may be controlled by using the MIMD (Multiple Increase Multiple Decrease) strategy, as shown in the following retransmission probability control formula.

[0106]

[0107] Where P (retransmission) is the retransmission probability, and α and β are probability adjustment coefficients. Where α>1, β<1. When it is determined that there is a lost data packet, the retransmission probability is multiplied by the adjustment coefficient α on the basis of the previous value; when it is determined that there is a repeated transmission of a data packet, the retransmission probability is multiplied by the adjustment coefficient β on the basis of the previous value.

[0108] The retransmission control method for out-of-order jitter provided by the embodiment of the present disclosure further adds a determination mechanism for whether to retransmit a data packet to be received through the retransmission probability. By adjusting the retransmission probability, the probability of triggering the retransmission mechanism can be adjusted, thereby providing a further adjustment mechanism for the needs of different application scenarios. Furthermore, the retransmission probability can be dynamically adjusted according to the network situation to timely adjust the probability of data triggering the retransmission mechanism.

[0109] Since out-of-order jitter can cause packets to arrive out of order and delayed, the statistics of packet loss rate also cause trouble. In the case of out-of-order jitter, the holes in the sequence number cannot be simply determined as packet loss, because this may be caused by packet delay rather than actual loss. Therefore, when facing the challenge of packet loss statistics, it is necessary to determine a reasonable waiting time to obtain an accurate packet loss rate. In response to this problem, the present disclosure further provides a method for calculating packet loss rate for out-of-order jitter.

[0110] Figure 6 The figure is a flow chart of a packet loss rate statistics method according to an example. Figure 7 FIG. 1 is a schematic diagram showing the state of a data packet under an out-of-order jitter condition according to an example. Figure 6 As shown, the packet loss rate statistics method may include the following steps.

[0111] In step S610, a third data packet is determined according to the out-of-order buffer threshold and the received data packets corresponding to the maximum sequence number.

[0112] In the disclosed embodiment, after determining that the current network is out of order, the packet loss rate statistics method of the present embodiment can be triggered. The method utilizes the sequence number cache interval set above to exclude the data packets in the sequence number cache interval from the statistical range of the packet loss rate, and instead performs packet loss rate statistics based on the data packets before the sequence number cache interval. Specifically, a third data packet is determined based on the out of order cache threshold and the received data packets corresponding to the maximum sequence number. The sequence number of the third data packet is obtained based on the maximum sequence number minus the out of order cache threshold. Taking the third data packet as a benchmark, the packet loss rate is counted based on the data packets before the third data packet.

[0113] In an exemplary embodiment, if Figure 7As shown, it is assumed that the current out-of-order buffer threshold is 5. The data packet with the largest sequence number currently received is data packet 12. Based on the maximum sequence number and the out-of-order buffer threshold, the third data packet is determined to be data packet 7. When performing packet loss rate statistics, data packet 7 is used as a benchmark to count the data packets before data packet 7, and data packets 7-12 are excluded from packet loss rate statistics.

[0114] It should be noted that the out-of-order buffer threshold in the packet loss rate statistics can be determined based on any of the above-mentioned methods. The mechanism for determining the out-of-order buffer threshold is not introduced in this embodiment.

[0115] In an exemplary embodiment, the out-of-order buffer threshold used in the aforementioned retransmission determination process may be the same as or different from the out-of-order buffer threshold used in the packet loss rate statistics process in this embodiment. The out-of-order buffer threshold used in the retransmission determination process may be a first out-of-order buffer threshold determined based on any of the aforementioned methods. The out-of-order buffer threshold used in the packet loss rate statistics process may be a second out-of-order buffer threshold determined based on any of the aforementioned methods. In actual application, the out-of-order buffer threshold may be differentiated according to business needs, which should also be within the scope of protection of the present disclosure.

[0116] In step S620, based on the data packets within a preset range before the third data packet, a packet loss rate is statistically generated.

[0117] In the disclosed embodiment, the third data packet is used as a reference to determine the data packets within the preset range before the third data packet. According to the packet loss of the data packets within the determined preset range, the packet loss rate is statistically generated. The statistical calculation method of the packet loss rate is a conventional technical means in the field and will not be repeated here.

[0118] In an exemplary embodiment, the preset range may be a preset time range, for example, a data packet within 1 second before the third data packet.

[0119] In an exemplary embodiment, the preset range may be a preset number of data packets, for example, 100 data packets before the third data packet.

[0120] The retransmission control method for out-of-order jitter provided by the embodiment of the present disclosure further provides a packet loss rate statistics method for out-of-order jitter. The packet loss rate statistics method excludes the data packets in the sequence number buffer interval from the statistical range of the packet loss rate, and performs packet loss rate statistics based on the data packets before the sequence number buffer interval, thereby improving the statistical accuracy of the packet loss rate.

[0121] The following are embodiments of the device disclosed herein, which can be used to execute the method embodiments disclosed herein. For details not disclosed in the device embodiments disclosed herein, please refer to the method embodiments disclosed herein.

[0122] Figure 8 is a block diagram of a retransmission control device for out-of-order jitter according to an exemplary embodiment. Figure 8 The out-of-order jitter retransmission control device 800 may include: a data packet receiving module 810, an out-of-order determination module 820, a sequence number difference module 830 and a retransmission control module 840.

[0123] The data packet receiving module 810 is configured to receive a first data packet; the first data packet corresponds to a first sequence number.

[0124] The out-of-order determination module 820 is configured to determine that out-of-order occurs in response to the first sequence number being smaller than the maximum sequence number of the received data packets.

[0125] The sequence number difference module 830 is configured to determine the sequence number difference between the sequence number of the data packet to be received and the maximum sequence number in response to the disorder.

[0126] The retransmission control module 840 is configured to, in response to the sequence number difference being less than or equal to the out-of-order buffer threshold, wait for receiving the to-be-received data packet; in response to the sequence number difference being greater than the out-of-order buffer threshold, instruct to retransmit the to-be-received data packet.

[0127] In some exemplary embodiments of the present disclosure, the sequence number difference module 830 is further configured to determine a first sequence number difference between the first sequence number and the maximum sequence number; in response to the first sequence number difference being greater than the out-of-order cache threshold, update the out-of-order cache threshold according to the first sequence number difference.

[0128] In some exemplary embodiments of the present disclosure, the sequence number difference module 830 is further configured to use the smaller value between the first sequence number difference and a preset out-of-order cache limit as the out-of-order cache threshold.

[0129] In some exemplary embodiments of the present disclosure, the sequence number difference module 830 is further configured to update the out-of-order buffer threshold in response to the first sequence number being greater than the maximum sequence number of the received data packets.

[0130] In some exemplary embodiments of the present disclosure, the retransmission control module 840 is further configured to determine whether the data packet to be received is to be retransmitted based on the retransmission probability; in response to determining that the data packet to be received is not to be retransmitted, wait to receive the data packet to be received; in response to determining that the data packet to be received is to be retransmitted, instruct to retransmit the data packet to be received.

[0131] In some exemplary embodiments of the present disclosure, the retransmission control module 840 is further configured to generate a random number corresponding to the data packet to be received; and determine whether to retransmit the data packet to be received according to the random number and the retransmission probability.

[0132] In some exemplary embodiments of the present disclosure, the retransmission control module 840 is further configured to reduce the retransmission probability in response to the existence of repeated transmission of data packets; and to increase the retransmission probability in response to the existence of lost data packets.

[0133] In some exemplary embodiments of the present disclosure, the retransmission control module 840 is further configured to perform a retransmission indication count in response to an indication to retransmit the data packet to be received; perform a repeated transmission count in response to the second sequence number of the received second data packet being repeated with the sequence number of the received data packet; and determine whether a data packet is repeatedly transmitted or lost based on the difference between the retransmission indication count and the repeated transmission count.

[0134] In some exemplary embodiments of the present disclosure, the retransmission control module 840 is further configured to determine that there is a lost data packet in response to an increase in the difference between the retransmission indication count and the repeated transmission count; and to determine that there is a repeated transmission of a data packet in response to a decrease in the difference between the retransmission indication count and the repeated transmission count.

[0135] In some exemplary embodiments of the present disclosure, the packet loss rate statistics module is configured to determine a third data packet based on the out-of-order cache threshold and the received data packets corresponding to the maximum sequence number; and to generate a packet loss rate based on data packets within a preset range before the third data packet.

[0136] In some exemplary embodiments of the present disclosure, the preset range is a preset time range or a preset number of data packets.

[0137] Regarding the device in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.

[0138] Refer to the following Fig. 9 hereinafter describes an electronic device 900 according to such an embodiment of the present disclosure. Fig. 9 The electronic device 900 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.

[0139] like Fig. 9As shown, the electronic device 900 is in the form of a general computing device. The components of the electronic device 900 may include, but are not limited to: the at least one processing unit 910, the at least one storage unit 920, a bus 930 connecting different system components (including the storage unit 920 and the processing unit 910), and a display unit 940.

[0140] The storage unit stores program codes, which can be executed by the processing unit 910, so that the processing unit 910 performs the steps according to various exemplary embodiments of the present disclosure described in the above “Exemplary Method” section of this specification. For example, the processing unit 910 can perform the following steps: Figure 2 The steps shown.

[0141] For example, electronic devices can achieve Figure 2 The steps shown.

[0142] The storage unit 920 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 921 and / or a cache memory unit 922 , and may further include a read-only memory unit (ROM) 923 .

[0143] The storage unit 920 may also include a program / utility 924 having a set (at least one) of program modules 925, such program modules 925 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.

[0144] Bus 930 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.

[0145] The electronic device 900 may also communicate with one or more external devices 970 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 900, and / or communicate with any device that enables the electronic device 900 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 950. Furthermore, the electronic device 900 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) via a network adapter 960. As shown, the network adapter 960 communicates with other modules of the electronic device 900 via a bus 930. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 900, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.

[0146] Through the description of the above embodiments, it is easy for those skilled in the art to understand that the example embodiments described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the embodiment of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the embodiment of the present disclosure.

[0147] In an exemplary embodiment, a computer-readable storage medium including instructions is also provided, such as a memory including instructions, and the above instructions can be executed by a processor of the device to complete the above method. Optionally, the computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.

[0148] In an exemplary embodiment, a computer program product is also provided, including a computer program / instruction, and when the computer program / instruction is executed by a processor, the method in the above embodiment is implemented.

[0149] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the following claims.

[0150] It should be understood that the present disclosure is not limited to the exact structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims

1. A retransmission control method for out-of-order jitter, characterized in that: include: Receive a first data packet; the first data packet corresponds to a first sequence number; In response to the first sequence number being less than a maximum sequence number of received data packets, determining that out of order occurs; In response to the disorder occurring, determining a sequence number difference between a sequence number of a data packet to be received and the maximum sequence number; In response to the sequence number difference being less than or equal to the out-of-order buffer threshold, waiting to receive the to-be-received data packet; In response to the sequence number difference being greater than an out-of-order buffer threshold, instructing to retransmit the to-be-received data packet.

2. The method according to claim 1, characterized in that: The method further comprises: determining a first sequence number difference between the first sequence number and a maximum sequence number; In response to the first sequence number difference being greater than the out-of-order cache threshold, the out-of-order cache threshold is updated according to the first sequence number difference.

3. The method according to claim 2, characterized in that The updating of the out-of-order cache threshold according to the first sequence number difference includes: The smaller value between the first sequence number difference and a preset out-of-order cache limit is used as the out-of-order cache threshold.

4. The method according to claim 1, characterized in that: The method further comprises: In response to the first sequence number being greater than a maximum sequence number of received data packets, the out-of-order buffer threshold is updated.

5. The method according to claim 1, characterized in that The instructing to retransmit the data packet to be received includes: Determining whether to retransmit the data packet to be received according to the retransmission probability; In response to determining that the to-be-received data packet is not to be retransmitted, waiting to receive the to-be-received data packet; In response to determining that the to-be-received data packet is to be retransmitted, instructing to retransmit the to-be-received data packet.

6. The method according to claim 5, characterized in that The step of determining whether to retransmit the to-be-received data packet according to the retransmission probability includes: Generate a random number corresponding to the data packet to be received; Whether to retransmit the data packet to be received is determined according to the random number and the retransmission probability.

7. The method according to claim 5, characterized in that The method further comprises: In response to the presence of repeated transmission of data packets, reducing the retransmission probability; In response to the presence of lost data packets, the retransmission probability is increased.

8. The method according to claim 7, characterized in that The method further comprises: Retransmitting the to-be-received data packet in response to the instruction, and counting the retransmission instructions; In response to the second sequence number of the received second data packet being repeated with the sequence number of the received data packet, performing repeated transmission counting; According to the difference between the retransmission indication count and the repeated transmission count, it is determined whether there is a repeated transmission of the data packet or a lost data packet.

9. The method according to claim 8, characterized in that The determining, according to the difference between the retransmission indication count and the repeated transmission count, that there is a repeated transmission of a data packet or a lost data packet comprises: In response to an increase in the difference between the retransmission indication count and the repeated transmission count, determining that there is a lost data packet; In response to a decrease in the difference between the retransmission indication count and the repeated transmission count, it is determined that there is a repeated transmission of the data packet.

10. The method according to claim 1, characterized in that The method further comprises: Determine a third data packet according to the out-of-order buffer threshold and the received data packet corresponding to the maximum sequence number; Based on the data packets within a preset range before the third data packet, a packet loss rate is statistically generated.

11. The method according to claim 10, characterized in that The preset range is a preset time range or a preset number of data packets.

12. A retransmission control device for out-of-order jitter, characterized in that: include: A data packet receiving module is configured to receive a first data packet; the first data packet corresponds to a first sequence number; an out-of-order determination module, configured to determine that out-of-order occurs in response to the first sequence number being less than a maximum sequence number of received data packets; A sequence number difference module is configured to determine a sequence number difference between a sequence number of a data packet to be received and the maximum sequence number in response to the disorder occurring; The retransmission control module is configured to wait for receiving the to-be-received data packet in response to the sequence number difference being less than or equal to the out-of-order buffer threshold; and instruct to retransmit the to-be-received data packet in response to the sequence number difference being greater than the out-of-order buffer threshold.

13. An electronic device, characterized in that: include: processor; a memory for storing instructions executable by the processor; The processor is configured to execute the executable instructions to implement the retransmission control method for out-of-order jitter as described in any one of claims 1 to 11.

14. A computer-readable storage medium, when instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the retransmission control method for out-of-order jitter as claimed in any one of claims 1 to 11.

15. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instruction is executed by a processor, the retransmission control method for out-of-sequence jitter as claimed in any one of claims 1 to 11 is implemented.

Citation Information

Cited By

  • Packet assembling control method of data packet, storage medium and electronic equipment

    CN122027576A