Congestion-Aware Load Balancing in Virtual Switches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network packet distribution across multiple paths in data center networks is often uneven, leading to congestion and performance degradation due to the lack of consideration for congestion levels in existing load balancing mechanisms like ECMP, which are either congestion-agnostic or require complex central controllers or endpoint modifications.
Innovation Solution
Implementing a congestion-aware load balancing method where virtual switches learn path congestion levels using techniques like Explicit Congestion Notification (ECN) or round trip time (RTT) measurements, and modify packet headers to route packets through paths with lower congestion, without requiring central controllers or endpoint modifications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If load balancing is performed without considering congestion levels, then network packet distribution is simplified, but network congestion occurs and performance degrades
Solution Approach 1:
The system performs self-service by having virtual switches automatically detect congestion levels on network paths and dynamically adjust packet routing decisions based on detected congestion, without requiring external controllers or manual intervention. The virtual switches monitor ECN markers in received packets to learn congestion states and autonomously select less congested paths for forwarding packets.
Solution Approach 2:
The system implements feedback by using ECN (Explicit Congestion Notification) markers in network packets to detect congestion levels on different paths. Virtual switches monitor these feedback signals from the network and use the congestion information to dynamically adjust their load balancing decisions, routing packets away from congested paths toward less congested alternatives.
2Productivity
If congestion-aware load balancing is implemented, then network traffic is balanced based on congestion levels, but packet header modification complexity increases
Solution Approach 1:
The system applies segmentation by separating the load balancing control logic into virtual switch operations, where each virtual switch independently performs congestion detection, path selection, and packet header modification. This segmentation allows distributed decision-making without requiring a centralized controller, reducing overall system complexity while maintaining congestion-aware routing.
Solution Approach 2:
The system changes parameters by dynamically modifying packet header fields (source address, destination address, source port) based on selected paths. The virtual switch alters these header parameters to route packets through less congested paths while maintaining flow identification, enabling congestion-aware routing through straightforward header modifications rather than complex routing protocols.
3Productivity
If path congestion levels are monitored and used for routing decisions, then network efficiency improves, but measurement and detection complexity increases
Solution Approach 1:
The system uses ECN (Explicit Congestion Notification) markers as intermediaries to convey congestion information. Instead of implementing complex congestion measurement mechanisms, the virtual switches leverage ECN markers inserted by network infrastructure to indirectly obtain congestion level information, simplifying the detection process while maintaining accurate congestion awareness.
Data Source
AI summary
Certain embodiments presented herein relate to load balancing of data transmissions among a plurality of paths between endpoints (EPs) coupled to virtual switches. In particular, between the virtual switches there may be a number of physical paths for the data to be communicated between the EPs. Each path may have a different congestion level. Certain embodiments relate to selecting a path of the plurality of paths between EPs to communicate data between the EPs based on the congestion levels associated with each of the plurality of paths. In certain embodiments, a virtual switch determines a congestion level of each of the plurality of paths, selects a path of the plurality of paths based on the determined congestion level, and sets source port information of network packets to correspond to the selected path so that the network packets are communicated along the selected path.


