Methods, apparatuses, and computer readable storage media for performing round trip time probes

By using delay gradient judgment and gradually adjusting the congestion window value, the jitter and stuttering problems caused by the BBR algorithm in audio and video data transmission are solved, achieving more stable data transmission and a better user experience.

CN116708241BActive Publication Date: 2026-04-21SHENZHEN INPOR CLOUD COMPUTING CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHENZHEN INPOR CLOUD COMPUTING CO LTD
Filing Date
2023-05-19
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

During audio and video data transmission, existing congestion control algorithms such as BBR cause jitter and stuttering, affecting user experience, and periodic detection is not very efficient.

Method used

The delay gradient judgment mechanism determines whether to perform round-trip time detection, gradually adjusts the congestion window value, tracks round-trip time changes in real time, reduces the detection frequency, and quickly detects the minimum round-trip time.

Benefits of technology

It reduces the probability of jitter and stuttering, improves the stability of audio and video transmission and user experience, and increases detection efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116708241B_ABST
    Figure CN116708241B_ABST
Patent Text Reader

Abstract

This application provides a method, apparatus, and computer-readable storage medium for performing round-trip time (RTT) probing. The method includes: sending a first message; determining a delay gradient of the first message; performing RTT probing when the absolute value of the delay gradient is greater than the first threshold; or determining not to perform RTT probing when the absolute value of the delay gradient is less than or equal to the first threshold. This can avoid jitter or stuttering problems during audio data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing, and more specifically to a method, apparatus, and computer-readable storage medium for performing round-trip time detection. Background Technology

[0002] When transmitting data over a communication network, excessively large data volumes can lead to congestion and data transmission / reception delays, degrading the user experience. Therefore, congestion control algorithms are commonly used to adjust data transmission volumes in real time to avoid congestion and delays. For example, congestion control algorithms based on bottleneck bandwidth and round-trip propagation time (BBR) can be employed. The BBR algorithm includes a Startup connection establishment phase, a Drain parameter emptying phase, a Probe_BW bandwidth probing phase, and a Probe_RTT round-trip time probing phase.

[0003] In some scenarios, such as during audio and video data transmission, there are high requirements for the stability of transmission bandwidth. If the BBR algorithm is used to avoid congestion, jitter may occur during audio and video data transmission, affecting the smoothness of real-time audio and video, and in severe cases, causing audio and video stuttering, thus impacting the user experience. Summary of the Invention

[0004] This application provides a method, apparatus, and computer-readable storage medium for performing round-trip time detection to avoid jitter or stuttering during audio data transmission.

[0005] In a first aspect, a method for performing round-trip time probing is provided, comprising: sending a first message; determining the delay gradient of the first message; performing round-trip time probing when the absolute value of the delay gradient is greater than a first threshold; or determining not to perform round-trip time probing when the absolute value of the delay gradient is less than or equal to the first threshold.

[0006] In traditional round-trip time (RTT) probing, to accurately detect RTT, the sender quickly reduces the number of packets sent to a minimum to ensure uncongested transmission channels and determine the minimum RTT under these conditions. However, minimizing the number of packets can easily cause jitter in the transmitted data, leading to poor user experience such as video latency and stuttering. In this implementation, the need for RTT probing is determined based on the delay gradient. The delay gradient reflects the state of the transmission channel. If the absolute value of the delay gradient is less than a first threshold, the transmission channel is stable, and RTT probing is not required. If the absolute value of the delay gradient is greater than or equal to the first threshold, the transmission channel is unstable, and RTT probing is necessary to adjust the packet sending rate based on the probing results. Therefore, determining the need for RTT probing based on the delay gradient allows for RTT probing to be performed when necessary, reducing the frequency of RTT probing compared to periodic probing, thereby lowering the probability of jitter or stuttering and improving the user experience.

[0007] Optionally, before performing round-trip time probing, the method further includes: determining the round-trip time of a first message; performing round-trip time probing, including: sending a second message, the congestion window value of the second message being less than the congestion window value of the first message; determining the round-trip time of the second message; when the round-trip time of the second message is less than the round-trip time of the first message, sending a third message, the congestion window value of the third message being less than the congestion window value of the second message; determining the round-trip time of the third message; and ending the round-trip time probing when the round-trip time of the second message is greater than or equal to the round-trip time of the first message.

[0008] This embodiment, when performing round-trip time (RTT) detection, progressively reduces the congestion window value for transmitted packets to avoid data jitter caused by directly using the minimum congestion window value. The congestion window value represents the number of packets that have been sent but not yet received, thus limiting the number of packets sent. Specifically, the congestion window value is gradually reduced, and the RTT is obtained for different congestion window values. When the congestion window value decreases but the RTT does not continue to decrease, the current RTT that no longer decreases is the detected minimum RTT. By obtaining the minimum RTT during the gradual reduction of the congestion window value, RTT detection is completed. By not directly specifying the congestion window value, the number of packets sent is guaranteed, avoiding data transmission jitter and video stuttering that would occur if the minimum congestion window value were used to send the fewest packets.

[0009] Optionally, the method further includes sending a third message when the round-trip time of the second message is less than the round-trip time of the first message, including: when the round-trip time of the second message is less than the round-trip time of the first message, and when the number of message transmissions used for round-trip time detection is less than a second threshold, sending a third message.

[0010] In this embodiment, if the round-trip time of the second message is not less than that of the first message, it indicates that the round-trip time of the first message is already the minimum round-trip time. When the round-trip time of the second message is less than that of the first message, it indicates that there is still room for the round-trip time to be reduced, and it cannot be determined that the minimum round-trip time has been reached. Therefore, it is necessary to send a third message to further determine the minimum round-trip time. In addition, a second threshold is set to limit the number of messages sent, constrain the time taken for the round-trip time detection process, and avoid the situation where too many messages are sent, resulting in an excessively long detection time.

[0011] Optionally, the method further includes setting the congestion window value for the message used for round-trip time detection to 4 when the difference between the number of message transmissions and the second threshold is 1.

[0012] In this embodiment, the congestion window value is set to 4, meaning 4 packets are sent. With a congestion window value of 4, the data link will not experience congestion, ensuring that the minimum round-trip time (RTT) can be detected and completed. When the number of packets sent meets the second threshold limit, data transmission is performed directly according to the fixed congestion window value to complete the RTT detection. This limits the number of packets sent for RTT detection, improving the efficiency of minimum RTT detection.

[0013] Optionally, the method further includes setting the second threshold as a value greater than 0.

[0014] In this embodiment, the second threshold can be customized and adjusted according to user needs or uniformly stipulated.

[0015] Optionally, the method further includes the fact that the sending time of the third message is within the cycle time period of the second message, and the cycle time period of the second message is: the period from the sending time of the second message to the receiving time of the response message of the fourth message, wherein the fourth message is the last message sent before the receiving time of the response message of the second message.

[0016] In this embodiment, if a smaller round-trip time is detected during the cycle period of the second message, the third message is sent directly. That is, it is not necessary to wait for the complete execution of the cycle period of the second message, and the third message can be sent in a timely manner, which can improve the efficiency of round-trip time detection.

[0017] Optionally, when the absolute value of the delay gradient is greater than a first threshold, round-trip time detection is performed, including: when the absolute value of the delay gradient is greater than the first threshold, and when no smaller round-trip time has been detected in the recent period, round-trip time detection is performed.

[0018] This embodiment adds a condition for determining whether to perform round-trip time (RTT) probing, further reducing the probability of falsely entering the RTT probing state. If a smaller RTT is detected in the recent past, it indicates that the minimum RTT delay under the current conditions has not been reached, such as the minimum RTT under the current congestion window value. Therefore, it is not necessary to change the congestion window value or other conditions to perform RTT probing. This further reduces the frequency of RTT probing, ensuring data transmission quality and the user's audio and video streaming experience.

[0019] Optionally, the method further includes the following: the absolute value of the delay gradient is the average of the absolute values ​​of multiple sub-delay gradients, the absolute values ​​of the multiple sub-delay gradients are less than M times the absolute value of the historical delay gradient, and the absolute values ​​of the multiple sub-delay gradients are greater than N times the absolute value of the historical delay gradient, where M is a value greater than 1 and N is a value greater than 0 and less than 1.

[0020] In this embodiment, error values ​​are filtered out during the calculation of the absolute value of the delay gradient to reduce the impact of random noise and ensure the accuracy of the calculation.

[0021] In a second aspect, an apparatus for performing round-trip time detection is provided, including a unit for performing any of the methods in the first aspect. The apparatus may be a terminal device or a chip within a terminal device. The apparatus may include an input unit and a processing unit.

[0022] When the device is a terminal device, the processing unit may be a processor, and the input unit may be a signal transceiver or other input device; the terminal device may also include a memory for storing computer program code, which, when the processor executes the computer program code stored in the memory, causes the terminal device to perform any of the methods in the first aspect.

[0023] When the device is a chip within a terminal device, the processing unit can be an internal processing unit of the chip, and the input unit can be an input / output interface, pin, or circuit, etc.; the chip may also include a memory, which can be an internal memory of the chip (e.g., registers, cache, etc.) or an external memory (e.g., read-only memory, random access memory, etc.); the memory is used to store computer program code, and when the processor executes the computer program code stored in the memory, the chip performs any of the methods in the first aspect.

[0024] Thirdly, a computer-readable storage medium is provided that stores computer program code, which, when executed by a means of round-trip time probing, causes the means to perform any of the methods in the first aspect. Attached Figure Description

[0025] Figure 1 This is a schematic diagram of the method for performing round-trip time probing provided in this application;

[0026] Figure 2 This is a schematic diagram of an embodiment of the round-trip time probing provided in this application. Figure 1 ;

[0027] Figure 3 This is a schematic diagram of an embodiment of the round-trip time probing provided in this application. Figure 2 ;

[0028] Figure 4 This is a schematic diagram of an embodiment of the round-trip time probing provided in this application. Figure 3 ;

[0029] Figure 5 This is a schematic diagram of an embodiment of the round-trip time probing provided in this application. Figure 4 ;

[0030] Figure 6 This is a schematic diagram of the cyclic period for performing round-trip time probing provided in this application;

[0031] Figure 7 This is a schematic diagram of the apparatus for performing round-trip time detection provided in this application;

[0032] Figure 8 This is a schematic diagram of the electronic device for performing round-trip time detection provided in this application. Detailed Implementation

[0033] The technical solutions in this application will now be described with reference to the accompanying drawings.

[0034] When transmitting data over a communication network, excessively large data volumes can cause congestion and data transmission / reception delays, negatively impacting user experience. Therefore, congestion control algorithms are typically employed to adjust data transmission volumes in real time, preventing congestion and delays. For example, congestion control algorithms based on bottleneck bandwidth and round-trip propagation time (BBR) can be used.

[0035] The BBR algorithm comprises four phases: Startup, Drain, Probe_BW, and Probe_RTT. The Startup phase establishes the connection by rapidly increasing the message volume, filling the communication channel. Once the channel is full, it further occupies the buffer. The Drain phase clears parameters by reducing the message volume, facilitating data transmission from the buffer and gradually emptying it. After Startup and Drain, the algorithm enters a stable state. In the stable state, Probe_BW and Probe_RTT are executed alternately. The Probe_BW phase probes the maximum bandwidth of the current transmission channel, while the Probe_RTT phase probes the minimum round-trip time. Data in the current transmission channel is transmitted according to the probed maximum bandwidth and minimum round-trip time, achieving optimal transmission performance without channel congestion. The Probe_BW and Probe_RTT phases are executed periodically, with parameters adjusted dynamically based on the real-time changes in the transmission channel.

[0036] Specifically, during the Probe_RTT phase, when probing the minimum round-trip time, only a minimum number of packets are typically sent according to the minimum congestion window value. This is to ensure that the round-trip time probing is performed without congestion on the transmission channel, avoiding delays caused by packet queuing, and thus obtaining the minimum round-trip time RTprop.

[0037] RTprop represents the physical latency of the link. The Round-Trip Time (RTT) includes the queuing time of packets in the router queue and the delayed acknowledgment time of the acknowledgment character (ACK). Delayed acknowledgment refers to the fact that each TCP packet must be acknowledged. Acknowledgment is achieved by the receiving end sending an ACK packet. However, since the TCP and IP headers are 40 bytes long, sending an ACK without carrying data would lead to extremely low network efficiency. Therefore, independent ACK packets wait for a certain period before returning with other data that needs to be fed back to the sending end, or multiple ACKs are sent together. This delay is called the delayed acknowledgment time. The relationship between RTT and RTprop can be expressed by the following formula: RTT = RTprop + η, where η includes the queuing time of packets in the router queue and the delayed acknowledgment time of the acknowledgment character (ACK).

[0038] However, in order to detect the minimum round-trip time, the BBR algorithm drastically reduces the number of packets to a minimum during the Probe_RTT phase. This causes a sharp drop in data transmission volume within a short period, leading to latency and jitter in audio and video data transmission, affecting the smoothness of real-time audio and video, and in severe cases, potentially causing audio and video stuttering, thus impacting user experience. Furthermore, the probability of link switching during transmission is low, making this periodic probing inefficient for tracking path changes. In particular, if data transmission is stable, this periodic execution of round-trip time probing does not bring any additional benefits and may even have significant negative impacts.

[0039] Below, we will combine Figure 1 The method 100 for performing round-trip time probing provided in this application is described in detail.

[0040] It should be noted that in this application, terms such as "first" and "second" are used to distinguish different individuals within the same type of object. For example, "first message" and "second message" refer to two different messages, and there are no other limitations.

[0041] Method 100 can be derived from Figure 7 The device shown performs round-trip time detection. Figure 1 As shown, method 100 includes the following.

[0042] S110, send the first message. The first message can be a collection of multiple sub-messages.

[0043] Specifically, the first message can be sent during non-Probe_RTT periods, such as the Probe_BW phase. That is, the first message is sent while probing the maximum bandwidth to determine whether round-trip time probing needs to be performed.

[0044] In one example, this solution is applied to the audio and video transmission process. Therefore, maximum bandwidth detection, round-trip time detection, etc., all use in-band detection mode. That is, the audio and video data that originally need to be transmitted is used as the message for detection to complete the detection. No other detection data is needed, which reduces the detection complexity and ensures transmission efficiency.

[0045] S120, Determine the delay gradient of the first message. As described above, the first message may include multiple sub-messages. Determining the delay gradient of the first message may include determining the transmission time and reception time of each sub-message in the first message, calculating the transmission time difference and reception time difference of the sub-messages, and further obtaining the delay gradient.

[0046] Specifically, if the first message includes sub-messages A, B, C, and D, and is transmitted from the sending end to the receiving end, such as... Figure 2As shown, the transmission time difference between sub-message A and sub-message B is Δt1, and the reception time difference between sub-message A and sub-message B is ΔT1. Therefore, the sub-delay gradients delay_gradient_1 corresponding to sub-message A and sub-message B can be obtained using the formula delay_gradient_1 = ΔT1 - Δt1. Furthermore, the values ​​of other sub-delay gradients can be obtained using the following formula:

[0047] delay_gradient_2=△T2-△t2;

[0048] delay_gradient_3=△T3-△t3;

[0049] Where △t2 is the transmission time difference between sub-message B and sub-message C, △T2 is the reception time difference between sub-message B and sub-message C, and delay_gradient_2 is the corresponding sub-delay gradient; △t3 is the transmission time difference between sub-message C and sub-message D, △T3 is the reception time difference between sub-message C and sub-message D, and delay_gradient_3 is the corresponding sub-delay gradient.

[0050] Finally, the delay gradient of the first message is calculated based on the above sub-delay gradient. It should be understood that this step does not limit the specific process of calculating the delay gradient through the sub-delay gradient.

[0051] S130, determine whether the absolute value of the delayed gradient is greater than the first threshold. If the absolute value of the delayed gradient is greater than the first threshold, proceed to step S140; if the absolute value of the delayed gradient is less than or equal to the first threshold, proceed to step S150.

[0052] S140, performs round-trip time detection;

[0053] S150, determine not to perform round-trip time detection.

[0054] Specifically, when the absolute value of the delay gradient is greater than the first threshold, it indicates that the round-trip time is unstable in the current state, reflecting that the current transmission channel is congested, and therefore the round-trip time needs to be re-probeed.

[0055] Specifically, a delay gradient whose absolute value is greater than the first threshold includes both negative values ​​where the delay gradient is greater than the first threshold and negative values ​​where the delay gradient is less than the first threshold. For a delay gradient greater than the first threshold, refer to... Figure 2 The increased transmission delay of message B leads to a larger difference between the reception time difference and the transmission time difference between messages A and B, and the calculated delay gradient will be greater than the first threshold.

