Load Balancer Dynamic TCP Keepalive Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing networks, managing client-server connections is challenging due to timeouts caused by Network Address Translation (NAT)/Port Address Translation (PAT), which can prematurely end connections or allocate the same address and port to another client, leading to errors.

Innovation Solution

A load balancer dynamically manages the keepalive status of TCP connections by setting and removing TCP keepalive status in response to FIN packets from clients and servers, preventing premature timeouts and allowing servers to complete tasks without port reassignment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a timeout is used to monitor connection inactivity in NAT/PAT, then the address/port becomes available for new connections, but the connection may be prematurely ended before the server completes the task

Engineering Contradiction:
Improveconnection turnover rateVSAvoidconnection completion rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent dynamically adjusts the timeout duration based on the specific task being executed. Instead of using a fixed timeout value, the system adapts the timeout period to match the expected task completion time, ensuring that connections remain open long enough for servers to complete their work while still allowing timely release of resources when tasks are finished.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system pre-establishes the timeout duration based on anticipated task requirements before the connection is fully utilized. By determining the expected task completion time in advance and setting the timeout accordingly, the system prevents premature connection termination while ensuring resources are released appropriately after task completion.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If a fixed timeout is used for NAT/PAT connections, then resource management is simplified, but connections may be prematurely timed out or held too long causing errors

Engineering Contradiction:
Improvetimeout management complexityVSAvoidconnection accuracy
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent changes the timeout parameter from a fixed value to a dynamic value that adjusts based on task characteristics. The system modifies the timeout duration according to the specific task being performed, allowing connections to be maintained for the appropriate length of time without requiring complex manual configuration or monitoring.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the same address and port are allocated to another client after timeout, then resource utilization improves, but connection errors occur due to premature termination

Engineering Contradiction:
Improveresource utilizationVSAvoidconnection errors
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system dynamically determines when to release address and port resources based on actual task completion rather than a fixed timeout period. By aligning resource release timing with the actual end of server processing, the system ensures high resource utilization while preventing connection errors that would occur with premature resource release.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11178230B1Dynamically managing keepalive status for client-server connections
Publication Date: 2021.11.16 VMWARE INC
  • US11178230B1 patent drawing
  • US11178230B1 patent drawing
  • US11178230B1 patent drawing

AI summary

Described herein are systems, methods, and software to dynamically set a keepalive status for a client-server connection. In one implementation, a load balancer, providing load balancing operations for a plurality of servers, identifies a first FIN packet from a client to a server of the plurality of servers and sets a Transmission Control Protocol (TCP) keepalive status in association the connection between the client and the load balancer. The proxy further identifies a second FIN packet from the server to the client and removes the TCP keepalive status in association with the connection in response to the second FIN packet.