KR100920518B1 - 패킷 분류 장치 및 방법 - Google Patents

패킷 분류 장치 및 방법 Download PDF

Info

Publication number
KR100920518B1
KR100920518B1 KR1020070121301A KR20070121301A KR100920518B1 KR 100920518 B1 KR100920518 B1 KR 100920518B1 KR 1020070121301 A KR1020070121301 A KR 1020070121301A KR 20070121301 A KR20070121301 A KR 20070121301A KR 100920518 B1 KR100920518 B1 KR 100920518B1
Authority
KR
South Korea
Prior art keywords
data
items
match
rule
item
Prior art date
Application number
KR1020070121301A
Other languages
English (en)
Other versions
KR20090054570A (ko
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 KR1020070121301A priority Critical patent/KR100920518B1/ko
Priority to US12/206,078 priority patent/US8165125B2/en
Publication of KR20090054570A publication Critical patent/KR20090054570A/ko
Application granted granted Critical
Publication of KR100920518B1 publication Critical patent/KR100920518B1/ko

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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]

Landscapes

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

Abstract

본 발명은 네트워크 시스템에서 QoS(Quality of Service) 지원을 위한 패킷 분류 장치 및 방법에 대한 것으로, 입력된 데이터 패킷을 분석하고, 분석 결과를 이용하여 상기 데이터 패킷으로부터 복수의 특정 필드를 추출하여 출력하는 제1 수단, 상기 추출된 복수의 특정 필드의 제1 일부의 데이터와 테이블을 비교하여 상기 테이블에 미리 결정된 조건을 만족하는 항목이 존재하는지 검색하고, 상기 테이블에 상기 미리 결정된 조건을 만족하는 항목이 존재하는 경우 히트 신호 및 상기 미리 결정된 조건을 만족하는 항목의 위치를 나타내는 포인터를 출력하는 복수의 제2 수단 및 상기 추출된 복수의 특정 필드의 제2 일부의 데이터 및 상기 복수의 제2 수단으로부터 입력된 상기 포인터를 포함하는 키 데이터와 룰 테이블의 룰 데이터를 비교하여 상기 키 데이터와 상기 룰 데이터가 일치하는 경우 그에 해당하는 클래스를 출력하는 제3 수단을 포함한다.
Figure R1020070121301
패킷 분류

Description

