KR20130093707A - 패킷 분류 장치 및 그것의 패킷 분류 방법 - Google Patents

패킷 분류 장치 및 그것의 패킷 분류 방법 Download PDF

Info

Publication number
KR20130093707A
KR20130093707A KR1020110141297A KR20110141297A KR20130093707A KR 20130093707 A KR20130093707 A KR 20130093707A KR 1020110141297 A KR1020110141297 A KR 1020110141297A KR 20110141297 A KR20110141297 A KR 20110141297A KR 20130093707 A KR20130093707 A KR 20130093707A
Authority
KR
South Korea
Prior art keywords
packet
content
address
search key
search
Prior art date
Application number
KR1020110141297A
Other languages
English (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 KR1020110141297A priority Critical patent/KR20130093707A/ko
Priority to US13/613,978 priority patent/US20130163595A1/en
Publication of KR20130093707A publication Critical patent/KR20130093707A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

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

Abstract

본 발명은 패킷 처리 장치에 관한 것이다. 본 발명의 패킷 처리 장치는 패킷을 검색에 필요한 영역에 따라 분류하고, 분류된 패킷에 대응되는 검색키를 제공하는 패킷 프로세서, 검색키를 디코딩하여 주소기반의 검색키와 내용기반의 검색키를 분류하는 검색키 분배부, 주소기반의 검색키에 근거하여 주소기반의 검색을 수행하는 주소기반 내용 주소화 메모리부, 내용기반의 검색키에 근거하여 내용기반의 검색을 수행하는 내용기반 내용 주소화 메모리부, 및 주소기반 검색과 내용기반 검색에 따라 검색된 결과에 근거하여 패킷 프로세서로부터 전달된 패킷에 대응되는 포트로의 출력을 처리하는 패킷 포워딩부를 포함한다.

Description

패킷 분류 장치 및 그것의 패킷 분류 방법{PACKET CLASSIFICATION APPARATUS AND METHOD FOR CLASSFYING PACKET THEREOF}
본 발명은 통신 시스템에 관한 것으로서, 특히 패킷을 사용하는 통신 시스템에서 패킷 처리 속도를 향상시킨 패킷 분류 장치 및 그것의 패킷 분류 방법에 관한 것이다.
기존의 통신 시스템은 방송 시스템과의 융합을 통해 네트워크는 더욱 복잡하고, 많은 대역을 요구하는 새로운 통신 서비스가 계속해서 출현하고 있다. 이에 통신 시스템 상에서 트래픽의 양은 매우 빠르게 증가하고 있다.
사용자 요구의 증가에 따라 통신 시스템은 다양한 서비스 패킷을 구분하고, 각 사용자에 의해 요구된 품질과 서비스를 보장해야 한다. 이를 위해서, 패킷을 처리하는 스위치와 라우터 등과 같은 네트워크 장비들은 기존 인터넷 프로토콜(IP: Internet Protocol) 패킷의 주소 영역을 이용한 일괄 처리 방식을 벗어나 각 패킷들에 대해 각 패킷의 분류를 세분화한 맞춤형 처리 방식으로 진화되어야 한다. 패킷별로 세분화된 맞춤형 처리 서비스를 제공하기 위해서 네트워크 장비들은 패킷의 속성을 구체적으로 파악하고, 패킷별 차등화된 분류를 통해 패킷을 처리해야 한다. 패킷의 분류를 위해서 네트워크 장비들은 패킷의 헤더뿐만 아니라 패킷의 내용까지 사용해야할 수도 있다. 네트워크 장비들은 패킷을 빠르게 분류하기 위해서는 패킷에 대한 빠른 룩업(lookup)이 선행되어야 한다. 또한, 네트워크 장비들은 많은 데이터 패턴에 대한 고속 룩업 기능을 수행하기 위해서는 내용 주소화 메모리(Content Addressable Memory, 이하 'CAM'이라 칭하기로 함)들 또는 터너리 내용 주소화 메모리(Ternary Content Addressable Memory, 이하 'TCAM'이라 칭하기로 함)를 포함한다.
TCAM은 인터넷 프로토콜 룩업과 패킷 분류를 위한 하드웨어 솔루션으로 주로 고속 라우터 또는 3계층 스위치에서 인터넷 프로토콜 주소 검색의 라우팅 테이브을 저장하는데 사용될 수 있다. CAM이 '0'과 '1'의 2개의 검색어를 사용할 수 있는 반면, TCAM은 3개의 로직 상태 '0', '1', 및 '*(돈 캐어(don't care))'의 3개의 검색어를 사용할 수 있다. 즉, TCAM은 3개의 로직 상태(0, 1, *) 중의 하나를 저장할 수 있는 다중 셀로 구성될 수 있다.
이러한 CAM 또는 TCAM을 사용하여 네트워크 장치들은 패킷을 분류할 수 있다. CAM 또는 TCAM은 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory)로 구현된다. 따라서, 단일 CAM 또는 단일 TCAM을 사용하여 패킷을 분류하는 네트워크 장치들은 패킷의 크기가 증가하게 되면 CAM 또는 TCAM에 포함되어야 하는 메모리의 크기가 증가되어야 한다. 하지만, CAM 또는 TCAM은 제작 공정 상의 제한된 기술로 인해 처리 속도와 제작 용량의 한계가 존재한다. 이로 인해 기존의 네트워크 장치에서는 패킷의 처리 속도 향상 및 패킷 처리의 유연성을 갖기 어렵다는 문제점이 있었다.
본 발명의 목적은 고속의 패킷 처리가 가능한 패킷 처리 장치 및 그것의 패킷 분류 방법을 제공함에 있다.
본 발명의 다른 목적은 패킷 처리에 대한 유연성을 갖는 패킷 처리 장치 및 그것의 패킷 분류 방법을 제공함에 있다.
본 발명의 패킷 처리 장치는 패킷을 검색에 필요한 영역에 따라 분류하고, 분류된 패킷에 대응되는 검색키를 제공하는 패킷 프로세서, 상기 검색키를 디코딩하여 주소기반의 검색키와 내용기반의 검색키를 분류하는 검색키 분배부, 상기 주소기반의 검색키에 근거하여 주소기반의 검색을 수행하는 주소기반 내용 주소화 메모리부, 상기 내용기반의 검색키에 근거하여 내용기반의 검색을 수행하는 내용기반 내용 주소화 메모리부, 및 상기 주소기반 검색과 상기 내용기반 검색에 따라 검색된 결과에 근거하여 패킷 프로세서로부터 전달된 패킷에 대응되는 포트로의 출력을 처리하는 패킷 포워딩부를 포함한다.
이 실시예에 있어서, 상기 패킷 프로세서는 상기 패킷에 대한 검색키를 제공하기 위한 룩업 테이블을 관리한다.
이 실시예에 있어서, 상기 룩업 테이블은 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함한다.
이 실시예에 있어서, 상기 검색키 분배부는 상기 주소기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부로 출력하고, 상기 내용기반 패킷을 구분하기 위한 검색키는 상기 내용기반 내용 주소화 메모리부로 출력하고, 상기 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부와 상기 내용기반 내용 주소화 메모리부에 동시에 출력한다.
이 실시예에 있어서, 상기 패킷 프로세서는 저장된 마스크 비트 영역에 근거하여 상기 패킷의 주소 영역에 대한 매칭을 수행한다.
이 실시예에 있어서, 상기 패킷 프로세서는 상기 마스크 비트 영역과 매칭되는 패킷에 대해 상기 패킷 포워딩 블록으로 전달한다.
이 실시예에 있어서, 상기 패킷 포워딩부는 상기 패킷 프로세서로부터 전달된 패킷을 포워딩한다.
이 실시예에 있어서, 상기 주소기반 내용 주소화 메모리부는 병렬 검색 처리를 위한 복수의 주소기반 내용 주소화 메모리를 포함한다.
이 실시예에 있어서, 상기 복수의 주소기반 내용 주소화 메모리 각각의 크기와 검색키의 비트 길이는 상이하게 구성된다.
이 실시예에 있어서, 상기 복수의 주소기반 내용 주소화 메모리 각각은 패킷의 구분된 주소 영역 각각을 처리한다.
이 실시예에 있어서, 상기 내용기반 내용 주소화 메모리는 병렬 검색 처리를 위한 복수의 내용기반 내용 주소화 메모리를 포함한다.
이 실시예에 있어서, 상기 복수의 내용기반 내용 주소화 메모리 각각의 크기와 검색키의 비트 길이는 상이하게 구성된다.
이 실시예에 있어서, 상기 패킷 포워딩부는 상기 패킷의 폐기가 필요함을 판단하면 상기 패킷을 폐기하고, 상기 패킷의 수정이 필요함을 판단하면 상기 패킷의 정보를 수정한다.
본 발명의 패킷 처리 장치의 패킷 처리 방법은 패킷을 검색에 필요한 영역에 따라 분류하는 단계, 상기 분류된 패킷에 대응되는 검색키의 디코딩을 통해 주소기반의 검색키와 내용기반의 검색키를 분배하는 단계, 상기 분배된 주소기반 검색키와 내용기반 검색키 각각에 대해 병렬로 검색을 수행하는 단계, 상기 검색결과에 따라 상기 패킷을 대응되는 포트로 포워딩되도록 출력하는 단계를 포함한다.
이 실시예에 있어서, 상기 검색키를 분배하는 단계는 상기 검색키를 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함한 룩업 테이블을 사용하여 분류하는 단계를 포함한다.
이 실시예에 있어서, 상기 병렬로 검색을 수행하는 단계는 상기 주소기반 패킷을 구분하기 위한 검색키는 주소기반 검색키에 대한 검색을 수행하는 단계, 상기 내용기반 패킷을 구분하기 위한 검색키는 내용기반 검색키에 대한 검색을 수행하는 단계, 및 상기 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 주소기반 검색키에 대한 검색과 내용기반 검색키에 대한 검색을 동시에 수행하는 단계를 포함한다.
이 실시예에 있어서, 상기 병렬로 검색을 수행하는 단계는 상기 분배된 주소기반 검색키들에 대해 병렬로 검색을 수행하는 단계, 및 상기 분배된 내용기반 검색키들에 대해 병렬로 검색을 수행하는 단계를 포함한다.
본 발명의 패킷 처리 장치는 주소기반 내용 주소화 메모리부와 내용기반 내용 주소화 메모리부로 이원화하여 병렬 처리함에 따라 패킷 처리 속도가 향상될 수 있다. 또한, 패킷 처리 장치는 패킷에 대해 주소기반 및 내용기반에 대응되는 패킷을 대응되는 내용 주소화 메모리를 통해 처리함에 따라 패킷 처리에 대한 검색의 유연성이 향상될 수 있다.
도 1은 본 발명의 실시예에 따른 패킷 처리 장치를 도시한 도면,
도 2는 본 발명의 실시예에 따른 주소기반 내용 주소화 메모리부의 구조를 도시한 도면, 및
도 3은 본 발명의 실시예에 따른 내용기반 내용 주소화 메모리부의 구조를 도시한 도면이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다.
본 발명에서 제안된 패킷 처리 장치는 통신 시스템 또는 컴퓨터 시스템 등에서 사용될 수 있으며, 일예로 통신 시스템 상의 네트워크 장치, 일예로 라우터, 스위치 등에 구현될 수 있다. 하지만, 라우터나 스위치 이외의 다른 네트워크 장치들에도 고속의 패킷 처리를 위해 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 패킷 처리 장치를 도시한 도면이다.
도 1을 참조하면, 패킷 처리 장치(100)는 패킷 프로세서(110), 검색키 분배부(120), 주소기반 내용 주소화 메모리부(130), 내용기반 내용 주소화 메모리부(140), 및 패킷 포워딩부(150)를 포함한다.
패킷 프로세서(110)는 수신된 패킷을 세부적으로 분류하기 위해 미리 검색에 필요한 영역에 따라 분류하는 전처리 블록이다. 패킷 프로세서(110)는 패킷을 검색에 필요한 영역에 따라 분류하고, 분류된 패킷에 대응되는 검색키를 제공한다. 패킷 프로세서(110)는 패킷을 검색 영역에 따라 구분할 수 있다. 예를 들어, 검색 영역이 패킷의 헤더 주소일 경우 패킷 프로세서(110)는 주소기반 패킷으로 구분한다. 검색 영역이 패킷의 내용일 경우, 패킷 프로세서(110)는 내용기반 패킷으로 구분한다. 또한, 검색 영역이 패킷의 주소와 내용 모두일 경우, 패킷 프로세서(110)는 주소기반 패킷과 내용기반 패킷으로 구분할 수 있다.
패킷 프로세서(110)는 패킷을 구분하기 위한 전처리 룩업 방법을 상술한 방법 이외에도 다른 방법들로 구현할 수 있다. 또한, 패킷 프로세서(110)의 룩업 방법은 프로세서나 메모리를 이용하여 해쉬 기능을 구현할 수 있다. 또한, 패킷 프로세서(110)의 룩업 방법은 라우팅 테이블의 관리가 용이한 터너리 내용 주소화 메모리(Ternary Content Addressable Memory, 이하 'TCAM'이라 칭하기로 함)을 이용하여 구현할 수도 있다.
패킷 프로세서(110)는 미리 설정된 시간 간격으로 룩업 테이블에 대해 삭제, 추가, 및 업데이트 등을 통해 룩업 테이블을 관리할 수 있다. 상술한 룩업 방법을 사용하면, 룩업 테이블은 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함할 수 있다. 패킷 프로세서(110)는 룩업 테이블을 사용하면, 패킷에 따라 필요한 분류 기반에 대응되는 검색키를 제공할 수 있다.
또한, 패킷 프로세서(110)는 마스크 비트 영역에 대한 정보가 저장될 수 있고, 패킷의 일부 주소 영역을 마스크 비트 영역 정보를 사용하여 매칭할 수 있다. 이때, 패킷 프로세서(110)는 마스크 비트 영역과 매칭되는 패킷은 주소기반 내용 주소화 메모리부(130)와 내용기반 내용 주소화 메모리부(140)를 거치지 않고, 패킷 포워딩부(150)로 직접 출력한다.
검색키 분배부(120)는 검색키를 디코딩하여 주소기반의 검색키와 내용기반의 검색키를 분류한다. 검색키 분배부(120)는 주소기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부(130)로 출력한다. 검색키 분배부(120)는 내용기반 패킷을 구분하기 위한 검색키는 내용기반 내용 주소화 메모리부(140)로 출력한다. 또한, 검색키 분배부(120)는 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 주소기반 내용 주소화 메모리부(130)와 내용기반 내용 주소화 메모리부(140)에 동시에 출력한다.
검색키 분배부(120)는 주소기반 내용 주소화 메모리부(130)와 내용기반 내용 주소화 메모리부(140) 각각에 대해 복수의 내용 주소화 메모리들을 포함할 때에도 검색키 디코딩 기능이 제공되어야 한다. 검색키 분배부(120)는 패킷 프로세서(110)의 업데이트에 따른 정보를 제공받을 수 있다. 일예로, 검색키 분배부(120)는 패킷 프로세서(110)로부터 업데이트되는 패킷 프로세서(110)의 룩업 테이블 정보를 제공받을 수 있다.
주소기반 내용 주소화 메모리부(130)는 주소기반의 검색키에 근거하여 주소기반의 검색을 수행한다. 주소기반 내용 주소화 메모리부(130)는 적어도 하나의 주소기반 내용 주소화 메모리(A-CAM: Address based-Content Addressable Memory)를 포함할 수 있다. 주소기반 내용 주소화 메모리부(130)는 입력된 검색키에 근거한 검색을 수행하고, 검색된 결과를 패킷 포워딩부(150)로 출력한다. 이때, 주소기반 내용 주소화 메모리부(130)는 검색 결과를 패킷 처리를 위해 패킷 프로세서(110)로 출력할 수도 있다.
내용기반 내용 주소화 메모리부(140)는 내용기반의 검색키에 근거하여 내용기반의 검색을 수행한다. 내용기반 내용 주소화 메모리부(130)는 적어도 하나의 내용기반 내용 주소화 메모리(C-CAM: Content based-Content Addressable Memory)를 포함할 수 있다. 내용기반 내용 주소화 메모리부(140)는 입력된 검색키에 근거한 검색을 수행하고, 검색된 결과를 패킷 포워딩부(150)로 출력한다. 이때, 내용기반 내용 주소화 메모리부(140)는 검색 결과를 패킷 처리를 위해 패킷 프로세서(110)로 출력할 수도 있다.
주소기반 내용 주소화 메모리부(130)와 내용기반 내용 주소화 메모리부(140)는 패킷의 주소에 대한 검색과 패킷의 내용에 대한 검색을 각각 수행함으로서, 패킷의 주소와 내용 검색을 동시에 병렬로 수행할 수 있다. 또한, 내용 주소화 메모리부들(130, 140) 각각은 복수의 내용 주소화 메모리(CAM: Content Addressable Memory)들을 포함함으로써 여러 개의 검색키들을 동시에 검색할 수도 있다.
주소기반 내용 주소화 메모리부(130)와 내용기반 내용 주소화 메모리부(140)는 각각 내용 주소화 메모리(CAM) 또는 터너리 내용 주소화 메모리(TCAM)로 구성될 수 있다.
패킷 포워딩부(150)는 상기 주소기반 검색과 상기 내용기반 검색에 따라 검색된 결과에 근거하여 패킷 프로세서(110) 등으로부터 전달된 패킷에 대응되는 포트로의 출력을 처리한다. 또한, 패킷 포워딩부(150)는 미리 결정된 규칙에 따라 패킷의 정보를 수정하거나 패킷의 폐기 등을 수행할 수도 있다.
이와 같이, 본 발명의 패킷 처리 장치(100)는 이원화된 구조를 갖는 주소기반 내용 주소화 메모리부(130)와 내용기반 내용 주소화 메모리부(140)를 포함함에 따라 패킷 처리 속도가 향상될 수 있다. 또한, 패킷의 주소와 내용을 각각 고려한 내용 주소화 메모리부들(130, 140)을 사용함에 따라 양적인 검색 능력뿐만 아니라 질적인 검색 능력이 향상될 수 있다. 따라서, 패킷 처리 장치(100)는 패킷 처리에 대한 검색의 유연성이 향상될 수 있다.
도 2는 본 발명의 실시예에 따른 주소기반 내용 주소화 메모리부의 구조를 도시한 도면이다.
도 2를 참조하면, 주소기반 내용 주소화 메모리부(130)는 복수의 주소기반 내용 주소화 메모리(131, 132, 13n)을 포함한다.
n 개의 주소기반 내용 주소화 메모리들(131, 132, 13n)은 룩업 테이블이 확장될 때에는 동일한 정보를 포함할 수 있다. 하지만, n 개의 주소기반 내용 주소화 메모리들(131, 132, 13n)이 검색 영역 확장을 위한 경우, 주소기반 내용 주소화 메모리들(131, 132, 13n) 각각은 서로 다른 룩업 테이블을 통해 검색되므로 다른 비트 길이를 갖는 검색키 또는 다른 메모리 크기를 가질 수 있다.
일예로, 제 1 주소기반 내용 주소화 메모리(131)는 패킷 주소에 관련된 검색키가 제공되면, 제 1 주소기반 내용 주소화 메모리(131)의 공간 전체를 탐색하여 해당 검색키와 매칭되는 주소 또는 검색키에 대응되는 데이터를 출력한다. 나머지 제 2 주소기반 내용 주소화 메모리들(132) 내지 제 n 주소기반 내용 주소화 메모리들(13n)도 제 1 주소기반 내용 주소화 메모리(131)와 유사한 동작을 수행할 수 있다.
일예로, 패킷의 주소 영역을 A 영역과 B 영역으로 구분한다고 가정한다. 이때, A 영역과 관련된 테이블의 내용은 제 1 주소기반 내용 주소화 메모리(131)에 저장되고, B 영역과 관련된 테이블의 내용은 제 2 주소기반 내용 주소화 메모리(132)에 저장될 수 있다. 이때, 패킷 프로세서(110)가 패킷 전 처리 동작 시 제 1 주소기반 내용 주소화 메모리(131)와 제 2 주소기반 내용 주소화 메모리(132)가 구분될 수 있는 검색키를 제공할 수 있다. 이때, 주소기반 내용 주소화 메모리들(131, 132) 각각은 테이블 크기와 검색키 크기가 서로 다르기 때문에 검색 소요 시간이 상이할 수 있다. 하지만, 두 개의 주소기반 내용 주소화 메모리들(131, 132) 각각이 독립적으로 동작함에 따라 여러개의 검색키를 동시에 검색할 수 있다.
따라서, 주소기반 내용 주소화 메모리들(131, 132, 13n)은 데이터들을 병렬로 처리함에 따라 패킷 처리 성능을 향상시킬 수 있다.
도 3은 본 발명의 실시예에 따른 내용기반 내용 주소화 메모리부의 구조를 도시한 도면이다.
도 3을 참조하면, 내용기반 내용 주소화 메모리부(140)는 복수의 내용기반 내용 주소화 메모리(141, 142, 14n)을 포함한다.
n 개의 내용기반 내용 주소화 메모리들(141, 142, 14n)은 룩업 테이블이 확장될 때에는 동일한 정보를 포함할 수 있다. 하지만, n 개의 내용기반 내용 주소화 메모리들(141, 142, 14n)이 검색 영역 확장을 위한 경우, 내용기반 내용 주소화 메모리들(141, 142, 14n) 각각은 서로 다른 룩업 테이블을 통해 검색되므로 다른 비트 길이를 갖는 검색키 또는 다른 메모리 크기를 가질 수 있다.
일예로, 제 1 내용기반 내용 주소화 메모리(141)는 패킷 내용에 관련된 검색키가 제공되면, 제 1 내용기반 내용 주소화 메모리(141)의 공간 전체를 탐색하여 해당 검색키와 매칭되는 데이터를 출력한다. 나머지 제 2 내용기반 내용 주소화 메모리(142) 내지 제 n 내용기반 내용 주소화 메모리(14n)도 제 1 내용기반 내용 주소화 메모리(141)와 유사한 동작을 수행할 수 있다.
여기서도, 내용기반 내용 주소화 메모리부(140)는 복수의 내용기반 내용 주소화 메모리들(141, 142, 14n)을 포함함으로써 데이터의 병렬 처리가 가능한다. 또한, 이에 따라 내용기반 내용 주소화 메모리부(140)도 패킷 처리 성능을 향상시킬 수 있다.
본 발명의 패킷 처리 장치들은 네트워크의 구성에 사용되는 일예로, 스위치, 라우터 등에 적용될 수 있다. 이러한, 본 발명의 패킷 처리 장치들은 증가하는 트래픽을 실시간으로 처리할 수 있도록 양적인 성능 향상과 더불어 새로운 서비스 출현에 대한 대비와 차별화된 서비스 제공을 위한 질적인 성능 향상을 제공할 수 있다.
본 발명의 패킷 처리 장치는 주소기반의 패킷 분류뿐만 아니라 내용기반의 패킷 분류가 가능하도록 패킷 분류장치를 이원화 및 병렬화함으로써 패킷에 대해 4계층 이상의 고속 패킷 분류가 가능할 수 있다. 따라서, 패킷 처리 장치의 처리 속도 향상뿐만 아니라 패킷 처리에 대한 유연성을 갖도록 할 수 있다. 이에 따라, 패킷 처리 장치는 여러 계층별 처리가 가능한 여러대의 장비들을 하나로 줄일 수도 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 패킷 처리 장치 110: 패킷 프로세서
120: 검색키 분배부 130: 주소기반 내용 주소화 메모리부
140: 내용기반 내용 주소화 메모리부
150: 패킷 포워딩부
131, 132, 13n: 주소기반 내용 주소화 메모리
1141, 142, 14n: 내용기반 내용 주소화 메모리

Claims (17)

  1. 패킷을 검색에 필요한 영역에 따라 분류하고, 분류된 패킷에 대응되는 검색키를 제공하는 패킷 프로세서;
    상기 검색키를 디코딩하여 주소기반의 검색키와 내용기반의 검색키를 분류하는 검색키 분배부;
    상기 주소기반의 검색키에 근거하여 주소기반의 검색을 수행하는 주소기반 내용 주소화 메모리부;
    상기 내용기반의 검색키에 근거하여 내용기반의 검색을 수행하는 내용기반 내용 주소화 메모리부; 및
    상기 주소기반 검색과 상기 내용기반 검색에 따라 검색된 결과에 근거하여 패킷 프로세서로부터 전달된 패킷에 대응되는 포트로의 출력을 처리하는 패킷 포워딩부를 포함하는 패킷 처리 장치.
  2. 제 1 항에 있어서,
    상기 패킷 프로세서는 상기 패킷에 대한 검색키를 제공하기 위한 룩업 테이블을 관리하는 패킷 처리 장치.
  3. 제 2 항에 있어서,
    상기 룩업 테이블은 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함하는 패킷 처리 장치.
  4. 제 3 항에 있어서,
    상기 검색키 분배부는 상기 주소기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부로 출력하고, 상기 내용기반 패킷을 구분하기 위한 검색키는 상기 내용기반 내용 주소화 메모리부로 출력하고, 상기 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부와 상기 내용기반 내용 주소화 메모리부에 동시에 출력하는 패킷 처리 장치.
  5. 제 1 항에 있어서,
    상기 패킷 프로세서는 저장된 마스크 비트 영역에 근거하여 상기 패킷의 주소 영역에 대한 매칭을 수행하는 패킷 처리 장치.
  6. 제 5 항에 있어서,
    상기 패킷 프로세서는 상기 마스크 비트 영역과 매칭되는 패킷에 대해 상기 패킷 포워딩 블록으로 전달하는 패킷 처리 장치.
  7. 제 6 항에 있어서,
    상기 패킷 포워딩부는 상기 패킷 프로세서로부터 전달된 패킷을 포워딩하는 패킷 처리 장치.
  8. 제 1 항에 있어서,
    상기 주소기반 내용 주소화 메모리부는 병렬 검색 처리를 위한 복수의 주소기반 내용 주소화 메모리를 포함하는 패킷 처리 장치.
  9. 제 8 항에 있어서,
    상기 복수의 주소기반 내용 주소화 메모리 각각의 크기와 검색키의 비트 길이는 상이하게 구성되는 패킷 처리 장치.
  10. 제 8 항에 있어서,
    상기 복수의 주소기반 내용 주소화 메모리 각각은 패킷의 구분된 주소 영역 각각을 처리하는 패킷 처리 장치.
  11. 제 1 항에 있어서,
    상기 내용기반 내용 주소화 메모리는 병렬 검색 처리를 위한 복수의 내용기반 내용 주소화 메모리를 포함하는 패킷 처리 장치.
  12. 제 11 항에 있어서,
    상기 복수의 내용기반 내용 주소화 메모리 각각의 크기와 검색키의 비트 길이는 상이하게 구성되는 패킷 처리 장치.
  13. 제 1 항에 있어서,
    상기 패킷 포워딩부는 상기 패킷의 폐기가 필요함을 판단하면 상기 패킷을 폐기하고, 상기 패킷의 수정이 필요함을 판단하면 상기 패킷의 정보를 수정하는 패킷 처리 장치.
  14. 패킷 처리 장치의 패킷 처리 방법에 있어서,패킷을 검색에 필요한 영역에 따라 분류하는 단계;
    상기 분류된 패킷에 대응되는 검색키의 디코딩을 통해 주소기반의 검색키와 내용기반의 검색키를 분배하는 단계;
    상기 분배된 주소기반 검색키와 내용기반 검색키 각각에 대해 병렬로 검색을 수행하는 단계;
    상기 검색결과에 따라 상기 패킷을 대응되는 포트로 포워딩되도록 출력하는 단계를 포함하는 패킷 처리 방법.
  15. 제 14 항에 있어서,
    상기 검색키를 분배하는 단계는
    상기 검색키를 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함한 룩업 테이블을 사용하여 분류하는 단계를 포함하는 패킷 처리 방법.
  16. 제 15 항에 있어서,
    상기 병렬로 검색을 수행하는 단계는
    상기 주소기반 패킷을 구분하기 위한 검색키는 주소기반 검색키에 대한 검색을 수행하는 단계;
    상기 내용기반 패킷을 구분하기 위한 검색키는 내용기반 검색키에 대한 검색을 수행하는 단계; 및
    상기 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 주소기반 검색키에 대한 검색과 내용기반 검색키에 대한 검색을 동시에 수행하는 단계를 포함하는 패킷 처리 방법.
  17. 제 14 항에 있어서,
    상기 병렬로 검색을 수행하는 단계는
    상기 분배된 주소기반 검색키들에 대해 병렬로 검색을 수행하는 단계; 및
    상기 분배된 내용기반 검색키들에 대해 병렬로 검색을 수행하는 단계를 포함하는 패킷 처리 방법.
KR1020110141297A 2011-12-23 2011-12-23 패킷 분류 장치 및 그것의 패킷 분류 방법 KR20130093707A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110141297A KR20130093707A (ko) 2011-12-23 2011-12-23 패킷 분류 장치 및 그것의 패킷 분류 방법
US13/613,978 US20130163595A1 (en) 2011-12-23 2012-09-13 Packet classification apparatus and method for classifying packet thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110141297A KR20130093707A (ko) 2011-12-23 2011-12-23 패킷 분류 장치 및 그것의 패킷 분류 방법

Publications (1)

Publication Number Publication Date
KR20130093707A true KR20130093707A (ko) 2013-08-23

Family

ID=48654501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110141297A KR20130093707A (ko) 2011-12-23 2011-12-23 패킷 분류 장치 및 그것의 패킷 분류 방법

Country Status (2)

Country Link
US (1) US20130163595A1 (ko)
KR (1) KR20130093707A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264357B2 (en) * 2013-04-30 2016-02-16 Xpliant, Inc. Apparatus and method for table search with centralized memory pool in a network switch
CN105325043B (zh) * 2014-05-30 2019-10-25 华为技术有限公司 承载建立装置和方法
US10404594B2 (en) 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
US10341242B2 (en) * 2016-12-13 2019-07-02 Oracle International Corporation System and method for providing a programmable packet classification framework for use in a network device

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143231B1 (en) * 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
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
JP3489573B2 (ja) * 2001-07-11 2004-01-19 日本電気株式会社 パケット処理装置
US6934796B1 (en) * 2002-02-01 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with hashing function
JP4105910B2 (ja) * 2002-07-12 2008-06-25 富士通株式会社 連想メモリ装置及びそれを用いた中継装置
US7093092B2 (en) * 2002-12-10 2006-08-15 Isic Corporation Methods and apparatus for data storage and retrieval
US7296210B2 (en) * 2003-09-16 2007-11-13 Alcatel-Lucent Inc Facilitating error detection for content addressable memory
US7251707B1 (en) * 2004-02-06 2007-07-31 Netlogic Microsystems, Inc. Content based content addressable memory block enabling using search key
US7739445B1 (en) * 2004-06-11 2010-06-15 Srinivasan Venkatachary Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device
US7555594B2 (en) * 2004-07-22 2009-06-30 Netlogic Microsystems, Inc. Range representation in a content addressable memory (CAM) using an improved encoding scheme
US7596141B2 (en) * 2005-06-30 2009-09-29 Intel Corporation Packet classification using encoded addresses
US7581059B2 (en) * 2005-07-27 2009-08-25 Netlogic Microsystems, Inc. Controlling a searchable range within a network search engine
US7552275B1 (en) * 2006-04-03 2009-06-23 Extreme Networks, Inc. Method of performing table lookup operation with table index that exceeds CAM key size
US8054744B1 (en) * 2007-10-25 2011-11-08 Marvell International Ltd. Methods and apparatus for flow classification and flow measurement
US7924588B2 (en) * 2007-12-03 2011-04-12 International Business Machines Corporation Content addressable memory with concurrent two-dimensional search capability in both row and column directions
US8040882B2 (en) * 2008-02-14 2011-10-18 Broadcom Corporation Efficient key sequencer
US20090240875A1 (en) * 2008-03-18 2009-09-24 Chu Albert M Content addressable memory with hidden table update, design structure and method
WO2010119381A1 (en) * 2009-04-14 2010-10-21 Ben Gurion University Of The Negev Efficient detection of errors in associative memory
US8462786B2 (en) * 2009-08-17 2013-06-11 Board Of Trustees Of Michigan State University Efficient TCAM-based packet classification using multiple lookups and classifier semantics
US8599859B2 (en) * 2009-11-16 2013-12-03 Marvell World Trade Ltd. Iterative parsing and classification
US8307153B2 (en) * 2010-05-05 2012-11-06 Juniper Networks, Inc. Power efficient and rule movement optimized TCAM management
WO2013071183A1 (en) * 2011-11-11 2013-05-16 Tabula, Inc. Content addressable memory in integrated circuit

Also Published As

Publication number Publication date
US20130163595A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
EP1649389B1 (en) Internet protocol security matching values in an associative memory
US9627063B2 (en) Ternary content addressable memory utilizing common masks and hash lookups
US10069764B2 (en) Ruled-based network traffic interception and distribution scheme
US7668160B2 (en) Methods for performing packet classification
US7237058B2 (en) Input data selection for content addressable memory
JP4742167B2 (ja) Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
US9569561B2 (en) Label masked addressable memory
US8094659B1 (en) Policy-based virtual routing and forwarding (VRF) assignment
US10491521B2 (en) Field checking based caching of ACL lookups to ease ACL lookup search
US7782859B2 (en) Enhanced packet classification
US20170346765A1 (en) Variable tcam actions
US20060221956A1 (en) Methods for performing packet classification via prefix pair bit vectors
US20160277297A1 (en) Sdn packet forwarding
US20060221967A1 (en) Methods for performing packet classification
US10805216B2 (en) Shared service access for multi-tenancy in a data center fabric
US8848707B2 (en) Method for IP longest prefix match using prefix length sorting
US20180359195A1 (en) Timestamp-based packet switching using a trie data structure
US10623316B2 (en) Scaling of switching tables with high bandwidth
Qu et al. Scalable many-field packet classification on multi-core processors
US7903658B1 (en) Forwarding tree having multiple bit and intermediate bit pattern comparisons
Yang et al. Fast OpenFlow table lookup with fast update
KR20130093707A (ko) 패킷 분류 장치 및 그것의 패킷 분류 방법
US11552887B2 (en) System and method of processing packet classification with range sets
US11689464B2 (en) Optimizing entries in a content addressable memory of a network device
US10205658B1 (en) Reducing size of policy databases using bidirectional rules

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid