NIC Flowlet NAT for Low-Entropy ECMP Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In backend data center networks, high bandwidth demands and fewer flows lead to low flow entropy, causing congestion on certain equal-cost multipath (ECMP) paths while others remain underutilized, with existing solutions like Dynamic Load Balancing (DLB) and packet spraying being ineffective due to infrastructure and compatibility constraints.

Innovation Solution

Implementing a flowlet-based network address translation (NAT) operation at the network interface controller (NIC) level to decompose traffic flows into flowlets, each appearing as a unique traffic flow, using unique unused source port values to enhance flow entropy without requiring network infrastructure changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hash distribution algorithms are used for load balancing in backend DC networks, then ECMP paths can be distributed, but flow entropy becomes low causing congestion on certain paths while others remain underutilized

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidflow entropy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments a single traffic flow into multiple flowlets by splitting at packet level. Each flowlet is assigned a different source port value, making them appear as distinct flows to the ECMP hash function. This segmentation increases the effective number of flows, improving flow entropy and distributing traffic more evenly across ECMP paths while maintaining the original flow's packets in order.

Inventive Principle:
Principle #1Segmentation

2Reliability

If Dynamic Load Balancing or packet spraying solutions are employed to address flow entropy, then congestion can be mitigated, but infrastructure compatibility constraints reduce their effectiveness

Engineering Contradiction:
Improveflow entropyVSAvoidinfrastructure compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements flowlet-based NAT at the NIC level, allowing the endpoint device itself to generate multiple flowlets with different source port values. This self-service approach eliminates the need for special switch infrastructure or protocol modifications, making the solution compatible with existing networks while effectively increasing flow entropy.

Inventive Principle:
Principle #25Self-service

3Reliability

If source port values are replaced with unique unused values at NIC level, then flow entropy is enhanced and load balancing improves, but additional processing overhead is introduced

Engineering Contradiction:
Improveflow entropyVSAvoidNIC processing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent maintains a pool of pre-configured unused source port values at the NIC. When a flowlet needs to be created, the NIC simply assigns the next available port value from this pre-prepared pool, avoiding complex real-time port allocation decisions. This preliminary preparation minimizes processing overhead while still achieving the goal of generating unique source port values for each flowlet.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250365234A1Flow entropy management using network address translation scheme
Publication Date: 2025.11.27 CISCO TECHNOLOGY INC
  • US20250365234A1 patent drawing
  • US20250365234A1 patent drawing
  • US20250365234A1 patent drawing

AI summary

Devices, systems, methods, and processes for flow entropy management using network address translation (NAT) scheme are described herein. Typically, due to fewer flows and high bandwidth demands in backend data center networks, hash distribution algorithms may exhibit bias, leading to congestion on certain network paths while others remain underutilized, a phenomenon known as low flow entropy. To address the low flow entropy problem, a network interface controller (NIC) decomposes a traffic flow into multiple flowlets and applies a NAT operation on each flowlet. In the NAT operation, an actual source port value of a flowlet is replaced with a unique unused source port value to make the flowlet look like a different traffic flow to a switch. Thus, the switch processes each flowlet as a different traffic flow and uses load balancing schemes to distribute the flowlets across various network paths. Thus, improving the flow entropy of the network.