Techniques for traffic control detection and rate limit estimation for network

By calculating the correlation coefficient and linear fit of the transmission rate and the transformed packet loss rate in the sliding window, the problem of inaccurate rate estimation in network traffic control detection is solved, the detection accuracy and network transmission efficiency are improved, and the flow control is optimized.

CN120263739APending Publication Date: 2025-07-04AGORA LAB INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411481978.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-04
Filing Date
2024-10-23
Publication Date
2025-07-04

AI Technical Summary

Technical Problem

In the prior art, the rate limit estimates of network traffic control are inaccurate, resulting in reduced packet drop and transmission efficiency in real-time multimedia communications, and it is difficult to distinguish between traffic control and random packet loss, increasing network burden.

Method used

By calculating the correlation coefficient and linear fit of the transmission rate and the transformed packet loss rate in the sliding window, we judge whether there is traffic control in the network and estimate the rate limit, and use passive detection methods to avoid additional network traffic overhead.

Benefits of technology

It improves the accuracy of traffic control detection, reduces the error detection rate, optimizes network transmission efficiency, prevents packet loss, and achieves smoother traffic control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120263739A_ABST
    Figure CN120263739A_ABST
Patent Text Reader

Abstract

The invention provides a device and method for network flow control detection and rate limit estimation and a non-transient computer readable medium, and the method comprises the steps: selecting a sampling data packet of which the packet loss rate is greater than a first threshold value from a network, and adding the selected sampling data packet to a sliding window for flow control detection; if the number of the sampling data packets in the sliding window reaches a preset number, calculating a correlation coefficient according to the sending rate and the packet loss rate of one or more sampling data packets in the sliding window; if the correlation coefficient exceeds a second threshold value, judging whether flow control occurs in the network or not according to the sending rate of one or more sampling data packets in the sliding window and the converted packet loss rate; if it is determined that traffic control is occurring, a rate limit estimate of traffic control is calculated according to a reception rate of one or more sampled data packets within the sliding window.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of communications, and particularly to techniques for traffic control detection and rate limit estimation in a network. Background Art

[0002] With the rapid development of networks and related applications, the traffic transmitted in the network is increasing. For example, real-time multimedia (such as audio and / or video) communications have a wide range of applications, such as meetings, live broadcasts, video chat sessions, webinars, etc. As the number of communication sessions in the network increases, the total traffic on the network may approach or exceed the bandwidth limit of the network.

[0003] Network operators can implement traffic control mechanisms on intermediate nodes (such as routers) of the network to manage data flows in the network, thereby optimizing network efficiency and providing a better user experience.

[0004] For example, traffic control can limit the rate of data sending or receiving, and mechanisms such as token buckets and packet dropping can be used to implement traffic control in the network. Token buckets usually have a fixed capacity, and the system adds tokens to the token bucket at a fixed rate. When sending (or routing) packets on the network, a corresponding number of tokens need to be obtained from the token bucket to send the packet. If there are not enough tokens in the bucket, the packet will be dropped, and subsequent packets will also be dropped until one or several new tokens are generated. Summary of the Invention

[0005] The present invention discloses a method, device, and system for implementing traffic control detection and rate limit estimation in a network.

[0006] On the one hand, the present invention proposes a method for traffic control detection and rate limit estimation in a network, including selecting sampling packets with a packet loss rate greater than a first threshold from the network by a processor, and adding the selected sampling packets to a sliding window for traffic control detection. When the number of sampling packets in the sliding window reaches a predetermined number, the processor calculates a correlation coefficient based on the sending rate and packet loss rate of one or more sampling packets in the sliding window; when the correlation coefficient exceeds a second threshold, the processor determines whether traffic control is occurring in the network based on the sending rate and transformed packet loss rate of one or more sampling packets in the sliding window; if it is determined that traffic control is occurring in the network, the processor calculates an estimated value of the rate limit of traffic control in the network based on the receiving rate of one or more sampling packets in the sliding window.

[0007] On the other hand, the present invention includes a device for traffic control detection and rate limit estimation in a network, including a memory and a processor. The processor is configured to execute instructions stored in the memory, and the instructions are used to select sampled data packets with a packet loss rate greater than a first threshold from the network and add the selected sampled data packets to a sliding window for traffic control detection. When the number of sampled data packets in the sliding window reaches a predetermined number, the processor calculates a correlation coefficient based on the transmission rate and packet loss rate of one or more sampled data packets in the sliding window; when the correlation coefficient exceeds a second threshold, the processor determines whether traffic control is occurring in the network based on the transmission rate and transformed packet loss rate of one or more sampled data packets in the sliding window; if it is determined that traffic control is occurring in the network, the processor calculates an estimated value of the rate limit of traffic control in the network based on the reception rate of one or more sampled data packets in the sliding window.

[0008] In a third aspect, the present invention includes a non-transitory computer-readable medium storing instructions, and the instructions are operable to cause one or more processors to perform the operations for traffic control detection and rate limit estimation as described above. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Referring to the drawings when reading the following detailed description will help to better understand the content of the present invention. It should be noted that, according to the convention, the various parts in the drawings are not drawn to actual scale, but the dimensions of each part are arbitrarily enlarged or reduced in the drawings for the sake of clear expression.

[0010] Figure 1 is a system example diagram.

[0011] Figure 2 is a computing device example diagram.

[0012] Figure 3 is a technical flow chart for traffic control detection and rate limit estimation in an embodiment of the present invention.

[0013] Figure 4 is a technical flow chart for traffic control detection and rate limit estimation in another embodiment of the present invention.

[0014] Figure 5 is an example diagram for obtaining the packet loss rate of data packet samples.

[0015] Figure 6 is an example diagram of a traffic control detector at a sending device.

[0016] Figure 7A is an example diagram for determining that no traffic control occurs in the network through linear fitting.

[0017] Figure 7BThis is an example diagram of determining traffic control in a network through linear fitting. DETAILED DESCRIPTION

[0018] Flow control is essential to prevent congestion, optimize network performance, and ensure efficient transmission of data in the network. Network operators can implement flow control mechanisms on intermediate nodes of the network (such as routers) to manage the flow of data on the network, thereby optimizing network efficiency and providing a better user experience.

[0019] As mentioned above, traffic control can limit the rate at which data is sent or received. Traffic control can be implemented in the network using a token bucket and a mechanism for dropping packets. When sending (or routing) a packet on the network, a corresponding number of tokens need to be obtained from the token bucket before the packet can be sent. If there are not enough tokens in the bucket, the packet will be dropped until one or more new tokens are generated. When tokens are added to the token bucket, the traffic rate can be limited. The traffic limit rate can be set by the network operator based on the expected average outbound (egress) rate of limiting network traffic.

[0020] If the generated tokens are not consumed in time, they will continue to accumulate. If there is sudden traffic coming later, they can be consumed at once. In this way, burst traffic that exceeds the rate limit of traffic control in a short period of time can pass. The rate limit of traffic control refers to the maximum allowed rate at which traffic is allowed to flow through a network node (for example, an intermediate node such as a router or switch). For example, the rate limit of traffic control can correspond to the flow limit rate of adding tokens to the token bucket, as described above.

[0021] Due to these characteristics of traffic policing, there are some problems with this strategy. One of the problems is that if the sending device does not accurately estimate the rate limit of traffic policing, the encoding bitrate and sending rate of the real-time multimedia session may exceed the rate limit of traffic policing, resulting in data packets being dropped, which in turn leads to packet loss and reduced quality of experience (QOE). Because traffic policing allows traffic bursts that exceed the rate limit, it is difficult to accurately estimate the rate limit of traffic policing during such traffic bursts.

[0022] Another problem is that for communication services that require retransmission, packet loss will trigger retransmission, which will further increase the amount of data transmitted in the network and cause more serious packet loss under traffic control. This sometimes leads to retransmission storms, which reduces transmission efficiency.

[0023] For a sending device, there are still some challenges in estimating the bandwidth, such as detecting whether there is traffic control in the network and accurately estimating the rate limit during traffic control. A major challenge is that there are many intermediate nodes during the transmission process. Besides traffic control, other factors can also cause packet loss. For example, packet loss may be caused by random packet loss during transmission. For the sending device, it is difficult to effectively distinguish packet loss caused by traffic control from packet loss caused by other factors such as random packet loss.

[0024] Another challenge is that when the sending bitrate is lower than the rate limit of traffic control, it is almost impossible to detect whether there is a traffic control policy on the link during the transmission process.

[0025] In addition, there is also a challenge: the technique of using the "active probing" detection method to detect traffic control may generate additional network traffic overhead and may be blocked by network operators.

[0026] The embodiments of the present invention use "passive" traffic control detection and rate limit estimation to solve these problems and challenges without generating additional network traffic overhead.

[0027] According to the embodiments of the present invention, information on packets being sent and acknowledged received ("ACKed") is used to sample the sending rate, receiving rate, and packet loss rate. The samples are filtered by the packet loss rate. Then the correlation between the filtered sending rate and the transformed packet loss rate is calculated. When the sending rate exceeds the speed limit (traffic control), the excess packets will be discarded due to traffic control. Therefore, the higher the sending rate, the higher the packet loss rate. According to this characteristic, the correlation coefficient between the sending rate and the transformed packet loss rate, such as the Pearson correlation coefficient, can be calculated. Samples with high correlation within a sliding window can be further used to determine whether traffic control is occurring. Linear fitting can be performed on the highly correlated sending rate and the transformed packet loss rate, and the intercept after linear fitting can be used to distinguish between two different packet loss scenarios: traffic control packet loss and random packet loss, which will further reduce the false detection rate of traffic control detection. The average value of the receiving rate in the sliding window (at the receiving end) can be used to estimate the rate limit of traffic control, and this limit can be applied to the congestion control algorithm in the network to adjust the bandwidth estimation (BWE).

[0028] The embodiments of the present invention can be used in conjunction with all types of congestion control algorithms based on bandwidth sampling, and will not affect the congestion control algorithm in the traffic control detection stage, nor require additional traffic. The traffic control detection stage can be adjusted according to the requirements of the computing cost, and is easy to control and adapt.

[0029] Further details of the traffic control detection and rate limit estimation of the network are described herein by referring to the system that can implement the method.

[0030] Figure 1 A diagram of an example of system 100. System 100 includes multiple devices or apparatuses, such as user devices (e.g., sending device 102 and receiving device 104), which communicate (e.g., send and receive multimedia content) via an intermediate node (e.g., intermediate node 120). The intermediate node 120 can include any node on the communication path between the sending device 102 and the receiving device 104 on the network 106. For example, the intermediate node 120 can include a server, a control node, a service node, an edge node (also referred to as an edge server), etc. on the network 106. For example, the control node can be used to control network traffic. Figure 1 Only a certain number of user devices, intermediate nodes, and networks are shown, but it should be understood that there can be more or fewer user devices, intermediate nodes, and networks in system 100. Traffic control can occur at one or more intermediate nodes, such as the intermediate node 120 of the network 106.

[0031] In some implementations, system 100 can be implemented using a general-purpose computer with a computer program that, when executed, performs the methods, algorithms, processes, and / or instructions described herein. It should be noted that Figure 2 the computing device 200 can include, but is not limited to Figure 2 the other components or assemblies shown.

[0032] Each of the user devices 102 and 104 and the intermediate node 120 can be implemented by any number of computers in any configuration, or can also be any number of computers in any configuration, such as a microcomputer, a mainframe computer, a supercomputer, a general-purpose computer, an integrated computer, a database computer, or a remote server computer. The user devices among the user devices 102 and 104 can be any end-user device capable of multimedia communication, such as a smartphone, a camera, a desktop computer, a laptop computer, a workstation computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), a wearable computing device, or a computing device provided by a computing service provider (e.g., a network host or a cloud service provider). The hardware configuration of the user devices 102 and 104 and the intermediate node 120 can be as shown in the Figure 2 computing device 200, or can also adopt other configurations.

[0033] The network 106 can be any combination of any suitable type of physical or logical network, such as a wireless network, a wired network, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), a cellular data network, a Bluetooth network, an infrared connection, an NFC connection, or the Internet. The network 106 can be viewed as an infrastructure for implementing (e.g., enabling, executing, etc.) a media session. The network 106 can also include other components in addition to the components described below. For example, the network 106 can include components or services for signaling, network address translation (NAT), firewall traversal, authentication, routing, etc.

[0034] The intermediate nodes of network 106 (such as intermediate node 120) can be interconnected with each other. The intermediate nodes of network 106 (such as intermediate node 120) can also be connected to user devices (such as Figure 1 102 and 104 are shown). Intermediate nodes that are directly connected to user devices may be referred to as "edge servers."

[0035] In the present invention, "direct connection" refers to establishing a connection between a first node and a second node in a network without going through an intermediate node, a routing node or a forwarding node. In other words, a direct connection enables data to be sent and received between a first node and a second node without the assistance or forwarding of any other node in the network. It should be noted that "direct connection" is at the application level of the network, and establishing a "direct connection" does not exclude the use of auxiliary or coordinating devices or equipment, for example, the use of gateways, routers, switches and other routing or forwarding devices that are not application-level nodes of the network.

[0036] The intermediate node can receive multimedia data (e.g., data of a media session) from different user devices and forward the multimedia data to different user devices. The connection between the nodes can be bidirectional or unidirectional. In some embodiments, the intermediate node can switch between the roles of edge node and router node at different times, or act as both at the same time.

[0037] The network 106 can be implemented at the application layer of the computing network. For example, in the TCP / IP model, the computer communication network can be divided into multiple layers. For example, in a layered order from bottom to top, the multiple layers can include a physical layer, a network layer, a transport layer, and an application layer. Each of the aforementioned layers can serve the layer above it and can be served by the layer below it. The application layer can be a TCP / IP layer that directly interacts with the end user using a software application. The network 106 can be implemented as an application layer software module. In addition, part or all of the network 106 can be a public network (such as the Internet). In other words, the data traffic of the network 106 can be partially routed through the public network.

[0038] Figure 2It is an example diagram of a computing device 200. The computing device 200 may include a processor 202, a memory 204, an input / output (I / O) device 206, and a network interface 208.

[0039] The processor 202 can be any type of device capable of operating on or processing information. In some embodiments, the processor 202 may include a central processing unit (such as a central processing unit, i.e., CPU). In some embodiments, the processor 202 may include a graphics processing unit (such as a graphics processing unit, i.e., GPU). Although shown as a single processor in the figure, the computing device 200 may also use multiple processors. For example, the processor 202 may include multiple processors distributed across multiple machines (each machine having one or more processors), and these machines may be directly connected or indirectly connected via a network (such as a local area network).

[0040] The memory 204 can include any transient or non-transient storage device capable of storing code and data that can be accessed by the processor (via a bus). The memory 204 described herein may be a random access memory (RAM), a read-only memory (ROM), an optical disk / disk, a hard disk, a solid-state drive, a flash drive, a secure digital (SD) memory card, a memory stick, a compact flash (CF) card, or any suitable combination of storage devices. In some embodiments, the memory 204 may be distributed across multiple machines, such as network-based memory or cloud-based memory. The memory 204 may store data (not shown in the figure), an operating system (not shown), and one or more applications (not shown). The data can be any data for processing (such as an audio stream, a video stream, or a multimedia stream). The application may contain one or more programs that allow the processor 202 to implement instructions for generating control signals to implement the technical functions described below. The application may include an encoder, or may be an encoder, for encoding a media stream and transmitting it to another device. The application may include a decoder, or may be a decoder, for receiving a compressed media stream, decoding (i.e., decompressing) the compressed media stream, and storing or displaying the media stream at the computing device 200. The application may be or may include one or more techniques for calculating a scaling factor for the uplink bandwidth.

[0041] In some embodiments, computing device 200 may also include auxiliary (e.g., external) storage devices (not shown). If the above auxiliary storage devices are used, additional storage space can be provided during high processing demands. The auxiliary storage device can be a storage device in the form of any suitable non-transitory computer-readable medium, such as a memory card, a hard disk drive, a solid state drive, a flash drive, or an optical drive, etc. In addition, the auxiliary storage device can be a component of computing device 200 or a shared device that computing device 200 can access through a network. In some embodiments, the application programs in memory 204 can be stored in whole or in part in the auxiliary storage device and loaded into memory 204 for processing as needed.

[0042] I / O device 206 can be implemented in various ways. For example, the I / O device may include a display adapted to device 200, and the display is configured to display a rendered image of graphical data. The I / O device 206 can be any device capable of transmitting visual, auditory, or tactile signals to a user, such as a display, a touch-sensitive device (e.g., a touch screen), a speaker, headphones, a light-emitting diode (LED) indicator, or a vibration motor, etc. The I / O device 206 can also be any type of input device that requires or does not require user intervention, such as a keyboard, a numeric keypad, a mouse, a trackball, a microphone, a touch-sensitive device (such as a touch screen), a sensor, or a gesture-sensing input device. The display can be a liquid crystal display (LCD), a cathode ray tube (CRT), or any other output device capable of providing a visible output to an individual. In some cases, the output device can also serve as an input device, such as a touch screen display that receives touch-based input.

[0043] The network interface 208 can be used to transmit signals and / or data to another device (via a communication network such as network 106). For example, the network interface 208 can include a wired device for transmitting signals or data from the computing device 200 to another device. As another example, the network interface 208 can include a wireless transmitter or receiver that uses a protocol compatible with wireless transmission. The network interface 208 can be implemented in various ways, such as a transceiver device, a modem, a router, a gateway, a system-on-chip (SoC), a wired (e.g., RJ-45) network adapter, a wireless (e.g., Wi-Fi) network adapter, a Bluetooth adapter, an infrared adapter, a near-field communication (NFC) adapter, a cellular network antenna, or any combination of any suitable type of device capable of providing the function of communicating with network 106. In some embodiments, the network interface 208 can be a general network interface and is not specifically adapted to a dedicated network or a network protocol of a dedicated network (e.g., closed-source, proprietary, non-open, or non-public). For example, the network interface can be a general network interface that supports the Transmission Control Protocol / Internet Protocol (TCP / IP) communication protocol family (or "components"). As another example, the network interface can be a general network interface that only supports the TCP / IP communication protocol family. It should be noted that the network interface 208 can be implemented in various ways and is not limited to the above examples.

[0044] Without departing from the scope of the present disclosure, the computing device 200 can include more or fewer components, modules, hardware modules, or software modules for performing real-time multimedia communication functions.

[0045] Figure 3 is a flowchart of a technique 300 for traffic control detection and rate limit estimation in a network in one embodiment. The technique 300 can be implemented by a device (such as the sending device 102) connected to a network (such as network 106) to participate in a communication session (such as an audio or video communication). For example, a media stream captured or generated at the device can be encoded by an encoder (such as a video and / or audio encoder) of the device (such as the sending device 102) and then transmitted over the network to one or more receiving devices ("receivers"), such as the receiving device 104. The technique 300 can be implemented at the Figure 1 network layer of the sending device 102.

[0046] The technique 300 can be implemented as a software program run by a computing device such as the sending device 102 or the computing device 200. The software program can include computer-readable instructions that can be stored in a memory (such as the memory 204 or an auxiliary storage device), and when executed by a processor (such as the processor 202), can cause the computing device to run the technique 300. The technique 300 can be implemented using dedicated hardware or firmware. Multiple processors and memories can be used.

[0047] At step 302, technique 300 obtains the transmission rate, reception (ACK) rate, and packet loss rate of samples within a fixed period T. Information related to the transmitted and acknowledged received ("ACKed") data packets is used to sample the transmission rate, ACK rate, and packet loss rate. The sample may include data packets sampled from network 106. For example, data packets may be periodically sampled from a network such as network 106. The periodically sampled data packets may include regularly sampled data packets, may include irregularly (e.g., randomly) sampled data packets, or data packets sampled at time intervals set according to changing network conditions. The sample may be obtained by or otherwise received by a user equipment such as transmitting device 102, and may include data packets transmitted during a media session of each connected device (e.g., a media session between a user equipment such as transmitting device 102 and receiving device 104).

[0048] For example, in some embodiments, the transmission rate may be obtained based on the total number of bytes transmitted within the current transmission sampling period and the time interval of the current transmission sampling period. A transmission sample refers to the sampled data packet transmitted from the transmitting device to the network.

[0049] The time interval of the current transmission sampling period (which may be represented by T send may be obtained based on the transmission timestamp of the most recently acknowledged data packet (which may be represented by sent t2 and the transmission timestamp of the last acknowledged data packet in the previous transmission sampling period (before the current transmission sampling period) (which may be represented by sent t1 The difference between them is obtained. For Figure 5 example, "T_send" is an example time interval of the current transmission sampling period, which can be obtained by calculating the difference between 504 and 502, where 504 and 502 represent the transmission times of the most recently acknowledged data packet and the last acknowledged data packet in the previous transmission sampling period, respectively.

[0050] For example, the total number of bytes transmitted within the current transmission sampling period may be represented by total_pkts_sent intvl and may be obtained by calculating the difference between the total number of transmitted bytes (represented by total_pkts_sent t2 when the most recently acknowledged data packet is received within the current transmission sampling period and the total number of transmitted bytes (represented by total_pkts_send t1 in the previous transmission sampling period. Referring to the example of Figure 5 total_pkts_sent intvl represents the total number of bytes transmitted in the current transmission sampling period "T_send", which is between 504 and 502.

[0051] Transmission rate send_rate t2 It can be obtained by dividing the total number of bytes transmitted within the current transmission sampling period by the time interval of the current transmission sampling period. The example is as follows:

[0052]

[0053] The reception rate can be obtained by referring to a similar logic as the transmission rate. For example, the reception rate can be obtained based on the total number of bytes acknowledged for reception within the current acknowledgment reception (ACK) sampling period and the time interval of the current acknowledgment sampling period. Acknowledgment reception sampling refers to sampling the data packets acknowledged by the receiving device as received.

[0054] The time interval of the current acknowledgment sampling period (denoted by T ack ) can be obtained by the difference between the reception time (such as the timestamp) of the latest acknowledged data packet (denoted by ack t2 ) and the reception time of the previous acknowledged data packet in the previous acknowledgment sampling period (denoted by ack t1 ). Taking Figure 5 as an example, "T_ack" is an example time interval of the current acknowledgment sampling period, which can be obtained by calculating the difference between 508 and 506. 508 and 506 represent the reception times of the latest acknowledged data packet and the last acknowledged data packet (at the sending end) in the previous acknowledgment sampling period respectively.

[0055] For example, the total number of bytes acknowledged for reception within the current acknowledgment sampling period can be represented by total_pkts_ack intvl and can be obtained by calculating the difference between the total number of bytes of the data packets acknowledged for reception within the current acknowledgment sampling period (which can be represented by total_pkts_ack t2 ) and the total number of bytes of the data packets acknowledged for reception within the previous acknowledgment sampling period (which can be represented by total_pkts_ack t1 ).

[0056] The acknowledgment reception rate (ack_rate t2 ) can be obtained by dividing the total number of bytes acknowledged for reception within the current acknowledgment sampling period by the time interval of the current acknowledgment sampling period. The example is as follows:

[0057]

[0058] The packet loss rate can be obtained by calculating the difference between the total number of bytes transmitted within the current transmission sampling period and the total number of bytes acknowledged for reception within the current acknowledgment sampling period. For example, the packet loss rate can be calculated by the following equation:

[0059]

[0060] It is also possible not to use the above examples, but to use other methods to obtain the transmission rate, reception rate, and packet loss rate.

[0061] At step 304, if the packet loss rate obtained at step 302 is greater than the first threshold, technique 300 will select this sample. The first threshold can be denoted as δ l . The first threshold can be a value close to 0. For example, the first threshold can be set to 0.01 or even a smaller value. The purpose of this threshold is to filter out samples with a transmission rate lower than the traffic control speed limit. These samples will not be affected by the traffic control speed limit and may thus affect subsequent judgments. The selected samples will be added to a sliding window. For the selected samples added to the sliding window, the transmission rate, reception rate, and packet loss rate of the samples obtained at step 302 can be used for correlation acquisition at step 306.

[0062] For example, in some embodiments, technique 300 can open an empty sliding window. Within each fixed period T, the samples selected at step 304 can be added to the sliding window. When the number of samples in the sliding window exceeds W (which can be a fixed number or set according to network conditions, etc.), the earliest sample in the sliding window will be removed to ensure that the number of samples in the sliding window always remains at W.

[0063] It is also possible not to use the sliding window as described above, but to use other window-based changes or other mechanisms to collect the selected samples.

[0064] At step 306, technique 300 determines whether the size of the sliding window (i.e., the number of samples used for calculating the correlation) has reached W. If it has, then at step 308, technique 300 calculates the correlation coefficient between the transmission rate and the packet loss rate in the sliding window. If the size of the sliding window is still below W, technique 300 returns to step 302 to obtain the above rates for more samples.

[0065] In the case of traffic control, the queuing delay of data packets in the network is usually very short. Therefore, the time interval T send and T ack tend to be equal, as Figure 5 shown. Therefore, based on the assumption that T send and T ack tend to be equal, both the numerator and denominator on the right side of Equation 3 can be divided by T send , and it can be considered that the transmission rate and packet loss rate of the samples conform to the numerical relationship represented by the following equation:

[0066]

[0067] Since the rate limit of traffic control is usually fixed, the receiving rate ack_rate can be regarded as a constant. According to Equation 4, it can be known that the sending rate send_rate is positively correlated with 1 / (1-loss_rate). Thus, the transformed loss rate used to calculate the correlation coefficient can be obtained as follows:

[0068] loss_trans i = 1 / (1-loss_rate i ) (Equation 5)

[0069] where loss_trans i represents the packet loss rate of the i-th sample after transformation, and loss_rate i represents the packet loss rate of the i-th sample.

[0070] The correlation coefficient can be the Pearson correlation coefficient. For example, the correlation coefficient between the transformed packet loss rate and the sending rate can be obtained as follows:

[0071]

[0072] where r represents the correlation coefficient, send_rate i represents the sending rate of the i-th sample, is the average value of the sending rate within the sliding window, is the average value of the transformed packet loss rate within the sliding window.

[0073] At step 310, Technique 300 determines whether the correlation coefficient is higher than the second threshold. The second threshold is represented by δ r . The second threshold can be a value close to 1 to obtain samples with high correlation. For example, the threshold can be set to 0.9 or even a larger value. If the correlation coefficient exceeds δ r , then at step 312, Technique 300 performs a linear fitting operation on the sending rate and the transformed packet loss rate of the samples in the sliding window to obtain the intercept b. This will help distinguish between packet loss due to traffic control and packet loss due to random packet loss.

[0074] In the case of random packet loss, the sending rate send_rate can be expressed as the sum of the applied service code rate send_rate a and the retransmission code rate send_rate r , where the retransmission code rate is positively correlated with the transformed packet loss rate, as follows:

[0075] send_rate = send_rate a + k' * loss_trans (Equation 7)

[0076] By comparing Equation 7 and Equation 4, it can be seen that in the case of traffic control, the linear fit of the send rate and the transformed packet loss rate will pass through the (0,0) coordinate, that is, the intercept b ≈ 0. Figure 7B is an example of a linear fit in the case of traffic control, which is based on the actual data collected in the experiment, where the intercept b2 of the linear fit result is close to 0. At the same time, in the case of random packet loss, the intercept b obtained from the linear fit of the send rate and the transformed packet loss rate is approximately b ≈ send_rate a . Figure 7A shows an example of the random packet loss case, in which the intercept b1 of the linear fit result is much higher than 0. As Figure 7A and 7B shown, the intercept b of the linear fit can be used to distinguish between the traffic control scenario and the random packet loss scenario, so as to more accurately determine whether traffic control is occurring in the network.

[0077] There are many ways to obtain the intercept b. For example, the intercept b and the slope k can be calculated by the following methods:

[0078]

[0079]

[0080] Please note that Equation 8 and Equation 9 are only examples. Other methods can also be used to linearly fit and calculate the intercept b (or the slope k), not limited to the methods of Equation 8 and 9. In addition, variants or alternatives of linear fitting can also be used, such as various regression techniques. There are various ways to use the intercept b to distinguish between the traffic control scenario and the random packet loss scenario. For example, in the random packet loss scenario, both the intercept b and the slope k are close to or at least of the same order of magnitude as the applied service bit rate, and the service bit rates of various applications can vary in different scenarios. Therefore, the transformed intercept b_trans can be obtained by the following formula:

[0081] b_trans = b / k (Equation 10)

[0082] where b and k can be obtained from Equation 9. Using the transformed intercept b_trans helps to define a more unified threshold applicable to different service bit rate scenarios of various applications, as detailed below.

[0083] As long as the threshold of the intercept is set in a way that can distinguish between the random packet loss and traffic control scenarios, the intercept b can also be used directly without transformation.

[0084] At step 314, technique 300 determines whether the transformed intercept b_trans is below an intercept threshold. The intercept threshold is denoted by δ b . The intercept threshold can be a value close to 0. For example, the threshold can be set to 0.1 or even a smaller value. If the transformed intercept b is below the intercept threshold, then at step 316, technique 300 determines that traffic shaping is occurring ("traffic shaping detected") and the average of the sample reception rates within the sliding window can be used as an estimate of the rate limit for traffic shaping. As described above, as long as the intercept threshold is set to a value that can distinguish between random packet loss and traffic shaping scenarios, the intercept b can also be compared with the intercept threshold without transformation.

[0085] For example, the rate limit estimate for traffic shaping can be obtained as follows:

[0086]

[0087] The rate limit estimate for traffic shaping (denoted as bw policing ) can be used to adjust the bandwidth estimate (BWE) of the congestion control algorithm in the system (such as system 100) at step 318. In the case of traffic shaping detection, the transmission rate limit in the network can achieve smoother traffic control and prevent packet loss.

[0088] In an Figure 6 illustrative example, a traffic shaping detector can be set at the sending device to determine whether traffic shaping is occurring in the network. The traffic shaping detector can be implemented by the sending device (such as the sending device 102 in Figure 1 ). The traffic shaping detector can be implemented according to one or more operations of the above-described technique 300, or according to one or more operations of technique 400, as described below. The traffic shaping detector can have input parameters, such as send_time, ack_time, total_sent, and total_acked, and its output can include: determining whether traffic shaping is occurring in the network, estimating the rate limit, adjusting the congestion control algorithm, or a combination of the above. The parameter send_time represents the time (such as a timestamp) of the last packet (such as packet L) that has been acknowledged as received from the sending device to the receiving device in the network. The parameter ack_time represents the time (such as a timestamp) when the sending device receives the acknowledgment (ACK) of packet L, acknowledging that the receiving device has successfully received packet L. The parameters send_time and ack_time can be used to obtain the time intervals T send and T ackA time interval, as described at 302 above. For example, the time interval of the current transmission sampling period can be obtained by using the difference between the current transmission sampling period and the parameter send_time of the previous transmission sampling period. The parameter ack_time can be obtained in a similar manner. As described above, the parameters total_sent and total_acked respectively represent the total number of bytes of the data packets sent or acknowledged during the current (transmission or acknowledgment) sampling period. Then, various rates such as the transmission rate, ACK rate, and loss rate can be obtained according to step 302.

[0089] Figure 4 is a flowchart of a technique 400 for traffic control detection and rate limit estimation for a network in another embodiment. Technique 400 can be similar to Figure 3 technique 300, or can be based on Figure 3 technique 300. Without repeating every detail already described in technique 300, technique 400 will be elaborated below with reference to technique 300 and its examples. Technique 400 can be implemented as Figure 1 software and / or hardware modules in system 100 in Figure 1 . For example, technique 400 can be implemented as a software module of a sending device (such as the sending device 102 in Figure 2 ). Again, for example, the software module implementing technique 400 can be stored in the memory of the sending device 102 (such as the memory 204 in Figure 2 ) as instructions and / or data executable by the processor of the sending device 102 (such as the processor 202 in

[0090] In some implementations, technique 400 can include obtaining sampled data packets (e.g., bandwidth samples), including data packets periodically sampled from a network (e.g., network 106). The periodically sampled data packets can include data packets sampled regularly or irregularly (e.g., randomly) at a fixed time interval, or can include data packets sampled according to a time interval set according to changing network conditions. The bandwidth samples can be obtained by a user device (such as the sending device 102), including data packets transmitted during a communication session of various interconnected devices (e.g., a media session between the sending device 102 and the receiving device 104). As used in the present invention, "obtaining" can refer to forming, generating, selecting, identifying, constructing, determining, receiving, specifying, generating, or obtaining in any way, etc.

[0091] At step 402, technique 300 selects sampled data packets from the network with a packet loss rate greater than a first threshold, and adds the selected sampled data packets to a sliding window for traffic control detection.

[0092] In some implementations, the total number of bytes of data packets sent and received in the current sampling period can be used to obtain the packet loss rate of the sampled data packets. The calculation methods of the packet loss rate and the transmission rate and acknowledgment reception rate described below are similar to step 302. For example, similar to Equation 3, the packet loss rate of the sampled data packets can be obtained according to the following equation:

[0093]

[0094] where total_pkts_sent intvl represents the total number of bytes sent in the current sampling period, total_pkts_ack intvl represents the total number of bytes acknowledged and received in the current sampling period, intvl represents the time interval of the current sampling period, and loss_rate represents the packet loss rate of the sampled data packets.

[0095] At step 404, if the number of sampled data packets in the sliding window reaches a predetermined number, technique 400 calculates a correlation coefficient based on the transmission rate and packet loss rate of one or more sampled data packets in the sliding window.

[0096] In some embodiments, the correlation coefficient can be calculated based on the transmission rate and packet loss rate of each sampled data packet in the sliding window.

[0097] In some embodiments, the correlation coefficient can be the Pearson correlation coefficient.

[0098] In some embodiments, the correlation coefficient can be calculated according to the result of Equation 6.

[0099] The above-mentioned predetermined number can be W described in step 304.

[0100] Similar to step 306, in some embodiments, the numerical relationships between the transmission rate and packet loss rate obtained from the sampled data packets conform to the following equation:

[0101]

[0102] where send_rate and ack_rate respectively represent the transmission rate and reception rate of the sampled data packets.

[0103] In some embodiments, the transformed packet loss rate of the i-th sample in the sliding window can be obtained based on the result of Equation 5.

[0104] In some embodiments, if the number of sampled data packets in the sliding window exceeds a predetermined number, Technique 400 will also remove the sampled data packet with the earliest timestamp from the sliding window before calculating the correlation coefficient at step 404 until the number of sampled data packets in the sliding window drops to the predetermined number.

[0105] At step 406, if the correlation coefficient calculated at step 404 exceeds a second threshold, Technique 400 will determine whether traffic shaping is occurring in the network based on the transmission rate and the transformed packet loss rate of one or more sampled data packets in the sliding window.

[0106] In some implementations, it is possible to determine whether traffic shaping is occurring in the network based on the transmission rate and the transformed packet loss rate of each sampled data packet in the sliding window.

[0107] In some embodiments, it is possible to determine whether traffic shaping is occurring in the network by performing a linear fitting operation on the transmission rate and the transformed packet loss rate in the sliding window, including obtaining an intercept by performing a linear fitting operation on the transmission rate and the transformed packet loss rate of each sampled data packet within the sliding window, and determining whether traffic shaping is occurring in the network based on the intercept. Similar to step 310, the intercept can be obtained based on the slope, and the slope can be obtained based on the transmission rate and the packet loss rate, as shown in equations 8 and 9 respectively, or other methods of calculation can also be used.

[0108] In some embodiments, if it is confirmed that the transformed intercept is within a third threshold, Technique 400 will determine that traffic shaping is occurring in the network. If it is confirmed that the transformed intercept exceeds the third threshold, Technique 400 will determine that no traffic shaping is occurring in the network. The third threshold can be a value close to 0. For example, the threshold can be set to 0.1 or a smaller value.

[0109] At step 408, if it is determined at step 406 that traffic shaping is occurring in the network, Technique 400 will calculate an estimated rate limit for traffic shaping in the network based on the reception rate of one or more sampled data packets in the sliding window.

[0110] In some embodiments, it is possible to calculate an estimated rate limit for traffic shaping in the network based on the reception rate of each sampled data packet in the sliding window.

[0111] In some embodiments, the estimated rate limit for traffic shaping can be obtained by taking the average of the reception rates of all sampled data packets in the sliding window. For example, the estimated rate limit for traffic shaping can be calculated according to equation 10 at step 316.

[0112] In some embodiments, if it is determined at step 406 that traffic shaping is occurring in the network and after calculating an estimated rate limit for the traffic shaping at step 408, technique 400 will adjust the bandwidth estimate (BWE) based on the estimated rate limit for the traffic shaping for congestion control in the network.

[0113] Details are not repeated here. The examples described above in conjunction with Figure 5 , Figure 6 , Figure 7A and Figure 7B also equally apply to illustrate technique 400 and its related operations.

[0114] As described above, those skilled in the art should understand that all or part of the content described herein can be implemented using a general-purpose computer or processor with a computer program that, when run, can execute any corresponding techniques, algorithms, and / or instructions described herein.

[0115] The computing devices, as well as the algorithms, methods, instructions, etc. stored thereon and / or executed thereby, according to the present invention can be implemented by hardware, software, or any combination thereof. The hardware can include a computer, an intellectual property (IP) core, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), an optical processor, a programmable logic controller, microcode, a microcontroller, a server, a microprocessor, a digital signal processor, or any other suitable circuitry. In the claims, the term "processor" should be understood to include any of the above and can be one or a combination of several of them.

[0116] The various functions according to the present invention can be described in terms of functional components and various processing operations. The processes and sequences described in the present invention can be executed individually or in any combination. The functional modules can be implemented by any number of hardware and / or software components that can run specific functions. For example, the content described above can be implemented using various integrated circuit components, such as memory elements, processing elements, logic elements, look-up tables, etc., which can execute various functions under the control of one or more microprocessors or other control devices. Similarly, for the content of the present invention implemented by software programming or software programs, any programming or scripting language such as C, C++, Java, assembly language, etc. can be used, and any combination of any data structures, objects, processes, routines, or other programming elements can be used to execute various algorithms. The various functions can be implemented by executing algorithms on one or more processors. In addition, the various functions according to the present invention can be configured electronically, signal-processed, and / or controlled, data-processed, etc. using any number of conventional techniques. The terms "mechanism" and "element" are widely used herein, but are not meant to be limited to implementation by mechanical or physical means, but can include software routines adapted to run on a processor, etc.

[0117] Embodiments or some embodiments of the present invention may take the form of a computer program product, which can be accessed through a computer-usable medium or a computer-readable medium, etc. The computer-usable medium or the computer-readable medium can be any suitable device that can specifically contain, store, transmit, or transfer a program or data structure for use by or in connection with any processor. The form of the medium can be electronic, magnetic, optical, electromagnetic, or semiconductor devices, etc., and of course other applicable media can also be included. The above-mentioned computer-usable medium or computer-readable medium can be referred to as non-transitory memory or medium, and can include RAM or other volatile memory or storage devices, which can change over time. Unless otherwise specifically stated in the text, the device memory described herein is not necessarily physically equipped in the device, but can be remotely accessed by the device and does not have to be adjacent to other physically equipped memories in the device.

[0118] One or more functions executed in the embodiments of the present invention can be implemented by machine-readable instructions in the form of code, which are used to operate the above one or more hardware combinations. The computing code can be implemented in the form of one or more modules, through which the functions of one or more combinations can be executed as computing tools. When the methods and systems of the present invention are running, input and output data are transmitted between each module and one or more other modules.

[0119] Terms such as "signal" and "data" can be used interchangeably in this article. In addition, the functions of each part of the computing device do not necessarily have to be implemented in the same way. Information, data, and signals can be represented using a variety of different technologies and methods. For example, any data, instructions, commands, information, signals, bits, symbols, and chips mentioned in this article can be represented by one or more combinations of voltage, current, electromagnetic waves, magnetic fields or particles, optical fields or particles, etc.

[0120] The present invention uses the term "example" to mean an example, instance, or illustration. Any aspect or design described herein for "example" does not necessarily represent the best implementation of the present invention. The term "example" is used to present concepts in a specific way. Additionally, the phrases "one aspect" or "an aspect" are used multiple times throughout the text, but do not necessarily mean the same embodiment or have the same function.

[0121] The "or" used in the present invention is intended to mean an inclusive "or" rather than an exclusive "or". That is, "X includes / contains A or B" is intended to mean any natural inclusive arrangement, unless otherwise stated or clearly determinable from the context. In other words, "X includes A or B" can mean any of the following: X includes A; X includes B; X includes A and B. By analogy, "X includes one of A and B" means "X includes A or B". The term "and / or" used herein is intended to mean "and" or an inclusive "or". That is, "X includes A, B, and / or C" is intended to mean that X can include any combination of A, B, and C, unless otherwise stated or clearly indicated by the context. In other words, if X includes A, X includes B, X includes C, X includes A and B, X includes B and C, X includes A and C, or X includes all of A, B, and C, then each or any combination of the above cases satisfies the description of "X includes A, B, and / or C". By analogy, "X includes one or more of A, B, and C" is equivalent to "X includes A, B, and / or C".

[0122] "Includes" or "has" and their synonyms in the present invention are intended to mean including the items listed thereafter, their equivalents, and other additional items. Depending on the context, the word "if" herein can be interpreted as meaning "when", "while", or "assuming", etc.

[0123] In the content of the present invention (especially in the claims), "a", "an", "the", and "said" and similar demonstrative pronouns should be understood to include both singular and plural forms of one and more. In addition, the description of a numerical range herein is only a convenient description method, intended to mean each individual value included within that range, and each individual value is incorporated into the said range, equivalent to being individually enumerated herein. Finally, the steps of all the methods described herein can be executed in any suitable order, unless otherwise stated herein or clearly contradictory to the context. The use of examples or exemplary language (such as "such as") provided herein is intended to better illustrate the present invention and is not intended to limit the scope of the present invention, unless otherwise stated.

[0124] Various headings and subheadings are used herein to list enumerated items. The inclusion of these is for the purpose of enhancing readability and simplifying the process of finding and referencing materials. These headings and subheadings are not intended to, and do not, affect the interpretation of the claims or limit the scope of the claims in any way. The specific embodiments shown and described herein are illustrative examples of the present invention and are not intended to limit the scope of the present invention in any way.

[0125] All references cited herein (including publications, patent applications, and patents, etc.) are incorporated herein by reference, which is equivalent to individually and specifically indicating that each reference is incorporated herein by reference and covers all relevant content of the reference.

[0126] Although the present invention has been described in connection with certain embodiments and implementations, it should be understood that the present invention is not limited to the implementations disclosed herein. The disclosure of the present invention is intended to cover various variations and equivalent schemes within the scope of the claims, and this scope should be given the broadest interpretation to cover all the above-mentioned variations and equivalent schemes permitted by law.

Claims

1. A method for detecting network traffic control and estimating rate limits, comprising: The processor selects sampled data packets with a packet loss rate greater than a first threshold from the network, and adds the selected sampled data packets to a sliding window for traffic control detection; If the number of sampled data packets in the sliding window reaches a predetermined number, the processor calculates a correlation coefficient based on the transmission rate and packet loss rate of one or more of the sampled data packets in the sliding window; If the correlation coefficient exceeds a second threshold, the processor determines whether traffic control is occurring in the network based on the transmission rate and transformed packet loss rate of one or more of the sampled data packets in the sliding window; And If it is determined that traffic control is occurring in the network, the processor calculates an estimated rate limit of the traffic control in the network based on the reception rate of one or more of the sampled data packets in the sliding window.

2. The method according to claim 1, wherein: The correlation coefficient is calculated based on the transmission rate and packet loss rate of each of the sampled data packets in the sliding window; It is determined whether traffic control occurs in the network based on the transmission rate and transformed packet loss rate of each of the sampled data packets in the sliding window, or The estimated rate limit of the traffic control in the network is calculated based on the reception rate of each of the sampled data packets in the sliding window.

3. The method according to claim 1, wherein, The processor determines whether traffic control is occurring in the network based on the transmission rate and transformed packet loss rate of one or more of the sampled data packets in the sliding window, including: The processor calculates an intercept by performing a linear fitting operation on the transmission rate and transformed packet loss rate of one or more of the sampled data packets in the sliding window; and The processor determines whether traffic control is occurring in the network based on the intercept.

4. The method according to claim 3, wherein The processor determines whether traffic control is occurring in the network based on the intercept, including: If it is confirmed that the transformed intercept is within a third threshold, it is determined that traffic control is occurring in the network, where the transformed intercept is derived from the intercept; and If it is confirmed that the transformed intercept exceeds the third threshold, it is determined that no traffic control has occurred in the network.

5. The method according to claim 1, wherein The packet loss rate of the sampled data packet is calculated according to the following equation: Among them, total_pkts_sent intvl represents the total number of bytes sent during the current sampling period, total_pkts_ack intvl represents the total number of bytes received and acknowledged during the current sampling period, and loss_rate represents the packet loss rate of the sampled data packets.

6. The method according to claim 5, wherein, The transmission rate and packet loss rate of the sampled data packet conform to the numerical relationship shown in the following formula: Where send_rate and ack_rate respectively represent the transmission rate and reception rate of the sampled data packet.

7. The method according to claim 1, wherein The transformed packet loss rate of the i-th sample in the sliding window is obtained according to the following equation: loss_trans i = 1 / (1 - loss_rate i ) Among them, loss_trans i represents the packet loss rate after transformation of the i-th sample, and loss_rate i represents the packet loss rate of the i-th sample.

8. The method according to claim 7, wherein The correlation coefficient is obtained according to the following equation: where r represents the correlation coefficient, W represents the predetermined number of the sliding window, and send_rate I represents the sending rate of the i-th sample.

9. The method according to claim 1, further comprising: If the number of the sampled data packets in the sliding window exceeds the predetermined number, before calculating the correlation coefficient, the sampled data packet with the earliest timestamp is removed from the sliding window until the number of the sampled data packets in the sliding window is reduced to the predetermined number.

10. The method according to claim 1, wherein The estimated rate limit of the traffic control is calculated by the average value of the reception rates of all the sampled data packets in the sliding window.

11. The method according to claim 1, further comprising: If it is determined that traffic shaping is occurring in the network, adjust the bandwidth estimation (BWE) for congestion control in the network according to the estimated rate limit of the traffic shaping.

12. An apparatus for detecting network traffic shaping and estimating rate limits, comprising: a memory; and a processor configured to execute instructions stored in the memory to: Select sampled data packets with a packet loss rate greater than a first threshold from the network, and add the selected sampled data packets to a sliding window for traffic shaping detection; If the number of the sampled data packets in the sliding window reaches a predetermined number, calculate a correlation coefficient according to the transmission rate and the packet loss rate of one or more of the sampled data packets in the sliding window; If the correlation coefficient exceeds a second threshold, determine whether traffic shaping is occurring in the network according to the transmission rate and the transformed packet loss rate of one or more of the sampled data packets in the sliding window; and If it is determined that traffic shaping is occurring in the network, determine an estimated rate limit of the traffic shaping in the network according to the reception rate of one or more of the sampled data packets in the sliding window.

13. The apparatus according to claim 12, wherein: Calculate the correlation coefficient according to the transmission rate and the packet loss rate of each sampled data packet in the sliding window; Determine whether traffic shaping occurs in the network according to the transmission rate and the transformed packet loss rate of each sampled data packet in the sliding window; Or, The estimated rate limit of the traffic shaping in the network is calculated according to the reception rate of each sampled data packet in the sliding window.

14. The device according to claim 12, wherein, The instructions for determining whether traffic shaping is occurring in the network according to the transmission rate and the transformed packet loss rate of one or more of the sampled data packets in the sliding window include: Performing a linear fitting operation on the transmission rate and the transformed packet loss rate of one or more of the sampled data packets in the sliding window to calculate an intercept; and Determining whether traffic shaping is occurring in the network according to the intercept.

15. The device according to claim 14, wherein, The instructions for determining whether traffic shaping is occurring in the network according to the intercept include: If it is confirmed that the transformed intercept is within a third threshold, determine that traffic shaping is occurring in the network, where the transformed intercept is derived from the intercept; and If it is confirmed that the transformed intercept exceeds the third threshold, determine that traffic shaping does not occur in the network.

16. The device according to claim 12, wherein, The packet loss rate of the sampled data packet is obtained according to the following equation: Among them, total_pkts_sent intvl represents the total number of bytes sent in the current sampling period, and total_pkts_ack intvl represents the total number of bytes acknowledged and received in the current sampling period. The loss_rate represents the packet loss rate of the sampled data packets.

17. The apparatus according to claim 16, wherein, The transmission rate and the packet loss rate of the sampled data packet conform to the numerical relationship shown in the following formula: where send_rate and ack_rate respectively represent the transmission rate and the reception rate of the sampled data packet.

18. The apparatus according to claim 12, wherein, The transformed packet loss rate of the i-th sample in the sliding window is obtained according to the following equation: loss_trans i = 1 / (1 - loss_rate i ) where loss_trans i represents the packet loss rate after transformation of the i-th sample, and loss_rate i represents the packet loss rate of the i-th sample.

19. The device according to claim 18, wherein, The correlation coefficient is obtained according to the following equation: where r represents the correlation coefficient, W represents the predetermined number of the sliding window, and send_rate i represents the transmission rate of the i-th sample.

20. A non-transitory computer-readable medium storing instructions that are operable to cause one or more processors to perform the operations of claim 1.