KR20080050246A - 내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치 - Google Patents
내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치 Download PDFInfo
- Publication number
- KR20080050246A KR20080050246A KR1020070069793A KR20070069793A KR20080050246A KR 20080050246 A KR20080050246 A KR 20080050246A KR 1020070069793 A KR1020070069793 A KR 1020070069793A KR 20070069793 A KR20070069793 A KR 20070069793A KR 20080050246 A KR20080050246 A KR 20080050246A
- Authority
- KR
- South Korea
- Prior art keywords
- search
- entry
- address
- information
- rule
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 하나의 규칙을 두 개의 검색 단위로 구분하여 각각 독립적으로 기본 단위 검색을 수행하도록 함으로써, 불필요한 메모리 낭비를 줄일 수 있는 내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치를 제공하는 것으로서, 내용 번지 메모리에 규칙을 저장하여 고속으로 검색을 수행하는데 있어서, 규칙을 두 개의 검색 범위로 구분하여 제1,2 검색 테이블에 저장한 후, 입력 프레임으로부터 제1,2 검색키를 추출하고, 상기 제1 검색키와 제2 검색키로 각각 제1,2 검색 테이블을 검색하고, 그 검색 결과를 조합하여, 상기 입력 프레임의 적용할 규칙의 제어 정보를 확인하는 것이다.
내용 번지 메모리(CAM: Content Addressable Memory), 구간 매칭 검색, 완전 매칭 검색, 최장 프리픽스 매칭 검색, 5-투플(tuple)
Description
본 발명은 인터넷 프로토콜 버전 4 (IPv4)를 지원하는 라우터 시스템에 있어서, 흐름(Flow) 기반의 접근 제어나 QoS(Quality of Service)를 지원하기 위하여 흐름별로 접근 제어 수준 또는 서비스 수준을 검색하는 내용 번지를 이용한 구간 매칭 검색 방법 및 장치에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2005-S-101-02, 과제명: 멀티미디어 QoS 라우팅 기술].
IPv4를 지원하는 라우터의 경우에는 목적지 포트를 결정하기 위해서 목적지 IP 주소를 이용하여 라우팅 테이블을 설정한다. 이는 일반적으로 라우팅 프로토콜 등에 의해서 얻어지는 데이터나 운용자의 입력을 통해서 설정되는 것이다. 라우터에서는 입력된 트래픽의 목적지 IP 주소 필드를 검색 키로 하여 상기 라우팅 테이 블을 검색하고, 그 결과 얻어진 테이블의 번호(index)를 이용하여 매핑 테이블의 값을 확인하여, 패킷의 출력 포트를 결정한다.
마찬가지로, 라우터는 흐름 기반의 접근 제어나 QoS를 지원하기 위하여, 접근 제어 리스트나 서비스 수준을 결정하기 위한 관련 규칙을 검색 테이블에 저장하고, 검색 테이블의 규칙과 일치하는 패킷이 입력되면 입력 패킷에 해당하는 접근 제어 수준이나 서비스 수준을 적용한다.
현재 검색 테이블의 저장 및 검색을 위해서 내용 번지 메모리 (Content Addressable Memory : CAM)나 네트워크 검색 엔진 (Network Search Engine :NSE) 등이 주로 사용된다.
상기 내용 번지 메모리 등은 세 개의 비트 값, 즉, 비트 0, 비트 1, 및 무시(don't care)을 이용하여 검색 테이블을 구성한다. 즉, 해당하는 값이 정확하게 일치해야 하는 경우에는 비트 0이나 비트 1로 설정하고, 어떤 값이어도 상관이 없는 경우에는 무시 비트(don't care)로 표시한다. 그리고 이렇게 구성된 검색 테이블과 검색을 원하는 문자열(검색 키)을 비교하여, 정확하게 값이 일치하거나, 검색 테이블의 값이 '무시(don't care)'일 경우에는 매칭되는 것으로 판단하게 된다.
더하여 상기 내용 번지 메모리를 이용한 검색시 기본 검색 단위를 64 비트나 72비트로 사용한다. 따라서, 검색 규칙에 사용되는 필드의 길이가 64 비트나 72비트보다 작을 경우에는 나머지 비트를 '무시비트'로 처리하여 검색을 수행하고, 반대로 이보다 클 경우에는 다수의 기본 검색 단위를 하나로 묶어서 검색을 수행한다.
여기서, 하나의 기본 검색 단위를 이용하여 검색하는 경우를 기본 검색 방식이라고 하고, 여러 개의 기본 검색 단위를 묶어서 검색을 수행하는 경우를 간단히 확장 검색 방식이라고 부르기로 한다.
따라서 흐름 기반 라우터의 5-투플(tuple)을 이용하는 104 비트짜리 규칙은 2개의 기본 단위를 묶어서 검색을 수행하는 확장 검색 방식을 적용해야 한다.
일반적으로 흐름 기반으로 동작하는 라우터에서는 목적지 포트를 결정하거나 접근 제어 수준 및 서비스 수준을 확인하기 위해서 텍스트 검색 방법을 사용하는데, 이때 접근 제어 수준 및 서비스 수준에 대해서는 발신지 IP 주소와, 목적지 IP 주소 등 각각 32 비트를 갖는 2개의 IP 주소, 발신 포트 번호와 목적 포트 번호 등 각각 16 비트를 갖는 2개의 포트 번호, 그리고 프로토콜 번호 등의 5-투플을 이용한 검색이 필요하다. 보통 IP 주소 검색시에는 최장 프리픽스 매칭 (Longest Prefix Matching : LPM) 검색 방법을 사용하고, 프로토콜 번호 검색시에는 완전 매칭 (Exact Matching) 검색 방법을 사용하며, 포트 번호 검색시에는 구간 매칭 방법을 사용한다.
앞서 언급한 검색 방법 중에서, 최장 프리픽스 매칭 검색 방법과 완전 매칭 검색 방법은 비트 0 및 비트 1, 무시 비트로의 변환이 간단하기 때문에, 검색 테이블로 변환할 경우에 규칙 하나당 1개의 테이블 엔트리(Table Entry)로 변환할 수 있다. 그러나 구간 매칭 검색 방법을 위한 정확한 검색 테이블을 작성하기 위해서는 하나의 규칙을 1개 이상의 테이블 엔트리로 변환해야 하는 경우가 발생한다.
따라서, 최장 프리픽스 매칭 검색 방법, 완전 매칭 검색 방법, 구간 매칭 검색 방법 등이 함께 사용되는 접근 제어 목록의 규칙을 검색 테이블로 변환하면, 1개의 규칙이 다수의 검색 테이블 엔트리로 변환되는 경우가 발생한다.
특히 5-투플 기반인 경우 2개의 기본 단위를 묶어서 검색하는 확장 검색 방식을 사용하여야 하기 때문에, 1개의 기본 검색 단위만을 사용하는 검색 규칙에 비해서 메모리 소요량이 2배가 된다는 문제점이 있다.
상기 과제를 해결하기 위한 수단으로서, 본 발명은 하나의 규칙을 두 개의 검색 단위로 구분하여 각각 독립적으로 기본 단위 검색을 수행하도록 함으로써, 불필요한 메모리 낭비를 줄일 수 있는 내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치를 제공한다.
본 발명의 일 실시형태에 따른 내용 번지 메모리를 이용한 구간 매칭 검색 장치는, 규칙을 제1 검색 단위와 제2 검색 단위로 구분할 때, 상기 제1 검색 단위에 해당하는 정보를 각 엔트리에 저장하는 제1 검색 테이블; 상기 제2 검색 단위에 해당하는 정보를 각 엔트리에 저장하는 제2 검색 테이블; 및 입력 프레임의 제1 검색키를 추출하여 상기 제1 검색 테이블을 검색하고, 제2 검색키를 추출하여 상기 제2 검색 테이블을 검색하여, 일치하는 엔트리를 찾는 제어 모듈을 포함한다.
본 발명의 다른 실시 형태에 따른 내용 번지 메모리를 이용한 구간 매칭 검색 방법은, 규칙을 제1 검색 단위와 제2 검색 단위로 구분하여, 각각 제1,2 검색 테이블에 저장하는 단계; 입력 프레임으로부터 제1,2 검색키를 추출하는 단계; 상기 제1 검색키와 제2 검색키로 각각 제1,2 검색 테이블을 검색하는 단계; 및 상기 검색 결과를 조합하여, 상기 입력 프레임의 적용할 규칙의 제어 정보를 확인하는 단계를 포함한다.
상기 제1 검색 단위는 5-투플(tuple) 정보 중에서 송신 IP 주소와 수신 IP 주소이고, 제2 검색 단위는 송신 포트와 수신 포트와 프로토콜 번호일 수 있다.
또한, 상기 제2 검색 테이블은, 각 엔트리에 해당 제2 검색 단위에 대한 정보와 연관되는 제1 검색 단위에 대한 정보가 저장된 제1 검색 테이블의 엔트리 번지 정보를 더 저장하는 것이 바람직하며, 상기 제1 검색 테이블을 검색하여 일치하는 엔트리가 존재하는 경우, 해당 엔트리의 번지를 상기 제2 검색키와 합하여 새로운 제2 검색키를 생성하고, 상기 새로운 제2 검색키와 일치하는 엔트리를 상기 제2 검색 테이블에서 검색하는 것이 바람직하다.
상술한 구성에 의하면, 본 발명은 라우터나 스위치 시스템에서의 구간 매칭 검색에 있어서, 5-투플 전체를 이용하여 검색을 수행하는 접근 제어 목록이나 QoS 등급 관련 검색을 위하여, 검색 규칙을 두 개로 분리하여 두 개의 검색 테이블로 구현하여, 상호 독립적인 검색을 수행할 수 있도록 함으로써 검색 테이블 메모리의 낭비를 억제할 수 있다.
더하여, 두 검색 테이블의 연동을 통해 검색 방법을 제시함으로써, 5-투플 전체를 이용한 검색을 보다 효율적으로 수행할 수 있으며, 헤더의 길이가 늘어나는 IPv6 시스템에 적용하는 경우 헤더의 길이에 따라서 검색 키의 길이가 늘어나더라도 바로 적용할 수 있다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한 어떤 구성 요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, '모듈'이란 용어는 특정한 기능이나 동작을 처리하는 하나의 단위를 의미하며, 이는 하드웨어 또는 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명이 적용되는 라우터의 일반적인 구조를 보여 주는 것이다. 상기 라우터(30)는 임의의 패킷을 송신한 근원지인 송신 단말(10)과 상기 패킷의 목적지인 수신 단말(20)을 연결해 준다.
도 1을 참조하면, 라우터(30)는 송신 단말(10)에서 전송된 패킷을 수신하는 입력 물리 계층 (21)과, 상기 입력 물리 계층(21)을 통해 수신된 패킷에 대하여 목적지를 확인하여 QoS의 서비스 수준, 접근 제어 수준, 및 프로토콜에 따른 처리를 수행하는 입력 패킷 처리부(32), 상기 입력 패킷 처리부(32)로부터 전달된 패킷을 목적지에 해당하는 포트 측으로 전달하는 스위칭 패브릭(33), 상기 스위칭 패브릭(33)으로부터 전달받은 패킷을 처리하여 설정된 포트로 출력되도록 하는 출력 패킷 처리부(34), 상기 출력 패킷 처리부(33)에서 처리된 패킷을 실제 목적지 방향으로 송신하는 출력 물리 계층(35)으로 구성된다. 본 발명은 상기 패킷에 대하여 QoS 서비스 수준, 접근 제어 수준을 확인하여 해당 처리를 수행하는 입력 패킷 처리부(32)의 동작 중 일부에 관여하는 것이다. 더 구체적으로 상기 입력 패킷 처리 부(32)는 입력된 패킷의 정보를 참조하여 목적지 포트를 정하거나, 입력된 패킷의 접근 제어 목록이나 서비스 수준을 확인하여, 그 수준에 설정된 제어 정보에 따라서 상기 패킷을 처리한다. 이때, 상기 입력 패킷 처리부(32)는 입력된 패킷의 접근 제어 목록이나 서비스 수준을 확인하기 위하여 다양한 검색 테이블을 구비하고 있으며, 일반적으로 상기 검색 테이블을 내용 번지 메모리(CAM)에 저장하고, 상기 내용 번지 메모리의 각 엔트리에 해당하는 출력 포트나, 접근 제어 목록의 수준이나 서비스 수준에 관한 데이터를 매핑 테이블의 동일한 번지에 함께 저장한다.
도 2는 입력 패킷 처리부(32)에 있어서 접근 제어 목록이나 서비스 수준을 확인하기 위하여 구비되는 검색 구조를 나타낸 것으로서, 이러한 검색 처리를 위하여 패킷 처리 모듈(321)과, 검색 모듈(322)과, 매핑 모듈(323)을 포함한다.
상기 검색 모듈(322)은 일반적으로 내용 번지 메모리(CAM)나 네트워크 검색 엔진(NSE: Network Search Engine)로 구현되고, 상기 매핑 모듈(323)은 일반적인 메모리로 구현된다.
즉, 상기 검색 모듈(322)에는 검색 규칙이 저장되고, 상기 매핑 모듈(323)에는 해당 규칙에 적용할 정보, 예를 들어, 출력 포트나 접근 제어 목록의 수준이나 서비스 수준 등이 저장된다. 이때, 규칙 및 그에 대응하는 제어 정보는, 상기 검색 모듈(322) 및 매핑 모듈(323)에 있어서, 동일한 번지에 저장된다.
따라서 상기 패킷 처리 모듈(321)은 입력된 패킷의 정보를 이용하여 검색을 수행하는 경우에는, 상기 검색 모듈(322)을 이용한 검색을 통해서 상기 입력된 패킷에 해당하는 규칙이 저장된 위치를 확인하고, 매핑 모듈(323)의 동일한 위치를 확인하여 그 제어 정보를 확인하게 되며, 이렇게 확인된 정보를 이용하여 해당 패킷을 스위칭 패브릭(33)으로 전달한다.
도 3은 상기와 같은 입력 패킷 처리부(32)에 적용될 수 있는 본 발명에 의한 구간 매칭 검색 장치를 도시한 블록도이다.
도 3을 참조하면, 본 발명에 의한 구간 매칭 검색 장치는, 규칙을 제1 검색 단위와 제2 검색 단위로 구분할 때, 상기 제1 검색 단위에 해당하는 정보를 각 엔트리에 저장하는 제1 검색 테이블(100)과, 상기 제2 검색 단위에 해당하는 정보를 각 엔트리에 저장하는 제2 검색 테이블(200)과, 입력 프레임의 제1 검색키를 추출하여 상기 제1 검색 테이블(100)을 검색하고, 제2 검색키를 추출하여 상기 제2 검색 테이블(200)을 검색하여, 일치하는 엔트리를 찾는 제어 모듈(300)을 포함한다.
상기에서, 제1 검색 테이블(100)과 제2 검색 테이블(200)은 내용 번지 메모리(CAM)에 구현된다.
상기 구간 매칭 검색 장치에 있어서, 제1 검색 단위는 접근 제어 목록의 수준이나 서비스 수준을 확인하기 위해서 사용되는 5-투플(tuple) 정보 중에서 송신 IP 주소와 수신 IP 주소로 설정하고, 제2 검색 단위는 송신 포트와 수신 포트와 프로토콜 번호로 설정한다.
더하여, 상기 제2 검색 테이블(200)은, 각 엔트리에 해당 제2 검색 단위에 대한 정보와 연관되는 제1 검색 단위에 대한 정보가 저장된 제1 검색 테이블(100)의 엔트리 번지 정보를 더 저장하는 것이 바람직하다.
즉, 상기 제1 검색 테이블(100)의 각 엔트리에는 송수신 IP 주소가 기록되고, 상기 제2 검색 테이블(200)에는 송수신 포트와 프로토콜 번호 및 그 규칙에 관련된 송수신 IP 주소가 기록된 엔트리의 번지 정보가 더 기록된다.
이때, 상기 제어 모듈(300)은, 검색할 패킷이 입력되면, 해당 패킷의 송수신 IP 주소로 제1 검색키를 생성하고, 해당 패킷의 송수신 포트 및 프로토콜번호로 제2 검색키를 생성한 후, 상기 제1 검색키로 제1 검색 테이블(100)을 검색하여 일치하는 엔트리가 존재하는 경우, 해당 엔트리의 번지를 상기 제2 검색키와 합하여 새로운 제2 검색키를 생성하고, 상기 새로운 제2 검색키와 일치하는 엔트리를 상기 제2 검색 테이블(200)에서 검색한다. 그리고 나서, 제2 검색 테이블(200)에 일치하는 엔트리가 존재하면, 해당 엔트리의 번지를 최종 매핑 번지로서 출력한다.
이때 상기 구간 매칭 검색 장치는, 최종 매핑 번지별로 해당 프레임에 대한 제어 정보를 저장하는 매핑 테이블(400)을 더 포함할 수 있으며, 제어모듈(300)은 상기 매핑 테이블(400)에서 검색된 최종 매핑 번지의 제어 정보를 읽어와 출력한다.
이때, 상기 매핑 테이블(400)에 저장되는 제어 정보는 출력 포트 정보, 접근 제어 수준 정보, 또는 서비스 수준 정보 중에서 하나인 것이 바람직하다.
이하, 본 발명에 의한 제1,2 검색 테이블의 구성 및 구현 과정에 대하여 예를 들어 설명한다.
도 4는 본 발명을 설명하기 위하여 제시된 라우터에 적용할 규칙의 일례를 나타낸 것이다.
도 4를 참조하면, 규칙들은, 5-투플 정보, 즉, 송신지 IP 주소와, 목적지 IP 주소와, 송신 포트 번호와, 목적 포트 번호와, 프로토콜 번호로 구성되며, 규칙 1의 흐름은 서비스 수준이 레벨 1로 적용되며, 규칙 2의 흐름은 레벨 2의 서비스 수준으로 적용되며, 규칙 3의 흐름은 레벨 3의 서비스 수준으로 적용된다.
상기 도 4에 도시한 규칙 중에서 '*'는 어떠한 값이 와도 상관없는 경우임을 나타내며, 검색 테이블 구현 시 무시 비트에 해당한다.
본 발명에서는 상기와 같은 5-투플로 이루어지는 규칙을 두 개의 검색 단위, 즉, 제1 검색 단위와 제2 검색 단위로 구분하는데, 이를 상기 도 4의 규칙에 적용하며, 도 5와 같이 변환 가능하다.
상기 실시 예는, 기본 검색 단위가 64 비트라고 가정한 것이다.
따라서 상기 104 비트의 5-투플 정보로 이루어지는 각 규칙을 기본 검색 단위 64비트를 기준으로, 각 64비트와 40비트로 나누어 작성한다. 이때, 제2 검색 단위의 24 비트는 사용하지 않게 된다.
다시 도 5를 참조하면, 상기 도 4에 보인 규칙 1은 도 5에서 두 개의 엔트리(0번, 1번)에 기록되고, 규칙 2는 4 개의 엔트리(2번~5번)로 기록되며, 규칙 3은 4개의 엔트리(6~9번)에 기록된다. 즉, 규칙 1은 송수신 IP 주소와, 프로토콜 번호만을 필요로 하므로, 두 개의 엔트리로 기록될 수 있으나, 규칙 2는 목적 포트 번호에 의해서 2개의 엔트리를 더 필요로 하게 된 것이고, 규칙 3은 송신 포트 번호에 의해서 2개의 엔트리를 더 필요로 하게 된 것이다.
본 발명은 상기와 같이 도 5에 보인 변환 테이블을 두 개로 나누어 제1,2 검 색 테이블을 구현한다.
도 6의 (a)와 (b)는 상기 도 5의 변환 테이블로부터 구현된 본 발명에 의한 제1,2 검색 테이블의 예를 나타낸 것으로서, 도 6의 (a)는 도 5에 변환 테이블에서, 각 규칙들의 송수신 IP 주소에 관련된 엔트리만을 모은 제1 검색 테이블이고, (b)는 각 규칙들의 송수신 포트 번호 및 프로토콜 번호에 관련된 엔트리만을 모은 제2 검색 테이블이다.
상기 도 6의 (a)를 참조하면, 제1 검색 테이블은 IP 주소만으로 규칙 엔트리가 구성되기 때문에, 각 규칙이 일대일로 변환되어 하나의 규칙에 하나의 테이블 엔트리만 할당된다. 그러나 도 6의 (b)에 나타낸 제2 검색 테이블은, 구간 매칭 검색 방법이 적용되는 송수신 포트가 포함되어 있기 때문에, 하나의 규칙에 대하여 다수 개의 엔트리가 할당된다. 그러나 본 발명에 의해서, 규칙 하나로 두 검색 테이블을 구성하면, 기존 방법에 비하여, 기본 메모리 영역이 절약할 수 있다.
더하여, 상기 제2 검색 테이블의 경우, 총 64 비트 중에서 송수신 포트와 프로토콜 번호를 할당하고 남은 24비트를 상기 제1 검색 테이블과의 상관 관계 설정을 위해 사용할 수 있다.
즉, 64 비트 중 24비트에 해당 엔트리와 관련된 제1 검색 테이블의 엔트리의 번지를 기록하고, 나머지 40비트에 송수신 포트와 프로토콜번호를 기록한다. 상기 도 6에서, "x+n"(n은 0, 1, 2, 3, ...)은 제1 검색 테이블의 각 엔트리 번지를 나타내고, "y+n"(n은 0, 1, 2, 3, ...)은 제2 검색 테이블의 엔트리 번지를 나타내는 것으로서, 제 2 검색 테이블의 y+1, y+2 번지의 규칙은 제1 검색 테이블의 x+1 번 지의 규칙과 상관이 있음을 알 수 있다.
도 6은 본 발명에 있어서, 상기와 같이 구성된 제1,2 검색 테이블을 이용하여 규칙을 검색하는 과정을 나타낸 흐름도이다.
도 6을 참조하면, 본 발명은 각 패킷에 적용할 규칙을 제1 검색 단위와 제2 검색 단위로 구분하여, 각각 제1,2 검색 테이블에 저장한 상태에서, 프레임이 입력되면(S71), 입력 프레임의 헤더 정보를 추출하여 제1,2 검색키를 생성한다(S72).
상기에서 제1 검색키는 입력 프레임의 헤더에 실린 송수신 IP 주소가 되며, 제2 검색키는 입력 프레임의 헤더에 실린 송수신 포트 번호와 프로토콜번호가 된다.
그리고 상기 제1 검색키와 제2 검색키로 각각 제1,2 검색 테이블을 검색하는데, 바람직하게는, 먼저 제1 검색키를 이용하여 제1 검색 테이블에 일치하는 규칙이 존재하는 지를 확인한다(S73).
그리고 상기 검색 결과, 상기 제1 검색 테이블에 제1 검색키와 일치하는 엔트리가 존재하면, 해당 엔트리의 번지가 더 포함되도록 상기 제2 검색키를 수정한다(S74).
그리고 상기 수정된 제2 검색키로 제2 검색 테이블을 검색하여 일치하는 엔트리가 존재하는 지를 확인한다(S75).
상기에서, 제2 검색 테이블에 수정된 제2 검색키와 일치하는 엔트리가 존재하면, 해당 프레임에 적용할 규칙이 있는 것으로 판단하고(S76), 상기에서, 단계(S73)에서 제1 검색 테이블에 일치하는 엔트리가 존재하지 않거나, 단계(S75)에 서 제2 검색테이블에 일치하는 엔트리가 존재하지 않는 경우에는, 입력 프레임에 적용할 규칙이 없는 것으로 판단한다(S77).
상기에서, 적용할 규칙이 있는 것으로 판단되는 경우, 상기 제2 검색 테이블의 해당 엔트리 번지를 확인하고, 각 규칙별 제어 정보가 저장된 매핑 테이블의 동일 번지의 엔트리를 확인하여, 적용할 제어 정보를 가져온다.
접근 제어 또는 QoS를 지원하는 라우터의 경우, 상기 제어 정보는, 출력 포트 정보, 접근 제어 수준 정보, 또는 서비스 수준 정보 중에서 하나가 된다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
도 1은 본 발명이 적용되는 라우터 시스템의 일 예를 도시한 블럭도,
도 2는 상기 라우터 시스템에서의 패킷 처리부의 상세 구성을 나타낸 블럭도,
도 3은 본 발명에 의한 구간 매칭 검색 장치를 도시한 블록도,
도 4는 본 발명의 실시 예를 설명하기 위한 규칙의 예시도,
도 5는 도 4에 보인 규칙을 본 발명에 따른 검색 테이블로 변환하는 방법을 설명하기 위한 도면,
도 6은 본 발명에 의해 구현된 제1,2 검색 테이블의 예시도, 그리고
도 7은 본 발명에 의한 구간 매칭 검색 방법을 나타낸 흐름도이다.
Claims (9)
- 규칙을 제1 검색 단위와 제2 검색 단위로 구분하여, 상기 제1 검색 단위에 해당하는 정보를 각 엔트리에 저장하는 제1 검색 테이블;상기 제2 검색 단위에 해당하는 정보를 각 엔트리에 저장하는 제2 검색 테이블; 및입력 프레임의 제1 검색키를 추출하여 상기 제1 검색 테이블을 검색하고, 제2 검색키를 추출하여 상기 제2 검색 테이블을 검색하여, 일치하는 엔트리를 찾는 제어 모듈을 포함하는 내용 번지 메모리를 이용한 구간 매칭 검색 장치.
- 제1항에 있어서,상기 제1 검색 단위는 5-투플(tuple) 정보 중에서 송신 IP 주소와 수신 IP 주소이고, 제2 검색 단위는 송신 포트와 수신 포트와 프로토콜 번호인 것을 특징으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 장치.
- 제1항 또는 제2항에 있어서, 상기 제2 검색 테이블은,각 엔트리에 해당 제2 검색 단위에 대한 정보와 연관되는 제1 검색 단위에 대한 정보가 저장된 제1 검색 테이블의 엔트리 번지 정보를 더 저장하는 것을 특징 으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 장치.
- 제3항에 있어서, 상기 제어 모듈은제1 검색 테이블을 검색하여 일치하는 엔트리가 존재하는 경우, 해당 엔트리의 번지를 상기 제2 검색키와 합하여 새로운 제2 검색키를 생성하고, 상기 새로운 제2 검색키와 일치하는 엔트리를 상기 제2 검색 테이블에서 검색하는 것을 특징으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 장치.
- 규칙을 제1 검색 단위와 제2 검색 단위로 구분하여, 각각 제1,2 검색 테이블에 저장하는 단계;입력 프레임으로부터 제1,2 검색키를 추출하는 단계;상기 제1 검색키와 제2 검색키로 각각 제1,2 검색 테이블을 검색하는 단계; 및상기 검색 결과를 조합하여, 상기 입력 프레임의 적용할 규칙의 제어 정보를 확인하는 단계를 포함하는 내용 번지 메모리를 이용한 구간 매칭 검색 방법.
- 제5항에 있어서,상기 제1 검색 단위는 5-투플(tuple) 정보 중에서 송신 IP 주소와 수신 IP 주소이고, 제2 검색 단위는 송신 포트와 수신 포트와 프로토콜 번호인 것을 특징으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 방법.
- 제5항 또는 제6항에 있어서, 상기 규칙을 제1 검색 단위와 제2 검색 단위로 구분하여, 각각 제1,2 검색 테이블에 저장하는 단계는,제2 검색 테이블의 각 엔트리에 해당 제2 검색 단위에 대한 정보와 연관되는 상기 제1 검색 단위에 대한 정보가 저장된 제1 검색 테이블의 엔트리 번지 정보를 더 저장하는 것을 특징으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 방법.
- 제5항 또는 제6항에 있어서, 제1,2 검색 테이블을 검색하는 단계는상기 제1 검색키와 일치하는 엔트리를 제1 검색 테이블에서 검색하는 과정;상기 제1 검색 테이블에 제1 검색키와 일치하는 엔트리가 존재하면, 해당 엔트리의 번지가 더 포함되도록 상기 제2 검색키를 수정하는 과정; 및상기 수정된 제2 검색키로 제2 검색 테이블을 검색하는 과정을 포함하는 것을 특징으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 방법.
- 제5항 또는 제6항에 있어서,매핑 테이블에 규칙별 제어정보를 저장하되, 상기 제2 검색 테이블의 각 엔트리 번지와 일치하는 번지에 해당 규칙의 제어 정보가 저장되도록 하는 단계를 더 포함하는 것을 특징으로 하는 내용 번지 메모리를 이용한 구간 매칭 검색 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060120449 | 2006-12-01 | ||
KR20060120449 | 2006-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080050246A true KR20080050246A (ko) | 2008-06-05 |
KR100862195B1 KR100862195B1 (ko) | 2008-10-09 |
Family
ID=39805739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070069793A KR100862195B1 (ko) | 2006-12-01 | 2007-07-11 | 내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100862195B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488189A (zh) * | 2015-12-02 | 2016-04-13 | 成都科来软件有限公司 | 一种基于大数据量的五元组查询方法及装置 |
WO2021011241A1 (en) * | 2019-07-15 | 2021-01-21 | Micron Technology, Inc. | Ranged content-addressable memory |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100541846B1 (ko) * | 2002-11-27 | 2006-01-11 | 한국전자통신연구원 | 3 단계 테이블로 구성된 아이피 주소 룩업 시스템 및 그방법 |
-
2007
- 2007-07-11 KR KR1020070069793A patent/KR100862195B1/ko not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488189A (zh) * | 2015-12-02 | 2016-04-13 | 成都科来软件有限公司 | 一种基于大数据量的五元组查询方法及装置 |
CN105488189B (zh) * | 2015-12-02 | 2019-02-12 | 成都科来软件有限公司 | 一种基于大数据量的五元组查询方法及装置 |
WO2021011241A1 (en) * | 2019-07-15 | 2021-01-21 | Micron Technology, Inc. | Ranged content-addressable memory |
US11017857B2 (en) | 2019-07-15 | 2021-05-25 | Micron Technology, Inc. | Ranged content-addressable memory |
Also Published As
Publication number | Publication date |
---|---|
KR100862195B1 (ko) | 2008-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101539211B1 (ko) | 계층적으로 구조화된 가변―길이 식별자를 갖는 패킷을 전송하기 위한 시스템 | |
US8730967B1 (en) | Policy-based virtual routing and forwarding (VRF) assignment | |
US7218632B1 (en) | Packet processing engine architecture | |
US7039018B2 (en) | Technique to improve network routing using best-match and exact-match techniques | |
US7787466B1 (en) | Nexthop to a forwarding table | |
US7260096B2 (en) | Method and router for forwarding internet data packets | |
US7567561B2 (en) | Packet communication node apparatus with extension modules | |
US6581106B1 (en) | Fast address lookup in routing tables | |
JP2000196670A (ja) | 高速検索方法及び高速検索装置 | |
US20180367431A1 (en) | Heavy network flow detection method and software-defined networking switch | |
US7136385B2 (en) | Method and system for performing asymmetric address translation | |
US7903658B1 (en) | Forwarding tree having multiple bit and intermediate bit pattern comparisons | |
FI119166B (fi) | Menetelmä ja laitteisto palvelunlaatuluokasta riippuvan reitityspäätöksen muodostamiseksi | |
US7042884B2 (en) | Network address forwarding table lookup apparatus and method | |
US20070041355A1 (en) | Network physical connection inference for IP tunnels | |
US20030236913A1 (en) | Network address translation for internet control message protocol packets | |
US20050265340A1 (en) | Network address-port translation apparatus and method | |
KR100862195B1 (ko) | 내용 번지 메모리를 이용한 구간 매칭 검색 방법 및 장치 | |
US20070104200A1 (en) | Network device with routing function and policy route setting method thereof | |
CN105721627B (zh) | 一种ip网络流数据在线匿名化方法 | |
US10432526B2 (en) | Enhanced traffic distribution using VRF tables | |
US8873555B1 (en) | Privilege-based access admission table | |
US7426608B1 (en) | Method and apparatus for constructing a search key | |
US9014195B2 (en) | Packet forwarding method and system | |
US7570644B2 (en) | Routing method for a telecommunications network and router for implementing said method |
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 | ||
LAPS | Lapse due to unpaid annual fee |