Load Balancer Dynamic TCP Keepalive Management
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


