In data communication networks, network congestion may occur, for example, when a buffer, port or queue of a network switch is overloaded with traffic. Switches in lossless communication networks typically employ flow control measures to prevent upstream switches from causing buffer overflow, which may result in congestion spreading to one or more upstream switches.
Methods for mitigating congestion in communication networks are known in the art. For example, U.S. Pat. No. 8,879,396, whose disclosure is incorporated herein by reference, describes system and method that can prevent traffic congestion in a middleware machine environment with a plurality of switches in a fat-tree topology. A subnet manager can sweep a subnet in the middleware machine environment to discover changes and maintain the subnet fully connected. A performance manager can retrieve performance and error-related information from one or more performance management agents that are associated with one or more components in the subnet. Then, a host can dynamically reconfigure one or more virtual lanes in order to improve network performances.
U.S. Pat. No. 7,821,939, whose disclosure is incorporated herein by reference, describes adaptively controlled congestion in a data center Ethernet (DCE) network. Packets are received over at least one virtual lane in the DCE network. An absolute or relative packet arrival rate is computed over a time period. The absolute or relative packet arrival rate is compared to at least a first threshold and a second threshold. If the absolute or relative packet arrival rate increases beyond the first threshold, the packet transmission rate is caused to decrease. If the absolute or relative packet arrival rate is less than a second threshold, the packet transmission rate is caused to increase.
In some congestion control strategies, a congested switch sends a notification to relevant source nodes to take measures for resolving congestion, such as reducing the rate in which data is injected into the network. For example, U.S. Pat. No. 9,426,085, whose disclosure is incorporated herein by reference, describes an apparatus that comprises a switch operating in a switch fabric. The switch is configured to receive a data packet having a destination address of a destination device from a source device, and then store the data packet in a queue of the switch. The switch is configured to define a message based on the queue having an available capacity less than a threshold, and include a congestion root indicator in the message if the switch is a congestion root. The switch is then configured to send the message to the source device such that the source device sends another data packet having the destination address of the destination device to another switch from the set of switches and not to the previous switch if the message includes the congestion root indicator.