WO2025246804A1 - 拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品 - Google Patents
拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品Info
- Publication number
- WO2025246804A1 WO2025246804A1 PCT/CN2025/092609 CN2025092609W WO2025246804A1 WO 2025246804 A1 WO2025246804 A1 WO 2025246804A1 CN 2025092609 W CN2025092609 W CN 2025092609W WO 2025246804 A1 WO2025246804 A1 WO 2025246804A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- congestion
- node
- switching node
- length
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
Definitions
- This disclosure relates to the field of data communications, and in particular to a congestion control method, apparatus, electronic device, computer-readable medium, and computer program product.
- DCQCN Data Center Quantitative Congestion Notification
- HPCC High-Precision Congestion Control
- This disclosure provides a congestion control method, apparatus, electronic device, computer-readable medium, and computer program product capable of accurately performing congestion control.
- This disclosure provides a congestion control method applied to a source node, including:
- a message is sent to the destination node based on a first congestion window, wherein the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate a first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the message to be sent and the message to be sent that is accommodated in the first congestion window is sent.
- the acknowledgment response returned by the destination node is received.
- the acknowledgment response includes a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags.
- a switching node is provided between the source node and the destination node. Both the congestion flag and the unobstructed flag are obtained by the switching node by marking the packets received by the switching node based on the buffer queue within the switching node.
- the overload rate of the switching node is determined based on the first quantity and the second quantity
- the first congestion window is updated based on the overload rate, wherein the number of packets to be sent that are accommodated in the updated first congestion window is controlled.
- This disclosure provides a congestion control method applied to a destination node, the congestion control method comprising:
- a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags are determined, and an acknowledgment is generated based on the first number and the second number and returned to the source node.
- a switching node is provided between the source node and the destination node, and the congestion flag and the unobstructed flag are both obtained by the switching node by marking the packets received by the switching node based on the buffer queue within the switching node.
- the first quantity and the second quantity are determined based on the predetermined number of messages, and an acknowledgment is generated based on the first quantity and the second quantity, and the acknowledgment is returned to the source node.
- This disclosure provides a congestion control method applied to a source node, the congestion control method further comprising:
- a message is sent to the destination node based on a first congestion window, wherein the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate a first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the message to be sent and the message to be sent that is accommodated in the first congestion window is sent.
- the system receives the acknowledgment response returned by the destination node.
- the acknowledgment response includes the overload rate of the switching node.
- a switching node is provided between the source node and the destination node. The switching node marks the packets based on the buffer queue within the switching node to obtain congestion tags and unobstructed tags.
- the overload rate is determined by the destination node based on a first number of packets with congestion tags and a second number of packets carrying unobstructed tags.
- the first congestion window is updated based on the overload rate, wherein the number of packets to be sent that are accommodated in the updated first congestion window is controlled.
- This disclosure provides a congestion control method applied to a destination node, the congestion control method further comprising:
- a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags are determined. Based on the first number and the second number, the overload rate of the switching node is determined. An acknowledgment is generated based on the overload rate and returned to the source node.
- a switching node is provided between the source node and the destination node. Both the congestion flag and the unobstructed flag are obtained by the switching node marking the packets received by the switching node based on the buffer queue within the switching node.
- the first quantity and the second quantity are determined based on the predetermined number of messages, and the overload rate of the switching node is determined based on the first quantity and the second quantity.
- An acknowledgment is generated based on the overload rate and returned to the source node.
- This disclosure provides a congestion control device disposed in a source node, the congestion control device comprising:
- the first sending unit is configured to send a message to a destination node based on a first congestion window, wherein the first congestion window is a window that moves in a queue of messages to be sent, and the first congestion window is used to indicate a first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the message to be sent, and the message to be sent that is accommodated in the first congestion window is sent.
- the first receiving unit is configured to receive the acknowledgment response returned by the destination node.
- the acknowledgment response includes a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags.
- a switching node is provided between the source node and the destination node. Both the congestion flag and the unobstructed flag are obtained by the switching node by marking the packets received by the switching node based on the buffer queue within the switching node.
- the first determining unit is configured to determine the overload rate of the switching node based on the first quantity and the second quantity;
- the update unit is configured to update the first congestion window based on the overload rate, wherein the number of packets to be sent that are accommodated in the updated first congestion window is controlled.
- This disclosure provides a congestion control device, disposed in a destination node, the device comprising:
- the second receiving unit is configured to receive messages sent by the source node
- the second determining unit is configured to, when a predetermined time period has elapsed since the last acknowledgment was sent, determine a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags based on the packets received within the predetermined time period, and generate an acknowledgment based on the first number and the second number, and return the acknowledgment to the source node.
- the source node and the destination node are connected by a switching node, and both the congestion flag and the unobstructed flag are obtained by the switching node marking the packets received by the switching node based on a buffer queue within the switching node.
- the third determining unit is configured to, when a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, determine the first quantity and the second quantity based on the predetermined number of messages, generate an acknowledgment based on the first quantity and the second quantity, and return the acknowledgment to the source node.
- This disclosure provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the congestion control method described above.
- This disclosure provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the congestion control method described above.
- This disclosure provides a computer program product comprising a computer program that is read and executed by a processor of a computer device, causing the computer device to perform the congestion control method as described above.
- an acknowledgment response is received from the destination node, and the overload rate of the switching node is determined based on a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags contained in the acknowledgment response.
- the overload rate accurately reflects the current congestion status of the switching nodes in the link.
- the length of the first congestion window is not increased, thus preventing the transmission of new packets and alleviating network congestion.
- the load status of the switching node reflected by the overload rate is light, the length of the first congestion window is increased to accommodate new packets for transmission, fully utilizing network bandwidth and achieving precise congestion control.
- the method used in this embodiment only needs to insert a first number of target packets carrying congestion flags and a second number of target packets carrying unobstructed flags into the acknowledgment response returned by the destination node to accurately perform congestion control. It has low customization requirements for the destination node and does not require additional customization of the switching node, making it easy to deploy.
- Figures 1A and 1B are system architecture diagrams of a congestion control method according to embodiments of the present disclosure
- Figure 2A is a schematic diagram of the software configuration of a congestion control method according to an embodiment of the present disclosure
- Figure 2B is a schematic diagram of the hardware configuration of a congestion control method according to an embodiment of the present disclosure.
- Figure 3 is a schematic diagram of the topology of a data center network to which the congestion control method according to an embodiment of the present disclosure is applied;
- Figure 4 is an overall flowchart of the congestion control method for calculating overload rate from the source node according to an embodiment of the present disclosure, applied to the source node side.
- Figure 5 is a schematic diagram of a first congestion sliding window according to an embodiment of the present disclosure.
- Figure 6 is a schematic diagram of a scheme model of the congestion control method according to an embodiment of the present disclosure applied to the source node side;
- Figure 7A is a schematic diagram of a system model of a congestion control method applied to the source node side according to an embodiment of the present disclosure
- Figure 7B is an interactive schematic diagram of the congestion control method according to an embodiment of the present disclosure applied to the source node side;
- Figure 8 is a flowchart of the destination node sending an acknowledgment response according to an embodiment of the present disclosure
- Figure 9 is a schematic diagram of the queue length within an exchange node according to an embodiment of the present disclosure.
- Figure 10 is a schematic diagram of a switching node marking packets based on the queue length within the switching node according to an embodiment of the present disclosure
- Figure 11 is a flowchart illustrating the determination of the overload rate of a switching node based on a first quantity and a second quantity according to an embodiment of the present disclosure.
- Figure 12 is a schematic diagram of determining the first cycle based on the number of confirmed responses and the degree of real-time performance according to an embodiment of the present disclosure
- Figure 13 is a flowchart illustrating the determination of the statistical label probability of the exchange node in the first period based on the first quantity and the second quantity according to an embodiment of the present disclosure.
- Figure 14 is a schematic diagram of obtaining a first sequence of acknowledgment responses received in a first period according to an embodiment of the present disclosure
- Figure 15 is a detailed flowchart of updating the statistical marker probability based on the first and second quantities in the confirmation response to be examined, according to an embodiment of the present disclosure
- Figure 16 is a flowchart illustrating the specific process of increasing the statistical label probability using the first label probability increasing method according to an embodiment of the present disclosure
- Figure 17 is a flowchart illustrating the reduction of statistical label probability using a first label probability reduction algorithm according to an embodiment of the present disclosure.
- Figure 18 is a flowchart illustrating the determination of the statistical queue length of the exchange node in the first period based on the statistical label probability according to an embodiment of the present disclosure.
- Figure 19 is a detailed flowchart of obtaining the length of the first queue and the length of the second queue according to an embodiment of the present disclosure
- Figure 20 is a detailed flowchart of obtaining the critical marker probability corresponding to the second queue length according to an embodiment of the present disclosure
- Figure 21 is a flowchart illustrating the determination of the overload rate of the switching node in the first cycle based on the statistical queue length according to an embodiment of the present disclosure.
- Figure 22 is a flowchart illustrating the determination of the load of the switching node in the first cycle based on the statistical queue length according to an embodiment of the present disclosure.
- Figure 23 is a flowchart illustrating the determination of the overload rate of a switching node in a first period based on load, port bandwidth, and a first period, according to an embodiment of the present disclosure.
- Figure 24 is a detailed flowchart of updating the first congestion sliding window based on the overload rate according to an embodiment of the present disclosure
- Figure 25A is a schematic diagram of increasing the length of the first congestion sliding window according to an embodiment of the present disclosure
- Figure 25B is a schematic diagram of reducing the length of the first congestion sliding window according to an embodiment of the present disclosure.
- Figure 26 is a detailed flowchart of reducing the length of the first congestion sliding window based on the overload rate according to an embodiment of the present disclosure
- Figure 27 is a detailed flowchart of increasing the length of the first congestion sliding window according to an embodiment of the present disclosure
- Figure 28 is a flowchart illustrating the determination of the length of the extended first congestion window based on a first rule according to an embodiment of the present disclosure.
- Figure 29 is a detailed flowchart of determining the length of the extended first congestion sliding window based on the second rule according to an embodiment of the present disclosure
- Figure 30 is a flowchart illustrating the determination of the overload rate of the switching node based on a first quantity and a second quantity, and the updating of the first congestion window based on the overload rate, according to an embodiment of the present disclosure.
- Figure 31 is a schematic diagram of a message according to an embodiment of the present disclosure being sent to the destination node through one of a plurality of switching nodes;
- Figure 32 is a schematic diagram of simulation data of DCQCN according to an embodiment of the present disclosure.
- Figure 33 is a schematic diagram of simulation data of HPCC according to an embodiment of the present disclosure.
- Figure 34 is a schematic diagram of simulation data of the congestion control method according to an embodiment of the present disclosure.
- Figure 35 is a schematic diagram of the interaction of the destination node sending an acknowledgment response according to an embodiment of the present disclosure
- Figure 36 is an overall flowchart of the congestion control method for calculating overload rate from the source node according to an embodiment of the present disclosure, applied to the destination node side;
- Figure 37 is an overall flowchart of the congestion control method for calculating overload rate from the destination node according to an embodiment of the present disclosure, applied to the source node side;
- Figure 38A is a schematic diagram of a congestion control method for calculating overload rate from a destination node according to an embodiment of the present disclosure.
- Figure 38B is an interactive schematic diagram of the congestion control method for calculating overload rate by the destination node according to an embodiment of the present disclosure applied to the source node side;
- Figure 39 is an overall flowchart of the congestion control method for calculating overload rate from the destination node according to an embodiment of the present disclosure, applied to the destination node side;
- Figure 40 is an interactive schematic diagram of the congestion control method for calculating overload rate by the destination node according to an embodiment of the present disclosure applied to the destination node side;
- Figure 41 is a detailed implementation diagram of a congestion control method according to an embodiment of the present disclosure.
- Figure 42 is a block diagram of a congestion control device applied to the source node side according to an embodiment of the present disclosure
- Figure 43 is a block diagram of a congestion control device applied to the destination node side according to an embodiment of the present disclosure.
- Figure 44 is a terminal structure diagram of performing a congestion control method according to an embodiment of the present disclosure.
- Figure 45 is a server structure diagram of performing a congestion control method according to an embodiment of the present disclosure.
- Data center network It is a complex arrangement of network devices such as routers, switches, and interfaces. These network devices cooperate and work together to provide faster and more reliable network services.
- a message is a data unit exchanged and transmitted in a network; it is a block of data that a node sends at one time.
- messages are encapsulated into packets, frames, or groups during transmission. Encapsulation is achieved by adding information segments such as message headers and organizing the data according to a specific format.
- a message contains complete data information to be transmitted, and its length is variable and has no fixed limit.
- ECN Explicit Congestion Notification
- DCQCN Data Center Quantitative Congestion Notification
- HPCC High-Precision Congestion Control
- embodiments of this disclosure provide a congestion control method, apparatus, electronic device, computer-readable medium, and computer program product, which can update a first congestion window based on the overload rate of the switching node, thereby precisely controlling the number of target packets sent and achieving accurate congestion control. Furthermore, the method used in these embodiments only requires inserting a first number of target packets carrying congestion markers and a second number of target packets carrying unobstructed markers into the acknowledgment response returned by the destination node to accurately perform congestion control. This method has low customization requirements for the destination node and does not require additional customization of the switching node, making it easy to deploy.
- Figures 1A and 1B are system architecture diagrams of the congestion control method applied according to embodiments of the present disclosure.
- the system architecture diagrams include: object terminal 110, Internet 120, gateway 130, and server 140.
- Object terminal 110 is a device used by an object to send or receive messages corresponding to messages.
- Object terminal 110 can take various forms, such as desktop computers, laptops, personal digital assistants (PDAs), mobile phones, in-vehicle terminals, home theater terminals, and dedicated terminals.
- object terminal 110 can be a single device or a collection of multiple devices. For example, multiple devices can be connected via a local area network, sharing a single display device to work collaboratively, forming a single terminal.
- Object terminal 110 can also communicate with the Internet 120 via wired or wireless means to exchange data.
- Gateway 130 also known as an internetwork connector or protocol converter, is a computer system or device that enables network interconnection at the transport layer and acts as a translator. It bridges the gap between two systems using different communication protocols, data formats, languages, or even completely different architectures. Gateway 130 also provides filtering and security functions. Messages sent from target terminal 110 to server 140 are forwarded to the corresponding server 140 via gateway 130. Messages sent from server 140 to target terminal 110 are also forwarded to the corresponding target terminal 110 via gateway 130.
- Server 140 refers to a computer system capable of providing congestion control services. Compared to the target terminal 110, server 140 has higher requirements in terms of stability, security, and performance. Server 140 can be a single high-performance computer in a network platform, a cluster of multiple high-performance computers, a portion of a single high-performance computer (e.g., a virtual machine), or a combination of portions of multiple high-performance computers (e.g., virtual machines). Furthermore, server 140 includes a connection sending unit that can provide congestion control, reliable reception, and reliable delivery functions. This connection sending unit can communicate with the Internet 120 via wired or wireless means to exchange data, thereby achieving congestion control.
- the target terminal 110 sends a message to the server 140 via the Internet 120 and the gateway 130.
- the server 140 receives the message and executes a congestion control method. Based on a first congestion window, it sends a message to the destination node and receives the acknowledgment response returned by the destination node. Based on the acknowledgment response, which includes a first number of messages carrying congestion markers and a second number of messages carrying unobstructed markers, the server determines the overload rate of the switching node and updates the first congestion window based on the overload rate to control the number of unsent messages accommodated, thereby adjusting the sending rate to the destination node and achieving congestion control.
- server 140 can receive messages sent by target terminal 110 through the reliable receiving function of the connected sending unit, and then implement a congestion control method through the congestion control function of the connected sending unit to control the number of unsent messages to be accommodated, thereby adjusting the sending rate to the destination node and thus achieving congestion control.
- Figure 2A is a schematic diagram of the software configuration of the server to which the congestion control method according to an embodiment of the present disclosure is applied.
- Figure 2B is a schematic diagram of the hardware configuration of the server to which the congestion control method according to an embodiment of the present disclosure is applied.
- the source node can be implemented as a technical component for data transmission within the transport protocol stack.
- embodiments of the present disclosure can be implemented within a software transport protocol stack.
- embodiments of the present disclosure can be implemented as a congestion control component similar to that within the TCP protocol stack, within the software transport protocol stack.
- embodiments of the present disclosure can be implemented using a smart network interface card (NIC), i.e., implemented in the form of hardware circuitry or CPU microcode.
- NIC smart network interface card
- the congestion control method provided in this disclosure can provide data transmission services and congestion control services for artificial intelligence (AI) training, cloud storage, virtual private cloud (VPC), remote dictionary server (Redis) databases, etc.
- AI artificial intelligence
- VPC virtual private cloud
- Redis remote dictionary server
- H0-H15 can represent multiple servers in a data center, used to store and send message data.
- server H0 stores message data A
- server H1 stores message data B.
- LA0-LA31 and LC0-LC7 can represent multiple switches in a data center, used to forward data.
- servers H0-H15 can also connect to external applications to receive message data corresponding to that application and transmit it to other servers in the data center network.
- Figure 3 shows a data center network with three layers of switches: access layer, aggregation layer, and core layer.
- the access layer switches include LA16-LA31
- the aggregation layer switches include LA0-LA15
- the core layer switches include LC0-LC7.
- Servers are connected to the access layer switches. It's important to note that in mainstream data center networks, to increase communication bandwidth and connection reliability between servers, the source node server typically uses two links to connect to two switches in the access layer (i.e., each of the server's two network ports is connected to one of the two switches). Similarly, the destination node server typically uses two links to connect to two switches in the access layer. For example, switch H0 uses two links to connect to access layer switches LA16 and LA17.
- the source node servers at the sending end include H0-H7
- the destination node servers at the receiving end include H9-H15.
- a source node server at the sending end needs to send message data corresponding to a certain application to the destination node server at the receiving end, it first needs to send the message data to the access layer switch.
- the access layer switch forwards the message data to the aggregation layer switch, which then forwards it to the core layer switch.
- the core layer forwards the message data to the aggregation layer switch, which then forwards it to the access layer switch.
- the access layer switch forwards the received message data to the destination node server at the receiving end.
- Source node server H1 first sends packet data A to the access layer switch LA16, which forwards packet data A to the aggregation layer switch LA1, which then forwards it to the core layer switch LC2.
- switch LC2 forwards packet data A to the aggregation layer switch LA9, which then forwards it to the access layer switch LA24.
- switch LA24 forwards packet data A to the destination node server H9, which sends an acknowledgment to the source node server H1, confirming that the destination node server H9 has received packet data A.
- DCQCN Data Center Quantitative Congestion Notification
- HPCC High-Precision Congestion Control
- the rate-adjusting granularity of DCQCN's deceleration and acceleration algorithms is relatively coarse, making it difficult to accurately execute congestion control.
- HPCC relies on obtaining the status information of the switches through which the data flow passes, which places excessive demands on switch customization, making it difficult to apply to actual production and deployment.
- the embodiments of this disclosure provide a congestion control method, apparatus, electronic device, computer-readable medium, and computer program product that can update a first congestion sliding window based on the overload rate, accurately executing congestion control. Furthermore, the embodiments of this disclosure only require inserting a first number of target packets carrying congestion markers and a second number of target packets carrying unobstructed flow markers into the acknowledgment response returned by the destination node. This reduces the customization requirements for the destination node and eliminates the need for additional customization of the switching node, making it easy to deploy.
- Congestion control is a global process.
- congestion control methods refer to the coordinated action of the source node server at the sending end, the destination node server at the receiving end, and the switching nodes that forward packet data to regulate the packet flow in the data center, thereby alleviating or relieving congestion and enabling the data center network to withstand the current network load.
- the congestion control method of this embodiment is executed on the server 110 of the source node and the destination node.
- the server 110 of the source node transmits the message from the object terminal 110 to the server 110 of the destination node.
- the destination node transmits the received message to the object terminal 110 through the gateway 130 and the Internet 120.
- the object terminal 110 displays the information corresponding to the message to the target object.
- the congestion control method applied to the source node includes:
- Step 410 Send a message to the destination node based on the first congestion window, wherein the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate the first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the messages to be sent and the messages to be sent that are accommodated in the first congestion window are sent.
- Step 420 Receive the acknowledgment response returned by the destination node.
- the acknowledgment response includes a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags.
- Step 430 Determine the overload rate of the switching node based on the first quantity and the second quantity;
- Step 440 Update the first congestion window based on the overload rate, wherein the number of packets to be sent that can be accommodated is controlled by the updated first congestion window.
- a message is sent to the destination node based on the first congestion window.
- the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate a first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the message to be sent and the message to be sent that has been accommodated in the first congestion window is sent.
- the source node can be a server sending messages
- the destination node can be a server receiving messages.
- the source node and the destination node correspond to each other, and a connection is established between the source node and the destination node.
- the source node sends a message to the destination node, after receiving the message sent by the source node, the destination node needs to return an acknowledgment response to the source node that sent the message, so that the source node knows that the destination node has received the message.
- the pending message queue refers to a queue of messages that the source node has not yet sent; that is, a queue of messages to be sent (referred to as pending messages). For example, if the source node has messages 1, 2, 3, 4, and 5 that have not yet been sent, then the queue consisting of these messages can be considered the pending message queue.
- the first congestion window is a dynamic state variable maintained by the source node. Based on a dynamically adjusted window length, it limits the number of packets the source node can send, thereby preventing overload of the switching node and achieving congestion control.
- the first congestion window can dynamically change according to the congestion level of the data center network.
- the first congestion window refers to a window moving within the source node's pending packet queue, and it can be used to indicate the first number of packets sent to the destination node.
- This first number of packets refers to packets that the source node has sent but has not yet received an acknowledgment from the destination node.
- the first number is the window size (i.e., window length) of the first congestion window. Referring to Figure 5, if packets 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, and 13 are present in the first congestion window, then the first number is 12.
- the source node During data transmission, once the source node receives an acknowledgment for one of the first number of packets, it slides the first congestion window to accommodate more unsent packets, and then sends the accommodated unsent packets.
- the source node has already received an acknowledgment for packet 1.
- the source node sends a packet to the destination node based on the first congestion window.
- the first congestion window contains packets 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, and 13. These packets are all packets that the source node has sent but has not yet received an acknowledgment for.
- the first congestion window slides to accommodate the unsent packet 14, and then sends packet 14 to the destination node.
- an acknowledgment response is received from the destination node.
- the acknowledgment response includes a first number of packets carrying congestion tags and a second number of packets carrying unobstructed tags.
- An exchange node is provided between the source node and the destination node. Both the congestion tag and the unobstructed tag are obtained by the exchange node marking the packets received by the exchange node based on the buffer queue within the exchange node.
- a switching node refers to a device used to forward messages sent by a source node to a destination node; for example, a switching node can be a switch.
- a switching node can be a switch.
- at least one switching node is provided between the source node and the destination node.
- the packets entering a switching node from different ports are routed to the same outgoing port, due to the mismatch in transmit and receive bandwidth (i.e., the receive bandwidth of the two receiving ports is greater than the transmit bandwidth of one outgoing port), the packets will accumulate in the buffer of the switching node's outgoing port, forming a buffer queue.
- the queue length refers to the size of the buffer queue.
- the packets forwarded by switching nodes LA8 and LA9 to switching node LA24 will accumulate in the buffer of switching node LA24's outgoing port, forming a buffer queue.
- the packets forwarded by switching node LA8 to switching node LA24 enter from port 1
- the packets forwarded by switching node LA9 to switching node LA24 enter from port 2.
- These two packets accumulate in the buffer of port 3.
- the shaded area in Figure 9 represents the buffer queue, and the size of the shaded area is the length of the buffer queue.
- Both congestion and unobstructed states are generated by the switching node based on its internal buffer queue.
- a message carrying a congestion flag indicates that the switching node is in a congested state when the message passes through it, while a message carrying an unobstructed state indicates that the switching node is in an unobstructed state when the message passes through it.
- a source node sends a message, it first sets the explicit congestion flag field in the message to 0b10 or 0b01 to enable the explicit congestion flag function.
- the switching node After receiving a message with an explicit congestion flag field, the switching node, before sending the message through its output port, decides whether to modify the explicit congestion flag field based on the current queue length.
- a congestion flag means that the switching node modifies the explicit congestion flag field in the message to 0b11 based on the current queue length; a message carrying a congestion flag refers to a message with an explicit congestion flag field of 0b11.
- the unobstructed flag refers to an explicit congestion flag field in a packet that the switching node has not modified.
- a packet carrying the unobstructed flag is a packet whose explicit congestion flag field is 0b10 or 0b01.
- a switching node exists between the source node and the destination node.
- the source node sends a message to the destination node based on a first congestion window.
- the switching node marks it based on the queue length within the switching node, identifying either a message carrying a congestion mark or a message carrying a free-flowing mark, and forwards the message to the destination node.
- the destination node Upon receiving the forwarded message, the destination node counts the marks carried in the message and inserts the first number of messages carrying congestion marks and the second number of messages carrying free-flowing marks into an acknowledgment response.
- the destination node then sends the acknowledgment response to the source node, allowing the source node to understand the current congestion status of the data center network based on the first and second counts.
- step 430 the overload rate of the switching node is determined based on the first quantity and the second quantity.
- the overload rate is used to characterize the current congestion state of a switching node.
- the overload rate can be used to indicate whether the queue length of the buffer queue inside the switching node exceeds the threshold of packets that the switching node can process.
- Embodiments of this disclosure can intuitively understand the status of the buffer queue inside the switching node through the overload rate, thereby determining the current level of congestion and achieving precise congestion control.
- the first congestion window is updated based on the overload rate, wherein the number of packets to be sent that can be accommodated is controlled by the updated first congestion window.
- a decrease in the size of the first congestion window means the source node can send fewer packets than before the update. This reduces the transmission rate of packets from the source node to the destination node.
- an increase in the size of the first congestion window means the source node can send more packets, thus increasing the transmission rate of packets from the source node to the destination node.
- step 710 the source node sends message 1 to the destination node based on the current first congestion window. If there is no congestion in the current data center network, in step 720, after receiving message 1, exchange node 1 marks message 1 based on the current queue length to obtain message 1 carrying the unobstructed status, and forwards message 1 carrying the unobstructed status to the destination node. In step 730, the destination node receives message 1 carrying the unobstructed status.
- the source node sends message 2 to the destination node based on the first congestion window. If congestion exists in the current data center network, in step 750, after receiving message 2, switching node 1 marks message 2 based on the current queue length, obtaining message 2 carrying a congestion mark, and forwards message 2 carrying the congestion mark to the destination node. In step 760, the destination node receives message 2 carrying the congestion mark. At this point, the destination node has received two messages. In step 770, the first number of messages carrying the congestion mark and the second number of messages carrying the unobstructed mark are written into the acknowledgment response, where the first number is 1 and the second number is 1. The destination node returns an acknowledgment response to the source node.
- the source node After receiving the acknowledgment response, in step 780, the source node determines the overload rate of switching node 1 based on the first and second numbers in the acknowledgment response. In step 790, the first congestion window is updated based on the overload rate to adjust the sending rate of messages from the source node to the destination node. It should be noted that the embodiments of this disclosure achieve precise congestion control by updating the first congestion window based on the overload rate, thereby adjusting the transmission rate of packets sent from the source node to the destination node.
- steps 410 to 440 described above can receive an acknowledgment response returned by the destination node and determine the overload rate of the switching node based on the first number of packets carrying congestion flags and the second number of packets carrying unobstructed flags contained in the acknowledgment response.
- the overload rate can accurately reflect the current congestion status of the switching nodes in the link.
- the number of target packets sent can be precisely controlled, thereby achieving precise congestion control.
- the length of the first congestion window is not increased, thus preventing the transmission of new packets and alleviating network congestion.
- the load status of the switching node reflected by the overload rate is light, the length of the first congestion window is increased to accommodate new packets for transmission, fully utilizing network bandwidth and achieving precise congestion control.
- the method used in this embodiment only needs to insert a first number of target packets carrying congestion flags and a second number of target packets carrying unobstructed flags into the acknowledgment response returned by the destination node to accurately perform congestion control. It has low customization requirements for the destination node and does not require additional customization of the switching node, making it easy to deploy.
- step 410 has been described in sufficient detail above, the specific implementation process of steps 420 to 440 will be described in detail below.
- Step 420 will be described in detail below.
- an acknowledgment response is received from the destination node.
- the acknowledgment response includes a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags.
- An exchange node is provided between the source node and the destination node. Both the congestion flag and the unobstructed flag are obtained by the exchange node marking the packets received by the exchange node based on the buffer queue within the exchange node.
- the congestion mark and the unobstructed mark in step 420 are obtained by the switching node marking packets based on the buffer queues within the switching node in the following manner: when the length of the buffer queue within the switching node is less than or equal to the length of a first queue, an unobstructed mark is added to the packet; when the length of the buffer queue within the switching node is greater than or equal to the length of a second queue, a congestion mark is added to the packet, wherein the length of the second queue is greater than the length of the first queue; when the length of the buffer queue within the switching node is greater than the length of the first queue and less than the length of the second queue, a congestion mark is added to the packet with a first probability, and an unobstructed mark is added to the packet with the complement of the first probability, wherein the complement of the first probability is the difference between 1 and the first probability, and the first probability changes linearly with the queue length between the length of the first queue and the length of the second queue. For example, assuming the first
- the first queue length refers to the queue length of the switching node corresponding to the lower limit for marking packets.
- the queue length of the switching node's buffer queue exceeds the first queue length, it indicates that congestion may exist, and the switching node begins to probabilistically add a congestion mark to the packet.
- the second queue length refers to the queue length of the switching node corresponding to the upper limit for marking packets. Referring to Figure 10, when the queue length of the switching node's buffer queue exceeds the second queue length, it indicates that congestion definitely exists, and the probability of the switching node adding a congestion mark to the packet is 100%.
- the probability of adding a congestion mark to the packet increases linearly with the increase of the queue length of the switching node's buffer queue. That is, the longer the queue length of the switching node's buffer queue, the greater the probability of adding a congestion mark to the packet.
- the first probability refers to the probability of adding a congestion mark to the packet.
- the first queue length is 5 and the second queue length is 15. If the queue length of the buffer queue within the current switching node is less than 5, it indicates that the current switching node is not congested, and a clear flag is added to the packet (i.e., the explicit congestion field of the packet is not modified). If the queue length of the buffer queue within the current switching node is 10, which is between 5 and 15, it indicates that congestion may occur within the current switching node. In this case, the first probability is 50%, and a congestion flag is added to the packet with the first probability, and a clear flag is added to the packet with a 50% probability. If the queue length of the buffer queue within the current switching node is 20, it indicates that congestion definitely occurs within the current switching node, and the probability of adding a congestion flag to the packet is 100%.
- the above embodiments can probabilistically mark packets based on the queue length of the buffer queue within the switching node, which makes it easier for the source node to understand the current congestion situation within the switching node more accurately after receiving a first number of packets carrying congestion marks and a second number of packets carrying unobstructed marks.
- this embodiment of the disclosure achieves refined congestion control through multi-level thresholds (i.e., the first queue length and the second queue length) and a probabilistic marking mechanism, specifically: (1) setting dual queue length thresholds (first queue length ⁇ second queue length), marking smooth flow when lightly loaded ( ⁇ first queue length) and forcibly marking congestion when heavily loaded ( ⁇ second queue length), ensuring rapid response in extreme scenarios; (2) in intermediate load states (first queue length ⁇ queue length ⁇ second queue length), adopting a linearly changing probabilistic marking strategy, so that the congestion marking probability increases smoothly with the queue length, avoiding the "jumping" response of traditional binary ECN, and gradually adjusting the traffic, effectively balancing throughput and latency; (3) automatically maintaining the mathematical completeness of the marking behavior through a probability complement mechanism (1 - first probability), reducing implementation complexity.
- This design significantly improves the stability of data center networks under high load fluctuation scenarios.
- the acknowledgment response in step 420 is sent by the destination node in the following manner:
- Step 810 When it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, a first quantity and a second quantity are determined based on the messages received within the predetermined time period, and an acknowledgment is generated and sent based on the first quantity and the second quantity.
- Step 820 When a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, determine a first quantity and a second quantity based on the predetermined number of messages, and generate and send an acknowledgment based on the first quantity and the second quantity.
- Steps 810 to 820 are described in detail below.
- step 810 when it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, a first quantity and a second quantity are determined based on the messages received within the predetermined time period, and an acknowledgment is generated and sent based on the first quantity and the second quantity.
- the predetermined time period can be a pre-set time period, and the predetermined time period can be set according to the forwarding capability of the switching node and the processing capability of the destination node.
- the predetermined time period can be one second or one minute. For example, assuming the predetermined time period is one minute, if the destination node determines that one minute has passed since sending the previous acknowledgment, it determines a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags based on the packets received within this minute. After determining the first and second numbers, the destination node inserts the first and second numbers into the acknowledgment and returns the acknowledgment to the source node. After one minute has passed, the destination node will generate and send an acknowledgment again based on the first and second numbers counted in the next minute.
- destination nodes may experience long intervals between receiving packets, leading to wasted data center network resources.
- This disclosure addresses this issue by setting a predetermined time period, determining a first and second quantity of packets received within that period, and generating and issuing an acknowledgment response based on these quantities.
- step 820 when a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, a first quantity and a second quantity are determined based on the predetermined number of messages, and an acknowledgment is generated and sent based on the first quantity and the second quantity.
- the embodiments of this disclosure in addition to setting a predetermined time period, also set a predetermined number to improve the real-time performance of the data center network.
- the predetermined number is a pre-set value, and it can be set according to the packet forwarding capacity of the switching node and the packet processing capacity of the destination node.
- the predetermined number can be 1, 5, or 10.
- the destination node determines a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags based on these 5 packets. After determining the first and second numbers, the destination node inserts these numbers into the acknowledgment and returns the acknowledgment to the source node. If another minute has passed, or if less than one minute has passed but the destination node has already received 5 packets, the destination will return another acknowledgment to the source node.
- steps 810 to 820 described above by setting a predetermined time period and determining a first quantity and a second quantity based on the messages received within that predetermined time period, and generating and sending an acknowledgment response based on the first quantity and the second quantity, avoid the resource waste caused by idle data center networks. Furthermore, in addition to setting a predetermined time period, a predetermined number is also set to prevent the destination node from receiving too many messages within the predetermined time period before generating an acknowledgment response, thus increasing the real-time performance of the data center network.
- Step 430 will be described in detail below.
- Step 430 Determine the overload rate of the switching node based on the first quantity and the second quantity.
- step 430 includes:
- Step 1110 When the first cycle is reached, determine the statistical labeling probability of the exchange nodes in the first cycle based on the first quantity and the second quantity;
- Step 1120 Determine the statistical queue length of the swapping nodes in the first period based on the statistical label probability
- Step 1130 Based on the statistical queue length, determine the overload rate of the exchange nodes in the first cycle.
- Steps 1110 to 1130 are described in detail below:
- step 1110 when the first period is reached, the statistical labeling probability of the exchange nodes in the first period is determined based on the first quantity and the second quantity.
- a switching node can probabilistically mark packets based on queue length and forward them to the destination node, neither the source nor the destination node knows the probability of the switching node marking the packets. Therefore, in embodiments of this disclosure, each time the source node reaches the first period, it can determine the statistical marking probability of the switching node in the first period based on a first number of packets carrying congestion markings and a second number of packets carrying unobstructed markings. This allows for estimating the probability of the switching node marking packets based on queue length in the first period, thereby accurately obtaining the congestion situation within the switching node. It should be noted that the statistical marking probability is not updated every first period, but rather updated after each received acknowledgment.
- the statistical marking probability determined every first period is the statistical marking probability obtained from the last update in the first period. Furthermore, the statistical marking probability does not refer to the probability of the switching node marking a particular packet, but rather to the average probability of the switching node marking all received packets within the first period.
- the statistical labeling probability is a quantitative indicator dynamically calculated by the source node through continuous monitoring of received acknowledgments, reflecting the overall congestion behavior of the switching node within the first period (as a statistical observation window).
- the statistical labeling probability characterizes the average labeling probability of a switching node for all passing packets within the first period, rather than the instantaneous labeling probability for a single packet. For example, if a switching node labels 1000 packets in the first period, and 300 packets are labeled as congested, the statistical labeling probability is 30%.
- the source node can accurately infer the queue status of the switching node, providing fine-grained input for congestion control.
- the first period can be determined by: obtaining the number of acknowledgment responses received per unit time; obtaining the real-time performance of the service to which the message belongs; and determining the first period based on the number of acknowledgment responses and the real-time performance.
- the source node receives only one acknowledgment response every two unit time intervals, and the first period is one unit time interval. Since the overload rate is updated every first period, a change in the overload rate may only occur every two first periods, which would waste the source node's computing resources. To conserve the source node's computing resources, the number of acknowledgment responses received per unit time interval needs to be considered when determining the first period.
- the service to which the message belongs has a high degree of real-time performance, and the first period is relatively long.
- the source node will send the message with a large first congestion sliding window within the first period. If the switching node becomes congested during this process, but is limited by the overload rate being updated every first period, the switching node will remain in a congested state for a long time before the next first period arrives, thereby greatly reducing the message transmission speed. This is detrimental to the real-time performance of the service. Therefore, the degree of real-time performance needs to be considered when determining the first period.
- the degree of real-time performance can be represented by a percentage; the higher the percentage corresponding to the degree of real-time performance, the stronger the real-time performance of the service to which the message belongs.
- a first score can be determined based on the number of acknowledgment responses received per unit time
- a second score can be determined based on the real-time performance of the service to which the message belongs
- a third score can be determined based on the first and second scores
- a first period can be determined based on the third score.
- determining the first score based on the number of acknowledgment responses received per unit time can be done using a lookup table, for example, by using a table showing the correspondence between the number of acknowledgment responses received per unit time and the first score.
- determining the first score can be done using a substitution method, for example, by substituting the number of acknowledgment responses received per unit time into a pre-set formula for the number of acknowledgment responses received per unit time and the first score.
- determining the second score based on the real-time performance of the service to which the message belongs can be done using a lookup table, for example, by using a table showing the correspondence between the real-time performance of the service to which the message belongs and the second score. The second score can be determined based on the real-time performance of the service to which the message belongs.
- a substitution method can be used, for example, by substituting the real-time performance of the service to which the message belongs into a pre-set formula for the real-time performance of the service to which the message belongs and the second score, to obtain the second score corresponding to the real-time performance of the service to which the message belongs.
- the third score can be the sum of the first and second scores.
- different weights can be assigned to the first and second scores based on the real-time importance of the service to which the message belongs and the importance of the number of acknowledgments received per unit time, thus determining the third score as a weighted sum of the first and second scores.
- the first period can be determined based on the third score using a lookup table, for example, by using a table showing the correspondence between the third score and the first period.
- Another method is substitution, for example, by substituting the third score into a pre-set formula for the third score and the first period to obtain the corresponding first period.
- the third score is the sum of the first and second scores. If the number of acknowledgment responses received in the current unit is 13, and the real-time performance of the service to which the message belongs is 65%, then the first score corresponding to the number of acknowledgment responses received in the current unit can be determined to be 10, and the second score corresponding to the real-time performance of the service to which the message belongs can be determined to be 12.
- the sum of the first and second scores is 22, which corresponds to determining the first period as 1 unit of time.
- step 1120 the statistical queue length of the swapping nodes in the first period is determined based on the statistical label probability.
- the statistical queue length does not refer to the queue length of the switching node at a certain moment, but rather to the average queue length of the switching node in the first period.
- embodiments of this disclosure can also calculate the average queue length of the switching node in the first period based on the statistical labeling probability, thereby gaining a more accurate understanding of the congestion situation within the switching node.
- Statistical queue length is a quantitative indicator calculated by the source node based on statistical label probabilities, reflecting the average congestion level of the switching node within a complete statistical period (i.e., the first period).
- Statistical queue length represents the average queue length of the switching node at all times within the first period, rather than an instantaneous value, thus avoiding misjudgments caused by short-term fluctuations.
- step 1130 the overload rate of the switching nodes in the first cycle is determined based on the statistical queue length.
- the overload rate can also reflect the degree of overload of the switching node in the first period, and the magnitude of the overload rate reflects the current congestion status of the switching node's ports.
- Embodiments of this disclosure can determine the overload rate of the switching node in the first period based on the statistical queue length, thereby determining the degree of overload of the switching node in the first period, facilitating a more accurate understanding of the congestion status of the switching node's ports.
- the average probability of the switching node marking all received packets in the first cycle can be determined based on the first and second quantities. Based on this, the average queue length of the buffer queue of the switching node in the first cycle is calculated, thereby determining the degree of overload of the switching node in the first cycle. This facilitates accurate knowledge of the congestion situation within the switching node, thereby achieving precise congestion control.
- steps 1110 to 1130 achieve accurate perception and dynamic control of congestion within the switching node through an innovative three-level quantitative analysis mechanism, specifically reflected in: 1) Multi-dimensional congestion perception: By periodically (in the first cycle) statistically analyzing congested/unobstructed packets, the statistical marking probability reflecting the overall behavior of the switching node is calculated. Then, the statistical queue length is derived from the statistical marking probability, and finally, the overload rate is deduced, forming a complete analysis chain from packet marking to queue status to overload degree; 2) Anti-interference precise control: Decisions are made based on periodic averages rather than instantaneous values, effectively smoothing out misjudgments caused by sudden traffic.
- steps 1110 to 1130 The above is a general description of steps 1110 to 1130. The specific implementation process of steps 1110, 1120 and 1130 will be described in detail below.
- step 1110 includes:
- Step 1310 Obtain the first sequence of acknowledgment responses received within the first period
- Step 1320 Take the first confirmed response in the first sequence as the confirmed response to be examined, and initialize the statistical label probability
- Step 1330 Update the statistical label probability based on the first and second quantities in the confirmed responses to be examined;
- Step 1340 Update the confirmed response to be examined based on the next confirmed response in the first sequence, and return to the step of updating the statistical label probability based on the first and second quantities in the confirmed responses to be examined, until the first sequence does not contain the next confirmed response to be examined.
- Steps 1310 to 1340 are described in detail below:
- step 1310 a first sequence consisting of acknowledgments received within the first period is obtained.
- the first sequence refers to the sequence of acknowledgment responses received within a first period.
- acknowledgment responses 1, 2, 3, 4, and 5 are received within the first period
- the first sequence is the sequence of acknowledgment responses 1, 2, 3, 4, and 5.
- step 1320 the first confirmed response in the first sequence is taken as the confirmed response to be examined, and the statistical label probability is initialized.
- the confirmation response to be examined refers to the confirmation response used in calculating the statistical label probability.
- the source node needs to calculate the statistical label probability once after receiving a confirmation response from the destination node; that is, the statistical label probability is updated once for each confirmation response received.
- the first confirmation response in the first sequence refers to the first confirmation response received within the current first period. Therefore, the first confirmation response in the first sequence is first considered the confirmation response to be examined.
- the first sequence is a sequence consisting of confirmation response 1, confirmation response 2, confirmation response 3, confirmation response 4, and confirmation response 5. In this case, confirmation response 1 in the first sequence is considered the confirmation response to be examined.
- the initialized statistical label probability (referring to the statistical label probability that has not yet been updated) can be the statistical label probability calculated in the previous first cycle, or it can be a preset probability.
- step 1330 the statistical label probability is updated based on the first and second quantities in the confirmed responses to be examined.
- the acknowledgment response to be examined includes a first number of packets carrying congestion tags and a second number of packets carrying unobstructed access tags.
- the statistical marking probability can be updated based on the first and second numbers to obtain the updated statistical marking probability.
- the updated statistical marking probability refers to a quantitative indicator reflecting the overall marking behavior of the switching nodes within the latest time period, dynamically calculated by the source node after receiving the acknowledgment response to be examined, based on the number of congestion-tagged packets (first number) and unobstructed access tags (second number) carried in the acknowledgment response to be examined.
- the updated statistical marking probability reflects the average probability that the switching nodes mark all received packets within the time period corresponding to the acknowledgment response to be examined.
- the time period corresponding to the acknowledgment response to be examined refers to the time period from the previous acknowledgment response received by the source node to the time period when the source node receives the acknowledgment response to be examined.
- the updated statistical labeling probability has temporal locality, that is, it specifically represents the labeling probability within a specific time period from the time of receiving the previous acknowledgment to the time of receiving the current acknowledgment, rather than the global average; (3) Statistical completeness: The calculation result is essentially the average labeling probability of the switching node for all flowing packets within this time period.
- the updated statistical labeling probability is 20%, which directly reflects the average queue load level of the switching node within this time period.
- step 1340 the confirmed response to be examined is updated based on the next confirmed response to be examined in the first sequence, and the step of updating the statistical marker probability based on the first quantity and the second quantity in the confirmed responses to be examined is returned until the first sequence does not contain the next confirmed response to be examined.
- the statistical label probability is updated as many times as there are acknowledgment responses in the first sequence. For example, suppose acknowledgment responses 1, 2, and 3 are received in the first period, forming the first sequence. During the update of the statistical label probability, acknowledgment response 1 in the first sequence is first taken as the acknowledgment response to be examined, and its statistical label probability is initialized. Then, the statistical label probability is updated based on the first and second quantities in acknowledgment response 1, resulting in statistical label probability 1.
- acknowledgment response 2 which follows acknowledgment response 1
- acknowledgment response 3 which follows acknowledgment response 2
- the statistical label probability 2 is updated based on the first and second quantities in acknowledgment response 3, resulting in statistical label probability 3.
- steps 1310 to 1340 above obtain the first sequence of acknowledgment responses received in the first period, and take the first acknowledgment response in the first sequence as the response to be examined.
- the statistical marking probability is updated based on the first and second quantities in the responses to be examined, and the statistical marking probability is iteratively updated according to the number of acknowledgment responses in the first sequence. This facilitates the subsequent calculation of the statistical queue length and the overload rate of the switching node based on the statistical marking probability, thereby achieving more accurate congestion control through a dynamic iterative update mechanism.
- Incremental probability statistics By processing all acknowledgment responses received in the first period (first sequence) in sequence, the number of congestion-marked packets (first quantity) and the number of unobstructed packets (second quantity) carried by each acknowledgment response to be examined are calculated successively to continuously update the statistical marking probability and ensure that the result always reflects the latest network status; 2) Time sequence integrity guarantee: Iterative processing is strictly carried out according to the arrival order of acknowledgment responses to avoid statistical deviations caused by out-of-order packets.
- step 1330 The above is a general description of steps 1310 to 1340. The following is a detailed description of the specific implementation process of step 1330.
- step 1330 includes:
- Step 1510 Initialize the first count value and the second count value to 1 respectively;
- Step 1520 When the first count value is less than or equal to the first quantity, increase the statistical mark probability and increase the first count value using the first mark probability increase method.
- Step 1530 Return to the step of increasing the statistical label probability using the first label probability increase method when the first count value is less than or equal to the first quantity, until the first count value is greater than the first quantity;
- Step 1540 When the second count value is less than or equal to the second quantity, use the first mark probability reduction method to reduce the statistical mark probability and increase the second count value;
- Step 1550 Return to the step of reducing the statistical label probability using the first label probability reduction method when the second count value is less than or equal to the second quantity, until the second count value is greater than the second quantity.
- Steps 1510 to 1550 are described in detail below:
- step 1510 the first count value and the second count value are initialized to 1, respectively.
- a first count value is used to indicate the number of times the step of increasing the statistical label probability is performed.
- the first count value is similar to a register, used to count the number of times the step of increasing the statistical label probability is currently performed.
- a second count value is used to indicate the number of times the step of decreasing the statistical label probability is performed.
- the second count value is similar to a register, used to count the number of times the step of decreasing the statistical label probability is currently performed.
- the source node needs to update the statistical label probability after receiving each acknowledgment, the number of times the statistical label probability is increased and decreased during this update is determined by the first and second counts in the acknowledgment. Because the first and second counts may differ in each acknowledgment, the number of times the statistical label probability is increased and decreased also needs to be adjusted. Therefore, the source node needs to initialize the first and second count values each time it receives an acknowledgment.
- step 1520 when the first count value is less than or equal to the first quantity, the statistical mark probability is increased using the first mark probability increase method, and the first count value is increased.
- the first label probability increasing method refers to an algorithm used to increase the statistical label probability when updating the statistical label probability.
- Each execution of the step to increase the statistical label probability means increasing the statistical label probability by one time using the first label probability increasing method.
- the number of times the step to increase the statistical label probability is executed each time an acknowledgment response is received and the statistical label probability is updated is the same as the first number in the acknowledgment response.
- the first and second counts are initialized to 1 upon receiving each acknowledgment, the first count is only incremented after each step of increasing the statistical probability. This means that the actual number of times the step of increasing the statistical probability is executed is the first count minus one. Therefore, if the first count is less than or equal to the first quantity, a step of increasing the statistical probability must be executed. Furthermore, after each step of increasing the statistical probability is executed, the first count is incremented by 1 to indicate that another step of increasing the statistical probability has been performed.
- the source node first initializes the first count value and the second count value to 1. At this time, the first count value is less than 5, so it is necessary to use the first mark probability increment method to increase the statistical mark probability and increment the first count value by 1, indicating that a step of increasing the statistical probability has been performed.
- step 1530 the step of increasing the statistical label probability using the first label probability increase method when the first count value is less than or equal to the first quantity is returned until the first count value is greater than the first quantity.
- the first quantity in the acknowledgment response refers to the number of packets carrying congestion tags
- the first quantity is proportional to the statistical labeling probability; that is, as the first quantity increases, the statistical labeling probability must also increase.
- the source node executes a first labeling probability increase method based on the first quantity in the acknowledgment response each time it receives one, and the number of times the first labeling probability increase method is executed iteratively is consistent with the first quantity. Because embodiments of this disclosure use a first count value to count the number of times the first labeling probability increase method is executed, the step of increasing the statistical labeling probability will only stop when the first count value is greater than the first quantity.
- the source node first initializes the first and second count values to 1. At this point, the first count value is less than 5, so it needs to increase the statistical marking probability using the first marking probability increment method, incrementing the first count value by 1, resulting in a first count value of 2. However, the first count value is still less than 5, so it will again increase the statistical marking probability using the first marking probability increment method, incrementing the first count value by 1, resulting in a first count value of 3. This process continues iteratively, increasing the statistical marking probability using the first marking probability increment method, until the first count value is greater than the first quantity.
- step 1540 when the second count value is less than or equal to the second quantity, the statistical mark probability is reduced and the second count value is increased using the first mark probability reduction method.
- the first label probability reduction method refers to an algorithm used to reduce the statistical label probability when updating the statistical label probability.
- Each execution of the step to reduce the statistical label probability means using the first label probability reduction method to reduce the statistical label probability by one.
- the number of times the step to reduce the statistical label probability is executed each time an acknowledgment response is received and the statistical label probability is updated is the same as the second number in the acknowledgment response.
- the second count is incremented only after each step of reducing the statistical probability is executed. This means that the actual number of times the step of reducing the statistical probability is executed is the second count minus one. Therefore, if the second count is less than or equal to the second quantity, a step of reducing the statistical probability must be executed. Furthermore, each time a step of reducing the statistical probability is executed, the second count is incremented by 1 to indicate that another step of reducing the statistical probability has been executed.
- the source node first initializes the first and second count values to 1. At this time, the second count value is less than 4, so the statistical mark probability needs to be reduced using the first mark probability reduction method, and the second count value is incremented by 1, indicating that a step of reducing the statistical probability has been performed.
- step 1550 the step of reducing the statistical label probability using the first label probability reduction method is returned when the second count value is less than or equal to the second quantity, until the second count value is greater than the second quantity.
- the second quantity in the acknowledgment response refers to the number of messages carrying the passability flag
- the second quantity is inversely proportional to the statistical marking probability; that is, as the second quantity increases, the statistical marking probability decreases.
- the source node executes a first marking probability reduction method based on the second quantity in each acknowledgment response received, and the number of iterations of the first marking probability reduction method is consistent with the second quantity. Because embodiments of this disclosure use a second count value to count the number of times the first marking probability reduction method is executed, the step of reducing the statistical marking probability will not stop until the second count value is greater than the second quantity.
- the source node first initializes the first and second count values to 1. At this point, the first count value is less than 5, so it needs to increase the statistical marking probability using the first marking probability increment method, incrementing the first count value by 1, resulting in a first count value of 2. However, the first count value is still less than 5, so it continues to increase the statistical marking probability using the first marking probability increment method, incrementing the first count value by 1, resulting in a first count value of 3. This process is repeated iteratively until the first count value is greater than the first quantity.
- the second count value is less than 3, it needs to decrease the statistical marking probability using the first marking probability decrement method, incrementing the second count value by 1, resulting in a second count value of 2.
- the second count value is still less than 3, so it continues to decrease the statistical marking probability using the first marking probability decrement method, incrementing the second count value by 1, resulting in a second count value of 3.
- the second count value is not greater than 3, so it continues to decrease the statistical marking probability using the first marking probability decrement method, incrementing the second count value by 1, resulting in a second count value of 4.
- the second count value is already greater than 3, so the step of statistically marking the probability is stopped.
- a first count value is used to count the number of times the first marking probability increase method is executed.
- the execution of the step of increasing the statistical marking probability stops only when the first count value exceeds a first quantity.
- a second count value is used to count the number of times the first marking probability decrease method is executed.
- the execution of the step of decreasing the statistical marking probability stops only when the second count value exceeds a second quantity.
- steps 1510 to 1550 The above is a general description of steps 1510 to 1550.
- the specific implementation processes of steps 1520 and 1540 are described in detail below.
- step 1520 "when the first count value is less than or equal to the first quantity, increase the statistical mark probability using the first mark probability increase method," includes:
- Step 1610 When the first count value is less than or equal to the first quantity, obtain the first parameter, which is a value between 0 and 1;
- Step 1620 Use the difference between 1 and the first parameter as the second parameter
- Step 1630 Add the product of the statistical label probability and the second parameter to the first parameter to obtain the increased statistical label probability.
- Steps 1610 to 1630 are described in detail below:
- step 1610 when the first count value is less than or equal to the first quantity, the first parameter is obtained, and the first parameter is between 0 and 1.
- the first parameter refers to the weight of updating the statistical label probability.
- the first parameter controls the increasing trend and decreasing trend of the statistical label probability, and the magnitude of the first parameter is directly proportional to the updating trend of the statistical label probability. For example, the larger the first parameter, the greater the difference between the statistical label probability before and after the update; similarly, the smaller the first parameter, the smaller the difference between the statistical label probability before and after the update.
- step 1620 the difference between 1 and the first parameter is used as the second parameter.
- a second parameter is also used when updating the weights of the statistical label probability.
- This second parameter is the difference between 1 and the first parameter.
- the second parameter is also used to control the increasing and decreasing trends of the statistical label probability.
- step 1620 in conjunction with the formula: First, obtain the first parameter w, and use the difference between 1 and the first parameter (1-w) as the second parameter.
- step 1630 the product of the statistical label probability and the second parameter is added to the first parameter to obtain the increased statistical label probability.
- the statistical label probability in "product of statistical label probability and second parameter" refers to the statistical label probability obtained in the last update. Specifically, if the current first count value is equal to 1, it means that the last update of the statistical label probability was the last time an acknowledgment response was received, and the current update of the statistical label probability needs to use the statistical label probability obtained in the last update corresponding to the last acknowledgment response. If the current first count value is less than or equal to the first quantity and is not 1, the current update of the statistical label probability needs to use the statistical label probability obtained when the first count value was last updated.
- step 1630 is explained using the formula: First, obtain the first parameter w, and use the difference between 1 and the first parameter (1-w) as the second parameter. Then, add the product er1 (1-w) of the statistical label probability er1 obtained from the previous update and the second parameter (1-w) to the first parameter w to obtain the increased statistical label probability er.
- w represents the first parameter
- (1-w) represents the second parameter
- er1 represents the statistical label probability obtained from the last update
- er represents the statistical label probability after the addition.
- a first parameter is obtained
- a second parameter is determined by the difference between 1 and the first parameter
- the product of the statistical label probability obtained from the previous update and the second parameter is added to the first parameter to obtain the increased statistical label probability.
- step 1540 "when the second count value is less than or equal to the second quantity, reduce the statistical mark probability using the first mark probability reduction method," includes:
- Step 1710 When the second count value is less than or equal to the second quantity, obtain the first parameter, which is a value between 0 and 1;
- Step 1720 Use the difference between 1 and the first parameter as the second parameter
- Step 1730 The product of the statistical label probability and the second parameter is used as the reduced statistical label probability.
- Steps 1710 to 1730 are described in detail below:
- step 1710 when the second count value is less than or equal to the second quantity, the first parameter is obtained, which is a value between 0 and 1.
- step 1610 The specific implementation of this disclosure is similar to the specific implementation of step 1610 above, which states that "when the first count value is less than or equal to the first quantity, the first parameter is obtained, and the first parameter is between 0 and 1", and will not be described in detail here.
- step 1720 the difference between 1 and the first parameter is used as the second parameter.
- step 1620 The specific implementation of this disclosure is similar to the specific implementation of step 1620 above, which involves "using the difference between 1 and the first parameter as the second parameter", and will not be described in detail here.
- step 1730 the product of the statistical label probability and the second parameter is used as the reduced statistical label probability.
- the statistical label probability in "product of statistical label probability and second parameter" refers to the statistical label probability obtained in the previous update. Specifically, if the current second count value is equal to 1 and the first quantity in the current received confirmation response is 0, it indicates that the previous update of the statistical label probability was performed after the previous confirmation response was received, and the current update of the statistical label probability needs to use the statistical label probability obtained in the last update corresponding to the previous confirmation response.
- the current second count value is equal to 1 and the first quantity in the current received confirmation response is not 0, it indicates that the previous update of the statistical label probability was performed after the statistical label probability increment step was executed after receiving the current confirmation response, and the current update of the statistical label probability needs to use the statistical label probability obtained when the first count value was updated in the previous update. If the current second count value is less than or equal to the first quantity and is not 1, the current update of the statistical label probability needs to use the statistical label probability obtained when the second count value was updated in the previous update.
- w represents the first parameter
- (1-w) represents the second parameter
- er1 represents the statistical label probability obtained from the last update
- er represents the statistical label probability after reduction.
- a first parameter is obtained
- a second parameter is determined by the difference between 1 and the first parameter
- the product of the statistical label probability obtained in the previous update and the second parameter is used as the reduced statistical label probability.
- step 1120 includes:
- Step 1810 Obtain the length of the first queue and the length of the second queue
- Step 1820 Obtain the critical marker probability corresponding to the length of the second queue
- Step 1830 Determine the statistical queue length based on the statistical labeling probability, the length of the first queue, the length of the second queue, and the critical labeling probability.
- Steps 1810 to 1830 are described in detail below:
- step 1810 the length of the first queue and the length of the second queue are obtained.
- the first queue length refers to the queue length of the switching node corresponding to the lower limit of the packet marking.
- the first queue length is between 0 and 10KB.
- the configuration of the first queue length is relatively conservative, typically set to 200KB.
- the setting of the first queue length can be more aggressive compared to the configuration in related technologies. By configuring the first queue length in this way, the source node can more accurately understand the congestion situation within the switching node, thereby achieving more precise congestion control.
- the effectiveness of current congestion control is generally reflected through the queue length of the switching node, bandwidth utilization, and the fairness of bandwidth among different data streams to which different packets belong.
- the embodiments of this disclosure demonstrate through multiple sets of experiments that setting the first queue length between 0 and 10KB can achieve more precise congestion control.
- Table 1 shows the queue length of the switching node, bandwidth utilization, and the fairness of bandwidth among different data streams to which different packets belong for different first queue lengths:
- the queue length of the switching node is lower, and the bandwidth utilization is higher.
- the bandwidth fairness of different packets belonging to different data streams is also higher than that of different packets belonging to different data streams corresponding to other first queue lengths. Therefore, it can be seen that setting the first queue length between 0 and 10KB can achieve more precise congestion control.
- the value of the second queue length is related to the performance target of the service to which the packet belongs. If the service prioritizes extreme latency, then a slight contribution to throughput can be made by setting the second queue length to a smaller value. Conversely, if the service prioritizes maximum throughput, then a slight latency can be tolerated by setting the second queue length to a larger value.
- step 1820 the critical marker probability corresponding to the second queue length is obtained.
- the critical marking probability refers to the first probability corresponding to the second queue length. Referring to Figure 10, assuming that the y-axis coordinate corresponding to the distance from the first queue length to the second queue length is a linear interval of the first probability increase, then the critical marking probability is the largest first probability within this linear interval.
- the critical labeling probability can be 100% or other values.
- the embodiments of this disclosure determine the critical labeling probability to a relatively high value, such as 100%.
- the statistical queue length is determined based on the statistical labeling probability, the first queue length, the second queue length, and the critical labeling probability.
- the statistical queue length refers to the average queue length of the buffer queues of the switching node in the first cycle. Since the statistical marking probability is the average probability that the switching node marks all received packets in the first cycle, and the switching node marks packets based on its internal queue length, as well as the first queue length, second queue length, and critical marking probability, the statistical queue length can be inferred from the statistical marking probability, the first queue length, the second queue length, and the critical marking probability.
- steps 1810 to 1830 described above can infer the statistical queue length based on the statistical labeling probability, the first queue length, the second queue length, and the critical labeling probability, which facilitates the subsequent calculation of the overload rate based on the statistical queue length.
- the updated statistical labeling probability is accurately calculated through the above steps, thereby improving the accuracy of congestion control.
- step 1810 "obtaining the first queue length and the second queue length" includes:
- Step 1910 Obtain the bandwidth and idle latency of the switching node
- Step 1920 Determine the delay-bandwidth product of the switching nodes based on bandwidth and idle latency
- Step 1930 Determine the first coefficient based on the maximum latency of the service to which the message belongs;
- Step 1940 Determine the length of the second queue based on the first coefficient and the delay-bandwidth product.
- Steps 1910 to 1940 are described in detail below:
- step 1910 the bandwidth and idle latency of the switching node are obtained.
- the bandwidth of a switching node refers to the amount of data transmitted per second by the switching node, which can be used to represent the data transmission capacity of the link to which the switching node belongs.
- Idle latency can be expressed as the communication time in a data center network. For example, assuming that message A takes 6 milliseconds to travel from the source node to the destination node when the data center network is idle, then the idle latency is 6 milliseconds.
- the performance of data center network services can be evaluated by measuring the bandwidth and idle latency of switching nodes.
- step 1920 the delay-bandwidth product of the switching node is determined based on bandwidth and idle delay.
- the delay-bandwidth product is a network performance metric, and it is the product of bandwidth and idle delay. Since bandwidth represents the data transmission capacity of the link to which the switching node belongs, and idle delay represents the communication time in the data center network, the delay-bandwidth product can be expressed as the maximum amount of data that the data center network can transmit within any given time period. Furthermore, the delay-bandwidth product can be equivalent to the maximum amount of data packets that the source node has sent but has not yet received an acknowledgment of.
- a first coefficient is determined based on the maximum delay of the service to which the message belongs.
- the value of the first coefficient is related to the performance target of the service to which the message belongs, and the range of the first coefficient can be between 0.5 and 2.
- the first coefficient can be set between 0.5 and 1.5. Conversely, if the service to which the message belongs requires the highest throughput, then a slight latency can be tolerated, and the first coefficient can be set between 1.5 and 2.
- step 1940 the second queue length is determined based on the first coefficient and the delay-bandwidth product.
- the second queue length can be the product of a first coefficient and a delay-bandwidth product.
- Embodiments of this disclosure determine the second queue length by using the first coefficient and the delay-bandwidth product, taking into account the maximum amount of data that the data center network can transmit at any given time, thus improving the accuracy of congestion control.
- the second queue length is the product of the first coefficient and the delay-bandwidth product, i.e., the second queue length is 200KB.
- steps 1910 to 1940 above determine the second queue length based on the product of the first coefficient and the delay bandwidth. This not only takes into account the maximum amount of data that the data center network can transmit at any given time, but also the performance indicators pursued by the service to which the message belongs, thus improving the accuracy of congestion control.
- step 1830 "determining the statistical queue length based on the statistical labeling probability, the first queue length, the second queue length, and the critical labeling probability," includes:
- Step 2010 Determine the first length difference between the second queue length and the first queue length
- Step 2020 Determine the first ratio of the statistical label probability to the critical label probability
- Step 2030 Determine the statistical queue length based on the first queue length, the first length difference, and the first ratio.
- Steps 2010 to 2030 are described in detail below:
- step 2010 a first length difference between the second queue length and the first queue length is determined.
- the first length difference between the second queue length and the first queue length corresponds to a linear interval of the queue length for which the switching node adds a congestion marker.
- step 2010 is explained here with reference to the formula: First, the length of the first queue is obtained as Kmin and the length of the second queue is obtained as Kmax . Then, the first length difference between the length of the second queue as Kmax and the length of the first queue as Kmin is determined to be ( Kmax - Kmin ).
- step 2020 a first ratio of the statistical labeling probability to the critical labeling probability is determined.
- the first ratio refers to the ratio of the statistical labeling probability to the critical labeling probability. Furthermore, the first ratio is calculated to more accurately estimate the queue length corresponding to the statistical labeling probability later.
- step 2020 is explained here with reference to the formula: Having determined the statistical labeling probability as er and the critical labeling probability as Pmax above, we can then determine the first ratio of the statistical labeling probability er to the critical labeling probability Pmax as...
- step 2030 the statistical queue length is determined based on the first queue length, the first length difference, and the first ratio.
- the first queue length is the lower limit for a switching node to add a congestion mark to a packet.
- a switching node will only add a congestion mark to a packet when its queue length exceeds the first queue length.
- the first height difference corresponds to a linear interval of the queue length for which the switching node adds a congestion mark
- the first ratio corresponds to the ratio of the statistical marking probability to the critical marking probability.
- the amount by which the switching node's queue exceeds the first queue length can be calculated by multiplying the first length difference and the first ratio.
- the statistical queue length can be deduced by adding the first queue length to the product of the first length difference and the first ratio.
- step 2030 is explained here with reference to the formula:
- the length of the first queue is already determined above to be Kmin
- the length of the second queue is Kmax
- the first ratio is...
- the first length difference is ( Kmax - Kmin ), indicating that it is based on the first queue length Kmin , the first length difference ( Kmax - Kmin ), and the first ratio.
- the formula for determining the length q of the statistical queue is formula (3):
- Kmin represents the length of the first queue
- Kmax represents the length of the second queue
- ( Kmax - Kmin ) represents the first length difference
- er represents the statistical labeling probability
- Pmax represents the critical labeling probability.
- q represents the first ratio
- q represents the length of the statistical queue.
- steps 2010 to 2030 described above can deduce the statistical queue length based on the first length difference between the second queue length and the first queue length, the first ratio of the statistical labeling probability to the critical labeling probability, and the first queue length. By accurately calculating the updated statistical labeling probability through the above steps, the accuracy of congestion control is improved.
- step 1130 "determining the overload rate of the switching nodes in the first period based on the statistical queue length," includes:
- Step 2110 Based on the statistical queue length, determine the load of the switching nodes in the first cycle
- Step 2120 Obtain the port bandwidth of the switching node
- Step 2130 Based on the load and port bandwidth, determine the overload rate of the switching nodes in the first cycle.
- Steps 2110 to 2130 are described in detail below:
- step 2110 the load of the switching nodes in the first cycle is determined based on the statistical queue length.
- the load is the amount of data corresponding to the packets processed by the switching node in the first cycle. Excessive load may prevent the switching node from processing requests for other packets, or even cause the switching node to malfunction. Since the statistical queue length refers to the average queue length of the switching node's buffer queue in the first cycle, embodiments of this disclosure can calculate the load of the switching node in the first cycle based on the statistical queue length.
- step 2120 the port bandwidth of the switching node is obtained.
- port bandwidth determines the maximum data transmission speed that a switching node's port can handle. For example, a switching node with higher port bandwidth can support higher data transmission speeds, thereby meeting the needs of network applications with high bandwidth requirements. Therefore, to facilitate subsequent estimation of the load corresponding to a switching node under overload conditions, the maximum data transmission speed that the switching node's port can handle, i.e., the switching node's port bandwidth, is first obtained.
- step 2130 the overload rate of the switching node in the first cycle is determined based on the load and port bandwidth.
- the load is the amount of data corresponding to the packets processed by the switching node in the first period
- the port bandwidth determines the maximum data transmission speed that the switching node's port can handle
- the first period determines the period for updating the overload rate.
- steps 2110 to 2130 above can calculate the overload rate of the switching node in the first period based on the load, port bandwidth and the first period, which facilitates subsequent assessment of whether the switching node is congested based on the overload rate of the switching node in the first period, and improves the accuracy of congestion detection.
- steps 2110 to 2130 The above is a general description of steps 2110 to 2130. The specific implementation process of steps 2110 and 2130 will be described in detail below.
- step 2110 "determining the load of the switching nodes in the first period based on the statistical queue length," includes:
- Step 2210 Obtain the queue weight coefficient and queue fluctuation damping coefficient
- Step 2220 Determine the second length difference between the current first period's statistical queue length and the previous first period's statistical queue length
- Step 2230 Based on the queue weight coefficient, the statistical queue length, the queue fluctuation damping coefficient, and the difference between the second length, determine the load of the switching node in the first cycle.
- Steps 2210 to 2230 are described in detail below:
- step 2210 the queue weight coefficient and the queue fluctuation damping coefficient are obtained.
- the queue weight coefficient is a weight assigned to the queue length (hereinafter referred to as internal queue length) of the buffer queue of the switching node in each first cycle, and under normal circumstances, the queue weight coefficient is 1.
- the queue fluctuation damping coefficient is a weight assigned to the changing trend of the queue length of the buffer queue of the switching node in each first cycle, and under normal circumstances, the queue fluctuation damping coefficient is 0.5-1.0.
- step 2220 the second length difference between the current first period's statistical queue length and the previous first period's statistical queue length is determined.
- the second length difference is the difference between the statistical queue length of the current first period and the statistical queue length of the previous first period.
- the second length difference reflects the changing trend of the buffer queue length of the switching node.
- step 2230 the load of the switching node in the first cycle is determined based on the queue weight coefficient, the statistical queue length, the queue fluctuation damping coefficient, and the difference between the second length.
- the queue weight coefficient is a weight assigned to the queue length of the swap node's cache queue in each first cycle
- the statistical queue length refers to the average queue length of the swap node's cache queue in the first cycle.
- the queue fluctuation damping coefficient is a weight assigned to the changing trend of the swap node's cache queue length in each first cycle, and the second length difference reflects the changing trend of the swap node's cache queue length.
- the load corresponding to the queue length of the swap node's cache queue in the first cycle can be calculated using the queue weight coefficient and the statistical queue length.
- the load consumed by the change in the internal queue length of the swap node can be calculated using the queue fluctuation damping coefficient and the second length difference.
- step 2230 is explained here with reference to the formula: First, the queue weight coefficient ⁇ and the queue fluctuation damping coefficient ⁇ are obtained. Then, the second length difference ( qql ) between the statistical queue length q of the current first cycle and the statistical queue length ql of the previous first cycle is determined. Finally, based on the queue weight coefficient ⁇ , the statistical queue length ql , the queue fluctuation damping coefficient ⁇ , and the second length difference ( qql ), the load of the switching node in the first cycle is determined.
- ⁇ represents the queue weight coefficient
- ⁇ represents the queue fluctuation damping coefficient
- q represents the statistical queue length of the current first cycle
- ql represents the statistical queue length of the previous first cycle
- ( qql ) represents the second length difference
- s represents the load of the exchange node in the first cycle.
- a second length difference between the statistical queue length of the current first period and the statistical queue length of the previous first period is determined. Based on the queue weight coefficient, the statistical queue length, the queue fluctuation damping coefficient, and the second length difference, the load of the switching node in the first period is determined.
- the steps in this embodiment of the disclosure consider not only the queue length of the switching node's buffer queue in the current first period but also the queue length of the buffer queue when calculating the load of the switching node, thus improving the accuracy of congestion detection.
- step 2130 "determining the overload rate of the switching node in the first period based on the load, port bandwidth, and the first period," includes:
- Step 2310 Determine the port bandwidth and the first product of the first cycle
- Step 2320 Determine the overload rate as the ratio of the load to the first product.
- Steps 2310 to 2320 are described in detail below:
- step 2310 the port bandwidth and the first product of the first cycle are determined.
- the first product is the product of the port bandwidth and the first cycle.
- the first product can indicate the maximum amount of data that the switching node port can process in the first cycle.
- step 2310 is explained in conjunction with the formula: First, obtain the port bandwidth B and the first period T, and then determine the first product of the port bandwidth B and the first period T as B.T.
- step 2320 the ratio of the load amount to the first product is determined as the overload rate.
- the first product indicates the maximum amount of data that the switching node port can process in the first cycle
- the load indicates the amount of data corresponding to the packets processed by the switching node in the first cycle.
- step 2320 uses the formula: First, obtain the port bandwidth B and the first period T, then determine the first product of the port bandwidth B and the first period T as BT. Since the load s has already been determined above, the ratio of the load s to the first product BT can be determined as the overload rate.
- the formula for determining the overload rate is formula (5):
- s represents the load
- B represents the port bandwidth
- T represents the first cycle
- B.T represents the first product
- o represents the overload rate
- the maximum amount of data that the switching node port can process in the first cycle is first determined based on the port bandwidth and the first cycle. Then, the overload rate of the switching node in the first cycle is determined by calculating the ratio of the load to the maximum amount of data that the switching node port can process in the first cycle.
- the embodiments of this disclosure through the above steps, facilitate subsequent assessment of whether the switching node is congested based on the overload rate of the switching node in the first cycle, thus improving the accuracy of congestion detection.
- Step 440 will be described in detail below.
- Step 440 Update the first congestion window based on the overload rate, wherein the number of packets to be sent that can be accommodated is controlled by the updated first congestion window.
- step 440 includes:
- Step 2410 When the overload rate of the previous first cycle is greater than the preset value, when the confirmation response is received for the first time in the current first cycle, shorten the sliding window length of the first congestion sliding window based on the overload rate.
- Step 2420 When the overload rate of the previous first cycle is less than or equal to the preset value, extend the sliding window length of the first congestion sliding window each time an acknowledgment response is received in the current first cycle.
- Steps 2410 to 2420 are described in detail below:
- step 2410 when the overload rate of the previous first cycle is greater than a preset value, when the confirmation response is received for the first time in the current first cycle, the sliding window length of the first congestion sliding window is shortened based on the overload rate.
- the overload rate and a preset value can be compared to determine whether the switching node is overloaded in the first cycle corresponding to the overload rate. If the overload rate of the previous first cycle is greater than 0, it indicates that the switching node was overloaded in the previous first cycle. Overload means that the amount of data in the switching node's cache has exceeded the maximum amount of data that the switching node can handle. The overload of the switching node in the previous first cycle indicates that the switching node experienced congestion in the previous first cycle, and some measures need to be taken to alleviate the congestion in the switching node.
- embodiments of this disclosure will reduce the length of the first congestion window based on the overload rate when the first acknowledgment response is received in the current first cycle. For example, by reducing the length of the first congestion window, the number of packets in the subsequent data center network (i.e., packets that the source node has sent but the destination node has not yet received) can be reduced accordingly, thereby achieving the purpose of alleviating the congestion in the switching node.
- the first congestion window before the update is used to indicate 12 messages sent to the destination node (messages 2-13 in Figure 25A).
- the first congestion window slides to accommodate more unsent messages (i.e., messages to be sent), thereby sending the accommodated unsent messages to the destination node.
- the overload rate of the previous cycle is greater than 0, the length of the first congestion window is reduced based on the overload rate when the first acknowledgment is received in the current first cycle.
- the reduced first congestion window is used to indicate 10 messages sent to the destination node (messages 2-11 in Figure 25A), which correspondingly reduces the number of messages in the subsequent data center network, achieving precise congestion control.
- step 2420 when the overload rate of the previous first cycle is less than or equal to a preset value, the sliding window length of the first congestion sliding window is extended each time an acknowledgment response is received in the current first cycle.
- steps 2420 and 2410 are actually different branch steps. If the overload rate of the previous first cycle is greater than a preset value (e.g., 0), it indicates that the switching node was overloaded in the previous first cycle, and step 2410 is executed. If the overload rate of the previous first cycle is less than or equal to the preset value (e.g., 0), it indicates that the switching node was underloaded in the previous first cycle, and step 2420 is executed. Underload indicates that the amount of data in the switching node's cache is less than the maximum amount of data that the switching node can handle.
- a preset value e.g., 0
- the embodiments of this disclosure will increase the length of the first congestion window based on the overload rate when the acknowledgment response is received for the first time in the current first cycle.
- a preset value e.g., 0
- the embodiments of this disclosure will increase the length of the first congestion window based on the overload rate when the acknowledgment response is received for the first time in the current first cycle.
- the initial congestion window before the update indicates 12 packets sent to the destination node (packets 2-13 in Figure 25B). Once one of the 12 packets is acknowledged, the initial congestion window slides to accommodate more unsent packets, which are then sent. If the overload rate of the previous cycle is less than 0, the length of the initial congestion window is increased based on the overload rate when the first acknowledgment is received in the current first cycle. The increased initial congestion window indicates 15 packets sent to the destination node (packets 2-16 in Figure 25B). Correspondingly, this also increases the number of packets in the subsequent data center network, making full use of the switching node's resources.
- the length of the first congestion window is reduced each time an acknowledgment is received in the current first cycle, thereby reducing the number of packets in the subsequent data center network and achieving precise congestion control.
- the overload rate of the previous first cycle is less than or equal to the preset value, the length of the first congestion window is increased each time an acknowledgment is received in the current first cycle, thereby increasing the number of packets in the subsequent data center network to fully utilize the resources of the switching node.
- steps 2410 and 2420 The above is a general description of steps 2410 and 2420. The specific implementation process of steps 2410 and 2420 will be described in detail below.
- step 2410 includes:
- Step 2610 When the confirmation response is received for the first time in the current first cycle, determine the first sum of the first value and the overload rate;
- Step 2620 Use the ratio of the length of the first congestion window to the length of the first sum as the shortened length of the first congestion window.
- Steps 2610 to 2620 are described in detail below:
- step 2610 when the confirmation response is received for the first time in the current first cycle, the first value and the first sum of the overload rate are determined.
- the first sum refers to the sum of a first value (e.g., 1) and the overload rate. If the overload rate of the previous first cycle is greater than 0, it indicates that the switching node was in an overloaded state in the previous first cycle. Therefore, when the acknowledgment response is received for the first time in the current first cycle, the congestion situation in the switching node is alleviated by reducing the length of the first congestion window.
- the first sum of the first value (e.g., 1) and the overload rate is determined so that the window length of the first congestion window can be shortened subsequently based on the first sum of the first value (e.g., 1) and the overload rate.
- step 2610 is explained in conjunction with the formula: First, obtain the overload rate o, and then determine the first sum of 1 and the overload rate o, which is (1+o).
- step 2620 the ratio of the length of the first congestion window to the first sum is used as the shortened length of the first congestion window.
- the "first congestion window” in the phrase “the ratio of the window length of the first congestion window to the first sum” refers to the first congestion window calculated after the last acknowledgment received in the previous first cycle.
- step 2620 is explained using the formula: First, obtain the overload rate o, determine the first sum (1+o) of 1 and the overload rate o, and then divide the length wc of the first congestion window by the first sum (1+o) as the shortened length cwnd of the first congestion window.
- the formula for dividing the length of the first congestion window by the first sum as the shortened length of the first congestion window is formula (6):
- cwnd represents the length of the first congestion window after reduction
- wc represents the first congestion window calculated after the last acknowledgment received in the previous first cycle
- o represents the overload rate
- (1+o) represents the first sum.
- the length of the shortened first congestion window cwnd is 5.
- steps 2610 to 2620 above by determining the first sum of the first value (e.g., 1) and the overload rate, and using the ratio of the window length of the first congestion window to the first sum as the window length of the shortened first congestion window, can alleviate congestion in the switching node and achieve precise congestion control.
- the congestion control method further includes:
- Step 2710 When the overload rate of the previous first cycle is greater than the preset value, the cumulative confirmation response value will be reset to zero.
- Step 2420 includes:
- Step 2720 When the overload rate of the previous first cycle is less than or equal to the preset value, increase the cumulative value of the confirmation response each time a confirmation response is received in the current first cycle.
- Step 2730 When the confirmed response accumulation value has not reached the predetermined accumulation value, determine the extended length of the first congestion sliding window based on the first extension method;
- Step 2740 When the cumulative value of the confirmed response reaches the predetermined cumulative value, determine the extended length of the first congestion sliding window based on the second extension method.
- Steps 2710 to 2740 are described in detail below:
- step 2710 when the overload rate of the previous first cycle is greater than a preset value, the cumulative value of the confirmation response will be reset to zero.
- the cumulative confirmation response value refers to the number of consecutive first-cycle periods in which the switching node was underloaded prior to the previous first-cycle period.
- the overload rate is less than or equal to a preset value (e.g., 0)
- the switching node is determined to be in an underloaded state. For example, if the overload rate of the previous first-cycle period is greater than 0, but prior to the previous first-cycle period there were 5 consecutive first-cycle periods in which the overload rate of the switching node was less than or equal to 0, then the cumulative confirmation response value is 5.
- the cumulative acknowledgment value indicates the number of consecutive first cycles before the previous first cycle, if the overload rate of the previous first cycle is greater than 0, the cumulative acknowledgment value can be set to zero.
- step 2720 when the overload rate of the previous first cycle is less than or equal to a preset value, the cumulative value of the confirmation response is increased each time a confirmation response is received in the current first cycle.
- the cumulative confirmation response value indicates the number of consecutive underloaded first cycles of the switching node before the previous first cycle, if the overload rate of the previous first cycle is less than or equal to 0, it means that the switching node was still underloaded in the previous first cycle. At this time, the cumulative confirmation response value can be incremented by 1 to count the number of consecutive underloaded first cycles of the switching node.
- step 2730 when the confirmed response accumulation value has not reached the predetermined accumulation value, the extended length of the first congestion sliding window is determined based on the first extension method.
- the predetermined cumulative value refers to a threshold for the number of consecutive first periods of underload, typically set to 5.
- the first extension method refers to a technical means for increasing the first congestion window.
- congestion control measures such as reducing the first congestion window
- the congestion control of the switching node has shown initial effectiveness after the previous first period, and the internal cache resources of the switching node have been alleviated.
- the extended window length of the first congestion window can be further determined based on the first extension method, thereby reducing congestion within the switching node while fully utilizing its internal cache resources.
- step 2740 when the cumulative confirmation value reaches the predetermined cumulative value, the extended length of the first congestion sliding window is determined based on the second extension method.
- the second extension method refers to a technical means for increasing the first congestion window.
- the second extension method is more aggressive than the first extension method; that is, the growth trend of the first congestion window corresponding to the increase through the second extension method is faster than the growth trend of the first congestion window corresponding to the increase through the first extension method.
- the cumulative confirmation response value reaches a predetermined cumulative value, it indicates that the switching node was in an underloaded state for multiple first cycles prior to the previous first cycle. At this time, the cache resources inside the switching node have not been fully utilized for a long time, and some aggressive measures can be taken to fully utilize the cache resources inside the switching node.
- the second extension method is more aggressive than the first extension method. That is, the growth trend of the first congestion window corresponding to the first congestion window is increased by the second extension method than the growth trend of the first congestion window corresponding to the first congestion window is increased by the first extension method.
- the predetermined cumulative value is 5
- the length of the extended first congestion window needs to be determined based on the first extension method. If the cumulative value of confirmed responses is 6 in the current first cycle, the length of the extended first congestion window needs to be determined based on the second extension method.
- steps 2710 to 2740 described above can, when the confirmed response accumulation value has not reached a predetermined accumulation value, further determine the extended window length of the first congestion window based on the first extension method, so as to reduce congestion within the switching node while making full use of the internal cache resources of the switching node. Moreover, when the confirmed response accumulation value has reached the predetermined accumulation value, the extended window length of the first congestion window is further determined based on a more aggressive second extension method than the first extension method, so as to improve the utilization rate of the internal cache resources of the switching node.
- steps 2710 to 2740 are described in detail below.
- step 2730 "when the cumulative value of the confirmation response has not reached the predetermined cumulative value, determining the extended length of the first congestion sliding window based on the first extension method," includes:
- Step 2810 When the cumulative value of the confirmed response has not reached the predetermined cumulative value, obtain the second quantity in the confirmed response;
- Step 2820 Initialize the third counter value to 1;
- Step 2830 When the third count value is less than or equal to the second quantity, the ratio of the additive windowing coefficient to the length of the first congestion window is used as the window length increment, and the length of the first congestion window is added to the window length increment to obtain the extended window length of the first congestion window.
- Step 2840 Increment the third count value by 1, and return to the step of using the ratio of the additive windowing coefficient to the length of the first congestion window as the window length increment when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- Steps 2810 to 2840 are described in detail below:
- step 2810 when the cumulative value of the confirmed response has not reached the predetermined cumulative value, the second quantity in the confirmed response is obtained.
- the cumulative acknowledgment value does not reach a predetermined cumulative value, it indicates that the cache resources within the current switching node are not being fully utilized.
- the second number of packets carrying the unobstructed flag in the acknowledgment is obtained to estimate the status of the cache resources within the current switching node, so as to subsequently increase the window length of the first congestion window based on the status of the cache resources within the current switching node.
- step 2820 the third count value is initialized to 1.
- a third count value is used to indicate the number of times the step of increasing the first congestion window has been performed.
- the third count value is similar to a register, used to count the current number of times the step of increasing the first congestion window has been performed.
- the source node needs to increase the length of the first congestion window after receiving each acknowledgment.
- the number of times the first congestion window is increased is determined by the second count in the acknowledgment. Since the second count may be different in each acknowledgment, the number of times the first congestion window is increased also needs to be adjusted. Therefore, the source node needs to initialize the third count value after receiving each acknowledgment.
- step 2830 when the third count value is less than or equal to the second quantity, the ratio of the additive windowing coefficient to the length of the first congestion window is used as the window length increment, and the length of the first congestion window is added to the window length increment to obtain the extended window length of the first congestion window.
- the additive windowing coefficient refers to a coefficient that adjusts the value of the first congestion sliding window.
- the overload rate in the previous first cycle was less than or equal to 0, when each acknowledgment is received and the first congestion window is increased, the number of times the step of increasing the first congestion window is executed is the same as the second number in the acknowledgment. Because the third count is initialized to 1 after each acknowledgment, and is incremented only after each step of increasing the first congestion window is executed, this means that the actual number of times the step of increasing the first congestion window is executed is the third count minus one. Therefore, if the third count is less than the second number, the step of increasing the first congestion window needs to be executed. Specifically, when executing the step of increasing the first congestion window, the ratio of the additive windowing coefficient to the length of the first congestion window before the update is used as the window length increment. The window length increment refers to the increase in the first congestion window. After obtaining the window length increment, the length of the first congestion window is added to the window length increment to obtain the length of the extended first congestion window.
- step 2830 is explained using the formula: If the third count value is less than or equal to the second count, the ratio of the additive windowing coefficient ⁇ to the length cwnd1 of the first congestion sliding window is... As the window length increment, the length cwnd1 of the first congested window is compared with the window length increment. Adding these together, we obtain the extended length of the first congestion window.
- the formula for calculating the extended length of the first congestion window is shown in Formula (7):
- cwnd1 represents the first congestion sliding window before the update
- ⁇ represents the additive windowing coefficient
- cwnd represents the extended first congestion window
- the first congestion window before the update is the first congestion window corresponding to the last acknowledgment received in the previous first cycle.
- the first congestion window before the update is the first congestion window calculated when the acknowledgment was received last time.
- the third count value is greater than 1 and less than or equal to the second quantity, the first congestion window before the update is the first congestion window obtained when the first congestion window increment step was performed last time.
- step 2840 the third count value is incremented by 1, and the step of incrementing the window length by the ratio of the additive windowing coefficient to the length of the first congestion window is returned when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- the third count value since the third count value is used to indicate the number of times the step of increasing the first congestion window is performed, the third count value needs to be incremented by one each time the step of increasing the first congestion window is performed.
- the source node upon receiving an acknowledgment, performs a step to increase the first congestion window once, based on a second quantity in the acknowledgment.
- the number of times the step to increase the first congestion window is performed iteratively is consistent with the second quantity. Because embodiments of this disclosure use a third count value to count the number of times the step to increase the first congestion window is performed, the step to increase the first congestion window will not stop until the third count value is greater than the second quantity.
- the source node upon receiving acknowledgment A, first initializes the third count to 1.
- the third count is less than 3, so the ratio of the additive windowing coefficient to the length of the first congestion window is used as the window length increment.
- the length of the first congestion window is then added to this increment to obtain the extended length of the first congestion window, and the third count is incremented by one, resulting in a third count of 2.
- the third count is still less than 3, so another step of increasing the first congestion window is performed to update it, and the third count is incremented by 1, resulting in a third count of 3.
- the third count is still not greater than 3, so another step of increasing the first congestion window is performed to update it, and the third count is incremented by 1, resulting in a third count of 4. At this point, the third count is greater than 3, so the step of increasing the first congestion window is stopped.
- the overload rate is less than or equal to 0 and the cumulative acknowledgment value has not reached a predetermined cumulative value
- the number of times the first congestion window is increased is counted using a third count value.
- the process of increasing the first congestion window stops only when the third count value exceeds a second count value.
- step 2740 "when the cumulative value of the acknowledgment response reaches a predetermined cumulative value, determining the extended window length of the first congestion window based on the second extension method," includes:
- Step 2910 When the cumulative value of the confirmed responses reaches the predetermined cumulative value, obtain the second quantity in the confirmed responses;
- Step 2920 Initialize the third counter value to 1;
- Step 2930 When the third count value is less than or equal to the second quantity, the product of the predetermined multiple and the length of the first congestion window is used as the extended length of the first congestion window.
- Step 2940 Increment the third count value by 1, and return to the step of using the product of the predetermined multiple and the window length of the first congestion window as the extended window length when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- Steps 2910 to 2940 are described in detail below:
- step 2910 when the cumulative value of the confirmed response reaches a predetermined cumulative value, the second quantity of the confirmed response is obtained.
- the cumulative value of confirmed responses reaches a predetermined cumulative value, it indicates that the switching node was in an underloaded state for multiple first cycles prior to the previous first cycle.
- the internal cache resources of the switching node have not been fully utilized for a long time, and some aggressive measures can be taken to fully utilize the internal cache resources of the switching node.
- the second number of packets carrying the smooth flow flag in the confirmed response will be obtained to estimate the current state of the internal cache resources of the switching node, facilitating the subsequent increase of the length of the first congestion window based on the current state of the internal cache resources of the switching node.
- step 2920 the third count value is initialized to 1.
- step 2930 when the third count value is less than or equal to the second quantity, the product of the predetermined multiple and the length of the first congestion window is used as the extended length of the first congestion window.
- the predetermined multiple refers to the multiplier by which the value of the first congestion window is increased.
- the predetermined multiple is set to 1.1.
- step 2930 is explained here with reference to the formula:
- the product of the predetermined multiple and the length of the first congestion window is used as the extended length of the first congestion window.
- cwnd represents the extended first congestion window
- cwnd 1 represents the original first congestion window
- step 2940 the third count value is incremented by 1, and the process of using the product of a predetermined multiple and the window length of the first congestion window as the extended window length is returned when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- step 2940 the iterative execution of increasing the first congestion window in step 2940 is similar to that in step 2840. Both involve performing the step of increasing the first congestion window once based on the second quantity in the acknowledgment responses, and the number of iterations of increasing the first congestion window once is consistent with the second quantity.
- steps for increasing the first congestion window in step 2940 are not the same as those in step 2840. This is because step 2940 corresponds to the situation where the accumulated value of acknowledgment responses reaches a predetermined accumulated value, and the method for increasing the first congestion window is the second extension method, while step 2840 corresponds to the situation where the accumulated value of acknowledgment responses has not reached the predetermined accumulated value, and the method for increasing the first congestion window is the first extension method. Therefore, step 2940 is more aggressive than step 2840.
- the overload rate when the overload rate is less than or equal to 0 and the cumulative value of confirmed responses reaches a predetermined cumulative value, the number of times the first congestion window is increased is counted using a third count value.
- the process of increasing the first congestion window stops only when the third count value exceeds a second count value.
- the embodiments of this disclosure use a more aggressive second extension method than the first extension method to iteratively determine the window length of the extended first congestion window, thus precisely improving the utilization rate of cache resources within the switching node.
- the following describes another embodiment of determining the overload rate of the switching nodes based on a first quantity and a second quantity, and updating the first congestion window based on the overload rate.
- the message when there are multiple switching nodes, the message is sent to the destination node through one of the multiple switching nodes; the acknowledgment response includes a first number and a second number corresponding to each switching node.
- Step 430 includes:
- Step 3010 Determine the overload rate of each switching node based on the first quantity and the second quantity corresponding to each switching node;
- Step 440 includes:
- Step 3020 Update the first congestion window corresponding to each switching node based on the overload rate of each switching node.
- Steps 3010 and 3020 are described in detail below:
- step 3010 the overload rate of each switching node is determined based on the first quantity and the second quantity corresponding to each switching node.
- a packet sent by the source node passes through only one of these switching nodes.
- the source node can send multiple packets to the destination node, causing the packets to travel through different forwarding paths (each forwarding path corresponding to a switching node) to reach the destination node.
- the destination node can receive packets carrying congestion flags and packets carrying unobstructed flags corresponding to each switching node.
- a first quantity and a second quantity corresponding to each switching node are inserted into the acknowledgment response, and the acknowledgment response is returned to the source node, allowing the source node to determine the overload rate of each switching node based on the first and second quantities. Finally, the congestion status within each switching node is obtained based on its overload rate.
- the source node sends multiple packets to each of the four switching nodes, so that the destination node receives a packet carrying a congestion flag and a packet carrying a free-flow flag corresponding to each switching node.
- the source node receives the packets carrying congestion flags and free-flow flags forwarded by the four switching nodes, counts the packets carrying congestion flags and free-flow flags forwarded by each switching node, and returns acknowledgment response 1 (corresponding to switching node 1) to the source node, acknowledgment response 2 (corresponding to switching node 2) to the source node, acknowledgment response 3 (corresponding to switching node 3) to the source node, and acknowledgment response 4 (corresponding to switching node 4) to the source node.
- the source node Upon receiving acknowledgment responses 1, 2, 3, and 4, the source node calculates the overload rate corresponding to switching node 1 based on acknowledgment response 1, the overload rate corresponding to switching node 2 based on acknowledgment response 2, the overload rate corresponding to switching node 3 based on acknowledgment response 3, and the overload rate corresponding to switching node 4 based on acknowledgment response 4.
- Congestion or unobstructed status is recorded in the message corresponding to the switching node identifier.
- the first and second counts are generated by the destination node in the following way: the fourth and fifth counts corresponding to each switching node identifier are initialized to 0, where the fourth count indicates the number of messages for which the switching node corresponding to the switching node identifier has added the congestion mark, and the fifth count indicates the number of messages for which the switching node corresponding to the switching node identifier has added the unobstructed status.
- the fourth count corresponding to the switching node identifier is incremented by 1.
- the fifth count corresponding to the switching node identifier is incremented by 1.
- the fourth count is determined as the first count
- the fifth count is determined as the second count.
- the switching nodes in this embodiment of the disclosure will also add a switching node identifier to the packet when adding the congestion/unobstructed flag, so that the destination node can identify the switching node that added the congestion/unobstructed flag when it receives the packet.
- a fourth count value is used to indicate the number of packets whose corresponding switching nodes have added congestion tags.
- the fourth count value is similar to a register, used to count the number of packets received by the current destination node whose corresponding switching nodes have added congestion tags.
- a fifth count value is used to indicate the number of packets whose corresponding switching nodes have added unobstructed tags.
- the fifth count value is similar to a register, used to count the number of packets received by the current destination node whose corresponding switching nodes have added unobstructed tags.
- the destination node first needs to initialize the fourth and fifth count values corresponding to each switching node identifier to 0.
- the message sent by the source node only passes through one of the multiple switching nodes (such as switching node 1).
- the destination node After the destination node sends an acknowledgment to the source node, and the current source node has not yet sent a message, in step 3510, the destination node initializes the fourth and fifth count values corresponding to each switching node identifier to 0.
- the fourth count value indicates the number of messages for which the switching node identifier has added a congestion flag
- the fifth count value indicates the number of messages for which the switching node identifier has added a smooth flow flag.
- step 3520 when the destination node receives a message sent by a source node, if the message contains the congestion flag corresponding to switching node 1, the fourth count value corresponding to the switching node identifier is incremented by 1, indicating that a message carrying a congestion flag has been received forwarded by switching node 1.
- step 3530 when the destination node receives a message sent by the source node, if the message contains a passability flag corresponding to exchange node 1 with the exchange node identifier, the fifth count value corresponding to the exchange node identifier is incremented by 1, indicating that a message carrying a passability flag forwarded by exchange node 1 has been received.
- step 3540 when a predetermined condition is met (i.e., a predetermined time period has elapsed since the destination node sent the previous acknowledgment), the current fourth count value is determined as the first quantity, and the fifth count value is determined as the second quantity. Furthermore, if the predetermined time period has not elapsed since the destination node sent the previous acknowledgment, but the total number of messages forwarded by exchange node 1 received by the destination node reaches a predetermined number, the current fourth count value is determined as the first quantity corresponding to exchange node 1, and the fifth count value is determined as the second quantity corresponding to exchange node 1.
- the first and second quantities corresponding to exchange node 1 are inserted into acknowledgment 1, and acknowledgment 1 is returned to the source node, so that the source node can determine the overload rate of exchange node 1 based on the first and second quantities in acknowledgment 1.
- step 3020 the first congestion window corresponding to each switching node is updated based on the overload rate of each switching node.
- the source node when multiple switching nodes exist between the source node and the destination node, after receiving acknowledgment responses from each switching node, the source node determines the overload rate of each switching node based on a first quantity and a second quantity in the acknowledgment responses. Subsequently, the first congestion window corresponding to the packets sent by the source node to each switching node is updated based on the overload rate of each switching node, thereby controlling the number of packets sent by the source node to each switching node and achieving precise control of congestion at each switching node.
- the source node after calculating the overload rates of the four switching nodes based on the received acknowledgment responses, the source node will also update the first congestion window corresponding to the message sent by the source node to switching node 1 based on the overload rate corresponding to switching node 1. Similarly, the source node will also update the first congestion window corresponding to the message sent by the source node to switching node 2 based on the overload rate corresponding to switching node 2, the first congestion window corresponding to the message sent by the source node to switching node 3 based on the overload rate corresponding to switching node 3, and the first congestion window corresponding to the message sent by the source node to switching node 4 based on the overload rate corresponding to switching node 4.
- congestion control effectiveness is currently generally evaluated using three performance metrics: bandwidth utilization of switching nodes, queue backlog at switching nodes, and fairness of the data stream to which the packet belongs.
- embodiments of this disclosure employ multiple sets of comparative experiments to test the three performance metrics of DCQCN, HPCC, and the congestion control method of this disclosure embodiment, respectively, to verify that the congestion control effect of this disclosure embodiment is superior to DCQCN and HPCC.
- the first graph in Figures 32 to 34 is a graph showing the packet transmission rate when four source nodes send packets to the same destination node through different switching nodes, used to evaluate the fairness of the data stream to which the packet belongs.
- the second graph in Figures 32 to 34 shows the bandwidth change of the switching node's port when a source node sends a packet to the destination node through a switching node, used to evaluate the bandwidth utilization of the switching node.
- the third graph in Figures 32 to 34 shows the queue length within the switching node when a source node sends a packet to the destination node through a switching node, used to evaluate the queue backlog at the switching node.
- FIG 32 is a schematic diagram of simulation data for DCQCN according to an embodiment of the present disclosure
- the transmission rate of the corresponding messages sent from the source node to the destination node varies greatly, and the rate allocated to the data streams to which different messages belong is not fair.
- the switching node is slow in grabbing idle bandwidth, and the queue length of the switching node fluctuates between 100KB and 500KB.
- FIG 33 is a schematic diagram of simulation data for HPCC according to an embodiment of the present disclosure.
- the bandwidth of the switching node fluctuates significantly, which may lead to a loss of throughput for the switching node.
- the queue length of the switching node initially remains above 250KB for a long period of time, which may indicate congestion.
- FIG 34 is a schematic diagram of simulation data for the congestion control method according to an embodiment of the present disclosure
- the rate allocated to the data streams to which different packets belong is relatively fair, and the bandwidth of the switching node is always maintained at 100%.
- the final transmission completion time is 7000us, which is nearly 12.5% less than the 8000us of DCQCN in Figure 32 and HPCC in Figure 33.
- the queue length of the switching node in this scheme fluctuates around 10KB, which is significantly lower than that of DCQCN in Figure 32 and HPCC in Figure 33, indicating that the switching node can maintain a smooth flow.
- steps 3010 to 3020 described above can determine the overload rate of each switching node based on the first and second quantities corresponding to each switching node, and update the first congestion window of each switching node based on the overload rate of each switching node. By updating the first congestion window of each switching node, precise congestion control can be achieved for multiple switching nodes from the source node to the destination node.
- the following is a description of the congestion control method of calculating overload rate from the source node, according to an embodiment of this disclosure, applied to the destination node side.
- the congestion control method provided in this embodiment is applied to the destination node, and the congestion control method includes:
- Step 3610 Receive the message sent by the source node
- Step 3620 When it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, based on the messages received within the predetermined time period, determine the first number of messages carrying congestion flags and the second number of messages carrying unobstructed flags, and determine the overload rate of the switching node based on the first and second numbers, generate an acknowledgment based on the overload rate, and return the acknowledgment to the source node.
- there is a switching node between the source node and the destination node and both the congestion flag and the unobstructed flag are obtained by the switching node marking the messages received by the switching node based on the buffer queue within the switching node.
- Step 3630 When a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, determine a first quantity and a second quantity based on the predetermined number of messages, determine the overload rate of the switching node based on the first quantity and the second quantity, generate an acknowledgment based on the overload rate, and return the acknowledgment to the source node.
- Steps 3610 to 3630 are described in detail below.
- step 3610 a message sent by the source node is received.
- the source node sends a message to the destination node based on a first congestion window, and the source node and the destination node have at least one switching node. After receiving the message sent by the source node, the switching node forwards the message to the destination node, enabling the destination node to receive the message sent by the source node.
- step 3620 when it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, based on the messages received within the predetermined time period, a first number of messages carrying congestion flags and a second number of messages carrying unobstructed flags are determined, and the overload rate of the switching node is determined based on the first and second numbers. An acknowledgment is generated based on the overload rate and returned to the source node.
- a switching node is provided between the source node and the destination node, and both the congestion flag and the unobstructed flag are obtained by the switching node marking the messages received by the switching node based on the buffer queue within the switching node.
- the destination node After the destination node obtains the first and second counts and generates an acknowledgment response based on these counts, it also needs to return the acknowledgment response to the source node to facilitate the source node's understanding of the switching node's congestion status.
- the source node Upon receiving the acknowledgment response, calculates the overload rate based on the first count of packets carrying congestion flags and the second count of packets carrying unobstructed flags in the acknowledgment response. Based on the overload rate, it adjusts the first congestion window, thereby achieving precise congestion control.
- step 3630 when a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, a first quantity and a second quantity are determined based on the predetermined number of messages, and the overload rate of the switching node is determined based on the first quantity and the second quantity. An acknowledgment is generated based on the overload rate and returned to the source node.
- the destination node After the destination node obtains the first and second quantities and generates an acknowledgment response based on the first and second quantities, it also needs to return the acknowledgment response to the source node.
- the destination node can count the first number of packets carrying congestion markers and the second number of packets carrying unobstructed access markers, inserting the first and second numbers into the acknowledgment response so that the source node can receive the acknowledgment response returned by the destination node.
- the overload rate of the switching node is determined based on the first number of packets carrying congestion markers and the second number of packets carrying unobstructed access markers contained in the acknowledgment response. The overload rate can accurately reflect the current congestion status of the switching nodes in the link. Thus, by updating the first congestion window based on the overload rate, the number of target packets sent can be precisely controlled, thereby achieving precise congestion control.
- the first congestion window is a window that moves in the queue of packets to be sent, used to indicate the first number of packets to be sent to the destination node. Once a packet in the first congestion window is acknowledged, the first congestion window is slid to accommodate more unsent packets, thereby sending the accommodated unsent packets. In this way, when the load status of the switching node, as reflected by the overload rate, is heavy, the length of the first congestion window is not increased, thus preventing the transmission of new packets and alleviating network congestion. When the load status of the switching node, as reflected by the overload rate, is light, the length of the first congestion window is increased to accommodate new packets for transmission, fully utilizing network bandwidth and accurately controlling congestion.
- the method used in this embodiment only requires inserting a first number of target packets carrying congestion markers and a second number of target packets carrying unobstructed markers into the acknowledgment response returned by the destination node to accurately control congestion.
- This method has low customization requirements for the destination node and requires no additional customization of the switching node, making it easy to deploy.
- the following is a description of the congestion control method of calculating overload rate from the destination node, according to an embodiment of this disclosure, applied to the source node side.
- the congestion control method provided in this embodiment is applied to the source node, and the congestion control method includes:
- Step 3710 Send a message to the destination node based on the first congestion window, wherein the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate the first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the messages to be sent and the messages to be sent that are accommodated in the first congestion window are sent.
- Step 3720 Receive the acknowledgment response returned by the destination node.
- the acknowledgment response includes the overload rate of the switching node.
- the overload rate is determined by the destination node based on the first number of packets with congestion mark and the second number of packets with smooth flow mark.
- Step 3730 Update the first congestion window based on the overload rate, wherein the number of packets to be sent that can be accommodated is controlled by the updated first congestion window.
- Steps 3710 to 3730 are described in detail below.
- a message is sent to the destination node based on the first congestion window.
- the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate a first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the message to be sent, and the message to be sent that has been accommodated in the first congestion window is sent.
- an acknowledgment response is received from the destination node.
- the acknowledgment response includes the overload rate of the switching node.
- the switching node marks packets based on the buffer queue within the switching node to obtain congestion tags and unobstructed tags.
- the overload rate is determined by the destination node based on a first number of packets with congestion tags and a second number of packets with unobstructed tags.
- the destination node in steps 420-430, returns an acknowledgment message carrying a first quantity and a second quantity to the source node, enabling the source node to determine the overload rate based on the first and second quantities in the acknowledgment message.
- the destination node may also calculate the overload rate of the switching node based on a first quantity of packets directly carrying congestion markers and a second quantity of packets carrying unobstructed access markers, and generate an acknowledgment message based on the overload rate, returning it to the source node with the overload rate acknowledgment message.
- the destination node calculates the overload rate, and the source node does not need to calculate the overload rate.
- the destination node after calculating the overload rate of the switching nodes, the destination node generates an acknowledgment response based on the overload rate and returns the acknowledgment response to the source node. Based on this, the source node does not need to recalculate the overload rate; it only needs to update the first congestion window based on the overload rate in the acknowledgment response, thus achieving precise congestion control.
- the switching node marks packets based on the buffer queue within the switching node to obtain congestion marks and unobstructed marks
- the specific implementation of "the overload rate is determined by the destination node based on the first number of packets with congestion marks and the second number of packets carrying unobstructed marks” in this embodiment of the present disclosure is similar to the specific implementation of step 430 above, and will not be described in detail here.
- the first congestion window is updated based on the overload rate, wherein the number of packets to be sent that can be accommodated is controlled by the updated first congestion window.
- the source node can receive the acknowledgment response returned by the destination node and update the first congestion window based on the overload rate of the switching nodes in the acknowledgment response.
- the overload rate can accurately reflect the current congestion status of the switching nodes in the link.
- the first congestion window is a window that moves in the queue of packets to be sent, used to indicate the first number of packets to be sent to the destination node. Once a packet in the first congestion window receives an acknowledgment response, the first congestion window is slid to accommodate more unsent packets, thereby sending the accommodated unsent packets.
- the length of the first congestion window is not increased, thus preventing the sending of new packets and alleviating network congestion.
- the load on the switching node, as reflected by the overload rate is relatively light, the length of the first congestion window is increased to accommodate new packets for transmission, fully utilizing network bandwidth and accurately controlling congestion.
- the method used in this embodiment only requires inserting a first number of target packets carrying congestion markers and a second number of target packets carrying unobstructed access markers into the acknowledgment response returned by the destination node to accurately control congestion. This method has low customization requirements for the destination node and requires no additional customization of the switching node, making it easy to deploy.
- the following is a description of the congestion control method of calculating overload rate by the destination node according to an embodiment of this disclosure, applied to the destination node side.
- the congestion control method provided in this embodiment is applied to the destination node, and the congestion control method includes:
- Step 3910 Receive the message sent by the source node
- Step 3920 When it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, based on the messages received within the predetermined time period, determine the first number of messages carrying congestion flags and the second number of messages carrying unobstructed flags, and determine the overload rate of the switching node based on the first and second numbers, generate an acknowledgment based on the overload rate, and return the acknowledgment to the source node.
- there is a switching node between the source node and the destination node and both the congestion flag and the unobstructed flag are obtained by the switching node marking the messages received by the switching node based on the buffer queue within the switching node.
- Step 3930 When a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, determine a first quantity and a second quantity based on the predetermined number of messages, determine the overload rate of the switching node based on the first quantity and the second quantity, generate an acknowledgment based on the overload rate, and return the acknowledgment to the source node.
- Steps 3910 to 3930 are described in detail below.
- step 3910 a message sent by the source node is received.
- step 3920 when it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, based on the messages received within the predetermined time period, a first number of messages carrying congestion flags and a second number of messages carrying unobstructed flags are determined, and the overload rate of the switching node is determined based on the first and second numbers. An acknowledgment is generated based on the overload rate and returned to the source node.
- a switching node is provided between the source node and the destination node, and both the congestion flag and the unobstructed flag are obtained by the switching node marking the messages received by the switching node based on the buffer queue within the switching node.
- the destination node after determining the first quantity and the second quantity, the destination node does not generate an acknowledgment response and return it to the source node based on the first and second quantities. Instead, the destination node first determines the overload rate of the switching node based on the first and second quantities, then generates an acknowledgment response based on the overload rate and returns it to the source node. Based on this, the source node does not need to calculate the overload rate of the switching node again and can directly adjust the first congestion window based on the overload rate, thereby achieving precise congestion control. Furthermore, "generating an acknowledgment response based on the overload rate” means including the overload rate in the field of the acknowledgment response, so that the acknowledgment response can carry the overload rate, allowing the source node to receive an acknowledgment response including the overload rate.
- step 3930 when a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, a first quantity and a second quantity are determined based on the predetermined number of messages, and the overload rate of the switching node is determined based on the first quantity and the second quantity. An acknowledgment is generated based on the overload rate and returned to the source node.
- the destination node can determine the overload rate of the switching node based on a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags.
- the overload rate accurately reflects the current congestion status of the switching nodes in the link.
- the destination node generates an acknowledgment response based on the overload rate and returns it to the source node, enabling the source node to update the first congestion window based on the overload rate.
- updating the first congestion window based on the overload rate allows for precise control of the number of target packets sent, achieving accurate congestion control.
- the first congestion window is a moving window in the queue of packets to be sent, indicating the first number of packets to be sent to the destination node.
- the first congestion window slides to accommodate more unsent packets, which are then sent.
- the load status of the switching node as reflected by the overload rate
- the length of the first congestion window is not increased, thus preventing the transmission of new packets and alleviating network congestion.
- the load status of the switching node as reflected by the overload rate
- the length of the first congestion window is increased to accommodate new packets for transmission, fully utilizing network bandwidth and accurately controlling congestion.
- the method used in this embodiment only requires inserting a first number of target packets carrying congestion markers and a second number of target packets carrying unobstructed markers into the acknowledgment response returned by the destination node to accurately control congestion. This method has low customization requirements for the destination node and requires no additional customization of the switching node, making it easy to deploy.
- the source node sends a message to the destination node based on the first congestion window, wherein the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate a first number of messages to be sent to the destination node.
- the first congestion window is slid to accommodate the messages to be sent and the messages to be sent that have been accommodated in the first congestion window are sent.
- the switching node marks the packets based on the buffer queue within the switching node.
- Both the congestion mark and the unobstructed mark are obtained by the switching node marking the packets based on the buffer queue within the switching node.
- the congestion mark and the free flow mark are obtained by the switching node by marking packets based on the queue length within the switching node in the following manner:
- a congestion flag is added to the packet, wherein the length of the second queue is greater than the length of the first queue;
- a congestion mark is added to the packet with a first probability
- a smooth pass mark is added to the packet with the complement of the first probability.
- the complement of the first probability is the difference between 1 and the first probability. The first probability changes linearly with the queue length between the length of the first queue and the length of the second queue.
- step 4131 when it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, the destination node determines a first quantity and a second quantity based on the messages received within the predetermined time period, and generates and sends an acknowledgment based on the first quantity and the second quantity.
- step 4132 when a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, the destination node determines a first quantity and a second quantity based on the predetermined number of messages, and generates and sends an acknowledgment based on the first quantity and the second quantity.
- step 4141 the source node receives the acknowledgment response returned by the destination node; and obtains the first sequence composed of the acknowledgment responses received within the first period.
- the first period is determined by: obtaining the number of acknowledgment responses received per unit time; obtaining the real-time performance of the service to which the message belongs; and determining the first period based on the number of acknowledgment responses and the real-time performance.
- the source node takes the first acknowledgment response in the first sequence as the acknowledgment response to be examined and initializes the statistical label probability.
- step 4143 the source node updates the statistical label probability based on the first and second quantities in the confirmed responses to be examined.
- updating the statistical marker probability based on the first and second quantities in the confirmed responses to be examined includes: initializing the first and second count values to 1 respectively; when the first count value is less than or equal to the first quantity, increasing the statistical marker probability using a first marker probability increase method and increasing the first count value, and returning to the step of increasing the statistical marker probability using the first marker probability increase method when the first count value is less than or equal to the first quantity, until the first count value is greater than the first quantity; when the second count value is less than or equal to the second quantity, decreasing the statistical marker probability using a first marker probability decrease method and increasing the second count value, and returning to the step of decreasing the statistical marker probability using the first marker probability decrease method when the second count value is less than or equal to the second quantity, until the second count value is greater than the second quantity.
- the statistical mark probability is increased using the first mark probability increase method, which can be achieved in the following way: when the first count value is less than or equal to the first quantity, a first parameter is obtained, the first parameter being a value between 0 and 1; step 1620, the difference between 1 and the first parameter is used as a second parameter; step 1630, the product of the statistical mark probability and the second parameter is added to the first parameter to obtain the increased statistical mark probability.
- the statistical mark probability is reduced using the first mark probability reduction method, which can be achieved in the following way: when the second count value is less than or equal to the second quantity, a first parameter is obtained, the first parameter being a value between 0 and 1; step 1720, the difference between 1 and the first parameter is used as the second parameter; step 1730, the product of the statistical mark probability and the second parameter is used as the reduced statistical mark probability.
- step 4144 the source node updates the confirmed response to be examined based on the next confirmed response to be examined in the first sequence, and returns to the step of updating the statistical label probability based on the first and second quantities in the confirmed responses to be examined, until the first sequence does not contain the next confirmed response to be examined.
- step 4151 the lengths of the first queue and the second queue are obtained.
- the length of the first queue is between 0 and 10 KB.
- the second queue length is obtained by: obtaining the bandwidth and idle delay of the switching node; determining the delay-bandwidth product of the switching node based on the bandwidth and idle delay; determining a first coefficient based on the maximum delay of the service to which the packet belongs; and determining the second queue length based on the first coefficient and the delay-bandwidth product.
- step 4152 the critical marker probability corresponding to the second queue length is obtained.
- the statistical queue length is determined based on the statistical labeling probability, the first queue length, the second queue length, and the critical labeling probability.
- the statistical queue length is determined based on the statistical labeling probability, the first queue length, the second queue length, and the critical labeling probability. This can be achieved by: determining a first length difference between the second queue length and the first queue length; determining a first ratio between the statistical labeling probability and the critical labeling probability; and determining the statistical queue length based on the first queue length, the first length difference, and the first ratio.
- step 4161 the load of the switching nodes in the first cycle is determined based on the statistical queue length.
- the load of the switching node in the first period is determined based on the statistical queue length, which can be achieved by: obtaining the queue weight coefficient and the queue fluctuation damping coefficient; determining the second length difference between the statistical queue length of the current first period and the statistical queue length of the previous first period; and determining the load of the switching node in the first period based on the queue weight coefficient, the statistical queue length, the queue fluctuation damping coefficient, and the second length difference.
- step 4162 the port bandwidth of the switching node is obtained.
- step 4163 the overload rate of the switching node in the first cycle is determined based on the load and port bandwidth.
- the overload rate of the switching node in the first cycle is determined based on the load and port bandwidth, which can be achieved by: determining the first product of the port bandwidth and the first cycle; and determining the ratio of the load and the first product as the overload rate.
- step 4171 when the overload rate of the previous first cycle is greater than a preset value, when the confirmation response is received for the first time in the current first cycle, the sliding window length of the first congestion sliding window is shortened based on the overload rate.
- the slide length of the first congestion slide window is shortened based on the overload rate. This can be achieved by: when the acknowledgment response is received for the first time in the current first cycle, determining a first sum of a first value and the overload rate; and using the ratio of the slide length of the first congestion slide window to the first sum as the shortened slide length of the first congestion slide window.
- the congestion control method when the overload rate of the previous first cycle is greater than a preset value, and when the acknowledgment response is received for the first time in the current first cycle, after shortening the sliding window length of the first congestion sliding window based on the overload rate, the congestion control method further includes: when the overload rate of the previous first cycle is greater than the preset value, resetting the cumulative value of the acknowledgment response to zero.
- step 4172 when the overload rate of the previous first cycle is less than or equal to a preset value, the cumulative value of the confirmation response is increased each time a confirmation response is received in the current first cycle.
- the cumulative value of the acknowledgment response is increased each time an acknowledgment response is received in the current first cycle.
- This can be achieved in the following way: when the overload rate of the previous first cycle is less than or equal to the preset value, the cumulative value of the acknowledgment response is increased each time an acknowledgment response is received in the current first cycle; when the cumulative value of the acknowledgment response has not reached the predetermined cumulative value, the sliding window length of the extended first congestion sliding window is determined based on a first extension method; when the cumulative value of the acknowledgment response reaches the predetermined cumulative value, the sliding window length of the extended first congestion sliding window is determined based on a second extension method.
- the extended window length of the first congestion window is determined based on the first extension method. This can be achieved as follows: when the cumulative value of confirmed responses has not reached the predetermined cumulative value, a second quantity in the confirmed responses is obtained; a third count value is initialized to 1; when the third count value is less than or equal to the second quantity, the ratio of the additive windowing coefficient to the length of the first congestion window is used as the window length increment, and the length of the first congestion window is added to the window length increment to obtain the extended window length of the first congestion window; the third count value is incremented by 1, and the step of using the ratio of the additive windowing coefficient to the length of the first congestion window as the window length increment when the third count value is less than or equal to the second quantity is returned, until the third count value is greater than the second quantity.
- the extended window length of the first congestion window is determined based on the second extension method. This can be achieved as follows: when the cumulative value of confirmed responses reaches the predetermined cumulative value, a second quantity in the confirmed responses is obtained; a third count value is initialized to 1; when the third count value is less than or equal to the second quantity, the product of a predetermined multiple and the length of the first congestion window is used as the extended window length of the first congestion window; the third count value is incremented by 1, and the step of using the product of a predetermined multiple and the length of the first congestion window as the extended window length is returned when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- steps in the above flowcharts are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated in this embodiment, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the above flowcharts may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps.
- Figure 42 is a schematic diagram of the structure of a congestion control device 4200 provided in an embodiment of this disclosure.
- the congestion control device 4200 is disposed in the source node and includes:
- the first sending unit 4210 is configured to send a message to the destination node based on a first congestion window.
- the first congestion window is a window that moves in the queue of messages to be sent.
- the first congestion window is used to indicate a first number of messages to be sent to the destination node. When a message in the first number of messages is acknowledged, the first congestion window is slid to accommodate the message to be sent and the message to be sent that is accommodated in the first congestion window is sent.
- the first receiving unit 4220 is configured to receive an acknowledgment response returned by the destination node.
- the acknowledgment response includes a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags.
- An exchange node is provided between the source node and the destination node. Both the congestion flag and the unobstructed flag are obtained by the exchange node marking the packets received by the exchange node based on the buffer queue within the exchange node.
- the first determining unit 4230 is configured to determine the overload rate of the switching nodes based on a first quantity and a second quantity;
- the update unit 4240 is configured to update the first congestion window based on the overload rate, wherein the number of packets to be sent is controlled by the updated first congestion window.
- the first determining unit 4230 is specifically configured to: when the first period is reached, determine the statistical marking probability of the exchange nodes in the first period based on the first quantity and the second quantity; determine the statistical queue length of the exchange nodes in the first period based on the statistical marking probability; and determine the overload rate of the exchange nodes in the first period based on the statistical queue length.
- the first determining unit 4230 is specifically configured to: obtain a first sequence of acknowledgments received within a first period; take the first acknowledgment in the first sequence as the acknowledgment to be examined and initialize the statistical label probability; update the statistical label probability based on the first quantity and the second quantity of the acknowledgments to be examined; update the acknowledgment to be examined based on the next acknowledgment in the first sequence, and return to the step of updating the statistical label probability based on the first quantity and the second quantity of the acknowledgments to be examined, until the first sequence does not contain the next acknowledgment of the acknowledgment to be examined.
- the first determining unit 4230 is specifically configured to: initialize the first count value and the second count value to 1 respectively; when the first count value is less than or equal to the first quantity, increase the statistical marking probability using the first marking probability increase method and increase the first count value, and return to the step of increasing the statistical marking probability using the first marking probability increase method when the first count value is less than or equal to the first quantity, until the first count value is greater than the first quantity; when the second count value is less than or equal to the second quantity, decrease the statistical marking probability using the first marking probability decrease method and increase the second count value, and return to the step of decreasing the statistical marking probability using the first marking probability decrease method when the second count value is less than or equal to the second quantity, until the second count value is greater than the second quantity.
- the first determining unit 4230 is specifically configured to: when the first count value is less than or equal to the first quantity, obtain the first parameter, the first parameter being a value between 0 and 1; take the difference between 1 and the first parameter as the second parameter; add the product of the statistical label probability and the second parameter to the first parameter to obtain the increased statistical label probability.
- the first determining unit 4230 is specifically configured to: when the second count value is less than or equal to the second quantity, obtain a first parameter, the first parameter being a value between 0 and 1; use the difference between 1 and the first parameter as a second parameter; and use the product of the statistical label probability and the second parameter as the reduced statistical label probability.
- the first period is determined by: obtaining the number of acknowledgment responses received per unit time; obtaining the real-time performance of the service to which the message belongs; the first determining unit 4230 is specifically configured to: determine the first period based on the number of acknowledgment responses and the real-time performance.
- the congestion mark and the unobstructed mark are obtained by the switching node based on the buffer queue within the switching node in the following manner: when the length of the buffer queue within the switching node is less than or equal to the length of the first queue, an unobstructed mark is added to the packet; when the length of the buffer queue within the switching node is greater than or equal to the length of the second queue, a congestion mark is added to the packet, wherein the length of the second queue is greater than the length of the first queue; when the length of the buffer queue within the switching node is greater than the length of the first queue and less than the length of the second queue, a congestion mark is added to the packet with a first probability, and an unobstructed mark is added to the packet with the complement of the first probability, wherein the complement of the first probability is the difference between 1 and the first probability, and the first probability changes linearly with the queue length between the length of the first queue and the length of the second queue.
- the first determining unit 4230 is specifically configured to: obtain the length of the first queue and the length of the second queue; obtain the critical marking probability corresponding to the length of the second queue; and determine the length of the statistical queue based on the statistical marking probability, the length of the first queue, the length of the second queue, and the critical marking probability.
- the first determining unit 4230 is specifically configured to: determine a first length difference between the second queue length and the first queue length; determine a first ratio between the statistical label probability and the critical label probability; and determine the statistical queue length based on the first queue length, the first length difference, and the first ratio.
- the length of the first queue is between 0 and 10 KB.
- the first determining unit 4230 is specifically configured to: obtain the bandwidth and idle delay of the switching node; determine the delay-bandwidth product of the switching node based on the bandwidth and idle delay; determine a first coefficient based on the maximum delay of the service to which the packet belongs; and determine a second queue length based on the first coefficient and the delay-bandwidth product.
- the first determining unit 4230 is specifically configured to: determine the load of the switching node in the first period based on the statistical queue length; obtain the port bandwidth of the switching node; and determine the overload rate of the switching node in the first period based on the load, port bandwidth, and the first period.
- the first determining unit 4230 is specifically configured to: obtain the queue weight coefficient and the queue fluctuation damping coefficient; determine the second height difference between the statistical queue length of the current first cycle and the statistical queue length of the previous first cycle; and determine the load of the switching node in the first cycle based on the queue weight coefficient, the statistical queue length, the queue fluctuation damping coefficient, and the second height difference.
- the first determining unit 4230 is specifically configured to: determine the first product of the port bandwidth and the first cycle; and determine the ratio of the load and the first product as the overload rate.
- the update unit 4240 is specifically configured to: when the overload rate of the previous first cycle is greater than a preset value, shorten the sliding window length of the first congestion window based on the overload rate when the confirmation response is received for the first time in the current first cycle; when the overload rate of the previous first cycle is less than or equal to the preset value, extend the sliding window length of the first congestion window each time an confirmation response is received in the current first cycle.
- the update unit 4240 is specifically configured to: when the acknowledgment response is received for the first time in the current first cycle, determine the first sum of the first value and the overload rate; and use the ratio of the window length of the first congestion window to the first sum as the window length of the shortened first congestion window.
- the update unit 4240 when the overload rate of the previous first cycle is greater than a preset value, and when the confirmation response is received for the first time in the current first cycle, after shortening the sliding window length of the first congestion sliding window based on the overload rate, the update unit 4240 is further configured to: when the overload rate of the previous first cycle is greater than the preset value, reset the cumulative value of the confirmation response to zero.
- the update unit 4240 is specifically configured as follows: when the overload rate of the previous first cycle is less than or equal to a preset value, the cumulative value of the confirmation response is increased every time a confirmation response is received in the current first cycle; when the cumulative value of the confirmation response has not reached the predetermined cumulative value, the sliding window length of the extended first congestion sliding window is determined based on the first extension method; when the cumulative value of the confirmation response reaches the predetermined cumulative value, the sliding window length of the extended first congestion sliding window is determined based on the second extension method.
- the update unit 4240 is specifically configured to: when the cumulative value of the confirmation response has not reached a predetermined cumulative value, obtain the second quantity in the confirmation response; initialize the third count value to 1; when the third count value is less than or equal to the second quantity, use the ratio of the additive windowing coefficient to the length of the first congestion window as the window length increment, and add the length of the first congestion window to the window length increment to obtain the extended window length of the first congestion window; increment the third count value by 1, and return to the step of using the ratio of the additive windowing coefficient to the length of the first congestion window as the window length increment when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- the update unit 4240 is specifically configured to: when the cumulative value of the confirmation response reaches a predetermined cumulative value, obtain the second quantity in the confirmation response; initialize the third count value to 1; when the third count value is less than or equal to the second quantity, use the product of a predetermined multiple and the length of the first congestion window as the extended window length of the first congestion window; increment the third count value by 1, and return to the step of using the product of a predetermined multiple and the length of the first congestion window as the extended window length of the first congestion window when the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.
- At least one switching node is multiple switching nodes, and a message is sent to the destination node through one of the multiple switching nodes; the acknowledgment response includes a first number and a second number corresponding to each switching node.
- the first determining unit 4230 is specifically configured to: determine the overload rate of each switching node based on the first quantity and the second quantity corresponding to each switching node;
- the update unit 4240 is specifically configured to update the first congestion sliding window corresponding to each switching node based on the overload rate of each switching node.
- a congestion marker or a free flow marker is recorded in the message corresponding to the switching node identifier
- the first and second counts are generated by the destination node in the following manner: the fourth and fifth counts corresponding to each switching node identifier are initialized to 0, wherein the fourth count indicates the number of packets for which the switching node corresponding to the switching node identifier has added a congestion flag, and the fifth count indicates the number of packets for which the switching node corresponding to the switching node identifier has added a smooth flag; when a packet is received, if the packet contains a congestion flag corresponding to the switching node identifier, the fourth count corresponding to the switching node identifier is incremented by 1; when a packet is received, if the packet contains a smooth flag corresponding to the switching node identifier, the fifth count corresponding to the switching node identifier is incremented by 1; when a predetermined condition is met, the fourth count is determined as the first count, and the fifth count is determined as the second count.
- the acknowledgment response is sent by the destination node in the following manner: when it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, a first quantity and a second quantity are determined based on the messages received within the predetermined time period, and an acknowledgment response is generated and sent based on the first quantity and the second quantity; when no predetermined time period has elapsed since the last acknowledgment response was sent, and a predetermined number of messages are received, a first quantity and a second quantity are determined based on the predetermined number of messages, and an acknowledgment response is generated and sent based on the first quantity and the second quantity.
- Figure 43 is a schematic diagram of the structure of a congestion control device 4300 provided in an embodiment of this disclosure.
- the congestion control device 4300 is disposed in the destination node and includes:
- the second receiving unit 4310 is configured to receive messages sent by the source node
- the second determining unit 4320 is configured to, when it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, determine a first number of packets carrying congestion flags and a second number of packets carrying unobstructed flags based on the packets received within the predetermined time period, and generate an acknowledgment response based on the first and second numbers, and return the acknowledgment response to the source node.
- there is an exchange node between the source node and the destination node and both the congestion flag and the unobstructed flag are obtained by the exchange node marking the packets received by the exchange node based on the buffer queue within the exchange node.
- the third determining unit 4330 is configured to determine a first quantity and a second quantity based on the predetermined number of messages when a predetermined time period has not elapsed since the last acknowledgment was sent and a predetermined number of messages have been received, and to generate an acknowledgment response based on the first quantity and the second quantity, and return the acknowledgment response to the source node.
- the terminal includes: a radio frequency (RF) circuit 4410, a memory 4415, an input unit 4430, a display unit 4440, a sensor 4450, an audio circuit 4460, a wireless fidelity (WiFi) module 4470, a processor 4480, and a power supply 4490, among other components.
- RF radio frequency
- the terminal structure shown in Figure 44 does not constitute a limitation on a mobile phone or computer, and may include more or fewer components than shown, or combine certain components, or have different component arrangements.
- RF circuit 4410 can be used for receiving and sending signals during information transmission or calls. In particular, it receives downlink information from the base station and processes it with processor 4480; in addition, it sends uplink data to the base station.
- the memory 4415 can be used to store software programs and modules.
- the processor 4480 executes various functional applications and data processing of the content terminal by running the software programs and modules stored in the memory 4415.
- the input unit 4430 can be used to receive input numeric or character information, and to generate key signal inputs related to the settings and function control of the content terminal.
- the input unit 4430 may include a touch panel 4431 and other input devices 4432.
- Display unit 4440 can be used to display input or provided information, as well as various menus of the content terminal.
- Display unit 4440 may include display panel 4441.
- Audio circuitry 4460, speaker 4461, and microphone 4462 provide an audio interface.
- the processor 4480 included in the terminal can execute the congestion control method of the previous embodiment.
- the terminals disclosed in this embodiment include, but are not limited to, mobile phones, computers, intelligent voice interaction devices, smart home appliances, vehicle terminals, and aircraft.
- the embodiments of this invention can be applied to various scenarios, including but not limited to content recommendation and data filtering.
- FIG. 45 is a partial structural block diagram of a server implementing the congestion control method of this disclosure.
- the server can vary significantly due to different configurations or performance, and may include one or more central processing units (CPUs) 4522 (e.g., one or more processors) and memory 4532, and one or more storage media 4530 (e.g., one or more mass storage devices) for storing application programs 4542 or data 4544.
- the memory 4532 and storage media 4530 may be temporary or persistent storage.
- the program stored in the storage media 4530 may include one or more modules (not shown in the figure), each module including a series of instruction operations on the server.
- the CPU 4522 may be configured to communicate with the storage media 4530 and execute the series of instruction operations in the storage media 4530 on the server.
- the server may also include one or more power supplies 4526, one or more wired or wireless network interfaces 4550, one or more input/output interfaces 4558, and/or one or more operating systems 4541, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
- operating systems 4541 such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
- the central processing unit 4522 in the server can be used to execute the congestion control method of the present disclosure embodiments.
- This disclosure also provides a computer-readable storage medium for storing program code for executing the congestion control methods of the foregoing embodiments.
- This disclosure also provides a computer program product comprising a computer program.
- a processor of a computer device reads and executes the computer program, causing the computer device to perform the congestion control method described above.
- At least one item refers to one or more items, and “more than one item” refers to two or more items.
- “And/or” is used to describe the relationship between related content, indicating that three relationships can exist. For example, “A and/or B” can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character “/” generally indicates that the preceding and following related content are in an “or” relationship. "At least one of the following” or similar expressions refer to any combination of these items, including any combination of single or plural items.
- At least one of a, b, or c can represent: a, b, c, "a and b", “a and c", “b and c", or "a and b and c", where a, b, and c can be single or multiple.
- the disclosed systems, apparatuses, and methods can be implemented in other ways.
- the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods.
- multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed.
- the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
- the units described as separate components may or may not be physically separate.
- the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
- the functional units in the various embodiments of this disclosure can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
- the integrated unit can be implemented in hardware or as a software functional unit.
- the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
- This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server 130, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this disclosure.
- the aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品。拥塞控制方法包括:基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文;接收目的地节点返回的确认应答,确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到;基于第一数量和第二数量确定交换节点的过载率;基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
Description
相关申请的交叉引用
本申请实施例基于申请号为202410684955.7、申请日为2024年05月29日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请实施例作为参考。
本公开涉及数据通信领域,特别是涉及一种拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品。
由于数据中心网络的链路都是共享的,通常情况下当流经过某个链路的数据流超过一条时,该链路就会发生拥塞。在发生拥塞时,会存在多条从不同端口进入交换机的数据流被路由到同一个出端口,由于此时多个接收端口的接收带宽大于一个出端口的发送带宽,数据包会在出端口的缓存队列堆积起来,产生了队列堆积,不仅降低了传输数据流的效率,还消耗了交换机的缓存资源。
相关技术中,通过数据中心量化拥塞通知(DCQCN)方法或高精度拥塞控制(HPCC)方法来进行拥塞控制。但是,DCQCN的降速算法和升速算法的调速粒度较粗,难以精准地执行拥塞控制。而HPCC执行拥塞控制依赖于获取数据流所经过的交换机的状态信息,这将对交换机定制化要求过高,导致其难以应用于实际生产和部署。
本公开实施例提供了一种拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品,能够精准地执行拥塞控制。
本公开实施例提供了一种拥塞控制方法,应用于源节点,包括:
基于第一拥塞滑窗向目的地节点发送报文,其中,所述第一拥塞滑窗是在待发送报文队列中移动的窗口,所述第一拥塞滑窗用于指示向所述目的地节点发出的第一数目个报文,当所述第一数目个报文中有报文被确认应答时,所述第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进所述第一拥塞滑窗的所述待发送报文;
接收所述目的地节点返回的所述确认应答,所述确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的报文进行标记得到;
基于所述第一数量和所述第二数量确定所述交换节点的过载率;
基于所述过载率对所述第一拥塞滑窗进行更新,其中,通过更新后的所述第一拥塞滑窗对容纳进的所述待发送报文的数目进行控制。
本公开实施例提供了一种拥塞控制方法,应用于目的地节点,所述拥塞控制方法包括:
接收源节点发送的报文;
当确定从发出上一个确认应答后过去预定时间段时,基于所述预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答,其中,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的所述报文进行标记得到;
当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答。
本公开实施例提供了一种拥塞控制方法,应用于源节点,所述拥塞控制方法还包括:
基于第一拥塞滑窗向目的地节点发送报文,其中,所述第一拥塞滑窗是在待发送报文队列中移动的窗口,所述第一拥塞滑窗用于指示向所述目的地节点发出的第一数目个报文,当所述第一数目个报文中有报文被确认应答时,所述第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进所述第一拥塞滑窗的所述待发送报文;
接收所述目的地节点返回的所述确认应答,所述确认应答包括交换节点的过载率,其中,所述源节点和所述目的地节点之间设有交换节点,所述交换节点基于所述交换节点内的缓存队列对所述报文进行标记得到拥塞标记和畅通标记,所述过载率由所述目的地节点基于带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量确定得到;
基于所述过载率对所述第一拥塞滑窗进行更新,其中,通过更新后的所述第一拥塞滑窗对容纳进的所述待发送报文的数目进行控制。
本公开实施例提供了一种拥塞控制方法,应用于目的地节点,所述拥塞控制方法还包括:
接收源节点发送的报文;
当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于所述第一数量和所述第二数量确定交换节点的过载率,基于所述过载率生成确认应答,向所述源节点返回所述确认应答,其中,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述所述交换节点接收到的报文进行标记得到;
当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量确定交换节点的过载率,基于所述过载率生成确认应答,向所述源节点返回所述确认应答。
本公开实施例提供了一种拥塞控制装置,设置于源节点中,所述拥塞控制装置包括:
第一发送单元,配置为基于第一拥塞滑窗向目的地节点发送报文,其中,所述第一拥塞滑窗是在待发送报文队列中移动的窗口,所述第一拥塞滑窗用于指示向所述目的地节点发出的第一数目个报文,当所述第一数目个报文中有报文被确认应答时,所述第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进所述第一拥塞滑窗的所述待发送报文;
第一接收单元,配置为接收所述目的地节点返回的所述确认应答,所述确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的报文进行标记得到;
第一确定单元,配置为基于所述第一数量和所述第二数量确定所述交换节点的过载率;
更新单元,配置为基于所述过载率对所述第一拥塞滑窗进行更新,其中,通过更新后的所述第一拥塞滑窗对容纳进的所述待发送报文的数目进行控制。
本公开实施例提供了一种拥塞控制装置,设置于目的地节点中,所述装置包括:
第二接收单元,配置为接收源节点发送的报文;
第二确定单元,配置为当确定从发出上一个确认应答后过去预定时间段时,基于所述预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答,其中,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的所述报文进行标记得到;
第三确定单元,配置为当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答。
本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的拥塞控制方法。
本公开实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的拥塞控制方法。
本公开实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行如上所述的拥塞控制方法。
本公开实施例中,接收目的地节点返回的确认应答,并基于确认应答中包含的携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量来确定交换节点的过载率。过载率可以精准地反映链路中的交换节点当前的堵塞情况。这样,基于过载率来对第一拥塞滑窗进行更新后,就能够对发送的目标报文的数目进行精确控制,从而实现了精准的拥塞控制。一旦第一拥塞滑窗中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。这样,就能够在过载率反映出的交换节点的负载状态较重时,不增加第一拥塞滑窗的长度,从而不发送新的报文,缓解网络拥塞。在过载率反映出的交换节点的负载状态较轻时,增加第一拥塞滑窗的长度,从而容纳新的报文进行发送,充分利用网络带宽,精准地进行拥塞控制。同时,本公开实施例所使用的方法仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量,即可精准地进行拥塞控制,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1A-图1B是根据本公开的实施例的拥塞控制方法的体系架构图;
图2A是根据本公开的实施例的拥塞控制方法的软件形态示意图;
图2B是根据本公开的实施例的拥塞控制方法的硬件形态示意图;
图3是根据本公开的实施例的拥塞控制方法所应用的数据中心网络的拓扑的示意图;
图4是根据本公开的实施例的由源节点计算过载率的拥塞控制方法应用于源节点侧的总体流程图;
图5是根据本公开实施例的第一拥塞滑窗的示意图;
图6是根据本公开实施例的拥塞控制方法应用于源节点侧的方案模型示意图;
图7A是根据本公开实施例的拥塞控制方法应用于源节点侧的系统模型示意图;
图7B是根据本公开实施例的拥塞控制方法应用于源节点侧的交互示意图;
图8是根据本公开实施例的目的地节点发出确认应答的流程图;
图9是根据本公开实施例的交换节点内的队列长度的示意图;
图10是根据本公开实施例的交换节点基于交换节点内的队列长度对报文进行标记的示意图;
图11是根据本公开实施例的基于第一数量和第二数量确定交换节点的过载率的具体流程图;
图12是根据本公开实施例的基于确认应答数目和实时性程度确定第一周期的示意图;
图13是根据本公开实施例的基于第一数量和第二数量确定第一周期中交换节点的统计标记概率的具体流程图;
图14是根据本公开实施例的获取第一周期内接收到的确认应答的第一序列的示意图;
图15是根据本公开实施例的基于待考察确认应答中的第一数量和第二数量更新统计标记概率的具体流程图;
图16是根据本公开实施例的利用第一标记概率增加方法增加统计标记概率的具体流程图;
图17是根据本公开实施例的利用第一标记概率减少算法减少统计标记概率的具体流程图;
图18是根据本公开实施例的基于统计标记概率确定第一周期中交换节点的统计队列长度的具体流程图;
图19是根据本公开实施例的获取第一队列长度和第二队列长度的具体流程图;
图20是根据本公开实施例的获取第二队列长度对应的临界标记概率的具体流程图;
图21是根据本公开实施例的基于统计队列长度确定第一周期中交换节点的过载率的具体流程图;
图22是根据本公开实施例的基于统计队列长度确定第一周期中交换节点的负载量的具体流程图;
图23是根据本公开实施例的基于负载量、端口带宽和第一周期,确定第一周期中交换节点的过载率的具体流程图;
图24是根据本公开实施例的基于过载率对第一拥塞滑窗进行更新的具体流程图;
图25A是根据本公开实施例的增加第一拥塞滑窗的长度的示意图;
图25B是根据本公开实施例的减小第一拥塞滑窗的长度的示意图;
图26是根据本公开实施例的基于过载率减小第一拥塞滑窗的长度的具体流程图;
图27是根据本公开实施例的增加第一拥塞滑窗的长度的具体流程图;
图28是根据本公开实施例的基于第一规则确定延长后的第一拥塞滑窗的长度的具体流程图;
图29是根据本公开实施例的基于第二规则确定延长后的第一拥塞滑窗的长度的具体流程图;
图30是根据本公开实施例的基于第一数量和第二数量确定交换节点的过载率并基于过载率对第一拥塞滑窗进行更新的具体流程图;
图31是根据本公开实施例的报文经过多个交换节点中的一个交换节点发送到目的地节点的示意图;
图32是根据本公开实施例的DCQCN的仿真数据的示意图;
图33是根据本公开实施例的HPCC的仿真数据的示意图;
图34是根据本公开实施例的拥塞控制方法的仿真数据的示意图;
图35是根据本公开实施例的目的地节点发出确认应答的交互示意图;
图36是根据本公开实施例的由源节点计算过载率的拥塞控制方法应用于目的地节点侧的总体流程图;
图37是根据本公开实施例的由目的地节点计算过载率的拥塞控制方法应用于源节点侧的总体流程图;
图38A是根据本公开实施例的由目的地节点计算过载率的拥塞控制方法的方案模型示意图;
图38B是根据本公开实施例的由目的地节点计算过载率的拥塞控制方法应用于源节点侧的交互示意图;
图39是根据本公开实施例的由目的地节点计算过载率的拥塞控制方法应用于目的地节点侧的总体流程图;
图40是根据本公开实施例的由目的地节点计算过载率的拥塞控制方法应用于目的地节点侧的交互示意图;
图41是根据本公开实施例的拥塞控制方法的一个实施细节图;
图42是根据本公开实施例的应用于源节点侧的拥塞控制装置的模块框图;
图43是根据本公开实施例的应用于目的地节点侧的拥塞控制装置的模块框图;
图44是根据本公开实施例执行拥塞控制方法的终端结构图;
图45是根据本公开实施例执行拥塞控制方法的服务器结构图。
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
数据中心网络:是路由器、交换机、接口等网络设备的复杂排列,网络设备之间相互配合、协同工作,以提供更快、更可靠的网络服务。
报文:是网络中交换与传输的数据单元,即节点一次性要发送的数据块。报文作为网络传输的基本单位,传输过程中会封装成分组、包或帧来传输,封装的方式是通过添加报文头等信息段,并按照特定格式组织数据。报文包含完整的待传输的数据信息,其长短长度可变且没有固定限制。
显式拥塞通知(Explicit Congestion Notification,ECN):通常情况下,当数据中心网络出现拥塞的时候,传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)会主动丢弃数据包。源端检测到丢包后,会减小拥塞窗口,降低传输速率。但如果端到端能成功协商ECN的话,支持ECN的路由器就可以在检测到拥塞时,在IP报头中设置显式拥塞标记(ECN标记),向接收到发出拥塞信号,而无需直接丢弃数据包。这种方式减少了TCP的丢包数量,避免了不必要的重传,降低了网络延迟(尤其是抖动),提升了应用的整体性能。
由于数据中心网络的链路都是共享的,通常情况下当流经过某个链路的数据流超过一条时,该链路就会发生拥塞。在发生拥塞时,会存在多条从不同端口进入交换机的数据流被路由到同一个出端口,由于此时多个接收端口的接收带宽大于一个出端口的发送带宽,数据包会在出端口的缓存队列堆积起来,产生了队列堆积,不仅降低了传输数据流的效率,还消耗了交换机的缓存资源。相关技术中,通过数据中心量化拥塞通知(DCQCN)方法或高精度拥塞控制(HPCC)方法来进行拥塞控制。但是,DCQCN的降速算法和升速算法的调速粒度较粗,难以精准地执行拥塞控制。而HPCC执行拥塞控制依赖于获取数据流所经过的交换机的状态信息,这将对交换机定制化要求过高,导致其难以应用于实际生产和部署。
基于此,本公开实施例提供一种拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品,能够基于交换节点的过载率对第一拥塞滑窗进行更新,从而对发送的目标报文的数目进行精确控制,实现了精准的拥塞控制。同时,本公开实施例所使用的方法仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量,即可精准地进行拥塞控制,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
下面对本公开实施例应用的系统体系构架及场景进行说明。
图1A和图1B是根据本公开实施例的拥塞控制方法所应用的系统构架图。系统构架图包括:对象终端110、互联网120、网关130、与服务器140。
对象终端110是对象用来发送或接收报文对应的消息的设备。对象终端110可以是桌面电脑、膝上型电脑、个人数字助理(PDA)、手机、车载终端、家庭影院终端、专用终端等多种形式。另外,对象终端110可以是单台设备,也可以是多台设备组成的集合。例如,多台设备通过局域网连接,公用一台显示设备进行协同工作,共同构成一个终端。对象终端110也可以以有线或无线的方式与互联网120进行通信,交换数据。
网关130又称网间连接器、协议转换器。网关130在传输层上实现网络互连,是一种充当转换作用的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关130是一个翻译器。同时,网关130也可以提供过滤和安全功能。对象终端110向服务器140发送的消息要通过网关130发送到相应的服务器140。服务器140向对象终端110发送的消息也要通过网关130发送到相应的对象终端110。
服务器140是指能够提供拥塞控制服务的计算机系统。相对于对象终端110来说,服务器140在稳定性、安全性、性能等方面都要求更高。服务器140可以是网络平台中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。另外,服务器140包括连接发送端单元,连接发送端单元可以提供拥塞控制功能、可靠接收功能和可靠交付功能,且连接发送端单元可以通过有线或无线的方式与互联网120进行通信,交换数据,从而实现拥塞控制。
如图1A所示,对象终端110通过互联网120以及网关130发送报文至服务器140,服务器140接收报文,并执行拥塞控制方法,基于第一拥塞滑窗向目的地节点发送报文,接收目的地节点返回的所述确认应答,基于确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,确定交换节点的过载率,基于过载率对第一拥塞滑窗进行更新,以对容纳进的未发送报文数目进行控制,从而调节向目的地节点的发送速率,从而实现拥塞控制。
如图1B所示,服务器140可以通过连接发送端单元的可靠接收功能接收对象终端110发送的报文,然后通过连接发送端单元的拥塞控制功能实现拥塞控制方法,以对容纳进的未发送报文数目进行控制,从而调节向目的地节点的发送速率,从而实现拥塞控制。
图2A是根据本公开实施例的拥塞控制方法所应用的服务器的软件形态示意图。图2B是根据本公开实施例的拥塞控制方法所应用的服务器的硬件形态示意图。根据本公开的实施例,源节点可作为数据传输的一个技术组件,实现在传输协议栈内部。参照图2A,在软件形态中,本公开实施例可以实现在软件传输协议栈内部。例如,本公开的实施例可以作为类似于TCP协议栈内部的拥塞控制组件,实现在软件传输协议栈内部。参照图2B,本公开的实施例可以通过智能网卡来实现,即以硬件电路的形式或CPU微码的形式来实现。
另外,参照图2A和图2B,本公开实施例提供的拥塞控制方法可以为人工智能(Artificial Intelligence,AI)训练、云存储、虚拟云网络(Virtual Private Cloud,VPC)、远程字典服务(Remote Dictionary Server,Redis)数据库等提供数据传输服务和拥塞控制服务。
本公开实施例可以应用在数据传输场景中,参照图3,图3是根据本公开的实施例的拥塞控制方法所应用的数据中心网络的拓扑的示意图。图3中的H0-H15可以表示为一个机房中的多个服务器,服务器用于存储并发送报文数据。例如:服务器H0存储有报文数据A,服务器H1存储有报文数据B。LA0-LA31、LC0-LC7可以表示为一个机房中的多个交换机,交换机用于转发数据。进一步的,服务器H0-H15还可以和外部的应用连接,用于接收该应用所对应的报文数据,并将其传输给数据中心网络中其他的服务器。
图3的数据中心网络存在三层交换机,分别是接入层、汇聚层和核心层,其中,接入层的交换机包括LA16-LA31,汇聚层的交换机包括LA0-LA15,核心层的交换机包括LC0-LC7,服务器与接入层的交换机连接。需要注意的是,在主流的数据中心网络中,为了增加服务器之间的通信带宽和连接可靠性,发送端的源节点服务器一般使用两条链路上联到接入层的两个交换机(即服务器的两个网口分别连接到两个交换机)。同理,接收端的目的地节点服务器一般使用两条链路与接入层的两个交换机连接。例如:交换机H0使用两条链路上联到接入层的交换机LA16和交换机LA17。
此处结合服务器发送报文数据的过程和接收报文数据的过程对图3的数据中心的网络架构进行说明:在图3中,发送端的源节点服务器包括H0-H7,接收端的目的地节点服务器包括H9-H15。发送端的源节点服务器需要发送某个应用所对应的报文数据给接收端的目的地节点服务器,首先需要发送该报文数据给接入层的交换机,由接入层的交换机将报文数据转发给汇聚层的交换机,由汇聚层的交换机将报文数据转发给核心层的交换机。在核心层接收到汇聚层的交换机转发的报文数据后,将报文数据转发给汇聚层的交换机,由汇聚层的交换机将报文数据转发给接入层的交换机,最后,由接入层的交换机将接收到的报文数据转发给接收端的目的地节点服务器。
示例性的,发送端的源节点服务器H1如果需要发送报文数据给接收端的目的地节点服务器H9,存在着多条转发路径,此处针对其中一条转发路径对源节点服务器H1发送报文数据A给目的地节点服务器H9的过程进行说明:源节点服务器H1首先将报文数据A发送给接入层的交换机LA16,由交换机LA16将报文数据A转发给汇聚层的交换机LA1,使得交换机LA1将报文数据A转发给核心层的交换机LC2。然后,交换机LC2将报文数据A转发给汇聚层的交换机LA9,由交换机LA9将报文数据A转发给接入层的交换机LA24。最后,交换机LA24将报文数据A转发给接收端的目的地节点服务器H9,目的地节点服务器H9发送确认应答给发送端的源节点服务器H1,使得源节点服务器H1确认目的地节点服务器H9已经接收到了报文数据A。
应理解,以上内容仅示出了对本公开部分应用场景的说明。本公开能够应用的业务场景可以包括但不限于上述举出的具体实施例。
下面进行本公开实施例的总体说明。
需要强调的是,本公开实施例能够适用于多种应用场景,例如数据传输、分布式应用程序、高速集群、云存储等场景。相关技术中,通过数据中心量化拥塞通知(DCQCN)方法或高精度拥塞控制(HPCC)方法来进行拥塞控制。但是,DCQCN的降速算法和升速算法的调速粒度较粗,难以精准地执行拥塞控制。而HPCC执行拥塞控制依赖于获取数据流所经过的交换机的状态信息,这将对交换机定制化要求过高,导致其难以应用于实际生产和部署。本公开实施例提供了一种拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品,能够基于过载率对第一拥塞滑窗进行更新,精准地执行了拥塞控制,同时本公开实施例仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量即可实现,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
拥塞控制是一个全局性的过程。在数据中心中,拥塞控制方法可以是指发送端的源节点服务器、接收端的目的地节点服务器和转发报文数据的交换节点协同作用,以调节数据中心中的报文的流量,来达到缓解拥塞、解除拥塞的效果,使得数据中心的网络能够承受当前的网络负荷。
本公开实施例的拥塞控制方法在源节点和目的地节点的服务器110执行,源节点的服务器110将来自于对象终端110的报文传输至目的地节点的服务器110,传输完成后,由目的地节点将接收到的报文通过网关130、和互联网120传输到对象终端110,由对象终端110向目标对象展示报文对应的信息。
如图4所示,根据本公开实施例,应用于源节点,拥塞控制方法包括:
步骤410、基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文;
步骤420、接收目的地节点返回的确认应答,确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到;
步骤430、基于第一数量和第二数量确定交换节点的过载率;
步骤440、基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
下面对上述步骤410-440进行简要描述。
在步骤410中,基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文。
根据本公开的实施例,源节点可以为发送报文的服务器,目的地节点可以为接收报文的服务器,源节点与目的地节点相对应,且源节点和目的地节点之间设置有连接。而且,源节点向目的地节点发送报文,目的地节点在接收到源节点发送的报文后,需要返回一个确认应答给发送该报文的源节点,以使源节点知悉该目的地节点已经接收到报文。
其中,待发送报文队列是指源节点还没有发送的多个报文所组成的队列,即待发送的报文(简称待发送报文)形成的队列。假设源节点处存在报文1、报文2、报文3、报文4和报文5还未发送,此时可以将报文1、报文2、报文3、报文4和报文5组成的队列看作待发送报文队列。
其中,第一拥塞滑窗是源节点维护的一个动态的状态变量,能够基于动态调整的滑窗长度,限制源节点可发送的报文数量,从而避免交换节点过载并实现拥塞控制,在本公开的实施例中,第一拥塞滑窗可以根据数据中心网络的拥塞程度动态变化。例如,第一拥塞滑窗是指在源节点的待发送报文队列中移动的窗口,且第一拥塞滑窗可以用来指示向目的地节点发出的第一数目个报文。其中,第一数目个报文为源节点已经发送但尚未接收到目的地节点返回的确认应答的报文。第一数目是第一拥塞滑窗的滑窗大小(即滑窗长度),参照图5,第一拥塞滑窗中存在报文2、报文3、报文4、报文5、报文6、报文7、报文8、报文9、报文10、报文11、报文12和报文13,则第一数目为12。
在数据传输的过程中,一旦源节点接收到这第一数目个报文中的报文的确认应答,就会将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。参照图5,示例性的,当前源节点已经接收到报文1对应的确认应答,源节点基于第一拥塞滑窗向目的地节点发送报文,第一拥塞滑窗中存在报文2、报文3、报文4、报文5、报文6、报文7、报文8、报文9、报文10、报文11、报文12和报文13,这些报文均为源节点已经发送但尚未接收到确认应答的报文。在接收到报文2所对应的确认应答后,将第一拥塞滑窗滑动,以容纳未发出的报文14,并将报文14发送给目的地节点。
在步骤420中,接收目的地节点返回的确认应答,确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到。
根据本公开的实施例,交换节点是指用于将源节点发送的报文转发到目的地节点的设备,例如交换节点可以为交换机。在数据中心网络拓扑中,源节点和目的地节点之间设有至少一个交换节点。
示例性的,当存在多个从不同端口进入交换节点的报文被路由到了同一个出端口,由于收发带宽的不匹配(即两个接收端口的接收带宽大于一个出端口的发送带宽),报文会在交换节点的出端口的缓存处堆积起来,从而形成缓存队列,而队列长度是指缓存队列的大小。参照图3,假设交换节点LA8和交换节点LA9同时将报文转发到交换节点LA24,由交换节点LA24将两个报文转发到目的地节点H8,此时交换节点LA8转发到交换节点LA24的报文和交换节点LA9转发到交换节点LA24的报文就会在交换节点LA24的出端口的缓存处堆积起来,形成缓存队列。参照图9,交换节点LA8转发到交换节点LA24的报文从端口1进入,交换节点LA9转发到交换节点LA24的报文从端口2进入,这两个报文在端口3的缓存处堆积起来,图9中的阴影即为缓存队列,阴影的大小为缓存队列的队列长度。
其中,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列对报文进行标记得到,其中,携带有拥塞标记的报文表征报文经过交换节点时,交换节点处于拥塞状态,携带有畅通标记的报文表征报文经过交换节点时,交换节点处于畅通状态。示例性的,源节点在发送报文时,首先会将报文中的显式拥塞标记字段置位为0b10或0b01,以使能显式拥塞标记功能。交换节点接收到带有显式拥塞标记字段的报文后,在通过出端口将该报文发送出去之前,会基于当前队列长度决定是否对报文中的显式拥塞标记字段进行修改。例如,拥塞标记是指交换节点基于当前队列长度将报文中的显式拥塞标记字段修改为0b11,携带有拥塞标记的报文是指显式拥塞标记字段为0b11的报文。畅通标记是指交换节点并没有对报文中的显式拥塞标记字段进行修改的显式拥塞标记字段,携带有畅通标记的报文是指显式拥塞标记字段为0b10或0b01的报文。
参照图6,示例性的,假设源节点和目的地节点之间设有一个交换节点,源节点基于第一拥塞窗口向目的地节点发送报文。交换节点在接收到报文后,基于交换节点内的队列长度对报文进行标记,得到携带有拥塞标记的报文或是携带有畅通标记的报文,并将该报文转发给目的地节点。目的地节点在接收到交换节点转发的报文后,会对该报文所携带的标记进行统计,并将携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量插入到确认应答中,将确认应答发送给源节点,以使得源节点通过第一数量和第二数量了解当前数据中心网络的拥塞情况。
在步骤430中,基于第一数量和第二数量确定交换节点的过载率。
根据本公开的实施例,过载率用于表征交换节点当前的拥塞状态,过载率可以用来表明当前交换节点内部的缓存队列的队列长度是否超过该交换节点所能处理的报文的临界值。本公开的实施例可以通过过载率直观地了解到当前交换节点内部的缓存队列的情况,以得知当前的拥塞程度,从而实现精准地拥塞控制。
在步骤440中,基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
根据本公开的实施例,假如更新后的第一拥塞滑窗的滑窗大小小于更新前的第一拥塞滑窗的滑窗大小,因为源节点是基于第一拥塞滑窗发送报文的,第一拥塞滑窗的滑窗大小减小,则当前源节点可以发送的报文数量小于更新前源节点可以发送的报文数量。从而,减小源节点向目的地节点发送报文的发送速率。同理,假如更新后的第一拥塞滑窗的滑窗大小大于更新前的第一拥塞滑窗的滑窗大小,第一拥塞滑窗的滑窗大小增大,则当前源节点可以发送的报文数量也对应增加,从而,增加源节点向目的地节点发送报文的发送速率。
结合图7A和图7B,假设源节点和目的地节点之间设有交换节点1,且源节点在接收到两个报文后返回确认应答。如图7B所示,此处举例对更新第一拥塞滑窗的过程进行说明:步骤710中,源节点基于当前的第一拥塞滑窗向目的地节点发送报文1,假如当前数据中心网络中不存在拥塞,步骤720中,交换节点1在接收到报文1后,基于当前队列长度对报文1进行标记,得到携带有畅通标记的报文1,并将携带有畅通标记的报文1转发给目的地节点,步骤730中,目的地节点接收携带有畅通标记的报文1。在这之后,步骤740中,源节点将基于第一拥塞滑窗向目的地节点发送报文2,假如当前数据中心网络存在拥塞,在步骤750中,交换节点1在接收到报文2后基于当前队列长度对报文2进行标记,得到携带有拥塞标记的报文2,并将携带有拥塞标记的报文2转发给目的地节点,在步骤760中,目的地节点接收携带有拥塞标记的报文2。此时目的地节点已经接收到两个报文,在步骤770中,将携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量写入确认应答,其中,第一数量为1,第二数量为1。目的地节点返回确认应答给源节点,源节点在接收到确认应答后,在步骤780中,基于确认应答中的第一数量和第二数量确定得到交换节点1的过载率,在步骤790中,基于过载率对第一拥塞滑窗进行更新,以调节源节点向目的地节点发送报文的发送速率。需要说明的是,本公开的实施例通过基于过载率对第一拥塞滑窗进行更新,从而对调节源节点向目的地节点发送报文的发送速率进行调节,实现了精准的拥塞控制。
上述步骤410至步骤440的实施例可以接收目的地节点返回的确认应答,并基于确认应答中包含的携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量来确定交换节点的过载率。过载率可以精准地反映链路中的交换节点当前的堵塞情况。这样,基于过载率来对第一拥塞滑窗进行更新后,就能够对发送的目标报文的数目进行精确控制,从而实现了精准的拥塞控制。一旦第一拥塞滑窗中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。这样,就能够在过载率反映出的交换节点的负载状态较重时,不增加第一拥塞滑窗的长度,从而不发送新的报文,缓解网络拥塞。在过载率反映出的交换节点的负载状态较轻时,增加第一拥塞滑窗的长度,从而容纳新的报文进行发送,充分利用网络带宽,精准地进行拥塞控制。同时,本公开实施例所使用的方法仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量,即可精准地进行拥塞控制,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
以上是对步骤410至步骤440的总体描述。由于上面已经对步骤410描述得足够仔细,下面仅对步骤420至步骤440的具体实施过程进行详细描述。
下面针对步骤420进行详细描述。
步骤420中,接收目的地节点返回的确认应答,确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到。
在一些实施例中,步骤420中的拥塞标记和畅通标记由交换节点通过以下方式,基于交换节点内的缓存队列,对报文进行标记得到:当交换节点内的缓存队列的长度小于或者等于第一队列长度时,在报文上加上畅通标记;当交换节点内的缓存队列的长度大于或者等于第二队列长度时,在报文上加上拥塞标记,其中,第二队列长度大于第一队列长度;当交换节点的缓存队列的长度大于第一队列长度、且小于第二队列长度,以第一概率在报文上加上拥塞标记,并以第一概率的补数在报文上加上畅通标记,其中,第一概率的补数为1与第一概率的差,第一概率随着处于第一队列长度与第二队列长度之间的队列长度线性变化。示例性的,假设第一概率为30%,则交换节点以30%的概率为报文加拥塞标记,那么交换节点同时会以70%的概率为报文加畅通标记。
根据本公开的实施例,第一队列长度是指对报文进行标记的下限所对应的交换节点的队列长度。参照图10,当交换节点的缓存队列的队列长度超过第一队列长度,说明此时可能存在拥塞,则交换节点开始概率性地为报文添加拥塞标记。第二队列长度是指对报文进行标记的上限所对应的交换节点的队列长度,参照图10,当交换节点的缓存队列的队列长度超过第二队列长度,说明此时一定存在拥塞,则此时交换节点为报文添加拥塞标记的概率是100%。当交换节点的缓存队列的队列长度介于第一队列长度和第二队列长度之间,对报文添加拥塞标记的概率随着交换节点的缓存队列的队列长度的增加线性增长,也就是说,交换节点的缓存队列的队列长度越长,为报文添加拥塞标记的概率越大,第一概率就是指为报文添加拥塞标记的概率。
参照图10,示例性的,假设第一队列长度为5,第二队列长度为15。如果当前交换节点内的缓存队列的队列长度小于5,说明当前交换节点没有发生拥塞,此时为报文添加畅通标记(即不对报文的显式拥塞字段进行修改)。如果当前交换节点内的缓存队列的队列长度为10,在5和15之间,说明当前交换节点内可能发生拥塞,则此时第一概率为50%,将以第一概率为报文添加拥塞标记,并以50%的概率为报文添加畅通标记。如果当前交换节点内的缓存队列的队列长度为20,说明当前交换节点内一定发生拥塞,则此时为报文添加拥塞标记的概率是100%。
上述实施例能够基于交换节点内的缓存队列的队列长度概率性地为报文进行标记,便于源节点在接收到携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量之后,更加精确地了解当前交换节点内部的拥塞情况。
如此,本公开实施例通过多级阈值(即第一队列长度以及第二队列长度)与概率化标记机制实现了精细化的拥塞控制,具体表现为:(1)设置双队列长度阈值(第一队列长度<第二队列长度),在轻载(≤第一队列长度)时标记畅通、重载(≥第二队列长度)时强制标记拥塞,确保极端场景的快速响应;(2)在中间负载状态(第一队列长度<队列长度<第二队列长度)时,采用线性变化的概率标记策略,使拥塞标记概率随队列长度平滑上升,既避免了传统二进制ECN的"突跳式"反应,又能渐进式调节流量,有效平衡吞吐量与延迟;(3)通过概率补数机制(1-第一概率)自动保持标记行为的数学完备性,降低实现复杂度。该设计显著提升了数据中心网络在高负载波动场景下的稳定性。
以上是对交换节点基于交换节点内的队列长度对报文进行标记的具体实施过程的详细描述,下面对目的地节点发出确认应答的具体实施过程进行详细描述。
在一实施例中,参照图8,步骤420中的确认应答由目的地节点通过以下方式发出:
步骤810、当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答;
步骤820、当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答。
下面对步骤810至步骤820进行详细描述。
在步骤810中,当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答。
根据本公开的实施例,预定时间段可以为预先设置的时间段,且预定时间段可以根据交换节点的转发报文的能力和目的地节点的处理报文的能力来设置。预定时间段可以为一秒,也可以为一分钟。示例性的,假设预定时间段为一分钟,如果目的地节点确定从发出上一个确认应答后过去一分钟,则基于这一分钟内接收到的报文,来确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量。在确定完第一数量和第二数量后,目的地节点将第一数量和第二数量插入到确认应答中,将确认应答返回给源节点。在一分钟过去后,目的地节点将再次基于下一分钟统计的第一数量和第二数量生成并发出确认应答。
其中,在数据中心网络空闲的时间段内,此时可能存在目的地节点间隔很长一段时间才能接收到一个报文的问题,这将导致数据中心网络的资源浪费。本公开的实施例通过设置预定时间段,并基于预定时间段接收到的报文确定第一数量和第二数量,基于第一数量和第二数量生成并发出确认应答,避免了数据中心网络空闲所带来的资源浪费的问题。
在步骤820中,当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答。
需要说明的是,在数据中心网络繁忙时,源节点将在预定时间段内发送多个报文给目的地节点,此时可能存在目的地节点在预定时间段内接收到过多报文的问题。在这种情况下,基于预定时间段接收到的报文确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答,将造成数据中心网络实时性差的问题。因此,本公开的实施例在设置了预定时间段的基础上,还设置了预定数目,来提升数据中心网络的实时性。预定数目为预先设置的数值,且预定数目可以根据交换节点的转发报文的能力和目的地节点的处理报文的能力来设置,预定数目可以为1,可以为5,也可以为10。
示例性的,假设预定时间段为一分钟,预定数目为5,如果从发出上一个确认应答后还未过去一分钟,但是目的地节点已经接收到了5个报文,则此时目的地节点基于5个报文确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量。在确定完第一数量和第二数量后,目的地节点将第一数量和第二数量插入到确认应答中,将确认应答返回给源节点。再又过了一分钟的情况下,或还没过一分钟,但目的地节点已经接收到5个报文的情况下,目的地将再次返回确认应答给源节点。
上述步骤810至步骤820的实施例,通过设置预定时间段,并基于预定时间段接收到的报文确定第一数量和第二数量,基于第一数量和第二数量生成并发出确认应答,避免了数据中心网络空闲所带来的资源浪费的问题。同时在设置了预定时间段的基础上,还设置了预定数目,避免目的地节点在预定时间段内接收过多报文才生成确认应答的问题,增加了数据中心网络的实时性。
下面对步骤430进行详细描述。
步骤430、基于第一数量和第二数量确定交换节点的过载率。
在一实施例中,参照图11,步骤430包括:
步骤1110、当达到第一周期时,基于第一数量和第二数量,确定第一周期中交换节点的统计标记概率;
步骤1120、基于统计标记概率,确定第一周期中交换节点的统计队列长度;
步骤1130、基于统计队列长度,确定第一周期中交换节点的过载率。
下面对步骤1110至步骤1130进行详细描述:
在步骤1110中,当达到第一周期时,基于第一数量和第二数量,确定第一周期中交换节点的统计标记概率。
根据本公开的实施例,虽然交换节点能够基于队列长度对报文进行概率性的标记,并将报文转发给目的地节点,但是源节点和目的地节点并不能得知交换节点对报文进行标记的概率。基于此,本公开的实施例的源节点每达到第一周期,可以基于携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量来确定第一周期中交换节点的统计标记概率,以估计第一周期中交换节点基于队列长度对报文进行标记的概率,进而精准地获取交换节点内部的拥塞情况。需要说明的是,统计标记概率并不是每隔第一周期更新一次的,而且每接收到一个确认应答更新一次,此时每隔第一周期所确定得到的统计标记概率是第一周期中最后一次更新得到的统计标记概率。而且统计标记概率并不是指交换节点对某个报文进行标记的概率,而是指交换节点在第一周期内对接收到的所有报文进行标记的概率的平均数。
其中,统计标记概率是指源节点通过持续检测接收到的确认应答,动态计算的、反映交换节点在第一周期(作为统计观察窗口)内整体拥塞行为的量化指标。统计标记概率表征交换节点在第一周期内对所有经过报文的平均标记概率,而非对单个报文的瞬时标记概率。例如,若第一周期内交换节点标记了1000个报文,其中,300个报文被标记为拥塞,则统计标记概率为30%。通过将隐式的概率标记行为显式转化为连续可观测指标(统计标记概率),使源节点能精准反推交换节点的队列状态,为拥塞控制提供细粒度输入。
在一些实施例中,第一周期可以通过以下方式确定:获取单位时间内接收到的确认应答数目;获取报文所属业务的实时性程度;基于确认应答数目和实时性程度,确定第一周期。
根据本公开的实施例,假设源节点两个单位时间内才接收到一个确认应答,第一周期为一个单位时间。由于过载率是每隔第一周期更新一次的,在这种情况下每隔两个第一周期才可能出现过载率的变化,这将浪费源节点的计算资源。为节约源节点的计算资源,在确定第一周期时需要考虑单位时间内接收到的确认应答数目。
根据本公开的实施例,假设报文所属业务的实时性程度较高,第一周期较长。在这种情况下如果上一个第一周期交换节点内部没有拥塞,过载率较低,那么源节点将在第一周期内以较大的第一拥塞滑窗来发送报文,如果在这个过程中交换节点发生拥塞,但是受限于过载率每过第一周期更新一次,交换节点将在下一个第一周期到来之前长期处于拥塞的状态,从而大大降低了报文的传输速度,这对业务的实时性是不利的,因此在确定第一周期时需要考虑实时性程度。实时性程度可以通过百分数来体现,实时性程度所对应的百分数越高,则报文所属业务的实时性越强。
根据本公开的实施例,可以基于单位时间内接收到的确认应答数目确定第一分数,基于报文所属业务的实时性程度确定第二分数,从而基于第一分数和第二分数确定第三分数,并基于第三分数确定第一周期。其中,基于单位时间内接收到的确认应答数目确定第一分数,可以采用查表的方式,例如根据单位时间内接收到的确认应答数目和第一分数的对应关系表,得到单位时间内接收到的确认应答数目对应的第一分数。基于单位时间内接收到的确认应答数目确定第一分数,还可以采用代入方式的方法,例如将单位时间内接收到的确认应答数目代入预先设置的单位时间内接收到的确认应答数目和第一分数的公式,得到单位时间内接收到的确认应答数目对应的第一分数。同理,基于报文所属业务的实时性程度确定第二分数,可以采用查表的方式,例如根据报文所属业务的实时性程度和第二分数的对应关系表,得到报文所属业务的实时性程度对应的第二分数。基于报文所属业务的实时性程度确定第二分数,还可以采用代入方式的方法,例如将报文所属业务的实时性程度代入预先设置的报文所属业务的实时性程度和第二分数的公式,得到报文所属业务的实时性程度对应的第二分数。
承接上述示例,第三分数可以为第一分数和第二分数的和。当然,也可以根据报文所属业务的实时性程度的重要程度和单位时间内接收到的确认应答数目的重要程度分别给第一分数和第二分数分配不同的权重,将第三分数确定为第一分数和第二分数的加权和。基于第三分数确定第一周期,可以采用查表的方式,例如根据第三分数和第一周期的对应关系表,得到第三分数对应的第一周期。基于第三分数确定第一周期,还可以采用代入方式的方法,例如将第三分数代入预先设置的第三分数和第一周期的公式,得到第三分数对应的第一周期。
参照图12,假设第一分数、第二分数和第一周期均由查表的方式得到,第三分数为第一分数和第二分数的和。如果当前单位内接收到的确认应答数目是13,报文所属业务的实时性程度是65%,则可以确定当前单位内接收到的确认应答数目所对应的第一分数为10,报文所属业务的实时性程度所对应的第二分数为12。第一分数和第二分数的和为22,可对应地确定得到第一周期为1个单位时间。
其中,“当达到第一周期时,基于第一数量和第二数量,确定第一周期中交换节点的统计标记概率”的具体方法将在下文详细描述。
在步骤1120中,基于统计标记概率,确定第一周期中交换节点的统计队列长度。
根据本公开的实施例,统计队列长度并不是指交换节点在某一时刻的队列长度,而是指交换节点在第一周期中的队列长度的平均数。示例性的,在计算得到统计标记概率后,本公开的实施例还能够基于统计标记概率来计算交换节点在第一周期中的队列长度的平均数,进而更精准地知悉交换节点内的拥塞情况。
其中,统计队列长度是指源节点基于统计标记概率推算得到的、反映交换节点在一个完整统计周期(即第一周期)内平均拥塞程度的量化指标。统计队列长度表征交换节点在第一周期内所有时刻的队列长度的平均值,而非瞬时值,避免了短期波动造成的误判。统计队列长度可以通过将离散的标记概率映射为连续的队列长度估计,使源节点能更稳定、精准地感知拥塞状态,从而优化流量控制决策。
其中,“基于统计标记概率,确定第一周期中交换节点的统计队列长度”的具体方法将在下文详细描述。
在步骤1130中,基于统计队列长度,确定第一周期中交换节点的过载率。
根据本公开的实施例,过载率还可以体现第一周期中交换节点过载的程度,过载率的大小体现了交换节点的端口当前的拥塞状态。本公开的实施例可以基于统计队列长度确定第一周期中交换节点的过载率,从而确定第一周期中交换节点过载的程度,便于更精准地了解交换节点的端口的拥塞状态。
其中,“基于统计队列长度,确定第一周期中交换节点的过载率”的具体方法将在下文详细描述。
上述步骤1110至步骤1130的实施例,每达到第一周期可以基于第一数量和第二数量确定交换节点在第一周期内对接收到的所有报文进行标记的概率的平均数,并基于此计算交换节点在第一周期中的缓存队列的队列长度的平均数,从而确定第一周期中交换节点过载的程度,便于精准地知悉交换节点内的拥塞情况,从而实现精确的拥塞控制。总之,步骤1110至步骤1130通过创新的三级量化分析机制实现了对交换节点内的拥塞的精准感知和动态控制,具体体现在:1)多维度拥塞感知:通过周期性(第一周期)统计拥塞/畅通报文,计算出反映交换节点整体行为的统计标记概率,再通过统计标记概率反演出统计队列长度,最终推导出过载率,形成从报文标记到队列状态再到过载程度的完整分析链条;2)抗干扰精准控制:基于周期平均而非瞬时值进行决策,有效平滑突发流量造成的误判。
以上是对步骤1110至步骤1130的总体描述,下面分别对步骤1110、步骤1120和步骤1130的具体实施过程进行详细描述。
在一实施例中,参照图13,步骤1110包括:
步骤1310、获取第一周期内接收到的确认应答所组成的第一序列;
步骤1320、将第一序列中的第一个确认应答作为待考察确认应答,并初始化统计标记概率;
步骤1330、基于待考察确认应答中的第一数量和第二数量,更新统计标记概率;
步骤1340、基于第一序列中待考察确认应答的下一个确认应答更新待考察确认应答,返回基于待考察确认应答中的第一数量和第二数量,更新统计标记概率的步骤,直到第一序列中不包含待考察确认应答的下一个确认应答。
下面对步骤1310至步骤1340进行详细描述:
在步骤1310中,获取第一周期内接收到的确认应答所组成的第一序列。
根据本公开的实施例,第一序列是指第一周期内接收到的确认应答所组成的序列。参照图14,示例性的,第一周期内接收到确认应答1、确认应答2、确认应答3、确认应答4和确认应答5,第一序列为确认应答1、确认应答2、确认应答3、确认应答4和确认应答5组成的序列。
在步骤1320中,将第一序列中的第一个确认应答作为待考察确认应答,并初始化统计标记概率。
根据本公开的实施例,待考察确认应答是指当前计算统计标记概率的所用到的确认应答。源节点在每接收到一个目的地节点返回的确认应答后,都需要计算一次统计标记概率,即每接收一个确认应答更新一次统计标记概率。按照时间顺序,第一序列中的第一个确认应答是指当前的第一周期内接收到的第一个确认应答,所以首先需要将第一序列中的第一个确认应答作为待考察确认应答。参照图14,示例性的,第一序列为确认应答1、确认应答2、确认应答3、确认应答4和确认应答5组成的序列,此时将第一序列中的确认应答1作为待考察确认应答。
其中,此时初始化后的统计标记概率(指还未更新的统计标记概率)可以为上一个第一周期所计算得到的统计标记概率,也可以是预设的概率。
在步骤1330中,基于待考察确认应答中的第一数量和第二数量,更新统计标记概率。
根据本公开的实施例,待考察确认应答中插入有携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量。在确定完待考察确认应答后,可以基于第一数量和第二数量,对统计标记概率进行更新,从而得到更新后的统计标记概率。更新后的统计标记概率指源节点在接收到待考察确认应答后,基于该待考察确认应答携带的拥塞标记报文数(第一数量)和畅通标记报文数(第二数量),通过动态计算得到的、反映最新时间段内交换节点整体标记行为的量化指标,即更新后的统计标记概率体现了待考察确认应答所对应的时间段中交换节点对接收到的所有报文进行标记的概率的平均数。其中,待考察确认应答所对应的时间段是指从源节点接收到待考察确认应答的上一个确认应答到源节点接收到待考察确认应答的时间段。更新后的统计标记概率具有时间局部性,即专门表征从上一个待考察确认应答接收时刻到当前待考察确认应答接收时刻这一特定时间段内的标记概率,而非全局平均值;(3)统计完备性:计算结果本质上是交换节点在该时间段内对所有流经报文的标记概率的平均。例如,若某待考察确认应答对应时间段内交换节点标记了200个报文,其中40个被标记为拥塞,则更新后的统计标记概率为20%,该指标直接反映该时段内交换节点的平均队列负载水平。
其中,“基于待考察确认应答中的第一数量和第二数量,更新统计标记概率”的具体方法将在下文详细描述。
在步骤1340中,基于第一序列中待考察确认应答的下一个确认应答更新待考察确认应答,返回基于待考察确认应答中的第一数量和第二数量,更新统计标记概率的步骤,直到第一序列中不包含待考察确认应答的下一个确认应答。
根据本公开的实施例,在第一序列中存在多个确认应答的情况下,更新统计标记概率的次数和确认应答的数目存在对应关系,即第一序列中有多少个确认应答,就更新多少次统计标记概率。示例性的,假设第一周期内接收到确认应答1、确认应答2和确认应答3,确认应答1、确认应答2和确认应答3组成第一序列。在更新统计标记概率的过程中,首先将第一序列中的确认应答1作为待考察确认应答,并初始化统计标记概率。然后基于确认应答1中的第一数量和第二数量更新统计标记概率,得到统计标记概率1。在这之后,用确认应答1之后的确认应答2更新待考察确认应答,并基于确认应答2中的第一数量和第二数量来更新统计标记概率1,得到统计标记概率2。最后,用确认应答2之后的确认应答3更新待考察确认应答,并基于确认应答3中的第一数量和第二数量来更新统计标记概率2,得到统计标记概率3。此时第一序列中已经没有下一个确认应答,则将统计标记概率3作为这个第一周期中交换节点的统计标记概率。
上述步骤1310至步骤1340的实施例通过获取第一周期内接收到的确认应答的第一序列,将第一序列中的第一个确认应答作为待考察应答。基于待考察应答中的第一数量和第二数量更新统计标记概率,并根据第一序列中的确认应答的数量对统计标记概率进行迭代更新,便于后续基于统计标记概率计算统计队列长度和交换节点的过载率,从而通过动态迭代更新机制更精准地实现拥塞控制。具体体现在:1)增量式概率统计:通过按序处理第一周期内接收到的所有确认应答(第一序列),对每个待考察确认应答携带的拥塞标记报文数(第一数量)和畅通标记报文数(第二数量)进行逐次计算,以持续更新统计标记概率,确保结果始终反映最新网络状态;2)时序完整性保障:严格按确认应答到达顺序迭代处理,避免乱序报文导致的统计偏差。
以上是对步骤1310至步骤1340的总体描述,下面对步骤1330的具体实施过程进行详细描述。
在一实施例中,参照图15,步骤1330包括:
步骤1510、分别将第一计数值和第二计数值初始化为1;
步骤1520、当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率,并增加第一计数值;
步骤1530、返回当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率的步骤,直到第一计数值大于第一数量;
步骤1540、当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率,并增加第二计数值;
步骤1550、返回当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率的步骤,直到第二计数值大于第二数量。
下面对步骤1510至步骤1550进行详细描述:
在步骤1510中,分别将第一计数值和第二计数值初始化为1。
根据本公开的实施例,第一计数值用于指示执行增加统计标记概率的步骤的次数。在实际应用中第一计数值类似于寄存器,用来统计当前执行增加统计标记概率的步骤的次数。第二计数值用于指示执行减少统计标记概率的步骤的次数。在实际应用中第二计数值类似于寄存器,用来统计当前执行减少统计标记概率的步骤的次数。
由于源节点在每接收到一次确认应答后都需要对统计标记概率进行更新,而在更新统计标记概率时,执行增加统计标记概率的步骤的次数和执行减少统计标记概率的步骤的次数由确认应答中的第一数量和第二数量来决定。因为每个确认应答中的第一数量和第二数量可能并不相同,因此执行增加统计标记概率的步骤的次数和执行减少统计标记概率的步骤的次数也需要改变。基于此,源节点每接收到一个确认应答都需要对第一计数值和第二计数值进行初始化。
在步骤1520中,当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率,并增加第一计数值。
根据本公开的实施例,第一标记概率增加方法是指在对统计标记概率进行更新时用来增加统计标记概率的算法。每执行一次增加统计标记概率的步骤,就意味着利用第一标记概率增加方法来增加一次统计标记概率。在每接收到一个确认应答并更新统计标记概率时,执行增加统计标记概率的步骤的次数和确认应答中的第一数量相同。
需要说明的是,因为每接收到一个确认应答后是将第一计数值和第二计数值初始化为1,在执行完一次增加统计标记概率的步骤后第一计数值才会加一,这也就意味着,实际上当前执行增加统计标记概率的步骤的次数为第一计数值减一。因此,如果第一计数值小于等于第一数量,就需要执行一次增加统计概率的步骤。同时,每当执行完一次增加统计概率的步骤,都需要将第一计数值加1,以表明当前又执行了一次增加统计概率的步骤。
示例性的,如果确认应答A中的第一数量为5。源节点在接收到确认应答A后,首先将第一计数值和第二计数值初始化为1,此时第一计数值小于5,需要利用第一标记概率增加方法来增加统计标记概率,并将第一计数值加1,表明当前执行了一次增加统计概率的步骤。
其中,“当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率,并增加第一计数值”的具体方法将在下文详细描述。
在步骤1530中,返回当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率的步骤,直到第一计数值大于第一数量。
根据本公开的实施例,因为确认应答中的第一数量是指携带有拥塞标记的报文的数目,所以第一数量是和统计标记概率成正比的,也就是说,随着第一数量的增加,统计标记概率也得增加。为了更精确地估算出统计标记概率,源节点在每接收到一个确认应答时,会基于确认应答中的第一数量执行第一标记概率增加方法,且迭代执行第一标记概率增加方法的次数和第一数量一致。因为本公开的实施例是通过第一计数值来统计执行第一标记概率增加方法的次数的,所以直到第一计数值大于第一数量,才会停止增加执行统计标记概率的步骤。
示例性的,如果确认应答A中的第一数量为5。源节点在接收到确认应答A后,首先将第一计数值和第二计数值初始化为1,此时第一计数值小于5,需要利用第一标记概率增加方法来增加统计标记概率,并将第一计数值加1,得到第一计数值为2。但是此时第一计数值仍然小于5,因此还将利用第一标记概率增加方法来增加统计标记概率,并将第一计数值加1,得到第一计数值为3。在这之后迭代执行利用第一标记概率增加方法来增加统计标记概率,直到第一计数值大于第一数量。
在步骤1540中,当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率,并增加第二计数值。
根据本公开的实施例,第一标记概率减少方法是指在对统计标记概率进行更新时用来减少统计标记概率的算法。每执行一次减少统计标记概率的步骤,就意味着利用第一标记概率减少方法来减少一次统计标记概率。在每接收到一个确认应答并更新统计标记概率时,执行减少统计标记概率的步骤的次数和确认应答中的第二数量相同。
需要说明的是,因为每接收到一个确认应答后是将第一计数值和第二计数值初始化为1,在执行完一次减少统计标记概率的步骤后第二计数值才会加一,这也就意味着,实际上当前执行减少统计标记概率的步骤的次数为第二计数值减一。因此,如果第二计数值小于等于第二数量,就需要执行一次减少统计概率的步骤。同时,每当执行完一次减少统计概率的步骤,都需要将第二计数值加1,以表明当前又执行了一次减少统计概率的步骤。
示例性的,如果确认应答A中的第二数量为4。源节点在接收到确认应答A后,首先将第一计数值和第二计数值初始化为1,此时第二计数值小于4,需要利用第一标记概率减少方法来减少统计标记概率,并将第二计数值加1,表明当前执行了一次减少统计概率的步骤。
其中,“当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率,并增加第二计数值”的具体方法将在下文详细描述。
在步骤1550中,返回当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率的步骤,直到第二计数值大于第二数量。
根据本公开的实施例,因为确认应答中的第二数量是指携带有畅通标记的报文的数目,所以第二数量是和统计标记概率成反比的,也就是说,随着第二数量的增加,统计标记概率会随之减少。为了更精确地估算出统计标记概率,源节点在每接收到一个确认应答时,会基于确认应答中的第二数量执行第一标记概率减少方法,且迭代执行第一标记概率减少方法的次数和第二数量一致。因为本公开的实施例是通过第二计数值来统计执行第一标记概率减少方法的次数的,所以直到第二计数值大于第二数量,才会停止执行减少统计标记概率的步骤。
示例性的,如果确认应答A中的第一数量为5,第二数量为3。源节点在接收到确认应答A后,首先将第一计数值和第二计数值初始化为1,此时第一计数值小于5,需要利用第一标记概率增加方法来增加统计标记概率,并将第一计数值加1,得到第一计数值为2。但是此时第一计数值仍然小于5,因此还将利用第一标记概率增加方法来增加统计标记概率,并将第一计数值加1,得到第一计数值为3。在这之后迭代执行利用第一标记概率增加方法来增加统计标记概率,直到第一计数值大于第一数量。在这之后,由于此时第二计数值小于3,需要利用第一标记概率减少方法来减少统计标记概率,并将第二计数值加1,得到第二计数值为2。但是此时第二计数值仍然小于3,因此还将利用第一标记概率减少方法来减少统计标记概率,并将第二计数值加1,得到第二计数值为3。但是此时第二计数值并没有大于3,因此还将利用第一标记概率减少方法来减少统计标记概率,并将第二计数值加1,得到第二计数值为4。此时第二计数值已经大于3,因此停止执行统计标记概率的步骤。
上述步骤1510至步骤1550的实施例通过第一计数值来统计执行第一标记概率增加方法的次数,直到第一计数值大于第一数量,才会停止执行增加统计标记概率的步骤。并且通过第二计数值来统计执行第一标记概率减少方法的次数,直到第二计数值大于第二数量,才会停止执行减少统计标记概率的步骤。本公开的实施例通过上述方法精确地估算出统计标记概率,提高了拥塞控制的精确程度。
以上是对步骤1510至步骤1550的总体描述,下面分别对步骤1520和步骤1540的具体实施过程进行详细描述。
在一实施例中,参照图16,步骤1520中的“当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率”包括:
步骤1610、当第一计数值小于或者等于第一数量,获取第一参数,第一参数为在0和1之间的值;
步骤1620、将1与第一参数的差值作为第二参数;
步骤1630、将统计标记概率与第二参数的积,与第一参数相加,得到增加后的统计标记概率。
下面对步骤1610至步骤1630进行详细描述:
在步骤1610中,当第一计数值小于或者等于第一数量,获取第一参数,第一参数在0和1之间。
根据本公开的实施例,第一参数是指更新统计标记概率的权重,第一参数控制着统计标记概率增加的趋势和统计标记概率减少的趋势,第一参数的大小和统计标记概率更新的趋势呈正比。示例性的,第一参数越大,在对统计标记概率进行更新之后,更新前的统计标记概率就和更新后的统计标记概率相差越大;同理,第一参数越小,在对统计标记概率进行更新之后,更新前的统计标记概率就和更新后的统计标记概率相差越小。
在步骤1620中,将1与第一参数的差值作为第二参数。
在一种实施方式中,更新统计标记概率的权重时还需要使用到第二参数,第二参数是1与第一参数的差值。第二参数同样用于控制统计标记概率增加的趋势和统计标记概率减少的趋势。
此处结合公式对步骤1620进行说明:首先获取第一参数w,用1与第一参数的差(1-w)作为第二参数。
在步骤1630中,将统计标记概率与第二参数的积,与第一参数相加,得到增加后的统计标记概率。
根据本公开的实施例,此处“将统计标记概率与第二参数的积”中的统计标记概率是指上一次更新得到的统计标记概率。具体的是,如果当前第一计数值等于1,说明上一次更新统计标记概率是上一次接收到确认应答,则当前更新统计标记概率需要使用到上一个确认应答所对应的最后更新得到的统计标记概率。如果当前第一计数值小于等于第一数量且不为1,则当前更新统计标记概率需要使用到上一次更新第一计数值时所更新得到的统计标记概率。
此处结合公式对步骤1630进行说明:首先获取第一参数w,用1与第一参数的差(1-w)作为第二参数。再将上一次更新得到的统计标记概率er1与第二参数(1-w)的积er1(1-w),与第一参数w相加,得到增加后的统计标记概率er。具体得到增加后的统计标记概率er可表示为公式(1):
er=er1(1-w)+w (1)
er=er1(1-w)+w (1)
其中,w表示第一参数;(1-w)表示第二参数;er1表示上一次更新得到的统计标记概率;er表示增加后的统计标记概率。
上述步骤1610至步骤1630的实施例,通过获取第一参数,用1与第一参数的差确定第二参数,并将上一次更新得到的统计标记概率与第二参数的积,与第一参数相加,得到增加后的统计标记概率。通过上述步骤精确地计算出更新后的统计标记概率,提高了拥塞控制的精确程度。
在一些实施例中,参照图17,步骤1540中的“当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率”包括:
步骤1710、当第二计数值小于或者等于第二数量,获取第一参数,第一参数为在0和1之间的值;
步骤1720、将1与第一参数的差值作为第二参数;
步骤1730、将统计标记概率与第二参数的积,作为减少后的统计标记概率。
下面对步骤1710至步骤1730进行详细描述:
在步骤1710中,当第二计数值小于或者等于第二数量,获取第一参数,第一参数为在0和1之间的值。
本公开实施例的具体实施方式和上文中步骤1610中的“当第一计数值小于或者等于第一数量,获取第一参数,第一参数在0和1之间”的具体实施方式相似,此处不对其进行赘述。
在步骤1720中,将1与第一参数的差值作为第二参数。
本公开实施例的具体实施方式和上文中步骤1620的“将1与第一参数的差值作为第二参数”的具体实施方式相似,此处不对其进行赘述。
在步骤1730中,将统计标记概率与第二参数的积,作为减少后的统计标记概率。
根据本公开的实施例,此处“将统计标记概率与第二参数的积”中的统计标记概率是指上一次更新得到的统计标记概率。具体的是,如果当前第二计数值等于1且本次接收到的确认应答中第一数量为0,说明上一次更新统计标记概率是上一次接收到确认应答,则当前更新统计标记概率需要使用到上一个确认应答所对应的最后更新得到的统计标记概率。如果当前第二计数值等于1且本次接收到的确认应答中第一数量不为0,说明上一次更新统计标记概率是接收到本次确认应答后执行统计标记概率增加步骤,则当前更新统计标记概率需要使用到上一次更新第一计数值时所更新得到的统计标记概率。如果当前第二计数值小于等于第一数量且不为1,则当前更新统计标记概率需要使用到上一次更新第二计数值时所更新得到的统计标记概率。
此处结合公式对步骤1730进行说明:首先获取第一参数w,用1与第一参数的差(1-w)作为第二参数。再将上一次更新得到的统计标记概率er1与第二参数(1-w)的积er1(1-w)作为减少的统计标记概率er。具体得到减少后的统计标记概率er可表示为公式(2):
er=er1(1-w) (2)
er=er1(1-w) (2)
其中,w表示第一参数;(1-w)表示第二参数;er1表示上一次更新得到的统计标记概率;er表示减少后的统计标记概率。
上述步骤1710至步骤1730的实施例,通过获取第一参数,用1与第一参数的差确定第二参数,并将上一次更新得到的统计标记概率与第二参数的积作为减少后的统计标记概率。通过上述步骤精确地计算出更新后的统计标记概率,提高了拥塞控制的精确程度。
在一些实施例中,参照图18,步骤1120包括:
步骤1810、获取第一队列长度和第二队列长度;
步骤1820、获取第二队列长度对应的临界标记概率;
步骤1830、基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度。
下面对步骤1810至步骤1830进行详细描述:
在步骤1810中,获取第一队列长度和第二队列长度。
在一实施例中,第一队列长度是指对报文进行标记的下限所对应的交换节点的队列长度,例如,本公开的实施例中的第一队列长度在0到10KB之间。
需要说明的是,相关技术中的数据中心网络拓扑中,第一队列长度的配置较为保守,第一队列长度一般设置为200KB。本公开的实施例中第一队列长度的设置可以相较于相关技术中配置的第一队列长度较为激进,通过这样配置第一队列长度,源节点可以更精准地了解到交换节点内部的拥塞情况,从而实现更精确的拥塞控制。
示例性的,当前拥塞控制的效果一般是通过交换节点的队列长度、带宽利用率和不同的报文所属的数据流的带宽的公平性来体现的。本公开的实施例通过多组实验证明了当第一队列长度设置为0到10KB之间,可以实现更精确的拥塞控制。表明不同的第一队列长度所对应的交换节点的队列长度、带宽利用率和不同的报文所属的数据流的带宽的公平性如表1所示:
表1
如表1所示,当第一队列长度设置为5KB和10KB时,交换节点的队列长度较低,且带宽利用率高,不同的报文所属的数据流的带宽的公平性也高于其他的第一队列长度所对应的不同的报文所属的数据流的带宽的公平性。由此可知当第一队列长度设置为0到10KB之间,可以实现更精确的拥塞控制。
根据本公开的实施例,第二队列长度的值和报文所属业务的性能目标有关。如果该业务追求极端时延,那么就可以轻微贡献吞吐率,将第二队列长度设置为一个较小的数值。对应的,如果该业务追求最高吞吐,那么就可以接受轻度时延,将第二队列长度设置为一个较大的数值。
其中,“获取第二队列长度”的具体方法将在下文详细描述。
在步骤1820中,获取第二队列长度对应的临界标记概率。
根据本公开的实施例,临界标记概率是指第二队列长度所对应的第一概率。参照图10,假设第一队列长度到第二队列长度所对应的y轴坐标为第一概率增长的线性区间,那么临界标记概率为这个线性区间中最大的第一概率。
示例性的,临界标记概率可以为100%,也可以为其他数值,本公开的实施例为了便于后续更精确地计算得到统计标记概率,将临界标记概率确定为一个较高的数值,比如100%。
在步骤1830中,基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度。
根据本公开的实施例,统计队列长度是指交换节点在第一周期中的缓存队列的队列长度的平均数。由于统计标记概率是指交换节点在第一周期内对接收到的所有报文进行标记的概率的平均数,而交换节点是基于内部的队列长度,以及交换节点的第一队列长度、第二队列长度和临界标记概率来对报文进行标记的。因此,可以根据统计标记概率、第一队列长度、第二队列长度和临界标记概率来反推统计队列长度。
其中,“基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度”的具体方法将在下文详细描述。
上述步骤1810至步骤1830的实施例能够根据统计标记概率、第一队列长度、第二队列长度和临界标记概率来反推统计队列长度,便于后续基于统计队列长度计算过载率,通过上述步骤精确地计算出更新后的统计标记概率,提高了拥塞控制的精确程度。
在一些实施例中,参照图19,步骤1810中的“获取第一队列长度和第二队列长度”包括:
步骤1910、获取交换节点的带宽、和空载时延;
步骤1920、基于带宽和空载时延,确定交换节点的时延带宽积;
步骤1930、基于报文所属的业务的最大时延,确定第一系数;
步骤1940、基于第一系数和时延带宽积,确定第二队列长度。
下面对步骤1910至步骤1940进行详细描述:
在步骤1910中,获取交换节点的带宽、和空载时延。
根据本公开的实施例,交换节点的带宽是指交换节点每秒所传输的数据量,其可以用于表示该交换节点所属的链路的传输数据的能力。空载时延可以表示为数据中心网络中的通信时间。示例性的,假设在数据中心网络空载的情况下,报文A从源节点到目的地节点需要6毫秒,则空载时延为6毫秒。
在传输实况中,可以通过交换节点的带宽和空载时延来对数据中心网络的业务的性能进行评估。
在步骤1920中,基于带宽和空载时延,确定交换节点的时延带宽积。
根据本公开的实施例,时延带宽积是指一种网络性能指标,且时延带宽积为带宽和空载时延的乘积。由于带宽表示交换节点所属的链路的传输数据的能力,空载时延表示数据中心网络中的通信时间,则时延带宽积可以表示为任何特定时间内该数据中心网络所可以传输的最大数据量。而且,时延带宽积可以等同于源节点已经发送但尚未收到确认应答的最大数据量的报文。
示例性的,假设带宽是100吉比特每秒(Gbps),空载时延是10微秒(us),则交换节点的带宽积为100Gbps*10us=125千字节(KB)。
在步骤1930中,基于报文所属的业务的最大时延,确定第一系数。
根据本公开的实施例,第一系数的值和报文所属业务的性能目标有关,且第一系数所属的区间可以在0.5到2之间。
示例性的,如果报文所属的业务追求较大的时延,可以将第一系数确定为0.5到1.5之间。相对应的,如果报文所属的业务追求最高吞吐,那么就可以忍受轻度时延,将第一系数确认为1.5到2之间。
在步骤1940中,基于第一系数和时延带宽积,确定第二队列长度。
根据本公开的实施例,第二队列长度可以为第一系数和时延带宽积的乘积。本公开的实施例通过第一系数和时延带宽积来确定第二队列长度,考虑到了任何特定时间内该数据中心网络所可以传输的最大数据量,提高了拥塞控制的精确程度。
示例性的,假设报文所属的业务最求最高吞吐,那么此时可以忍受轻度时延,将第一系数确认为2。在时延带宽积为100KB的情况下,第二队列长度为第一系数和时延带宽积的乘积,即第二队列长度为200KB。
上述步骤1910至步骤1940的实施例基于第一系数和时延带宽积确定第二队列长度,不仅考虑到了任何特定时间内该数据中心网络所可以传输的最大数据量,还考虑到了报文所属的业务所追求的性能指标,提高了拥塞控制的精确程度。
在一实施例中,参照图20,步骤1830中的“基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度”包括:
步骤2010、确定第二队列长度和第一队列长度之间的第一长度差值;
步骤2020、确定统计标记概率与临界标记概率的第一比值;
步骤2030、基于第一队列长度、第一长度差值和第一比值,确定统计队列长度。
下面对步骤2010至步骤2030进行详细描述:
在步骤2010中,确定第二队列长度和第一队列长度之间的第一长度差值。
根据本公开的实施例,参照图9,第二队列长度和第一队列长度之间的第一长度差所对应着交换节点添加拥塞标记的队列长度的线性区间。
示例性的,此处结合公式对步骤2010进行说明:首先获取得到第一队列长度为Kmin和第二队列长度Kmax,然后确定第二队列长度Kmax和第一队列长度Kmin之间的第一长度差值为(Kmax-Kmin)。
在步骤2020中,确定统计标记概率与临界标记概率的第一比值。
根据本公开的实施例,第一比值是指统计标记概率和临界标记概率的比值。进一步的,计算第一比值是为了后续更精确地估计统计标记概率所对应的队列长度。
示例性的,此处结合公式对步骤2020进行说明:通过上文已经确定得到统计标记概率为er,临界标记概率为Pmax,进而可以确定得到统计标记概率er与临界标记概率Pmax的第一比为
在步骤2030中,基于第一队列长度、第一长度差值和第一比值,确定统计队列长度。
根据本公开的实施例,第一队列长度为交换节点给报文添加拥塞标记的下限,当交换节点的队列长度超过第一队列长度,交换节点才会给报文添加拥塞标记。而第一高度差对应着交换节点添加拥塞标记的队列长度的线性区间,第一比值对应着统计标记概率和临界标记概率的比值,通过第一长度差值和第一比值的乘积可以计算出交换节点的队列所超过第一队列长度的数值。将第一队列长度加上第一长度差值和第一比值的乘积,可以反推出统计队列长度。
示例性的,此处结合公式对步骤2030进行说明:通过上文已经确定得到第一队列长度为Kmin,第二队列长度为Kmax,第一比值为第一长度差值为(Kmax-Kmin),表明基于第一队列长度Kmin、第一长度差值(Kmax-Kmin)和第一比值确定统计队列长度q的公式为公式(3):
其中,Kmin表示第一队列长度;Kmax表示第二队列长度;(Kmax-Kmin)表示第一长度差值;er表示统计标记概率;Pmax表示临界标记概率;表示第一比值;q表示统计队列长度。
上述步骤2010至步骤2030的实施例可以基于第二队列长度和第一队列长度的第一长度差值、统计标记概率和临界标记概率的第一比值、以及第一队列长度来反推出统计队列长度。通过上述步骤精确地计算出更新后的统计标记概率,提高了拥塞控制的精确程度。
在一实施例中,参照图21,步骤1130中的“基于统计队列长度,确定第一周期中交换节点的过载率”包括:
步骤2110、基于统计队列长度,确定第一周期中交换节点的负载量;
步骤2120、获取交换节点的端口带宽;
步骤2130、基于负载量、端口带宽,确定第一周期中交换节点的过载率。
下面对步骤2110至步骤2130进行详细描述:
在步骤2110中,基于统计队列长度,确定第一周期中交换节点的负载量。
根据本公开的实施例,负载量是对第一周期中交换节点所处理的报文所对应的数据量。其中,负载量过高可能会导致交换节点无法处理其他报文的请求,甚至导致交换节点出现故障。由于统计队列长度是指交换节点在第一周期中的缓存队列的队列长度的平均数。因此本公开的实施例可以基于统计队列长度来计算出第一周期中交换节点的负载量。
其中,“基于统计队列长度,确定第一周期中交换节点的负载量”的具体方法将在下文详细描述。
在步骤2120中,获取交换节点的端口带宽。
根据本公开的实施例,端口带宽决定了交换节点的端口所能够处理的最大数据传输速度。示例性的,端口带宽较高的交换节点可以支持更高的数据传输速度,从而满足高带宽需求的网络应用。因此,为了便于后续估算交换节点在过载的情况下所对应的负载量,首先获取交换节点的端口所能够处理的最大数据传输速度,即交换节点的端口带宽。
在步骤2130中,基于负载量、端口带宽,确定第一周期中交换节点的过载率。
根据本公开的实施例,负载量是对第一周期中交换节点所处理的报文所对应的数据量,端口带宽决定了交换节点的端口所能够处理的最大数据传输速度,第一周期决定了更新过载率的周期。在确定得到负载量、端口带宽和第一周期后,还可以基于负载量、端口带宽和第一周期计算出第一周期中交换节点的过载率,便于后续根据第一周期中交换节点的过载率评估交换节点是否出现拥塞,提高了发现拥塞的精准度。
其中,“基于负载量、端口带宽和第一周期,确定第一周期中交换节点的过载率”的具体方法将在下文详细描述。
上述步骤2110至步骤2130的实施例,能够基于负载量、端口带宽和第一周期计算出第一周期中交换节点的过载率,便于后续根据第一周期中交换节点的过载率评估交换节点是否出现拥塞,提高了检测拥塞的精准度。
以上是对步骤2110至步骤2130的总体描述,下面分别对步骤2110和步骤2130的具体实施过程进行详细描述。
在一实施例中,参照图22,步骤2110中的“基于统计队列长度,确定第一周期中交换节点的负载量”包括:
步骤2210、获取队列权重系数和队列波动阻尼系数;
步骤2220、确定当前第一周期的统计队列长度与上一个第一周期的统计队列长度的第二长度差值;
步骤2230、基于队列权重系数、统计队列长度、队列波动阻尼系数、和第二长度差值,确定第一周期中交换节点的负载量。
下面对步骤2210至步骤2230进行详细描述:
在步骤2210中,获取队列权重系数和队列波动阻尼系数。
根据本公开的实施例,队列权重系数是为每一个第一周期中交换节点的缓存队列的队列长度(简称内部队列长度)所分配的权重,在一般情况下,队列权重系数为1。队列波动阻尼系数是为每一个第一周期中交换节点的缓存队列的队列长度的变化趋势所分配的权重,在一般情况下,队列波动阻尼系数为0.5-1.0。
在步骤2220中,确定当前第一周期的统计队列长度与上一个第一周期的统计队列长度的第二长度差值。
根据本公开的实施例,第二长度差值为当前第一周期的统计队列长度减去上一个第一周期的统计队列长度的差。第二长度差值体现了交换节点的缓存队列的队列长度的变化趋势,本公开的实施例在计算交换节点的负载量时不仅考虑了当前的第一周期中交换节点的缓存队列的队列长度,还考虑了上一个第一周期中交换节点的缓存队列的队列长度,提高了检测拥塞的精准度。
在步骤2230中,基于队列权重系数、统计队列长度、队列波动阻尼系数、和第二长度差值,确定第一周期中交换节点的负载量。
根据本公开的实施例,队列权重系数是为每一个第一周期中交换节点的缓存队列的队列长度所分配的权重,统计队列长度是指交换节点在第一周期中的缓存队列的队列长度的平均数。而队列波动阻尼系数是为每一个第一周期中交换节点的缓存队列的队列长度的变化趋势所分配的权重,第二长度差值体现了交换节点的缓存队列的队列长度的变化趋势。通过队列权重系数和统计队列长度可以计算出交换节点在第一周期中的缓存队列的队列长度所对应的负载量,通过队列波动阻尼系数和第二长度差值可以计算出交换节点的内部队列长度的变化所消耗的负载量。通过交换节点在第一周期中的缓存队列的队列长度所对应的负载量和交换节点的缓存队列的队列长度的变化所消耗的负载量,可以确定得到第一周期中交换节点的负载量。
示例性的,此处结合公式对步骤2230进行说明:首先获取得到队列权重系数α和队列波动阻尼系数β。然后,确定当前第一周期的统计队列长度q与上一个第一周期的统计队列长度ql的第二长度差值(q-ql)。最后,基于队列权重系数α、统计队列长度ql、队列波动阻尼系数β、和第二长度差值(q-ql),确定第一周期中交换节点的负载量。表明基于队列权重系数、统计队列长度、队列波动阻尼系数、和第二长度差值,确定第一周期中交换节点的负载量的计算公式如公式(4)所示:
s=α.q+β.(q-ql) (4)
s=α.q+β.(q-ql) (4)
其中,α表示队列权重系数;β表示队列波动阻尼系数;q表示当前第一周期的统计队列长度;ql表示上一个第一周期的统计队列长度;(q-ql)表示第二长度差值;s表示第一周期中交换节点的负载量。
上述步骤2210至步骤2230的实施例,确定当前第一周期的统计队列长度和上一个第一周期的统计队列长度的第二长度差值,并基于队列权重系数、统计队列长度、队列波动阻尼系数和第二长度差值,确定得到第一周期中交换节点的负载量。本公开实施例的步骤在计算交换节点的负载量时不仅考虑了当前的第一周期中交换节点的缓存队列的队列长度,还考虑了缓存队列的队列长度,提高了检测拥塞的精准度。
在一实施例中,参照图23,步骤2130中的“基于负载量、端口带宽和第一周期,确定第一周期中交换节点的过载率”包括:
步骤2310、确定端口带宽和第一周期的第一乘积;
步骤2320、将负载量和第一积的比值确定为过载率。
下面对步骤2310至步骤2320进行详细描述:
在步骤2310中,确定端口带宽和第一周期的第一乘积。
根据本公开的实施例,第一乘积为端口带宽和第一周期的乘积。第一乘积可以表明交换节点端口在第一周期所能够处理的最大数据量。
此处结合公式对步骤2310进行说明:首先获取得到端口带宽B和第一周期T,然后确定端口带宽B和第一周期T的第一乘积为B.T。
在步骤2320中,将负载量和第一积的比值确定为过载率。
根据本公开的实施例,第一乘积表明交换节点端口在第一周期所能够处理的最大数据量,负载量表明第一周期中交换节点所处理的报文所对应的数据量。通过计算负载量和第一积的比值,可以确定得到第一周期中交换节点的过载率。
此处结合公式对步骤2320进行说明:首先获取得到端口带宽B和第一周期T,然后确定端口带宽B和第一周期T的第一积为B.T。因为上文已经确定得到负载量s,此时可以将负载量s和第一积B.T的比,确定为过载率。表明确定为过载率的公式为公式(5):
其中,s表示负载量;B表示端口带宽;T表示第一周期;B.T表示第一乘积;o表示过载率。
上述步骤2310至步骤2320的实施例,首先基于端口带宽和第一周期确定得到交换节点端口在第一周期所能够处理的最大数据量,再通过计算负载量和交换节点端口在第一周期所能够处理的最大数据量的比,从而确定得到第一周期中交换节点的过载率。本公开的实施例通过上述步骤能够方便后续根据第一周期中交换节点的过载率评估交换节点是否出现拥塞,提高了检测拥塞的精准度。
下面对步骤440进行详细描述。
步骤440、基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
在一实施例中,参照图24,步骤440包括:
步骤2410、当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度;
步骤2420、当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,延长第一拥塞滑窗的滑窗长度。
下面对步骤2410至步骤2420进行详细描述:
在步骤2410中,当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度。
根据本公开的实施例,可通过对比过载率和预设值(如0)的大小,来判断过载率所对应的第一周期中交换节点是否过载。如果上一个第一周期的过载率大于0,则说明上一个第一周期中交换节点过载,其中,过载表明交换节点的缓存中的数据量已经超过了该交换节点所能够处理的最大数据量。上一个第一周期中交换节点过载说明了上一个第一周期该交换节点出现拥塞,此时需要采取一些手段来缓解交换节点中的拥塞情况。基于此,如果上一个第一周期的过载率大于0,本公开的实施例将在当前第一周期第一次接收到确认应答时基于过载率减小第一拥塞滑窗的长度。例如,通过减小第一拥塞滑窗的滑窗长度,可以对应地减少后续数据中心网络中的报文(即源节点已经发送但目的地节点还没有接收的报文)的数量,进而实现缓解交换节点中的拥塞情况的目的。
示例性的,参照图25A,更新前的第一拥塞滑窗用于指示向目的地节点发出的12个报文(如图25A中的报文2-报文13),一旦12个报文中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文(即待发送报文),从而将容纳进的未发送报文发送至目的地节点。如果上一个周期的过载率大于0,则在当前第一周期第一次接收到确认应答时,基于过载率减小第一拥塞滑窗的长度。减小后的第一拥塞滑窗用于指示向目的地节点发出的10个报文(如图25A中的报文2-报文11),相对应的,也减少了后续数据中心网络中的报文,实现了精准的拥塞控制。
其中,“当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度”的具体方法将在下文详细描述。
在步骤2420中,当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,延长第一拥塞滑窗的滑窗长度。
根据本公开的实施例,步骤2420和步骤2410实际上是不同的分支步骤。如果上一个第一周期的过载率大于预设值(如0),则说明上一个第一周期中交换节点为过载状态,执行步骤2410。如果上一个第一周期的过载率小于或者等于预设值(如0),则说明上一个第一周期中交换节点为欠载状态,执行步骤2420。欠载表明交换节点的缓存中的数据量小于该交换节点所能够处理的最大数据量。上一个第一周期中交换节点欠载说明了上一个第一周期中该交换节点没有出现拥塞,或交换节点的拥塞情况得到了缓解,但是在这种情况下可能会使交换节点的资源没有被充分利用。所以此时需要采取一些手段来使交换节点的资源可以被充分利用。
基于此,如果上一个第一周期的过载率小于预设值(如0),本公开的实施例将在当前第一周期第一次接收到确认应答时基于过载率增加第一拥塞滑窗的滑窗长度。通过增加第一拥塞滑窗的长度,可以对应地增加后续数据中心网络中的报文(即源节点已经发送但目的地节点还没有接收的报文)的数量,进而充分利用交换节点的资源。
示例性的,参照图25B,更新前的第一拥塞滑窗用于指示向目的地节点发出的12个报文(如图25B中的报文2-报文13),一旦12个报文中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。如果上一个周期的过载率小于0,则在当前第一周期第一次接收到确认应答时,基于过载率增加第一拥塞滑窗的长度。增加后的第一拥塞滑窗用于指示向目的地节点发出的15个报文(如图25B中的报文2-报文16),相对应的,也增加了后续数据中心网络中的报文,充分利用了交换节点的资源。
其中,“当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,延长第一拥塞滑窗的滑窗长度”的具体方法将在下文详细描述。
上述步骤2410至步骤2420的实施例,在上一个第一周期的过载率大于预设值的情况下,在当前第一周期每接收到一次确认应答时,减少第一拥塞滑窗的长度,进而减少了后续数据中心网络中的报文,实现了精准的拥塞控制。同时,在上一个第一周期的过载率小于或者等于预设值的情况下,在当前第一周期每接收到一次确认应答时,增加第一拥塞滑窗的长度,进而增加了后续数据中心网络中的报文,以充分利用了交换节点的资源。
以上是对步骤2410和步骤2420的总体描述,下面分别对步骤2410和步骤2420的具体实施过程进行详细描述。
在一实施例中,参照图26,步骤2410包括:
步骤2610、在当前第一周期第一次接收到确认应答时,确定第一数值与过载率的第一和;
步骤2620、将第一拥塞滑窗的滑窗长度与第一和的比值,作为缩短后的第一拥塞滑窗的滑窗长度。
下面对步骤2610至步骤2620进行详细描述:
在步骤2610中,在当前第一周期第一次接收到确认应答时,确定第一数值与过载率的第一和。
根据本公开的实施例,第一和是指第一数值(如1)加上过载率的和。如果上一个第一周期的过载率大于0,说明上一个第一周期中交换节点为过载状态,那么在当前的第一周期第一次接受到确认应答时,通过减小第一拥塞滑窗的长度以缓解交换节点中的拥塞情况。首先,将确定第一数值(如1)与过载率的第一和,以便于后续基于第一数值(如1)与过载率的第一和来缩短第一拥塞滑窗的滑窗长度。
此处结合公式对步骤2610进行说明:首先获取过载率o,然后确定1与过载率o的第一和,第一和为(1+o)。
在步骤2620中,将第一拥塞滑窗的滑窗长度与第一和的比值,作为缩短后的第一拥塞滑窗的滑窗长度。
根据本公开的实施例,“将第一拥塞滑窗的滑窗长度与第一和的比值”中的第一拥塞滑窗是指上一个第一周期所接收到的最后一个确认应答之后所计算的第一拥塞滑窗。通过将第一拥塞滑窗的滑窗长度与第一和的比值作为缩短后的第一拥塞滑窗的长度,可以缓解交换节点中的拥塞情况,实现精准的拥塞控制。
此处结合公式对步骤2620进行说明:首先获取过载率o,确定1与过载率o的第一和(1+o),然后将第一拥塞滑窗的长度wc除以第一和(1+o)的结果作为缩短后的第一拥塞滑窗的长度cwnd。表明将第一拥塞滑窗的长度除以第一和的结果作为减小后的第一拥塞滑窗的长度的公式为公式(6):
其中,cwnd表示减小后的第一拥塞滑窗的长度;wc表示上一个第一周期所接收到的最后一个确认应答之后所计算的第一拥塞滑窗;o表示过载率;(1+o)表示第一和。
示例性的,如果上一个第一周期所接收到的最后一个确认应答之后所计算的第一拥塞滑窗wc为10,过载率o为1,则缩短后的第一拥塞滑窗的长度cwnd为5。
上述步骤2610至步骤2620的实施例通过确定第一数值(如1)与过载率的第一和,将第一拥塞滑窗的滑窗长度与第一和的比值作为缩短后的第一拥塞滑窗的滑窗长度,可以缓解交换节点中的拥塞情况,实现精准的拥塞控制。
在一实施例中,参照图27,在步骤2410之后,拥塞控制方法还包括:
步骤2710、当上一个第一周期的过载率大于预设值时,将确认应答累积值归零;
步骤2420包括:
步骤2720、当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,增加确认应答累积值;
步骤2730、当确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度;
步骤2740、当确认应答累积值达到预定累积值时,基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度。
下面对步骤2710至步骤2740进行详细描述:
在步骤2710中,当上一个第一周期的过载率大于预设值时,将确认应答累积值归零。
根据本公开的实施例,确认应答累积值是指在上一个第一周期之前,交换节点连续欠载的第一周期的数量,其中,当过载率小于或者等于预设值(如0),则判断交换节点处于欠载的状态。示例性的,如果上一个第一周期的过载率大于0,但是在上一个第一周期之前,存在5个连续的第一周期交换节点的过载率小于或者等于0,则确认应答累积值为5。
因为确认应答累积值是表明上一个第一周期之前交换节点连续欠载的第一周期的数量,所以如果上一个第一周期的过载率大于0,可以将确认应答累积值归零。
在步骤2720中,当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,增加确认应答累积值。
根据本公开的实施例,因为确认应答累积值是表明上一个第一周期之前交换节点连续欠载的第一周期的数量,如果上一个第一周期的过载率小于或者等于0,则说明上一个第一周期中交换节点还是处于欠载状态,此时可以将确认应答累积值加1,以统计交换节点连续欠载的第一周期的数量。
在步骤2730中,当确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度。
根据本公开的实施例,预定累积值是指预设的连续欠载的第一周期的数量的阈值,其中,预定累积值一般设置为5。第一延长方式是指一种用于增加第一拥塞滑窗的技术手段。当确认应答累积值未达到预定累积值,说明在上一个第一周期之前的几个第一周期中,交换节点出现了过载的情况,且已经采取了减小第一拥塞滑窗的方法对其进行了拥塞控制。而在上一个第一周期后对交换节点的拥塞控制已经初见成效,交换节点内部的缓存资源已经得到了缓解。为降低交换节点内部的缓存资源被浪费的风险,可以基于第一延长方式来进一步确定延长后的第一拥塞滑窗的滑窗长度,以在充分利用交换节点内部的缓存资源的同时减小交换节点内部出现拥塞的情况。
其中,“基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度”的具体方法将在下文详细描述。
在步骤2740中,当确认应答累积值达到预定累积值时,基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度。
根据本公开的实施例,第二延长方式是指一种用于增加第一拥塞滑窗的技术手段,且第二延长方式相较于第一延长方式更加激进些,即通过第二延长方式增加第一拥塞滑窗所对应的第一拥塞滑窗的增长趋势比通过第一延长方式增加第一拥塞滑窗所对应的第一拥塞滑窗的增长趋势更快。当确认应答累积值达到预定累积值,说明交换节点在上一个第一周期之前,存在多个第一周期处于欠载状态,此时交换节点内部的缓存资源长时间没有被充分利用,可以采取一些激进的手段来充分利用交换节点内部的缓存资源。为充分利用交换节点内部的缓存资源,需要基于第二延长方式来进一步确定延长后的第一拥塞滑窗的滑窗长度,以提高交换节点内部的缓存资源的利用率。例如,因为步骤2740中的确认应答累积值大于步骤2730中的确认应答累积值,为充分利用交换节点内部的缓存资源,第二延长方式相较于第一延长方式更加激进,即通过第二延长方式增加第一拥塞滑窗所对应的第一拥塞滑窗的增长趋势比通过第一延长方式增加第一拥塞滑窗所对应的第一拥塞滑窗的增长趋势更快。
示例性的,假设预定累积值是5,在当前第一周期确定得到确认应答累积值是3的情况下,需要基于第一延长方式确定延长后的第一拥塞滑窗的长度。在当前第一周期确定得到确认应答累积值是6的情况下,需要基于第二延长方式确定延长后的第一拥塞滑窗的长度。
其中,“基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度”的具体方法将在下文详细描述。
上述步骤2710至步骤2740的实施例,能够在确认应答累积值未达到预定累积值时,基于第一延长方式来进一步确定延长后的第一拥塞滑窗的滑窗长度,以在充分利用交换节点内部的缓存资源的同时减小交换节点内部出现拥塞的情况。而且在确认应答累积值达到预定累积值时,基于较于第一延长方式更加激进的第二延长方式来进一步确定延长后的第一拥塞滑窗的滑窗长度,以提高交换节点内部的缓存资源的利用率。
以上是对步骤2710至步骤2740的总体描述,下面分别对步骤2730和步骤2740的具体实施过程进行详细描述。
在一实施例中,参照图28,步骤2730中的“当确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度”包括:
步骤2810、当确认应答累积值未达到预定累积值时,获取确认应答中的第二数量;
步骤2820、将第三计数值初始化为1;
步骤2830、当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值,并将第一拥塞滑窗的长度与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的滑窗长度;
步骤2840、将第三计数值加1,并返回当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值的步骤,直到第三计数值大于第二数量。
下面对步骤2810至步骤2840进行详细描述:
在步骤2810中,当确认应答累积值未达到预定累积值时,获取确认应答中的第二数量。
根据本公开的实施例,如果确认应答累积值未达到预定累积值,说明当前交换节点内部的缓存资源没有被充分利用。此时,每当接收到一个目的地节点的确认应答后,将获取该确认应答中携带有畅通标记的报文的第二数量,以便于估计当前交换节点内部的缓存资源的状态,便于后续根据当前交换节点内部的缓存资源的状态增加第一拥塞滑窗的滑窗长度。
在步骤2820中,将第三计数值初始化为1。
根据本公开的实施例,第三计数值用于指示执行增加第一拥塞滑窗的步骤次数。在实际应用中第三计数值类似于寄存器,用来统计当前执行增加第一拥塞滑窗的步骤的次数。
由于在过载率小于或者等于0的情况下,源节点在每接收到一次确认应答后都需要增加第一拥塞滑窗的长度,而在增加第一拥塞滑窗的长度时,执行增加第一拥塞滑窗的步骤的次数由确认应答中的第二数量来决定。因为每个确认应答中的第二数量可能并不相同,因此执行增加第一拥塞滑窗的步骤的次数也需要改变。基于此,源节点每接收到一个确认应答都需要对第三计数值进行初始化。
在步骤2830中,当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值,并将第一拥塞滑窗的长度与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的滑窗长度。
根据本公开的实施例,加性增窗系数是指对第一拥塞滑窗的数值进行调节的一个系数。
在上一个第一周期的过载率小于等于0的情况下,在每接收到一个确认应答并增加第一拥塞滑窗时,执行增加第一拥塞滑窗的步骤的次数和确认应答中的第二数量相同。因为每接收到一个确认应答后将第三计数值初始化为1,在执行完一次增加第一拥塞滑窗的步骤后第三计数值才会加一,这也就意味着,实际上当前执行增加第一拥塞滑窗的步骤的次数为第三计数值减一。因此,如果第三计数值小于第二数量,就需要执行一次增加第一拥塞滑窗的步骤。具体的是,在执行增加第一拥塞滑窗的步骤时,首先需要将加性增窗系数与更新前的第一拥塞滑窗的长度的比,作为滑窗长度增加值。滑窗长度增加值是指对第一拥塞滑窗进行增加的增加数,在得到滑窗长度增加值后,将第一拥塞滑窗的长度与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的长度。
此处结合公式对步骤2830进行说明:如果第三计数值小于或者等于第二数量,将加性增窗系数θ与第一拥塞滑窗的长度cwnd1的比值作为滑窗长度增加值,并将第一拥塞滑窗的长度cwnd1与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的滑窗长度。表明计算延长后的第一拥塞滑窗的长度的公式为公式(7):
其中,cwnd1表示更新前的第一拥塞滑窗;θ表示加性增窗系数;表示加性增窗系数与第一拥塞滑窗的长度的比值,cwnd表示延长后的第一拥塞滑窗。
在过载率小于或者等于0的情况下,在当前所接收到的确认应答为当前的第一周期所对应的第一个确认应答,且第三计数值为1时,更新前的第一拥塞滑窗为上一个第一周期接收到最后一个确认应答所对应的第一拥塞滑窗。在当前所接收到的确认应答不是当前的第一周期所对应的第一个确认应答,且第三计数值为1时,更新前的第一拥塞滑窗为上一次接收到确认应答时所计算的第一拥塞滑窗。当第三计数值大于1且小于等于第二数量时,更新前的第一拥塞滑窗为上一次执行增加第一拥塞滑窗步骤时得到的第一拥塞滑窗。
在步骤2840中,将第三计数值加1,并返回当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值的步骤,直到第三计数值大于第二数量。
根据本公开的实施例,因为第三计数值用于指示执行增加第一拥塞滑窗的步骤次数,所以每执行完一次增加第一拥塞滑窗的步骤,第三计数值需要同步加一。
为了更精确地计算出延长后的第一拥塞滑窗,进行拥塞控制。源节点在每接收到一个确认应答时,会基于确认应答中的第二数量执行一次增加第一拥塞滑窗的步骤,且迭代执行一次增加第一拥塞滑窗的步骤的次数和第二数量一致。因为本公开的实施例是通过第三计数值来统计执行增加第一拥塞滑窗的步骤的次数的,所以直到第三计数值大于第二数量,才会停止执行增加第一拥塞滑窗的步骤。
示例性的,如果确认应答A中第二数量为3,源节点在接收到确认应答A后,首先将第三计数值初始化为1。此时第三计数值小于3,需要将加性增窗系数与第一拥塞滑窗的长度的比,作为滑窗长度增加值,并将第一拥塞滑窗的长度与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的长度,并将第三计数值加一,得到第三计数值为2。但是此时第三计数值仍然小于3,因此还将执行一次增加第一拥塞滑窗的步骤来更新第一拥塞滑窗,并将第三计数值加1,得到第三计数值为3。但是此时第三计数值并没有大于3,因此还将执行一次增加第一拥塞滑窗的步骤来更新第一拥塞滑窗,并将第三计数值加1,得到第三计数值为4。此时第三计数值已经大于3,因此停止执行增加第一拥塞滑窗的步骤。
上述步骤2810至步骤2840的实施例,在过载率小于等于0且确认应答累积值未达到预定累计值的情况下,通过第三计数值来统计执行增加第一拥塞滑窗的次数,直到第三计数值大于第二数量,才会停止执行增加第一拥塞滑窗的步骤。本公开的实施例通过上述方法精确地得到延长后的第一拥塞滑窗,并根据延长后的第一拥塞滑窗发送报文,充分地利用了交换节点中的缓存资源的利用率。
在一些实施例中,参照图29,步骤2740中的“当确认应答累积值达到预定累积值时,基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度”包括:
步骤2910、当确认应答累积值达到预定累积值时,获取确认应答中的第二数量;
步骤2920、将第三计数值初始化为1;
步骤2930、当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的长度的积,作为延长后的第一拥塞滑窗的滑窗长度;
步骤2940、将第三计数值加1,并返回当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的滑窗长度的积,作为延长后的第一拥塞滑窗的滑窗长度的步骤,直到第三计数值大于第二数量。
下面对步骤2910至步骤2940进行详细描述:
在步骤2910中,当确认应答累积值达到预定累积值时,获取确认应答中的第二数量。
根据本公开的实施例,如果确认应答累积值达到预定累积值,说明交换节点在上一个第一周期之前,存在多个第一周期处于欠载状态,此时交换节点内部的缓存资源长时间没有被充分利用,可以采取一些激进的手段来充分利用交换节点内部的缓存资源。此时,每当接收到一个目的地节点的确认应答后,都将获取该确认应答中携带有畅通标记的报文的第二数量,以便于估计当前交换节点内部的缓存资源的状态,便于后续根据当前交换节点内部的缓存资源的状态增加第一拥塞滑窗的长度。
在步骤2920中,将第三计数值初始化为1。
本公开实施例的具体实施方式和上文中步骤2820中的“将第三计数值初始化为1”的具体实施方式相似,此处不对其进行赘述。
在步骤2930中,当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的长度的积,作为延长后的第一拥塞滑窗的滑窗长度。
根据本公开的实施例,预定倍数是指对第一拥塞滑窗的数值进行增加的乘数,通过调节预定倍数的大小,可以调节第一拥塞滑窗的数值的增加的趋势,其中,一般将预定倍数取值为1.1。示例性的,假设预定倍数取值为1.1,此处结合公式对步骤2930进行说明:当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的长度的积,作为延长后的第一拥塞滑窗的滑窗长度。表明将预定倍数与第一拥塞滑窗的长度的积作为延长后的第一拥塞滑窗的长度的公式为公式(8):
cwnd=cwnd1.1.1 (8)
cwnd=cwnd1.1.1 (8)
其中,cwnd表示延长后的第一拥塞滑窗;cwnd1表示更新前的第一拥塞滑窗。
在步骤2940中,将第三计数值加1,并返回当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的滑窗长度的积,作为延长后的第一拥塞滑窗的滑窗长度的步骤,直到第三计数值大于第二数量。
需要说明的是,步骤2940中迭代执行增加第一拥塞滑窗的步骤与步骤2840中迭代执行增加第一拥塞滑窗的步骤相似,都是基于确认应答中的第二数量执行一次增加第一拥塞滑窗的步骤,且迭代执行一次增加第一拥塞滑窗的步骤的次数和第二数量一致。但是,步骤2940中增加第一拥塞滑窗的步骤和步骤2840中增加第一拥塞滑窗的步骤并不相同。因为步骤2940所对应的情况是确认应答累积值达到预定累积值,增加第一拥塞滑窗的方法为第二延长方式,而步骤2840所对应的情况是确认应答累积值未达到预定累积值,增加第一拥塞滑窗的方法为第一延长方式,所以步骤2940相较于步骤2840更加激进。
上述步骤2910至步骤2940的实施例在过载率小于等于0且确认应答累积值达到预定累计值的情况下,通过第三计数值来统计执行增加第一拥塞滑窗的次数,直到第三计数值大于第二数量,才会停止执行增加第一拥塞滑窗的步骤。而且本公开的实施例使用较于第一延长方式更加激进的第二延长方式来迭代一步确定延长后的第一拥塞滑窗的滑窗长度,精准地提高了交换节点内部的缓存资源的利用率。
下面描述基于第一数量和第二数量确定交换节点的过载率并基于过载率对第一拥塞滑窗进行更新的另一个实施例。
在一些实施例中,参照图30,交换节点的数量多个时,报文经过多个交换节点中的一个交换节点发送至目的地节点;确认应答包括每个交换节点对应的第一数量和第二数量;
步骤430包括:
步骤3010、基于每个交换节点对应的第一数量和第二数量,确定每个交换节点的过载率;
步骤440包括:
步骤3020、基于每个交换节点的过载率,对每个交换节点对应的第一拥塞滑窗进行更新。
下面对步骤3010和步骤3020进行详细描述:
在步骤3010中,基于每个交换节点对应的第一数量和第二数量,确定每个交换节点的过载率。
根据本公开的实施例,在源节点到目的地节点之间存在多个交换节点的情况下,源节点发送的报文只经过多个交换节点中的一个交换节点。为获取源节点到目的地节点之间的多个交换节点中的拥塞情况,可以通过源节点向目的地节点发送多个报文,以使得报文经过不同的转发路径(每条转发路径对应着一个交换节点)来到达目的地节点。通过上述步骤,目的地节点就可以接收到每个交换节点所对应的携带有拥塞标记的报文和携带有畅通标记的报文。进而将每个交换节点对应的第一数量和第二数量插入到确认应答中,将确认应答返回给源节点,使得源节点基于每个交换节点对应的第一数量和第二数量,确定每个交换节点的过载率。最后,根据每个交换节点的过载率获取得到每个交换节点内部的拥塞情况。
示例性的,参照图31,源节点到目的地节点之间存在四个交换节点,分别为交换节点1、交换节点2、交换节点3和交换节点4。为获取这四个交换节点的拥塞情况,通过源节点分别向这四个交换节点各发送多个报文,以使得目的地节点接收到每个交换节点所对应的携带有拥塞标记的报文和携带有畅通标记的报文。源节点分别接收到四个交换节点转发的携带有拥塞标记的报文和携带有畅通标记的报文,并对每个交换节点转发的携带有拥塞标记的报文和携带有畅通标记的报文进行统计,返回交换节点1所对应的确认应答1给源节点,返回交换节点2所对应的确认应答2给源节点,返回交换节点3所对应的确认应答3给源节点,返回交换节点4所对应的确认应答4给源节点。源节点在接收到确认应答1、确认应答2、确认应答3和确认应答4,基于接收到的确认应答1计算交换节点1所对应的过载率,基于接收到的确认应答2计算交换节点2所对应的过载率,基于接收到的确认应答3计算交换节点3所对应的过载率,基于接收到的确认应答4计算交换节点4所对应的过载率。
拥塞标记或畅通标记在报文中与交换节点标识对应记录;第一数量和第二数量由目的地节点通过以下方式生成:将各个交换节点标识对应的第四计数值和第五计数值初始化为0,其中,第四计数值指示交换节点标识对应的交换节点添加了拥塞标记的报文数目,第五计数值指示交换节点标识对应的交换节点添加了畅通标记的报文数目;当接收到一个报文后,如果报文中包含交换节点标识对应的交换节点对应的拥塞标记,将交换节点标识对应的第四计数值加1;当接收到一个报文后,如果报文中包含交换节点标识对应的交换节点对应的畅通标记,将交换节点标识对应的第五计数值加1;当满足预定条件时,将第四计数值确定为第一数量,将第五计数值确定为第二数量。
在源节点到目的地节点之间存在多个交换节点的情况下,为获取源节点到目的地节点之间的多个交换节点中的拥塞情况,需要通过源节点向目的地节点发送多个报文,以使得报文经过不同的转发路径来到达目的地节点。为使源节点区分开不同的交换节点转发的不同的携带有拥塞/畅通标记的报文,本公开的实施例的交换节点还将在为报文添加拥塞/畅通标记时为报文添加交换节点标识,以使得目的地节点接收到报文时了解为该报文添加拥塞/畅通标记的交换节点。
根据本公开的实施例,第四计数值用于指示报文中的交换节点标识所对应的交换节点添加了拥塞标记的报文数目,在实际应用中第四计数值类似于寄存器,用来统计当前目的地节点接收到的报文中的交换节点标识所对应的交换节点添加了拥塞标记的报文数目。第五计数值用于指示报文中的交换节点标识所对应的交换节点添加了畅通标记的报文数目,在实际应用中第五计数值类似于寄存器,用来统计当前目的地节点接收到的报文中的交换节点标识所对应的交换节点添加了畅通标记的报文数目。
由于源节点在每接收到一次确认应答后都需要重新对目的地节点接收到的报文中的交换节点标识所对应的交换节点添加了拥塞标记的报文数目、目的地节点接收到的报文中的交换节点标识所对应的交换节点添加了畅通标记的报文数目进行初始化。所以目的地节点在发送了一个确认应答给源节点之后,首先需要将各个交换节点标识对应的第四计数值和第五计数值初始化为0。
示例性的,参照图35,假设当前源节点和目的地节点之间存在多个交换节点的情况下,源节点发送的报文只经过多个交换节点中的一个交换节点(如交换节点1)。在目的地节点发送了一个确认应答给源节点之后,且当前源节点还没有发送报文的情况下,在步骤3510中,目的地节点将各个交换节点标识所对应的第四计数值和第五计数值初始化为0,其中,第四计数值指示交换节点标识的交换节点添加了拥塞标记的报文数目,第五计数值指示交换节点标识的交换节点添加了畅通标记的报文数目。在步骤3520中,当目的地节点接收到一个源节点发送的报文后,如果该报文中包含交换节点标识对应的交换节点1所对应的拥塞标记,将交换节点标识对应的第四计数值加1,说明当前接收到一个交换节点1转发的携带有拥塞标记的报文。同理,在步骤3530中,当目的地节点接收到一个源节点发送的报文后,如果该报文中包含交换节点标识对应的交换节点1所对应的畅通标记,则将交换节点标识对应的第五计数值加1,说明当前接收到一个交换节点1转发的携带有畅通标记的报文。在步骤3540中,当满足预定条件(即距离目的地节点发出上一个确认应答后过去预定时间段)时,将当前的第四计数值确定为第一数量,将第五计数值确定为第二数量。另外,如果距离目的地节点发出上一个确认应答后还没过去预定时间段,但是目的地节点接收到的交换节点1转发的报文的总数量达到预定数目时,此时将当前的第四计数值确定为交换节点1对应的第一数量,将第五计数值确定为交换节点1对应的第二数量。在确定得到交换节点1所对应的第一数量和第二数量后,将交换节点1所对应的第一数量和第二数量插入到确认应答1中,并将确认应答1返回给源节点,以使得源节点基于确认应答1中的第一数量和第二数量确定交换节点1的过载率。
在步骤3020中,基于每个交换节点的过载率,对每个交换节点对应的第一拥塞滑窗进行更新。
根据本公开的实施例,在源节点到目的地节点之间存在多个交换节点的情况下,源节点在接收到每个交换节点所对应确认应答后,将基于确认应答中的第一数量和第二数量确定每个交换节点的过载率。在这之后,还将基于每个交换节点的过载率对源节点发送给每个交换节点的报文所对应的第一拥塞滑窗进行更新,以控制源节点发送给每个交换节点的报文的数量,进而实现每个交换节点的拥塞的精准控制。
示例性的,参照图31,源节点在基于接收到的确认应答计算得到四个交换节点所对应的过载率后,还将基于交换节点1所对应的过载率更新源节点发送给交换节点1的报文所对应的第一拥塞滑窗。同理,源节点还将基于交换节点2所对应的过载率更新源节点发送给交换节点2的报文所对应的第一拥塞滑窗,基于交换节点3所对应的过载率更新源节点发送给交换节点3的报文所对应的第一拥塞滑窗,基于交换节点4所对应的过载率更新源节点发送给交换节点4的报文所对应的第一拥塞滑窗。
示例性的,当前一般是通过交换节点的带宽利用率、交换节点的队列堆积程度和报文所属的数据流的公平性这三项性能指标来评估拥塞控制效果的。参照图32至图34,本公开的实施例采用了多组对照试验分别对DCQCN、HPCC和本公开实施例的拥塞控制方法的三项性能指标进行了测试,以验证本公开实施例的拥塞控制效果优于DCQCN和HPCC。进一步的是,图32至图34中的第一张曲线图是四个源节点通过不同的交换节点向同一个目的地节点发送报文时所对应的发送报文的速率的曲线图,用来评估报文所属的数据流的公平性。图32至图34中的第二张曲线图是源节点通过交换节点向目的地节点发送报文时交换节点的端口的带宽变化,用来评估交换节点的带宽利用率。图32至图34中的第三张曲线图是源节点通过交换节点向目的地节点发送报文时交换节点内部的队列长度,用来评估交换节点的队列堆积程度。
参照图32,图32为根据本公开实施例的DCQCN的仿真数据的示意图,由图32可知在采用DCQCN时,源节点向目的地节点发送报文时所对应的发送报文的速率变化幅度大,且为不同的报文所属的数据流分配的速率并不公平。而且,在临近传输结束时,交换节点抓取空闲的带宽的速度很慢,交换节点的队列长度在100KB-500KB之间波动。
参照图33,图33是根据本公开实施例的HPCC的仿真数据的示意图,由图33可知在采用HPCC时,虽然为不同的报文所属的数据流分配的速率较为公平,但是交换节点的带宽有明显的波动,这可能会导致交换节点的吞吐量损失。而且交换节点的队列长度一开始在很长一段时间内维持在250KB以上,可能存在拥塞。
参照图34,图34是根据本公开实施例的拥塞控制方法的仿真数据的示意图,由图34可知在采用本公开实施例的拥塞控制方法时,为不同的报文所属的数据流分配的速率较为公平,且交换节点的带宽一直维持在100%,最终传输完成的时间是7000us,比图32的DCQCN和图33的HPCC的8000us少了接近12.5%。而且,本方案的交换节点的队列长度维持在10KB附近波动,显著低于图32的DCQCN和图33的HPCC,说明交换节点内部能够保持畅通状态。
上述步骤3010至步骤3020的实施例,能够基于每个交换节点对应的第一数量和第二数量确定每个交换节点的过载率,并基于每个交换节点的过载率,对每个交换节点的第一拥塞滑窗进行更新。通过对每个交换节点的第一拥塞滑窗进行更新,能够对源节点到目的地节点的多个交换节点实现精准地拥塞控制。
下面为本公开实施例的由源节点计算过载率的拥塞控制方法应用于目的地节点侧的描述。
另外,如图36所示,本公开实施例提供的拥塞控制方法应用于目的地节点,拥塞控制方法包括:
步骤3610、接收源节点发送的报文;
步骤3620、当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答,其中,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到;
步骤3630、当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答。
下面对步骤3610至步骤3630进行详细描述。
在步骤3610中,接收源节点发送的报文。
根据本公开的实施例,源节点基于第一拥塞滑窗向目的地节点发送报文,且源节点和目的地节点设有至少一个交换节点。交换节点接收到源节点发送的报文之后将报文转发给目的地节点,使得目的地节点接收源节点发送的报文。
在步骤3620中,当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答,其中,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到。
本公开实施例的“当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答”的具体实施方式和上文中步骤810中的具体实施方式相似,此处不对其进行赘述。
本公开实施例的“源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到”的具体实施方式和上文中步骤420中的具体实施方式相似,此处不对其进行赘述。
目的地节点在统计得到第一数量和第二数量,并基于第一数量和第二数量生成确认应答后,为便于源节点了解交换节点的拥塞情况,目的地节点还需要将确认应答返回给源节点。源节点在接受到确认应答后将基于确认应答中携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量计算过载率,基于过载率调整第一拥塞窗口,进而实现拥塞的精准控制。
在步骤3630中,当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答。
本公开实施例的“当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答”的具体实施方式和上文中步骤820中的具体实施方式相似,此处不对其进行赘述。
目的地节点在统计得到第一数量和第二数量,并基于第一数量和第二数量生成确认应答后,还需要将确认应答返回给源节点。
上述步骤3610和步骤3630的实施例中,目的地节点能够统计携带有拥塞标记报文的第一数量和携带有畅通标记的报文的第二数量,将第一数量和第二数量插入到确认应答中,以使得源节点能够接收目的地节点返回的确认应答。并且基于确认应答中包含的携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量来确定交换节点的过载率。过载率可以精准地反映链路中的交换节点当前的堵塞情况。这样,基于过载率来对第一拥塞滑窗进行更新后,就能够对发送的目标报文的数目进行精确控制,从而实现了精准的拥塞控制。第一拥塞滑窗是在待发送报文队列中移动的窗口,用于指示向目的地节点发出的第一数目个报文。一旦第一拥塞滑窗中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。这样,就能够在过载率反映出的交换节点的负载状态较重时,不增加第一拥塞滑窗的长度,从而不发送新的报文,缓解网络拥塞。在过载率反映出的交换节点的负载状态较轻时,增加第一拥塞滑窗的长度,从而容纳新的报文进行发送,充分利用网络带宽,精准地进行拥塞控制。同时,本公开实施例所使用的方法仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量,即可精准地进行拥塞控制,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
下面是本公开实施例的由目的地节点计算过载率的拥塞控制方法应用于源节点侧的描述。
另外,如图37所示,本公开实施例提供的拥塞控制方法应用于源节点,拥塞控制方法包括:
步骤3710、基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文;
步骤3720、接收目的地节点返回的确认应答,确认应答包括交换节点的过载率,其中,源节点和目的地节点之间设有交换节点,交换节点基于交换节点内的缓存队列对报文进行标记得到拥塞标记和畅通标记,过载率由目的地节点基于带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量确定得到;
步骤3730、基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
下面对步骤3710至步骤3730进行详细描述。
在步骤3710中,基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文。
本公开实施例的具体实施方式和上文中步骤410中的具体实施方式相似,此处不对其进行赘述。
在步骤3720中,接收目的地节点返回的确认应答,确认应答包括交换节点的过载率,其中,源节点和目的地节点之间设有交换节点,交换节点基于交换节点内的缓存队列对报文进行标记得到拥塞标记和畅通标记,过载率由目的地节点基于带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量确定得到。
根据本公开的实施例,步骤420-430中,目的地节点返回携带有第一数量和第二数量的确认应答给源节点,以使得源节点基于确认应答中的第一数量和第二数量确定过载率。与步骤420-430不同的是,本公开的实施例中,目的地节点还可以基于直接携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量计算交换节点的过载率,并基于过载率生成确认应答,返回给源节点携带有过载率的确认应答。在此步骤中,由目的地节点计算过载率,源节点无需计算过载率。
参照图38A和图38B,目的地节点在计算完交换节点的过载率之后将基于过载率生成确认应答,并将确认应答返回给源节点。基于此,源节点可以无需再计算过载率,只需要基于确认应答中的过载率更新第一拥塞窗口即可,实现了精准的拥塞控制。
本公开实施例的“交换节点基于交换节点内的缓存队列对报文进行标记得到拥塞标记和畅通标记”的具体实施方式和上文中步骤420中的具体实施方式相似,本公开实施例的“过载率由目的地节点基于带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量确定得到”的具体实施方式和上文中步骤430中的具体实施方式相似,此处不对其进行赘述。
在步骤3730中,基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
本公开实施例的具体实施方式和上文中步骤440中的具体实施方式相似,此处不对其进行赘述。
上述步骤3710和步骤3730的实施例的源节点能够接收目的地节点返回的确认应答,并基于确认应答中的交换节点的过载率对第一拥塞滑窗进行更新。过载率可以精准地反映链路中的交换节点当前的堵塞情况。这样,基于过载率来对第一拥塞滑窗进行更新后,就能够对发送的目标报文的数目进行精确控制,从而实现了精准的拥塞控制。第一拥塞滑窗是在待发送报文队列中移动的窗口,用于指示向目的地节点发出的第一数目个报文。一旦第一拥塞滑窗中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。这样,就能够在过载率反映出的交换节点的负载状态较重时,不增加第一拥塞滑窗的长度,从而不发送新的报文,缓解网络拥塞。在过载率反映出的交换节点的负载状态较轻时,增加第一拥塞滑窗的长度,从而容纳新的报文进行发送,充分利用网络带宽,精准地进行拥塞控制。同时,本公开实施例所使用的方法仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量,即可精准地进行拥塞控制,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
下面是本公开实施例的由目的地节点计算过载率的拥塞控制方法应用于目的地节点侧的描述。
另外,如图39所示,本公开实施例提供的拥塞控制方法应用于目的地节点,拥塞控制方法包括:
步骤3910、接收源节点发送的报文;
步骤3920、当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答,其中,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到;
步骤3930、当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答。
下面对步骤3910至步骤3930进行详细描述。
在步骤3910中,接收源节点发送的报文。
本公开实施例的具体实施方式和上文中步骤3610中的具体实施方式相似,此处不对其进行赘述。
在步骤3920中,当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答,其中,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到。
参照图40,本公开实施例的目的地节点在确定得到第一数量和第二数量之后,并不是基于第一数量和第二数量生成确认应答返回给源节点。而是目的地节点先基于第一数量和第二数量确定交换节点的过载率,再基于过载率生成确认应答并将确认应答返回给源节点。基于此,源节点侧无需再计算交换节点的过载率,可以直接基于过载率调整第一拥塞滑窗,从而实现精准的拥塞控制。进一步的是,“基于过载率生成确认应答”是指将过载率放入确认应答中的字段,使得确认应答可以携带过载率,使得源节点接收到包括有过载率的确认应答。
本公开实施例的“当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量”的具体实施方式和上文中步骤810中的具体实施方式相似,此处不对其进行赘述。
本公开实施例的“基于第一数量和第二数量确定交换节点的过载率”的具体实施方式和上文中步骤430中的具体实施方式相似,此处不对其进行赘述。
本公开实施例的“源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到”的具体实施方式和上文中步骤420中的具体实施方式相似,此处不对其进行赘述。
在步骤3930中,当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量确定交换节点的过载率,基于过载率生成确认应答,向源节点返回确认应答。
本公开实施例的“当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量”的具体实施方式和上文中步骤820中的具体实施方式相似,此处不对其进行赘述。
本公开实施例的“基于第一数量和第二数量确定交换节点的过载率”的具体实施方式和上文中步骤430中的具体实施方式相似,此处不对其进行赘述。
上述步骤3910和步骤3930的实施例的目的地节点能够基于携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量来确定交换节点的过载率。过载率可以精准地反映链路中的交换节点当前的堵塞情况。在这之后,目的地节点基于过载率生成确认应答,返回确认应答给源节点,以使得源节点基于过载率来对第一拥塞滑窗进行更新。这样,基于过载率来对第一拥塞滑窗进行更新后,就能够对发送的目标报文的数目进行精确控制,从而实现了精准的拥塞控制。第一拥塞滑窗是在待发送报文队列中移动的窗口,用于指示向目的地节点发出的第一数目个报文。一旦第一拥塞滑窗中有报文被确认应答,将第一拥塞滑窗滑动,以容纳更多未发送报文,从而将容纳进的未发送报文发送。这样,就能够在过载率反映出的交换节点的负载状态较重时,不增加第一拥塞滑窗的长度,从而不发送新的报文,缓解网络拥塞。在过载率反映出的交换节点的负载状态较轻时,增加第一拥塞滑窗的长度,从而容纳新的报文进行发送,充分利用网络带宽,精准地进行拥塞控制。同时,本公开实施例所使用的方法仅需要在目的地节点返回的确认应答中插入携带有拥塞标记的目标报文的第一数量和携带有畅通标记的目标报文的第二数量,即可精准地进行拥塞控制,对目的地节点的定制化要求较低,也无需额外对交换节点进行定制,易于实现部署。
下面说明本公开实施例的拥塞控制方法的实施细节。
下面参照图41,详细示例性说明本公开实施例的拥塞控制方法的实施细节。
在步骤4110中,源节点基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文。
在步骤4120中,交换节点基于交换节点内的缓存队列对报文进行标记。
其中,源节点和目的地节点之间设有至少一个交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列对报文进行标记得到。
在一实施例中,拥塞标记和畅通标记由交换节点通过以下方式,基于交换节点内的队列长度对报文进行标记得到:
当交换节点内的缓存队列的长度小于或者等于第一队列长度时,在报文上加上畅通标记;
当交换节点内的缓存队列的长度大于或者等于第二队列长度时,在报文上加上拥塞标记,其中,第二队列长度大于第一队列长度;
当交换节点的缓存队列的长度大于第一队列长度、且小于第二队列长度,以第一概率在报文上加上拥塞标记,并以第一概率的补数在报文上加上畅通标记,其中,第一概率的补数为1与第一概率的差,第一概率随着处于第一队列长度与第二队列长度之间的队列长度线性变化。
在步骤4131中,当确定从发出上一个确认应答后过去预定时间段时,目的地节点基于预定时间段内接收到的报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答。
在步骤4132中,当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,目的地节点基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答。
在步骤4141中,源节点接收目的地节点返回的确认应答;获取第一周期内接收到的确认应答组成的第一序列。
在一实施例中,第一周期通过以下方式确定:获取单位时间内接收到的确认应答数目;获取报文所属业务的实时性程度;基于确认应答数目和实时性程度,确定第一周期。
在步骤4142中,源节点将第一序列中的第一个确认应答作为待考察确认应答,并初始化统计标记概率。
在步骤4143中,源节点基于待考察确认应答中的第一数量和第二数量,更新统计标记概率。
在一实施例中,基于待考察确认应答中的第一数量和第二数量,更新统计标记概率,包括:分别将第一计数值和第二计数值初始化为1;当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率,并增加第一计数值,并返回当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率的步骤,直到第一计数值大于第一数量;当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率,并增加第二计数值,并返回当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率的步骤,直到第二计数值大于第二数量。
在一实施例中,当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率,可以通过以下方式实现:当第一计数值小于或者等于第一数量,获取第一参数,第一参数为在0和1之间的值;步骤1620、将1与第一参数的差值作为第二参数;步骤1630、将统计标记概率与第二参数的积,与第一参数相加,得到增加后的统计标记概率。
在一实施例中,当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率,可以通过以下方式实现:当第二计数值小于或者等于第二数量,获取第一参数,第一参数为在0和1之间的值;步骤1720、将1与第一参数的差值作为第二参数;步骤1730、将统计标记概率与第二参数的积,作为减少后的统计标记概率。
在步骤4144中,源节点基于第一序列中待考察确认应答的下一个确认应答更新待考察确认应答,返回基于待考察确认应答中的第一数量和第二数量,更新统计标记概率的步骤,直到第一序列中不包含待考察确认应答的下一个确认应答。
在步骤4151中,获取第一队列长度和第二队列长度。
在一实施例中,第一队列长度在0到10KB之间。
在一实施例中,第二队列长度通过以下方式获取:获取交换节点的带宽、和空载时延;基于带宽和空载时延,确定交换节点的时延带宽积;基于报文所属的业务的最大时延,确定第一系数;基于第一系数和时延带宽积,确定第二队列长度。
在步骤4152中,获取第二队列长度对应的临界标记概率。
在步骤4153中,基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度。
在一实施例中,基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度,可以通过以下方式实现:确定第二队列长度和第一队列长度之间的第一长度差值;确定统计标记概率与临界标记概率的第一比值;基于第一队列长度、第一长度差值和第一比值,确定统计队列长度。
在步骤4161中,基于统计队列长度,确定第一周期中交换节点的负载量。
在一实施例中,基于统计队列长度,确定第一周期中交换节点的负载量,可以通过以下方式实现:获取队列权重系数和队列波动阻尼系数;确定当前第一周期的统计队列长度与上一个第一周期的统计队列长度的第二长度差值;基于队列权重系数、统计队列长度、队列波动阻尼系数、和第二长度差值,确定第一周期中交换节点的负载量。
在步骤4162中,获取交换节点的端口带宽。
在步骤4163中,基于负载量、端口带宽,确定第一周期中交换节点的过载率。
在一实施例中,基于负载量、端口带宽,确定第一周期中交换节点的过载率,可以通过以下方式实现:确定端口带宽和第一周期的第一乘积;将负载量和第一乘积的比值确定为过载率。
在步骤4171中,当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度。
在一实施例中,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度,可以通过以下方式实现:在当前第一周期第一次接收到确认应答时,确定第一数值与过载率的第一和;将第一拥塞滑窗的滑窗长度与第一和的比值,作为缩短后的第一拥塞滑窗的滑窗长度。
在一实施例中,在当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度之后,拥塞控制方法还包括:当上一个第一周期的过载率大于预设值时,将确认应答累积值归零。
在步骤4172中,当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,增加确认应答累积值。
在一实施例中,当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,增加确认应答累积值,可以通过以下方式实现:当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,增加确认应答累积值;当确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度;当确认应答累积值达到预定累积值时,基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度。
在一实施例中,当确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度,可以通过以下方式实现:当确认应答累积值未达到预定累积值时,获取确认应答中的第二数量;将第三计数值初始化为1;当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值,并将第一拥塞滑窗的长度与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的滑窗长度;将第三计数值加1,并返回当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值的步骤,直到第三计数值大于第二数量。
在一实施例中,当确认应答累积值达到预定累积值时,基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度,可以通过以下方式实现:当确认应答累积值达到预定累积值时,获取确认应答中的第二数量;将第三计数值初始化为1;当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的长度的积,作为延长后的第一拥塞滑窗的滑窗长度;将第三计数值加1,并返回当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的滑窗长度的积,作为延长后的第一拥塞滑窗的滑窗长度的步骤,直到第三计数值大于第二数量。
下面针对本公开实施例的装置和设备进行描述。
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的表征依次显示,但是这些步骤并不是必然按照箭头表征的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据对象属性信息或属性信息集合等与对象特性相关的数据进行相关处理时,都会先获得对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取对象属性信息时,会通过弹窗或者跳转到确认页面等方式获得对象的单独许可或者单独同意,在明确获得对象的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的对象相关数据。
图42为本公开实施例提供的拥塞控制装置4200的结构示意图。该拥塞控制装置4200设置于源节点中,拥塞控制装置4200包括:
第一发送单元4210,配置为基于第一拥塞滑窗向目的地节点发送报文,其中,第一拥塞滑窗是在待发送报文队列中移动的窗口,第一拥塞滑窗用于指示向目的地节点发出的第一数目个报文,当第一数目个报文中有报文被确认应答时,第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进第一拥塞滑窗的待发送报文;
第一接收单元4220,配置为接收目的地节点返回的确认应答,确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到;
第一确定单元4230,配置为基于第一数量和第二数量确定交换节点的过载率;
更新单元4240,配置为基于过载率对第一拥塞滑窗进行更新,其中,通过更新后的第一拥塞滑窗对容纳进的待发送报文的数目进行控制。
在一些实施例中,第一确定单元4230具体配置为:当达到第一周期时,基于第一数量和第二数量,确定第一周期中交换节点的统计标记概率;基于统计标记概率,确定第一周期中交换节点的统计队列长度;基于统计队列长度,确定第一周期中交换节点的过载率。
在一些实施例中,第一确定单元4230具体配置为:获取第一周期内接收到的确认应答所组成的第一序列;将第一序列中的第一个确认应答作为待考察确认应答,并初始化统计标记概率;基于待考察确认应答中的第一数量和第二数量,更新统计标记概率;基于第一序列中待考察确认应答的下一个确认应答更新待考察确认应答,返回基于待考察确认应答中的第一数量和第二数量,更新统计标记概率的步骤,直到第一序列中不包含待考察确认应答的下一个确认应答。
在一些实施例中,第一确定单元4230具体配置为:分别将第一计数值和第二计数值初始化为1;当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率,并增加第一计数值,并返回当第一计数值小于或者等于第一数量,利用第一标记概率增加方法,增加统计标记概率的步骤,直到第一计数值大于第一数量;当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率,并增加第二计数值,并返回当第二计数值小于或者等于第二数量,利用第一标记概率减少方法,减少统计标记概率的步骤,直到第二计数值大于第二数量。
在一些实施例中,第一确定单元4230具体配置为:当第一计数值小于或者等于第一数量,获取第一参数,第一参数为在0和1之间的值;将1与第一参数的差值作为第二参数;将统计标记概率与第二参数的积,与第一参数相加,得到增加后的统计标记概率。
在一些实施例中,第一确定单元4230具体配置为:当第二计数值小于或者等于第二数量,获取第一参数,第一参数为在0和1之间的值;将1与第一参数的差值作为第二参数;将统计标记概率与第二参数的积,作为减少后的统计标记概率。
在一些实施例中,第一周期通过以下方式确定:获取单位时间内接收到的确认应答数目;获取报文所属业务的实时性程度;第一确定单元4230具体配置为:基于确认应答数目和实时性程度,确定第一周期。
在一些实施例中,拥塞标记和畅通标记由交换节点通过以下方式,基于交换节点内的缓存队列,对报文进行标记得到:当交换节点内的缓存队列的长度小于或者等于第一队列长度时,在报文上加上畅通标记;当交换节点内的缓存队列的长度大于或者等于第二队列长度时,在报文上加上拥塞标记,其中,第二队列长度大于第一队列长度;当交换节点的缓存队列的长度大于第一队列长度、且小于第二队列长度,以第一概率在报文上加上拥塞标记,并以第一概率的补数在报文上加上畅通标记,其中,第一概率的补数为1与第一概率的差,第一概率随着处于第一队列长度与第二队列长度之间的队列长度线性变化。
在一些实施例中,第一确定单元4230具体配置为:获取第一队列长度和第二队列长度;获取第二队列长度对应的临界标记概率;基于统计标记概率、第一队列长度、第二队列长度和临界标记概率,确定统计队列长度。
在一些实施例中,第一确定单元4230具体配置为:确定第二队列长度和第一队列长度之间的第一长度差值;确定统计标记概率与临界标记概率的第一比值;基于第一队列长度、第一长度差值和第一比值,确定统计队列长度。
在一些实施例中,第一队列长度在0到10KB之间。
在一些实施例中,第一确定单元4230具体配置为:获取交换节点的带宽、和空载时延;基于带宽和空载时延,确定交换节点的时延带宽积;基于报文所属的业务的最大时延,确定第一系数;基于第一系数和时延带宽积,确定第二队列长度。
在一些实施例中,第一确定单元4230具体配置为:基于统计队列长度,确定第一周期中交换节点的负载量;获取交换节点的端口带宽;基于负载量、端口带宽和第一周期,确定第一周期中交换节点的过载率。
在一些实施例中,第一确定单元4230具体配置为:获取队列权重系数和队列波动阻尼系数;确定当前第一周期的统计队列长度与上一个第一周期的统计队列长度的第二高度差;基于队列权重系数、统计队列长度、队列波动阻尼系数、和第二高度差,确定第一周期中交换节点的负载量。
在一些实施例中,第一确定单元4230具体配置为:确定端口带宽和第一周期的第一乘积;将负载量和第一积的比值确定为过载率。
在一些实施例中,更新单元4240具体配置为:当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度;当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,延长第一拥塞滑窗的滑窗长度。
在一些实施例中,更新单元4240具体配置为:在当前第一周期第一次接收到确认应答时,确定第一数值与过载率的第一和;将第一拥塞滑窗的滑窗长度与第一和的比值,作为缩短后的第一拥塞滑窗的滑窗长度。
在一些实施例中,在当上一个第一周期的过载率大于预设值时,在当前第一周期第一次接收到确认应答时,基于过载率缩短第一拥塞滑窗的滑窗长度之后,更新单元4240具体还配置为:当上一个第一周期的过载率大于预设值时,将确认应答累积值归零;
更新单元4240具体配置为:当上一个第一周期的过载率小于或者等于预设值时,在当前第一周期每接收到一次确认应答时,增加确认应答累积值;当确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的第一拥塞滑窗的滑窗长度;当确认应答累积值达到预定累积值时,基于第二延长方式确定延长后的第一拥塞滑窗的滑窗长度。
在一些实施例中,更新单元4240具体配置为:当确认应答累积值未达到预定累积值时,获取确认应答中的第二数量;将第三计数值初始化为1;当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值,并将第一拥塞滑窗的长度与滑窗长度增加值相加,得到延长后的第一拥塞滑窗的滑窗长度;将第三计数值加1,并返回当第三计数值小于或者等于第二数量,将加性增窗系数与第一拥塞滑窗的长度的比值作为滑窗长度增加值的步骤,直到第三计数值大于第二数量。
在一些实施例中,更新单元4240具体配置为:当确认应答累积值达到预定累积值时,获取确认应答中的第二数量;将第三计数值初始化为1;当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的长度的积,作为延长后的第一拥塞滑窗的滑窗长度;将第三计数值加1,并返回当第三计数值小于或者等于第二数量时,将预定倍数与第一拥塞滑窗的滑窗长度的积,作为延长后的第一拥塞滑窗的滑窗长度的步骤,直到第三计数值大于第二数量。
在一些实施例中,至少一个交换节点为多个交换节点,报文经过多个交换节点中的一个交换节点发送到目的地节点;确认应答包括每个交换节点对应的第一数量和第二数量;
第一确定单元4230具体配置为:基于每个交换节点对应的第一数量和第二数量,确定每个交换节点的过载率;
更新单元4240具体配置为:基于每个交换节点的过载率,对每个交换节点对应的第一拥塞滑窗进行更新。
在一些实施例中,拥塞标记或畅通标记在报文中与交换节点标识对应记录;
第一数量和第二数量由目的地节点通过以下方式生成:将各个交换节点标识对应的第四计数值和第五计数值初始化为0,其中,第四计数值指示交换节点标识对应的交换节点添加了拥塞标记的报文数目,第五计数值指示交换节点标识对应的交换节点添加了畅通标记的报文数目;当接收到一个报文后,如果报文中包含交换节点标识对应的交换节点对应的拥塞标记,将交换节点标识对应的第四计数值加1;当接收到一个报文后,如果报文中包含交换节点标识对应的交换节点对应的畅通标记,将交换节点标识对应的第五计数值加1;当满足预定条件时,将第四计数值确定为第一数量,将第五计数值确定为第二数量。
在一些实施例中,确认应答由目的地节点通过以下方式发出:当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答;当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量生成并发出确认应答。
图43为本公开实施例提供的拥塞控制装置4300的结构示意图。该拥塞控制装置4300设置于目的地节点中,拥塞控制装置4300包括:
第二接收单元4310,配置为接收源节点发送的报文;
第二确定单元4320,配置为当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于第一数量和第二数量生成确认应答,向源节点返回确认应答,其中,源节点和目的地节点之间设有交换节点,拥塞标记和畅通标记均由交换节点基于交换节点内的缓存队列,对交换节点接收到的报文进行标记得到;
第三确定单元4330,配置为当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于预定数目个报文,确定第一数量和第二数量,并基于第一数量和第二数量生成确认应答,向源节点返回确认应答。
参照图44,图44为实现本公开实施例的拥塞控制方法的终端的部分的结构框图,该终端包括:射频(Radio Frequency,简称RF)电路4410、存储器4415、输入单元4430、显示单元4440、传感器4450、音频电路4460、无线保真(wireless fidelity,简称WiFi)模块4470、处理器4480、以及电源4490等部件。本领域技术人员可以理解,图44示出的终端结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路4410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器4480处理;另外,将设计上行的数据发送给基站。
存储器4415可用于存储软件程序以及模块,处理器4480通过运行存储在存储器4415的软件程序以及模块,从而执行内容终端的各种功能应用以及数据处理。
输入单元4430可用于接收输入的数字或字符信息,以及产生与内容终端的设置以及功能控制有关的键信号输入。具体地,输入单元4430可包括触控面板4431以及其他输入装置4432。
显示单元4440可用于显示输入的信息或提供的信息以及内容终端的各种菜单。显示单元4440可包括显示面板4441。
音频电路4460、扬声器4461,传声器4462可提供音频接口。
在本实施例中,该终端所包括的处理器4480可以执行前面实施例的拥塞控制方法。
本公开实施例的终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本发明实施例可应用于各种场景,包括但不限于内容推荐、数据筛选等。
图45为实施本公开实施例的拥塞控制方法的服务器的部分的结构框图。服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)4522(例如,一个或一个以上处理器)和存储器4532,一个或一个以上存储应用程序4542或数据4544的存储介质4530(例如一个或一个以上海量存储装置)。其中,存储器4532和存储介质4530可以是短暂存储或持久存储。存储在存储介质4530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器4522可以设置为与存储介质4530通信,在服务器上执行存储介质4530中的一系列指令操作。
服务器还可以包括一个或一个以上电源4526,一个或一个以上有线或无线网络接口4550,一个或一个以上输入输出接口4558,和/或,一个或一个以上操作系统4541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器中的中央处理器4522可以用于执行本公开实施例的拥塞控制方法。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的拥塞控制方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的拥塞控制方法。
本公开的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的内容,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联内容的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联内容是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器130,或者网络装置等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本公开实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本公开的实施方式的具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本公开权利要求所限定的范围内。
Claims (22)
- 一种拥塞控制方法,应用于源节点,所述拥塞控制方法包括:基于第一拥塞滑窗向目的地节点发送报文,其中,所述第一拥塞滑窗是在待发送报文队列中移动的窗口,所述第一拥塞滑窗用于指示向所述目的地节点发出的第一数目个报文,当所述第一数目个报文中有报文被确认应答时,所述第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进所述第一拥塞滑窗的所述待发送报文;接收所述目的地节点返回的所述确认应答,所述确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的报文进行标记得到;基于所述第一数量和所述第二数量确定所述交换节点的过载率;基于所述过载率对所述第一拥塞滑窗进行更新,其中,通过更新后的所述第一拥塞滑窗对容纳进的所述待发送报文的数目进行控制。
- 根据权利要求1所述的拥塞控制方法,其中,所述基于所述第一数量和所述第二数量确定所述交换节点的过载率,包括:当达到第一周期时,基于所述第一数量和所述第二数量,确定所述第一周期中所述交换节点的统计标记概率;基于所述统计标记概率,确定所述第一周期中所述交换节点的统计队列长度;基于所述统计队列长度,确定所述第一周期中所述交换节点的过载率。
- 根据权利要求2所述的拥塞控制方法,其中,所述当达到第一周期时,基于所述第一数量和所述第二数量,确定所述第一周期中所述交换节点的统计标记概率,包括:获取所述第一周期内接收到的所述确认应答所组成的第一序列;将所述第一序列中的第一个确认应答作为待考察确认应答,并初始化所述统计标记概率;基于所述待考察确认应答中的所述第一数量和所述第二数量,更新所述统计标记概率;基于所述第一序列中所述待考察确认应答的下一个确认应答更新所述待考察确认应答,返回所述基于所述待考察确认应答中的所述第一数量和所述第二数量,更新所述统计标记概率的步骤,直到所述第一序列中不包含所述待考察确认应答的下一个确认应答。
- 根据权利要求3所述的拥塞控制方法,其中,所述基于所述待考察确认应答中的所述第一数量和所述第二数量,更新所述统计标记概率,包括:分别将第一计数值和第二计数值初始化为1;当所述第一计数值小于或者等于所述第一数量,利用第一标记概率增加方法,增加所述统计标记概率,并增加所述第一计数值,并返回所述当所述第一计数值小于或者等于所述第一数量,利用第一标记概率增加方法,增加所述统计标记概率的步骤,直到所述第一计数值大于所述第一数量;当所述第二计数值小于或者等于所述第二数量,利用第一标记概率减少方法,减少所述统计标记概率,并增加所述第二计数值,并返回所述当所述第二计数值小于或者等于所述第二数量,利用第一标记概率减少方法,减少所述统计标记概率的步骤,直到所述第二计数值大于所述第二数量。
- 根据权利要求4所述的拥塞控制方法,其中,所述当所述第一计数值小于或者等于所述第一数量,利用第一标记概率增加方法,增加所述统计标记概率,包括:当所述第一计数值小于或者等于所述第一数量,获取第一参数,所述第一参数为在0和1之间的值;将1与所述第一参数的差值作为第二参数;将所述统计标记概率与第二参数的积,与所述第一参数相加,得到增加后的所述统计标记概率。
- 根据权利要求4所述的拥塞控制方法,其中,所述当所述第二计数值小于或者等于所述第二数量,利用第一标记概率减少方法,减少所述统计标记概率,包括:当所述第二计数值小于或者等于所述第二数量,获取第一参数,所述第一参数为在0和1之间的值;将1与所述第一参数的差值作为第二参数;将所述统计标记概率与所述第二参数的积,作为减少后的所述统计标记概率。
- 根据权利要求2-6任一项所述的拥塞控制方法,其中,所述拥塞标记和所述畅通标记由所述交换节点通过以下方式,基于所述交换节点内的缓存队列,对所述报文进行标记得到:当所述交换节点内的所述缓存队列的长度小于或者等于第一队列长度时,在所述报文上加上所述畅通标记;当所述交换节点内的所述缓存队列的长度大于或者等于第二队列长度时,在所述报文上加上所述拥塞标记,其中,所述第二队列长度大于所述第一队列长度;当所述交换节点的所述缓存队列的长度大于所述第一队列长度、且小于所述第二队列长度,以第一概率在所述报文上加上所述拥塞标记,并以所述第一概率的补数在所述报文上加上所述畅通标记,其中,所述第一概率的补数为1与所述第一概率的差,所述第一概率随着处于所述第一队列长度与所述第二队列长度之间的队列长度线性变化。
- 根据权利要求7所述的拥塞控制方法,其中,所述基于所述统计标记概率,确定所述第一周期中所述交换节点的统计队列高度,包括:获取所述第一队列长度和所述第二队列长度;获取所述第二队列长度对应的临界标记概率;基于所述统计标记概率、所述第一队列长度、所述第二队列长度和所述临界标记概率,确定所述统计队列长度。
- 根据权利要求2-8任一项所述的拥塞控制方法,其中,所述基于所述统计队列长度,确定所述第一周期中所述交换节点的过载率,包括:基于所述统计队列长度,确定所述第一周期中所述交换节点的负载量;获取所述交换节点的端口带宽;基于所述负载量、所述端口带宽,确定所述第一周期中所述交换节点的所述过载率。
- 根据权利要求1-9任一项所述的拥塞控制方法,其中,所述基于所述过载率对所述第一拥塞滑窗进行更新,包括:当上一个第一周期的所述过载率大于预设值时,在当前第一周期第一次接收到所述确认应答时,基于所述过载率缩短所述第一拥塞滑窗的滑窗长度;当上一个第一周期的所述过载率小于或者等于所述预设值时,在当前第一周期每接收到一次所述确认应答时,延长所述第一拥塞滑窗的滑窗长度。
- 根据权利要求10所述的拥塞控制方法,其中,所述在当前第一周期第一次接收到所述确认应答时,基于所述过载率缩短所述第一拥塞滑窗的滑窗长度,包括:在当前第一周期第一次接收到所述确认应答时,确定第一数值与所述过载率的第一和;将所述第一拥塞滑窗的滑窗长度与所述第一和的比值,作为缩短后的所述第一拥塞滑窗的滑窗长度。
- 根据权利要求10所述的拥塞控制方法,其中,在当上一个第一周期的所述过载率大于预设值时,在当前第一周期第一次接收到所述确认应答时,基于所述过载率缩短所述第一拥塞滑窗的滑窗长度之后,所述拥塞控制方法还包括:当上一个第一周期的所述过载率大于所述预设值时,将确认应答累积值归零;和/或,所述当上一个第一周期的所述过载率小于或者等于所述预设值时,在当前第一周期每接收到一次所述确认应答时,延长所述第一拥塞滑窗的滑窗长度,包括:当上一个第一周期的所述过载率小于或者等于所述预设值时,在当前第一周期每接收到一次所述确认应答时,增加所述确认应答累积值;当所述确认应答累积值未达到预定累积值时,基于第一延长方式确定延长后的所述第一拥塞滑窗的滑窗长度;当所述确认应答累积值达到所述预定累积值时,基于第二延长方式确定延长后的所述第一拥塞滑窗的滑窗长度。
- 根据权利要求1-11任一项所述的拥塞控制方法,其中,所述交换节点的数量多个时,所述报文经过多个所述交换节点中的一个交换节点发送至所述目的地节点;所述确认应答包括每个交换节点对应的所述第一数量和所述第二数量;所述基于所述第一数量和所述第二数量确定所述交换节点的过载率,包括:基于每个交换节点对应的所述第一数量和所述第二数量,确定每个交换节点的所述过载率;和/或,所述基于所述过载率对所述第一拥塞滑窗进行更新,包括:基于每个交换节点的所述过载率,对每个交换节点对应的所述第一拥塞滑窗进行更新。
- 根据权利要求1-12任一项所述的拥塞控制方法,其中,所述确认应答由所述目的地节点通过以下方式发出:当确定从发出上一个确认应答后过去预定时间段时,基于所述预定时间段内接收到的所述报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量生成并发出所述确认应答;当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量生成并发出所述确认应答。
- 一种拥塞控制方法,应用于目的地节点,所述拥塞控制方法包括:接收源节点发送的报文;当确定从发出上一个确认应答后过去预定时间段时,基于所述预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答,其中,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的所述报文进行标记得到;当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答。
- 一种拥塞控制方法,应用于源节点,所述拥塞控制方法还包括:基于第一拥塞滑窗向目的地节点发送报文,其中,所述第一拥塞滑窗是在待发送报文队列中移动的窗口,所述第一拥塞滑窗用于指示向所述目的地节点发出的第一数目个报文,当所述第一数目个报文中有报文被确认应答时,所述第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进所述第一拥塞滑窗的所述待发送报文;接收所述目的地节点返回的所述确认应答,所述确认应答包括交换节点的过载率,其中,所述源节点和所述目的地节点之间设有交换节点,所述交换节点基于所述交换节点内的缓存队列对所述报文进行标记得到拥塞标记和畅通标记,所述过载率由所述目的地节点基于带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量确定得到;基于所述过载率对所述第一拥塞滑窗进行更新,其中,通过更新后的所述第一拥塞滑窗对容纳进的所述待发送报文的数目进行控制。
- 一种拥塞控制方法,应用于目的地节点,所述拥塞控制方法还包括:接收源节点发送的报文;当确定从发出上一个确认应答后过去预定时间段时,基于预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于所述第一数量和所述第二数量确定交换节点的过载率,基于所述过载率生成确认应答,向所述源节点返回所述确认应答,其中,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述所述交换节点接收到的报文进行标记得到;当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量确定交换节点的过载率,基于所述过载率生成确认应答,向所述源节点返回所述确认应答。
- 一种拥塞控制装置,设置于源节点中,所述装置包括:第一发送单元,配置为基于第一拥塞滑窗向目的地节点发送报文,其中,所述第一拥塞滑窗是在待发送报文队列中移动的窗口,所述第一拥塞滑窗用于指示向所述目的地节点发出的第一数目个报文,当所述第一数目个报文中有报文被确认应答时,所述第一拥塞滑窗通过被滑动,容纳待发送报文,并发送容纳进所述第一拥塞滑窗的所述待发送报文;第一接收单元,配置为接收所述目的地节点返回的所述确认应答,所述确认应答包括携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的报文进行标记得到;第一确定单元,配置为基于所述第一数量和所述第二数量确定所述交换节点的过载率;更新单元,配置为基于所述过载率对所述第一拥塞滑窗进行更新,其中,通过更新后的所述第一拥塞滑窗对容纳进的所述待发送报文的数目进行控制。
- 一种拥塞控制装置,设置于目的地节点中,所述装置包括:第二接收单元,配置为接收源节点发送的报文;第二确定单元,配置为当确定从发出上一个确认应答后过去预定时间段时,基于所述预定时间段内接收到的报文,确定携带有拥塞标记的报文的第一数量和携带有畅通标记的报文的第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答,其中,所述源节点和所述目的地节点之间设有交换节点,所述拥塞标记和所述畅通标记均由所述交换节点基于所述交换节点内的缓存队列,对所述交换节点接收到的所述报文进行标记得到;第三确定单元,配置为当从发出上一个确认应答后未过去预定时间段、且接收到预定数目个报文时,基于所述预定数目个报文,确定所述第一数量和所述第二数量,并基于所述第一数量和所述第二数量生成确认应答,向所述源节点返回所述确认应答。
- 一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-17任意一项所述的拥塞控制方法。
- 一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-17任意一项所述的拥塞控制方法。
- 一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行权利要求1-17任意一项所述的拥塞控制方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410684955.7 | 2024-05-29 | ||
| CN202410684955.7A CN118869600B (zh) | 2024-05-29 | 2024-05-29 | 拥塞控制方法、装置、电子设备及介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025246804A1 true WO2025246804A1 (zh) | 2025-12-04 |
Family
ID=93158120
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2025/092609 Pending WO2025246804A1 (zh) | 2024-05-29 | 2025-04-30 | 拥塞控制方法、装置、电子设备、计算机可读介质及计算机程序产品 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN118869600B (zh) |
| WO (1) | WO2025246804A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118869600B (zh) * | 2024-05-29 | 2025-06-10 | 腾讯科技(深圳)有限公司 | 拥塞控制方法、装置、电子设备及介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160308775A1 (en) * | 2015-04-20 | 2016-10-20 | Fujitsu Limited | Base station and communication control method |
| CN115378832A (zh) * | 2022-07-29 | 2022-11-22 | 北京奇艺世纪科技有限公司 | 拥塞检测方法、装置及流媒体传输系统、电子设备和介质 |
| CN115484210A (zh) * | 2022-08-16 | 2022-12-16 | 北京百度网讯科技有限公司 | 拥塞窗口的确定方法、装置与系统 |
| CN115883463A (zh) * | 2022-11-14 | 2023-03-31 | 北京邮电大学 | 基于网络负载的数据中心内拥塞控制方法和系统 |
| CN116155811A (zh) * | 2021-11-19 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 网络拥塞数据处理方法、装置、系统和计算机设备 |
| CN118869600A (zh) * | 2024-05-29 | 2024-10-29 | 腾讯科技(深圳)有限公司 | 拥塞控制方法、装置、电子设备及介质 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001045331A1 (en) * | 1999-12-13 | 2001-06-21 | Nokia Corporation | Congestion control method for a packet-switched network |
| CN111683017B (zh) * | 2020-05-26 | 2023-04-07 | 中国人民解放军国防科技大学 | 高速互连网络中的多等级拥塞控制方法、装置、系统及介质 |
| CN113507420B (zh) * | 2021-08-05 | 2022-03-15 | 清华大学 | 一种拥塞控制方法及装置 |
| CN116886622B (zh) * | 2023-09-08 | 2023-11-24 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 网络拥塞控制方法、装置、设备及存储介质 |
-
2024
- 2024-05-29 CN CN202410684955.7A patent/CN118869600B/zh active Active
-
2025
- 2025-04-30 WO PCT/CN2025/092609 patent/WO2025246804A1/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160308775A1 (en) * | 2015-04-20 | 2016-10-20 | Fujitsu Limited | Base station and communication control method |
| CN116155811A (zh) * | 2021-11-19 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 网络拥塞数据处理方法、装置、系统和计算机设备 |
| CN115378832A (zh) * | 2022-07-29 | 2022-11-22 | 北京奇艺世纪科技有限公司 | 拥塞检测方法、装置及流媒体传输系统、电子设备和介质 |
| CN115484210A (zh) * | 2022-08-16 | 2022-12-16 | 北京百度网讯科技有限公司 | 拥塞窗口的确定方法、装置与系统 |
| CN115883463A (zh) * | 2022-11-14 | 2023-03-31 | 北京邮电大学 | 基于网络负载的数据中心内拥塞控制方法和系统 |
| CN118869600A (zh) * | 2024-05-29 | 2024-10-29 | 腾讯科技(深圳)有限公司 | 拥塞控制方法、装置、电子设备及介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118869600A (zh) | 2024-10-29 |
| CN118869600B (zh) | 2025-06-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11888744B2 (en) | Spin-leaf network congestion control method, node, system, and storage medium | |
| CN113438181B (zh) | 网络拥塞控制方法和装置 | |
| CN102763385B (zh) | 用于计算机网络中的拥塞控制的方法和设备 | |
| US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
| CN112887217B (zh) | 控制数据包发送方法、模型训练方法、装置及系统 | |
| CN117221225A (zh) | 一种网络拥塞通知方法、装置及存储介质 | |
| US20230216809A1 (en) | Congestion control method and apparatus | |
| CN113783785A (zh) | Ecn水线值的配置方法、装置及网络设备 | |
| CN113328953A (zh) | 网络拥塞调整的方法、装置和存储介质 | |
| CN113141314A (zh) | 一种拥塞控制方法及设备 | |
| WO2023274006A1 (zh) | 一种网络设备的主动队列管理方法及网络设备 | |
| US20260074998A1 (en) | Congestion control method, apparatus, and system | |
| CN117749726A (zh) | Tsn交换机输出端口优先级队列混合调度方法和装置 | |
| CN118869600B (zh) | 拥塞控制方法、装置、电子设备及介质 | |
| CN116155811B (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
| CN118869619B (zh) | 通信方法、源设备、转发设备、可读存储介质及程序产品 | |
| CN118714093A (zh) | 以太网rdma主动拥塞控制方法、装置和设备 | |
| CN119402435A (zh) | 数据拥塞处理方法、装置、设备、存储介质及程序产品 | |
| CN116155824A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
| CN116155823A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
| US12463905B2 (en) | System and methods for network-aware rate adjustment | |
| Shiraki | Microburst Aware Congestion Control for Storage Traffic | |
| EP4611343A1 (en) | Message transmission method and apparatus, and device | |
| HK40086160A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
| HK40086160B (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: 25814581 Country of ref document: EP Kind code of ref document: A1 |