KR100745693B1 - Tcam 테이블 관리 방법 - Google Patents

Tcam 테이블 관리 방법 Download PDF

Info

Publication number
KR100745693B1
KR100745693B1 KR1020060095814A KR20060095814A KR100745693B1 KR 100745693 B1 KR100745693 B1 KR 100745693B1 KR 1020060095814 A KR1020060095814 A KR 1020060095814A KR 20060095814 A KR20060095814 A KR 20060095814A KR 100745693 B1 KR100745693 B1 KR 100745693B1
Authority
KR
South Korea
Prior art keywords
ancestor
prefix
tcam
routing
priority
Prior art date
Application number
KR1020060095814A
Other languages
English (en)
Inventor
홍승우
예병호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020060095814A priority Critical patent/KR100745693B1/ko
Application granted granted Critical
Publication of KR100745693B1 publication Critical patent/KR100745693B1/ko
Priority to US11/860,622 priority patent/US7774538B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 TCAM(Ternary Contents Address Memory) 테이블 관리 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 라우팅 엔트리가 저장될 수 있는 TCAM의 메모리 영역을 우선순위(Priority)에 따라 분할하고, 입력되는 각 라우팅 엔트리를 프리픽스(Prefix) 길이별로 체인-조상-트리(chain-ancestor-tree)로 구성하고 트리의 깊이(depth)별로 우선순위를 할당하여 해당되는 우선순위의 TCAM 메모리 영역에 저장하는, TCAM 테이블 관리 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, TCAM 테이블 관리 방법에 있어서, 룩업 테이블을 구성하기 위하여 TCAM의 메모리 영역을 우선순위에 따라 일정한 영역의 블록들로 구분하는 구분 단계; 상기 룩업 테이블로 입력되는 모든 라우팅 엔트리 각각에 프리픽스의 길이에 따라 우선순위를 할당하는 우선순위 할당 단계; 상기 우선순위를 할당한 라우팅 엔트리를 해당되는 우선순위의 룩업 테이블 블록에 저장하는 단계; 및 상기 룩업 테이블의 변경 발생에 따라, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 정렬 상태가 유지되도록 상기 룩업 테이블을 변경하는 룩업 테이블 변경 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 라우팅 시스템 등에 이용됨.
라우팅 시스템, TCAM, 룩업 테이블, 프리픽스 길이, 체인-조상-트리, 우선순위 할당, 라우팅 갱신, 롱기스트 프리픽스 매치, 정렬 상태 유지

Description

