Network Interface Hashing Algorithm for Packet Filtering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network interface devices face challenges in efficiently filtering incoming data packets to identify the correct destination queue, particularly due to the high overhead of context switching and the inefficiency of existing hashing algorithms, which can lead to packet loss and performance degradation as the number of network endpoints increases.
Innovation Solution
A network interface device employs a hash function to generate a hash code for incoming packet header information, directing it to a specific subset of the table for iterative search, with a default queue handling packets if the search limit is exceeded, ensuring timely packet processing and reducing the likelihood of packet loss.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a traditional hashing algorithm is used to filter incoming packets, then the initial packet routing speed is fast, but as the number of network endpoints increases, the algorithm becomes inefficient leading to packet loss and performance degradation
Solution Approach 1:
The patent segments the filtering process into two distinct phases: a fast initial hash-based filtering stage that quickly routes obvious matches, and a more thorough subsequent processing stage for remaining packets. This segmentation allows the system to maintain high throughput for common cases while ensuring reliable processing for all packets regardless of the number of endpoints.
Solution Approach 2:
The patent performs preliminary actions by pre-computing and storing hash values for network endpoints in a lookup table before packet filtering begins. This preliminary preparation enables the filtering algorithm to quickly compare incoming packet hashes against pre-computed values, maintaining efficiency even as the number of endpoints grows large.
2Adaptability or versatility
If the number of network endpoints increases to support more applications, then the system's adaptability improves, but the hashing algorithm's efficiency deteriorates causing packet loss
Solution Approach 1:
The patent transitions from a single-dimension traditional hashing approach to a multi-dimensional filtering approach that combines hash-based filtering with additional filtering criteria and multiple processing stages. This dimensional expansion allows the system to handle a large number of endpoints efficiently by not relying solely on hash collision management.
Solution Approach 2:
The system performs preliminary actions by pre-computing hash values for all network endpoints and organizing them in an optimized lookup structure before filtering begins. This preliminary preparation ensures that even with a large number of endpoints, the actual filtering operation remains efficient as it only needs to perform simple hash comparisons rather than full endpoint evaluations.
3Reliability
If a thorough packet filtering process is implemented to prevent packet loss, then packet delivery reliability improves, but processing time increases leading to performance degradation
Solution Approach 1:
The patent segments the filtering process into a fast initial hash-based stage that handles the majority of packets quickly, and a more thorough subsequent processing stage that handles only the remaining packets requiring additional verification. This segmentation ensures that most packets experience minimal processing time while maintaining high reliability through the secondary verification stage.
Solution Approach 2:
The patent implements a skipping mechanism where packets that match the initial hash filter are rapidly routed through the system without undergoing the complete filtering process. This rushing through of clearly matching packets minimizes processing time for the majority of traffic while the thorough filtering process remains available for packets that require it, thus balancing speed and reliability.
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
Roughly described, a network interface device is assigned a maximum extent-of-search. A hash function is applied to the header information of each incoming packet, to generate a hash code for the packet. The hash code designates a particular subset of the table within which the particular header information should be found, and an iterative search is made within that subset. If the search locates a matching entry before the search limit is exceeded, then the incoming data packet is delivered to the receive queue identified in the matching entry. But if the search reaches the search limit before a matching entry is located, then device delivers the packet to a default queue, such as a kernel queue, in the host computer system. The kernel is then responsible for delivering the packet to the correct endpoint.