Parallel Packet Processing with Sequence Metadata for In-Sequence Delivery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-speed data transmission networks often outpace the processing capabilities of parallel processing systems, leading to difficulties in maintaining in-sequence delivery of packets, especially when packets vary in size and processing time, which can result in packet reordering and performance issues.

Innovation Solution

The implementation of a data processing appliance (DPA) that allocates entire packets to individual processing units without segmentation, using metadata such as count values to maintain packet order, and employing a multiplexor to ensure in-sequence delivery by buffering and delaying packets as necessary, thereby preventing reordering across multiple processing cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel processing is used to increase processing speed, then productivity is improved, but packet delivery order cannot be maintained

Engineering Contradiction:
Improveprocessing speedVSAvoidpacket delivery order
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system attaches sequence numbers to packets before parallel processing begins. This preliminary action allows the multiplexor to reconstruct the original packet order after parallel processing completes, resolving the contradiction between improved processing speed and maintained delivery order.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The multiplexor acts as an intermediary between parallel processing units and the output. It receives processed packets from multiple sources, uses sequence numbers to determine correct ordering, and outputs packets in the original sequence, thus maintaining reliability while allowing parallel processing to improve productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If packets are segmented for parallel processing, then processing efficiency is improved, but packet integrity and reassembly complexity increase

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidreassembly complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the packet stream into individual packets that can be independently processed in parallel. Each packet is assigned to a different processing unit, enabling improved processing efficiency while maintaining packet integrity through the use of sequence numbers for proper reassembly.

Inventive Principle:
Principle #1Segmentation

3Speed

If high-speed network transmission is used, then data transmission speed is improved, but processing bottlenecks occur

Engineering Contradiction:
Improvedata transmission speedVSAvoidprocessing throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The incoming high-speed data stream is segmented into discrete packets that can be distributed to multiple parallel processing units. This segmentation allows the system to match the high transmission speed with proportional processing capacity across multiple cores, eliminating processing bottlenecks while maintaining high data transmission speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from single-thread sequential processing to multi-thread parallel processing across multiple CPU cores. This dimensional change from one processing dimension to many enables the system to handle high-speed network transmission without creating processing bottlenecks, as multiple cores can simultaneously process different packets.

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

Data Source

PatentUS8842675B2Systems and methods for multicore processing of data with in-sequence delivery
Publication Date: 2014.09.23 L3 TECHNOLOGIES INC
  • US8842675B2 patent drawing
  • US8842675B2 patent drawing
  • US8842675B2 patent drawing

AI summary

Methods and systems are described to allow for the parallel processing of packets and other subsets of data that are to be delivered in order after the completion of the parallel processing. The methods and systems may process packets and subsets of data that may vary in size by orders of magnitude. The packets may be transmitted and/or received over data transmission networks that may be orders of magnitude faster than the processing speeds of the parallel processors. Entire packets or subsets of data may be allocated to individual processing units without segmenting the packets between the processing units. A count value may be inserted as metadata to received packets in order to indicate a relative order of arrival. The metadata may be utilized by a multiplexor at the output of the parallel processing units in order to maintain in-sequence delivery of the processed packets.