TCAM 테이블 관리 방법{Method for Ternary Contents Address Memory Table management}
도 1은 롱기스트 프리픽스 매치(Longest Prefix Match)에 대한 설명을 위한 일예시도,
도 2는 TCAM에서 롱기스트 프리픽스 매치(Longest Prefix Match)가 이루어지는 과정을 설명하기 위한 일예시도,
도 3은 종래의 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 TCAM 테이블의 구조도,
도 4는 본 발명이 적용되는 우선순위 TCAM의 동작을 설명하기 위한 일예시도,
도 5는 본 발명에서 정의한 프리픽스-조상-관계에 대한 일실시예 설명도,
도 6은 본 발명에 따른 체인-조상-트리 및 우선순위 할당 방식에 대한 설명도,
도 7은 본 발명에 따른 라우팅 엔트리 추가 과정에 대한 일실시예 흐름도,
도 8은 본 발명에 따른 라우팅 엔트리 추가 방식에 대한 일실시예 설명도,
도 9는 본 발명에 따른 라우팅 엔트리 삭제 과정에 대한 일실시예 흐름도이 다.
본 발명은 하드웨어 기반의 고속 룩업을 위하여 TCAM(Ternary Contents Address Memory, 이하 "TCAM"이라 함)을 사용하는 라우팅 시스템에서 IP(Interface Protocol) 패킷을 고속으로 룩업(lookup)하기 위한, TCAM 테이블 관리 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는 라우팅 엔트리(Routing Entry)들을 TCAM 룩업 테이블 내에 효과적으로 분류·저장하여 TCAM의 메모리 유용성을 최대화하고, 새롭게 입력되는 라우팅 엔트리에 대하여 보다 빠르고 효과적으로 룩업 테이블을 갱신할 수 있는, TCAM 테이블 관리 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로 라우터에서는 IP 패킷(Packet)을 포워딩(Forwarding)하기 위하여 입력되는 패킷의 목적지 주소(Destination Address)를 추출하고, 추출된 목적지 주소를 키(Key)로 하여 포워딩 테이블(Forwarding Table)을 룩업(Lookup)하여 패킷이 포워딩되어야 할 다음 홉(Next Hop)을 결정한다. 이러한 라우팅 룩업은 패킷이 지나쳐가는 모른 라우터 홉에서 수행되어, 패킷이 최종적으로 출발지 노드에서부터 목적지 노드로 도달되게 되는 것이다.
IP 패킷의 목적지 주소는 네트워크 주소(Network Address)와 호스트 주소(Host Address)로 구성되는데, 인터넷이 기하급수적으로 증가하자 IP의 주소 공간을 보다 효율적이고 유연하게 사용하기 위하여 1993년 CIDR(Classless Inter-Domain Routing) 방식이 채택되었다. CIDR 방식에서는 IP의 네트워크 주소와 호스트 주소가 아닌 단순히 프리픽스(Prefix)/마스크(Mask)로 표현되는데, 예를 들어 32비트(bits)를 사용하는 IPv4에 있어서 129.254.191.0/24는 마스크 상위 24 비트에 해당되는 129.254.191.xxx가 네트워크 프리픽스 주소로 사용되며, 나머지 하위 8 비트는 사용되지 않는다. CIDR 방식의 주소 체계로 인해 라우터에서는 수많은 라우팅 프리픽스 주소들이 라우팅 테이블에 저장되고, IP 룩업에 있어서 목적지 주소와 가장 길게 일치(롱기스트 프리픽스 매치(Longest Prefix Match))되는 프리픽스 주소가 그 결과 값이 되도록 해야 한다. 이에 대한 이해를 돕기 위하여, 도 1을 참조하여 롱기스트 프리픽스 매치(Longest Prefix Match)에 대한 예를 살펴보면 다음과 같다.
도 1은 롱기스트 프리픽스 매치(Longest Prefix Match)에 대한 설명을 위한 일예시도이다.
도 1에 도시된 바와 같이, 라우팅 테이블에 11.1.2.0/24(110), 11.1.0.0/16(115), 11.1.0.0/8(120)의 3개의 라우팅 프리픽스 주소들이 저장되어 있고, 또한 IP 룩업을 위한 키 값인 목적지 주소 11.1.2.5(105)가 저장되어 있다. 그리고 도 1(오른편)에는 목적지 주소(105)와 각 라우팅 프리픽스 주소들(110, 115, 120)에 대한 이진(Binary) 표현이 나타나 있다. 라우팅 프리픽스 주소 "110" 은 프리픽스의 길이가 24 비트이고, 라우팅 프리픽스 주소 "115"는 프리픽스의 길이가 16 비트이며, 라우팅 프리픽스 주소 "120"은 프리픽스의 길이가 8 비트이다. 목적지 주소 11.1.2.5(105)에 대하여 라우팅 프리픽스 주소 "110"은 상위 24 비트만 비교하기 때문에 일치한다. 그리고 라우팅 프리픽스 주소 "115"는 상위 16 비트만 비교하기 때문에 목적지 주소(105)와 일치하며, 또한 라우팅 프리픽스 주소 "120"은 상위 8 비트만 비교하기 때문에 목적지 주소(105)와 일치한다. 3개의 라우팅 프리픽스 주소(110, 115, 120)들이 모두 목적지 주소(105)에 대한 결과 값이 될 수 있지만, 최종 결과 값은 24 비트의 길이로 가장 길게 일치되고 있는 라우팅 프리픽스 주소 "110"이 그 결과 값이 되어야 한다.
인터넷의 규모가 커지면서 라우터에서 저장해야 할 룩업 테이블의 크기도 커지고, 거대한 룩업 테이블에서 롱기스트 프리픽스 매치(Longest Prefix Match)를 위해서는 고속의 연산과 효율적인 라우팅 테이블 관리 방법이 필요하다. 전통적으로 라우터의 개발을 위해서 사용되고 있는 IP 룩업 기술은 해싱(Hashing)이나 트리(Tree)를 이용한 소프트웨어 기반의 방법이 많이 사용되었다. 소프트웨어 기반의 IP 룩업 기술은 구현이 쉽고 유연하여 수정이 쉽다는 장점이 있지만, 하나의 목적지 패킷을 룩업하기 위하여 여러 차례에 걸쳐 메모리를 룩업해야 하기 때문에 고속의 패킷 처리를 위해서는 속도가 느리다는 단점이 있다.
따라서 최근에는 소프트웨어 기반의 IP 룩업 기술을 대신하여 고속의 IP 룩업을 위하여 내용 주소 메모리(Content Addressable Memory, 이하 "CAM"이라 함)를 이용하는 하드웨어를 기반의 IP 룩업 기술이 많이 사용되고 있다. CAM은 메모리 장 치로서, 라우팅 테이블에서 해당 매치 엔트리(Entry)를 찾아내는 검색 동작을 하나의 클럭(Clock) 주기에 실행한다. 즉, CAM에 입력되는 검색 키를 CAM 내의 모든 엔트리들을 동시 병렬적으로 비교하여 그 결과 엔트리가 저장되어 있는 위치 또는 데이터를 출력한다.
또한, 터너리(Ternary) CAM은 라우팅 테이블에 저장되는 라우팅 프리픽스 주소의 마스크를 표현할 수 있도록 하는 기능을 제공하는데, 이때 터너리의 의미는 TCAM에 입력되는 정보의 값이 이진(Binary)의 값 "0"상태, "1"상태 이외에 "돈 캐어(don't care)"상태를 표시할 수 있다는 것이다. 예를 들어, IPv4 라우팅 프리픽스 129.254.191.0/24는 TCAM에 상위 24 비트는 '1' 또는 '0'으로 표현하며, 나머지 하위 8 비트(bits)는 사용되지 않으므로 돈 캐어(don't care)로 표현할 수 있다.
이러한 TCAM을 이용하면 고속의 IP 룩업을 할 수 있다는 장점이 있지만, TCAM의 특성이 매치 결과가 여러 개일 경우 항상 가장 상위 주소에 저장된 결과가 최종 결과가 되기 때문에, 롱기스트 프리픽스 매치(Longest Prefix Match)가 이루어지기 위해서는 긴 프리픽스 길이를 가진 라우팅 엔트리가 상대적으로 짧은 프리픽스 길이를 가진 라우팅 엔트리보다 항상 상위의 주소에 저장될 수 있도록 정렬 상태를 유지해 주어야 하는 어려움이 있다. 이에 대한 이해를 돕기 위하여, 도 2를 참조하여 롱기스트 프리픽스 매치(Longest Prefix Match)를 위하여 TCAM 테이블의 정렬 상태에 따라 그 결과가 어떻게 달라지는지를 살펴보면 다음과 같다.
도 2는 TCAM에서 롱기스트 프리픽스 매치(Longest Prefix Match)가 이루어지는 과정을 설명하기 위한 일예시도이다.
도 2에 도시된 바와 같이, 정렬되지 않은 TCAM 테이블(230)에는 프리픽스의 길이가 16인 라우팅 엔트리 129.254.xxx.xxx/16(205)가 TCAM의 가상 상위인 주소 0에 위치하고, TCAM의 메모리 주소 1, 2, 3에는 라우팅 엔트리 129.254.12.xxx/24(210), 129.254.14.1xx/30(215), 129.254.11.xxx/24(220)가 프리픽스 길이에 따른 순서 없이 저장되어 있다. 이 경우에 목적지 주소 129.254.11.123(200)의 입력에 대해 TCAM 룩업을 수행하게 되면, 룩업 일치가 되는 라우팅 엔트리는 TCAM 주소 0인 "205"와 TCAM 주소 3인 "220"이 되는데, TCAM의 특성상 TCAM의 상위 주소에 존재하는 결과 값을 선택하기 때문에 최종 룩업 결과는 주소 0에 위치하는 "205"가 된다. 하지만, 이 결과는 실제로 "220"의 프리픽스 길이 24가 "205"의 프리픽스 길이 16보다 길어 최종 결과가 "220"이 되어야 하는 롱기스트 프리픽스 매치(Longest Prefix Match)에 어긋나는 결과이다.
이에 반하여, 프리픽스 길이가 긴 순서대로 정렬된 테이블(235)에서는 룩업 결과가 여러 개라 하더라도 항상 프리픽스 길이가 긴 라우팅 엔트리가 TCAM 상위의 위치에 저장되어 있기 때문에 항상 롱기스트 프리픽스 매치(Longest Prefix Match)를 만족한다. 따라서 TCAM을 이용하여 고속의 룩업 기술을 구현하기 위해서는 TCAM에 저장된 라우팅 엔트리들이 항상 프리픽스 길이가 긴 순서대로 정렬 상태를 유지하는 TCAM 룩업 테이블 관리 방법이 아주 중요하다고 할 수 있다.
다음으로, 도 3을 참조하여 룩업 테이블의 정렬 상태를 유지하기 위한 전통적인 종래의 TCAM 테이블 관리 방법을 살펴보면 다음과 같다.
도 3은 종래의 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 TCAM 테이블의 구조도로서, 32 비트 크기의 IPv4의 경우를 예로 든 것이다.
도 3에 도시된 바와 같이, 종래에는 롱기스트 프리픽스 매치(Longest Prefix Match)를 위해 단순히 라우팅 엔트리의 프리픽스 길이에 따라 길이가 긴 것이 상위에, 상대적으로 짧은 것이 하위에 오도록 구성하며, 아직 할당이 되지 않은 TCAM의 빈 메모리 공간은 최하단에 위치한다.
이 경우에 새로운 라우팅 엔트리가 추가될 경우 다음과 같은 시나리오로 TCAM의 테이블이 변경된다. 새로이 추가되는 라우팅 엔트리의 프리픽스 길이가 30 비트인 경우, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위해서는 TCAM의 메모리 위치가 31 비트의 라우팅 엔트리들보다는 하위에 있어야 하고 29 비트의 라우팅 엔트리들보다는 상위에 존재해야 한다. 따라서 도 3의 "300", "305", "310"보다는 하위의 위치인 메모리 주소 3(315)의 위치가 적합한 위치이다. 하지만, 메모리 주소 3의 위치에는 현재 29 비트 프리픽스 라우팅 엔트리 "315"가 저장되어 있기 때문에 "315"를 먼저 옮겨야 한다. 29 비트 프리픽스 길이를 가진 "315"는 메모리 주소 4로 옮겨질 수 있지만 현재 메모리 주소 4도 라우팅 엔트리 "320"에 의해 할당되어 있으므로 "320" 라우팅 엔트리 또한 옮겨야 한다. 이러한 식으로 계속 메모리 주소 4에서 주소 N-1까지의 라우팅 엔트리를 하나씩 하위로 모두 옮긴 후에 비어지는 메모리 주소 3에 새로운 라우팅 엔트리를 저장할 수 있다. 즉, 현재 TCAM에 저장되어 있는 라우팅 엔트리의 개수가 백만 개일 경우, 최악의 경우 백만 개의 라우팅 엔트리를 모두 하나씩 하위로 옮기고 나서야 새로운 엔트리를 입력할 수 있다.
상기와 같이, 종래의 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 TCAM 라우팅 테이블 정렬 방법은 많은 기존의 라우팅 엔트리를 옮겨야 하기 때문에 비효율적이며, 고속의 라우터인 경우 TCAM 테이블 갱신에 많은 시간이 걸리면 실제 패킷 포워딩을 위한 룩업 자체에 많은 영향을 주기 때문에 이를 해결할 방법이 필요하다. 이러한 라우팅 테이블 관리의 성능을 보완하기 위한 여러 가지 방법이 나와 있지만, 그 효율성이 그다지 좋지 않거나, TCAM의 메모리 낭비가 심한 방법들인 경우가 많은 실정이다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, TCAM 테이블을 유지/관리하는데 있어서, 롱기스트 프리픽스 매치(Longest Prefix Match)가 운영될 수 있도록 효율적으로 라우팅 엔트리를 정렬하고, TCAM을 메모리 낭비 없이 최적화하여 사용할 수 있는, TCAM 테이블 관리 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
즉, 본 발명은 라우팅 엔트리가 저장될 수 있는 TCAM의 메모리 영역을 우선순위(Priority)에 따라 분할하고, 입력되는 각 라우팅 엔트리를 프리픽스(Prefix) 길이별로 체인-조상-트리(chain-ancestor-tree)로 구성하고 트리의 깊이(depth)별로 우선순위를 할당하여 해당되는 우선순위의 TCAM 메모리 영역에 저장하는, TCAM 테이블 관리 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 방법은, TCAM(Ternary Contents Address Memory) 테이블 관리 방법에 있어서, 룩업 테이블을 구성하기 위하여 TCAM의 메모리 영역을 우선순위에 따라 일정한 영역의 블록들로 구분하는 구분 단계; 상기 룩업 테이블로 입력되는 모든 라우팅 엔트리 각각에 프리픽스의 길이에 따라 우선순위를 할당하는 우선순위 할당 단계; 상기 우선순위를 할당한 라우팅 엔트리를 해당되는 우선순위의 룩업 테이블 블록에 저장하는 단계; 및 상기 룩업 테이블의 변경 발생에 따라, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 정렬 상태가 유지되도록 상기 룩업 테이블을 변경하는 룩업 테이블 변경 단계를 포함한다.
한편, 본 발명은, 프로세서를 구비한 라우팅 시스템에, 룩업 테이블을 구성하기 위하여 TCAM의 메모리 영역을 우선순위에 따라 일정한 영역의 블록들로 구분하는 기능; 상기 룩업 테이블로 입력되는 모든 라우팅 엔트리 각각에 프리픽스의 길이에 따라 우선순위를 할당하는 기능; 상기 우선순위를 할당한 라우팅 엔트리를 해당되는 우선순위의 룩업 테이블 블록에 저장하는 기능; 및 상기 룩업 테이블의 변경 발생에 따라, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 정렬 상태가 유지되도록 상기 룩업 테이블을 변경하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이처럼, 본 발명은 라우팅 엔트리가 저장될 수 있는 TCAM의 메모리 영역을 우선순위(Priority)에 따라 분할하고, 입력되는 각 라우팅 엔트리를 프리픽스(Prefix) 길이별로 체인-조상-트리(chain-ancestor-tree)로 구성하고 트리의 깊이(depth)별로 우선순위를 할당하여 해당되는 우선순위의 TCAM 메모리 영역에 저장한다. 또한, 본 발명에서는 체인-조상-트리를 효과적으로 병합, 분할하여 기존의 저장되어 있는 라우팅 엔트리들의 이동을 최소화하여 라우팅의 갱신이 빠르게 이루어질 수 있도록 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 4는 본 발명이 적용되는 우선순위 TCAM의 동작을 설명하기 위한 일예시도이다.
본 발명에서는 TCAM의 메모리 영역을 우선순위에 따라 분할하여 사용하기 위 하여 우선순위 TCAM을 사용한다. 우선순위 TCAM은 도 4에 도시되어 있는 바와 같이, 기존의 TCAM과는 달리 TCAM의 메모리 영역이 일정한 크기의 블록(Block)으로 구분되어 있으며, 각 블록에 우선순위를 할당할 수 있다.
이해를 돕기 위하여 예를 든 도 4에는 TCAM의 메모리 영역이 3개의 엔트리로 구성되는 블록-0(425), 블록-1(430), 블록-2(430)로 구성되어 있고, 블록-0에는 우선순위-1, 블록-1에는 우선순위-3, 블록-2에는 우선순위-2가 할당되어 있다. 또한, 블록-0에는 프리픽스 길이가 16인 라우팅 엔트리 "405"가 저장되어 있고, 블록-1에는 프리픽스 길이가 30인 라우팅 엔트리 "410"이 저장되어 있으며, 블록-2에는 프리픽스 길이가 24인 라우팅 엔트리 "415", "420"이 저장되어 있다.
이때, 입력되는 패킷(400)에 대하여 룩업 일치가 되는 라우팅 엔트리는 "405", "415"이다. 이 경우 일반적인 TCAM에서는 상위의 주소에 입력되어 있는 "405"가 선택되어 결과 주소 0을 출력하겠지만, 우선순위를 지원하는 TCAM에서는 우선순위 인코더(440)에 의해 룩업 일치가 된 라우팅 엔트리들(405,415)의 우선순위를 비교하여 우선순위가 높은 라우팅 엔트리를 그 결과로 한다. 도 4의 예에서는 "405"가 우선순위 1이고 "415"가 우선순위 2이므로 우선순위가 높은 "415"가 선택되고 결과 주소 6을 출력한다.
본 발명에서는 이러한 우선순위 TCAM의 특성을 활용하여 롱기스트 프리픽스 매치(Longest Prefix Match)가 운용될 수 있도록 라우팅 엔트리들을 관리한다. 즉, 모든 라우팅 엔트리들에 대한 체인-조상-트리를 구성함으로써 각 라우팅 엔트리가 가져야 할 우선순위를 결정하고 그 우선순위에 따라 할당된 우선순위 블록에 저장 되도록 하는 것이다.
여기서, 체인-조상-트리를 구성하는 이유는 다음과 같다.
일반적으로 라우팅 엔트리에 우선순위를 할당하는 가장 쉬운 방법은 단순히 "프리픽스-길이-순위(Prefix Length Order)" 방식으로 우선순위를 할당하는 것이다. 이 경우의 문제는 라우팅 엔트리 저장의 단편화(Fragmentation) 현상으로 심각한 TCAM의 메모리 낭비를 가져 올 수 있다는 것이다. 예를 들어, "프리픽스-길이-순위" 방식으로 라우팅 엔트리에 대해 할당한다면, 프리픽스 길이와 우선순위의 대응관계를 [프리픽스길이:우선순위]로 할당하면 된다. 즉, [32:32], [31:31], [30:30]..... [2:2], [1:1]이 될 수 있는 것이다. 하지만, 이 경우 라우팅 엔트리가 100개 있다고 가정하고, 31개의 라우팅 엔트리들이 각각 다른 프리픽스 길이를 가지며 나머지 69개의 라우팅 엔트리들이 남은 하나의 동일한 라우팅 프리픽스 길이를 가진다고 가정하면, 31개의 블록이 단 한 개씩의 라우팅 엔트리만을 저장하게 된다. 일반적으로 우선순위 TCAM에서 하나의 블록에서 1024개의 라우팅 엔트리를 저장할 수 있기 때문에 (31*1024)-31개의 TCAM의 메모리 영역이 낭비되는 것이다. IPv6의 경우는 프리픽스의 길이가 최대 128 비트가 될 수 있으므로, 낭비될 수 있는 TCAM의 메모리 영역은 더욱 커질 수 있다.
따라서 본 발명에서는 라우팅 프리픽스의 다음과 같은 특징을 이용하여 체인-조상-트리를 구성하여 하나의 우선순위 TCAM이 각기 다른 프리픽스 길이를 가진 라우팅 엔트리들을 함께 저장할 수 있는 방법을 제시한다. 체인-조상-트리를 구성하기에 앞서 라우팅 프리픽스의 길이에 따른 프리픽스-조상-관계를 도 5를 참조하 여 살펴보면 다음과 같다.
도 5는 본 발명에서 정의한 프리픽스-조상-관계에 대한 일실시예 설명도이다.
도 5에 도시된 같이, "500", "505", "510", "515", 및 "520"의 라우팅 엔트리는 프리픽스의 길이에 따라 트리로 표현되어 질 수 있다. 즉, "505"는 "500"에 대하여 "500"의 프리픽스 길이 8까지 동일하며 "505"의 프리픽스 길이가 16으로 "500"보다도 길기 때문에 "500"은 "505"의 부모 노드이자 조상이고 "505"는 "500"의 자식 노드이자 후손이다. 이와 동일하게 "510" 또한 프리픽스 길이가 24이고 프리픽스 길이 16만큼이 "505"의 "129.254"와 동일하기 때문에 "510"은 "505"의 자식 노드이다. 이와 같은 관계는 "520"까지 성립한다. 하지만 "515"의 경우 "505"의 자식 노드가 될 수는 있지만, 프리픽스 길이가 28로 "510"의 프리픽스 길이 24보다 길다고 할지라도 프리픽스 길이 24만큼이 "129.254.222"로 "510"의 프리픽스 "129.254.111"과 틀리기 때문에 부모-자식-관계가 성립되지 않는다. "515"와 "520" 또한 프리픽스 길이가 틀리지만 프리픽스 값도 틀리기 때문에 부모-자식-관계가 성립되지 않는다.
따라서 프리픽스의 조상 관계는 "525"와 같이 두 개의 체인으로 표시될 수 있으며, 부모-조상-트리가 도 5와 같이 표현되어 질 수 있는 것이다. 프리픽스-조상-관계가 중요한 이유는 서로 다른 두 라우팅 엔트리가 프리픽스-조상-관계에 의한 체인에 속해 있으면, 롱기스트 프리픽스 매치(Longest Prefix Match)의 조건을 만족하기 위해 조상보다는 후손에 속하는 라우팅 엔트리가 높은 우선순위에 속해야 하기 때문이다. 반대로, 프리픽스-조상-관계의 체인에 속하지 않는 라우팅 엔트리는 비록 프리픽스 길이가 틀리다 할지라도 우선순위에 상관없이 TCAM의 메모리에 저장될 수 있다.
도 6은 본 발명에 따른 체인-조상-트리 및 우선순위 할당 방식에 대한 설명도이다.
도 6에는 체인-조상-트리에 의해 라우팅 엔트리가 저장되어야 할 TCAM 우선순위 블록이 도시되어 있다. 체인-조상-트리의 깊이에 따라 트리-레벨이 정해질 수 있는데, 도 6에서는 레벨-1(600), 레벨-2(605), 레벨-3(610), 및 레벨-4(615)로 나누어져 있다. 각 레벨에 속한 라우팅 엔트리들은 레벨의 번호와 동일한 우선순위를 할당받고, 우선순위에 해당되는 TCAM 블록에 저장된다. 도 6에 도시된 바와 같이, 라우팅 엔트리 P-3와 P-4는 서로 다른 프리픽스를 가지더라도 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 순위 관계에 영향을 받지 않기 때문에 같은 우선순위 블록에 저장이 가능한 것이다. 이와 같은 방법으로 서로 다른 프리픽스 길이를 가지더라도 동일한 우선순위 블록에 저장할 수 있기 때문에 TCAM의 메모리 단편화 현상을 줄일 수 있어 메모리 운용의 효율성을 높일 수 있다.
상기와 같이 TCAM의 메모리 효율성을 높이는 것과 함께 TCAM 룩업 테이블의 변경에 따른 성능도 중요하다고 할 수 있는데, 이러한 TCAM 룩업 테이블 변경 알고리즘을 도 7 및 도 9를 참조하여 살펴보면 다음과 같다.
도 7은 본 발명에 따른 라우팅 엔트리 추가 과정에 대한 일실시예 흐름도로서, TCAM 라우팅 테이블 운용 중에 새로운 라우팅 프리픽스가 추가될 경우의 알고 리즘을 나타내는 도면이다.
먼저, TCAM 라우팅 테이블 운용 중에 새로운 라우팅 엔트리(프리픽스=P)가 입력이 되면(700) 체인-조상-트리의 루트의 아들 노드(자식 노드)들을 하나씩 순서대로 검색한다. 최초 검색되는 현재 노드는 루트 노드의 첫 번째 아들 노드가 되고, 현재 레벨은 루트의 아래 노드 레벨인 레벨 1 값을 가진다(705).
이어서, 현재 노드와 입력 프리픽스 P와의 프리픽스-조상-관계를 비교하여(710), 현재 노드가 P에 대하여 프리픽스-조상이면, 다시 현재 노드의 하위 노드들과 비교하기 위하여 현재 노드가 부모 노드가 되고, 새로운 부모 노드의 첫 번째 아들 노드를 현재 노드로 하여(740) 현재 노드와 P와의 프리픽스-조상-관계 비교를 재귀적으로 수행한다(710).
만약, 상기 비교 결과(710), 현재 노드가 P에 대하여 프리픽스-조상이 아니라면, 반대로 P가 현재 노드에 대하여 프리픽스-조상인지 비교한다(715).
상기 비교 결과(715), P가 현재 노드에 대해 프리픽스-조상이라면, P에 해당되는 새로운 노드를 생성하여, 현재 노드의 부모 노드를 부모로 하여 체인-조상-트리(즉, 부모 노드의 자식 노드 위치의 체인-조상-트리)에 삽입한다(745). 이후, P가 현재 노드의 부모 노드가 되어야 하기 때문에 현재 노드의 부모 노드를 P로 설정하고, 현재 노드를 포함한 현재 노드의 모든 후손 노드들의 레벨을 한 단계씩 증가시킨 후 현재 레벨에 해당되는 TCAM 블록에서 제거하고 한 단계씩 증가된 레벨에 해당되는 TCAM 블록에 다시 저장한다(750). 다음으로, 새롭게 입력된 P노드에 해당되는 레벨의 TCAM 블록에 P를 저장한다(755).
한편, 상기 비교 결과(715), P가 현재 노드의 조상이 아니라면, P와 현재 노드사이에는 프리픽스-조상-관계가 성립하지 않기 때문에 현재 노드의 다른 형제 노드와 P를 비교하기 위하여 현재 노드의 같은 레벨에 비교하지 않은 다른 형제 노드가 있는지 검사한다(720).
상기 검사 결과(720), 형제 노드가 존재한다면 다음 형제 노드를 현재 노드로 하고(730), "710" 과정으로 진행하여 이후의 과정을 다시 수행한다.
만약, 상기 검사 결과(720), 더 이상 검색 및 비교하지 않은 노드가 존재하지 않는다면, 현재 레벨에는 더 이상 프리픽스-조상-관계에 있는 노드가 존재하지 않기 때문에 현재 레벨의 부모 노드를 부모로 하여 P에 해당되는 새로운 노드를 생성하여 체인-조상-트리에 삽입하고(735), 현재 레벨에 해당되는 우선순위의 TCAM 블록에 P를 저장한다(755).
도 7에 도시된 알고리즘에 따르면, TCAM 블록에 기 저장된 라우팅 엔트리들의 재정렬이 일어나는 경우는, "715" -> “예” -> "745" -> "750" -> "755"인 경우인데, 이 대한 자세한 예를 도 8을 참조하여 살펴보면 다음과 같다.
도 8은 본 발명에 따른 라우팅 엔트리 추가 방식에 대한 일실시예 설명도이다.
도 8에 도시된 예시는 도 6에서 새로운 라우팅 엔트리가 추가되었을 경우의 결과를 나타내고 있다. 도 8에 도시된 바와 같이, 새로운 라우팅 엔트리 "800"(프리픽스 P-6)이 새롭게 입력되는 경우, 새롭게 입력되는 라우팅 엔트리 "800"과 기존의 노드인 "805"의 비교 결과, 프리픽스-조상-관계가 성립되고, 라우팅 엔트리 "800"이 기존 노드 "805"에 대하여 프리픽스-조상에 해당되기 때문에, 입력된 라우팅 엔트리 "800"에 해당되는 새로운 노드가 생성되어 체인-조상-트리에 삽입되고, 기존의 "805" 노드는 한 레벨 아래도 이동(레벨 증가)하여 새롭게 삽입된 "800" 노드를 부모 노드로 하는 것이다. 또한, "805" 노드는 한 레벨 아래로 이동(레벨 증가)하여 우선순위가 한 단계 증가하였기 때문에 TCAM 블록의 "810" 위치에서 "815"의 위치로 이동하였고, 비어진 "810"의 위치에 라우팅 엔트리 "800"(프리픽스 P-6)이 저장되는 것이다.
도 9는 본 발명에 따른 라우팅 엔트리 삭제 과정에 대한 일실시예 흐름도로서, 라우팅 엔트리가 삭제되는 경우 체인-조상-트리를 관리하고 해당되는 TCAM 라우팅 테이블을 조정하는 알고리즘을 도시한 것이다.
먼저, 삭제할 라우팅 프리픽스(=P)가 입력되면(900), 체인-조상-트리에서 P와 일치하는 노드를 검색하여(905) 검색 성공인지를 확인한다(910). 이때, 검색하는 방법은 체인-조상-트리를 순차적으로 탐색하거나 해쉬테이블을 구성하여 수행할 수 있다.
상기 검색 결과(910), 검색 실패이면 잘못된 입력이므로 종료하고(925), 검색 성공이면 P에 해당되는 노드에 아들 노드가 존재하는지 검사한다(915).
상기 검사 결과(915), 아들 노드가 존재하지 않으면 단순히 P노드만을 삭제해도 되기 때문에 P노드를 체인-조상-트리에서 삭제하고 해당되는 TCAM 블록에서도 삭제한다(920).
만약, 상기 검사 결과(915), 아들 노드가 존재한다면 P노드를 체인-조상-트 리 및 TCAM 블록에서 삭제한 후 P노드의 아들 노드들을 P노드의 부모 노드의 아들 노드로 설정한다(930). 다음으로, 삭제된 P노드의 아들 및 후손 노드들을 체인-조상-트리에서 모두 한 단계씩 레벨을 감소시킨 후에 현재 저장되어 있는 TCAM 블록에서 모두 제거하고 한 단계 감소된 TCAM 블록에 다시 저장한다(935).
상기와 같은 방법으로 체인-조상-트리를 구성하여 TCAM 라우팅 테이블을 운용하게 되면, 새로운 라우팅 엔트리가 입력되어 TCAM 라우팅 테이블을 변경하여야 할 경우, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위하여 정렬 상태를 유지하기 위하여 최악의 경우일지라도 프리픽스-조상-체인의 길이의 횟수만큼만 기존에 저장되어 있는 라우팅 엔트리를 이동하면 된다. 일반적으로 실제 라우터가 운용되는 인터넷에서는 이러한 프리픽스-조상-체인의 길이가 3~4 이하이며, 최대 10을 넘는 경우가 없기 때문에 최악의 경우 수십에서 수천 번의 이동이 있어야 하는 종래의 TCAM 룩업 테이블 정렬 방법에 비하며 획기적으로 성능을 높일 수가 있는 것이다.
상기와 같이 고속의 라우터를 구성하기 위해 TCAM을 사용하는 경우 TCAM의 메모리를 효율적으로 사용하고, TCAM 룩업 테이블을 효과적이고 빠르게 운용/관리할 수 있는 방법에 대해 종합적으로 정리하여 살펴보면 다음과 같다.
먼저, 본 발명에서는 룩업 테이블(라우팅 테이블)을 구성하기 위하여 TCAM의 메모리 영역을 우선순위에 따라 일정한 영역의 블록들로 구분한다. 이를 좀더 구체적으로 살펴보면, 라우팅 시스템 초기화 시에 모든 우선순위 블록들은 우선순위가 할당되지 않은 상태이나, 해당되는 우선순위의 라우팅 엔트리의 입력이 필요한 경 우에만 비어있는 임의의 블록을 할당하여 해당되는 우선순위 번호를 설정한다.
이후, 상기 룩업 테이블에 입력되는 모든 라우팅 엔트리 각각에 프리픽스의 길이에 따라 우선순위를 할당한다. 이를 좀더 구체적으로 살펴보면, 먼저, 상기 룩업 테이블과 관련된 각 라우팅 엔트리(새로 입력되거나 기 입력되어 룩업 테이블에 설정된 라우팅 엔트리를 포함함)의 프리픽스 길이에 따라 체인-조상-트리를 구성하는 과정, 및 상기 구성한 체인-조상-트리의 레벨 높이에 따라 우선순위를 할당하는 과정을 포함한다.
이때, 상기 체인-조상-트리를 구성하는 과정은, 상기 룩업 테이블과 관련된 각 라우팅 엔트리의 프리픽스 정보를 이용하여 라우팅 엔트리 상호 간의 프리픽스-조상-관계를 조사하는 과정, 및 상기 조사 결과에 따라 프리픽스-조상-관계가 성립되는 두 라우팅 엔트리에 대하여, 프리픽스 엔트리가 짧은 라우팅 엔트리를 부모 위치에 삽입하고, 프리픽스 길이가 긴 라우팅 엔트리를 자식 위치에 삽입하는 과정을 포함한다.
여기서, 상기 라우팅 엔트리 상호 간의 프리픽스-조상-관계를 조사하는 과정은, 상기 두 개의 상이한 라우팅 엔트리에서 각각의 프리픽스 길이를 비교하여 그 중에서 짧은 프리픽스를 비교 프리픽스 길이로 설정하는 과정, 상기 비교 프리픽스 길이만큼 상기 두 라우팅 엔트리를 비교하여 일치함에 따라 프리픽스-조상-관계에 있다고 설정하는 과정, 및 프리픽스-조상-관계에 있는 상기 두 라우팅 엔트리에서 프리픽스의 길이가 짧은 라우팅 엔트리를 긴 라우팅 엔트리의 조상이라 설정하는 과정을 포함한다.
그리고 상기 체인-조상-트리의 레벨 높이에 따라 우선순위를 할당하는 과정은, 체인-조상-트리의 높이에 따라 동일한 높이에 해당되는 모든 노드의 그룹을 동일한 레벨로 설정하는 과정, 체인-조상-트리의 루트 노드를 높이 0, 레벨 0으로 설정하는 과정, 및 체인-조상-트리의 높이가 한 단계 증가할 때마다 레벨도 1씩 증가시키는 과정을 포함한다.
이후, 상기 우선순위를 할당한 라우팅 엔트리를 해당되는 우선순위의 룩업 테이블 블록에 저장한다.
이후, 라우팅 시스템의 운용 중에 상기 룩업 테이블의 변경이 있을 경우, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 정렬 상태가 유지되도록 상기 룩업 테이블을 변경한다. 이를 좀더 구체적으로 살펴보면, 새로운 라우팅 엔트리가 입력됨에 따라, 새로운 체인-조상-트리 노드를 생성하고, 체인-조상-트리의 알맞은 위치를 찾아 체인-조상-트리에 새로운 라우팅 엔트리를 삽입하고, 실제 TCAM 룩업 테이블에 저장하는 과정, 및 기존의 라우팅 엔트리를 삭제하고자 함에 따라, 체인-조상-트리에서 삭제하고자하는 라우팅 엔트리를 검색하여 삭제하고, 실제 TCAM 룩업 테이블에서 삭제하는 과정을 포함한다.
이때, 상기 새로운 라우팅 엔트리에 대한 처리 과정은, 체인-조상-트리의 루트에서부터 한 레벨씩 증가시켜 가면서 새롭게 입력되는 라우팅 엔트리와 프리픽스-조상-관계를 검사하는 검사 과정, 상기 검사 결과, 프리픽스-조상-관계가 성립하지 않는 경우 새로운 노드를 생성하여 체인-조상-트리의 현재 비교하고 있는 레벨에 삽입하고, 새롭게 입력되는 라우팅 엔트리에 그 레벨에 해당되는 우선순위를 할 당하는 과정, 상기 검사 결과, 프리픽스-조상-관계가 성립하는 경우, 새롭게 입력되는 라우팅 엔트리가 조상인지를 확인하는 과정, 상기 확인 결과, 새롭게 입력되는 라우팅 엔트리가 조상이면, 현재 비교하고 있는 체인-조상-트리의 노드 및 이 현재 노드의 모든 후손을 한 레벨씩 아래로 옮겨(즉, 한 레벨씩 증가시켜) 그 위치를 비어 있도록 만들고, 그 빈 위치에 새롭게 입력되는 라우팅 엔트리의 노드를 삽입하는 과정, 상기 확인 결과, 새롭게 입력되는 라우팅 엔트리가 조상이 아니면, 새롭게 입력되는 라우팅 엔트리를 현재 비교하고 있는 체인-조상-트리의 노드의 아들 노드로 설정한 후에 상기 프리픽스-조상-관계를 검사하는 검사 과정으로 진행하여 비교해 나가는 과정, 및 새롭게 입력되는 라우팅 엔트리가 체인-조상-트리에서의 위치가 결정되고 우선순위를 부여받음에 따라, 해당되는 우선순위 TCAM 블록의 빈 공간의 엔트리에 저장하는 과정을 포함한다.
여기서, 새롭게 입력되는 라우팅 엔트리에 의해 체인-조상-트리에서 다른 노드들이 이동을 했을 경우, 그 노드에 해당되는 라우팅 엔트리를 TCAM 라우팅 테이블 우선순위 블록에서 삭제하였다가 다시 변경된 위치의 레벨에 해당되는 우선순위 블록에 저장하는 과정을 더 포함한다.
그리고 상기 기존의 라우팅 엔트리를 삭제 처리하는 과정은, 체인-조상-트리의 루트 노드에서부터 한 레벨씩 차례대로 증가시켜 가면서 삭제하고자하는 라우팅 엔트리와 일치할 때까지 비교하는 과정, 상기 비교 결과로 일치하는 라우팅 엔트리가 존재함에 따라, 체인-조상-트리에서 삭제하는 과정, 및 상기 삭제한 노드의 자식 노드가 있음에 따라, 해당하는 자식 노드를 상기 삭제한 노드의 부모 노드의 자 식으로 설정하는 과정을 포함한다.
여기서, 삭제되는 라우팅 엔트리에 의해 체인-조상-트리에서 다른 노드들이 이동을 했을 경우, 그 노드에 해당되는 라우팅 엔트리를 TCAM 라우팅 테이블 우선순위 블록에서 삭제하였다가 다시 변경된 위치의 레벨에 해당되는 우선순위 블록에 저장하는 과정을 더 포함한다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 롬, 램, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 롱기스트 프리픽스 매치(Longest Prefix Match)가 유지될 수 있도록 TCAM 라우팅 테이블을 유지/관리하는데 있어서, 값비싼 TCAM의 메모리를 낭비 없이 효율적으로 사용할 수 있도록 하는 효과가 있다.
또한, 본 발명은 라우터 운용 중에 수시로 변경되는 라우팅 테이블에 대한 빠르고 효율적인 알고리즘으로 고속의 라우팅 기능을 필요로 하는 라우터의 성능을 향상시킬 수 있는 효과가 있다.
즉, 본 발명에서는 체인-조상-트리를 효과적으로 병합, 분할하여 기존의 저장되어 있는 라우팅 엔트리들의 이동을 최소화함으로써, 라우팅의 갱신이 빠르게 이루어질 수 있도록 한다.

Claims (12)

  1. TCAM(Ternary Contents Address Memory) 테이블 관리 방법에 있어서,
    룩업 테이블을 구성하기 위하여 TCAM의 메모리 영역을 우선순위에 따라 일정한 영역의 블록들로 구분하는 구분 단계;
    상기 룩업 테이블로 입력되는 모든 라우팅 엔트리 각각에 프리픽스의 길이에 따라 우선순위를 할당하는 우선순위 할당 단계;
    상기 우선순위를 할당한 라우팅 엔트리를 해당되는 우선순위의 룩업 테이블 블록에 저장하는 단계; 및
    상기 룩업 테이블의 변경 발생에 따라, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 정렬 상태가 유지되도록 상기 룩업 테이블을 변경하는 룩업 테이블 변경 단계
    를 포함하는 TCAM 테이블 관리 방법.
  2. 제 1 항에 있어서,
    상기 구분 단계는,
    라우팅 시스템 초기화 시에 모든 우선순위 블록들을 우선순위가 할당되지 않은 상태로 설정하는 과정; 및
    우선순위의 라우팅 엔트리의 입력이 필요한 경우에 비어있는 임의의 블록을 해당하는 우선순위 블록으로 할당하여 해당하는 우선순위 번호를 설정하는 과정
    을 포함하는 TCAM 테이블 관리 방법.
  3. 제 1 항에 있어서,
    상기 우선순위 할당 단계는,
    상기 룩업 테이블과 관련된 각 라우팅 엔트리의 프리픽스 길이에 따라 체인-조상-트리를 구성하는 체인-조상-트리 구성 과정; 및
    상기 구성한 체인-조상-트리의 레벨 높이에 따라 우선순위를 할당하는 우선순위 할당 과정
    을 포함하는 TCAM 테이블 관리 방법.
  4. 제 3 항에 있어서,
    상기 체인-조상-트리 구성 과정은,
    상기 룩업 테이블과 관련된 각 라우팅 엔트리의 프리픽스 정보를 이용하여 라우팅 엔트리 상호 간의 프리픽스-조상-관계를 조사하는 프리픽스-조상-관계 조사 과정; 및
    상기 프리픽스-조상-관계 조사 결과에 따라 프리픽스-조상-관계가 성립되는 두 라우팅 엔트리에 대하여, 프리픽스 엔트리가 짧은 라우팅 엔트리를 부모 위치에 삽입하고, 프리픽스 길이가 긴 라우팅 엔트리를 자식 위치에 삽입하는 과정
    을 포함하는 TCAM 테이블 관리 방법.
  5. 제 4 항에 있어서,
    상기 프리픽스-조상-관계 조사 과정은,
    상기 두 개의 상이한 라우팅 엔트리에서 각각의 프리픽스 길이를 비교하여 그 중에서 짧은 프리픽스를 비교 프리픽스 길이로 설정하는 과정;
    상기 비교 프리픽스 길이만큼 상기 두 라우팅 엔트리를 비교하여 일치함에 따라 프리픽스-조상-관계에 있다고 설정하는 과정; 및
    프리픽스-조상-관계에 있는 상기 두 라우팅 엔트리에서 프리픽스의 길이가 짧은 라우팅 엔트리를 긴 라우팅 엔트리의 조상이라 설정하는 과정
    을 포함하는 TCAM 테이블 관리 방법.
  6. 제 3 항에 있어서,
    상기 우선순위 할당 과정은,
    체인-조상-트리의 높이에 따라 동일한 높이에 해당되는 모든 노드의 그룹을 동일한 레벨로 설정하는 과정;
    체인-조상-트리의 루트 노드를 높이 0, 레벨 0으로 설정하는 과정; 및
    체인-조상-트리의 높이가 한 단계 증가할 때마다 레벨도 1씩 증가시키는 과정
    을 포함하는 TCAM 테이블 관리 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 룩업 테이블 변경 단계는,
    새로운 라우팅 엔트리가 입력됨에 따라, 새로운 체인-조상-트리 노드를 생성하고, 체인-조상-트리의 해당 위치에 새로운 라우팅 엔트리를 삽입하며, 상기 TCAM의 룩업 테이블에 저장하는 제 1 처리 과정; 및
    기존의 라우팅 엔트리를 삭제하고자 함에 따라, 체인-조상-트리에서 삭제하고자하는 라우팅 엔트리를 검색하여 삭제하고, 상기 TCAM의 룩업 테이블에서 삭제하는 제 2 처리 과정
    을 포함하는 TCAM 테이블 관리 방법.
  8. 제 7 항에 있어서,
    상기 제 1 처리 과정은,
    체인-조상-트리의 루트에서부터 한 레벨씩 증가시켜 가면서 새롭게 입력되는 라우팅 엔트리와 프리픽스-조상-관계를 검사하는 검사 과정;
    상기 검사 결과, 프리픽스-조상-관계가 성립하지 않는 경우 새로운 노드를 생성하여 체인-조상-트리의 현재 비교하고 있는 레벨에 삽입하고, 새롭게 입력되는 라우팅 엔트리에 그 레벨에 해당되는 우선순위를 할당하는 과정;
    상기 검사 결과, 프리픽스-조상-관계가 성립하는 경우, 새롭게 입력되는 라우팅 엔트리가 조상인지를 확인하는 과정;
    상기 확인 결과, 새롭게 입력되는 라우팅 엔트리가 조상이면, 현재 비교하고 있는 체인-조상-트리의 노드 및 현재 노드의 모든 후손을 한 레벨씩 증가시켜 현재 위치를 비어 있도록 만들고, 그 빈 위치에 새롭게 입력되는 라우팅 엔트리의 노드를 삽입하는 과정;
    상기 확인 결과, 새롭게 입력되는 라우팅 엔트리가 조상이 아니면, 새롭게 입력되는 라우팅 엔트리를 현재 비교하고 있는 체인-조상-트리의 노드의 아들 노드로 설정한 후에 상기 검사 과정으로 진행하여 비교해 나가는 과정; 및
    새롭게 입력되는 라우팅 엔트리가 체인-조상-트리에서의 위치가 결정되고 우선순위를 부여받음에 따라, 해당되는 우선순위 TCAM 블록의 빈 공간의 엔트리에 저장하는 과정
    을 포함하는 TCAM 테이블 관리 방법.
  9. 제 8 항에 있어서,
    새롭게 입력되는 라우팅 엔트리에 의해 체인-조상-트리에서 다른 노드들의 이동이 발생함에 따라, 그 이동 노드에 해당되는 라우팅 엔트리를 상기 TCAM의 라우팅 테이블 우선순위 블록에서 삭제하였다가 다시 변경 위치의 레벨에 해당되는 우선순위 블록에 저장하는 과정
    을 더 포함하는 TCAM 테이블 관리 방법.
  10. 제 7 항에 있어서,
    상기 제 2 처리 과정은,
    체인-조상-트리의 루트 노드에서부터 한 레벨씩 차례대로 증가시켜 가면서 삭제하고자하는 라우팅 엔트리와 일치할 때까지 비교하는 과정;
    상기 비교 결과로 일치하는 라우팅 엔트리가 존재함에 따라, 체인-조상-트리에서 삭제하는 과정; 및
    상기 삭제한 노드의 자식 노드가 있음에 따라, 해당하는 자식 노드를 상기 삭제한 노드의 부모 노드의 자식으로 설정하는 과정
    을 포함하는 TCAM 테이블 관리 방법.
  11. 제 10 항에 있어서,
    삭제되는 라우팅 엔트리에 의해 체인-조상-트리에서 다른 노드들의 이동이 발생함에 따라, 그 이동 노드에 해당되는 라우팅 엔트리를 상기 TCAM의 라우팅 테 이블 우선순위 블록에서 삭제하였다가 다시 변경 위치의 레벨에 해당되는 우선순위 블록에 저장하는 과정
    을 더 포함하는 TCAM 테이블 관리 방법.
  12. 프로세서를 구비한 라우팅 시스템에,
    룩업 테이블을 구성하기 위하여 TCAM의 메모리 영역을 우선순위에 따라 일정한 영역의 블록들로 구분하는 기능;
    상기 룩업 테이블로 입력되는 모든 라우팅 엔트리 각각에 프리픽스의 길이에 따라 우선순위를 할당하는 기능;
    상기 우선순위를 할당한 라우팅 엔트리를 해당되는 우선순위의 룩업 테이블 블록에 저장하는 기능; 및
    상기 룩업 테이블의 변경 발생에 따라, 롱기스트 프리픽스 매치(Longest Prefix Match)를 위한 정렬 상태가 유지되도록 상기 룩업 테이블을 변경하는 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060095814A 2006-09-29 2006-09-29 Tcam 테이블 관리 방법 KR100745693B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060095814A KR100745693B1 (ko) 2006-09-29 2006-09-29 Tcam 테이블 관리 방법
US11/860,622 US7774538B2 (en) 2006-09-29 2007-09-25 Method for ternary contents address memory table management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060095814A KR100745693B1 (ko) 2006-09-29 2006-09-29 Tcam 테이블 관리 방법

Publications (1)

Publication Number Publication Date
KR100745693B1 true KR100745693B1 (ko) 2007-08-03

Family

ID=38601768

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060095814A KR100745693B1 (ko) 2006-09-29 2006-09-29 Tcam 테이블 관리 방법

Country Status (2)

Country Link
US (1) US7774538B2 (ko)
KR (1) KR100745693B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009089744A1 (fr) * 2007-12-28 2009-07-23 Huawei Technologies Co., Ltd. Système de consultation de table d'acheminement, mémoire ternaire adressable par contenu et processeur de réseau
WO2017052125A1 (ko) * 2015-09-23 2017-03-30 한양대학교 에리카산학협력단 비트 수를 증가시킨 sram 기반 tcam의 동작 방법 및 시스템
US10558632B2 (en) 2015-09-01 2020-02-11 SK Hynix Inc. Data processing system
CN112087389A (zh) * 2019-06-14 2020-12-15 深圳市中兴微电子技术有限公司 一种报文匹配查表方法、系统、存储介质和终端

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706375B2 (en) * 2007-02-06 2010-04-27 Alcatel Lucent System and method of fast adaptive TCAM sorting for IP longest prefix matching
US8515911B1 (en) * 2009-01-06 2013-08-20 Emc Corporation Methods and apparatus for managing multiple point in time copies in a file system
CN101556610B (zh) * 2009-05-04 2011-12-21 中兴通讯股份有限公司 网络处理器使用的建表和查表方法
US9077669B2 (en) * 2010-06-14 2015-07-07 Dynamic Invention Llc Efficient lookup methods for ternary content addressable memory and associated devices and systems
CN102185756A (zh) * 2011-03-15 2011-09-14 北京星网锐捷网络技术有限公司 Tcam共享存储方法及装置
US8924640B2 (en) * 2012-05-14 2014-12-30 Alcatel Lucent Dynamic allocation of records to clusters in a ternary content addressable memory
CN103457855B (zh) * 2012-06-04 2018-08-10 中兴通讯股份有限公司 无类域间路由表建立、以及报文转发的方法和装置
US8792494B2 (en) * 2012-09-14 2014-07-29 International Business Machines Corporation Facilitating insertion of device MAC addresses into a forwarding database
CN103780490B (zh) * 2012-10-17 2018-03-30 中兴通讯股份有限公司 一种更新路由查找树的方法及装置
US9824756B2 (en) * 2013-08-13 2017-11-21 Globalfoundries Inc. Mapping a lookup table to prefabricated TCAMS
US9350677B2 (en) 2014-01-16 2016-05-24 International Business Machines Corporation Controller based network resource management
US10205662B2 (en) * 2014-07-11 2019-02-12 Telefonaktiebolaget Lm Ericsson (Publ) Prefix distribution-based table performance optimization in SDN
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
US11943142B2 (en) * 2014-11-10 2024-03-26 Marvell Asia Pte, LTD Hybrid wildcard match table
US11218410B2 (en) * 2014-11-10 2022-01-04 Marvell Asia Pte, Ltd. Hybrid wildcard match table
CN105227466B (zh) * 2015-08-20 2019-01-11 北京百度网讯科技有限公司 通信处理方法和装置
WO2017039687A1 (en) 2015-09-04 2017-03-09 Hewlett Packard Enterprise Development Lp Content addressable memory
US10700974B2 (en) * 2018-01-30 2020-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic allocation of memory for packet processing instruction tables in a network device
CN114745177A (zh) * 2022-04-11 2022-07-12 浪潮思科网络科技有限公司 一种acl规则的处理方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040003258A (ko) * 2002-07-02 2004-01-13 삼성전자주식회사 인터넷 프로토콜 주소 룩-업 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633548B2 (en) * 2001-01-30 2003-10-14 Nokia Intelligent Edge Routers Inc. Method and apparatus for ternary content addressable memory (TCAM) table management
US7028098B2 (en) * 2001-07-20 2006-04-11 Nokia, Inc. Selective routing of data flows using a TCAM
KR100572693B1 (ko) 2003-12-27 2006-04-19 한국전자통신연구원 인터넷 프로토콜 패킷 룩업 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040003258A (ko) * 2002-07-02 2004-01-13 삼성전자주식회사 인터넷 프로토콜 주소 룩-업 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009089744A1 (fr) * 2007-12-28 2009-07-23 Huawei Technologies Co., Ltd. Système de consultation de table d'acheminement, mémoire ternaire adressable par contenu et processeur de réseau
US10558632B2 (en) 2015-09-01 2020-02-11 SK Hynix Inc. Data processing system
WO2017052125A1 (ko) * 2015-09-23 2017-03-30 한양대학교 에리카산학협력단 비트 수를 증가시킨 sram 기반 tcam의 동작 방법 및 시스템
CN112087389A (zh) * 2019-06-14 2020-12-15 深圳市中兴微电子技术有限公司 一种报文匹配查表方法、系统、存储介质和终端

Also Published As

Publication number Publication date
US7774538B2 (en) 2010-08-10
US20080080539A1 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
KR100745693B1 (ko) Tcam 테이블 관리 방법
US8090901B2 (en) TCAM management approach that minimize movements
US6434144B1 (en) Multi-level table lookup
US6658482B1 (en) Method for speeding up internet protocol address lookups with efficient use of memory
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US10230639B1 (en) Enhanced prefix matching
KR100586461B1 (ko) 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체
US7706375B2 (en) System and method of fast adaptive TCAM sorting for IP longest prefix matching
CN107528783B (zh) 利用对前缀长度进行两个搜索阶段的ip路由缓存
US10148571B2 (en) Jump on a match optimization for longest prefix match using a binary search tree
US20130034096A1 (en) Routing table establishment method and device and routing table lookup method and device
JP2004517519A (ja) 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法
JP3570323B2 (ja) アドレスに関するプレフィクスの格納方法
US11570105B2 (en) Dynamic route profile storage in a hardware trie routing table
KR20120081090A (ko) 최장 프리픽스 매치의 확장성을 개선하기 위한 방법 및 장치
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
CN106416152A (zh) 一种查找装置、查找配置方法和查找方法
US7487255B2 (en) Routing cache management with route fragmentation
CN110995876B (zh) 一种ip存储与查找的方法及装置
US6615311B2 (en) Method and system for updating a content addressable memory (CAM) that prioritizes CAM entries according to prefix length
KR100686732B1 (ko) 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터
KR100814077B1 (ko) 우선순위 트라이를 이용한 ip 주소 검색 방법 및 이를제공하는 패킷 중계 장치
KR100420957B1 (ko) 클래스 분할 기법을 이용한 라우팅 테이블 자료구조,라우팅 테이블을 이용한 라우팅 경로 검색방법 및 장치
Pao et al. Enabling incremental updates to LC-trie for efficient management of IP forwarding tables
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100701

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee