KR20130093707A - 패킷 분류 장치 및 그것의 패킷 분류 방법 - Google Patents
패킷 분류 장치 및 그것의 패킷 분류 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access 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
본 발명은 통신 시스템에 관한 것으로서, 특히 패킷을 사용하는 통신 시스템에서 패킷 처리 속도를 향상시킨 패킷 분류 장치 및 그것의 패킷 분류 방법에 관한 것이다.
기존의 통신 시스템은 방송 시스템과의 융합을 통해 네트워크는 더욱 복잡하고, 많은 대역을 요구하는 새로운 통신 서비스가 계속해서 출현하고 있다. 이에 통신 시스템 상에서 트래픽의 양은 매우 빠르게 증가하고 있다.
사용자 요구의 증가에 따라 통신 시스템은 다양한 서비스 패킷을 구분하고, 각 사용자에 의해 요구된 품질과 서비스를 보장해야 한다. 이를 위해서, 패킷을 처리하는 스위치와 라우터 등과 같은 네트워크 장비들은 기존 인터넷 프로토콜(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은 본 발명의 실시예에 따른 내용기반 내용 주소화 메모리부의 구조를 도시한 도면이다.
도 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: 내용기반 내용 주소화 메모리
120: 검색키 분배부 130: 주소기반 내용 주소화 메모리부
140: 내용기반 내용 주소화 메모리부
150: 패킷 포워딩부
131, 132, 13n: 주소기반 내용 주소화 메모리
1141, 142, 14n: 내용기반 내용 주소화 메모리
Claims (17)
- 패킷을 검색에 필요한 영역에 따라 분류하고, 분류된 패킷에 대응되는 검색키를 제공하는 패킷 프로세서;
상기 검색키를 디코딩하여 주소기반의 검색키와 내용기반의 검색키를 분류하는 검색키 분배부;
상기 주소기반의 검색키에 근거하여 주소기반의 검색을 수행하는 주소기반 내용 주소화 메모리부;
상기 내용기반의 검색키에 근거하여 내용기반의 검색을 수행하는 내용기반 내용 주소화 메모리부; 및
상기 주소기반 검색과 상기 내용기반 검색에 따라 검색된 결과에 근거하여 패킷 프로세서로부터 전달된 패킷에 대응되는 포트로의 출력을 처리하는 패킷 포워딩부를 포함하는 패킷 처리 장치. - 제 1 항에 있어서,
상기 패킷 프로세서는 상기 패킷에 대한 검색키를 제공하기 위한 룩업 테이블을 관리하는 패킷 처리 장치. - 제 2 항에 있어서,
상기 룩업 테이블은 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함하는 패킷 처리 장치. - 제 3 항에 있어서,
상기 검색키 분배부는 상기 주소기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부로 출력하고, 상기 내용기반 패킷을 구분하기 위한 검색키는 상기 내용기반 내용 주소화 메모리부로 출력하고, 상기 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 상기 주소기반 내용 주소화 메모리부와 상기 내용기반 내용 주소화 메모리부에 동시에 출력하는 패킷 처리 장치. - 제 1 항에 있어서,
상기 패킷 프로세서는 저장된 마스크 비트 영역에 근거하여 상기 패킷의 주소 영역에 대한 매칭을 수행하는 패킷 처리 장치. - 제 5 항에 있어서,
상기 패킷 프로세서는 상기 마스크 비트 영역과 매칭되는 패킷에 대해 상기 패킷 포워딩 블록으로 전달하는 패킷 처리 장치. - 제 6 항에 있어서,
상기 패킷 포워딩부는 상기 패킷 프로세서로부터 전달된 패킷을 포워딩하는 패킷 처리 장치. - 제 1 항에 있어서,
상기 주소기반 내용 주소화 메모리부는 병렬 검색 처리를 위한 복수의 주소기반 내용 주소화 메모리를 포함하는 패킷 처리 장치. - 제 8 항에 있어서,
상기 복수의 주소기반 내용 주소화 메모리 각각의 크기와 검색키의 비트 길이는 상이하게 구성되는 패킷 처리 장치. - 제 8 항에 있어서,
상기 복수의 주소기반 내용 주소화 메모리 각각은 패킷의 구분된 주소 영역 각각을 처리하는 패킷 처리 장치. - 제 1 항에 있어서,
상기 내용기반 내용 주소화 메모리는 병렬 검색 처리를 위한 복수의 내용기반 내용 주소화 메모리를 포함하는 패킷 처리 장치. - 제 11 항에 있어서,
상기 복수의 내용기반 내용 주소화 메모리 각각의 크기와 검색키의 비트 길이는 상이하게 구성되는 패킷 처리 장치. - 제 1 항에 있어서,
상기 패킷 포워딩부는 상기 패킷의 폐기가 필요함을 판단하면 상기 패킷을 폐기하고, 상기 패킷의 수정이 필요함을 판단하면 상기 패킷의 정보를 수정하는 패킷 처리 장치. - 패킷 처리 장치의 패킷 처리 방법에 있어서,패킷을 검색에 필요한 영역에 따라 분류하는 단계;
상기 분류된 패킷에 대응되는 검색키의 디코딩을 통해 주소기반의 검색키와 내용기반의 검색키를 분배하는 단계;
상기 분배된 주소기반 검색키와 내용기반 검색키 각각에 대해 병렬로 검색을 수행하는 단계;
상기 검색결과에 따라 상기 패킷을 대응되는 포트로 포워딩되도록 출력하는 단계를 포함하는 패킷 처리 방법. - 제 14 항에 있어서,
상기 검색키를 분배하는 단계는
상기 검색키를 주소기반 패킷, 내용기반 패킷, 주소기반 및 내용기반 패킷을 구분하기 위한 검색키에 대한 정보를 포함한 룩업 테이블을 사용하여 분류하는 단계를 포함하는 패킷 처리 방법. - 제 15 항에 있어서,
상기 병렬로 검색을 수행하는 단계는
상기 주소기반 패킷을 구분하기 위한 검색키는 주소기반 검색키에 대한 검색을 수행하는 단계;
상기 내용기반 패킷을 구분하기 위한 검색키는 내용기반 검색키에 대한 검색을 수행하는 단계; 및
상기 주소기반 및 내용기반 패킷을 구분하기 위한 검색키는 주소기반 검색키에 대한 검색과 내용기반 검색키에 대한 검색을 동시에 수행하는 단계를 포함하는 패킷 처리 방법. - 제 14 항에 있어서,
상기 병렬로 검색을 수행하는 단계는
상기 분배된 주소기반 검색키들에 대해 병렬로 검색을 수행하는 단계; 및
상기 분배된 내용기반 검색키들에 대해 병렬로 검색을 수행하는 단계를 포함하는 패킷 처리 방법.
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)
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 |
JP6408697B2 (ja) * | 2014-05-30 | 2018-10-17 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ベアラセットアップ装置および方法 |
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)
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 |
US8887026B2 (en) * | 2009-04-14 | 2014-11-11 | 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 |
WO2011060436A1 (en) * | 2009-11-16 | 2011-05-19 | Marvell Semiconductor, Inc. | Iterative parsing and classification |
US8307153B2 (en) * | 2010-05-05 | 2012-11-06 | Juniper Networks, Inc. | Power efficient and rule movement optimized TCAM management |
US9583190B2 (en) * | 2011-11-11 | 2017-02-28 | Altera Corporation | Content addressable memory in integrated circuit |
-
2011
- 2011-12-23 KR KR1020110141297A patent/KR20130093707A/ko not_active Application Discontinuation
-
2012
- 2012-09-13 US US13/613,978 patent/US20130163595A1/en not_active Abandoned
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 | |
Hatami et al. | High-performance architecture for flow-table lookup in SDN on FPGA | |
US11689464B2 (en) | Optimizing entries in a content addressable memory of a network device |
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 |