Parallel Packet Processing with Sequence Metadata for In-Sequence Delivery
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Productivity
If parallel processing is used to increase processing speed, then productivity is improved, but packet delivery order cannot be maintained
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.
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.
2Productivity
If packets are segmented for parallel processing, then processing efficiency is improved, but packet integrity and reassembly complexity increase
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.
3Speed
If high-speed network transmission is used, then data transmission speed is improved, but processing bottlenecks occur
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.
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.
Data Source
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.


