Perimeter NAT Version Tagging for Load Balancer Flow Affinity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Maintaining data flow affinity across networks is challenging, especially in dynamic environments with version or state changes, as existing methods like connection tracking and hash-based routing face scalability issues and security concerns.

Innovation Solution

A connection tracking device encodes version information into packets, which is then used by a forwarding device to ensure affinity, reducing the need for extensive connection tracking at load balancers and preserving flow affinity through Network Address Translation (NAT) and load balancing operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If connection tracking is performed at load balancers to maintain flow affinity, then flow affinity is maintained, but processing and memory requirements at load balancers increase

Engineering Contradiction:
Improveflow affinityVSAvoidprocessing and memory requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the connection tracking function from the load balancer and relocates it to perimeter NAT devices. The perimeter NAT devices perform connection tracking and encode version identifiers in packets, while load balancers only need to read these identifiers to maintain flow affinity, significantly reducing processing and memory requirements at load balancers

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces version identifiers as an intermediary mechanism that carries connection state information through packets. These identifiers act as mediators that enable load balancers to maintain flow affinity without performing full connection tracking, as the version identifiers encapsulate the necessary state information

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If version information is encoded into each packet, then flow affinity is maintained across version changes, but packet size increases

Engineering Contradiction:
Improveflow affinityVSAvoidpacket size
Core Design Contradiction:
ReliabilityVSVolume of moving object

Solution Approach 1:

The patent applies local quality by encoding version identifiers in specific local fields within existing packet structures (such as destination port fields or custom headers) rather than adding separate version information fields. This approach maintains flow affinity while minimizing packet size increase by utilizing existing packet structure space efficiently

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent makes existing packet fields multi-functional by using them to carry both their original information and version identifiers. For example, destination port fields are used to encode version information in addition to their traditional function, eliminating the need for separate version fields and avoiding packet size increase

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If extensive connection tracking is performed at load balancers, then flow affinity is maintained, but scalability is reduced

Engineering Contradiction:
Improveflow affinityVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the connection tracking function from the load balancing function and distributes it to perimeter NAT devices. This segmentation allows load balancers to focus solely on forwarding decisions based on version identifiers, improving scalability while maintaining flow affinity through the distributed connection tracking architecture

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs connection tracking and version identifier encoding in advance at perimeter NAT devices before packets reach load balancers. This preliminary action ensures that when packets arrive at load balancers, the version information is already encoded, eliminating the need for extensive real-time connection tracking and improving scalability

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11616721B2In-packet version tagging utilizing a perimeter NAT
Publication Date: 2023.03.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11616721B2 patent drawing
  • US11616721B2 patent drawing
  • US11616721B2 patent drawing

AI summary

Various embodiments are directed to receiving, at a receiving device, a packet from a node in a first network. determining a version identifier for the packet, encoding the version identifier into the packet, and transmitting the packet containing the encoded version identifier to a load balancing device in a second network. The version identifier may be encoded into a destination port field of the packet. The receiving device may be a perimeter network address translation device. The packet is received at the load balancing device, where the version identifier is extracted and a hash of source address information is performed. The version and hash are used to select a back-end device in the second network. The packet is transmitted to the selected back-end device.