Abstract
Internet routers perform packet forwarding which determines a next hop for each incoming packet using the packet's destination IP address. IP address lookup becomes one of the major challenges because it should be performed in wire-speed for every incoming packet under the circumstance of the advancement in link technologies and the growth of the number of the Internet users. Many binary search algorithms have been proposed for fast IP address lookup. However, tree-based binary search algorithms are usually unbalanced, and they do not provide very good search performance. Even for binary search algorithms providing balanced search, they have drawbacks requiring prefix duplication. In this paper, a new binary search algorithm which provides the balanced binary search and the number of its entries is much less than the number of original prefixes. This is possible because of composing the binary search tree only with disjoint prefixes of the prefix set. Each node has a prefix vector that has the prefix nesting information. The number of memory accesses of the proposed algorithm becomes much less than that of prior binary search algorithms, and hence its performance for IP address lookup is considerably improved.
인터넷 라우터는 라우팅 테이블로부터 입력 패킷의 목적지 주소에 맞는 다음 홉을 찾아 입력 패킷을 내보내는 패킷 포워딩을 수행하여야 한다. 그러나 링크 기술의 발달과 더불어 인터넷 사용자의 급증으로 인하여 입력되는 패킷과 같은 속도로 패킷을 처리하는데 어려움을 겪고 있다. 따라서 보다 빠른 주소 검색을 제공하기 위한 여러 이진 검색 알고리즘들이 제안되었다. 그러나 기존에 나와 있는 대부분의 이진 검색 알고리듬들의 구조는 불균형 구조로서, 메모리 접근 횟수가 많아 빠른 주소 검색이 어렵다는 단점이 있다. 균형 구조를 갖는 경우에는 프리픽스 복사로 인하여 원래 프리픽스 수보다 노드 수가 늘어나는 단점이 있다. 본 논문에서는 균형 구조를 갖는 새로운 이진 검색 알고리즘을 제안한다. 제안된 구조에서는 디스조인트(disjoint)한 프리픽스들 즉, 이진 트라이(binary trio)에서 리프 노드에 위치한 프리픽스들만으로 이진 검색 트리를 구성하고, 각 노드에 프리픽스의 네스팅(nesting) 관계에 대한 정보를 담는 프리픽스 벡터(prefix vector)를 두도록 하였다. 그러므로 실제 프리픽스의 수 보다 훨씬 적은 수의 노드를 갖는 균형 이진 트리를 형성함으로서, 검색 성능을 매우 향상시킨 새로운 구조이다.