WO2022001291A1 - Procédé de régulation de congestion de réseau, et appareil associé - Google Patents

Procédé de régulation de congestion de réseau, et appareil associé Download PDF

Info

Publication number
WO2022001291A1
WO2022001291A1 PCT/CN2021/087368 CN2021087368W WO2022001291A1 WO 2022001291 A1 WO2022001291 A1 WO 2022001291A1 CN 2021087368 W CN2021087368 W CN 2021087368W WO 2022001291 A1 WO2022001291 A1 WO 2022001291A1
Authority
WO
WIPO (PCT)
Prior art keywords
receiving end
data packets
time
data
data packet
Prior art date
Application number
PCT/CN2021/087368
Other languages
English (en)
Chinese (zh)
Inventor
粟荡
郑凯
柳晓旭
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2022001291A1 publication Critical patent/WO2022001291A1/fr

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
    • 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
    • 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

Definitions

  • the present application relates to the field of communications, and more particularly, to methods and related apparatuses for controlling network congestion.
  • the speed of opening most of the services directly facing users on the Internet is very important for user experience, and the size of the opening delay directly affects the growth of enterprise services.
  • the opening process of the Internet service is also slow. Therefore, in order to reduce the opening delay of Internet services and improve the opening speed of Internet services, the key is to increase the detection rate of available network bandwidth.
  • the present application provides a method and a related device for controlling network congestion, which can improve the detection rate of available network bandwidth, thereby reducing the opening delay of Internet services, and further improving the user experience of Internet services.
  • the present application provides a method for controlling network congestion.
  • the method includes: after the sending end continuously sends N data packets to the receiving end, periodically sending M data packets to the receiving end, where M and N are positive integers; the sending end according to the N data packets The time interval between the time when the data packets in the packet arrive at the receiving end and the time when the data packets in the M data packets arrive at the receiving end, determines the first available transmission path from the transmitting end to the receiving end bandwidth; the sender sends a data packet to the receiver according to the first available bandwidth.
  • the sending end continuously sends N data packets to the receiving end, which can be understood as no time interval between the sending times of any two data packets whose sending times are adjacent in the N data packets. There is no time interval between the transmission times of two data packets with adjacent transmission times. It can also be understood that there is no preset time between the transmission end time of the data packet sent earlier and the transmission start time of the data packet sent later. Time interval, but the sender immediately sends the following data packet after the sending network sends the previous data packet.
  • the sending end periodically sends M data packets to the receiving end, which can be understood as a time interval between the sending times of any two data packets whose sending times are adjacent in the M data packets.
  • There is a time interval between the transmission times of two data packets with adjacent transmission times which can also be understood as: there is a certain time between the transmission end time of the data packet sent before and the start time of the data packet sent later interval, the time interval can be preset or determined by the sending rate of M data packets, and the sending rate of these M data packets can be determined according to the size of the congestion window and the The round-trip time of packets between sending orders is determined.
  • the sending end continuously sends data packets, that is, the sending end sends data packets at high speed, and when the network bandwidth on the transmission path from the sending end to the receiving end is greater than the sending rate of these data packets, it can be detected that the maximum available bandwidth is The physical bandwidth of the sender; and when the available network bandwidth on the transmission path from the sender to the receiver is less than the sending rate of these data packets, the intermediate node cache on the transmission path can store data exceeding the available network bandwidth and send data with the available network bandwidth packets, which can detect the available bandwidth on the transmission path from the sender to the receiver.
  • the sending end continuously sends the data packets, which can increase the sending amount of the data packets, thereby improving the detection rate of the available bandwidth.
  • the sending end after the sending end continuously sends N data packets, it also continues to send M data packets at intervals. Since the M data packets have a certain probability to be buffered by the intermediate node and then sent to the receiving end, the number of data packets used to detect the available network bandwidth of the transmission path can be increased, thereby improving the accuracy of the detected network bandwidth. Spend. In addition, the M data packets are sent at intervals, and the rate is limited, so it helps to avoid excessive buffering of intermediate nodes, thereby causing the problem of packet loss.
  • the data size of the N data packets is pre-configured.
  • the size of the data amount may be configured according to the cache size of the intermediate node.
  • the size of the data amount may be less than or equal to the buffer size of the intermediate node between the sending end and the receiving end.
  • the data size of the N data packets is configured according to the cache size configuration of the intermediate node, so that even if the transmission rate of the N data packets is greater than the available bandwidth from the sender to the receiver, the The intermediate nodes on the transmission path can cache the data that exceeds the bandwidth and forward it to the receiver at the rate corresponding to the available bandwidth, so that the sender can not only know the available bandwidth according to the receiving rate of these packets, but also help avoid the problem.
  • a packet loss problem occurs.
  • the total duration of the sending end sending the N data packets and the M data packets is less than or equal to the The length of a round-trip delay of a data packet between the sender and the receiver.
  • the data packets used to detect the available network bandwidth are sent out within a time period equal to the round-trip delay of one data packet, so that the detection of the available network bandwidth can be quickly realized.
  • the sending end is based on the time when the data packets in the N data packets arrive at the receiving end and the M data packets.
  • the first available bandwidth is determined by the interval and the number of data packets received by the receiving end from the transmitting end within the first time interval.
  • the transmitting end determines the available bandwidth 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 within the time interval.
  • the sender determines the first time when the first data packet in the N data packets arrives at the receiver and the M data packets.
  • the first time interval between the second time when the second data packet in the packet arrives at the receiving end includes: the transmitting end receives the first indication information and the second indication information sent by the receiving end, the first indication information The indication information is used to indicate the first time, and the second indication information is used to indicate the second time; the sender determines the first time interval according to the first time and the second time .
  • the receiving end sends the receiving end 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.
  • the sender can obtain the accurate receiving time of the data packet, thereby obtaining the accurate time interval, and then obtaining the accurate available bandwidth.
  • the sender determines the first time when the first data packet in the N data packets arrives at the receiver and the M data packets.
  • the first time interval between the second time when the second data packet in the packet arrives at the receiving end includes: the transmitting end receives the first indication information and the second indication information sent by the receiving end, the first indication information The indication information is used to indicate that the receiving end has received the first data packet, and the second indication information is used to indicate that the receiving end has received the second data packet;
  • the first time interval is determined by a time interval between the time when the indication information is received and the time when the second indication information is received.
  • the sending end infers the receiving time interval of the data packet according to the receiving time interval of the indication information. Compared with the method in which the receiving end sends the receiving time to the transmitting end, transmission resources can be saved.
  • the first available bandwidth is a maximum available bandwidth among multiple available bandwidths, and the multiple available bandwidths One-to-one correspondence with multiple data packets reaching the receiving end in the M data packets, each available bandwidth in the multiple available bandwidths is calculated according to the time interval corresponding to each available bandwidth and the corresponding data volume Obtained, the corresponding time interval refers to the time interval between the time when the data packet corresponding to each available bandwidth arrives at the receiving end and the first time, and the corresponding data volume refers to the corresponding time The number of data packets received by the receiver from the sender within the interval.
  • the method further includes: the sender updates the size of the congestion window according to the first available bandwidth.
  • the first time interval is the first data packet that reaches the receiving end among the continuously sent data packets
  • the second time interval is the last data packet that reaches the receiving end among the M data packets that are sent intermittently, that is, , the first data packet is the first data packet among the N data packets that arrives at the receiving end, and the second data packet is the last data packet among the M data packets that arrives at the receiving end.
  • the present application provides a method for controlling network congestion.
  • the method includes: after sending N data packets to the receiving end without time interval, the sending end periodically sends M data packets to the receiving end, where M and N are positive integers;
  • the receiving end receives first indication information, where the first indication information is used to indicate the first available bandwidth, and the first available bandwidth is the time at which the receiving end arrives at the receiving end according to the data packets in the N data packets is determined by the time interval between the time when the data packets in the M data packets arrive at the receiving end; the transmitting end sends the data packets to the receiving end according to the first available bandwidth.
  • the receiving end determines the available bandwidth according to the receiving time of these data packets and feeds back the available bandwidth to the sending end. After the sender learns the available bandwidth from the receiver, it can send data packets according to the available bandwidth.
  • the sender sends N data packets to the receiver without time interval. It can be understood that the N data packets are sent continuously, that is, there is no interval between the transmission times of any two data packets with adjacent transmission times in the N data packets. time interval. There is no time interval between the transmission times of two data packets with adjacent transmission times. It can also be understood that there is no preset time between the transmission end time of the data packet sent earlier and the transmission start time of the data packet sent later. The time interval, but the sending end naturally starts to send the following data packets after the data packets sent by the sending network.
  • the sending end periodically sends M data packets to the receiving end, which can be understood as a time interval between the sending times of any two data packets whose sending times are adjacent in the M data packets.
  • There is a time interval between the transmission times of two data packets with adjacent transmission times which can also be understood as: there is a certain time between the transmission end time of the data packet sent before and the start time of the data packet sent later
  • the time interval can be preset or determined by the sending rate of M data packets, and the sending rate of these M data packets can be determined according to the size of the congestion window and the difference between the receiving end and the sending order.
  • the round-trip time between packets is determined.
  • the sending end continuously sends data packets, that is, the sending end sends data packets at high speed, and when the network bandwidth on the transmission path from the sending end to the receiving end is greater than the sending rate of these data packets, it can be detected that the maximum available bandwidth is The physical bandwidth of the sender; and when the available network bandwidth on the transmission path from the sender to the receiver is less than the sending rate of these data packets, the data exceeding the available network bandwidth is stored through the intermediate nodes on the transmission path and the data packets are sent with the available network bandwidth, The available bandwidth on the transmission path from the sender to the receiver can be detected.
  • the sending end continuously sends the data packets, which can increase the sending amount of the data packets, thereby improving the detection rate of the available bandwidth.
  • the sending end after the sending end continuously sends N data packets, it also continues to send M data packets at intervals. Since the M data packets have a certain probability to be buffered by the intermediate node and then sent to the receiving end, the number of data packets used to detect the available network bandwidth of the transmission path can be increased, thereby improving the accuracy of the detected network bandwidth. Spend. In addition, the M data packets are sent at intervals, and the rate is limited, so it helps to avoid excessive buffering of intermediate nodes, thereby causing the problem of packet loss.
  • the receiver calculates the available bandwidth and sends the available bandwidth to the sender, which can save transmission resources.
  • the data size of the N data packets is pre-configured.
  • the size of the data amount may be configured according to the cache size of the intermediate node.
  • the size of the data amount may be less than or equal to the buffer size of the intermediate node between the sending end and the receiving end.
  • the total duration of sending the N data packets and the M data packets by the transmitting end is less than or equal to the The length of a round-trip delay of a data packet between the sender and the receiver.
  • the present application provides a method for controlling network congestion.
  • the method includes: the receiving end obtains the first time when the first data packet in the L data packets sent by the transmitting end arrives at the receiving end and the second time when the second data packet in the L data packets arrives at the receiving end.
  • the first time interval between times, L is a positive integer greater than 1;
  • the receiving end determines the first available bandwidth according to the first time interval and the number of data packets received by the receiving end from the transmitting end within the first time interval;
  • the first available bandwidth is the largest available bandwidth among multiple available bandwidths
  • the first available bandwidth is determined as the available bandwidth of the transmission path from the transmitting end to the receiving end
  • the multiple available bandwidths are The bandwidth is in one-to-one correspondence with a plurality of data packets reaching the receiving end in the L data packets, and each available bandwidth in the plurality of available bandwidths is calculated according to the second time interval and the second quantity.
  • the second time interval refers to the time interval between the time when the data packets corresponding to each available bandwidth arrive at the receiving end and the first time
  • the second quantity refers to the time between the receiving end and the receiving end within the second time interval. the number of packets received by the sender
  • the receiving end sends first indication information to the transmitting end, where the first indication information is used to indicate the available bandwidth.
  • the receiver calculates the available bandwidth and sends the available bandwidth to the sender, which can save transmission resources.
  • an apparatus for controlling network congestion including a module for performing the method in the first aspect or any one of the implementation manners.
  • an apparatus for controlling network congestion comprising a module for performing the method in the second aspect or any one of the implementation manners.
  • an apparatus for controlling network congestion including a module for performing the method in the third aspect or any one of the implementation manners.
  • an apparatus for controlling network congestion comprising: a memory for storing a program; a processor for executing the program stored in the memory, when the program stored in the memory is executed, the The communication interface between the processor and the apparatus is used to execute the method in the first aspect or any one of the implementation manners.
  • an apparatus for controlling network congestion comprising: a memory for storing a program; a processor for executing the program stored in the memory, when the program stored in the memory is executed, the The communication interface between the processor and the apparatus is used to execute the method in the second aspect or any one of the implementation manners.
  • an apparatus for controlling network congestion comprising: a memory for storing a program; a processor for executing the program stored in the memory, when the program stored in the memory is executed, the The communication interface between the processor and the apparatus is used to execute the method in the third aspect or any one of the implementation manners.
  • a computer-readable medium stores program code for execution by a device, the program code comprising a method for executing the first aspect or any one of the implementation manners thereof.
  • a computer-readable medium storing program code for execution by a device, the program code comprising for executing the method in the second aspect or any one of the implementation manners thereof.
  • a computer-readable medium storing program code for execution by a device, the program code comprising for performing the method in the third aspect or any one of the implementation manners thereof.
  • a thirteenth aspect provides a computer program product containing instructions, when the computer program product runs on a computer, the computer causes the computer to execute the method in the first aspect or any one of the implementation manners.
  • a fourteenth aspect provides a computer program product comprising instructions, which when the computer program product is run on a computer, causes the computer to execute the method of the second aspect or any one of the implementation manners.
  • a fifteenth aspect provides a computer program product comprising instructions, which when the computer program product is run on a computer, causes the computer to execute the method in the third aspect or any one of the implementation manners.
  • a sixteenth aspect provides a chip, the chip includes a processor and a data interface, the processor reads an instruction stored in a memory through the data interface, and executes the first aspect or any one of the implementation manners. Methods.
  • the chip may further include a memory, in which instructions are stored, the processor is configured to execute the instructions stored in the memory, and when the instructions are executed, the The processor is configured to execute the method in the first aspect or any one of the implementation manners thereof.
  • a seventeenth aspect provides a chip, the chip includes a processor and a data interface, the processor reads an instruction stored in a memory through the data interface, and executes the second aspect or any one of the implementation manners. Methods.
  • the chip may further include a memory, in which instructions are stored, the processor is configured to execute the instructions stored in the memory, and when the instructions are executed, the The processor is configured to execute the method in the second aspect or any one of the implementations.
  • a chip in an eighteenth aspect, includes a processor and a data interface, the processor reads an instruction stored in a memory through the data interface, and executes the third aspect or any one of the implementation manners. Methods.
  • the chip may further include a memory, in which instructions are stored, the processor is configured to execute the instructions stored in the memory, and when the instructions are executed, the The processor is configured to execute the method in the third aspect or any one of the implementation manners.
  • a nineteenth aspect provides a communication device, the communication device comprising: a memory for storing a program; a processor for executing the program stored in the memory, when the program stored in the memory is executed, the The processor is configured to execute the method in the first aspect or any one of the implementation manners.
  • a communication device comprising: a memory for storing a program; a processor for executing the program stored in the memory, when the program stored in the memory is executed, the The processor is configured to execute the method in the second aspect or any one of the implementation manners.
  • a communication device comprising: a memory for storing a program; a processor for executing the program stored in the memory, when the program stored in the memory is executed, the The processor is configured to execute the method in the third aspect or any one of the implementation manners.
  • Fig. 1 is an example diagram of an application scenario of the technical solution of the embodiment of the present application
  • FIG. 2 is a schematic flowchart of a method for controlling network congestion according to an embodiment of the present application
  • FIG. 3 is a schematic diagram of a data packet transmission process 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.
  • Figure 6 is a schematic diagram of a computer program product of one embodiment of the present application.
  • FIG. 1 is a schematic diagram of an exemplary application scenario of the technical solution of the embodiment of the present application.
  • the server 110 in the wide area network can provide the terminal device 130 in the wide area network with online shopping, web page access, application (application, APP) opening, web page picture opening, video on demand, live broadcast, short Video opening, online music, ad loading, file backup or file download, etc.
  • application application, APP
  • web page picture opening video on demand
  • video on demand live broadcast
  • live broadcast live broadcast
  • short Video opening online music, ad loading, file backup or file download, etc.
  • the terminal devices in the embodiments of the present application may be sensors, mobile phones, tablets, notebook computers, personal computers, servers, etc., and may also be gateways, access routers, core routers, front-end routers, load balancers, and the like.
  • the server When the server provides these services to the terminal equipment through the network, the problem that the startup time of these services is usually too long occurs.
  • the data transmission rate of the traditional transmission control protocol (TCP) increases slowly during the startup phase, resulting in the inability to fully utilize the bandwidth during the startup phase; and it is very easy to reduce the data transmission speed due to packet loss.
  • TCP transmission control protocol
  • the communication protocol can be divided into multiple stages such as startup, stable cruise, and detection.
  • the startup stage is the stage in which the bandwidth is detected after the connection is established, and the transmission speed is gradually increased.
  • the technical solutions of the embodiments of the present application aim to improve the bandwidth detection speed and the anti-packet loss capability in the start-up phase of the protocol, so that the protocol can quickly and effectively utilize the network throughput capability and provide user experience of services.
  • FIG. 2 is a schematic flowchart 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.
  • the transmitting end continuously sends N data packets to the receiving end, where N is a positive integer.
  • the sending end may continuously send N data packets to the receiving end.
  • N An example of such a communication protocol is the Transmission Control Protocol.
  • the sending end continuously sends N data packets to the receiving end, which can be understood as there is no waiting and interval between the sending time of any two adjacent data packets in the N data packets, so as to ensure that the data packets can be sent by the sending end.
  • the maximum speed achieved is emitted.
  • the absence of waiting time 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 latter data packet. That is to say, the sender sends the next data packet immediately after sending the previous data packet without waiting.
  • the sending end continuously sends N data packets to the receiving end, which can also be called the sending end sending N data packets to the receiving end in a high-speed connection, or it can be called that the sending end sends data packets to the receiving end in a burst mode. .
  • the number of continuously sent data packets may also be recorded as burst_num, that is, N may also be recorded as burst_num.
  • the value of burst_num can be preset in the communication protocol, or it can be obtained through protocol negotiation during the process of establishing a connection between the sender and the receiver, or it can be calculated based on 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.
  • the sending end sends data packets to the receiving end in burst mode.
  • the available network bandwidth between the sending end and the receiving end is greater than the physical bandwidth or contracted bandwidth of the sending end
  • the sending end can be detected.
  • the maximum available network bandwidth to the receiver is the physical bandwidth or contracted bandwidth of the sender; on the other hand, if the available network bandwidth is lower than the data packet sending speed in burst mode, the data exceeding the available bandwidth It can be stored in the buffer of the intermediate node between the sender and the receiver, and sent to the receiver at the speed corresponding to the network bottleneck bandwidth to detect the network bottleneck bandwidth from the sender to the receiver.
  • the network bottleneck bandwidth is is the detected available network bandwidth.
  • the sending end may send burst_num data packets to the sending end in a burst manner.
  • the total data size of the N data packets sent continuously in burst mode cannot be too large, because larger than the buffer size of the intermediate node may lead to packet loss. Therefore, in an implementation manner of this embodiment, in order to avoid packet loss, the total data size of the N data packets may be less than or equal to the buffer size of any intermediate node on the transmission path between the sender and the receiver.
  • burst_size The total amount of data can be recorded as burst_size.
  • the value of burst_size can be preset in the communication protocol, or it can be obtained through protocol negotiation during the process of establishing a connection between the sender and the receiver, or it can be calculated based on the last connection result.
  • burst_size may be equal to the size of dozens of maximum transmission units (MTUs).
  • the sending end periodically sends M data packets to the receiving end, where M is a positive integer.
  • the sender after the sender sends data packets to the receiver in burst mode, it sends data packets to the receiver at intervals.
  • the sending end periodically sends M data packets to the receiving end, which can be understood as a time interval between the sending times of the two data packets when the sending end sends at least two data packets.
  • the time interval between the sending times of two data packets means that there is a time interval between the sending end time of the previous data packet and the sending start time of the next data packet.
  • the data packets are sent slowly after the burst mode, on the one hand, the data volume of the data packets can be increased, that is, the data volume used to detect the available bandwidth of the network can be increased, so that the accuracy of the detected available bandwidth can be improved;
  • the data packets sent at a slow rate have a certain probability to enter the buffer of the intermediate node, and then send them to the receiving end with the network bottleneck bandwidth, thereby increasing the number of data packets for detecting the network bottleneck bandwidth and further improving the network available bandwidth for detection. accuracy.
  • the M data packets may be sent at a constant speed and at equal intervals.
  • the method of sending data packets in this step may be called a uniform speed mode or a uniform speed mode.
  • the sending rate of the M data packets may be preset, or negotiated during the process of establishing a connection between the sender and the receiver, or may be determined according to the number of data packets sent in burst mode.
  • the size of the initial congestion window can be preset.
  • the sending end uses the burst mode to send the data packets, it sends the data packets at a constant speed of pacing rate until the ACK information of the first data packet is received, then the first RTT Cycle ends.
  • the ACK information received by the sender may not be the ACK information of the first data packet, but may be the ACK information of the second or other data packets.
  • the receiving end After receiving the data packets sent by the transmitting end, the receiving end records the receiving time of each data packet, and sends indication information to the transmitting end, where the indication information is used to indicate the receiving time of the data packets.
  • the receiving end when the receiving end triggers the sending of ACK information by a receiving event or a periodic polling event, the receiving end can write the timestamp (timestamp) when each data packet is received into the ACK information through a certain encoding method, and pass The ACK information is fed back to the sender.
  • timestamp timestamp
  • the transmitting end receives indication information from the receiving end, and determines a time interval between the reception times of the data packets according to the indication information, and determines the first time between the transmitting end and the receiving end according to the time interval. an available bandwidth.
  • the sender when the indication information is carried in the ACK information, after the sender receives the ACK information from the receiver, it can parse out the reception time of the data packet at the receiver from the ACK information, and calculate the time the receiver receives from the sender.
  • data_size_1 represents the total data volume of the data packets that the receiving end has acknowledged
  • ⁇ time represents the receiving end from the sending end. The time interval at which these packets were received.
  • the sender After the sender receives the ACK information of all data packets from the receiver, it can calculate multiple reception rates. As an example, the sender may determine the available network bandwidth, that is, the first available bandwidth, according to the maximum reception rate among the multiple reception rates.
  • the sending end sends a data packet to the receiving end according to the first available bandwidth.
  • the sender calculates an appropriate sending rate according to the first available bandwidth, and uses the sending rate to send data packets to the receiver at a constant speed and at regular intervals.
  • the transmitting end when sending a data packet to the receiving end according to the first available bandwidth, 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 corrected bandwidth is as follows:
  • sampleRate min(sendRate,recvRate)*min(1,k+((1-k)* ⁇ t)/srtt))
  • the data packet sent by the transmitting end in S250 may be a probe data packet used to continuously detect the available bandwidth between the transmitting end and the receiving end.
  • the sender can calculate the sending rate Pacing rate and the congestion window send_cwnd as follows:
  • Bw represents the first available bandwidth
  • srtt represents an RTT duration
  • the sender After the sender calculates the sending rate Pacing rate and the congestion window send_cwnd, it can send data packets to the receiver based on the sending rate Pacing rate and the congestion window send_cwnd to detect the available bandwidth from the sender to the receiver.
  • the traditional bandwidth detection method can be continued between the sender and the receiver until the bandwidth and congestion window are accurate, and the startup phase is exited.
  • the sender can send data packets to the receiver at a constant speed in the second RTT according to the calculated available bandwidth to continue the detection of the available bandwidth.
  • the detection phase can continuously improve the detection accuracy of the available bandwidth.
  • the bandwidth detected according to the data packets in the first RTT can be very close to the actual available bandwidth. Therefore, using the method of this embodiment, the detection of the accurate available bandwidth can be completed after one to two RTTs in the startup phase.
  • the method for controlling network congestion according to another embodiment of the present application may include relevant content in the method shown in FIG. 2 , the difference is that the indication information sent by the receiving end to the transmitting end may not include the receiving time of the data packet , but is used to indicate that the receiver has acknowledged the packet.
  • the indication information may be ACK information.
  • the receiving end can trigger the sending of the indication information by a data packet receiving event or a periodic polling event.
  • the transmitting end may determine the time interval between the times when the receiving end receives the data packets according to the time interval between the receiving times of the indication information, for example, the time interval between the receiving times of the indication information is taken as the receiving end The time interval between when packets are received.
  • the sending end after the sending end sends 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 the second data packet, and after the second data packet is stored in the cache of the intermediate node , and send it to the receiver at the rate corresponding to the network bottleneck bandwidth.
  • the sending end may send any number of data packets.
  • the receiver can be triggered by a packet reception event and send ACK information to the sender. That is to say, each time the receiver receives a data packet, it sends an ACK message to confirm the data packet to the sender. In this way, the sender can take the time interval between the times when the ACK information of the data packet is received as the time interval between the times when the data packet is received.
  • the method for controlling network congestion according to another embodiment of the present application may include the relevant content in the method shown in FIG. 2 , the difference is that after the receiving end receives the data packet, it does not need to indicate the receiving end of the data packet to the transmitting end.
  • the receiving end determines the time interval between data packet receiving times according to the receiving time of the data packets, and determines the available bandwidth according to the time interval, and feeds back the available bandwidth to the transmitting end.
  • the receiving end may determine to obtain multiple available bandwidths according to the time interval between multiple data packets and the same data packet, and feed back these available bandwidths to the transmitting end through ACK information.
  • the sender can select the maximum available bandwidth from the multiple available bandwidths, and modify the maximum available bandwidth to obtain the final available bandwidth.
  • the receiving end may determine the final available bandwidth and feed it back to the transmitting end.
  • the methods in the various embodiments of the present application significantly improve network performance indicators such as throughput and delay time during the transmission of small and medium files in a wide area network transmission scenario, such as a device-edge cloud transmission scenario.
  • network performance indicators such as throughput and delay time are significantly improved during the transmission of small and medium files.
  • the data transmission rate can be quickly increased and the data transmission delay can be reduced.
  • the data transfer rate can be increased, thereby improving user experience.
  • FIG. 4 is a schematic structural diagram of an apparatus for controlling network congestion according to an embodiment of the present application.
  • the apparatus 400 in this embodiment may include a sending module 410 , a processing module 420 and a receiving module 430 .
  • the apparatus 400 may be configured to perform the operations performed by the sender in the method for controlling network congestion shown in FIG. 2 .
  • the sending module 410 can be used to perform the operations performed by the sender in S210, S220 and S250
  • the processing module 420 can be used to perform the operations performed by the sender in S240 related to determining the available bandwidth
  • the receiving module 430 can be used to Perform S240 operations related to the sending end receiving the indication information.
  • the apparatus 400 may be configured to perform the operations performed by the receiver in the method for controlling network congestion shown in FIG. 2 .
  • the sending module 410 can be used to perform the operations related to sending the indication information performed by the receiving end in S240
  • the processing module 420 can be used to perform the operations related to information processing performed by the receiving end in FIG. 2
  • the receiving module 430 can be It is used to perform the operations of S210, S220 and S250 related to the receiving end receiving the data packet.
  • 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 includes a processor 502 , a communication interface 503 and a memory 504 .
  • One example of apparatus 500 is a chip.
  • Another example of apparatus 500 is a communication device.
  • the processor 502, the memory 504 and the communication interface 503 can communicate through a bus.
  • Executable code is stored in the memory 504, and the processor 502 reads the executable code in the memory 504 to execute the corresponding method.
  • the memory 504 may also include other software modules required for running processes such as an operating system.
  • the operating system can be LINUX TM , UNIX TM , WINDOWS TM and the like.
  • the processor 502 is used to implement the functions that the processing module 420 can implement, and the communication interface 503 is used to implement the functions that the sending module 401 and the receiving module 403 can implement.
  • the executable code in the memory 504 is used to implement the method implemented by the transmitter in FIG. 2
  • the processor 502 reads the executable code in the memory 504 to execute the method implemented by the transmitter in FIG. 2 .
  • 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 execute the method implemented by the receiving end in FIG. 2 .
  • the processor 502 may be a central processing unit (central processing unit, CPU).
  • Memory 504 may include volatile memory, such as random access memory (RAM).
  • RAM random access memory
  • the memory 504 may also include non-volatile memory (2non-volatile memory, 2NVM), such as 2read-only memory (2ROM), flash memory, hard disk drive (HDD) or solid state drive ( solid state disk, SSD).
  • 2NVM non-volatile memory
  • 2ROM 2read-only memory
  • flash memory such as hard disk drive (HDD) or solid state drive ( solid state disk, SSD).
  • example computer program product 600 is provided using signal bearing medium 601 .
  • the signal bearing medium 601 may include one or more program instructions 602 which, when executed by one or more processors, may provide the functions or parts of the functions described above with respect to the method shown in FIG. 2 .
  • one or more of the features of S210 to S240 may be undertaken by one or more instructions associated with the signal bearing medium 601 .
  • the signal bearing medium 601 may include a computer readable medium 603 such as, but not limited to, a hard drive, a compact disc (CD), a digital video disc (DVD), a digital tape, a memory, a read only memory (read only memory) -only memory, ROM) or random access memory (RAM), etc.
  • the signal bearing medium 601 may include a computer recordable medium 604 such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, and the like.
  • the signal bearing medium, 601 may include a communication medium 605, such as, but not limited to, digital and/or analog communication media (eg, fiber optic cables, waveguides, wired communication links, wireless communication links, etc.) .
  • a communication medium 605 such as, but not limited to, digital and/or analog communication media (eg, fiber optic cables, waveguides, wired communication links, wireless communication links, etc.) .
  • the signal bearing medium 601 may be conveyed by a wireless form of communication medium 605 (eg, a wireless communication medium conforming 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-implemented instructions.
  • the aforementioned communication device may be configured to, in response to program instructions 602 communicated to the communication device via one or more of computer readable medium 603 , computer recordable medium 604 , and/or communication medium 605 , Provides various operations, functions, or actions.
  • program instructions 602 communicated to the communication device via one or more of computer readable medium 603 , computer recordable medium 604 , and/or communication medium 605 .
  • the arrangements described herein are for illustrative purposes only. Thus, those skilled in the art will understand that other arrangements and other elements (eg, machines, interfaces, functions, sequences, and groups of functions, etc.) can be used instead and that some elements may be omitted altogether depending on the desired results . Additionally, 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 position.
  • the disclosed system, apparatus and method may be implemented in other manners.
  • the apparatus embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the functions, if implemented in the form of software functional units and sold or used as independent products, may be stored in a computer-readable storage medium.
  • the technical solution of the present application can be embodied in the form of a software product in essence, or the part that contributes to the prior art or the part of the technical solution.
  • the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage medium includes: a U disk, a removable hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk and other media that can store program codes.

Landscapes

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

Abstract

La présente demande concerne un procédé et un appareil permettant de réguler une congestion de réseau. Selon les solutions techniques de la présente demande, une extrémité d'envoi envoie en continu, à une extrémité de réception, des paquets de données pour détecter la bande passante disponible, puis continue à envoyer par intermittence, à l'extrémité de réception, des paquets de données pour détecter la bande passante disponible après l'envoi continu des paquets de données. L'envoi continu de paquets de données permet d'augmenter la vitesse et le nombre de paquets de données pour détecter la bande passante disponible afin de pouvoir détecter une bande passante disponible plus élevée et plus précise. Ensuite, l'envoi par intermittence des paquets de données augmente le nombre de paquets de données pour détecter la bande passante disponible afin de détecter une bande passante disponible plus précise, tout en empêchant le nombre de paquets de données d'être trop élevé pour empêcher la perte de paquets.
PCT/CN2021/087368 2020-06-30 2021-04-15 Procédé de régulation de congestion de réseau, et appareil associé WO2022001291A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010616601.0A CN113872870B (zh) 2020-06-30 2020-06-30 控制网络拥塞的方法和相关装置
CN202010616601.0 2020-06-30

Publications (1)

Publication Number Publication Date
WO2022001291A1 true WO2022001291A1 (fr) 2022-01-06

Family

ID=78981555

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/087368 WO2022001291A1 (fr) 2020-06-30 2021-04-15 Procédé de régulation de congestion de réseau, et appareil associé

Country Status (2)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884846A (zh) * 2022-04-26 2022-08-09 清华大学 一种端到端可用带宽监测方法和系统
CN116055364A (zh) * 2023-03-06 2023-05-02 湖南快乐阳光互动娱乐传媒有限公司 一种测量最大上行带宽的方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277556A (zh) * 2022-06-21 2022-11-01 网宿科技股份有限公司 拥塞控制方法、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018161A (zh) * 2006-09-08 2007-08-15 中山大学 一种链路、路径、网络可用带宽测量方法
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 (zh) * 2014-03-19 2014-07-02 珠海世纪鼎利通信科技股份有限公司 一种无线网络的可用带宽测量方法及系统
CN107734537A (zh) * 2016-08-10 2018-02-23 腾讯科技(深圳)有限公司 网络性能参数的测量方法、发送端及接收端
CN109560995A (zh) * 2019-01-11 2019-04-02 武汉虹旭信息技术有限责任公司 多跳无线网络可用带宽自适应探测包长实时检测系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428784B (zh) * 2017-08-31 2021-10-15 腾讯科技(深圳)有限公司 网络探测方法及装置、计算机存储介质及设备

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 (zh) * 2006-09-08 2007-08-15 中山大学 一种链路、路径、网络可用带宽测量方法
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
CN103905272A (zh) * 2014-03-19 2014-07-02 珠海世纪鼎利通信科技股份有限公司 一种无线网络的可用带宽测量方法及系统
CN107734537A (zh) * 2016-08-10 2018-02-23 腾讯科技(深圳)有限公司 网络性能参数的测量方法、发送端及接收端
CN109560995A (zh) * 2019-01-11 2019-04-02 武汉虹旭信息技术有限责任公司 多跳无线网络可用带宽自适应探测包长实时检测系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884846A (zh) * 2022-04-26 2022-08-09 清华大学 一种端到端可用带宽监测方法和系统
CN116055364A (zh) * 2023-03-06 2023-05-02 湖南快乐阳光互动娱乐传媒有限公司 一种测量最大上行带宽的方法和装置

Also Published As

Publication number Publication date
CN113872870A (zh) 2021-12-31
CN113872870B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
WO2022001291A1 (fr) Procédé de régulation de congestion de réseau, et appareil associé
US8750109B2 (en) Inferring TCP initial congestion window
KR101046105B1 (ko) 컴퓨터 프로그램 제조품, 리소스 요구 조정 방법 및 엔드 시스템
WO2019134383A1 (fr) Procédé pour commander une congestion de réseau, dispositif d'accès et support de stockage lisible par ordinateur
US7164680B2 (en) Scheme for supporting real-time packetization and retransmission in rate-based streaming applications
US20150271233A1 (en) Method and apparatus for dash streaming using http streaming
US11558302B2 (en) Data transmission method and apparatus
US20140068107A1 (en) Common event-based multidevice media playback
US9843489B2 (en) System and method for synchronous media rendering over wireless networks with wireless performance monitoring
US20150074239A1 (en) Common event-based multidevice media playback
JP2017516336A (ja) 拡張された伝送制御機能性を実施するトランスポートアクセラレータ
WO2018121742A1 (fr) Procédé et dispositif permettant de transmettre des données de flux
CN110505123B (zh) 丢包率的计算方法、服务器及计算机可读存储介质
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
US6850488B1 (en) Method and apparatus for facilitating efficient flow control for multicast transmissions
US9350484B2 (en) Transport accelerator implementing selective utilization of redundant encoded content data functionality
WO2019144802A1 (fr) Procédé de transmission de données et dispositif associé
KR20230002784A (ko) 오디오 및/또는 비디오 콘텐츠 전송을 위한 방법 및 서버
KR20160135811A (ko) Http 스트리밍을 사용하는 dash 스트리밍을 위한 방법 및 장치
US11115308B2 (en) System and method for congestion control using time difference congestion notification
EP2311226B1 (fr) Commande de flux de données dans une liaison de communication de données
US11824792B2 (en) Method and system for dynamic quota-based congestion management
CN117614908A (zh) 数据传输控制方法、装置、电子设备及存储介质
GB2588930A (en) Multimedia system & method
KR20200113632A (ko) 전송 경로 상태에 기반한 혼잡 제어를 사용하는 타겟 전송 속도 결정 방법 및 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21832034

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21832034

Country of ref document: EP

Kind code of ref document: A1