TCP Offloading via Software-Hardware Stack Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional TCP stacks face CPU processing time and memory bandwidth bottlenecks, especially as network speeds increase, and hardware implementations require substantial memory and increased code size, affecting performance.

Innovation Solution

A multiple stack system comprising a software stack and a hardware stack that offloads and uploads TCP connections concurrently, allowing the software stack to process a first set of TCP packet streams and the hardware stack to process a second set, with intelligent decision-making based on connection characteristics to optimize resource allocation and reduce memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If TCP processing is done entirely in software, then flexibility and ease of implementation are improved, but CPU processing time and memory bandwidth consumption increase significantly

Engineering Contradiction:
Improveease of implementationVSAvoidCPU processing time
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments TCP processing between software and hardware stacks. The software stack handles control and management functions, while the hardware stack handles data plane processing. This segmentation allows CPU-intensive operations to be offloaded to dedicated hardware, improving CPU productivity while maintaining software flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a network interface card (NIC) with integrated TCP processing capabilities as an intermediary between the software stack and the network. This intermediary handles TCP packet processing in hardware, reducing the burden on the CPU while maintaining software control through a hybrid architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If TCP processing is moved entirely to hardware, then CPU processing time is reduced, but memory usage and code size on the hardware adapter increase substantially

Engineering Contradiction:
ImproveCPU processing timeVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments memory resources between software and hardware stacks. The hardware stack receives only the memory portion required for its specific TCP connections, while the software stack manages the remaining memory resources. This segmentation reduces the memory burden on the hardware adapter while maintaining sufficient capacity for accelerated processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial offloading where only specific TCP connections are accelerated in hardware based on performance requirements. Not all connections are moved to hardware, allowing the system to achieve CPU relief for critical connections while avoiding the excessive memory allocation that would result from complete hardware offloading.

Inventive Principle:
Principle #16Partial or excessive action

3Speed

If all TCP connections are offloaded to hardware, then processing speed is improved, but the hardware adapter requires large memory allocation proportional to TCP window size multiplied by number of connections

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory allocation
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the TCP connection set into multiple groups, with only high-priority or performance-critical connections being offloaded to the hardware stack. This segmentation allows the hardware adapter to allocate memory only for the subset of connections requiring acceleration, rather than allocating memory for all connections, thus improving processing speed for critical traffic while controlling memory allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adjusts the number of connections offloaded to hardware based on available memory resources and performance requirements. By changing the parameter of connection count in hardware, the system optimizes the balance between processing speed and memory allocation, allocating hardware resources only when beneficial.

Inventive Principle:
Principle #35Parameter changes

4Speed

If a monolithic hardware stack is used, then TCP processing is accelerated, but code size increases and performance decreases due to implementing the full TCP stack in hardware

Engineering Contradiction:
Improveprocessing speedVSAvoidcode size
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the TCP stack functionality between software and hardware, implementing only the essential data plane processing functions in hardware while leaving control plane functions in software. This segmentation reduces the code size required in the hardware adapter compared to a complete monolithic hardware implementation, while still achieving acceleration for the critical path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only the necessary TCP processing functions from the full TCP stack and implements them in hardware. Functions that can be efficiently handled in software remain there, while only the time-critical packet processing functions are extracted and implemented in hardware, reducing code size and improving performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8230090B2System and method for TCP offloading and uploading
Publication Date: 2012.07.24 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8230090B2 patent drawing
  • US8230090B2 patent drawing
  • US8230090B2 patent drawing

AI summary

Systems and methods that provide transmission control protocol (TCP) offloading and uploading are provided. In one example, a multiple stack system may include a software stack and a hardware stack. The software stack may be adapted to process a first set of TCP packet streams. The hardware stack may be adapted to process a second set of TCP packet streams and may be coupled to the software stack. The software stack may be adapted to offload one or more TCP connections to the hardware stack. The hardware stack may be adapted to upload one or more TCP connections to the software stack. The software stack and the hardware stack may process one or more TCP connections concurrently.