[0056] The delay gradient is less than the negative value of the first threshold, for example, if the current transmission channel is congested. Figure 2As shown, during the transmission of message C, the transmission channel is congested, resulting in a longer delay between the sending and receiving times. During the transmission of message D, the congestion is slightly alleviated, leading to a shorter delay between the sending and receiving times. Therefore, the receiving time difference between messages C and D is less than the sending time difference, resulting in a negative delay gradient, which can cause the delay to be significantly greater than the first threshold. Alternatively, as... Figure 3 As shown, after messages E, F, and G are sent from the sender, they all become congested at point L of the transmission channel. If transmission is allowed at a certain moment (e.g., when it's their turn in the queue or the congestion eases slightly), then all messages at point L will quickly reach the receiver. This results in extremely short reception time differences between different messages, leading to situations where the delay gradient becomes negative. In this case, the delay gradient is likely to be less than the negative value of the first threshold, and the absolute value of the delay gradient will be greater than the first threshold.

[0057] Therefore, when the absolute value of the delay gradient is greater than the first threshold, it is necessary to re-probe the minimum round-trip time and transmit data according to the probed round-trip time to alleviate congestion in the transmission channel and ensure data transmission quality. When the absolute value of the delay gradient is not greater than the first threshold, the transmission channel is considered stable and there is currently no congestion. Therefore, it is not necessary to perform a round-trip time probing phase to adjust transmission parameters and reduce the frequency of bandwidth changes.

[0058] The first threshold can be set to 0.

[0059] Optionally, when the absolute value of the delay gradient is greater than a first threshold, round-trip time detection is performed, including: when the absolute value of the delay gradient is greater than the first threshold, and when no smaller round-trip time has been detected in the recent period, round-trip time detection is performed.

[0060] In this embodiment, a condition for performing round-trip time (RTT) probing is added, which further reduces the probability of falsely entering the RTT probing state. If a smaller RTT is detected in the recent period, it indicates that the minimum RTT delay under the current conditions has not been reached, such as the minimum RTT under the current congestion window value. Therefore, it is not necessary to change the congestion window value or other conditions to perform RTT probing. This further reduces the frequency of RTT probing, reduces the number of bandwidth changes, and ensures data transmission quality and the user's audio and video streaming experience.

[0061] Specifically, the most recent period is, for example, 10 seconds. In addition to calculating the delay gradient of the first message, the round-trip time of the first message is also calculated. Every 10 seconds, if the round-trip time does not become smaller and the absolute value of the delay gradient is greater than a first threshold, the round-trip time detection phase is entered to track changes in the connection path in the transmission channel or to actively give up bandwidth.

[0062] Optionally, the absolute value of the delay gradient is the average of the absolute values ​​of multiple sub-delay gradients, the absolute values ​​of the multiple sub-delay gradients are less than M times the absolute value of the historical delay gradient, and the absolute values ​​of the multiple sub-delay gradients are greater than N times the absolute value of the historical delay gradient, where M is a value greater than 1 and N is a value greater than 0 and less than 1.

[0063] In this embodiment, error values ​​are filtered out during the calculation of the absolute value of the delay gradient to reduce the impact of random noise and ensure the accuracy of the calculation.

[0064] In one example, M can be set to 8, and N can be set to 1 / 8. Specifically, a certain number of sub-delay gradient values ​​are stored to calculate the mean delay gradient. To reduce the influence of random noise, abnormal sub-delay gradient values ​​with absolute values ​​greater than 8 times or less than 1 / 8 of the historical delay gradient are removed. The historical delay gradient can be the previously calculated delay gradient value, the average of multiple delay gradients, or a fixed input value, etc. Furthermore, the parameters involved in the calculation can also be intermediate values ​​of historical delay gradients; for example, abnormal sub-delay gradient values ​​with absolute values ​​greater than 8 times or less than 1 / 8 of the intermediate historical delay gradient are removed.

[0065] mean_delay_gradient=(delay_gradient_1+...+delay_gradient_n) / n;

[0066] Where delay_gradient_1, ..., delay_gradient_n are the absolute values ​​of each sub-delay gradient, and n is the total number of sub-delay gradients used for calculation.

[0067] In addition, to improve the practicality of delayed gradient decision-making, the first threshold supports increasing the tolerance value according to the actual situation. The value of this tolerance value can be determined based on experimental data and empirical values.

[0068] Optionally, before performing round-trip time probing, the method further includes: determining the round-trip time of a first message; performing round-trip time probing, including: sending a second message, the congestion window value of the second message being less than the congestion window value of the first message; determining the round-trip time of the second message; when the round-trip time of the second message is less than the round-trip time of the first message, sending a third message, the congestion window value of the third message being less than the congestion window value of the second message; determining the round-trip time of the third message; and ending the round-trip time probing when the round-trip time of the second message is greater than or equal to the round-trip time of the first message.

[0069] This embodiment, when performing round-trip time (RTT) detection, progressively reduces the congestion window value for transmitted packets to avoid data jitter caused by directly using the minimum congestion window value. The congestion window value can limit the number of packets transmitted. Specifically, the congestion window value is gradually reduced, and the RRT under different congestion window values ​​is obtained. When the congestion window value decreases but the RRT does not continue to decrease, the current RRT that no longer decreases is the detected minimum RRT. By obtaining the minimum RRT during the gradual reduction of the congestion window value, without directly specifying the congestion window value, the number of packets transmitted is guaranteed, avoiding data transmission jitter and video stuttering that would occur if the minimum congestion window value were used to send the fewest packets.

[0070] Specifically, the congestion window value of the second message is smaller than that of the first message. For example, the congestion window value of the second message may be half, one-third, or one-quarter of the congestion window value of the first message, or the congestion window of the second message may be smaller than a fixed value of the congestion window of the first message. It is understood that this scheme does not limit the specific reduction conditions.

[0071] Taking the congestion window of the second message as half the congestion window of the first message as an example, Figure 4 As shown, CWND stands for congestion window. Using this method, it is expected that the minimum round-trip time (RTprop) of the link can be detected under a relatively ideal CWND, reducing the impact on real-time transmission bandwidth. For example... Figure 4 As shown, if a smaller round-trip time is detected in the second message but not in the third message, the round-trip time detection phase ends.

[0072] Optionally, the third message is sent within the cycle time of the second message. The cycle time of the second message is the period from the time the second message is sent until the time the response message of the fourth message is received. The fourth message is the last message sent before the time the response message of the second message is received.

[0073] In this embodiment, the first message, second message, and third message can each be a set of multiple sub-messages. Therefore, at any time after the second message is sent, if a smaller round-trip time is detected for any of the sub-messages, the third message can be sent directly without waiting for all the sub-messages to be detected during the second message's cycle time to complete the detection process. Figure 5 As shown by the dashed line, if both the second and third messages can quickly detect a smaller round-trip time, they will immediately send the next message with a reduced congestion window value. In this case, the third message will be sent within the cycle time of the second message.

[0074] For example, the cycle time of the second and third messages is as follows: Figure 6 As shown, sub-messages 1 and 2 are, for example, messages from the first message during the non-round-trip time probing phase. It is understandable that... Figure 6 Neutron messages 1-16 are only used as examples to illustrate the operational principle and do not represent any limitation on the number of messages, congestion window value, or characteristics of each cycle period.

[0075] For the message cycle time, in one example, the congestion window values ​​for each message are different. When determining whether to send a third message, only the round-trip time of the sub-messages between the sending time of the second message and the sending time of the fourth message is counted. That is, the sub-messages that are sent and received within the cycle time of the second message, for example... Figure 6 Neutron message 5 is the fourth message, meaning that only the round-trip times of sub-messages 3, 4, and 5 are counted within the cycle time of the second message; sub-messages sent between the time the fourth message is sent and the time the fourth message is received are not counted. Figure 6 Neutron messages 6, 7, and 8 are not included in the round-trip time calculation.

[0076] Specifically, since sub-messages 6, 7, and 8 are sent based on the congestion window value of the second message, and the transmission channel is under the congestion window value of the third message during reception, the calculated round-trip time is affected by different congestion window values ​​(e.g., the transmission channel is congested during transmission, but the congestion is alleviated during reception due to the reduced congestion window value). The resulting message characteristics are uncontrollable. Including the round-trip times of sub-messages 6, 7, and 8 in the judgment process increases computational complexity and is prone to errors. Meanwhile, omitting this type of data does not affect the accuracy of the final result. For example, due to the reduction in the congestion window value, the round-trip times of sub-messages 6, 7, and 8 are usually not less than those of sub-messages 9, 10, 11, and 12, but calculating the round-trip times of sub-messages 6, 7, and 8 reduces the computation speed and affects user experience. Therefore, they are not used as judgment parameters.

[0077] In one example, if the round-trip time measured by sub-message 3 is less than that of the first message, the third message is allowed to be sent immediately. That is, message 6 is a sub-message of the third message with a reduced congestion window value. In other words, the sending time of the third message is within the cycle period of the second message, thus optimizing the round-trip time detection procedure and improving detection efficiency.

[0078] Furthermore, when the round-trip time of sub-messages 9, 10, 11, and 12 is less than the round-trip time of sub-messages 3, 4, and 5, the next message with a reduced congestion window value is sent, entering the next message's cycle period. That is, the congestion window value decreases starting from message 16, and the round-trip time of sub-messages 13, 14, and 15 is not calculated. This process continues until the round-trip time of a sub-message in the current message is not less than the round-trip time of a sub-message in the previous message, i.e., the minimum round-trip time has been obtained, ending the round-trip time detection phase.

[0079] Optionally, when the round-trip time of the second message is less than the round-trip time of the first message, a third message is sent, including: when the round-trip time of the second message is less than the round-trip time of the first message, and when the number of message transmissions used for round-trip time detection is less than a second threshold, a third message is sent.

[0080] In this embodiment, if the round-trip time of the second message is not less than that of the first message, it indicates that the round-trip time of the first message is already the minimum round-trip time. When the round-trip time of the second message is less than that of the first message, it indicates that there is still room for the round-trip time to be reduced, and it cannot be determined that the minimum round-trip time has been reached. Therefore, it is necessary to send a third message to further determine the minimum round-trip time. In addition, a second threshold is set to limit the number of messages sent, constrain the time of the detection process, and avoid the situation where too many messages are sent, resulting in an excessively long detection time.

[0081] Optionally, when the difference between the number of message transmissions and the second threshold is 1, the congestion window value for the message used for round-trip time detection is 4.

[0082] In this embodiment, the congestion window value is set to 4, meaning 4 packets are sent. With a congestion window value of 4, the data link will not experience congestion, ensuring that the minimum round-trip time can be detected. When the number of packets sent reaches the second threshold, data transmission is performed directly according to the fixed congestion window value to complete the round-trip time detection. This limits the number of packets sent for round-trip time detection, improving the efficiency of minimum round-trip time detection.

[0083] In one embodiment, using this search method can further accelerate the detection of minimum round-trip time (CRT), thereby shortening the CRT detection state time and contributing to the stability of transmission bandwidth. To avoid requiring many rounds to complete the detection in extreme cases, which would lead to excessively long CRT detection time and affect transmission bandwidth, a second threshold of 4 can be set. If the minimum CRT cannot be detected after a 3-message cycle, the detection time (cwnd) is directly reduced to 4 messages in the next cycle.

[0084] Optionally, the second threshold is a value greater than 0.

[0085] In this embodiment, the second threshold can be customized and adjusted according to user needs or uniformly stipulated.

[0086] In this application, audio and video data transmission is a real-time data communication process, which places high demands on transmission stability. Parameters such as the bandwidth of the transmission channel can easily affect audio and video quality. BBR is an advanced and efficient congestion control algorithm, but it is designed as a general TCP congestion control algorithm, considering the characteristics and requirements of general data transmission. Applying it to a real-time audio and video transmission system will not achieve ideal results. In this application, on the one hand, a delay gradient judgment mechanism is introduced, which determines whether to enter the round-trip time probing state based on the state of the delay gradient, replacing the periodic round-trip time probing mechanism of BBR, reducing the probing frequency, and stabilizing the transmission bandwidth. On the other hand, in the round-trip time probing state, a method of gradually changing the congestion window value is adopted. By tracking the change trend of the round-trip time in real time, the minimum round-trip time is quickly detected and the probe_RTT state is exited in a timely manner, replacing the BBR method of drastically reducing the congestion window size (cwnd) to 4 packets, effectively improving the stability of real-time audio and video transmission and ensuring a good audio and video user experience.

[0087] The foregoing has detailed examples of methods for performing round-trip time probing provided in this application. It is understood that the corresponding apparatus, in order to achieve the above functions, includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, based on the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0088] This application can divide the apparatus for performing round-trip time detection into functional units based on the above method example. For example, each function can be divided into its own functional unit, or two or more functions can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. It should be noted that the unit division in this application is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.

[0089] Figure 7 This is a schematic diagram of a device for performing round-trip time detection provided in this application. The device 700 includes a processing unit 710 and an input unit 720, wherein the input unit 720 can perform the acquisition step under the control of the processing unit 710.

[0090] Input unit 720 is used to: send the first message;

[0091] The processing unit 710 is configured to: determine the delay gradient of the first message; perform round-trip time probing when the absolute value of the delay gradient is greater than a first threshold; or, determine not to perform round-trip time probing when the absolute value of the delay gradient is less than or equal to the first threshold.

[0092] Optionally, before performing round-trip time probing, the method further includes: determining the round-trip time of the first message; performing round-trip time probing includes: sending a second message, the congestion window value of the second message being less than the congestion window value of the first message; determining the round-trip time of the second message; when the round-trip time of the second message is less than the round-trip time of the first message, sending a third message, the congestion window value of the third message being less than the congestion window value of the second message; determining the round-trip time of the third message; and ending the round-trip time probing when the round-trip time of the second message is greater than or equal to the round-trip time of the first message.

[0093] Optionally, the processing unit 710 is further configured to send a third message when the round-trip time of the second message is less than the round-trip time of the first message, including: when the round-trip time of the second message is less than the round-trip time of the first message, and when the number of message transmissions used for round-trip time detection is less than a second threshold, the third message is sent.

[0094] Optionally, when the difference between the number of message transmissions and the second threshold is 1, the congestion window value for the message used for round-trip time detection is 4.

[0095] Optionally, the second threshold is a value greater than 0.

[0096] Optionally, the sending time of the third message is within the cyclic period of the second message, and the cyclic period of the second message is: the period from the sending time of the second message to the receiving time of the response message of the fourth message, wherein the fourth message is the last message sent before the receiving time of the response message of the second message.

[0097] Optionally, the step of performing round-trip time detection when the absolute value of the delay gradient is greater than the first threshold includes: performing round-trip time detection when the absolute value of the delay gradient is greater than the first threshold, and when no smaller round-trip time has been detected in the recent period.

[0098] Optionally, the absolute value of the delay gradient is the average of the absolute values ​​of multiple sub-delay gradients, the absolute values ​​of the multiple sub-delay gradients are less than M times the absolute value of the historical delay gradient, and the absolute values ​​of the multiple sub-delay gradients are greater than N times the absolute value of the historical delay gradient, wherein M is a value greater than 1, and N is a value greater than 0 and less than 1.

[0099] The specific method by which the device 700 performs round-trip time detection and the beneficial effects thereof can be found in the relevant description in the method embodiments.

[0100] Figure 8 A schematic diagram of the structure of an electronic device for performing round-trip time detection provided in this application is shown. Figure 8 The dashed lines indicate that the unit or module is optional. Device 800 can be used to implement the methods described in the above method embodiments. Device 800 can be a terminal device, a server, or a chip.

[0101] The device 800 includes one or more processors 801 that can support the implementation of the methods in the method embodiments. The processor 801 can be a general-purpose processor or a special-purpose processor. For example, the processor 801 can be a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices such as discrete gates, transistor logic devices, or discrete hardware components.

[0102] The processor 801 can be used to control the device 800, execute software programs, and process data from the software programs. The device 800 may also include a communication unit 805 for inputting (receiving) and outputting (transmitting) signals.

[0103] For example, device 800 may be a chip, communication unit 805 may be the input and / or output circuit of the chip, or communication unit 805 may be the communication interface of the chip, which may be a component of terminal equipment, server or other electronic equipment.

[0104] For example, device 800 may be a terminal device or a server, and communication unit 805 may be a transceiver of the terminal device or the server, or communication unit 805 may be a transceiver circuit of the terminal device or the server.

[0105] The device 800 may include one or more memories 802, on which a program 804 is stored. The program 804 can be executed by a processor 801 to generate instructions 803, causing the processor 801 to execute the method described in the above method embodiments according to the instructions 803. Optionally, the memory 802 may also store data. Optionally, the processor 801 may also read data stored in the memory 802, which may be stored at the same memory address as the program 804, or it may be stored at a different memory address than the program 804.

[0106] The processor 801 and memory 802 can be configured separately or integrated together, for example, integrated on the system-on-chip (SOC) of the terminal device.

[0107] This application also provides a computer program product that, when executed by processor 801, implements the methods described in any of the method embodiments of this application.

[0108] The computer program product can be stored in memory 802, for example, program 804. Program 804 is finally converted into an executable object file that can be executed by processor 801 after processing such as preprocessing, compilation, assembly and linking.

[0109] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a computer, implements the methods described in any of the method embodiments of this application. The computer program may be a high-level language program or an executable object program.

[0110] The computer-readable storage medium is, for example, memory 802. Memory 802 can be volatile memory or non-volatile memory, or memory 802 can include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0111] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process and technical effects of the above-described apparatus and equipment can be referred to the corresponding processes and technical effects in the foregoing method embodiments, and will not be repeated here.

[0112] In the several embodiments provided in this application, the systems, apparatuses, and methods disclosed can be implemented in other ways. For example, some features of the method embodiments described above can be omitted or not performed. The apparatus embodiments described above are merely illustrative; the division of units is only a logical functional division, and in actual implementation, there may be other division methods. Multiple units or components can be combined or integrated into another system. Furthermore, the coupling between units or components can be direct coupling or indirect coupling, including electrical, mechanical, or other forms of connection.

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

[0114] Furthermore, the terms "system" and "network" are often used interchangeably in this paper. The term "and / or" in this paper merely describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Additionally, the character " / " in this paper generally indicates that the preceding and following related objects have an "or" relationship.

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

Claims

1. A method for performing round-trip time detection, characterized in that, include: Send the first message; Determine the delay gradient of the first message; When the absolute value of the delay gradient is greater than the first threshold, round-trip time detection is performed; or, When the absolute value of the delay gradient is less than or equal to the first threshold, it is determined that round-trip time probing will not be performed. Before performing round-trip time probing, the method further includes: Determine the round-trip time of the first message; The execution of round-trip time detection includes: Send a second message, the congestion window value of which is smaller than that of the first message; Determine the round-trip time of the second message; When the round-trip time of the second message is less than the round-trip time of the first message, a third message is sent, wherein the congestion window value of the third message is less than the congestion window value of the second message. Determine the round-trip time of the third message; The round-trip time detection ends when the round-trip time of the third message is not less than the round-trip time of the second message. The round-trip time detection ends when the round-trip time of the second message is greater than or equal to the round-trip time of the first message. The first message, the second message, and the third message are each a collection of multiple sub-messages.

2. The method according to claim 1, characterized in that, When the round-trip time of the second message is less than the round-trip time of the first message, sending the third message includes: The third message is sent when the round-trip time of the second message is less than that of the first message, and when the number of message transmissions used for round-trip time detection is less than a second threshold.

3. The method according to claim 2, characterized in that, When the difference between the number of message transmissions and the second threshold is 1, the congestion window value for the message used for round-trip time detection is 4.

4. The method according to claim 2 or 3, characterized in that, The second threshold is a value greater than 0.

5. The method according to any one of claims 1 to 3, characterized in that, The third message is sent within the cycle time of the second message. The cycle time of the second message is the period from the time the second message is sent until the time the response message of the fourth message is received. The fourth message is the last message sent before the time the response message of the second message is received.

6. The method according to any one of claims 1 to 3, characterized in that, When the absolute value of the delay gradient is greater than a first threshold, round-trip time detection is performed, including: Round-trip time detection is performed when the absolute value of the delay gradient is greater than the first threshold, and when no smaller round-trip time has been detected in the recent period.

7. The method according to any one of claims 1 to 3, characterized in that, The absolute value of the delay gradient is the average of the absolute values ​​of multiple sub-delay gradients. The absolute values ​​of the multiple sub-delay gradients are less than M times the absolute value of the historical delay gradient, and the absolute values ​​of the multiple sub-delay gradients are greater than N times the absolute value of the historical delay gradient, where M is a value greater than 1 and N is a value greater than 0 and less than 1.

8. An apparatus for performing round-trip time detection, characterized in that, The device includes a processor and a memory coupled together, the memory being used to store a computer program that, when executed by the processor, causes the device to perform the method of any one of claims 1 to 7.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, causes the processor to perform the method of any one of claims 1 to 7.

Citation Information

Patent Citations

  • Transmission control method for time delay differentiation in high-dynamic topological satellite network

    CN113014505A