패킷 분류 장치 및 방법{APPARATUS AND METHDO FOR PACKET CLASSIFICATION}
본 발명은 패킷 분류 장치 및 방법 특히, 네트워크 시스템에서 QoS(Quality of Service) 지원을 위한 패킷 분류 장치 및 방법에 대한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-009-02, 과제명: WiBro 서비스 및 운용표준 기술 개발].
QoS는 중요한 패킷들은 소실되지 않도록 하고, 불필요한 패킷들은 줄이고, 시급성을 요하는 패킷들은 빠르게 처리함으로써 사용자에게 보다 품질이 높은 서비스를 제공하는 것이다. 이러한 QoS를 제공하기 위해서는 패킷의 특성을 분석하고 이를 분류하는 작업이 선행되어야 한다.
패킷 분류 (Packet Classification)는 패킷을 분석하여 얻은 데이터 및 전형적으로 계층-2 (Layer-2)에서 계층-4 (Layer-4)에 이르는 다양한 패킷의 헤더에 포함된 특정 필드 데이터를 이용하여 행해진다.
패킷 분류에 사용되는 대표적인 특정 필드들을 예로 들면, 목적지 매체접근제어 주소 (Destination MAC Address), 근원지 매체접근제어 주소 (Source MAC Address), 가상랜 식별자 (virtual local area network ID, VLAN ID), 가상랜 사용자 우선순위 (virtual local area network User Priority, VLAN User Priority), 이더넷 타입 (Ethernet Type), 인터넷 프로토콜 우선순위 (IP Precedence), 차등 서비스 코드 포인트 (Differentiated Services Code Point, DSCP), 인터넷 프로토콜의 프로토콜 타입 (IP Protocol Type), 근원지 인터넷 프로토콜 주소 (Source IP Address), 목적지 인터넷 프로토콜 주소 (Destination IP Address), 계층-4 근원지 포트 (Layer-4 Source Port), 계층-4 목적지 포트 (Layer-4 Destination Port) 등이 있다.
패킷 분류에는 상기 필드들 중에서 하나의 필드만을 활용할 수도 있고, 일부 필드들을 조합하여 활용할 수도 있고, 상기 모든 필드들을 조합하여 활용할 수도 있다. 최근 다양한 형태의 QoS를 요구함에 따라 점차 패킷 분류에 사용되는 필드들이 많아지고 다양해지고 있다.
패킷 분류는 패킷 분석을 통해 얻은 상기 필드들에 해당되는 데이터로 이루어진 소정의 키 데이터 (Key Data)가 소정의 정해진 조건을 만족하는지 여부를 판단하는 과정을 포함한다. 패킷 분류 룰 (Packet Classification Rule)은 상기 필드들에 해당되는 데이터로 구성된 상기 키 데이터와 비교할 대상이다. 패킷 분류는 상기 키 데이터가 구비된 복수의 패킷 분류 룰 중 어느 것에 최상으로 부합하는 지를 판단하여 그에 합당한 결과를 도출하는 것이다.
패킷 분류를 위해서는 필드 검색이 필요한데 필드 검색 방법에는 프리픽스 매치 검색 (Prefix Match Search), 레인지 매치 검색 (Range Match Search), 엄밀 한 매치 검색 (Exact Match Search)이 있다.
목적지 매체접근제어 주소, 근원지 매체접근제어 주소, 근원지 인터넷 프로토콜 주소, 목적지 인터넷 프로토콜 주소 등은 일반적으로 패킷이 발생되는 지점의 주소, 패킷이 도달되는 지점의 주소 등을 가리키기 위한 것으로 넷마스크 (Netmask)와 병행하여 사용된다. 넷마스크는 네트워크를 지역적 또는 논리적으로 분리하기 위해 사용된다. QoS의 관점에서 봤을 때 엄격히 관리되는 네트워크 안에서 인증 받지 않은 또는 불필요한 패킷들이 흘러다니는 것을 막기 위해, 인증된 주소지에서 발생된 패킷들은 허용하고, 특정 주소지에서 발생된 패킷들은 차단하고, 넷마스크를 이용해 허용되지 않은 범위에 해당되는 주소지에서 발생된 패킷들은 차단한다. 넷마스크를 사용하는 경우에는 일반적으로 허용범위의 최대 값만을 지정한다. 이러한 점을 고려하여, 매체접근제어 주소, 인터넷 프로토콜 주소 등과 같은 데이터를 처리하기 위해서는 마스킹 (Masking) 기법을 사용한다. 즉, 패킷에서 추출된 주소 데이터를 비트 (Bit)로 환산했을 때 일부 비트들을 마스킹하고 나머지 비트들만을 검사하여 원하는 값 또는 형태인지를 판단하는 것이다. 또한 소정의 검색 테이블 내에 상기와 같은 과정을 통해 조건이 일치하는 항목이 존재하는지 여부를 판단하는 것이 프리픽스 매치 검색이다.
계층-4 근원지 포트, 계층-4 목적지 포트 등의 경우, 일부 통신 프로토콜에서는 특정 포트 번호를 사용하도록 되어 있고, 일부 통신 프로토콜에서는 정해진 범위 내에서 포트 번호를 임의로 사용할 수 있도록 되어 있다. 이러한 경우를 고려하여, 패킷에서 추출된 데이터가 소정의 원하는 범위 내에 속하는 것인지를 판단하 는 과정을 통해 소정의 검색 테이블 내에 이러한 조건을 만족하는 항목이 존재하는지 여부를 판단하는 것이 레인지 매치 검색이다.
가상랜 식별자, 이더넷 타입, 인터넷 프로토콜의 프로토콜 타입 등은 특정 네트워크 또는 특정 통신 프로토콜에 대해 특정 값을 사용하도록 되어 있다. 이러한 경우를 고려하여, 패킷에서 추출된 데이터가 특정 값 또는 형태인지를 판단하는 과정을 통해 소정의 검색 테이블 내에 이러한 조건을 만족하는 항목이 존재하는지 여부를 판단하는 것이 엄밀한 매치 검색 (Exact Match Search)이다.
현재 일반적으로 사용되는 패킷 분류 방법에는 TCAM (Ternary Content Addressable Memory)을 이용한 패킷 분류 방법이 있다. TCAM은 소정의 키 데이터가 입력되면 TCAM을 구성하는 모든 항목에 대해 상기 프리픽스 매치 검색을 동시에 수행할 수 있는 구조를 제공한다. 고속의 네트워크 프로세서 또는 CPU가 제공되는 환경 및 TCAM이 차지하는 공간이 그다지 크게 문제가 되지 않는 환경에서는 TCAM을 이용한 패킷 분류 방법이 매우 효과적이라 할 수 있다.
그러나, TCAM에 입력되는 키 데이터 및 TCAM에 저장되는 분류 룰의 크기가 커질수록 즉, 그것들이 각각 구성 요소로 포함하는 필드들의 종류가 많아질수록 TCAM의 메모리 사용률은 떨어지고 TCAM을 구성하는 항목의 수가 불필요하게 많아지는 경향이 있다. 즉, 거의 대부분의 필드 데이터가 고정된 상황에서 특정 필드 데이터만 변화하는 경우, 이것을 그대로 분류 룰로 표현하게 되면 상당히 많은 정도의 메모리가 불필요하게 사용된다.
그리고, TCAM은 구조적으로 레인지 매치 검색에 적합하지 않다. TCAM을 이용 해 레인지 매치 검색 효과를 얻으려면, 복수의 프리픽스 매치 룰을 희생해야 한다. 즉, TCAM을 이용해 레인지 매치 룰을 프리픽스 매치 룰로 표현하기 위해서는 복수의 항목을 필요로 한다.
위와 같은 단점을 보완하기 위해 최근에는 프리픽스 매치 검색과 레인지 매치 검색을 동시에 수행할 수 있는 TCAM 구조가 제안되었으나, 여전히 상기 키 데이터 및 분류 룰에 포함되는 필드들의 종류가 많아질수록 메모리 사용률이 떨어진다.
위와 같은 TCAM를 이용한 패킷 분류 방법의 단점을 보완하기 위해 제안된 방법으로, 상기 필드들 각각에 대해 일차 검색을 수행하고, 일차 검색 결과들을 구성 요소로 하는 키 데이터에 대해 이차 검색을 수행하는 방법이 있다.
상기 일차 검색 장치는 상기 프리픽스 매치 검색, 레인지 매치 검색, 엄밀한 매치 검색 등을 각각 또는 일부 조합된 형태로 수행할 수 있도록 구성할 수 있다. 일차 검색 장치는 특정 필드에 대해 소정의 조건을 만족하는 항목이 소정의 검색 테이블 내에 존재하는 경우, 그 검색 결과를 소정의 형태로 출력한다.
일차 검색 결과는, 검색 테이블의 모든 항목에 대한 검색 결과를 비트로 표현한 비트 벡터 (Bit Vector)가 될 수도 있고, 소정의 조건을 만족하는 특정 항목에 대한 ID (Identifier)가 될 수도 있다. 일차 검색 결과는 최종적인 패킷 분류 결과를 출력하는 이차 검색 장치를 어떻게 구성할 것인지에 따라 다르게 표현될 수 있다. 즉, 상기 이차 검색 장치에 입력되는 키 데이터를 구성하는 방법에 따라 일차 검색 결과는 다르게 표현된다.
비트 벡터를 검색 결과로 출력하는 방법은 상기 검색 테이블의 항목이 많아 질수록 이차 검색을 위한 키 데이터가 매우 거대해져 실제적 구현에 제약이 많이 따르는 단점이 있다.
그리고, 특정 항목에 대한 ID를 검색 결과로 출력하는 방법은 프리픽스 매치 검색이나 레인지 매치 검색을 수행한 결과를 출력하는 경우에는 그 결과가 최선의 검색 결과를 나타내는 것이지 최상의 검색 결과를 나타내는 것은 아니라는 문제점이 있다. 즉, 프리픽스 매치 검색을 수행하거나 레인지 매치 검색을 수행하는 경우에는 특정 필드에 대해 소정의 조건을 만족하는 항목들이 복수 개 발생할 수 있으며, 그것들 중 최선이라 판단되는 것을 출력하는 것이다. 물론 검색 테이블 내의 항목들 각각에 대한 소정의 조건들이 서로 겹치는 부분이 없도록 검색 테이블을 구성하게 되면 검색 결과는 유일한 것이 되지만, 이러한 경우에는 검색 테이블 운영에 대한 유연성이 매우 떨어진다고 할 수 있으며, 다양한 패킷 분류 룰을 구성하기가 매우 힘들다.
이차 검색 장치는 상기 일차 검색 결과들을 구성 요소로 하는 키 데이터를 처리한다. 따라서 이차 검색 장치 내에 소정의 검색 테이블은 일차 검색 결과들을 구성 요소로 하는 룰 데이터로 구성된다.
상기 특정 항목에 대한 ID를 출력하는 일차 검색 결과를 이용해 이차 검색을 수행하는 경우 생기는 문제점을 예를 들어 설명한다. 표 1은 본래의 패킷 분류 정책을 나타낸다.
Item Source IP Address Destination IP Address Result
R1 123.456.7.* 123.456.*.* C1
R2 123.456.*.* 123.456.8.* C2
여기서, R1과 R2는 패킷 분류 룰을 나타낸다. R1의 경우, 근원지 인터넷 프로토콜 주소가 123.456.7.* 이고 목적지 인터넷 프로토콜 주소가 123.456.*.*이면 패킷 분류 결과는 C1이 됨을 의미한다. 여기서 *는 인터넷 프로토콜 주소를 나타내는 방법과 관련이 있는 것으로, 0 ~ 255 중에 어떠한 값이라도 상관 없음을 의미한다.
표 2는 근원지 인터넷 프로토콜 주소를 항목으로 하는 일차 검색 테이블이다.
Source IP Address Result
123.456.7.* X1
123.456.*.* X2
표 2에서 입력된 패킷의 근원지 인터넷 프로토콜 주소가 123.456.7.*인 경우, 검색 결과로 X1과 X2 모두 가능하지만, 일반적으로는 X1을 그 결과로 하는 것이 최선이다.
표 3은 목적지 인터텟 프로토콜 주소를 항목으로 하는 일차 검색 테이블이다
Destination IP Address Result
123.456.8.* Y1
123.456.*.* Y2
표 3에서 입력된 패킷의 목적지 인터넷 프로토콜 주소가 123.456.8.*인 경우, 검색 결과로 Y1과 Y2 모두 가능하지만, 일반적으로는 Y1을 그 결과로 하는 것이 최선이다.
표 4는 표 1을 반영한 표 2와 표 3의 일차 검색 결과를 이용한 패킷 분류 룰 테이블이다.
Result for Source IP Address Search Table Result for Destination IP Address Search Table Result
X1 Y2 C1
X2 Y1 C2
예를 들어, 입력된 패킷의 근원지 인터넷 프로토콜 주소가 123.456.7.*이고, 목적지 인터넷 프로토콜 주소가 123.456.8.*인 경우 표 1을 이용하여 판단해 보면 C1 또는 C2가 그 결과로 출력되어야 한다. 그러나 표 2에 의한 일차 검색 결과는 X1이고 표 3에 의한 일차 검색 결과는 Y1이므로, 표 4에 의해 일치되는 결과가 없다. 따라서 표 5와 같이 패킷 분류 정책을 수정해야 하고, 표 6과 같이 패킷 분류 룰 테이블을 수정해야 한다.
Item Source IP Address Destination IP Address Result
R1 123.456.7.* 123.456.*.* C1
R2 123.456.*.* 123.456.8.* C2
R3 123.456.7.* 123.456.8.* C3
Result for Source IP Address Search Table Result for Destination IP Address Search Table Result
X1 Y2 C1
X2 Y1 C2
X1 Y1 C3
상기와 같이 일차 검색 테이블에 항목을 추가할 때마다 발생할 수 있는 모호성을 제거하기 위해서는 일차 검색 테이블이 제공할 수 있는 복수의 검색 결과들을 모두 고려하여 패킷 분류 룰에 적어 넣어야 하는 불편함이 발생할 수 있다. 그리고 패킷 분류 룰에 포함되는 필드들이 많은 경우에는 불필요하게 사용되는 항목으로 인해 메모리 사용에 대한 효율성이 떨어진다.
본 발명이 이루고자 하는 기술적 과제는 메모리의 효율성을 향상시킬 수 있는 패킷 분류 장치 및 방법을 제공하는 것이다.
상기 과제를 달성하기 위해, 본 발명의 하나의 특징에 따른 패킷 분류 장치는 입력된 데이터 패킷을 분석하고, 분석 결과를 이용하여 상기 데이터 패킷으로부터 복수의 특정 필드를 추출하여 출력하는 제1 수단, 상기 추출된 복수의 특정 필드의 제1 일부의 데이터와 테이블을 비교하여 상기 테이블에 미리 결정된 조건을 만족하는 항목이 존재하는지 검색하고, 상기 테이블에 상기 미리 결정된 조건을 만족하는 항목이 존재하는 경우 히트 신호 및 상기 미리 결정된 조건을 만족하는 항목의 위치를 나타내는 포인터를 출력하는 복수의 제2 수단 및 상기 추출된 복수의 특정 필드의 제2 일부의 데이터 및 상기 복수의 제2 수단으로부터 입력된 상기 포인터를 포함하는 키 데이터와 룰 테이블의 룰 데이터를 비교하여 상기 키 데이터와 상기 룰 데이터가 일치하는 경우 그에 해당하는 클래스를 출력하는 제3 수단을 포함한다.
상기 과제를 달성하기 위해, 본 발명의 다른 특징에 따른 패킷 분류 방법은 입력된 데이터 패킷을 분석하고 상기 데이터 패킷으로부터 특정 필드를 추출하여 출력하고, 상기 특정 필드 중 제1 일부의 데이터와 테이블을 비교하여 상기 테이블에 미리 결정된 조건을 만족하는 항목이 존재하는 경우 히트 신호 및 상기 미리 결 정된 조건을 만족하는 항목의 위치를 나타내는 포인터를 출력하고, 상기 특정 필드 중 제2 일부의 데이터 및 상기 포인터를 룰 테이블의 룰 데이터와 비교하여 상기 데이터 패킷을 분류한다.
이상과 같이 본 발명에 의하면, 각 단일 필드의 특성에 따라 단일 필드 검색 장치를 제공하고 일차 검색 장치에서 복수의 검색 결과를 제공함으로써 메모리의 효율성을 높일 수 있고, 패킷 분류 룰을 구성하는 요소별로 마스킹함으로써 집적도가 높은 하드웨어를 구성할 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이제 본 발명의 실시예에 따른 패킷 분류 방법 및 장치에 대해 도면을 참고로 하여 상세하게 설명한다.
먼저, 본 발명의 실시예에 따른 패킷 분류 장치에 대해 도 1 내지 도 5를 참조하여 설명한다. 도 1은 본 발명의 실시예에 따른 패킷 분류 장치의 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 패킷 분류 장치는 패킷 분석 및 특정 필드 추출 (Packet Analysis and Specific Field Extraction) 수단(110), 복수의 단일 필드 검색 (Single Field Search) 수단(120), 패킷 분류 룰 검색 (Packet Classification Rule Search) 수단(130)을 포함한다.
패킷 분석 및 특정 필드 추출 수단(110)은 패킷을 분석하고, 패킷을 분류하는데 필요한 특정 필드들을 추출한다. 패킷 분석은 데이터 패킷을 분석하여 특정 프로토콜 (Protocol)에 해당하는지 여부를 판단하고 그 결과를 알리는 작업이다. 패킷 분석 및 특정 필드 추출 수단(110)은 상기 추출된 특정 필드 데이터 외에 입력/출력 포트 (Ingress/Egress Port) 정보 데이터 및 논리적인 링크 (Logical Link) 정보 데이터를 함께 출력한다.
복수의 단일 필드 검색 수단(120)은 추출된 특정 필드에 대해 소정의 조건을 만족하는 항목이 존재하는지 검색한다. 조건을 만족하는 항목이 존재하는 경우 히트 (Hit)임을 알리는 신호와 해당 항목에 대한 포인터 (Pointer)를 출력한다.
상기 복수의 단일 필드 검색 수단(120)은 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121), 레인지 매치 검색을 수행하는 단일 필드 검색 수단(122), 엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)을 포함한다.
프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면, 그것을 비트로 환산했을 때, 일부 비트들을 마스킹하고 나머지 비트들만을 검사하여 원하는 값 또는 형태인지를 판단한다. 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 상기와 같은 과정을 통해 소정의 테이블 내에 조건을 만족하는 항목이 존재하는지 여부를 판단하고, 존재하는 경우 그 항목에 대한 포인터 및 히트 신호를 출력한다. 포인터는 테이블 내에서 해당 항목이 위치하는 곳을 의미한다.
프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 목적지 체접근제어 주소, 근원지 매체접근제어 주소, 근원지 인터넷 프로토콜 주소, 목적지 인터넷 프로토콜 주소와 같이 프리픽스 매치 검색을 필요로 하는 특정 필드들 각각의 특성에 맞는 형태로 구성된다. 즉, 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)의 테이블 항목이 나타내는 값의 한계 및 테이블 항목의 수는 상기 특정 필드들 각각에 따라 달리 정해질 수 있다.
도 2는 본 발명의 실시예에 따른 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)의 구성도이다. 도 2에 도시된 바와 같이, 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 마스크 테이블 (Mask Table)(220), 컨텐트 테이블 (Content Table)(210), 비교기 (Comparator)(230) 및 포인터 및 히트 신호 발생기 (Pointer and Hit Signal Generator)(240)를 포함한다.
마스크 테이블(220)은 상기 특정 필드 데이터의 일부 비트들을 마스킹하는데 사용되는 마스크들을 저장하고, 컨텐트 테이블(210)은 특정 필드 데이터와 비교하 게 될 값 또는 형태의 데이터를 저장한다. 마스크 테이블(220)과 컨텐트 테이블(210)의 크기 즉, 마스크 테이블과 컨텐트 테이블을 구성하는 항목의 수는 동일하다.
비교기(230)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면 상기 마스크 테이블(220)과 컨텐트 테이블(210)에서 각각 마스크와 컨텐트 데이터를 읽어 들이고, 마스크를 이용해 특정 필드 데이터 및 컨텐트 데이터의 일부 비트들을 마스킹하고, 특정 필드 데이터의 마스크되지 않은 비트들과 컨텐트 데이터의 마스크되지 않은 비트들을 서로 비교하여, 동일한 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 비교 결과를 포인터 및 히트 신호 발생기(240)로 출력한다. 이 때, 비교기(230)는 비교 결과와 함께 컨텐트 테이블(210)에서 컨텐트 데이터가 저장되어 있는 위치 정보를 포인터 및 히트 신호 발생기(240)로 출력한다.
포인터 및 히트 신호 발생기(240)는, 비교기(230)로부터 입력된 비교 결과 및 위치 정보를 토대로, 컨텐트 테이블(210)을 구성하는 항목들 중에 일치를 나타내는 항목이 존재하는 경우 포인터와 함께 히트 신호를 발생시킨다. 상기 히트 신호는 일치되는 항목이 있음을 나타내고, 포인터는 해당 항목에 대한 위치 정보를 나타낸다.
레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면, 그것이 원하는 값의 범위 내에 속하는지를 판단한다. 즉, 특정 필드 데이터가 소정의 상계 (Upper Bound) 값보다는 작거나 같고 소정의 하계 (Lower Bound) 값보다는 크거나 같은 조건을 만족하는지를 판단한다. 레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)은 상기와 같은 과정을 통해 소정의 테이블 내에 조건을 만족하는 항목이 존재하는지 여부를 판단하고, 존재하는 경우 그 항목에 대한 포인터 및 히트 신호를 출력한다. 포인터는 테이블 내에서 항목이 위치하는 곳을 표시한다.
레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)은 계층-4 근원지 포트, 계층-4 목적지 포트 등과 같이 레인지 매치 검색을 필요로 하는 특정 필드들 각각의 특성에 맞는 형태로 구성된다. 즉, 상계 테이블(310) 및 하계 테이블(320)의 항목이 나타내는 값의 한계 및 테이블 항목의 수는 상기 특정 필드들 각각에 따라 달리 정해질 수 있다.
도 3은 본 발명의 실시예에 따른 레인지 매치 검색을 수행하는 단일 필드 검색 수단의 구성도이다. 도 3에 도시된 바와 같이, 레인지 매치 검색을 수행하는 단일 필드 검색 장치(122)는 상계 테이블 (Upper Bound Table)(310), 하계 테이블 (Lower Bound Table)(320), 비교기 (Comparator)(330) 및 포인터 및 히트 신호 발생기 (Pointer and Hit Signal Generator)(340)를 포함한다.
상계 테이블(310)은 상기 특정 필드 데이터와 비교하게 될 상계 값들을 저장하고, 하계 테이블(320)은 특정 필드 데이터와 비교하게 될 하계 값들을 저장한다. 상계 테이블(310)과 하계 테이블(320)의 크기 즉, 상계 테이블(310)과 하계 테이블(320)을 구성하는 항목의 수는 동일하다.
비교기(330)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면 상기 상계 테이블(310)과 하계 테이블(320)에서 각각 상계 값과 하계 값을 읽어 들이고, 특정 필드 데이터를 상계 값 및 하계 값과 비교하여, 특정 필드 데이터가 상계 값보다는 작거나 같고 동시에 하계 값보다는 크거나 같은 조건을 만족하는 경우 일치, 그렇지 않은 경우에는 불일치를 나타내는 결과를 포인터 및 히트 신호 발생기(340)로 출력한다. 비교기(330)는 비교 결과와 함께 상계 테이블(310) 및 하계 테이블(320)에서 상계 값 및 하계 값이 저장되어 있는 위치 정보를 포인터 및 히트 신호 발생기(340)로 출력한다.
포인터 및 히트 신호 발생기(340)는 비교기(330)로부터 입력된 비교 결과 및 위치 정보를 토대로, 상계 테이블(310) 및 하계 테이블(320)을 구성하는 항목들 중에 일치를 나타내는 항목이 존재하는 경우 포인터와 함께 히트 신호를 발생시킨다. 상기 히트 신호는 일치되는 항목이 있음을 나타내고, 포인터는 해당 항목에 대한 위치 정보를 나타낸다.
엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면, 그것 자체가 정확히 원하는 값 또는 형태인지를 판단한다. 이 검색 장치는 상기와 같은 과정을 통해 소정의 테이블 내에 조건을 만족하는 항목이 존재하는지 여부를 판단하고, 존재하는 경우 그 항목에 대한 포인터 및 히트 신호를 출력한다. 포인터는 테이블 내에서 항목이 위치하는 곳을 표시한다.
엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)은 가상랜 식별자, 이더넷 타입, 인터넷 프로토콜의 프로토콜 타입 등과 같이 엄밀한 매치 검색을 필 요로 하는 특정 필드들 각각의 특성에 맞는 형태로 구성된다. 즉, 컨텐트 테이블(410) 항목이 나타내는 값의 한계 및 컨텐트 테이블(410) 항목의 수는 상기 특정 필드들 각각에 따라 달리 정해질 수 있다.
도 4는 본 발명의 실시예에 따른 엄밀한 매치 검색을 수행하는 단일 필드 검색 수단의 구성도이다. 도 4에 도시된 바와 같이, 엄밀한 매치 검색을 수행하는 단일 필드 검색 장치(123)는 컨텐트 테이블 (Content Table)(410), 비교기 (Comparator)(420) 및 포인터 및 히트 신호 발생기 (Pointer and Hit Signal Generator)(430)를 포함한다.
컨텐트 테이블(410)은 특정 필드 데이터와 정확히 비교하게 될 값 또는 형태의 데이터를 저장한다.
비교기(420)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면 컨텐트 테이블(410)에서 컨텐트 데이터를 읽어 들이고, 특정 필드 데이터와 컨텐트 데이터를 서로 비교하여, 동일한 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 결과를 포인터 및 히트 신호 발생기(430)로 출력한다. 이 때, 비교기(420)는 비교 결과와 함께 컨텐트 테이블(410)에서 컨텐트 데이터가 저장되어 있는 위치 정보를 포인터 및 히트 신호 발생기(430)로 출력한다.
포인터 및 히트 신호 발생기(430)는 비교기(420)로부터 입력된 비교 결과 및 위치 정보를 토대로, 컨텐트 테이블(410)을 구성하는 항목들 중에 일치를 나타내는 항목이 존재하는 경우 포인터와 함께 히트 신호를 발생시킨다. 상기 히트 신호는 일치되는 항목이 있음을 나타내고, 포인터는 해당 항목에 대한 위치 정보를 나타낸 다.
패킷 분류 룰 검색 수단(130)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터, 패킷 분석 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터를 입력받고, 복수의 단일 필드 검색 수단(120)으로부터 포인터들 및 히트 신호들을 입력받으면, 상기 복수의 데이터 및 포인터들로 구성되는 소정의 키(Key) 데이터가 원하는 값 또는 형태인지를 판단한다. 패킷 분류 룰 검색 수단(130)은 상기와 같은 과정을 통해 소정의 테이블 내에 조건을 만족하는 항목이 존재하는지 여부를 판단하고, 존재하는 경우 그 항목에 대한 클래스를 출력한다. 즉, 상기 소정의 키 데이터와 패킷 분류 룰 테이블에 있는 특정 룰 데이터가 일치하는 경우 그에 해당하는 클래스를 출력한다.
패킷 분류 룰 테이블이란 상기 복수의 단일 필드 검색 수단(120)으로부터 출력되는 포인터들, 패킷 분석 데이터, 특정 필드 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터를 포함하는 패킷 분류 룰 데이터를 포함하는 패킷을 클래스 (Class)로 분류하기 위한 테이블이다.
클래스는 QoS를 제공하는 장치들과 약속되어 있는 소정의 값을 나타낸다. 그리고 상기 소정의 키 데이터와 일치하는 룰 데이터가 없으면 이를 알리는 신호와 함께 기본 설정된 클래스 (Default Class)를 출력한다.
도 5는 본 발명의 실시예에 따른 패킷 분류 룰 검색 수단(130)의 구성도이다. 도 5에 도시된 바와 같이, 패킷 분류 룰 검색 수단(130)은 룰 테이블 (Rule Table)(510), 마스크 테이블 (Mask Table)(520), 비교기 (Comparator)(530) 및 클 래스 및 히트 신호 발생기 (Class and Hit Signal Generator)(540)를 포함한다.
룰 테이블(510)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 입력된 특정 필드 데이터, 패킷 분석 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터와 복수의 단일 필드 검색 수단(120)으로부터 입력된 포인터들로 구성되는 소정의 키 데이터와 비교하게 될 값 또는 형태의 룰 데이터를 저장하고, 마스크 테이블(520)은 상기 키 데이터 및 룰 데이터를 구성하는 요소들 즉, 상기 복수의 데이터 및 포인터들을 각각 마스킹하는데 사용되는 마스크들을 저장한다. 룰 테이블(510)과 마스크 테이블(520)의 크기 즉, 룰 테이블(510)과 마스크 테이블(520)을 구성하는 항목의 수는 동일하다.
비교기(530)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터, 패킷 분석 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터를 입력받고, 복수의 단일 필드 검색 수단(120)으로부터 포인터들 및 히트 신호들을 입력받으면, 상기 복수의 데이터 및 포인터들을 요소로 하는 키 데이터를 구성하고, 룰 테이블(510)과 마스크 테이블(520)에서 각각 룰 데이터와 마스크를 읽어 들이고, 마스크를 이용해 상기 키 데이터와 룰 데이터를 구성하는 요소들 중 일부를 마스킹하고, 상기 키 데이터를 구성하는 요소들 중 마스크되지 않은 것들과 룰 데이터를 구성하는 요소들 중 마스크되지 않은 것들을 각 요소별로 서로 비교하여 동일한 경우에는 일치, 그렇지 않은 경우에는 불일치를 나타내며, 최종적으로는 상기 요소별 비교 결과들이 모두 일치를 나타내는 경우에는 일치, 그렇지 않은 경우에는 불일치를 나타내는 결과를 출력한다. 이 때, 비교기(530)는 비교 결 과와 함께 룰 테이블(510)에서 룰 데이터가 저장되어 있는 위치 정보를 클래스 및 히트 신호 발생기(540)로 출력한다.
클래스 및 히트 신호 발생기(540)는 비교기(530)로부터 입력된 비교 결과 및 위치 정보를 토대로, 룰 테이블(510)을 구성하는 항목들 중에 일치를 나타내는 항목이 존재하는 경우 클래스와 함께 히트 신호를 발생시킨다. 상기 히트 신호는 일치되는 항목이 있음을 나타내고, 클래스는 상기 항목에 대해 QoS를 제공하는 장치들과 약속되어 있는 소정의 값을 나타낸다.
다음, 본 발명의 실시예에 따른 패킷 분류 방법에 대해 도 6을 참조하여 설명한다. 도 6은 본 발명의 실시예에 따른 패킷 분류 방법을 나타낸 순서도이다.
패킷 분석 및 특정 필드 추출 수단(110)은 입력된 데이터 패킷을 분석하고, 데이터 패킷에서 특정 필드를 추출한다(S610).
패킷 분석 및 특정 필드 추출 수단(110)는 계층-2 (Layer-2)에서 계층-4 (Layer-4)에 이르는 다양한 패킷의 헤더를 분석한 후, 분석된 데이터를 토대로 데이터 패킷으로부터 원하는 위치의 특정 필드들을 찾아내고 이를 추출한다. 또한, 패킷의 헤더를 분석하는 과정에서 패킷 분류에 필요한 일부 데이터를 저장한다. 그리고, 네크워크 장비인 스위치나 라우터 등의 물리적인 입력/출력 포트 (Ingress/Egress Port) 정보 데이터 및 논리적인 링크 정보 데이터를 저장한다. 추출된 특정 필드 데이터 중 일부는 복수의 단일 필드 검색 수단(120)으로 출력되고, 일부는 패킷 분류 룰 검색 수단(130)으로 출력된다. 저장된 패킷 분석 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터는 패킷 분류 룰 검색 수 단(130)으로 출력된다.
패킷 분류에 사용되는 대표적인 특정 필드로는 목적지 매체접근제어 주소 (Destination MAC Address), 근원지 매체접근제어 주소 (Source MAC Address), 가상랜 식별자 (VLAN ID), 가상랜 사용자 우선순위 (VLAN User Priority), 이더넷 타입 (Ethernet Type), 인터넷 프로토콜 우선순위 (IP Precedence), 차등 서비스 코드 포인트 (DSCP), 인터넷 프로토콜의 프로토콜 타입 (IP Protocol Type), 근원지 인터넷 프로토콜 주소 (Source IP Address), 목적지 인터넷 프로토콜 주소 (Destination IP Address), 계층-4 근원지 포트 (Layer-4 Source Port), 계층-4 목적지 포트 (Layer-4 Destination Port) 등이 있다.
상기 특정 필드들 중 일부 특정 필드들는 단일 필드 검색 수단(120)에서 처리되고, 나머지 특정 필드들은 패킷 분류 룰 검색 수단(130)에서 직접 처리된다.
단일 필드 검색 수단(120)에서 처리되는 필드와 패킷 분류 룰 검색 수단(130)에서 직접 처리되는 필드를 구분하는 기준은 다음과 같다. 단일 필드 검색 수단(120)에서 처리되는 필드들은 그 값이 나타낼 수 있는 범위 또는 종류에 비해 비교적 한정된 범위 또는 일부 종류에 대해서만 고려해도 소정의 QoS 정책에 충분히 반영되는 것들이며, 패킷 분류 룰 검색 수단(130)에서 직접 처리되는 필드들은 그 값이 나타낼 수 있는 범위 또는 종류를 모두 고려할 수 밖에 없는 것들이다.
패킷 분류 장치는 상기 특정 필드들 중에서 목적지 매체접근제어 주소, 근원지 매체접근제어 주소, 근원지 인터넷 프로토콜 주소 및 목적지 인터넷 프로토콜 주소에는 프리픽스 매치 검색 (Prefix Match Search)을 수행하고, 계층-4 근원지 포트 및 계층-4 목적지 포트에는 레인지 매치 검색 (Range Match Search)과 엄밀한 매치 검색 (Exact Match Search)을 동시에 수행하고, 가상랜 식별자, 이더넷 타입 및 인터넷 프로토콜의 프로토콜 타입에는 엄밀한 매치 검색 (Exact Match Search)을 수행한다. 단일 필드 검색 수단(120)에서 처리되는 특정 필드들은 각각 특성에 맞는 단일 필드 검색 수단(120)에서 처리된다.
상기 특정 필드들 중에서 가상랜 사용자 우선순위, 인터넷 프로토콜 우선순위 및 차등 서비스 코드 포인트는 단일 필드 검색 장치를 통해 사전 처리가 필요하지 않고 패킷 분류 룰 검색 수단(130)에서 직접 처리된다.
패킷 분석 및 특정 필드 추출 수단(110)은 상기 추출된 특정 필드 데이터 중 프리픽스 매치 검색이 필요한 특정 필드들은 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)으로 출력하고, 레인지 매치 검색이 필요한 특정 필드들은 레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)으로 출력하고, 엄밀한 매치 검색이 필요한 것들은 엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)으로 출력하고, 그 외의 특정 필드 데이터는 패킷 분류 룰 검색 수단(130)으로 직접 출력한다.
복수의 단일 필드 검색 수단(120)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 입력된 특정 필드에 대해 소정의 조건을 만족하는 항목이 있는지 단일 필드 검색을 한다(S620).
단일 필드 검색 방법에는 프리픽스 매치 검색, 레인지 매치 검색, 엄밀한 매치 검색이 있다. 이하 각각에 대해서 설명한다.
먼저, 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 특정 필드 데이터를 비트로 환산하고, 일부 비트들을 마스킹하고 나머지 비트들만을 검사하여 원하는 값 또는 형태인지를 판단하여, 소정의 테이블 내에 조건을 만족하는 항목이 존재하면 그 항목에 대한 포인터 및 히트 신호를 출력한다.
프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)의 비교기(230)는 특정 필드 데이터가 전달되면 마스크 테이블(220)과 컨텐트 테이블(210)에서 각각 마스크와 컨텐트 데이터를 읽어 들인다. 이 때, 각 테이블에서 동일한 위치의 항목에 해당되는 마스크와 컨텐트 데이터를 동시에 읽는다. 그리고, 마스크를 이용해 특정 필드 데이터 및 컨텐트 데이터의 일부 비트들을 마스킹하고, 마스크되지 않은 특정 필드 데이터의 비트들과 컨텐트 데이터의 비트들을 서로 비교하여, 동일한 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 결과를 출력한다.
표 7은 비교기(230)의 비트 단위의 기본 로직 요소의 동작을 나타낸다. 비교기(230)의 결과는 기본 로직 요소 각각의 결과들을 논리적으로 AND한 것이다. 비교기(230)의 출력이 '1'이면 일치를 나타내고 '0'이면 불일치를 나타낸다.
특정 필드 데이터의 비트 컨텐트 데이터의 비트 마스크의비트 기본 로직 요소의 결과
0 0 0 1
0 1 0 0
1 0 0 0
1 1 0 1
Don't care Don't care 1 1
프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 하나의 비교기(230)를 구비하여 마스크 테이블(220)과 컨텐트 테이블(210)을 구성하는 모든 항목의 데이터를 하나씩 차례로 읽어서 동일한 특정 필드 데이터와 비교하는 절차를 반복적으로 수행할 수도 있고, 마스크 테이블(220) 및 컨텐트 테이블(210) 항목의 수와 동일한 수로 비교기(230)를 구비하여 마스크 테이블(220)과 컨텐트 테이블(210)을 구성하는 모든 항목의 데이터를 동시에 읽어서 동일한 특정 필드 데이터와 비교하는 절차를 한번에 끝낼 수도 있다.
비교기(230)의 수는 소위 와이어-스피드 (Wire-speed)를 만족하는 수준에서 결정된다. 즉, 패킷 분류 장치에 입력되는 패킷들의 최소 간격 동안 마스크 테이블(220) 및 컨텐트 테이블(210)의 모든 항목에 대한 비교 처리가 완료될 수 있도록 비교기(230)의 수가 결정되어야 한다.
비교기(230)는 각 항목에 대한 일치 또는 불일치를 나타내는 비교 결과와 컨텐트 테이블(210)에서 그 항목이 저장되어 있는 위치 정보를 포인터 및 히트 신호 발생기(240)에 전달한다. 그리고, 비교기(230)를 테이블 항목의 수와 동일한 수로 구비한 경우에는 각 비교기(230)의 결과가 해당 항목에 대한 위치 정보도 함께 나타내게 된다.
포인터 및 히트 신호 발생기(240)는 상기 비교기(230)에서 전달되는 비교 결과 및 위치 정보를 토대로, 일치를 나타내는 항목이 존재하는 경우 포인터와 함께 히트 신호를 발생시킨다. 상기 히트 신호는 일치되는 항목이 있음을 나타내고, 포인터는 해당 항목에 대한 위치 정보를 나타낸다.
포인터 및 히트 신호 발생기(240)는 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 우선 순위가 높은 항목에 대한 포인터를 출력한다. 장치를 구성하기 위한 하드웨어 로직 수를 절감하기 위해, 컨텐트 테이블(210)에 데이터를 적어 넣을 때 우선 순위를 판단하여 우선 순위가 높은 항목을 테이블의 상위 또는 하위 주소에 위치하도록 구성할 수 있다. 또는, 하드웨어 로직 수가 문제가 되지 않는 경우, 모든 항목에 대해 우선 순위를 부여할 수 있는 별도 테이블을 구비하여, 상기와 같이 일치를 나타내는 항목들 사이에 우선 순위를 비교함으로써 우선 순위가 높은 항목에 대한 포인터를 출력하도록 구성할 수 있다.
포인터 및 히트 신호 발생기(240)는 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 그 중 우선 순위가 높은 복수 개의 항목들에 대한 포인터 및 히트 신호를 출력한다. 출력되는 포인터 수는 사용자에 의해 정해지며, 운영 중에는 그 수가 고정된다.
예를 들면, 컨텐트 테이블(210)을 구성하는 항목이 100개인 경우, 일치를 나타내는 항목 중 우선 순위가 높은 항목 10개에 해당하는 포인터들을 출력하는 형태로 장치를 구성할 수 있다. 이 경우, 일치를 나타내는 항목이 20개 존재한다면, 우선 순위가 높은 10개의 항목에 해당하는 포인터들을 출력하고, 일치를 나타내는 항목이 8개 존재한다면, 일치되는 항목 8개에 대한 포인터와 히트 신호는 출력하고 나머지 2개는 불일치를 나타내도록 히트 신호를 출력하지 않는다.
다음으로, 레인지 매치 검색 방법에 대해 설명한다.
레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면, 그것이 원하는 값의 범위 내에 속하는지를 판단하여 소정의 테이블 내에 조건을 만족하는 항목이 존재하는 경우 그 항목에 대한 포인터 및 히트 신호를 출력한다.
레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)의 비교기(330)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면 상계 테이블(310)과 하계 테이블(320)에서 각각 상계 값과 하계 값을 읽어 들인다. 이 때, 상계 테이블(310)과 하계 테이블(320)에서 동일한 위치의 항목에 해당되는 상계 값과 하계 값을 동시에 읽어 들인다. 그리고, 특정 필드 데이터를 상계 값, 하계 값과 동시에 비교하여, 특정 필드 데이터가 상계 값보다는 작거나 같고 하계 값보다는 크거나 같은 조건을 만족하는 경우 일치, 그렇지 않은 경우에는 불일치를 나타내는 결과를 출력한다.
레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)은 하나의 비교기(330)를 구비하여 상계 테이블(310)과 하계 테이블(320)을 구성하는 모든 항목의 값들을 하나씩 차례로 읽어서 동일한 특정 필드 데이터와 비교하는 절차를 반복적으로 수행할 수도 있고, 상계 테이블(310) 및 하계 테이블(320) 항목의 수와 동일한 수로 비교기(330)를 구비하여 상계 테이블(310)과 하계 테이블(320)을 구성하는 모든 항목의 값들을 동시에 읽어서 동일한 특정 필드 데이터와 비교하는 절차를 한번에 끝낼 수도 있다. 비교기(330)의 수는 와이어-스피드를 만족하는 수준에서 결정된다. 즉, 비교기(330)의 수는 패킷 분류 장치에 입력되는 패킷들의 최소 간격 동안 상계 테이블(310) 및 하계 테이블(320)의 모든 항목에 대한 비교 처리를 완료할 수 있도록 결정되어야 한다.
비교기(330)는 각 항목에 대한 일치 또는 불일치를 나타내는 비교 결과와 함께 테이블에서 그 항목이 저장되어 있는 위치 정보를 포인터 및 히트 신호 발생기(340)로 출력한다. 그리고, 비교기(330)를 테이블 항목의 수와 동일한 수로 구비한 경우에는 각 비교기(330)의 결과가 해당 항목에 대한 위치 정보도 함께 나타내게 된다.
포인터 및 히트 신호 발생기(340)는, 상기 비교기(330)에서 전달되는 비교 결과 및 위치 정보를 토대로, 일치를 나타내는 항목이 존재하는 경우 해당 항목에 대한 위치 정보를 나타내는 포인터 및 일치되는 항목이 있음을 나타내는 히트 신호를 발생시킨다.
포인터 및 히트 신호 발생기(340)는 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 우선 순위가 높은 항목에 대한 포인터를 출력한다. 장치를 구성하기 위한 하드웨어 로직 수를 절감하기 위해, 테이블에 데이터를 적어 넣을 때 우선 순위를 판단하여 우선 순위가 높은 항목을 테이블의 상위 또는 하위 주소에 위치하도록 구성할 수 있다. 또는, 상기 하드웨어 로직 수가 문제가 되지 않는 경우, 모든 항목에 대해 우선 순위를 부여할 수 있는 별도 테이블을 구비하여, 상기와 같이 일치를 나타내는 항목들 사이에 우선 순위를 비교함으로써 우선 순위가 높은 항목에 대한 포인터를 출력하도록 구성할 수 있다.
포인터 및 히트 신호 발생기(340)는 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 우선 순위가 높은 복수의 항목들에 대한 포인터 및 히트 신호를 출력한다. 상기 출력되는 포인터 수는 사용자에 의해 정해지며, 운영 중에는 그 수가 고정된다.
예를 들면, 상계 테이블(310) 또는 하계 테이블(320)을 구성하는 항목이 100개인 경우, 일치를 나타내는 항목 중 우선 순위가 높은 항목 10개에 해당하는 포인터들을 출력하는 형태로 장치를 구성할 수 있다. 이 경우, 일치를 나타내는 항목이 20개 존재한다면, 우선 순위가 높은 10개의 항목에 해당하는 포인터들을 출력하고, 일치를 나타내는 항목이 8개 존재한다면, 일치되는 항목 8개에 대한 포인터와 히트 신호는 출력하고 나머지 2개는 불일치를 나타내도록 히트 신호를 출력하지 않는다.
다음으로, 엄밀한 매치 검색 방법에 대해 설명한다.
엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면, 특정 필드 데이터가 정확히 원하는 값 또는 형태인지를 판단하여 소정의 테이블 내에 조건을 만족하는 항목이 존재하는 경우 그 항목에 대한 포인터 및 히트 신호를 출력한다.
엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)의 비교기(420)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터가 전달되면 상기 컨텐트 테이블(410)에서 컨텐트 데이터를 읽어 들인다. 그리고, 특정 필드 데이터를 컨텐트 데이터와 비교하여, 동일한 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 결과를 출력한다.
엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)는 하나의 비교기를 구비하여 컨텐트 테이블(410)을 구성하는 모든 항목의 데이터를 하나씩 차례로 읽어서 특정 필드 데이터와 비교하는 절차를 반복적으로 수행할 수도 있고, 컨텐트 테이블(410) 항목의 수와 동일한 수로 비교기(420)를 구비하여 컨텐트 테이블(410)을 구성하는 모든 항목의 데이터를 동시에 읽어서 특정 필드 데이터와 비교하는 절차를 한번에 끝낼 수도 있다. 비교기(420)의 수는 와이어-스피드를 만족하는 수준에서 결정된다. 즉, 비교기(420)의 수는 패킷 분류 장치에 입력되는 패킷들의 최소 간격 동안 컨텐트 테이블(410)의 모든 항목에 대한 비교 처리를 완료할 수 있도록 결정되어야 한다.
비교기(420)는 각 항목에 대한 일치 또는 불일치를 나타내는 비교 결과와 함께 테이블에서 그 항목이 저장되어 있는 위치 정보를 포인터 및 히트 신호 발생기(430)로 출력한다. 비교기(420)를 컨텐트 테이블(410) 항목의 수와 동일한 수로 구비한 경우에는 각 비교기(420)의 결과가 해당 항목에 대한 위치 정보도 함께 나타내게 된다.
포인터 및 히트 신호 발생기(430)는 비교기(420)에서 전달되는 비교 결과 및 위치 정보를 토대로, 일치를 나타내는 항목이 존재하는 경우 포인터와 함께 히트 신호를 발생시킨다. 상기 히트 신호는 일치되는 항목이 있음을 나타내고, 포인터는 해당 항목에 대한 위치 정보를 나타낸다. 엄밀한 매치 검색 방법에서는 일치를 나타내는 항목이 오직 하나만 존재할 수 있다. 따라서, 엄밀한 매치 검색을 수행하는 단일 필드 검색 수단(123)은 하나의 포인터 및 히트 신호를 발생한다.
패킷 분류 룰 검색 수단(130)은 특정 필드 데이터, 포인터 등을 룰 테이블의 룰 데이터와 비교하여 패킷을 분류한다(S630).
패킷 분류 룰 검색 수단(130)은 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터, 패킷 분석 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터를 입력받고, 복수의 단일 필드 검색 수단(120)으로부터 포인터들 및 히트 신호들을 입력받으면, 상기 데이터들 및 포인터들로 구성되는 소정의 키 (Key) 데이터가 원하는 값 또는 형태인지를 판단하여 소정의 테이블 내에 조건을 만족하는 항목이 존재하는 경우 그 항목에 대한 클래스를 출력한다. 클래스는 QoS를 제공하는 장치들과 약속되어 있는 소정의 값을 나타낸다.
상기 키 데이터를 구성하는 데이터 또는 포인터를 요소라고 할 때, 패킷 분류 룰 검색 수단(130)의 룰 데이블(510)의 룰 데이터는 키 데이터와 동일한 요소들로 구성된다. 그리고, 패킷 분류 룰 검색 수단(130)의 마스크 테이블(520)에 저장된 마스크는 키 데이터 및 룰 데이터를 구성하는 각 요소를 마스킹하는데 사용된다. 예를 들면, 상기 키 데이터 및 룰 데이터 각각이 n 개의 요소들로 구성되는 경우, 마스크는 n 비트로 구성되며, 마스크의 각 비트는 키 테이터 또는 룰 데이터의 각 요소를 마스킹하는데 사용된다.
상기 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121)은 입력된 하나의 필드 데이터에 대해 상기 프리픽스 매치 검색을 수행한 결과 일치를 나타내는 항목들이 복수 개 존재하는 경우 우선 순위가 높은 항목들에 해당되는 포인터들을 출력한다. 상기 레인지 매치 검색을 수행하는 단일 필드 검색 수단(122) 또한 입력된 단일 필드 데이터에 대해 상기 레인지 매치 검색을 수행한 결과 일치를 나타내는 항목들이 복수 개 존재하는 경우 우선 순위가 높은 항목들에 해당되는 포인터들을 출력한다. 이와 같이 상기 키 데이터에는 상기 단일 필드 데이터에 대해 상기와 같은 단일 필드 검색 결과로 복수의 포인터들이 포함된다. 그렇지만, 상기 단일 필드 데이터에 대한 상기 복수의 포인터들은 하나의 요소로 취급한다.
패킷 분류 룰 검색 수단(130)의 비교기(530)는 상기 패킷 분석 및 특정 필드 추출 수단(110)으로부터 특정 필드 데이터, 패킷 분석 데이터, 입력/출력 포트 정보 데이터 및 논리적인 링크 정보 데이터를 입력받고, 복수의 단일 필드 검색 수단(120)으로부터 포인터들 및 히트 신호들을 입력받으면, 상기 복수의 데이터 및 포인터들을 요소로 하는 키 데이터를 구성하고, 룰 테이블(510)과 마스크 테이블(520)에서 각각 룰 데이터와 마스크를 읽어 들인다. 이 때, 비교기(530)는 룰 테이블(510)과 마스크 테이블(520)에서 동일한 위치의 항목에 해당되는 마스크와 룰 데이터를 동시에 읽어 들인다. 그리고, 마스크를 이용해 상기 키 데이터의 요소들 중 일부와 룰 데이터의 요소들 중 일부를 마스킹하고, 상기 키 데이터의 요소들 중 마스크되지 않은 것들과 룰 데이터의 요소들 중 마스크되지 않은 것들을 각 요소별로 서로 비교하여 동일한 경우에는 일치, 그렇지 않은 경우에는 불일치를 나타내며, 최종적으로는 상기 요소별 비교 결과들이 모두 일치를 나타내는 경우에는 일치, 그렇지 않은 경우에는 불일치를 나타내는 결과를 출력한다. 마스크된 키 데이터의 요소들과 룰 데이터의 요소들에 대해서는 각각 서로 비교하는 절차는 수행하지만 그 결과는 비교기(530)의 출력 결과에 반영되지는 않는다.
비교기(530)에 입력되는 히트 신호들은 복수의 단일 필드 검색 수단(120)으로부터 전달된 포인터들 각각이 일치를 나타내는 유효한 값인지 아닌지를 나타낸다. 따라서, 비교 과정에서 키 데이터 상의 한 포인터와 그에 상응하는 룰 데이터 상의 한 포인터가 서로 동일하더라도 그 포인터에 대한 히트 신호가 전달되지 않은 경우에는 두 포인터의 비교 결과는 불일치가 된다. 물론 상기한 바와 같이, 상기 두 포인터가 그에 상응하는 마스크에 의해 마스크된 경우 그 두 포인터의 비교 결과는 항상 일치를 나타낸다.
비교기(530)는 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단(121) 으로부터 상기 프리픽스 매치 검색을 수행한 결과로서 일치를 나타내는 항목들 중 우선 순위가 높은 항목들에 해당되는 복수의 포인터들이 입력되면 룰 데이터 상에서 그에 상응하는 포인터와 상기 복수의 포인터들을 각각 동시에 비교하여 그 중에 하나라도 동일한 경우에는 이 요소에 대한 비교 결과로서 일치를 나타낸다. 또한 레인지 매치 검색을 수행하는 단일 필드 검색 수단(122)으로부터 상기 레인지 매치 검색을 수행한 결과로서 일치를 나타내는 항목들 중 우선 순위가 높은 항목들에 해당되는 복수의 포인터들이 입력되면 룰 데이터 상에서 그에 상응하는 포인터와 상기 복수의 포인터들을 각각 동시에 비교하여 그 중에 하나라도 동일한 경우에는 이 요소에 대한 비교 결과로서 일치를 나타낸다.
패킷 분류 룰 검색 수단(130)은 하나의 비교기(530)를 구비하여 룰 테이블(510)과 마스크 테이블(520)을 구성하는 모든 항목의 룰 데이터 및 마스크를 하나씩 차례로 읽어서 키 데이터와 비교하는 절차를 반복적으로 수행할 수도 있고, 룰 테이블(510) 및 마스크 테이블(520) 항목의 수와 동일한 수로 비교기(530)를 구비하여 룰 테이블(510)과 마스크 테이블(520)을 구성하는 모든 항목의 룰 데이터 및 마스크를 동시에 읽어서 동일한 키 데이터와 비교하는 절차를 한번에 끝낼 수도 있다.
비교기(530)의 수는 와이어-스피드를 만족하는 수준에서 결정된다. 즉, 비교기(530)의 수는 패킷 분류 장치에 입력되는 패킷들의 최소 간격 동안 룰 테이블(510)의 모든 항목에 대한 비교 처리를 완료할 수 있도록 결정되어야 한다.
비교기(530)는 각 항목에 대한 일치 또는 불일치를 나타내는 비교 결과와 함께 룰 테이블(510)에서 그 항목이 저장되어 있는 위치 정보를 클래스 및 히트 신호 발생기(540)에 전달한다. 그리고, 비교기(530)를 테이블 항목의 수와 동일한 수로 구비한 경우에는 각 비교기(530)의 결과가 해당 항목에 대한 위치 정보도 함께 나타낸다고 할 수 있다.
클래스 및 히트 신호 발생기(540)는 비교기(530)에서 전달되는 비교 결과 및 위치 정보를 토대로, 일치를 나타내는 항목이 존재하는 경우 클래스와 함께 히트 신호를 발생시킨다. 히트 신호는 일치되는 항목이 있음을 나타내고, 클래스는 QoS를 제공하는 장치들과 약속되어 있는 소정의 값을 나타낸다.
클래스 및 히트 신호 발생기(540)는 소정의 클래스 테이블을 구비한다. 클래스 테이블은 클래스를 저장하며, 클래스는 상기 룰 테이블에 적힌 소정의 분류 룰에 따라 사용자에 의해 결정된다. 또한, 상기 비교기(530)에서 출력되는 위치 정보는 상기 분류 룰을 반영한다. 클래스 및 히트 신호 발생기(540)는 상기 비교기(530)로부터 위치 정보가 입력되면, 클래스 테이블에서 그 정보에 해당되는 위치에 저장되어 있는 클래스를 읽어서 출력한다.
도 5에서 클래스 및 히트 신호 발생기(540)는 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 우선 순위가 높은 항목에 대한 클래스를 출력한다. 장치를 구성하기 위한 하드웨어 로직 수를 절감하기 위해, 클래스 테이블에 데이터를 적어 넣을 때 우선 순위를 판단하여 우선 순위가 높은 항목을 테이블의 상위 또는 하위 주소에 위치하도록 구성할 수 있다. 반면, 상기 하드웨어 로직 수가 문제가 되지 않는 경우, 모든 항목에 대해 우선 순위를 부여할 수 있는 별도 테이블을 구비하여, 상기와 같이 일치를 나타내는 항목들 사이에 우선 순위를 비교함으로써 우선 순위가 높은 항목에 대한 포인터를 출력하도록 구성할 수 있다.
본 발명의 실시예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
도 1은 본 발명의 실시예에 따른 패킷 분류 장치의 구성도이다.
도 2는 본 발명의 실시예에 따른 프리픽스 매치 검색을 수행하는 단일 필드 검색 수단의 구성도이다.
도 3은 본 발명의 실시예에 따른 레인지 매치 검색을 수행하는 단일 필드 검색 수단의 구성도이다.
도 4는 본 발명의 실시예에 따른 엄밀한 매치 검색을 수행하는 단일 필드 검색 수단의 구성도이다.
도 5는 본 발명의 실시예에 따른 패킷 분류 룰 검색 수단의 구성도이다.
도 6은 본 발명의 실시예에 따른 패킷 분류 방법을 나타낸 순서도이다.

