KR100767072B1 - A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor - Google Patents

A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor Download PDF

Info

Publication number
KR100767072B1
KR100767072B1 KR1020060016944A KR20060016944A KR100767072B1 KR 100767072 B1 KR100767072 B1 KR 100767072B1 KR 1020060016944 A KR1020060016944 A KR 1020060016944A KR 20060016944 A KR20060016944 A KR 20060016944A KR 100767072 B1 KR100767072 B1 KR 100767072B1
Authority
KR
South Korea
Prior art keywords
rule
packet
tree
rules
stored
Prior art date
Application number
KR1020060016944A
Other languages
Korean (ko)
Other versions
KR20070084760A (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 KR1020060016944A priority Critical patent/KR100767072B1/en
Publication of KR20070084760A publication Critical patent/KR20070084760A/en
Application granted granted Critical
Publication of KR100767072B1 publication Critical patent/KR100767072B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5029Service quality level-based billing, e.g. dependent on measured service level customer is charged more or less
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies

Abstract

본 발명은 영역분할을 이용한 패킷 분류 방법 및 이를 적용한 패킷 중계 장치에 관한 것으로, 본 발명에 따른 패킷 중계 장치의 패킷 분류 방법은, (a) 적어도 하나의 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 정의한 패킷 분류 테이블을 생성하는 단계와, (b) 생성된 패킷 분류 테이블에 포함된 각 규칙들에 대하여 트리를 생성하여 저장하는 단계와, (c) 패킷 중계 장치로 입력되는 패킷 중에서 분류에 사용될 비트를 추출하여 플로우 조건을 생성하는 단계와, (d) 플로우 조건에 매치하는 규칙을 찾기 위하여 저장된 트리를 검색하는 단계와, (e) 검색된 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 서비스를 제공하는 단계를 포함하며, 규칙들을 저장할 트리는 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 생성되는 것을 특징으로 한다. 이에 따라, 검색 시간을 줄일 수 있을 뿐만 아니라 소요되는 메모리의 크기도 줄일 수 있는 효율적인 패킷 분류 방법을 제공할 수 있다.The present invention relates to a packet classification method using area partitioning and a packet relaying apparatus using the same. The packet classification method of the packet relaying apparatus according to the present invention includes: (a) classifying a packet class based on at least one packet field; Generating a packet classification table defining rules; (b) generating and storing a tree for each rule included in the generated packet classification table; Extracting the bits to be used to generate a flow condition; (d) searching the stored tree to find a rule that matches the flow condition; and (e) based on class information included in the rule that matches the retrieved flow condition. Providing a service, wherein the tree for storing the rules is divided into regions based on the priorities of the predefined rules. It is characterized in that it is generated using. Accordingly, it is possible to provide an efficient packet classification method that can reduce search time and reduce the size of memory required.

패킷 분류, 패킷 중계, QoS, packet classification Packet classification, packet relay, QoS, packet classification

Description

우선순위 기반의 영역분할을 이용한 패킷 분류 방법 및 이를 적용한 패킷 중계 장치{A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor}A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor}

도 1은 근원지 프리픽스를 이용한 영역분할의 일 예,1 is an example of region division using a source prefix;

도 2는 종래의 근원지 프리픽스를 이용한 이진트리 구조의 일 예,2 is an example of a binary tree structure using a conventional source prefix,

도 3은 근원지 프리픽스와 목적지 프리픽스를 이용한 이차원 영역분할의 일 예,3 is an example of two-dimensional region partitioning using a source prefix and a destination prefix;

도 4는 종래의 근원지 프리픽스와 목적지 프리픽스를 이용한 AQT 사분트리 구조의 일 예,4 is an example of an AQT quadrant tree structure using a conventional source prefix and a destination prefix,

도 5는 본 발명의 일 실시예에 따른 패킷 중계 장치의 블록도,5 is a block diagram of a packet relay apparatus according to an embodiment of the present invention;

도 6은 도 5에 도시된 인터페이스의 상세 블록도,6 is a detailed block diagram of the interface shown in FIG. 5;

도 7은 본 발명에 따른 근원지 프리픽스를 이용한 이진트리 구조의 일 예,7 is an example of a binary tree structure using a source prefix according to the present invention;

도 8은 본 발명에 따른 근원지 프리픽스와 목적지 프리픽스를 이용한 사분트리 구조의 일 예,8 is an example of a quadrant tree structure using a source prefix and a destination prefix according to the present invention;

도 9는 본 발명의 일 실시예에 따른 패킷 분류 방법을 도시한 흐름도,9 is a flowchart illustrating a packet classification method according to an embodiment of the present invention;

도 10은 본 발명의 일 실시예에 따른 검색 방법을 도시한 흐름도이다.10 is a flowchart illustrating a search method according to an embodiment of the present invention.

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

10: 인터페이스 20: 스위치 패브릭10: interface 20: switch fabric

11: 패킷 송수신부 12: 프레임 해석부11: packet transceiver 12: frame analyzer

13: 어드레스 룩업 처리부 14: 패킷 분류 처리부13: Address lookup processing unit 14: Packet classification processing unit

15: 전송 제어부 15: transmission control unit

본 발명의 패킷 중계 장치에서의 패킷 분류 방법에 관한 것으로, 보다 구체적으로는 우선순위 기반의 영역분할 방식을 응용하여 품질 보증서비스를 제공하도록 패킷을 분류하는 방법에 관한 것이다.The present invention relates to a packet classification method in a packet relay apparatus of the present invention, and more particularly, to a method of classifying a packet to provide a quality assurance service by applying a priority-based area division scheme.

전통적으로 인터넷 라우터는 들어오는 모든 패킷을 동일하게 처리하는 최선의 지원(best-effort-service)을 기본으로 하고 있다. 그러나 지난 수년간 인터넷 상에서 오디오나 비디오 데이터를 전송하는 네트워크 응용 프로그램이 급성장함에 따라 인터넷 서비스 제공자와 사용자들은 라우터에서 응용 프로그램의 종류와 목적에 따라 다양한 레벨의 품질보장(quality of service, QoS)을 제공할 것을 요구하게 되었다. 라우터에서 품질보장을 지원하기 위해서는 수락 제어(admission control), 자원 예약(resource reservation), 플로우별 큐잉(per-flow queuing), 출력 스케줄링(output scheduling) 등의 기능을 수행하여야 한다. 이러한 기능을 수행하기 위한 필수조건은 라우터로 들어오는 패킷들을 구별하여 서로 다른 플로우 로 분류하는 패킷분류(packet classification) 기능이다. 이처럼 패킷분류 능력을 가진 라우터를 플로우-인지(flow-aware) 라우터라고 하는데, 라우터에 들어오는 패킷들의 플로우에 따라 클래스를 나누고, 각 클래스에 따라 다른 서비스를 제공한다는 점에서 전통적인 라우터와 구별된다.Traditionally, Internet routers are based on the best-effort-service, which treats all incoming packets equally. However, with the rapid growth of network applications that transmit audio or video data over the Internet over the years, Internet service providers and users can offer varying levels of quality of service (QoS), depending on the type and purpose of the application on the router. I was asked to. In order to support quality assurance in a router, functions such as admission control, resource reservation, per-flow queuing, and output scheduling should be performed. A prerequisite for performing this function is the packet classification function, which classifies packets that enter the router and classifies them into different flows. Routers with packet classification capabilities are called flow-aware routers, which distinguish them from traditional routers by dividing classes according to the flow of packets entering the router and providing different services for each class.

각각의 클래스는 주로 패킷 헤더의 여러 필드들로 구성된 규칙(rule)들에 의해 정의되는데, 응용 프로그램들의 요구에 의해 결정된 규칙들의 집합을 분류테이블(classification table)이라 한다. 패킷분류는 패킷의 클래스들을 정의해 놓은 분류테이블에 따라 라우터로 들어오는 패킷의 클래스를 결정하는 것을 의미한다. 즉 패킷분류란 입력된 패킷의 해당 필드들과 분류테이블을 구성하고 있는 규칙들의 각 필드들이 모두 매치하는 규칙들을 찾고 그 중에서 가장 우선순위가 높은 규칙을 선택하여, 패킷을 선택된 규칙에서 규정하는 바와 같이 처리하는 과정이다. Each class is defined by rules that consist primarily of several fields of the packet header. A set of rules determined by the needs of application programs is called a classification table. Packet classification means deciding the class of the packet coming into the router according to the classification table that defines the class of the packet. In other words, the packet classification means that the fields of the input packet and the fields of the rules constituting the classification table all match rules, select the highest priority rule among them, and define the packet in the selected rule. It's a process.

패킷분류는 IP 주소 검색처럼 라우터에 입력되는 모든 패킷에 대하여 실시간으로 처리되어야 하지만, 네트워크 계층상 3계층(Network Layer)의 헤더 필드뿐 아니라, 4계층(Transport Layer)의 필드를 처리해야 하고 필드에 따라 각기 다른 종류의 연산이 요구되기 때문에 IP 주소 검색보다 데이터 구조나 검색 방법이 매우 복잡하고, 검색 시간이 많이 소요된다. Packet classification must be processed in real time for all packets entering the router, such as IP address lookup, but must process not only the header fields of the network layer but also the transport layer fields on the network layer. Because different kinds of operations are required, data structures and retrieval methods are more complicated than IP address retrieval, and retrieval time is required.

품질보장 지원의 요구에 따라 라우터에서의 패킷분류 기능이 더욱 강조됨에 따라 효율적인 패킷 분류를 위한 방법들이 널리 연구되고 있다. 패킷분류를 위해 제안된 방법들의 성능을 평가하기 위한 중요한 척도로는 검색 시간과 소요되는 메모리의 크기를 들 수 있다. 그동안 패킷분류를 위하여 여러 방법들이 제안되었지 만, 각 방법들은 검색 시간과 소요되는 메모리 두 측면 중 한쪽에 치중된 경우가 많았다. 즉, 합당한 검색 시간을 제공하는 경우에는 분류테이블의 크기에 비하여 소요되는 메모리가 너무 크고, 반대로 적당한 메모리를 사용한 경우에는 검색 시간이 길다는 단점을 가지고 있었다.As the packet classification function in the router is further emphasized according to the requirement of quality assurance support, methods for efficient packet classification have been widely studied. An important measure for evaluating the performance of the proposed methods for packet classification is the retrieval time and the amount of memory required. Several methods have been proposed for packet classification, but each method is often focused on one of two aspects: search time and memory requirements. In other words, if a reasonable search time is provided, the memory required is too large for the size of the classification table. On the contrary, if a suitable memory is used, the search time is long.

이하, 보다 구체적으로 기존의 패킷분류 기법들을 살펴본다.Hereinafter, more specifically, the existing packet classification techniques will be described.

분류테이블의 검색시간을 줄이기 위하여 현재 시스코 등의 라우터장비 업체에서 가장 많이 사용하는 방법은 내용주소화 메모리(ternary content addressable memory, TCAM)를 사용하여 패킷분류를 구현하는 방법이다. TCAM은 한 번의 메모리 접근으로 패킷분류를 가능하게 하는 매우 우수한 구조이나, 일반 메모리에 비하여 가격이 비쌀 뿐만 아니라, 면적에 있어 일반 메모리의 6배 정도를 차지하고, 전력소모가 매우 큰 단점이 있다. 이에 따라 일반 메모리를 사용하면서도 분류테이블의 검색속도를 향상시킬 수 있는 여러 가지 패킷분류 방법들이 연구되고 있다.In order to reduce the searching time of the classification table, the most widely used method of router equipment companies such as Cisco is to implement packet classification using ternary content addressable memory (TCAM). TCAM has a very good structure that enables packet classification with one memory access, but it is expensive compared to general memory, occupies about 6 times of general memory in area, and has a very large power consumption. Accordingly, various packet classification methods have been studied to improve the search speed of classification tables while using general memory.

기존의 패킷분류 방법은 그 접근 방법에 따라 크게 트라이(trie) 구조와 같은 기본적인 데이터 구조를 이용한 방법들과 경험적 특성을 이용한 방법, 그리고 규칙의 프리픽스 필드가 차지하는 영역에 따른 기하학적 구조를 이용한 방법들로 나누어 생각해 볼 수 있다.Conventional packet classification methods include methods using basic data structures such as trie, empirical characteristics, and methods using geometric structures according to the area occupied by the prefix field. You can think of it in a separate way.

1) 트라이(trie)에 기초한 방법1) Trie based method

분류테이블을 구성하는 필드 중, IP 목적지 프리픽스(destination prefix)나 근원지 프리픽스 (source prefix)와 같이 프리픽스로 표현되는 필드들을 사용하여 구성하는 방식이 트라이 구조를 이용한 방법이다. 계층트라이(hierarchical trie)는 다차원(multi-dimension)을 가지는 분류테이블에 대하여 각각의 차원에 대하여 트라이를 구성하고 개개의 트라이를 계층적으로 연결한 것이다. IP 주소 검색에서 사용되었던 트라이 구조는 한 가지 필드로 구성된 트라이이고, 패킷분류를 위해서는 이것의 리프(leaf)에 그 다음 필드를 계층적으로 연결시킴으로써 각 필드를 순차적으로 검색할 수 있게 한다. Among the fields constituting the classification table, a tri-structure is a method of configuring a field using a field represented by a prefix such as an IP destination prefix or a source prefix. A hierarchical trie is a triangulation for each dimension of a classification table with multi-dimensions and hierarchically linked individual tris. The tri structure used in IP address retrieval is a single field tri, and for packet classification, each field can be retrieved sequentially by hierarchically concatenating the next field to its leaf.

그러나, 계층 트라이 방식은 패킷이 여러 가지 규칙에 매치할 때, 트라이의 하나의 가지로 내려와서 매치하는 규칙을 찾았다 하더라도 더 높은 순위의 규칙과 매치할 수 있으므로, 백-트랙킹(back-tracking)을 해야 하는 단점이 있다. 이 때문에 프리픽스의 최대 길이를 W라 하고 d개의 필드로 구성된 경우, O(Wd)의 검색 시간과 O(NdW)의 메모리가 요구된다. However, the hierarchical tri approach allows for back-tracking when a packet matches a number of rules, even if it finds a rule that comes down to one branch of the tri and matches a higher rank rule. There is a downside to it. For this reason, when the maximum length of the prefix is W and is composed of d fields, a search time of O (W d ) and a memory of O (NdW) are required.

한편, 셋-푸루닝 트라이 (set-pruning trie) 방식은 트라이의 모든 경로에 매치하는 규칙을 복사하여 저장하는 방법으로 계층트라이 구조에서의 백-트랙킹을 없앰으로써 검색 시간을 O(dW)로 개선한 것이다. 그러나, 향상된 검색 시간에 대한 패널티로 메모리 요구량이 O(Nd)로 증가하는 단점이 있다.On the other hand, the set-pruning trie method improves the search time to O (dW) by eliminating back-tracking in the hierarchical structure by copying and storing a rule matching all paths of the tri. It is. However, there is a disadvantage in that the memory requirement increases to O (N d ) due to the penalty for improved search time.

그 밖에도 전처리 과정과 스위칭포인터(switching pointer)를 통해 셋-푸루닝 트라이의 이점인 단축 시간을 그대로 유지하되, 규칙을 복사하여 저장하는 단점을 해결한 방법인 그리드-오브-트라이(grid-of-trie) 방식이 있다. 그리드-오브-트라이는 메모리 요구량을 O(NdW)로 유지하면서도 검색 시간을 O(Wd-1)로 줄인 방법 이다. In addition, the pre-processing and switching pointers preserve the short-term savings of the set-pruning trie, while eliminating the disadvantages of copying and storing rules. trie). Grid-of-try reduces the search time to O (W d-1 ) while maintaining the memory requirement as O (NdW).

그러나, 각 노드에 대하여 가장 잘 매치하는 규칙(best matching rule, BMR 또는 최선정합법칙 이라 함)을 미리 계산하여 저장하여야 하고, 각 노드에서 다른 노드로 이동하는 스위칭포인터를 미리 계산하는데 과도한 전 처리를 요구함으로써 트라이를 구성하고 업데이트하는데 시간이 많이 소요되는 단점이 있다.However, the best matching rule (called BMR or best matching rule) must be calculated and stored for each node in advance, and excessive preprocessing is required to precompute the switching pointers moving from each node to another node. The drawback is that it takes a long time to configure and update a tri.

요컨대, 앞서 설명한 트라이 구조들의 본질적인 문제는 트라이에 규칙을 저장하지 않는 비어있는 노드가 과도하게 존재하여 메모리 요구량이 증가하며 검색시간이 오래 걸린다는 점이다. In short, an inherent problem with the tri-structures described above is that there are too many empty nodes that do not store rules in the tri, which increases memory requirements and takes longer to retrieve.

2) 경험적 특성을 이용한 방법2) Method using empirical characteristics

분류테이블의 경험적 특성을 이용한 방법으로는 HiCuts(Hierarchical Intelligent Cuttings)와 튜플-영역검색(tuple-space search) 방법 등이 있다.The empirical characteristics of the classification table include HiCuts (Hierarchical Intelligent Cuttings) and tuple-space search.

먼저, HiCuts 방식은 규칙의 각 필드를 영역으로 표현한 다차원 검색 영역을 분할하고 특정 영역에 속하는 규칙만을 검색함으로써 검색해 보아야 하는 규칙의 개수를 줄이는데, 매 분할의 과정에서 분류테이블의 특성을 파악하여 영역을 분할할 차원과 몇 개의 영역으로 분할할 것인지를 정하는 방법이다. 이 방식은 분할된 영역을 바탕으로 판단트리(decision tree)를 구성하는데 판단트리의 각 리프는 미리 정해진 임계(threshold) 개수보다 적은 수의 규칙을 가지고 있게 된다. 검색 과정은 판단트리를 따라 내려가서 리프에 도달하고 나면, 그 리프에 저장된 규칙에 대하여는 순차적 검색을 하게 되는 방식이다. First, the HiCuts method reduces the number of rules that need to be searched by dividing the multi-dimensional search area expressing each field of the rule into areas and searching only rules belonging to a specific area. How to divide the dimension and how many areas to divide. In this method, a decision tree is formed based on the divided regions, and each leaf of the decision tree has a number of rules less than a predetermined threshold number. The search process descends along the decision tree and reaches a leaf, and then sequentially searches for rules stored in that leaf.

그러나, 이 경우 판단트리 구성을 위하여 선처리 시간이 많이 요구되고, 분류테이블의 필드들이 가지는 범위 분포에 따라 검색 시간의 의존도가 크다는 단점을 가지고 있다. However, in this case, a large amount of preprocessing time is required for constructing the decision tree, and the search time is highly dependent on the range distribution of the fields of the classification table.

한편, 분류테이블의 튜플(tuple)에 대한 특성을 고려한 방법으로는 튜플-영역검색이 있다. 튜플-영역검색은 분류테이블을 구성하는 필드 중 근원지주소와 목적지주소 쌍으로 구성된 튜플의 개수는 많지 않다는 관찰에 그 출발점을 두고 있다. 이 방식은 프리픽스의 길이 쌍으로 튜플을 구성하고 튜플들을 순차적으로 검색하되, 각 튜플에 대해서는 확정매치(exact match)가 가능하므로 해슁을 적용하는 방식이다. 따라서 튜플의 수만큼 메모리 액세스가 요구된다.On the other hand, a method that considers the characteristics of the tuple of the classification table is a tuple-region search. Tuple-area searching is based on the observation that the number of tuples consisting of source and destination address pairs among the fields of the classification table is not large. In this method, a tuple is formed by a pair of prefix lengths, and the tuples are sequentially searched, but a hash is applied because an exact match is possible for each tuple. Therefore, memory access is required as many as tuples.

최근 Srinivasan 등은 실제 라우터에서 사용되는 분류테이블의 성질을 분석하여 분류테이블을 이루고 있는 필드 중 근원지 프리픽스와 목적지 프리픽스만을 사용하여, 입력된 패킷과 매치하는 규칙들을 일차적으로 거른 후에, 걸러진 규칙들에 대해 선형검색을 사용하는 방법을 연구하였다. 이 논문에 따르면 근원지 프리픽스와 목적지 프리픽스를 사용하여 입력 패킷과 일치할 수 있는 후보규칙(candidate rule)을 고르면 5% 정도의 입력만이 20여 개의 후보규칙과 일치하고, 나머지 95%의 입력은 5개미만의 후보규칙과 일치하므로, 근원지 프리픽스와 목적지 프리픽스를 사용하는 효율적인 이차원 검색 알고리듬이 다차원 패킷분류에 그대로 적용될 수 있음을 시사 하였다.Recently, Srinivasan et al. Analyzed the properties of classification tables used in real routers and filtered only the rules that match the input packets using only source prefix and destination prefix among fields constituting the classification table. We studied a method using linear search. According to this paper, using the source prefix and the destination prefix, if you select a candidate rule that can match the input packet, only 5% of the input matches 20 candidate rules, and the remaining 95% of the input is 5 As it is consistent with the antagonistic candidate rule, it is suggested that an efficient two-dimensional retrieval algorithm using source prefix and destination prefix can be applied to multidimensional packet classification.

3) 기하학적 구조를 이용하는 방법3) How to use the geometry

기하학적 구조를 이용하는 방법은 규칙의 각 필드를 영역으로 표현하고 영역을 줄여가면서 패킷이 속하는 가장 구체적인 영역을 찾는 방법이다. The method of using the geometry is to express each field of the rule as an area and find the most specific area to which the packet belongs while reducing the area.

먼저, 외적(cross-producing) 방법은 규칙을 구성하는 각 필드들에 대하여 필드를 구성하는 케이스들을 구하고, 이러한 케이스들의 조합을 사용하여 미리 외적(cross-product) 테이블을 구성하여 놓는다. 외적 테이블에는 각 엔트리에 매치하는 BMR을 미리 계산하여 놓는다. 검색 시에는 분류테이블의 모든 필드에 대하여 일차원 검색을 각각 수행한 후, 그 결과를 포인터로 하여 외적 테이블에 접근하여 매치하는 규칙을 얻는 방법이다. 각 조합에 대하여 BMR이 구해져 있으므로, 일단 각 필드에 대하여 검색을 수행하여 그 필드가 해당하는 케이스를 구하게 되면 외적 테이블로부터 바로 BMR을 얻을 수 있어 빠른 검색이 가능하다. First, the cross-producing method obtains cases constituting a field for each field constituting a rule, and constructs a cross-product table in advance using a combination of these cases. In the cross table, the BMR corresponding to each entry is calculated in advance. In the search, a one-dimensional search is performed on all fields of the classification table, and then a result of accessing an external table using the result as a pointer is obtained. Since the BMR is obtained for each combination, once a search is performed on each field to find a case corresponding to the field, the BMR can be obtained directly from the cross table, thereby enabling a quick search.

그러나 외적 테이블을 위하여 O(Nd)의 큰 메모리를 요구하게 되고, 업데이트가 어려운 단점이 있다. However, a large memory of O (N d ) is required for the external table, and updating is difficult.

한편, AQT(area-based quad tree)[4]는 매 단계에서 프리픽스로 표현된 두 필드를 동시에 보면서 전체 검색 범위를 1/4로 줄여가며 패킷이 해당하는 영역내의 규칙들을 얻는 방법이다. 즉, 매 단계에서 근원지 프리픽스(source prefix)와 목적지 프리픽스(destination address)가 각각의 영역에서 이등분되어 두 프리픽스로 표현된 정사각형 영역이 같은 크기의 네 개의 영역으로 분할된다. 분할 과정이 L번 반복되면, 동일한 크기의 4L개의 영역으로 분할되고, 분할된 각 영역은 L-bit 길이의 프리픽스 쌍으로 표현된다. AQT에서 취하고 있는 영역분할 방식은 두 프리픽스 를 동시에 한 비트씩 진행함으로 각 영역은 같은 길이의 프리픽스로만 표현된다. On the other hand, AQT (area-based quad tree) [4] is a method of obtaining the rules in the area corresponding to the packet while reducing the overall search range by one-quarter while simultaneously looking at two fields expressed as prefixes at each step. That is, at each step, the source prefix and the destination address are divided into two regions, and the square region represented by the two prefixes is divided into four regions of the same size. If the partitioning process is repeated L times, the partition is divided into 4 L regions of the same size, and each divided region is represented by a prefix pair of L-bit length. In the AQT, the region division method is used to advance two prefixes one bit at a time, so that each region is represented by the same length prefix.

그러나 필드들의 프리픽스 길이가 각기 다를 수 있다. AQT에서는 규칙을 이루고 있는 두 프리픽스 중 한쪽이라도 검색의 영역이 나타내는 프리픽스 길이와 일치하고 규칙이 나타내는 영역이 그 영역에 완전히 속하면 해당 규칙은 그 영역의 CFS(crossing filter set)에 포함되는 것으로 정의한다. 검색 시에는 CFS에 속한 규칙들에 대한 선형 검색을 수행하게 된다. However, the prefix lengths of the fields may be different. The AQT defines that if either of the two prefixes that make up a rule match the prefix length indicated by the search region and the region represented by the rule is completely within that region, then the rule is included in the cross-filter set (CFS) of that region. . When searching, linear search is performed on the rules belonging to the CFS.

AQT는 규칙이 속하는 기하학적 영역을 정의하고, 각 영역을 사분트리(quad-tree)의 노드에 매핑 시켰다는 점에서 매우 우수한 구조이나, 실제 패킷분류에 사용되기에는 다음과 같은 문제점을 지닌다. 예를 들어 최대 프리픽스의 길이가 W라고 할 때, AQT에서의 사분트리의 깊이는 W가 되고, 프리픽스의 길이가 긴 규칙들이 많은 경우 CFS를 만족할 때까지 평면을 분할해야 하므로 사분트리에 빈 노드가 많이 존재하게 된다. 트리의 깊이는 메모리 접근 횟수와 관련이 있기 때문에 트리의 깊이가 크면 검색시간이 길어지고, 노드의 개수는 메모리 사용량과 관계가 있으므로, 빈 노드가 많아지면 과도한 메모리를 사용하게 된다는 단점이 있다.AQT is a very good structure in that it defines the geometric areas to which rules belong and maps each area to quad-tree nodes, but has the following problems in actual packet classification. For example, if the length of the maximum prefix is W, the depth of the quadrant tree in the AQT is W, and if there are many rules with long length prefixes, then the empty nodes in the quadrant tree must be split until the CFS is satisfied. There will be many. Since the tree's depth is related to the number of memory accesses, the larger the tree, the longer the search time, and the number of nodes is related to the memory usage.

이상에서 살펴본 바와 같이, 트라이 구조를 이용한 패킷 분류 방법이나 경험적 특성을 이용한 패킷 분류 방법, 또는 기하학 구조를 이용한 패킷 분류 방법 등 기존의 패킷 분류 방식들은 검색 시간과 소요되는 메모리라는 두 가지 중요한 측면 중 어느 하나에 대해서만 해결책을 제시할 뿐, 검색 시간을 줄이는 동시에 소요되는 메모리의 크기도 줄일 수 있는 우수한 패킷 분류 방법을 제시하지 못한다는 문제점이 있다. As described above, the conventional packet classification methods such as packet classification method using tri-structure, packet classification method using empirical characteristics, or packet classification method using geometric structure are any of two important aspects: search time and memory required. There is a problem in that it does not provide an excellent packet classification method that can reduce the search time and reduce the size of the memory.

따라서, 전술한 문제점을 해결하기 위한 본 발명의 목적은 검색 시간을 줄일 수 있을 뿐만 아니라 소요되는 메모리의 크기도 줄일 수 있는 효율적인 패킷 분류 방법을 제공하는 것이다.Accordingly, an object of the present invention to solve the above-described problem is to provide an efficient packet classification method that can not only reduce the search time but also reduce the size of memory required.

또한, 본 발명의 다른 목적은 검색 시간을 줄일 수 있을 뿐만 아니라 소요되는 메모리의 크기도 줄일 수 있는 패킷 분류 방법을 적용한 패킷 중계 장치를 제공하는 것이다.In addition, another object of the present invention is to provide a packet relay apparatus using a packet classification method that can reduce search time and reduce the size of memory required.

보다 구체적으로는, 선형검색구조와 재귀적 영역분할 방식을 결합하여 우선순위에 기초한 검색을 수행하면서도 검색영역을 지수적으로 줄여나가는 새로운 패킷 분류 방법을 제안한다. 제안하는 구조는 검색 시간을 단축할 뿐만 아니라 소요되는 메모리의 크기를 줄일 수 있으며, 나아가 분류테이블의 갱신이 용이하고 확장성이 우수한 새로운 패킷 분류 방법을 제공한다.More specifically, we propose a new packet classification method that combines a linear search structure and a recursive domain partitioning scheme to exponentially reduce the search domain while performing a search based on priority. The proposed structure not only shortens the searching time but also reduces the size of the memory, and further provides a new packet classification method that is easy to update the classification table and has excellent scalability.

본 발명에 따라 전술한 목적은, 패킷 중계 장치의 패킷 분류 방법에 있어서 (a) 적어도 하나의 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 정의한 패킷 분류 테이블을 생성하는 단계; (b) 생성된 패킷 분류 테이블에 포함된 각 규칙들에 대하여 트리를 생성하여 저장하는 단계; (c) 패킷 중계 장치로 입력되는 패킷 중에서 분류에 사용될 비트를 추출하여 플로우 조건을 생성하는 단계; (d) 플로우 조건에 매치하는 규칙을 찾기 위하여 저장된 트리를 검색하는 단계; 및 (e) 검색된 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 서비스를 제공하는 단계를 포함하며, 트리는 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 생성되는 것을 특징으로 하는 패킷 분류 방법에 의해 달성된다.According to an aspect of the present invention, there is provided a packet classification method of a packet relay apparatus, the method comprising: (a) generating a packet classification table defining rules for classifying a packet class based on at least one packet field; (b) generating and storing a tree for each rule included in the generated packet classification table; (c) generating a flow condition by extracting bits to be used for classification among packets input to the packet relay apparatus; (d) searching the stored tree to find a rule that matches the flow condition; And (e) providing a service based on class information included in a rule that matches the retrieved flow condition, wherein the tree is generated using an area division method based on priorities of predefined rules. Is achieved by a packet classification method.

특히, 전술한 (b) 단계의 트리를 생성하여 저장하는 방법은, (b1) 적어도 하나의 패킷 필드에 기초하여 재귀적 영역분할(recursive area decomposition)을 수행하는 단계; (b2) 분할된 각 영역에 속하는 규칙들 중 우선순위가 가장 높은 규칙을 먼저 노드에 저장하는 단계; 및 (b3) 분할된 각 영역을 가로지르는 크로싱(crossing) 상태의 규칙은 우선순위가 가장 높은 규칙을 저장한 노드에 연결 리스트(linked list)로 연결하여 저장하는 단계를 포함하는 것이 바람직하며, In particular, the method for generating and storing the tree of step (b) described above comprises: (b1) performing recursive area decomposition based on at least one packet field; (b2) first storing a rule having the highest priority among the rules belonging to each divided region in the node; And (b3) a rule of a crossing state across each divided region includes a step of linking and storing the rule having the highest priority rule in a linked list.

생성된 패킷 분류 테이블에 포함된 모든 규칙들에 대하여 생성된 트리를 구성하는 모든 노드들은 적어도 하나의 규칙을 저장하는 것이 바람직하다.For all rules included in the generated packet classification table, all nodes constituting the generated tree preferably store at least one rule.

또한, 전술한 (d) 단계의 저장된 트리를 검색하는 방법은, (d1) 플로우 조건에 매치하는 규칙을 찾기 위하여 영역분할 검색을 수행하는 단계; (d2) (d1) 단계의 영역분할 검색 중 만약 하나의 노드에 연결 리스트로 연결된 복수의 규칙들이 저장된 경우 플로우 조건에 매치하는 규칙을 찾기 위하여 연결된 복수의 규칙들에 대하여 선형 검색을 수행하는 단계; (d3) 앞의 (d1) 단계 및 (d2)단계의 검색결과 매치하는 규칙을 현재의 최선 정합 규칙(best matching rule: 이하 BMR이라 함)으로 저장하고, 매치하는 규칙이 우선순위에 의해 저장된 경우라면 현재의 최선 정합 규칙(BMR)을 출력하고 검색을 종료하며, 매치하는 규칙이 분할된 각 영역을 가로지르는 크로싱(crossing) 상태를 만족하여 저장된 경우라면 플로우 조건의 다음 비트 를 확인하고 (d1) 단계로 진행하는 단계; (d4) 앞의 (d1) 단계 및 (d2) 단계의 검색 결과 현재 저장된 최선 정합 규칙이 우선순위에 의하여 노드에 저장된 규칙보다 우선순위가 높은 경우 현재의 최선 정합 규칙(BMR)을 출력하고 검색을 종료하는 단계; 및 (d5) 저장된 트리의 리프(leaf) 노드에 도달하면 현재까지 저장된 최선 정합 규칙(BMR)을 출력하고 검색을 종료하는 단계를 포함하는 것이 바람직하다. In addition, the method of searching the stored tree of the above-mentioned step (d) comprises: (d1) performing a segmentation search to find a rule matching the flow condition; (d2) performing a linear search on the plurality of connected rules in order to find a rule matching the flow condition if a plurality of rules linked by a linked list are stored in one node of the area division search of step (d1); (d3) storing the matching rule as a result of the previous step (d1) and (d2) as the current best matching rule (hereinafter referred to as BMR), and the matching rule is stored by priority. Outputs the current best match rule (BMR) and terminates the search, and if the matching rule is stored satisfying the crossing state across each divided region, then check the next bit of the flow condition (d1). Proceeding to step; (d4) If the search result of the previous step (d1) and (d2) has the higher priority than the rule stored in the node by priority, output the current best match rule (BMR) and perform the search. Terminating; And (d5) outputting the best matching rule (BMR) stored so far and ending the search upon reaching the leaf node of the stored tree.

한편, 본 발명의 다른 분야에 따르면 전술한 목적은, 복수의 입력 포트 중 하나와 복수의 출력 포트 중 하나를 연결하는 패킷 중계 장치에 있어서, 입력 포트를 통해 수신된 패킷의 목적지 어드레스 정보를 참조하여 수신된 패킷을 전송할 출력 포트를 지정하는 어드레스 룩업 처리부; 적어도 하나의 입력 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 포함하는 패킷 분류 테이블을 저장하고 저장된 패킷 분류 테이블로부터 입력 포트를 통해 수신된 패킷의 플로우 조건에 매치하는 규칙을 검색하는 패킷 분류 처리부; 및 패킷 분류 처리부에서 검색된 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 지정된 출력 포트로의 수신된 패킷의 전송을 제어하는 전송 제어부를 포함하며, 패킷 분류 테이블은 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 트리로 생성되어 저장되는 것을 특징으로 하는 패킷 중계 장치에 의해서 달성된다.On the other hand, according to another field of the present invention, the above object is, in the packet relay device for connecting one of the plurality of input ports and one of the plurality of output ports, by referring to the destination address information of the packet received through the input port An address lookup processor for specifying an output port to which the received packet is to be transmitted; A packet classification processor for storing a packet classification table including rules for classifying packets based on at least one input packet field and retrieving a rule matching a flow condition of a packet received through an input port from a stored packet classification table ; And a transmission control section for controlling the transmission of the received packet to the designated output port based on the class information included in the rule matching the flow condition retrieved by the packet classification processing section, wherein the packet classification table includes priorities of the predefined rules. It is achieved by the packet relay apparatus, characterized in that the tree is generated and stored using a region division method based on the.

특히, 전술한 패킷 분류 처리부는, 패킷 분류 테이블에 포함된 모든 규칙들에 대하여 생성된 트리를 구성하는 모든 노드들이 적어도 하나의 규칙을 포함하도록, 적어도 하나의 입력 패킷 필드에 기초하여 재귀적 영역분할(recursive area decomposition)을 수행하고, 분할된 각 영역에 속하는 규칙들 중 우선순위가 가장 높은 규칙을 먼저 노드에 저장하며, 분할된 각 영역을 가로지르는 크로싱(crossing) 상태의 규칙은 우선순위가 가장 높은 규칙에 대응하는 노드에 연결 리스트(linked list)로 연결하여 저장하는 것을 특징으로 하는 것이 바람직하다.In particular, the packet classification processing unit described above may include recursive region division based on at least one input packet field such that all nodes constituting the tree generated for all the rules included in the packet classification table include at least one rule. (recursive area decomposition), the highest priority among the rules belonging to each partitioned area are stored in the node first, and the crossing rules across each partitioned area have the highest priority. It is preferable to link and store the linked list in a node corresponding to a high rule.

이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Hereinafter, with reference to the accompanying drawings will be described a preferred embodiment of the present invention; In the following description of the present invention, if it is determined that detailed descriptions of related well-known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the present invention, which may vary according to intention or custom of a user or an operator. Therefore, the definition should be made based on the contents throughout the specification.

먼저 본 발명에서 이용되는 선형검색방법과 재귀적 영역분할방법을 상세히 살펴보고 본 발명에 따른 새로운 패킷 분류 방법을 설명한다.First, the linear search method and the recursive region division method used in the present invention will be described in detail, and the new packet classification method according to the present invention will be described.

1) 선형검색방법(Linear Search)1) Linear Search Method

분류테이블을 저장하는 가장 기본적인 구조는 규칙들을 우선순위에 따라 저장하는 것이다. 선형검색은 우선순위에 따라 저장된 규칙들을 우선순위가 높은 규칙부터 순차적으로 검색해 나가는 방법으로 매치하는 규칙을 찾거나 리스트 끝에 도달하면 검색이 종료된다. 선형검색은 기존에 연구되어온 방식 중 유일하게 규칙들의 우선순위에 따라 분류테이블을 구성하고, 우선순위가 높은 규칙부터 검색하여 나가는 방법이다. The most basic structure for storing classification tables is to store rules in order of priority. In the linear search, the rule is searched by sequentially searching the stored rules according to the priority order from the higher priority rule, or the search ends when the end of the list is reached. Linear search is the only method that has been studied in the past, and organizes the classification table according to the priorities of the rules, and searches the high priority rules first.

선형검색의 경우 N 개의 규칙을 저장하기 위하여 규칙을 한 번씩만 저장하므로 O(N)의 메모리가 사용되는 장점을 갖는다. 그러나 선형검색은 한 번의 테이블 룩업으로 단 하나의 엔트리만이 검색영역에서 제외되므로, 검색영역이 선형적으로 감소하여 O(N)의 검색 시간이 소요되며, 이로 인하여 확장성(scalability)이 매우 나쁘다는 단점을 가진다.In the case of the linear search, since the rule is stored only once to store N rules, the memory of O (N) is used. However, since linear search is one table lookup and only one entry is excluded from the search area, the search area is reduced linearly and it takes O (N) search time, which is very bad in scalability. Has its drawbacks.

본 발명에서는 이러한 선형검색의 장점은 살리고 단점을 보완한 새로운 패킷 분류 방법을 제안한다.The present invention proposes a new packet classification method that saves the advantages of the linear search and supplements the disadvantages.

2) 재귀적 영역분할방법(Recursive Range Decomposition)2) Recursive Range Decomposition

규칙을 구성하는 필드들 중 프리픽스로 표현되는 근원지 프리픽스 또는 목적지 프리픽스는 기하학적인 관점으로 보면 영역(range)으로 해석될 수 있다. 규칙을 이루는 하나의 프리픽스 필드만을 고려하면 규칙은 일차원 직선상에서의 영역으로 표현된다. 만약 근원지와 목적지 두 개의 필드를 동시에 고려하면, 규칙은 이차원 평면에서 사각형으로 표현되며, 만약 d 개의 필드를 동시에 고려하면 d-차원 다면체(hyper-rectangle)로 표현될 수 있다. Source prefix or destination prefix, which is expressed as a prefix among the fields constituting the rule, may be interpreted as a range from a geometric point of view. Considering only one prefix field constituting the rule, the rule is expressed as an area on a one-dimensional straight line. If both the source and destination fields are considered at the same time, the rule is represented as a rectangle in the two-dimensional plane, and if d fields are considered at the same time, it can be represented as a d-dimensional hyper-rectangle.

본 발명에서는 설명의 편의를 위하여, 규칙을 이루는 필드 중 프리픽스로 이루어진 필드만을 고려하는 경우를 예로 들어 설명한다. 즉, 하나의 프리픽스 필드를 고려하는 일차원 이진영역분할구조와 두 개의 프리픽스 필드를 동시에 고려하는 이차원 사분영역분할구조를 예로 들어 설명하기로 한다. 그러나, 본 발명의 사상 은 일차원 이진영역분할구조나 이차원 사분영역분할구조에 한정되는 것이 아니며 동일한 방식이 다차원 영역분할구조로 확장 적용될 수 있다.In the present invention, for convenience of description, a case in which only a field consisting of a prefix is considered in the fields constituting a rule will be described as an example. In other words, a one-dimensional binary region division structure that considers one prefix field and a two-dimensional quadrant division structure that considers two prefix fields at the same time will be described. However, the spirit of the present invention is not limited to the one-dimensional binary region division structure or the two-dimensional quadrant division structure, and the same method can be extended to the multi-dimensional region division structure.

예를 들어 W를 IP 주소의 길이라고 할 때, i-bit 길이의 근원지 프리픽스를 갖는 규칙은 크기가 2W 인 직선상에서 크기가 2W-i 인 직선영역으로 표현된다(CASE 1). 한편 i-bit 길이의 근원지 프리픽스와 j-bit 길이의 목적지 프리픽스를 모두 고려하는 경우라면 이 규칙은 2W x 2W 평면 내에서 2W-i x 2W-j 크기의 사각형 영역으로 표현된다(CASE 2). For example, when W is the length of an IP address, a rule having a source prefix of i-bit length is represented by a linear region of size 2 Wi on a line of size 2 W (CASE 1). On the other hand, if you consider all of the destination prefix of the i-bit length of the source prefix and j-bit length if the rule is expressed by a rectangular region of 2 Wi x 2 Wj size within 2 W x 2 W plane (CASE 2).

입력된 패킷은 근원지 주소 (또는 목적지 주소)만을 고려하면, 크기가 2W 인 직선상에서 하나의 점으로 정의된다. 한편 근원지 주소와 목적지 주소를 모두 고려하면 크기가 2W x 2W 평면상에서 하나의 점으로 정의된다. 이 점을 포함하게 되는 규칙이 입력패킷에 매치하는 규칙이 된다. 규칙을 표현하는 영역들은 서로 겹쳐질 수 있기 때문에 패킷은 여러 개의 규칙과 매치할 수 있다. 이때는 가장 우선순위가 높은 규칙을 최선 정합 규칙(BMR)으로 선정한다. The input packet is defined as a point on a straight line of size 2 W , considering only the source address (or destination address). On the other hand, considering both source and destination addresses, the size is defined as a point on the 2 W x 2 W plane. The rule that includes this is the rule that matches the input packet. Regions representing rules can overlap each other, so a packet can match multiple rules. In this case, the highest priority rule is selected as the best matching rule (BMR).

주소 평면을 반복적으로 분할함에 의하여 일차원 직선정보는 이진트리(binary tree)를 이용하여 나타낼 수 있다. 한편 이차원 평면정보는 사분트리(quadruple tree)를 사용하여 나타낼 수 있다. 이진트리는 직선을 반복적으로 분할함에 있어서, 각 레벨에서 같은 크기의 두개의 직선으로 나누는 재귀적인 영역분할 (recursive range decomposition)에 기초한다. 트리의 각 노드는 현재 분할되 는 직선에 대응되고, 두 개의 자식 노드는 분할하여 얻어진 두 개의 직선에 대응된다. By dividing the address plane repeatedly, one-dimensional linear information may be represented by using a binary tree. On the other hand, two-dimensional plane information can be represented using a quadruple tree. Binary trees are based on recursive range decomposition, which divides the straight lines repeatedly into two straight lines of the same size at each level. Each node in the tree corresponds to a straight line that is currently split, and two child nodes correspond to two straight lines obtained by splitting.

한편 사분트리는 평면을 반복적으로 분할함에 있어서, 각 레벨에서 같은 크기의 네 개의 평면으로 나누는 재귀적인 영역분할 (recursive space decomposition)에 기초한다. 트리의 각 노드는 현재 분할되는 평면에 대응되고, 네 개의 자식 노드는 분할하여 얻어진 네 개의 평면에 대응된다. Quadrant trees, on the other hand, are based on recursive space decomposition, which divides the plane repeatedly into four planes of equal size at each level. Each node in the tree corresponds to a plane that is currently split, and four child nodes correspond to four planes obtained by splitting.

표 1은 12개의 규칙들로 이루어진 분류테이블의 예를 보여준다. 근원지 프리픽스와 목적지 프리픽스, 근원지 포트번호와 목적지 포트번호, 그리고 프로토콜 필드를 규칙을 규정하는 필드로서 사용한 예가 도시되어 있다. 규칙의 번호가 작은 것이 규칙의 우선순위가 높다고 가정하였다. 표 1의 분류테이블을 예로 하여, 재귀적 영역분할에 의한 트리구조를 설명하기로 한다. Table 1 shows an example of a classification table consisting of 12 rules. An example of using a source prefix and a destination prefix, a source port number and a destination port number, and a protocol field as a field for defining a rule is shown. It is assumed that the smaller the rule number, the higher the priority of the rule. Using the classification table of Table 1 as an example, a tree structure by recursive region partitioning will be described.

분류 테이블의 일 예Example of classification table Rule NoRule no Src PrefixSrc prefix Dst PrefixDst prefix Src PortSrc port Dst ProtDst prot Protocol TypeProtocol Type Class InfoClass info 00 10100*10100 * ** >1024> 1024 >1024> 1024 ** PermitPermit 1One 11110*11110 * ** 8080 8080 TCPTCP PermitPermit 22 0*0* 11100*11100 * 8080 8080 TCPTCP PermitPermit 33 0*0* 11000*11000 * 8888 8888 TCPTCP PermitPermit 44 111*111 * 11110*11110 * ** >1024> 1024 UDPUDP DenyDeny 55 01110*01110 * 0111*0111 * 8080 8080 TCPTCP PermitPermit 66 1*One* 10011*10011 * 2121 2121 TCPTCP PermitPermit 77 ** 10101*10101 * 8080 8080 ** PermitPermit 88 1100*1100 * 1100*1100 * 8888 8888 TCPTCP PermitPermit 99 1101*1101 * 1101*1101 * ** ** ** DenyDeny 1010 010*010 * 010*010 * >1024> 1024 >1024> 1024 UDPUDP DenyDeny 1111 0110*0110 * 10*10 * 8080 8080 ** PermitPermit

도 1은 근원지 프리픽스를 이용한 영역분할의 일 예이다.1 is an example of region division using a source prefix.

도 1을 참조하면, 전술한 표 1의 분류테이블을 이루는 규칙들의 근원지 프리픽스만을 고려하여 각 규칙들이 직선상에서 차지하는 영역을 표현한 예가 도시된다.Referring to FIG. 1, an example of expressing an area occupied by each rule in a straight line considering only the source prefix of the rules constituting the classification table of Table 1 is described.

도 2는 종래의 근원지 프리픽스를 이용한 이진트리 구조의 일 예이다.2 is an example of a binary tree structure using a conventional source prefix.

도 2를 참조하면, 재귀적 영역분할에 의해 각 규칙들을 트리의 노드에 매핑시킨 이진검색 트리구조가 도시된다. 즉, 규칙을 이루는 근원지 프리픽스의 길이에 따라 규칙이 위치하게 되는 트리의 레벨이 결정되며, 트리의 레벨은 입력패킷과 그 규칙이 비교되기 위하여 거쳐야 되는 메모리 접근 횟수와도 일치한다. 예를 들어 도시된 그림에서 규칙 R0은 우선순위가 가장 높은 규칙임에도 불구하고, 근원지 프리픽스의 길이가 5이므로, 트리의 5번째 레벨에 위치하게 되고, 입력패킷과 비교되기 위해서는 다섯 번의 메모리 검색이 필요하다. 이와 같이 기존의 일차원 영역분할방법에 의하면 우선순위가 높은 규칙이라도 여러 번의 메모리 접근을 시도해야 하는 문제점이 있다. Referring to Fig. 2, a binary search tree structure is shown in which each rule is mapped to a node of a tree by recursive region partitioning. That is, the level of the tree where the rule is located is determined by the length of the source prefix that makes up the rule, and the level of the tree is also consistent with the number of memory accesses that must be passed in order for the rule to be compared with the input packet. For example, in the figure shown, although rule R0 is the highest priority rule, the source prefix is 5, so it is placed on the 5th level of the tree and requires five memory scans to be compared to the input packet. Do. As described above, according to the conventional one-dimensional region partitioning method, there is a problem that multiple memory accesses must be attempted even with a high priority rule.

한편, 도 3은 근원지 프리픽스와 목적지 프리픽스를 이용한 이차원 영역분할의 일 예이다.3 is an example of two-dimensional region division using a source prefix and a destination prefix.

도 3을 참조하면, 표 1의 분류테이블을 이루는 규칙들의 근원지 프리픽스와 목적지 프리픽스를 동시에 고려하여, 각 규칙들이 이차원 평면상에서 차지하는 영역을 표현한 예가 도시된다.Referring to FIG. 3, an example of expressing an area occupied on a two-dimensional plane by considering the source prefix and the destination prefix of rules constituting the classification table of Table 1 is shown.

도 4는 종래의 근원지 프리픽스와 목적지 프리픽스를 이용한 AQT 사분트리 구조의 일 예이다.4 is an example of an AQT quadrant tree structure using a conventional source prefix and a destination prefix.

도 4를 참조하면, AQT에서 제안한 재귀적 영역분할에 의해 각 규칙들을 사분트리의 노드에 매핑시킨 사분 트리구조가 도시된다. 루트노드는 전체 영역에 대응되고, 4개의 자식노들들은 각각 전체 사각형 영역을 같은 크기로 분할한 네 개의 사각형 영역에 대응되는 것으로서, 좌측상단(top-left), 좌측하단(bottom-left), 우측상단(top-right), 우측하단(bottom-right)의 사각형이 각각 사분트리의 0번, 1번, 2번, 3번 노드에 대응된다. Referring to FIG. 4, there is shown a quadrant tree structure in which each rule is mapped to a node of a quadrant by recursive segmentation proposed by AQT. The root node corresponds to the entire area, and the four child nodes correspond to four rectangular areas, each of which divides the entire rectangular area into the same size. The top node, top-left, bottom-left and right Top-right and bottom-right rectangles correspond to nodes 0, 1, 2, and 3 of the quadrant, respectively.

특정 사각형 영역을 가로지르는 규칙들을 이 사각형 영역에 대응되는 노드에 위치시키고, 모든 규칙들이 노드에 매핑되기까지 재귀적으로 분할을 반복한다. 이와 같이 하면 규칙을 이루는 근원지 프리픽스 길이와 목적지 프리픽스 길이 중 짧은 길이에 해당하는 레벨에 규칙이 위치하게 된다. 예를 들어 도 4에서 규칙 R0과 R1은 목적지 프리픽스의 길이가 0이므로 사분트리의 루트노드에 위치하였고, 규칙 R7은 근원지 프리픽스의 길이가 0이므로 루트 노드에 위치하였다. The rules that traverse a particular rectangular area are placed in the node corresponding to this rectangular area, and the partitioning is repeated recursively until all the rules are mapped to the node. In this way, the rule is located at a level corresponding to the shorter length of the source prefix length and the destination prefix length of the rule. For example, in FIG. 4, rules R0 and R1 are located at the root node of the quadrant tree because the length of the destination prefix is 0, and rule R7 is located at the root node because the length of the source prefix is 0.

이러한 사분트리 방식도 일차원 이진트리 방식의 경우와 마찬가지로, 해당 규칙이 가지는 우선순위와는 무관하게, 규칙을 구성하는 프리픽스의 길이에 의하여 규칙을 갖는 노드의 레벨이 결정되므로 검색이 효율적이지 못한 단점을 갖는다. 또한 도 4에 도시된 바와 같이 규칙을 갖지 않는 빈 노드가 생기게 되며 이러한 빈 노드는 규칙을 구성하는 프리픽스의 길이가 길어질수록 많아지게 되어 검색 시간을 늘리게 되는 문제점이 있다.Similarly to the one-dimensional binary tree method, the quadrant tree method has a disadvantage in that the search is not efficient because the level of the node having the rule is determined by the length of the prefix constituting the rule. Have In addition, as shown in FIG. 4, there is a problem in that there are empty nodes having no rule, and the empty node increases as the length of the prefix constituting the rule increases, thereby increasing the search time.

이하, 전술한 기존의 선형검색 및 영역분할 방식의 단점을 해결한 본 발명에 따른 새로운 패킷 분류 방법 및 이를 적용한 패킷 중계 장치를 상세히 설명한다.Hereinafter, a novel packet classification method and a packet relay apparatus using the same will be described in detail.

먼저, 패킷 중계 장치의 구조를 살펴보고, 본 발명에 따른 패킷 분류 방법을 설명한다.First, the structure of a packet relay apparatus will be described, and a packet classification method according to the present invention will be described.

도 5는 본 발명의 일 실시예에 따른 패킷 중계 장치의 블록도이다. 패킷 중계 장치는 복수의 입력 포트 중 하나와 복수의 출력 포트 중 하나를 연결하여 입력된 패킷을 지정된 출력 포트로 출력하는 중계 장치로서, 라우터(router)가 대표적이다. 5 is a block diagram of a packet relay apparatus according to an embodiment of the present invention. A packet relay device is a relay device that connects one of a plurality of input ports and one of a plurality of output ports to output an input packet to a designated output port, and a router is representative.

도 5를 참조하면, 본 발명에 따른 패킷 중계 장치는 복수의 인터페이스(10)와 스위치 패브릭(switch fabric)(20)을 구비한다. 그 밖에 관리 콘트롤러(management controller)나 루트 콘트롤러(route controller)와 같은 제어부가 더 포함될 수 있다. 패킷 중계 장치는 복수의 입력 포트와 복수의 출력 포트가 구비되어 복수의 입력 포트 중 하나로 입력된 패킷을 스위치 패브릭(20)을 거쳐 지정된 출력 포트로 출력할 수 있다. 본 발명에 따른 패킷 분류 기능은 인터페이스(10)에서 담당한다. Referring to FIG. 5, the packet relay apparatus according to the present invention includes a plurality of interfaces 10 and a switch fabric 20. In addition, a controller such as a management controller or a route controller may be further included. The packet relay apparatus may include a plurality of input ports and a plurality of output ports to output a packet input to one of the plurality of input ports to the designated output port via the switch fabric 20. The packet classification function according to the present invention is responsible for the interface 10.

도 6은 도 5에 도시된 인터페이스의 상세 블록도이다. 도 6을 참조하면, 인터페이스(10)는 패킷 송수신부(transponder/transceiver)(11), 프레임 해석부(framer)(12), 어드레스 룩업 처리부(lookup processor)(13), 패킷 분류 처리부(packet classification processor)(14) 및 전송 제어부(traffic manager)(15)를 구비한다. 그 밖에 CPU와 메모리를 더 구비한다. FIG. 6 is a detailed block diagram of the interface shown in FIG. 5. Referring to FIG. 6, the interface 10 includes a packet transmitter / transceiver 11, a frame analyzer 12, an address lookup processor 13, and a packet classification processor. a processor 14 and a traffic manager 15. In addition, a CPU and a memory are further provided.

패킷 송수신부(transponder/transceiver)(11)는 입력 포트를 통해 패킷을 수신하고 출력 포트를 통해 패킷을 송신한다. 프레임 해석부(framer)(12)는 입력된 패킷의 시작과 끝을 알아내고 패킷을 해석하여 각 계층의 헤더를 분리하는데, 패킷 분류를 위한 필요한 근원지 프리픽스, 목적지 프리픽스, 근원지 포트, 목적지 포트, 프로토콜 타입 등의 패킷 필드 등도 이곳에서 알아낸다. 어드레스 룩업 처리부(lookup processor)(13)는 입력 포트를 통해 수신된 패킷의 목적지 프리픽스 정보를 참조하여 상기 수신된 패킷을 전송할 출력 포트를 지정한다. The packet transmitter / receiver 11 receives a packet through an input port and transmits a packet through an output port. Framer 12 detects the beginning and end of the input packet and parses the packet to separate the headers of each layer.The source prefix, destination prefix, source port, destination port, protocol Packet fields such as type are also found here. The address lookup processor 13 designates an output port to which the received packet is transmitted by referring to destination prefix information of the packet received through the input port.

한편, 패킷 분류 처리부(packet classification processor)(14)는 적어도 하나의 입력 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 포함하는 패킷 분류 테이블을 저장하고 저장된 패킷 분류 테이블로부터 입력 포트를 통해 수신된 패킷의 플로우 조건에 매치하는 규칙을 검색한다. 이때, 패킷 분류 테이블은 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 트리로 생성되어 저장되는 것을 특징으로 한다. Meanwhile, the packet classification processor 14 stores a packet classification table including rules for classifying a class of packets based on at least one input packet field, and receives the received packet through the input port from the stored packet classification table. Search for a rule that matches the flow condition of the packet. In this case, the packet classification table may be generated and stored as a tree using an area division method based on priorities of predefined rules.

구체적으로 패킷 분류 처리부(14)는 패킷 분류 테이블에 포함된 모든 규칙들에 대하여 생성된 트리를 구성하는 모든 노드들이 적어도 하나의 규칙을 포함하도록, 적어도 하나의 입력 패킷 필드에 기초하여 재귀적 영역분할(recursive area decomposition)을 수행하고, 분할된 각 영역에 속하는 규칙들 중 우선순위가 가장 높은 규칙을 먼저 노드에 저장하며, 분할된 각 영역을 가로지르는 크로싱(crossing) 상태의 규칙은 우선순위가 가장 높은 규칙에 대응하는 노드에 연결 리스트(linked list)로 연결하여 저장하는 것을 특징으로 한다. 보다 구체적인 트리 구조와 그 검색 방법은 후술한다.Specifically, the packet classification processing unit 14 performs recursive region division based on at least one input packet field so that all nodes constituting the generated tree for all the rules included in the packet classification table include at least one rule. (recursive area decomposition), the highest priority among the rules belonging to each partitioned area are stored in the node first, and the crossing rules across each partitioned area have the highest priority. It is characterized by connecting to the node corresponding to the high rule in a linked list (stored list). A more specific tree structure and its search method will be described later.

전송 제어부(traffic manager)(15)는 패킷 분류 처리부(14)에서 검색된 플로우 조건에 매치하는 규칙에 포함된 클래스 정보(Class Info)에 기초하여 지정된 출력 포트로의 수신된 패킷의 전송을 제어한다. 즉, 입력 패킷의 플로우 조건에 매치하는 규칙에 정의된 클래스 정보에 따라 품질보장을 지원하는 서비스를 제공한다. 예를 들면, 품질보장을 지원하는 서비스에는 패킷 필터링(packet filtering), 트래픽 속도제한(traffic rate limit), 정책기반 라우팅(policy-based routing), 클래스에 따른 어카운팅(accounting), 클래스에 따른 요금부과(billing) 등의 서비스가 포함될 수 있으며, 그 밖에 클래스 정보에 기초하여 다양한 품질보장을 지원하는 서비스를 제공할 수 있다.The traffic manager 15 controls the transmission of the received packet to the designated output port based on the class information included in the rule matching the flow condition retrieved by the packet classification processing unit 14. That is, a service supporting quality assurance is provided according to class information defined in a rule matching a flow condition of an input packet. For example, quality assurance services include packet filtering, traffic rate limit, policy-based routing, class-based accounting, and class-based charging. (billing), etc. may be included, and other services based on class information may be provided to support various quality guarantees.

한편, 우선순위 기반의 영역검색 구조를 가지는 본 발명에 따른 패킷 분류 방법을 상세히 설명한다.Meanwhile, a packet classification method according to the present invention having a priority based area search structure will be described in detail.

도 9는 본 발명의 일 실시예에 따른 패킷 분류 방법을 도시한 흐름도이다.9 is a flowchart illustrating a packet classification method according to an embodiment of the present invention.

