KR20050069470A - 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법 - Google Patents

프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법 Download PDF

Info

Publication number
KR20050069470A
KR20050069470A KR1020030101610A KR20030101610A KR20050069470A KR 20050069470 A KR20050069470 A KR 20050069470A KR 1020030101610 A KR1020030101610 A KR 1020030101610A KR 20030101610 A KR20030101610 A KR 20030101610A KR 20050069470 A KR20050069470 A KR 20050069470A
Authority
KR
South Korea
Prior art keywords
node
tree
prefix
prefix length
current
Prior art date
Application number
KR1020030101610A
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 KR1020030101610A priority Critical patent/KR20050069470A/ko
Publication of KR20050069470A publication Critical patent/KR20050069470A/ko

Links

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/48Routing tree calculation
    • 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

Landscapes

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

Abstract

본 발명은 인터넷 라우팅 시스템에서 효율적으로 IP 주소를 탐색할 수 있도록 프리픽스 길이를 고려한 트리를 생성하고, 상기 트리를 이용하여 IP 주소 탐색을 행함으로써 IP망의 데이터 처리속도를 향상시킬 수 있도록 하는 기술에 관한 것이다.
이를 위해, 본 발명은 이중트리에 가상노드를 생성하여 확장이중트리를 생성하고, 상기 확장이중트리와 프리픽스 길이 트리를 이용하여 프리픽스 길이를 고려한 트리를 생성하는데, 상기 프리픽스 길이를 고려한 트리에서는 상기 확장이중트리의 각 노드를 그 길이에 따라 L노드, S노드, 및 U노드로 생성한다. 그리고, 상기 프리픽스 길이를 고려한 트리에서 BMP를 탐색할 때, L노드, S노드, 및 U노드순으로 행함으로써 IP 주소 탐색 속도를 향상시킨다.

Description

프리픽스 길이를 고려한 트리생성방법과 이를 이용한 IP 주소 탐색 방법{Tree generating method with prefix length and IP Address search method using the same}
본 발명은 IP주소 탐색 방법에 관한 것으로, 보다 상세하게는 인터넷 라우팅 시스템이 인터넷 트래픽을 전달하기 위해 수행하는 IP 주소 탐색 기술에 관한 것이다.
오늘날 적용 중인 CIDR(Classless InterDomain Routing) 주소 체계하에서는 BMP(Best Matching Prefix)를 찾는 IP 주소 탐색 프로세스가 라우팅 시스템의 중요한 병목이 되고 있다.
종래의 기술로는, 이중 트리 기법, 경로 압축 트리 기법, Multibit 트리 기법, Disjoint-프리픽스 이중 트리 기법, 프리픽스 길이에 대한 이중 탐색 기법 등이 있다.
상기 이중 트리 기법은 가장 고전적인 기법으로, 도 1에 도시된 바와 같이 프리픽스 정보를 이중 트리로 구성한 다음 IP 주소를 한 비트(bit)씩 비교하면서 BMP를 찾는 기법이다. 도 1에 의하면, IP 주소 "011*"에 대한 BMP는 c가 된다. 상기 이중 트리 기법에서는 BMP를 찾기 위하여 잎(leaf) 노드까지 탐색해 보아야 하며, 잎 노드에서 BMP를 찾지 못하면 이전까지 탐색했던 프리픽스 중 최선의 프리픽스를 BMP로 적용한다. 기본적으로 트리를 사용하는 IP 주소 탐색 방법들은, 상술되어진 이중 트리 기법을 변형한 것이라 할 수 있다.
상기 프리픽스 길이에 대한 이중 탐색 기법은 타 기법들과 다른 방법을 적용하고 있는데, 다양한 길이의 프리픽스 테이블(prefix table)을 여러 개의 동일한 길이 프리픽스 테이블들로 만든 다음, 적절한 프리픽스 길이와 BMP를 동시에 찾는 기법을 적용하고 있다. 기본적인 개념은 특정 길이의 프리픽스 테이블에서 BMP를 찾고, 실패한 경우 더 짧은 프리픽스 테이블을 탐색하고, 성공한 경우 더 긴 길이의 프리픽스 테이블을 탐색하는 기법이다.
도 2a와 도 2b를 참조하여, 상기 프리픽스 길이에 대한 이중 탐색 기법을 상세하게 설명한다.
IP 주소 "011*"의 BMP를 찾기 위해서, 1) 길이가 몇 비트인 프리픽스 테이블을 탐색할 것인지를 결정하는데, "011*"는 4비트이므로 도 2b에 도시된 길이테이블에서 "4"비트 길이를 선택한다. 2) 이어, 도 2a에 도시된 프리픽스 테이블에서 길이가 4비트인 프리픽스(f, g, h, l)를 검색하는데, 상기 검색결과에 "011*"이 존재하지 않으므로, BMP를 찾는데 실패한 것으로 판단한다. 3) 상기 판단결과에 따라, 길이 테이블의 "4"에서 "F(failure)"이므로 "2" 비트 길이를 선택한다. 4) 프리픽스 테이블에서 길이가 "2" 비트인 프리픽스(j, dm)가 검색됨에 따라, "j"를 BMP로 서택한다. 5) 상기 BMP 검색결과에 따라, 길이 테이블의 "2"에서 "S(successful)"이므로 "3" 비트 길이를 선택한다. 6) 프리픽스 테이블에서 길이가 3비트인 프리픽스(c, e, i)가 검색됨에 따라, "c"를 BMP로 결정한다. 7) 모든 길이에 대하여 탐색하였으므로 "c"를 최종 BMP로 결정한다. 도 2a에서 dm, fm으로 표기된 프리픽스는, BMP를 찾는데 실패하였다 하더라도 더 긴 길이의 프리픽스를 탐색할 필요가 있는 경우의 프리픽스를 나타낸다.
상술한 바와 같이 동작하는, 프리픽스 길이에 대한 이중 탐색 기법은 특정 길이의 프리픽스 테이블을 모두 탐색하도록 구성되어 있기 때문에, 프리픽스 길이가 2비트인 "j"의 하위에 "c"만 있음에도 불구하고, "e"와 "l"에 대해서도 탐색을 행하는 불필요한 프로세스를 행한다.
이와 같은 IP 주소 탐색의 비효율적인 점에 의해, IP 주소 탐색 프로세스가 라우팅 시스템에서 병목이 되고 있다.
따라서, 본 발명은 상술한 종래의 문제점을 해결하기 위해 이루어진 것으로, 확장 이중 트리와 프리픽스 길이를 고려한 트리를 구성하고, 상기 확장 이중 트리와 프리픽스 길이를 고려한 트리를 구성하여 효율적으로 BMP를 탐색할 수 있도록 하는 것을 목적으로 한다.
상기한 목적을 달성하기 위해 본 발명에 따른 프리픽스 길이를 고려한 트리생성방법은, 이중트리의 중간마디 사이에 가상 노드를 생성하여 확장이중트리를 구성하는 제 1 과정과; 상기 확장이중트리와 프리픽스 길이 트리를 근거로 상기 확장이중트리의 루트를 기준으로 각 노드의 프리픽스길이에 따라 L노드, S노드, 및 U노드를 순차적으로 생성하여 프리픽스 길이를 고려한 트리를 구성하는 제 2 과정을 구비한 것을 특징으로 한다.
또한, 본 발명에 따른 프리픽스 길이를 고려한 트리에서의 IP 주소 탐색 방법은, 상기 트리의 특정 노드에서 BMP가 검출되면, 상기 노드의 L노드를 탐색하여 BMP를 검출하는 제 1 과정; 만약, 상기 특정 노드에서 BMP가 검출되지 않으면, 상기 노드의 S노드를 탐색하여 BMP를 검출하는 제 2 과정; 및 만약, 상기 S노드에서도 BMP가 탐색되지 않으면 상기 노드의 U노드를 탐색하여 BMP를 검출하는 제 3 과정을 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명한다.
본 발명은 프리픽스 길이를 고려한 트리에서의 IP 주소 탐색 방법을 실현하기 위하여, 길이 테이블에 의해 구현되는 도 3b와 같은 프리픽스 길이 트리와, 프리픽스 테이블에 의해 구현되는 도 3a와 같은 가상 프리픽스 이중트리로 구성된 확장이중트리를 구비한다.
도 4a, 도 4b, 및 도 4c를 참조하여 본 발명에 따른 가상 프리픽스 이중 트리를 구성하는 방법을 설명한다. 도 4a는 변경전 프리픽스 테이블이고, 도 4b는 "011*"를 삽입한 변경후 프리픽스 테이블이고, 도 4c는 확장이중트리의 구성 절차를 설명하기 위한 플로우차트이다.
먼저, 도 4c에 사용된 용어를 설정한다.
노드는 최상위 마디, 중간 마디, 및 잎(leaf)을 통칭한다.
N_Px는 특정 노드의 프리픽스를 의미하고, N_B는 특정 노드의 인터페이스를 의미하고, I_Px는 삽입되어야 하는 프리픽스를 의미하고, I_B는 삽입되어야 하는 프리픽스의 인터페이스를 의미하고, C_N은 삽입 프리픽스에서 현재 노드를 의미하고, C_B는 C_N의 N_B 값을 의미한다. C_P는 I_Px의 특정 위치를 의미하고, C_V는 I_Px의 C_P에 해당하는 비트(bit) 값을 의미하고, L_Mx는 I_Px를 탐색하기 위해 탐색해야 할 프리픽스 길이 중 최대값을 의미한다.
도 4c를 참조하여, 가상 프리픽스 이중 트리 구성방법을 구체적으로 설명한다.
먼저, C_N는 최상위노드(루트), C_B는 DEFAULT, 및 C_P는 1로 설정하여(S2), 새로운 프리픽스(I_Px: 011*)를 삽입하거나 변경해야 하는 경우 최상위 노드에서 출발되도록 한다.
I_Px(011*)로부터 C_P에 해당하는 C_V "0"을 추출한다(S4).
이어, C_N(루트)에 C_V "0"에 해당하는 하위 노드가 존재하는가를 판단하고(S6), 만약 하위 노드가 존재하면 S8로 진행하고, 하위 노드가 존재하지 않으면 S16으로 진행한다.
도 4a에 도시된 트리에 의하면, 루트에 "0"에 해당하는 하위 노드 "a"가 존재하므로, S8로 진행하여 C_N을 해당 하위 노드인 "a"로 설정하고, C_B를 C_N 즉, a노드의 N_B로 설정한다.
이어, C_P가 I_Px(011*)의 마지막 비트인가를 확인하고(S10), C_P가 I_Px의 첫번째 비트인 "0"이므로 S12로 진행하여, C_P에 1을 더한 후(S12), 상기 S4로 진행하여 I_Px(011*)로부터 2번째 비트인 C_V를 추출한다(S4). 이때, 추출되는 C_V는 "1"이다.
상기 S6에서의 판단결과, 상기 C-N에 C_V(1)에 해당하는 하위 노드가 존재하지 않으면(No), C_V에 해당하는 하위 노드(a1)를 생성하고, 상기 하위 노드(a1)를 C_N으로 설정하고, I_Px의 C_P까지의 값(1)을 N_Px으로 설정한 후(S16), C_P(1)가 삽입해야 하는 프리픽스의 마지막인가를 판단한다(S18).
상기 판단결과, 상기 C_P(1)가 삽입해야 하는 마지막 프리픽스로 판단되지 않으면(N), 상기 하위 노드(a1)의 C_B를 N_B로 설정하고, C_P를 1 증가시켜 I_Px(011*)로부터 다음 비트 즉, 3번째 비트(1)를 추출한 후, S16으로 진행한다.
만약, S18에서의 판단결과 상기 C_P(1)가 삽입해야 하는 마지막 프리픽스로 판단되면(Y), I-Px(011*)의 I_B를 N_B에 설정하고(S20), C_N에 하위 노드가 존재하는가를 판단하여(S22), C_N에 하위 노드가 존재하는 것으로 판단되면(S22에서 Y) 그 하위 노드가 가상 노드인가를 판단한다(S24).
만약, S24에서의 판단결과 C_N의 하위 노드가 가상 노드이면(S24에서 Y) 해당 하위 노드(가상 노드)를 C_N으로 설정하고, S14 또는 S20에서 설정된 바와 동일하게 I-Px(011*)의 I_B를 N_B에 설정한 후(S26), S22로 진행하여 상기 가상 노드에 또 다른 하위 노드가 존재하는가를 판단한다.
상술되어진 일련의 과정을 통해, 도 4b와 같은 프리픽스 테이블과 트리가 구성된다. 도 4b에 의하면, 삽입대상이 되는 프리픽스(c)의 상위에 "a1"이라는 가상 프리픽스(가상 노드)가 생성된다.
본 발명에서, 각 프리픽스(노드)에 대한 인터페이스 정보와 가상 노드 여부에 대한 정보는 프리픽스 테이블에 저장됨이 바람직하다.
이어, 본 발명의 실시예에 따라 상기 확장이중트리를 이용하여 프리픽스 길이를 고려한 트리를 구성한다.
도 6와 같이, 확장 이중 트리(도 3a)의 루트 노드(D)를 i로 설정하고, 프리픽스 길이 탐색 트리(도 3b)의 루트 노드(4)를 j로 설정한 후(S100), (D, 4)에 대한 L노드의 생성을 위해 i, j에 대한 L노드 생성을 호출한다(S200).
i(D)의 하위 노드 중 프리픽스 길이가 j(4)의 값과 동일한 노드(j2, f, g, h, i) 중 가장 왼쪽에 있는 노드(j2)를 C_i로 설정하고(S2), 상기 C_i를 i(D)의 L노드로 생성한 후(S4), 프리픽스 길이 탐색 트리에서 j(4)의 S방향 하위 노드가 존재한가를 판단한다(S6).
상기 판단결과, j(4)의 S방향 하위 노드가 존재하면(S6에서 Y), j(4)의 하위노드 "6"을 C_j로 설정한 후(S8), C_i(j2)의 하위 노드 중 프리픽스 길이가 상기 C_j값(6)과 같은 노드가 존재하는가를 판단하여(S10), 만약 C_i(j2)의 하위 노드 중 프리픽스 길이가 상기 C_j값(6)과 같은 노드가 존재하면(S10에서 Y) L노드 생성(C_i, C_j)을 호출한다(S12). S12에 의해, L노드 그룹(b1, b2, b)이 생성된다.
만약 S10에서의 판단결과, 만약 C_i(j2)의 하위 노드 중 프리픽스 길이가 상기 C_j값(6)과 같은 노드가 존재하지 않으면(S10에서 N) i(D)의 하위 노드 중 C_i(j2)의 이웃노드가 존재하는가를 판단하고(S14), 상기 판단결과 i(D)의 하위 노드 중 C_i(j2)의 이웃노드가 존재하는가를 판단한다(S14).
이때, i(D)의 하위 노드 중 C_i(j2)의 이웃노드가 존재하는 것으로 판단되면(S14에서 Y), S노드 생성(C_i, j, i)을 호출한다(S20). S20에 의해, j2노드에 대한 S노드 그룹(f, g, h, i, f2, f1, k)이 생성되어진다.
반면, i(D)의 하위 노드 중 C_i의 이웃노드가 존재하지 않는 것으로 판단되면(S14에서 N), j(4)의 F 방향 하위 노드가 존재하는가를 판단하여(S22), j(4)의 F 방향 하위 노드의 존재가 판단되면 j(4)의 F방향 하위 노드(2)를 C_j로 설정하고(S24), i(D)의 하위 노드 중 프리픽스 길이가 C_j값(2)와 같은 노드들이 존재하는가를 판단한다(S26).
상기 판단결과, i(D)의 하위 노드 중 프리픽스 길이가 C_j값(2)와 같은 노드가 존재하면(S26에서 Y), C_i, C_j, i에 대한 U노드 생성을 호출한다(S30). S30에 의해, j2에 대한 U 노드 그룹(j, j1, c, d1, e, l, d2, d3, d4, a, d)이 생성된다.
도 8을 참조하여, S노드 생성(i, j, k) 과정을 설명한다. 여기서, i는 기준노드, j는 노드길이, k는 부모노드이다.
우선, i의 이웃노드를 S_i로 설정하고(S202), 상기 S_i를 i의 S노드로 생성하고, j의 S방향 하위노드가 존재하는가를 판단한 후(S206), j의 S방향에 하위노드가 존재하면(S206에서 Yes) j의 S방향 하위노드를 C_j로 설정한다(S208). 그런 다음, S_j의 하위 노드 중 프리픽스 길이가 C_j값과 같은 노드가 존재하는가를 판단하고(S210), 상기 판단결과 S_j의 하위 노드 중 프리픽스 길이가 C_j값과 같은 노드가 존재하면(S210에서 Y) S_i, C_i에 대한 L노드 생성을 호출하여(S212), S 노드 그룹내에서의 L노드들을 생성한다.
반면, 단계 S210에서의 판단결과 S_j의 하위 노드 중 프리픽스 길이가 C_j값과 같은 노드가 존재하지 않으면(S210에서 No), k의 하위노드 중 S_i의 이웃노드가 존재하는가를 판단한 후(S214), k의 하위노드 중 S_i의 이웃노드가 존재하면(S214) S_i, j, k에 대한 S노드 생성을 호출하여(S216), S 노드 그룹내에서의 S노드들을 생성한다.
S214의 판단결과, k의 하위노드 중 S_i의 이웃노드가 존재하지 않으면(S214에서 N) i, j, k에 대한 S노드 생성을 종료한다.
도 9을 참조하여, U노드 생성(i, j, k) 과정을 설명한다. 여기서, i는 기준노드, j는 노드길이, k는 부모노드이다.
우선, k의 하위노드 중 프리픽스 길이가 j값과 같은 노드 중 가장 왼쪽에 있는 노드를 U_i로 설정하고(S302), 상기 U_i를 i의 U노드로 생성하고(S304), j의 S방향 하위노드가 존재하는가를 판단한 후(S306), j의 S방향에 하위노드가 존재하면(S306에서 Yes) j의 S방향 하위노드를 C_j로 설정한다(S308). 그런 다음, U_j의 하위 노드 중 프리픽스 길이가 C_j값과 같은 노드가 존재하는가를 판단하고(S310), 상기 판단결과 U_j의 하위 노드 중 프리픽스 길이가 C_j값과 같은 노드가 존재하면(S310에서 Y) U_i, C_i에 대한 L노드 생성을 호출하여(S312), U 노드 그룹내에서의 L노드들을 생성한다.
반면, 단계 S310에서의 판단결과 U_j의 하위 노드 중 프리픽스 길이가 C_j값과 같은 노드가 존재하지 않으면(S310에서 No), k의 하위노드 중 U_i의 이웃노드가 존재하는가를 판단한 후(S314), k의 하위노드 중 U_i의 이웃노드가 존재하면(S314에서 Y) U_i, j, k에 대한 S노드 생성을 호출하여(S316), U 노드 그룹내에서의 S노드들을 생성한다.
S314의 판단결과, k의 하위노드 중 U_i의 이웃노드가 존재하지 않으면(S314에서 N), j의 F방향 하위노드가 존재하는가를 판단하여(S318), j의 F방향으로 하위노드가 존재하면(S318에서 Yes), j의 F방향 하위노드를 C_j로 설정하고(S320), k의 하위노드중 프리픽스 길이가 C_j의 값과 동일한 노드가 존재하는가를 판단한다(S322).
상기 판단결과, k의 하위노드중 프리픽스 길이가 C_j의 값과 동일한 노드가 존재하는 것으로 판단되면(S322에서 Yes), U_i, C_j, i에 대한 U노드 생성을 호출한 후(S324), i, j, k에 대한 S노드 생성을 종료한다. S324에 의해, U 노드 그룹내에서의 U노드들을 생성한다.
도 6 내지 도 9에 의하면, 도 5와 같은 프리픽스 길이를 고려한 트리가 생성된다.
이어, 도 10에 도시된 플로우차트를 참조하여 본 발명의 실시예에 따른 프리픽스 길이를 고려한 트리를 통해 BMP 탐색방법을 설명한다.
루트(D)를 C_N으로 설정하고, C_N을 BMP로 설정한 후(S40), C-N의 U노드를 C_U로, C_N의 S노드를 C_S로, C_L의 L노드를 C_L로 각각 설정한다(S42). C_S는 NULL, C_S는 NULL, C_L은 j2노드가 된다.
이어, C_N과 IP주소가 일치하는가를 판단하여(S44), 일치하면(S44에서 Y) C_N을 BMP로, C_L을 C_N으로 각각 설정한 후(S46), C_N이 NULL이 아니면(S48에서 N) S42로 진행하고, C_N이 NULL이면(S48에서 Y) BMP 탐색과정을 종료한다. 여기서, S46에서 BMP는 D노드가 되고, C_N은 j2노드가 된다.
따라서, S48의 판단결과에 따라 S42로 진행하여, C_N(j2)를 기준으로 C_U(j), C_S(f), 및 C_N(b1)을 각각 설정한 후, S44로 진행하여 C_N과 목적지 IP주소의 일치여부를 판단한다.
S44의 판단결과, C_N과 목적지 IP 주소가 일치하지 않으면(S44에서 N) S50으로 진행하여 S노드를 탐색하고, C_N과 목적지 IP 주소가 일치하면(S44에서 Y) S46으로 진행하여 N노드를 탐색한다.
S노드의 탐색을 위해, 먼저 C_S를 C_N으로 설정하고(S50), C_N이 NULL인가를 판단한 후(C52), C_N이 NULL이 아니면(S54) C_N의 S노드를 C_S로 설정하고, C_N의 L노드를 C_L로 설정한 후(S54), S44로 진행하여 해당 S노드에 대한 N노드를 탐색한다.
그러나, S52의 판단결과 C_N이 NULL이면 U노드를 탐색하는데(S56), U노드의 탐색을 위해 C_U를 C_N으로 설정한 후(S56), C_N이 NULL이 아니면(S58에서 N) S42로 진행하여 U노드에 해당하는 C_N에 대한 N노드 탐색을 수행한다. 그러나, 이와 달리 S58의 판단결과 C_N이 NULL이면(S58에서 Y) 상술되어진 일련의 BMP 탐색과정을 종료한다.
상술한 과정에 의한 BMP 탐색과정에 의하면, 루트를 기준으로 L노드를 탐색하고 실패하면 S노드를 탐색하고, S노드를 실패하면 U노드를 탐색하며, S노드 탐색시 S노드에 대한 L노드, S노드, U노드를 순차적으로 탐색하고, U노드 탐색시 U노드에 대한 L노드, S노드, U노드를 순차적으로 탐색하는 순으로 BMP를 탐색한다.
이상 설명한 바와 같은 본 발명에 의하면, 인터넷 라우팅 시스템의 IP 주소 탐색 절차에서 불필요한 탐색 과정을 최소화함으로써 라우팅 효율을 향상시켜 IP망의 데이터 처리 속도를 개선할 수 있다는 효과가 있다.
한편, 본 발명은 상술한 실시예로만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 수정 및 변형하여 실시할 수 있고, 이러한 수정 및 변경 등은 이하의 특허 청구의 범위에 속하는 것으로 보아야 할 것이다.
도 1은 종래 이중트리구조를 나타낸 도면.
도 2a는 종래 프리픽스 길이에 대한 이중 탐색 트리 구조를 나타낸 도면.
도 2b는 종래 프리픽스 길이에 대한 이중 탐색 기법에 사용되는 프리픽스 길이 트리 구조를 나타낸 도면.
도 3a는 본 발명의 실시예에 따른 확장이중트리 구조를 나타낸 도면.
도 3b는 본 발명의 실시예에 따른 프리픽스 길이 트리 구조를 나타낸 도면.
도 4a와 도 4b는 본 발명의 실시예에 따른 확장이중트리 생성예를 나타낸 도면.
도 4c는 본 발명의 실시예에 따른 확장이중트리 생성방법을 설명하기 위한 플로우차트.
도 5는 본 발명의 실시예에 따른 확장이중트리 구조를 나타낸 도면.
도 6 내지 도 9는 본 발명의 실시예에 따른 프리픽스 길이를 고려한 트리생성방법을 설명하기 위한 플로우차트.
도 10은 본 발명의 실시예에 따른 프리픽스 길이를 고려한 트리를 이용한 IP 주소탐색방법을 설명하기 위한 플로우차트.

Claims (13)

  1. 이중트리의 중간마디 사이에 가상 노드를 생성하여 확장이중트리를 구성하는 제 1 과정과;
    상기 확장이중트리와 프리픽스 길이 트리를 근거로 상기 확장이중트리의 루트를 기준으로 각 노드의 프리픽스길이에 따라 L노드, S노드, 및 U노드를 순차적으로 생성하여 프리픽스 길이를 고려한 트리를 구성하는 제 2 과정을 구비한 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  2. 제 1 항에 있어서, 상기 제 1 과정은 상기 이중트리에 대해 새로운 프리픽스를 삽입/변경하는 경우,
    상기 이중트리의 현재 노드에 상기 프리픽스의 첫번째 비트에 대응하는 하위 노드가 존재하는가를 판단하는 제 1 단계;
    만약 상기 하위 노드가 존재하면 현재 노드를 상기 하위 노드로 변경하고, 상기 프리픽스의 마지막 비트인가를 확인한 후, 만약 마지막 비트가 아니면 상기 프리픽스의 다음 차순의 비트에 대해 상기 제 1 과정을 다시 수행하는 제 2 단계;
    만약 상기 하위 노드가 존재하지 않으면 상기 현재 노드의 하위 노드에 가상 노드를 생성한 후 상기 비트가 상기 프리픽스의 마지막 비트인가를 확인하는 제 3 단계;
    만약 마지막 비트가 아니면 현재 노드를 상기 가상 노드로 변경한 상태에서 다음 차순의 비트에 대해 상기 제 3 단계를 수행하는 제 4 단계; 및
    상기 제 2 단계와 상기 3 단계에서 상기 비트가 상기 프리픽스의 마지막 비트로 확인되면, 상기 현재 노드의 하위노드로 가상 노드가 존재하는가를 판단하여, 만약 가상 노드가 존재하면 상기 가상 노드의 인터페이스를 상기 현재 노드의 인터페이스로 변경시키는 제 5 단계를 구비함을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  3. 제 2 항에 있어서, 상기 제 2 단계에서
    상기 하위 노드를 현재 노드로 변경한 후, 상기 하위 노드의 인터페이스를 상기 현재 노드의 인터페이스로 설정하는 과정을 더 포함함을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  4. 제 2 항에 있어서, 상기 제 4 단계에서
    상기 가상 노드를 현재 노드로 변경한 후, 상기 제 1 단계의 현재 노드의 인터페이스를 상기 변경된 현재 노드의 인터페이스로 설정하는 과정을 더 포함함을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  5. 제 1 항에 있어서, 상기 제 2 과정에서 상기 L노드는
    상기 확장이중트리에서 분기되는 하위 노드들 중 상기 프리픽스 길이 트리의 S방향 하위 노드의 값과 같은 길이를 가진 노드들 중 가장 왼쪽 노드인 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  6. 제 5 항에 있어서, 상기 제 2 과정에서 상기 S노드는
    상기 확장이중트리에서 상기 L노드와 같은 길이를 갖는 노드들 중 가장 왼쪽 노드인 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  7. 제 6 항에 있어서, 상기 제 2 과정에서 상기 U노드는
    상기 확장이중트리에서 분기되는 하위 노드들 중 상기 프리픽스 길이 트리의 F방향 하위 노드의 값과 같은 길이를 가진 노드들 중 가장 왼쪽 노드인 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  8. 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 L노드에서 분기되는 L노드, S노드, 및 U노드를 순차적으로 생성하는 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  9. 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 S노드에서 분기되는 L노드, S노드, 및 U노드를 순차적으로 생성하는 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  10. 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 U노드에서 분기되는 L노드, S노드, 및 U노드를 순차적으로 생성하는 것을 특징으로 하는 프리픽스 길이를 고려한 트리생성방법.
  11. 프리픽스 길이를 고려한 트리에서의 IP 주소 탐색 방법에 있어서,
    상기 트리의 특정 노드에서 BMP가 검출되면, 상기 노드의 L노드를 탐색하여 BMP를 검출하는 제 1 과정;
    만약, 상기 특정 노드에서 BMP가 검출되지 않으면, 상기 노드의 S노드를 탐색하여 BMP를 검출하는 제 2 과정; 및
    만약, 상기 S노드에서도 BMP가 탐색되지 않으면 상기 노드의 U노드를 탐색하여 BMP를 검출하는 제 3 과정을 구비한 것을 특징으로 하는 IP 주소 탐색 방법.
  12. 제 11 항에 있어서, 상기 제 2 과정은
    상기 S노드가 존재하지 않으면 상기 제 3 과정으로 진행하는 제 1 단계;
    만약 상기 S노드가 존재하면 상기 S노드가 수신 IP 주소와 일치하는가를 판단하여, 상기 S 노드가 수신 IP 주소와 일치하면 상기 S노드를 BMP로 설정하고, 상기 S노드의 하위 L노드를 현재 노드로 설정하는 제 2 단계; 및
    상기 현재 노드가 존재하지 않으면 상기 일련의 과정을 종료하고, 상기 현재 노드가 존재하면 상기 현재 노드를 기준으로 상기 제 1 과정 내지 상기 제 3 과정을 수행하는 제 3 단계로 구성된 것을 특징으로 하는 IP 주소 탐색 방법.
  13. 제 11 항에 있어서, 상기 제 3 과정은
    상기 U노드가 존재하면 상기 U노드를 현재 노드로 설정하는 제 4 단계와;
    만약 상기 현재 노드가 존재하지 않으면 일련의 과정을 종료하고, 만약 상기 현재 노드가 존재하면 상기 제 1 과정 내지 상기 제 3 과정을 수행하는 제 5 단계를 구비함을 특징으로 하는 IP 주소 탐색 방법.
KR1020030101610A 2003-12-31 2003-12-31 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법 KR20050069470A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030101610A KR20050069470A (ko) 2003-12-31 2003-12-31 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030101610A KR20050069470A (ko) 2003-12-31 2003-12-31 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법

Publications (1)

Publication Number Publication Date
KR20050069470A true KR20050069470A (ko) 2005-07-05

Family

ID=37259875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030101610A KR20050069470A (ko) 2003-12-31 2003-12-31 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법

Country Status (1)

Country Link
KR (1) KR20050069470A (ko)

Similar Documents

Publication Publication Date Title
JP4614946B2 (ja) 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法
US6633548B2 (en) Method and apparatus for ternary content addressable memory (TCAM) table management
CN101577662B (zh) 一种基于树形数据结构的最长前缀匹配方法和装置
US5946679A (en) System and method for locating a route in a route table using hashing and compressed radix tree searching
US7440304B1 (en) Multiple string searching using ternary content addressable memory
US6880064B1 (en) Method and apparatus for physical width expansion of a longest prefix match lookup table
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
JP2003196295A (ja) ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法
US8289853B2 (en) Method of accelerating the shortest path problem
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
JP3782950B2 (ja) 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
US6963924B1 (en) IP routing lookup scheme and system for multi-gigabit switching routers
US7460538B2 (en) Communication control apparatus and method for searching an internet protocol address
WO2005091577A1 (en) Method, article of manufacture and network device to support a large internet protocol forwarding information base
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US6925503B2 (en) Method and system for performing a longest prefix match search
KR100472275B1 (ko) 경로 검색 시스템 및 그 방법과 그것에 사용되는 라우터장치
CN106302178B (zh) 一种路由查询方法及装置
JP3569802B2 (ja) ルーティングテーブル検索装置および検索法
KR20050069470A (ko) 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법
KR100686732B1 (ko) 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터
CA2435821C (en) Address retrieval apparatus
US10764182B2 (en) Combining prefix lengths into a hash table
EP3269101B1 (en) Generating a hash table in accordance with a prefix length

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid