Reproxying Unproxied TCP Connections via Endpoint Reconstruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing proxy devices face inefficiencies in re-establishing TCP endpoints after unproxying connections, requiring additional handshake phases that are time-consuming and disrupt transparency between clients and servers.

Innovation Solution

A method and apparatus for reproxying unproxied connections by reconstructing TCP endpoints at the proxy device using stored information and packet data, allowing for seamless re-establishment without additional handshake phases, maintaining transparency and enabling the proxy device to inspect and modify packets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If the proxy device dissolves TCP endpoints after unproxying connections to free resources, then resource utilization improves, but the ability to inspect and modify packets is lost

Engineering Contradiction:
Improveresource utilizationVSAvoidpacket inspection capability
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

The proxy device performs preliminary actions by storing connection state information (TCP sequence numbers, acknowledgment numbers, window sizes, and other protocol parameters) in connection block data structures before dissolving the TCP endpoints. This allows the proxy to later reconstruct the endpoints without requiring a full handshake, thereby maintaining packet inspection capabilities while efficiently managing resources.

Inventive Principle:
Principle #10Preliminary action

2Speed

If the proxy device reconstructs TCP endpoints using stored information without handshake phases, then connection re-establishment speed improves, but connection reliability may be compromised

Engineering Contradiction:
Improveconnection re-establishment speedVSAvoidconnection reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The proxy device creates copies of the original TCP endpoint parameters and connection state information in connection block data structures. When reconstructing endpoints, it uses these copied parameters to rapidly re-establish connections without full handshakes. The system verifies reliability by matching packet sequences against the stored connection state, ensuring that the reconstructed connection maintains the same reliability characteristics as the original.

Inventive Principle:
Principle #26Copying

3Reliability

If the proxy device maintains full TCP connections with TCBs for each endpoint, then connection management reliability improves, but resource overhead increases

Engineering Contradiction:
Improveconnection management reliabilityVSAvoidresource overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The proxy device extracts only the essential connection state information (TCP sequence numbers, acknowledgment numbers, window sizes, and other critical parameters) from the full TCB structures and stores them in simplified connection block data structures. This extraction allows the system to maintain connection management reliability with significantly reduced resource overhead, as the connection blocks contain only the minimal necessary information to reconstruct endpoints when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8224966B2Reproxying an unproxied connection
Publication Date: 2012.07.17 CISCO TECHNOLOGY INC
  • US8224966B2 patent drawing
  • US8224966B2 patent drawing
  • US8224966B2 patent drawing

AI summary

A method is disclosed for reproxying connections. According to one aspect, a first connection is established between a client and a proxy device. A second connection is established between the proxy device and a server. The first connection comprises a first endpoint at the client and a second endpoint at the proxy device. The second connection comprises a third endpoint at the proxy device and a fourth endpoint at the server. The first and second connections are unproxied by dissolving the second and third endpoints while maintaining the first and fourth endpoints. After the connections have been unproxied, a packet is received at the proxy device. In response, the first and second connections are reproxied by creating fifth and sixth endpoints at the proxy device, so that the first connection comprises the fifth endpoint and the second connection comprises the sixth endpoint.