Claims (16)

  1. 입력된 데이터 패킷을 분석하고, 분석 결과를 이용하여 상기 데이터 패킷으로부터 복수의 특정 필드를 추출하여 출력하는 제1 수단;
    상기 추출된 복수의 특정 필드의 제1 일부의 데이터와 테이블을 비교하여 상기 테이블에 미리 결정된 조건을 만족하는 항목이 존재하는지 검색하고, 상기 테이블에 상기 미리 결정된 조건을 만족하는 항목이 존재하는 경우 히트 신호 및 상기 미리 결정된 조건을 만족하는 항목의 위치를 나타내는 포인터를 출력하는 복수의 제2 수단; 및
    상기 추출된 복수의 특정 필드의 제2 일부의 데이터 및 상기 복수의 제2 수단으로부터 입력된 상기 포인터를 포함하는 키 데이터와 룰 테이블의 룰 데이터를 비교하여 상기 룰 테이블에 미리 결정된 조건을 만족하는 항목이 존재하는지 검색하고, 상기 룰 테이블에 상기 미리 결정된 조건을 만족하는 항목이 존재하는 경우 그에 해당하는 클래스를 출력하는 제3 수단을 포함하는 패킷 분류 장치.
  2. 제1항에 있어서,
    상기 복수의 제2 수단은
    프리픽스 매치 검색을 수행하는 제1 단일 필드 검색 수단;
    레인지 매치 검색을 수행하는 제2 단일 필드 검색 수단; 및
    엄밀한 매치 검색을 수행하는 제3 단일 필드 검색 수단을 포함하는 패킷 분 류 장치.
  3. 제2항에 있어서,
    상기 제1 단일 필드 검색 수단은
    상기 복수의 특정 필드의 제3 일부의 데이터의 비트들을 마스킹하는데 사용되는 마스크들을 저장하는 마스크 테이블;
    상기 복수의 특정 필드의 제3 일부의 데이터와 비교하게 될 값 또는 형태의 데이터를 저장하는 컨텐트 테이블;
    상기 마스크 테이블과 상기 컨텐트 테이블에서 각각 마스크와 컨텐트 데이터를 읽어 들여 상기 복수의 특정 필드의 제3 일부의 데이터의 일부 비트들 및 상기 컨텐트 데이터의 일부 비트들을 상기 마스크로 마스킹하고, 상기 복수의 특정 필드의 제3 일부의 데이터의 마스크되지 않은 부분과 상기 컨텐트 데이터의 마스크되지 않은 부분을 비교하여 동일한 경우에는 일치, 그렇지 않으면 불일치를 나타내는 비교 결과 및 상기 컨텐트 테이블에서 상기 컨텐트 데이터가 저장되어 있는 위치 정보를 출력하는 비교기; 및
    상기 비교 결과 및 상기 위치 정보를 이용해서 상기 컨텐트 테이블을 구성하는 항목들 중에 상기 일치를 나타내는 항목이 존재하는 경우, 상기 히트 신호 및 상기 포인터를 발생시키는 포인터 및 히트 신호 발생기를 포함하는 패킷 분류 장치.
  4. 제3항에 있어서,
    상기 포인터 및 히트 신호 발생기는 상기 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 그 중 상기 우선 순위가 높은 순서대로 사용자가 정한 개수만큼의 복수의 항목들을 선택하고,
    상기 복수의 항목들에 대한 포인터 및 히트 신호를 출력하는 패킷 분류 장치.
  5. 제2항에 있어서,
    상기 제2 단일 필드 검색 수단은
    상기 복수의 특정 필드의 제4 일부의 데이터와 비교하게 될 상계 값들을 저장하는 상계 테이블;
    상기 복수의 특정 필드의 제4 일부의 데이터와 비교하게 될 하계 값들을 저장하는 하계 테이블;
    상기 상계 테이블과 상기 하계 테이블에서 각각 상계 값과 하계 값을 읽어 들여 상기 복수의 특정 필드의 제4 일부의 데이터를 상기 상계 값 및 상기 하계 값과 비교하여, 상기 복수의 특정 필드의 제4 일부의 데이터가 상기 상계 값보다는 작거나 같고 상기 하계 값보다는 크거나 같으면 일치, 그렇지 않으면 불일치를 나타내는 비교 결과 및 상기 상계 테이블 및 하계 테이블에서 상기 상계 값과 상기 하계 값이 저장되어 있는 위치 정보를 출력하는 비교기; 및
    상기 비교 결과 및 상기 위치 정보를 이용해서 상기 상계 테이블 및 하계 테이블을 구성하는 항목들 중에 상기 일치를 나타내는 항목이 존재하는 경우 상기 히트 신호 및 상기 포인터를 발생시키는 포인터 및 히트 신호 발생기를 포함하는 패 킷 분류 장치.
  6. 제5항에 있어서,
    상기 포인터 및 히트 신호 발생기는 상기 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 그 중 상기 우선 순위가 높은 순서대로 사용자가 정한 개수만큼의 복수의 항목들을 선택하고,
    상기 복수의 항목들에 대한 포인터 및 히트 신호를 출력하는 패킷 분류 장치.
  7. 제2항에 있어서,
    상기 제3 단일 필드 검색 수단은
    상기 복수의 특정 필드의 제5 일부의 데이터와 정확히 비교하게 될 값 또는 형태의 데이터를 저장하는 컨텐트 테이블;
    상기 컨텐트 테이블에서 컨텐트 데이터를 읽어 들여, 상기 복수의 특정 필드의 제5 일부의 데이터와 상기 컨텐트 데이터를 서로 비교하여, 동일한 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 비교 결과 및 상기 컨텐트 테이블에서 상기 컨텐트 데이터가 저장되어 있는 위치 정보를 출력하는 비교기; 및
    상기 비교 결과 및 상기 위치 정보를 이용해서 상기 컨텐트 테이블을 구성하는 항목들 중에 상기 일치를 나타내는 항목이 존재하는 경우 상기 히트 신호 및 상기 포인터를 발생시키는 포인터 및 히트 신호 발생기를 포함하는 패킷 분류 장치.
  8. 제2항에 있어서,
    상기 제3 수단은
    상기 룰 데이터를 저장하는 룰 테이블;
    상기 키 데이터를 마스킹하는데 사용되는 마스크들을 저장하는 마스크 테이블;
    상기 룰 테이블과 상기 마스크 테이블에서 각각 상기 룰 데이터와 상기 마스크를 읽어 들이고, 상기 키 데이터를 구성하는 요소들 중 일부와 룰 데이터를 구성하는 요소들 중 일부를 마스킹하고, 상기 키 데이터를 구성하는 요소들 중 마스크되지 않은 요소들과 상기 룰 데이터를 구성하는 요소들 중 마스크되지 않은 요소들을 각 요소별로 서로 비교하여 동일한 경우에는 일치, 그렇지 않은 경우에는 불일치를 요소별 비교 결과로 나타내고, 상기 요소별 비교 결과들이 모두 일치를 나타내는 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 비교 결과 및 상기 룰 테이블에서 상기 룰 데이터가 저장되어 있는 위치 정보를 출력하는 비교기; 및
    상기 비교 결과 및 상기 위치 정보를 이용해서 상기 룰 테이블을 구성하는 항목들 중에 상기 일치를 나타내는 항목이 존재하는 경우 상기 항목에 대해 QoS를 제공하는 장치들과 약속되어 있는 소정의 값을 나타내는 클래스 및 일치되는 항목이 있음을 나타내는 히트 신호를 발생시키는 클래스 및 히트 신호 발생기를 포함하는 패킷 분류 장치.
  9. 제8항에 있어서,
    상기 클래스 및 히트 신호 발생기는
    상기 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 그 중 상기 우선 순위가 높은 순서대로 사용자가 정한 개수만큼의 복수의 항목들을 선택하고,
    상기 복수의 항목들에 대한 클래스를 출력하는 패킷 분류 장치.
  10. 제8항에 있어서
    상기 요소별 비교 결과는 상기 제1 단일 필드 검색 수단으로부터 복수의 포인터들이 입력되면 상기 룰 데이터의 대응하는 포인터와 상기 복수의 포인터들을 각각 동시에 비교하여 그 중에 하나라도 동일한 경우에 일치를 나타내고, 상기 제2 단일 필드 검색 수단으로부터 복수의 포인터들이 입력되면 상기 룰 데이터 상에서 그에 상응하는 포인터와 상기 복수의 포인터들을 각각 동시에 비교하여 그 중에 하나라도 동일한 경우에 일치를 나타내는 패킷 분류 장치.
  11. 제1항에 있어서,
    상기 제1 수단은 입력/출력 포트 (Ingress/Egress Port) 정보 데이터 및 논리적인 링크 (Logical Link) 정보 데이터를 더 출력하고,
    상기 키 데이터는 상기 입력/출력 포트 (Ingress/Egress Port) 정보 데이터 및 상기 논리적인 링크 (Logical Link) 정보 데이터를 더 포함하는 패킷 분류 장치.
  12. 입력된 데이터 패킷을 분석하고 상기 데이터 패킷으로부터 특정 필드를 추출 하여 출력하는 단계;
    상기 특정 필드 중 제1 일부의 데이터와 테이블을 비교하여 상기 테이블에 미리 결정된 조건을 만족하는 항목이 존재하는 경우 히트 신호 및 상기 미리 결정된 조건을 만족하는 항목의 위치를 나타내는 포인터를 출력하는 단계; 및
    상기 특정 필드 중 제2 일부의 데이터 및 상기 포인터를 룰 테이블의 룰 데이터와 비교하여 상기 데이터 패킷을 분류하는 단계를 포함하는 패킷 분류 방법.
  13. 제12항에 있어서,
    상기 패킷을 분류하는 단계는
    키 데이터를 입력받는 단계;
    상기 룰 테이블에서 상기 룰 데이터를 읽어 들이고, 마스크 테이블에서 마스크를 읽어 들이는 단계;
    상기 마스크를 이용해 상기 키 데이터의 요소들 중 일부와 상기 룰 데이터의 요소들 중 일부를 마스킹하는 단계;
    상기 데이터의 요소들 중 마스크되지 않은 요소들과 상기 룰 데이터의 요소들 중 마스크되지 않은 요소들을 각 요소별로 서로 비교하여 동일한 경우에는 일치, 그렇지 않은 경우에는 불일치를 나타내며, 최종적으로는, 상기 요소별 비교 결과들이 모두 일치를 나타내는 경우에는 일치, 그렇지 않는 경우에는 불일치를 나타내는 비교 결과 및 상기 룰 테이블에서 상기 룰 데이터가 저장되어 있는 위치 정보를 출력하는 단계; 및
    상기 비교 결과 및 상기 위치 정보를 이용하여 일치를 나타내는 항목이 존재하는 경우 클래스 및 히트 신호를 발생시키는 단계를 포함하는 패킷 분류 방법.
  14. 제13항에 있어서,
    상기 클래스 및 히트 신호를 발생시키는 단계는
    상기 비교 결과 및 상기 위치 정보를 입력받는 단계; 및
    클래스 테이블에서 상기 위치 정보에 해당되는 위치에 저장되어 있는 클래스를 읽어서 출력하는 단계를 포함하는 패킷 분류 방법.
  15. 제13항에 있어서,
    상기 클래스 및 히트 신호를 발생시키는 단계는
    상기 일치를 나타내는 항목이 복수 개 존재하는 경우, 그 항목들의 우선 순위를 따져서 그 중 상기 우선 순위가 높은 순서대로 사용자가 정한 개수만큼의 복수의 항목들을 선택하고,
    상기 복수의 항목들에 대한 클래스를 출력하는 패킷 분류 방법.
  16. 제12항에 있어서,
    상기 특정 필드 중 제2 일부는 가상랜 사용자 우선순위, 인터넷 프로토콜 우선순위 및 차등 서비스 코드 포인트를 포함하는 패킷 분류 방법.
KR1020070121301A 2007-11-27 2007-11-27 패킷 분류 장치 및 방법 KR100920518B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070121301A KR100920518B1 (ko) 2007-11-27 2007-11-27 패킷 분류 장치 및 방법
US12/206,078 US8165125B2 (en) 2007-11-27 2008-09-08 Apparatus and method of classifying packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070121301A KR100920518B1 (ko) 2007-11-27 2007-11-27 패킷 분류 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090054570A KR20090054570A (ko) 2009-06-01
KR100920518B1 true KR100920518B1 (ko) 2009-10-09

Family

ID=40669636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070121301A KR100920518B1 (ko) 2007-11-27 2007-11-27 패킷 분류 장치 및 방법

Country Status (2)

Country Link
US (1) US8165125B2 (ko)
KR (1) KR100920518B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101034389B1 (ko) * 2009-04-22 2011-05-16 (주) 시스메이트 패킷 내 시그니처 위치에 따른 시그니처 검색 방법
US8677030B2 (en) * 2009-12-09 2014-03-18 Oracle America, Inc. Apparatus and method for managing packet classification tables
CN102480424A (zh) * 2010-11-30 2012-05-30 瑞昱半导体股份有限公司 处理网络封包的装置及方法
US8856203B1 (en) * 2011-02-08 2014-10-07 Pmc-Sierra Us, Inc. System and method for algorithmic TCAM packet classification
CN102647336B (zh) * 2011-02-22 2016-09-07 瑞昱半导体股份有限公司 用于封包内容转换的方法以及网络装置
WO2013020002A1 (en) * 2011-08-02 2013-02-07 Cavium, Inc. Incremental update of rules for packet classification
ES2640871T3 (es) * 2011-09-21 2017-11-07 Nec Corporation Aparato de comunicación, sistema de comunicación, método de control de comunicación y programa
WO2013122042A1 (ja) * 2012-02-13 2013-08-22 日本電信電話株式会社 フレーム検索処理装置および方法
US8811409B2 (en) * 2012-06-04 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Routing VLAN tagged packets to far end addresses of virtual forwarding instances using separate administrations
US9047760B2 (en) * 2012-07-26 2015-06-02 Mueller International, Llc High traffic data transmission
US8943268B2 (en) * 2012-08-17 2015-01-27 Broadcom Corporation Ternary content addressable memory (TCAM) storage system
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US10110712B2 (en) 2014-06-04 2018-10-23 Nicira, Inc. Efficient packet classification for dynamic containers
US9774707B2 (en) 2014-06-04 2017-09-26 Nicira, Inc. Efficient packet classification for dynamic containers
US10051346B2 (en) 2015-06-17 2018-08-14 Mueller International, Llc Data communication using a private preamble
CN111951850B (zh) * 2019-05-16 2022-10-04 联华电子股份有限公司 双端口三态内容可寻址存储器及其布局图案及存储器装置
EP4113951A1 (en) * 2021-06-29 2023-01-04 Renesas Electronics Corporation Frame data processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050066807A (ko) * 2003-12-27 2005-06-30 한국전자통신연구원 라우팅 시스템에서의 패킷 분류 장치 및 그를 이용한 룰구축 방법
US7061874B2 (en) 2001-01-26 2006-06-13 Broadcom Corporation Method, system and computer program product for classifying packet flows with a bit mask
US7274700B2 (en) 2002-05-18 2007-09-25 Electronics And Telecommunications Research Institute Router providing differentiated quality of service (QoS) and fast internet protocol packet classifying method for the router

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876653B2 (en) * 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
US7133400B1 (en) * 1998-08-07 2006-11-07 Intel Corporation System and method for filtering data
US6529508B1 (en) * 1999-02-01 2003-03-04 Redback Networks Inc. Methods and apparatus for packet classification with multiple answer sets
US6567408B1 (en) * 1999-02-01 2003-05-20 Redback Networks Inc. Methods and apparatus for packet classification with multi-level data structure
US6614789B1 (en) * 1999-12-29 2003-09-02 Nasser Yazdani Method of and apparatus for matching strings of different lengths
US6718326B2 (en) * 2000-08-17 2004-04-06 Nippon Telegraph And Telephone Corporation Packet classification search device and method
US7193997B2 (en) * 2001-03-19 2007-03-20 International Business Machines Corporation Packet classification
US7227842B1 (en) * 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
US7554980B1 (en) * 2002-10-18 2009-06-30 Alcatel Lucent Packet classification using relevance scoring
GB0229647D0 (en) * 2002-12-19 2003-01-22 Zarlink Semiconductor Ltd Packet classifer
KR100512949B1 (ko) * 2003-02-28 2005-09-07 삼성전자주식회사 필드레벨 트리를 이용한 패킷분류장치 및 방법
US7394809B2 (en) * 2003-03-31 2008-07-01 Intel Corporation Method and apparatus for packet classification using a forest of hash tables data structure
US7545809B2 (en) * 2003-05-28 2009-06-09 International Business Machines Corporation Packet classification
US7535906B2 (en) * 2003-05-28 2009-05-19 International Business Machines Corporation Packet classification
US7251651B2 (en) 2003-05-28 2007-07-31 International Business Machines Corporation Packet classification
US7382777B2 (en) * 2003-06-17 2008-06-03 International Business Machines Corporation Method for implementing actions based on packet classification and lookup results
US7840696B2 (en) * 2003-07-25 2010-11-23 Broadcom Corporation Apparatus and method for classifier identification
US7408932B2 (en) * 2003-10-20 2008-08-05 Intel Corporation Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing
US7292591B2 (en) * 2004-03-30 2007-11-06 Extreme Networks, Inc. Packet processing system architecture and method
US7525958B2 (en) * 2004-04-08 2009-04-28 Intel Corporation Apparatus and method for two-stage packet classification using most specific filter matching and transport level sharing
US20060013210A1 (en) * 2004-06-18 2006-01-19 Bordogna Mark A Method and apparatus for per-service fault protection and restoration in a packet network
US20060221956A1 (en) * 2005-03-31 2006-10-05 Narayan Harsha L Methods for performing packet classification via prefix pair bit vectors
US7567567B2 (en) * 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7673041B2 (en) * 2005-11-01 2010-03-02 Intel Corporation Method to perform exact string match in the data plane of a network processor
US20070168377A1 (en) * 2005-12-29 2007-07-19 Arabella Software Ltd. Method and apparatus for classifying Internet Protocol data packets
US7782859B2 (en) * 2007-05-07 2010-08-24 Cisco Technology, Inc. Enhanced packet classification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061874B2 (en) 2001-01-26 2006-06-13 Broadcom Corporation Method, system and computer program product for classifying packet flows with a bit mask
US7274700B2 (en) 2002-05-18 2007-09-25 Electronics And Telecommunications Research Institute Router providing differentiated quality of service (QoS) and fast internet protocol packet classifying method for the router
KR20050066807A (ko) * 2003-12-27 2005-06-30 한국전자통신연구원 라우팅 시스템에서의 패킷 분류 장치 및 그를 이용한 룰구축 방법

Also Published As

Publication number Publication date
US20090135826A1 (en) 2009-05-28
US8165125B2 (en) 2012-04-24
KR20090054570A (ko) 2009-06-01

Similar Documents

Publication Publication Date Title
KR100920518B1 (ko) 패킷 분류 장치 및 방법
US7525958B2 (en) Apparatus and method for two-stage packet classification using most specific filter matching and transport level sharing
US7408932B2 (en) Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing
US8233493B2 (en) Packet router having improved packet classification
US6289013B1 (en) Packet filter method and apparatus employing reduced memory
US8619766B2 (en) Method and apparatus for classifying packets
USRE42135E1 (en) Multi-protocol data classification using on-chip cam
CN100433715C (zh) 给数据流提供不同的服务质量策略的方法
US11687594B2 (en) Algorithmic TCAM based ternary lookup
CN104579940B (zh) 查找访问控制列表的方法及装置
US20060262583A1 (en) Range representation in a content addressable memory (cam) using an improved encoding scheme
EP2847972A1 (en) A method and apparatus for packet classification
EP2342871A1 (en) Method and system for classifying date packets
JP2005130489A (ja) ルータ用の改良型アクセス制御リスティング機構
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
CN1897564B (zh) 基于递归流分类算法的策略路由匹配方法
US7554980B1 (en) Packet classification using relevance scoring
JP4340653B2 (ja) 通信処理装置及び通信処理方法
Lim et al. Two-dimensional packet classification algorithm using a quad-tree
CN111950000A (zh) 一种接入访问控制方法及设备
Wang et al. High-speed packet classification for differentiated services in next-generation networks
CN110933106B (zh) Pvlan隔离方法、装置、电子设备及存储介质
KR100662254B1 (ko) 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법
KR100467746B1 (ko) 주소 분할에 의한 다중필드 분류시스템
Ruan et al. An energy-efficient TCAM-based packet classification with decision-tree mapping

Legal Events

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

Payment date: 20120919

Year of fee payment: 19