KR20040054110A - 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법 - Google Patents

튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법 Download PDF

Info

Publication number
KR20040054110A
KR20040054110A KR1020020080827A KR20020080827A KR20040054110A KR 20040054110 A KR20040054110 A KR 20040054110A KR 1020020080827 A KR1020020080827 A KR 1020020080827A KR 20020080827 A KR20020080827 A KR 20020080827A KR 20040054110 A KR20040054110 A KR 20040054110A
Authority
KR
South Korea
Prior art keywords
packet
search
tuple
prefix
classification
Prior art date
Application number
KR1020020080827A
Other languages
English (en)
Other versions
KR100462480B1 (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 KR10-2002-0080827A priority Critical patent/KR100462480B1/ko
Publication of KR20040054110A publication Critical patent/KR20040054110A/ko
Application granted granted Critical
Publication of KR100462480B1 publication Critical patent/KR100462480B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested 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
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

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

Abstract

본 발명은 IP 패킷에 대하여 IP 헤더 정보를 분석하여 IP 패킷을 분류하는 장치 및 방법에 관한 것으로, 구체적으로는 목적지 주소(DA), 발신지 주소(SA)의 조합을 이용하여 IP 패킷을 분류하는 장치 및 방법에 관한 것이다. 본 발명의 IP 패킷 분류장치는 물리층 정합부, 패킷 수신부, 수신패킷 저장부, 패킷 분류 제어부, 패킷 분류 규칙 테이블, 스위치 정합부, 패킷 재조립부, 송신패킷 저장부 및 트래픽 관리부를 구비하여, 2차원 튜플 공간에서 한번의 해쉬 기반의 검색으로 다음 비교 비트에서 매치되는 비트를 선행 페치하도록 하여 패킷 분류 검색 시간을 단축시킬 수 있는 효과가 있다.

Description

튜플 공간 검색 기반의 IP 패킷 분류장치 및 분류방법 {Apparatus of IP packet classification based on tuple space search , and method thereof}
본 발명은 IP(Internet Protocol) 패킷에 대하여 IP 헤더(header)정보를 분석하여 IP 패킷을 분류하는 장치 및 방법에 관한 것으로, 구체적으로는 목적지 주소(Destination Address, DA), 발신지 주소(Source Address, SA), 프로토콜(protocol) 정보 및 포트(port) 정보 등을 조합하여 IP 패킷을 분류하는장치 및 방법에 관한 것이다.
종래의 패킷 포워딩 엔진 구현시 사용되는 검색 방법으로 2차원 해쉬(hash) 방법을 이용하는 Rectangular 검색방법이 있다. 이 검색방법에서는 2차원의 IP 패킷을 분류하기 위해서 (SA, DA) 패킷 분류 규칙을 형성하는 튜플(tuple) 공간을 (i, j) 로 표시한다. 여기서 i는 SA의 프리픽스(prefix) 길이를 나타내고 j는 DA의 프리픽스 길이를 나타낸다. 포워딩 엔진이 IP 주소를 수신하면 2차원 튜플 공간에서 먼저 (1, 32)에 대한 프리픽스 검색을 수행하여 매치되면(match) i 프리픽스 길이를 확장하여 (1, 32)에서 (2, 32)순으로 해쉬기반의 검색을 수행한다. 만일 매치되지 않으면(mismatch) j 프리픽스 길이를 줄여서 검색을 수행한다. 이와 같이 종래의 검색방법을 사용하면 최대 검색횟수는 2W-1(W는 프리픽스 길이)이 된다.
IP 주소 룩업 방법은 전체 비트에 대한 완전 매치(full match) 방법을 사용하는 것이 아니라 가장 길게 매치되는 엔트리를 찾는 방법(Longest Prefix Match, LPM)을 사용한다. 이와 같은 LPM 엔트리를 검색하는 방법 중에서 찾고자 하는 프리픽스의 길이별로 검색키(key)를 달리하면서 해쉬 방법을 이용하는 것이 있다. 이와 같은 해쉬 방법을 확장하여 IP 주소의 목적지 주소(DA)와 발신지 주소(SA)를 조합하여 2차원적인 IP 패킷 분류 방법이 Rectangular 검색 방법이다.
인터넷 가입자 수가 폭발적으로 증가함에 따라 사용자들의 차별화된 다양한 서비스 요구가 증대되고 있다. 이와 같은 차별화된 서비스 요구를 만족시키기 위해서는 IP 패킷을 전달하는 라우터의 포워딩 엔진에서 IP 헤더내의 다양한 영역을 검색키로 하여 룩업 기능, 즉 패킷 분류 기능을 수행하여야 한다. 일반적으로 패킷분류 기능은 IP 주소의 목적지 주소, 발신지 주소, 프로토콜, 포트 번호 등을 키로하여 분류 규칙 테이블에 대한 검색을 수행하여 해당 패킷의 다음 홉 경로 설정과 패킷 플로우 할당, QoS(Quality of Service) 할당 등의 정보를 제공한다.
본 발명이 이루고자 하는 기술적 과제는, 종래의 Rectangular 검색 방법에서 한번의 해쉬 때 다음 비교 비트에서 매치되는 비트를 룩업 테이블에서 페치(fetch)하도록 하여 해쉬의 검색 횟수를 줄이는 검색방법을 사용한 IP 패킷 분류방법 및 장치를 제공하는데 있다.
다시 말하면 본 발명의 검색방법은 IP 패킷 분류를 수행하기 위한 2차원 튜플 공간에서 사용되는 Rectangular 검색 방법에서 (i, j) 공간의 튜플 길이를 순차적으로 검색하는 방법으로, 한번의 해쉬를 시도할 때마다 다음 매치되는 비트를 미리 페치함으로서 프리픽스 길이별로 2차원 튜플 공간으로 구성된 포워딩 테이블의 프리픽스 해쉬 회수를 줄여서 검색 시간을 줄인다.
도 1은 본 발명의 패킷 분류 방법을 사용한 라우터 시스템의 포워딩 엔진 구조도이다.
도 2는 패킷 분류 제어부(104)의 상세 블록도이다.
도 3은 해쉬 기반 패킷 분류 검색을 수행하기 위한 2차원 튜플 공간의 구조를 도시한 도면이다.
도 4는 2차원 튜플 셋에 대하여 종래의 Rectangular 검색을 이용하는 패킷 분류 방법의 흐름도이다.
도 5는 본 발명의 패킷 분류 방법의 흐름도이다.
상기의 과제를 이루기 위하여 본 발명에 의한 IP 패킷 분류장치는, SONET 프레임의 물리링크 정합과 프레이머 또는 기가비트 이더넷의 물리층 정합 기능과 매체접근 제어 기능을 수행하는 물리층 정합부; 상기 물리층 정합부로부터 IP 패킷을 전달받아, 패킷 헤더의 계층 2 헤더, IP 버전, TTL 및 IP 헤더 체크섬 정보를 분석하고 검증하는 패킷 수신부; 상기 패킷 수신부로부터 전달받은 IP 패킷을 저장하는 수신 패킷 저장부; 상기 패킷 수신부로부터의 검증결과와 상기 수신 패킷 저장부로부터 IP 패킷을 전달받아, 패킷 분류를 수행하기 위한 검색키들을 이용하여 해쉬 검색기능을 수행하고, 검색 결과를 분석하는 패킷 분류 제어부; 목적지 주소 및 발신지 주소의 조합으로 이루어진 2차원 해쉬 테이블을 저장하는 패킷 분류 규칙 테이블 저장부; 상기 패킷 분류 검색이 완료된 패킷, 즉 물리적 라우팅 경로 정보, 플로우 정보, QoS 정보가 포함된 패킷에 스위치 정합이 가능하도록 라우팅 태그를 붙여 고정된 길이의 세그먼트로 분해하여 출력하는 스위치 정합부; 스위치를 통하여 수신된 패킷에 대하여, 서로 인터리빙된 고정된 길이의 세그먼트를 하나의 패킷으로 재조립하는 과정을 수행하는 패킷 재조립부; 상기 재조립된 패킷을 전달받아 저장하는 송신 패킷 저장부; 및 상기 저장된 송신 패킷에 대하여 지정된 QoS 정보와 플로우 정보 등을 이용하여 스케쥴링 및 세이핑 기능을 수행하는 트래픽 관리부를 구비한다.
상기의 과제를 이루기 위하여 본 발명에 의한 IP 패킷 분류방법은, 입력받은 IP 패킷의 초기 검색 튜플공간을 설정하는 단계; 튜플 공간 T=(i, j)에 대하여 해쉬 기반의 검색과정을 수행하는 단계; 상기 해쉬기반의 검색을 수행한 후 일치되는 튜플 셋이 존재하는가를 판단하는 단계; 상기 판단결과 만일 일치된 튜플 셋이 존재하면, 일치된 튜플 셋이 marker 로 인한 것인지 가장 길게 매치되는 프리픽스인 best match prefix인지 판단하고, 일치된 튜플셋이 존재하지 않으면 다음 검색할 튜플공간을 변경한 후 상기 검색 단계를 다시 수행하는 단계; 및 상기 판단결과 best match prefix이면 플로우, QoS 및 경로정보를 획득하고 marker로 인한 튜플셋이면 다음 프리픽스 비트를 검사하여 다음 검색할 튜플공간을 변경한 후 상기 검색단계를 다시 수행하는 단계를 구비한다.
상기한 과제를 이루기 위하여 본 발명에서는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1은 본 발명의 패킷 분류 방법을 사용한 라우터 시스템의 포워딩 엔진 구조도이다.
패킷 분류 기능을 수행하는 포워딩 엔진은 물리층 정합부(101), 패킷 수신부(102), 수신패킷 저장부(103), 패킷 분류 제어부(104), 패킷 분류 규칙 테이블(105), 스위치 정합부(106), 패킷 재조립부(107), 송신패킷 저장부(108) 및 트래픽 관리부(109)로 구성된다.
물리층 정합부(101)는 PPP(Point to Point Protocol) 프레임 유형의 POS(Packet of SONET) 프레임의 물리링크 정합과 프레이머(framer) 또는 기가비트 이더넷의 물리층 정합 기능과 매체접근 제어 기능을 수행한다. 패킷 수신부(102)는 물리층 정합부(101)로부터 IP 패킷을 전달받아, 패킷 헤더의 계층 2 헤더, IP 버전, TTL(Time to Live), IP 헤더 체크섬(checksum) 등의 정보를 분석하고 검증한다. 그리고 전달받은 IP 패킷을 수신 패킷 저장부(103)에 저장한다.
패킷 분류 제어부(104)는 패킷 분류를 위한 여러 가지 검색키들을 이용하여 해쉬 기능을 수행하고 검색 결과를 분석한다. 상세한 설명은 도 2를 참조하여 후술한다.
패킷 분류 규칙 테이블 저장부(105)는 DA 및 SA 조합으로 이루어진 2차원 해쉬 테이블을 저장하고, 2차원 해쉬 테이블에는 해당하는 분류 규칙 엔트리의 물리적 라우팅 경로 정보, 플로우 정보, QoS 정보 등의 정보가 포함되어 있다.
스위치 정합부(106)는 패킷 분류 검색이 완료된 패킷, 즉 물리적 라우팅 경로 정보, 플로우 정보, QoS 정보가 포함된 패킷에 스위치 정합이 가능하도록 라우팅 태그를 붙여 고정된 길이의 세그먼트로 분해하여 출력한다. 패킷 재조립부(107)는 스위치를 통하여 스위칭될 때 서로 인터리빙된 고정된 길이의 세그먼트를 하나의 패킷으로 재조립하는 과정을 수행하고 재조립된 송신 패킷을 송신 패킷 저장부(108)에 저장한다.
트래픽 관리부(109)는 송신 패킷에 대하여 지정된 QoS 정보와 플로우 정보 등을 이용하여 스케쥴링 및 세이핑 기능을 수행한다.
도 2는 패킷 분류 제어부(104)의 상세 블록도이다.
패킷 분류 제어부(104)는 IP 헤더 저장부(201), 튜플 공간 제어부(202), 해쉬함수 발생부(203), 분류 검색 결과 분석부(204) 및 패킷 처리부(205)로 구성되어 있다.
IP 헤더 저장부(201)는 패킷 분류를 수행하기 위한 검색키를 저장하는 레지스터로 이 검색키는 DA, SA, 프로토콜, 포트 번호 정보 등이 될 수 있으므로 이러한 정보를 저장한다.
튜플 공간 제어부(202)는 DA 와 SA의 프리픽스 조합을 이용하여 2차원 튜플 셋을 생성하여 해쉬검색이 가능하도록 검색키를 생성한다. 다시 말하면, 튜플 공간제어부(202)는 {P(DA), P(SA)} 셋에서 (1,1), (1,2), (1,3), ..... (1,32) (2,1), (2,2), (2,3), ..... (32,1), (32,2), ..... (32,32)까지의 튜플 셋에 대하여 검색키를 생성한다. 여기서 P(SA), P(DA)는 각각 SA, DA의 프리픽스 길이를 나타낸다. 튜플 공간 제어부(202)는 하나의 튜플 셋에 대하여 분류 검색을 수행하고 검색 미스매치가 발생되면 튜플 셋 조합을 달리하여 최적의 패킷 분류 규칙을 찾을 때까지 분류 검색을 반복적으로 수행한다.
분류 검색은 튜플 공간 제어부(202)가 수행하지만, 실제적으로는 해쉬 함수 발생부(203)를 통해서 패킷 분류 규칙 테이블을 액세스한다. 분류 검색을 수행하면 매치/미스매치 여부와, 매치되면 QoS 정보, 패킷 플로우 정보 및 스위치 모듈로 라우팅되는 라우팅 태그 정보들이 출력된다.
해쉬함수 발생부(203)는 각각 튜플 공간이 다른 다양한 튜플셋에 대하여 동일한 길이의 분류검색을 수행하기 위한 해쉬함수를 생성한다. 이때 발생된 해쉬함수는 패킷 분류 규칙 테이블을 구성하고 있는 메모리에 직접 액세스가 가능하도록 20비트 정도의 길이로 할 수 있다. 이와 같은 경우 분류 규칙은 220규칙까지 가능함을 알 수 있다.
분류 검색 결과 분석부(204)는 해쉬 수행 후 매치 여부 결과를 분석하여 반복적으로 다시 다른 튜플셋을 생성해야 하는지 여부를 튜플 공간 제어부(202)로 알려준다.
패킷 처리부(205)는 패킷 분류 검색이 완료된 후 해당 패킷을 수신 패킷 저장부(103)로부터 페치하고 분류 검색 결과 정보를 삽입하여 스위치 정합부(106)로 전달한다.
도 3은 해쉬 기반 패킷 분류 검색을 수행하기 위한 2차원 튜플 공간의 구조를 도시한 도면이다.
도 3을 참조하여 2차원 튜플 공간의 구조 및 특징에 대하여 상세히 설명한다. IP 헤더내의 DA만의 룩업에서 프리픽스 길이별 튜플 공간은 32개로 한정되어 있다. 또한 DA, SA 2차원 검색에서 {P(SA), P(DA)}와 같이 프리픽스 쌍을 고려하면 {(1,1) (2,1) (3,1) .. ~ (30,32) (31,32) (32,32)}까지의 조합으로 된 튜플 공간 T를 가진다.
기존의 방법 중 한가지는 해쉬 테이블을 이용한 2차원 튜플 공간에서 선형 검색 기법을 적용할 경우 즉, {(1,1) (1,2) (1,3), .... (1,32), (2,1) (2,2). .... (2,31), .... (32,32)}의 튜플 공간에서 (1,1) 튜플 셋에서부터 (32,32) 튜플 셋까지 검색을 수행하므로 최대 검색 회수가 O(W2)로 됨을 알 수 있다. 이와 같은 선형적 검색 방법은 프리픽스 길이에 따라 너무 많은 검색 회수를 요구하므로 비효율적이다.
다른 한가지는 Rectangle 검색을 수행하는 것이다. Rectangle 검색에서는 해쉬 기능을 수행하기 위하여 프리픽스에 대한 부가 표시(marker) 개념을 도입한다. 이 marker는 해당 프리픽스 길이의 해쉬 테이블에는 매치되는 프리픽스가 존재하지 않지만, 이것보다 보다 더 긴 프리픽스가 헤쉬 테이블에 존재하는 경우 부가 프리픽스를 표시하는 것이다.
예를 들면 튜플 공간 영역이 (4,4)에서 임의의 튜플 셋 (3,2)에서 그 프리픽스 값이 (110*, 10**)일 경우 {(1,1), (1,2), (2,1), (2,2), (3,1)}의 프리픽스 튜플 셋 (1***, 1***), (1***, 10**), (11**, 1***), (11**, 10**), (110*, 1*)이 모두 marker로 표시된다. 즉, 위와 같은 튜플셋에 대하여 부가표시를 marker라로 하고, 이 marker로 구분해서 표시해둔다는 의미이며 실제의 프리픽스와는 구분되어 사용된다. 여기서 * 는 don't care를 의미한다. 도 3은 이와 같은 marker 개념을 프리픽스 길이를 튜플 셋 조합으로 하여 P(SA) = i, P(DA) = j 인 2차원 평면에서 나타낸 그림이다.
P(DA)(301)는 DA 주소에 대한 프리픽스 길이를 나타내는 좌표축으로 아래쪽으로 내려올수록 더욱더 길이가 긴 프리픽스를 나타낸다. P(SA)(302)는 SA 주소에 대한 프리픽스 길이를 나타내는 좌표축으로 오른쪽으로 갈수록 더욱더 길이가 긴 프리픽스를 나타낸다.
튜블 공간(303)은 튜플 공간 (i,j) = (3,4)를 나타내며, 튜플 공간의 좌측 상반부 점선으로 둘러싸인 영역(304)은 (3,4)의 marker 영역으로 표시됨을 알 수 있다. 또한 (305)에서 처럼 (6,3)의 해쉬 검색에서 미스매치가 발생되면 (6,3) 튜플 공간의 우측 하반면은 더 이상 검색할 필요가 없다.
도 4는 2차원 튜플 셋에 대하여 종래의 Rectangular 검색을 이용하는 패킷 분류 방법의 흐름도이다.
기존의 2차원 Rectangular 검색 방법은 도 3에서 좌측 하단에 해당하는 튜플공간(306)에서 시작한다.
우선, 32 비트의 SA, DA IP 주소를 가진 경우 튜플 공간 T = {P(SA), P(DA)}를 (i, j) 이차원 공간으로 나타내고 초기 검색 튜플 공간을 (1, 32)로 설정한다(S401). 그리고, 튜플 공간 T=(i, j)에 대하여 해쉬 기반의 검색과정을 수행한다(S402). 그리고, 해쉬 검색 수행결과 일치하는 튜플 셋이 존재하는가를 판단한다(S403). 만일 일치된 튜플 셋이 존재하지 않으면, 즉, 해쉬 검색 결과 해당 튜플 공간에서 미스매치가 발생된 경우에는 SA, DA의 프리픽스를 변경한다(S404). 다시 말하면, j가 나타내는 DA 프리픽스 길이는 하나씩 줄이고 i가 나타내는 SA의 프리픽스 길이는 변경하지 않고 다음 검색할 튜플 공간을 변경한다. 그리고 나서 다시 해쉬 검색과정(S402)으로 되돌아간다.
만일 일치된 튜플 셋이 존재하면, 즉 해쉬 검색 결과 해당 튜플 공간에서 매치가 발생된 경우에는 해당되는 매치 튜플 셋이 marker 로 인한 것인지 best match prefix인지 판단한다(S405). best match prefix는 가장 길게 매치되는 프리픽스를 의미한다. 따라서, 검색 수행후 그 결과가 매치로 나왔을 경우 그 검색 결과에 해당하는 튜플셋이 marker로 표시된 프리픽스인지, best match prefix인지를 판단한다.
만일 매치 튜플 셋이 marker로 인한 경우에는 SA, DA의 프리픽스를 변경한다(S406). 즉, j가 나타내는 DA 프리픽스 길이는 변경하지 않고, i가 나타내는 SA의 프리픽스 길이는 하나씩 증가시켜 다음 검색할 튜플 공간을 변경한다. 그리고 나서 다시 해쉬 검색과정(S402)으로 되돌아간다.
만일 매치 튜플 셋이 best match prefix로 인한 경우에는 검색을 종료하고, 그 패킷 분류 결과에 해당하는 플로우 정보, QoS, 경로 정보 등을 페치한다(S407). 이런 정보들은 메모리에 저장된 패킷 분류 규칙 테이블에 있으며 라우터 운용자에 의하여 망 구성 정보에 따라 초기에 설정되고 중간에 변경될 수도 있다. 이렇게 패킷 분류방법을 수행한 후의 최종 결과는 플로우 정보, QoS, 라우팅 경로 정보가 된다.
도 5는 본 발명의 패킷 분류 방법의 흐름도이다.
기존의 방법에서 일치된 튜플 셋이 발생되면 i의 값을 하나씩 증가시키면서 미스매치가 발생하거나 best match prefix가 검색될 때까지 해쉬 과정을 수행하였다. 본 발명에서는 일치된 튜플 셋이 발생되면 다음 매치되는 비트를 분석함으로서 한번의 해쉬에서 매치되는 경우 다음 검색 비트의 결과를 해쉬 과정을 거치지 않고 수행할 수 있으므로 해쉬 검색의 회수를 줄일 수 있다.
예를 들어, 수신한 패킷의 {SA, DA} 가 {(10110, 11011)}인 경우(프리픽스 길이가 5라고 가정)를 생각해 보자. 튜플 공간 (3,2) 에서 (101, 11) 의 튜플 셋에 대하여 marker 매치가 발생된 경우, 해쉬한 결과, 즉 매치 또는 미스매치 정보로부터 다음 매치 비트 정보가 0일 경우 (101,110)에 매치되므로 (3,3) 튜플 셋으로 해쉬 검색을 수행하지 않고 (3,4)의 튜플셋에 해당하는 (101, 1101)을 검색키로 하여 해쉬 검색을 수행한다.
우선, 32 비트의 SA, DA IP 주소를 가진 경우 튜플 공간 T={P(SA), P(DA)}를 (i,j) 이차원 공간으로 나타내고 초기 검색 튜플 공간을 (1,32)로 설정한다(S501).그리고, 튜플 공간 T=(i, j)에 대하여 해쉬 기반의 검색과정을 수행한다(S502). 그리고, 해쉬 검색을 수행한 후 일치하는 튜플 셋이 존재하는가를 판단한다(S503). 만일 일치된 튜플 셋이 존재하지 않으면, 즉, 해쉬 검색 결과 해당 튜플 공간에서 미스매치가 발생된 경우에는 SA, DA의 프리픽스를 변경한다(S504). 다시 말하면, j가 나타내는 DA 프리픽스 길이는 하나씩 줄이고 i가 나타내는 SA의 프리픽스 길이는 변경하지 않고 다음 검색할 튜플 공간을 변경한다. 그리고 나서 다시 해쉬 검색과정(S502)으로 되돌아간다.
그리고, 만일 일치된 튜플 셋이 존재하면, 즉 해쉬 검색 결과 해당 튜플 공간에서 매치가 발생된 경우에는 해당되는 매치 튜플 셋이 marker 로 인한 것인지 best match prefix인지 판단한다(S505).
만일 매치 튜플 셋이 marker로 인한 경우에는 페치된 다음 비트의 매치되는 비트값을 분석한다(S506). 그래서 다음 비교 비트가 매치되는 경우 SA, DA의 프리픽스를 변경한다(S507). 즉, j가 나타내는 DA 프리픽스 길이는 변경하지 않고, i가 나타내는 SA의 프리픽스 길이는 2씩 증가시켜 다음 검색할 튜플 공간을 변경한다. 또한 다음 비교 비트가 미스매치되는 경우에는 j가 나타내는 DA 프리픽스 길이는 하나씩 줄이고 i가 나타내는 SA의 프리픽스 길이는 변경하지 않고 다음 검색할 튜플 공간을 변경한다(S508).
만일 매치 튜플 셋이 best match prefix로 인한 경우에는 검색을 종료하고, 그 패킷 분류 결과에 해당하는 플로우 정보, QoS, 경로 정보 등을 페치한다(S509).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
상술한 바와 같이 본 발명은, 기존 rectangular 검색 기반의 패킷 분류 방법을 변형하여 marker로 인한 검색을 수행하여 튜플 셋이 매치되는 경우, 다음 비교 비트의 일치되는 값을 미리 분석하고 한 비트씩 비교 프리픽스를 증가시키지 않고 2비트씩 프리픽스를 증가시킴으로써, 패킷 분류 검색 시간을 단축시킬 수 있는 효과가 있다.

Claims (10)

  1. SONET 프레임의 물리링크 정합과 프레이머 또는 기가비트 이더넷의 물리층 정합 기능과 매체접근 제어 기능을 수행하는 물리층 정합부;
    상기 물리층 정합부로부터 IP 패킷을 전달받아, 패킷 헤더의 계층 2 헤더, IP 버전, TTL 및 IP 헤더 체크섬 정보를 분석하고 검증하는 패킷 수신부;
    상기 패킷 수신부로부터 전달받은 IP 패킷을 저장하는 수신 패킷 저장부;
    상기 패킷 수신부로부터의 검증결과와 상기 수신 패킷 저장부로부터 IP 패킷을 전달받아, 패킷 분류를 수행하기 위한 검색키들을 이용하여 해쉬 검색기능을 수행하고, 검색 결과를 분석하는 패킷 분류 제어부;
    목적지 주소 및 발신지 주소의 조합으로 이루어진 2차원 해쉬 테이블을 저장하는 패킷 분류 규칙 테이블 저장부;
    상기 패킷 분류 검색이 완료된 패킷, 즉 물리적 라우팅 경로 정보, 플로우 정보, QoS 정보가 포함된 패킷에 스위치 정합이 가능하도록 라우팅 태그를 붙여 고정된 길이의 세그먼트로 분해하여 출력하는 스위치 정합부;
    스위치를 통하여 수신된 패킷에 대하여, 서로 인터리빙된 고정된 길이의 세그먼트를 하나의 패킷으로 재조립하는 과정을 수행하는 패킷 재조립부;
    상기 재조립된 패킷을 전달받아 저장하는 송신 패킷 저장부; 및
    상기 저장된 송신 패킷에 대하여 지정된 QoS 정보와 플로우 정보 등을 이용하여 스케쥴링 및 세이핑 기능을 수행하는 트래픽 관리부를 포함하는 것을 특징으로 하는 IP 패킷 분류장치.
  2. 제1항에 있어서, 상기 패킷 분류 규칙 테이블 저장부의 2차원 해쉬 테이블에는
    분류 규칙 엔트리의 물리적 라우팅 경로 정보, 플로우 정보 및 QoS 정보가 포함되어 있는 것을 특징으로 하는 IP 패킷 분류장치.
  3. 제1항에 있어서, 상기 패킷 분류 제어부는
    패킷 분류를 수행하기 위한 검색키를 저장하는 것으로, 목적지 주소, 발신지 주소, 프로토콜 정보 및 포트 번호 정보를 저장하는 IP 헤더 저장부;
    상기 목적지 주소와 발신지 주소의 프리픽스 조합을 이용하여 복수의 2차원 튜플 셋을 생성하여 해쉬검색이 가능하도록 검색키를 생성하는 튜플 공간 제어부;
    각각 튜플 공간이 다른 다양한 상기 튜플셋에 대하여 동일한 길이의 분류검색을 수행하기 위한 해쉬함수를 생성하는 해쉬함수 발생부;
    상기 해쉬함수를 이용하여 해쉬 수행 후 매치 여부 결과를 분석한 후, 다른 튜플셋을 생성해야 하는가의 여부를 상기 튜플 공간 제어부로 알려주는 분류 검색 결과 분석부; 및
    패킷 분류 검색이 완료된 후 해당 패킷을 상기 수신 패킷 저장부로부터 페치하고 분류 검색 결과 정보를 삽입하여 상기 스위치 정합부로 전달하는 패킷 처리부를 포함하는 것을 특징으로 하는 IP 패킷 분류장치.
  4. 제3항에 있어서, 상기 튜플 공간 제어부는
    하나의 튜플 셋에 대하여 분류 검색을 수행하고 검색 미스매치가 발생되면 튜플 셋의 조합을 달리하여 분류 검색을 반복적으로 수행하는 것을 특징으로 하는 IP 패킷 분류장치.
  5. 제3항에 있어서, 상기 해쉬함수 발생부에서 발생하는 해쉬함수는
    상기 패킷 분류 규칙 테이블 저장부를 직접 액세스할 수 있도록 20비트의 길이로 하는 것을 특징으로 하는 IP 패킷 분류장치.
  6. (a) 입력받은 IP 패킷의 초기 검색 튜플공간을 설정하는 단계;
    (b) 튜플 공간 T=(i, j)에 대하여 해쉬 기반의 검색과정을 수행하는 단계;
    (c) 상기 해쉬기반의 검색을 수행한 후 일치되는 튜플 셋이 존재하는가를 판단하는 단계;
    (d) 상기 판단결과 만일 일치된 튜플 셋이 존재하면, 일치된 튜플 셋이 marker 로 인한 것인지 가장 길게 매치되는 프리픽스인 best match prefix인지 판단하고, 일치된 튜플셋이 존재하지 않으면 다음 검색할 튜플공간을 변경한 후 상기 (b) 단계를 다시 수행하는 단계; 및
    (e) 상기 판단결과 best match prefix이면 플로우, QoS 및 경로정보를 획득하고 marker로 인한 튜플셋이면 다음 프리픽스 비트를 검사하여 다음 검색할 튜플공간을 변경한 후 상기 (b) 단계를 다시 수행하는 단계를 포함하는 것을 특징으로 하는 IP 패킷 분류방법.
  7. 제6항에 있어서, 상기 (a) 단계는
    32 비트의 발신지 주소, 목적지 주소의 IP 주소를 가진 경우 튜플 공간 T={P(발신지 주소), P(목적지 주소)}를 (i,j) 이차원 공간으로 나타내고 초기 검색 튜플 공간을 (1,32)로 설정하는 것을 특징으로 하는 IP 패킷 분류방법.
    여기서 P는 발신지 주소의 프리픽스의 길이를 나타낸다.
  8. 제6항에 있어서, 상기 (d) 단계에서 다음 검색할 튜플공간을 변경하는 것은
    j가 나타내는 목적지 주소 프리픽스 길이는 하나씩 줄이고 i가 나타내는 발신지 주소의 프리픽스 길이는 변경하지 않음으로써 다음 검색할 튜플 공간을 변경하는 것을 특징으로 하는 IP 패킷 분류방법.
  9. 제6항에 있어서, 상기 (e) 단계에서 다음 검색할 튜플공간을 변경하는 것은
    다음 프리픽스 비트를 검사하여 매치되는 경우에는 j가 나타내는 목적지 주소 프리픽스 길이는 변경하지 않고, i가 나타내는 발신지 주소의 프리픽스 길이는 2씩 증가시킴으로써 다음 검색할 튜플 공간을 변경하고, 다음 프리픽스 비트가 미스매치되는 경우에는 j가 나타내는 목적지 주소 프리픽스 길이는 하나씩 줄이고 i가 나타내는 발신지 주소의 프리픽스 길이는 변경하지 않음으로써 다음 검색할 튜플 공간을 변경하는 것을 특징으로 하는 IP 패킷 분류방법.
  10. 제6항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2002-0080827A 2002-12-17 2002-12-17 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법 KR100462480B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0080827A KR100462480B1 (ko) 2002-12-17 2002-12-17 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0080827A KR100462480B1 (ko) 2002-12-17 2002-12-17 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법

Publications (2)

Publication Number Publication Date
KR20040054110A true KR20040054110A (ko) 2004-06-25
KR100462480B1 KR100462480B1 (ko) 2004-12-17

Family

ID=37347233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0080827A KR100462480B1 (ko) 2002-12-17 2002-12-17 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법

Country Status (1)

Country Link
KR (1) KR100462480B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594755B1 (ko) * 2004-05-11 2006-06-30 삼성전자주식회사 계층적 룰베이스 분할을 통한 패킷 분류 방법
KR100680527B1 (ko) * 2005-08-22 2007-02-09 (주) 기산텔레콤 엘투 스위치 및 엘쓰리 스위치에서 트리 테이블을 이용한 어드레스 탐색 방법
KR100697568B1 (ko) * 2004-06-30 2007-03-22 코넥스안트 시스템스, 인코퍼레이티드 스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치
KR100917861B1 (ko) * 2007-12-15 2009-09-18 한국전자통신연구원 데이터 고속 수신처리를 위한 매체 접근 제어 장치 및 그방법
US7653061B2 (en) 2005-10-19 2010-01-26 Electronics And Telecommunications Research Institute Method of generating IPv6 flow label
US7664088B2 (en) 2005-12-08 2010-02-16 Electronics And Telecommunications Research Institute Method for providing QoS using flow label in providing multimedia service in IPv6 network and system applying the same
KR101013624B1 (ko) * 2008-08-21 2011-02-10 주식회사 세아네트웍스 광대역 무선 통신 시스템에서의 패킷 분류 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101326983B1 (ko) 2009-12-21 2014-01-15 한국전자통신연구원 트래픽 제어 장치 및 방법
KR101241584B1 (ko) 2009-12-21 2013-03-11 한국전자통신연구원 데이터 플로우 병렬 처리 장치 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594755B1 (ko) * 2004-05-11 2006-06-30 삼성전자주식회사 계층적 룰베이스 분할을 통한 패킷 분류 방법
KR100697568B1 (ko) * 2004-06-30 2007-03-22 코넥스안트 시스템스, 인코퍼레이티드 스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치
KR100680527B1 (ko) * 2005-08-22 2007-02-09 (주) 기산텔레콤 엘투 스위치 및 엘쓰리 스위치에서 트리 테이블을 이용한 어드레스 탐색 방법
US7653061B2 (en) 2005-10-19 2010-01-26 Electronics And Telecommunications Research Institute Method of generating IPv6 flow label
US7664088B2 (en) 2005-12-08 2010-02-16 Electronics And Telecommunications Research Institute Method for providing QoS using flow label in providing multimedia service in IPv6 network and system applying the same
KR100917861B1 (ko) * 2007-12-15 2009-09-18 한국전자통신연구원 데이터 고속 수신처리를 위한 매체 접근 제어 장치 및 그방법
KR101013624B1 (ko) * 2008-08-21 2011-02-10 주식회사 세아네트웍스 광대역 무선 통신 시스템에서의 패킷 분류 장치 및 방법

Also Published As

Publication number Publication date
KR100462480B1 (ko) 2004-12-17

Similar Documents

Publication Publication Date Title
US6341130B1 (en) Packet classification method and apparatus employing two fields
US10496680B2 (en) High-performance bloom filter array
US6289013B1 (en) Packet filter method and apparatus employing reduced memory
US8160069B2 (en) System for forwarding a packet with a hierarchically structured variable-length identifier
US7227842B1 (en) Fast IP packet classification with configurable processor
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US20040013113A1 (en) Technique to improve network routing using best-match and exact-match techniques
US10171419B2 (en) IP route caching with two search stages on prefix length
JP2004517519A (ja) 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法
JP2009532989A (ja) Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
CN109639579B (zh) 组播报文的处理方法及装置、存储介质、处理器
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US10630588B2 (en) System and method for range matching
KR100462480B1 (ko) 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법
US6680916B2 (en) Method for using a balanced tree as a base for a routing table
CN111950000B (zh) 一种接入访问控制方法及设备
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
US7746865B2 (en) Maskable content addressable memory
KR20130093707A (ko) 패킷 분류 장치 및 그것의 패킷 분류 방법
KR100662254B1 (ko) 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법
TWI281804B (en) Packet forwarding method and system
Kogan et al. Efficient FIB representations on distributed platforms
US8577854B1 (en) Apparatus and method for high speed flow classification
KR100862195B1 (ko) 내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ

Legal Events

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

Payment date: 20081202

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee