KR100572693B1 - How to Look Up Internet Protocol Packets - Google Patents

How to Look Up Internet Protocol Packets Download PDF

Info

Publication number
KR100572693B1
KR100572693B1 KR1020030098350A KR20030098350A KR100572693B1 KR 100572693 B1 KR100572693 B1 KR 100572693B1 KR 1020030098350 A KR1020030098350 A KR 1020030098350A KR 20030098350 A KR20030098350 A KR 20030098350A KR 100572693 B1 KR100572693 B1 KR 100572693B1
Authority
KR
South Korea
Prior art keywords
lookup
packet
cam
information
multibit
Prior art date
Application number
KR1020030098350A
Other languages
Korean (ko)
Other versions
KR20050066866A (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 KR1020030098350A priority Critical patent/KR100572693B1/en
Publication of KR20050066866A publication Critical patent/KR20050066866A/en
Application granted granted Critical
Publication of KR100572693B1 publication Critical patent/KR100572693B1/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/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • 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

Landscapes

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

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은 인터넷 프로토콜 패킷 룩업 방법에 관한 것임.The present invention relates to an internet protocol packet lookup method.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은, IPv6 패킷을 처리하는 노드의 128비트 길이의 로컬 인터페이스 프리픽스 엔트리 정보만을 저장하는 작은 크기의 CAM과 64비트 이하의 네트워크 프리픽스 엔트리 정보를 저장하는 다단계로 구성되는 포워딩 테이블들을 이용하여 IPv6 패킷을 이용하여 통신을 하는 모든 네트워크 상의 노드에서 인입되는 IPv6 패킷을 최소 시간 내에 해당 목적지로 전송하기 위해 필요한 IPv6 인터넷 프로토콜 패킷 룩업 방법을 제공하고자 함.The present invention provides an IPv6 packet using a small sized CAM storing only 128-bit local interface prefix entry information of a node processing an IPv6 packet, and multi-step forwarding tables storing 64-bit or less network prefix entry information. To provide a lookup method for IPv6 Internet Protocol packets required for transmitting IPv6 packets coming in from nodes on all networks that communicate with each other to their destinations in a minimum amount of time.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

본 발명은, 인터넷 프로토콜 패킷 룩업 방법에 있어서, 패킷 수신기로부터 패킷을 수신하여 헤더 정보를 추출하고, 추출된 헤더 정보에서 목적지 주소를 추출하여 CAM(Content Addressable Memory)에서 룩업을 수행하는 CAM 룩업단계; 상기 CAM 룩업단계에서 룩업 매칭이 발생하였는지를 확인하는 CAM 룩업 확인단계; 상기 CAM 룩업 확인단계에서, 매칭이 된 경우는 중앙 제어기로 패킷을 전달하고, 매칭이 되지 않은 경우는 상기 CAM에 저장된 인덱스를 이용하여 멀티비트-트라이 테이블 위치를 파악하여 해당 멀티비트-트라이 테이블을 이용하여 룩업을 수행하는 멀티비트-트라이 테이블 룩업단계; 상기 멀티비트-트라이 테이블 룩업단계에서 매칭이 발생하는지를 확인하는 멀티비트-트라이 테이블 룩업 확인단계; 및 상기 멀티비트-트라이 테이블 룩업 확인단계에서, 매칭이 발생하면 외부 네트워크로 전송해야할 패킷이므로 패킷 송신기로 패킷을 전달하고, 매칭이 발생하지 않으면 패킷을 폐기하거나 디폴트 루트로 패킷을 전송하는 패킷 처리단계를 포함함.According to an aspect of the present invention, there is provided an Internet protocol packet lookup method, comprising: a CAM lookup step of receiving a packet from a packet receiver, extracting header information, extracting a destination address from the extracted header information, and performing a lookup on a CAM (Content Addressable Memory); A CAM lookup checking step of checking whether a lookup matching has occurred in the CAM lookup step; In the CAM lookup checking step, if a match is found, the packet is delivered to the central controller. If the match is not found, the multibit-tri table is determined by using the index stored in the CAM to determine the location of the multibit-tri table. A multibit-tri table lookup step of performing a lookup by using a lookup step; A multi-bit-tri table lookup checking step of checking whether a matching occurs in the multi-bit-tri table lookup step; And in the multi-bit table lookup checking step, if a match occurs, the packet is transmitted to an external network, so that the packet is transmitted to a packet transmitter, and if a match does not occur, the packet is discarded or a packet is transmitted to a default route. Including.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 네트워크 시스템 등에 이용됨.The present invention is used in network systems and the like.

IPv6, 인터넷 프로토콜, 프리픽스, 룩업, 포워딩 정보, 로컬 인터페이스 정보, 인덱스, CAMIPv6, Internet Protocol, Prefix, Lookup, Forwarding Information, Local Interface Information, Index, CAM

Description

인터넷 프로토콜 패킷 룩업 방법{Method for Internet Protocol Packet Lookup} {Method for Internet Protocol Packet Lookup}             

도 1 은 일반적인 멀티비트-트라이 포워딩 테이블을 이용한 IPv6 프리픽스 룩업 구조를 나타낸 일실시예 설명도.1 is a diagram illustrating an embodiment of an IPv6 prefix lookup structure using a general multi-bit forwarding table.

도 2 는 본 발명이 적용되는 포워딩 테이블을 나타낸 일실시예 설명도.Figure 2 is an embodiment explanatory diagram showing a forwarding table to which the present invention is applied.

도 3 은 본 발명에 따른 인터넷 프로토콜 룩업 방법에 대한 일실시예 흐름도.3 is a flowchart illustrating an embodiment of an Internet protocol lookup method according to the present invention;

도 4 는 본 발명에 따른 인터넷 프로토콜 룩업 방법에 대한 다른 실시예 흐름도.4 is a flowchart of another embodiment of an internet protocol lookup method according to the present invention;

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

201 : 패킷 수신기 202 : 로컬 인터페이스 정보201: packet receiver 202: local interface information

203 : 인덱스 204 : 포워딩 정보203: index 204: forwarding information

205 : 인덱스 206 : N차 포워딩 테이블205: Index 206: N th forwarding table

207 : 로컬 제어기 208 : 패킷 송신기207: local controller 208: packet transmitter

본 발명은 IPv6(Internet Protocol version 6) 패킷을 이용하여 통신을 하는 모든 네트워크 상의 노드에서 인입된 IPv6 패킷을 최소 시간 내에 해당 목적지로 전송하기 위해 필요한 IPv6 인터넷 프로토콜 패킷 룩업 방법에 관한 것으로, 더욱 상세하게는 IPv6 패킷을 처리하는 노드로 인입되는 최대 128비트 가변 길이의 프리픽스를 가지는 IPv6 패킷을 프리픽스가 128비트인 로컬 인터페이스 IPv6 어드레스 CAM(Content Addressable Memory : 이하, "CAM"라 함)에 저장된 포워딩 엔트리와 먼저 비교하여 일치하는 포워딩 엔트리가 존재하면 로컬 어드레스이므로 현재 노드에서 이 패킷을 처리하고, 존재하지 않으면 멀티비트-트라이(Multibit-Trie)를 이용하는 다단계 포워딩 테이블에서 인입된 IPv6 패킷 프리픽스와 일치하는 포워딩 엔트리를 룩업하여 최소의 시간 내에 128비트의 IPv6 프리픽스를 룩업할 수 있는 인터넷 프로토콜 패킷 룩업 방법에 관한 것이다.The present invention relates to an IPv6 Internet Protocol packet lookup method required for transmitting IPv6 packets received from nodes on all networks communicating using IPv6 (Internet Protocol version 6) packets to a corresponding destination within a minimum time. A forwarding entry stored in a local interface IPv6 address CAM (Content Addressable Memory (CAM)) having a 128-bit prefix has an IPv6 packet having a prefix of up to 128 bits variable length introduced into a node that processes an IPv6 packet. Compares first, if there is a matching forwarding entry, it is a local address, so the current node processes this packet, and if it does not exist, it forwards the entry that matches the IPv6 packet prefix entered in the multilevel forwarding table using Multibit-Trie. 128-bit IPv6 free in minimum time It relates to Internet protocol packet lookup how you can look up the bus.

현재의 인터넷은 급격한 호스트와 사용자의 증가와 데이터 트래픽의 증가로 인해 보다 빠른 패킷 전송과 패킷을 빨리 처리할 수 있는 대용량의 노드(예를 들면, 라우터(Router) 또는 스위치(Switch))가 필요하고 전송 매체 상에서의 높은 대역을 요구한다. 보다 빠른 전송 매체는 동선을 광 케이블로 대체하는 것으로 실현할 수 있는데 이 방면의 연구는 인터넷 백본망 상에서 활발히 진행되고 있다.Today's Internet requires a large number of nodes (e.g. routers or switches) that can handle faster packet transfers and process packets faster due to the rapid increase in host and user traffic and data traffic. It requires a high band on the transmission medium. Faster transmission media can be realized by replacing copper wires with optical cables, and research in this area is being actively conducted on the Internet backbone network.

일반적인 패킷 처리 시스템인 라우터는 주로 네 개의 부분으로 구성되었는데 그것들은 라우팅 컨트롤 프로세서, 입/출력 인터페이스, 스위치 패브릭과 포워딩 엔진(Forwarding Engine)이다.A typical packet processing system, a router, consists mainly of four parts: a routing control processor, an input / output interface, a switch fabric, and a forwarding engine.

포워딩 엔진은 패킷의 목적지 주소와 출력 포트 간의 매핑을 포함한 전달 테이블에 근거하여 패킷의 출력 포트를 결정하며 이를 패킷 프리픽스 룩업이라 하며 LPM(Longest Prefix Matching : 이하, "LPM"라 함) 방식으로 프리픽스 룩업을 수행해야 한다. 여기서, LPM 방식이란 인입되는 IP 패킷의 프리픽스를 포워딩 엔트리의 프리픽스와 매칭시킬 때 IP 패킷 프리픽스와 가장 많은 비트가 일치하는 포워딩 엔트리를 찾는 방법을 말한다.The forwarding engine determines the output port of the packet based on a forwarding table that contains the mapping between the packet's destination address and the output port, which is called a packet prefix lookup, and prefix lookup in the form of Longest Prefix Matching (LPM). Should be done. Here, the LPM scheme refers to a method of finding a forwarding entry in which the most significant bit of the IP packet prefix matches the prefix of the incoming IP packet with the prefix of the forwarding entry.

IPv6 프로토콜은 현재 인터넷 망의 기반 프로토콜인 IPv4 프로토콜의 단점을 보완하고 기능을 향상시킨 차세대 프로토콜이므로 대부분의 IPv6 프리픽스 룩업에 관한 방법들이 IPv4 프리픽스 룩업 방법을 기반으로 하고 있기 때문에 현재까지의 IPv4 프리픽스 룩업 방법에 대해 살펴본다.Since the IPv6 protocol is a next-generation protocol that supplements and improves the shortcomings of the IPv4 protocol, which is the current protocol based on the Internet network, most IPv6 prefix lookup methods are based on the IPv4 prefix lookup method. Take a look at

현재까지 발표된 IPv4 패킷의 프리픽스 룩업 알고리즘은 메모리 접근 횟수, 메모리 사용량, 포워딩 엔트리 갱신 속도에 따라 알고리즘의 장단점 및 성능을 평가하고 있다.The prefix lookup algorithm for IPv4 packets published to date evaluates the advantages and disadvantages and performance of the algorithm according to the number of memory accesses, memory usage, and forwarding entry update rate.

종래에 다양한 IPv4 프리픽스 룩업 알고리즘이 나왔지만 크게 나누면 두가지로 나눌 수 있다.Conventionally, various IPv4 prefix lookup algorithms have been introduced, but it can be divided into two broadly.

초기 대표적인 소프트웨어 기반 검색 기법인 "Radix tree"기법과 "PATRICIA tree"기법은 요구되는 메모리 크기가 작지만 포워딩 엔트리 갱신 시간이 많고 메모리 접근 횟수가 많아 고속으로 프리픽스 룩업을 수행할 수 없어 초기 라우터에서 사용되었던 방법이다.The early software-based retrieval techniques, the "Radix tree" and "PATRICIA tree" techniques, were used in early routers because they did not require fast lookups because of the small amount of memory required, but the large number of forwarding entry updates and the number of memory accesses. Way.

멀티비트-트라이 방식은 기존의 IP 프리픽스를 비교할 때 한번에 한 비트씩 비교하던 방식을 한번에 여러 비트를 비교하여 처리하는 방식이며 요구되는 메모리 크기가 크고 포워딩 엔트리 갱신 시간이 많이 걸리지만 고속으로 프리픽스 룩업을 할 수 있는 방법이다. 또한, 하드웨어로 구현하기 쉽고 고속의 프리픽스 룩업이 가능한 장점이 있다.Multi-Tri-Tri is a method of comparing multiple bits at a time when comparing conventional IP prefixes one bit at a time.It requires a large amount of memory and takes a long time for forwarding entry update, but performs a prefix lookup at high speed. This is how you can do it. In addition, it is easy to implement in hardware, there is an advantage that can be fast prefix lookup.

도 1 은 일반적인 멀티비트-트라이 포워딩 테이블을 이용한 IPv6 프리픽스 룩업 구조를 나타낸 일실시예 설명도로서, 멀티비트-트라이 룩업 구조를 IPv6 프리픽스 룩업에 적용할 때를 나타낸다.FIG. 1 is an exemplary diagram illustrating an IPv6 prefix lookup structure using a general multibit-triforwarding table, and illustrates a case where a multibit-trilook lookup structure is applied to an IPv6 prefix lookup.

도면에서, "101"은 패킷 수신기, "102"는 포워딩 정보, "103"은 인덱스, "104"는 포워딩 테이블, 그리고 "105"는 패킷 송신기를 나타낸다.In the figure, "101" represents a packet receiver, "102" represents forwarding information, "103" represents an index, "104" represents a forwarding table, and "105" represents a packet transmitter.

도 1을 참조해 볼 때 일반적인 멀티비트-트라이 룩업 구조를 IPv6 프리픽스 룩업에 사용할 경우 메모리가 많이 필요하고 메모리 접근 횟수도 상당히 많다는 점을 알 수 있다. 예를 들면, 패킷 수신기(101)로부터 인입되는 IPv6 패킷의 프리픽스의 길이가 128비트이므로 이것을 고정길이로 8로 나눌 경우 16개의 포워딩 테이블(104)이 생성된다. 즉, N차 포워딩 테이블(104)이 16차 테이블이 되며 최대 메모리 접근 횟수는 16번이 되며 사용되는 최대 메모리 크기는 정확하게 계산할 수 없는 방법이지만 한 포워딩 엔트리 크기가 32바이트일 경우 최악의 경우는 "1차테이블 크기(28 * 32바이트) * 2차테이블 크기(28 * 32바이트)* ...*16차테이블 크기(28 * 32바이트)"가 되어 거의 무한대의 메모리가 필요하게 된다. 물론 고정길이로 나누는 것을 많이 하면 할수록 메모리 사용량은 줄어들게 된다. 이때, 포워딩 엔트리 구조는 1차 테이블부터 N차 테이블(104)까지 순차적으로 인입된 IPv6 프리픽스를 나누어 비교하여 매칭되면 포워딩정보(102)에 따라 패킷 송신기(105)로 보낸다. 매칭되지 않으면 다음 테이블을 가리키는 인덱스(103)에 따라 다음 비교할 테이블을 찾을 수 있다.Referring to FIG. 1, when the general multi-bit look-up structure is used for IPv6 prefix lookup, it requires a lot of memory and a considerable number of memory accesses. For example, since the length of the prefix of the IPv6 packet coming from the packet receiver 101 is 128 bits, the forwarding table 104 is generated when divided by 8 by the fixed length. In other words, the Nth forwarding table 104 becomes the 16th table, the maximum number of memory accesses is 16, and the maximum memory size used cannot be calculated accurately. However, when one forwarding entry size is 32 bytes, the worst case is " Primary Table Size (2 8 * 32 Bytes) * Secondary Table Size (2 8 * 32 Bytes) * ... * 16 Primary Table Size (2 8 * 32 Bytes) . Of course, the more you divide by the fixed length, the less memory you use. In this case, the forwarding entry structure divides and compares IPv6 prefixes sequentially entered from the primary table to the Nth table 104 and sends them to the packet transmitter 105 according to the forwarding information 102. If there is no match, the next table to be compared may be found according to the index 103 indicating the next table.

그 밖에 CAM을 사용하여 하드웨어적으로 구현하는 방법이 제시되었지만 비용이 많이 드는 문제점이 있었고, 메모리 엑세스 횟수를 줄이기 위해 파이프라인(Pipeline)식으로 메모리를 엑세스할 수 있는 간접(Indirect) 룩업 알고리즘이 제시되었지만 IPv6 패킷에 적용하기 어려운 문제점이 있었다.In addition, a hardware implementation method using CAM has been proposed, but there is a costly problem, and an indirect lookup algorithm that can access memory in a pipelined manner to reduce the number of memory accesses is presented. However, there is a problem that is difficult to apply to IPv6 packets.

본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, IPv6 패킷을 처리하는 노드의 128비트 길이의 로컬 인터페이스 프리픽스 엔트리 정보만을 저장하는 작은 크기의 CAM과 64비트 이하의 네트워크 프리픽스 엔트리 정보를 저장하는 다단계로 구성되는 포워딩 테이블들을 이용하여 IPv6 패킷을 이용하여 통신을 하는 모든 네트워크 상의 노드에서 인입되는 IPv6 패킷을 최소 시간 내에 해당 목적지로 전송하기 위해 필요한 IPv6 인터넷 프로토콜 패킷 룩업 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above-mentioned problems. The present invention provides a small size CAM that stores only 128-bit local interface prefix entry information of a node processing an IPv6 packet and network prefix entry information of 64 bits or less. To provide a lookup method for IPv6 Internet Protocol packets required to transfer IPv6 packets coming in from nodes on all networks that communicate using IPv6 packets to corresponding destinations using multi-stage forwarding tables. There is this.

상기 목적을 달성하기 위한 본 발명의 방법은, 인터넷 프로토콜 패킷 룩업 방법에 있어서, 패킷 수신기로부터 패킷을 수신하여 헤더 정보를 추출하고, 추출된 헤더 정보에서 목적지 주소를 추출하여 CAM(Content Addressable Memory)에서 룩업을 수행하는 CAM 룩업단계; 상기 CAM 룩업단계에서 룩업 매칭이 발생하였는지를 확인하는 CAM 룩업 확인단계; 상기 CAM 룩업 확인단계에서, 매칭이 된 경우는 중앙 제어기로 패킷을 전달하고, 매칭이 되지 않은 경우는 상기 CAM에 저장된 인덱스를 이용하여 멀티비트-트라이 테이블 위치를 파악하여 해당 멀티비트-트라이 테이블을 이용하여 룩업을 수행하는 멀티비트-트라이 테이블 룩업단계; 상기 멀티비트-트라이 테이블 룩업단계에서 매칭이 발생하는지를 확인하는 멀티비트-트라이 테이블 룩업 확인단계; 및 상기 멀티비트-트라이 테이블 룩업 확인단계에서, 매칭이 발생하면 외부 네트워크로 전송해야할 패킷이므로 패킷 송신기로 패킷을 전달하고, 매칭이 발생하지 않으면 패킷을 폐기하거나 디폴트 루트로 패킷을 전송하는 패킷 처리단계를 포함한다.In the method of the present invention for achieving the above object, in the Internet protocol packet lookup method, a packet is received from a packet receiver to extract header information, and a destination address is extracted from the extracted header information to a content addressable memory (CAM). A CAM lookup step of performing a lookup; A CAM lookup checking step of checking whether a lookup matching has occurred in the CAM lookup step; In the CAM lookup checking step, if a match is found, the packet is delivered to the central controller. If the match is not found, the multibit-tri table is determined by using the index stored in the CAM to determine the location of the multibit-tri table. A multibit-tri table lookup step of performing a lookup by using a lookup step; A multi-bit-tri table lookup checking step of checking whether a matching occurs in the multi-bit-tri table lookup step; And in the multi-bit table lookup checking step, if a match occurs, the packet is transmitted to an external network, so that the packet is transmitted to a packet transmitter, and if a match does not occur, the packet is discarded or a packet is transmitted to a default route. It includes.

또한, 상기 본 발명의 방법은, 상기 중앙 제어기로부터 로컬 인터페이스에 대한 정보를 수신하여 저장하는 정보 수신 및 저장 단계; 상기 수신한 상기 로컬 인터페이스 정보와 매칭될 경우 패킷을 송신할 로컬 제어기나, 매칭되지 않을 경우 룩업을 계속 진행할 멀티비트-트라이 테이블 위치 정보를 가지고 있는 인덱스를 상기 CAM(Content Addressable Memory)에 저장하는 인덱스 저장 단계; 및 상기 중앙 제어기로부터 수신한 포워딩 정보를 상기 멀티비트-트라이 테이블에 저장하는 포워딩 정보 저장 단계를 더 포함한다.In addition, the method of the present invention, the information receiving and storing step of receiving and storing information on the local interface from the central controller; An index for storing a local controller to transmit a packet when the local interface information is received, or an index having multibit-tri table location information to continue the lookup if the local interface information is not matched, in the CAM (Content Addressable Memory). Storage step; And storing the forwarding information received from the central controller in the multi-bit-tri table.

상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2 는 본 발명이 적용되는 포워딩 테이블을 나타낸 일실시예 설명도이다.2 is a diagram illustrating an embodiment of a forwarding table to which the present invention is applied.

도면에서, "201"은 패킷 수신기, "202"는 로컬 인터페이스 정보, "203"은 인덱스, "204"는 포워딩 정보, "205"는 인덱스, "206"은 N차 포워딩 테이블, "207"은 로컬 제어기, 그리고 "208"은 패킷 송신기를 나타낸다.In the figure, "201" is a packet receiver, "202" is local interface information, "203" is index, "204" is forwarding information, "205" is index, "206" is Nth order forwarding table, and "207" is Local controller, and "208" represents a packet transmitter.

패킷 수신기(201)로부터 수신한 IPv6 패킷 프리픽스가 로컬 인터페이스 정보(202)인지 확인한다.It is checked whether the IPv6 packet prefix received from the packet receiver 201 is the local interface information 202.

로컬 인터페이스 정보이면 프리픽스 길이가 128비트이고 포워딩 되어야 할 패킷의 프리픽스는 64비트이하이므로 분리해서 룩업을 수행하여 메모리 사용량을 줄이고 메모리 접근 횟수도 많이 줄일 수 있다.For local interface information, the prefix length is 128 bits, and the prefix of packets to be forwarded is 64 bits or less, so that separate lookups can be used to reduce memory usage and reduce the number of memory accesses.

CAM에 들어 있는 로컬 인터페이스 정보와 인입된 IPv6 패킷 프리픽스를 비교하여 매칭이 되면 로컬 제어기(207)로 패킷을 전송하고 매칭되지 않으면 인덱스(203)를 이용하여 다음 1차 멀티비트-트라이 테이블을 이용하여 룩업한다. 여기서, N차 테이블(206)은 IPv6 프리픽스를 고정길이로 분할하는 경우에 따라 변경될 수 있다. 만일 16개로 분할하면 N차 테이블은 16차 테이블이 된다.By comparing the local interface information contained in the CAM with the incoming IPv6 packet prefix, if a match is found, the packet is transmitted to the local controller 207, and if it is not matched, the index is used using the next primary multibit-tri table. Look up. Here, the Nth table 206 may be changed depending on the case in which the IPv6 prefix is divided into fixed lengths. If the partition is divided into 16, the Nth table becomes a 16th table.

본 발명의 중요한 점은 멀티비트-트라이 테이블에서 룩업하는 IPv6 프리픽스 길이가 64비트라는 점이다. 고정길이는 사용가능한 메모리에 따라 변경이 될 수 있 다.An important point of the present invention is that the IPv6 prefix length looking up in the multibit-tri table is 64 bits. The fixed length can be changed depending on the available memory.

멀티비트-트라이 테이블의 포워딩 엔트리 구조는 1차 테이블부터 N차 테이블까지 순차적으로 인입된 IPv6 프리픽스를 나누어 비교하여 매칭되면 포워딩정보(204)에 따라 패킷 송신기(208)로 보낸다. 만일 매칭되지 않으면 다음 테이블을 가리키는 인덱스(205)에 따라 다음 비교할 테이블을 찾을 수 있다. 이렇게 할 경우 일반적인 멀티비트-트라이 방식과 비교하면 메모리 사용량과 메모리 접근 횟수가 획기적으로 줄게 된다. 왜냐하면 128비트를 룩업하지 않고 64비트만 룩업하기 때문이다.The forwarding entry structure of the multi-bit-tri table divides and compares IPv6 prefixes sequentially inserted from the primary table to the N-th table and sends them to the packet transmitter 208 according to the forwarding information 204 when they match. If there is no match, the next table to be compared may be found according to the index 205 indicating the next table. This dramatically reduces memory usage and the number of memory accesses compared to the traditional multibit-try approach. This is because only 64 bits are looked up without 128 bits.

즉, IPv6 패킷 프리픽스의 길이는 128비트이기 때문에 LPM을 수행하는 데 있어 많은 메모리와 메모리 접근 횟수가 필요하다. 따라서, 현재까지의 IPv4 프리픽스 룩업 방법을 이용하여 IPv6 프리픽스를 룩업하기는 매우 어렵다. 즉, 고속으로 IPv6 프리픽스를 가지는 패킷을 LPM으로 룩업할 수 있는 IPv6 프리픽스 룩업 방안과 이를 위해 필요한 포워딩 테이블 관리 방안이 필요하며 구축하기 위한 비용도 적어야 한다.That is, since the IPv6 packet prefix is 128 bits in length, a large amount of memory and the number of memory accesses are required to perform LPM. Thus, it is very difficult to look up an IPv6 prefix using the IPv4 prefix lookup method up to now. That is, an IPv6 prefix lookup method that can look up packets with IPv6 prefix at high speed with LPM, and a forwarding table management method required for this need to be required, and the cost for constructing the packet should be low.

따라서, 본 발명은 IPv6 프리픽스가 LPM을 수행하여 128비트와 매칭이 될 경우 이 IPv6 패킷은 로컬 인터페이스라는 점에 착안하여 먼저 전체 IPv6 프리픽스를 룩업하지 않고 IPv6 패킷을 처리하는 노드의 128비트 길이의 로컬 인터페이스 프리픽스 엔트리 정보만을 저장하는 작은 크기의 CAM을 이용하여 로컬 인터페이스 정보인지를 먼저 룩업한다. 여기에서 사용되는 CAM의 크기는 로컬 인터페이스 개수에 비례한다. 즉, 128비트에 로컬 인터페이스 크기를 곱한 값이 CAM의 크기가 된다. 현재까지 고속으로 IPv6 패킷을 처리하는 노드들의 로컬 인터페이스 수는 많지 않다. 따라서, 메모리 크기가 작은 CAM을 사용할 수 있기 때문에 비록 CAM을 쓰더라도 추가 비용이 적게 들고 룩업 속도는 메모리 접근 횟수 한 번만으로 로컬 인터페이스 프리픽스인지 판단할 수 있다. 또한, 64비트 이하의 외부 네트워크 프리픽스는 고속 룩업이 가능한 다단계 포워딩 테이블들을 이용한 멀티비트-트라이 방식으로 IPv6 프리픽스 룩업을 수행함으로써 이러한 문제를 해결할 수 있다.Therefore, the present invention focuses on the fact that when an IPv6 prefix performs LPM and matches 128 bits, the IPv6 packet is a local interface. First, the 128-bit local node of the node processing the IPv6 packet without first looking up the entire IPv6 prefix is considered. A small size CAM that stores only interface prefix entry information is used to first look up whether it is local interface information. The size of the CAM used here is proportional to the number of local interfaces. That is, the size of CAM is obtained by multiplying 128 bits by the size of the local interface. To date, the number of local interfaces of nodes that process IPv6 packets at high speed is not high. Thus, because a small memory size CAM can be used, even if the CAM is used, the additional cost is low and the lookup speed can be determined as the local interface prefix with only one memory access. In addition, an external network prefix of 64 bits or less may solve this problem by performing an IPv6 prefix lookup using a multi-bit-try method using multi-step forwarding tables capable of fast lookup.

도 3 은 본 발명에 따른 인터넷 프로토콜 룩업 방법에 대한 일실시예 흐름도로서, IPv6 프리픽스를 멀티비트-트라이 테이블을 구축하기 위해 고정길이로 분할하는 과정을 나타낸다.3 is a flowchart illustrating an embodiment of an Internet protocol lookup method according to the present invention, and illustrates a process of dividing an IPv6 prefix into fixed lengths to construct a multibit-tri table.

도 3에 도시된 바와 같이, 본 발명에 따른 인터넷 프로토콜 룩업 방법에서 IPv6 프리픽스를 멀티비트-트라이 테이블을 구축하기 위해 고정길이로 분할하는 과정은, 먼저 중앙 제어기로부터 포워딩 정보 및 로컬 인터페이스에 대한 정보를 수신하고(301), 수신한 인터페이스 정보와 매칭될 경우 패킷을 송신할 로컬 제어기나 매칭되지 않을 경우 룩업을 계속 진행할 멀티비트-트라이 테이블 위치 정보를 가지고 있는 인덱스를 CAM에 저장한다(302).As shown in FIG. 3, in the Internet protocol lookup method according to the present invention, the process of dividing an IPv6 prefix into fixed lengths to construct a multibit-tri table comprises: first, forwarding information and information about a local interface from a central controller. In operation 302, an index having a local controller to transmit a packet when the received interface information is matched or a multi-bit table position information to continue the lookup when the interface information is not matched (302) is received.

다음으로, 로컬 인터페이스가 아닌 포워딩 정보를 멀티비트-트라이 테이블에 저장함으로써 IPv6 패킷 프리픽스 룩업이 가능한 상태가 된다(303).Next, IPv6 packet prefix lookup is possible by storing forwarding information rather than a local interface in a multibit-tri table (303).

도 4 는 본 발명에 따른 인터넷 프로토콜 룩업 방법에 대한 다른 실시예 흐름도로서, IPv6 프리픽스를 CAM과 멀티비트-트라이 테이블을 이용하여 룩업하는 전체 진행 과정을 나타낸다.4 is a flowchart illustrating another embodiment of the Internet protocol lookup method according to the present invention, and illustrates an overall process of looking up an IPv6 prefix using a CAM and a multibit-tri table.

도 4에 도시된 바와 같이, 본 발명에 따른 인터넷 프로토콜 룩업 방법은, 먼저 패킷 수신기로부터 패킷을 수신하여 헤더 정보를 추출하고(401), 추출된 헤더 정보에서 목적지 주소를 추출하여 CAM에서 룩업을 수행하고(402), 룩업 매칭이 발생하였는지를 확인한다(403).As shown in FIG. 4, the Internet protocol lookup method according to the present invention first receives a packet from a packet receiver, extracts header information, extracts a destination address from the extracted header information, and performs a lookup in the CAM. In operation 402, it is checked whether lookup matching has occurred (403).

상기 확인 결과, 매칭이 된 경우는 중앙 제어기로 패킷을 전달하고(405) IPv6 패킷 룩업을 종료한다. 만일 매칭이 되지 않을 경우는 CAM에 저장된 인덱스를 이용하여 멀티비트-트라이 테이블 위치를 파악하고 멀티비트-트라이 테이블을 이용하여 룩업을 계속 진행한다(404).As a result of the check, if a match is found, the packet is forwarded to the central controller (405) and the IPv6 packet lookup is terminated. If there is no match, the index stored in the CAM is used to determine the location of the multibit-tri table, and the lookup is continued using the multibit-tritable (404).

멀티비트-트라이 테이블은 다단계로 구성될 수 있다. 멀티비트-트라이 테이블을 순차적으로 룩업할 때 매칭이 발생하는지를 확인하여(406), 발생하면 외부 네트워크로 전송해야할 패킷이므로 패킷 송신기로 패킷을 전달한다(408). 발생하지 않으면 CAM에서 로컬 인터페이스 정보와도 불일치하고 멀티비트-트라이 테이블 포워딩 정보와도 불일치하기 때문에 일치하는 포워딩 정보가 없으므로 패킷을 폐기하거나 디폴트 루트로 패킷을 전송한다(407).The multibit-tri table can be configured in multiple stages. When the multi-bit-tri table is sequentially looked up, it is checked whether a matching occurs (406), and if so, the packet is transmitted to an external network, so the packet is forwarded to the packet transmitter (408). If it does not occur, the CAM is inconsistent with the local interface information and also with the multibit-tri table forwarding information, so there is no matching forwarding information. Therefore, the packet is discarded or the packet is transmitted to the default route (407).

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form.

이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식 을 가진 자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the art without departing from the technical spirit of the present invention. It will be apparent to those of ordinary skill.

상기한 바와 같은 본 발명은, 메모리 크기가 작은 CAM을 사용할 수 있기 때문에 비록 CAM을 쓰더라도 추가 비용이 적게 들고 룩업 속도는 메모리 접근 횟수 한 번만으로 로컬 인터페이스 프리픽스인지 판단할 수 있고, 또한 64비트 이하의 외부 네트워크 프리픽스는 고속 룩업이 가능한 다단계 포워딩 테이블들을 이용한 멀티비트-트라이 방식으로 IPv6 프리픽스 룩업을 수행하기 때문에 128비트 길이를 가지는 IPv6 프리픽스 룩업을 고속으로 수행할 수 있어 노드에서의 포워딩 성능이 향상되는 효과가 있다.As described above, since the CAM having a small memory size can be used, even though the CAM is used, the additional cost is low and the lookup speed can be determined as a local interface prefix with only one memory access, and also less than 64 bits. External network prefix performs IPv6 prefix lookup using multi-bit forwarding table using multi-level forwarding table which enables high-speed lookup. Therefore, it is possible to perform 128-bit IPv6 prefix lookup at high speed. It works.

Claims (6)

인터넷 프로토콜 패킷 룩업 방법에 있어서,In the Internet protocol packet lookup method, 패킷 수신기로부터 패킷을 수신하여 헤더 정보를 추출하고, 추출된 헤더 정보에서 목적지 주소를 추출하여 CAM(Content Addressable Memory)에서 룩업을 수행하는 CAM 룩업단계;A CAM lookup step of receiving a packet from a packet receiver, extracting header information, extracting a destination address from the extracted header information, and performing a lookup in a CAM (Content Addressable Memory); 상기 CAM 룩업단계에서 룩업 매칭이 발생하였는지를 확인하는 CAM 룩업 확인단계;A CAM lookup checking step of checking whether a lookup matching has occurred in the CAM lookup step; 상기 CAM 룩업 확인단계에서, 매칭이 된 경우는 중앙 제어기로 패킷을 전달하고, 매칭이 되지 않은 경우는 상기 CAM에 저장된 인덱스를 이용하여 멀티비트-트라이 테이블 위치를 파악하여 해당 멀티비트-트라이 테이블을 이용하여 룩업을 수행하는 멀티비트-트라이 테이블 룩업단계;In the CAM lookup checking step, if a match is found, the packet is delivered to the central controller. If the match is not found, the multibit-tri table is determined by using the index stored in the CAM to determine the location of the multibit-tri table. A multibit-tri table lookup step of performing a lookup by using a lookup step; 상기 멀티비트-트라이 테이블 룩업단계에서 매칭이 발생하는지를 확인하는 멀티비트-트라이 테이블 룩업 확인단계; 및A multi-bit-tri table lookup checking step of checking whether a matching occurs in the multi-bit-tri table lookup step; And 상기 멀티비트-트라이 테이블 룩업 확인단계에서, 매칭이 발생하면 외부 네트워크로 전송해야할 패킷이므로 패킷 송신기로 패킷을 전달하고, 매칭이 발생하지 않으면 패킷을 폐기하거나 디폴트 루트로 패킷을 전송하는 패킷 처리단계In the multi-bit table lookup check step, if a match occurs, the packet is to be transmitted to an external network, so the packet is transmitted to a packet transmitter, and if a match does not occur, a packet processing step of discarding the packet or transmitting the packet to a default route. 를 포함하는 인터넷 프로토콜 패킷 룩업 방법.Internet protocol packet lookup method comprising a. 제 1 항에 있어서,The method of claim 1, 상기 중앙 제어기로부터 로컬 인터페이스에 대한 정보를 수신하여 저장하는 정보 수신 및 저장 단계;An information receiving and storing step of receiving and storing information on a local interface from the central controller; 상기 수신한 상기 로컬 인터페이스 정보와 매칭될 경우 패킷을 송신할 로컬 제어기나, 매칭되지 않을 경우 룩업을 계속 진행할 멀티비트-트라이 테이블 위치 정보를 가지고 있는 인덱스를 상기 CAM(Content Addressable Memory)에 저장하는 인덱스 저장 단계; 및An index for storing a local controller to transmit a packet when the local interface information is received, or an index having multibit-tri table location information to continue the lookup if the local interface information is not matched, in the CAM (Content Addressable Memory). Storage step; And 상기 중앙 제어기로부터 수신한 포워딩 정보를 상기 멀티비트-트라이 테이블에 저장하는 포워딩 정보 저장 단계Forwarding information storage step of storing the forwarding information received from the central controller in the multi-bit-tri table 를 더 포함하는 인터넷 프로토콜 패킷 룩업 방법.Internet protocol packet lookup method further comprising. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 CAM은,The CAM, 룩업 결과에 따라 포워딩 정보를 가지는 영역으로의 인덱스를 포함하는 것을 특징으로 하는 인터넷 프로토콜 패킷 룩업 방법.And an index to an area having forwarding information according to the lookup result. 제 3 항에 있어서,The method of claim 3, wherein 상기 멀티비트-트라이 테이블은,The multibit-tri table is, 룩업 결과에 따라 포워딩 정보를 가지는 영역으로의 인덱스를 포함하고, 두 개 이상의 테이블들로 구성될 수 있는 것을 특징으로 하는 인터넷 프로토콜 패킷 룩업 방법.An internet protocol packet lookup method comprising an index to an area having forwarding information according to a lookup result and comprising two or more tables. 제 4 항에 있어서,The method of claim 4, wherein 상기 멀티비트-트라이 테이블은,The multibit-tri table is, 두 개 이상으로 구성될 경우 각 멀티비트-트라이 테이블들이 룩업 결과에 따라 다음 테이블을 가리킬 수 있는 인덱스를 포함하는 것을 특징으로 하는 인터넷 프로토콜 패킷 룩업 방법.The Internet protocol packet lookup method of claim 2, wherein each multibit-tri table includes an index that can point to the next table according to the lookup result. 제 3 항에 있어서,The method of claim 3, wherein 상기 패킷 처리단계는,The packet processing step, 매칭이 발생하지 않으면 상기 CAM에서 로컬 인터페이스 정보와도 불일치하고 상기 멀티비트-트라이 테이블 포워딩 정보와도 불일치하기 때문에 일치하는 포워딩 정보가 없으므로 패킷을 폐기하거나 디폴트 루트로 패킷을 전송하는 것을 특징으로 하는 인터넷 프로토콜 패킷 룩업 방법.If no matching occurs, the CAM is inconsistent with local interface information and also with the multibit-tri table forwarding information. Therefore, there is no matching forwarding information. Therefore, the Internet discards the packet or transmits the packet to the default route. Protocol packet lookup method.
KR1020030098350A 2003-12-27 2003-12-27 How to Look Up Internet Protocol Packets KR100572693B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030098350A KR100572693B1 (en) 2003-12-27 2003-12-27 How to Look Up Internet Protocol Packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030098350A KR100572693B1 (en) 2003-12-27 2003-12-27 How to Look Up Internet Protocol Packets

Publications (2)

Publication Number Publication Date
KR20050066866A KR20050066866A (en) 2005-06-30
KR100572693B1 true KR100572693B1 (en) 2006-04-19

Family

ID=37257882

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030098350A KR100572693B1 (en) 2003-12-27 2003-12-27 How to Look Up Internet Protocol Packets

Country Status (1)

Country Link
KR (1) KR100572693B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745693B1 (en) 2006-09-29 2007-08-03 한국전자통신연구원 Method for ternary contents address memory table management
CN106161662A (en) * 2015-03-24 2016-11-23 中兴通讯股份有限公司 A kind of method and apparatus generating internet protocol address prefix

Also Published As

Publication number Publication date
KR20050066866A (en) 2005-06-30

Similar Documents

Publication Publication Date Title
US7885268B2 (en) Method and system for hash table based routing via table and prefix aggregation
US9819637B2 (en) Efficient longest prefix matching techniques for network devices
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US6862281B1 (en) L4 lookup implementation using efficient CAM organization
US7039018B2 (en) Technique to improve network routing using best-match and exact-match techniques
EP1344152B1 (en) Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables
US6654701B2 (en) Method and apparatus for measuring protocol performance in a data communication network
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
JP4716909B2 (en) Method and apparatus for providing a network connection table
US6581106B1 (en) Fast address lookup in routing tables
JP2000196670A (en) Fast retrieving method and its device
US6870849B1 (en) Apparatus and method for efficient hashing in networks
US7058725B2 (en) Method and apparatus to perform network routing using multiple length trie blocks
US7349981B2 (en) System, apparatus, and method for string matching
KR100541846B1 (en) Internet Protocol address lookup system based on 3 layer table architecture and method thereof
US7742471B2 (en) Methods and systems for routing packets with a hardware forwarding engine and a software forwarding engine
US7564841B2 (en) Apparatus and method for performing forwarding table searches using consecutive symbols tables
US20050114393A1 (en) Dynamic forwarding method using binary search
KR100572693B1 (en) How to Look Up Internet Protocol Packets
US7746865B2 (en) Maskable content addressable memory
US11178054B1 (en) Method and apparatus for longest prefix match search
KR100862195B1 (en) Method and Apparatus for searching by range matching using content addressable memory
US7376657B1 (en) Fast IPv6 address lookup using skip level processing on multi-bit tries
KR100493099B1 (en) Route lookup and routing/forwarding table management for high-speed internet protocol router
KR100920107B1 (en) Apparatus for searching ip address and method for controlling the same

Legal Events

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

Payment date: 20100401

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee