{"title":"Longest Prefix Matching Using Longest-First Search in a Leaf-Pushing Trie","authors":"Jinsol Lee, Hyesook Lim","doi":"10.1109/ICEIC61013.2024.10457170","DOIUrl":null,"url":null,"abstract":"This paper introduces a new algorithm for IP address lookup, a pivotal task for routers to determine the appropriate output link for each incoming packet. With the advent of classless inter-domain routing (CIDR) scheme, the IP address lookup problem encounters the challenge of efficiently finding the longest matching prefix (LMP) at wire-speed. While off-chip ternary content addressable memories (TCAMs) are commonly employed for this purpose, they have drawbacks, particularly in power consumption and large cost. To address this, our research explores algorithmic alternatives, focusing specifically on utilizing a Bloom filter (BF) stored in an on-chip memory and a hash table stored in an off-chip memory. We propose to perform the longest-first search for the Bloom filter storing every prefix in a leaf-pushing trie. Since prefixes are exclusively located at the leaves of a trie following the leaf-pushing procedure, querying the BF from the longest level of the trie is highly effective. The on-chip BF serves the role of avoiding unnecessary off-chip hash table accesses by producing negative results for non-existing nodes. We have constructed the proposed algorithm using C++ code and tested against real-world routing data from backbone routers. Our results demonstrate that, given a Bloom filter of sufficient size, the proposed algorithm requires only one off-chip hash table access on average for each IP address lookup.","PeriodicalId":518726,"journal":{"name":"2024 International Conference on Electronics, Information, and Communication (ICEIC)","volume":"362 6","pages":"1-4"},"PeriodicalIF":0.0000,"publicationDate":"2024-01-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2024 International Conference on Electronics, Information, and Communication (ICEIC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICEIC61013.2024.10457170","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
This paper introduces a new algorithm for IP address lookup, a pivotal task for routers to determine the appropriate output link for each incoming packet. With the advent of classless inter-domain routing (CIDR) scheme, the IP address lookup problem encounters the challenge of efficiently finding the longest matching prefix (LMP) at wire-speed. While off-chip ternary content addressable memories (TCAMs) are commonly employed for this purpose, they have drawbacks, particularly in power consumption and large cost. To address this, our research explores algorithmic alternatives, focusing specifically on utilizing a Bloom filter (BF) stored in an on-chip memory and a hash table stored in an off-chip memory. We propose to perform the longest-first search for the Bloom filter storing every prefix in a leaf-pushing trie. Since prefixes are exclusively located at the leaves of a trie following the leaf-pushing procedure, querying the BF from the longest level of the trie is highly effective. The on-chip BF serves the role of avoiding unnecessary off-chip hash table accesses by producing negative results for non-existing nodes. We have constructed the proposed algorithm using C++ code and tested against real-world routing data from backbone routers. Our results demonstrate that, given a Bloom filter of sufficient size, the proposed algorithm requires only one off-chip hash table access on average for each IP address lookup.
本文介绍了一种新的 IP 地址查找算法,这是路由器为每个传入数据包确定适当输出链路的关键任务。随着无类域间路由(CIDR)方案的出现,IP 地址查找问题面临着以线速高效查找最长匹配前缀(LMP)的挑战。虽然通常采用片外三元内容可寻址存储器(TCAM)来实现这一目的,但它们也存在缺点,尤其是功耗大、成本高。为了解决这个问题,我们的研究探索了算法替代方案,特别侧重于利用存储在片上存储器中的布鲁姆过滤器(BF)和存储在片外存储器中的哈希表。我们建议对存储在推叶三元组中的每个前缀的布鲁姆过滤器执行最长优先搜索。由于前缀只位于推叶三元组的叶子上,因此从三元组的最长层查询 Bloom 过滤器非常有效。片上 BF 的作用是通过对不存在的节点产生负结果来避免不必要的片外哈希表访问。我们使用 C++ 代码构建了所提出的算法,并根据骨干路由器的实际路由数据进行了测试。我们的结果表明,在布鲁姆过滤器足够大的情况下,所提出的算法在每次 IP 地址查询中平均只需要一次片外哈希表访问。