CN113872870B - Method for controlling network congestion and related device - Google Patents

Method for controlling network congestion and related device Download PDF

Info

Publication number
CN113872870B
CN113872870B CN202010616601.0A CN202010616601A CN113872870B CN 113872870 B CN113872870 B CN 113872870B CN 202010616601 A CN202010616601 A CN 202010616601A CN 113872870 B CN113872870 B CN 113872870B
Authority
CN
China
Prior art keywords
receiving end
time
data packets
data
available bandwidth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010616601.0A
Other languages
Chinese (zh)
Other versions
CN113872870A (en
Inventor
粟荡
郑凯
柳晓旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010616601.0A priority Critical patent/CN113872870B/en
Priority to PCT/CN2021/087368 priority patent/WO2022001291A1/en
Publication of CN113872870A publication Critical patent/CN113872870A/en
Application granted granted Critical
Publication of CN113872870B publication Critical patent/CN113872870B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic

Abstract

The application provides a method and a device for controlling network congestion. In the technical scheme provided by the application, the transmitting end continuously transmits the data packets with the detected available bandwidths to the receiving end, and the data packets with the detected available bandwidths are continuously transmitted to the receiving end at intervals after the data packets are continuously transmitted. Wherein, the continuous sending of the data packets can increase the speed and the quantity of the data packets for detecting the available bandwidth, thereby detecting the available bandwidth with higher accuracy; and then the data packets are transmitted at intervals, so that the number of the data packets for detecting the available bandwidth is increased to detect more accurate available bandwidth, and meanwhile, the overlarge number of the data packets can be avoided, and the packet loss can be avoided.

Description

Method for controlling network congestion and related device
Technical Field
The present application relates to the field of communications, and more particularly, to a method and related apparatus for controlling network congestion.
Background
With the development of internet technology and the expansion of network services, the number of users and applications on the internet has increased dramatically. The internet is sensitive to time delay for most of the services that are directly directed to users, such as Application (APP), page access, video playback, short video, music, pictures, etc. services are opened.
According to analysis, the opening speed of most of the businesses of the Internet which directly face the users is very important to the user experience, and the opening time delay directly influences the increase of the businesses of enterprises. Currently, the opening process of internet traffic is slow due to the slow probing rate of the available bandwidth of the network. Therefore, it is desirable to reduce the opening delay of the internet service, and increase the opening speed of the internet service, and it is critical to increase the probing rate of the available bandwidth of the network.
Disclosure of Invention
The method and the related device for controlling network congestion can improve the detection rate of the available bandwidth of the network, thereby reducing the opening time delay of the Internet service and improving the experience of users of the Internet service.
In a first aspect, the present application provides a method of controlling network congestion. The method comprises the following steps: after continuously transmitting N data packets to a receiving end, a transmitting end transmits M data packets to the receiving end at intervals, wherein M and N are positive integers; the sending end determines a first available bandwidth of a transmission path from the sending end to the receiving end according to time intervals between time when data packets in the N data packets reach the receiving end and time when data packets in the M data packets reach the receiving end; and the sending end sends a data packet to the receiving end according to the first available bandwidth.
The transmitting end continuously transmits N data packets to the receiving end, which can be understood that there is no time interval between the transmission times of any two adjacent data packets in the N data packets. The absence of a time interval between the transmission times of two data packets having adjacent transmission times can be understood as: there is no preset time interval between the transmission end time of the previously transmitted data packet and the transmission start time of the subsequently transmitted data packet, but the transmitting end transmits the subsequent data packet immediately after transmitting the previously transmitted data packet of the network.
The transmitting end transmits the M data packets to the receiving end at intervals, which can be understood as that there is a time interval between the transmission times of any two adjacent data packets in the M data packets. The time interval between the transmission times of two data packets with adjacent transmission times can be understood as: there is a certain time interval between the transmission end time of the previously transmitted data packet and the transmission start time of the subsequently transmitted data packet, which may be preset or determined by the transmission rate of M data packets, and the transmission rate of the M data packets may be determined according to the size (size) of the congestion window and the packet round trip time between the receiving end and the transmitting unit.
In the method, the transmitting end continuously transmits the data packets, namely the transmitting end transmits the data packets at a high speed, and when the network bandwidth on the transmission path from the transmitting end to the receiving end is larger than the transmission rate of the data packets, the available maximum bandwidth can be detected as the physical bandwidth of the transmitting end; and when the available network bandwidth on the transmission path from the transmitting end to the receiving end is smaller than the transmission rate of the data packets, the data exceeding the available network bandwidth can be stored through the intermediate node buffer on the transmission path and the data packets can be transmitted with the available network bandwidth, so that the available bandwidth on the transmission path from the transmitting end to the receiving end can be detected. And, the sender continuously sends the data packets, so that the sending quantity of the data packets can be increased, and the detection rate of the available bandwidth can be increased.
In addition, in the present application, after the transmitting end continuously transmits N data packets, M data packets are further continuously transmitted at intervals. Since the M packets have a certain probability of being buffered by the intermediate node and then sent to the receiving end, the number of packets for detecting the available network bandwidth of the transmission path can be increased, so that the accuracy of the detected network bandwidth can be improved. And, these M data packets are sent intermittently, the speed is limited, so help to avoid the buffer memory of the intermediate node too much, thus the problem of packet loss occurs.
With reference to the first aspect, in a first possible implementation manner, a data size of the N data packets is preconfigured. Alternatively, the data size may be configured according to the cache size of the intermediate node. For example, the data size may be less than or equal to a buffer size of an intermediate node between the sender and the receiver.
In this implementation manner, the data size of the N data packets is configured according to the buffer size configuration of the intermediate node, so that even if the sending rate of the N data packets is greater than the available bandwidth from the sending end to the receiving end, the intermediate node on the transmission path from the sending end to the receiving end can buffer the data exceeding the bandwidth portion and forward the data to the receiving end at the rate corresponding to the available bandwidth, so that the sending end can not only obtain the available bandwidth according to the receiving rate of the data packets, but also help to avoid the problem of packet loss.
With reference to the first aspect or the first possible implementation manner, in a second possible implementation manner, a total duration of sending the N data packets and the M data packets by the sending end is less than or equal to a length of one round trip delay of the data packets between the sending end and the receiving end.
That is, the implementation manner is to transmit the data packet for detecting the available bandwidth of the network in a period equal to the round trip delay of one data packet, so that the detection of the available bandwidth of the network can be quickly realized.
With reference to the first aspect or any one of the foregoing possible implementation manners, in a third possible implementation manner, the determining, by the sending end, an available bandwidth of a transmission path from the sending end to the receiving end according to a time interval between a time when a data packet in the N data packets arrives at the receiving end and a time when a data packet in the M data packets arrives at the receiving end includes: the sending end determines a first time interval between a first time when a first data packet in the N data packets arrives at the receiving end and a second time when a second data packet in the M data packets arrives at the receiving end; the sending end determines the first available bandwidth according to the first time interval and the number of data packets received from the sending end by the receiving end in the first time interval.
In this implementation, the sending end determines the available bandwidth according to the receiving time interval of the data packet at the receiving end and the number of data packets arriving at the receiving end within the time interval.
With reference to the third possible implementation manner, in a fourth possible implementation manner, the determining, by the sending end, a first time interval between a first time when a first data packet of the N data packets arrives at the receiving end and a second time when a second data packet of the M data packets arrives at the receiving end includes: the sending end receives first indication information and second indication information sent by the receiving end, wherein the first indication information is used for indicating the first time, and the second indication information is used for indicating the second time; the sending end determines the first time interval according to the first time and the second time.
In this implementation, the receiving end sends the receiving time of the data packet to the transmitting end, and the transmitting end determines the receiving time interval of the data packet according to the receiving time of the data packet. Thus, the transmitting end can acquire the accurate receiving time of the data packet, so that the accurate time interval can be acquired, and the accurate available bandwidth can be acquired.
With reference to the third possible implementation manner, in a fifth possible implementation manner, the determining, by the sending end, a first time interval between a first time when a first packet of the N packets arrives at the receiving end and a second time when a second packet of the M packets arrives at the receiving end includes: the transmitting end receives first indicating information and second indicating information sent by the receiving end, wherein the first indicating information is used for indicating that the receiving end has received the first data packet, and the second indicating information is used for indicating that the receiving end has received the second data packet; the sending end determines the first time interval according to the time interval between the receiving time of the first indication information and the receiving time of the second indication information.
In this implementation, the transmitting end presumes the receiving time interval of the data packet according to the receiving time interval of the indication information. Compared with the method that the receiving end transmits the receiving time to the transmitting end, the transmission resource can be saved.
With reference to any one of the third to fifth possible implementation manners, in a sixth possible implementation manner, the first available bandwidth is a maximum available bandwidth among a plurality of available bandwidths, the plurality of available bandwidths are in one-to-one correspondence with a plurality of data packets arriving at the receiving end in the M data packets, each available bandwidth among the plurality of available bandwidths is calculated according to a time interval corresponding to each available bandwidth and a corresponding data amount, and the corresponding time interval is a time interval between a time when the data packet corresponding to each available bandwidth arrives at the receiving end and the first time, and the corresponding data amount is a number of data packets received by the receiving end from the sending end in the corresponding time interval.
With reference to any one of the third to sixth possible implementations, in a seventh possible implementation, the method further includes: and the sending end updates the size of the congestion window according to the first available bandwidth.
In this implementation manner, the first time interval is a first packet arriving at the receiving end from among the continuously transmitted packets, and the second time interval is a last packet arriving at the receiving end from among the M packets transmitted at intervals, that is, the first packet is a first packet arriving at the receiving end from among the N packets, and the second packet is a last packet arriving at the receiving end from among the M packets. This can increase the number of packets used to probe the available bandwidth, and thus can increase the accuracy of the available bandwidth detected.
In a second aspect, the present application provides a method of controlling network congestion. The method comprises the following steps: after the transmitting end transmits N data packets to the receiving end without time interval, the transmitting end transmits M data packets to the receiving end at intervals, wherein M and N are positive integers; the sending end receives first indication information from the receiving end, wherein the first indication information is used for indicating a first available bandwidth, and the first available bandwidth is determined by the receiving end according to the time interval between the time when the data packet in the N data packets arrives at the receiving end and the time when the data packet in the M data packets arrives at the receiving end; and the sending end sends a data packet to the receiving end according to the first available bandwidth.
In the method, after a transmitting end continuously transmits data packets and intermittently transmits the data packets, a receiving end determines available bandwidth according to the receiving time of the data packets and feeds back the available bandwidth to the transmitting end. After knowing the available bandwidth from the receiving end, the transmitting end can transmit the data packet according to the available bandwidth.
The transmitting end transmits N data packets to the receiving end without a time interval, which is understood as that the N data packets are continuously transmitted, that is, there is no time interval between transmission times of any two data packets adjacent to each other in the N data packets. The absence of a time interval between the transmission times of two data packets having adjacent transmission times can be understood as: there is no preset time interval between the transmission end time of the previously transmitted data packet and the transmission start time of the subsequently transmitted data packet, but the transmitting end naturally starts the transmission of the subsequently transmitted data packet after transmitting the previously transmitted data packet of the network.
The transmitting end transmits the M data packets to the receiving end at intervals, which can be understood as that there is a time interval between the transmission times of any two adjacent data packets in the M data packets. The time interval between the transmission times of two data packets with adjacent transmission times can be understood as: there is a certain time interval between the transmission end time of the previously transmitted data packet and the transmission start time of the subsequently transmitted data packet, which may be preset or determined by the transmission rate of M data packets, where the transmission rate of M data packets may be determined according to the size of the congestion window and the packet round trip time between the receiving end and the transmission ticket.
In the method, the transmitting end continuously transmits the data packets, namely the transmitting end transmits the data packets at a high speed, and when the network bandwidth on the transmission path from the transmitting end to the receiving end is larger than the transmission rate of the data packets, the available maximum bandwidth can be detected as the physical bandwidth of the transmitting end; and when the available network bandwidth on the transmission path from the transmitting end to the receiving end is smaller than the transmission rate of the data packets, the available bandwidth on the transmission path from the transmitting end to the receiving end can be detected by storing the data exceeding the available network bandwidth by the intermediate node on the transmission path and transmitting the data packets with the available network bandwidth. And, the sender continuously sends the data packets, so that the sending quantity of the data packets can be increased, and the detection rate of the available bandwidth can be increased.
In addition, in the present application, after the transmitting end continuously transmits N data packets, M data packets are further continuously transmitted at intervals. Since the M packets have a certain probability of being buffered by the intermediate node and then sent to the receiving end, the number of packets for detecting the available network bandwidth of the transmission path can be increased, so that the accuracy of the detected network bandwidth can be improved. And, these M data packets are sent intermittently, the speed is limited, so help to avoid the buffer memory of the intermediate node too much, thus the problem of packet loss occurs.
Furthermore, the receiving end calculates the available bandwidth and sends the available bandwidth to the sending end, so that transmission resources can be saved.
With reference to the second aspect, in a first possible implementation manner, a data size of the N data packets is preconfigured. Alternatively, the data size may be configured according to the cache size of the intermediate node. For example, the data size may be less than or equal to a buffer size of an intermediate node between the sender and the receiver.
With reference to the second aspect or the first possible implementation manner, in a second possible implementation manner, a total duration of sending the N data packets and the M data packets by the sending end is less than or equal to a length of a round trip delay of the data packets between the sending end and the receiving end.
In a third aspect, the present application provides a method for controlling network congestion. The method comprises the following steps: the method comprises the steps that a receiving end obtains a first time interval between a first time when a first data packet in L data packets sent by a sending end arrives at the receiving end and a second time when a second data packet in the L data packets arrives at the receiving end, wherein L is a positive integer larger than 1;
The receiving end determines a first available bandwidth according to the first time interval and the number of data packets received by the receiving end from the sending end in the first time interval;
when the first available bandwidth is the maximum available bandwidth among a plurality of available bandwidths, determining the first available bandwidth as an available bandwidth of a transmission path from the transmitting end to the receiving end, wherein the plurality of available bandwidths are in one-to-one correspondence with a plurality of data packets reaching the receiving end in the L data packets, each available bandwidth in the plurality of available bandwidths is calculated according to a second time interval and a second number, the second time interval is a time interval between the time when the data packet corresponding to each available bandwidth reaches the receiving end and the first time, and the second number is the number of data packets received by the receiving end from the transmitting end in the second time interval;
the receiving end sends first indication information to the sending end, wherein the first indication information is used for indicating the available bandwidth.
In the method, the receiving end calculates the available bandwidth and sends the available bandwidth to the sending end, so that transmission resources can be saved.
In a fourth aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising means for performing the method of the first aspect or any implementation of the foregoing.
In a fifth aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising means for performing the method of the second aspect or any implementation of the foregoing.
In a sixth aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising means for performing the method of the third aspect or any implementation of the above.
In a seventh aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising: a memory for storing a program; a processor for executing the program stored in the memory, the processor and the communication interface of the apparatus being for performing the method of the first aspect or any one of the implementation forms thereof, when the program stored in the memory is executed.
In an eighth aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising: a memory for storing a program; a processor for executing the program stored in the memory, the processor and the communication interface of the apparatus being for performing the method of the second aspect or any one of the implementation forms thereof, when the program stored in the memory is executed.
In a ninth aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising: a memory for storing a program; a processor for executing the program stored in the memory, the processor and the communication interface of the apparatus being for performing the method of the third aspect or any one of the implementation forms thereof, when the program stored in the memory is executed.
In a tenth aspect, there is provided a computer readable medium storing program code for execution by a device, the program code comprising instructions for performing the method of the first aspect or any implementation thereof.
In an eleventh aspect, there is provided a computer readable medium storing program code for execution by a device, the program code comprising instructions for performing the method of the second aspect or any one of the implementations.
In a twelfth aspect, there is provided a computer readable medium storing program code for execution by a device, the program code comprising instructions for performing the method of the third aspect or any one of the implementations.
In a thirteenth aspect, there is provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the method of the first aspect or any of the implementations described above.
In a fourteenth aspect, there is provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the method of the second aspect or any one of the implementations described above.
In a fifteenth aspect, there is provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the method of the third aspect or any one of the implementations described above.
In a sixteenth aspect, a chip is provided, the chip comprising a processor and a data interface, the processor reading instructions stored on a memory through the data interface, performing the method of the first aspect or any implementation of the foregoing.
Optionally, as an implementation manner, the chip may further include a memory, where the memory stores instructions, and the processor is configured to execute the instructions stored on the memory, where the instructions, when executed, are configured to perform the method in the first aspect or any implementation manner.
A seventeenth aspect provides a chip comprising a processor and a data interface, the processor reading instructions stored on a memory via the data interface, performing the method of the second aspect or any implementation of the second aspect.
Optionally, as an implementation manner, the chip may further include a memory, where the memory stores instructions, and the processor is configured to execute the instructions stored on the memory, where the instructions, when executed, are configured to perform the method in the second aspect or any implementation manner.
An eighteenth aspect provides a chip comprising a processor and a data interface, the processor reading instructions stored on a memory via the data interface, performing the method of the third aspect or any implementation of the third aspect.
Optionally, as an implementation manner, the chip may further include a memory, where the memory stores instructions, and the processor is configured to execute the instructions stored on the memory, where the instructions, when executed, are configured to perform the method in the third aspect or any implementation manner.
In a nineteenth aspect, there is provided a communication apparatus comprising: a memory for storing a program; a processor for executing the program stored in the memory, the processor being configured to perform the method of the first aspect or any implementation manner thereof when the program stored in the memory is executed.
In a twentieth aspect, there is provided a communication device comprising: a memory for storing a program; a processor for executing the program stored in the memory, the processor being for executing the method of the second aspect or any one of the implementation manners when the program stored in the memory is executed.
In a twenty-first aspect, there is provided a communication device comprising: a memory for storing a program; a processor for executing the program stored in the memory, the processor being for executing the method of the third aspect or any one of the implementation forms thereof, when the program stored in the memory is executed.
Drawings
Fig. 1 is an exemplary diagram of an application scenario of a technical solution of an embodiment of the present application;
figure 2 is a schematic flow chart diagram of a method of controlling network congestion in accordance with one embodiment of the application;
FIG. 3 is a schematic diagram illustrating a transmission process of a data packet according to an embodiment of the present application;
FIG. 4 is a schematic block diagram of an apparatus for controlling network congestion in accordance with one embodiment of the present application;
fig. 5 is a schematic structural diagram of an apparatus for controlling network congestion according to another embodiment of the present application;
FIG. 6 is a schematic diagram of a computer program product of one embodiment of the application.
Detailed Description
The technical scheme of the embodiment of the application can be applied to any end-to-end protocol, the transmission capacity of the starting stage is required to be improved, and the bandwidth detection speed of the starting stage is required to be improved.
Fig. 1 is a schematic diagram of an exemplary application scenario of the technical solution of the embodiment of the present application. As shown in fig. 1, a server 110 in a wide area network may provide services such as online shopping, web page access, application (APP) opening, web page picture opening, video on demand, live broadcast, short video opening, online music, advertisement loading, file backup or file downloading, etc. to a terminal device 130 in the wide area network through a communication network 120.
The terminal equipment in the embodiment of the application can be a sensor, a mobile phone, a tablet, a notebook computer, a personal computer, a server and the like, and also can be a gateway, an access router, a core router, a front-end router, a load balancer and the like.
When a server provides these services to a terminal device through a network, a problem that the starting time of these services is too long usually occurs. For example, the data transmission rate of the conventional transmission control protocol (transmission control protocol, TCP) is slow to increase in the start-up phase, resulting in insufficient utilization of bandwidth in the start-up phase; and is very likely to cause a decrease in data transmission speed due to packet loss.
Generally, a communication protocol may be divided into a plurality of phases such as start-up, stable cruising, and probing, and the start-up phase is a phase of probing bandwidth after completing connection establishment and gradually increasing a transmission speed.
The technical scheme of the embodiment of the application aims to improve the bandwidth detection speed and the packet loss resistance of the protocol in the starting stage, so that the protocol can rapidly and effectively utilize the network throughput capacity and provide the user experience of the service.
Fig. 2 is a schematic flow chart of a method of controlling network congestion according to one embodiment of the application. As shown in fig. 2, the method may include S210, S220, S230, S240, and S250.
S210, the transmitting end continuously transmits N data packets to the receiving end, wherein N is a positive integer.
For example, the transmitting end may continuously transmit N data packets to the receiving end after establishing a connection with the receiving end through a communication protocol. An example of such a communication protocol is a transmission control protocol.
The sending end continuously sends N data packets to the receiving end, which can be understood that there is no waiting and interval between the sending times of any two adjacent data packets in the N data packets, so as to ensure that the data packets are sent out at the maximum speed that can be achieved by the sending end.
The absence of wait and interval between the transmission times of two adjacent data packets means that there is no interval between the transmission end time of the previous data packet and the transmission start time of the next data packet. That is, the transmitting end transmits the next packet immediately after transmitting the previous packet without waiting.
The transmitting end continuously transmits N data packets to the receiving end, which may be referred to as that the transmitting end transmits N data packets to the receiving end in a high-speed connection, or may be referred to as that the transmitting end transmits data packets to the receiving end in a burst (burst) manner.
The number of data packets that are continuously transmitted may be referred to as burst_num, i.e., N may be referred to as burst_num. The burst_num value may be preset in the communication protocol, or may be obtained by negotiation during the process of establishing a connection between the transmitting end and the receiving end, or may be calculated according to the last connection result. The last connection result may include bandwidth, RTT, and/or congestion window size used in the last connection, etc
An example of burst_num is any value between 16 and 32.
In this embodiment, the sending end sends the data packet to the receiving end in burst mode, on one hand, in the case that the available network bandwidth between the sending end and the receiving end is greater than the physical bandwidth or the subscription bandwidth of the sending end, the maximum available network bandwidth between the sending end and the receiving end can be detected, that is, the physical bandwidth or the subscription bandwidth of the sending end; on the other hand, when the available network bandwidth is lower than the sending speed of the data packet in the burst mode, the data exceeding the available bandwidth may be stored in a buffer (buffer) of an intermediate node between the sending end and the receiving end, and sent to the receiving end at a speed corresponding to the network bottleneck bandwidth, so as to detect the network bottleneck bandwidth from the sending end to the receiving end, where the network bottleneck bandwidth is the detected available network bandwidth.
In one implementation of this embodiment, after the sender establishes a connection with the receiver through a protocol, the sender may send a burst_num packet in a burst manner within a round-trip time (RTT).
In general, the total data amount of the N data packets continuously transmitted in the burst mode cannot be excessively large, because a buffer size larger than that of the intermediate node may cause packet loss. Therefore, in one implementation manner of this embodiment, in order to avoid packet loss, the total data size of the N data packets may be smaller than or equal to the buffer size of any intermediate node on the transmission paths of the transmitting end and the receiving end.
The total data amount may be denoted burst_size. The burst_size value may be preset in the communication protocol, or may be obtained by negotiation during the process of establishing a connection between the transmitting end and the receiving end, or may be calculated according to the last connection result. For example, burst_size may be equal to the size of tens of maximum transmission units (maximum transmission unit, MTU).
S220, the sending end sends M data packets to the receiving end at intervals, wherein M is a positive integer.
That is, the transmitting end transmits the data packet to the receiving end in the burst mode, and then intermittently transmits the data packet to the receiving end.
The sending end sends M data packets to the receiving end at intervals, which is understood to mean that when the sending end sends at least two data packets, a time interval exists between sending times of the two data packets. The time interval between the transmission times of two data packets means that there is a time interval between the transmission end time of the previous data packet and the transmission start time of the next data packet.
In this embodiment, the data packet is sent slowly after the burst mode, so that on one hand, the data volume of the data packet, that is, the data volume for detecting the available bandwidth of the network, can be improved, and thus the accuracy of the detected available bandwidth can be improved; on the other hand, the data packets which are sent at a low speed enter the buffer memory of the intermediate node with a certain probability and are then sent to the receiving end in the network bottleneck bandwidth, so that the number of the data packets for detecting the network bottleneck bandwidth can be increased, and the accuracy of the detected network available bandwidth is further improved.
In this embodiment, the M packets may be transmitted at uniform speed and at equal intervals. In this case, the method of transmitting the data packet in this step may be referred to as a constant speed mode or a constant speed mode.
The transmission rate of the M data packets may be preset, may be agreed during the process of establishing a connection between the transmitting end and the receiving end, or may be determined according to the number of data packets transmitted in the burst mode.
For example, in the case where one RTT is one probing period, if the sending rate of the M packets is recorded as a serving_rate, the serving_rate may be calculated by the manner of serving_rate= (icwnd-burst_num)/RTT, where icwnd represents the size of the initial congestion window. The size of the initial congestion window may be preset.
In one implementation manner of this embodiment, after the sending end sends the data packet using the burst mode, the sending end sends the data packet at a constant speed of the serving rate until the ACK information of the first data packet is received, and then the first RTT period ends. It will be appreciated that the ACK information received by the sender may not be the ACK information of the first packet, but may be the ACK information of the second or other packets.
S230, after receiving the data packets sent by the sending end, the receiving end records the receiving time of each data packet, and sends indication information to the sending end, wherein the indication information is used for indicating the receiving time of the data packets.
For example, when the receiving end triggers the sending of the ACK information by the receiving event or the periodic polling event, the receiving end may write a time stamp (timestamp) when each data packet is received into the ACK information by a certain coding manner, and feed back the time stamp to the sending end through the ACK information.
S240, the sending end receives the indication information from the receiving end, determines a time interval between receiving times of the data packets according to the indication information, and determines a first available bandwidth from the sending end to the receiving end according to the time interval.
For example, when the indication information is carried in the ACK information, after the sending end receives the ACK information from the receiving end, the receiving end may parse the receiving time of the data packet at the receiving end from the ACK information, calculate a time interval from the receiving end receiving the first data packet to the receiving end receiving the last data packet, and calculate a receiving rate recvRate of the receiving end by recvrate=data_size_1/Δtime, where data_size_1 represents a total data amount of the data packet received by the receiving end, and Δtime represents a time interval.
For another example, after the sending end receives ACK information of all data packets sent in the burst mode, in a subsequent process, each time ACK information of one or more data packets sent in the slow mode is received, a receiving rate may be calculated by recvrate=data_size_1/Δtime, where the receiving rate is a receiving rate of a data packet that the receiving end has currently acknowledged, where data_size_1 represents a total data amount of data packets that the receiving end has acknowledged, and Δtime represents a time interval during which the receiving end receives the data packets from the sending end.
After the transmitting end receives the ACK information of all the data packets from the receiving end, a plurality of receiving rates can be calculated. As an example, the transmitting end may determine the network available bandwidth, i.e., the first available bandwidth, according to the maximum receiving rate of the plurality of receiving rates.
In addition, the sender may also calculate a new congestion window length send_cwnd through send_cwnd=bw×srtt, and update the congestion window length of the sender to the new congestion window length, where Bw represents an available bandwidth, and srtt represents an RTT duration.
S250, the sending end sends the data packet to the receiving end according to the first available bandwidth.
For example, the transmitting end calculates a suitable transmitting rate according to the first available bandwidth, and uses the transmitting rate to transmit data packets to the receiving end at uniform speed and equal interval.
In one implementation manner of this embodiment, when the transmitting end transmits the data packet to the receiving end according to the first available bandwidth, the transmitting end may modify the first available bandwidth to obtain a modified bandwidth, and then transmit the data packet based on the modified bandwidth. One way to calculate the correction bandwidth is as follows:
sampleRate=min(sendRate,recvRate)*min(1,k+((1-k)*Δt)/srtt))
wherein k is the reciprocal of the speed detection coefficient Gain at the start-up stage, k=1/Gain, gain is a preset value, and one example of Gain is 2; sampleRate represents the correction bandwidth; sendRate is the maximum rate at which the sender sends out probe data; recvRate is the maximum rate included in the received data, and can be equal to the maximum bandwidth in a plurality of bandwidths detected by the sending end; Δt represents the time interval.
In this embodiment, optionally, the data packet sent by the sending end in S250 may be a probe data packet for continuing to probe the available bandwidth between the sending end and the receiving end. In this case, when the transmitting end transmits data to the receiving end according to the available bandwidth, in one example, the transmitting end may calculate the transmission rate paging rate and congestion window send_cwnd as follows:
PacingRate=Gain*Bw,Gain=2
send_cwnd=Gain*Bw*srtt
where Bw denotes the first available bandwidth, srtt denotes one RTT duration.
After the sending end calculates the sending rate paging rate and the congestion window send_cwnd, the sending end may send a data packet to the receiving end based on the sending rate paging rate and the congestion window send_cwnd, so as to detect the available bandwidth from the sending end to the receiving end.
Further, the bandwidth detection method heavy in the conventional technology can be continuously used between the sending end and the receiving end until the bandwidth and the congestion window are accurate, and the starting stage is exited.
For example, after the transmitting end completes the detection of the available bandwidth according to the data packet in the first RTT, the transmitting end may send the data packet to the receiving end at a constant speed in the second RTT according to the calculated available bandwidth, so as to continue the detection phase of the available bandwidth, thereby continuously improving the detection accuracy of the available bandwidth.
In general, the bandwidth detected according to the packets in the first RTT can be very close to the actual available bandwidth. Thus, with the method of the present embodiment, the start-up phase can complete the probing of the accurate available bandwidth after one to two RTT durations.
In another embodiment of the present application, the method for controlling network congestion may include the related content in the method shown in fig. 2, where the difference is that the indication information sent by the receiving end to the sending end may not include the receiving time of the data packet, but is used to indicate that the receiving end has acknowledged the data packet. For example, the indication information may be ACK information. Typically, the receiving end may trigger the sending of the indication information by a packet reception event or a periodic polling event.
In this embodiment, the transmitting end may determine the time interval between the times when the receiving end receives the data packet according to the time interval between the times when the indication information is received, for example, the time interval between the times when the indication information is received is taken as the time interval between the times when the receiving end receives the data packet.
As shown in fig. 3, after the transmitting end transmits the first data packet, the first data packet is forwarded to the receiving end through the intermediate node; after a period of time, the sending end sends a second data packet, and the second data packet is sent to the receiving end at a rate corresponding to the bandwidth of the network bottleneck after entering the buffer memory of the intermediate node. Wherein, between the first data packet and the second data packet, the transmitting end can transmit any number of data packets.
The receiving end can be triggered by a data packet receiving event and send ACK information to the sending end. That is, each time a data packet is received by the receiving end, an ACK message for acknowledging the data packet is sent to the transmitting end. Thus, the transmitting end can take the time interval between the receiving times of the ACK information of the data packet as the time interval between the receiving times of the data packet.
A method for controlling network congestion according to still another embodiment of the present application may include the relevant content in the method shown in fig. 2, except that after the receiving end receives the data packet, the receiving end may not need to indicate the receiving time of the data packet to the transmitting end, but the receiving end determines a time interval between the receiving times of the data packet according to the receiving time of the data packet, determines an available bandwidth according to the time interval, and feeds back the available bandwidth to the transmitting end.
The implementation manner of determining the available bandwidth by the receiving end according to the receiving time of the data packet may refer to the implementation manner of determining the available bandwidth by the transmitting end according to the receiving time of the data packet in fig. 2, which is not described herein.
For example, the receiving end may determine to obtain multiple available bandwidths according to the time intervals between multiple data packets and the same data packet, and feed back the available bandwidths to the sending end through ACK information. The sending end can select the maximum available bandwidth from the multiple available bandwidths and modify the maximum available bandwidth to obtain the final available bandwidth.
For another example, the receiving end may determine that the final available bandwidth is fed back to the transmitting end.
In the method in each embodiment of the application, in a wide area network transmission scene, such as a terminal edge cloud transmission scene, in the transmission process of small and medium files, the network performance indexes such as throughput, delay time length and the like are obviously improved.
In addition, in the end-to-end transmission scene, in the transmission process of small and medium files, network performance indexes such as throughput, delay time length and the like are obviously improved.
In addition, in the data transmission of the cloud network and the content distribution network (content delivery network, CDN), the data transmission rate can be quickly improved, and the data transmission delay is reduced. For example, in the scenes of APP, browser page opening, user login, video pacing, music downloading, picture downloading or segment video opening, the data transmission rate can be improved, so that the user experience is improved.
Fig. 4 is a schematic structural diagram of an apparatus for controlling network congestion according to an embodiment of the present application. As shown in fig. 4, the apparatus 400 in this embodiment may include a transmitting module 410, a processing module 420, and a receiving module 430.
In one example, the apparatus 400 may be used to perform operations performed by a sender in the method of controlling network congestion shown in fig. 2. For example, the transmitting module 410 may be used to perform the operations performed by the transmitting end in S210, S220, and S250, the processing module 420 may be used to perform the operations performed by the transmitting end in S240 related to determining the available bandwidth, and the receiving module 430 may be used to perform the operations performed by S240 related to the transmitting end receiving the indication information.
In another example, the apparatus 400 may be used to perform operations performed by a receiving end in the method of controlling network congestion shown in fig. 2. For example, the transmitting module 410 may be used to perform the operations related to transmitting the indication information performed by the receiving end in S240, the processing module 420 may be used to perform the operations related to information processing performed by the receiving end in fig. 2, and the receiving module 430 may be used to perform the operations related to receiving the data packet by the receiving end in S210, S220, and S250.
Fig. 5 is a schematic structural diagram of an apparatus 500 for controlling network congestion according to an embodiment of the present application. The apparatus 500 comprises a processor 502, a communication interface 503 and a memory 504. One example of the apparatus 500 is a chip. Another example of the apparatus 500 is a communication device.
Communication between the processor 502, the memory 504 and the communication interface 503 may be via a bus. The memory 504 has stored therein executable code that the processor 502 reads from the memory 504 to perform the corresponding method. Memory 504 may also include software modules required by an operating system or other process running. The operating system may be LINUX TM ,UNIX TM ,WINDOWS TM Etc.
In one possible implementation, the processor 502 is configured to implement the functions implemented by the processing module 420, and the communication interface 503 is configured to implement the functions implemented by the sending module 401 and the receiving module 403.
For example, executable code in memory 504 is used to implement the method implemented by the sender in fig. 2, and processor 502 reads the executable code in memory 504 to perform the method implemented by the sender in fig. 2.
As another example, executable code in memory 504 is used to implement the method implemented by the receiving end in fig. 2, and processor 502 reads the executable code in memory 504 to perform the method implemented by the receiving end in fig. 2.
The processor 502 may be a central processing unit (central processing unit, CPU). The memory 504 may include volatile memory (RAM), such as random access memory (random access memory). The memory 504 may also include a non-volatile memory (2 NVM), such as a read-only memory (2 ROM), a flash memory, a Hard Disk Drive (HDD), or a Solid State Drive (SSD).
In some embodiments of the application, the disclosed methods may be implemented as computer program instructions encoded on a computer-readable storage medium in a machine-readable format or encoded on other non-transitory media or articles of manufacture. Fig. 6 schematically illustrates a conceptual partial view of an example computer program product comprising a computer program for executing a computer process on a communication device, arranged in accordance with at least some embodiments presented herein. In one embodiment, the example computer program product 600 is provided using a signal bearing medium 601. The signal bearing medium 601 may include one or more program instructions 602 that when executed by one or more processors may provide the functionality or portions of the functionality described above with respect to the method shown in fig. 2. For example, referring to the embodiment shown in fig. 2, one or more features of S210 through S240 may be borne by one or more instructions associated with the signal bearing medium 601.
In some examples, signal bearing medium 601 may comprise a computer readable medium 603 such as, but not limited to, a hard disk drive, compact Disk (CD), digital Video Disk (DVD), digital tape, memory, read-only memory (ROM), or random access memory (random access memory, RAM), among others. In some implementations, the signal bearing medium 601 may contain a computer recordable medium 604 such as, but not limited to, memory, read/write (R/W) CD, R/W DVD, and the like. In some implementations, the signal bearing media 601 may include a communication medium 605 such as, but not limited to, digital and/or analog communication media (e.g., fiber optic cable, waveguide, wired communications link, wireless communications link, etc.). Thus, for example, the signal bearing medium 601 may be conveyed by a communication medium 605 in wireless form (e.g., a wireless communication medium that complies with the IEEE 802.11 standard or other transmission protocol). The one or more program instructions 602 may be, for example, computer-executable instructions or logic-implemented instructions. In some examples, the foregoing communication devices may be configured to provide various operations, functions, or actions in response to program instructions 602 conveyed to the communication device through one or more of computer readable medium 603, computer recordable medium 604, and/or communication medium 605. It should be understood that the arrangement described herein is for illustrative purposes only. Thus, those skilled in the art will appreciate that other arrangements and other elements (e.g., machines, interfaces, functions, orders, and groupings of functions, etc.) can be used instead, and some elements may be omitted altogether depending on the desired results. In addition, many of the elements described are functional entities that may be implemented as discrete or distributed components, or in any suitable combination and location in conjunction with other components.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, and are not repeated herein.
In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, comprising several instructions for causing a computer device (which may be a personal computer, a server, a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a U disk, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk.
The foregoing is merely illustrative of the present application, and the present application is not limited thereto, and any person skilled in the art will readily recognize that variations or substitutions are within the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (22)

1. A method of controlling network congestion, comprising:
after a sender sends N data packets to a receiver in a burst mode, intermittently sending M data packets to the receiver, wherein the total data quantity of the M data packets is smaller than an initial congestion window, the total data quantity of the N data packets is smaller than the initial congestion window, M and N are positive integers, and the total duration of the N data packets and the M data packets sent by the sender is smaller than or equal to the length of one round trip delay of the data packets between the sender and the receiver;
the sending end determines a first available bandwidth of a transmission path from the sending end to the receiving end according to time intervals between time when data packets in the N data packets reach the receiving end and time when data packets in the M data packets reach the receiving end;
And the sending end sends a data packet to the receiving end according to the first available bandwidth.
2. The method of claim 1, wherein the transmitting end determines a first available bandwidth of a transmission path from the transmitting end to the receiving end based on a time interval between a time when a packet of the N packets arrives at the receiving end and a time when a packet of the M packets arrives at the receiving end, comprising:
the sending end determines a first time interval between a first time when a first data packet in the N data packets arrives at the receiving end and a second time when a second data packet in the M data packets arrives at the receiving end;
the sending end determines the first available bandwidth according to the first time interval and the data quantity received by the receiving end from the sending end in the first time interval.
3. The method according to claim 2, wherein the first available bandwidth is a maximum available bandwidth among a plurality of available bandwidths, the plurality of available bandwidths are in one-to-one correspondence with a plurality of data packets arriving at the receiving end among the M data packets, each available bandwidth among the plurality of available bandwidths is calculated according to a time interval corresponding to each available bandwidth and a data amount corresponding to each available bandwidth, and the corresponding time interval is a time interval between a time when the data packet corresponding to each available bandwidth arrives at the receiving end and the first time, and the corresponding data amount is a data amount received by the receiving end from the transmitting end in the corresponding time interval.
4. The method of claim 2, wherein the transmitting end determining a first time interval between a first time when a first one of the N packets arrives at the receiving end and a second time when a second one of the M packets arrives at the receiving end comprises:
the sending end receives first indication information and second indication information sent by the receiving end, wherein the first indication information is used for indicating the first time, and the second indication information is used for indicating the second time;
the sending end determines the first time interval according to the first time and the second time.
5. The method of claim 2, wherein the transmitting end determining a first time interval between a first time when a first one of the N packets arrives at the receiving end and a second time when a second one of the M packets arrives at the receiving end comprises:
the transmitting end receives first indicating information and second indicating information sent by the receiving end, wherein the first indicating information is used for indicating that the receiving end has received the first data packet, and the second indicating information is used for indicating that the receiving end has received the second data packet;
The sending end determines the first time interval according to the time interval between the receiving time of the first indication information and the receiving time of the second indication information.
6. The method of claim 2, wherein the first packet is a first packet of the N packets arriving at the receiving end, and the second packet is a last packet of the M packets arriving at the receiving end.
7. The method of claim 1, wherein the sending end sends the data packet to the receiving end according to the available bandwidth, including:
the sending end updates the size and the sending rate of the initial congestion window of the sending end according to the first available bandwidth;
and the sending end sends the data packet to the receiving end based on the updated congestion window size and the updated sending rate.
8. An apparatus for controlling network congestion, comprising:
a sending module, configured to send N data packets to a receiving end in a burst manner, and then send M data packets to the receiving end at intervals, where the total data amount of the M data packets is smaller than an initial congestion window, the total data amount of the N data packets is smaller than the initial congestion window, M and N are positive integers, and the total duration of sending the N data packets and the M data packets by the device is smaller than or equal to the length of one round trip delay of the data packets between the device and the receiving end;
The processing module is used for determining a first available bandwidth of a transmission path from the device to the receiving end according to the time interval between the time when the data packet in the N data packets arrives at the receiving end and the time when the data packet in the M data packets arrives at the receiving end;
the sending module is further configured to send a data packet to the receiving end according to the first available bandwidth.
9. The apparatus of claim 8, wherein the processing module is specifically configured to:
determining a first time interval between a first time when a first data packet of the N data packets arrives at the receiving end and a second time when a second data packet of the M data packets arrives at the receiving end;
and determining the first available bandwidth according to the first time interval and the data quantity received by the receiving end from the sending module in the first time interval.
10. The apparatus of claim 9, wherein the first available bandwidth is a maximum available bandwidth of a plurality of available bandwidths, the plurality of available bandwidths corresponding to a plurality of data packets arriving at the receiving end of the M data packets, each available bandwidth of the plurality of available bandwidths being calculated according to a time interval corresponding to each available bandwidth and a data amount corresponding to each available bandwidth, the corresponding time interval being a time interval between a time when the data packet corresponding to each available bandwidth arrives at the receiving end and the first time, and the corresponding data amount being a data amount received by the receiving end from the apparatus in the corresponding time interval.
11. The apparatus of claim 9, further comprising a receiving module configured to: receiving first indication information and second indication information sent by the receiving end, wherein the first indication information is used for indicating the first time, and the second indication information is used for indicating the second time;
the processing module is specifically configured to determine the first time interval according to the first time and the second time.
12. The apparatus of claim 9, further comprising a receiving module configured to: receiving first indication information and second indication information sent by the receiving end, wherein the first indication information is used for indicating that the receiving end has received the first data packet, and the second indication information is used for indicating that the receiving end has received the second data packet;
the processing module is specifically configured to determine the first time interval according to a time interval between the time of receiving the first indication information and the time of receiving the second indication information.
13. The apparatus of claim 9, wherein the first packet is a first packet of the N packets arriving at the receiving end and the second packet is a last packet of the M packets arriving at the receiving end.
14. The apparatus of claim 8, the sending module is specifically configured to:
updating the size and the sending rate of the congestion window of the sending module according to the first available bandwidth;
and sending the data packet to the receiving end based on the updated congestion window size and the sending rate.
15. An apparatus for controlling network congestion, comprising: a processor and a communication interface, the processor coupled with the memory;
the memory is used for storing instructions;
the communication interface is configured to send M data packets to a receiving end at intervals after sending N data packets to the receiving end in a burst manner, where the total data amount of the M data packets is smaller than an initial congestion window, the total data amount of the N data packets is smaller than the initial congestion window, M and N are positive integers, and the total duration of sending the N data packets and the M data packets by the device is smaller than or equal to the length of one round trip delay of the data packets between the device and the receiving end;
the processor is configured to execute the instructions stored in the memory, and determine a first available bandwidth of a transmission path from the device to the receiving end according to a time interval between a time when a data packet of the N data packets arrives at the receiving end and a time when a data packet of the M data packets arrives at the receiving end;
The communication interface is further configured to send a data packet to the receiving end according to the first available bandwidth.
16. The apparatus of claim 15, wherein the processor is specifically configured to:
determining a first time interval between a first time when a first data packet of the N data packets arrives at the receiving end and a second time when a second data packet of the M data packets arrives at the receiving end;
and determining the first available bandwidth according to the first time interval and the data quantity received by the receiving end from the device in the first time interval.
17. The apparatus of claim 16, wherein the first available bandwidth is a maximum available bandwidth of a plurality of available bandwidths, the plurality of available bandwidths corresponding to a plurality of data packets arriving at the receiving end of the M data packets, each available bandwidth of the plurality of available bandwidths being calculated according to a time interval corresponding to each available bandwidth and a data amount corresponding to each available bandwidth, the corresponding time interval being a time interval between a time when the data packet corresponding to each available bandwidth arrives at the receiving end and the first time, and the corresponding data amount being a data amount received by the receiving end from the apparatus in the corresponding time interval.
18. The apparatus of claim 16, wherein the communication interface is further configured to: receiving first indication information and second indication information sent by the receiving end, wherein the first indication information is used for indicating the first time, and the second indication information is used for indicating the second time;
the processor is specifically configured to determine the first time interval according to the first time and the second time.
19. The apparatus of claim 16, wherein the communication interface is further configured to: receiving first indication information and second indication information sent by the receiving end, wherein the first indication information is used for indicating that the receiving end has received the first data packet, and the second indication information is used for indicating that the receiving end has received the second data packet;
the processor is specifically configured to determine the first time interval according to a time interval between the time of receiving the first indication information and the time of receiving the second indication information.
20. The apparatus of claim 16, wherein the first packet is a first packet of the N packets arriving at the receiving end and the second packet is a last packet of the M packets arriving at the receiving end.
21. The apparatus of claim 15, the communication interface being specifically configured to:
updating the size and the sending rate of the congestion window of the device according to the first available bandwidth;
and sending the data packet to the receiving end based on the updated congestion window size and the sending rate.
22. A computer readable medium comprising instructions which, when run on a processor, cause the processor to perform the method of any one of claims 1 to 7.
CN202010616601.0A 2020-06-30 2020-06-30 Method for controlling network congestion and related device Active CN113872870B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010616601.0A CN113872870B (en) 2020-06-30 2020-06-30 Method for controlling network congestion and related device
PCT/CN2021/087368 WO2022001291A1 (en) 2020-06-30 2021-04-15 Method for controlling network congestion and related apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010616601.0A CN113872870B (en) 2020-06-30 2020-06-30 Method for controlling network congestion and related device

Publications (2)

Publication Number Publication Date
CN113872870A CN113872870A (en) 2021-12-31
CN113872870B true CN113872870B (en) 2023-10-13

Family

ID=78981555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010616601.0A Active CN113872870B (en) 2020-06-30 2020-06-30 Method for controlling network congestion and related device

Country Status (2)

Country Link
CN (1) CN113872870B (en)
WO (1) WO2022001291A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884846A (en) * 2022-04-26 2022-08-09 清华大学 End-to-end available bandwidth monitoring method and system
CN115277556A (en) * 2022-06-21 2022-11-01 网宿科技股份有限公司 Congestion control method, electronic device and readable storage medium
CN116055364B (en) * 2023-03-06 2023-06-16 湖南快乐阳光互动娱乐传媒有限公司 Method and device for measuring maximum uplink bandwidth

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018161A (en) * 2006-09-08 2007-08-15 中山大学 A link, path, and network availability bandwidth measurement method
CN103905272A (en) * 2014-03-19 2014-07-02 珠海世纪鼎利通信科技股份有限公司 Available bandwidth measuring method and system of wireless network
CN107734537A (en) * 2016-08-10 2018-02-23 腾讯科技(深圳)有限公司 Measuring method, transmitting terminal and the receiving terminal of network performance parameter
CN109428784A (en) * 2017-08-31 2019-03-05 腾讯科技(深圳)有限公司 Network detection method and device, computer storage medium and equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366199B1 (en) * 2002-12-10 2008-04-29 Apple Inc. Method and apparatus measuring bandwidth
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
CN109560995A (en) * 2019-01-11 2019-04-02 武汉虹旭信息技术有限责任公司 The long real-time detecting system of multi-hop wireless network available bandwidth self-adaptive detection packet

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018161A (en) * 2006-09-08 2007-08-15 中山大学 A link, path, and network availability bandwidth measurement method
CN103905272A (en) * 2014-03-19 2014-07-02 珠海世纪鼎利通信科技股份有限公司 Available bandwidth measuring method and system of wireless network
CN107734537A (en) * 2016-08-10 2018-02-23 腾讯科技(深圳)有限公司 Measuring method, transmitting terminal and the receiving terminal of network performance parameter
CN109428784A (en) * 2017-08-31 2019-03-05 腾讯科技(深圳)有限公司 Network detection method and device, computer storage medium and equipment

Also Published As

Publication number Publication date
WO2022001291A1 (en) 2022-01-06
CN113872870A (en) 2021-12-31

Similar Documents

Publication Publication Date Title
CN113872870B (en) Method for controlling network congestion and related device
KR101344153B1 (en) Enabling network devices to run multiple congestion control algorithms
US8750109B2 (en) Inferring TCP initial congestion window
US9584380B2 (en) Method and system for detecting slow page load
US11558302B2 (en) Data transmission method and apparatus
KR102176653B1 (en) Apparatus and method for rate control in wireless communication system
JP6337105B2 (en) Method for adapting a download operation of a client terminal configured to receive multimedia content and corresponding terminal
CN110505123B (en) Packet loss rate calculation method, server and computer-readable storage medium
WO2018121742A1 (en) Method and device for transmitting stream data
CN108924205B (en) Data transmission method and device, electronic equipment and gatekeeper adapter
EP2752772A1 (en) Contents distribution system, cache server, and contents distribution method
CN110557655A (en) video picture display method and device, electronic equipment and storage medium
WO2022105798A1 (en) Video processing method and apparatus, and storage medium
CN110445723B (en) Network data scheduling method and edge node
CN110072254B (en) Data transmission method and related equipment thereof
CN110830460A (en) Connection establishing method and device, electronic equipment and storage medium
Havey et al. Receiver driven rate adaptation for wireless multimedia applications
KR20230002784A (en) Methods and servers for transmitting audio and/or video content
CN114071544B (en) Network testing method and device and electronic equipment
CN111835801A (en) File downloading method, device, server, edge device, terminal and medium
CN114024917B (en) Method, device, equipment and storage medium for guaranteeing internet service bandwidth
JP2000295313A (en) Method and device for communication
US8817653B2 (en) Detecting irregular retransmissions
JP2018067788A (en) Inbound traffic acceleration device, acceleration method, and acceleration program
CN117412120A (en) Video transmission method, video transmission device, system, and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant