Generic Buffering for Non-Posting TCP Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-speed digital communication networks face memory and processing bottlenecks due to increased bandwidth demands, particularly in TCP/IP networks where non-posting TCP applications require significant memory resources and incur latency, leading to diminished system performance and throughput.

Innovation Solution

Implementing a method and system that uses generic buffers external to the host adapter to store incoming data for non-posting TCP applications, allowing data to be transferred and reordered before being posted to available TCP application buffers, reducing the need for large memory allocations on the host adapter.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TCP offload adapter stores all received data locally in TCP segment buffers until application posts buffers, then data can be received and buffered, but memory resources on the host adapter are significantly consumed and latency increases

Engineering Contradiction:
Improvedata reception reliabilityVSAvoidmemory resources on host adapter
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the buffering function from the host adapter by introducing external generic buffers located in host memory. The host adapter only maintains small packet buffers for incoming data, while the majority of buffering capacity is moved to external memory resources. This extraction resolves the contradiction by maintaining reliable data reception through generic buffers while dramatically reducing the memory resources consumed on the host adapter itself.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces generic buffers as an intermediary between the host adapter and the TCP application. These generic buffers act as a mediator that temporarily holds received data before it is transferred to application-specific buffers. This intermediary mechanism allows the system to receive and buffer data reliably without requiring the host adapter to allocate large amounts of local memory, thus resolving the resource consumption issue.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If TCP offload adapter stores all received data locally in TCP segment buffers, then data can be buffered for non-posting applications, but latency increases significantly affecting time critical applications

Engineering Contradiction:
Improvesupport for non-posting TCP applicationsVSAvoiddata buffering latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the buffering system into multiple components: small packet buffers on the host adapter for immediate data reception, and larger generic buffers in external memory for sustained data storage. This segmentation allows time-critical data to be quickly placed in packet buffers and promptly transferred to applications, while non-posting applications can still access data from generic buffers without causing system-wide latency. The segmented approach resolves the contradiction by isolating latency-sensitive operations from latency-tolerant buffering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic buffer management where the system can flexibly allocate and manage buffer resources based on application needs and data arrival patterns. The generic buffers can be dynamically assigned to different TCP connections and applications, allowing the system to adapt to varying latency requirements. This dynamic approach enables support for non-posting applications while minimizing latency for time-critical data by allowing rapid buffer allocation and data transfer when needed.

Inventive Principle:
Principle #15Dynamics

3Productivity

If large memory is integrated inside the host adapter to handle high-speed applications, then bandwidth requirements are met, but cost increases and memory resources are excessively allocated

Engineering Contradiction:
Improvenetworking bandwidth handlingVSAvoidmemory integration cost and resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent transitions from a single-dimension buffering approach (local memory on host adapter) to a multi-dimensional architecture that combines small local packet buffers with large external generic buffers in host memory. This dimensional change allows the system to achieve high bandwidth handling capability without requiring large amounts of expensive on-adapter memory. The external memory dimension provides the necessary capacity while keeping host adapter memory usage minimal, thus resolving the contradiction between productivity and resource cost.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The generic buffers in external memory serve multiple functions: they act as reception buffers for incoming data, as transmission buffers for outgoing data, and as storage for retransmitted segments. This multi-functionality eliminates the need for separate dedicated memory regions for each function, thereby reducing the total memory resources required on the host adapter while still meeting high bandwidth requirements. The universal use of generic buffers resolves the contradiction by maximizing resource utilization efficiency.

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

Data Source

PatentUS7457845B2Method and system for TCP/IP using generic buffers for non-posting TCP applications
Publication Date: 2008.11.25 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US7457845B2 patent drawing
  • US7457845B2 patent drawing
  • US7457845B2 patent drawing

AI summary

Aspects of the invention for posting buffers for a non-posting TCP application may comprise posting at least one generic buffer located in a memory external to a host adapter and transferring incoming data for a TCP connection to the posted generic buffer prior to the non-posting TCP application posting a TCP application buffer for the incoming data. At least one generic buffer may be allocated from a pool of available generic buffers upon receipt of the incoming TCP connection data. At least a portion of the incoming data may be stored in the allocated generic buffer if the TCP application buffer is unable to accommodate the incoming data. The method may further determining whether the incoming data for the TCP connection transferred to the posted generic buffer is in sequence and ordering the incoming data based on a sequence number if the incoming data is out of sequence.