Packet Header Hashing for Uniform Distribution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The CRC32 hash function fails to produce high-quality hashes for short inputs, leading to non-uniform distribution in network environments, which can result in overloading or underloading of network ports, particularly when used for packet distribution across multiple output ports.
Innovation Solution
A physical forwarding element processes packet headers by dividing them into chunks, hashing these chunks in parallel using multiple processing units, and then combining the hashes, with optional finishing operations such as accumulating length, multiplying by a prime number, and performing logical exclusive disjunction to enhance entropy and distribution, thereby improving the quality of the resulting hash.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If CRC32 hash function is used for packet distribution, then computation speed is improved, but hash quality and distribution uniformity deteriorate for short inputs
Solution Approach 1:
The patent divides the packet header into multiple chunks (e.g., first chunk, second chunk, third chunk) and hashes each chunk separately using multiple processing units. This segmentation allows parallel processing while ensuring that even short inputs are processed through multiple hashing stages, improving both speed and distribution uniformity.
Solution Approach 2:
The patent combines multiple hash values (first hash, second hash, third hash) into a final hash value through merging operations. This combining process ensures that the final hash reflects the cumulative effect of multiple hashing operations, improving distribution uniformity while maintaining computational efficiency through parallel processing.
2Device complexity
If single processing unit hashes entire header, then device complexity is reduced, but productivity and resource utilization deteriorate
Solution Approach 1:
The patent segments the packet header into multiple chunks that can be processed simultaneously by different processing units. This segmentation enables parallel processing, increasing productivity while keeping each individual processing unit simple and the overall structure manageable through modular design.
Solution Approach 2:
The patent introduces a temporal dimension to processing by using multiple processing units to work on different chunks simultaneously. This dimensional approach to processing increases throughput without significantly increasing the complexity of individual processing units, as each unit performs simple hashing operations on its assigned chunk.
Data Source
AI summary
Some embodiments provide a physical forwarding element that hashes portions of packet headers using several novel hashing techniques. The techniques include a novel set of finishing operations that improve the quality of resulting hashes by increasing their distribution and improving their apparent-randomness. In addition, the finishing operations virtually guarantee that different length inputs will hash to different results, even when padded to be the same initial values. The techniques also include efficient handling of remainder sections when distributing sections of a hash input across multiple processing units. The remainders are hashed into various previously generated hashes based on how many remainders result. These hashing techniques are useful for many network applications.


