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

Method for controlling network congestion and related apparatus 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
French (fr)
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/en

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

Provided in the present application are a method and apparatus for controlling network congestion. In the technical solutions provided by the present application, a sending end continuously sends to a receiving end data packets for detecting the available bandwidth, and continues to intermittently send to the receiving end data packets for detecting the available bandwidth after continuously sending the data packets. Continuously sending data packets can increase the speed and number of data packets for detecting the available bandwidth, so that higher and more accurate available bandwidth can be detected; then, intermittently sending data packets increases the number of data packets for detecting the available bandwidth so as to detect more accurate available bandwidth, while also preventing the number of data packets from being too high, thus preventing packet loss.

Description

控制网络拥塞的方法和相关装置Method and related apparatus for controlling network congestion
本申请要求于2020年6月30日提交中国专利局、申请号为202010616601.0、发明名称为“控制网络拥塞的方法和相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed on June 30, 2020 with the application number 202010616601.0 and the invention titled "Method and Related Apparatus for Controlling Network Congestion", the entire contents of which are incorporated herein by reference middle.
技术领域technical field
本申请涉及通信领域,并且更具体地,涉及控制网络拥塞的方法和相关装置。The present application relates to the field of communications, and more particularly, to methods and related apparatuses for controlling network congestion.
背景技术Background technique
随着互联网技术的发展及网络业务的拓展,互联网上用户和应用数量急剧增加。互联网直接面向用户的大部分业务,例如应用程序(application,APP)、页面访问、视频播放、短视频、音乐、图片等业务的打开均对时延敏感。With the development of Internet technology and the expansion of network services, the number of users and applications on the Internet has increased dramatically. Most of the services directly oriented to users on the Internet, such as applications (application, APP), page access, video playback, short videos, music, pictures and other services, are sensitive to time delay.
据分析,互联网直接面向用户的大部分业务的打开速度对用户体验十分重要,打开时延的大小直接影响企业业务的增长。目前,由于网络可用带宽的探测速率较慢,导致互联网业务的打开过程也较慢。因此,想要降低互联网业务的打开时延,提高互联网业务的打开速度,关键是提高网络可用带宽的探测速率。According to analysis, 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. At present, due to the slow detection rate of the available network bandwidth, 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.
发明内容SUMMARY OF THE INVENTION
本申请提供控制网络拥塞的方法和相关装置,可以提高网络可用带宽的探测速率,从而可以降低互联网业务的打开时延,进而可以提高互联网业务的用户的体验度。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.
第一方面,本申请提供了一种控制网络拥塞的方法。所述方法包括:发送端在向接收端连续发送N个数据包之后,向所述接收端间隔性地发送M个数据包,M和N为正整数;所述发送端根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔,确定所述发送端至所述接收端的传输路径的第一可用带宽;所述发送端根据所述第一可用带宽向所述接收端发送数据包。In a first aspect, 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.
发送端向接收端连续发送N个数据包,可以理解为这N个数据包中任意两个发送时间相邻的数据包的发送时间之间没有时间间隔。两个发送时间相邻的数据包的发送时间之间没有时间间隔又可以理解为:在前发送的数据包的发送结束时间与在后发送的数据包的发送起始时间之间没有预设的时间间隔,而是发送端在发送网在前发送的数据包之后,立即发送在后的数据包。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.
所述发送端向所述接收端间隔性地发送M个数据包,可以理解为这M个数据包中任意两个发送时间相邻的数据包的发送时间之间是存在时间间隔的。两个发送时间相邻的数据包的发送时间之间存在时间间隔又可以理解为:在前发送的数据包的发送结束时间与在后发送的数据包的发送起始时间之间存在一定的时间间隔,该时间间隔可以是预设的,也可以是由着M个数据包的发送速率决定的,而这M个数据包的发送速率又是可以根据拥 塞窗口的大小(size)以及接收端与发送单之间的数据包往返时间确定的。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.
本申请的方法中,发送端连续发送数据包,即发送端高速地发送数据包,在发送端到接收端的传输路径上的网络带宽大于这些数据包的发送速率时,可以探测到可用最大带宽为发送端的物理带宽;并且在发送端到接收端的传输路径上的可用网络带宽小于这些数据包的发送速率时,通过传输路径上的中间节点缓存可以存储超出可用网络带宽数据并以可以网络带宽发送数据包,可以探测到发送端到接收端的传输路径上的可用带宽。并且,发送端连续地发送数据包,可以提高数据包的发送量,从而可以提高可用带宽的探测速率。In the method of the present application, 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. In addition, 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.
此外,本申请中,在发送端连续发送N个数据包之后,还继续间隔性地发送M个数据包。由于这M个数据包有一定概率进行中间节点的缓存,并随后发送给接收端,因此可以提高用于探测传输路径的可用网络带宽的数据包的数量,从而可以提高探测到的网络带宽的准确度。并且,这M个数据包是间隔性的发送的,速率有所限制,因此有助于避免中间节点的缓存过多,从而出现数据包丢包的问题发生。In addition, in the present application, 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.
结合第一方面,在第一种可能的实现方式中,所述N个数据包的数据量大小是预先配置的。可选地,该数据量大小可以是根据中间节点的缓存大小配置的。例如,该数据量大小可以小于或等于所述发送端与所述接收端之间的中间节点的缓存大小。With reference to the first aspect, in a first possible implementation manner, the data size of the N data packets is pre-configured. Optionally, the size of the data amount may be configured according to the cache size of the intermediate node. For example, 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.
该实现方式中,根据中间节点的缓存大小配置来配置这N个数据包的数据量大小,可以使得即使这N个数据包的发送速率大于了发送端至接收端的可用带宽,发送端至接收端的传输路径上的中间节点可以将超过带宽部分的数据缓存下来,以可用带宽对应的速率转发给接收端,从而可以使得发送端不仅可以根据这些数据包的接收速率获知可用带宽,而且有助于避免发生数据包丢包的问题。In this implementation, 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.
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述发送端发送所述N个数据包和所述M个数据包的总时长,小于或等于所述发送端至所述接收端之间的数据包的一个往返时延的长度。With reference to the first aspect or the first possible implementation manner, in a second possible implementation manner, 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.
也就是说,该实现方式是在与一个数据包的往返时延等长的时段内发送完用于探测网络可用带宽的数据包,从而可以快速实现网络可用带宽的探测。That is to say, in this implementation manner, 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.
结合第一方面或上述任意一种可能的实现方式,在第三种可能的实现方式中,所述发送端根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔,确定所述发送端至所述接收端的传输路径的可用带宽,包括:所述发送端确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔;所述发送端根据所述第一时间间隔和所述第一时间间隔内所述接收端从所述发送端接收到的数据包的数量,确定所述第一可用带宽。With reference to the first aspect or any one of the above possible implementation manners, in a third possible implementation manner, 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 time interval between the times when the data packets in the data packets arrive at the receiving end, and determining the available bandwidth of the transmission path from the transmitting end to the receiving end, including: the transmitting end determining the number of the N data packets. A first time interval between a first time when a data packet arrives at the receiving end and a second time when a second data packet among the M data packets arrives at the receiving end; the transmitting end according to the first time 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.
该实现方式中,由发送端根据数据包在接收端的接收时间间隔和该时间间隔内到达接收端的数据包的数量来确定可用带宽。In this implementation manner, 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.
结合第三种可能的实现方式,在第四种可能的实现方式中,所述发送端确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔,包括:所述发送端接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于指示所述第一时间,所述第二指示信息用于指示所述第二时间;所述发送端根据所述第一时间和所述第二时间,确定所述第 一时间间隔。In combination with the third possible implementation manner, in the fourth possible implementation manner, 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 .
该实现方式中,由接收端向发送端发送数据包的接收时间,并由发送端根据数据包的接收时间来确定数据包的接收时间间隔。这样,可以使得发送端能够获取数据包的准确接收时间,从而可以获取准确的时间时间间隔,进而可以获取准确的可用带宽。In this implementation manner, 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. In this way, 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.
结合第三种可能的实现方式,在第五种可能的实现方式中,所述发送端确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔,包括:所述发送端接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于表示所述接收端已接收到所述第一数据包,所述第二指示信息用于表示所述接收端已接收到所述第二数据包;所述发送端根据所述第一指示信息的接收时间与所述第二指示信息的接收时间之间的时间间隔,确定所述第一时间间隔。With reference to the third possible implementation manner, in the fifth possible implementation manner, 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.
该实现方式中,由发送端根据指示信息的接收时间间隔来推测数据包的接收时间间隔。与接收端向发送端发送接收时间的方法相比,可以节省传输资源。In this implementation manner, 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.
结合第三种至第五种中任意一种可能的实现方式,在第六种可能的实现方式中,所述第一可用带宽为多个可用带宽中的最大可用带宽,所述多个可用带宽与所述M个数据包中到达所述接收端的多个数据包一一对应,所述多个可用带宽中每个可用带宽是根据所述每个可用带宽对应的时间间隔和对应的数据量计算得到的,所述对应的时间间隔是指所述每个可用带宽对应的数据包到达所述接收端的时间与所述第一时间的时间间隔,所述对应的数据量是指所述对应的时间间隔内所述接收端从所述发送端接收到的数据包的数量。With reference to any one of the third to fifth possible implementation manners, in a sixth possible implementation manner, the first available bandwidth is a maximum available bandwidth among 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.
结合第三种至第六种中任意一种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:所述发送端根据所述第一可用带宽更新拥塞窗口的大小。With reference to any one of the third to sixth possible implementation manners, in a seventh possible implementation manner, the method further includes: the sender updates the size of the congestion window according to the first available bandwidth.
该实现方式中,第一时间间隔为连续发送的数据包中第一个到达接收端的数据包,第二时间间隔为间隔性发送的M个数据包中最后一个到达接收端的数据包,也就是说,第一数据包为所述N个数据包中第一个到达所述接收端的数据包,第二数据包为所述M个数据包中最后一个到达所述接收端的数据包。这样可以提高用于探测可用带宽的数据包的数量,从而可以提高探测得到的可用带宽的准确率。In this implementation manner, the first time interval is the first data packet that reaches the receiving end among the continuously sent data packets, and 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. In this way, the number of data packets used to detect the available bandwidth can be increased, thereby improving the accuracy of the available bandwidth detected by the detection.
第二方面,本申请提供了一种控制网络拥塞的方法。所述方法包括:发送端在向接收端无时间间隔地发送N个数据包之后,向所述接收端间隔性地发送M个数据包,M和N为正整数;所述发送端从所述接收端接收第一指示信息,所述第一指示信息用于指示第一可用带宽,所述第一可用带宽为所述接收端根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔确定的;所述发送端根据所述第一可用带宽向所述接收端发送数据包。In a second aspect, 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.
该方法中,发送端连续发送数据包和间隔性发送数据包之后,由接收端根据这些数据包的接收时间来确定可用带宽并向发送端反馈该可用带宽。发送端从接收端获知可用带宽之后,可以根据该可用带宽发送数据包。In this method, after the sending end continuously sends data packets and intermittently sends data packets, 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.
发送端向接收端无时间间隔地发送N个数据包可以理解为这N个数据包是连续发送的,即这N个数据包中任意两个发送时间相邻的数据包的发送时间之间没有时间间隔。两个发送时间相邻的数据包的发送时间之间没有时间间隔又可以理解为:在前发送的数据包的发送结束时间与在后发送的数据包的发送起始时间之间没有预设的时间间隔,而是发送 端在发送网在前发送的数据包之后,自然地开始在后的数据包的发送。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.
所述发送端向所述接收端间隔性地发送M个数据包,可以理解为这M个数据包中任意两个发送时间相邻的数据包的发送时间之间是存在时间间隔的。两个发送时间相邻的数据包的发送时间之间存在时间间隔又可以理解为:在前发送的数据包的发送结束时间与在后发送的数据包的发送起始时间之间存在一定的时间间隔,该时间间隔可以是预设的,也可以是由着M个数据包的发送速率决定的,而这M个数据包的发送速率又是可以根据拥塞窗口的大小以及接收端与发送单之间的数据包往返时间确定的。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.
本申请的方法中,发送端连续发送数据包,即发送端高速地发送数据包,在发送端到接收端的传输路径上的网络带宽大于这些数据包的发送速率时,可以探测到可用最大带宽为发送端的物理带宽;并且在发送端到接收端的传输路径上的可以网络带宽小于这些数据包的发送速率时,通过传输路径上的中间节点存储超出可用网络带宽数据并以可以网络带宽发送数据包,可以探测到发送端到接收端的传输路径上的可用带宽。并且,发送端连续地发送数据包,可以提高数据包的发送量,从而可以提高可用带宽的探测速率。In the method of the present application, 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. In addition, 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.
此外,本申请中,在发送端连续发送N个数据包之后,还继续间隔性地发送M个数据包。由于这M个数据包有一定概率进行中间节点的缓存,并随后发送给接收端,因此可以提高用于探测传输路径的可用网络带宽的数据包的数量,从而可以提高探测到的网络带宽的准确度。并且,这M个数据包是间隔性的发送的,速率有所限制,因此有助于避免中间节点的缓存过多,从而出现数据包丢包的问题发生。In addition, in the present application, 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.
再者而言,由接收端来计算可用带宽并向发送端发送可用带宽,可以节省传输资源。Furthermore, the receiver calculates the available bandwidth and sends the available bandwidth to the sender, which can save transmission resources.
结合第二方面,在第一种可能的实现方式中,所述N个数据包的数据量大小是预先配置的。可选地,该数据量大小可以是根据中间节点的缓存大小配置的。例如,该数据量大小可以小于或等于所述发送端与所述接收端之间的中间节点的缓存大小。With reference to the second aspect, in a first possible implementation manner, the data size of the N data packets is pre-configured. Optionally, the size of the data amount may be configured according to the cache size of the intermediate node. For example, 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.
结合第二方面或第一种可能的实现方式,在第二种可能的实现方式中,所述发送端发送所述N个数据包和所述M个数据包的总时长,小于或等于所述发送端至所述接收端之间的数据包的一个往返时延的长度。With reference to the second aspect or the first possible implementation manner, in the second possible implementation manner, 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.
第三方面,本申请提供一种用于控制网络拥塞的方法。所述方法包括:接收端获取发送端发送的L个数据包中的第一数据包到达所述接收端的第一时间与所述L个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔,L为大于1的正整数;In a third aspect, 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;
在所述第一可用带宽为多个可用带宽中的最大可用带宽的情况下,将所述第一可用带宽确定为所述发送端至所述接收端的传输路径的可用带宽,所述多个可用带宽与所述L个数据包中达到所述接收端的多个数据包一一对应,所述多个可用带宽中每个可用带宽是根据第二时间间隔和第二数量计算得到的,所述第二时间间隔是指所述每个可用带宽对应的数据包到达所述接收端的时间与所述第一时间的时间间隔,所述第二数量是指所述第二时间间隔内所述接收端从所述发送端接收到的数据包的数量;In the case where 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, and 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, and 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.
该方法中,由接收端来计算可用带宽并向发送端发送可用带宽,可以节省传输资源。In this method, the receiver calculates the available bandwidth and sends the available bandwidth to the sender, which can save transmission resources.
第四方面,提供了一种控制网络拥塞的装置,该装置包括用于执行上述第一方面或其中任意一种实现方式中的方法的模块。In a fourth aspect, an apparatus for controlling network congestion is provided, the apparatus including a module for performing the method in the first aspect or any one of the implementation manners.
第五方面,提供了一种控制网络拥塞的装置,该装置包括用于执行上述第二方面或其中任意一种实现方式中的方法的模块。In a fifth aspect, an apparatus for controlling network congestion is provided, the apparatus comprising a module for performing the method in the second aspect or any one of the implementation manners.
第六方面,提供了一种控制网络拥塞的装置,该装置包括用于执行上述第三方面或其中任意一种实现方式中的方法的模块。In a sixth aspect, an apparatus for controlling network congestion is provided, the apparatus including a module for performing the method in the third aspect or any one of the implementation manners.
第七方面,提供了一种控制网络拥塞的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器和所述装置的通信接口用于执行第一方面或者其中任意一种实现方式中的方法。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 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.
第八方面,提供了一种控制网络拥塞的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器和所述装置的通信接口用于执行第二方面或者其中任意一种实现方式中的方法。In an eighth aspect, there is provided an apparatus for controlling network congestion, the apparatus comprising: a memory for storing a program; a processor for executing the program stored in the memory, 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.
第九方面,提供了一种控制网络拥塞的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器和所述装置的通信接口用于执行第三方面或者其中任意一种实现方式中的方法。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, 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.
第十方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面或其中任意一种实现方式中的方法。In a tenth aspect, a computer-readable medium is provided, where the 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.
第十一方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第二方面或其中任意一种实现方式中的方法。In an eleventh aspect, a computer-readable medium is provided, the 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.
第十二方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第三方面或其中任意一种实现方式中的方法。In a twelfth aspect, a computer-readable medium is provided, the 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.
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或其中任意一种实现方式中的方法。Optionally, as an implementation manner, 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.
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第二方面或其中任意一种实现方式中的方法。Optionally, as an implementation manner, 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.
第十八方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第三方面或其中任意一种实现方式中的方法。In an eighteenth aspect, a chip is provided, 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 third aspect or any one of the implementation manners. Methods.
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第三方面或其中任意一种实现方式中的方法。Optionally, as an implementation manner, 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.
第二十方面,提供了一种通信设备,该通信设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第二方面或者其中任意一种实现方式中的方法。In a twentieth aspect, a communication device is provided, 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 second aspect or any one of the implementation manners.
第二十一方面,提供了一种通信设备,该通信设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第三方面或者其中任意一种实现方式中的方法。In a twenty-first aspect, a communication device is provided, 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 third aspect or any one of the implementation manners.
附图说明Description of drawings
图1是本申请实施例的技术方案的一种应用场景的示例图;Fig. 1 is an example diagram of an application scenario of the technical solution of the embodiment of the present application;
图2是本申请一个实施例的控制网络拥塞的方法的示意性流程图;2 is a schematic flowchart of a method for controlling network congestion according to an embodiment of the present application;
图3是本申请一个实施例的数据包的传输过程的示意图;3 is a schematic diagram of a data packet transmission process according to an embodiment of the present application;
图4是本申请一个实施例的控制网络拥塞的装置的示意性结构图;4 is a schematic structural diagram of an apparatus for controlling network congestion according to an embodiment of the present application;
图5是本申请另一个实施例的控制网络拥塞的装置的示意性结构图;5 is a schematic structural diagram of an apparatus for controlling network congestion according to another embodiment of the present application;
图6是本申请一个实施例的计算机程序产品的示意图。Figure 6 is a schematic diagram of a computer program product of one embodiment of the present application.
具体实施方式detailed description
本申请实施例的技术方案可以适用到任意端到端协议、需要提高启动阶段的传输能力和提高启动阶段的带宽探测速度的场景中。The technical solutions of the embodiments of the present application can be applied to any end-to-end protocol, and scenarios that need to improve the transmission capability in the startup phase and the bandwidth detection speed in the startup phase.
图1为本申请实施例的技术方案的一种示例性应用场景的示意图。如图1所示,广域网中的服务器110可以通过通信网络120为该广域网中的终端设备130提供网络购物、网页访问、应用程序(application,APP)打开、网页图片打开、视频点播、直播、短视频打开、在线音乐、广告加载、文件备份或文件下载等等业务。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 , 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.
本申请实施例中的终端设备可以是传感器、手机、平板、笔记本电脑、个人计算机、服务器等,也可以是网关、接入路由器、核心路由器、前端路由器、负载均衡器等。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.
服务器通网络为终端设备提供这些业务时,通常会出现这些业务的启动时间过长的问题。例如,传统的传输控制协议(transmission control protocol,TCP)在启动阶段的数据发送速率增长缓慢,导致无法在启动阶段充分利用带宽;并且非常容易因为丢包导致数据发送速度降低。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. For example, 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.
通常来说,通信协议可以分为启动、稳定巡航、探测等多个阶段,启动阶段是完成连接建立之后探测带宽,逐渐提高发送速度的阶段。Generally speaking, 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.
图2为本申请一个实施例的控制网络拥塞的方法的示意性流程图。如图2所示,该方 法可以包括S210、S220、S230、S240和S250。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.
S210,发送端向接收端连续发送N个数据包,N为正整数。S210, the transmitting end continuously sends N data packets to the receiving end, where N is a positive integer.
例如,发送端在与接收端通过通信协议建立连接后,可以向接收端连续地发送N个数据包。该通信协议的一种示例为传输控制协议。For example, after establishing a connection with the receiving end through a communication protocol, the sending end may continuously send N data packets to the receiving end. An example of such a communication protocol is the Transmission Control Protocol.
其中,发送端向接收端连续地发送N个数据包,可以理解为这N个数据包中任意两个相邻的数据包的发送时间之间没有等待和间隔,以保证数据包以发送端能够实现的最大速度发出。Among them, 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.
发送端向接收端连续地发送N个数据包,也可以称为发送端向接收端高速连接地发送N个数据包,或者可以称为发送端以突发(burst)方式向接收端发送数据包。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. .
其中,连续发送的数据包的数量也可以记为burst_num,即N也可以记为burst_num。burst_num的值可以预先设置在通信协议中,也可以是在发送端与接收端建立连接的过程中通过协议协商得到的,或者可以是根据上一次的连接结果计算得到的。上一次的连接结果可以包含上一次连接中使用的带宽、RTT和/或拥塞窗口的大小等,burst_num的一种示例为16至32之间的任意数值。Wherein, 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.
本实施例中,发送端以突发模式向接收端发送数据包,一方面,在发送端至接收端之间的可用网络带宽大于发送端的物理带宽或签约带宽的情况下,可以探测到发送端至接收端之间的最大可用网络带宽,即为发送端的物理带宽或签约带宽;另一方面,在可用网络带宽低于突发模式下的数据包的发送速度的情况下,超过可用带宽的数据可以被发送端至接收端之间的中间节点的缓存(buffer)存储起来,并以网络瓶颈带宽对应的速度发送到接收端,以探测到发送端至接收端的网络瓶颈带宽,该网络瓶颈带宽即为探测到的可用网络带宽。In this embodiment, the sending end sends data packets to the receiving end in burst mode. On the one hand, when 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.
本实施例的一种实现方式中,发送端可以在通过协议与接收端建立连接后,在一个往返时间(round-trip time,RTT)内,以突发方式向发送端发出burst_num个数据包。In an implementation manner of this embodiment, after the sending end establishes a connection with the receiving end through a protocol, within a round-trip time (round-trip time, RTT), the sending end may send burst_num data packets to the sending end in a burst manner.
通常来说,突发模式下连续发送的这N个数据包的总数据量不能过大,因为大于中间节点的缓存大小有可能会导致丢包产生。因此,本实施例的一种实现方式中,为了避免丢包,这N个数据包的总数据量大小可以小于或等于发送端与接收端的传输路径上的任意中间节点的缓存大小。Generally speaking, the total data volume 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。burst_size的值可以预先设置在通信协议中,也可以是在发送端与接收端建立连接的过程中通过协议协商得到的,或者可以是根据上一次的连接结果计算得到的。例如,burst_size可以等于数十个最大传输单元(maximum transmission unit,MTU)的大小。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. For example, burst_size may be equal to the size of dozens of maximum transmission units (MTUs).
S220,所述发送端向所述接收端间隔性地发送M个数据包,M为正整数。S220, the sending end periodically sends M data packets to the receiving end, where M is a positive integer.
也就是说,发送端以突发模式向接收端发送数据包之后,紧接着向接收端间隔性地发送数据包。That is to say, after the sender sends data packets to the receiver in burst mode, it sends data packets to the receiver at intervals.
其中,发送端向接收端间隔性地发送M个数据包,可以理解为发送端在发送至少两个数据包时,这两个数据包的发送时间之间存在时间间隔。两个数据包的发送时间之间存 在时间间隔是指前一个数据包的发送结束时间与后一个数据包的发送起始时间之间存在时间间隔。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.
本实施例中,在突发模式之后慢速发送数据包,一方面可以提高数据包的数据量,即提高用于探测网络可用带宽的数据量,从而可以提高探测到的可用带宽的准确度;另一方面,该慢速发送的数据包有一定概率进入中间节点的缓存,随后以网络瓶颈带宽发送给接收端,从而可以提高探测网络瓶颈带宽的数据包的数量,进一步提高探测的网络可用带宽的精度。In this embodiment, 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; On the other hand, 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.
本实施例中,这M个数据包可以是匀速等间隔地发送的。这种情况下,本步骤发送数据包的方法可以称为匀速模式或匀速方式。In this embodiment, the M data packets may be sent at a constant speed and at equal intervals. In this case, the method of sending data packets in this step may be called a uniform speed mode or a uniform speed mode.
这M个数据包的发送速率可以是预先设置的,也可以是在发送端与接收端建立连接的过程中商定的,或者可以是根据突发模式下发送的数据包的数量决定的。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.
例如,以一个RTT为一个探测周期的情况下,若将这M个数据包的发送速率记为pacing_rate,则可以通过pacing_rate=(icwnd-burst_num)/RTT的方式计算得到pacing_rate,其中,icwnd表示初始拥塞窗口的大小。初始拥塞窗口的大小可以是预设的。For example, in the case of one RTT as one detection period, if the sending rate of the M data packets is recorded as pacing_rate, the pacing_rate can be calculated by the method of pacing_rate=(icwnd-burst_num)/RTT, where icwnd represents the initial The size of the congestion window. The size of the initial congestion window can be preset.
本实施例的一种实现方式中,发送端在使用突发模式发送完数据包之后,以pacing rate的恒定速度发送数据包,直至收到第一个数据包的ACK信息,则第一个RTT周期结束。可以理解的是,发送端接收的到该ACK信息可以不是第一个数据包的ACK信息,而是可以是第二个或其他数据包的ACK信息。In one implementation of this embodiment, after 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. It can be understood that 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.
S230,接收端收到发送端发出的数据包后,记录每个数据包的接收时间,并向发送端发送指示信息,该指示信息用于指示数据包的接收时间。S230: 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.
例如,当接收端由接收事件或者周期轮询事件触发ACK信息的发送时,接收端可以将接收到每个数据包时的时间戳(timestamp)通过一定的编码方式写入ACK信息中,并通过ACK信息反馈给发送端。For example, 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.
S240,所述发送端从所述接收端接收指示信息,并根据所述指示信息确定数据包的接收时间之间的时间间隔,以及根据所述时间间隔确定所述发送端至所述接收端的第一可用带宽。S240, 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.
例如,所述指示信息携带在ACK信息中的情况下,发送端从接收端接收到ACK信息之后,可以从ACK信息中解析出数据包的在接收端的接收时间,并计算接收端从发送端接收到第一个数据包至接收到最后一个数据包的时间间隔,以及通过recvRate=data_size_1/Δtime计算接收端的接收速率recvRate,其中,data_size_1表示接收端接收到的数据包的总数据量,Δtime表示时间间隔。For example, 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. The time interval from the first data packet to the receipt of the last data packet, and the receiving rate recvRate of the receiving end is calculated by recvRate=data_size_1/Δtime, where data_size_1 represents the total data volume of the data packets received by the receiving end, and Δtime represents the time interval.
又如,发送端接收到通过突发模式发送的所有数据包的ACK信息之后,在后续过程中,每接收到通过慢速模式发送的一个或多个数据包的ACK信息,可以通过recvRate=data_size_1/Δtime计算得到一个接收速率,该接收速率为接收端当前已经确收的数据包的接收速率,其中,data_size_1表示接收端已经确收的数据包的总数据量,Δtime表示接收端从该发送端接收到这些数据包的时间间隔。For another example, after the sender receives the ACK information of all the data packets sent in the burst mode, in the subsequent process, each time it receives the ACK information of one or more data packets sent in the slow mode, it can pass recvRate=data_size_1 /Δtime calculates a receiving rate, which is the receiving rate of the data packets that the receiving end has currently acknowledged. Among them, data_size_1 represents the total data volume of the data packets that the receiving end has acknowledged, and Δtime represents the receiving end from the sending end. The time interval at which these packets were received.
发送端从接收端接收到所有数据包的ACK信息之后,可以将计算得到多个接收速率。作为一个示例,发送端可以根据这多个接收速率中的最大接收速率确定网络可用带宽,即第一可用带宽。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.
此外,发送端还可以通过send_cwnd=Bw*srtt计算得到新的拥塞窗口长度send_cwnd,并将发送端的拥塞窗口长度更新为该新的拥塞窗口长度,其中,Bw表示可用带宽,srtt表示一个RTT时长。In addition, the sender can also obtain a new congestion window length send_cwnd by calculating send_cwnd=Bw*srtt, and update the sender's congestion window length to the new congestion window length, where Bw represents the available bandwidth and srtt represents an RTT duration.
S250,所述发送端根据所述第一可用带宽向所述接收端发送数据包。S250, the sending end sends a data packet to the receiving end according to the first available bandwidth.
例如,发送端根据所述第一可用带宽计算得到合适的发送速率,并使用该发送速率匀速等间隔地向所述接收端发送数据包。For example, 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.
本实施例的一种实现方式中,发送端根据第一可用带宽向接收端发送数据包时,可以对该第一可用带宽进行修正,得到修正带宽,再基于该修改带宽发送数据包。其中修正带宽的一种计算方式如下:In an implementation manner of this embodiment, when sending a data packet to the receiving end according to the first available bandwidth, the transmitting end may modify the first available bandwidth to obtain a modified bandwidth, and then 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))sampleRate=min(sendRate,recvRate)*min(1,k+((1-k)*Δt)/srtt))
其中,k为启动阶段速度探测系数Gain的倒数,k=1/Gain,Gain为预设的值,Gain的一种示例为2;sampleRate表示修正带宽;sendRate为发送端发出探测数据的最大速率;recvRate是接收端接收数据包括的最大速率,可以等同与发送端探测到的多个带宽中的最大带宽;Δt表示时间间隔。Among them, k is the reciprocal of the speed detection coefficient Gain in the startup phase, k=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 sender sends out detection data; recvRate is the maximum rate included in the data received by the receiver, which can be equal to the maximum bandwidth among multiple bandwidths detected by the sender; Δt represents the time interval.
本实施例中,可选地,发送端在S250中发送的数据包可以是用于继续探测发送端和接收端之间的可用带宽的探测数据包。在这种情况下,发送端根据可用带宽向接收端发送数据时,在一个示例中,发送端可以通过如下方式计算发送速率Pacing rate和拥塞窗口send_cwnd:In this embodiment, optionally, 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. In this case, when the sender sends data to the receiver according to the available bandwidth, in one example, the sender can calculate the sending rate Pacing rate and the congestion window send_cwnd as follows:
PacingRate=Gain*Bw,Gain=2PacingRate=Gain*Bw, Gain=2
send_cwnd=Gain*Bw*srttsend_cwnd=Gain*Bw*srtt
其中,Bw表示第一可用带宽,srtt表示一个RTT时长。Wherein, Bw represents the first available bandwidth, and srtt represents an RTT duration.
发送端计算得到发送速率Pacing rate和拥塞窗口send_cwnd之后,可以基于该发送速率Pacing rate和拥塞窗口send_cwnd向接收端发送数据包,以探测发送端至接收端时间的可用带宽。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.
进一步地,发送端与接收端之间可以继续使用传统技术重的带宽探测方法,直至准确带宽和拥塞窗口,退出启动阶段。Further, 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.
例如,在发送端根据第一个RTT内的数据包完成可用带宽的探测之后,发送端可以根据计算得到的可用带宽,在第二个RTT内向接收端匀速发送数据包,以继续进行可用带宽的探测阶段,从而可以持续提高可用带宽的探测精度。For example, after the sender completes the detection of the available bandwidth according to the data packets in the first RTT, 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.
本实施例的方法,通常来说,根据第一个RTT内的数据包探测到的带宽就可以很接近实际可用带宽了。因此,使用本实施例的方法,启动阶段在一到两个RTT时长之后就可以完成精准可用带宽的探测。In the method of this embodiment, generally speaking, 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.
本申请另一个实施例的控制网络拥塞的方法中,可以包含图2所示的方法中的相关内容,不同之处在于,接收端向发送端发送的指示信息中可以不包含数据包的接收时间,而是用于指示接收端已确收该数据包。例如,该指示信息可以是ACK信息。通常情况下,接收端可以由数据包接收事件或者周期轮询事件触发该指示信息的发送。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. For example, the indication information may be ACK information. Usually, the receiving end can trigger the sending of the indication information by a data packet receiving event or a periodic polling event.
该实施例中,发送端可以根据指示信息的接收时间之间的时间间隔来确定接收端接收数据包的时间之间的时间间隔,例如,将指示信息的接收时间之间的时间间隔作为接收端接收数据包的时间之间的时间间隔。In this embodiment, the transmitting end may determine the time interval between the times when the receiving end receives the data 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.
如图3所示,发送端发送第一数据包之后,第一数据包通过中间节点转发至接收端;经过一段时间,发送端发送第二数据包,第二数据包进入中间节点的缓存存储之后,以网络瓶颈带宽对应的速率发送给接收端。其中,在第一数据包与第二数据包之间,发送端可以发送任意数量的数据包。As shown in Figure 3, 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. Wherein, between the first data packet and the second data packet, the sending end may send any number of data packets.
接收端可以由数据包接收事件触发,向发送端发送ACK信息。也就是说,接收端每接收到一个数据包,则向发送端发送一个确认该数据包的ACK信息。这样,发送端就可以将数据包的ACK信息的接收时间之间的时间间隔作为数据包的接收时间之间的时间间隔了。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.
本申请又一个实施例的控制网络拥塞的方法中,可以包含图2所示的方法中的相关内容,不同之处在于,接收端接收到数据包之后,可以不用向发送端指示数据包的接收时间,而是由接收端来根据数据包的接收时间确定数据包接收时间之间的时间间隔,以及根据该时间间隔来确定可用带宽,并向发送端反馈可用带宽。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.
接收端根据数据包的接收时间确定可用带宽的实现方式,可以参考图2中发送端根据数据包的接收时间确定可用带宽的实现方式,此处不再赘述。For the implementation manner of the receiving end determining the available bandwidth according to the reception time of the data packet, reference may be made to the implementation manner of the transmitting end determining the available bandwidth according to the reception time of the data packet in FIG.
例如,接收端可以根据多个数据包与同一个数据包之间的时间间隔确定得到多个可用带宽,并通过ACK信息向发送端反馈这些可用带宽。发送端可以从这多个可用带宽中选出最大可用带宽,并对该最大可用带宽进行修改,得到最终的可用带宽。For example, 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.
又如,接收端可以确定出最终的可用带宽反馈给发送端。For another example, 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.
此外,在端端传输场景中,在中小文件的传输过程中,吞吐量与延迟时长等网络性能指标有明显提升。In addition, in the end-to-end transmission scenario, network performance indicators such as throughput and delay time are significantly improved during the transmission of small and medium files.
并且,在云网络和内容分发网络(content delivery network,CDN)的数据传输中,可以快速提升数据的传输速率,降低数据传输时延。例如,在APP、浏览器页面打开、用户登录、视频起搏、音乐下载、图片下载或段视频打开等场景中可以提高数据的传输速率,从而提升用户体验。In addition, in the data transmission of cloud network and content delivery network (CDN), the data transmission rate can be quickly increased and the data transmission delay can be reduced. For example, in scenarios such as APP, browser page opening, user login, video pacing, music download, picture download, or segment video opening, the data transfer rate can be increased, thereby improving user experience.
图4为本申请一个实施例的控制网络拥塞的装置的示意性结构图。如图4所示,本实施例中的装置400可以包括发送模块410、处理模块420和接收模块430。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 .
在一个示例中,装置400可以用于执行图2所示的控制网络拥塞的方法中由发送端执行的操作。例如,发送模块410可以用于执行S210、S220和S250中由发送端执行的操作,处理模块420可以用于执行S240中由发送端执行的与确定可用带宽相关的操作,接收模块430可以用于执行S240与发送端接收指示信息相关的操作。In one example, 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 . For example, 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, and the receiving module 430 can be used to Perform S240 operations related to the sending end receiving the indication information.
在另一个示例中,装置400可以用于执行图2所示的控制网络拥塞的方法中由接收端执行的操作。例如,发送模块410可以用于执行中S240由接收端执行的与发送指示信息相关的操作,处理模块420可以用于执行图2中由接收端执行的与信息处理相关的操作,接收模块430可以用于执行S210、S220和S250与接收端接收数据包相关的操作。In another example, 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 . For example, 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, and 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.
图5为本申请实施例提供的一种控制网络拥塞的装置500的结构示意图。装置500包括处理器502、通信接口503和存储器504。装置500的一种示例为芯片。装置500的另一种示例为通信设备。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.
处理器502、存储器504和通信接口503之间可以通过总线通信。存储器504中存储有可执行代码,处理器502读取存储器504中的可执行代码以执行对应的方法。存储器504中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUX TM,UNIX TM,WINDOWS TM等。 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 , UNIX , WINDOWS and the like.
在一种可能的实现方式中,处理器502用于实现处理模块420所能实现的功能,通信接口503用于实现发送模块401和接收模块403所能实现的功能。In a possible implementation manner, 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.
例如,存储器504中的可执行代码用于实现图2中由发送端实现的方法,处理器502读取存储器504中的该可执行代码以执行图2中由发送端实现的方法。For example, the executable code in the memory 504 is used to implement the method implemented by the transmitter in FIG. 2 , and the processor 502 reads the executable code in the memory 504 to execute the method implemented by the transmitter in FIG. 2 .
又如,存储器504中的可执行代码用于实现图2中由接收端实现的方法,处理器502读取存储器504中的该可执行代码以执行图2中由接收端实现的方法。For 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 execute the method implemented by the receiving end in FIG. 2 .
其中,处理器502可以为中央处理器(central processing unit,CPU)。存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器504还可以包括非易失性存储器(2non-volatile memory,2NVM),例如只读存储器(2read-only memory,2ROM),快闪存储器,硬盘驱动器(hard disk drive,HDD)或固态启动器(solid state disk,SSD)。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). 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).
在本申请的一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。图6示意性地示出根据这里展示的至少一些实施例而布置的示例计算机程序产品的概念性局部视图,所述示例计算机程序产品包括用于在通信设备上执行计算机进程的计算机程序。在一个实施例中,示例计算机程序产品600是使用信号承载介质601来提供的。所述信号承载介质601可以包括一个或多个程序指令602,其当被一个或多个处理器运行时可以提供以上针对图2所示的方法中描述的功能或者部分功能。例如,参考图2中所示的实施例,S210至S240的一个或多个特征可以由与信号承载介质601相关联的一个或多个指令来承担。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 on other non-transitory media or articles of manufacture. 6 schematically illustrates a conceptual partial view of an example computer program product including 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, 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 . For example, with reference to the embodiment 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 .
在一些示例中,信号承载介质601可以包含计算机可读介质603,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等等。在一些实施方式中,信号承载介质601可以包含计算机可记录介质604,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质,601可以包含通信介质605,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质601可以由无线形式的通信介质605(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令602可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,前述的通信设备可以被配置为,响应于通过计算机可读介质603、计算机可记录介质604、和/或通信介质605中的一个或多个传达到通信设备的程序指令602,提供各种操作、功能、或者动作。应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合 其它组件实施的功能实体。In some examples, 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. In some implementations, 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. In some embodiments, 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.) . Thus, for example, 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. In some examples, 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. It should be understood that 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.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of this application.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the above-described systems, devices and units may refer to the corresponding processes in the foregoing method embodiments, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented. On the other hand, 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.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, 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.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。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. Based on this understanding, 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.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present application, but the protection scope of the present application is not limited to this. should be covered within the scope of protection of this application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims (25)

  1. 一种控制网络拥塞的方法,其特征在于,包括:A method for controlling network congestion, comprising:
    发送端在向接收端连续发送N个数据包之后,向所述接收端间隔性地发送M个数据包,M和N为正整数;After the sending end continuously sends N data packets to the receiving end, it periodically sends M data packets to the receiving end, where M and N are positive integers;
    所述发送端根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔,确定所述发送端至所述接收端的传输路径的第一可用带宽;According to the time interval between the time when the data packets in the N data packets arrive at the receiving end and the time when the data packets in the M data packets arrive at the receiving end, the sending end determines that the sending end is to be sent to the receiving end. the first available bandwidth of the transmission path of the receiving end;
    所述发送端根据所述第一可用带宽向所述接收端发送数据包。The sender sends a data packet to the receiver according to the first available bandwidth.
  2. 根据权利要求1所述的方法,其特征在于,所述发送端发送所述N个数据包和所述M个数据包的总时长,小于或等于所述发送端至所述接收端之间的数据包的一个往返时延的长度。The method according to claim 1, characterized in that, 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 time between the transmitting end and the receiving end. The length of a round-trip delay for a packet.
  3. 根据权利要求1或2所述的方法,其特征在于,所述发送端根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔,确定所述发送端至所述接收端的传输路径的第一可用带宽,包括:The method according to claim 1 or 2, characterized in that, the sending end arrives at the receiving end according to the time when the data packets in the N data packets arrive at the receiving end and the data packets in the M data packets arrive at the The time interval between the times of the receiving end to determine the first available bandwidth of the transmission path from the transmitting end to the receiving end, including:
    所述发送端确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔;The transmitting end determines the first time between the first time when the first data packet in the N data packets arrives at the receiving end and the second time when the second data packet in the M data packets arrives at the receiving end. a time interval;
    所述发送端根据所述第一时间间隔和所述第一时间间隔内所述接收端从所述发送端接收到的数据量,确定所述第一可用带宽。The transmitting end determines the first available bandwidth according to the first time interval and the amount of data received by the receiving end from the transmitting end within the first time interval.
  4. 根据权利要求3所述的方法,其特征在于,所述第一可用带宽为多个可用带宽中的最大可用带宽,所述多个可用带宽与所述M个数据包中到达所述接收端的多个数据包一一对应,所述多个可用带宽中每个可用带宽是根据所述每个可用带宽对应的时间间隔和所述每个可用带宽对应的数据量计算得到的,所述对应的时间间隔是指所述每个可用带宽对应的数据包到达所述接收端的时间与所述第一时间的时间间隔,所述对应的数据量是指所述对应的时间时间间隔内所述接收端从所述发送端接收到的数据量。The method according to claim 3, wherein the first available bandwidth is a maximum available bandwidth among multiple available bandwidths, and the multiple available bandwidths are the same as the multiple available bandwidths in the M data packets reaching the receiving end. One-to-one correspondence between data packets, each of the available bandwidths in the plurality of available bandwidths is calculated according to the time interval corresponding to each available bandwidth and the amount of data corresponding to each available bandwidth, and the corresponding time The 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 amount refers to the time between the receiving end and the receiving end within the corresponding time interval. The amount of data received by the sender.
  5. 根据权利要求3或4所述的方法,其特征在于,所述发送端确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔,包括:The method according to claim 3 or 4, wherein the transmitting end determines the first time when the first data packet in the N data packets arrives at the receiving end and the first time when the first data packet in the M data packets arrives at the receiving end. The first time interval between the second times when two data packets arrive at the receiving end, including:
    所述发送端接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于指示所述第一时间,所述第二反馈信息用于指示所述第二时间;The transmitting end receives first indication information and second indication information sent by the receiving end, where the first indication information is used to indicate the first time, and the second feedback information is used to indicate the second time ;
    所述发送端根据所述第一时间和所述第二时间,确定所述第一时间间隔。The transmitting end determines the first time interval according to the first time and the second time.
  6. 根据权利要求3或4所述的方法,其特征在于,所述发送端确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔,包括:The method according to claim 3 or 4, wherein the transmitting end determines the first time when the first data packet in the N data packets arrives at the receiving end and the first time when the first data packet in the M data packets arrives at the receiving end. The first time interval between the second times when two data packets arrive at the receiving end, including:
    所述发送端接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于表示所述接收端已接收到所述第一数据包,所述第二指示信息用于表示所述接收端已接收到所述第二数据包;The transmitting end receives the first indication information and the second indication information sent by the receiving end, where the first 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 transmitting end determines the first time interval according to the time interval between the time when the first indication information is received and the time when the second indication information is received.
  7. 根据权利要求3至6中任一项所述的方法,其特征在于,所述第一数据包为所述N个数据包中第一个到达所述接收端的数据包,所述第二数据包为所述M个数据包中最后一个到达所述接收端的数据包。The method according to any one of claims 3 to 6, wherein the first data packet is the first one of the N data packets that arrives at the receiving end, and the second data packet is the last data packet reaching the receiving end among the M data packets.
  8. 根据权利要求1至7中任一项所述的方法,所述发送端根据所述可用带宽向所述接收端发送数据包,包括: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, comprising:
    所述发送端根据所述第一可用带宽更新所述发送端的拥塞窗口的大小和发送速率;The sender updates the size of the congestion window and the sending rate of the sender according to the first available bandwidth;
    所述发送端基于所述更新后的拥塞窗口的大小和发送速率向所述接收端发送数据包。The sender sends a data packet to the receiver based on the updated size of the congestion window and the sending rate.
  9. 一种控制网络拥塞的装置,其特征在于,包括:A device for controlling network congestion, comprising:
    发送模块,用于在向接收端连续发送N个数据包之后,向所述接收端间隔性地发送M个数据包,M和N为正整数;A sending module, configured to periodically send M data packets to the receiving end after continuously sending N data packets to the receiving end, where M and N are positive integers;
    处理模块,用于根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔,确定所述装置至所述接收端的传输路径的第一可用带宽;The processing module is configured to determine the time interval between the time when the data packets in the N data packets arrive at the receiving end and the time when the data packets in the M data packets arrive at the receiving end. the first available bandwidth of the transmission path of 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. 根据权利要求9所述的装置,其特征在于,所述装置发送所述N个数据包和所述M个数据包的总时长,小于或等于所述装置至所述接收端之间的数据包的一个往返时延的长度。The device according to claim 9, wherein the total duration of the device sending the N data packets and the M data packets is less than or equal to the data packets between the device and the receiving end The length of a round-trip delay of .
  11. 根据权利要求9或10所述的装置,其特征在于,所述处理模块具体用于:The device according to claim 9 or 10, wherein the processing module is specifically configured to:
    确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔;Determine the first time interval between the first time when the first data packet in the N data packets arrives at the receiving end and the second time when the second data packet in the M data packets arrives at the receiving end;
    根据所述第一时间间隔和所述第一时间间隔内所述接收端从所述发送端接收到的数据量,确定所述第一可用带宽。The first available bandwidth is determined according to the first time interval and the amount of data received by the receiving end from the transmitting end within the first time interval.
  12. 根据权利要求11所述的装置,其特征在于,所述第一可用带宽为多个可用带宽中的最大可用带宽,所述多个可用带宽与所述M个数据包中到达所述接收端的多个数据包一一对应,所述多个可用带宽中每个可用带宽是根据所述每个可用带宽对应的时间间隔和所述每个可用带宽对应的数据量计算得到的,所述对应的时间间隔是指所述每个可用带宽对应的数据包到达所述接收端的时间与所述第一时间的时间间隔,所述对应的数据量是指所述对应的时间间隔内所述接收端从所述装置接收到的数据量。The apparatus according to claim 11, wherein the first available bandwidth is a maximum available bandwidth among multiple available bandwidths, and the multiple available bandwidths are the same as a multiple of the M data packets reaching the receiving end. One-to-one correspondence between data packets, each of the available bandwidths in the plurality of available bandwidths is calculated according to the time interval corresponding to each available bandwidth and the amount of data corresponding to each available bandwidth, and the corresponding time The 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 time between the receiving end and the receiving end within the corresponding time interval. amount of data received by the device.
  13. 根据权利要求11或12所述的装置,其特征在于,所述装置还包括接收模块,所述接收模块用于:接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于指示所述第一时间,所述第二反馈信息用于指示所述第二时间;The device according to claim 11 or 12, wherein the device further comprises a receiving module, the receiving module is configured to: receive the first indication information and the second indication information sent by the receiving end, the first indication information an indication information is used to indicate the first time, and the second feedback information is used to indicate 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. 根据权利要求11或12所述的装置,其特征在于,所述装置还包括接收模块,所述接收模块用于:接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于表示所述接收端已接收到所述第一数据包,所述第二指示信息用于表示所述接收端已接收到所述第二数据包;The device according to claim 11 or 12, wherein the device further comprises a receiving module, the receiving module is configured to: receive the first indication information and the second indication information sent by the receiving end, the first indication information an indication information is used to indicate that the receiver has received the first data packet, and the second indication information is used to indicate that the receiver has received the second data packet;
    其中,所述处理模块具体用于根据所述第一指示信息的接收时间与所述第二指示信息 的接收时间之间的时间间隔,确定所述第一时间间隔。Wherein, the processing module is specifically configured to determine the first time interval according to the time interval between the reception time of the first indication information and the reception time of the second indication information.
  15. 根据权利要求11至14中任一项所述的装置,其特征在于,所述第一数据包为所述N个数据包中第一个到达所述接收端的数据包,所述第二数据包为所述M个数据包中最后一个到达所述接收端的数据包。The apparatus according to any one of claims 11 to 14, wherein 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 reaching the receiving end among the M data packets.
  16. 根据权利要求9至15中任一项所述的装置,所述发送模块具体用于:The device according to any one of claims 9 to 15, wherein the sending module is specifically configured to:
    根据所述第一可用带宽更新所述发送端的拥塞窗口的大小和发送速率;Update the size of the congestion window and the sending rate of the sender according to the first available bandwidth;
    基于所述更新后的拥塞窗口的大小和发送速率向所述接收端发送数据包。The data packet is sent to the receiving end based on the updated size of the congestion window and the sending rate.
  17. 一种控制网络拥塞的装置,其特征在于,包括:处理器和通信接口,所述处理器与存储器耦合;A device for controlling network congestion, comprising: a processor and a communication interface, wherein the processor is coupled with a memory;
    所述存储器用于存储指令;the memory is used to store instructions;
    所述通信接口用于在向接收端连续发送N个数据包之后,向所述接收端间隔性地发送M个数据包,M和N为正整数;The communication interface is configured to periodically send M data packets to the receiving end after continuously sending N data packets to the receiving end, where M and N are positive integers;
    所述处理器用于执行所述存储器中存储的指令,以用于根据所述N个数据包中的数据包到达所述接收端的时间和所述M个数据包中的数据包到达所述接收端的时间之间的时间间隔,确定所述装置至所述接收端的传输路径的第一可用带宽;The processor is configured to execute the instructions stored in the memory, so as to be used according to the time when the data packets in the N data packets arrive at the receiving end and the time when the data packets in the M data packets arrive at the receiving end. the time interval between times, to determine the first available bandwidth of the transmission path from the device to the receiver;
    所述通信接口还用于根据所述第一可用带宽向所述接收端发送数据包。The communication interface is further configured to send a data packet to the receiving end according to the first available bandwidth.
  18. 根据权利要求17所述的装置,其特征在于,所述装置发送所述N个数据包和所述M个数据包的总时长,小于或等于所述装置至所述接收端之间的数据包的一个往返时延的长度。The device according to claim 17, wherein the total duration of the device sending the N data packets and the M data packets is less than or equal to the data packets between the device and the receiving end The length of a round-trip delay of .
  19. 根据权利要求17或18所述的装置,其特征在于,所述处理器具体用于:The apparatus according to claim 17 or 18, wherein the processor is specifically configured to:
    确定所述N个数据包中的第一数据包到达所述接收端的第一时间与所述M个数据包中的第二数据包到达所述接收端的第二时间之间的第一时间间隔;Determine the first time interval between the first time when the first data packet in the N data packets arrives at the receiving end and the second time when the second data packet in the M data packets arrives at the receiving end;
    根据所述第一时间间隔和所述第一时间间隔内所述接收端从所述发送端接收到的数据量,确定所述第一可用带宽。The first available bandwidth is determined according to the first time interval and the amount of data received by the receiving end from the transmitting end within the first time interval.
  20. 根据权利要求19所述的装置,其特征在于,所述第一可用带宽为多个可用带宽中的最大可用带宽,所述多个可用带宽与所述M个数据包中到达所述接收端的多个数据包一一对应,所述多个可用带宽中每个可用带宽是根据所述每个可用带宽对应的时间间隔和所述每个可用带宽对应的数据量计算得到的,所述对应的时间间隔是指所述每个可用带宽对应的数据包到达所述接收端的时间与所述第一时间的时间间隔,所述对应的数据量是指所述对应的时间间隔内所述接收端从所述装置接收到的数据量。The apparatus according to claim 19, wherein the first available bandwidth is a maximum available bandwidth among multiple available bandwidths, and the multiple available bandwidths are the same as a multiple of the M data packets reaching the receiving end. One-to-one correspondence between data packets, each of the available bandwidths in the plurality of available bandwidths is calculated according to the time interval corresponding to each available bandwidth and the amount of data corresponding to each available bandwidth, and the corresponding time The 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 time between the receiving end and the receiving end within the corresponding time interval. amount of data received by the device.
  21. 根据权利要求19或20所述的装置,其特征在于,所述通信接口还用于:接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于指示所述第一时间,所述第二反馈信息用于指示所述第二时间;The apparatus according to claim 19 or 20, wherein the communication interface is further configured to: receive first indication information and second indication information sent by the receiving end, wherein the first indication information is used to indicate the the first time, and the second feedback information is used to indicate the second time;
    其中,所述处理器具体用于根据所述第一时间和所述第二时间,确定所述第一时间间隔。The processor is specifically configured to determine the first time interval according to the first time and the second time.
  22. 根据权利要求19或20所述的装置,其特征在于,所述通信接口还用于:接收所述接收端发送的第一指示信息和第二指示信息,所述第一指示信息用于表示所述接收端已接收到所述第一数据包,所述第二指示信息用于表示所述接收端已接收到所述第二数据包;The apparatus according to claim 19 or 20, wherein the communication interface is further configured to: receive first indication information and second indication information sent by the receiving end, where the first indication information is used to indicate the 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;
    其中,所述处理器具体用于根据所述第一指示信息的接收时间与所述第二指示信息的 接收时间之间的时间间隔,确定所述第一时间间隔。Wherein, the processor is specifically configured to determine 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.
  23. 根据权利要求19至22中任一项所述的装置,其特征在于,所述第一数据包为所述N个数据包中第一个到达所述接收端的数据包,所述第二数据包为所述M个数据包中最后一个到达所述接收端的数据包。The device according to any one of claims 19 to 22, wherein the first data packet is the first data packet among the N data packets that reaches the receiving end, and the second data packet is the last data packet reaching the receiving end among the M data packets.
  24. 根据权利要求17至23中任一项所述的装置,所述通信接口具体用于:The device according to any one of claims 17 to 23, wherein the communication interface is specifically used for:
    根据所述第一可用带宽更新所述发送端的拥塞窗口的大小和发送速率;Update the size of the congestion window and the sending rate of the sender according to the first available bandwidth;
    基于所述更新后的拥塞窗口的大小和发送速率向所述接收端发送数据包。The data packet is sent to the receiving end based on the updated size of the congestion window and the sending rate.
  25. 一种计算机可读介质,其特征在于,包括指令,当所述指令在处理器上运行时,使得所述处理器执行如权利要求1至8中任一项所述的方法。A computer-readable medium comprising instructions which, when executed on a processor, cause the processor to perform the method of any one of claims 1 to 8.
PCT/CN2021/087368 2020-06-30 2021-04-15 Method for controlling network congestion and related apparatus WO2022001291A1 (en)

Applications Claiming Priority (2)

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

Publications (1)

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

Family

ID=78981555

Family Applications (1)

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

Country Status (2)

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

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

Families Citing this family (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

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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428784B (en) * 2017-08-31 2021-10-15 腾讯科技(深圳)有限公司 Network detection method and device, computer storage medium and equipment

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

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

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2022001291A1 (en) Method for controlling network congestion and related apparatus
US8750109B2 (en) Inferring TCP initial congestion window
KR101046105B1 (en) Computer program manufacturing, resource demand adjustment methods, and end systems
WO2019134383A1 (en) Method for controlling network congestion, access device, and computer readable storage medium
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
US20020181506A1 (en) Scheme for supporting real-time packetization and retransmission in rate-based streaming applications
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 (en) Transport accelerator that implements extended transmission control functionality
WO2018121742A1 (en) Method and device for transmitting stream data
CN110505123B (en) Packet loss rate calculation method, server and computer-readable storage medium
CN110557655A (en) video picture display method and device, electronic equipment and storage medium
CN110830460A (en) Connection establishing method and device, electronic equipment and storage medium
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 (en) Data transmission method and related device
KR20160135811A (en) Method and apparatus for dash streaming using http streaming
US11115308B2 (en) System and method for congestion control using time difference congestion notification
KR20230002784A (en) Methods and servers for transmitting audio and/or video content
EP2311226B1 (en) Controlling data flow through a data communications link
US11824792B2 (en) Method and system for dynamic quota-based congestion management
CN117614908A (en) Data transmission control method and device, electronic equipment and storage medium
GB2588930A (en) Multimedia system & method

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