CN113872870A - Method and related apparatus for controlling network congestion - Google Patents

Method and related apparatus for controlling network congestion Download PDF

Info

Publication number
CN113872870A
CN113872870A CN202010616601.0A CN202010616601A CN113872870A CN 113872870 A CN113872870 A CN 113872870A CN 202010616601 A CN202010616601 A CN 202010616601A CN 113872870 A CN113872870 A CN 113872870A
Authority
CN
China
Prior art keywords
receiving end
time
data packet
sending
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.)
Granted
Application number
CN202010616601.0A
Other languages
Chinese (zh)
Other versions
CN113872870B (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

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application provides a method and a device for controlling network congestion. According to the technical scheme, the sending end continuously sends the data packets for detecting the available bandwidth to the receiving end, and continuously sends the data packets for detecting the available bandwidth to the receiving end at intervals after the data packets are continuously sent. Wherein, continuously sending data packets can increase the speed and number of data packets for detecting available bandwidth, thereby detecting higher and more accurate available bandwidth; and then the data packets are sent at intervals, so that the number of the data packets for detecting the available bandwidth is increased to detect more accurate available bandwidth, and the phenomenon that the number of the data packets is too large so as to avoid packet loss can be avoided.

Description

Method and related apparatus for controlling network congestion
Technical Field
The present application relates to the field of communications, and more particularly, to a method of controlling network congestion and related apparatus.
Background
With the development of internet technology and the expansion of network services, the number of users and applications on the internet is increasing dramatically. The internet is directly oriented to most services of users, such as Application (APP), page access, video playing, short video, music, pictures and other services, and the internet is sensitive to time delay.
According to analysis, the opening speed of most services of the internet directly facing users is very important for user experience, and the size of the opening delay directly influences the growth of enterprise services. At present, the detection rate of the available bandwidth of the network is slow, so that the opening process of the internet service is slow. Therefore, the key to reduce the time delay of opening the internet service and increase the speed of opening the internet service is to increase the detection rate of the available bandwidth of the network.
Disclosure of Invention
The application provides a method and a related device for controlling network congestion, which can improve the detection rate of the available bandwidth of a network, thereby reducing the opening delay of an internet service and further improving the experience of a user 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 sending N data packets to a receiving end, a sending end sends 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 a time interval between the time of the data packet in the N data packets arriving at the receiving end and the time of the data packet in the M data packets arriving at the receiving end; and the sending end sends a data packet to the receiving end according to the first available bandwidth.
The sending end continuously sends N data packets to the receiving end, which can be understood that there is no time interval between the sending times of any two data packets with adjacent sending times in the N data packets. The absence of a time interval between the transmission times of two data packets with 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 data packet previously transmitted by the network.
The sending end sends M data packets to the receiving end at intervals, which can be understood as that there is a time interval between the sending times of any two data packets with adjacent sending times in the M data packets. The existence of a time interval between the transmission times of two data packets whose transmission times are adjacent to each other can be understood as follows: a certain time interval exists between the transmission ending time of the previously transmitted data packet and the transmission starting time of the subsequently transmitted data packet, and the time interval may be preset or determined by the transmission rate of M data packets, which may be determined according to the size of the congestion window (size) and the round trip time of the data packet between the receiving end and the sending list.
In the method, a sending end continuously sends data packets, namely the sending end sends the data packets at a high speed, and when the network bandwidth on a transmission path from the sending end to a receiving end is greater than the sending rate of the data packets, the maximum available bandwidth can be detected as the physical bandwidth of the sending end; and when the available network bandwidth on the transmission path from the sending end to the receiving end is smaller than the sending rate of the data packets, the data exceeding the available network bandwidth can be stored through the intermediate node cache on the transmission path, the data packets can be sent in the available network bandwidth, and the available bandwidth on the transmission path from the sending end to the receiving end can be detected. In addition, the sending end 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, the transmitting end continues to transmit M data packets at intervals. Since the M packets have a certain probability to be 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, and the accuracy of the detected network bandwidth can be increased. In addition, the M data packets are sent at intervals, and the rate is limited, so that the problem that the data packet is lost due to excessive cache of the intermediate node is avoided.
With reference to the first aspect, in a first possible implementation manner, the data size of the N data packets is configured in advance. Alternatively, the data size may be configured according to the cache size of the intermediate node. For example, the size of the data amount may be smaller than or equal to a buffer size of an intermediate node between the sender and the receiver.
In the 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 part and forward the data to the receiving end at the rate corresponding to the available bandwidth, so that the sending end can not only know the available bandwidth according to the receiving rate of the data packets, but also help to avoid the problem of packet loss of the data packets.
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 a round-trip delay of a data packet between the sending end and the receiving end.
That is, the implementation is to finish sending the data packet for detecting the available bandwidth of the network within a time period as long as 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 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 includes: the sending end determines a first time interval between first time when a first data packet in the N data packets reaches the receiving end and second time when a second data packet in the M data packets reaches the receiving end; and the sending end determines the first available bandwidth according to the first time interval and the number of the data packets received by the receiving end from the sending end in the first time interval.
In this implementation, the available bandwidth is determined by the sending end according to the receiving time interval of the data packets at the receiving end and the number of data packets arriving at the receiving end in 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 by the sending 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; and the sending end determines the first time interval according to the first time and the second time.
In the implementation mode, the receiving end sends the receiving time of the data packet to the sending end, and the sending end determines the receiving time interval of the data packet according to the receiving time of the data packet. Therefore, the sending 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 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 by the sending 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 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; and 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 estimates the reception time interval of the packet based on the reception time interval of the indication information. Compared with the method that the receiving end sends the receiving time to the sending end, the method can save transmission resources.
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 of multiple available bandwidths, the multiple available bandwidths are in one-to-one correspondence with multiple data packets arriving at the receiving end in the M data packets, each available bandwidth of the multiple available bandwidths is calculated according to a time interval corresponding to each available bandwidth and a corresponding data amount, the corresponding time interval refers to a time interval between arrival of the data packet corresponding to each available bandwidth at the receiving end and the first time, and the corresponding data amount refers to a number of data packets received by the receiving end from the transmitting end in the corresponding time interval.
With reference to any one of the third to sixth possible implementation manners, in a seventh possible implementation manner, 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 data packet that arrives at the receiving end among the continuously transmitted data packets, and the second time interval is a last data packet that arrives at the receiving end among the M data packets that are transmitted at intervals, that is, the first data packet is a first data packet that arrives at the receiving end among the N data packets, and the second data packet is a last data packet that arrives at the receiving end among the M data packets. This can increase the number of packets used to probe the available bandwidth, and thus can increase the accuracy of the available bandwidth obtained by probing.
In a second aspect, the present application provides a method of controlling network congestion. The method comprises the following steps: after a sending end sends N data packets to a receiving end without a time interval, M data packets are sent 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 a time interval between the time when a data packet in the N data packets arrives at the receiving end and the time when a 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 sending end continuously sends data packets and intermittently sends the data packets, a receiving end determines available bandwidth according to the receiving time of the data packets and feeds the available bandwidth back to the sending end. After the sending end learns the available bandwidth from the receiving end, the sending end can send the data packet according to the available bandwidth.
The N data packets are transmitted from the transmitting end to the receiving end without a time interval, which may be understood as that the N data packets are transmitted continuously, that is, there is no time interval between the 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 with adjacent transmission times can be understood as: there is no preset time interval between the transmission end time of the previously transmitted packet and the transmission start time of the subsequently transmitted packet, but the transmitting end naturally starts transmission of the subsequent packet after transmitting the packet previously transmitted by the network.
The sending end sends M data packets to the receiving end at intervals, which can be understood as that there is a time interval between the sending times of any two data packets with adjacent sending times in the M data packets. The existence of a time interval between the transmission times of two data packets whose transmission times are adjacent to each other can be understood as follows: a certain time interval exists between the sending end time of the previously sent data packet and the sending start time of the subsequently sent data packet, and the time interval may be preset or determined by the sending rates of M data packets, which may be determined according to the size of the congestion window and the round-trip time of the data packet between the receiving end and the sending list.
In the method, a sending end continuously sends data packets, namely the sending end sends the data packets at a high speed, and when the network bandwidth on a transmission path from the sending end to a receiving end is greater than the sending rate of the data packets, the maximum available bandwidth can be detected as the physical bandwidth of the sending end; and when the available network bandwidth on the transmission path from the sending end to the receiving end is smaller than the sending rate of the data packets, the available bandwidth on the transmission path from the sending end to the receiving end can be detected by storing the data exceeding the available network bandwidth through the intermediate node on the transmission path and sending the data packets with the available network bandwidth. In addition, the sending end 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, the transmitting end continues to transmit M data packets at intervals. Since the M packets have a certain probability to be 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, and the accuracy of the detected network bandwidth can be increased. In addition, the M data packets are sent at intervals, and the rate is limited, so that the problem that the data packet is lost due to excessive cache of the intermediate node is avoided.
Moreover, 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, the data size of the N data packets is configured in advance. Alternatively, the data size may be configured according to the cache size of the intermediate node. For example, the size of the data amount may be smaller 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 a data packet 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: a receiving end acquires a first time interval between first time when a first data packet in L data packets sent by a sending end arrives at the receiving end and second time when a second data packet in the L data packets arrives at the receiving end, wherein L is a positive integer greater 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 transmitting end in the first time interval;
determining the first available bandwidth as an available bandwidth of a transmission path from the transmitting end to the receiving end when the first available bandwidth is a maximum available bandwidth of a plurality of available bandwidths, where the plurality of available bandwidths correspond to a plurality of data packets reaching the receiving end in the L data packets one to one, each available bandwidth of 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 arrival of the data packet corresponding to each available bandwidth at the receiving end and the first time, and the second number is a number of data packets received by the receiving end from the transmitting end in the second time interval;
and 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, an apparatus for controlling network congestion is provided, the apparatus comprising means for performing the method of the first aspect or any implementation manner thereof.
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 manner thereof.
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 manner thereof.
In a seventh aspect, an apparatus for controlling network congestion is provided, the apparatus comprising: a memory for storing a program; a processor for executing the memory-stored program, the processor and the communication interface of the apparatus being adapted to perform the method of the first aspect or any one of its implementations when the memory-stored program 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 memory-stored program, the processor and the communication interface of the apparatus being adapted to perform the method of the second aspect or any one of its implementations when the memory-stored program 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, wherein when the program stored in the memory is executed, the processor and the communication interface of the apparatus are configured to perform the method of the third aspect or any one of the implementations.
A tenth aspect provides 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 one of its implementations.
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 its 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 comprising instructions which, when run on a computer, cause the computer to perform the method of the first aspect or any one of its implementations.
In a fourteenth aspect, there is provided a computer program product comprising instructions for causing a computer to perform the method of the second aspect or any one of the implementations described above when the computer program product runs on a computer.
In a fifteenth aspect, there is provided a computer program product comprising instructions for causing a computer to perform the method of the third aspect or any one of its implementations when the computer program product runs on a computer.
A sixteenth aspect provides a chip, where the chip includes a processor and a data interface, and the processor reads instructions stored in a memory through the data interface to execute the method in the first aspect or any one of the implementations.
Optionally, as an implementation manner, the chip may further include a memory, where instructions are stored in the memory, and the processor is configured to execute the instructions stored in the memory, and when the instructions are executed, the processor is configured to execute the method in the first aspect or any one of the implementation manners.
A seventeenth aspect provides a chip, where the chip includes a processor and a data interface, and the processor reads instructions stored in a memory through the data interface to execute the method of the second aspect or any one of the implementations.
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, and when the instructions are executed, the processor is configured to execute the method in the second aspect or any one of the implementation manners.
In an eighteenth aspect, a chip is provided, where the chip includes a processor and a data interface, and the processor reads instructions stored in a memory through the data interface to execute the method in the third aspect or any one of the implementation manners.
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, and when the instructions are executed, the processor is configured to execute the method in the third aspect or any one of the implementation manners.
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 one of the implementations 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 memory-stored program, the processor being configured to perform the method of the second aspect or any one of the implementations when the memory-stored program 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 configured to perform the method of the third aspect or any one of the implementations when the program stored in the memory is executed.
Drawings
FIG. 1 is an exemplary diagram of an application scenario of the technical solution of the embodiment of the present application;
fig. 2 is a schematic flow chart diagram of a method of controlling network congestion according to one embodiment of the present application;
FIG. 3 is a diagram illustrating a process for transmitting a data packet according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of an apparatus for controlling network congestion according to an 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 present application.
Detailed Description
The technical scheme of the embodiment of the application can be applied to any end-to-end protocol and scenes in which the transmission capability of the starting stage needs to be improved and the bandwidth detection speed of the starting stage needs 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 download for a terminal device 130 in the wide area network through a communication network 120.
The terminal device in the embodiment of the present application may be a sensor, a mobile phone, a tablet, a notebook computer, a personal computer, a server, or the like, or may be a gateway, an access router, a core router, a front-end router, a load balancer, or the like.
When the server provides these services to the terminal device through the network, the problem that the start time of these services is usually too long occurs. For example, the data transmission rate of a conventional Transmission Control Protocol (TCP) in a start-up phase increases slowly, so that the bandwidth cannot be fully utilized in the start-up phase; and it is very easy to cause a decrease in data transmission speed due to packet loss.
Generally, a communication protocol can be divided into a plurality of stages, such as startup, steady cruising, probing, and the like, wherein the startup stage is a stage of probing a 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 at the starting stage, so that the protocol can quickly and effectively utilize the network throughput capability and provide the user experience of services.
Fig. 2 is a schematic flow chart of a method for controlling network congestion according to an embodiment of the present application. As shown in fig. 2, the method may include S210, S220, S230, S240, and S250.
S210, the sending end continuously sends N data packets to the receiving end, wherein N is a positive integer.
For example, after establishing a connection with the receiving end through a communication protocol, the transmitting end may continuously transmit N data packets to the receiving end. An example of such a communication protocol is the transmission control protocol.
The sending end continuously sends N data packets to the receiving end, and it 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 at the maximum speed that the sending end can realize.
The absence of wait and gap between the transmission times of two adjacent data packets means that there is no gap 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 immediately transmits the next packet without waiting after transmitting the previous packet.
The sending end continuously sends N data packets to the receiving end, which may also be referred to as sending end sending N data packets to the receiving end in a high-speed connection, or may be referred to as sending end sending data packets to the receiving end in a burst (burst) manner.
The number of consecutively transmitted data packets may also be denoted as burst _ num, that is, N may also be denoted as burst _ num. The value of burst _ num may be preset in a communication protocol, may also be obtained through protocol negotiation in the process of establishing a connection between the sending end and the receiving end, or may be obtained through calculation according to the last connection result. The last connection result may include the bandwidth used in the last connection, the RTT, and/or the size of the congestion window, 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 a burst mode, on one hand, under the condition that the available network bandwidth between the sending end and the receiving end is greater than the physical bandwidth or the signed 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 signed bandwidth of the sending end; on the other hand, when the available network bandwidth is lower than the transmission speed of the data packet in the burst mode, the data exceeding the available bandwidth may be stored by a buffer of an intermediate node between the transmitting end and the receiving end, and transmitted to the receiving end at a speed corresponding to the network bottleneck bandwidth, so as to detect the network bottleneck bandwidth from the transmitting end to the receiving end, where the network bottleneck bandwidth is the detected available network bandwidth.
In an implementation manner of this embodiment, after establishing a connection with a receiving end through a protocol, a sending end may send burst _ num data packets to the sending end in a burst manner within a round-trip time (RTT).
Generally, the total data volume of the N data packets continuously transmitted in the burst mode cannot be too large, because the buffer size larger than the intermediate node may cause packet loss. Therefore, in an implementation manner of this embodiment, to avoid packet loss, the total data size of the N data packets may be smaller than or equal to the cache size of any intermediate node on the transmission path between the sending end and the receiving end.
The total amount of data may be denoted as burst _ size. The value of burst _ size may be preset in a communication protocol, may be obtained through protocol negotiation in the process of establishing a connection between the sending end and the receiving end, or may be obtained through calculation according to the previous connection result. For example, the burst _ size may be equal to the size of tens of Maximum Transmission Units (MTUs).
S220, the sending end sends M data packets to the receiving end at intervals, wherein M is a positive integer.
That is, the transmitting side transmits a packet to the receiving side in a burst mode, and then transmits the packet to the receiving side at intervals.
The sending end sends M data packets to the receiving end at intervals, which can be understood as that when the sending end sends at least two data packets, a time interval exists between sending times of the two data packets. The existence of the time interval between the transmission times of the two data packets means that the time interval exists between the transmission ending time of the previous data packet and the transmission starting 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 amount of the data packet can be increased, that is, the data amount for detecting the available bandwidth of the network can be increased, and thus the accuracy of the detected available bandwidth can be increased; on the other hand, the data packets sent at a low speed enter the cache of the intermediate node with a certain probability, and then are sent to the receiving end with 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 data packets may be transmitted at uniform speed and equal interval. In this case, the method for sending the data packet in this step may be referred to as a constant speed mode or a constant speed mode.
The sending rate of the M data packets may be preset, may be agreed during the process of establishing a connection between the sending end and the receiving end, or may be determined according to the number of data packets sent in the burst mode.
For example, when one RTT is a sounding period, if the transmission rate of the M packets is denoted as a paging _ rate, the paging _ rate can be calculated by (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 an implementation manner of this embodiment, after sending a data packet using a burst mode, a sending end sends the data packet at a constant speed of a paging rate until receiving ACK information of a first data packet, and then a first RTT period ends. It is understood that the ACK information received by the transmitting end may not be the ACK information of the first data packet, but may be the ACK information of the second or other data packets.
And 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 sending of ACK information by a receiving event or a periodic polling event, the receiving end may write a timestamp (timestamp) when each data packet is received into the ACK information by a certain encoding method, and feed back the ACK information to the sending end.
S240, the sending end receives the indication information from the receiving end, determines the time interval between the receiving times of the data packets according to the indication information, and determines the first available bandwidth from the sending end to the receiving end according to the time interval.
For example, in the case that the indication information is carried in ACK information, after the sending end receives the ACK information from the receiving end, the receiving time of the data packet at the receiving end may be analyzed from the ACK information, and a time interval from when the receiving end receives the first data packet from the sending end to when the receiving end receives the last data packet is calculated, and a receiving rate recvRate of the receiving end is calculated 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 the time interval.
For another example, after the sending end receives ACK information of all data packets sent in the burst mode, in the 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 the data packet 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 sending end receives the ACK information of all the data packets from the receiving end, a plurality of receiving rates can be obtained through calculation. 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 further 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 one RTT duration.
S250, the sending end sends a data packet to the receiving end according to the first available bandwidth.
For example, the sending end calculates a suitable sending rate according to the first available bandwidth, and sends data packets to the receiving end at uniform speed and equal intervals by using the sending rate.
In an implementation manner of this embodiment, when the sending end sends a data packet to the receiving end according to the first available bandwidth, the sending end may modify the first available bandwidth to obtain a modified bandwidth, and then send 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 starting stage, k is 1/Gain, Gain is a preset value, and an example of Gain is 2; sampleRate represents the correction bandwidth; sendRate is the maximum rate at which the sending end sends out the probe data; the recvRate is the maximum rate included by the data received by the receiving end, and can be equivalent to the maximum bandwidth in the plurality of bandwidths detected by the transmitting end; Δ t represents a time interval.
In this embodiment, optionally, the data packet sent by the sending end in S250 may be a probe data packet for continuously probing the available bandwidth between the sending end and the receiving end. In this case, when the sender sends data to the receiver according to the available bandwidth, in an example, the sender may calculate the sending rate and the congestion window send _ cwnd by:
PacingRate=Gain*Bw,Gain=2
send_cwnd=Gain*Bw*srtt
where Bw denotes the first available bandwidth and srtt denotes an 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 of the time from the sending end to the receiving end.
Further, a bandwidth detection method heavy in the traditional technology can be continuously used between the sending end and the receiving end until the accurate bandwidth and the congestion window exist, and the starting stage is exited.
For example, after the sending end completes the detection of the available bandwidth according to the data packet in the first RTT, the sending end may send the data packet to the receiving end at a constant speed within the second RTT according to the calculated available bandwidth, so as to continue the detection stage of the available bandwidth, thereby continuously improving the detection accuracy of the available bandwidth.
In the method of this embodiment, generally, the bandwidth detected from the data packet within the first RTT may be very close to the actual available bandwidth. Therefore, with the method of the present embodiment, the start-up phase can complete the detection of the accurate available bandwidth after one to two RTT durations.
In another embodiment of the present invention, a method for controlling network congestion may include the related contents in the method shown in fig. 2, except 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. In general, the receiving end may trigger the transmission 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 of receiving the data packets by the receiving end according to the time interval between the times of receiving the indication information, for example, the time interval between the times of receiving the indication information is taken as the time interval between the times of receiving the data packets by the receiving end.
As shown in fig. 3, after the sending end sends the first data packet, the first data packet is forwarded to the receiving end through the intermediate node; and after a period of time, the sending end sends a second data packet, and the second data packet enters the cache of the intermediate node for storage and is sent to the receiving end at a rate corresponding to the network bottleneck bandwidth. Between the first data packet and the second data packet, the sending end may send any number of data packets.
The receiving end may be triggered by a packet reception event and send ACK information to the transmitting end. That is, each time the receiving end receives a packet, it sends an ACK message to the transmitting end to acknowledge the packet. Thus, the transmitting end can take the time interval between the reception times of the ACK information of the data packet as the time interval between the reception times of the data packet.
In a method for controlling network congestion according to another embodiment of the present application, the method shown in fig. 2 may be included, except that after receiving the data packet, the receiving end may determine a time interval between the receiving times of the data packets according to the receiving time of the data packet, instead of indicating the receiving time of the data packet to the transmitting end, and determine an available bandwidth according to the time interval, and feed 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, and details are not repeated here.
For example, the receiving end may determine to obtain multiple available bandwidths according to time intervals between multiple data packets and the same data packet, and feed back the available bandwidths to the transmitting end through ACK information. The sending end may 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 the final available bandwidth to feed back to the transmitting end.
According to the method in each embodiment of the application, in a wide area network transmission scene, such as an end edge cloud transmission scene, network performance indexes such as throughput, delay time and the like are obviously improved in the transmission process of small and medium files.
In addition, in an end-to-end transmission scene, network performance indexes such as throughput, delay time and the like are obviously improved in the transmission process of small and medium files.
In addition, in data transmission of a cloud network and a Content Delivery Network (CDN), the data transmission rate can be rapidly increased, and the data transmission delay can be reduced. For example, the transmission rate of data can be improved in scenes such as APP, browser page opening, user login, video pacing, music downloading, picture downloading, or video segment opening, 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 sending module 410, a processing module 420, and a receiving module 430.
In one example, the apparatus 400 may be used to perform the operations performed by the transmitting end in the method of controlling network congestion shown in fig. 2. For example, the transmitting module 410 may be configured to perform operations performed by the transmitting end in S210, S220, and S250, the processing module 420 may be configured to perform operations performed by the transmitting end in S240 related to determining the available bandwidth, and the receiving module 430 may be configured to perform operations performed by the transmitting end in S240 related to receiving the indication information.
In another example, the apparatus 400 may be used to perform the operations performed by the receiving end in the method of controlling network congestion shown in fig. 2. For example, the sending module 410 may be configured to perform the operation performed by the receiving end in S240 related to sending the indication information, the processing module 420 may be configured to perform the operation performed by the receiving end in fig. 2 related to information processing, and the receiving module 430 may be configured to perform the operations performed by the receiving end in S210, S220, and S250 related to receiving the data packet by the receiving end.
Fig. 5 is a schematic structural diagram of an apparatus 500 for controlling network congestion according to an embodiment of the present disclosure. The apparatus 500 includes a processor 502, a communication interface 503, and a memory 504. One example of the apparatus 500 is a chip. Another example of an apparatus 500 is a communication device.
The processor 502, memory 504, and communication interface 503 may communicate via a bus. The memory 504 has executable code stored therein, and the processor 502 reads the executable code in the memory 504 to perform a corresponding method. The memory 504 may also include other software modules required to run processes, such as an operating system. The operating system may be LINUXTM,UNIXTM,WINDOWSTMAnd the like.
In one possible implementation, the processor 502 is configured to implement the functions that can be implemented by the processing module 420, and the communication interface 503 is configured to implement the functions that can be implemented by the sending module 401 and the receiving module 403.
For example, the executable code in the memory 504 is used to implement the method implemented by the transmitting end in fig. 2, and the processor 502 reads the executable code in the memory 504 to perform the method implemented by the transmitting end in fig. 2.
As another example, the executable code in the memory 504 is used to implement the method implemented by the receiving end in fig. 2, and the processor 502 reads the executable code in the memory 504 to perform the method implemented by the receiving end in fig. 2.
The processor 502 may be a Central Processing Unit (CPU). The memory 504 may include volatile memory (volatile memory), such as Random Access Memory (RAM). 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 present 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 functions or portions of the functions described above with respect to the method illustrated in fig. 2. For example, referring to the embodiment shown in fig. 2, one or more features of S210-S240 may be undertaken by one or more instructions associated with the signal bearing medium 601.
In some examples, signal bearing medium 601 may include a computer readable medium 603 such as, but not limited to, a hard disk drive, a Compact Disc (CD), a Digital Video Disc (DVD), a digital tape, a memory, a read-only memory (ROM), a Random Access Memory (RAM), or the like. In some implementations, the signal bearing medium 601 may include a computer recordable medium 604 such as, but not limited to, a memory, a read/write (R/W) CD, a R/W DVD, and so forth. In some implementations, the signal bearing medium, 601 may include a communication medium 605 such as, but not limited to, a digital and/or analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.). Thus, for example, the signal bearing medium 601 may be conveyed by a wireless form of communication medium 605 (e.g., a wireless communication medium that conforms to 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-implementing instructions. In some examples, the aforementioned communication devices may be configured to provide various operations, functions, or actions in response to program instructions 602 communicated to the communication device by one or more of computer readable medium 603, computer recordable medium 604, and/or communication medium 605. It should be understood that the arrangements described herein are 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 that some elements may be omitted altogether depending upon the desired results. In addition, many of the described elements are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, in any suitable combination and location.
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 implementation. 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 is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed 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 can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into 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 such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: u disk, removable hard disk, read only memory, random access memory, magnetic or optical disk, etc. for storing program codes.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by 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 (25)

1. A method of controlling network congestion, comprising:
after continuously sending N data packets to a receiving end, a sending end sends 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 a time interval between the time of the data packet in the N data packets arriving at the receiving end and the time of the data packet in the M data packets arriving at 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 a total duration of the N packets and the M packets sent by the sender is less than or equal to a round-trip delay of one data packet between the sender and the receiver.
3. The method according to claim 1 or 2, wherein the determining, by the sending end, a first 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 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, comprises:
the sending end determines a first time interval between first time when a first data packet in the N data packets reaches the receiving end and second time when a second data packet in the M data packets reaches the receiving end;
and the sending end determines the first available bandwidth according to the first time interval and the data volume received by the receiving end from the sending end in the first time interval.
4. The method according to claim 3, wherein the first available bandwidth is a maximum available bandwidth of a plurality of available bandwidths, the plurality of available bandwidths correspond to a plurality of data packets arriving at the receiving end in the M data packets in a one-to-one manner, each available bandwidth of 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, the corresponding time interval refers to a time interval between arrival of the data packet corresponding to each available bandwidth at the receiving end and the first time, and the corresponding data amount refers to a data amount received by the receiving end from the transmitting end in the corresponding time interval.
5. The method of claim 3 or 4, wherein the determining, by the sender, a first time interval between a first time of arrival of a first data packet of the N data packets at the receiver and a second time of arrival of a second data packet of the M data packets at the receiver 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 feedback information is used for indicating the second time;
and the sending end determines the first time interval according to the first time and the second time.
6. The method of claim 3 or 4, wherein the determining, by the sender, a first time interval between a first time of arrival of a first data packet of the N data packets at the receiver and a second time of arrival of a second data packet of the M data packets at the receiver 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 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;
and 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.
7. The method according to any one of claims 3 to 6, wherein the first data packet is a first data packet of the N data packets that arrives at the receiving end, and the second data packet is a last data packet of the M data packets that arrives at the receiving end.
8. The method according to any one of claims 1 to 7, wherein the sending end sends a data packet to the receiving end according to the available bandwidth, and the method comprises:
the sending end updates the size and sending rate of a congestion window of the sending end according to the first available bandwidth;
and the sending end sends a data packet to the receiving end based on the updated size and sending rate of the congestion window.
9. An apparatus for controlling network congestion, comprising:
the sending module is used for sending M data packets to a receiving end at intervals after continuously sending N data packets to the receiving end, wherein M and N are positive integers;
a processing module, configured to determine a first available bandwidth of a transmission path from the apparatus 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 sending module is further configured to send a data packet to the receiving end according to the first available bandwidth.
10. The apparatus of claim 9, wherein a total duration of time for the apparatus to transmit the N packets and the M packets is less than or equal to a round trip delay length of a packet between the apparatus and the receiver.
11. The apparatus according to claim 9 or 10, 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 volume received by the receiving end from the transmitting end in the first time interval.
12. The apparatus according to claim 11, wherein the first available bandwidth is a maximum available bandwidth of a plurality of available bandwidths, the plurality of available bandwidths correspond to a plurality of packets arriving at the receiving end in the M packets in a one-to-one manner, each available bandwidth of 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, the corresponding time interval is a time interval between arrival of the packet at the receiving end and the first time of each available bandwidth, and the corresponding data amount is a data amount received by the receiving end from the apparatus in the corresponding time interval.
13. The apparatus of claim 11 or 12, 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 feedback 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.
14. The apparatus of claim 11 or 12, 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 receiving time of the first indication information and the receiving time of the second indication information.
15. The apparatus according to any of claims 11 to 14, wherein the first data packet is a first data packet of the N data packets that arrives at the receiving end, and the second data packet is a last data packet of the M data packets that arrives at the receiving end.
16. The apparatus according to any one of claims 9 to 15, wherein the sending module is specifically configured to:
updating the size and the sending rate of a congestion window of the sending end according to the first available bandwidth;
and sending a data packet to the receiving end based on the updated size and sending rate of the congestion window.
17. An apparatus for controlling network congestion, comprising: a processor and a communication interface, the processor coupled with a memory;
the memory is to store instructions;
the communication interface is used for sending M data packets to a receiving end at intervals after continuously sending N data packets to the receiving end, wherein M and N are positive integers;
the processor is configured to execute the instructions stored in the memory to determine a first available bandwidth of a transmission path from the apparatus 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.
18. The apparatus of claim 17, wherein a total duration of time for the apparatus to transmit the N packets and the M packets is less than or equal to a round trip delay length of a packet between the apparatus and the receiver.
19. The apparatus according to claim 17 or 18, 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 volume received by the receiving end from the transmitting end in the first time interval.
20. The apparatus according to claim 19, wherein the first available bandwidth is a maximum available bandwidth of a plurality of available bandwidths, the plurality of available bandwidths correspond to a plurality of packets arriving at the receiving end in the M packets in a one-to-one manner, each available bandwidth of 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, the corresponding time interval is a time interval between arrival of the packet at the receiving end and the first time of each available bandwidth, and the corresponding data amount is a data amount received by the receiving end from the apparatus in the corresponding time interval.
21. The apparatus of claim 19 or 20, 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 feedback information is used for indicating the second time;
wherein the processor is specifically configured to determine the first time interval based on the first time and the second time.
22. The apparatus of claim 19 or 20, 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 a receiving time of the first indication information and a receiving time of the second indication information.
23. The apparatus according to any one of claims 19 to 22, wherein the first data packet is a first data packet of the N data packets that arrives at the receiving end, and the second data packet is a last data packet of the M data packets that arrives at the receiving end.
24. The apparatus of any one of claims 17 to 23, the communication interface being specifically configured to:
updating the size and the sending rate of a congestion window of the sending end according to the first available bandwidth;
and sending a data packet to the receiving end based on the updated size and sending rate of the congestion window.
25. A computer-readable medium comprising instructions that, when executed on a processor, cause the processor to perform the method of any of claims 1 to 8.
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 true CN113872870A (en) 2021-12-31
CN113872870B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277556A (en) * 2022-06-21 2022-11-01 网宿科技股份有限公司 Congestion control method, electronic device and readable storage medium

Families Citing this family (2)

* 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
CN116055364B (en) * 2023-03-06 2023-06-16 湖南快乐阳光互动娱乐传媒有限公司 Method and device for measuring maximum uplink bandwidth

Citations (6)

* 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
US20080098124A1 (en) * 2002-12-10 2008-04-24 Gregory Vaughan Method and apparatus for measuring bandwidth
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098124A1 (en) * 2002-12-10 2008-04-24 Gregory Vaughan Method and apparatus for measuring bandwidth
CN101018161A (en) * 2006-09-08 2007-08-15 中山大学 A link, path, and network availability bandwidth measurement method
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277556A (en) * 2022-06-21 2022-11-01 网宿科技股份有限公司 Congestion control method, electronic device and readable storage medium

Also Published As

Publication number Publication date
CN113872870B (en) 2023-10-13
WO2022001291A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
CN113872870B (en) Method for controlling network congestion and related device
US20230237117A1 (en) Method and system for detecting slow page load
US7782794B2 (en) Methods and systems for bandwidth measurement techniques
KR101344153B1 (en) Enabling network devices to run multiple congestion control algorithms
CN110875915B (en) Data transmission method and device
US20150263912A1 (en) Method and system for detecting slow page load
CN110505123B (en) Packet loss rate calculation method, server and computer-readable storage medium
JP2017513331A (en) Transport accelerator that implements extended transmission control functionality
CN110830460B (en) Connection establishing method and device, electronic equipment and storage medium
CN110072254B (en) Data transmission method and related equipment thereof
US9350484B2 (en) Transport accelerator implementing selective utilization of redundant encoded content data functionality
JP2004364217A (en) Packet communication apparatus
US9166687B2 (en) Method and apparatus for using credits to determine cable length
US20060116074A1 (en) Communication repeater, communication repeater program, and communication repeater system
CN114071544A (en) Network testing method and device and electronic equipment
CN110290552B (en) Method and device for measuring cache depth, storage medium and electronic device
JP3647776B2 (en) System and method for performing reliable multicast on a network
US8699347B2 (en) Communication apparatus, communication system, communication method, and a computer-readable medium
CN113726691B (en) Bandwidth reservation method, device, equipment and storage medium
KR101550504B1 (en) Adaptation of Content Transmission for Social Network Systems
US10721153B2 (en) Method and system for increasing throughput of a TCP/IP connection
JP2018067788A (en) Inbound traffic acceleration device, acceleration method, and acceleration program
CN117294584A (en) Fault positioning method and device, electronic equipment and storage medium
CN117692392A (en) Retransmission timeout length determining method and device, electronic equipment and storage medium
CN117793964A (en) Core network data transmission method, electronic equipment and computer readable 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