WO2023226532A1 - 拥塞控制方法、节点及系统 - Google Patents

拥塞控制方法、节点及系统 Download PDF

Info

Publication number
WO2023226532A1
WO2023226532A1 PCT/CN2023/081123 CN2023081123W WO2023226532A1 WO 2023226532 A1 WO2023226532 A1 WO 2023226532A1 CN 2023081123 W CN2023081123 W CN 2023081123W WO 2023226532 A1 WO2023226532 A1 WO 2023226532A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
link
rate
load
information
Prior art date
Application number
PCT/CN2023/081123
Other languages
English (en)
French (fr)
Other versions
WO2023226532A9 (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 WO2023226532A1 publication Critical patent/WO2023226532A1/zh
Publication of WO2023226532A9 publication Critical patent/WO2023226532A9/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Definitions

  • the present application relates to the field of communication technology, and in particular, to a congestion control method, node and system.
  • Ethernet may experience network packet loss when the network is congested.
  • congestion control protocols In order to avoid possible packet loss when network congestion occurs, a number of network protocols have been developed to ensure lossless Ethernet, such as congestion control protocols.
  • the sender relies on the congestion feedback signal sent by the receiver to adjust the sending rate. Therefore, it is at least one round-trip delay (Round-Trip Time, RTT) from the sender sending the data causing congestion to receiving the congestion feedback signal.
  • RTT Round-Trip Time
  • the sender receives the congestion feedback signal and adjusts the sending rate based on the congestion feedback signal, the adjusted sending rate may no longer be suitable for the latest network status.
  • the ideal solution for congestion control is to avoid the occurrence of congestion. But the sender does not know what sending rate to use to avoid congestion and insufficient network utilization. If the initial rate at which the sender sends the data stream is large (such as the theoretical rate of the link), congestion may occur. If the sender sends data flows at a low initial rate and then gradually increases the sending rate, it may lead to insufficient network utilization, especially in traffic patterns with a high proportion of small flows, resulting in a waste of network resources.
  • the congestion feedback signal is generated at a fixed frequency.
  • network link speeds are getting faster and faster. More data packets can be sent within one RTT, which widens the gap between the upper limit and the lower limit of the number of data packets sent within one RTT. In other words, within one RTT, the number of data packets sent changes to a greater extent. Therefore, the number of data packets corresponding to the congestion feedback signal may change significantly, making it difficult for the congestion feedback signal to effectively reflect the congestion situation.
  • the embodiments of this application provide a congestion control method that can prevent the occurrence of congestion while avoiding waste of network performance.
  • a congestion control method applied to a network system, the network system includes a first source node, an intermediate node, and a target node, and there is a first link between the intermediate node and the target node;
  • the method includes: when the intermediate node receives the first information sent by the first source node, the intermediate node sends the load information of the first link to the first source node; the third A source node obtains a first rate for sending a data stream based on the load information; the first source node sends a data packet destined to the target node to the intermediate node based on the first rate.
  • a first data stream; the intermediate node sends the first data stream to the target node through the first link.
  • the intermediate node can send the load information of the link between the intermediate node and the target node to the source node, so that the source node can determine or adjust the rate of sending the data flow based on the load information, thereby avoiding waste of network performance. At the same time, it reduces the probability of congestion and prevents or prevents the occurrence of congestion.
  • the network system also includes other source nodes, and the load information includes information on the number of data flows on the first link, where the data flows on the first link From the intermediate node to the target node, different data streams come from different source nodes; based on the load information, the first source node obtains the first rate for sending the data stream including: the first source The node obtains a first rate for sending the data stream based on the quantity information and the bandwidth of the first link.
  • the sending rate of the data flow can be determined or adjusted based on the number of data flows on the data flow transmission link, that is, the number of concurrency of data flows. This can avoid congestion caused by the number of concurrency of data flows with a high probability and reduce the risk of congestion. the probability of congestion.
  • the quantity information indicates that the number of data flows on the first link is N, and N is an integer greater than or equal to 1;
  • the first source node is based on the quantity information and
  • the bandwidth of the first link is used to obtain the first rate for sending the data stream, including: using one N/N of the bandwidth of the first link as the first rate;
  • the intermediate node includes: A source-side access node, a core node and a target-side access node, and the first link is a link between the target-side access node and the target node.
  • the link between the target-side access node and the target node is the transmission bottleneck of the data flow destined for the target node. Based on the Information on the quantity of data flows and adjusting the sending rate of data flows can more effectively reduce the probability of congestion.
  • the method further includes: if the data flow on the first link does not include the first data flow when the intermediate node receives the first information; The intermediate node adds 1 to the number of data streams on the first link to obtain the quantity information; or, if the intermediate node receives the first information, the number of data streams on the first link is The data flow includes the first data flow; the intermediate node uses the number of data flows on the first link as the quantity information.
  • the load information includes a first load rate of the first link; the first source node obtains the information based on the quantity information and the bandwidth of the first link.
  • Sending the first rate of the data stream includes: the first source node obtaining the first rate based on the quantity information, the bandwidth of the first link, and the first load rate.
  • the speed at which the first source node sends data streams can be adaptively adjusted based on the number of data streams on the first link and the load rate of the first link, thereby solving the problem of using the number of data streams based on the number of data streams.
  • the problem of under-throughput caused by sending the data stream at the obtained sending rate can solve the problem of under-throughput caused by large changes in the outgoing port cache of intermediate nodes when small flows exit the network quickly or the number of data flows on link A is not collected in time due to long RTT.
  • the intermediate node includes a first node and a second node
  • the first link includes a second link between the first node and the second node
  • the first source node obtains the first rate based on the quantity information, the bandwidth of the first link and the first load rate, including: the first The source node obtains a second rate based on the first number and the bandwidth of the first link; obtains the first rate based on the second rate and the first load rate; wherein, when the When a load rate is light load, the first rate is greater than the second rate; when the first load rate is full load, the first rate is equal to the second rate; when the first load rate For overload, the first rate is less than the The second rate.
  • the load information includes a first load rate of the first link; and the first source node obtaining the first rate for sending the data stream based on the load information includes: The first source node obtains a first rate for sending the data stream based on the first load rate.
  • the first information is carried in the first data stream, or the first information is the first data stream.
  • the first source node can use the first data stream to subscribe to the load information without special subscription information, thus saving network resources.
  • the intermediate node sending the load information of the data flow on the first link to the first source node includes: when the intermediate node receives the first information, the The intermediate node detects the current load of the first link to obtain the load information; the intermediate node sends the load information to the first source node.
  • the network system further includes a second source node
  • the method further includes: the intermediate node stores the load information; when the intermediate node receives the destination sent by the second source node, When the ground is the second data stream of the target node, the intermediate node sends the load information stored by the intermediate node to the second source node; the intermediate node sends the load information stored by the intermediate node to the second source node through the first link.
  • the target node sends the second data stream.
  • the intermediate node can store load information, and when other source nodes send data streams, the load information can be fed back to other nodes in time, so that other source nodes can adjust the sending rate of the data streams in a timely manner, further reducing the occurrence of congestion. risks of.
  • the intermediate node includes a first node and a second node, and on the first link, the second data flow first passes through the first node and then through the the second node;
  • the intermediate node storing the load information includes: the first node storing the load information; when the first node receives the second data stream, the first node sends the load information to the first node.
  • the second source node sends the load information stored by the intermediate node.
  • the intermediate node consists of multiple nodes, where nodes closer to the source node store and send load information to the source node, so that the source node can adjust the sending rate of the data flow in a more timely manner, further reducing the risk of congestion.
  • the method further includes: the intermediate node detects the current third source node again.
  • the load of a link is used to update the load information; the intermediate node sends the updated load information to the second source node.
  • the intermediate node can also send the latest load information to the source node, so that the source node can implement more accurate rate adjustment based on the latest load information.
  • a congestion control method is provided, which is applied to the first source node in a network system.
  • the network system also includes an intermediate node and a target node. There is a first link between the intermediate node and the target node. path; the method includes: the first source node receiving the load information of the first link sent by the intermediate node, wherein the load information is the intermediate node receiving the load information of the first link from the first source node.
  • the first information sent is sent; the first source node obtains the first rate for sending the data stream based on the load information; the first source node sends data to the intermediate node according to the first rate.
  • the first data stream whose destination is the target node is sent, so that the intermediate node sends the first data stream to the target node through the first link.
  • the network system also includes other source nodes, and the load information includes information on the number of data flows on the first link, where the data flows on the first link From the intermediate node to the target node, different data streams come from different source nodes; based on the load information, the first source node obtains the first rate for sending the data stream including: the first source Based on the quantity information and the bandwidth of the first link, the node obtains The first rate used to send the data stream.
  • the load information includes a first load rate of the first link; the first source node obtains the information based on the quantity information and the bandwidth of the first link.
  • Sending the first rate of the data stream includes: the first source node obtaining the first rate based on the quantity information, the bandwidth of the first link, and the first load rate.
  • the first source node obtains the first rate based on the quantity information, the bandwidth of the first link and the first load rate, including: the first The source node obtains a second rate based on the first number and the bandwidth of the first link; obtains the first rate based on the second rate and the first load rate; wherein, when the When a load rate is light load, the first rate is greater than the second rate; when the first load rate is full load, the first rate is equal to the second rate; when the first load rate When it is overloaded, the first speed is smaller than the second speed.
  • a congestion control method is provided, applied to an intermediate node in a network system.
  • the network system includes a first source node and a target node, and there is a first link between the intermediate node and the target node.
  • the method includes: when the intermediate node receives the first information sent by the first source node, the intermediate node sends the load information of the first link to the first source node; the The load information is used by the first source node to obtain the first rate at which the data stream is sent, and to send the first data stream destined for the target node to the intermediate node according to the first rate; the intermediate node passes The first link sends the first data stream to the target node.
  • the first information is carried in the first data stream, or the first information is the first data stream.
  • the intermediate node sending the load information of the data flow on the first link to the first source node includes: when the intermediate node receives the first information, the The intermediate node detects the current load of the first link to obtain the load information; the intermediate node sends the load information to the first source node.
  • the network system further includes a second source node
  • the method further includes: the intermediate node stores the load information; when the intermediate node receives the load information sent by the second source node When the destination is the second data flow of the target node, the intermediate node sends the load information stored by the intermediate node to the second source node; the intermediate node passes the first link, Send the second data stream to the target node.
  • the intermediate node includes a first node and a second node, and on the first link, the second data flow first passes through the first node and then through the the second node;
  • the intermediate node storing the load information includes: the first node storing the load information; when the first node receives the second data stream, the first node sends the load information to the first node.
  • the second source node sends the load information stored by the intermediate node.
  • the method further includes: the intermediate node detects the current third source node again.
  • the load of a link is used to update the load information; the intermediate node sends the updated load information to the second source node.
  • a network system including a first source node, an intermediate node, and a target node, and there is a first link between the intermediate node and the target node; wherein, when the intermediate node receives the When the first information is sent by the first source node, the intermediate node is used to send the load information of the first link to the first source node; the first source node is used based on the load information, Obtain a first rate for sending a data stream; the first source node is configured to send a first data stream destined for the target node to the intermediate node according to the first rate; the intermediate node uses and sending the first data stream to the target node through the first link.
  • a network node is provided.
  • the network node is used as a first source node in a network system.
  • the network system further includes an intermediate node and a target node. There is a link between the intermediate node and the target node.
  • the first link; the network node includes: a communication unit configured to receive the load information of the first link sent by the intermediate node, wherein, The load information is sent by the intermediate node when receiving the first information sent by the network node; the obtaining unit is used to obtain the first rate for sending the data stream based on the load information; the communication The unit is further configured to send a first data flow destined for the target node to the intermediate node according to the first rate, so that the intermediate node sends the data flow to the target node through the first link. Describe the first data stream.
  • a network node is provided.
  • the network node is used as an intermediate node in a network system.
  • the network system includes a first source node and a target node. There is a third link between the network node and the target node.
  • a link; the network node includes: a communication unit configured to send the first link of the first link to the first source node when the network node receives the first information sent by the first source node.
  • the load information is used by the first source node to obtain the first rate at which the data stream is sent, and to send the first data stream destined for the target node to the network node according to the first rate;
  • the communication unit is also configured for the network node to send the first data stream to the target node through the first link.
  • a network node including: a memory and a processor; the memory is used to store computer instructions; the processor is used to run the computer instructions stored in the memory to implement the method described in the second aspect Or the method described in the third aspect.
  • a chip is provided, which is used to perform the method described in the second aspect or the method described in the third aspect.
  • a computer storage medium includes computer instructions.
  • the network node causes the network node to execute the method described in the second aspect or the third aspect. the method described.
  • a computer program product is provided.
  • the program code contained in the computer program product is executed by a processor in a network node, the method described in the second aspect or the method described in the third aspect is implemented.
  • the rate at which the source node sends the data flow can be adjusted based on the load information of the data flow transmission link. While fully utilizing the network performance, the probability of congestion can be reduced and prevention or prevention can be achieved. Congestion occurs.
  • Figure 1 is a network system provided by an embodiment of the present application.
  • Figure 2 is a flow chart of a congestion control solution provided by an embodiment of the present application.
  • Figure 3 is a schematic diagram of time slice allocation for sending data streams provided by an embodiment of the present application.
  • Figure 4 is a schematic diagram of the cache occupancy rate of the intermediate node egress port provided by the embodiment of the present application.
  • Figure 5 is a flow chart of a congestion control solution provided by an embodiment of the present application.
  • Figure 6 is a flow chart of a congestion control method provided by an embodiment of the present application.
  • Figure 7 is a schematic structural diagram of a network node provided by an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of a network node provided by an embodiment of the present application.
  • Figure 9 is a schematic structural diagram of a network node provided by an embodiment of the present application.
  • first and second are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Therefore, features defined as “first” and “second” may explicitly or implicitly include one or more of these features.
  • the terms “including,” “includes,” “having,” and variations thereof all mean “including but not limited to,” unless otherwise specifically emphasized.
  • the PFC mechanism is a hop-by-hop flow control mechanism. Specifically, if data packets input through a certain input port begin to accumulate in the receive buffer queue of a network device (such as a switch) to a certain extent, the network device will send a pause frame (XOFF frame) to the upstream device to prevent the upstream device from receiving the data packets. The device sends more data packets to the network device. When the number of data packets in the receiving buffer queue decreases to a certain level, it can send a recovery frame (XON frame) to the upstream device to notify the upstream device to continue sending data packets. This prevents the switch's receive buffer queue from overflowing and causing packet loss.
  • a network device such as a switch
  • the PFC mechanism may cause head-of-line blocking (HOL) and deadlock.
  • HOL head-of-line blocking
  • the data flow sent by the network device to a certain receiver causes congestion on the network device, which in turn causes the network device to suspend the data flow sent to the network device through the PFC mechanism, causing the data flow sent by the network device to other receivers to be blocked. is blocked.
  • DCQCN data center quantized congestion notification
  • network equipment can detect whether there is congestion in the port queue. When congestion occurs, the corresponding packets can be marked. When the receiver receives a marked packet, it can send a Congestion Notification Packet (CNP) to the sender of the packet to notify the sender.
  • CNP Congestion Notification Packet
  • the sender starts to reduce the traffic only after the data packets accumulate in the send buffer queue of the network device to a certain extent.
  • the accumulation of packets in the send buffer queue can significantly increase network latency.
  • the DCQCN mechanism involves a complex parameter adjustment process, and there are many parameters (such as 15 parameters) that need to be adjusted for a specific network environment. Therefore, network maintenance operations often require complex and time-consuming parameter adjustment phases, which greatly increases the risk of incorrect settings leading to instability or poor performance.
  • the embodiment of the present application provides a congestion control scheme.
  • the source node can obtain the number of data flows on the link between the intermediate node and the target node, and based on the number of data flows, determine to send the data flow to the target node through the intermediate node.
  • the sending rate can effectively utilize the network bandwidth (BW) while reducing the risk of congestion, and avoid under-utilization of communication resources.
  • BW network bandwidth
  • the source node refers to the source of the data flow, which is used to generate and send the data flow.
  • the destination node refers to the final destination of the data flow.
  • the intermediate node can also be called a relay node, which refers to the node that the data stream passes through during transmission from the source node to the target node. The intermediate node receives the data stream from the previous node and forwards the received data stream to the next node. .
  • Figure 1 illustrates a network system that can be used to implement a congestion control scheme.
  • the network system may include multiple source nodes, intermediate nodes 200 and at least one target node.
  • multiple source nodes may include source node 110, source node 110 At point 120, at least one target node may include target node 310 and target node 320.
  • the intermediate node 200 is composed of multiple nodes.
  • the intermediate node 200 may include a source-side access node 211, a source-side access node 212, a core node 220, and a target-side access node 230.
  • the intermediate node may be a node.
  • the source node 110 may generate a data flow destined for the target node 310.
  • the source node 110 can send the data stream to the target node 310 through the intermediate node 200. That is, the source node 110 can send the data stream to the intermediate node 200, and then the intermediate node 200 forwards the received data stream to the target node 310. More specifically, the source node 110 can send the data flow to the source side access node 211, the source side access node 211 forwards the data flow to the core node 220, and the core node 220 forwards the data flow to the target side access node. The ingress node 230 and the target side access node 230 then forward the data flow to the target node 310.
  • Source node 120 may also generate a data flow destined for target node 310.
  • the source node 120 can send the data stream to the target node 310 through the intermediate node 200. That is, the source node 120 can send the data stream to the intermediate node 200, and then the intermediate node 200 forwards the received data stream to the target node 310. More specifically, the source node 120 can send the data flow to the source side access node 211, the source side access node 211 forwards the data flow to the core node 220, and the core node 220 forwards the data flow to the target side access node. The ingress node 230 and the target side access node 230 then forward the data flow to the target node 310.
  • Source node 130 may generate a data flow destined for target node 310.
  • the source node 130 may send the data stream to the target node 310 through the intermediate node 200. That is, the source node 130 can send the data stream to the intermediate node 200, and then the intermediate node 200 forwards the received data stream to the target node 310. More specifically, the source node 130 may send the data flow to the source side access node 212, the source side access node 212 forwards the data flow to the core node 220, and the core node 220 forwards the data flow to the target side access node. The ingress node 230 and the target side access node 230 then forward the data flow to the target node 310.
  • source node when the source node, intermediate node, target node, source-side access node, core node, and target-side access node are not distinguished, they may be referred to as nodes for short.
  • a node may also be called a network device, which refers to a physical device or virtual device with data processing and data sending and receiving functions.
  • a node may be a server, a server cluster composed of multiple servers, or one or more chip circuits.
  • the node may be a virtual machine (VM).
  • VM virtual machine
  • the node may support a network interface controller (NIC) and send and/or receive information or data streams through the NIC.
  • NIC network interface controller
  • the forwarding node may be a physical switch or a virtual switch.
  • the access node (source side access node and/or target side access node) may be a leaf node.
  • the leaf node may be a top of rack (ToR) switch.
  • the core node can be a spine node.
  • the network system shown in Figure 1 may adopt a layer 2 (L2) Clos networking architecture. In some embodiments, the network system shown in Figure 1 may adopt a three-layer (layer 3, L3) Clos networking architecture. In some embodiments, the network system shown in Figure 1 may adopt a Fat-Tree networking architecture. In other embodiments, the network system shown in Figure 1 can also adopt other network architectures, which will not be described again one by one.
  • L2 layer 2
  • L3 three-layer
  • the network system shown in Figure 1 may adopt a Fat-Tree networking architecture. In other embodiments, the network system shown in Figure 1 can also adopt other network architectures, which will not be described again one by one.
  • the source node 110 can perform step 201 to send information B1 to the intermediate node 200.
  • the information B1 can be understood as subscription information, used to subscribe the source node 110 to the intermediate node 200 for the load information of the link A.
  • chain Road A refers to the data link between the intermediate node 200 and the target node 310.
  • link A is used to transport data flow from intermediate node 200 to target node 310.
  • information B1 may be data stream C1.
  • the data flow C1 is a data flow generated by the source node 110 and destined to the target node 310.
  • Source node 110 may send data flow C1 to intermediate node 200 to forward data flow C1 through intermediate node 200 to target node 310.
  • information B1 may be carried in data stream C1.
  • the information B1 can be set in a reserved field in the packet header of the packet in the data flow C1.
  • the reserved field can be detected, thereby identifying the information B1.
  • the information B1 may be a preset subscription information, which may be independent of the data stream C1.
  • the source node 110 may send information B1 to the intermediate node 200 in order to subscribe to the load information of link A in advance.
  • the intermediate node 200 can perform step 202 to detect the load of link A and obtain the load information B2 of link A.
  • step 202 may be performed before step 201, or step 202 and step 201 may be performed simultaneously.
  • step 202 may be performed after step 201.
  • the intermediate node 200 may start executing step 202 when receiving the information B1.
  • the load of link A may be or include the number of data flows on link A.
  • the data flow on link A refers to the data flow transmitted on link A.
  • the data flow flows from the intermediate node 200 to the target node 310 on link A.
  • the load information B2 may be or include quantity information B21 of the data flow on the link A.
  • the quantity information B21 is used to represent the number of data flows on the link A. Among them, the data flow from the same source node is counted as one data flow, that is, when the number of data flows on link A is multiple, different data flows in the multiple data flows come from different source nodes.
  • the intermediate node 200 can detect the number of data flows on the current link A and obtain the quantity information B21.
  • the intermediate node 200 when the intermediate node 200 performs step 202, if the data flow on link A does not include the data flow from the source node 110 (ie, data flow C1), the intermediate node 200 may detect the link Add 1 to the number of data flows on link A to obtain the number information B21 of data flows on link A.
  • the intermediate node 200 first receives the data flow C1 and then sends the data flow C1 to the link A. Therefore, the intermediate node 200 receives the information B1 first, and the data flow C1 enters the link A later. In this case, the intermediate node 200 may add 1 to the detected number of data flows on link A to obtain quantity information B21 of data flows on link A.
  • the intermediate node 200 when the intermediate node 200 performs step 202, if the data flow on link A already includes the data flow from the source node 110 (ie, data flow C1), the intermediate node 200 may detect the link The number of data flows on link A is used as the number of data flows on link A information B21.
  • the information B1 may be a preset subscription information, which may be independent of the data stream C1.
  • the source node 110 can perform step 210 at any time to send information B1 to the intermediate node 200 to subscribe to the load information so that the load information B2 can be obtained at any time.
  • the intermediate node 200 may include a source-side access node 211, a core node 220, and a target-side access node 230.
  • link A also consists of link A1, link A2, and link A3.
  • link A1 is located between the source-side access node 211 and the core node 220
  • link A2 is located between the core node 220 and the target-side access node 230
  • link A3 is located between the target-side access node 230 and the target node 310.
  • the load of link A may refer to the load on link A1, link A2, or link A3.
  • the load of link A detected in step 202 may specifically be the load on link A3.
  • link A3 that is, the data link between the target side access node 230 and the target node 310, has the destination The bottleneck path in the transmission path of the data flow of the target node 310. Detecting the load on the bottleneck path for subsequent congestion control can achieve congestion control more effectively.
  • the number of data flows on link A3 can be detected, and quantity information B21 is obtained. That is, quantity information B21 is used to represent the number of data flows on link A3.
  • the data flow on link A3 is the data flow flowing from the target side access node 230 to the target node 310, and different data flows come from different source nodes.
  • step 202 may be specifically performed by the target-side access node 230.
  • quantity information B21 is used to represent the quantity of data flows on link A3. It is easy to understand that compared to link A1 and link A2, the number of data flows destined for the target node 310 on link A3 is the largest. In the entire link A, link A3 is the bottleneck. Using the number of data flows on link A3 as data information B21 is used for subsequent congestion control, which can achieve congestion control more effectively.
  • the load of link A may be or include the amount of data that needs to be transmitted through link A per unit time.
  • the load information B2 may be or include the load rate on link A.
  • the load rate of the network link can also be called the utilization rate of the network link, which refers to the ratio of the amount of data that needs to be transmitted through link A per unit time to the maximum amount of data that can be transmitted by the network link per unit time. Among them, when the load ratio of the network link is less than 1, the network link is lightly loaded. When the load ratio of the network link is equal to 1, the network link is fully loaded. When the load ratio of the network link is greater than 1, the network link is overloaded.
  • the intermediate node 200 may include a source-side access node 211, a core node 220, and a target-side access node 230.
  • link A also consists of link A1, link A2, and link A3.
  • link A1 is located between the source-side access node 211 and the core node 220
  • link A2 is located between the core node 220 and the target-side access node 230
  • link A3 is located between the target-side access node 230 and the target node 310.
  • the load information B2 may be or include any one or a combination of the load rate of link A1, the load rate of link A2, and the load rate of link A3.
  • the load information B2 may be or include the maximum value among the load rate of link A1, the load rate of link A2, and the load rate of link A3.
  • the intermediate node 200 may perform step 203 to send the load information B2 to the source node 110 .
  • the intermediate node 200 receives the information B1
  • the intermediate node 200 sends the load information B2 to the source node 110.
  • the load information B2 may be or include quantity information B21 used to represent the number of data flows on the link A3, then step 203 may be performed by the target side access node 230.
  • the source node 110 may directly send information B1 to the target access node 230.
  • the target side access node 230 may use the quantity information B21 as or include it in the load information B2, and send the load information B2 to the source node 110.
  • the load information B2 may be or include any one or a combination of the load rate of link A1, the load rate of link A2, and the load rate of link A3.
  • the source node 110 sends the information B1 to the source-side access node 211.
  • the source-side access node 211 receives the information B1, it can send the load rate of the link A1 to the source node 110.
  • the source-side access node 211 forwards the received information B1 to the core node 220.
  • the core node 220 receives the information B1, it can send the load rate of the link A2 to the source node 110.
  • the core node 220 may forward the received information B1 to the target-side access node 230.
  • the target-side access node 230 receives the information B1, it may send the load rate of the link A3 to the source node 110.
  • the source node 110 sends the information B1 to the core node 220, and when the core node 220 receives the information B1 , the load rate of link A2 can be sent to the source node 110.
  • the core node 220 may forward the received information B1 to the target-side access node 230.
  • the target-side access node 230 receives the information B1, it may send the load rate of the link A3 to the source node 110.
  • the load information B2 may be or include the maximum value among the load rate of link A1, the load rate of link A2, and the load rate of link A3.
  • the source-side access node 211 can obtain the load rate of link A1, the load rate of link A2, and The load rate of link A3, and compare the load rate of link A1, the load rate of link A2 and the load rate of link A3, and obtain the load rate of link A1, the load rate of link A2 and the load of link A3.
  • the maximum value in the rate. This maximum value can then be sent to the source node 110 upon receipt of information B1.
  • the core node 220 can share the load rate of link A2 with the source-side access node 211.
  • the target-side access node 230 may share the load rate of link A3 with the source-side access node 211. Therefore, the source access node 211 can obtain the load rate of link A2 and the load rate of link A3.
  • the source node 110 can obtain the load information B2, and then perform step 204 to obtain the sending rate D1 of the data stream C1 based on the load information B2.
  • step 204 the implementation process of step 204 is introduced.
  • the load information B2 may be or include the quantity information B21, then in step 204, the source node 110 may obtain the sending rate D1 based on the quantity information B21 and the bandwidth of the link A.
  • the bandwidth of link A refers to the theoretical bandwidth of link A, and refers to the theoretical transmission rate or maximum transmission rate of link A. It is not difficult to understand that the bandwidth of network link A is set. Therefore, the bandwidth of link A can be configured in the source node 110 through pre-configuration; or the intermediate node 200 can send bandwidth information to the source node 110, and the bandwidth information is used to represent the bandwidth of link A; and so on.
  • quantity information B21 is specifically used to represent the number of data flows on link A3. Then in step 204, the source node 110 can obtain the sending rate D1 based on the quantity information B21 and the bandwidth of link A3.
  • the quantity information B21 may be set to indicate that the number of data flows on link A is N, where N is an integer greater than or equal to 1.
  • the source node 110 may use one-Nth of the bandwidth (BW) of link A as the sending rate D1.
  • the sending rate of the data flow is determined.
  • congestion caused by too many data flows on link A can be greatly avoided. Reduce the probability of congestion.
  • load information B2 may include quantity information B21 and the load rate of link A at the same time.
  • the source node 110 may obtain the sending rate D1 based on the quantity information B21, the bandwidth of link A, and the load rate of link A. For example, when the source node 110 receives two or three items of the load rate of link A1, the load rate of link A2, and the load rate of link A3, the source node 110 may compare the two or three items. , and get the maximum value, and then use the maximum value as the load rate of link A.
  • the source node 110 may first obtain the sending rate D1' based on the quantity information B21 and the bandwidth of the link A. For example, the source node 110 may use one-Nth of the bandwidth of link A as the sending rate D1'. N is the number of data flows on link A. Then, based on the transmission rate D1' and the load rate of link A, the transmission rate D1 is obtained. Specifically, when the load rate of link A is light load, the sending rate D1' is increased to obtain the sending rate D1. When the load rate of link A is full, the sending rate D1’ is used as the sending rate D1. When the load rate of link A is overloaded, reduce the sending rate D1’ to obtain the sending rate D1.
  • formula (1) can be used to obtain the sending rate D1.
  • BW represents the bandwidth of link A
  • N is the number of data flows represented by quantity information B21
  • Alpha is the load rate of link A.
  • the cache occupancy rate of the egress port of the intermediate node 200 (specifically, it can be the target side access node 230) is as shown in the curve As shown in Q1.
  • the cache occupancy rate of the egress port of the intermediate node 200 (specifically, the target side access node 230) As shown in curve Q2.
  • the speed at which the source node 110 sends data streams can be adaptively adjusted based on the load rate of link A, thereby solving the problem of insufficient throughput caused by sending data streams at a sending rate based on the number of data streams.
  • it can solve the problem of under-throughput caused by large changes in the outgoing port cache of intermediate nodes when small flows exit the network quickly or the number of data flows on link A is not collected in time due to long RTT.
  • the load information B2 may be the load rate of link A.
  • the source node 110 can obtain the sending rate D1 according to the load rate of link A.
  • the sending rate D1 is negatively related to the load rate of link A.
  • the source node 110 can obtain the sending rate D1, and then can perform step 205 to send the data stream C1 according to the sending rate D1.
  • the data flow C1 may be first sent to the intermediate node 200, and then the intermediate node 200 sends the data flow C1 to the target node 310 through step 206.
  • the rate at which the source node sends the data flow can be adjusted based on the load information of the data flow transmission link. While making full use of network performance, the probability of congestion can be reduced and prevent In other words, prevent congestion from occurring.
  • FIG. 5 shows that the embodiment of the present application provides a congestion control solution, which can be implemented by the network system shown in FIG. 1 .
  • a congestion control solution which can be implemented by the network system shown in FIG. 1 .
  • the intermediate node 200 has a data storage function and can store the load information B2. That is to say, after obtaining the load information B2, the intermediate node 200 can not only send the load information B2 to the source node 110, but also store the load information B2 for use by other source nodes.
  • the source node 120 may send information B3 to the intermediate node 200 in step 501 .
  • Information B3 is subscription information similar to information B1 sent by the source node 120, and is used to subscribe the source node 120 to the intermediate node 200 for the load information of link A.
  • the information B3 may be the data stream C2 or be carried in the data stream C2, or the information B3 may be a preset subscription information, which may be independent of the data stream C2.
  • the source node 120 may send information B2 to the intermediate node 200 in order to subscribe to the load information of link A in advance.
  • Information B3 can be implemented specifically by referring to the above introduction to information B1, and will not be described again here.
  • the intermediate node 200 may perform step 502a to send the load information B2 to the source node 120. That is to say, in the solution shown in Figure 5, when the intermediate node 200 receives the information B3 sent by the source node 120, it can send the stored load information B2 of link A to 502a, so that it can promptly send the information B3 to the source node 120.
  • the load information is sent so that the source node 120 can obtain or adjust the sending rate D2 of the data flow C2 in time.
  • the intermediate node 200 consists of a source-side access node 211, a core node 220, and a target-side access node 230.
  • the source-side access node 211 can store the load information B2 of link A. Therefore, when the information B3 reaches the source-side access node 211, the source-side access node 211 can perform step 502a and send the load information B2 to the source node 120. . It is not difficult to understand that compared with the core node 220 and the target-side access node 230, the source-side access node 211 is closer to the source node 120 and receives the information B3 from the source node 120 earlier.
  • the source-side access node 211 stores the load information B2, and when receiving the information B3, sends the load information B2 to the source node 120, so that the source node 120 can receive the load information B2 earlier, so that the source node 120 can obtain or adjust the sending speed of data flow C2 in a more timely manner. Rate D2.
  • the core node 220 may store the load information B2.
  • the core node 220 may perform step 502a to send the load information B2 to the source node 120.
  • the target-side access node 230 may store the load information B2.
  • the target-side access node 230 may perform step 502a to send the load information B2 to the source node 120.
  • Step 503 when the source node 120 receives the load information B2, it can perform step 503 to obtain the sending rate D2 of the data flow C2 based on the load information B2.
  • Step 503 can be implemented with reference to the above introduction to step 204, and will not be described again here.
  • the source node 120 may perform step 504 to send the data stream C2 to the intermediate node 200 according to the sending rate D2. Then the intermediate node 200 sends the data flow C2 to the target node 310 through step 505.
  • the intermediate node 200 may perform step 502b while or after performing step 502a to detect the load of link A and obtain the load information B2' of link A. That is to say, while or after sending the stored load information B2 to the source node 120, the intermediate node 200 can detect the load of link A again and obtain the latest load information of link A, that is, load information B2'. Among them, the load information B2' can be understood as the updated load information B2.
  • Step 502b can be implemented with reference to the above introduction to step 202.
  • the intermediate node 200 may perform step 506a to send the load information B2' to the source node 120.
  • the source node 120 can perform step 507 to obtain the sending rate D3 of the data flow C2 based on the load information B2'. Step 507 can be implemented with reference to the above introduction to step 204, and will not be described again here.
  • the source node 120 may perform step 508 to send the data stream C2 to the intermediate node 200 according to the sending rate D3. Then the intermediate node 200 sends the data flow C2 to the target node 310 through step 509.
  • the intermediate node 200 when or after obtaining the load information B2', can perform step 506b to update the stored load information B2 according to the load information B2'. For example, the intermediate node 200 can delete the load information B2 and store the load information B2', that is, use the load information B2' as the new load information B2, so that other nodes can subsequently use the new load information B2 to obtain the sending rate of the data stream.
  • the load information of the data flow transmission link can be obtained in a more timely manner, and based on the load information of the data flow transmission link, the rate at which the source node sends the data flow can be adjusted to fully While taking advantage of network performance, you can reduce the probability of congestion and prevent or prevent the occurrence of congestion.
  • inventions of the present application provide a congestion control method.
  • the method can be applied to a network system, which includes a first source node, an intermediate node, and a target node, and there is a first link between the intermediate node and the target node.
  • the method includes the following steps.
  • Step 602 When the intermediate node receives the first information sent by the first source node, the intermediate node sends the load information of the first link to the first source node.
  • the intermediate node sends the load information of the first link to the first source node.
  • Step 602 The first source node obtains a first rate for sending the data stream based on the load information.
  • the load information please refer to the above introduction to step 204 in Figure 2, which will not be described again here.
  • Step 603 The first source node sends the first data flow destined for the target node to the intermediate node according to the first rate.
  • the first source node sends the first data flow destined for the target node to the intermediate node according to the first rate.
  • Step 604 The intermediate node sends the first data stream to the target node through the first link.
  • the intermediate node sends the first data stream to the target node through the first link.
  • the network system also includes other source nodes, and the load information includes Information on the quantity of data flows, wherein the data flows on the first link flow from the intermediate node to the target node, and different data flows come from different source nodes; the first source node is based on the load Information, obtaining the first rate for sending the data stream includes: the first source node obtaining the first rate for sending the data stream based on the quantity information and the bandwidth of the first link.
  • the quantity information indicates that the number of data flows on the first link is N, and N is an integer greater than or equal to 1;
  • the first source node is based on the quantity information and
  • the bandwidth of the first link is used to obtain the first rate for sending the data stream, including: using one N/N of the bandwidth of the first link as the first rate;
  • the intermediate node includes: A source-side access node, a core node and a target-side access node, and the first link is a link between the target-side access node and the target node.
  • the method further includes: if when the intermediate node receives the first information, the data flow on the first link does not include the first data flow; The intermediate node adds 1 to the number of data streams on the first link to obtain the quantity information; or, if the intermediate node receives the first information, the number of data streams on the first link is The data flow includes the first data flow; the intermediate node uses the number of data flows on the first link as the quantity information.
  • the load information includes a first load rate of the first link; the first source node obtains a value for Sending the first rate of the data stream includes: the first source node obtaining the first rate based on the quantity information, the bandwidth of the first link, and the first load rate.
  • the intermediate node includes a first node and a second node
  • the first link includes a second link between the first node and the second node
  • the first node For the third link between the two nodes and the target node, the first load rate is the maximum value of the load rate of the second link and the load rate of the third link.
  • the first source node obtains the first rate based on the quantity information, the bandwidth of the first link and the first load rate, including: the first source The node obtains a second rate based on the first number and the bandwidth of the first link; obtains the first rate based on the second rate and the first load rate; wherein, when the first When the load rate is light load, the first rate is greater than the second rate; when the first load rate is full load, the first rate is equal to the second rate; when the first load rate When overloaded, the first rate is less than the second rate.
  • the load information includes a first load rate of the first link; based on the load information, the first source node obtains the first rate for sending the data stream including: the first rate A source node obtains a first rate for sending a data stream based on the first load rate.
  • the first information is carried in the first data stream, or the first information is the first data stream.
  • the intermediate node sending the load information of the data flow on the first link to the first source node includes: when the intermediate node receives the first information, the intermediate node detects The current load of the first link is used to obtain the load information; the intermediate node sends the load information to the first source node.
  • the network system further includes a second source node
  • the method further includes: the intermediate node stores the load information; when the intermediate node receives the destination sent by the second source node, When the ground is the second data stream of the target node, the intermediate node sends the load information stored by the intermediate node to the second source node; the intermediate node sends the load information stored by the intermediate node to the second source node through the first link.
  • the target node sends the second data stream.
  • the intermediate node includes a first node and a second node, and on the first link, the second data flow first passes through the first node and then passes through the third node.
  • Two nodes; the intermediate node stores the load information The information includes: the first node stores the load information; when the first node receives the second data stream, the first node sends all the information stored by the intermediate node to the second source node. Describe load information.
  • the method further includes: the intermediate node detects the current first source node again. load of the link to update the load information; the intermediate node sends the updated load information to the second source node.
  • the rate at which the source node sends the data flow can be adjusted based on the load information of the data flow transmission link. While fully utilizing the network performance, the probability of congestion can be reduced and prevention or prevention can be achieved. Congestion occurs.
  • an embodiment of the present application provides a network node that can be used as a first source node in a network system.
  • the network system also includes an intermediate node and a target node.
  • the intermediate node and the target node There is a first link between nodes.
  • the network nodes include:
  • the communication unit 710 is configured to receive the load information of the first link sent by the intermediate node, wherein the load information is sent by the intermediate node when receiving the first information sent by the network node;
  • Obtaining unit 720 is configured to obtain the first rate for sending the data stream based on the load information
  • the communication unit 710 is further configured to send a first data stream destined for the target node to the intermediate node according to the first rate, so that the intermediate node passes the first link to the first data stream.
  • the target node sends the first data stream.
  • each functional unit of the network node can be implemented with reference to the above introduction to the source node 110, and will not be described again here.
  • an embodiment of the present application provides a network node, which can be used as an intermediate node in a network system.
  • the network system includes a first source node, a target node, the network node and the target node. There is a first link between them.
  • the network node includes: a communication unit 810, configured to send the first information to the first source node when the network node receives the first information sent by the first source node.
  • Load information of the link the load information is used by the first source node to obtain the first rate at which the data stream is sent, and to send the first data stream destined to the target node to the network node according to the first rate.
  • Data flow; the communication unit 810 is also used by the network node to send the first data flow to the target node through the first link.
  • the network node may include a memory 910 and a processor 920; wherein the memory 910 is used to store computer instructions; the processor 920 is used to run the computer instructions stored in the memory, so that the network node can execute what is shown in Figure 2
  • the operation performed by the source node 110 in the embodiment shown in FIG. 6 or the operation performed by the first source node in the embodiment shown in FIG. 6 .
  • the network node may include a memory 910 and a processor 920; wherein the memory 910 is used to store computer instructions; the processor 920 is used to run the computer instructions stored in the memory, so that the network node can execute the figure.
  • the processor 920 can be a central processing unit (CPU), or other general-purpose processor, digital signal processor (DSP), application specific integrated circuit (application specific integrated circuit), ASIC), field programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • a general-purpose processor can be a microprocessor or any conventional processor.
  • the embodiment of the present application also provides a chip, which is used to perform the above-mentioned method, for example, perform the operations performed by the source node 110 or the intermediate node 200, and for example, perform the operations performed by the first source node or the intermediate node. operate.
  • the method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions.
  • Software instructions can be composed of corresponding software modules, and software modules can be stored in random access memory (random access memory, RAM), flash memory, read-only memory (read-only memory, ROM), programmable read-only memory (programmable rom) , PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM), register, hard disk, mobile hard disk, CD-ROM or other well-known in the art any other form of storage media.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from the storage medium and write information to the storage medium.
  • the storage medium can also be an integral part of the processor.
  • the processor and storage media may be located in an ASIC.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted over a computer-readable storage medium.
  • the computer instructions may be transmitted from one website, computer, server or data center to another website through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) means. , computer, server or data center for transmission.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more available media integrated.
  • the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state disk (SSD)), etc.

Landscapes

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

Abstract

本申请提供了一种拥塞控制方法、节点以及系统。该方法应用于网络系统,所述网络系统包括第一源节点、中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点向所述第一源节点发送所述第一链路的负载信息;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率;所述第一源节点根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流;所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。该方法可以在避免网络性能浪费的同时,防范拥塞的发生。

Description

拥塞控制方法、节点及系统
本申请要求于2022年5月24日提交中国国家知识产权局、申请号为202210568239.3、申请名称为“拥塞控制方法、节点及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种拥塞控制方法、节点及系统。
背景技术
以太网(ethernet)作为一种尽力而为(best effort)的网络,在网络出现拥塞时可能会出现网络丢包。为避免在网络出现拥塞时可能出现的丢包现象,制定了多项用于保障无损以太网的网络协议,例如,拥塞控制协议。在传统拥塞控制协议中,发送方依赖接收方发送的拥塞反馈信号来调整发送速率。因此,发送方发出导致拥塞的数据到接收到拥塞反馈信号为至少一个往返时延(Round-Trip Time,RTT)。也就是说,目前的拥塞控制方案是滞后的,在发送方开始调整发送速率时,已经距离其发送导致拥塞的数据至少一个RTT了。因此,对网络拥塞控制效果不理想。
并且,拥塞反馈信号传输到发送方也占用较长的时间,而网络状态的变化情况较快,在拥塞反馈信号传输过程中,网络状态可能已经发生了变化,例如拥塞消除等。因此,发送方接收到拥塞反馈信号,并根据拥塞反馈信号来调整发送速率,则调整后的发送速率可能已不适合最新的网络状态了。
拥塞控制比较理想的方案是避免拥塞的发生。但发送方不知采用多大的发送速率,来避免拥塞的发生以及网络利用率不足。如果发送方发送数据流的初始速率较大(例如链路的理论速率),则有可能导致拥塞。如果发送方发送数据流的初始速率较小,然后逐渐增加发送速率,则可能导致网络利用率不足,特别是在小流占比较高的流量模式下,导致网络资源浪费。
另外,拥塞反馈信号是按照固定的频率所产生的。随着通信技术的发展,网络链路速度越来越快,在一个RTT内,可以发送更多的数据包,如此拉大一个RTT内发送的数据包的数量上限和数量下限之间差距。也就是说,一个RTT内,发送的数据包的数量变化幅度更大。因此,可能导致拥塞反馈信号可能对应的数据包的数量变化幅度较大,使得拥塞反馈信号难以有效反映拥塞情况。
此外,目前,流量切换变得越来越频繁(不同比例的大小流混合、流量的快速加入和离开网络成为常态),网络负载是不稳定的。特别是,网络交换机缓冲容量跟不上网络链路速度的增长,这使得处理流量突发变得更加困难。即使采用远低于链路理论速率的速率来发送数据流,也可能导致拥塞出现。
发明内容
本申请实施例提供了一种拥塞控制方法,可以在避免网络性能浪费的同时,防范拥塞的发生。
第一方面,提供了一种拥塞控制方法,应用于网络系统,所述网络系统包括第一源节点、中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点向所述第一源节点发送所述第一链路的负载信息;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率;所述第一源节点根据所述第一速率,向所述中间节点发送目的地为所述目标节点的 第一数据流;所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
在该方法中,中间节点可以将中间节点和目标节点之间链路的负载信息发送至源节点,使得源节点可以根据负载信息,确定或调节发送数据流的速率,从而可以在避免网络性能浪费的同时,降低拥塞发生的概率,防范或者说预防拥塞的发生。
在一种可能的实施方式中,所述网络系统还包括其他源节点,所述负载信息包括所述第一链路上的数据流的数量信息,其中,所述第一链路上的数据流从所述中间节点流向所述目标节点,且不同数据流来自不同的源节点;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率。
在该实施方式中,可以基于数据流传输链路上的数据流的数量,即数据流并发数,确定或调节数据流的发送速率,可以极大概率避免数据流并发数等导致的拥塞,降低了拥塞发生的概率。
在一种可能的实施方式中,所述数量信息表示所述第一链路上的数据流的数量为N,N为大于或等于1的整数;所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率,包括:将所述第一链路的带宽的N分之一,用作所述第一速率;所述中间节点包括源侧接入节点、核心节点和目标侧接入节点,所述第一链路为所述目标侧接入节点和所述目标节点之间的链路。
在该实施例方式中,目标侧接入节点和目标节点之间的链路为以目标节点为目的地的数据流的传输瓶颈,基于目标侧接入节点和目标节点之间的链路上的数据流的数量信息,调节数据流的发送速率,可以更有效地降低拥塞发生的概率。
在一种可能的实施方式中,所述方法还包括:若在所述中间节点接收到所述第一信息时,所述第一链路上的数据流不包括所述第一数据流;所述中间节点将所述第一链路上的数据流的数量加1,得到所述数量信息;或者,若在所述中间节点接收到所述第一信息时,所述第一链路上的数据流包括所述第一数据流;所述中间节点将所述第一链路上的数据流的数量,作为所述数量信息。
在一种可能的实施方式中,所述负载信息包括所述第一链路的第一负载率;所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率。
在该实施方式,可以基于第一链路上的数据流的数量以及第一链路的负载率,对第一源节点发送数据流的速度进行自适应调节,从而可以解决采用基于数据流的数量得到的发送速率发送数据流所导致的欠吞吐的问题。特别是,可以解决当小流快速退出网络或由于RTT较长导致链路A上的数据流数量收集不及时时,导致的中间节点出端口缓存变化较大,进而导致的欠吞吐问题。
在一种可能的实施方式中,所述中间节点包括第一节点和第二节点,所述第一链路包括所述第一节点和所述第二节点之间的第二链路、所述第二节点和所述目标节点之间的第三链路,所述第一负载率为所述第二链路的负载率和所述第三链路的负载率中的最大值。
在一种可能的实施方式中,所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率,包括:所述第一源节点基于所述第一数量、所述第一链路的带宽,得到第二速率;基于所述第二速率和所述第一负载率,得到所述第一速率;其中,当所述第一负载率为轻载时,所述第一速率大于所述第二速率;当所述第一负载率为满载时,所述第一速率等于所述第二速率;当所述第一负载率为过载时,所述第一速率小于所 述第二速率。
在一种可能的实施方式中,所述负载信息包括所述第一链路的第一负载率;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:所述第一源节点基于所述第一负载率,得到用于发送数据流的第一速率。
在一种可能的实施方式中,所述第一信息携带在所述第一数据流中,或者,所述第一信息为所述第一数据流。
在该实施方式中,第一源节点可以利用第一数据流订阅负载信息,无需专门的订阅信息,节省了网络资源。
在一种可能的实施方式中,所述中间节点向所述第一源节点发送第一链路上的数据流的负载信息包括:当所述中间节点接收到所述第一信息时,所述中间节点检测当前所述第一链路的负载,以得到所述负载信息;所述中间节点向所述第一源节点发送所述负载信息。
在一种可能的实施方式中,所述网络系统还包括第二源节点,所述方法还包括:所述中间节点存储所述负载信息;当所述中间节点接收到第二源节点发送的目的地为所述目标节点的第二数据流时,所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息;所述中间节点通过所述第一链路,向所述目标节点发送所述第二数据流。
在该实施例方式中,中间节点可以存储负载信息,在其他源节点发送数据流时,可以及时向其他节点反馈负载信息,使得其他源节点可以及时调整数据流的发送速率,进一步降低了拥塞发生的风险。
在一种可能的实施方式中,所述中间节点包括第一节点和第二节点,且在所述第一链路上,所述第二数据流先经过所述第一节点,再经过所述第二节点;所述中间节点存储所述负载信息包括:所述第一节点存储所述负载信息;当所述第一节点接收到所述第二数据流时,所述第一节点向所述第二源节点发送所述中间节点存储的所述负载信息。
在该实施方式中,中间节点由多个节点组成,其中更靠近源节点的节点存储并向源节点发送负载信息,使得源节点可以更加及时调整数据流的发送速率,进一步降低了拥塞发生的风险。
在一种可能的实施方式中,在所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息之后,所述方法还包括:所述中间节点再次检测当前所述第一链路的负载,以更新所述负载信息;所述中间节点向所述第二源节点发送更新后的所述负载信息。
在该实施方式中,中间节点还可以向源节点发送最新的负载信息,使得源节点根据最新的负载信息,实现更准确地速率调节。
第二方面,提供了一种拥塞控制方法,应用于网络系统中的第一源节点,所述网络系统还包括中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:所述第一源节点接收所述中间节点发送的所述第一链路的负载信息,其中,所述负载信息是所述中间节点在接收到所述第一源节点发送的第一信息时发送的;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率;所述第一源节点根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流,使得所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
在一种可能的实施方式中,所述网络系统还包括其他源节点,所述负载信息包括所述第一链路上的数据流的数量信息,其中,所述第一链路上的数据流从所述中间节点流向所述目标节点,且不同数据流来自不同的源节点;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息和所述第一链路的带宽,得到 用于发送数据流的第一速率。
在一种可能的实施方式中,所述负载信息包括所述第一链路的第一负载率;所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率。
在一种可能的实施方式中,所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率,包括:所述第一源节点基于所述第一数量、所述第一链路的带宽,得到第二速率;基于所述第二速率和所述第一负载率,得到所述第一速率;其中,当所述第一负载率为轻载时,所述第一速率大于所述第二速率;当所述第一负载率为满载时,所述第一速率等于所述第二速率;当所述第一负载率为过载时,所述第一速率小于所述第二速率。
第三方面,提供了一种拥塞控制方法,应用于网络系统中的中间节点,所述网络系统包括第一源节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点向所述第一源节点发送所述第一链路的负载信息;所述负载信息用于所述第一源节点得到发送数据流的第一速率,并按照所述第一速率向所述中间节点发送目的地为所述目标节点的第一数据流;所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
在一种可能的实施方式中,所述第一信息携带在所述第一数据流中,或者,所述第一信息为所述第一数据流。
在一种可能的实施方式中,所述中间节点向所述第一源节点发送第一链路上的数据流的负载信息包括:当所述中间节点接收到所述第一信息时,所述中间节点检测当前所述第一链路的负载,以得到所述负载信息;所述中间节点向所述第一源节点发送所述负载信息。
在一种可能的实施方式中,所述网络系统还包括第二源节点,所述方法还包括:所述中间节点存储所述负载信息;当所述中间节点接收到所述第二源节点发送的目的地为所述目标节点的第二数据流时,所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息;所述中间节点通过所述第一链路,向所述目标节点发送所述第二数据流。
在一种可能的实施方式中,所述中间节点包括第一节点和第二节点,且在所述第一链路上,所述第二数据流先经过所述第一节点,再经过所述第二节点;所述中间节点存储所述负载信息包括:所述第一节点存储所述负载信息;当所述第一节点接收到所述第二数据流时,所述第一节点向所述第二源节点发送所述中间节点存储的所述负载信息。
在一种可能的实施方式中,在所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息之后,所述方法还包括:所述中间节点再次检测当前所述第一链路的负载,以更新所述负载信息;所述中间节点向所述第二源节点发送更新后的所述负载信息。
第四方面,提供了一种网络系统,包括第一源节点、中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;其中,当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点用于向所述第一源节点发送所述第一链路的负载信息;所述第一源节点用于基于所述负载信息,得到用于发送数据流的第一速率;所述第一源节点用于根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流;所述中间节点用于通过所述第一链路,向所述目标节点发送所述第一数据流。
第五方面,提供了一种网络节点,所述网络节点用作网络系统中的第一源节点,所述网络系统还包括中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述网络节点包括:通信单元,用于接收所述中间节点发送的所述第一链路的负载信息,其中, 所述负载信息是所述中间节点在接收到所述网络节点发送的第一信息时发送的;得到单元,用于基于所述负载信息,得到用于发送数据流的第一速率;所述通信单元还用于根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流,使得所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
第六方面,提供了一种网络节点,所述网络节点用作网络系统中的中间节点,所述网络系统包括第一源节点、目标节点,所述网络节点和所述目标节点之间具有第一链路;所述网络节点包括:通信单元,用于当所述网络节点接收到所述第一源节点发送的第一信息时,向所述第一源节点发送所述第一链路的负载信息;所述负载信息用于所述第一源节点得到发送数据流的第一速率,并按照所述第一速率向所述网络节点发送目的地为所述目标节点的第一数据流;所述通信单元还用于所述网络节点通过所述第一链路,向所述目标节点发送所述第一数据流。
第七方面,提供了一种网络节点,包括:存储器和处理器;所述存储器用于存储计算机指令;所述处理器用于运行所述存储器存储的所述计算机指令实现第二方面所述的方法或者第三方面所述的方法。
第八方面,提供了一种芯片,所述芯片用于执行第二方面所述的方法或者第三方面所述的方法。
第九方面,提供了一种计算机存储介质,所述计算机存储介质包括计算机指令,当所述计算机指令在网络节点上运行时,使得所述网络节点执行第二方面所述的方法或者第三方面所述的方法。
第十方面,提供了一种计算机程序产品,该计算机程序产品包含的程序代码被网络节点中的处理器执行时,实现第二方面所述的方法或者第三方面所述的方法。
通过本申请实施例提供的拥塞控制方案,可以基于数据流传输链路的负载信息,调节源节点发送数据流的速率,在充分利用网络性能的同时,可以降低拥塞发生的概率,防范或者说预防拥塞的发生。
附图说明
图1为本申请实施例提供的一种网络系统;
图2为本申请实施例提供的一种拥塞控制方案流程图;
图3为本申请实施例提供的一种用于发送数据流的时间片分配示意图;
图4为本申请实施例提供的中间节点出端口的缓存占用率示意图;
图5为本申请实施例提供的一种拥塞控制方案的流程图;
图6为本申请实施例提供的一种拥塞控制方法的流程图;
图7为本申请实施例提供的一种网络节点的结构示意图;
图8为本申请实施例提供的一种网络节点的结构示意图;
图9为本申请实施例提供的一种网络节点的结构示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本说明书的描述中“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是 以其他方式另外特别强调。
其中,在本说明书的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在网络中,经常会出现多个发送方同时向一个接收方发送数据流。在这种情况下,可能会发生网络拥塞。
一种处理网络拥塞方案为基于优先级的流控(priority-based flow control,PFC)机制。PFC机制是一种逐跳流控制机制。具体而言,如果通过某输入端口输入的数据包开始在的网络设备(例如交换机)的接收缓存队列中的累积到一定程度时,网络设备将向上游设备发送暂停帧(XOFF帧),阻止上游设备向该网络设备发送更多数据包,当接收缓存队列中的数据包的数量降低到一定程度时,可以向上游设备发送恢复帧(XON帧),以通知上游设备继续发送数据包。如此,可以防止交换机接收缓存队列溢出而导致丢包。
但是,PFC机制可能会导致队首阻塞(head-of-line blocking,HOL)及死锁。例如,网络设备发向某个接收方的数据流,导致网络设备发生了拥塞,进而导致网络设备通过PFC机制暂停了发向网络设备的数据流,使得网络设备发向其他接收方的数据流也被阻塞了。
另外一种处理网络拥塞处理方案为数据量化拥塞通知协议(data center quantized congestion notification,DCQCN)机制。在DCQCN机制中,网络设备可以检测出端口队列是否出现拥塞。当出现拥塞时,可以对相应的数据包进行标记。当接收方接收到带有标记的数据包时,可以向该数据包的发送方拥塞通知报文(Congestion Notification Packet,CNP),以通知发送方
在DCQCN机制中,发送方只有在网络设备的发送缓冲队列中数据包积累到一定程度后,才开始降低流量。发送缓冲队列中数据包的积累会显著增加网络延迟。另外,DCQCN机制涉及复杂的参数调整过程,有许多参数(例如15个参数)需要针对特定网络环境进行调整。因此,网络维护操作中,通常需要面临复杂而耗时的参数调整阶段,这大大增加了导致不稳定或性能差的不正确设置的风险。
本申请实施例提供了一种拥塞控制方案,源节点可以获取中间节点和目标节点之间的链路上的数据流的数量,并基于数据流的数量,确定经过中间节点向目标节点发送数据流的发送速率,从而可以在减少拥塞发生风险的同时,有效利用网络带宽(band width,BW),避免通信资源的利用不足。
其中,在本申请实施例中,源节点是指数据流的源头,用于产生并发送数据流。目标节点是指数据流的最终目的地。中间节点也可以称为中继节点,是指数据流从源节点向目标节点的传输过程中经过的节点,中间节点从上一节点接收数据流,并将接收到的数据流转发给下一节点。
接下来,在不同实施例中,对本申请实施例提供的方案进行示例说明。
图1示出了一种可以用于实施拥塞控制方案的网络系统。该网络系统可以包括多个源节点、中间节点200以及至少一个目标节点。示例性的,多个源节点可以包括源节点110、源节 点120,至少一个目标节点可以包括目标节点310和目标节点320。在一个示例中,中间节点200由多个节点组成,例如图1所示,中间节点200可以包括源侧接入节点211、源侧接入节点212、核心节点220以及目标侧接入节点230。在一个示例中,中间节点可以为一个节点。
其中,源节点110可以产生目的地为目标节点310的数据流。源节点110可以通过中间节点200,向目标节点310发送该数据流。即源节点110可以将数据流发送至中间节点200,然后,中间节点200将接收到的数据流转发至目标节点310。更具体地,源节点110可以将该数据流发送至源侧接入节点211,源侧接入节点211将该数据流转发至核心节点220,核心节点220再将该数据流转发至目标侧接入节点230,目标侧接入节点230再将该数据流转发至目标节点310。
源节点120也可以产生目的地为目标节点310的数据流。源节点120可以通过中间节点200,向目标节点310发送该数据流。即源节点120可以向将数据流发送至中间节点200,然后,中间节点200将接收到的数据流转发至目标节点310。更具体地,源节点120可以将该数据流发送至源侧接入节点211,源侧接入节点211将该数据流转发至核心节点220,核心节点220再将该数据流转发至目标侧接入节点230,目标侧接入节点230再将该数据流转发至目标节点310。
源节点130可以产生目的地为目标节点310的数据流。源节点130可以通过中间节点200,向目标节点310发送该数据流。即源节点130可以向将数据流发送至中间节点200,然后,中间节点200将接收到的数据流转发至目标节点310。更具体地,源节点130可以将该数据流发送至源侧接入节点212,源侧接入节点212将该数据流转发至核心节点220,核心节点220再将该数据流转发至目标侧接入节点230,目标侧接入节点230再将该数据流转发至目标节点310。
另外,在下文描述中,当对源节点、中间节点、目标节点以及源侧接入节点、核心节点、目标侧接入节点不做区分时,它们可以被简称为节点。当对中间节点、源侧接入节点、核心节点以及目标侧接入节点不做区分时,它们可以被简称为转发节点。
在本申请实施例中,节点也可以称为网络设备,是指具有数据处理以及数据收发功能的物理设备或者虚拟设备。在一些实施例中,节点可以为服务器,也可以为由多个服务器构成的服务器集群,也可以为一个或多个芯片电路。在一些实施例中,节点可以为虚拟机(virtual machine,VM)。本申请实施例对节点的具体实现形式不做具体限制。
在本申请实施例中,节点可以支持网络接口控制器(network interface controller,NIC),通过NIC进行信息或者数据流的发送和/或接收。
在一些实施例中,转发节点可以为物理交换机或虚拟交换机。其中,接入节点(源侧接入节点和/或目标侧接入节点)可以为叶子(leaf)节点。示例性的,叶子节点可以为架顶(top of rack,ToR)交换机。核心节点可以为骨干(spine)节点。
在一些实施例中,图1所示的网络系统可以采用二层(layer 2,L2)Clos组网架构。在一些实施例中,图1所示的网络系统可以采用三层(layer 3,L3)Clos组网架构。在一些实施例中,图1所示的网络系统可以采用胖树(Fat-Tree)组网架构。在其他实施例中,图1所示的网络系统还可以采用其他网络架构,在此不再一一赘述。
接下来,结合上文所述的网络系统,对本申请实施例提供的一种拥塞控制方案进行示例说明。
参阅图2,源节点110可以执行步骤201,向中间节点200发送信息B1。其中,信息B1可以理解为订阅信息,用于为源节点110向中间节点200订阅链路A的负载信息。其中,链 路A是指中间节点200和目标节点310之间的数据链路。在一些实施例中,链路A用于传输从中间节点200流向目标节点310的数据流。
在一些实施例中,信息B1可以为数据流C1。其中,数据流C1是源节点110产生的目的地为目标节点310的数据流。源节点110可以向中间节点200发送数据流C1,以通过中间节点200将数据流C1转发到目标节点310。
在一些实施例中,信息B1可以携带在数据流C1中。例如,可以在数据流C1中报文的报文头中的保留字段设置信息B1。当中间节点200接收到数据流C1时,可以检测该保留字段,从而识别信息B1。
在一些实施例中,信息B1可以为预设的一种订阅信息,其可以独立于数据流C1。在一个例子中,在源节点110开始向中间节点200发送数据流C1之前,源节点110可以向中间节点200发送信息B1,以便提前订阅链路A的负载信息。
继续参阅图2,中间节点200可以执行步骤202,检测链路A的负载,得到链路A的负载信息B2。在一些实施例中,步骤202可以在步骤201之前执行,或者步骤202和步骤201可以同时执行。在一些实施例中,步骤202可以在步骤201之后执行。具体而言,中间节点200可以在接收到信息B1时,开始执行步骤202。
在一些实施例中,链路A的负载可以为或者包括链路A上的数据流的数量。其中,链路A上的数据流是指在链路A上进行传输的数据流,该数据流在链路A上从中间节点200流向目标节点310。负载信息B2可为或者包括链路A上的数据流的数量信息B21,该数量信息B21用于表示链路A上数据流的数量。其中,来自同一源节点的数据流算作一条数据流,即当链路A上的数据流的数量为多条时,该多条数据流中的不同的数据流来自不同的源节点。
中间节点200可以检测当前链路A上的数据流的数量,得到数量信息B21。
在一些实施例中,在中间节点200在执行步骤202时,若链路A上的数据流不包括来自源节点110的数据流(即数据流C1),中间节点200可以将检测到的链路A上的数据流的数量加1,得到链路A上的数据流的数量信息B21。其中,不难理解,在信息B1为数据流C1或者携带在数据流C1的情况下,中间节点200先接收到数据流C1时,再向链路A发送数据流C1。因此,中间节点200接收到信息B1在先,数据流C1进入到链路A在后。在这种情况下,中间节点200可以将检测到的链路A上的数据流的数量加1,得到链路A上的数据流的数量信息B21。
在一些实施例中,在中间节点200在执行步骤202时,若链路A上的数据流已包括来自源节点110的数据流(即数据流C1),中间节点200可以将检测到的链路A上的数据流的数量,作为链路A上的数据流的数量信息B21。在这种情况下,信息B1可以为预设的一种订阅信息,其可以独立于数据流C1。在源节点110通过中间节点200向目标节点310发送数据流C1的期间,源节点110可以随时执行步骤210,向中间节点200发送信息B1,以订阅负载信息,以便可以随时获取负载信息B2。
在一些实施例中,如图2所示,中间节点200可以包括源侧接入节点211、核心节点220、目标侧接入节点230。相应地,链路A也由链路A1、链路A2、链路A3组成。其中,链路A1位于源侧接入节点211和核心节点220之间,链路A2位于核心节点220和目标侧接入节点230,链路A3位于目标侧接入节点230和目标节点310之间。其中,链路A的负载可以是指链路A1、链路A2或链路A3上的负载。
在该实施例的第一示例中,在步骤202检测的链路A的负载,具体可以为链路A3上的负载。其中,链路A3,即目标侧接入节点230和目标节点310之间的数据链路,目的地为目 标节点310的数据流的传输路径中的瓶颈路径。检测瓶颈路径上的负载,用于后续的拥塞控制,可以更有效地实现拥塞控制。其中,在步骤202中,可以检测链路A3上的数据流的数量,得到数量信息B21,即数量信息B21用于表示链路A3上的数据流的数量。其中,链路A3上的数据流是从目标侧接入节点230流向目标节点310的数据流,且不同的数据流来自不同的源节点。
在第一示例的一个例子中,步骤202具体可以由目标侧接入节点230执行。
在该实施例的第二示例中,数量信息B21用于表示链路A3上的数据流的数量。不难理解,相对于链路A1和链路A2,链路A3上以目标节点310为目的地的数据流的数量是最多的。在整个链路A中,链路A3为瓶颈。将链路A3上的数据流的数量作为数据信息B21,用于后续的拥塞控制,可以更有效地实现拥塞控制。
在一些实施例中,链路A的负载可以为或者包括单位时间内需要通过链路A进行传输的数据量。负载信息B2可为或者包括链路A上的负载率。网络链路的负载率也可以称为网络链路的利用率,是指单位时间内需要通过链路A进行传输的数据量与单位时间内网络链路最多可传输的数据量的比值。其中,当网络链路的负载率小于1时,网络链路为轻载。当网络链路的负载率等于1时,网络链路为满载。当网络链路的负载率大于1时,网络链路为过载。
在一些实施例中,如图2所示,中间节点200可以包括源侧接入节点211、核心节点220、目标侧接入节点230。相应地,链路A也由链路A1、链路A2、链路A3组成。其中,链路A1位于源侧接入节点211和核心节点220之间,链路A2位于核心节点220和目标侧接入节点230,链路A3位于目标侧接入节点230和目标节点310之间。其中,负载信息B2可为或者包括链路A1的负载率、链路A2的负载率、链路A3的负载率中的任一项或多项的组合。
在该实施例的一个示例中,负载信息B2可为或者包括链路A1的负载率、链路A2负载率和链路A3的负载率中的最大值。
继续参阅图2,中间节点200可以执行步骤203,向源节点110发送负载信息B2。其中,当中间节点200接收到信息B1时,中间节点200向源节点110发送负载信息B2。
在一些实施例中,如上所述,负载信息B2可以为或者包括用于表示链路A3上的数据流数量的数量信息B21,则步骤203可以由目标侧接入节点230执行。示例性的,在步骤201中,源节点110可以直接向目标侧接入节点230发送信息B1。当目标侧接入节点230接收到信息B1时,目标侧接入节点230可以将数量信息B21作为或者包括在负载信息B2中,并向源节点110发送负载信息B2。
在一些实施例中,负载信息B2可为或者包括链路A1的负载率、链路A2的负载率、链路A3的负载率中的任一项或多项的组合。
其中,当负载信息B2可为或者包括链路A1的负载率、链路A2的负载率、链路A3的负载率时,在步骤201中,源节点110向源侧接入节点211发送信息B1,当源侧接入节点211接收到信息B1时,可以向源节点110发送链路A1的负载率。源侧接入节点211将接收到的信息B1转发至核心节点220,当核心节点220接收到信息B1时,可以向源节点110发送链路A2的负载率。核心节点220可将接收到的信息B1转发至目标侧接入节点230,当目标侧接入节点230接收到信息B1时,可以向源节点110发送链路A3的负载率。
其中,当负载信息B2可为或者包括链路A2的负载率、链路A3的负载率时,在步骤201中,源节点110向核心节点220发送信息B1,当核心节点220接收到信息B1时,可以向源节点110发送链路A2的负载率。核心节点220可将接收到的信息B1转发至目标侧接入节点230,当目标侧接入节点230接收到信息B1时,可以向源节点110发送链路A3的负载率。
如上所述,在该实施例的一个示例中,负载信息B2可为或者包括链路A1的负载率、链路A2负载率和链路A3的负载率中的最大值。在该示例中,源侧接入节点211、核心节点、目标侧接入节点230中的任一节点,例如,源侧接入节点211可以获取链路A1的负载率、链路A2负载率和链路A3的负载率,并比较链路A1的负载率、链路A2负载率和链路A3的负载率的大小,得到链路A1的负载率、链路A2负载率和链路A3的负载率中的最大值。然后,可以在接收到信息B1时,将该最大值发送至源节点110。
其中,核心节点220可以将链路A2的负载率,分享给源侧接入节点211。目标侧接入节点230可以将链路A3的负载率,分享给源侧接入节点211。由此,源侧接入节点211可以得到链路A2的负载率以及链路A3的负载率。
通过如上所述方式,源节点110可以得到负载信息B2,进而可执行步骤204,基于负载信息B2,得到数据流C1的发送速率D1。接下来,对步骤204的实现过程进行介绍。
在一些实施例中,如上所述,负载信息B2可为或包括数量信息B21,则在步骤204中,源节点110可以基于数量信息B21和链路A的带宽,得到发送速率D1。其中,链路A的带宽是指链路A的理论带宽,是指链路A的理论传输速率或者最大传输速率。不难理解,网络链路A的带宽是设定的。因此,可以通过预先配置的方式,将链路A的带宽配置到源节点110中;或者中间节点200可以向源节点110发送带宽信息,带宽信息用于表示链路A的带宽;等等。
在一个示例中,数量信息B21具体用于表示链路A3上的数据流的数量,则在步骤204中,源节点110可以基于数量信息B21和链路A3的带宽,得到发送速率D1。
在一个示例中,可以设定数量信息B21表示链路A上的数据流的数量为N,N为大于或等于1的整数。则在步骤204中,源节点110可以将链路A的带宽(BW)的N分之一,用作发送速率D1。在该示例中,参阅图3,可以设定N=4,且源节点110在按照链路A的带宽进行数据流发送时,源节点110的处理器按照周期T1,分配用于发送数据流的时间片(timeslice),即每经过一个周期T1,分配一个用于发送数据流的时间片。那么源节点110在按照发送速率D1进行数据流发送时,处理器可以按照每经过N个周期T1,分配一个用于发送数据流的时间片。
如此,根据链路A上的数据流的数量,确定数据流的发送速率,在采用该发送速率发送数据流时,可以极大避免例如链路A上数据流数量太多造成的拥塞,极大降低拥塞概率。
在一些实施例中,负载信息B2可以同时包括数量信息B21和链路A的负载率。在步骤204中,源节点110可以基于数量信息B21、链路A的带宽以及链路A的负载率,得到发送速率D1。示例性的,当源节点110接收到链路A1的负载率、链路A2的负载率、链路A3的负载率中的两项或三项时,源节点110可比较该两项或三项,并得到最大值,然后将该最大值用作链路A的负载率。
在一个示例中,在步骤204,源节点110可以先基于数量信息B21、链路A的带宽,得到发送速率D1’。例如,源节点110可以将链路A的带宽的N分之一,用作发送速率D1’。N是链路A上的数据流的数量。然后,基于发送速率D1’和链路A的负载率,得到发送速率D1。具体而言,当链路A的负载率为轻载时,将发送速率D1’调大,得到发送速率D1。当链路A的负载率为满载时,将发送速率D1’作为发送速率D1。当链路A的负载率为过载时,将发送速率D1’调小,得到发送速率D1。
在一个具体的例子中,可以采用公式(1),得到发送速率D1。
发送速率D1=BW/(N*Alpha)       (1)
其中,BW代表链路A的带宽,N为数量信息B21所表示的数据流的数量,Alpha为链路A的负载率。
参阅图4,在仅采用由链路A上的数据流的数量得到的发送速率,发送数据流时,中间节点200(具体可以是目标侧接入节点230)的出端口的缓存占用率如曲线Q1所示。在采用由链路A上的数据流的数量和链路A的负载率得到的发送速率,发送数据流时,中间节点200(具体可以是目标侧接入节点230)的出端口的缓存占用率如曲线Q2所示。
由此,可以基于链路A的负载率,对源节点110发送数据流的速度进行自适应调节,从而可以解决采用基于数据流的数量得到的发送速率发送数据流所导致的欠吞吐的问题。特别是,可以解决当小流快速退出网络或由于RTT较长导致链路A上的数据流数量收集不及时时,导致的中间节点出端口缓存变化较大,进而导致的欠吞吐问题。
在一些实施例中,负载信息B2可以是链路A的负载率。则在步骤204中,源节点110可以根据链路A的负载率,得到发送速率D1。其中,发送速率D1与链路A的负载率负相关。
通过上述方式,源节点110可以得到发送速率D1,进而可以执行步骤205,按照发送速率D1,发送数据流C1。其中,数据流C1可以先被发送到中间节点200,然后由中间节点200通过步骤206,将数据流C1发送至目标节点310。
由此,通过本申请实施例提供的拥塞控制方案,可以基于数据流传输链路的负载信息,调节源节点发送数据流的速率,在充分利用网络性能的同时,可以降低拥塞发生的概率,防范或者说预防拥塞的发生。
图5示出了本申请实施例提供了一种拥塞控制方案,该方案可以由图1所示的网络系统实施。接下来,进行示例介绍。
其中,中间节点200具有数据存储功能,可以存储负载信息B2。也就是说,中间节点200在得到负载信息B2后,不但可以将负载信息B2发送至源节点110,还可以存储负载信息B2,以便其他源节点利用。
参阅图5,源节点120可以在执行步骤501,向中间节点200发送信息B3。信息B3为源节点120发出的、与信息B1类似的订阅信息,用于为源节点120向中间节点200订阅链路A的负载信息。其中,信息B3可以为数据流C2或者携带在数据流C2中,或者,信息B3可以为预设的一种订阅信息,其可以独立于数据流C2。在一个例子中,在源节点120开始向中间节点200发送数据流C2之前,源节点120可以向中间节点200发送信息B2,以便提前订阅链路A的负载信息。信息B3具体可以参考上文对信息B1的介绍实现,在此不再赘述。
中间节点200在接收到信息B3时,可以执行步骤502a,向源节点120发送负载信息B2。也就是说,在图5所示的方案中,中间节点200在接收到源节点120发送的信息B3时,可以将存储的链路A的负载信息B2发送至502a,从而可以及时向源节点120发送负载信息,使得源节点120可以及时得到或者调节数据流C2的发送速率D2。
在一些实施例中,如图5所示,中间节点200由源侧接入节点211、核心节点220和目标侧接入节点230组成。源侧接入节点211可以存储链路A的负载信息B2,由此,当信息B3达到源侧接入节点211时,源侧接入节点211可以执行步骤502a,向源节点120发送负载信息B2。不难理解,与核心节点220、目标侧接入节点230相比,源侧接入节点211更靠近源节点120,也更早接收到来自源节点120的信息B3。由此,源侧接入节点211存储负载信息B2,并在接收到信息B3时,向源节点120发送负载信息B2,可以使得源节点120可以更早接收到的负载信息B2,从而使得源节点120可以更及时得到或者调节数据流C2的发送速 率D2。
在一些实施例中,核心节点220可以存储负载信息B2,当信息B3达到核心节点220时,核心节点220可以执行步骤502a,向源节点120发送负载信息B2。
在一些实施例中,目标侧接入节点230可以存储负载信息B2,当信息B3达到目标侧接入节点230时,目标侧接入节点230可以执行步骤502a,向源节点120发送负载信息B2。
继续参阅图5,源节点120在接收到负载信息B2时,可以执行步骤503,基于负载信息B2,得到数据流C2的发送速率D2。步骤503可以参考上文对步骤204的介绍实现,在此不再赘述。
源节点120可以执行步骤504,按照发送速率D2,向中间节点200发送数据流C2。然后由中间节点200通过步骤505,将数据流C2发送至目标节点310。
在一些实施例中,如图5所示,中间节点200在执行步骤502a的同时或者之后,可以执行步骤502b,检测链路A的负载,得到链路A的负载信息B2’。也就是说,在向源节点120发送存储的负载信息B2的同时或之后,中间节点200可以再次检测链路A的负载,得到链路A最新的负载信息,即负载信息B2’。其中,负载信息B2’可以理解为更新后的负载信息B2。其中,步骤502b可以参考上文对步骤202的介绍实现。
中间节点200在得到负载信息B2’时或之后,可以执行步骤506a,向源节点120发送负载信息B2’。源节点120在接收到负载信息B2’时或之后,可以执行步骤507,基于负载信息B2’,得到数据流C2的发送速率D3。步骤507可以参考上文对步骤204的介绍实现,在此不再赘述。
源节点120可以执行步骤508,按照发送速率D3,向中间节点200发送数据流C2。然后由中间节点200通过步骤509,将数据流C2发送至目标节点310。
在一些实施例中,参阅图5,中间节点200在得到负载信息B2’时或之后,可以执行步骤506b,根据负载信息B2’,更新存储的负载信息B2。例如,中间节点200可以删除负载信息B2,存储负载信息B2’,即将负载信息B2’作为新的负载信息B2,以便后续其他节点可以利用新的负载信息B2,得到数据流的发送速率。
由此,通过本申请实施例提供的拥塞控制方案,可以更及时地得到数据流传输链路的负载信息,并基于数据流传输链路的负载信息,调节源节点发送数据流的速率,在充分利用网络性能的同时,可以降低拥塞发生的概率,防范或者说预防拥塞的发生。
基于上文所述地拥塞控制方案,本申请实施例提供了一种拥塞控制方法。该方法可以应用于网络系统,所述网络系统包括第一源节点、中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路。如图6,该方法包括如下步骤。
步骤602,当中间节点接收到第一源节点发送的第一信息时,所述中间节点向所述第一源节点发送所述第一链路的负载信息。具体可以参考上文对图2中步骤201、202、203的介绍,在此不再赘述。
步骤602,所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率。具体可以参考上文对图2中步骤204的介绍,在此不再赘述。
步骤603,所述第一源节点根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流。具体可以参考上文对图2中步骤205的介绍,在此不再赘述。
步骤604,所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。具体可以参考上文对图2中步骤26的介绍,在此不再赘述。
在一些实施例中,所述网络系统还包括其他源节点,所述负载信息包括所述第一链路上 的数据流的数量信息,其中,所述第一链路上的数据流从所述中间节点流向所述目标节点,且不同数据流来自不同的源节点;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率。
在这些实施例的一个示例中,所述数量信息表示所述第一链路上的数据流的数量为N,N为大于或等于1的整数;所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率,包括:将所述第一链路的带宽的N分之一,用作所述第一速率;所述中间节点包括源侧接入节点、核心节点和目标侧接入节点,所述第一链路为所述目标侧接入节点和所述目标节点之间的链路。
在这些实施例的一个示例中,所述方法还包括:若在所述中间节点接收到所述第一信息时,所述第一链路上的数据流不包括所述第一数据流;所述中间节点将所述第一链路上的数据流的数量加1,得到所述数量信息;或者,若在所述中间节点接收到所述第一信息时,所述第一链路上的数据流包括所述第一数据流;所述中间节点将所述第一链路上的数据流的数量,作为所述数量信息。
在这些实施例的一个示例中,所述负载信息包括所述第一链路的第一负载率;所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率。
在该示例的一个例子中,所述中间节点包括第一节点和第二节点,所述第一链路包括所述第一节点和所述第二节点之间的第二链路、所述第二节点和所述目标节点之间的第三链路,所述第一负载率为所述第二链路的负载率和所述第三链路的负载率中的最大值。
在该示例的一个例子中,所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率,包括:所述第一源节点基于所述第一数量、所述第一链路的带宽,得到第二速率;基于所述第二速率和所述第一负载率,得到所述第一速率;其中,当所述第一负载率为轻载时,所述第一速率大于所述第二速率;当所述第一负载率为满载时,所述第一速率等于所述第二速率;当所述第一负载率为过载时,所述第一速率小于所述第二速率。
在一些实施例中,所述负载信息包括所述第一链路的第一负载率;所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:所述第一源节点基于所述第一负载率,得到用于发送数据流的第一速率。
在一些实施例中,所述第一信息携带在所述第一数据流中,或者,所述第一信息为所述第一数据流。
在一些实施例中,所述中间节点向所述第一源节点发送第一链路上的数据流的负载信息包括:当所述中间节点接收到所述第一信息时,所述中间节点检测当前所述第一链路的负载,以得到所述负载信息;所述中间节点向所述第一源节点发送所述负载信息。
在这些实施例的一个示例中,所述网络系统还包括第二源节点,所述方法还包括:所述中间节点存储所述负载信息;当所述中间节点接收到第二源节点发送的目的地为所述目标节点的第二数据流时,所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息;所述中间节点通过所述第一链路,向所述目标节点发送所述第二数据流。
在该示例的一个例子中,所述中间节点包括第一节点和第二节点,且在所述第一链路上,所述第二数据流先经过所述第一节点,再经过所述第二节点;所述中间节点存储所述负载信 息包括:所述第一节点存储所述负载信息;当所述第一节点接收到所述第二数据流时,所述第一节点向所述第二源节点发送所述中间节点存储的所述负载信息。
在该示例的一个例子中,在所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息之后,所述方法还包括:所述中间节点再次检测当前所述第一链路的负载,以更新所述负载信息;所述中间节点向所述第二源节点发送更新后的所述负载信息。
通过本申请实施例提供的拥塞控制方法,可以基于数据流传输链路的负载信息,调节源节点发送数据流的速率,在充分利用网络性能的同时,可以降低拥塞发生的概率,防范或者说预防拥塞的发生。
参阅图7,本申请实施例提供了一种网络节点,该网络节点可以用作网络系统中的第一源节点,所述网络系统还包括中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路。如图7所示,所述网络节点包括:
通信单元710,用于接收所述中间节点发送的所述第一链路的负载信息,其中,所述负载信息是所述中间节点在接收到所述网络节点发送的第一信息时发送的;
得到单元720,用于基于所述负载信息,得到用于发送数据流的第一速率;
所述通信单元710还用于根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流,使得所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
其中,网络节点的各功能单元的功能可以参考上文对源节点110的介绍实现,在此不再赘述。
参阅图8,本申请实施例提供了一种网络节点,该网络节点可以用作网络系统中的中间节点,所述网络系统包括第一源节点、目标节点,所述网络节点和所述目标节点之间具有第一链路。如图8所示,所述网络节点包括:通信单元810,用于当所述网络节点接收到所述第一源节点发送的第一信息时,向所述第一源节点发送所述第一链路的负载信息;所述负载信息用于所述第一源节点得到发送数据流的第一速率,并按照所述第一速率向所述网络节点发送目的地为所述目标节点的第一数据流;所述通信单元810还用于所述网络节点通过所述第一链路,向所述目标节点发送所述第一数据流。
本申请实施例提供了一种网络节点。参阅图9,该网络节点可以包括存储器910和处理器920;其中,存储器910用于存储计算机指令;处理器920用于运行所述存储器存储的所述计算机指令,使得网络节点可以执行图2所示实施例中源节点110所执行的操作,或者执行图6所示实施例中第一源节点的操作。
本申请实施例提供了一种网络节点。继续图9所示,该网络节点可以包括存储器910和处理器920;其中,存储器910用于存储计算机指令;处理器920用于运行所述存储器存储的所述计算机指令,使得网络节点可以执行图2所示实施例中中间节点200所执行的操作,或者执行图6所示实施例中中间节点的操作。
可以理解的是,处理器920可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请实施例还提供了一种芯片,所述芯片用于执行上文所述的方法,例如执行源节点110或中间节点200所执行的操作,再例如第一源节点或中间节点所执行的操作。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (29)

  1. 一种拥塞控制方法,其特征在于,应用于网络系统,所述网络系统包括第一源节点、中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:
    当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点向所述第一源节点发送所述第一链路的负载信息;
    所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率;
    所述第一源节点根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流;
    所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
  2. 根据权利要求1所述的方法,其特征在于,所述网络系统还包括其他源节点,所述负载信息包括所述第一链路上的数据流的数量信息,其中,所述第一链路上的数据流从所述中间节点流向所述目标节点,且不同数据流来自不同的源节点;
    所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:
    所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率。
  3. 根据权利要求2所述的方法,其特征在于,
    所述数量信息表示所述第一链路上的数据流的数量为N,N为大于或等于1的整数;所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率,包括:将所述第一链路的带宽的N分之一,用作所述第一速率;
    所述中间节点包括源侧接入节点、核心节点和目标侧接入节点,所述第一链路为所述目标侧接入节点和所述目标节点之间的链路。
  4. 根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
    若在所述中间节点接收到所述第一信息时,所述第一链路上的数据流不包括所述第一数据流;所述中间节点将所述第一链路上的数据流的数量加1,得到所述数量信息;
    或者,
    若在所述中间节点接收到所述第一信息时,所述第一链路上的数据流包括所述第一数据流;所述中间节点将所述第一链路上的数据流的数量,作为所述数量信息。
  5. 根据权利要求2所述的方法,其特征在于,所述负载信息包括所述第一链路的第一负载率;
    所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率。
  6. 根据权利要求5所述的方法,其特征在于,所述中间节点包括第一节点和第二节点,所述第一链路包括所述第一节点和所述第二节点之间的第二链路、所述第二节点和所述目标节点之间的第三链路,所述第一负载率为所述第二链路的负载率和所述第三链路的负载率中的最大值。
  7. 根据权利要求5或6所述的方法,其特征在于,所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率,包括:
    所述第一源节点基于所述第一数量、所述第一链路的带宽,得到第二速率;
    基于所述第二速率和所述第一负载率,得到所述第一速率;其中,
    当所述第一负载率为轻载时,所述第一速率大于所述第二速率;
    当所述第一负载率为满载时,所述第一速率等于所述第二速率;
    当所述第一负载率为过载时,所述第一速率小于所述第二速率。
  8. 根据权利要求1所述的方法,其特征在于,所述负载信息包括所述第一链路的第一负载率;
    所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:
    所述第一源节点基于所述第一负载率,得到用于发送数据流的第一速率。
  9. 根据权利要求1所述的方法,其特征在于,所述第一信息携带在所述第一数据流中,或者,所述第一信息为所述第一数据流。
  10. 根据权利要求1所述的方法,其特征在于,所述中间节点向所述第一源节点发送第一链路上的数据流的负载信息包括:
    当所述中间节点接收到所述第一信息时,所述中间节点检测当前所述第一链路的负载,以得到所述负载信息;
    所述中间节点向所述第一源节点发送所述负载信息。
  11. 根据权利要求10所述的方法,其特征在于,所述网络系统还包括第二源节点,所述方法还包括:
    所述中间节点存储所述负载信息;
    当所述中间节点接收到第二源节点发送的目的地为所述目标节点的第二数据流时,所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息;
    所述中间节点通过所述第一链路,向所述目标节点发送所述第二数据流。
  12. 根据权利要求11所述的方法,其特征在于,所述中间节点包括第一节点和第二节点,且在所述第一链路上,所述第二数据流先经过所述第一节点,再经过所述第二节点;
    所述中间节点存储所述负载信息包括:所述第一节点存储所述负载信息;
    当所述第一节点接收到所述第二数据流时,所述第一节点向所述第二源节点发送所述中间节点存储的所述负载信息。
  13. 根据权利要求11或12所述的方法,其特征在于,在所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息之后,所述方法还包括:
    所述中间节点再次检测当前所述第一链路的负载,以更新所述负载信息;
    所述中间节点向所述第二源节点发送更新后的所述负载信息。
  14. 一种拥塞控制方法,其特征在于,应用于网络系统中的第一源节点,所述网络系统还包括中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:
    所述第一源节点接收所述中间节点发送的所述第一链路的负载信息,其中,所述负载信息是所述中间节点在接收到所述第一源节点发送的第一信息时发送的;
    所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率;
    所述第一源节点根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一 数据流,使得所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
  15. 根据权利要求14所述的方法,其特征在于,所述网络系统还包括其他源节点,所述负载信息包括所述第一链路上的数据流的数量信息,其中,所述第一链路上的数据流从所述中间节点流向所述目标节点,且不同数据流来自不同的源节点;
    所述第一源节点基于所述负载信息,得到用于发送数据流的第一速率包括:
    所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率。
  16. 根据权利要求15所述的方法,其特征在于,所述负载信息包括所述第一链路的第一负载率;
    所述第一源节点基于所述数量信息和所述第一链路的带宽,得到用于发送数据流的第一速率包括:所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率。
  17. 根据权利要求16所述的方法,其特征在于,所述第一源节点基于所述数量信息、所述第一链路的带宽和所述第一负载率,得到所述第一速率,包括:
    所述第一源节点基于所述第一数量、所述第一链路的带宽,得到第二速率;
    基于所述第二速率和所述第一负载率,得到所述第一速率;其中,
    当所述第一负载率为轻载时,所述第一速率大于所述第二速率;
    当所述第一负载率为满载时,所述第一速率等于所述第二速率;
    当所述第一负载率为过载时,所述第一速率小于所述第二速率。
  18. 一种拥塞控制方法,其特征在于,应用于网络系统中的中间节点,所述网络系统包括第一源节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述方法包括:
    当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点向所述第一源节点发送所述第一链路的负载信息;所述负载信息用于所述第一源节点得到发送数据流的第一速率,并按照所述第一速率向所述中间节点发送目的地为所述目标节点的第一数据流;
    所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
  19. 根据权利要求18所述的方法,其特征在于,所述第一信息携带在所述第一数据流中,或者,所述第一信息为所述第一数据流。
  20. 根据权利要求18所述的方法,其特征在于,所述中间节点向所述第一源节点发送第一链路上的数据流的负载信息包括:
    当所述中间节点接收到所述第一信息时,所述中间节点检测当前所述第一链路的负载,以得到所述负载信息;
    所述中间节点向所述第一源节点发送所述负载信息。
  21. 根据权利要求20所述的方法,其特征在于,所述网络系统还包括第二源节点,所述方法还包括:
    所述中间节点存储所述负载信息;
    当所述中间节点接收到所述第二源节点发送的目的地为所述目标节点的第二数据流时,所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息;
    所述中间节点通过所述第一链路,向所述目标节点发送所述第二数据流。
  22. 根据权利要求21所述的方法,其特征在于,所述中间节点包括第一节点和第二节点,且在所述第一链路上,所述第二数据流先经过所述第一节点,再经过所述第二节点;
    所述中间节点存储所述负载信息包括:所述第一节点存储所述负载信息;
    当所述第一节点接收到所述第二数据流时,所述第一节点向所述第二源节点发送所述中间节点存储的所述负载信息。
  23. 根据权利要求21或22所述的方法,其特征在于,在所述中间节点向所述第二源节点发送所述中间节点存储的所述负载信息之后,所述方法还包括:
    所述中间节点再次检测当前所述第一链路的负载,以更新所述负载信息;
    所述中间节点向所述第二源节点发送更新后的所述负载信息。
  24. 一种网络系统,其特征在于,包括第一源节点、中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;其中,
    当所述中间节点接收到所述第一源节点发送的第一信息时,所述中间节点用于向所述第一源节点发送所述第一链路的负载信息;
    所述第一源节点用于基于所述负载信息,得到用于发送数据流的第一速率;
    所述第一源节点用于根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流;
    所述中间节点用于通过所述第一链路,向所述目标节点发送所述第一数据流。
  25. 一种网络节点,其特征在于,所述网络节点用作网络系统中的第一源节点,所述网络系统还包括中间节点、目标节点,所述中间节点和所述目标节点之间具有第一链路;所述网络节点包括:
    通信单元,用于接收所述中间节点发送的所述第一链路的负载信息,其中,所述负载信息是所述中间节点在接收到所述网络节点发送的第一信息时发送的;
    得到单元,用于基于所述负载信息,得到用于发送数据流的第一速率;
    所述通信单元还用于根据所述第一速率,向所述中间节点发送目的地为所述目标节点的第一数据流,使得所述中间节点通过所述第一链路,向所述目标节点发送所述第一数据流。
  26. 一种网络节点,其特征在于,所述网络节点用作网络系统中的中间节点,所述网络系统包括第一源节点、目标节点,所述网络节点和所述目标节点之间具有第一链路;所述网络节点包括:
    通信单元,用于当所述网络节点接收到所述第一源节点发送的第一信息时,向所述第一源节点发送所述第一链路的负载信息;所述负载信息用于所述第一源节点得到发送数据流的第一速率,并按照所述第一速率向所述网络节点发送目的地为所述目标节点的第一数据流;
    所述通信单元还用于所述网络节点通过所述第一链路,向所述目标节点发送所述第一数据流。
  27. 一种网络节点,其特征在于,包括:存储器和处理器;
    所述存储器用于存储计算机指令;所述处理器用于运行所述存储器存储的所述计算机指令实现权利要求14-17所述的方法或者权利要求18-23所述的方法。
  28. 一种芯片,其特征在于,所述芯片用于执行权利要求14-17所述的方法或者权利要求18-23所述的方法。
  29. 一种计算机存储介质,其特征在于,所述计算机存储介质包括计算机指令,当所述计算机指令在网络节点上运行时,使得所述网络节点执行权利要求14-17所述的方法或者权利要求18-23所述的方法。
PCT/CN2023/081123 2022-05-24 2023-03-13 拥塞控制方法、节点及系统 WO2023226532A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210568239.3A CN117155867A (zh) 2022-05-24 2022-05-24 拥塞控制方法、节点及系统
CN202210568239.3 2022-05-24

Publications (2)

Publication Number Publication Date
WO2023226532A1 true WO2023226532A1 (zh) 2023-11-30
WO2023226532A9 WO2023226532A9 (zh) 2024-01-04

Family

ID=88908695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/081123 WO2023226532A1 (zh) 2022-05-24 2023-03-13 拥塞控制方法、节点及系统

Country Status (2)

Country Link
CN (1) CN117155867A (zh)
WO (1) WO2023226532A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963538B1 (en) * 1997-11-28 2005-11-08 Alcatel Canada Inc. Controlling ATM layer transfer characteristics based on physical layer dynamic rate adaptation
CN101009631A (zh) * 2006-01-24 2007-08-01 华为技术有限公司 一种QoS控制方法和系统
CN101075960A (zh) * 2007-06-22 2007-11-21 清华大学 高速网络中基于路由器显式虚拟负载反馈的流量控制方法
CN106911583A (zh) * 2017-03-14 2017-06-30 国网四川省电力公司经济技术研究院 一种显式反馈拥塞程度滑动平均值的传输层拥塞控制方法
CN108199975A (zh) * 2018-03-28 2018-06-22 新华三技术有限公司 一种流量控制方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963538B1 (en) * 1997-11-28 2005-11-08 Alcatel Canada Inc. Controlling ATM layer transfer characteristics based on physical layer dynamic rate adaptation
CN101009631A (zh) * 2006-01-24 2007-08-01 华为技术有限公司 一种QoS控制方法和系统
CN101075960A (zh) * 2007-06-22 2007-11-21 清华大学 高速网络中基于路由器显式虚拟负载反馈的流量控制方法
CN106911583A (zh) * 2017-03-14 2017-06-30 国网四川省电力公司经济技术研究院 一种显式反馈拥塞程度滑动平均值的传输层拥塞控制方法
CN108199975A (zh) * 2018-03-28 2018-06-22 新华三技术有限公司 一种流量控制方法及装置

Also Published As

Publication number Publication date
WO2023226532A9 (zh) 2024-01-04
CN117155867A (zh) 2023-12-01

Similar Documents

Publication Publication Date Title
US11818037B2 (en) Switch device for facilitating switching in data-driven intelligent network
US7447152B2 (en) Controlling traffic congestion
JP5159889B2 (ja) データ・センタ・イーサネット・アーキテクチャの仮想レーン上での適応輻輳制御のための方法、システムおよびコンピュータ・プログラム製品
US8248930B2 (en) Method and apparatus for a network queuing engine and congestion management gateway
US8873385B2 (en) Incast congestion control in a network
WO2021244240A1 (zh) 网络拥塞的控制方法、装置、设备、系统及存储介质
US9614777B2 (en) Flow control in a network
US10728156B2 (en) Scalable, low latency, deep buffered switch architecture
WO2018218957A1 (zh) 一种流量控制方法、设备及系统
US20230059755A1 (en) System and method for congestion control using a flow level transmit mechanism
JP2008166888A (ja) スイッチにおける優先度帯域制御方法
WO2023226532A1 (zh) 拥塞控制方法、节点及系统
CN108243117B (zh) 一种流量监控方法、装置及电子设备
Bai et al. Ssp: Speeding up small flows for proactive transport in datacenters
WO2023207461A1 (zh) 拥塞流识别方法、装置、设备及计算机可读存储介质
US11824792B2 (en) Method and system for dynamic quota-based congestion management
WO2022057462A1 (zh) 拥塞控制方法和装置
US11924106B2 (en) Method and system for granular dynamic quota-based congestion management
US20240056385A1 (en) Switch device for facilitating switching in data-driven intelligent network
TWI831622B (zh) 網路流壅塞管理裝置及其方法
WO2023226603A1 (zh) 一种抑制拥塞队列产生的方法及装置

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

Country of ref document: EP

Kind code of ref document: A1