Virtual Forwarding Element Per-Flow Congestion Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data center environments, managing data flows between virtual machines across hosts is challenging due to the complexity of overlay networks and the need for efficient routing and congestion management, particularly in cloud computing models where resources are dynamically allocated and scaled.
Innovation Solution
A method and system that utilize a virtual forwarding element and network interface card (NIC) to manage data flows by identifying network identifiers and encapsulating packets with tunnel headers, allowing for per-flow data rate control and congestion management across hosts, leveraging a network controller to configure and map virtual machines to overlay networks and tunnels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If virtual machines share network interface cards to send or receive data flows, then resource utilization is improved, but device complexity increases due to overlay network management
Solution Approach 1:
The patent introduces a virtual forwarding element as an intermediary component that sits between virtual machines and the physical network interface card. This virtual forwarding element simplifies overlay network management by handling packet encapsulation, network identifier mapping, and tunnel header management, thereby reducing the complexity burden on the host system while maintaining efficient resource utilization through shared NIC access.
2Adaptability or versatility
If data flows are managed across multiple hosts in overlay networks, then network scalability is improved, but routing complexity increases
Solution Approach 1:
The patent segments the routing complexity by separating overlay network management into distinct layers: the virtual forwarding element handles local packet encapsulation and network identifier mapping, while the network controller manages global tunnel establishment and routing policies. This segmentation allows the system to scale across multiple hosts without proportionally increasing routing complexity at each node.
Solution Approach 2:
The network controller performs preliminary actions by pre-establishing tunnel mappings and configuring virtual forwarding elements before data flows are initiated. This preliminary configuration reduces real-time routing complexity during data transmission, as the virtual forwarding elements can rely on pre-computed mappings rather than performing complex routing decisions for each packet.
3Reliability
If per-flow data rate control is implemented, then congestion management is improved, but processing overhead increases
Solution Approach 1:
The virtual forwarding element implements self-service mechanisms by maintaining local mappings between network identifiers and tunnels, allowing it to perform per-flow data rate control and congestion management autonomously without requiring continuous intervention from the network controller. This self-service approach reduces processing overhead by eliminating redundant control communications while maintaining reliable congestion management.
Data Source
AI summary
Embodiments relate to managing data flows at a virtual forwarding element. A method for managing data flows at a virtual forwarding element executing in a host that has a network interface card (NIC) is provided. The method receives, from a virtual machine executing in the host, a packet that belongs to a data flow originating from the virtual machine. The method identifies a network identifier for the data flow based on a mapping between a plurality of virtual machines executing in the host and a plurality of network identifiers. The mapping is provided by a network controller that configures the virtual forwarding element. The method encapsulates the packet with the network identifier and a tunnel header that includes network addresses of the host. The method sends the encapsulated packet to the NIC. The NIC transmits the encapsulated packet out of the host and towards a destination of the packet.


