KR20040051906A - An internet protocol packet address lookup method and apparatus for a backbone router - Google Patents

An internet protocol packet address lookup method and apparatus for a backbone router Download PDF

Info

Publication number
KR20040051906A
KR20040051906A KR1020020079600A KR20020079600A KR20040051906A KR 20040051906 A KR20040051906 A KR 20040051906A KR 1020020079600 A KR1020020079600 A KR 1020020079600A KR 20020079600 A KR20020079600 A KR 20020079600A KR 20040051906 A KR20040051906 A KR 20040051906A
Authority
KR
South Korea
Prior art keywords
packet
node
address
forwarding
tree
Prior art date
Application number
KR1020020079600A
Other languages
Korean (ko)
Other versions
KR100473118B1 (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 KR10-2002-0079600A priority Critical patent/KR100473118B1/en
Publication of KR20040051906A publication Critical patent/KR20040051906A/en
Application granted granted Critical
Publication of KR100473118B1 publication Critical patent/KR100473118B1/en

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/54Organization of routing tables
    • 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/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

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

PURPOSE: A method and an apparatus for performing address look-up on an IP packet for a backbone router are provided to maximize packet processing performance by minimizing calculation load of a packet forwarding process. CONSTITUTION: Relay nodes(112b) include position information of child nodes. Termination nodes indicate an entry of a corresponding forwarding information base. A master node(112a) exists at the uppermost position and includes multi-bit search information for the initial uppermost 16 bits. Considering that a network address in an IPv6 global unicast address system consists of upper 64 bits, tree search is performed on the 64 bits. Namely, a multi-bit tree search is first performed on the uppermost 16 bits, and then, the multi-bit tree search is repeatedly performed by extracting every uppermost 8 bits.

Description

백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그 장치 {AN INTERNET PROTOCOL PACKET ADDRESS LOOKUP METHOD AND APPARATUS FOR A BACKBONE ROUTER}IP packet address lookup method for backbone router and its device {AN INTERNET PROTOCOL PACKET ADDRESS LOOKUP METHOD AND APPARATUS FOR A BACKBONE ROUTER}

본 발명은 IP(Internet protocol) 패킷 처리 방법 및 그 장치에 관한 것으로서, 보다 상세하게는 IPv6(IP version 6) 주소 체계를 따르는 패킷에 대하여 주소 룩업을 수행하는 방법 및 그 장치에 관한 것이다.The present invention relates to a method and apparatus for processing an Internet protocol (IP) packet, and more particularly, to a method and apparatus for performing an address lookup for a packet conforming to an IP version 6 (IPv6) address system.

현재 Gbps급 이상의 고속 라우터 시스템은 패킷처리 성능을 높이고 다양한 프로토콜을 효과적으로 수용하기 위하여 패킷 제어 플레인(Packet Control Plane)과 패킷 포워딩 플레인(Packet Forwarding Plane)을 분리하면서 패킷처리 부하를 포워딩 플레인을 구성하는 각 라인 인터페이스로 분산시킨 구조를 채택하고 있다. 이러한 분산구조에서 라우터의 패킷처리 성능은 각 라인인터페이스에서의 패킷 포워딩 성능에 의하여 좌우되게 된다.Current high-speed router system of Gbps or higher classifies the packet processing load and separates the packet control plane and the packet forwarding plane to improve packet processing performance and effectively accommodate various protocols. The structure distributed by the line interface is adopted. In this distributed architecture, the packet processing performance of the router depends on the packet forwarding performance at each line interface.

현재 대부분의 상용 라우터는 32비트의 IPv4 주소체계의 패킷 포워딩 처리에 최적화되어 있다. 그러나 인터넷 주소고갈 해결 및 다양한 인터넷 서비스 수용이라는 당면과제의 해결책으로 128비트의 주소체계를 갖는 IPv6가 대두됨에 따라 라우터가 IPv6 주소체계를 갖는 패킷에 대한 처리를 지원할 필요가 있게 되었다. IPv6 패킷 포워딩 처리 과정에서 성능에 가장 큰 영향을 주는 요소로 128비트 주소 룩업이 있다. IP 패킷 룩업이 LPM(Longest Prefix Matching) 기반의 처리를 요구함에따라 검색키의 길이에 따른 IP 룩업의 처리 부하가 기하급수적으로 증가하게 된다.Most commercial routers are currently optimized for packet forwarding with 32-bit IPv4 addressing. However, as IPv6 with 128-bit address system has emerged as a solution to the challenges of address depletion and acceptance of various Internet services, routers need to support processing of packets having an IPv6 address system. The biggest factor affecting performance during IPv6 packet forwarding is 128-bit address lookup. As IP packet lookup requires processing based on Longest Prefix Matching (LPM), the processing load of IP lookup increases exponentially with the length of the search key.

이를 해결하기 위하여 CAM(Content Address Memory, 이하 CAM이라 함)을 이용한 솔루션이 제안되고 있으나 이 솔루션은 CAM 소자가 갖는 낮은 집적 효율 및 고전력 소모라는 문제점을 내포하고 있다.In order to solve this problem, a solution using CAM (Content Address Memory, CAM) has been proposed, but this solution has a problem of low integration efficiency and high power consumption of the CAM device.

따라서, 기존의 범용 메모리를 사용하면서 IPv6 룩업을 효과적으로 지원하는 방법이 필수적으로 요구된다.Therefore, a method of effectively supporting IPv6 lookup while using existing general-purpose memory is required.

관련 기술로는, 권리권자가 최병철, 정연쾌인 [특허명칭 : 라우터 시스템에서의 파이프 라인 룩업 처리를 위한 포워딩 엔진 장치, 등록 번호 : 10-2001- 310288호]의 특허가 있는데, 이는 ATM 기반의 MPLS 라우팅 시스템을 위하여 CAM이라는 룩업용 특수 메모리 소자를 이용하여 MPLS 레이블 룩업을 수행하는 방법을 제안하고 있다. 그러나, 이러한 특허 역시 주소 룩업을 위한 고가의 전용 메모리 소자가 필요하다.Related patents include patent rights holder Byeong-cheol Choi, Yeon-Jeong Jung [Patent Name: Forwarding Engine Device for Pipeline Lookup Processing in Router System, Registration No. 10-2001-310288], which is based on MPLS. For routing systems, a method of performing MPLS label lookup using a special memory device for lookup (CAM) is proposed. However, these patents also require expensive dedicated memory devices for address lookup.

본 발명이 이루고자 하는 기술적 과제는 이러한 문제점을 해결하기 위한 것으로서, IPv6 주소 체계 룩업으로 인하여 발생하는 패킷 포워딩 과정의 연산 부하를 최소화함으로써 패킷 처리 성능을 극대화할 뿐만 아니라, 메모리 사용 효율을 향상시킬 수 있는 백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그 장치를 제공하기 위한 것이다.The technical problem to be solved by the present invention is to solve this problem, by minimizing the computational load of the packet forwarding process caused by IPv6 address scheme lookup to maximize the packet processing performance, it is possible to improve the memory usage efficiency An IP packet address lookup method for a backbone router and an apparatus thereof are provided.

도 1은 본 발명의 실시예에 따른 아이피 패킷 주소 룩업 방법에 따른 라우터의 내부 구성을 도시한 도면이다.1 is a diagram illustrating an internal configuration of a router according to an IP packet address lookup method according to an exemplary embodiment of the present invention.

도 2는 도 1에 도시된 포워딩 정보 베이스의 내부 구성도이다.FIG. 2 is a diagram illustrating an internal configuration of the forwarding information base shown in FIG. 1.

도 3은 도 1에 도시된 트리 검색부에 적용될 IPv6 네트워크 주소 룩업 알고리즘을 위한 검색 트리의 구조도이다.3 is a structural diagram of a search tree for an IPv6 network address lookup algorithm to be applied to the tree search unit shown in FIG.

도 4는 본 발명의 실시예에 따른 검색 트리를 구성하는 노드의 구조도이다.4 is a structural diagram of nodes constituting a search tree according to an embodiment of the present invention.

도 5는 도 1에 도시된 트리 관리부의 트리 구축 및 갱신 알고리즘을 순차적으로 도시한 흐름도이다.5 is a flowchart sequentially illustrating a tree construction and update algorithm of the tree manager shown in FIG. 1.

도 6은 도 5에 따른 트리 노드 설정 알고리즘을 순차적으로 도시한 흐름도이다.6 is a flowchart sequentially illustrating a tree node setting algorithm according to FIG. 5.

도 7은 도 1에 도시된 트리 검색부의 다중비트 검색키 기반의 트리 검색 알고리즘을 순차적으로 도시한 흐름도이다.7 is a flowchart sequentially illustrating a tree search algorithm based on a multi-bit search key of the tree search unit illustrated in FIG. 1.

※도면의 주요부분에 대한 부호의 설명※※ Explanation of symbols about main part of drawing ※

100 : 라우터100: router

110 : 패킷 룩업 엔진부 111 : 패킷 프로세서 유닛110: packet lookup engine unit 111: packet processor unit

112 : 트리 검색부 113 : 트리 관리부112: tree search unit 113: tree management unit

114 : 포워딩 정보 베이스 120 : 트래픽 관리 엔진부114: forwarding information base 120: traffic management engine unit

이러한 목적을 달성하기 위한 본 발명에 따른 백본 라우터를 위한 아이피 패킷 주소 룩업 방법은, 백본 라우터로 유입되는 아이피 패킷(IP PACKET)의 주소를 룩업(LOOKUP)하는 방법에 있어서, a)라우터로 유입되는 패킷의 헤더(HEADER)를 분석하는 단계; b)상기 분석된 결과에 따른 주소 룩업 알고리즘에 따라 제1 데이터베이스를 검색하여 상기 패킷의 포워딩 경로에 대한 정보를 획득하는 단계; c)상기 획득한 패킷의 포워딩 경로에 따라 경로를 설정한 후, 상기 설정된 포워딩 경로별로 요구되는 서비스 품질 처리를 수행하는 단계; 및 d)상기 주소 룩업 알고리즘이 적용되도록 상기 제1 데이터베이스를 구축하고 유지하는 단계를 포함하는 것을 특징으로 한다.IP packet address lookup method for a backbone router according to the present invention for achieving the above object, in the method of lookup (LOOKUP) the address of the IP packet (IP PACKET) flowing into the backbone router, a) flowing into the router Analyzing a header of the packet; b) searching for a first database according to an address lookup algorithm according to the analyzed result to obtain information about a forwarding path of the packet; c) setting a path according to the forwarding path of the obtained packet and performing a service quality process required for each of the forwarding paths; And d) building and maintaining the first database such that the address lookup algorithm is applied.

또한, 본 발명의 다른 특징에 따른 백본 라우터를 위한 아이피 패킷 주소 룩업 장치는, 백본 라우터로 유입되는 아이피 패킷(IP PACKET)의 주소를 룩업(LOOKUP)하는 장치에 있어서, 라우터로 유입된 패킷(PACKET)의 주소 룩업 과정을 수행하는 패킷 룩업 엔진; 및 상기 수행된 주소 룩업 결과에 따라 패킷별 포워딩 경로를 설정한 후, 상기 설정된 포워딩 경로별로 요구되는 서비스 품질 처리를 수행하는 트래픽 관리 엔진을 포함하며, 상기 패킷 룩업 엔진은, 상기 유입된 패킷의 헤더(HEADER)를 분석 및 처리하는 패킷 프로세서 유닛; 상기 분석된 결과에 따른 주소 룩업 알고리즘에 따라 제1 데이터베이스를 검색하여 상기 패킷의 포워딩 경로에 대한 정보를 획득하는 트리 검색부; 및 상기 주소 룩업 알고리즘이 적용되도록 상기 제1 데이터베이스를 구축하고 유지하는 트리 관리부를 포함하는 것을 특징으로 한다.In addition, the IP packet address lookup device for a backbone router according to another aspect of the present invention, in the device for looking up the address of the IP packet (IP PACKET) flowing into the backbone router, the packet (PACKET) flowed into the router A packet lookup engine for performing an address lookup process; And a traffic management engine configured to set a forwarding path for each packet according to the performed address lookup result, and then perform a service quality process required for each set forwarding path, wherein the packet lookup engine includes: a header of the incoming packet; A packet processor unit for analyzing and processing HEADER; A tree search unit for searching a first database and obtaining information about a forwarding path of the packet according to an address lookup algorithm based on the analyzed result; And a tree manager configured to construct and maintain the first database so that the address lookup algorithm is applied.

또한, 본 발명의 다른 특징에 따른, 백본 라우터로 유입되는 아이피 패킷(IPPACKET)의 주소를 룩업(LOOKUP)하는 방법을 포함하는 기록매체에 있어서, a)라우터로 유입되는 패킷의 헤더(HEADER)를 분석하는 기능; b)상기 분석된 결과에 따른 주소 룩업 알고리즘에 따라 제1 데이터베이스를 검색하여 상기 패킷의 포워딩 경로에 대한 정보를 획득하는 기능; c)상기 획득한 패킷의 포워딩 경로에 따라 경로를 설정한 후, 상기 설정된 포워딩 경로별로 요구되는 서비스 품질 처리를 수행하는 기능; 및, d)상기 주소 룩업 알고리즘이 적용되도록 상기 제1 데이터베이스를 구축하고 유지하는 기능을 포함하는 프로그램이 저장된 기록매체를 특징으로 한다.In addition, according to another aspect of the present invention, a recording medium comprising a method for looking up the address of an IP packet (IPPACKET) flowing into the backbone router, a) a header (HEADER) of the packet flowing into the router The ability to analyze; b) searching for a first database according to an address lookup algorithm based on the analyzed result to obtain information about a forwarding path of the packet; c) a function of setting a path according to the forwarding path of the obtained packet and then performing a service quality process required for each of the forwarding paths; And d) a recording medium storing a program including a function of constructing and maintaining the first database so that the address lookup algorithm is applied.

이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 아이피 패킷 주소 룩업 방법에 따른 라우터의 내부 구성을 도시한 도면이다.1 is a diagram illustrating an internal configuration of a router according to an IP packet address lookup method according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 아이피 패킷(Internet Protocol packet) 주소 룩업(lookup) 장치는 라우터(100)의 라인카드 상에 존재하며, 이는 크게 룩업 엔진부(110)와 트래픽 관리 엔진부(120)로 이루어진다.Referring to FIG. 1, an IP protocol address lookup apparatus according to an exemplary embodiment of the present invention exists on a line card of a router 100, which is largely based on the lookup engine 110 and traffic management. It consists of the engine unit 120.

이하 본 발명의 실시예에서는 아이피 패킷 주소 룩업을 수행함에 있어, 주요 기능을 수행하는 구성 요소들에 대해 언급하기로 한다. 또한, 본 발명은 이러한 구성 요소들로 한정되는 것이 아니고, 그 외 다른 구성 요소들을 포함할 수도 있다.In the following embodiment of the present invention, in performing the IP packet address lookup, it will be described with respect to the components that perform the main function. In addition, the present invention is not limited to these components, and may include other components.

자세히 설명하면, 먼저 패킷 룩업 엔진부(100)는 본 발명의 실시예에 따른 IPv6 주소 룩업을 수행하는데, 본 발명에서는 이러한 주소 룩업 처리 성능을 높이기 위하여 다중 패킷 프로세서 유닛을 사용한다. 즉, 각 패킷 프로세서 유닛이 전용화된 포워딩 트리 엔진을 가지고 있어, 주소 룩업 알고리즘을 고속으로 병렬 처리하는 것이다.In detail, first, the packet lookup engine unit 100 performs an IPv6 address lookup according to an embodiment of the present invention. In the present invention, the multi-packet processor unit is used to increase the address lookup processing performance. In other words, each packet processor unit has a dedicated forwarding tree engine to perform parallel processing of the address lookup algorithm at high speed.

이에 따라, 패킷 룩업 엔진부(110)는 패킷 프로세서 유닛(111), 트리 검색부(112) 및 트리 관리부(113)를 포함한다. 이중, 패킷 프로세서 유닛(111)은 유입된 패킷에 대한 헤더(header) 처리를 수행하며, 트리 검색부(112)는 본 발명의 실시예에 의한 주소 룩업 알고리즘에 따라 포워딩 정보 베이스(114)를 검색하여 포워딩 경로에 대한 정보를 획득하며, 트리 관리부(113)는 본 발명에 의한 룩업 알고리즘이 적용되도록 포워딩 정보 베이스(114)를 구축하고 유지한다.Accordingly, the packet lookup engine unit 110 includes a packet processor unit 111, a tree search unit 112, and a tree manager 113. Among these, the packet processor unit 111 performs header processing on the incoming packet, and the tree search unit 112 searches the forwarding information base 114 according to the address lookup algorithm according to the embodiment of the present invention. By obtaining the information on the forwarding path, the tree manager 113 builds and maintains the forwarding information base 114 so that the lookup algorithm according to the present invention is applied.

즉, 패킷 룩업 엔진부(110)는 라우터(100)의 라인 카드로 유입된 패킷에 대해 주소 룩업 과정을 수행한 후, 이를 트래픽 관리 엔진부(120)로 전송하며, 이를 수신한 트래픽 관리 엔진부(120)는 수행된 룩업 결과에 따라 포워딩 경로를 설정한 후, 설정된 각 포워딩 경로별로 요구되는 서비스 품질(QoS) 처리를 수행한다.That is, the packet lookup engine unit 110 performs an address lookup process on the packet introduced into the line card of the router 100, and then transmits it to the traffic management engine unit 120, which receives the traffic management engine unit. 120 sets a forwarding path according to the performed lookup result, and then performs a required quality of service (QoS) process for each forwarding path.

여기서, 해당 패킷에 대한 주소 룩업 과정 결과를 정장하는 포워딩 정보(114)에 대해 첨부된 도면을 통해 자세히 알아보면 다음과 같다.Here, the forwarding information 114 suiting the result of the address lookup process for the packet will be described in detail with reference to the accompanying drawings.

도 2는 도 1에 도시된 포워딩 정보 베이스의 내부 구성도이다.FIG. 2 is a diagram illustrating an internal configuration of the forwarding information base shown in FIG. 1.

도 2를 참조하면, 포워딩 정보 베이스(114)는 다수의 포워딩 엔트리 (forwarding entry)로 구성되며, 이러한 각 포워딩 엔트리는 목적지 IPv6 주소(114a), 프리픽스 길이(114b), 스위칭과 서비스 품질(QoS) 설정 관련 정보를 포함한 포워딩 정보(114c)를 포함한다.Referring to Figure 2, the forwarding information base 114 is composed of a number of forwarding entries, each of which forwarding entry is a destination IPv6 address 114a, prefix length 114b, switching and quality of service (QoS) Forwarding information 114c including setting related information.

이러한 구조로 이루어진 포워딩 정보 베이스(114)에서 해당 정보를 검색하여 포워딩 경로에 대한 정보를 획득하는 트리 검색부(112)에 적용될 네트워크 주소 룩업 알고리즘을 위한 검색 트리 구조에 대해 첨부된 도면을 참조하여 알아보면 다음과 같다.The search tree structure for the network address lookup algorithm to be applied to the tree search unit 112 which retrieves the corresponding information from the forwarding information base 114 having such a structure and obtains the information about the forwarding path will be described with reference to the accompanying drawings. If you look like this:

도 3은 도 1에 도시된 트리 검색부에 적용될 IPv6 네트워크 주소 룩업 알고리즘을 위한 검색 트리의 구조도이다.3 is a structural diagram of a search tree for an IPv6 network address lookup algorithm to be applied to the tree search unit shown in FIG.

도 3에 도시되어 있듯이, 본 발명의 실시예에 따른 트리(tree)는 마스터 노드(master node), 중계 노드(transit node) 및 종단 노드(leaf node)에 따른 세 가지 형태의 트리 노드로 이루어진다.As shown in FIG. 3, a tree according to an embodiment of the present invention is composed of three types of tree nodes according to a master node, a relay node, and a leaf node.

자세히 설명하면, 도 3의 백색으로 표시된 노드(○)는 다음 레벨에 있는 자식 노드(child node)들의 위치 정보를 포함한 중계 노드이며, 흑색으로 표시된 노드(●)는 해당 포워딩 정보 베이스의 엔트리를 나타내는 종단 노드이며, 최상위에 존재하는 노드는 마스터 노드라고 정의하며, 최초 최상위 16비트에 대한 다중비트 검색 정보를 포함한다.In detail, the node (○) indicated by white in FIG. 3 is a relay node including location information of child nodes at a next level, and the node (●) indicated by black indicates an entry of the corresponding forwarding information base. An end node, which is located at the top, is defined as a master node, and contains multi-bit search information for the first most significant 16 bits.

IPv6의 글로벌 유니캐스트 주소 체계에서의 네트워크 주소는 상위 64비트로 구성되는데, 이를 고려하여 본 발명의 실시예에서는 도 3에서 제시한 것처럼 총 64비트에 대한 트리 검색을 수행한다. 즉, 최초에는 최상위 16비트에 대하여 다중비트 트리 검색(multibit tree search)을 수행하고, 그 이후에는 최상위 8비트씩 추출하여 이를 검색키로 다중 비트 트리 검색을 반복적으로 수행한다.The network address in the global unicast address system of IPv6 is composed of upper 64 bits. In consideration of this, the tree search for a total of 64 bits is performed as shown in FIG. 3. That is, a multibit tree search is first performed on the most significant 16 bits, and after that, the most significant 8 bits are extracted, and a multibit tree search is repeatedly performed using the search key.

이에 따라, 본 발명은 글로벌 IPv6 유니캐스트 주소에 대한 룩업을 위하여최대 7번의 노드 검색과 1번의 포워딩 정보 베이스 검색을 수행한다. 또한, 도 3을 참조하면 최상위 마스터 노드만이 총 65536개의 노드 엔트리를 가지게 되며, 그 외의 다른 노드들은 총 256개의 고정된 노드 엔트리를 가지게 된다.Accordingly, the present invention performs up to seven node searches and one forwarding information base search to look up a global IPv6 unicast address. In addition, referring to FIG. 3, only the highest master node has a total of 65536 node entries, and other nodes have a total of 256 fixed node entries.

이와 같이, 본 발명의 실시예에 따른 트리 구조는 최초 최상위 16비트에 대하여 다중비트 트리를 구성함으로써, 트리가 횡방향으로 압축되는 효과를 발생시킨다.As such, the tree structure according to the embodiment of the present invention constitutes a multi-bit tree for the first most significant 16 bits, thereby generating the effect of the tree being compressed laterally.

또한, IPv6 주소 할당 정책에 의하면 최상위 16비트에 해당하는 값은 특정 목적에 따라 정해진 값을 갖도록 하는데, 예를 들어 현재 대표적인 IPv6 시험망인 6Bone을 위해서 최상위 16비트에 해당하는 값이 16진수 3FFE의 값을 갖도록 규정되어 있으며, 지역별 공인 IPv6 주소는 최상위 16비트에 해당하는 값을 16진수 2001의 값을 갖도록 규정하고 있다. 따라서, 최상위 16비트에 대한 다중비트 노드들은 대부분 종단 노드가 되며, 몇 개의 노드에 대해서만 하부 트리가 확장되게 된다.In addition, according to the IPv6 address allocation policy, the value corresponding to the top 16 bits has a value determined according to a specific purpose. For example, the value corresponding to the top 16 bits for the 6Bone, which is the representative IPv6 test network, is the value of the hexadecimal 3FFE. The public IPv6 address of each region is required to have the hexadecimal value 2001 as the highest 16-bit value. Therefore, multibit nodes for the most significant 16 bits are mostly end nodes, and the bottom tree is expanded only for a few nodes.

도 4는 본 발명의 실시예에 따른 검색 트리를 구성하는 각 노드의 구조도이다.4 is a structural diagram of each node constituting a search tree according to an embodiment of the present invention.

도 4에 도시되어 있듯이, 본 발명에 의한 검색 트리의 각 노드는 단순한 구조를 갖으며, 이는 노드의 구축 및 관리시 편리함을 제공한다.As shown in Fig. 4, each node of the search tree according to the present invention has a simple structure, which provides convenience in constructing and managing nodes.

자세히 설명하면, 각 노드는 32비트의 노드 엔트리들로 구성되면, 이러한 노드 엔트리는 최상위 1비트의 포인터 타입과 나머지 31비트의 포인터 값으로 구성된다.In detail, each node is composed of 32-bit node entries, and this node entry is composed of a pointer type of the most significant 1 bit and a pointer value of the remaining 31 bits.

포인터 타입이 1로 설정되면 해당 노드 엔트리가 종단 노드 엔트리임을 의미하며, 0으로 설정되면 해당 노드 엔트리가 중계 노드 엔트리임을 의미한다.If the pointer type is set to 1, it means that the node entry is an end node entry. If it is set to 0, it means that the node entry is a relay node entry.

종단 노드 엔트리일 경우, 포인터 값은 포워딩 정보 베이스상의 해당 포워딩 정보 엔트리를 나타내며, 중계 노드 엔트리일 경우에는 자식 노드의 베이스 주소가 포인터 값으로 지정된다. 지정된 포인터 값은 실제 메모리 상의 주소를 나타내게 되는데, 본 발명에서는 31비트의 주소를 사용함에 따라 2기가 바이트(giga byte)의 메모리 영역을 사용할 수 있으며, 이는 현재 기간망 라우터에서 요구되는 수십만개 이상에 달하는 포워딩 정보를 저장하기에 충분한 용량이 된다.In the case of an end node entry, the pointer value indicates a corresponding forwarding information entry on the forwarding information base. In the case of a relay node entry, the base address of the child node is designated as the pointer value. The specified pointer value represents an address on the physical memory. In the present invention, using a 31-bit address, the memory area of 2 gigabytes can be used, which is more than the hundreds of thousands required by the current backbone router. There is sufficient capacity to store the forwarding information.

도 5는 도 1에 도시된 트리 관리부의 트리 구축 및 갱신 알고리즘을 순차적으로 도시한 흐름도이다.5 is a flowchart sequentially illustrating a tree construction and update algorithm of the tree manager shown in FIG. 1.

도시되어 있듯이, 크게 트리 구축 단계와 트리 갱신 단계로 이루어진다. 즉, 트리 관리부(113)는 포워딩 정보 베이스(114)의 초기화 확인(S510)을 통해 포워딩 정보 베이스(114)가 최초 구축인 것으로 판명되면, 트리 구축 알고리즘을 수행하며, 최초 구축이 아닌 기 구축된 포워딩 정보 베이스(114)에 대한 갱신이 요구되면, 트리 갱신 알고리즘을 수행한다.As shown, the tree consists of a tree construction step and a tree update step. That is, when the forwarding information base 114 is found to be the first construction through the initialization confirmation (S510) of the forwarding information base 114, the tree manager 113 performs a tree construction algorithm, and not the first construction. If an update to the forwarding information base 114 is required, a tree update algorithm is performed.

먼저 트리 구축 알고리즘에 대해 자세히 설명하면, 먼저 트리 관리부(113)는 메모리상에 포워딩 정보 베이스(114)를 위한 영역을 할당(S521)한 후, 도 2에 따른 포워딩 정보 베이스를 구축한다(S521). 이때, 포워딩 정보 베이스(114)의 각 포워딩 엔트리는 무작위로 배열되는데, 이를 정렬하기 위하여 트리 관리부(113)는 각 포워딩 엔트리에 포함된 프리픽스 길이에 대하여 내림차순으로 정렬한다.First, the tree construction algorithm will be described in detail. First, the tree manager 113 allocates an area for the forwarding information base 114 on the memory (S521), and then builds the forwarding information base according to FIG. 2 (S521). . In this case, each forwarding entry of the forwarding information base 114 is randomly arranged, and in order to sort it, the tree manager 113 sorts in descending order with respect to the prefix length included in each forwarding entry.

이후, 트리 관리부(113)는 메모리 상에 마스터 노드를 위한 영역을 할당(생성, S522)한 후, 생성된 마스터 노드의 각 노드 엔트리에 대하여 포인터 값을 16진수 00000000에 해당하는 널(null) 값으로 초기화한다(S523).Subsequently, the tree manager 113 allocates (creates, S522) an area for the master node on the memory, and then sets a pointer value for each node entry of the created master node corresponding to a hexadecimal 00000000. Initialize to (S523).

이후, 트리 관리부(113)는 S521 단계에서 생성한 포워딩 정보 베이스의 베이스 주소를 읽어 들인(S524) 후, 포워딩 정보 베이스(114)의 베이스 주소와 추후 읽어들일 포워딩 엔트리에 대한 오프셋 값을 이용하여 해당 포워딩 엔트리를 읽어 온다(S525).Thereafter, the tree manager 113 reads the base address of the forwarding information base generated in step S521 (S524), and then uses the base address of the forwarding information base 114 and the offset value for the forwarding entry to be read later. The forwarding entry is read (S525).

이후, 트리 관리부(113)는 읽어 온 포워딩 엔트리를 기반으로 하여 도 6을 통해 기술한 트리 노드 설정 알고리즘을 수행(S526)하는데, 이를 통하여 해당 포워딩 엔트리를 나타내는 트리 노드 정보를 생성한다.Subsequently, the tree manager 113 performs the tree node setting algorithm described with reference to FIG. 6 based on the read forwarding entry (S526), thereby generating tree node information indicating the corresponding forwarding entry.

이후, 트리 관리부(113)는 트리 노드 정보를 구축한 포워딩 엔트리가 포워딩 정보 베이스의 최종 엔트리인지 확인(S527)하여, 확인 결과 최종 엔트리인 경우, 트리 구축 과정을 종료하는 반면, 최종 엔트리가 아닌 경우에는 다음 포워딩 엔트리를 읽어 들인 후, 읽어 들인 엔트리에 대한 트리 노드 설정 알고리즘 적용을 반복 수행한다.Thereafter, the tree manager 113 checks whether the forwarding entry in which the tree node information is constructed is the last entry of the forwarding information base (S527). When the result is the final entry, the tree manager terminates the tree construction process, but not the final entry. Reads the next forwarding entry and then repeats the application of the tree node configuration algorithm for the read entry.

다음으로, 이미 포워딩 정보 베이스가 구축되어 있고 부분적으로 포워딩 엔트리의 정보를 갱신하는 경우에 대해 알아보면 다음과 같다.Next, a case in which a forwarding information base has already been constructed and partially updated information of a forwarding entry is as follows.

먼저, 트리 관리부(113)는 갱신 요구가 발생한 포워딩 엔트리를 임시적으로 저장하기 위하여 메모리 영역을 할당(S530)받은 후, 할당받은 메모리 영역의 베이스 주소를 읽어 들인다(S531).First, the tree manager 113 receives a memory area (S530) to temporarily store a forwarding entry in which an update request has occurred, and then reads the base address of the allocated memory area (S531).

이후, 트리 관리부(113)는 갱신 대상인 포워딩 정보 메모리 영역의 베이스주소와 추후 읽어들일 포워딩 엔트리에 대한 오프셋 값을 이용하여 해당 포워딩 엔트리를 읽어 온다(S532).Thereafter, the tree manager 113 reads the corresponding forwarding entry using the base address of the forwarding information memory area to be updated and the offset value of the forwarding entry to be read later (S532).

이후, 트리 관리부(113)는 읽어 온 포워딩 엔트리를 기반으로 첨부돈 도 6에 따른 트리 노드 설정 알고리즘을 수행한다(S533). 이를 통하여, 갱신 대상 포워딩 정보를 위한 노드 설정의 변경된다.Thereafter, the tree manager 113 performs a tree node setting algorithm according to FIG. 6 based on the read forwarding entry (S533). Through this, the node configuration for the update target forwarding information is changed.

이후, 트리 관리부(113)는 트리 노드 정보를 갱신한 포워딩 엔트리가 갱신 대상 포워딩 정보 메모리 영역에 속한 최종 엔트리인지 확인(S534)하여, 확인 결과 최종 엔트리이면, 트리 갱신 과정을 종료하는 반면, 최종 엔트리가 아니면, 다음 포워딩 엔트리를 읽어 들이고 그 엔트리에 대한 트리 노드 설정 알고리즘 적용을 반복 수행한다.Thereafter, the tree manager 113 checks whether the forwarding entry which has updated the tree node information is the last entry belonging to the update target forwarding information memory area (S534). Otherwise, it reads the next forwarding entry and repeats applying the tree node configuration algorithm to that entry.

이러한 트리 노드 설정 알고리즘에 대해 첨부된 도면을 자세히 알아보면 다음과 같다.The accompanying drawings of the tree node setting algorithm are described in detail as follows.

도 6은 도 5에 도시된 트리 노드 설정 알고리즘 수행 단계에 대한 상세 흐름도이다.6 is a detailed flowchart of an operation of performing a tree node setting algorithm illustrated in FIG. 5.

도 6을 참조하면, 먼저 트리 관리부(113)는 노드 정보를 설정해야 할 포워딩 엔트리의 프리픽스(prefix) 길이를 검색키 길이로 설정한다. 이때 설정되는 검색키 길이는 포워딩 엔트리에 포함된 128비트의 IP 목적 주소에서 최상위 비트로부터 몇 비트까지 유효한 검색키로 사용되는지를 의미한다.Referring to FIG. 6, first, the tree manager 113 sets a prefix length of a forwarding entry for which node information is to be set as a search key length. The length of the search key set at this time means that from the most significant bit to how many bits are used as valid search keys in the 128-bit IP destination address included in the forwarding entry.

이후, 트리 관리부(113)는 노드 정보를 설정해야 할 포워딩 엔트리에 포함된 IP 목적 주소에서 최상위 16비트를 추출하여 검색키를 생성(S602)한 후, 상기 생성한 검색키 길이 값을 16 감소시킨다(S603). 이렇게 함으로써 검색키의 길이는 노드 정보를 설정해야 할 포워딩 엔트리에 포함된 IP 목적 주소 비트들 중에서 앞으로 검색을 수행해야 할 잔여 비트수를 가리키게 된다.Thereafter, the tree manager 113 generates the search key by extracting the most significant 16 bits from the IP destination address included in the forwarding entry to set node information (S602), and then decreases the generated search key length value by 16. (S603). By doing so, the length of the search key indicates the number of bits remaining to be searched from among the IP destination address bits included in the forwarding entry for which node information is to be set.

이후, 트리 관리부(113)는 해당 메모리 영역에 대한 베이스 주소에 상기 생성한 검색키 값을 오프셋(offset)으로 더해주어 검색할 노드 엔트리의 주소를 생성한 후, 상기 생성된 주소에 있는 노드 엔트리를 읽어 온다(S604).Thereafter, the tree manager 113 generates the address of the node entry to be searched by adding the generated search key value as an offset to the base address of the corresponding memory area, and then adds the node entry at the generated address. It reads (S604).

이후, 트리 관리부(113)는 읽어 온 노드 엔트리의 포인터 값이 16진수 00000000에 해당하는 NULL 값인지 확인한다(S605). 이를 통하여 트리 관리부(113)는 해당 포워딩 엔트리에 대한 검색 트리 노드 정보를 설정하기 위하여 신규로 자식 노드를 메모리 상에 생성해야 하는지 또는 기존에 생성된 노드들을 활용하는지를 판단한다.Thereafter, the tree manager 113 checks whether the pointer value of the read node entry is a NULL value corresponding to hexadecimal 00000000 (S605). Through this, the tree manager 113 determines whether to newly create a child node in memory or utilize existing nodes in order to set search tree node information for the corresponding forwarding entry.

이후, 노드 엔트리의 포인터 값이 16진수 00000000에 해당하는 NULL 값인 경우로 판단되면, 해당 포워딩 엔트리에 대한 검색 트리 노드 정보를 설정하기 위하여 신규로 자식 노드를 메모리 상에 생성하는 과정을 수행한다.Subsequently, if it is determined that the pointer value of the node entry is a NULL value corresponding to 00000000 in hexadecimal, a process of newly creating a child node in memory is performed in order to set search tree node information for the corresponding forwarding entry.

자세히 설명하면, 트리 관리부(113)는 신규 자식노드를 위한 메모리 영역을 할당(S611)받은 후, 할당받은 메모리 영역에 대한 베이스 주소를 널(null)로 확인한 노드 엔트리의 포인터 값으로 지정한다(S612). 이후, 신규로 생성한 자식 노드의 메모리 영역으로 이동한다(S613).In detail, the tree manager 113 assigns a memory area for a new child node (S611), and then designates a base address of the allocated memory area as a pointer value of a node entry which has been identified as null (S612). ). Subsequently, it moves to the memory area of the newly created child node (S613).

반면, 노드 엔트리의 포인터 값이 16진수 00000000에 해당하는 널(null)값이 아닌 경우, 노드 엔트리의 포인터 타입을 검사한다(S606).On the other hand, if the pointer value of the node entry is not a null value corresponding to hexadecimal 00000000, the pointer type of the node entry is checked (S606).

이후, 검사 결과 포인터 타입이 종단 노드 엔트리로 판명되면, 트리 관리부(113)는 S604단계에서 읽어온 노드 엔트리의 포인터 타입을 중계 노드 엔트리로 변경한다(S621). 이때, 읽어온 노드 엔트리가 종단 노드 타입이었기 때문에 더 이상 진행할 자식 노드들이 연결되어 있지 않으므로, 해당 자식 노드를 생성(S622)하기 위하여 메모리 영역을 신규로 할당받는다.After that, when the check result indicates that the pointer type is the end node entry, the tree manager 113 changes the pointer type of the node entry read in step S604 to a relay node entry (S621). At this time, since the read node entry is an end node type and no further child nodes are connected, a memory area is newly allocated to generate the corresponding child node (S622).

이후, 트리 관리부(113)는 상기 읽어온 노드 엔트리의 포인터 값을 할당받은 메모리 영역에 대한 베이스 주소로 변경(S623)한 후, 신규로 생성한 자식 노드의 메모리 영역으로 이동한다(S624).Thereafter, the tree manager 113 changes the pointer value of the read node entry to the base address for the allocated memory area (S623), and then moves to the memory area of the newly created child node (S624).

한편, 검사 결과 포인터 타입이 중계 노드 엔트리로 판명되면, 노드 엔트리의 포인터 값이 지정하는 메모리 영역으로 이동한다(S631).On the other hand, if the check result indicates that the pointer type is a relay node entry, the pointer moves to the memory area designated by the pointer value of the node entry (S631).

이후, 지정된 메모리 영역으로 이동한 후, 트리 관리부(113)는 검색키 길이의 값을 검사한다(S607). 검사 결과, 검색키 길이 값이 음의 값을 갖는 경우, 바로 노드 설정 과정을 종료하는 반면, 영 이상의 값을 갖는 경우 아래에 명시하는 과정을 수행한다.Thereafter, after moving to the designated memory area, the tree manager 113 checks the value of the search key length (S607). As a result of the check, if the value of the search key length is negative, the node setting process is immediately terminated, whereas if the value of the search key length is zero, the following process is specified.

먼저, 추출한 16비트를 제외하고 차상위 8비트를 추출하여 검색키를 생성(S608)한 후, 생성된 검색키 길이를 8감소시키고 S604단계로 진행한다. 이후, S604단계에서 S613단계 또는 S624단계에서 생성한 메모리 영역에 대한 베이스 주소에 S608단계에서 생성한 검색키 값을 오프셋으로 더해주어 검색할 노드 엔트리의 주소를 생성한 후, 그 주소에 있는 노드 엔트리를 읽어 온다. 앞에서 읽어온 노드 엔트리를 가지고 S605단계 이후의 노드 엔트리의 포인터 타입과 값에 따른 노드 정보 구축 과정을 반복한다.First, after extracting the next higher 8 bits except for the extracted 16 bits to generate a search key (S608), the length of the generated search key is reduced by 8 and the process proceeds to step S604. Thereafter, in step S604, the address of the node entry to be searched is generated by adding the search key value generated in step S608 as an offset to the base address of the memory area created in step S613 or step S624, and then the node entry at the address. Reads. The node information building process is repeated according to the pointer type and value of the node entry after the step S605 with the node entry read previously.

이러한 트리 노드 설정 알고리즘은 검색키 길이를 음의 값으로 판정(S607)할 때까지 상기에 명시된 과정들을 반복적으로 수행한다.This tree node setting algorithm repeatedly performs the processes described above until the search key length is determined to be a negative value (S607).

도 7은 도 1에 도시된 트리 검색부의 다중비트 검색키 기반의 트리 검색 알고리즘을 순차적으로 도시한 흐름도이다.7 is a flowchart sequentially illustrating a tree search algorithm based on a multi-bit search key of the tree search unit illustrated in FIG. 1.

도 7을 참조하면, 먼저 트리 검색부(112)는 외부로부터 패킷이 유입되면, 유입된 패킷의 IP 헤더로부터 128비트의 IPv6 목적지 주소를 추출(S701)한 후, 추출된 IPv6 목적지 주소로부터 최상위 16비트를 추출하여 검색키를 생성한다(S702).Referring to FIG. 7, when a packet is introduced from the outside, the tree search unit 112 first extracts an IPv6 destination address of 128 bits from the IP header of the introduced packet (S701), and then extracts the highest 16 from the extracted IPv6 destination address. The bit is extracted to generate a search key (S702).

이후, 트리 검색부(112)는 마스터 노드의 베이스 주소에 상기 생성된 검색키를 오프셋 값으로 더하여 해당 마스터 노드 엔트리의 주소를 생성한 후, 생성된 마스터 노드 엔트리 주소에 저장되어 있는 마스터 노드 엔트리를 읽어 온다(S703).Thereafter, the tree search unit 112 generates the address of the corresponding master node entry by adding the generated search key to the base address of the master node as an offset value, and then stores the master node entry stored in the generated master node entry address. It reads (S703).

이후, 트리 검색부(112)는 읽어온 마스터 노드 엔트리의 타입이 종단 노드 엔트리인지 확인(S704)하여, 확인 결과 종단 노드 엔트리이면, 트리 검색을 종료하고 다음의 두 단계를 통하여 해당 포워딩 정보를 읽어오는 작업을 수행한다.Thereafter, the tree search unit 112 checks whether the read type of the master node entry is an end node entry (S704). If the end result is a terminal node entry, the tree search unit 112 ends the tree search and reads the corresponding forwarding information through the following two steps. Do the work coming.

즉, 트리 검색부(112)는 읽어온 마스터 노드 엔트리의 포인터 값으로부터 포워딩 정보 베이스 내의 해당 포워딩 엔트리 주소를 생성(S710)한 후, 생성한 포워딩 엔트리 주소를 이용하여 해당 포워딩 정보를 읽어(S711) 옴으로써 트리 검색을 종료한다.That is, the tree search unit 112 generates the corresponding forwarding entry address in the forwarding information base from the pointer value of the read master node entry (S710), and then reads the corresponding forwarding information using the generated forwarding entry address (S711). Terminate the tree search by coming.

반면, 확인 결과 종단 노드 엔트리가 아닌 중계 엔트리로 판명되면, 다음의 두 단계 과정을 통하여 트리 검색 과정을 반복 수행한다.On the other hand, if it is determined that the relay entry is not an end node entry, the tree search process is repeatedly performed through the following two steps.

즉, 트리 검색부(112)는 읽어온 마스터 노드 엔트리의 포인터 값으로부터 다음 검색 노드 엔트리의 베이스 주소를 생성(S720)한 후, 상기 추출된 최상위 16비트 이후의 차상위 8비트를 추출하여 검색키를 생성한다.That is, the tree search unit 112 generates a base address of the next search node entry from the pointer value of the read master node entry (S720), extracts the next higher 8 bits after the extracted highest 16 bits, and extracts a search key. Create

이후, 트리 검색부(112)는 생성된 다음 노드 엔트리의 베이스 주소에 상기 생성된 검색키를 오프셋 값으로 더하여 해당 노드 엔트리의 주소를 생성(S721)한 후, 생성된 노드 엔트리 주소에 저장되어 있는 노드 엔트리를 읽어 온다.Thereafter, the tree search unit 112 generates the address of the node entry by adding the generated search key to the base address of the next node entry generated as an offset value (S721), and is stored in the generated node entry address. Read the node entry.

이처럼, 본 발명의 실시예에 따른 백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그 장치는 검색 트리 구조를 단순하게 유지함으로써, 대용량의 포워딩 정보로 구성된 포워딩 정보 베이스의 구축 및 관리가 용이하도록 할 뿐만 아니라, 실제 IPv6 주소 할당을 고려하여 검색 비트 길이를 결정함으로써, 불필요하게 확장되는 중계 노드의 수를 줄여 포워딩 정보 저장을 위한 메모리 사용 효율을 향상하는 있다.As such, the IP packet address lookup method and apparatus for the backbone router according to the embodiment of the present invention maintain a simple search tree structure, thereby facilitating the construction and management of the forwarding information base composed of a large amount of forwarding information. In addition, by determining the search bit length in consideration of the actual IPv6 address allocation, it is possible to reduce the number of unnecessarily extended relay nodes, thereby improving memory usage efficiency for storing forwarding information.

또한, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함하는데, 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.The present invention can also be embodied as computer readable code on a computer readable recording medium. Computer-readable recording media include any type of recording device that stores data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, and floppy. Disks, optical data storage, and the like, and also include those implemented in the form of carrier waves (eg, transmission over the Internet).

또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수도있다.The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

도면과 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.The drawings and detailed description of the invention are merely exemplary of the invention, which are used for the purpose of illustrating the invention only and are not intended to limit the scope of the invention as defined in the claims or in the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명에 따른 백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그 장치는, 검색 트리 구조를 단순하게 유지함으로써, 대용량의 포워딩 정보로 구성된 포워딩 정보 베이스의 구축 및 관리를 용이하게 할 뿐만 아니라, 실제 IPv6 주소 할당을 고려하여 검색 비트 길이를 결정함으로써, 불필요하게 확장되는 중계 노드의 수를 줄여 포워딩 정보 저장을 위한 메모리 사용 효율을 향상시키는 효과가 있다.The IP packet address lookup method and apparatus therefor for a backbone router according to the present invention not only facilitates the construction and management of a forwarding information base composed of a large amount of forwarding information by keeping the search tree structure simple, but also the actual IPv6 address. By determining the search bit length in consideration of the allocation, it is possible to reduce the number of relay nodes that are unnecessarily extended, thereby improving memory usage efficiency for storing forwarding information.

또한, 검색 트리를 구성하는 노드를 중계 노드와 종단 노드로 구분하여 종단 노드에 포워딩 정보 위치를 직접 지정하게 하고, 중계 노드는 다음 노드로 이동하기 위한 주소 정보만을 가지게 함으로써, 트리 검색 속도를 향상시킬 수 있는 효과가 있다.In addition, by dividing the nodes constituting the search tree into relay nodes and end nodes, the forwarding information positions can be directly assigned to the end nodes, and the relay nodes have only address information for moving to the next node, thereby improving tree search speed. It can be effective.

Claims (20)

백본 라우터로 유입되는 아이피 패킷(IP PACKET)의 주소를 룩업(LOOKUP)하는 방법에 있어서,In the method of looking up the address of the IP packet (IP PACKET) flowing into the backbone router, a)라우터로 유입되는 패킷의 헤더(HEADER)를 분석하는 단계;a) analyzing a header of the packet flowing into the router; b)상기 분석된 결과에 따른 주소 룩업 알고리즘에 따라 제1 데이터베이스를 검색하여 상기 패킷의 포워딩 경로에 대한 정보를 획득하는 단계;b) searching for a first database according to an address lookup algorithm according to the analyzed result to obtain information about a forwarding path of the packet; c)상기 획득한 패킷의 포워딩 경로에 따라 경로를 설정한 후, 상기 설정된 포워딩 경로별로 요구되는 서비스 품질 처리를 수행하는 단계; 및c) setting a path according to the forwarding path of the obtained packet and performing a service quality process required for each of the forwarding paths; And d)상기 주소 룩업 알고리즘이 적용되도록 상기 제1 데이터베이스를 구축하고 유지하는 단계d) building and maintaining said first database such that said address lookup algorithm is applied; 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 제1 항에 있어서,According to claim 1, 상기 제1 데이터베이스는,The first database, 상기 유입된 패킷의 목적지 주소, 프리픽스(PREFIX) 길이 및 포워딩 정보를 가진 포워딩 엔트리(FORWARDING ENTRY)의 집합으로 구성된 포워딩 정보 베이스인 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.And a forwarding information base comprising a set of forwarding entries having a destination address, a prefix length, and forwarding information of the incoming packet. 제2 항에 있어서,The method of claim 2, 상기 d)단계는,In step d), 상기 포워딩 정보 베이스내의 포워딩 엔트리들을 상기 프리픽스 길이값에 따라 내림차순으로 정렬하는 단계Sorting forwarding entries in the forwarding information base in descending order according to the prefix length value. 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 제3 항에 있어서,The method of claim 3, wherein 상기 d)단계는,In step d), 상기 포워딩 정보 베이스의 정보 검색을 위해 다중 비트 기반의 검색키를 사용하는 검색 트리를 구성하는 단계Constructing a search tree using a multi-bit based search key for searching information of the forwarding information base 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 제4 항에 있어서,The method of claim 4, wherein 상기 d)단계는,In step d), 상기 아이피 패킷의 목적지 주소 중 상위 64비트의 네트워크 주소를 추출하는 단계; 및Extracting an upper 64-bit network address among the destination addresses of the IP packet; And 상기 추출된 네트워크 주소에 대해 다중 비트 검색을 수행하는 단계Performing a multi-bit search on the extracted network address 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 제4 항에 있어서,The method of claim 4, wherein 상기 검색 트리 구성 단계는,The search tree construction step, 상기 검색 트리 노드의 구조를 32비트의 노드 엔트리 집합으로 구성한 후, 각 노드 엔트리의 최상위 1비트를 노드 타입 지정자로 사용하도록 하는 단계; 및Constructing a structure of the search tree node into a 32-bit node entry set, and using the most significant 1 bit of each node entry as a node type designator; And 나머지 31비트를 다음 노드나 포워딩 엔트리에 대한 메모리 상의 주소를 나타내는 값으로 사용하도록 하는 단계Using the remaining 31 bits as the value representing the address in memory for the next node or forwarding entry 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 제6 항에 있어서,The method of claim 6, 상기 d)단계는,In step d), 상기 각 노드 엔트리를 소속 노드의 베이스 주소를 기점으로 순차적으로 배열되도록 구성하는 단계Configuring each node entry to be sequentially arranged based on a base address of a node to which the node is located; 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 제7 항에 있어서,The method of claim 7, wherein 상기 d)단계는,In step d), 상기 각 노드 엔트리의 타입을 마스터 노드, 중계 노드 및 종단 노드로 분류하는 단계;Classifying the type of each node entry into a master node, a relay node and an end node; 상기 분류된 마스터 노드를 16비트 기반의 검색키를 이용하여 검색할 수 있도록 각 노드 엔트리를 구성하는 단계; 및Configuring each node entry to search for the classified master node using a 16-bit based search key; And 상기 분류된 중계 및 종단 노드를 각각 8비트 기반의 검색키를 이용하여 검색할 수 있도록 각 노드 엔트리를 구성하는 단계Configuring each node entry to search the classified relay and end nodes using an 8-bit based search key, respectively. 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 방법.IP packet address lookup method comprising a. 백본 라우터로 유입되는 아이피 패킷(IP PACKET)의 주소를 룩업(LOOKUP)하는 장치에 있어서,In the device for looking up the address of the IP packet (IP PACKET) flowing into the backbone router, 라우터로 유입된 패킷(PACKET)의 주소 룩업 과정을 수행하는 패킷 룩업 엔진; 및A packet lookup engine that performs an address lookup process of a packet introduced into a router; And 상기 수행된 주소 룩업 결과에 따라 패킷별 포워딩 경로를 설정한 후, 상기 설정된 포워딩 경로별로 요구되는 서비스 품질 처리를 수행하는 트래픽 관리 엔진을 포함하며,A traffic management engine configured to set a forwarding path for each packet according to the performed address lookup result, and then perform a service quality process required for each of the set forwarding paths; 상기 패킷 룩업 엔진은,The packet lookup engine, 상기 유입된 패킷의 헤더(HEADER)를 분석 및 처리하는 패킷 프로세서 유닛;A packet processor unit for analyzing and processing a header of the incoming packet; 상기 분석된 결과에 따른 주소 룩업 알고리즘에 따라 제1 데이터베이스를 검색하여 상기 패킷의 포워딩 경로에 대한 정보를 획득하는 트리 검색부; 및A tree search unit for searching a first database and obtaining information about a forwarding path of the packet according to an address lookup algorithm based on the analyzed result; And 상기 주소 룩업 알고리즘이 적용되도록 상기 제1 데이터베이스를 구축하고 유지하는 트리 관리부A tree manager for constructing and maintaining the first database to apply the address lookup algorithm 를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.IP packet address lookup apparatus comprising a. 제9 항에 있어서,The method of claim 9, 상기 제1 데이터베이스는,The first database, 상기 유입된 패킷의 목적지 주소, 프리픽스(PREFIX) 길이 및 포워딩 정보를가진 포워딩 엔트리(FORWARDING ENTRY)의 집합으로 구성된 포워딩 정보 베이스를 포함하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.And a forwarding information base comprising a set of forwarding entries having a destination address, a prefix length, and forwarding information of the incoming packet. 제10 항에 있어서,The method of claim 10, 상기 트리 관리부는,The tree management unit, 상기 포워딩 정보 베이스 내의 포워딩 엔트리들을 상기 프리픽스 길이값에 따라 내림차순으로 정렬하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.And forwarding entries in the forwarding information base in descending order according to the prefix length value. 제10 항에 있어서,The method of claim 10, 상기 트리 검색부는,The tree search unit, 상기 포워딩 정보 베이스에서 다중 비트 기반의 검색키를 사용하여 검색 트리를 구성하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.IP packet address lookup device, characterized in that for configuring a search tree using a multi-bit based search key in the forwarding information base. 제12 항에 있어서,The method of claim 12, 상기 트리 관리부는,The tree management unit, 상기 검색 트리 노드의 구조를 32비트의 노드 엔트리 집합으로 구성하고, 각 노드 엔트리의 최상위 1비트를 노드 타입 지정자로 사용하며, 나머지 31비트를 다음 노드나 포워딩 엔트리에 대한 메모리 상의 주소를 나타내는 값으로 사용하도록 하는 것은 특징으로 하는 아이피 패킷 주소 룩업 장치.The structure of the search tree node is composed of a set of 32-bit node entries, the most significant 1 bit of each node entry is used as a node type designator, and the remaining 31 bits are values representing in-memory addresses for the next node or forwarding entry. IP packet address lookup device, characterized in that the use. 제13 항에 있어서,The method of claim 13, 상기 트리 관리부는,The tree management unit, 상기 각 노드 엔트리가 소속 노드의 베이스 주소를 기점으로 순차적으로 배열되도록 구성하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.The IP packet address lookup apparatus, wherein the node entries are arranged so as to be sequentially arranged from the base address of the node to which they belong. 제12 항에 있어서,The method of claim 12, 상기 트리 관리부는,The tree management unit, 상기 검색 트리를 구성하는 노드 엔트리 타입을 마스터 노드, 중계 노드 및 종단 노드로 분류하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.The IP packet address lookup apparatus for classifying a node entry type constituting the search tree into a master node, a relay node, and an end node. 제15 항에 있어서,The method of claim 15, 상기 트리 관리부는,The tree management unit, 상기 마스터 노드를 16비트 기반의 검색키를 사용하여 검색할 수 있도록 소정 개수의 노드 엔트리를 구성하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.And a predetermined number of node entries to search the master node using a 16-bit-based search key. 제15 항에 있어서,The method of claim 15, 상기 트리 관리부는,The tree management unit, 상기 중계 및 종단 노드를 8비트 기반의 검색키를 사용하여 각각 검색할 수 있도록 소정 개수의 노드 엔트리를 구성하는 것을 특징으로 하는 아이피 패킷 주소룩업 장치.IP packet address lookup device, characterized in that for configuring the predetermined number of node entries so that each of the relay and the end node can be searched using an 8-bit based search key. 제17 항에 있어서,The method of claim 17, 상기 트리 관리부는,The tree management unit, 상기 중계 노드의 31비트 엔트리 주소 포인터 값에는 다음 자식 노드의 베이스 주소를 지정한 후, 상기 종단 노드의 31비트 엔트리 주소 포인터 값에는 직접 포워딩 엔트리의 해당 주소를 지정하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.IP packet address lookup device, characterized in that the base address of the next child node is assigned to the 31-bit entry address pointer value of the relay node, and the corresponding address of the forwarding entry is directly assigned to the 31-bit entry address pointer value of the end node. . 제12 항에 있어서,The method of claim 12, 상기 트리 검색부는,The tree search unit, 상기 아이피 패킷의 목적지 주소 중 상위 64비트의 네트워크 주소 부분만을 추출하여 소정 단계의 다중 비트 검색을 수행하는 것을 특징으로 하는 아이피 패킷 주소 룩업 장치.IP packet address lookup device, characterized in that for extracting only the network address portion of the upper 64 bits of the IP packet destination address to perform a multi-bit search of a predetermined step. 백본 라우터로 유입되는 아이피 패킷(IP PACKET)의 주소를 룩업(LOOKUP)하는 방법을 포함하는 기록매체에 있어서,In the recording medium comprising a method of looking up the address of the IP packet (IP PACKET) flowing into the backbone router, a)라우터로 유입되는 패킷의 헤더(HEADER)를 분석하는 기능;a) analyzing a header of the packet flowing into the router; b)상기 분석된 결과에 따른 주소 룩업 알고리즘에 따라 제1 데이터베이스를 검색하여 상기 패킷의 포워딩 경로에 대한 정보를 획득하는 기능;b) searching for a first database according to an address lookup algorithm based on the analyzed result to obtain information about a forwarding path of the packet; c)상기 획득한 패킷의 포워딩 경로에 따라 경로를 설정한 후, 상기 설정된 포워딩 경로별로 요구되는 서비스 품질 처리를 수행하는 기능; 및c) a function of setting a path according to the forwarding path of the obtained packet and then performing a service quality process required for each of the forwarding paths; And d)상기 주소 룩업 알고리즘이 적용되도록 상기 제1 데이터베이스를 구축하고 유지하는 기능d) building and maintaining the first database such that the address lookup algorithm is applied; 을 포함하는 프로그램이 저장된 기록매체.The recording medium in which the program is stored.
KR10-2002-0079600A 2002-12-13 2002-12-13 An internet protocol packet address lookup method and apparatus for a backbone router KR100473118B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0079600A KR100473118B1 (en) 2002-12-13 2002-12-13 An internet protocol packet address lookup method and apparatus for a backbone router

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0079600A KR100473118B1 (en) 2002-12-13 2002-12-13 An internet protocol packet address lookup method and apparatus for a backbone router

