TCP Connection Control Transfer Between CPU and Offload Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional network protocol processing is CPU-intensive and becomes a bottleneck as it struggles to keep up with increasing network speeds and traffic, despite advancements in CPU speeds.

Innovation Solution

The system subdivides protocol processing tasks, allowing control of a TCP connection to be transferred between multiple processing mechanisms, including a processor running a protocol stack, software drivers, and network interface cards, to efficiently handle tasks such as data reassembly and data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU-intensive protocol processing is used to handle increasing network speeds and traffic, then network communication reliability is maintained, but CPU processing capacity becomes insufficient and creates a bottleneck

Engineering Contradiction:
Improvenetwork processing capacityVSAvoidprotocol processing reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments TCP connection management into two distinct parts: connection establishment/teardown phases handled by the CPU protocol stack, and steady-state data transfer phase handled by the offload engine. This segmentation allows each component to specialize in specific tasks, enabling the offload engine to handle high-volume data transfers efficiently while the CPU focuses on complex connection management, thereby resolving the contradiction between processing capacity and reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The offload engine acts as an intermediary between the network interface and the CPU protocol stack. It receives TCP connection setup notifications from the stack, manages the connection state independently during data transfer, and communicates only essential events back to the stack. This intermediary role relieves CPU burden while maintaining protocol compliance through the offload engine's specialized hardware implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If control of TCP connections is transferred to protocol processing hardware for repetitive data packet processing, then CPU load is reduced, but complexity of transferring control between CPU and hardware increases

Engineering Contradiction:
ImproveCPU efficiencyVSAvoidcontrol transfer complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the steady-state TCP data transfer functionality from the CPU protocol stack and places it in a separate offload engine. This extraction isolates the complex control transfer logic to specific transition points (connection setup, teardown, and error conditions) rather than requiring continuous CPU involvement. The offload engine maintains its own TCP state machine, reducing the complexity of control transfers to simple state notifications.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The offload engine performs preliminary actions by pre-establishing connection state tracking and buffer management capabilities in hardware before data transfer begins. The CPU protocol stack performs preliminary connection establishment and configuration before handing off to the offload engine. These preliminary actions prepare the system for efficient control transfers by ensuring both CPU and hardware have the necessary context already established.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple protocol layers are processed in multiple CPU cycles for each network packet, then comprehensive protocol compliance is achieved, but processing speed cannot keep up with network traffic increases

Engineering Contradiction:
Improveprotocol complianceVSAvoidpacket processing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements dynamic processing where the involvement of the CPU protocol stack varies based on the connection phase. During connection establishment and teardown, the CPU stack actively processes packets with full protocol compliance. During steady-state data transfer, the offload engine handles packets independently with optimized hardware processing. This dynamic approach maintains protocol compliance when needed while maximizing speed during routine operations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The offload engine provides self-service by independently managing TCP connection state, packet buffering, and data transfer operations without requiring CPU intervention for each packet. It maintains its own protocol compliance through hardware-based TCP state machine implementation, freeing the CPU to focus on higher-layer protocols and complex edge cases, thereby achieving both speed and compliance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8248939B1Transferring control of TCP connections between hierarchy of processing mechanisms
Publication Date: 2012.08.21 ALACRITECH INC
  • US8248939B1 patent drawing
  • US8248939B1 patent drawing
  • US8248939B1 patent drawing

AI summary

In one embodiment, a system for communicating over a network is disclosed, the system comprising: a processor running a protocol processing stack to control a TCP connection; a first offload engine that receives control of the TCP connection from the stack to perform a first task corresponding to the TCP connection; and a second offload engine that receives control of the TCP connection from the first offload engine to perform a second task corresponding to the TCP connection. For example, the first offload engine can be protocol software such as an intermediate driver that can handle tasks such as teaming and/or reassembly of out-of-order data segments. As another example, the second offload engine can be a network interface card that provides hardware that accelerates data transfer.