KR100488357B1 - 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법 - Google Patents

이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법 Download PDF

Info

Publication number
KR100488357B1
KR100488357B1 KR10-2002-0069496A KR20020069496A KR100488357B1 KR 100488357 B1 KR100488357 B1 KR 100488357B1 KR 20020069496 A KR20020069496 A KR 20020069496A KR 100488357 B1 KR100488357 B1 KR 100488357B1
Authority
KR
South Korea
Prior art keywords
offset
pattern
ethernet packet
service
ethernet
Prior art date
Application number
KR10-2002-0069496A
Other languages
English (en)
Other versions
KR20040041299A (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-0069496A priority Critical patent/KR100488357B1/ko
Publication of KR20040041299A publication Critical patent/KR20040041299A/ko
Application granted granted Critical
Publication of KR100488357B1 publication Critical patent/KR100488357B1/ko

Links

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
    • 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/25Routing or path finding in a switch fabric

Landscapes

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

Abstract

본 발명은 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및 분석 방법에 관한 것으로서, 외부로부터 이더넷 패킷 데이터를 수신하고 상기 이더넷 패킷 데이터의 시작점으로부터의 오프셋을 산출하고, 오프셋과 이더넷 패킷 데이터를 미리 정의된 오프셋과 사이즈값을 이용하여 복수 개 비교 대상 필드를 추출하고, 선정된 복수 개 비교 대상 패킷을 미리 정의된 비교값과 연산자를 이용하여 패턴 비교한 후, 정의된 명령어에 따라 상기 패턴 비교된 결과치를 불리안 연산하는 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 방법 및 이를 하드웨어적으로 구현한 장치에 관한 것이다.
본 발명에 의한 이더넷 패킷의 서비스 구분은 하드웨어 로직에 의한 범용 프로세서를 사용하여 소프트웨어를 구동하는 서비스 분석방법보다 고속의 처리가 가능하게 되었다.

Description

이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및 분석 방법{APPARATUS FOR CLASSIFYING SERVICE OF ETHERNET PACKET AND METHOD OF THE SAME}
본 발명은 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및 분석 방법에 관한 것으로서, 보다 구체적으로는 인터넷 고급 서비스 중 레이어4 이상의 라우팅/스위칭, 플로우(Flow)기반의 QoS(Quality of Service) 처리/필터링 등을 위한 첫번째 단계인 패킷 분류(Classification)를 담당하는 기능을 하드웨어 로직에 의해 구현하여 VLSI화 할 수 있도록 하는 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및 분석 방법에 관한 것이다.
인터넷 트래픽의 서비스 구분이란 아이피 프로토콜을 기반으로 하였을 경우, 텔넷, FTP, HTTP 등 주로 레이어4를 기준으로 나누어지지만, 인터넷 서비스의 확산과 더불어 다이얼패드, 은행과의 인터넷 뱅킹 등 사용자의 최상위 응용프로그램에 종속되어 이루어지기도 한다.
종래의 패킷 분류(Classification)는 주로 이더넷 헤더에서 주소정보를 추출하여 목적지의 포트로 실시간 전송하기 위한 기능으로 해싱(Hashing), 또는 컨텐츠 어드레서블 메모리(CAM, Contents Addressable Memory)등의 방법이 사용되었고, 최근에 사용되는 초고속 이더넷 멀티레이어 스위치에서도 아직까지 컨텐츠 어드레서블 메모리를 이용한 분류 방법이 사용되고 있다. 하지만 컨텐츠 어드레서블 메모리의 방식은, 주로 길이가 고정되어 있고 분석한 히스토리를 관리해야 하는 이더넷 또는 인터넷 IP주소 등에 사용되도록 설계되어, 본 발명이 의도하는 멀티레이어 서비스 구분을 위해서 적용할 경우, 헤더 및 사용자 데이터에 포함된 필드들을 전부 다 수용하기 위해서는 그 수 만큼의 서로 다른 컨텐츠 어드레서블 메모리가 필요하게 되므로 하드웨어를 증가시키게 된다.
이러한 문제점을 해결하고자 인터넷 트래픽의 대부분을 차지하는 아이피 프로토콜(IP Protocol) 기반의 각종 상위 프로토콜 분석기(Parser)를 고안하여 컨텐츠 어드레서블 메모리의 사용을 절약하였으나, 새로운 프로토콜이 등장하거나 레이어 4 이상에서 정의되는 사용자의 데이터에 기반을 둔 분석은 불가능한 문제점을 갖고 있었다.
한편, 최근 인터넷 서비스의 분류를 위해서 고속 마이크로 프로세서를 이용하여 소프트웨어를 적용하는 장비가 출시되고 있으나, 소프트웨어적으로 처리함에 따른 처리 지연 시간으로 인하여 100Mbps를 넘어서 1Gbps이상의 인터넷 트래픽을 처리하기에는 성능에 한계가 있었다.
따라서 본 발명은 수신되고 있는 패킷에서 하위계층 헤더로부터 상위계층 사용자 데이터 중 여러 개의 필드를 미리 정의된 형식에 맞게 추출하여 실시간으로 비교하는 부분과 패킷의 수신이 최종 완료되기 전에 여러 개의 필드를 비교한 결과로부터 불리안 함수를 실행하여 최종 결론을 내는 인터넷 패킷의 레이어의 제한 없이 서비스 분류를 하드웨어적으로 구현하기 위한 새로운 시스템 및 분류 방법을 제시함을 목적으로 한다.
또한 컨텐츠 어드레서블 메모리를 사용하지 않으면서 ASIC화 할 경우, 단위면적을 최소화 하여 경제성을 확보하고, 정형화된 파싱 알고리즘(Parshing Algorithm)이 아닌 설정변경이 가능한 패턴비교기와 불리안 수식처리기로 새롭게 정의되는 프로토콜 및 사용자에 서비스를 쉽게 적용시킬 수 있으며, 마이크로 프로세서를 이용한 소프트웨어 수행방식이 아닌 하드웨어 로직에 의한 구현이 가능한 다중 패턴분석 장치 및 분석 방법을 제시함을 목적으로 한다.
따라서, 기가비트급 인터넷 트래픽을 논리적인 최하위계층(레이어2)에서 최상위계층(레이어7)까지의 임의의 필드를 추출하여 해당패킷이 의미한 서비스를 최소의 하드웨어 로직을 사용하고 실시간 동작이 가능하게 하는 것을 본 발명의 목적으로 한다.
본 발명의 상기 목적은 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 방법에 관한 것으로서, 외부로부터 이더넷 패킷 데이터를 수신하고 상기 이더넷 패킷 데이터의 시작점으로부터의 오프셋을 산출하는 제 1 단계와, 오프셋과 이더넷 패킷 데이터를 미리 정의된 오프셋과 사이즈값을 이용하여 복수 개 비교 대상 필드를 추출하는 제 2 단계와, 선정된 복수 개 비교 대상 패킷을 미리 정의된 비교값과 연산자를 이용하여 패턴 비교하는 제 3 단계와, 정의된 명령어에 따라 상기 패턴 비교된 결과치를 불리안 연산하는 제 4 단계로 이루어지는 것을 특징으로 하는 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 방법에 의해서 달성 가능하다.
본 발명의 또 다른 목적은 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 장치에 관한 것으로서, 외부로부터 입력되는 이더넷 패킷 데이터의 시작점으로부터의 오프셋을 산출하는 오프셋 생성기와, 오프셋 생성기에서 출력된 오프셋값과 이더넷 패킷 데이터를 통과시키기 위한 오프셋 및 데이터 버스와, 소정의 필드를 추출하기 위해 미리 정의된 오프셋과 사이즈에 대한 정보를 저장하고, 이를 이용하여 상기 오프셋 및 데이터 버스로부터 소정의 복수 개 필드를 추출하고, 상기 추출된 필드를 미리 정의된 비교치와 연산자를 이용하여 패턴 비교하는 복수 개 패턴 비교기와, 복수 개 패턴 비교기의 결과치를 미리 정의된 명령에 따라 논리 연산을 수행하는 적어도 한 개의 불리안 연산처리기, 및 복수 개 불리안 연산처리기로부터 출력되는 결과치의 우선 순위를 선정하는 우선 순위 제어기로 구성되는 것을 특징으로 하는 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 장치에 의해서 달성 가능하다.
이하 도면을 이용하여 본 발명을 보다 구체적으로 설명하기로 한다.
인터넷 패킷에서 서비스 분석을 위하여 비교를 필요로 하는 요소들의 일례를 살펴보면 표 1과 같다. 이러한 요소들의 공통점은 수신되는 패킷의 시작점을 기준으로 특정위치에 존재하고 있으며, 서비스되는 패킷의 종류별로 요소마다 사이즈가 미리 결정되어 있다.
계층(Layer) 비교대상 요소 사이즈(bit)
2 Destination MAC AddressSource MAC AddressPacket Type or LengthOption (Priority & TAG)802.2 LLC/SNAP 4848161624/40
3 IPv/IHLTOSLengthProtocol IDSource IP AddressDestination IP Address 881683232
4 Source Port NumberDestination Port Number 1616
5-7 Application에 따라 다양함 8,16,32,48
표 1에서 레이어 2를 예를 들어 설명하면, 목적지 MAC 어드레스 및 소스 MAC 어드레스는 48 비트, 패킷 종류 또는 길이는 16 비트, option(Priority & TAG)는 16비트, 802.2 LLC/SNAP는 24/40 비트 사이즈를 갖는다는 것을 표시한다.
도 1은 표 1에 나타난 바와 같은 패킷을 분석하기 위한 본 발명에 따른 단위 패턴 비교기의 블록 구성도이다. 단위 패턴 비교기는 입력되어지는 패킷의 특정위치 데이터가 수신될 경우 이를 미리 설정되어 있는 패턴과 정의된 사이즈 만큼 비교한 후 결과를 저장하도록 되어야 한다. 또한 수신된 패턴의 범위(Range)분석을 위한 두 개의 비교값 설정도 가능하여야 한다. 단위 패턴 비교기는 2 개의 비교대상 요소를 수신되는 패킷 데이터로부터 추출한 후, 각각의 비교 설정값과 비교 연산한 후 비교 연산된 결과를 듀얼 결과값용 논리 연산자를 이용하여 연산한 결과를 출력하는 하드웨어 로직으로 구성된다.
도 1에 도시된 바와 같이 단위 패턴 비교기는 패킷 데이터를 입력받는 데이터 버퍼와 비교 대상의 오프셋/사이즈, 비교 설정값 #1, 비교 설정값 #2, 비교 설정값 #1의 비교 연산자, 비교 설정값 #2의 비교 연산자 및 듀얼 결과값용 논리 연산자를 저장하는 메모리와 상기 메모리에 저장된 오프셋/사이즈를 이용하여 해당하는 비교 대상 요소를 추출하고, 상기 추출된 비교 대상 요소를 메모리에 저장된 연산자와 비교 설정값을 이용하여 연산하는 로직 처리부 및 최종 결과값을 저장하는 메모리로 구성된다. 여기에서 비교 대상의 오프셋/사이즈, 비교 설정값 #1, 비교 설정값 #2, 비교 설정값 #1 및 비교 설정값 #2의 비교 연산자( ==, !=, <=, >=, <, >) 및 듀얼 결과값용 논리 연산자(AND, OR)는 호스트 컴퓨터에 의해서 초기값으로 미리 설정되는 값이다.
도 2는 본 발명에 따른 단위 패턴 비교기의 데이터 처리 흐름도를 도시한다. 패킷의 수신이 시작되면(ST 200), 입력되는 오프셋을 저장된 비교 대상의 오프셋 및 사이즈를 이용하여 비교대상 패킷인지를 판단한 후, 비교 대상 패킷이 아닐 경우에는 이를 무시하고 다음 데이터를 검사하고 비교 대상 패킷일 경우는 비교 대상 패킷을 저장하게 된다(ST 210 ~ ST 230). 다음으로 모든 비교 대상 패킷의 수신이 완료되었는지를 판단하고(ST 250), 완료되지 않는 경우에는 비교 대상 패킷 수의 카운터를 증가시키고 다음 비교 대상을 판단하게 된다(ST 240). 비교 대상 패킷의 수신이 완료된 경우에는 비교 대상 #1과 설정값 #1의 비교 연산( ==, !=, <=, >=, <, >)의 처리 및 비교 대상 #2와 설정값 #2의 비교 연산( ==, !=, <=, >=, <, >)의 처리를 하게 된다(ST 270 ~ ST 280). 다음으로 각각의 비교 연산된 결과 #i 결과와 (#i+1) 결과를 논리 연산(ST 290)한 후 결과를 저장하게 된다(ST 300). 이러한 비교 연산을 비교 대상 패킷 전체를 완료할 때까지 처리함으로써 패턴 비교를 완료하게 된다(ST 310 ~ ST 320).
다음으로 여러 개의 패턴 비교기를 거쳐 결정된 각각의 단위 패턴에 대한 비교결과는 패킷이 가지고 있는 서비스의 정보를 분석하기 위하여, 연산순위를 가변할 수 있는 불리안 수식 처리를 진행한다. 도 3은 본 발명에 따른 불리안 연산을 처리하는 흐름도이고, 도 4는 불리안 연산에 사용되는 일부 회로 구성을 도시한 것으로서 이를 이용하여 본 발명에 따른 불리안 연산을 설명하기로 한다.
불리안 수식처리기는 여러 개의 패턴 비교기로부터 입력된 각각의 비교결과를 내부 레지스터에 저장하고, 설정된 불리안 연산식용 명령어를 실행하여 최종 결과값을 얻도록 되어있다. 명령어는 1바이트로 구성되며, 기본적으로 "X = X (OPERATOR) Y"의 형태를 취한다. 표 2에 표시한 바와 같이, 최상위 비트부터 2 비트(6, 7비트)는 AND, OR에 대한 연산자를 구비하기 위한 비트로 사용되고, 나머지 6개의 비트(0비트 내지 5비트)는 각각 3 비트 가변 레지스터 포인터로 구성된다. 하나의 시스템 클럭에 한 개의 명령어가 실행되도록 하였다. 예를 들어 목표한 최종 결과를 Result = ((x1 AND x2) OR (x3 AND x4)) AND ((x5 AND x6) OR (x7 AND x8)) 이면 다음과 같이 7개의 시스템 클럭 동안에 처리되는 명령어 흐름으로 표현할 수 있다.
STEP1: x0 = x0 AND x1
STEP2: x2 = x2 AND x3
STEP3: x4 = x4 AND x5
STEP4: x6 = x6 AND x7
STEP5: x0 = x0 OR x2
STEP6: x4 = x4 OR x6
STEP7: x0 = x0 AND x4
STEP8: END
Bit Offset(size) Description
D7-D6 (2bit) Operator00: AND01: OR10: Reserved11: Reserved
D5-D3 (3bit) Variable X Offset000: X0001: X1...111: X7
D2-D0 (3bit) Variable X Offset000: X0001: X1...111: X7
불리안 연산의 시작은 명령어 분석으로부터 시작된다(ST 500 ~ ST 510). 분석된 명령에 따라 연산하고자 하는 변수를 선정하기 위하여 여러 개의 패턴 비교기의 결과 중 2 개의 비교기의 결과를 X, Y 포인터를 이용하여 지정한 후 연산될 위치로 입력하게 된다(ST 520). 예를 들어 "x0 = x0 AND x1"의 연산을 처리하기 위하여 X 레지스터 포인터에는 상위 비트로부터 "000"를 인가하고, Y 레지스터 포인터에는 "001"을 인가하여 각각 x0 및 x1 패턴 비교기의 결과가 도 4의 X, Y에 각각 저장되도록 한다. 연산자에 따라 논리 연산을 수행한 후 결과를 저장하게 된다(ST 530 ~ ST 560). 결과의 저장은 포인터와 연산값을 지정함으로써 수행된다. 도 4에 있어서 "x0 = x0 AND x1"의 연산 처리 결과는 X 레지스터 포인터에 "000"를 인가하고 "x0"와 "x1"의 AND 연산의 결과를 출력함으로써, X0에 연산의 결과를 저장하도록 한다. 명령어 해석이 완료되었는지를 판단한 후(ST 570), 명령어 해석이 완료된 경우에는 불리안 연산을 종료하고, 명령어 해석이 완료되지 않은 경우에는 ST 520 내지 ST 570 단계를 반복하게 된다. 불리안 연산처리기는 상기와 같은 기능을 처리하기 위해서 도 4에는 도시되지 않았으나 호스트 CPU로부터 셋팅되는 명령어를 저장하는 메모리와 명령어를 해석하기 위한 적은 사이즈의 연산기 또는 마이크로 CPU를 구비하여야 함은 물론이다.
도 5는 본 발명에 따른 다중패턴 분석 장치의 전체 구성도를 도시하는 것으로 다중 패턴 분석 장치(100)는 이더넷 MAC 수신 모듈(400, Ethernet MAC RX Module)과 스위칭/포워딩 모듈(410, Switching or Forwarding Module) 사이에 구비된다. 이더넷 MAC 수신 모듈(400)은 이더넷 물리 장치(390, Ethernet Physical Device)로부터 4 비트의 MII(Media Independent Interface) 버스를 이용해서 MII RX 데이터를 수신받는다. 수신된 MII RX 데이터는 임의 갯수의 병렬 비트(도 5의 경우는 16비트)인 MAC RX 데이터(420)으로 처리되어 스위칭/포워딩 모듈(410)로 전송되며, 또한 패킷 시작/종료 제어신호(430)를 생성하여 스위칭/포워딩 모듈(410)로 전송한다.
다중 패턴 분석 장치(100)는 패킷 오프셋 생성기(110), 오프셋 및 데이터 버스(120), 복수 개 패턴 분석기(150)와 우선 순위(Priority) 제어기(160)로 구성되며, 하나의 패턴 분석기(150)는 복수 개의 패턴 비교기(131 내지 138)와 불리안 연산처리기(140)로 구성된다. 도 5의 실시례에서는 8 개의 패턴 비교기(131 내지 138)와 1개의 불리안 연산 처리기(140)로 구성되는 64 개의 패턴 분석기(150)로 구성한 상태를 보여준다. 도 5의 경우는 예시적인 것에 불과한 것으로 하나의 불리안 연산 처리기에는 임의 갯수의 패턴 비교기가 구비될 수 있으며, 64 개이상 또는 이하의 원하는 수만큼의 패턴 분석기를 구비할 수 있음은 물론이다.
패킷 오프셋 생성기(110)는 시스템 클럭(460)에 의해 동기화 되어 작동되며 패킷의 시작 위치로부터 시작점을 기준으로 특정위치를 카운터하는 기능을 하며, 오프셋 및 데이터 버스(120)는 패킷 오프셋 생성기의 카운터 결과값 및 패킷 데이터인 MAC RX 데이터(420)를 수신하는 버스로 동작한다. 패턴 비교기(131 내지 138)는 오프셋 및 데이터 버스(120)에 실린 데이터를 감시하다가 해당 데이터를 로딩하고 미리 설정된 비교 연산자에 따라 연산을 수행하는 등의 기능을 하며, 불리안 연산처리기(140)는 호스트 CPU(450)로부터 초기화된 명령어에 따라 패턴 비교기 (131 내지 138)에 저장된 값의 논리 연산을 수행하게 된다. 패턴 비교기(131 내지 138)와 불리안 연산처리기(140)에 대해서는 도 1 내지 도 4를 이용하여 자세히 전술하였으므로 도 5에 대한 설명에서는 자세한 설명을 생략하기로 한다.
전술한 바와 같이 실시간으로 패킷을 분석하기 위해서는 패킷의 입력이 종료되기 전에 분석이 완료되어야 하며, 분석에 의한 성능의 저하가 없어야 하므로, 다중패턴 분석장치(100)의 위치는 패킷의 입력단에서 스위칭/포워딩 장치(410)로의 전달경로와 병렬로 설치되어야 한다. 이 경우 다중패턴 분석장치(100)는 입력되어지는 패킷이 지닌 서비스를 판별하여, 미리 설정되어 있는 해당 서비스에 대한 패킷의 필터링, QoS 관리, 라우팅의 동작유무를 스위칭/포워딩 장치(410)로 패킷의 수신이 완료되기 전에 전달하여 스위칭/포워딩 장치(410)가 처리하도록 한다.
QoS(Quality of Service) 관리란 품질을 보장하거나 조정해야 하는 특정 패킷(예를 들어 VoIP, 인터넷 상거래, 멀티미디어,...)을 패킷내에 전송 우선 순위 필드를 변경하거나, 전송 대기중인 다른 패킷이 많을 경우 기다리지 않고 먼저 전송하는 통신 기능을 의미하는 것이다. 또한 라우팅의 동작 유무란 단일 암(one arm) 라우터의 경우는 특정 서비스를 분석하여 그 패킷을 상대편 포트로 보낼지 말지를 결정하는 기능 또는 멀티 암(multi arm) 라우터의 경우는 전송 유무의 결정뿐만이 아니라 어디로 어떻게(패킷의 내용도 수정이 필요할 경우 수정을 가함) 보내야 할지에 대해서 결정하는 기능을 의미한다.
다중 패턴 분석장치(100)가 어레이 구조로 구성되므로 여러 개의 서비스를 동시에 분석할 수 있기 때문에 경우에 따라 여러 개의 패턴 분석기(150)가 설정된 서비스를 감지하였다고 할 수 있으나, 일반적인 스위칭/포워딩 장치(410)는 한 가지의 분석결과를 수신하여 동작하므로 여러 개의 분석결과가 전체 시스템 동작에 오류를 가지고 올 수 있다. 따라서 여러 개의 패턴분석장치 어레이(150)에서 출력되는 분석결과는 우선순위가 정해져야하며, 우선순위 제어기(160)를 패턴 분석장치 어레이의 후단에 구성하여 이를 해결해야 한다.
우선순위 제어기(160)의 기능을 예를 들어 설명하기로 한다. 각각의 패턴분석기(150)의 분석 결과가 아래와 같이,
패턴 분석기 #1: IP 어드레스가 192.168.1.1 부터 192.168.1.255까지는 Netbios에 의한 인터넷 공유를 허용
패턴 분석기 #2: 나머지는 인터넷 공유를 금지
패턴 분석기 #3: 패킷이 특정 레이어 4 소스포트를 사용할 경우 높은 우선 순위로 전송
패턴 분석기 #4: 패킷이 특정 IP 어드레스로 HTTP를 사용하여 통신할 경우 중간 우선 순위로 전송
패턴 분석기 #5: 패킷이 불특정 IP 어드레스로 HTTP를 사용하면 낮은 우선 순위로 전송
....
패턴 분석기 #64: 패킷이 특정 IP 어드레스에 특정 포트번호로 통신을 하면 무조건 필터링(ex. 인터넷 게임 금지 기능을 하는 패킷)
같을 경우, 패턴 분석기 #2를 예를 들어 IP 어드레스를 지정하지 않고 무조건 인터넷 공유 금지로 설정한 후, 패턴 분석기 #1에 허용할 IP를 분석하도록 하였다면, 금지 또는 허용은 서비스 분석기 이후에 실행할 값이고, 일단 패턴 분석기 #1과 #2가 인터넷 공유 패킷을 분석하게 되므로 우선 순위 제어기(160)에 의해 패턴 분석기 #1의 결과가 반영될 수 있도록 하여야 하는 것이다.
본 발명에 따른 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및 그 분석 방법은 인터넷 고급 서비스 중 레이어4 이상의 라우팅/스위칭, 플로우(Flow)기반의 QoS(Quality of Service) 처리/필터링 등을 위한 첫번째 단계인 패킷 분류(Classification)를 담당하는 기능을 하드웨어 로직에 의해 구현하여 VLSI화 할 수 있도록 하는 것으로서 초고속 멀티레이어 스위치, 라우터, 인터넷 트래픽 콘트롤 장비 등의 서비스 구분(flow 구분)이 가능한 이더넷 통신 장치에 사용될 수 있다.
하드웨어 로직에 의한 패킷 분석방법은 범용 프로세서를 사용하여 소프트웨어를 구동하는 서비스 분석방법보다 고속의 처리가 가능하다. 일반적인 32 비트 리스크(RISC) 프로세서(Processor)를 사용하였을 경우 수Mbps 에서 수십 Mbps까지의 트래픽에 대하여 서비스 구분이 가능하나, 본 발명에 의한 패턴분석은 전송클럭에 동기화 되어 작동되는 하드웨어 로직에 의해 구동되므로, 수 M에서 수 기가(Giga)급의 트래픽을 실시간으로 처리할 수 있게 되었다.
하드웨어 로직에 의한 설계 방법 중 컨텐츠 어드레서블 메모리를 사용할 경우, 사용자 데이터를 포함한 서비스 구분을 위해서는 수십 바이트부터 수백 바이트 이상의 크기에, 분류하고자 하는 서비스 수만큼의 길이를 갖는 컨텐츠 어드레서블 메모리의 어레이가 필요하며, 비교대상이 아닌 패턴의 제외를 위해서 각각의 컨텐츠 어드레서블 메모리의 요소마다 같은 크기의 마스크 레지스터가 필요하므로 그 크기가 두배가 된다. 이에 비하여 본 발명에 따른 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및 그 분석 방법은 비교대상의 패턴만 저장할 수 있는 메모리에 그 오프셋을 가변 할 수 있는 구조로 분석기를 설계하였기 때문에 하드웨어 로직으로 구현 시 소요되는 게이트의 수를 극소화 시킬 수 있으므로 반도체로 제작 하였을 때 가격을 최소화 할 수 있는 장점이 있다.
예를 들어 하나의 서비스를 분석하기 위한 컨텐츠 어드레서블 메모리 방식의 접근은 최소 70바이트 * 2 = 140 바이트 정도의 메모리 셀이 필요하나, 본 발명에 의한 방식은 60바이트 정도로 메모리를 사용하며 패킷의 시작부터 70바이트 정도의 내용으로 서비스 구분을 하는 컨텐츠 어드레서블 메모리 방식의 단점을 보완하여 이데넷 패킷의 최장 길이인 1,500 바이트 이상의 패킷까지도 그 내용을 분석 할 수 있다.
본 발명의 바람직한 실시례가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이해되어져야 한다.
도 1은 본 발명에 따른 단위 패턴 비교기의 블록 구성도.
도 2는 본 발명에 따른 단위 패턴 비교기의 데이터 처리 흐름도.
도 3은 본 발명에 따른 불리안 연산을 처리하는 흐름도.
도 4는 본 발명에 따른 불리안 연산 처리기의 일부 구성을 보여주는 일부 구성도.
도 5는 본 발명에 따른 다중패턴 분석 장치의 전체 구성도.

Claims (7)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 장치에 관한 것으로서,
    외부로부터 입력되는 이더넷 패킷 데이터의 시작점으로부터의 오프셋을 산출하는 오프셋 생성기;
    상기 오프셋 생성기에서 출력된 오프셋값과 상기 이더넷 패킷 데이터를 통과시키기 위한 오프셋 및 데이터 버스;
    소정의 필드를 추출하기 위해 미리 정의된 오프셋과 사이즈에 대한 정보를 저장하고, 이를 이용하여 상기 오프셋 및 데이터 버스로부터 소정의 복수 개 필드를 추출하고, 상기 추출된 필드를 미리 정의된 비교치와 연산자를 이용하여 패턴 비교하는 복수 개 패턴 비교기;
    상기 복수 개 패턴 비교기의 결과치를 미리 정의된 명령에 따라 논리 연산을 수행하는 적어도 한 개의 불리안 연산처리기; 및
    상기 복수 개 불리안 연산처리기로부터 출력되는 결과치의 우선 순위를 선정하는 우선 순위 제어기를 포함하며,
    상기 복수 개 패턴 비교기는,
    상기 이더넷 패킷 데이터를 입력받는 데이터 버퍼;
    외부로부터 미리 설정하기 위해 입력되는 오프셋 및 사이즈, 비교 설정값과 연산자 및 처리된 최종 결과를 저장하기 위한 메모리; 및
    상기 메모리에 저장된 상기 오프셋 및 사이즈를 이용하여, 소정의 필드를 추출하고, 상기 추출된 필드를 상기 메모리에 저장된 상기 연산자와 상기 비교 설정값을 이용하여 연산하는 로직 처리부로 구성되는 것을 특징으로 하는 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 장치.
  6. 제 5항에 있어서,
    상기 불리안 연산처리기는,
    외부로부터 미리 셋팅되는 명령어를 저장하기 위한 메모리;
    상기 복수 개 패턴 비교기의 출력값을 저장하기 위한 레지스터,
    상기 레지스터의 위치를 포인터하기 위한 레지스터 포인터; 및
    상기 메모리에 저장된 상기 명령어를 해석하고 상기 명령어에 따라 상기 레지스터에 저장된 출력값들의 연산 처리하는 연산 처리부로 구성되는 것을 특징으로 하는 이더넷 패킷의 서비스 구분을 위한 다중 패턴 분석 장치.
  7. 이더넷 패킷을 입력받는 입력부와 서비스의 전송 경로를 스위칭하거나 포워딩하는 스위칭/포워딩부 사이에 상기 제 5항 또는 상기 제 6항의 다중 패턴 분석 장치를 구비하는 서비스 구분이 가능한 이더넷 통신 장치.
KR10-2002-0069496A 2002-11-11 2002-11-11 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법 KR100488357B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069496A KR100488357B1 (ko) 2002-11-11 2002-11-11 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069496A KR100488357B1 (ko) 2002-11-11 2002-11-11 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법

Publications (2)

Publication Number Publication Date
KR20040041299A KR20040041299A (ko) 2004-05-17
KR100488357B1 true KR100488357B1 (ko) 2005-05-11

Family

ID=37338397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0069496A KR100488357B1 (ko) 2002-11-11 2002-11-11 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법

Country Status (1)

Country Link
KR (1) KR100488357B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729266B1 (ko) * 2005-05-18 2007-06-15 주식회사 파이오링크 네트워크 장비에서 소정의 네트워크를 통해 전송되는파일을 검사하는 방법 및 상기 방법이 채용된 네트워크장비

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014905A1 (fr) * 1997-09-16 1999-03-25 Ntt Mobile Communications Network Inc. Procede de transmission de paquets, dispositif de transmission de paquets, procede de transmission de trames radio, procede concernant les telecommunications mobiles, systeme de telecommunications mobiles et commutateur
JP2000156713A (ja) * 1998-10-05 2000-06-06 Paketto Engines Inc ネットワ―クスイッチング装置におけるコンテントベ―スの転送/フィルタリング方法
KR20010092028A (ko) * 2000-03-13 2001-10-24 윤종용 네트워크상의 장치에서의 패킷 필터링방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014905A1 (fr) * 1997-09-16 1999-03-25 Ntt Mobile Communications Network Inc. Procede de transmission de paquets, dispositif de transmission de paquets, procede de transmission de trames radio, procede concernant les telecommunications mobiles, systeme de telecommunications mobiles et commutateur
JP2000156713A (ja) * 1998-10-05 2000-06-06 Paketto Engines Inc ネットワ―クスイッチング装置におけるコンテントベ―スの転送/フィルタリング方法
KR20010092028A (ko) * 2000-03-13 2001-10-24 윤종용 네트워크상의 장치에서의 패킷 필터링방법

Also Published As

Publication number Publication date
KR20040041299A (ko) 2004-05-17

Similar Documents

Publication Publication Date Title
US10320713B2 (en) Packet data traffic management apparatus
US8176300B2 (en) Method and apparatus for content based searching
US9571396B2 (en) Packet parsing and control packet classification
JP5324225B2 (ja) 仮想ルータ機能を提供する方法
US6678678B2 (en) Method and apparatus for high speed table search
US8014390B2 (en) Policy based routing using a fast filter processor
US9306848B2 (en) Using special-case hardware units for facilitating access control lists on a networking element
US7787463B2 (en) Content aware apparatus and method
US7554984B2 (en) Fast filter processor metering and chaining
US10348603B1 (en) Adaptive forwarding tables
US10397116B1 (en) Access control based on range-matching
US10911579B1 (en) Generating programmatically defined fields of metadata for network packets
US8176242B1 (en) Apparatus and method for improving CAM usage
US20180367431A1 (en) Heavy network flow detection method and software-defined networking switch
US9819587B1 (en) Indirect destination determinations to forward tunneled network packets
WO2014149717A1 (en) Ethernet traffic management apparatus
US20120163392A1 (en) Packet processing apparatus and method
WO2020172129A1 (en) Variable-length packet header vectors
US10887234B1 (en) Programmatic selection of load balancing output amongst forwarding paths
KR100488357B1 (ko) 이더넷 패킷의 서비스 구분을 위한 다중 패턴분석 장치 및분석방법
US9590897B1 (en) Methods and systems for network devices and associated network transmissions
US10439930B2 (en) Packet batch processing with graph-path based pre-classification
US11658911B2 (en) System and method for low latency network switching
US8037238B2 (en) Multiple mode content-addressable memory
US10608937B1 (en) Determining destination resolution stages for forwarding decisions

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: 20130425

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140512

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150427

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee