Flow-Level Packet Parallelization for Terabit Network Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As network traffic volumes increase to terabit scales, real-time analysis applications face challenges in processing large volumes of packets due to the infeasibility of parallelization at the packet level, overwhelming the number of available threads.
Innovation Solution
Organizing terabit-scale packet volumes into flows by using a programmable network interface card to extract flow keys, input them into a hash function, and store packets in memory partitions corresponding to thread identifiers, enabling parallel processing at the flow level.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If packet-level parallelization is used to process high-volume network traffic, then processing speed improves, but the number of threads required becomes overwhelming and infeasible
Solution Approach 1:
The patent segments packets into flows based on flow keys (source IP, destination IP, source port, destination port, protocol). By grouping packets with identical flow keys into the same flow, the system reduces the number of processing units from individual packets to flows, making parallelization feasible at terabit scales
Solution Approach 2:
Multiple packets belonging to the same flow are merged and assigned to a single thread for processing. The hash function maps flow keys to thread identifiers, combining multiple packet-level operations into flow-level operations that share processing resources
2Productivity
If flow-level parallelization is implemented using hash functions to partition packets, then thread collisions are reduced and processing efficiency improves, but the complexity of extracting flow keys and computing hashes increases
Solution Approach 1:
The system performs flow key extraction and hash computation in advance during packet reception at the network interface card, before packets need to be processed by application threads. This preliminary action distributes the complexity across the packet processing pipeline rather than concentrating it at a single point
Solution Approach 2:
The hash function acts as an intermediary that transforms complex flow identification problems into simpler thread assignment problems. By using the flow key as input to the hash function, the system creates a deterministic mapping to thread identifiers that simplifies load distribution
Data Source
AI summary
In one example, the present disclosure describes a device, computer-readable medium, and method for organizing terabit-scale packet volumes into flows for downstream processing stages. For instance, in one example, a method includes extracting a first flow key from a first data packet, inputting the first flow key into a hash function to obtain a first output value, selecting a first partition in a memory to which to store the first data packet, wherein the first partition is selected based on the first output value, and storing the first data packet to the first partition.


