Virtual Switch Congestion Control for TCP Flows
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current congestion control methods in datacenter networks are inadequate for managing congestion across multiple TCP flows, as they are localized to individual virtual machines and lack the ability to perform datacenter-level congestion control, leading to inefficiencies and potential network bottlenecks.
Innovation Solution
Implementing a virtual switch-based congestion control system that detects congestion in one flow and throttles other flows sharing the same network path or link, using a congestion window adjustment to distribute the throttling value across multiple flows, thereby reducing network congestion without requiring changes to individual virtual machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If congestion control is implemented at the individual virtual machine level using traditional TCP/IP stack methods, then each flow can independently manage its own congestion, but the overall datacenter network congestion cannot be effectively controlled and network bottlenecks occur
Solution Approach 1:
The patent introduces a virtual switch as an intermediary component between virtual machines and the physical network. The virtual switch monitors network traffic and implements congestion control by adjusting congestion windows of multiple flows simultaneously, enabling datacenter-level congestion management without requiring changes to individual virtual machine operations.
Solution Approach 2:
The virtual switch performs multiple functions including traditional packet forwarding, flow management, and now congestion control across multiple TCP flows. This multi-functional approach allows a single component to manage network traffic at the datacenter level, improving overall network reliability without sacrificing productivity.
2Productivity
If multiple flows share a common network link, then network resource utilization increases, but congestion and packet loss occur when the link capacity is exceeded
Solution Approach 1:
The virtual switch implements feedback-based congestion control by monitoring network conditions and dynamically adjusting the congestion windows of active flows. When congestion is detected on a shared link, the virtual switch reduces the congestion window of affected flows, thereby reducing traffic load and preventing packet loss while maintaining high network resource utilization.
Solution Approach 2:
The congestion window values are dynamically adjusted based on real-time network conditions rather than being fixed. The virtual switch continuously monitors link utilization and modifies flow parameters accordingly, enabling the system to adapt to changing traffic patterns and maintain optimal performance without causing congestion-induced packet loss.
3Adaptability or versatility
If congestion control algorithms are implemented in the operating system TCP/IP stack, then individual flows can be controlled, but datacenter-level congestion control cannot be achieved and different operating systems implement different algorithms
Solution Approach 1:
The virtual switch serves as a centralized intermediary that implements a unified congestion control algorithm for all flows passing through it, regardless of the operating system of the virtual machines. This eliminates the need for each OS to implement its own congestion control algorithm while still providing adaptive congestion management at the datacenter level.
Solution Approach 2:
The patent merges the congestion control function from the distributed OS level into a centralized virtual switch. By combining multiple flow control operations into a single management point, the system achieves datacenter-level congestion control with a unified algorithm, reducing architectural complexity while maintaining adaptability.
Data Source
AI summary
At an application executing in conjunction with a vSwitch a determination is made that a first flow from a first VM is experiencing congestion. The first flow is selected for throttling. a second flow is also selected for throttling, the second flow using a portion of a network path used by the first flow in a data network. At the application, a total CWND adjustment is distributed between the first flow and the second flow. A first CWND value associated with the first flow is adjusted by a first portion of the total CWND window, and a second CWND value associated with the second flow is adjusted by a second portion of the total CWND window.