도 9를 참조하면 본 발명에 따르면 효율적으로 패킷을 분류하기 위하여, 적어도 하나의 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 정의한 패킷 분류 테이블을 생성하고(S100), 생성된 패킷 분류 테이블에 포함된 각 규칙들에 대하여 트리를 생성하여 저장하며(S120), 패킷 중계 장치로 입력되는 패킷 중에서 분류에 사용될 비트를 추출하여 플로우 조건을 생성하고(S140), 플로우 조건에 매치하는 규칙을 찾기 위하여 저장된 트리를 검색하며(S160), 검색된 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 서비스를 제공한다(S180). 이때, 트리는 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 생성되는 것을 특징으로 한다.Referring to FIG. 9, according to the present invention, in order to efficiently classify a packet, a packet classification table defining rules for classifying a packet class based on at least one packet field is generated (S100), and the packet classification table is generated in the generated packet classification table. To generate and store a tree for each rule included (S120), generate a flow condition by extracting bits to be used for classification from packets input to the packet relay device (S140), and find a rule that matches the flow condition. The stored tree is searched (S160), and a service is provided based on class information included in a rule matching the found flow condition (S180). In this case, the tree may be generated using an area division method based on priorities of predefined rules.

이하 본 발명에 따른 패킷 분류 방법을 보다 상세히 설명한다.Hereinafter, the packet classification method according to the present invention will be described in more detail.

1) 트리의 생성(Building Tree)1) Building Tree

본 발명에 따른 이진트리의 노드에는 각 노드에 대응되는 영역에 속하는 규칙 중 가장 우선순위가 높은 규칙이 가장 먼저 저장되며, 이에 더하여 영역을 가로지르는 crossing 규칙들은 그 우선순위에 따라 연결리스트(linked list)로 연결하여 저장된다. In a node of a binary tree according to the present invention, a rule having the highest priority among the rules belonging to an area corresponding to each node is stored first. In addition, crossing rules crossing the area are linked list according to the priority. Are stored.

(1) 이진트리의 구성(1) Composition of Binary Tree

먼저, 규칙을 이루는 필드 중 근원지 프리픽스를 이용하는 경우로서 일차원 영역분할에 기초한 이진트리의 구성을 예로 들어 설명한다. First, a configuration of a binary tree based on one-dimensional region division as an example of using a source prefix among fields constituting a rule will be described.

우선, 분류테이블에 포함된 규칙 중 가장 우선순위가 높은 규칙 R0을 루트 노드에 저장한다. 만약 근원지 프리픽스에 와일드카드를 갖는 규칙(들)이 있다면, 이 규칙(들)은 전체 영역을 가로지른(crossing) 규칙이므로, 이 규칙(들)을 함께 저장한다. 왜냐하면 해당 영역을 가로지르는 규칙을 같이 저장하지 않는다면 이들 규칙이 해당 노드보다 아래 레벨의 노드에 저장되며, 이때 규칙이 속하게 되는 모든 영역에 규칙을 복사하여 저장해야 하는 문제점이 발생하기 때문이다. 따라서, 해당영역을 가로지르는 규칙을 우선순위가 가장 높은 규칙과 함께 저장하는 것이 바람직하다. 하나의 노드에 여러 개의 규칙이 저장되는 경우 규칙들은 우선순위에 따라 연결리스트(linked list)에 의하여 연결되도록 한다. First, the rule R0 having the highest priority among the rules included in the classification table is stored in the root node. If there is a rule (s) with wildcards in the source prefix, the rule (s) is a rule that crosses the whole area, so store this rule (s) together. This is because these rules are stored at nodes below the node unless the rules that traverse the area are stored together, which causes the problem of copying and saving the rules to all areas to which the rule belongs. Therefore, it is desirable to store the rule across the area with the rule with the highest priority. When multiple rules are stored in one node, the rules are linked by linked list according to the priority.

다음으로 루트의 첫 번째 자식 노드에 대해서도 같은 방식으로 해당영역에 포함된 규칙 중 가장 우선순위가 높은 규칙을 저장하고, 해당영역을 가로지르는 규칙이 있다면 연결 리스트로 연결하여 저장한다. 분류테이블의 규칙들의 집합은 노드에 규칙이 저장될 때마다 저장된 규칙들을 지워나가는 방식으로 갱신되며, 이와 같은 검색 평면 분할 과정을 분류테이블의 마지막 규칙이 저장될 때까지 반복한다. Next, the first child node of the root is saved in the same way as the rule with the highest priority among the rules included in the area, and if there is a rule that crosses the area, it is connected to the linked list and stored. The set of rules in the classification table is updated in such a way that the stored rules are erased each time a rule is stored at the node, and this search plane partitioning process is repeated until the last rule of the classification table is stored.

한편, 앞서 설명한 기존의 영역분할방법(AQT)에 의하면 최대 프리픽스의 길이를 W라고 할 때 AQT에서의 트리의 깊이는 W가 된다. 또한 프리픽스의 길이가 긴 규칙들이 많은 경우 크로싱(crossing) 상태를 만족할 때까지 평면을 분할해야 하므로 트리에 빈 노드가 많아지게 되는 문제점이 발생한다. On the other hand, according to the conventional area division method (AQT) described above, when the maximum prefix length is W, the depth of the tree in the AQT is W. In addition, if there are many rules with a long prefix, the plane needs to be divided until the crossing state is satisfied, which causes a problem of a large number of empty nodes in the tree.

그러나, 본 발명에 따른 패킷 분류 방법에 있어서 트리 생성 방법을 이용하면, 각 노드에서 크로싱(crossing) 상태를 만족하지 않아도 현재의 규칙 집합에 있는 규칙 중, 그 영역에 속하면서 우선순위가 가장 높은 규칙을 저장하기 때문에 트리에 빈 노드가 없어지게 되며, 따라서 트리의 깊이도 줄어든다. 이는 트리의 검색시간이 단축될 수 있음을 시사한다. 실제 라우터에서 사용되는 분류테이블들을 분석하면, 규칙을 이루는 IP 주소의 근원지와 목적지 프리픽스의 길이는 대부분 0, 16, 24, 32에 분포되는 경향이 있다. 따라서 기존의 영역분할방법(AQT)을 실제 분류테이블에 적용하면 트리 깊이가 매우 크게 되는 문제점이 있는데 반해, 본 발명에 따른 우선순위에 기반을 둔 영역분할방법(PQT)을 이용하면 프리픽스 길이가 16 이상인 규칙들도 낮은 레벨의 노드에 저장이 되어 트리 깊이가 줄어들어 검색시간을 단축할 수 있다.However, when the tree generation method is used in the packet classification method according to the present invention, even if the node does not satisfy the crossing state, among the rules in the current rule set, the rule belonging to the area and having the highest priority is selected. This saves you from having empty nodes in the tree, thus reducing the tree's depth. This suggests that the search time of the tree can be shortened. When analyzing the classification tables used in real routers, the length of the source and destination prefixes of the IP addresses that make up a rule tends to be distributed in 0, 16, 24, and 32. Therefore, if the existing AQT is applied to the actual classification table, the tree depth becomes very large. However, if the PQT based on the priority according to the present invention is used, the prefix length is 16. The above rules are also stored in the lower level nodes, which reduces the tree depth and shortens the search time.

도 7은 본 발명에 따른 근원지 프리픽스를 이용한 이진트리 구조의 일 예를 나타낸다. 즉, 표 1에 도시된 분류테이블의 규칙들을 도 1에 도시된 바와 같이 근원지 프리픽스를 이용하여 영역 분할한 결과를 기초로 이진트리로 생성한 결과이다.7 shows an example of a binary tree structure using a source prefix according to the present invention. That is, as shown in FIG. 1, the rules of the classification table shown in Table 1 are generated as a binary tree based on the result of region division using the source prefix.

도 1및 도 7을 참조하면, 큰 글씨로 표시된 규칙들은 우선순위에 의하여 저장된 규칙들을 나타내며, 작은 글씨로 표시된 규칙들은 크로싱 상태를 만족하여 저장된 규칙들을 나타낸다. 예를 들면, R0은 우선순위가 해당 영역에서 가장 높아 저장된 규칙이고 R7은 근원지 프리픽스가 크로싱 상태를 만족하여 저장된 규칙이다. 규칙 R2의 경우 루트의 왼쪽 영역에서 가장 우선순위가 높은 규칙이면서 동시에 크로싱 상태를 만족하는데, 우선순위조건이 먼저 고려되므로 우선순위에 의하여 저장된다. 규칙 R3은 크로싱 상태를 만족하여 규칙 R2와 함께 저장된다. Referring to FIGS. 1 and 7, rules indicated in large letters represent rules stored by priority, and rules indicated in small letters represent stored rules that satisfy a crossing state. For example, R0 is the stored rule with the highest priority in the region and R7 is the stored rule with the source prefix satisfying the crossing state. Rule R2 is the highest priority rule in the left region of the route and at the same time satisfies the crossing state. Rule R3 satisfies the crossing state and is stored with rule R2.

이와 같이 본 발명에 따른 패킷 분류 방법에 따라 생성된 이진트리를 도 2에 도시된 기존의 이진트리와 비교하면, 트리의 레벨이 5에서 4로 줄어든 것을 확인할 수 있다. 이에 따라 리프(leaf)까지 검색해야 하는 경우에도 검색시간을 단축할 수 있다. As such, when the binary tree generated by the packet classification method according to the present invention is compared with the existing binary tree illustrated in FIG. 2, it can be seen that the level of the tree is reduced from 5 to 4. FIG. As a result, even when a leaf must be searched, the search time can be shortened.

나아가, 도 2에 도시된 기존의 이진트리에는 빈 노드들이 다수 포함된 데 비해, 본 발명에 따른 이진트리에는 빈 노드가 완전히 없어진 것을 확인할 수 있다. 즉, 본 발명에 따른 이진트리구조에서는 우선순위가 높은 규칙들일 수록 상위 레벨의 노드에 저장되므로 입력 패킷의 플로우와 먼저 비교하게 되어 검색 시간을 단축할 수 있다. 또한, 빈 노드가 없어지므로 메모리 공간을 절약하게 된다. Further, it can be seen that the binaries in the binary tree according to the present invention are completely eliminated, whereas the binaries in the existing binary tree shown in FIG. That is, in the binary tree structure according to the present invention, the higher priority rules are stored in the node of the higher level, so that the search time can be shortened by comparing the flow of the input packet first. In addition, there are no free nodes, which saves memory space.

(2) 사분트리의 구성(2) Configuration of the quadrant tree

한편, 규칙을 이루는 필드 중 근원지 프리픽스와 목적지 프리픽스를 이용하는 경우로서 이차원 영역분할에 기초한 사분트리의 구성이 도 8에 도시되어 있다. 즉, 표 1에 도시된 분류테이블의 규칙들을 도 3에 도시된 바와 같이 근원지 프리픽스와 목적지 프리픽스를 이용하여 영역 분할한 결과를 기초로 사분트리로 생성한 결과이다.On the other hand, the configuration of the quadrant tree based on the two-dimensional region division as a case of using the source prefix and the destination prefix among the fields constituting the rule is shown in FIG. That is, as shown in FIG. 3, the rules of the classification table shown in Table 1 are generated as a quadrant tree based on the result of region division using the source prefix and the destination prefix.

도 3 및 도 8을 참조하면, 우선, 분류테이블에 포함된 규칙 중 가장 우선순위가 높은 규칙 R0이 루트 노드에 저장된다. 또한 전체 영역을 가로지르는 크로싱 상태의 규칙 R1 및 R7이 R0에 연결리스트로 연결되어 저장된다. 3 and 8, first, the highest priority rule R0 among the rules included in the classification table is stored in the root node. In addition, the rules R1 and R7 in the crossing state across the entire area are stored in a linked list connected to R0.

다음으로 루트의 첫 번째 자식 노드에 대해서도 같은 방식으로 해당영역에 포함된 규칙 중 가장 우선순위가 높은 규칙을 저장하고, 해당영역을 가로지르는 규칙이 있다면 연결 리스트로 연결하여 저장한다. 분류테이블의 규칙들의 집합은 노드에 규칙이 저장될 때마다 저장된 규칙들을 지워나가는 방식으로 갱신되며, 이와 같은 검색 평면 분할 과정을 분류테이블의 마지막 규칙이 저장될 때까지 반복한다. Next, the first child node of the root is saved in the same way as the rule with the highest priority among the rules included in the area, and if there is a rule that crosses the area, it is connected to the linked list and stored. The set of rules in the classification table is updated in such a way that the stored rules are erased each time a rule is stored at the node, and this search plane partitioning process is repeated until the last rule of the classification table is stored.

이에 따라 생성된 사분트리구조가 도 8에 도시되어 있으며, 이를 도 4에 도시된 기존의 사분트리와 비교해 보면, 트리의 깊이가 4에서 3으로 줄어들어 검색 시간이 단축됨을 알 수 있다. 나아가, 도 4에 도시된 기존의 사분트리에는 다수의 빈 노드들이 포함되었으나, 도 8에 도시된 본 발명에 따른 사분트리에는 빈 노드가 하나도 포함되지 않아 검색시간을 단축하고 메모리 공간을 절약하게 된다. The quadrant tree structure thus generated is illustrated in FIG. 8, and compared with the conventional quadrant tree illustrated in FIG. 4, it can be seen that the depth of the tree is reduced from 4 to 3, thereby reducing the search time. Furthermore, although the existing quadrant tree illustrated in FIG. 4 includes a plurality of empty nodes, the quadrant tree according to the present invention illustrated in FIG. 8 does not include any empty nodes, thereby reducing search time and saving memory space. .

2) 이진트리를 저장한 메모리의 구조(Table Structures)2) Table Structures that Store Binary Trees

본 발명에 따른 이진트리 구조를 저장한 메모리의 구조가 표 2에 도시되어 있다. The structure of the memory storing the binary tree structure according to the present invention is shown in Table 2.

이진트리 구조를 저장한 테이블Table that stores binary tree structure Rule NoRule no Stored PriorityStored Priority Src PrefixSrc prefix Dst PrefixDst prefix Src PortSrc port Dst PortDst port Protocol TypeProtocol Type Child #1Child # 1 Child #2Child # 2 Linked PtrLinked Ptr ValidValid PtrPtr ValidValid PtrPtr 00 1One 10100*10100 * ** >1024> 1024 >1024> 1024 ** 1One 22 1One 1One 77 1One 1One 11110*11110 * ** 8080 8080 TCPTCP 00 -- 1One 44 66 22 1One 0*0* 11100*11100 * 8080 8080 TCPTCP 00 -- 1One 55 33 33 00 0*0* 11000*11000 * 8888 8888 TCPTCP 00 -- 1One 55 -- 44 1One 111*111 * 11110*11110 * ** >1024> 1024 UDPUDP 1One 88 00 -- -- 55 1One 01110*01110 * 0111*0111 * 8080 8080 TCPTCP 1One 1010 1One 1111 -- 66 00 1*One* 10011*10011 * 2121 2121 TCPTCP 00 -- 1One 44 -- 77 00 ** 10101*10101 * 8080 8080 ** 1One 22 1One 1One -- 88 1One 1100*1100 * 1100*1100 * 8888 8888 TCPTCP 00 -- 1One 99 -- 99 1One 1101*1101 * 1101*1101 * ** ** ** 00 -- 00 -- -- 1010 1One 010*010 * 010*010 * >1024> 1024 >1024> 1024 UDPUDP 00 -- 00 -- -- 1111 1One 0110*0110 * 10*10 * 8080 8080 ** 00 -- 00 -- --

표 2에 도시된 바와 같이 본 발명에 따른 패킷 분류 방법에서의 규칙들은 우선순위에 따라 차례대로 메모리에 저장되며, 각 엔트리에는 규칙의 번호와 함께, 현재의 규칙이 우선순위에 의하여 저장이 되었는지 또는 크로싱(crossing) 상태를 만족하여 저장되었는지를 나타내는 1 비트 정보(Stored Priority)가 저장된다. 이 정보는 후술할 트리의 검색과정에서 사용된다. As shown in Table 2, the rules of the packet classification method according to the present invention are stored in the memory in order according to the priority, and each entry is stored with the number of the rules and whether the current rule is stored by the priority or 1 bit information (Stored Priority) indicating whether the storage state is satisfied is stored. This information is used in the search of the tree to be described later.

그 다음으로는 규칙의 나머지 필드들이 차례대로 저장된 후 자식 노드를 가리키는 필드(Child #1 및 Child #2)가 저장된다. 자식노드가 없으면, 유효(valid) 비트는 0이 되고, 포인터(ptr)는 유효하지 않으며, 자식노드가 있으면, 유효(valid) 비트는 1이 되고, 포인터(ptr)는 자식노드가 저장된 메모리의 주소를 가리킨다. 연결 포인터(linked ptr)는 같은 노드에 해당하는 다음 규칙이 저장된 메모리의 주소를 가리킨다. Next, the remaining fields of the rule are stored in order, and then the fields that point to the child nodes (Child # 1 and Child # 2). If there is no child node, the valid bit is 0, the pointer (ptr) is not valid. If there is a child node, the valid bit is 1, and the pointer (ptr) is located in the memory where the child node is stored. Point to an address. The linked pointer points to the address of memory where the next rule for the same node is stored.

표 2에 도시된 바와 같이 본 발명에 따른 패킷 분류 방법에서는 선형검색 구조와 마찬가지로 규칙의 개수와 같은 수의 메모리 엔트리를 필요로 하며 규칙이 우선순위에 따라 저장되어 있다. 다만, 이진트리구조를 표현하기 위하여 자식노드를 가리키는 두개의 포인터(child #1의 ptr 및 child #2의 ptr)와 같은 노드에 저장된 다른 규칙을 가르치는 포인터(linked ptr)만이 추가로 저장된 것이 기존의 선형검색과의 차이점이다.As shown in Table 2, the packet classification method according to the present invention requires the same number of memory entries as the number of rules as in the linear search structure, and the rules are stored in order of priority. However, in order to represent a binary tree structure, only additional pointers (linked ptrs) that teach different rules stored in nodes, such as two pointers to child nodes (ptr of child # 1 and ptr of child # 2), are stored. This is different from linear search.

동일한 방식으로 본 발명에 따른 패킷 분류 방법을 위한 사분트리구조를 메모리에 저장할 수 있다. 이 때, 네 개의 자식노드를 가리키기 위해 자식 노드를 위한 포인터가 4개로 추가될 뿐 다른 구조는 이진트리구조의 경우와 동일하다. 따라서, 사분트리구조를 위한 메모리 구조에 대한 설명은 생략한다.In the same manner, a quadtree structure for a packet classification method according to the present invention can be stored in a memory. At this time, only four pointers to child nodes are added to point to four child nodes. The other structure is the same as that of the binary tree structure. Therefore, the description of the memory structure for the quarter tree structure is omitted.

3) 검색과정(Search Procedure)3) Search Procedure

패킷에 매치하는 규칙을 찾기 위한 검색 과정은 앞서 보인 이진트리 메모리 구조를 이용하여 설명한다. 검색은 이진트리 구조를 저장한 트리 메모리의 첫 번째 엔트리, 즉 트리의 루트 노드로부터 시작한다. 제안하는 구조의 검색 과정이 선형검색과 다른 점은 검색 영역을 1/2로 줄여가면서 검색을 한다는 것이다. 아래 레벨의 노드로 하나씩 내려가면서 검색 영역이 1/2로 줄기 때문에 검색을 빠르게 할 수 있다는 장점이 있다. The search process for finding a rule matching a packet is described using the binary tree memory structure shown above. The search starts from the first entry in the tree memory that stores the binary tree structure, the root node of the tree. The difference between the proposed search process and the linear search method is that the search is performed by reducing the search area to 1/2. The advantage is that the search can be faster because the search area is reduced to half as it goes down to the node of the lower level one by one.

하나의 노드에 여러 개의 규칙이 저장된 경우, 저장된 규칙들에 대해서는 연결리스트에 의한 선형 검색을 한다. 실제 분류테이블의 특성상 루트 노드를 제외한 나머지 노드들에는 크로싱 상태를 만족하는 규칙보다 우선순위에 의하여 규칙이 저장될 가능성이 매우 크기 때문에, 대부분의 노드에 하나의 규칙만이 저장되게 되어 선형 검색에 대한 검색 시간은 문제되지 않는다. When several rules are stored in one node, the stored rules are linearly searched by a linked list. Due to the nature of the classification table, the remaining nodes except the root node are more likely to store rules by prioritizing rules that satisfy the crossing state. Therefore, only one rule is stored in most nodes. Search time does not matter.

도 10은 본 발명의 일 실시예에 따른 검색 방법을 도시한 흐름도이다.10 is a flowchart illustrating a search method according to an embodiment of the present invention.

도 10을 참조하면, 먼저 입력된 패킷의 헤더필드가 루트 노드, 즉 첫 번째 엔트리에 저장된 규칙과 매치하는지 비교한다(S1604). 매치하지 않는다면 연결리스트가 존재하는지 확인하여(S1610) 존재한다면 연결리스트가 가르치는 메모리의 주소로 이동하여 같은 과정을 반복한다(S1614). 매치하는 경우, 매치하는 규칙을 현재의 최선 정합 규칙(best matching rule, 이하 BMR이라 함)으로 저장하고(S1606), 매치하는 규칙이 우선순위에 의하여 저장된 규칙이라면(S1608) 가장 우선순위가 높은 매치하는 규칙을 찾은 것이므로 검색을 완전히 종료한다(S1618). Referring to FIG. 10, first, a header field of an input packet is compared with a root node, that is, a rule stored in a first entry (S1604). If it does not match, it checks whether a linked list exists (S1610), and if so, moves to the address of the memory taught by the linked list and repeats the same process (S1614). If there is a match, the matching rule is stored as the current best matching rule (hereinafter referred to as BMR) (S1606), and if the matching rule is stored by priority (S1608), the highest priority match Since the rule has been found, the search is terminated completely (S1618).

만약 매치하는 규칙이 우선순위에 의하여 저장된 규칙이 아니라면, 즉 크로싱 상태를 만족하기 때문에 저장된 규칙이라면(S1608), 아래 노드에 우선순위가 더 높은 규칙이 존재할 가능성이 있으므로 입력패킷의 근원지 프리픽스의 다음 비트를 확인하여 0이라면 왼쪽 자식노드가, 1이라면 오른쪽 자식노드가 존재하는지 확인한다(S1612). 자식노드가 존재한다면, 자식 노드의 포인터가 가르치는 메모리의 주소로 이동하여 같은 과정을 반복한다(S1616). If the matching rule is not a stored rule by priority, that is, a stored rule because it satisfies the crossing state (S1608), the next bit of source packet prefix of input packet may exist because a higher priority rule may exist at the lower node. If it is 0, it checks whether the left child node exists and if it is 1, the right child node exists (S1612). If the child node exists, the same process is repeated by moving to the address of the memory taught by the pointer of the child node (S1616).

각 노드마다 저장된 규칙 중 우선순위가 가장 높은 규칙이 먼저 비교되는데, 노드에 저장된 규칙 중 우선순위에 의해 저장된 규칙보다 현재의 최선 정합 규칙(BMR)이 우선순위가 높으면(S1602) 검색을 완전히 종료하고, 최선 정합 규칙(BMR)을 가장 우선순위가 높은 매치하는 규칙으로 판단한다(S1618). 노드에 저장된 규칙의 우선순위가 최선 정합 규칙(BMR)보다 더 높으면(S1602) 검색을 진행하고(S1604), 현재의 최선 정합 규칙(BMR)보다 우선순위가 더 높은 매치하는 규칙을 발견하면(S1604) 최선 정합 규칙(BMR)을 업데이트 한다(S1606). For each node, the rule with the highest priority among the stored rules is compared first.If the current best matching rule (BMR) has a higher priority than the rule stored by the priority among the rules stored in the node (S1602), the search is terminated completely. In operation S1618, the best matching rule (BMR) is determined as the matching rule having the highest priority. If the priority of the rules stored in the node is higher than the best matching rule (BMR) (S1602), the search proceeds (S1604), and if it finds a matching rule with a higher priority than the current best matching rule (BMR) (S1604) ) Update the best matching rule (BMR) (S1606).

검색이 중간에 중단되지 않고 리프 노드까지 검색을 하고 나면(S1612), 현재 기억된 최선 정합 규칙(BMR)을 매치하는 규칙으로 판단하고 검색을 종료한다(S1618).After the search is made to the leaf node without stopping in the middle (S1612), it is determined that the rule matches the currently stored best matching rule (BMR) and the search is terminated (S1618).

이상의 검색 방법을 정리하면, 저장된 트리를 검색하기 위하여, 플로우 조건에 매치하는 규칙을 찾기 위하여 영역분할 검색을 수행하고, 영역분할 검색 중 만약 하나의 노드에 연결 리스트로 연결된 복수의 규칙들이 저장된 경우 플로우 조건에 매치하는 규칙을 찾기 위하여 연결된 복수의 규칙들에 대하여 선형 검색을 수행하며, 검색결과 매치하는 규칙을 현재의 최선 정합 규칙(best matching rule: 이하 BMR이라 함)으로 저장하고, 매치하는 규칙이 우선순위에 의해 저장된 경우라면 현재의 최선 정합 규칙(BMR)을 출력하고 검색을 종료하며, 매치하는 규칙이 분할된 각 영역을 가로지르는 크로싱(crossing) 상태를 만족하여 저장된 경우라면 플로우 조건의 다음 비트를 확인하고 전술한 검색과정을 반복한다. 만약, 검색 결과 현재 저장된 최선 정합 규칙이 우선순위에 의하여 노드에 저장된 규칙보다 우선순위가 높은 경우 현재의 최선 정합 규칙(BMR)을 출력하고 검색을 종료하며, 저장된 트리의 리프(leaf) 노드에 도달하면 현재까지 저장된 최선 정합 규칙(BMR) 중 우선순위가 가장 높은 규칙을 출력하고 검색을 종료한다. To summarize the above search methods, in order to search the stored tree, the segmentation search is performed to find the rule matching the flow condition, and in the segmentation search, if a plurality of rules connected to one node are stored in the linked list, the flow A linear search is performed on a plurality of connected rules to find a rule that matches the condition. The rule that matches the search result is stored as the current best matching rule (hereinafter referred to as BMR), and the matching rule is If it is stored by priority, output the current best match rule (BMR) and terminate the search; if the matching rule is stored satisfying the crossing state across each divided region, then the next bit of the flow condition. Check and repeat the above search process. If, as a result of the search, the currently stored best matching rule has a higher priority than the rule stored in the node by priority, the current best matching rule (BMR) is output, the search is terminated, and the leaf node of the stored tree is reached. Outputs the highest priority rule saved so far and terminates the search.

4) 분류테이블의 갱신(Update) 4) Update of classification table

본 발명에 따른 패킷 분류 방법은 분류테이블의 부가적 갱신(incremental update)을 지원한다. 먼저 이미 존재하는 규칙을 삭제하고자 하는 경우, 규칙을 검색하여 자식노드로 가는 포인터와 연결리스트 포인터를 제외한 다른 필드들을 삭제한다. 이는 자식노드와 연결리스트는 현재의 규칙이 삭제되어도 사용되어야 하기 때문이다. 많은 규칙을 삭제한 경우 비어있는 엔트리가 증가할 것이나, 일정한 시간 간격으로 전체 분류테이블이 갱신됨을 고려할 때 문제가 되지 않는다. The packet classification method according to the present invention supports incremental update of the classification table. First, if you want to delete a rule that already exists, search for the rule and delete other fields except the pointer to the child node and the linked list pointer. This is because child nodes and linked lists should be used even if the current rule is deleted. If you delete many rules, empty entries will increase, but this is not a problem considering that the entire classification table is updated at regular time intervals.

다음은 새로운 규칙을 추가하고자 하는 경우이다. 트리 메모리를 검색하여, 추가하고자 하는 규칙이 저장되어야 하는 노드를 찾는다. 추가하려는 규칙이 우선순위에 의하여 해당 노드에 저장되어야 한다면, 해당 노드에 저장되어 있던 기존의 규칙 중 우선순위에 의하여 저장되었던 규칙은 트리 메모리의 비어있는 엔트리로 이동하고, 추가하고자 하는 규칙은 이 엔트리를 대치하며, 연결리스트에 의하여 이동된 규칙을 가리킨다. The following is an example of adding a new rule. Search the tree memory to find the node where the rule you want to add is stored. If the rule to be added should be stored in the node in order of priority, the existing rule stored in that node will be moved to an empty entry in the tree memory. Replace with and indicate the rule moved by the linked list.

만약 추가하려는 규칙이 크로싱 상태를 만족하기 때문에 해당 노드에 저장되어야 한다면, 트리 메모리의 비어있는 엔트리에 추가되고, 해당 노드에 속하는 규칙들의 연결 리스트들을 우선순위에 의하여 재조정한다. 즉 본 발명에 따른 패킷 분류 방법에 따르면 규칙을 삭제하거나 추가하려는 경우, 삭제 혹은 추가하려는 규칙의 영향을 하나의 노드로 국한시켜 효율적으로 분류 테이블을 업데이트할 수 있다.If the rule to be added needs to be stored in the node because it satisfies the crossing state, it is added to an empty entry in the tree memory, and the linked list of rules belonging to the node is reordered by priority. That is, according to the packet classification method according to the present invention, when deleting or adding a rule, the classification table can be efficiently updated by limiting the influence of the rule to be deleted or added to one node.

5) 실험결과 및 성능 비교(Simulation Result and Performance Evaluation)5) Simulation Result and Performance Evaluation

기존의 선형검색구조 및 AQT구조와, 본 발명에 따른 우선순위에 기초한 영역분할 구조를 이용한 패킷분류방법을 C 언어를 사용하여 각각 구현하고, 실험을 통해 성능을 비교해 보았다. 성능 실험을 위한 분류테이블로 실제 라우터에서 사용하는 주소검색테이블로부터 랜덤하게 근원지 프리픽스를 추출하여 일차원 패킷분류를 실험하였고, 근원지 프리픽스와 목적지 프리픽스 쌍을 추출하여 이차원 패킷분류구조를 실험하였다. 그리고 각각의 규칙에 매치하는 패킷들이 동일한 확률로 들어온다고 가정하고, 검색을 위한 입력 패킷으로 각 규칙에 매치하는 정보들을 갖는 패킷을 사용하였다. 규칙의 개수는 50개부터 10000개까지 5가지 경우로 증가시키면서 실험하였다. 검색에 걸리는 시간은 메모리 접근횟수와 매우 밀접한 관계를 가지므로, 주어진 규칙을 검색하는데 소요된 메모리 접근 횟수를 비교하였다. The packet classification method using the conventional linear search structure and AQT structure and the region division structure based on the priority according to the present invention was implemented using C language, and the performances were compared through experiments. As a classification table for performance experiments, one-dimensional packet classification was experimented by randomly extracting source prefixes from the address lookup table used in the actual router, and the two-dimensional packet classification structure was tested by extracting source prefix and destination prefix pairs. And it was assumed that packets matching each rule came in with the same probability, and a packet having information matching each rule was used as an input packet for searching. The number of rules was increased from 50 to 10,000 in five cases. The search time is closely related to the number of memory accesses, so we compare the number of memory accesses to search a given rule.

