TCP Proxy Buffer Management in Gigabit Networks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In TCP/IP data communication, TCP proxies face inefficiencies due to waiting for client applications to 'pull' data from transmit buffers, leading to reduced data communication efficiency and increased memory requirements for managing multiple connections.

Innovation Solution

A TCP proxy server manages data buffers and control memory independently by monitoring buffer usage and 'pushing' data into buffers, eliminating the need for client data requests and optimizing memory allocation by dividing control blocks into flow and connection entries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If TCP proxy waits for client application to pull data from transmit buffers, then memory management is simplified, but data communication efficiency is reduced

Engineering Contradiction:
Improvedata communication efficiencyVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The TCP proxy proactively pushes data from receive buffers to transmit buffers before the client application requests it, eliminating the waiting period and improving data communication efficiency. This preliminary action of pre-loading data into transmit buffers resolves the contradiction by initiating data transfer in advance rather than reacting to client pull requests.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system monitors transmit buffer space availability and dynamically adjusts data pushing behavior based on real-time buffer status feedback. This feedback mechanism allows the TCP proxy to optimize buffer management by pushing data when transmit buffers have space while avoiding overflow conditions, thus improving efficiency without overwhelming complexity.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If TCP proxy supports multiple simultaneous connections, then service capability is improved, but memory requirements increase

Engineering Contradiction:
Improveconnection handling capabilityVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The control block is divided into two independent segments: connection block entry and flow entry. The connection block entry manages connection-level resources while the flow entry handles data flow specifics. This segmentation allows more connections to be managed with reduced memory per connection, as connection block entries can be released when no longer needed while flow entries continue processing active data transfers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically manages memory allocation by releasing connection block entries when connections are closed or paused, while maintaining flow entries for active data transfers. This dynamic memory management allows the TCP proxy to support multiple simultaneous connections with optimized memory consumption, adapting memory usage to actual connection states rather than allocating fixed resources.

Inventive Principle:
Principle #15Dynamics

3Productivity

If fixed window size is used for multiple connections, then configuration is simplified, but data transfer optimization is reduced

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidwindow size management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts data window sizes based on real-time buffer availability and client pull requests rather than using fixed window sizes. This dynamic adaptation allows optimal data transfer efficiency by matching window sizes to actual buffer capacity and demand, resolving the contradiction between simplified configuration and optimized data transfer.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8090866B1TCP proxy connection management in a gigabit environment
Publication Date: 2012.01.03 CISCO TECHNOLOGY INC
  • US8090866B1 patent drawing
  • US8090866B1 patent drawing
  • US8090866B1 patent drawing

AI summary

The present invention describes a method and apparatus to effectively manage data buffers for a client and a server connection in a multiple connection environment. The TCP processes of servers and clients are merged into an independent TCP process in a TCP ‘proxy’ server. The TCP proxy server includes a control unit and a data switching unit (the proxy application). The TCP proxy server terminates the client TCP connection and initiates a separate TCP connection with the server. The data switching unit binds the two individual connections. The TCP proxy server portrays the actual server TCP. The control unit in the TCP proxy server manages data buffers, control memory and supports multiple connections. The control unit ‘pushes’ the data into the buffers by monitoring the use of the buffers. The control unit does not wait for data requests from the data switching unit thus, eliminating the overhead of data request messages.