Data transmission control method, device, equipment, medium and computer program product
In the data transmission control method, using network quality information to estimate the available cache on the network and adjust the size of the transmission window, the problem of low real-time data transmission in the prior art is solved, and the rapid transmission of high real-time data and the improvement of service experience at the receiving end are achieved.
Patent Information
- Application Number
- CN202410175783.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-02-07
- Publication Date
- 2025-08-08
AI Technical Summary
The prior art cannot correctly perceive the reception needs of the receiver, resulting in low real-time data transmission, affecting the service experience of the receiver.
In the current detection cycle, if the data to be sent is detected to be of high real-time category, the network quality information of the previous detection cycle, including the maximum available bandwidth and round trip delay, estimate the available cache of the network, and adjust the sending window size according to the estimated cache to ensure the rapid transmission of high real-time data.
It improves the real-time nature of data transmission, improves the service experience at the receiver, and ensures the rapid transmission of high-reality data.
Smart Images

Figure CN120455388A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a data transmission control method, apparatus, computer equipment, storage medium, and computer program product. Background Art
[0002] With the rapid development of computer and internet technologies, data transmission is no longer limited to text messages. It can also transmit other forms of information, such as audio, video, and images, greatly facilitating our daily lives and work. At the same time, the amount of data being transmitted is also increasing, placing a significant burden on the network, easily causing congestion and reducing transmission efficiency.
[0003] To this end, related technologies typically utilize congestion control algorithms and optimized transmission protocols to control data transmission and avoid network congestion during data transmission. However, these technologies fail to accurately perceive the data receiving needs of the receiving end, which can easily lead to the receiving end being unable to obtain data in a timely manner and perform corresponding business processing. This results in low real-time data transmission and affects the receiving end's business experience. Summary of the Invention
[0004] Based on this, it is necessary to provide a data transmission control method, device, computer equipment, computer-readable storage medium and computer program product that can improve the real-time performance of data transmission and improve the service experience in response to the above technical problems.
[0005] In a first aspect, the present application provides a data transmission control method. The method comprises:
[0006] In the current detection cycle, if the real-time category of the data to be sent is detected as high real-time category, then
[0007] Reading network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle, wherein the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network;
[0008] estimating the network available cache corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle;
[0009] The sending window size corresponding to the current detection period is determined according to the estimated network available buffer, and the to-be-sent data is sent to the receiving end according to the sending window size.
[0010] In a second aspect, the present application further provides a data transmission control device. The device comprises:
[0011] A network quality information reading module is configured to read network quality information of the transmission network between the receiving end and the transmitting end detected in the previous detection cycle if the real-time category of the data to be transmitted is detected as high real-time category during the current detection cycle, wherein the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network;
[0012] A network available cache estimation module is used to estimate the network available cache corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle;
[0013] The data sending module is used to determine the sending window size corresponding to the current detection period according to the estimated network available buffer, and send the to-be-sent data to the receiving end according to the sending window size.
[0014] In some embodiments, the data sending module is also used to determine the sending window size under congestion control if it is detected in the current detection cycle that the real-time category of the data to be sent is a low real-time category, and send the data to be sent to the receiving end according to the sending window size.
[0015] In some embodiments, the device also includes a transmission network detection module, which is used to perform multiple transmission network detections with the receiving end within the current detection cycle to obtain network quality information of the transmission network between the receiving end, and the network quality information is used to estimate the network available cache corresponding to the next detection cycle after the current detection cycle.
[0016] In some embodiments, the device also includes a cache status determination module, which is used to determine the cache status of the player cache of the receiving end based on the reception confirmation message returned by the receiving end. The cache status is used to indicate the size of the data in the player cache. When the amount of data in the player cache is less than a preset threshold, the cache status is a first state. When the amount of data in the player cache is equal to or greater than the preset threshold, the cache status is a second state. If the cache status is the first state, it is determined that the real-time category of the data to be sent is a high real-time category; if the cache status is the second state, it is determined that the real-time category of the data to be sent is a low real-time category.
[0017] In some embodiments, the cache status determination module is used to obtain a reception confirmation message returned by the receiving end, wherein the reception confirmation message includes a data identifier of the currently playing data in the player of the receiving end and a data identifier of the latest data received; based on the data identifier of the currently playing data in the player of the receiving end and the data identifier of the latest data received, the size of the data in the player cache is determined; if the size of the data in the player cache is less than a preset threshold, the cache status is determined to be the first state; if the size of the data in the player cache is equal to or greater than the preset threshold, the cache status is determined to be the second state.
[0018] In some embodiments, the network quality information reading module is used to obtain detection results obtained through multiple transmission network detections in the previous detection cycle, the detection results obtained by each transmission network detection include multiple round-trip delays and available bandwidths; the minimum value of the multiple round-trip delays obtained by each transmission network detection is used as the first round-trip delay, the maximum value of the multiple round-trip delays obtained by each transmission network detection is used as the second round-trip delay, and the maximum value of the available bandwidths obtained by each transmission network detection is used as the intermediate available bandwidth; the minimum value is taken from the multiple first round-trip delays obtained by multiple transmission network detections, the maximum value is taken from the multiple second round-trip delays obtained by multiple transmission network detections, and the maximum value is taken from the multiple intermediate available bandwidths obtained by multiple transmission network detections as the network quality information of the transmission network between the receiving end and the previous detection cycle.
[0019] In some embodiments, the network quality information also includes a maximum round-trip delay smoothing value, and the network quality information reading module is further used to obtain the second round-trip delay obtained during the first transmission network detection in the previous detection cycle, and use the second round-trip delay obtained during the first transmission network detection as the second round-trip delay smoothing value corresponding to the first transmission network detection; obtain the second round-trip delay obtained during the non-first transmission network detection in the previous detection cycle, and merge the second round-trip delay obtained during the non-first transmission network detection with the second round-trip delay smoothing value corresponding to the previous transmission network detection to obtain the second round-trip delay smoothing value corresponding to the non-first transmission network detection; and use the second round-trip delay smoothing value corresponding to the last transmission network detection as the maximum round-trip delay smoothing value.
[0020] In some embodiments, the network available cache estimation module is used to determine the maximum amount of data allowed to be injected into the transmission network based on the maximum round-trip delay smoothed value and the maximum available bandwidth of the transmission network between the transmission network and the receiving end detected in the previous detection cycle; determine the amount of data transmitted by the transmission network when no queuing delay occurs based on the minimum round-trip delay and the maximum available bandwidth of the transmission network between the transmission network and the receiving end detected in the previous detection cycle; and use the difference between the maximum amount of data allowed to be injected into the transmission network and the amount of data transmitted by the transmission network when no queuing delay occurs as the network available cache corresponding to the current detection cycle.
[0021] In some embodiments, the network available cache estimation module is used to calculate the product of the maximum round-trip delay smoothed value of the transmission network between the receiving end and the previous detection cycle and the maximum available bandwidth to obtain the maximum amount of data allowed to be injected into the transmission network; the network available cache estimation module is used to calculate the product of the minimum round-trip delay of the transmission network between the receiving end and the previous detection cycle and the maximum available bandwidth to obtain the amount of data transmitted by the transmission network when no queuing delay occurs.
[0022] In some embodiments, the data sending module is used to determine the sending window size under congestion control; determine the sending window size that matches the network available cache based on the estimated network available cache; determine the sending window size corresponding to the current detection cycle based on the sending window size under congestion control and the sending window size that matches the network available cache, and the sending window size corresponding to the current detection cycle is larger than the sending window size under congestion control.
[0023] In some embodiments, the data sending module is used to obtain the corresponding amount of in-transit data in the current detection cycle; and use the difference between the estimated network available cache and the amount of in-transit data as the sending window size matching the network available cache.
[0024] In some embodiments, the data sending module is configured to fuse the sending window size under congestion control and the sending window size matching the available network buffer to obtain the sending window size corresponding to the current detection period.
[0025] In a third aspect, the present application further provides a computer device comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the above-mentioned data transmission control method when executing the computer program.
[0026] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the above-mentioned data transmission control method.
[0027] In a fifth aspect, the present application further provides a computer program product, which includes a computer program that implements the steps of the above-mentioned data transmission control method when executed by a processor.
[0028] The above-mentioned data transmission control method, apparatus, computer device, storage medium, and computer program product, if the real-time category of the data to be sent is detected as high real-time during the current detection cycle, indicating that the real-time requirement for the data to be sent is high, reads the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle, where the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network. Based on the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle, the actual status of the current transmission network is reflected in real time, thereby accurately estimating the network available cache corresponding to the current detection cycle. Based on the estimated network available cache, the sending window size corresponding to the current detection cycle is adjusted, and the data to be sent with high real-time requirements is quickly sent to the receiving end according to the sending window size. That is, after fully detecting the network available cache in the current detection cycle, the sending window for sending data with high real-time requirements is adaptively adjusted based on the network available cache, thereby improving the real-time performance of data transmission and enhancing the service experience of the receiving end. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 A diagram showing an application environment of a data transmission control method in one embodiment;
[0030] Figure 2 A schematic diagram of data transmission in one embodiment;
[0031] Figure 3 1 is a flow chart of a data transmission control method according to an embodiment;
[0032] Figure 4 is a schematic diagram of video transmission in one embodiment;
[0033] Figure 5 FIG. 1 is a flow chart of steps for determining network quality information in one embodiment;
[0034] Figure 6 Schematic diagram of a flow chart of a step of determining a network available cache in one embodiment;
[0035] Figure 7 A schematic diagram of data transmission in another embodiment;
[0036] Figure 8 A schematic diagram of data transmission in another embodiment;
[0037] Figure 9 is a structural block diagram of a data transmission control device in one embodiment;
[0038] Figure 10 FIG. 1 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0039] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.
[0040] In related technologies, as the amount of data transmission gradually increases, in order to ensure the accuracy of data transmission and avoid network congestion, the QUIC (Quick UDP Internet Connections) protocol is used to implement multiplexing and other functions to adjust data transmission efficiency and avoid network congestion. At the same time, congestion control algorithms are also used to solve the problem of reduced data transmission and accuracy caused by random packet loss. However, related technologies cannot perceive the cache of the receiving end, which makes it impossible for the sending end to send data in time, thereby causing the receiving end to be unable to obtain data in time, which can easily cause the receiving end to be stuck and affect the service experience of the receiving end.
[0041] In an embodiment of the present application, if it is checked in the current detection cycle that the real-time category of the data to be sent is a high real-time category, it means that the real-time requirement for the data to be sent is high, and the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle is read, wherein the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network. According to the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle, the actual status of the current transmission network is reflected in real time, thereby accurately estimating the network available cache corresponding to the current detection cycle, and according to the estimated network available cache, the sending window size corresponding to the current detection cycle is adjusted in a targeted manner, and the data to be sent of the high real-time category is quickly sent to the receiving end according to the sending window size. That is, after fully detecting the network available cache in the current detection cycle, the sending window for sending data with high real-time requirements is adaptively adjusted based on the network available cache to improve the real-time performance of data transmission and improve the service experience of the receiving end.
[0042] The data transmission control method provided in the embodiment of the present application can be applied to Figure 1In the application environment shown, a computer device 102 communicates with a receiving end 104 via a network. The computer device 102 can be regarded as a data sender.
[0043] In some embodiments, the computer device 102 sends the data to be sent to the receiving end 104 through the transmission network. The network can also be regarded as an intermediate network, located between the data sender (computer device 102) and the data receiver (receiving end 104), such as Figure 2 FIG2 is a diagram of data transmission in one embodiment. The transmission network is a network used to transmit data from a data sender (computer device 102) to a data receiver (receiving end 104).
[0044] Optionally, in the current detection cycle, if the computer device 102 detects that the real-time category of the data to be sent is a high real-time category, the network quality information of the transmission network between the computer device 102 and the receiving end detected in the previous detection cycle is read, and the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network; the computer device 102 estimates the network available cache corresponding to the current detection cycle based on the network quality information of the transmission network between the computer device 102 and the receiving end 104 detected in the previous detection cycle; determines the sending window size corresponding to the current detection cycle based on the estimated network available cache, and sends the data to be sent to the receiving end 104 according to the sending window size.
[0045] Among them, the computer device 102 can be a terminal or a server, the data storage system can store the data that the server needs to process, and the data storage system can be integrated on the server. The receiving end 104 can be a terminal. The server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. The terminal can be a smart phone, tablet computer, laptop computer, desktop computer, smart speaker, smart watch, etc., but is not limited to this. The terminal and the server can be directly or indirectly connected through wired or wireless communication, and this application does not limit this.
[0046] In one embodiment, Figure 3 As shown, a data transmission control method is provided, which is applied to Figure 1 Taking the computer device 102 in the example as an example, the method includes the following steps:
[0047] Step S302: In the current detection cycle, if it is detected that the real-time category of the data to be sent is a high real-time category, the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle is read. The network quality information includes the maximum available bandwidth and round-trip delay of the transmission network.
[0048] As mentioned above, the transport network is a network used to transmit data, located between the data sender and receiver. The probe period is the time period used to detect available cache resources on the transport network. Optionally, the first probe period (the initial probe period) is pre-set, for example, 50ms. For each non-first probe period, the current probe period changes dynamically and is determined based on the round-trip time (RTT) of the previous probe period. See below for an explanation of round-trip time.
[0049] Exemplarily, the current detection cycle is determined based on the round trip delay of the previous detection cycle, and the current round trip detection cycle is greater than the round trip delay of the previous detection cycle to ensure that complete data transmission can be performed in the current detection cycle.
[0050] For example, the current detection cycle is determined as an integer multiple of the maximum round-trip delay in the previous detection cycle. Another example is to take the average of the round-trip delays in the previous detection cycle and use the integer multiple of the average as the current detection cycle. Another example is to randomly select a round-trip delay from multiple round-trip delays in the previous detection cycle and use the integer multiple of the obtained round-trip delay as the current detection cycle.
[0051] For example, if the first probe period, T1_probe, is 50ms, and after 50ms, the round-trip delay measured based on the real-time network conditions is 30ms, the next probe period, T2_probe, will be (30 × N)ms. N is a positive integer. If, after (30 × N)ms, the round-trip delay detected by the sender is 35ms, the next probe period, T3_probe, will be (35 × N)ms. N can be a default value, such as 5.
[0052] In other examples, the duration of each detection cycle may be a fixed duration, which is greater than the maximum round-trip delay detected in the past.
[0053] Data to be sent refers to data to be transmitted to the receiving end, and the data form includes but is not limited to video, audio and video, audio, and pictures. The real-time category is used to reflect the real-time requirements of the receiving end for the data to be sent, and the real-time category includes a high real-time category and a low real-time category. For example, if the amount of data cached in the receiving end is very small, then for the data to be sent next by the computer device, the receiving end has a high real-time requirement for the data to be sent, that is, the real-time category of the data to be sent is a high real-time category. If the amount of data cached in the receiving end is sufficient, then the receiving end has a low real-time requirement for the data to be sent, that is, it belongs to the low real-time category.
[0054] The following is a specific example to further illustrate. In the video transmission scenario, the receiving end deploys the video client player and the corresponding player cache. Figure 4 Figure 1 is a schematic diagram of video transmission in one embodiment. During the current detection cycle, the computer device determines the video frames to be sent. If the player cache currently contains nine video frames, and the video frame playback order is I-frame, P-frame, B-frame, i-th video frame, ..., i+5th video frame, then, after the player finishes playing the current video frame, it retrieves the next I-frame from the player cache and plays it in the same order. At this point, since the player cache contains a sufficient number of video frames, the real-time requirements for the subsequent video frames to be sent are less stringent. This is because the player has a large number of video frames ready to play before the video frame to be sent reaches the receiving end, and these video frames take a long time to play. During this time, the video frame to be sent is likely to be delivered to the player cache, making it less likely that the client will experience lag. Conversely, if the player cache does not contain enough video frames, the real-time requirements for the video frames to be sent are very high. If the video frames to be sent are sent slowly, it is very likely that the client will experience lag.
[0055] Network quality information reflects the transmission quality of a network. Round-trip latency refers to the total time it takes from the data sender (computer device) to receive confirmation from the data receiver (receiving end). Maximum available bandwidth refers to the maximum amount of data a network can transmit. The greater the maximum available bandwidth and the lower the round-trip latency, the better the transmission quality of the network.
[0056] Optionally, the computer device determines the duration of the current detection cycle based on the round-trip delay of the previous detection cycle. During the current detection cycle, the computer device obtains the buffering status of the receiving end as reported by the receiving end, and determines the real-time category of the data to be transmitted based on the buffering status of the receiving end. If the real-time category of the data to be transmitted is high real-time, the computer device reads the network quality information detected in the previous detection cycle from the pre-stored network quality information detected in each historical detection cycle.
[0057] For example, the buffering status may be the amount of data buffered in the receiving end. If the buffering status indicates that the amount of data buffered in the receiving end is insufficient, the data to be sent is determined to be of a high real-time nature; if the amount of data buffered in the buffering status is sufficient, the data to be sent is determined to be of a low real-time nature.
[0058] For example, in a video playback scenario, the buffering status may also be the duration of the video frames buffered by the receiving end. If the buffering status indicates that the duration of the buffered video frames is short, the data to be sent is determined to be of high real-time nature; if the duration of the buffered video frames is long, the data to be sent is determined to be of low real-time nature.
[0059] Step S304 : Estimate the network available buffer corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle.
[0060] The network available buffer refers to the maximum amount of data that can be buffered by the transmission network. The network available buffer can also be understood as the available buffer resources of the transmission network for transmitting the data to be sent.
[0061] Optionally, after obtaining the network quality information corresponding to the previous detection cycle, the computer device obtains the first round-trip delay, the second round-trip delay and the maximum available bandwidth based on the network quality information corresponding to the previous detection cycle.
[0062] It should be noted that multiple transmission network probes are performed during each probe cycle, and each probe results in multiple round-trip delays. The first round-trip delay is determined based on the minimum of the multiple round-trip delays obtained from each probe, and the second round-trip delay is determined based on the maximum of the multiple round-trip delays obtained from each probe. The maximum available bandwidth is determined based on the maximum of the available bandwidths obtained from each probe. It is understood that the first round-trip delay is smaller than the second round-trip delay.
[0063] At this time, the computer device determines the delay size when there was queuing in the previous detection cycle based on the difference between the second round-trip delay and the first round-trip delay, and determines the network available cache corresponding to the current detection cycle based on the delay size and the maximum available bandwidth.
[0064] It's important to note that the queuing mentioned above refers to the process by which data, after being sent from a computer device (the data sender), waits in the transmission network before reaching the receiving end (the data receiver). Generally speaking, if the transmission network has already received a large amount of data to be transmitted before receiving the data to be sent, exceeding its processing capacity, the network will queue the received data using its cache. This allows the data to be queued and transmitted in a specific order after it is received.
[0065] Alternatively, the computer device may determine the data volume of the transmission network when there is no queuing based on the first round-trip delay and the maximum available bandwidth, and determine the maximum amount of data that the transmission network can accommodate based on the second round-trip delay and the maximum available bandwidth. The computer device determines the network available buffer for the current detection period based on the maximum amount of data that the transmission network can accommodate and the data volume when there is no queuing.
[0066] It's important to note that if there's no queuing (no queuing delay), the network's buffer isn't being used. If there's a lot of queuing (long queuing), the network's buffer is being used. Because the maximum capacity includes both the network's available buffer and the amount of data that doesn't require queuing, the greater the difference between the maximum capacity and the amount of data that doesn't require queuing, the greater the available network buffer.
[0067] Since the round-trip delay includes transmission delay, propagation delay, queuing delay, and processing delay, generally speaking, if there are many queues in the transmission network, the longer the queuing delay, the larger the round-trip delay will be. If there are no queues in the transmission network, that is, the queuing delay is 0, the smaller the round-trip delay will be. Therefore, it can be known that the second round-trip delay can be approximated as the round-trip delay including the queuing delay when there are many queues, and the first round-trip delay can be approximated as the round-trip delay ignoring the round-trip delay when there are no queues. Then, when other delay fluctuations are not large, the difference between the second round-trip delay and the first round-trip delay can reflect the delay caused by the queue. Therefore, based on this difference and the maximum available bandwidth, the network available cache corresponding to the current detection cycle can be determined.
[0068] Step S306 : determining the sending window size corresponding to the current detection period according to the estimated network available buffer, and sending the data to be sent to the receiving end according to the sending window size.
[0069] The sending window size refers to the maximum number of data packets that the data sender can send.
[0070] Optionally, the computer device determines a sending window size that matches the network available cache based on the estimated network available cache, and determines a sending window size corresponding to the current detection cycle based on the sending window size that matches the network available cache, and sends the data to be sent to the receiving end according to the sending window size.
[0071] The sending window size that matches the available network buffer is a sending window size determined while fully utilizing the available network buffer, so as to ensure that high-real-time data is quickly sent to the receiving end.
[0072] Exemplarily, the computer device may directly use the sending window size that matches the available network buffer as the sending window size corresponding to the current detection period.
[0073] In the above-mentioned data transmission control method, if it is detected in the current detection cycle that the real-time category of the data to be sent is a high real-time category, it means that the real-time requirement for the data to be sent is high, and the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle is read, wherein the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network. According to the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle, the actual status of the current transmission network is reflected in real time, thereby accurately estimating the network available cache corresponding to the current detection cycle, and according to the estimated network available cache, the sending window size corresponding to the current detection cycle is adjusted in a targeted manner, and the data to be sent with a high real-time category is quickly sent to the receiving end according to the sending window size. That is, after fully detecting the network available cache in the current detection cycle, the sending window for sending data with high real-time requirements is adaptively adjusted based on the network available cache to improve the real-time performance of data transmission and enhance the service experience of the receiving end.
[0074] In some embodiments, the method further includes: in the current detection cycle, if it is detected that the real-time category of the data to be sent is a low real-time category, determining the sending window size under congestion control, and sending the data to be sent to the receiving end according to the sending window size.
[0075] The send window size under congestion control is calculated using the congestion control algorithm based on the pre-set initial send window. This send window size under congestion control is calculated using relevant technologies. It should be noted that the send window size under congestion control is smaller than the send window size mentioned above that matches the available network buffer.
[0076] Optionally, in the current detection cycle, if the computer device detects that the real-time category of the data to be sent is a low real-time category, the computer device dynamically adjusts the initial sending window based on the network detection information detected by the previous transmission network, obtains the sending window size under congestion control when the data is transmitted in the current detection cycle, and sends the data to be sent to the receiving end according to the sending window size under congestion control.
[0077] As mentioned above, multiple transmission network detections are performed in each detection cycle, and each data transmission corresponds to one network transmission detection. For each data transmission, after receiving the confirmation message fed back by the receiving end, the computer device counts the round-trip delay, congestion level, and packet loss rate of the data transmission to obtain the corresponding network detection information of the network transmission detection, so as to evaluate the transmission network quality during the data transmission.
[0078] For example, if the data to be sent is the first data transmission in the current detection cycle, the previous transmission network detection corresponds to the last transmission network detection in the previous detection cycle. If the data to be sent is not the first data transmission in the current detection cycle, the previous transmission network detection corresponds to the previous transmission network detection in the current detection cycle.
[0079] The initial sending window is determined based on the amount of data to be sent and the receiving capability of the receiving end.
[0080] In this embodiment, in the current detection cycle, if it is detected that the real-time category of the data to be sent is a low real-time category, it means that the real-time requirement for the data to be sent is not high, and the amount of data cached in the receiving end is sufficient. At this time, there is no need to detect the network available cache of the transmission network. By using the sending control logic of congestion control, it is only necessary to determine the sending window size under congestion control, and directly send the data to be sent to the receiving end according to the sending window size under congestion control, thereby realizing reasonable and effective data transmission according to the sending requirements of the low real-time category, and ensuring the effectiveness of data transmission control.
[0081] In some embodiments, the method further includes: performing multiple transmission network detections with the receiving end within the current detection cycle to obtain network quality information of the transmission network with the receiving end, and the network quality information is used to estimate the network available cache corresponding to the next detection cycle after the current detection cycle.
[0082] Optionally, during the current detection period, multiple transmission network detections are performed between the computer device and the receiving end to obtain network detection information corresponding to each transmission network detection. The network detection information includes round-trip delay and available bandwidth.
[0083] The computer device determines the network quality information of the transmission network between the computer device and the receiving end based on the network detection information corresponding to each transmission network detection, and the network quality information of the transmission network between the computer device and the receiving end is used to estimate the network available cache corresponding to the next detection cycle within the current detection cycle.
[0084] Exemplarily, for each transmission network probe, the corresponding data to be transmitted is obtained, and each data to be transmitted is split into multiple messages to obtain corresponding data packets. For example, when the data to be transmitted is a video frame, the video frame is split into multiple messages to determine the corresponding data packets. At this time, after the data packet is transmitted to the receiving end via the transmission network and the receiving end receives the receipt confirmation information regarding the data packet, it is considered a data transmission. In this case, the network probe information detected during the data transmission process is regarded as a transmission network probe. The network probe information obtained from each transmission network probe includes multiple round-trip delays and available bandwidth.
[0085] Based on the multiple round-trip delays and available bandwidths corresponding to each transmission network detection, the first round-trip delay, the second round-trip delay and the maximum available bandwidth for the next detection cycle are determined. The computer device determines the network quality information for evaluating the network available cache corresponding to the next detection cycle based on the first round-trip delay, the second round-trip delay and the maximum available bandwidth for the next detection cycle.
[0086] In this embodiment, multiple transmission network probes are performed with the receiving end during the current probe cycle to obtain network quality information for the transmission network. This network quality information is used to estimate the network buffer availability for the next probe cycle following the current probe cycle. Based on this obtained network quality information, high-real-time data to be transmitted in the next probe cycle can be determined, thereby ensuring real-time data transmission.
[0087] In some embodiments, the method also includes: determining the cache status of the player cache of the receiving end based on the reception confirmation message returned by the receiving end, the cache status is used to indicate the size of the data in the player cache, when the amount of data in the player cache is less than a preset threshold, the cache status is the first state, and when the amount of data in the player cache is equal to or greater than the preset threshold, the cache status is the second state; if the cache status is the first state, it is determined that the real-time category of the data to be sent is a high real-time category; if the cache status is the second state, it is determined that the real-time category of the data to be sent is a low real-time category.
[0088] The "receive confirmation message" refers to the message fed back by the receiving end after receiving the data previously sent by the computer device. As previously mentioned, the player cache is used to cache data transmitted by the transmission network. The first state indicates that the amount of data in the player cache of the receiving end is very small and there is an urgent need to obtain data from the computer device. In this case, the amount of cached data is less than a preset threshold. The second state indicates that there is sufficient data in the player cache of the receiving end. In this case, the amount of cached data is greater than or equal to the preset threshold.
[0089] If the cache state is the first state, the computer device sets the real-time flag high_require in the transmission control logic to 1. If the cache state is the second state, the computer device sets the real-time flag high_require to 0. Subsequently, before preparing to send the data to be sent, the computer device automatically reads the real-time flag high_require. If the read value is 1, step S302 is performed. If the read value is 0, the sending window size under congestion control is determined, and the data to be sent is sent to the receiving end according to the sending window size.
[0090] In another embodiment, the method further includes: after obtaining a reception confirmation message returned by the receiving end, the computer device parses the reception confirmation message; if a cache warning flag is parsed, the computer device determines that the cache state of the player cache of the receiving end is a first state, and determines that the real-time nature of the data to be sent is a high real-time nature. If no cache warning flag is parsed, the computer device determines that the cache state of the player cache of the receiving end is a second state, and determines that the real-time nature of the data to be sent is a low real-time nature.
[0091] The cache warning flag is used to notify the computer device that the amount of data in the player cache at the current receiving end is very small, so as to instruct the computer device to determine the data to be sent as a high real-time category.
[0092] For example, in a video playback scenario, after the computer device sends a traffic message last time and the receiving end receives the traffic message, the receiving end obtains the number of audio and video frames in the player cache, frame_buffer_amount. If the number of audio and video frames in the player cache, frame_buffer_amount, is less than the preset threshold, frame_buffer_threshold, the receiving end believes that the video frames in the player cache will soon be exhausted. At this time, the receiving end generates a cache warning flag, signal_buffer, generates a reception confirmation message based on signal_buffer, generates a confirmation message containing the reception confirmation message, and feeds it back to the computer device, pkt_ack. If the number of audio and video frames, frame_buffer_amount, is greater than or equal to the preset threshold, frame_buffer_threshold, directly generates a reception message confirmation without a cache warning flag, generates a confirmation message containing the reception confirmation message, and feeds it back to the computer device, pkt_ack.
[0093] The traffic packets mentioned above refer to packets obtained by segmenting data. For example, if the data is a video frame, before sending it, the video frame is segmented into a packet group, which includes multiple traffic packets obtained by segmentation. In this case, the multiple traffic packets are sent as a group.
[0094] Furthermore, the computer device obtains a real-time parameter combination Para_config, namely, Para_config ={start_config, pkt_num_gap}, wherein the start_config parameter is used to characterize the method of determining the real-time category, and the pkt_num_gap parameter is used to specify that a preset number of traffic packets with the front sequence numbers in the packet group are of the high real-time category, and the remaining traffic packets are of the low real-time category.
[0095] If the computer device determines that start_config is 1, it indicates that the real-time classification of all traffic packets in the video frame is determined using the cache status. In this case, the step of determining the cache status of the receiving end's player cache based on the receipt confirmation message returned by the receiving end is continued. If the cache status is the first state, all traffic packets in the split packet group are determined to be of high real-time classification. If the cache status is the second state, all traffic packets in the split packet group are determined to be of low real-time classification.
[0096] If the computer device determines that start_config is 0, the cache status is not used to determine the real-time category. At this time, the value of the pkt_num_gap parameter is obtained (for example, M), and the first M traffic packets are automatically considered to be of the high real-time category, and the rest are of the low real-time category.
[0097] Of course, in the audio and video or video scenario, the method also includes: based on the reception confirmation message returned by the receiving end, determining the cache status of the player cache of the receiving end, the cache status is used to indicate the size of the data in the player cache, when the cache duration frame_buffer_time_len of the audio and video frame (or video frame) in the player cache is less than the preset duration threshold frame_buffer_time_threshold, the cache status is the first state, when the cache duration frame_buffer_time_len of the audio and video frame (or video frame) in the player cache is equal to or greater than the preset duration threshold frame_buffer_time_threshold, the cache status is the second state. If the cache status is the first state, it is determined that the real-time category of the data to be sent is a high real-time category. If the cache status is the second state, it is determined that the real-time category of the data to be sent is a low real-time category.
[0098] In this embodiment, the buffer status of the receiving end can be quickly determined by comparing the amount of data in the player's buffer with a preset threshold, thereby determining whether the amount of data currently buffered by the receiving end is sufficient. Therefore, when the amount of data in the player's buffer is less than the preset threshold, the buffer status is determined to be the first state; when the amount of data in the player's buffer is equal to or greater than the preset threshold, the buffer status is determined to be the second state. This allows accurate assessment of the real-time nature of the data currently being transmitted based on the buffer status, ensuring the effectiveness and accuracy of subsequent data transmission control.
[0099] In some embodiments, based on the reception confirmation message returned by the receiving end, the cache status of the player cache of the receiving end is determined, including: obtaining the reception confirmation message returned by the receiving end, the reception confirmation message including the data identifier of the currently playing data in the player of the receiving end and the data identifier of the latest data received; determining the size of the data in the player cache according to the data identifier of the currently playing data in the player of the receiving end and the data identifier of the latest data received; if the size of the data in the player cache is less than a preset threshold, determining that the cache status is the first status; if the size of the data in the player cache is equal to or greater than the preset threshold, determining that the cache status is the second status.
[0100] It should be noted that, as mentioned above, before the data is sent, it will be split into multiple traffic messages for sending. Then, the currently played data refers to the data that has been "fully received" in the player cache and is currently being played. Similarly, the latest data refers to the latest "fully received" data in the player cache, but has not yet been played. For example, the latest data is an I frame, which is split into 10 traffic messages. "Full received" means that the player cache has obtained these 10 traffic messages. It is understandable that if the data is not "fully received", for example, only the first 6 traffic messages of the I frame are received, then the player cannot complete the I frame.
[0101] In other examples, a computer device determines a first data identifier of the data currently being played based on a pre-stored presentation timestamp (PTS). The computer device then retrieves a second data identifier of the data currently being played and a data identifier of the most recently received data from the receiving end's player from a receipt confirmation message returned by the receiving end. If the computer device verifies that the located first data identifier is consistent with the retrieved second data identifier, playback on the receiving end is normal. The computer device then determines the amount of data in the player's cache based on the second data identifier and the data identifier of the most recently received data, thereby determining the cache status.
[0102] In other examples, the method further includes: obtaining a reception confirmation message returned by the receiving end, the reception confirmation message including a data identifier of a video frame identifier of the currently playing video frame frame_now_play and a video frame identifier of the most recently received video frame frame_now_avai in the player of the receiving end; and determining a cache duration frame_buffer_time_len of all video frames between the currently playing video frame frame_now_play and the most recently received video frame frame_now_avai based on the video frame identifier of the currently playing video frame frame_now_play and the video frame identifier of the most recently received video frame frame_now_avai in the player of the receiving end. If the cache duration frame_buffer_time_len is less than a preset duration threshold frame_buffer_time_threshold, determining that the cache state is a first state; and if the cache duration frame_buffer_time_len is greater than or equal to the preset duration threshold frame_buffer_time_threshold, determining that the cache state is a second state.
[0103] In this embodiment, based on the reception confirmation message returned by the receiving end, the data currently being played and the latest data on the receiving end can be promptly determined. This allows accurate calculation of the amount of data in the player's cache. Next, by comparing the amount of cached data with a preset threshold, the sufficiency of the data currently cached by the receiving end can be determined in real time, allowing for timely determination of the cache status. Finally, based on the cache status, the real-time nature of the data currently being transmitted can be accurately assessed, ensuring the effectiveness and accuracy of subsequent data transmission control.
[0104] In some embodiments, as Figure 5 FIG. 1 is a flow chart of a step for determining network quality information in one embodiment. The network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle is read, including:
[0105] Step S502: Acquire detection results obtained through multiple transmission network detections in the previous detection cycle, where the detection results obtained through each transmission network detection include multiple round-trip delays and available bandwidths.
[0106] Each probe cycle performs a preset number of transport network probes to determine the results of each probe. Each transport network probe can be considered a round-trip probe (RTT probe). During each probe, the transport network obtains multiple round-trip delays and available bandwidth as multiple traffic packets are sent to the receiving end.
[0107] In step S504, the minimum value of the multiple round-trip delays obtained by each transmission network detection is used as the first round-trip delay, the maximum value of the multiple round-trip delays obtained by each transmission network detection is used as the second round-trip delay, and the maximum value of the available bandwidths obtained by each transmission network detection is used as the intermediate available bandwidth.
[0108] For example, N transmission network probes are performed during the previous probe cycle. For the xth transmission network probe, the minimum round-trip delay among the corresponding multiple round-trip delays is determined as the first round-trip delay, i.e., minRTT_x. The maximum round-trip delay among the corresponding multiple round-trip delays is determined as the second round-trip delay, i.e., maxRTT_x. The maximum available bandwidth among the corresponding multiple available bandwidths is determined as the intermediate available bandwidth, i.e., BtlBW_x. The value of x ranges from 1 to N.
[0109] Step S506: Take the minimum value from the multiple first round-trip delays obtained from the multiple transmission network detections, take the maximum value from the multiple second round-trip delays obtained from the multiple transmission network detections, and take the maximum value from the multiple intermediate available bandwidths obtained from the multiple transmission network detections as the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle.
[0110] Exemplarily, the computer device uses the minimum value of multiple first round-trip delays obtained from multiple transmission network detections as the minimum round-trip delay, uses the maximum value of multiple second round-trip delays detected from multiple transmission networks as the maximum round-trip delay, and uses the maximum value of the maximum intermediate available bandwidths detected from multiple transmission networks as the maximum available bandwidth. Based on the maximum round-trip delay, the minimum round-trip delay, and the maximum available bandwidth, the computer device determines network quality information of the transmission network between the computer device and the receiving end detected during the previous detection cycle.
[0111] For example, the maximum available bandwidth is determined according to the following formula (1): :
[0112] (1)
[0113] The minimum round trip delay is determined according to the following formula (2): :
[0114] (2)
[0115] The maximum round trip delay is determined according to the following formula (3): :
[0116] (3)
[0117] In this embodiment, by determining the minimum round-trip delay (i.e., first round-trip delay), maximum round-trip delay (second round-trip delay), and maximum available bandwidth (intermediate available bandwidth) corresponding to each transmission network probe, the maximum round-trip delay, minimum round-trip delay, and maximum available bandwidth within the previous probe cycle can be more quickly and accurately screened based on the first round-trip delay, second round-trip delay, and intermediate available bandwidth corresponding to multiple transmission network probes to determine the corresponding network quality information. Subsequently, based on the network quality information from the previous probe cycle, the available network buffer for the current probe cycle can be accurately detected, allowing targeted transmission of high-real-time data to be sent.
[0118] In some embodiments, the network quality information also includes a maximum round-trip delay smoothing value, and the method also includes: obtaining the second round-trip delay obtained during the first transmission network detection in the previous detection cycle, and using the second round-trip delay obtained during the first transmission network detection as the second round-trip delay smoothing value corresponding to the first transmission network detection; obtaining the second round-trip delay obtained during the non-first transmission network detection in the previous detection cycle, fusing the second round-trip delay obtained during the non-first transmission network detection with the second round-trip delay smoothing value corresponding to the previous transmission network detection to obtain the second round-trip delay smoothing value corresponding to the non-first transmission network detection; and using the second round-trip delay smoothing value corresponding to the last transmission network detection as the maximum round-trip delay smoothing value.
[0119] For each transmission network detection, the corresponding second round-trip delay smoothing value may also be referred to as a weighted value of the second round-trip delay, which is used to smooth the second round-trip delay.
[0120] Exemplarily, for each non-first transmission network detection, the computer device obtains the weights of the corresponding second round-trip delay and the second round-trip delay smoothed value corresponding to the previous transmission network detection, and performs a weighted sum of the corresponding second round-trip delay and the second round-trip delay smoothed value corresponding to the previous transmission network detection according to the respective weights to obtain the corresponding second round-trip delay smoothed value;
[0121] The computer device uses the second round-trip delay smoothing value corresponding to the last transmission network detection as the maximum round-trip delay smoothing value.
[0122] For each non-first transmission network detection x, the corresponding second round-trip delay smoothing value is calculated using the following formula (4): :
[0123]
[0124] in, is the second round-trip delay smoothing value corresponding to the previous transmission network detection, is the weight of the second round-trip delay smoothing value corresponding to the previous transmission network detection, is the corresponding second round trip delay, is the weight of the corresponding second round trip delay. The corresponding weights are preset. For example, when x is not equal to 1, the default is 0.8.
[0125] Of course, when x=1, is 0, at this time, .
[0126] In this embodiment, after obtaining the second round-trip delay corresponding to each transmission network detection, the second round-trip delay corresponding to the current transmission network detection is smoothed according to the second round-trip delay smoothing value corresponding to the previous transmission network detection to obtain the second round-trip delay smoothing value corresponding to the current transmission network detection. The second round-trip delays are iteratively smoothed step by step until the maximum round-trip smoothing value corresponding to the last transmission network detection is obtained. Based on this, the maximum value of the overall round-trip delay of the previous detection cycle can be reflected more comprehensively and accurately, which can be used for subsequent evaluation of the data capacity of the transmission network.
[0127] In some embodiments, as Figure 6FIG. 1 is a flow chart of the steps for determining the network available cache in one embodiment. Based on the network quality information of the transmission network between the receiving end and the previous detection cycle, the network available cache corresponding to the current detection cycle is estimated, including:
[0128] Step S602 : determining the maximum amount of data allowed to be injected into the transmission network according to the maximum round-trip delay smoothing value and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle.
[0129] Step S604 : determining the amount of data transmitted by the transmission network when no queuing delay occurs based on the minimum round-trip delay and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle.
[0130] Step S606 : The difference between the maximum amount of data allowed to be injected into the transmission network and the amount of data transmitted by the transmission network when no queuing delay occurs is used as the network available buffer corresponding to the current detection period.
[0131] The maximum amount of data allowed to be injected into the transmission network can be understood as the maximum amount of data that the transmission network can accommodate during the current detection cycle. The amount of data transmitted by the transmission network when there is no queuing delay can be understood as the amount of data transmitted when there is no queuing during the current detection cycle.
[0132] Exemplarily, the computer device obtains the maximum round-trip delay smoothing value, the maximum available bandwidth, and the minimum round-trip delay from the network quality information. Based on the maximum round-trip delay smoothing value and the maximum available bandwidth, the computer device calculates the delay-bandwidth product to obtain the maximum amount of data allowed to be injected into the transmission network during the current detection period, inflight_max.
[0133] The computer device calculates the delay-bandwidth product based on the minimum round-trip delay and the maximum available bandwidth to obtain the amount of data inflight_no_queue transmitted by the transmission network when no queuing delay occurs in the current detection period.
[0134] The computer device calculates the difference between inflight_max and inflight_no_queue, and uses the difference as the network available buffer ava_buffer corresponding to the current detection period, that is, the network available buffer ava_buffer is calculated using the following formula (5):
[0135] (5)
[0136] Of course, in other examples, the computer device may obtain the maximum round-trip delay, maximum available bandwidth, and minimum round-trip delay from the network quality information, determine the maximum amount of data allowed to be injected into the transmission network based on the maximum round-trip delay and the maximum available bandwidth, and determine the amount of data that would be transmitted by the transmission network without queuing delay based on the minimum round-trip delay and the maximum available bandwidth. The computer device then calculates the difference between the maximum amount of data allowed to be injected into the transmission network and the amount of data transmitted by the transmission network without queuing delay to obtain the network available buffer for the current detection period.
[0137] In some embodiments, the maximum amount of data allowed to be injected into the transmission network is determined based on the maximum round-trip delay smoothed value and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle, including: calculating the product of the maximum round-trip delay smoothed value and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle to obtain the maximum amount of data allowed to be injected into the transmission network.
[0138] For example, after the computer device obtains the maximum round-trip delay smoothing value maxRTT_smooth_N and the maximum available bandwidth BtlBW of the transmission network between the computer device and the receiving end detected in the previous detection cycle, the following formula (6) is used to calculate the maximum amount of data inflight_max allowed to be injected into the transmission network:
[0139] (6)
[0140] In this way, by calculating the product of the maximum round-trip delay smoothing value determined in the previous detection cycle and the maximum available bandwidth, the maximum amount of data allowed to be injected into the transmission network in the current detection cycle can be estimated. In this way, the maximum amount of data that can be "injected" into the transmission network can be accurately determined.
[0141] In some embodiments, the amount of data transmitted by the transmission network when no queuing delay occurs is determined based on the minimum round-trip delay and the maximum available bandwidth of the transmission network between the transmission network and the receiving end detected in the previous detection cycle, including: calculating the product of the minimum round-trip delay and the maximum available bandwidth of the transmission network between the transmission network and the receiving end detected in the previous detection cycle to obtain the amount of data transmitted by the transmission network when no queuing delay occurs.
[0142] For example, after the computer device obtains the minimum round-trip delay minRTT and the maximum available bandwidth BtlBW of the transmission network between the computer device and the receiving end detected in the previous detection cycle, the following formula (7) is used to calculate the amount of data transmitted by the transmission network when no queuing delay occurs: :
[0143] (7)
[0144] In this way, by calculating the product of the minimum round-trip delay determined in the previous detection cycle and the maximum available bandwidth, the amount of data transmitted by the transmission network when no queuing delay occurs in the current detection cycle can be accurately estimated.
[0145] In this embodiment, based on the maximum round-trip delay smoothing value and the maximum available bandwidth detected in the previous detection cycle, the maximum amount of data allowed to be injected into the transmission network during the current detection cycle can be accurately estimated. Based on the minimum round-trip delay and the maximum available bandwidth detected in the previous detection cycle, the amount of data transmitted by the transmission network when no queuing delay occurs during the current detection cycle can be accurately estimated. Thus, based on the difference between the maximum amount of data obtained and the amount of data corresponding to the unsent queuing delay, the network available cache during the current detection cycle can be accurately detected. Subsequently, based on the full utilization of the detected network available cache, the sending window size can be adaptively adjusted to promptly send high-real-time category data to be sent, thereby improving the service experience of the receiving end.
[0146] In some embodiments, determining the sending window size corresponding to the current detection cycle based on the estimated network available cache includes: determining the sending window size under congestion control; determining the sending window size that matches the network available cache based on the estimated network available cache; determining the sending window size corresponding to the current detection cycle based on the sending window size under congestion control and the sending window size that matches the network available cache, the sending window size corresponding to the current detection cycle being larger than the sending window size under congestion control.
[0147] The sending window size that matches the network available buffer is determined by evaluating the network available buffer, and the sending window size that matches the network available buffer is larger than the sending window size under congestion control.
[0148] Exemplarily, after determining the send window size under congestion control, the computer device estimates a send window size that matches the available network buffer based on the estimated available network buffer. The computer device combines the send window size under congestion control and the send window size that matches the available network buffer to determine a send window size corresponding to the current detection cycle, where the send window size corresponding to the current detection cycle is larger than the send window size under congestion control.
[0149] Of course, in other examples, after determining the send window size that matches the available network buffer, the computer device uses the larger of the send window size that matches the available network buffer and the send window size under congestion control as the send window size corresponding to the current detection cycle. Furthermore, because the send window size that matches the available network buffer is larger than the send window size under congestion control, the send window size that matches the available network buffer can be directly used as the send window size corresponding to the current detection cycle.
[0150] In this embodiment, the sending window size under congestion control is first determined. Next, based on the estimated available network cache and taking into account the cache situation of the transmission network, an appropriate sending window size is estimated, i.e., a sending window size that matches the available network cache is determined. Based on the sending window size under congestion control and the sending window size that matches the available network cache, and by comprehensively considering the sending window size that matches the available network cache corresponding to the network cache dimension and the sending window size under congestion control corresponding to the congestion dimension, a sending window suitable for high real-time requirements can be determined, thereby improving data transmission efficiency and enhancing the service experience.
[0151] In some embodiments, based on the estimated network available cache, determining the sending window size that matches the network available cache includes: obtaining the corresponding amount of in-transit data in the current detection cycle; and using the difference between the estimated network available cache and the amount of in-transit data as the sending window size that matches the network available cache.
[0152] The amount of data in transit refers to the total amount of data that has been sent but has not been confirmed to be received by the receiving end.
[0153] For example, after obtaining the amount of in-flight data inflight_size and the network available buffer ava_buffer, formula (8) is used to calculate the sending window size cwnd_buffer that matches the network available buffer:
[0154] (8)
[0155] Furthermore, for the current data transmission (transmitting data to be sent), the computer device determines the amount of data in transit for the current data transmission based on network detection information detected during the previous transmission. The computer device calculates the difference between the estimated available network buffer and the amount of data in transit, and uses this difference as the sending window size that matches the available network buffer.
[0156] It should be noted that within the same detection cycle, the corresponding network available buffer is determined based on the network quality information from the previous detection cycle and does not change during the current detection cycle. However, a detection cycle involves multiple data transmissions, each of which involves a transmission network probe, i.e., multiple round-trip delay probes. The network probe information obtained from each round-trip probe changes. Therefore, the amount of in-transit data corresponding to each data transmission within the current detection cycle changes dynamically. It is understandable that the send window size that matches the network available buffer also changes dynamically.
[0157] In this embodiment, after obtaining the amount of in-transit data corresponding to the current detection cycle, the difference between the estimated network available cache and the amount of in-transit data is calculated to accurately estimate the sending window size that matches the network available cache, so as to ensure the accuracy of the sending window size corresponding to the subsequent current detection cycle.
[0158] In some embodiments, based on the sending window size under congestion control and the sending window size that matches the network available cache, the sending window size corresponding to the current detection cycle is determined, including: fusing the sending window size under congestion control and the sending window size that matches the network available cache to obtain the sending window size corresponding to the current detection cycle.
[0159] Exemplarily, the computer device obtains a send window size cwnd_cc for the current data transmission and a send window size cwnd_buffer that matches the available network buffer. The computer device calls a fusion function, inputs the obtained send window size cwnd_cc under congestion control and the send window size cwnd_buffer that matches the available network buffer into the fusion function func(cwnd_buffer, cwnd_cc), and calculates the send window size cwnd_final corresponding to the current detection period.
[0160] The fusion function func(cwnd_buffer, cwnd_cc) may be a summing or averaging function, which is not specifically limited.
[0161] For example, the computer device calculates an average of the sending window size under congestion control and the sending window size that matches the available network buffer, and uses the average as the sending window size corresponding to the current detection period. The average is greater than the sending window under congestion control.
[0162] Alternatively, the computer device calculates a sum of the sending window size under congestion control and the sending window size that matches the available network buffer, and uses the sum as the sending window size corresponding to the current detection period. The sum is greater than the sending window under congestion control.
[0163] In this embodiment, by integrating the sending window size under congestion control and the sending window size matching the network available cache, and comprehensively considering the sending window size matching the network available cache corresponding to the network cache dimension and the sending window size under congestion control corresponding to the congestion dimension, a sending window suitable for a high real-time category can be determined to improve the efficiency of data transmission and improve the service experience.
[0164] The present application also provides an application scenario, which applies the above-mentioned data transmission control method. Specifically, the application of the data transmission control method in this application scenario is as follows: in the video playback scenario, the data to be sent is the video frame to be sent. At this time, the method of the embodiment of the present application can be used to improve the transmission efficiency of the video frames to be sent with high real-time categories, thereby improving the service experience. Specifically, in the current detection cycle, if it is checked that the real-time category of the video frame to be sent is a high real-time category, the network quality information of the transmission network between the receiving end and the previous detection cycle is read, and the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network; based on the network quality information of the transmission network between the receiving end and the previous detection cycle, the network available cache corresponding to the current detection cycle is estimated; based on the estimated network available cache, the sending window size corresponding to the current detection cycle is determined, and the video frame to be sent is sent to the receiving end according to the sending window size.
[0165] Of course, it is not limited to this. The data transmission control method provided in this application can also be applied to other application scenarios, such as live broadcast scenarios, real-time communication scenarios, etc.
[0166] The above application scenarios are merely illustrative. It will be understood that the application of the data transmission control method provided in each embodiment of the present application is not limited to the above scenarios.
[0167] In a specific embodiment, a data transmission control method is provided. The method involves a computer device for sending data, a receiving end for receiving data, and a transmission network for transmitting data from the computer device to the receiving end. Figure 7 FIG2 is a diagram of data transmission in another embodiment. In the embodiment of the present application, the data transmission side includes three stages, namely: network available cache detection stage, real-time category analysis stage and sending window control stage.
[0168] Specifically, in the network available cache detection phase, the computer device periodically detects the network available cache of the transmission network to determine the network available cache of the current detection cycle. For example, the computer device reads the network quality information of the transmission network between the computer device and the receiving end detected in the previous detection cycle, and estimates the network available cache corresponding to the current detection cycle based on the maximum round-trip delay smoothing value, the minimum round-trip delay and the maximum available bandwidth of the transmission network in the network quality information. In the real-time analysis phase, the computer device determines the real-time category of the current data to be sent in the current detection cycle based on the amount of data cached by the player at the receiving end. After the computer device detects that the real-time category of the current data to be sent is a high real-time category, it enters the sending window control phase. The computer device determines the sending window size corresponding to the current detection cycle based on the estimated network available cache, and sends the data to be sent to the receiving end according to the sending window size.
[0169] The following is a detailed example. Figure 8 FIG. 1 is a schematic diagram of data transmission in another embodiment, and the specific steps are as follows:
[0170] Step S1: In the current detection cycle, the computer device obtains the data to be sent involved in any data transmission.
[0171] Step S2: The computer device obtains detection results from multiple transmission network detections with the receiving end during the previous detection cycle. Each detection result includes multiple round-trip delays and available bandwidth. Based on the obtained detection results, the computer device determines network quality information of the transmission network between the computer device and the receiving end as detected during the previous detection cycle.
[0172] Optionally, the computer device uses the minimum value of multiple round-trip delays obtained from each transmission network detection as the first round-trip delay, the maximum value of multiple round-trip delays obtained from each transmission network detection as the second round-trip delay, and the maximum value of available bandwidths obtained from each transmission network detection as the intermediate available bandwidth. The minimum round-trip delay is obtained by taking the minimum value of multiple first round-trip delays obtained from multiple transmission network detections. The maximum round-trip delay is obtained by taking the maximum value of multiple second round-trip delays obtained from multiple transmission network detections. The maximum available bandwidth is obtained by taking the maximum value of multiple intermediate available bandwidths obtained from multiple transmission network detections.
[0173] The computer device obtains the second round-trip delay obtained during the first transmission network detection in the previous detection cycle, and uses the second round-trip delay obtained during the first transmission network detection as the second round-trip delay smoothed value corresponding to the first transmission network detection. The computer device obtains the second round-trip delay obtained during a non-first transmission network detection in the previous detection cycle, and combines the second round-trip delay obtained during the non-first transmission network detection with the second round-trip delay smoothed value corresponding to the previous transmission network detection to obtain the second round-trip delay smoothed value corresponding to the non-first transmission network detection. The second round-trip delay smoothed value corresponding to the last transmission network detection is used as the maximum round-trip delay smoothed value.
[0174] The computer device determines network quality information of the transmission network between the computer device and the receiving end detected in the previous detection cycle based on the obtained minimum round-trip delay, maximum round-trip delay, maximum round-trip delay smoothing value and maximum available bandwidth.
[0175] Step S3: The computer device estimates the network available buffer corresponding to the current detection cycle based on the network quality information of the transmission network between the computer device and the receiving end detected in the previous detection cycle.
[0176] Optionally, the computer device calculates the product of the maximum round-trip delay smoothed value of the transmission network between the receiving end and the computer device during the previous detection cycle and the maximum available bandwidth to obtain the maximum amount of data allowed to be injected into the transmission network. The computer device calculates the product of the minimum round-trip delay of the transmission network between the receiving end and the computer device during the previous detection cycle and the maximum available bandwidth to obtain the amount of data transmitted by the transmission network when no queuing delay occurs. The difference between the maximum amount of data allowed to be injected into the transmission network and the amount of data transmitted by the transmission network when no queuing delay occurs is used as the network available buffer corresponding to the current detection cycle.
[0177] Step S4: The computer device determines a cache status based on the amount of data cached in the player cache at the receiving end, and analyzes the real-time category of the data to be sent based on the cache status.
[0178] If the cache status is the first state, the real-time category of the data to be sent is determined to be high real-time. If the cache status is the first state, the real-time category of the data to be sent is determined to be low real-time. The cache status indicates the amount of data in the player cache. When the amount of data in the player cache is less than a preset threshold, the cache status is the first state. When the amount of data in the player cache is equal to or greater than the preset threshold, the cache status is the second state.
[0179] Optionally, based on the reception confirmation message returned by the receiving end, a cache status of a player cache at the receiving end is determined. If the cache status is a first status, the real-time category of the data to be sent is determined to be a high real-time category. If the cache status is a second status, the real-time category of the data to be sent is determined to be a low real-time category.
[0180] Alternatively, the computer device obtains a reception confirmation message returned by the receiving end, and the reception confirmation message includes the data identifier of the currently playing data in the player of the receiving end and the data identifier of the latest data received. The size of the data in the player cache is determined based on the data identifier of the currently playing data in the player of the receiving end and the data identifier of the latest data received. If the size of the data in the player cache is less than a preset threshold, the cache state is determined to be the first state. If the size of the data in the player cache is equal to or greater than the preset threshold, the cache state is determined to be the second state. If the real-time category of the data to be sent is a low real-time category, step S5 is executed; if the real-time category of the data to be sent is a high real-time category, steps S6 to S10 are executed.
[0181] Step S5: If the real-time category of the data to be sent is a low real-time category, the initial sending window size is obtained, and based on the network detection information detected by the previous transmission network, the initial sending window is dynamically adjusted to obtain the sending window size under congestion control for the current data transmission, and the data to be sent is sent to the receiving end according to the sending window size under congestion control.
[0182] Step S6: If the real-time category of the data to be sent is a high real-time category, the computer device reads the network available cache corresponding to the current detection cycle.
[0183] Step S7: The computer device calculates a sending window size that matches the available network buffer.
[0184] Optionally, the computer device obtains the amount of in-transit data for the current data transmission in the current detection period, and uses the difference between the estimated network available buffer and the in-transit data amount as the sending window size for the current data transmission that matches the network available buffer.
[0185] Step S8: The computer device determines the sending window size under congestion control.
[0186] Optionally, the computer device obtains an initial sending window size, and dynamically adjusts the initial sending window based on network detection information detected by the previous transmission network to obtain a sending window size under congestion control for the current data transmission.
[0187] Step S9: Based on the sending window size under congestion control and the sending window size that matches the network available buffer, determine the sending window size corresponding to the current detection cycle, and the sending window size corresponding to the current detection cycle is larger than the sending window size under congestion control.
[0188] Optionally, the computer device integrates the sending window size under congestion control and the sending window size that matches the available network buffer to obtain the sending window size corresponding to the current data transmission in the current detection period.
[0189] Of course, after executing step 7, the computer device may directly use the sending window size that matches the available network buffer as the sending window size corresponding to the current data transmission in the current detection period.
[0190] Step S10: The computer device sends the data to be sent to the receiving end according to the sending window size corresponding to the current detection period.
[0191] In this embodiment, if it is detected in the current detection cycle that the real-time category of the data to be sent is a high real-time category, it means that the real-time requirement for the data to be sent is high, and the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle is read, where the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network. Based on the network quality information of the transmission network between the receiving end and the transmission network detected in the previous detection cycle, the actual status of the current transmission network is reflected in real time, thereby accurately estimating the network available cache corresponding to the current detection cycle, and based on the estimated network available cache, the sending window size corresponding to the current detection cycle is adjusted in a targeted manner, and the data to be sent with a high real-time category is quickly sent to the receiving end according to the sending window size. That is, after fully detecting the network available cache in the current detection cycle, the sending window for sending data with high real-time requirements is adaptively adjusted based on the network available cache, so as to improve the real-time performance of data transmission and enhance the service experience of the receiving end.
[0192] It should be understood that, although the various steps in the flowcharts involved in the various embodiments described above are displayed in sequence according to the instructions of the arrows, these steps are not necessarily executed in sequence in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be executed in other orders. Moreover, at least a portion of the steps in the flowcharts involved in the various embodiments described above can include multiple steps or multiple stages, and these steps or stages are not necessarily executed and completed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a portion of steps or stages in other steps.
[0193] Based on the same inventive concept, embodiments of the present application further provide a data transmission control device for implementing the aforementioned data transmission control method. The implementation solution provided by this device is similar to the implementation solution described in the aforementioned method. Therefore, the specific limitations of one or more data transmission control device embodiments provided below can be found in the above-described limitations of the data transmission control method and are not further elaborated here.
[0194] In one embodiment, Figure 9 As shown, a data transmission control device 900 is provided, comprising: a network quality information reading module 902, a network available buffer estimation module 904 and a data sending module 906, wherein:
[0195] The network quality information reading module 902 is configured to read the network quality information of the transmission network between the receiving end and the transmitting end detected in the previous detection cycle if the real-time category of the data to be transmitted is detected as high real-time category during the current detection cycle. The network quality information includes the maximum available bandwidth and round-trip delay of the transmission network.
[0196] The network available buffer estimation module 904 is configured to estimate the network available buffer corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle;
[0197] The data sending module 906 is configured to determine a sending window size corresponding to the current detection period according to the estimated network available buffer, and send the data to be sent to the receiving end according to the sending window size.
[0198] In some embodiments, the data sending module 906 is also used to determine the sending window size under congestion control if it is detected in the current detection cycle that the real-time category of the data to be sent is a low real-time category, and send the data to be sent to the receiving end according to the sending window size.
[0199] In some embodiments, the device also includes a transmission network detection module, which is used to perform multiple transmission network detections between the receiving end and the transmission network within the current detection cycle to obtain network quality information of the transmission network between the receiving end and the transmission network. The network quality information is used to estimate the network available cache corresponding to the next detection cycle after the current detection cycle.
[0200] In some embodiments, the device also includes a cache status determination module, which is used to determine the cache status of the player cache of the receiving end based on the reception confirmation message returned by the receiving end. The cache status is used to indicate the size of the data in the player cache. When the amount of data in the player cache is less than a preset threshold, the cache status is a first state. When the amount of data in the player cache is equal to or greater than the preset threshold, the cache status is a second state. If the cache status is the first state, the real-time category of the data to be sent is determined to be a high real-time category. If the cache status is the second state, the real-time category of the data to be sent is determined to be a low real-time category.
[0201] In some embodiments, a cache status determination module is used to obtain a reception confirmation message returned by the receiving end, wherein the reception confirmation message includes a data identifier of the currently playing data in the player of the receiving end and a data identifier of the latest data received; the size of the data in the player cache is determined based on the data identifier of the currently playing data in the player of the receiving end and the data identifier of the latest data received; if the size of the data in the player cache is less than a preset threshold, the cache status is determined to be the first state; if the size of the data in the player cache is equal to or greater than the preset threshold, the cache status is determined to be the second state.
[0202] In some embodiments, the network quality information reading module 902 is used to obtain detection results obtained through multiple transmission network detections in the previous detection cycle, where the detection results obtained for each transmission network detection include multiple round-trip delays and available bandwidths; the minimum value of the multiple round-trip delays obtained for each transmission network detection is used as the first round-trip delay, the maximum value of the multiple round-trip delays obtained for each transmission network detection is used as the second round-trip delay, and the maximum value of the available bandwidths obtained for each transmission network detection is used as the intermediate available bandwidth; the minimum value of the multiple first round-trip delays obtained from the multiple transmission network detections is taken, the maximum value of the multiple second round-trip delays obtained from the multiple transmission network detections is taken, and the maximum value of the multiple intermediate available bandwidths obtained from the multiple transmission network detections is taken as the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle.
[0203] In some embodiments, the network quality information also includes a maximum round-trip delay smoothing value. The network quality information reading module 902 is further used to obtain the second round-trip delay obtained during the first transmission network detection in the previous detection cycle, and use the second round-trip delay obtained during the first transmission network detection as the second round-trip delay smoothing value corresponding to the first transmission network detection; obtain the second round-trip delay obtained during the non-first transmission network detection in the previous detection cycle, and merge the second round-trip delay obtained during the non-first transmission network detection with the second round-trip delay smoothing value corresponding to the previous transmission network detection to obtain the second round-trip delay smoothing value corresponding to the non-first transmission network detection; and use the second round-trip delay smoothing value corresponding to the last transmission network detection as the maximum round-trip delay smoothing value.
[0204] In some embodiments, the network available cache estimation module 904 is used to determine the maximum amount of data allowed to be injected into the transmission network based on the maximum round-trip delay smoothing value and the maximum available bandwidth of the transmission network between the transmission network and the receiving end detected in the previous detection cycle; determine the amount of data transmitted by the transmission network when no queuing delay occurs based on the minimum round-trip delay and the maximum available bandwidth of the transmission network between the transmission network and the receiving end detected in the previous detection cycle; and use the difference between the maximum amount of data allowed to be injected into the transmission network and the amount of data transmitted by the transmission network when no queuing delay occurs as the network available cache corresponding to the current detection cycle.
[0205] In some embodiments, the network available cache estimation module 904 is used to calculate the product of the maximum round-trip delay smoothed value of the transmission network between the receiving end and the transmission network detected in the previous detection cycle and the maximum available bandwidth to obtain the maximum amount of data allowed to be injected into the transmission network; the network available cache estimation module 904 is used to calculate the product of the minimum round-trip delay of the transmission network between the receiving end and the transmission network detected in the previous detection cycle and the maximum available bandwidth to obtain the amount of data transmitted by the transmission network when no queuing delay occurs.
[0206] In some embodiments, the data sending module 906 is used to determine the sending window size under congestion control; determine the sending window size that matches the network available cache based on the estimated network available cache; determine the sending window size corresponding to the current detection cycle based on the sending window size under congestion control and the sending window size that matches the network available cache, and the sending window size corresponding to the current detection cycle is larger than the sending window size under congestion control.
[0207] In some embodiments, the data sending module 906 is configured to obtain the amount of in-transit data corresponding to the current detection period; and use the difference between the estimated network available buffer and the amount of in-transit data as the sending window size matching the network available buffer.
[0208] In some embodiments, the data sending module 906 is configured to fuse the sending window size under congestion control and the sending window size matching the available network buffer to obtain the sending window size corresponding to the current detection period.
[0209] Each module in the above-mentioned data transmission control device can be implemented in whole or in part through software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in the computer device in the form of software, so that the processor can call and execute the corresponding operations of each module.
[0210] In one embodiment, a computer device is provided. The computer device may be a server or a terminal. The internal structure diagram thereof may be as follows: Figure 10 As shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, abbreviated as I / O) and a communication interface. The processor, memory and input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a data transmission control method is implemented.
[0211] Those skilled in the art will understand that Figure 10The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.
[0212] In one embodiment, a computer device is further provided, including a memory and a processor. The memory stores a computer program, and the processor implements the steps in the above method embodiments when executing the computer program.
[0213] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0214] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0215] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions.
[0216] Those skilled in the art will appreciate that all or part of the processes in the above-mentioned embodiments can be implemented by instructing the relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the above-mentioned embodiments. In particular, any reference to memory, database, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The databases involved in the various embodiments provided herein may include at least one of a relational database and a non-relational database. Non-relational databases may include, but are not limited to, distributed databases based on blockchains. The processors involved in the various embodiments provided herein may be, but are not limited to, general-purpose processors, central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), programmable logic devices (PLDs), data processing logic devices based on quantum computing, and the like.
[0217] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0218] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present application. It should be noted that a person of ordinary skill in the art may make various modifications and improvements without departing from the spirit of the present application, and these modifications and improvements fall within the scope of protection of the present application. Therefore, the scope of protection of the present application shall be determined by the appended claims.
Claims
1. A data transmission control method, characterized in that: The method comprises: In the current detection cycle, if the real-time category of the data to be sent is detected as high real-time category, then Reading network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle, wherein the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network; estimating the network available cache corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle; The sending window size corresponding to the current detection period is determined according to the estimated network available buffer, and the to-be-sent data is sent to the receiving end according to the sending window size.
2. The method according to claim 1, characterized in that The method further comprises: In the current detection cycle, if the real-time category of the data to be sent is detected as low real-time category, then Determine a sending window size under congestion control, and send the to-be-sent data to the receiving end according to the sending window size.
3. The method according to claim 1, characterized in that The method further comprises: During the current detection cycle, multiple transmission network detections are performed with the receiving end to obtain network quality information of the transmission network with the receiving end. The network quality information is used to estimate the network available cache corresponding to the next detection cycle after the current detection cycle.
4. The method according to claim 1, wherein The method further comprises: Determining a cache state of a player cache of the receiving end based on a reception confirmation message returned by the receiving end, wherein the cache state is used to indicate the amount of data in the player cache. When the amount of data in the player cache is less than a preset threshold, the cache state is a first state; when the amount of data in the player cache is equal to or greater than the preset threshold, the cache state is a second state; If the cache state is the first state, determining that the real-time category of the data to be sent is a high real-time category; If the cache state is the second state, it is determined that the real-time category of the data to be sent is a low real-time category.
5. The method according to claim 4, characterized in that The determining, based on the reception confirmation message returned by the receiving end, the cache status of the player cache of the receiving end includes: Obtaining a reception confirmation message returned by the receiving end, wherein the reception confirmation message includes a data identifier of the currently played data in the player of the receiving end and a data identifier of the latest received data; Determining the amount of data in the player buffer according to the data identifier of the currently played data in the player at the receiving end and the data identifier of the latest received data; If the size of the data in the player cache is less than a preset threshold, determining that the cache state is the first state; If the size of the data in the player cache is equal to or greater than a preset threshold, the cache state is determined to be the second state.
6. The method according to claim 1, characterized in that The reading of the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle includes: Obtain the detection results obtained through multiple transmission network detections in the previous detection cycle. The detection results obtained by each transmission network detection include multiple round-trip delays and available bandwidths; The minimum value of the multiple round-trip delays obtained from each transmission network detection is used as the first round-trip delay, the maximum value of the multiple round-trip delays obtained from each transmission network detection is used as the second round-trip delay, and the maximum value of the available bandwidths obtained from each transmission network detection is used as the intermediate available bandwidth; The minimum value is taken from multiple first round-trip delays obtained from multiple transmission network detections, the maximum value is taken from multiple second round-trip delays obtained from multiple transmission network detections, and the maximum value is taken from multiple intermediate available bandwidths obtained from multiple transmission network detections as the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle.
7. The method according to claim 6, characterized in that The network quality information further includes a maximum round trip delay smoothing value, and the method further includes: Obtaining a second round-trip delay obtained during the first transmission network detection in the previous detection cycle, and using the second round-trip delay obtained during the first transmission network detection as a second round-trip delay smoothing value corresponding to the first transmission network detection; Obtain the second round-trip delay obtained by the non-first transmission network detection in the previous detection cycle, and fuse the second round-trip delay obtained by the non-first transmission network detection with the second round-trip delay smoothed value corresponding to the previous transmission network detection to obtain the second round-trip delay smoothed value corresponding to the non-first transmission network detection; The second round-trip delay smoothing value corresponding to the last transmission network detection is used as the maximum round-trip delay smoothing value.
8. The method according to claim 1, characterized in that The estimating the network available cache corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle includes: Determining a maximum amount of data allowed to be injected into the transmission network based on a maximum round-trip delay smoothed value and a maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle; Determining the amount of data transmitted by the transmission network when no queuing delay occurs based on the minimum round-trip delay and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle; The difference between the maximum amount of data allowed to be injected into the transmission network and the amount of data transmitted by the transmission network when no queuing delay occurs is used as the network available buffer corresponding to the current detection period.
9. The method according to claim 8, characterized in that The determining, based on the maximum round-trip delay smoothing value and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle, the maximum amount of data allowed to be injected into the transmission network includes: Calculating the product of the maximum round-trip delay smoothed value of the transmission network between the receiving end and the receiving end detected in the previous detection cycle and the maximum available bandwidth to obtain the maximum amount of data allowed to be injected into the transmission network; The determining, based on the minimum round-trip delay and the maximum available bandwidth of the transmission network between the receiving end and the receiving end detected in the previous detection cycle, the amount of data transmitted by the transmission network when no queuing delay occurs, includes: The product of the minimum round-trip delay of the transmission network between the receiving end and the receiving end detected in the previous detection cycle and the maximum available bandwidth is calculated to obtain the amount of data transmitted by the transmission network when no queuing delay occurs.
10. The method according to claim 1, characterized in that The determining, based on the estimated available network cache, the sending window size corresponding to the current detection period, includes: Determine the send window size under congestion control; Determining, based on the estimated network available cache, a sending window size that matches the network available cache; The sending window size corresponding to the current detection cycle is determined based on the sending window size under congestion control and the sending window size matching the available network buffer, wherein the sending window size corresponding to the current detection cycle is larger than the sending window size under congestion control.
11. The method according to claim 10, characterized in that The determining, based on the estimated network available cache, a sending window size that matches the network available cache, includes: Get the amount of in-transit data corresponding to the current detection cycle; The difference between the estimated network available buffer and the amount of data in transit is used as a sending window size that matches the network available buffer.
12. The method according to claim 10, characterized in that The determining, based on the sending window size under congestion control and the sending window size matching the available network buffer, the sending window size corresponding to the current detection period includes: The sending window size under congestion control and the sending window size matching the available network buffer are integrated to obtain the sending window size corresponding to the current detection period.
13. A data transmission control device, characterized in that: The device comprises: A network quality information reading module is configured to read network quality information of the transmission network between the receiving end and the transmitting end detected in the previous detection cycle if the real-time category of the data to be transmitted is detected as high real-time category during the current detection cycle, wherein the network quality information includes the maximum available bandwidth and round-trip delay of the transmission network; A network available cache estimation module is used to estimate the network available cache corresponding to the current detection cycle based on the network quality information of the transmission network between the receiving end and the receiving end detected in the previous detection cycle; The data sending module is used to determine the sending window size corresponding to the current detection period according to the estimated network available buffer, and send the to-be-sent data to the receiving end according to the sending window size.
14. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 12 are implemented.
15. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 12 are implemented.
16. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 12 are implemented.
Citation Information
Cited By
Quic protocol-based maximum data volume frame updating method and system
CN122533706A