Proxy Server TCP Header XFS Embedding for Client IP Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The use of proxy servers in web-based services obscures the actual client IP address, making it difficult to detect and prevent abusive access, as the proxy server's IP address is provided to the web server instead, and existing methods like X-Forwarded-For (XFF) rely on the trustworthiness of proxy servers and are limited to HTTP connections.

Innovation Solution

Embedding an X-Forwarded Source (XFS) value, including the client's source IP address and port, in the TCP ACK message during the TCP three-way handshake to transparently provide the originating IP and port information to the web server, allowing accurate identification through the TCP header.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a proxy server is deployed to balance workload among web servers, then the web server is protected from direct client access and workload is balanced, but the actual client IP address is hidden from the web server making abuse detection difficult

Engineering Contradiction:
Improveworkload balancing and server protectionVSAvoidclient IP address identification
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The proxy server performs preliminary action by capturing the client's source IP address and port information before forwarding the request to the web server. This information is embedded in the TCP header options during the initial connection phase, ensuring the web server receives accurate client identification data before any abusive activity can occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The proxy server acts as an intermediary that bridges the gap between client anonymity and web server needs. It maintains the anonymizing function while simultaneously extracting and forwarding client identification information through TCP header options, allowing the web server to detect and prevent abuse without direct client exposure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If X-Forwarded-For HTTP header is used to identify client IP address, then client identification is possible through HTTP proxy, but it requires trust in the proxy server and is limited to HTTP connections only

Engineering Contradiction:
Improveclient IP address identificationVSAvoidprotocol compatibility and trust requirement
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The solution makes the TCP header option mechanism universal across different protocols and connection types. By embedding client identification information directly in the TCP header options rather than using protocol-specific headers like X-Forwarded-For, the approach works for HTTP, HTTPS, and other TCP-based connections without requiring protocol-specific implementation or trust assumptions.

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

Solution Approach 2:

The client identification information is extracted from the HTTP header layer and placed directly into the TCP header options. This extraction removes the dependency on HTTP-specific mechanisms and trust relationships, providing a more fundamental and protocol-agnostic solution that works at the transport layer rather than the application layer.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP2974202B1Identification of originating IP address and client port connection
Publication Date: 2020.12.02 CISCO TECHNOLOGY INC
  • EP2974202B1 patent drawingFigure 1
  • EP2974202B1 patent drawingFigure 2
  • EP2974202B1 patent drawingFigure 3

AI summary

A method is provided in one example embodiment and includes receiving a message from a client destined for a server; embedding in the received message an X-Forwarded Source ("XFS") value identifying the client; and forwarding the received message comprising the embedded XFS value to the server. In one embodiment, the message is an acknowledge ("ACK") message of a Transmission Control Protocol ("TCP") three-way handshake. The XFS value may include at least one of a source IP address of the client and a source port designator associated with the client. The received message may be sent in response to a Transmission Control Protocol ("TCP") Synchronize-Acknowledge ("SYN-ACK") message received by the client from the server. Additionally, the XFS value may be embedded in a Transmission Control Protocol ("TCP") header of the message.