TCP Sequence Offset for Wire-Speed Packet Header Insertion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Adding headers to packets in internetworking devices requires modifying sequence values in Transport Control Protocol (TCP), which is resource-intensive and impractical for wire-speed internetworking elements that perform few substantive actions, as it necessitates significant processing and state data management.

Innovation Solution

A method that modifies the client sequence value by decrementing it by the added data length value during handshake messages, allowing subsequent packets to maintain conventional TCP communication without further modifications, thus avoiding the need for two-way proxying and state data management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If headers are added to packets in internetworking devices, then service differentiation and content recognition are improved, but processing resources and state data management requirements increase significantly

Engineering Contradiction:
Improveservice differentiation capabilityVSAvoidprocessing resource requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by adjusting the sequence number offset value before headers are added to packets. During the TCP handshake phase, the internetworking device establishes a sequence number offset that anticipates the header insertion. This preliminary adjustment ensures that subsequent packet sequence numbers remain consistent with TCP expectations, eliminating the need for per-packet sequence number modifications and reducing processing complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the sequence number management complexity from the per-packet processing path and consolidates it into the initial handshake phase. By separating the sequence number adjustment operation from the main data packet processing flow, the device can handle header additions without triggering extensive sequence number recalculation for each packet, thereby reducing processing resource requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If sequence values are modified for every message after header addition, then TCP protocol consistency is maintained, but processing speed and throughput decrease

Engineering Contradiction:
ImproveTCP protocol consistencyVSAvoidpacket processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements periodic action by performing sequence number adjustments only at specific intervals - specifically during the TCP handshake messages (SYN, SYN-ACK, ACK) - rather than for every data packet. This periodic adjustment approach maintains TCP protocol consistency at critical connection establishment points while allowing high-speed forwarding of subsequent data packets without repeated sequence number modifications, thereby preserving processing throughput.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The sequence number offset is established preliminarily during the handshake phase, before bulk data transfer begins. This preliminary setup ensures that all subsequent packets inherit the correct sequence number relationship, eliminating the need for continuous per-packet adjustments and maintaining both protocol consistency and high processing speed.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If state data is stored to track flows with added headers, then sequence number management accuracy is improved, but device complexity and memory requirements increase

Engineering Contradiction:
Improvesequence number management accuracyVSAvoidstate data management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts the state tracking requirement from per-flow monitoring and consolidates it into a single global sequence number offset value maintained during handshake. Instead of storing state data for each individual flow to track header additions, the device uses a unified offset mechanism established during connection setup, significantly reducing state data management complexity while maintaining sequence number accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The sequence number offset mechanism serves multiple functions universally across different flows and packet types. A single offset value manages sequence number consistency for all packets within a connection, eliminating the need for flow-specific state tracking and reducing overall device complexity while maintaining precision.

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

Data Source

PatentEP3135016B1Managing sequence values with added headers in computing devices
Publication Date: 2018.03.21 CISCO TECHNOLOGY INC
  • EP3135016B1 patent drawingFigure 1
  • EP3135016B1 patent drawingFigure 2
  • EP3135016B1 patent drawingFigure 3

AI summary

A data processing method comprises receiving, from a client computer, a first handshake message segment comprising a first client sequence value; sending to a server computer a second handshake message segment comprising a second client sequence value equal to the first client sequence value less an added data length value; receiving a third handshake message segment and sending a fourth handshake message segment and determining that connections to the client computer and the server computer have reached established states; receiving a first data segment comprising a first data length value; forming a second data segment that comprises: payload data from the first data segment; added data that is equal in size to the added data length value; and a second data length value equal to a sum of the first data length value and the added data length value; sending the second data segment to the server computer.