Double Hash Lookup Mechanism for Network Forwarding Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As data networks expand, the size of forwarding tables in network devices increases, leading to longer lookup times and increased likelihood of hash collisions, which complicates efficient data packet forwarding.
Innovation Solution
A double hash lookup mechanism is employed, where a hash function generates two subsets: a primary hash for initial lookup and a secondary hash to identify an offset within the forwarding database, allowing for efficient retrieval of forwarding information and minimizing collisions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the forwarding table size is increased to accommodate more destination addresses, then the network device can handle more addresses, but the lookup time increases
Solution Approach 1:
The patent divides the forwarding table into multiple segments or partitions, each with its own smaller hash table. Instead of performing a single lookup in one large table, the system performs lookups in multiple smaller segments. This segmentation reduces the search space and lookup time while maintaining the ability to handle a large total number of destination addresses across all segments.
2Reliability
If the hash function output length is increased to minimize hash collisions, then collision likelihood decreases, but lookup time increases
Solution Approach 1:
The patent introduces a secondary dimension to the hash lookup process by using a two-stage approach: first hashing to an initial index, then applying a second hash function to the entry at that index to get the final index. This dimensional transformation allows the system to use shorter initial hash outputs while still achieving low collision rates through the combined effect of both hashing stages.
Data Source
AI summary
A hash function is applied to a set of data to generate a hash. A first subset of the hash is used to lookup an entry in a lookup table for a forwarding database. A second subset of the hash is used to identify, within the entry, data comprising an offset. The offset is applied to a location identified in the forwarding database by the first subset of the hash to determine an entry in the forwarding database. Optionally, the lookup mechanism is used in conjunction with one or more other forwarding databases. A method of updating the forwarding database within the double hash lookup framework is also described.