Publications (2)

Publication Number Publication Date
KR20040051906A true KR20040051906A (en) 2004-06-19
KR100473118B1 KR100473118B1 (en) 2005-03-10

Family

ID=37345699

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0079600A KR100473118B1 (en) 2002-12-13 2002-12-13 An internet protocol packet address lookup method and apparatus for a backbone router

Country Status (1)

Country Link
KR (1) KR100473118B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100828125B1 (en) * 2007-02-15 2008-05-08 재단법인서울대학교산학협력재단 Method for deciding an efficient tree structure for logical key hierarchy and method for analyzing performance of a tree structure

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102187938B1 (en) * 2019-06-26 2020-12-08 넷마블 주식회사 Data processing method and apparatus for processing country information of an ip address

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100828125B1 (en) * 2007-02-15 2008-05-08 재단법인서울대학교산학협력재단 Method for deciding an efficient tree structure for logical key hierarchy and method for analyzing performance of a tree structure

Also Published As

Publication number Publication date
KR100473118B1 (en) 2005-03-10

Similar Documents

Publication Publication Date Title
US7039018B2 (en) Technique to improve network routing using best-match and exact-match techniques
JP3790217B2 (en) Apparatus and method for performing high-speed Internet protocol route lookup and routing / forwarding table management
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US7325071B2 (en) Forwarding traffic in a network using a single forwarding table that includes forwarding information related to a plurality of logical networks
US7706302B2 (en) Optimization of routing forwarding database in a network processor
US7536476B1 (en) Method for performing tree based ACL lookups
US7089240B2 (en) Longest prefix match lookup using hash function
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US8767757B1 (en) Packet forwarding system and method using patricia trie configured hardware
US20030174717A1 (en) System and method for longest prefix match for internet protocol lookup
US20040255045A1 (en) IP address lookup method and hardware architecture using hashing
US20060083247A1 (en) Prefix lookup using address-directed hash tables
US20030161309A1 (en) Network address routing using multiple routing identifiers
CN1759568A (en) Arrangement in a router for generating a route based on a pattern of a received packet
US8923298B2 (en) Optimized trie-based address lookup
US7487255B2 (en) Routing cache management with route fragmentation
EP1526699B1 (en) Method and system for accelerated packet processing
KR20040046424A (en) Internet Protocol address lookup system based on 3 layer table architecture and method thereof
TWI239476B (en) Address search
US20050114393A1 (en) Dynamic forwarding method using binary search
KR100473118B1 (en) An internet protocol packet address lookup method and apparatus for a backbone router
KR20040054110A (en) Apparatus of IP packet classification based on tuple space search , and method thereof
US6813273B2 (en) Method and apparatus for determining existence of an address in an address look-up table
US6895442B1 (en) Technique for fast and efficient internet protocol (IP) address 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: 20090202

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee