Abstract
This paper proposes an efficient data structure for forwarding IPv4 and IPv6 packets at the gigabit speed in backbone routers. The LPM(Longest Prefix Matching) search becomes a bottleneck of routers' performance since the LPM complexity grows in proportion to the forwarding table size and the address length. To speed up the forwarding process, this paper introduces a data structure named BMT(Bit-Map Tie) to minimize the frequent main memory accesses. All the necessary search computations in BMT are done over a small index table stored at cache. To build the small index table from the tie representation of the forwarding table, BMT represents a link pointer to the child node and a node pointer to the corresponding entry in the forwarding table with one bit respectively. To improve the poor performance of the conventional tries when their height becomes higher due to the increase of the address length, BMT adopts a binary search algorithm for determining the appropriate level of tries to start. The simulation experiments show that BMT compacts the IPv4 backbone routers' forwarding table into a small one less than 512-kbyte and achieves the average speed of 250ns/packet on Pentium II processors, which is almost the same performance as the fastest conventional lookup algorithms.
본 논문은 IPv4와 IPv6을 지원하는 라우터에서 기가비트의 속도로 포워딩 검색을 수행하는 효율적인 포워딩 테이블 구조를 제안한다. 포워딩 검색은 최장 프리픽스 일치검색, LPM(Longest Prefix Matching)의 복잡도가 포워딩 테이블 및 주소크기에 따라 증가하여 라우터 성능의 병목지점으로 알려져 있다. 포워딩 검색의 고속화를 위해 본 논문에서는 빈번한 메모리 접근을 최소화할 수 있는 BMT(Bit-Map Trie) 자료구조를 소개한다. BMT 포워딩 검색은 필요한 모든 검색연산이 캐쉬에 저장된 소형 인덱스 테이블에서만 발생한다. 포워딩 테이블의 트라이로부터 소형 인덱스 테이블을 구축하기 위해서 BMT는 차일드(child) 노드 포인터와 포워딩 테이블 엔트리에 대한 포인터를 각각 한 비트로 표현하는 비트-맵을 구성한다. 또한 IPv6와 같이 주소길이가 증가하면 트라이의 깊이가 깊어져서 전통적인 트라이 검색속도가 느려지는 문제점을 해결하기 위해서 BMT에서는 검색을 시작할 적절한 트라이의 레벨을 결정하는 이진검색 알고리즘을 사용한다. 실험 결과 BMT는 IPv4 백본 라우팅 테이블을 펜티엄-II 프로세서의 L2 캐쉬 크기인 512KB 보다 작게 압축하였으며, 최대 250ns/패킷의 검색속도를 제공하여 기존의 알려진 가장 빠른 최장 검색 알고리즘의 성능과 같은 속도를 실현하였다.