Kernel-ACK IPC Protocol for Guaranteed Delivery Without TCP Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Inter-Process Communication (IPC) methods in multi-processor systems, such as TCP and UDP, can impose unnecessary loads and delays due to high processing overhead and require complex state maintenance, especially in high-performance packet routers/switches where connection establishment and acknowledgment processes are inefficient.

Innovation Solution

The implementation of a Guaranteed Inter-Process Communication (GIPC) protocol using a connectionless transport protocol like UDP, which includes a small GIPC header for acknowledgment generation in the kernel, allowing for efficient delivery without source-side blocking and reducing processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TCP connection-oriented protocol is used for IPC, then guaranteed delivery and in-order delivery are achieved, but processing overhead and connection establishment complexity increase

Engineering Contradiction:
Improveguaranteed deliveryVSAvoidconnection establishment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the essential guarantee mechanism from TCP's complex connection-oriented protocol, implementing only the necessary acknowledgment and retransmission features over UDP. This removes the overhead of connection establishment, state maintenance, and flow control while preserving guaranteed delivery through selective acknowledgment protocols.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The invention uses lightweight, stateless UDP packets instead of heavy TCP connections. Each packet is independent and self-contained, requiring no persistent state or connection management. This disposable packet approach eliminates connection establishment complexity while maintaining delivery guarantees through application-layer acknowledgment mechanisms.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

2Reliability

If TCP flow control and windowing algorithm are implemented, then data transmission reliability is improved, but processing overhead and blocking time increase

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoidblocking time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements partial flow control by using simple acknowledgment packets rather than full TCP windowing algorithms. Instead of maintaining complex send and receive windows with multiple acknowledgment states, the system uses straightforward ACK/NACK packets to indicate delivery status, reducing processing overhead and blocking time while maintaining sufficient reliability.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If UDP connectionless protocol is used for IPC, then processing overhead is reduced and blocking is eliminated, but delivery guarantee and in-order delivery are lost

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddelivery guarantee
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces feedback mechanisms into UDP by implementing acknowledgment packets sent from receiver to transmitter. When a packet is received successfully, the receiver sends an ACK; if lost or erroneous, a NACK is sent. This feedback loop provides delivery confirmation and enables retransmission, ensuring reliability while maintaining UDP's lightweight, connectionless nature and processing efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8190960B1Guaranteed inter-process communication
Publication Date: 2012.05.29 DELL MARKETING CORP
  • US8190960B1 patent drawing
  • US8190960B1 patent drawing
  • US8190960B1 patent drawing

AI summary

A multiprocessor system includes multiple processors executing multiple processes that send messages to each other. The system uses a connectionless single-window inter-process communication (IPC) protocol to avoid the high message-processing overhead of a connection-based protocol like TCP. The IPC protocol uses a central message-receive service that runs in the kernel on each processor to handle error-checking and sequence number checking and acknowledge received messages, while the single-window mechanism avoids out-of-order message reordering/buffering complexity. Since each process sending a message does not need to wait for the receiving process (which may be otherwise preoccupied or not even the focus of the receiving processor when the message is received and queued) before receiving acknowledgments, the protocol greatly reduces single-window message latency for all processes without resorting to complex connection-based multi-packet transmission windows.