论文部分内容阅读
Internet骨干链路速度的不断提高,要求Internet核心路由器必须以OC-768(40Gbps)甚至更高的链路速度处理IP最长前缀匹配(LongestPrefixMatch,LPM),这一问题已成为Internet核心路由器的主要性能瓶颈之一。IPv6地址的出现要求最长前缀匹配的查找长度从IPv4的32比特增加到128比特,更大的前缀宽度给LPM带来了巨大的挑战。而路由器的转发速率通常受限于路由选择的速度,因此,路由查找和更新的方法是路由器进行包转发的基础和提高其性能的关键性技术,在路由器设计中至关重要。
传统的LPM机制并不能很好地满足IPv6的查找要求,基于TCAM的算法能耗高,花费大;基于Trie的算法占用内存多,延时大。基于hash的算法由于其低能耗,高效的存储以及O(1)的时间复杂度,是IPv6下LPM的一个很好的选择。
本文在详细分析多种现有LPM算法的基础上,对基于hash的LPM查找机制Chisel进行改进。Chisel利用了BloomierFilter这一数据结构,实现无冲突的hash机制;并通过前缀缩减,把比特向量引进hash机制,大大节省了存储空间。然而,Chisel的高速路由查找,是以复杂的路由更新为代价的,最坏情况下,一个前缀的更新,将影响到2l个前缀项。本文在Chisel的基础上,通过对IPv6地址分布现状和分配政策的研究,充分利用Amdahl定律,提出了1-Chisel机制,以每个前缀增加一个比特的很小的存储代价,使更新复杂度有了极大的提高。同时,为了达到O(1)的更新复杂度,把基于Trie算法的比特位图加以修改并引进到hash机制中,提出了L-Chisel机制。1-Chisel和L-Chisel在空间复杂度和更新复杂度上各有千秋,可以根据需要选择。
本文对Chisel系列的三种机制进行详细的性能比较,对片上内存的空间复杂度进行了分析,为提高适用性,提出了进一步压缩片上内存的方法,使得N个前缀项只需要6Nbits的片上存储。