규칙 검색을 위한 최대 메모리 접근횟수와 평균 메모리접근 횟수 비교Maximum Memory Access vs. Average Memory Access for Rule Search Number of RulesNumber of Rules 선형검색Linear search AQTAQT 본 발명에 따른 구조Structure according to the present invention 일차원 이진트리One-dimensional binary tree 이차원 사분트리Two-dimensional quadrant 일차원 이진트리One-dimensional binary tree 이차원 사분트리Two-dimensional quadrant 최대 횟수Number of times 평균 횟수Average number of times 최대 횟수Number of times 평균 횟수Average number of times 최대 횟수Number of times 평균 횟수Average number of times 최대 횟수Number of times 평균 횟수Average number of times 최대 횟수Number of times 평균 횟수Average number of times 5050 5050 25.525.5 3232 27.2627.26 3131 25.3225.32 1010 5.985.98 88 4.284.28 100100 100100 50.550.5 3232 27.3227.32 3131 25.2425.24 1414 7.427.42 88 4.944.94 10001000 10001000 500.5500.5 3232 27.2127.21 3232 25.1225.12 1818 11.1011.10 1212 7.217.21 50005000 50005000 2500.52500.5 3232 27.2927.29 3232 25.2825.28 2323 13.9413.94 1414 8.488.48 1000010000 1000010000 5000.55000.5 3333 27.3427.34 3232 25.2925.29 2525 15.2515.25 1515 9.049.04

표 3은 검색 과정에서의 최대 메모리 접근회수와 평균 메모리 접근횟수를 나타낸 것이다. 선형검색의 경우 최대 규칙 개수만큼의 메모리 접근 횟수를 갖으며, 하나의 입력이 여러 개의 규칙과 일치할 수 있고, 이 경우 가장 우선순위가 높은 규칙이 선택되므로, 테이블에 나타난 바와 같은 평균 검색횟수를 갖는다. AQT의 경우 규칙이 두 프리픽스의 길이 중 짧은 것의 길이에 해당하는 깊이를 가진 노드에 저장되기 때문에 규칙의 개수에 관계없이 트리의 깊이가 크게 나타났다. AQT의 경우 프리픽스의 길이가 긴 규칙들이 트리의 아랫부분에 저장되어 있기 때문에, 루트 노드부터 매치하는 규칙이 저장된 노드까지 한 레벨씩 내려가면서 계속적으로 메모리에 접근하여야 할 뿐 아니라, 매치하는 규칙을 발견하였다하더라고, 하위 노드에 우선순위가 더 높은 규칙과 일치할 가능성이 있으므로, 트리의 리프를 만날 때까지 검색을 진행하여야 하므로, 평균 메모리 접근 횟수가 크게 나타난 것을 알 수 있다. Table 3 shows the maximum memory accesses and the average memory accesses during the search process. In the case of linear search, the number of memory accesses can be as many as the maximum number of rules, and one input can match several rules. In this case, the rule with the highest priority is selected. Have In the case of AQT, the depth of the tree is large regardless of the number of rules because the rules are stored in the node with the depth corresponding to the shorter of the lengths of the two prefixes. In the case of AQT, long prefixes are stored in the lower part of the tree, so that not only do you have to continuously access memory by going down one level from the root node to the node where the matching rule is stored, but you also find matching rules. Even though it is possible that the lower node matches the rule with higher priority, the search must proceed until the leaf of the tree is met, so the average number of memory accesses is large.

한편, 본 발명에 따른 우선순위에 기초하여 영역분할을 이용한 패킷 분류 방법에 의하면, 트리에 빈 노드가 없이 규칙이 저장되기 때문에 규칙의 개수가 증가하여도 트리의 깊이가 깊어지지 않는 것을 확인할 수 있다. 본 발명에 따른 트리 구조의 경우에는 프리픽스의 길이보다는 규칙의 우선순위에 따라 규칙이 저장될 가능성이 크고, 우선순위에 의하여 저장된 규칙과 매치하거나, 현재의 최선 정합 규칙(BMR)이 우선순위에 의하여 저장된 규칙보다 우선순위가 높은 경우 리프노드가 아니어도 검색을 완전히 종료하므로, 평균 메모리 접근 횟수가 매우 적게 나타났다. On the other hand, according to the packet classification method using region division based on the priority according to the present invention, since the rule is stored without empty nodes in the tree, it can be confirmed that the depth of the tree does not become deep even if the number of rules increases. . In the case of the tree structure according to the present invention, the rule is more likely to be stored according to the priority of the rule rather than the length of the prefix, and matches the stored rule according to the priority, or the current best matching rule (BMR) depends on the priority. If the priority is higher than the stored rule, the search is completely terminated even if it is not a leaf node, so the average number of memory accesses is very small.

규칙 테이블 저장을 위해 요구되는 메모리 크기 비교 (Kbyte)Compare memory size required for storing rule table (Kbyte) Number of RulesNumber of Rules 선형검색 (21byte width)Linear search (21byte width) AQTAQT 본 발명에 따른 구조Structure according to the present invention 일차원 이진트리 (27byte width)One-dimensional binary tree (27byte width) 이차원 사분트리 (32byte width)2-D Quadrant Tree (32byte width) 일차원 이진트리 (27byte width)One-dimensional binary tree (27byte width) 이차원 사분트리 (32byte width)2-D Quadrant Tree (32byte width) 5050 1.051.05 27.627.6 33.833.8 1.351.35 1.61.6 100100 2.12.1 49.849.8 65.665.6 2.72.7 3.23.2 10001000 21.021.0 394.5394.5 584.8584.8 2727 32.032.0 50005000 105.0105.0 1495.91495.9 2753.72753.7 135135 160.0160.0

표 4는 규칙 테이블을 저장하기 위해 필요한 메모리의 크기를 비교한 결과를 나타낸 것이다. 선형검색의 경우 자식노드로 가는 포인터가 전혀 필요하지 않으므로 메모리 사용량이 가장 적은 것을 알 수 있다. 그러나 AQT의 경우 규칙이 저장되어 있지는 않으나 자식노드로 가는 포인터를 저장하는 빈 노드가 존재하기 때문에 매우 큰 메모리를 요구하는 것을 알 수 있다. Table 4 shows the result of comparing the size of memory required to store the rules table. In the case of the linear search, since the pointer to the child node is not needed at all, the memory usage is minimal. However, in the case of AQT, although the rule is not stored, there is an empty node that stores a pointer to a child node, so it can be seen that it requires very large memory.

한편, 본 발명에 따른 구조는 선형검색구조에 비하여 약 30%의 메모리를 더 사용하여, 선형검색구조나 AQT 구조에 비해 매우 빠른 검색 성능을 보이며, AQT에 비하여는 매우 작은 메모리 크기를 사용하고 있어 매우 우수한 구조라고 할 수 있다.On the other hand, the structure according to the present invention uses about 30% more memory than the linear search structure, shows a very fast search performance compared to the linear search structure or AQT structure, and uses a very small memory size compared to the AQT. It is a very good structure.

정리하면, 본 발명에 따르면 기존의 선형검색 방식과 영역분할 방식의 단점을 보완한 새로운 패킷분류 기법이 제공된다. 기존의 선형검색 방식에서는 매 테이블 룩업 당 검색영역이 선형적으로 감소하는 단점을 갖는데, 본 발명에 따른 구조에서는 검색영역을 지수적으로 줄이는 방법으로서 재귀적 영역분할 방식을 이용하였다. 특히, 규칙을 저장할 때 크로싱 상태를 만족하지 않아도 노드에 해당하는 영역에 속하는 규칙 중 우선순위가 가장 높은 규칙을 저장하여 트리의 빈 노드를 완전히 없애고 트리의 깊이를 줄여 검색속도를 향상시키고 소요되는 메모리의 크기도 줄인 구조이다. 본 발명에 따라 저장된 분류테이블을 예로 실험한 결과 본 발명에 따른 방식은 패킷분류 속도나 소요되는 메모리, 분류테이블 갱신의 용이성, 확장성의 다양한 측면에서 매우 우수한 결과를 나타냄을 확인할 수 있었다.In summary, according to the present invention, a new packet classification technique is provided which supplements the disadvantages of the conventional linear search scheme and the region division scheme. In the conventional linear search method, a search area decreases linearly every table lookup. In the structure according to the present invention, a recursive area partitioning method is used as a method of exponentially reducing the search area. In particular, when saving a rule, even if the crossing state is not satisfied, the rule with the highest priority among the rules belonging to the node is saved so that the empty nodes of the tree are completely eliminated and the depth of the tree is reduced to improve the search speed and the required memory. It also has a reduced size. As a result of experimenting with the classification table stored according to the present invention, it can be seen that the scheme according to the present invention has very good results in terms of packet classification speed, required memory, ease of updating the classification table, and scalability.

전술한 본 발명에 따른 패킷 분류 방법은 패킷 중계 장치 내에서 하드웨어적으로 구현될 수 있다. 패킷 중계 장치에서의 패킷 분류는 입력된 모든 패킷에 대하여 실시간으로 처리되어야 하므로, 실시간으로 패킷 분류를 수행하기 위하여 본 발명을 하드웨어 구조로 설계 구현하는 것이 적절하다. The packet classification method according to the present invention described above may be implemented in hardware in a packet relay apparatus. Since packet classification in the packet relay apparatus must be processed in real time for all input packets, it is appropriate to design and implement the present invention in a hardware structure in order to perform packet classification in real time.

한편, 본 발명에 따른 패킷 분류 방법은 컴퓨터 프로그램으로도 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 패킷 분류 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다. On the other hand, the packet classification method according to the present invention can also be created by a computer program. Codes and code segments constituting the program can be easily inferred by a computer programmer in the art. The program is also stored in a computer readable media, and read and executed by a computer to implement a packet classification method. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

전술한 바와 같이 본 발명에 따르면, 검색 시간을 줄일 수 있을 뿐만 아니라 소요되는 메모리의 크기도 줄일 수 있는 효율적인 패킷 분류 방법 및 이를 적용한 패킷 중계 장치가 제공된다.As described above, according to the present invention, there is provided an efficient packet classification method and a packet relay apparatus using the same, which can reduce the search time and reduce the size of memory required.

기존의 패킷 분류 방법들은 빠른 검색 속도와 적은 메모리 소요라는 요구를 동시에 만족시키지 못하는 제한이 있었다. 그러나, 본 발명에 따른 패킷 분류 방법은 선형검색구조에 재귀적 영역분할방법을 응용함으로써, 선형검색구조에서의 단점인 검색속도를 향상시키고 재귀적 영역분할방법의 단점인 요구되는 메모리 크기를 개선시킬 수 있다. Conventional packet classification methods have limitations that do not satisfy the requirements of fast search speed and low memory requirements. However, the packet classification method according to the present invention improves the search speed which is a disadvantage of the linear search structure and the required memory size which is a disadvantage of the recursive area partitioning method by applying the recursive region partitioning method to the linear search structure. Can be.

즉, 선형검색구조의 단점을 보완하기 위해 본 발명에 따른 패킷 분류 방법은 검색속도를 향상시키기 위하여 재귀적 영역분할 방법을 응용함으로써 검색범위를 지수적으로 줄일 수 있다. 또한, 재귀적 영역분할 방식의 단점을 보완하기 위해 본 발명에 따른 패킷 분류 방법은 이진트리 혹은 사분트리의 노드에 규칙을 저장할 때 크로싱(crossing) 상태를 만족하지 않아도 노드에 해당하는 영역에 속하는 규칙 중 우선순위가 가장 높은 규칙을 저장하도록 함으로써 트리의 빈 노드를 완전히 없애고 트리의 깊이를 줄여 검색속도를 향상시키며, 소요되는 메모리의 크기도 줄일 수 있다. That is, in order to compensate for the shortcomings of the linear search structure, the packet classification method according to the present invention can reduce the search range exponentially by applying a recursive region division method to improve the search speed. In addition, in order to compensate for the disadvantage of the recursive region partitioning scheme, the packet classification method according to the present invention does not satisfy a crossing state when a rule is stored in a node of a binary tree or a quadrant tree. By saving the rule with the highest priority, you can completely eliminate empty nodes in the tree, reduce the depth of the tree, improve the search speed, and reduce the amount of memory required.

실제 라우터의 주소검색테이블에서 랜덤하게 생성된 규칙 10000개를 갖는 분류테이블에 대해 본 발명에 따른 패킷 분류 방법을 적용한 실험 결과, 선형검색구조에 비하여 약 30%의 메모리를 더 사용하나, 최대 혹은 평균 메모리 접근횟수를 획기적으로 줄임으로써 검색시간을 훨씬 단축할 수 있었다. 또한, 재귀적 영역분 할 방식과 비교하면, 사용되는 메모리의 측면이나 검색속도 모두를 획기적으로 개선할 수 있었다. 나아가, 본 발명에 따른 패킷 분류 방법은 분류테이블의 부가적인 갱신을 지원함으로써 분류테이블이 자주 변경되는 경우에도 업데이트가 용이할 뿐 아니라, 분류테이블의 확장성도 매우 뛰어남을 확인할 수 있다.As a result of applying the packet classification method according to the present invention to a classification table with 10000 randomly generated rules in the address lookup table of an actual router, about 30% more memory is used than the linear search structure, but the maximum or average By dramatically reducing the number of memory accesses, the search time can be much shorter. In addition, compared with the recursive region partitioning method, both the aspects of memory used and the search speed can be significantly improved. Furthermore, the packet classification method according to the present invention supports additional update of the classification table, so that the update is easy even when the classification table is frequently changed, and it is also confirmed that the classification table has excellent scalability.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

Claims (15)

패킷 중계 장치의 패킷 분류 방법에 있어서,In the packet classification method of a packet relay device, (a) 적어도 하나의 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 정의한 패킷 분류 테이블을 생성하는 단계;(a) generating a packet classification table defining rules for classifying a class of packets based on at least one packet field; (b) 상기 생성된 패킷 분류 테이블에 포함된 각 규칙들에 대하여 트리를 생성하여 저장하는 단계;(b) generating and storing a tree for each rule included in the generated packet classification table; (c) 상기 패킷 중계 장치로 입력되는 패킷 중에서 분류에 사용될 비트를 추출하여 플로우 조건을 생성하는 단계; (c) generating a flow condition by extracting bits to be used for classification among packets input to the packet relay apparatus; (d) 상기 플로우 조건에 매치하는 규칙을 찾기 위하여 상기 저장된 트리를 검색하는 단계; 및(d) searching the stored tree to find a rule that matches the flow condition; And (e) 검색된 상기 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 서비스를 제공하는 단계를 포함하며,(e) providing a service based on class information included in a rule matching the retrieved flow condition; 상기 트리는 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 생성되며,The tree is generated using a segmentation scheme based on priorities of predefined rules, 상기 (b) 단계의 트리를 생성하여 저장하는 방법은,The method of generating and storing the tree of step (b), (b1) 상기 적어도 하나의 패킷 필드에 기초하여 재귀적 영역분할(recursive area decomposition)을 수행하는 단계;(b1) performing recursive area decomposition based on the at least one packet field; (b2) 분할된 각 영역에 속하는 상기 규칙들 중 우선순위가 가장 높은 규칙을 먼저 노드에 저장하는 단계; 및(b2) first storing a rule having the highest priority among the rules belonging to each divided region in the node; And (b3) 분할된 각 영역을 가로지르는 크로싱(crossing) 상태의 규칙은 상기 우선순위가 가장 높은 규칙을 저장한 노드에 연결 리스트(linked list)로 연결하여 저장하는 단계를 포함하는 것을 특징으로 하는 패킷 분류 방법.(b3) A rule of a crossing state across each divided region includes a step of linking and storing the highest priority rule as a linked list to a node that stores the rule having the highest priority. Classification method. 제1항에 있어서,The method of claim 1, 상기 (a) 단계의 패킷 분류 테이블을 구성하는 규칙은,The rule constituting the packet classification table of step (a), 근원지 프리픽스, 목적지 프리픽스, 근원지 포트, 목적지 포트, 프로토콜 타입 중 적어도 하나의 패킷 필드와, 상기 적어도 하나의 패킷 필드에 기초하여 패킷을 분류하는 클래스 정보를 포함하는 것을 특징으로 하는 패킷 분류 방법.And at least one packet field among a source prefix, a destination prefix, a source port, a destination port, and a protocol type, and class information for classifying a packet based on the at least one packet field. 삭제delete 제1항에 있어서,The method of claim 1, 상기 (b) 단계의 트리를 생성하여 저장하는 방법은,The method of generating and storing the tree of step (b), 상기 생성된 패킷 분류 테이블에 포함된 모든 규칙들이 상기 트리의 각 노드들에 저장될 때까지 상기 (b1) 단계 내지 (b3) 단계를 반복하는 것을 특징으로 하는 패킷 분류 방법.And repeating steps (b1) to (b3) until all rules included in the generated packet classification table are stored in respective nodes of the tree. 제4항에 있어서,The method of claim 4, wherein 상기 생성된 패킷 분류 테이블에 포함된 모든 규칙들에 대하여 생성된 트리를 구성하는 모든 노드들은 적어도 하나의 규칙을 저장하는 것을 특징으로 하는 패킷 분류 방법.All nodes constituting the generated tree for all the rules included in the generated packet classification table store at least one rule. 제1항에 있어서,The method of claim 1, 상기 생성된 트리에 특정 규칙을 삭제하거나 추가하려는 경우, 삭제 또는 추가할 규칙의 영향을 상기 트리의 하나의 노드에 제한시켜 상기 트리를 업데이트하는 것을 특징으로 하는 패킷 분류 방법.And deleting or adding a specific rule to the created tree, updating the tree by limiting the influence of the rule to be deleted or added to one node of the tree. 제1항에 있어서,The method of claim 1, 상기 (c) 단계의 플로우 조건은,The flow condition of step (c) is, 근원지 프리픽스, 목적지 프리픽스, 근원지 포트, 목적지 포트, 프로토콜 타입 중 적어도 하나의 필드를 포함하는 것을 특징으로 하는 패킷 분류 방법.A packet classification method comprising at least one field of a source prefix, a destination prefix, a source port, a destination port, and a protocol type. 제1항에 있어서,The method of claim 1, 상기 (d) 단계의 저장된 트리를 검색하는 방법은,The method for searching the stored tree of the step (d), (d1) 상기 플로우 조건에 매치하는 규칙을 찾기 위하여 영역분할 검색을 수행하는 단계;(d1) performing a segmentation search to find a rule matching the flow condition; (d2) 상기 (d1) 단계의 영역분할 검색 중 만약 하나의 노드에 연결 리스트로 연결된 복수의 규칙들이 저장된 경우 상기 플로우 조건에 매치하는 규칙을 찾기 위하여 상기 연결된 복수의 규칙들에 대하여 선형 검색을 수행하는 단계;(d2) If a plurality of rules linked by a linked list are stored in one node of the area partitioned search of step (d1), a linear search is performed on the plurality of linked rules to find a rule matching the flow condition. Doing; (d3) 상기 (d1) 단계 및 상기 (d2)단계의 검색결과 매치하는 규칙을 현재의 최선 정합 규칙(best matching rule: 이하 BMR이라 함)으로 저장하고, 상기 매치하는 규칙이 우선순위에 의해 저장된 경우라면 현재의 최선 정합 규칙(BMR)을 출력하고 검색을 종료하며, 상기 매치하는 규칙이 분할된 각 영역을 가로지르는 크로싱(crossing) 상태를 만족하여 저장된 경우라면 상기 플로우 조건의 다음 비트를 확인하고 상기 (d1) 단계로 진행하는 단계; (d3) storing the rule matching the search result of step (d1) and (d2) as the current best matching rule (hereinafter referred to as BMR), and the matching rule is stored by priority. If it is, output the current best match rule (BMR) and terminate the search.If the matching rule is stored satisfying the crossing state across each divided region, check the next bit of the flow condition. Proceeding to the step (d1); (d4) 상기 (d1) 단계 및 상기 (d2) 단계의 검색 결과 현재 저장된 최선 정합 규칙이 우선순위에 의하여 노드에 저장된 규칙보다 우선순위가 높은 경우 현재의 최선 정합 규칙(BMR)을 출력하고 검색을 종료하는 단계; 및(d4) If the currently stored best matching rule has a higher priority than the rule stored in the node according to the priorities as a result of the search of steps (d1) and (d2), output the current best matching rule (BMR) and perform a search Terminating; And (d5) 저장된 트리의 리프(leaf) 노드에 도달하면 현재까지 저장된 최선 정합 규칙(BMR)을 출력하고 검색을 종료하는 단계를 포함하는 것을 특징으로 하는 패킷 분류 방법.(d5) outputting the best matching rule (BMR) stored so far and ending the search upon reaching a leaf node of the stored tree. 제1항에 있어서,The method of claim 1, 상기 (e) 단계에서 제공되는 서비스는 상기 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 품질보장을 지원하는 서비스(QoS)인 것을 특징으로 하는 패킷 분류 방법.The service provided in the step (e) is a packet classification method, characterized in that the service (QoS) to support quality assurance based on the class information included in the rule matching the flow condition. 제1항에 있어서,The method of claim 1, 상기 (e) 단계에서 제공되는 서비스는 패킷 필터링(packet filtering), 트래픽 속도제한(traffic rate limit), 정책기반 라우팅(policy-based routing), 클래스에 따른 어카운팅(accounting), 클래스에 따른 요금부과(billing) 서비스 중 적어도 하나를 포함하는 것을 특징으로 하는 패킷 분류 방법.The service provided in step (e) includes packet filtering, traffic rate limit, policy-based routing, accounting according to class, and charging according to class. billing) Packet classification method comprising at least one of the service. 복수의 입력 포트 중 하나와 복수의 출력 포트 중 하나를 연결하는 패킷 중계 장치에 있어서,A packet relay apparatus for connecting one of a plurality of input ports and one of a plurality of output ports, 입력 포트를 통해 수신된 패킷의 목적지 어드레스 정보를 참조하여 상기 수신된 패킷을 전송할 출력 포트를 지정하는 어드레스 룩업 처리부;An address lookup processor for designating an output port to which the received packet is to be transmitted by referring to destination address information of a packet received through an input port; 적어도 하나의 입력 패킷 필드에 기초하여 패킷의 클래스를 구분하는 규칙들을 포함하는 패킷 분류 테이블을 저장하고 상기 저장된 패킷 분류 테이블로부터 상기 입력 포트를 통해 수신된 패킷의 플로우 조건에 매치하는 규칙을 검색하는 패킷 분류 처리부; 및A packet storing a packet classification table including rules for classifying a class of packets based on at least one input packet field and retrieving rules matching the flow conditions of packets received through the input port from the stored packet classification table Classification processing unit; And 상기 패킷 분류 처리부에서 검색된 상기 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 상기 지정된 출력 포트로의 상기 수신된 패킷의 전송을 제어하는 전송 제어부를 포함하며,A transmission control section for controlling transmission of the received packet to the designated output port based on class information included in a rule matching the flow condition retrieved by the packet classification processing section, 상기 패킷 분류 테이블은 미리 정의된 규칙들의 우선순위에 기초하여 영역분할 방식을 이용하여 트리로 생성되어 저장되며,The packet classification table is generated and stored in a tree by using a partitioning scheme based on priorities of predefined rules. 상기 패킷 분류 처리부는,The packet classification processing unit, 상기 패킷 분류 테이블에 포함된 모든 규칙들에 대하여 생성된 트리를 구성하는 모든 노드들이 적어도 하나의 규칙을 포함하도록, 상기 적어도 하나의 입력 패킷 필드에 기초하여 재귀적 영역분할(recursive area decomposition)을 수행하고, 분할된 각 영역에 속하는 상기 규칙들 중 우선순위가 가장 높은 규칙을 먼저 노드에 저장하며, 분할된 각 영역을 가로지르는 크로싱(crossing) 상태의 규칙은 상기 우선순위가 가장 높은 규칙에 대응하는 노드에 연결 리스트(linked list)로 연결하여 저장하는 것을 특징으로 하는 패킷 중계 장치.Perform recursive area decomposition based on the at least one input packet field such that all nodes constituting the generated tree for all the rules included in the packet classification table include at least one rule And the highest priority rule among the rules belonging to each divided region is stored in the node first, and the crossing state rule across each divided region corresponds to the highest priority rule. Packet relay apparatus, characterized in that the connection to the node (linked list) to store. 삭제delete 제11항에 있어서,The method of claim 11, 상기 패킷 분류 테이블을 구성하는 규칙은,The rule configuring the packet classification table is 근원지 프리픽스, 목적지 프리픽스, 근원지 포트, 목적지 포트, 프로토콜 타입 중 적어도 하나의 패킷 필드와, 상기 적어도 하나의 패킷 필드에 기초하여 패킷 을 분류하는 클래스 정보를 포함하는 것을 특징으로 하는 패킷 중계 장치.And at least one packet field among a source prefix, a destination prefix, a source port, a destination port, and a protocol type, and class information for classifying a packet based on the at least one packet field. 제11항에 있어서,The method of claim 11, 상기 전송 제어부는 상기 플로우 조건에 매치하는 규칙에 포함된 클래스 정보에 기초하여 품질보장을 지원하는 서비스(QoS)를 제공하는 것을 특징으로 하는 패킷 중계 장치.The transmission control unit is a packet relay apparatus, characterized in that for providing a service (QoS) to support quality assurance based on the class information included in the rule matching the flow condition. 제14항에 있어서,The method of claim 14, 상기 품질보장을 지원하는 서비스는 패킷 필터링(packet filtering), 트래픽 속도제한(traffic rate limit), 정책기반 라우팅(policy-based routing), 클래스에 따른 어카운팅(accounting), 클래스에 따른 요금부과(billing) 서비스 중 적어도 하나를 포함하는 것을 특징으로 하는 패킷 중계 장치.The services supporting quality assurance include packet filtering, traffic rate limit, policy-based routing, accounting according to class, and billing according to class. Packet relay apparatus comprising at least one of the services.
KR1020060016944A 2006-02-21 2006-02-21 A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor KR100767072B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060016944A KR100767072B1 (en) 2006-02-21 2006-02-21 A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060016944A KR100767072B1 (en) 2006-02-21 2006-02-21 A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor

Publications (2)

Publication Number Publication Date
KR20070084760A KR20070084760A (en) 2007-08-27
KR100767072B1 true KR100767072B1 (en) 2007-10-24

Family

ID=38612945

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060016944A KR100767072B1 (en) 2006-02-21 2006-02-21 A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor

Country Status (1)

Country Link
KR (1) KR100767072B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2452125A (en) 2007-08-23 2009-02-25 Samsung Electronics Co Ltd Integrated circuit memory devices
KR101628376B1 (en) * 2009-12-04 2016-06-08 연세대학교 산학협력단 System and method for schedulling low-power processor based on priority
KR101387942B1 (en) * 2012-08-02 2014-04-22 주식회사 엑스게이트 Method for Packet Classification Based-On Quadtree Using Subtree
KR102060053B1 (en) * 2018-03-27 2019-12-27 계명대학교 산학협력단 Integration packet classification method and system for supporting high performance secure routers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030000290A (en) * 2001-06-23 2003-01-06 삼성전자 주식회사 ATM-based delay adaptive scheduling apparatus according to traffic types and method thereof
JP2004015504A (en) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd Apparatus, method, and program for packet transmission
KR20040051281A (en) * 2002-12-12 2004-06-18 한국전자통신연구원 Method for managing resources in guaranteeing QoS in IP network
KR20050066892A (en) * 2003-12-27 2005-06-30 한국전자통신연구원 Apparatus and method for packet classification using multi-bit tree bitmap

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030000290A (en) * 2001-06-23 2003-01-06 삼성전자 주식회사 ATM-based delay adaptive scheduling apparatus according to traffic types and method thereof
JP2004015504A (en) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd Apparatus, method, and program for packet transmission
KR20040051281A (en) * 2002-12-12 2004-06-18 한국전자통신연구원 Method for managing resources in guaranteeing QoS in IP network
KR20050066892A (en) * 2003-12-27 2005-06-30 한국전자통신연구원 Apparatus and method for packet classification using multi-bit tree bitmap

Also Published As

Publication number Publication date
KR20070084760A (en) 2007-08-27

Similar Documents

Publication Publication Date Title
Gupta et al. Algorithms for packet classification
Gupta et al. Packet classification using hierarchical intelligent cuttings
US7039641B2 (en) Modular packet classification
US6212184B1 (en) Fast scaleable methods and devices for layer four switching
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
EP1515501B1 (en) Data structure for range-specified algorithms
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
Song et al. Shape shifting tries for faster IP route lookup
US7478426B2 (en) Multi-field classification dynamic rule updates
Lim et al. Survey and proposal on binary search algorithms for longest prefix match
KR100586461B1 (en) Method, Hardware Architecture and Recording Medium for Searching IP Address by Using Pipeline Binary Tree
Meiners et al. Topological transformation approaches to TCAM-based packet classification
JP2004522383A (en) Method for selectively routing data flows using TCAM
Gupta et al. Dynamic algorithms with worst-case performance for packet classification
KR100512949B1 (en) Apparatus and method for packet classification using Field Level Trie
EP3661153A1 (en) Building decision tree for packet classification
KR100767072B1 (en) A method of classifying packets using area decomposition based on priority and apparatus for relaying packets therefor
US6970971B1 (en) Method and apparatus for mapping prefixes and values of a hierarchical space to other representations
Lim et al. Two-dimensional packet classification algorithm using a quad-tree
KR101153940B1 (en) Device and the method for classifying packet
Lim et al. A quad-trie conditionally merged with a decision tree for packet classification
Ahmed et al. PCIU: an efficient packet classification algorithm with an incremental update capability
CN109754021B (en) Online packet classification method based on range tuple search
KR100662254B1 (en) Apparatus and Method for Packet Classification in Router
Macián et al. An evaluation of the key design criteria to achieve high update rates in packet classifiers

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
N231 Notification of change of applicant
FPAY Annual fee payment

Payment date: 20120828

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee