WO2021098368A1 - 一种实现拥塞控制的方法、装置和系统 - Google Patents

一种实现拥塞控制的方法、装置和系统 Download PDF

Info

Publication number
WO2021098368A1
WO2021098368A1 PCT/CN2020/116549 CN2020116549W WO2021098368A1 WO 2021098368 A1 WO2021098368 A1 WO 2021098368A1 CN 2020116549 W CN2020116549 W CN 2020116549W WO 2021098368 A1 WO2021098368 A1 WO 2021098368A1
Authority
WO
WIPO (PCT)
Prior art keywords
rate
sending
data stream
network device
target
Prior art date
Application number
PCT/CN2020/116549
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to EP20888801.6A priority Critical patent/EP4050855A4/en
Publication of WO2021098368A1 publication Critical patent/WO2021098368A1/zh
Priority to US17/747,281 priority patent/US20220278936A1/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
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority

Definitions

  • the embodiments of the present invention relate to the field of communication technologies, and in particular, to a method, device, and system for implementing congestion control.
  • the common method for congestion control is that the receiving device of the data stream determines the sending rate of the data stream according to the usage of the ingress port bandwidth, and sends the sending rate to the sending device of the data stream, and then the sending device according to the sending rate Send the data stream.
  • the status of the receiving device cannot accurately reflect the network status, so the transmission rate determined according to this method cannot accurately perform congestion control, resulting in poor congestion control effects.
  • the embodiments of the present invention provide a method, device and system for implementing congestion control, which are used to solve the problem of poor congestion control effect in the prior art.
  • a method for implementing congestion control includes acquiring first information of a first network device, where the first information includes a total bandwidth of a first outgoing port of the first network device and The number of active flows corresponding to the first queue of the first egress port, and the sending rate of the first data flow in the active flow is determined according to the first information, and the sending rate is positively correlated with the total bandwidth , Negatively correlated with the number of active streams (for example, inversely proportional to the number of active streams), and the sending rate is used by the sending device of the first data stream to send the first data stream.
  • the information used to determine the data stream sending rate includes the total bandwidth of the outgoing port of the network device and the number of active flows corresponding to the queue of the outgoing port, the status of the network device can be accurately reflected.
  • the transmission rate determined according to this implementation mode can effectively implement congestion control.
  • a method for implementing congestion control includes acquiring first information of a first network device, where the first information includes a total bandwidth of a first outgoing port of the first network device and The number of target sending devices, where the target sending device is the sending device of the active stream corresponding to the first queue of the first egress port, and the total sending rate of the target data stream is determined according to the first information, and the target data
  • the flow is all the data flows corresponding to the first queue sent by the first sending device in the target sending device through the first network device, and the total sending rate is positively correlated with the total bandwidth and is related to the
  • the number of target sending devices is negatively correlated (for example, inversely proportional to the number of target sending devices), and the total sending rate is used by the first sending device to send the target data stream.
  • a method for implementing congestion control includes acquiring a first rate, where the first rate is used by the first sending device to send a target data stream, and the target data stream includes at least one Data stream, and determine the sending rate of each data stream of the target data stream according to the first rate. Furthermore, for each data stream of the target data stream, the data stream is sent according to a corresponding sending rate, and specifically, the data stream may be sent at a corresponding sending rate.
  • a device for implementing congestion control includes an acquiring unit and a determining unit.
  • the acquiring unit is configured to acquire first information of a first network device, where the first information includes the total bandwidth of the first outgoing port of the first network device and the corresponding value of the first queue of the first outgoing port The number of active streams.
  • the determining unit is configured to determine the sending rate of the first data stream in the active stream according to the first information, where the sending rate is positively correlated with the total bandwidth and negatively correlated with the number of active streams, And the sending rate is used by the sending device of the first data stream to send the first data stream.
  • a device for implementing congestion control includes an acquiring unit and a determining unit.
  • the acquiring unit is configured to acquire first information of a first network device, where the first information includes the total bandwidth of the first outgoing port of the first network device and the number of target sending devices, and the target sending device is The sending device of the active flow corresponding to the first queue of the first outgoing port.
  • the determining unit is configured to determine a total sending rate of a target data stream according to the first information, the target data stream being all data streams from a first sending device in the target sending device in the active stream, The total sending rate is positively correlated with the total bandwidth and negatively correlated with the number of the target sending devices, and the total sending rate is used by the first sending device to send the target data stream.
  • a device for implementing congestion control includes an acquiring unit, a determining unit, and a communication unit.
  • the acquiring unit is configured to acquire a first rate, the first rate is used to send a target data stream, and the target data stream includes at least one data stream;
  • the determining unit is configured to determine the sending rate of each data stream of the target data stream according to the first rate.
  • a system for implementing congestion control including a first sending device and a first network device;
  • the first network device is used to obtain first information of the first network device, where the first information includes the total bandwidth of the first outgoing port of the first network device and the number of target sending devices, and the target
  • the sending device is the sending device of the active stream corresponding to the first queue of the first outgoing port, and is used to determine the total sending rate of the target data stream according to the first information, and the target data stream is from among the active streams
  • the total sending rate is positively correlated with the total bandwidth and inversely proportional to the number of target sending devices, and the total sending rate is used for the Sending the target data stream by the first sending device is also used to send the total sending rate to the first sending device;
  • the first sending device is configured to receive the total sending rate from the first network device, and determine the sending rate of each data stream of the target data stream according to the total sending rate.
  • a computer storage medium stores instructions, and when the instructions are executed by a processor, the method according to the first, second, or third aspect is implemented.
  • the beneficial effects brought by the technical solution provided in this application at least include: since the information used to determine the data stream sending rate includes the total bandwidth of the outgoing port of the network device and the number of active flows corresponding to the queue of the outgoing port, it can accurately reflect The condition of the network equipment, therefore, the transmission rate determined according to this implementation mode can effectively implement congestion control.
  • FIG. 1 is a schematic diagram of a networking structure of a communication system 100 provided by an embodiment of the present invention
  • FIG. 2 is a schematic flowchart of a method 200 according to an embodiment of the present invention.
  • FIG. 3 is a schematic flowchart of a method 300 provided by an embodiment of the present invention.
  • FIGS. 4A-4B are schematic diagrams of an example implementation provided by an embodiment of the present invention.
  • FIGS. 5A-5B are schematic diagrams of another example implementation manner provided by an embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of an apparatus 600 provided by an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of an apparatus 700 provided by an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of an apparatus 1000 provided by an embodiment of the present invention.
  • FIG. 1 is a schematic diagram of a networking structure of a communication system 100 provided by an embodiment of the present invention.
  • the communication system 100 includes a communication device 110 and a communication network 120.
  • the communication device 110 may specifically be a user terminal, a server, or the like. Different communication devices 110 may communicate with each other through the communication network 120.
  • the communication network 120 includes a plurality of network devices 130.
  • the network device 130 may specifically be a switch, a router, and the like.
  • the communication network 120 includes a network device 130 (such as a network device 130B) directly connected to the communication device 110 and a network device 130 (such as a network device 130E) indirectly connected to the communication device 110.
  • the direct connection between the network device and the communication device means that there is no other network device between the network device and the communication device, and the network device is on the path of the data stream sent by other communication devices to the communication device.
  • the indirect connection between the network device and the communication device means that there are other network devices between the network device and the communication device, and on the path of the data stream sent by other communication devices to the communication device
  • the A network device is a network device located between other network devices and the previous hop of the communication device.
  • the network device directly connected to the communication device will be referred to as the last hop node
  • the network device indirectly connected to the communication device will be referred to as an intermediate node.
  • the communication network 120 may specifically be a data center network, and the data center network may include multiple switches, such as a backbone switch (Spine Switch) and a Top Of Rack (TOR) switch.
  • the backbone switch is the intermediate node
  • the TOR switch is the last hop node.
  • the communication device that sends the data stream (such as the network device 110A) is the sending device of the data stream
  • the communication device that receives the data stream (such as the communication device 110B) is the The receiving device of the data stream.
  • the network device (such as the network device 130B) connected to the receiving device is the previous hop of the receiving device, and may also be referred to as the last hop network device on the path.
  • congestion control may be performed at one or more network devices of the communication network 120, that is, congestion control is performed by using the congestion control information of the network device.
  • the network device may also be referred to as a congestion control point in the following.
  • the congestion control point in the communication system 100 includes the network device 130E and the network device 130B.
  • congestion control can be performed on all outgoing ports of the congestion control point, that is, the rate at which the sending device of the data stream forwarded through all outgoing ports can send the data stream can also be controlled for the congestion control point.
  • Some of the outgoing ports of the point perform congestion control, that is, controlling the rate at which the sending device of the data stream forwarded through the partial outgoing port sends the data stream.
  • the method in the embodiment of the present invention can be used for any outgoing port.
  • An outgoing port may only correspond to one queue, or it may correspond to multiple queues. Each queue is used to transmit data packets of at least one data stream.
  • congestion control can be performed on all queues of the egress port, or congestion control can be performed on some queues of the egress port.
  • the method in the embodiment of the present invention can be used for any queue of any egress port.
  • the data stream may specifically be a TCP (Transfer Control Protocol, transmission control protocol) stream, a UDP (User Datagram Protocol, user datagram protocol) stream, a remote direct memory access (Remote Direct Memory Access, RDMA) stream, and the like.
  • TCP Transfer Control Protocol, transmission control protocol
  • UDP User Datagram Protocol, user datagram protocol
  • RDMA Remote Direct Memory Access
  • An active flow may refer to a data flow that is transmitting data packets in a statistical period.
  • the number of active flows corresponding to the queue refers to the number of data flows to which the data packets in the queue belong, that is, the data flows corresponding to the queue and which are transmitting data packets in the statistical period.
  • the active stream can be identified according to the method provided in the patent application with the patent application number CN201811119974.6 or the patent application with the patent application number CN201811119579.8.
  • the sending rate of a single active stream is determined, and then the sending device of the active stream sends the active stream at the sending rate.
  • the total sending rate of the active streams sent by the sending device is determined, and then the sending device determines the sending rate of each active stream sent by the device according to the total sending rate, and sends each active stream at the sending rate.
  • the network device serving as the congestion control point in the method 200 is referred to as network device A in the following.
  • the network device A may include multiple egress ports, and each egress port may correspond to multiple queues, and the method 200 can be used to perform congestion control for any queue of any one of the egress ports.
  • the congestion control information of network device A is called information a
  • the outgoing port of network device A that performs congestion control is called outgoing port p
  • the congestion control queue of outgoing port p is called information a.
  • Called queue m The network device A may specifically be any network device 130 in the communication system 100.
  • the network device serving as the congestion control point in the method 300 is referred to as network device B in the following.
  • the network device B may include multiple egress ports, and each egress port may correspond to multiple queues, and the method 300 can be used to perform congestion control for any queue of any one of the egress ports.
  • the congestion control information of network device B is called information b
  • the outgoing port of network device B that performs congestion control is called outgoing port q
  • the congestion control queue of outgoing port q is called Called queue n.
  • the network device B may specifically be any network device 130 in the communication system 100. In a specific implementation, it may specifically be any network device 130 in the communication system 100 that is directly connected to the communication device 110.
  • the method 200 includes the following steps.
  • Step 201 Obtain information a of the network device A, the information a includes the total bandwidth of the outgoing port p of the network device A and the number of active flows corresponding to the queue m of the outgoing port p.
  • Step 202 Determine the sending rate of at least one active stream (hereinafter referred to as the first data stream) in the active stream according to the information a.
  • the sending rate is used by the sending device of the first data stream to send the first data stream.
  • the sending rate is positively related to the total bandwidth.
  • the sending rate can be proportional to the total bandwidth.
  • the sending rate is also negatively related to the number of active flows.
  • the sending rate may be inversely proportional to the number of active streams. For example, the quotient of the total bandwidth and the number of active streams is directly used as the sending rate.
  • the sending rate of some of the data streams can be determined, and the sending rate of each data stream in the multiple active streams can also be determined.
  • the sending rate can be the same, for example, the quotient of the total bandwidth and the number of active streams is used as the sending rate of each data stream.
  • the occupied bandwidth of out port p can also be used when determining the sending rate. That is, information a also includes the occupied bandwidth of out port p. The occupied bandwidth is negatively correlated.
  • the queue depth of queue m reflects the current degree of congestion or the degree of congestion risk
  • the queue depth of queue m can also be used when determining the sending rate. That is, the information a also includes the queue depth of queue m, and the sending rate is negatively correlated with the queue depth.
  • the method 200 may be executed by the network device A.
  • the network device A also sends the sending rate to the sending device.
  • the sending device sends the first data stream at the sending rate.
  • network device A may determine the sending rate of each active flow in step 202, and send the sending rate of the active flow to the sending device of each active flow, and further, The sending device of the active stream sends the active stream at the sending rate.
  • network device A may execute step 202 when a trigger condition is detected, and the trigger condition includes at least one of the following conditions:
  • the queue depth of queue m exceeds the queue depth threshold or the usage rate of queue m exceeds the queue usage threshold (such as 80%);
  • the occupied bandwidth of port q exceeds the bandwidth threshold or the bandwidth occupancy rate of port q exceeds the bandwidth occupancy threshold (for example, 80%).
  • the method 200 may be executed by the sending device of the first data stream.
  • the sending device of the first data stream receives the information a from the network device A.
  • the network device A may send information a to the sending device of the first data stream when the above trigger condition is detected.
  • the network device A may send the information a to the sending device of each active flow.
  • the sending device of the active stream performs step 202 to determine the sending rate of the active stream, and then sends the active stream at the sending rate.
  • the method 200 may be executed by the receiving device of the first data stream.
  • the receiving device of the first data stream receives the information a from the network device A, and sends the sending rate of the first data stream to the first data stream after the method 202 is executed to determine the sending rate of the first data stream.
  • the network device A may send information a to the receiving device of the first data stream when the above trigger condition is detected.
  • network device A can send information a to the receiving device of each active flow.
  • the receiving device of the active stream performs step 202 to determine the sending rate of the active stream, and sends the sending rate to the sending device of the active stream, and then the sending device of the active stream sends the active stream at the sending rate.
  • the method 300 includes the following steps.
  • Step 301 Obtain information b of the network device B.
  • the information b includes the total bandwidth of the egress port q of the network device B and the number of active flow sending devices corresponding to the queue n of the egress port q.
  • the sending device of the active flow corresponding to queue n is subsequently referred to as the target sending device.
  • the sending device of two active flows is device 1
  • the sending device of one active flow is device 2
  • the number of sending devices of the active flow corresponding to queue n is the target sending device The number is 2.
  • Step 302 Determine, according to the information b, the total transmission rate at which at least one of the target sending devices (hereinafter referred to as the first sending device) sends the target data stream.
  • the target data flow refers to all data flows corresponding to the first queue sent by the first sending device through the network device B. It should be noted that the target data stream may include one data stream or multiple data streams.
  • Network device B may specifically be the last hop node, and network device B is the last hop network device on the path of the above active flow. Since one outgoing port can only connect to one communication device, the above active flow corresponds to the same reception equipment. When counting the number of target sending devices, network device B can count the number of source IPs corresponding to the same destination IP (that is, the IP of the receiving device connected to the outgoing port q) in the active data stream.
  • the total transmission rate is positively correlated with the total bandwidth.
  • the total sending rate may be proportional to the total bandwidth.
  • the total transmission rate is also negatively related to the number of active flows.
  • the total sending rate may be inversely proportional to the number of target sending devices. For example, the quotient of the total bandwidth and the number of target sending devices is directly used as the total sending rate.
  • the total sending rate corresponding to some of the target sending devices can be determined, and the total sending rate corresponding to each target sending device in the multiple target sending devices can also be determined
  • the determined total transmission rate corresponding to each target transmission device may be the same, for example, the quotient of the total bandwidth and the number of the target transmission device is taken as the total transmission rate corresponding to each target transmission device.
  • the occupied bandwidth of out port q can also be used when determining the total sending rate, that is, information b also includes the occupied bandwidth of out port q, the total sending rate It is negatively related to the occupied bandwidth.
  • the queue depth of queue n reflects the current degree of congestion or the degree of congestion risk
  • the queue depth of queue n can also be used when determining the total sending rate. That is, the information b also includes the queue depth of queue n, and the total sending rate is negatively correlated with the queue depth.
  • the method 300 may be executed by the network device B.
  • the network device B also sends the total sending rate to the first sending device.
  • the first sending device sends the target data stream at the total sending rate, specifically, determining the sending rate of each data stream belonging to the target data stream sent by the device according to the total sending rate, and using the sending rate Send the corresponding data stream. If the target data stream includes only one data stream, the total sending rate can be directly used as the sending rate of the data stream; if the target data stream includes multiple data streams, the total sending rate can be evenly distributed to the multiple data streams.
  • the total sending rate can also be allocated according to the current sending rate of each data stream. For example, the size of the sending rate allocated to each data stream is positively correlated (eg proportional) to the size of the current sending rate of the data stream.
  • network device B may determine the total sending rate corresponding to each target sending device in step 302, and send the corresponding total sending rate to each target sending device, and then , The target sending device sends the corresponding target data stream at the total sending rate.
  • network device B may execute step 302 when a trigger condition is detected, and the trigger condition includes at least one of the following conditions:
  • the number of target sending devices corresponding to queue m changes
  • the queue depth of queue m exceeds the queue depth threshold or the usage rate of queue m exceeds the queue usage threshold (such as 80%);
  • the occupied bandwidth of port q exceeds the bandwidth threshold or the bandwidth occupancy rate of port q exceeds the bandwidth occupancy threshold (for example, 80%).
  • the method 300 may be executed by the first sending device.
  • the first sending device receives the information b from the network device B.
  • the network device B may send information b to the first sending device when detecting the above trigger condition.
  • network device B can send information b to each target sending device.
  • the target sending device performs step 202 to determine the corresponding total sending rate, and then sends the corresponding data stream at the total sending rate.
  • the method 300 may be executed by the receiving device of the target data stream.
  • the receiving device of the target data stream receives the information b from the network device B.
  • the network device B may send information b to the receiving device of the target data stream when the above trigger condition is detected.
  • the receiving device performs step 302 to determine the total sending rate of the target data stream, and sends the total sending rate to the sending device of the target data stream, and then the sending device of the target data stream sends the target at the total sending rate. data flow.
  • network device A and network device B are collectively referred to as target network devices
  • egress port p and egress port q are collectively referred to as target egress ports
  • queue m and queue n are collectively referred to as target queues
  • sending rate in method 200 The total transmission rate in the method 300 and the method 300 are collectively referred to as the target rate.
  • the target rate can be calculated according to the following formula.
  • rate is the target sending rate
  • C is the total bandwidth of the target egress port
  • Cout is the occupied bandwidth of the target egress port
  • qLen is the queue depth of the target queue
  • ⁇ and ⁇ are both greater than 0 and less than 1.
  • T is the preset duration. T can be the preset duration for sending the current data in the target queue. It can be understood that, under the premise that no new data packet enters the target queue, the target queue will be emptied after the preset time period. Therefore, T can also be referred to as the queue emptying time length.
  • rate is the sending rate
  • C is the total bandwidth of outgoing port p
  • Cout is the occupied bandwidth of outgoing port p
  • N is the number of active flows corresponding to queue m
  • qLen is the queue of queue m depth.
  • rate is the total sending rate
  • C is the total bandwidth of outgoing port q
  • Cout is the occupied bandwidth of outgoing port q
  • N is the number of sending devices for active flows corresponding to queue n
  • qLen is The queue depth of queue n.
  • C1/N is used to allocate bandwidth fairly.
  • the sending rate of the data stream can be reduced to empty the queue, and the force of emptying the queue can be controlled by the parameter ⁇ .
  • the sending rate of the data stream can be increased to prevent the under-throughput problem.
  • the rate of increase can be controlled by the parameter ⁇ .
  • the formula can be used to calculate the target rate for each queue.
  • the queue can also be calculated based on the weight of the queue and the weight of other queues with the same priority.
  • the target rate of the queue where the calculated target rate of the queue is positively correlated with the weight of the queue.
  • the target network device includes 8 queues.
  • the priority of queue 1 is higher than that of queue 2
  • the priority of queue 2 is higher than that of queue 3
  • the priorities of queues 3 to 6 are the same
  • the priority of queue 6 is higher than that of queue 7
  • the priority of queue 7 is higher than that of queue 8.
  • the queue depths of queue 1 to queue 8 are qLen1 to qLen8 in order.
  • Queues 3 to 6 are scheduled using a weighted round robin (WRR) algorithm.
  • the weights are w1, w2, w3, and w4.
  • the whole of queues 3-6 and queues 1, 2, 7, and 8 adopt strict priority (strict priority). priority, SP) algorithm scheduling.
  • formula 1 can be used to calculate the target rate.
  • N3 to N6 are the number of active flows corresponding to queues 3 to 6, respectively, and when used in method 300, N3 to N6 are the active flows corresponding to queues 3 to 6 respectively.
  • the number of sending devices for the stream is the number of sending devices for the stream.
  • the packet carrying rate can be controlled (for example, the sending rate of the first data stream in the method 200, the total sending rate in the method 300).
  • the speed control message may specifically be a congestion notification packet (CNP), an acknowledgement (Acknowledge, ACK) message, and the like.
  • the speed control message may further include an identifier of the first data flow, such as a five-tuple of the first data flow.
  • the speed control message may also include the identifier of the receiving device of the target data stream, such as the Internet Protocol (IP) address of the receiving device, and the identifier of the receiving device is used for the The sending device determines the data stream belonging to the target data stream.
  • IP Internet Protocol
  • the speed control message may also include the data flow priority corresponding to queue n, and the data flow priority is used by the sending device Determining the data stream belonging to the target data stream, that is, determining the data stream with the priority of the data stream as the data stream belonging to the target data stream.
  • the data stream priority may specifically be a wireless local area network (Wireless Local Network, WLAN) priority, a DSCP (Differentiated Service Code Point) value, and the like.
  • queue n is used to transmit data streams with DSCP values x and y, and the rate control message can carry DSCP values x and y. Accordingly, the first sending device determines data streams with DSCP values x and y Is the data stream belonging to the target data stream.
  • network device B is the last hop node, and the sent speed control message includes the identification of the receiving device. If port q corresponds to multiple queues, the speed control message further includes the corresponding to queue n Data stream priority.
  • network device B is an intermediate node
  • port q corresponds to multiple queues
  • the sent rate control message includes the data flow priority corresponding to queue n.
  • the communication device 110A sends the data stream 11 and the data stream 12 to the communication device 110B through the network devices 130A, 130E, and 130B, and the communication device 110C sends the data stream 11 and the data stream 12 to the communication device through the network devices 130D, 130E, and 130C.
  • the device 110D sends a data stream 21.
  • the network device 130E is the congestion control point.
  • this example implementation includes the following steps.
  • Step 401 The communication device 110A sends the data stream 11 and the data stream 12 to the communication device 110B through the network device 130E.
  • Step 402 The communication device 110C sends the data stream 21 to the communication device 110D through the network device 130E.
  • the network device 130E sends the data streams 11, 12, and 21 through the same queue of the same egress port.
  • Step 403 The network device 130E executes the method 200 to determine the sending rate 11 of the data stream 11, the sending rate 12 of the data stream 12, and the sending rate 21 of the data stream 21.
  • the determined transmission rates 11, 12, and 21 are usually the same rate.
  • the transmission rate calculated according to Formula 1 is used as the transmission rate 11, 12, and 21.
  • step 401 and step 402 are all continuous actions.
  • step 403 data streams 11, 12, and 21 are all active streams.
  • Step 404 The network device 130E sends a sending rate of 11 and a sending rate of 12 to the communication device 110A.
  • one rate control message sent to the communication device 110A may carry the sending rate 11 and the sending rate 12, or different rate control messages sent to the communication device 110A may carry the sending rate 11 and the sending rate 12 respectively.
  • Step 405 The network device 130E sends a sending rate of 21 to the communication device 110C.
  • Step 406 The communication device 110A sends the data stream 11 at the sending rate 11, and sends the data stream 12 at the sending rate 12.
  • Step 407 The communication device 110C sends the data stream 21 at the sending rate 21.
  • step 404 there is no specific sequence between step 404 and step 405.
  • the communication device 110A sends the data stream 11 and the data stream 12 to the communication device 110B through the network devices 130A, 130E, and 130B, and the communication device 110C communicates with the communication device through the network devices 130D, 130E, and 130B.
  • the device 110B sends a data stream 22.
  • the network device 130B is the congestion control point.
  • this example embodiment includes the following steps.
  • Step 501 The communication device 110A sends the data stream 11 and the data stream 12 to the communication device 110B through the network device 130B.
  • Step 502 The communication device 110C sends the data stream 22 to the communication device 110B through the network device 130B.
  • the network device 130B sends the data streams 11, 12, and 22 through the same queue of the same egress port.
  • Step 503 The network device 130B executes the method 300 to determine the total transmission rate 1 of the data stream (ie, data stream 11 and data stream 12) sent by the communication device 110A and the total transmission of the data stream (ie, data stream 2) sent by the communication device 110C Rate 2.
  • the determined total transmission rate 1 and total transmission rate 2 are usually the same rate.
  • the total transmission rate calculated according to formula 1 is used as the total transmission rate 1 and the total transmission rate 2.
  • step 501 and step 502 are all continuous actions.
  • step 503 data streams 11, 12, and 22 are all active streams.
  • Step 504 The network device 130B sends the total transmission rate 1 to the communication device 110A.
  • Step 505 The network device 130B sends the total transmission rate 2 to the communication device 110C.
  • Steps 506-507 The communication device 110A determines the sending rate 11 of the data stream 11 and the sending rate 12 of the data stream 12 according to the total sending rate 1, and sends the data stream 11 at the sending rate 11 and the data stream 12 at the sending rate 12.
  • Steps 508-509 The communication device 110C determines the total sending rate 2 as the sending rate 22 of the data stream 22, and sends the data stream 22 at the sending rate 22.
  • congestion usually occurs at the last hop network device on the data flow path (hereinafter referred to as last hop congestion).
  • the congestion is mainly caused by more traffic, that is, the network device needs to send the data stream received through multiple ports to the communication device directly connected to the network device through one port, thereby causing congestion.
  • congestion control can be performed on a network device (such as the network device 130B) directly connected to the communication device based on the data flow with the network device as the last hop network device.
  • the method 300 can be implemented on the network device to solve the problem of last hop congestion.
  • the method 200 and the method 300 can be used in conjunction.
  • the method 300 is implemented on a network device directly connected to the communication device (such as the network device 130B), and the method 200 is implemented on a network device that is indirectly connected to the communication device (such as the network device 130E).
  • the receiving rate of the sending device may be the sending rate of a single data stream, or the total sending rate of a target data stream composed of at least one data stream. Therefore, the rate-carrying rate control message also carries a type identifier, which is used to identify whether the rate carried by the rate-control message is the sending rate of a single data stream or the total sending rate of a target data stream composed of at least one data stream. . Correspondingly, the sending device recognizes the type of the rate carried in the speed control message according to the type identifier in the received speed control message.
  • the rate is the sending rate of a single data stream (that is, the first data stream)
  • the corresponding data stream can be sent directly at the sending rate, and if the rate is the total sending rate of the target data stream composed of at least one data stream, Then, the sending rate of a single data stream is determined according to the rate, and the corresponding data stream is sent at the determined sending rate of the single data stream.
  • the sending device may receive If there are multiple rate control messages, the minimum transmission rate among the multiple transmission rates corresponding to the data stream may be determined as the transmission rate for sending the data stream. For example, when the method 200 and the method 300 are used together, the total sending rate of the target data stream and the sending rate of the first data stream may be received at the same time, and then the first data stream is determined according to the total sending rate of the target data stream. After the sending rate is determined, the minimum value of the sending rate of the first data stream and the sending rate of the received first data stream can be determined to send the first data stream.
  • Embodiment 2 of the present invention proposes an apparatus 600 for implementing congestion control, and the apparatus 600 is configured to execute the method 200 or 300 of Embodiment 1 of the present invention.
  • the apparatus 600 includes: an acquiring unit 610, a determining unit 620, and a communication unit 630.
  • the acquiring unit 610 is used to execute step 201 of the method 200
  • the determining unit 620 is used to execute step 202 of the method 200.
  • the acquiring unit 610 is configured to acquire information a of the network device A, and the information a includes the total bandwidth of the egress port p of the network device A and the number of active flows corresponding to the queue m of the egress port p.
  • the determining unit 620 is configured to determine the sending rate of at least one active stream (that is, the first data stream) in the active stream according to the information a.
  • the apparatus 600 is specifically a network device A, and the communication unit 630 is configured to send the sending rate to the sending device.
  • the apparatus 600 is specifically a sending device of the first data stream.
  • the communication unit 630 is configured to receive information a from the network device A, and send the information a to the acquiring unit 610.
  • the communication unit 630 is also configured to send the first data stream at the sending rate.
  • the apparatus 600 is specifically a receiving device of the first data stream.
  • the communication unit 630 is configured to receive information a from the network device A and send the information a to the acquiring unit 610, and is also configured to send the sending rate of the first data stream to the sending device of the first data stream.
  • the obtaining unit 610 is used to execute step 301 of the method 300
  • the determining unit 620 is used to execute step 302 of the method 300.
  • the acquiring unit 610 is configured to acquire information b of the network device B.
  • the information b includes the total bandwidth of the outgoing port q of the network device B and the sending device of the active flow corresponding to the queue n of the outgoing port q (hereinafter referred to as the target sending device). )Number of.
  • the determining unit 620 is configured to determine, according to the information b, the total transmission rate at which at least one of the target sending devices (hereinafter referred to as the first sending device) sends the target data stream.
  • the apparatus 600 is specifically the network device B, and the communication unit 630 is configured to send the total sending rate to the sending device.
  • the apparatus 600 is specifically the first sending device.
  • the communication unit 630 is used to receive information b from the network device B.
  • the obtaining unit 610 is specifically configured to obtain the information b received by the communication unit 630.
  • the determining unit 620 is further configured to determine the sending rate of each data stream of the target data stream according to the total sending rate.
  • the communication unit 630 is further configured to send the data stream at a corresponding sending rate for each data stream of the target data stream.
  • the apparatus 600 is specifically a receiving device of the target data stream.
  • the communication unit 630 is used to receive the information b from the network device B, and is also used to send the sending rate of the target data stream to the sending device of the target data stream.
  • the obtaining unit 610 is specifically configured to obtain the information b received by the communication unit 630.
  • Embodiment 3 of the present invention proposes an apparatus 700 for implementing congestion control.
  • the apparatus 700 includes: an acquiring unit 710, a determining unit 720, and a communication unit 730.
  • the obtaining unit 700 is configured to obtain a total sending rate of a target data stream, and the target data stream may include one data stream or may include multiple data streams.
  • the determining unit 720 is configured to determine the sending rate of each data stream of the target data stream according to the sending rate of the target data stream.
  • the communication unit 730 is configured to, for each data stream of the target data stream, send the data stream according to a corresponding sending rate, for example, sending the data stream at a corresponding sending rate.
  • the determining unit 720 is configured to determine the sending rate of the target data stream as the sending rate of the first data stream
  • the communication unit 730 is configured to , Sending the first data stream according to the sending rate of the target data stream, for example, sending the first data stream at the sending rate of the target data stream.
  • the total transmission rate may be specifically determined according to the method 300 of the first embodiment of the present invention, that is, determined according to the information b of the network device B located between the apparatus 700 and the receiving device of the target data stream on the path of the target data stream.
  • the information b includes the total bandwidth of the outgoing port q of the network device B and the number of active flow sending devices (ie, target sending devices) corresponding to the queue n of the outgoing port q.
  • the target sending device includes an apparatus 700, and the target data stream is all data streams corresponding to queue n from the apparatus 700.
  • the communication unit 730 is further configured to receive the total transmission rate from the network device B, and accordingly, the acquisition unit 700 is specifically configured to receive the total transmission rate from the communication unit 730.
  • the communication unit 730 is further configured to receive information b from the network device B. Accordingly, the acquiring unit 700 is specifically configured to receive information b from the communication unit 730, and determine the total transmission of the target data stream according to the information b. rate.
  • the communication unit 730 is further configured to receive the total transmission rate from the receiving device of the target network device. Accordingly, the acquiring unit 700 is specifically configured to receive the total transmission rate from the communication unit 730. rate.
  • the total transmission rate can be determined by the last hop of the receiving device of the target data stream through the method 300.
  • the path of a certain data stream (that is, the first data stream) in the target data stream The intermediate node may also determine the sending rate of the first data stream by using the method 200, and send the sending rate of the first data stream to the device 700 in the implementation manner Z1.
  • the receiving rate of the apparatus 700 may be the sending rate of a single data stream, or the total sending rate of a target data stream composed of at least one data stream. Therefore, the rate-carrying rate control message also carries a type identifier, which is used to identify whether the rate carried by the rate-control message is the sending rate of a single data stream or the total sending rate of a target data stream composed of at least one data stream. .
  • the determining unit 720 is further configured to identify the type of the rate carried in the speed control message according to the type identifier in the received speed control message.
  • the communication unit 730 When the communication unit 730 receives the total sending rate of the target data stream and the sending rate of the first data stream at the same time, after determining the sending rate of the first data stream according to the total sending rate of the target data stream, it can determine The minimum value of the sending rate of the first data stream and the sending rate of the received first data stream is used to send the first data stream.
  • Embodiment 4 of the present invention proposes an apparatus 1000 for implementing congestion control.
  • the device 1000 may specifically be a network device, such as a switch and a router, or a communication device, such as a user terminal and a server.
  • the apparatus 1000 includes a processor 1010 and a communication interface 1020, and may also include a memory 1030.
  • the processor 1010, the communication interface 1020, and the memory 1030 can communicate with each other through a bus.
  • the processor 1010 may specifically be a central processing unit (CPU), or a specific integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits configured to implement the embodiments of the present invention.
  • CPU central processing unit
  • ASIC Application Specific Integrated Circuit
  • the memory 1030 may specifically be a high-speed random access memory (Random Access Memory, RAM) memory, or a non-volatile memory (non-volatile memory).
  • RAM Random Access Memory
  • non-volatile memory non-volatile memory
  • the processor 1010 is configured to perform operations in the method 200 or 300 in Embodiment 1 of the present invention, or perform operations performed by the sending device of the first data stream or the target data stream in Embodiment 1 of the present invention. Specifically, the operation may be performed by executing a computer operation instruction stored in the memory 1020.
  • the communication interface 1020 is used to communicate with other devices.
  • the program can be stored in a computer-readable storage medium.
  • the storage medium mentioned can be a read-only memory, a magnetic disk or an optical disk, etc.
  • the terms “first”, “second” and “third” are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance.
  • the term “at least one” refers to one or more, and the term “plurality” refers to two or more, unless expressly defined otherwise.

Landscapes

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

Abstract

本发明实施例公开了一种实现拥塞控制的方法,所述方法包括:获取第一网络设备的拥塞控制信息,所述拥塞控制信息包括所述第一网络设备的第一出端口的总带宽和所述第一出端口的第一队列对应的活跃流的数目,并根据所述拥塞控制信息确定所述活跃流中的第一数据流的发送速率,所述发送速率与所述总带宽正相关、与所述活跃流的数目负相关(如成反比),且所述发送速率用于所述第一数据流的发送设备发送所述第一数据流。由于用于确定数据流发送速率的信息包括该网络设备的出端口总带宽和该出端口的队列对应的活跃流的数目,可以准确反映出网络设备的状况,因此根据该实现方式确定的发送速率可以有效地实现拥塞控制。

Description

一种实现拥塞控制的方法、装置和系统
本申请要求于2019年11月18日提交中国国家知识产权局、申请号为201911129885.4的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种实现拥塞控制的方法、装置和系统。
背景技术
在通信网络中,网络拥塞是影响网络性能的重要因素。拥塞控制一直是保障网络服务质量的重要手段。
进行拥塞控制的常用方法是,数据流的接收设备根据入端口带宽的使用情况确定该数据流的发送速率,并将该发送速率发送给该数据流的发送设备,进而该发送设备根据该发送速率发送该数据流。
接收设备的状态无法准确反映出网络状况,因此根据该方法确定的发送速率无法准确地进行拥塞控制,导致拥塞控制的效果较差。
发明内容
本发明实施例提供了一种实现拥塞控制的方法、装置和系统,用于解决现有技术中存在的拥塞控制效果较差的问题。
第一方面,提供了一种实现拥塞控制的方法,所述方法包括,获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和所述第一出端口的第一队列对应的活跃流的数目,并根据所述第一信息确定所述活跃流中的第一数据流的发送速率,所述发送速率与所述总带宽正相关、与所述活跃流的数目负相关(如与所述活跃流的数目成反比),且所述发送速率用于所述第一数据流的发送设备发送所述第一数据流。
根据第一方面的实现方式,由于用于确定数据流发送速率的信息包括该网络设备的出端口总带宽和该出端口的队列对应的活跃流的数目,可以准确反映出网络设备的状况,因此根据该实现方式确定的发送速率可以有效地实现拥塞控制。
第二方面,提供了一种实现拥塞控制的方法,所述方法包括,获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备,并根据所述第一信息确定目标数据流的总发送速率,所述目标数据流为所述目标发送设备中的第一发送设备通过所述第一网络设备发送的与所述第一队列对应的全部数据流,所述总发送速率与所述总带宽正相关、与所述目标发送设备的数目负相关(如与所述目标发送设备的数目成反比),且所述总发送速率用于所述第一发送设备发送所述目标数据流。
第三方面,提供了一种实现拥塞控制的方法,所述方法包括,获取第一速率,所述 第一速率用于所述第一发送设备发送目标数据流,所述目标数据流包括至少一个数据流,并根据所述第一速率确定所述目标数据流的每个数据流的发送速率。进而,对于所述目标数据流的每个数据流,根据对应的发送速率发送所述数据流,具体可以是以对应的发送速率发送所述数据流。
第四方面,提供了一种实现拥塞控制的装置,所述装置包括获取单元和确定单元。
所述获取单元,用于获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和所述第一出端口的第一队列对应的活跃流的数目。
所述确定单元,用于根据所述第一信息确定所述活跃流中的第一数据流的发送速率,所述发送速率与所述总带宽正相关、与所述活跃流的数目负相关,且所述发送速率用于所述第一数据流的发送设备发送所述第一数据流。
第五方面,提供了一种实现拥塞控制的装置,所述装置包括获取单元和确定单元。
所述获取单元,用于获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备。
所述确定单元,用于根据所述第一信息确定目标数据流的总发送速率,所述目标数据流为所述活跃流中来自所述目标发送设备中的第一发送设备的全部数据流,所述总发送速率与所述总带宽正相关、与所述目标发送设备的数目负相关,且所述总发送速率用于所述第一发送设备发送所述目标数据流。
第六方面,提供了一种实现拥塞控制的装置,所述装置包括获取单元、确定单元和通信单元。
所述获取单元用于获取第一速率,所述第一速率用于发送目标数据流,所述目标数据流包括至少一个数据流;
所述确定单元用于,根据所述第一速率确定所述目标数据流的每个数据流的发送速率。
第七方面,提供了一种实现拥塞控制的系统,所述系统包括第一发送设备和第一网络设备;
所述第一网络设备用于获取所述第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备,并用于根据所述第一信息确定目标数据流的总发送速率,所述目标数据流为所述活跃流中来自所述目标发送设备中的第一发送设备的全部数据流,所述总发送速率与所述总带宽正相关、与所述目标发送设备的数目成反比,且所述总发送速率用于所述第一发送设备发送所述目标数据流,还用于向所述第一发送设备发送所述总发送速率;
所述第一发送设备用于从所述第一网络设备接收所述总发送速率,根据所述总发送速率确定所述目标数据流的每个数据流的发送速率。
第八方面,提供了一种计算机存储介质,所述计算机存储介质上存储有指令,当所述指令被处理器执行时,实现如第一方面、第二方面或第三方面所述的方法。
本申请提供的技术方案带来的有益效果至少包括:由于用于确定数据流发送速率的信息包括该网络设备的出端口总带宽和该出端口的队列对应的活跃流的数目,可以准确 反映出网络设备的状况,因此根据该实现方式确定的发送速率可以有效地实现拥塞控制。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的通信系统100的组网结构示意图;
图2为本发明实施例提供的方法200的流程示意图;
图3为本发明实施例提供的方法300的流程示意图;
图4A-4B为本发明实施例提供的一种示例实施方式的示意图;
图5A-5B为本发明实施例提供的另一种示例实施方式的示意图;
图6为本发明实施例提供的装置600的结构示意图;
图7为本发明实施例提供的装置700的结构示意图;
图8是本发明实施例提供的装置1000的结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
图1为本发明实施例提供的一种通信系统100的组网结构示意图,通信系统100包括通信设备110和通信网络120。通信设备110具体可以是用户终端、服务器等。不同的通信设备110之间可以通过通信网络120进行通信。通信网络120包括多个网络设备130。网络设备130具体可以是交换机、路由器等。
通信网络120包括与通信设备110直接连接的网络设备130(如网络设备130B)和与通信设备110间接连接的网络设备130(如网络设备130E)。在本发明实施例中,网络设备和通信设备直接连接指的是,该网络设备和通信设备之间没有其它网络设备,在其它通信设备向该通信设备发送的数据流的路径上,该网络设备为该通信设备的上一跳;网络设备和通信设备间接连接指的是,该网络设备和通信设备之间存在其它网络设备,在其它通信设备向该通信设备发送的数据流的路径上,该网络设备为位于其它网络设备与该通信设备的上一跳之间的网络设备。为便于描述,后续将与通信设备直接连接的网络设备称为最后一跳节点,将与通信设备间接连接的网络设备称为中间节点。
通信网络120具体可以是数据中心网络,数据中心网络可以包含多个交换机,如骨干交换机(Spine Switch)、机架上(Top Of Rack,TOR)交换机。其中,骨干交换机为中间节点,TOR交换机为最后一跳节点。
当不同的通信设备110之间通过通信网络120通信时,发送数据流的通信设备(如网络设备110A)为该数据流的发送设备,接收该数据流的通信设备(如通信设备110B)为该数据流的接收设备。在传输该数据流的路径上,与该接收设备连接的网络设备(如网络设备130B)为该接收设备的上一跳,也可以称为该路径上的最后一跳网络设备。
在本发明实施例中,为了控制网络拥塞,可以在通信网络120的一个或多个网络设备处进行拥塞控制,即利用该网络设备的拥塞控制信息进行拥塞控制。为便于描述,后续还可以将该网络设备称为拥塞控制点。
如图1所示,如果在网络设备130E和网络设备130B处进行拥塞控制,则通信系统100中的拥塞控制点包括网络设备130E和网络设备130B。
在拥塞控制点处进行拥塞控制时,可以针对该拥塞控制点的所有出端口进行拥塞控制,即控制通过所有出端口转发的数据流的发送设备发送该数据流的速率,也可以针对该拥塞控制点的部分出端口进行拥塞控制,即控制通过该部分出端口转发的数据流的发送设备发送该数据流的速率。针对任一出端口均可以采用本发明实施例中的方法。
一个出端口可能仅对应一个队列,也可能对应多个队列。每个队列用于传输至少一个数据流的数据包。进行拥塞控制时,可以针对该出端口的所有队列进行拥塞控制,也可以针对该出端口的部分队列进行拥塞控制。针对任一出端口的任一队列均可以采用本发明实施例中的方法。
所述数据流具体可以是TCP(Transfer Control Protocol,传输控制协议)流、UDP(User Datagram Protocol,用户数据报协议)流、远程直接内存存取(Remote Direct Memory Access,RDMA)流等。
根据本发明实施例,在基于一个队列进行拥塞控制时,需要识别该队列对应的活跃数据流(简称为活跃流)。活跃流可以是指在统计周期内正在传输数据包的数据流。该队列对应的活跃流的数目,指的是该队列中的数据包所属的数据流的数目,即该队列对应的,且在统计周期内正在传输数据包的数据流。具体可以根据专利申请号为CN201811119974.6的专利申请或专利申请号为CN201811119579.8的专利申请中提供的方法识别活跃流。
下面结合图2和图3介绍本发明实施例一提供的方法200和300。
在方法200中,确定单个活跃流的发送速率,进而该活跃流的发送设备以该发送速率发送该活跃流。
在方法300中,确定发送设备发送的活跃流的总发送速率,进而该发送设备根据该总发送速率确定本设备发送的每个活跃流的发送速率,并以该发送速率发送每个活跃流。
为便于描述,后续将方法200中作为拥塞控制点的网络设备称为网络设备A。网络设备A可能包括多个出端口,每个出端口可能对应多个队列,对其中任一出端口的任一队列均可以采用方法200进行拥塞控制。为便于表述,后续在方法200中,将网络设备A的拥塞控制信息称为信息a,将网络设备A的进行拥塞控制的出端口称为出端口p,将出端口p的进行拥塞控制的队列称为队列m。网络设备A具体可以是通信系统100中的任一网络设备130。
类似地,后续将方法300中作为拥塞控制点的网络设备称为网络设备B。网络设备B可能包括多个出端口,每个出端口可能对应多个队列,对其中任一出端口的任一队列均可以采用方法300进行拥塞控制。为便于表述,后续在方法300中,将网络设备B的拥塞控制信息称为信息b,将网络设备B的进行拥塞控制的出端口称为出端口q,将出端口q的进行拥塞控制的队列称为队列n。网络设备B具体可以是通信系统100中的任一网络设备130,在一种具体实现方式中,具体可以是是通信系统100中的任一与通信设备110直接连接的网络设备130。
如图2所示,方法200包括如下步骤。
步骤201:获取网络设备A的信息a,信息a包括网络设备A的出端口p的总带宽 和出端口p的队列m对应的活跃流的数目。
步骤202:根据信息a确定该活跃流中的至少一个活跃流(后续称为第一数据流)的发送速率。
该发送速率用于该第一数据流的发送设备发送该第一数据流。
该发送速率与该总带宽正相关。在具体实现时,该发送速率可以与该总带宽成正比。
该发送速率还与该活跃流的数目负相关。在具体实现时,该发送速率可以与该活跃流的数目成反比。如,直接将该总带宽与该活跃流的数目的商作为该发送速率。
如果队列m对应多个活跃流,可以确定其中部分数据流(如其中1个数据流)的发送速率,也可以确定该多个活跃流中每个数据流的发送速率,确定的各个数据流的发送速率可以相同,如,将该总带宽与该活跃流的数目的商作为每个数据流的发送速率。
为了充分利用端口p的带宽,提升端口p的吞吐率,在确定该发送速率时还可以使用出端口p的已占用带宽,即信息a还包括出端口p的已占用带宽,该发送速率与该已占用带宽负相关。
由于队列m的队列深度反应了当前的拥塞程度或拥塞风险程度,进一步地,在确定该发送速率时还可以使用队列m的队列深度。即信息a还包括队列m的队列深度,该发送速率与该队列深度负相关。
在一种实施方式(后续称为实施方式X1)中,方法200可以由网络设备A执行。相应地,在执行步骤202之后,网络设备A还向该发送设备发送该发送速率。进而,该发送设备以该发送速率发送该第一数据流。在具体实现时,如果队列m对应多个活跃流,网络设备A可以在步骤202中确定每个活跃流的发送速率,并向每个活跃流的发送设备发送该活跃流的发送速率,进而,该活跃流的发送设备以该发送速率发送该活跃流。
具体地,网络设备A可以在检测到触发条件时执行步骤202,该触发条件包括如下条件中的至少一个:
队列m对应的活跃流的数目发生变化;
队列m的队列深度超过队列深度阈值或队列m的使用率超过队列使用率阈值(如80%);
端口q的已占用带宽超过带宽阈值或端口q的带宽占用率超过带宽占用率阈值(如80%)。
在另一种实施方式(后续称为实施方式Y1)中,方法200可以由该第一数据流的发送设备执行。相应地,该第一数据流的发送设备从网络设备A接收信息a。网络设备A可以在检测到上述触发条件时向该第一数据流的发送设备发送信息a。在具体实现时,如果队列m对应多个活跃流,网络设备A可以向每个活跃流的发送设备发送信息a。相应地,该活跃流的发送设备执行步骤202确定该活跃流的发送速率,进而以该发送速率发送该活跃流。
在再一种实施方式(后续称为实施方式Z1)中,方法200可以由该第一数据流的接收设备执行。相应地,该第一数据流的接收设备从网络设备A接收信息a,并在执行方法202确定该第一数据流的发送速率之后将该第一数据流的发送速率发送给该第一数据流的发送设备。网络设备A可以在检测到上述触发条件时向该第一数据流的接收设备发送信息a。在具体实现时,如果队列m对应多个活跃流,网络设备A可以向每个活跃流 的接收设备发送信息a。相应地,该活跃流的接收设备执行步骤202确定该活跃流的发送速率,将该发送速率发送给该活跃流的发送设备,进而该活跃流的发送设备以该发送速率发送该活跃流。
如图3所示,方法300包括如下步骤。
步骤301:获取网络设备B的信息b,信息b包括网络设备B的出端口q的总带宽和出端口q的队列n对应的活跃流的发送设备的数目。
为便于表述,后续将队列n对应的活跃流的发送设备称为目标发送设备。
假设队列n对应的活跃流有3条,其中两条活跃流的发送设备为设备1,一条活跃流的发送设备为设备2,则队列n对应的活跃流的发送设备的数目,即目标发送设备的数目,为2。
步骤302:根据信息b确定该目标发送设备中的至少一个发送设备(后续称为第一发送设备)发送目标数据流的总发送速率。
该目标数据流指的是该第一发送设备通过网络设备B发送的与所述第一队列对应的全部数据流。需要说明的是,该目标数据流可能包括一个数据流,也可能包括多个数据流。
网络设备B具体可以为最后一跳节点,网络设备B为上述活跃流的路径上的最后一跳网络设备,由于一个出端口仅能连接一个通信设备,因此,上述活跃流对应的是相同的接收设备。在统计该目标发送设备的数目时,网络设备B可以统计活跃数据流中对应相同目的IP(即出端口q所连接的接收设备的IP)的源IP的数目。
该总发送速率与该总带宽正相关。在具体实现时,该总发送速率可以与该总带宽成正比。
该总发送速率还与该活跃流的数目负相关。在具体实现时,该总发送速率可以与该目标发送设备的数目成反比。如,直接将该总带宽与该目标发送设备的数目的商作为该总发送速率。
如果存在多个目标发送设备,可以确定其中部分目标发送设备(如其中1个目标发送设备)对应的总发送速率,也可以确定该多个目标发送设备中每个目标发送设备对应的总发送速率,确定的各个目标发送设备对应的总发送速率可以相同,如,将该总带宽与该目标发送设备的数目的商作为每个目标发送设备对应的总发送速率。
为了充分利用端口q的带宽,提升端口q的吞吐率,在确定该总发送速率时还可以使用出端口q的已占用带宽,即信息b还包括出端口q的已占用带宽,该总发送速率与该已占用带宽负相关。
由于队列n的队列深度反应了当前的拥塞程度或拥塞风险程度,进一步地,在确定该总发送速率时还可以使用队列n的队列深度。即信息b还包括队列n的队列深度,该总发送速率与该队列深度负相关。
在一种实施方式(后续称为实施方式X2)中,方法300可以由网络设备B执行。相应地,在执行步骤302之后,网络设备B还向该第一发送设备发送该总发送速率。进而,该第一发送设备以该总发送速率发送该目标数据流,具体地,根据该总发送速率确定本设备发送的属于该目标数据流的每个数据流的发送速率,并以该发送速率发送相应数据流。如果该目标数据流仅包括一个数据流,则可以直接将该总发送速率作为该数据流的 发送速率;如果该目标数据流包括多个数据流,可以将该总发送速率平均分配给该多个数据流,也可以根据各个数据流的当前发送速率分配该总发送速率,如,分配给各个数据流的发送速率的大小与该数据流的当前发送速率的大小正相关(如成正比)。
在具体实现时,如果队列n对应多个目标发送设备,网络设备B可以在步骤302中确定每个目标发送设备对应的总发送速率,并向每个目标发送设备发送对应的总发送速率,进而,该目标发送设备以该总发送速率发送对应的目标数据流。
具体地,网络设备B可以在检测到触发条件时执行步骤302,该触发条件包括如下条件中的至少一个:
队列m对应的目标发送设备的数目发生变化;
队列m的队列深度超过队列深度阈值或队列m的使用率超过队列使用率阈值(如80%);
端口q的已占用带宽超过带宽阈值或端口q的带宽占用率超过带宽占用率阈值(如80%)。
在另一种实施方式(后续称为实施方式Y2)中,方法300可以由该第一发送设备执行。相应地,该第一发送设备从网络设备B接收信息b。网络设备B可以在检测到上述触发条件时向该第一发送设备发送信息b。在具体实现时,如果队列n对应多个目标发送设备,网络设备B可以向每个目标发送设备发送信息b。相应地,该目标发送设备执行步骤202确定对应的的总发送速率,进而以该总发送速率发送对应的数据流。
在再一种实施方式(后续称为实施方式Z2)中,方法300可以由该目标数据流的接收设备执行。相应地,该目标数据流的接收设备从网络设备B接收信息b。网络设备B可以在检测到上述触发条件时向该目标数据流的接收设备发送信息b。相应地,该接收设备执行步骤302确定该目标数据流的总发送速率,将该总发送速率发送给该目标数据流的发送设备,进而该目标数据流的发送设备以该总发送速率发送该目标数据流。
下面介绍计算方法200中的发送速率和方法300中的总发送速率的具体实现方式。为便于表述,将网络设备A和网络设备B统称为目标网络设备,将出端口p和出端口q统称为目标出端口,将队列m和队列n统称为目标队列,将方法200中的发送速率和方法300中的总发送速率统称为目标速率。
在上述方法200和300中,可以根据如下公式计算该目标速率。
Figure PCTCN2020116549-appb-000001
其中,rate为所述目标发送速率,C为该目标出端口的总带宽,Cout为该目标出端口的已占用带宽,qLen为该目标队列的队列深度,α和β均为大于0且小于1的常数,T为预设时长。T可以为预设的要将目标队列中的当前数据发送完的时长。可以理解为,在该目标队列无新的数据包进入的前提下,经过该预设时长后,该目标队列会清空,因此也可以将T称为队列清空时长。
该公式用于方法200时,rate为所述发送速率,C为出端口p的总带宽,Cout出端口p的已占用带宽,N为队列m对应的活跃流的数目,qLen为队列m的队列深度。
该公式用于方法300时,rate为所述总发送速率,C为出端口q的总带宽,Cout 出端口q的已占用带宽,N为队列n对应的活跃流的发送设备的数目,qLen为队列n的队列深度。
在上述公式1中,C1/N用于公平分配带宽。当新数据流加入导致队列深度增大时,可以降低数据流的发送速率以排空队列,其中排空队列的力度可以通过参数β控制。为了增加出端口吞吐,可以增加数据流的发送速率,以防止出现欠吞吐问题,增速力度可以通过参数α控制。
如果该目标出端口对应不止一个队列,对于每个队列均可以采用该公式计算该目标速率。
如果其中多个队列的优先级相同但对应的权重不同,对于具有相同优先级的多个队列中的任一队列,还可以根据该队列的权重和与其具有相同优先级的其它队列的权重计算该队列的目标速率,其中,计算的该队列的目标速率与该队列的权重正相关。
假设该目标网络设备包括8个队列。队列1的优先级高于队列2,队列2的优先级高于队列3,队列3至队列6的优先级相同,队列6的优先级高于队列7,队列7的优先级高于队列8。队列1至队列8的队列深度依次为qLen1至qLen8。队列3至6采用加权循环调度(weighted round robin,WRR)算法调度,权重依次为w1、w2、w3、w4,队列3-6的整体与队列1、2、7、8采用严格优先级(strict priority,SP)算法调度。
对于队列1、2、7、8中的任一队列,均可以采用公式1计算目标速率。
对于队列3至6,可以分别采用如下公式计算目标速率。
队列3:
Figure PCTCN2020116549-appb-000002
队列4:
Figure PCTCN2020116549-appb-000003
队列5:
Figure PCTCN2020116549-appb-000004
队列6:
Figure PCTCN2020116549-appb-000005
公式2-1至2-4用于方法200时,N3至N6分别为队列3至队列6对应的活跃流的数目,用于方法300时,N3至N6分别为队列3至队列6对应的活跃流的发送设备的数目。
在方法200和方法300中,均可以控速报文携带速率(如方法200中的第一数据流的发送速率、方法300中的总发送速率)。该控速报文具体可以是拥塞通知报文(congestion notification packet,CNP)、确认(Acknowledge,ACK)报文等。
在方法200中,该控速报文还可以包括该第一数据流的标识,如该第一数据流的五元组。
在方法300中,该控速报文还可以包括所述目标数据流的接收设备的标识,如所述接收设备的因特网协议(Internet Protocol,IP)地址,所述接收设备的标识用于所 述发送设备确定属于所述目标数据流的数据流。
当端口q对应多个队列时,由于不同队列通常对应的数据流优先级不同,该控速报文还可以包括队列n对应的数据流优先级,所述数据流优先级用于所述发送设备确定属于所述目标数据流的数据流,即将具有该数据流优先级的数据流确定为属于所述目标数据流的数据流。所述数据流优先级具体可以是无线局域网(Wireless Local Network,WLAN)优先级、DSCP(Differentiated Service Code Point,差分服务码点)值等。如,队列n用于传输DSCP值为x和y的数据流,则该控速报文可以携带DSCP值x和y,相应地,该第一发送设备将DSCP值为x和y的数据流确定为属于该目标数据流的数据流。
在一种具体实施方式中,网络设备B为最后一跳节点,发送的控速报文包括该接收设备的标识,如果端口q对应多个队列,该控速报文进一步还包括队列n对应的数据流优先级。
在另一种具体实施方式中,网络设备B为中间节点,端口q对应多个队列,发送的控速报文包括队列n对应的数据流优先级。
下面结合图4A和4B介绍采用方法200的一种拥塞控制示例实施方式。
如图4A所示,在该示例实施方式中,通信设备110A通过网络设备130A、130E、130B向通信设备110B发送数据流11和数据流12,通信设备110C通过网络设备130D、130E、130C向通信设备110D发送数据流21。网络设备130E为拥塞控制点。
如图4B所示,该示例实施方式包括如下步骤。
步骤401:通信设备110A通过网络设备130E向通信设备110B发送数据流11和数据流12。
步骤402:通信设备110C通过网络设备130E向通信设备110D发送数据流21。
在该示例实施方式中,假定网络设备130E通过同一出端口的同一队列发送数据流11、12和21。
步骤403:网络设备130E执行方法200以确定数据流11的发送速率11、数据流12的发送速率12和数据流21的发送速率21。
确定的发送速率11、12和21通常是相同的速率。如,将根据公式1计算的发送速率作为发送速率11、12和21。
需要说明的是,步骤401和步骤402中发送数据流的动作均为持续性的动作,在执行步骤403时,数据流11、12和21均为活跃流。
步骤404:网络设备130E向通信设备110A发送发送速率11和发送速率12。
具体可以通过向通信设备110A发送的一个控速报文携带发送速率11和发送速率12,也可以通过向通信设备110A发送的不同控速报文分别携带发送速率11和发送速率12。
步骤405:网络设备130E向通信设备110C发送发送速率21。
步骤406:通信设备110A以发送速率11发送数据流11,并以发送速率12发送数据流12。
步骤407:通信设备110C以发送速率21发送数据流21。
需要说明的是,步骤404和步骤405没有特定的先后顺序。
下面结合图5A和5B介绍采用方法300的一种拥塞控制示例实施方式。
如图5A所示,在该示例实施方式中,通信设备110A通过网络设备130A、130E、130B向通信设备110B发送数据流11和数据流12,通信设备110C通过网络设备130D、130E、130B向通信设备110B发送数据流22。网络设备130B为拥塞控制点。
如图5B所示,该示例实施方式包括如下步骤。
步骤501:通信设备110A通过网络设备130B向通信设备110B发送数据流11和数据流12。
步骤502:通信设备110C通过网络设备130B向通信设备110B发送数据流22。
在该示例实施方式中,假定网络设备130B通过同一出端口的同一队列发送数据流11、12和22。
步骤503:网络设备130B执行方法300以确定通信设备110A发送的数据流(即数据流11和数据流12)的总发送速率1和通信设备110C发送的数据流(即数据流2)的总发送速率2。
确定的总发送速率1和总发送速率2通常是相同的速率。如,将根据公式1计算的总发送速率作为总发送速率1和总发送速率2。
需要说明的是,步骤501和步骤502中发送数据流的动作均为持续性的动作,在执行步骤503时,数据流11、12和22均为活跃流。
步骤504:网络设备130B向通信设备110A发送总发送速率1。
步骤505:网络设备130B向通信设备110C发送总发送速率2。
步骤506-507:通信设备110A根据总发送速率1确定数据流11的发送速率11和数据流12的发送速率12,并以发送速率11发送数据流11、以发送速率12发送数据流12。
步骤508-509:通信设备110C将总发送速率2确定为数据流22的发送速率22,并以发送速率22发送数据流22。
需要说明的是,步骤506-507和步骤508-509没有特定的先后顺序。
在实际的网络环境中,通常会在数据流路径上的最后一跳网络设备处发生拥塞(后续称为最后一跳拥塞)。该拥塞主要是由流量多打一导致,即,该网络设备需要将通过多个端口接收到数据流通过一个端口发送给与该网络设备直连的通信设备,从而导致拥塞。为了解决该问题,可以在与通信设备直接连接的网络设备(如网络设备130B)上基于以该网络设备为最后一跳网络设备的数据流进行拥塞控制。具体地,可以在该网络设备上实现方法300以解决最后一跳拥塞的问题。
在具体实现时,方法200和方法300可以配合使用。
如,在与通信设备直接连接的网络设备(如网络设备130B)上实现方法300,在与通信设备间接连接的网络设备(如网络设备130E)上实现方法200。
当方法200和方法300配合使用时,发送设备接收的速率可能是单个数据流的发送速率,也可能是至少一个数据流组成的目标数据流的总发送速率。因此,携带速率的控速报文还携带类型标识,该类型标识用于标识该控速报文携带的速率是单个数据流的发送速率,还是至少一个数据流组成的目标数据流的总发送速率。相应地,该发送设备根据接收的控速报文中的类型标识识别该控速报文中携带的速率的类型。如果该速率为单个数据流(即该第一数据流)的发送速率,则可以直接以该发送速率发送对应的数据流, 如果该速率为至少一个数据流组成的目标数据流的总发送速率,则根据该速率确定其中单个数据流的发送速率,并以确定的单个数据流的发送速率发送对应的数据流。
需要说明的是,不管是单独采用方法200或方法300,还是方法200和方法300配合使用,当一个发送设备发送的数据流的路径上存在多个拥塞控制点时,该发送设备可能会接收到多个控速报文,则可以将该数据流对应的多个发送速率中的最小发送速率确定为发送该数据流的发送速率。如,方法200和方法300配合使用时,可能同时接收到该目标数据流的总发送速率和该第一数据流的发送速率,则在根据该目标数据流的总发送速率确定该第一数据流的发送速率后,可以以确定的该第一数据流的发送速率和接收的该第一数据流的发送速率中的最小值发送该第一数据流。
根据本发明实施例1,本发明实施例2提出了一种实现拥塞控制的装置600,装置600用于执行本发明实施例1的方法200或300。如图6所示,装置600包括:获取单元610、确定单元620和通信单元630。
装置600用于实现方式200时,获取单元610用于执行方法200的步骤201,确定单元620用于执行方法200的步骤202。
具体地,获取单元610用于获取网络设备A的信息a,信息a包括网络设备A的出端口p的总带宽和出端口p的队列m对应的活跃流的数目。确定单元620用于根据信息a确定该活跃流中的至少一个活跃流(即第一数据流)的发送速率。
在一种实施方式中,装置600具体为网络设备A,该通信单元630用于向该发送设备发送该发送速率。
在另一种实施方式中,装置600具体为该第一数据流的发送设备。该通信单元630用于从网络设备A接收信息a,并将信息a发送给该获取单元610。通信单元630还用于以该发送速率发送该第一数据流。
在再一种实施方式中,装置600具体为该第一数据流的接收设备。该通信单元630用于从网络设备A接收信息a,并将信息a发送给该获取单元610,还用于将该第一数据流的发送速率发送给该第一数据流的发送设备。
装置600用于实现方式300时,获取单元610用于执行方法300的步骤301,确定单元620用于执行方法300的步骤302。
具体地,获取单元610用于获取网络设备B的信息b,信息b包括网络设备B的出端口q的总带宽和出端口q的队列n对应的活跃流的发送设备(后续称为目标发送设备)的数目。确定单元620用于根据信息b确定该目标发送设备中的至少一个发送设备(后续称为第一发送设备)发送目标数据流的总发送速率。
在一种实施方式中,装置600具体为网络设备B,该通信单元630用于向该发送设备发送该总发送速率。
在另一种实施方式中,装置600具体为该第一发送设备。该通信单元630用于从网络设备B接收信息b。该获取单元610具体用于获取该通信单元630接收的信息b。如果该目标数据流包括多个数据流,该确定单元620还用于根据该总发送速率确定所述目标数据流的每个数据流的发送速率。该通信单元630还用于,对于所述目标数据流的每个数据流,以对应的发送速率发送所述数据流。
在再一种实施方式中,装置600具体为该目标数据流的接收设备。该通信单元630 用于从网络设备B接收信息b,还用于将该目标数据流的发送速率发送给该目标数据流的发送设备。该获取单元610具体用于获取该通信单元630接收的信息b。
根据本发明实施例1,本发明实施例3提出了一种实现拥塞控制的装置700。如图7所示,装置700包括:获取单元710、确定单元720和通信单元730。
获取单元700用于获取目标数据流的总发送速率,该目标数据流可能包括一个数据流,也可能包括多个数据流。
当该目标数据流包括多个数据流时,确定单元720用于根据所述目标数据流的发送速率确定所述目标数据流的每个数据流的发送速率。相应地,通信单元730用于,对于所述目标数据流的每个数据流,根据对应的发送速率发送所述数据流,如,以对应的发送速率发送所述数据流。
当该目标数据流仅包括一个数据流(称为第一数据流)时,确定单元720用于将所述目标数据流的发送速率确定为该第一数据流的发送速率,通信单元730用于,根据所述目标数据流的发送速率发送所述第一数据流,如,以所述目标数据流的发送速率发送所述第一数据流。
该总发送速率具体可以是根据本发明实施例一的方法300确定的,即是根据在该目标数据流的路径上位于装置700和目标数据流的接收设备之间的网络设备B的信息b确定的,信息b包括网络设备B的出端口q的总带宽和出端口q的队列n对应的活跃流的发送设备(即目标发送设备)的数目。所述目标发送设备包括装置700,所述目标数据流即为来自装置700的与队列n对应的全部数据流。
如果采用本发明实施例一的实施方式X2,通信单元730还用于从网络设备B接收该总发送速率,相应地,获取单元700具体用于从该通信单元730接收该总发送速率。
如果采用实施方式Y2,通信单元730还用于从网络设备B接收信息b,相应地,获取单元700具体用于从该通信单元730接收信息b,并根据信息b确定该目标数据流的总发送速率。
如果采用本发明实施例一的实施方式Z2,通信单元730还用于从该目标网络设备的接收设备接收该总发送速率,相应地,获取单元700具体用于从该通信单元730接收该总发送速率。
在具体实现时,可以由该目标数据流的接收设备的上一跳通过方法300确定该总发送速率,另外,该目标数据流中的某个数据流(即第一数据流)的路径上的中间节点还可以通过方法200确定该第一数据流的发送速率,并采用实施方式Z1将该第一数据流的发送速率发送给装置700。
则该装置700接收的速率可能是单个数据流的发送速率,也可能是至少一个数据流组成的目标数据流的总发送速率。因此,携带速率的控速报文还携带类型标识,该类型标识用于标识该控速报文携带的速率是单个数据流的发送速率,还是至少一个数据流组成的目标数据流的总发送速率。相应地,确定单元720还用于根据接收的控速报文中的类型标识识别该控速报文中携带的速率的类型。当通信单元730同时接收到该目标数据流的总发送速率和该第一数据流的发送速率时,在根据该目标数据流的总发送速率确定该第一数据流的发送速率后,可以以确定的该第一数据流的发送速率和接收的该第一数据流的发送速率中的最小值发送该第一数据流。
根据本发明实施例1,本发明实施例4提出了一种实现拥塞控制的装置1000。装置1000具体可以是网络设备,如交换机、路由器,也可以是通信设备,如用户终端、服务器。如图8所示,装置1000包括处理器1010和通信接口1020,还可以包括存储器1030。其中,处理器1010、通信接口1020、存储器1030之间可以通过总线完成相互间的通信。
处理器1010,具体可以是中央处理器(central processing unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1030,具体可以是高速随机存取存储器(Random Access Memory,RAM)存储器,也可以是非易失性存储器(non-volatile memory)。
处理器1010用来执行本发明实施例1中的方法200或300中的操作,或者执行本发明实施例1中的第一数据流或目标数据流的发送设备执行的操作。具体可以是通过执行存储器1020中存放的计算机操作指令执行该操作。通信接口1020用于与其它设备通信。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (37)

  1. 一种实现拥塞控制的方法,其特征在于,所述方法包括:
    获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和所述第一出端口的第一队列对应的活跃流的数目;
    根据所述第一信息确定所述活跃流中的第一数据流的发送速率,所述发送速率与所述总带宽正相关、与所述活跃流的数目负相关,且所述发送速率用于所述第一数据流的发送设备发送所述第一数据流。
  2. 如权利要求1所述的方法,其特征在于,所述发送速率与所述活跃流的数目成反比。
  3. 如权利要求1或2所述的方法,其特征在于,所述第一信息还包括所述第一出端口的已占用带宽,所述发送速率与所述已占用带宽负相关。
  4. 如权利要求1-3任一所述的方法,其特征在于,所述第一信息还包括所述第一队列的队列深度,所述发送速率与所述队列深度负相关。
  5. 如权利要求1所述的方法,其特征在于,所述第一信息还包括所述第一出端口的已占用带宽和所述第一队列的队列深度,所述根据所述第一信息确定所述活跃流中的第一数据流的发送速率包括:
    根据如下公式确定所述发送速率:
    Figure PCTCN2020116549-appb-100001
    其中,rate为所述第一数据流的发送速率,C1为所述总带宽,Cout为所述已占用带宽,N为所述活跃流的数目,qLen为所述队列深度,T为预设时长,α和β均为大于0且小于1的常数。
  6. 如权利要求1-5任一所述的方法,其特征在于,所述方法由所述第一网络设备执行;
    所述方法还包括,向所述发送设备发送所述发送速率。
  7. 如权利要求6所述的方法,其特征在于,所述根据所述第一信息确定所述活跃流中的第一数据流的发送速率包括,在检测到触发条件时根据所述第一信息确定所述发送速率,所述触发条件包括如下条件中的至少一个:
    所述第一队列对应的活跃流的数目发生变化;
    所述第一队列的队列深度超过队列深度阈值或所述第一队列的使用率超过队列使用率阈值;
    所述第一端口的已占用带宽超过带宽阈值或所述第一端口的带宽占用率超过带宽占用率阈值。
  8. 如权利要求1-7任一所述的方法,其特征在于,所述方法由所述第一数据流的发送设备执行;
    所述方法还包括,从所述第一网络设备接收所述第一信息。
  9. 如权利要求1-7任一所述的方法,其特征在于,所述方法由所述第一数据流的 接收设备执行;
    所述方法还包括:
    从所述第一网络设备接收所述第一信息;
    向所述发送设备发送所述第一速率。
  10. 如权利要求1-9任一所述的方法,其特征在于,在传输所述第一数据流的路径上,所述第一网络设备为位于所述发送设备和所述第一数据流的接收设备的上一跳之间的网络设备。
  11. 一种实现拥塞控制的方法,其特征在于,所述方法包括:
    获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备;
    根据所述第一信息确定目标数据流的总发送速率,所述目标数据流为所述目标发送设备中的第一发送设备通过所述第一网络设备发送的与所述第一队列对应的全部数据流,所述总发送速率与所述总带宽正相关、与所述目标发送设备的数目负相关,且所述总发送速率用于所述第一发送设备发送所述目标数据流。
  12. 如权利要求11所述的方法,其特征在于,所述总发送速率与所述目标发送设备的数目成反比。
  13. 如权利要求11或12所述的方法,其特征在于,所述第一信息还包括所述第一出端口的已占用带宽,所述总发送速率与所述已占用带宽负相关。
  14. 如权利要求11-13任一所述的方法,其特征在于,所述第一信息还包括所述第一队列的队列深度,所述总发送速率与所述队列深度负相关。
  15. 如权利要求11所述的方法,其特征在于,所述第一信息还包括所述第一出端口的已占用带宽和所述第一队列的队列深度,所述根据所述第一信息确定目标数据流的总发送速率包括:
    根据如下公式确定所述总发送速率:
    Figure PCTCN2020116549-appb-100002
    其中,rate为所述总发送速率,C1为所述总带宽,Cout为所述已占用带宽,N为所述目标发送设备的数目,qLen为所述队列深度,T为预设时长,α和β均为大于0且小于1的常数。
  16. 如权利要求11-15任一所述的方法,其特征在于,所述方法由所述第一网络设备执行;
    所述方法还包括,向所述第一发送设备发送所述总发送速率。
  17. 如权利要求16所述的方法,其特征在于,所述根据所述第一信息确定目标数据流的总发送速率包括,在检测到触发条件时根据所述第一信息确定所述发送速率,所述触发条件包括如下条件中的至少一个:
    所述目标发送设备的数目发生变化;
    所述第一队列的队列深度超过队列深度阈值或所述第一队列的使用率超过队列使 用率阈值;
    所述第一端口的已占用带宽超过带宽阈值或所述第一端口的带宽占用率超过带宽占用率阈值。
  18. 如权利要求16或17所述的方法,其特征在于,所述向所述第一发送设备发送所述总发送速率包括:向所述第一发送设备发送控速报文,所述控速报文包括所述总发送速率;
    所述控速报文还包括所述目标数据流的接收设备的标识,所述接收设备的标识用于所述发送设备确定属于所述目标数据流的数据流。
  19. 如权利要求18所述的方法,其特征在于,所述控速报文还包括所述第一队列对应的数据流优先级,所述接收设备的标识和所述数据流优先级用于所述发送设备确定属于所述目标数据流的数据流。
  20. 如权利要求11-19任一所述的方法,其特征在于,在传输所述目标数据流的路径上,所述第一网络设备为所述接收设备的上一跳。
  21. 一种实现拥塞控制的方法,其特征在于,所述方法由第一发送设备执行,包括:
    获取第一速率,所述第一速率用于所述第一发送设备发送目标数据流,所述目标数据流包括至少一个数据流;
    根据所述第一速率确定所述目标数据流的每个数据流的发送速率。
  22. 如权利要求21所述的方法,其特征在于,所述获取第一速率包括,接收控速报文,所述控速报文包括所述第一速率;
    所述控速报文还包括所述目标数据流的接收设备的标识;
    所述根据所述第一速率确定所述目标数据流的每个数据流的发送速率之前还包括,根据所述目标数据流的接收设备的标识确定属于所述目标数据流的所述多个数据流。
  23. 如权利要求21所述的方法,其特征在于,所述获取第一速率包括:
    从所述目标数据流的传输路径上的网络设备接收第一信息,所述第一信息包括所述网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备,其中,所述目标发送设备包括所述第一发送设备;
    根据所述第一信息确定所述第一速率,所述第一速率与所述总带宽正相关、且与所述目标发送设备的数目成反比。
  24. 如权利要求21或22所述的方法,其特征在于,所述获取第一速率包括:从第一网络设备接收所述第一速率,在所述目标数据流的传输路径上,所述第一网络设备为所述目标数据流的接收设备的上一跳;
    所述方法还包括:
    从第二网络设备接收第二速率,所述第二速率用于所述第一发送设备发送所述目标数据流中的第一数据流,在所述第一数据流的传输路径上,所述第二网络设备为所述第一发送设备和所述第一网络设备之间的网络设备;
    以所述第二速率和根据所述第一速率确定的所述第一数据流的发送速率中的最小值发送所述第一数据流。
  25. 如权利要求24所述的方法,其特征在于,
    所述从第一网络设备接收所述第一速率包括,从所述第一网络设备接收第一控速报文,所述第一控速报文包括所述第一速率、所述第一数据流的标识和用于标识所述第一速率为单个数据流的速率的第一类型标识;
    所述从第二网络设备接收第二速率包括,从所述第二网络设备接收第二控速报文,所述第二控速报文包括所述第二速率和用于标识所述第二速率为至少一个数据流组成的所述目标发送数据流的总发送速率的第二类型标识;
    所述方法还包括:根据所述第一类型标识确定所述第一速率为所述第一视频流的发送速率,根据所述第二类型标识确定所述第二速率为所述目标数据流的总发送速率。
  26. 一种实现拥塞控制的装置,其特征在于,所述装置包括获取单元和确定单元;
    所述获取单元,用于获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和所述第一出端口的第一队列对应的活跃流的数目;
    所述确定单元,用于根据所述第一信息确定所述活跃流中的第一数据流的发送速率,所述发送速率与所述总带宽正相关、与所述活跃流的数目负相关,且所述发送速率用于所述第一数据流的发送设备发送所述第一数据流。
  27. 如权利要求26所述的装置,其特征在于,所述装置为所述第一网络设备;所述装置还包括通信单元,用于向所述发送设备发送所述发送速率。
  28. 如权利要求27所述的装置,其特征在于,所述确定单元,具体用于在检测到触发条件时根据所述第一信息确定所述发送速率,所述触发条件包括如下条件中的至少一个:
    所述第一队列对应的活跃流的数目发生变化;
    所述第一队列的队列深度超过队列深度阈值或所述第一队列的使用率超过队列使用率阈值;
    所述第一端口的已占用带宽超过带宽阈值或所述第一端口的带宽占用率超过带宽占用率阈值。
  29. 一种实现拥塞控制的装置,其特征在于,所述装置包括获取单元和确定单元;
    所述获取单元,用于获取第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备;
    所述确定单元,用于根据所述第一信息确定目标数据流的总发送速率,所述目标数据流为所述活跃流中来自所述目标发送设备中的第一发送设备的全部数据流,所述总发送速率与所述总带宽正相关、与所述目标发送设备的数目负相关,且所述总发送速率用于所述第一发送设备发送所述目标数据流。
  30. 如权利要求29所述的装置,其特征在于,所述装置为所述第一网络设备;所述装置还包括通信单元,用于向所述第一发送设备发送所述总发送速率。
  31. 如权利要求30所述的装置,其特征在于,所述确定单元,具体用于在检测到触发条件时根据所述第一信息确定所述发送速率,所述触发条件包括如下条件中的至少一个:
    所述目标发送设备的数目发生变化;
    所述第一队列的队列深度超过队列深度阈值或所述第一队列的使用率超过队列使 用率阈值;
    所述第一端口的已占用带宽超过带宽阈值或所述第一端口的带宽占用率超过带宽占用率阈值。
  32. 一种实现拥塞控制的装置,其特征在于,所述装置包括获取单元、确定单元和通信单元;
    所述获取单元用于获取第一速率,所述第一速率用于发送目标数据流,所述目标数据流包括至少一个数据流;
    所述确定单元用于,根据所述第一速率确定所述目标数据流的每个数据流的发送速率。
  33. 如权利要求32所述的装置,其特征在于,所述获取单元具体用于:
    从所述目标数据流的传输路径上的网络设备接收第一信息,所述第一信息包括所述网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备,其中,所述目标发送设备包括所述第一发送设备;
    根据所述第一信息确定所述第一速率,所述第一速率与所述总带宽正相关、且与所述目标发送设备的数目负相关。
  34. 如权利要求32所述的装置,其特征在于,所述装置还包括通信单元;
    所述通信单元用于从第一网络设备接收所述第一速率,其中,在所述目标数据流的传输路径上,所述第一网络设备为所述目标数据流的接收设备的上一跳;
    所述通信单元还用于;从第二网络设备接收第二速率,所述第二速率用于所述第一发送设备发送所述目标数据流中的第一数据流,在所述第一数据流的传输路径上,所述第二网络设备为所述第一发送设备和所述第一网络设备之间的网络设备;
    所述获取单元,用于获取所述通信单元接收的所述第一速率和所述第二速率;
    所述通信单元,还用于以所述第二速率和所述确定单元根据所述第一速率确定的所述第一数据流的发送速率中的最小值发送所述第一数据流。
  35. 如权利要求34所述的装置,其特征在于,
    所述通信单元具体用于从所述第一网络设备接收第一控速报文,所述第一控速报文包括所述第一速率、所述第一数据流的标识和用于标识所述第一速率为单个数据流的速率的第一类型标识,并用于从所述第二网络设备接收第二控速报文,所述第二控速报文包括所述第二速率和用于标识所述第二速率为至少一个数据流组成的所述目标发送数据流的总发送速率的第二类型标识;
    所述确定单元,还用于根据所述第一类型标识确定所述第一速率为所述第一视频流的发送速率,根据所述第二类型标识确定所述第二速率为所述目标数据流的总发送速率。
  36. 一种实现拥塞控制的系统,其特征在于,所述系统包括第一发送设备和第一网络设备;
    所述第一网络设备用于获取所述第一网络设备的第一信息,所述第一信息包括所述第一网络设备的第一出端口的总带宽和目标发送设备的数目,所述目标发送设备为所述第一出端口的第一队列对应的活跃流的发送设备,并用于根据所述第一信息确定目标数 据流的总发送速率,所述目标数据流为所述活跃流中来自所述目标发送设备中的第一发送设备的全部数据流,所述总发送速率与所述总带宽正相关、与所述目标发送设备的数目成反比,且所述总发送速率用于所述第一发送设备发送所述目标数据流,还用于向所述第一发送设备发送所述总发送速率;
    所述第一发送设备用于从所述第一网络设备接收所述总发送速率,根据所述总发送速率确定所述目标数据流的每个数据流的发送速率。
  37. 如权利要求36所述的系统,其特征在于,所述系统还包括第二网络设备,在所述目标数据流的传输路径上,所述第一网络设备为所述目标数据流的接收设备的上一跳,所述第二网络设备为所述第一发送设备和所述第一网络设备之间的网络设备;
    所述第二网络设备用于,获取第二网络设备的第二信息,所述第二信息包括所述第二网络设备的第二出端口的总带宽和所述第二出端口的第二队列对应的活跃流的数目,并用于根据所述第二信息确定所述活跃流中的第一数据流的发送速率,所述发送速率与所述总带宽正相关、与所述活跃流的数目负相关,且所述发送速率用于所述第一数据流的发送设备发送所述第一数据流,还用于向所述第一发送设备发送所述第一数据流的发送速率;
    所述第一发送设备还用于从第二网络设备接收所述第一数据流的发送速率,并用于以从所述第二网络设备接收的所述第二速率和根据所述总发送速率确定的所述第一数据流的发送速率中的最小值发送所述第一数据流。
PCT/CN2020/116549 2019-11-18 2020-09-21 一种实现拥塞控制的方法、装置和系统 WO2021098368A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20888801.6A EP4050855A4 (en) 2019-11-18 2020-09-21 CONGESTION CONTROL METHOD, APPARATUS AND SYSTEM
US17/747,281 US20220278936A1 (en) 2019-11-18 2022-05-18 Method, Apparatus, and System for Implementing Congestion Control

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911129885.4 2019-11-18
CN201911129885.4A CN112822120B (zh) 2019-11-18 2019-11-18 一种实现拥塞控制的方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/747,281 Continuation US20220278936A1 (en) 2019-11-18 2022-05-18 Method, Apparatus, and System for Implementing Congestion Control

Publications (1)

Publication Number Publication Date
WO2021098368A1 true WO2021098368A1 (zh) 2021-05-27

Family

ID=75852656

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/116549 WO2021098368A1 (zh) 2019-11-18 2020-09-21 一种实现拥塞控制的方法、装置和系统

Country Status (4)

Country Link
US (1) US20220278936A1 (zh)
EP (1) EP4050855A4 (zh)
CN (1) CN112822120B (zh)
WO (1) WO2021098368A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550263A (zh) * 2021-06-28 2022-12-30 华为技术有限公司 一种网络设备的主动队列管理方法及网络设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014264B1 (en) * 2011-11-10 2015-04-21 Google Inc. Dynamic media transmission rate control using congestion window size
US20180026898A1 (en) * 2015-01-28 2018-01-25 Samsung Electronics Co., Ltd. Method and apparatus for controlling congestion in communication system
CN109067665A (zh) * 2018-09-25 2018-12-21 华为技术有限公司 拥塞控制方法和网络设备
CN109995608A (zh) * 2018-01-03 2019-07-09 华为技术有限公司 网络速率计算方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978357A (en) * 1997-03-27 1999-11-02 Cabletron Systems, Inc. Phantom flow control method and apparatus with improved stability
CN101945039B (zh) * 2010-08-27 2012-10-17 华为技术有限公司 数据流的传输方法和装置
US9596182B2 (en) * 2013-02-12 2017-03-14 Adara Networks, Inc. Controlling non-congestion controlled flows
US10715442B2 (en) * 2016-08-23 2020-07-14 Netduma Software, LTD. Congestion control
CN107454015B (zh) * 2017-08-03 2021-03-30 山东省计算中心(国家超级计算济南中心) 一种基于OF-DiffServ模型的QoS控制方法及系统
CN110166366B (zh) * 2018-02-14 2023-02-28 华为技术有限公司 网络拥塞控制方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014264B1 (en) * 2011-11-10 2015-04-21 Google Inc. Dynamic media transmission rate control using congestion window size
US20180026898A1 (en) * 2015-01-28 2018-01-25 Samsung Electronics Co., Ltd. Method and apparatus for controlling congestion in communication system
CN109995608A (zh) * 2018-01-03 2019-07-09 华为技术有限公司 网络速率计算方法和装置
CN109067665A (zh) * 2018-09-25 2018-12-21 华为技术有限公司 拥塞控制方法和网络设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4050855A4

Also Published As

Publication number Publication date
CN112822120A (zh) 2021-05-18
EP4050855A1 (en) 2022-08-31
US20220278936A1 (en) 2022-09-01
CN112822120B (zh) 2023-04-28
EP4050855A4 (en) 2022-12-07

Similar Documents

Publication Publication Date Title
JP7173587B2 (ja) パケット伝送システムおよび方法
CN111316605B (zh) 第3层公平速率拥塞控制通知
US8665892B2 (en) Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
US8509074B1 (en) System, method, and computer program product for controlling the rate of a network flow and groups of network flows
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
JP4128198B2 (ja) 帯域制御装置
EP3742688A1 (en) Flow control method and apparatus
US20180131613A1 (en) Congestion control
WO2020090474A1 (ja) パケット転送装置、方法、及びプログラム
US11570117B2 (en) Congestion control
US11477121B2 (en) Packet transfer apparatus, method, and program
WO2021098368A1 (zh) 一种实现拥塞控制的方法、装置和系统
JP2007013449A (ja) シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置
US10187317B1 (en) Methods for traffic rate control and devices thereof
CN108322402B (zh) 报文处理方法、设备及系统
KR102128015B1 (ko) 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법
JP2008236709A (ja) 通信品質制御方法と通信品質制御装置および通信システムとプログラム
Mohan et al. Proportional bandwidth sharing using Bayesian inference in SDN-based data centers
CN113950099B (zh) 一种网络拥塞控制方法及设备
US20240205155A1 (en) Protocol agnostic cognitive congestion control
CN114884884A (zh) 一种拥塞控制方法及装置
JP4977677B2 (ja) エッジノードおよび帯域制御方法
CN113630337A (zh) 数据流接纳方法、装置及系统、计算机可读存储介质
Prema et al. Enhanced ICTCP to Avoid Congestion Control in Wireless Sensor Networks

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020888801

Country of ref document: EP

Effective date: 20220525

NENP Non-entry into the national phase

Ref country code: DE