Abstract
Packet classification is defined as the action to match the packet with a set of predefined rules. One of classification is to use Ternary Content Addressable Memory hardware search engine that has faster than other algorithmic methods. However, TCAM has some limitations. One of them is that TCAM can not perform range matching efficiently. A range has to be expanded into prefixes to fit the boundary. In general, the number of expansion could be up to 2w-2, where w is the width of the field. For example, if two range fields with 16 bits are used, there could be up to $30\;{\times}\;30\;=\;900$ expansions for a single rule. In this paper, we describe the novel algorithm for converting range matching rules into TCAM entry efficiently. The number of maximum entry is 2w-4 when using the algorithm. Furthermore, it has also benefit about the negation range. In the result of experimentation, the new scheme practically reduces 14 percent in case that searched fields are source port and destination port number.
패킷 분류란 규정된 규칙과 입력된 패킷의 헤더 필드를 검색하여 매칭 여부를 판단하는 것으로 하드웨어적인 패킷 필터링 시스템은 일반적으로 Ternary Content Addressable Memory를 사용하여 구현된다. 하지만 TCAM은 구조적인 특성으로 인해 범위 규칙을 효율적으로 분류할 수 없기 때문에 기존의 필터링 시스템에서는 주어진 범위를 대표할 수 있는 prefix 형태의 값으로 범위를 변환하고 변환된 값을 TCAM 엔트리에 저장하여 패킷 필터링 을 수행하며, 이 경우 범위 규칙의 필드가 W비트일 때 최대 2W-2 개의 엔트리가 필요하다 범위 규칙이 일반적으로 패킷 헤더 필드 중 소스포트와 목적지포드 필드에 사용되는 것을 고려하면 하나의 규칙이 최대 900개의 엔트리를 점유하게 된다. 본 논문에서는 범위 규칙을 TCAM 엔트리로 변환시 점유 엔트리 수를 줄이기 위해 범위 규칙을 대칭성을 가지는 그레이 코드로 변환한 후 범위를 대표할 수 있는 TCAM 엔트리로 변환하는 알고리즘을 제시하였다. 제안된 알고리즘은 최대 2W-4 개의 TCAM 엔트리로 변환되며, 모든 범위에 대해 기존의 방법 보다 항상 더 적은 수의 TCAM 엔트리를 생성한다 또한 negation 범위에 대해서도 효율적으로 적용 할 수 있다. 시뮬레이션 결과 16 비트의 범위 매칭에 대해 기존의 방법보다 제안된 알고리즘이 평균 7%의 TCAM 엔트리를 감소시킬 수 있으며, 패킷의 소스와 목적지 포트를 동시에 고려하는 경우 평균 14%를 절감할 수 있고, 실제 사용되고 있는 침입탐지 프로그램의 범위 규칙에 적용시킨 결과 10% 정도의 TCAM 엔트리를 절약할 수 있음을 보였다.