KR101191251B1 - 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법 - Google Patents

3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법 Download PDF

Info

Publication number
KR101191251B1
KR101191251B1 KR1020110128132A KR20110128132A KR101191251B1 KR 101191251 B1 KR101191251 B1 KR 101191251B1 KR 1020110128132 A KR1020110128132 A KR 1020110128132A KR 20110128132 A KR20110128132 A KR 20110128132A KR 101191251 B1 KR101191251 B1 KR 101191251B1
Authority
KR
South Korea
Prior art keywords
flow
packet
microblock
information
network
Prior art date
Application number
KR1020110128132A
Other languages
English (en)
Other versions
KR20120008478A (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 KR1020110128132A priority Critical patent/KR101191251B1/ko
Publication of KR20120008478A publication Critical patent/KR20120008478A/ko
Application granted granted Critical
Publication of KR101191251B1 publication Critical patent/KR101191251B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

본 발명은 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어 장치 및 방법에 관한 것이다.
본 발명은 외부 모듈로 통신방법을 제공하는 이출인터페이스부 및 제어인터페이스부, 패킷이 해당하는 플로우를 찾아내고 패킷이 속한 플로우 정보를 갱신하며, 주기적으로 외부 수집자에게 플로우 정보를 전달하는 플로우생성모듈, 플로우 정책과 각 플로들의 우선순위결정 및 스케줄링을 수행하여 패킷전송모듈로 전송하는 플로우제어모듈을 포함하여 구성된 데이터평면 처리모듈과, 플로우들에 의해 주기적으로 모든 정보를 전달받는 수집자, 수집된 모든 정보를 저장하는 저장소, 저장된 정보에 의해 현재 네트워크 상태를 분석하고 제어어플리케이션에게 결과를 통보하는 분석기로 구성된 수집 및 분석자와, 분석기로부터의 현재 네트워크 상태를 전달받는 수집기/분석기 인터페이스, 전달받은 현태 네트워크상태를 표시하는 그래픽유저 인터페이스, 사용자가 특정 플로우를 조정하도록 하는 제어인터페이스를 포함하여 구성된 제어 어플리케이션으로 구성된 것을 특징으로 한다.

Description

3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법{10 Gbps scalable flow generation and control, using dynamic classification with 3-level aggregation}
본 발명은 IXP2800 네트워크 프로세서를 이용하여 10Gbps급 트래픽에 대한 플로우 생성 및 제어 기술에 관한 것이며, 더욱 상세히는 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어 방법에 관한 것이다.
인터넷의 성장 및 발전과 함께, 네트워크 트래픽에 대한 구성 및 원동력의 이해는 네트워크 엔지니어링, 계획, 설계, 공격감지를 위해 매우 중요하다.
1) 플로우 모니터링 ( Flow Monitoring ):
플로우(flow)는 같은 특성을 가지는 네트워크 패킷의 수를 말한다. 예를 들어, 두 프로세스(process)간에 메시지 정보를 전달하는 모든 패킷은 하나의 플로우로 구분될 수 있다. 플로우 모니터링은 인터넷 서비스 프로바이더(Internet Service Providers)에게 네트워크 활동여부 확인, 비정상적인 동작 및 공격에 대한 감지, 미래 계획과 요금 정산을 위한 네트워크 통계 수립이 가능하게 해준다. 플로우 생성은 플로우 정보 데이터의 생성, 시간 초과된 플로우의 제거의 동작을 포함하는 네트워크 노드에서 동적인 플로우 모니터링을 말한다.
2) Cisco NetFlow :
시스코 넷플로우(Cisco Netflow)는 네트워크 모니터링을 위하여 표준처럼 사용되고 있는 도구 중 하나이다. 넷플로우는 플로우의 이출(移出) 구조와 프로토클의 구제적 정의를 제공한다. 넷플로우 구조는 넷플로우가 가능한 네트워크 노드와 수집기 분석기로 구성된다. 넷플로우가 가능한 네트워크 노드는 일시적인 플로우 정보와 주기적으로 수집기로 전달되는 정보를 담고 있는 플로우캐시(flow-cache)를 유지관리하여야 한다. 플로우캐시의 크기는 해당 네트워크에서 한순간에 대한 정확한 모니터링을 보장할 수 있도록 충분해야한다. 즉, 플로우캐시에서 유지되는 플로우의 수는 해단 네트워크 노드를 통과할 수 있는 최대 플로우 수 이상이 되어야 한다.
3) 플로우 집합 ( Flow Aggregation ):
플로우 집합은 같거나 비슷한 특성을 가지는 여러 플로우들을 모은 것이다. 플로우 집합은 네트워크 어플리케이션에서 플로우 분류 기능을 간단하게 해주고, 더욱 큰 용량에 대한 처리를 가능하게 해준다. 이러한 점으로 인해 시스템의 성능을 강화할 수 있도록 도와준다.
4) 플로우 제어 ( Flow Control )
플로우 제어는 네트워크 자원에서 각각의 플로우에 대해 몇 가지 제어 기능을 제공하는데 사용된다. 플로우 제어를 적용하는 것은 특정 플로우의 우선권을 높이거나 대역폭의 제한을 두는 등의 네트워크 동작을 가능하게 한다. 플로우 제어를 하기 위해서는 먼저 플로우 구별이 이루어져야한다. 플로우 제어는 특정 플로우에 대한 정책적용, 큐잉(queueing), 스케쥴링(scheduling)을 포함한다.
5) Intel IXP 2800과 Radisys ATCA -7010, TCAM
인텔 IXP2800 네트워크 프로세서는 XScale 임베디드 프로세서와 16개의 프로그래밍이 가능한 32-비트 마이크로엔진(microengine)을 제공해준다. IXP2800의 각 마이크로엔진은 패킷 구분, 미터링(metering), 마킹(marking), 큐잉(queuing), 스케쥴링(scheduling)과 같은 고속 패킷 처리 기능을 수행할 수 있다. 또한 IXP2800은 OC-192급의 10Gbps 트래픽에 대한 처리가 가능하다. XScale 코어는 로컬 주소 패킷의 처리, 패킷의 단편화와 같은 저속 패킷 처리와 네트워크 노드의 제어평면에서의 기능을 수행하는데 사용된다.
RadiSys사의 ATCA-7010은 표준 ATCA 섀시에 설치가 가능한 형태의 모듈로 설계되어있다. 기본 카드에는 TCAM(네트워크 검색 엔진), ATCA 광 백플레인(Fabric backplane) 카드 등의 여러 옵션 카드들을 제어할 수 있으며, 10개의 1기가비트 이더넷 포트를 가지는 Rear Transition Module(RTM)에 접속가능하다. 두 개의 IXP2800 네트워크 프로세서 유닛(Network Processor Unit)과 32MB 플래시 메모리, 758MB RDRAM, 24MB QDR Ⅱ SRAM, 48Mbits TCAM을 탑재하고 있다. 두 개의 NPU는 RTM, Fabric Interface와 함께 SPI 스위치를 중심으로 연결구성되어 있다.
Content Addressable Memory (CAM)은 컨텐츠의 결합을 통한 메모리 주소 검색기능을 가지는 메모리의 특별한 형태이다. TCAM은 (0, 1, *)의 세 비트 상태를 지원하는 CAM이다. TCAM은 단 한번의 메모리 접근으로 결과를 얻어올 수 있기 때문에 다양한 검색, 구별기능을 매우 빠르게 해결할 수 있게 해준다.
6) Intel IXA Portability Framework
IntelPortability Framework는 VxWorks와 Montavista 리눅스에서 네트워크 어플리케이션의 개발을 위한 모듈 및 이식가능한 코드로 이루어진 소프트웨어 구조를 의미한다. 이것은 다음과 같은 장점을 가진다.
■ 어플리케이션 공통적인 기능에 대하여 라이브러리로 제공되어 개발 속도를 빠르게 한다.
■ 샘플 어플리케이션의 제공으로 고성능 어플리케이션의 개발이 쉽다.
■ 개발된 코드의 재사용이 가능하여 여러 어플리케이션 구현에 적용이 가능하다.
Intel IXA Framework는 2가지의 데이터 평면으로 나뉘어진다. 고속 처리 평면에서는 병렬 구조로 마이크로엔진에서 수행되며, 대부분의 트래픽을 처리한다. 저속 처리 평면은 예외 패킷이나 긴 처리 시간이 요구되는 패킷에 대하여 XScale 프로세서에서 수행된다. 어플리케이션은 코어 콤포넌트(Core Component)와 마이크로블럭(microblock)으로 구성된다. 마이크로블럭은 저급 언어 라이브러리를 사용하여 쓰여진 매크로와 빠른 패킷 처리를 위하여 최적화된 코드이다. 코어 콤포넌트는 마이크로블럭의 관리와 XScale의 수행을 위한 라이브러리로 이루어져 있다. 보다 나은 성능을 위해 패킷은 병렬로 처리된다. 이러한 점은 네트워크 처리 어플리케이션의 임계영역에 대한 주의 깊은 제어를 요구한다. 각 패킷은 버퍼에 저장되어 있으며 메타데이터(metadata)를 가진다. 메타데이터는 패킷의 길이, 입출력 포트 번호, 플로우 구별번호와 같은 패킷자체에서 가지고 있지 않은 부가적인 정보를 각 마이크로블럭 사이에서 전달해주는 기능을 한다.
본 발명은 상기한 바와 같은 종래의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 네트워크 과금, 보안, QoS 보장형 서비스를 위하여, 3단계 동적 분류 방식을 통한 초고속대용량 플로우 생성, 제어 기법 및 IXP2800 네트워크 프로세서 어플리케이션을 구현하는 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어 방법을 제공하는 것이다.
상기한 바와 같은 본 발명의 목적을 달성하기 위하여, 본 발명에 따른 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어장치는 네트워크 인터페이스 버퍼로부터 패킷을 받는 패킷수신모듈과 IP 라우팅 수행 및 패킷의 출력 포트를 결정하는 라우팅 및 스위칭 모듈, 패킷을 네트워크 인터페이스 버퍼로 보내는 패킷 전송모듈로 구성되어 일반적인 IP 라우터 처리를 수행하는 데이터평면 처리모듈과, 수집 및 분석자와, 제어 어플리케이션으로 구성되어 10Gbps급 트래픽을 다룰 수 있는 유연하고 확장성이 큰 플로우 생성, 제어 및 정보측정 기능을 제공하는 10Gbps급 대용량 플로우 생성 및 제어장치에 있어서, 상기 데이터평면 처리모듈은 상기 외부 모듈로 통신방법을 제공하는 이출인터페이스부 및 제어인터페이스부와, 패킷이 해당하는 플로우를 찾아내고, 해당 패킷이 속한 플로우 정보를 갱신하며, 주기적으로 외부 수집자에게 플로우 정보를 전달하는 플로우생성모듈과, 플로우 정책과 각 플로들의 우선순위결정 및 스케줄링을 수행하여 상기 패킷전송모듈로 전송하는 플로우제어모듈을 포함하여 구성되며, 상기 수집 및 분석자는 플로우들에 의해 주기적으로 모든 정보를 전달받는 수집자와, 상기 수집자에서 수집된 모든 정보를 저장하는 저장소와, 상기 저장소에 저장된 정보에 의해 현재 네트워크 상태를 분석하고 상기 제어어플리케이션에게 결과를 통보하는 분석기로 구성되며, 상기 제어 어플리케이션은 상기 분석기로부터의 현재 네트워크 상태를 전달받는 수집기/분석기 인터페이스와, 상기 수집기/분석기 인터페이스를 통해 전달받은 현태 네트워크상태를 표시하는 그래픽유저 인터페이스와, 사용자가 특정 플로우를 조정하도록 하는 제어인터페이스를 포함하여 구성된 것을 특징으로 한다.
본 발명의 목적을 달성하기 위한 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어과정은 데이터평면처리모듈에 의하여 여러 개의 처리 블레이드를 동시에 사용가능하도록 인그레스 네트워크 프로세서와 이그레스 네트워크 프로세서로 구성된 10Gbps급 대용량 플로우 생성 및 제어방법에 있어서, 상기 인그레스 네트워크 프로세서는 RX 마이크로블럭(301)에 의해 주기적으로 네트워크 인터페이스에 새로운 패킷이 도착했는지를 확인하고, 도착한 패킷은 메모리버퍼에 저장되고, L2 decap 마이크로블록(302)으로 전달되어 2계층 헤더를 분석하는 제 1 과정; 상기 L2 decap 마이크로블록(302)에서 전달된 패킷은 분류자 마이크로블록(303)에 의해서 필드별로 분류하고, 패킷이 어떤 플로우에 속하는지 검사하는 제 2 과정; 상기 제 2 과정에서 검사된 패킷은 IPv4 마이크로블록(304)에서 라우팅작업을 거친 후 미터링(305)에 의해 제어해야할 플로우에 속한 패킷들에 대하여 정책을 수행하는 제 3 과정; 통계 마이크로블록(306)에 의해 플로우 정보 구조체를 갱신하고, 큐매니저/ 스케줄러(307)로 패킷 정보를 전달하는 제 4 과정; 상기 패킷 정보를 전달받은 큐메니저/스케줄러(307)에서 스케줄러는 다른 ATCA 프로레이드로의 패킷전달에 대한 일정을 조절하는 제 5 과정; TX 마이크로블럭(308)은 스위칭 패브릭으로 패킷을 전달하여 필요한 블레이드로 보내지도록 하고, 이그레스 NPU의 버퍼로 패킷을 전달하는 제 6 과정; 상기 이그레스 NPU의 RX마이크로블럭(309)은 스위칭 패브릭으로부터 받은 패킷을 저장하고 L2 encap 마이크로블럭(310)으로 패킷 정보를 전달하여 패킷에 2계층 이더넷 정보를 기록하는 제 7 과정; 상기 패킷에 대하여 WRED(Weighted Random Early Detection)마이크로블럭(311)에서 액티브 큐 매니지먼트 기능을 수행하고, 큐매니저/스케줄러(312)는 어떤 패킷이 다음에 전달될지 순서를 결정짓는 제 8 과정; 및 TX마이크로블럭(314)에 의해 네트워크 인터페이스를 통해 상기 패킷을 내보내는 제 9과정;을 포함하여 이루어진 것을 특징으로 한다.
여기서, 상기 제 2 과정에서 패킷이 어떤 플로우에 속하는지 검사한 결과, 새로운 플로우를 생성해야할 경우 분류자 코어 콤포넌트는 망대망(network-to-network), 호스트 대 호스트(host-to-host), 프로세스 대 프로세스(process-to-process)의 3단계 플로우 집합으로 단계적으로 구별하되, 새로운 플로우가 생성될 때 망대망 집합을 생성하는 단계; 주기적으로 플로우 캐시에 저장된 플로우의 전송률을 확인하여, 상기 소정의 한 플로우가 전송률이 미리 정해진 한계점을 넘을 경우 해당 플로우 집합은 호스트 대 호스트집합으로 지정하는 단계; 및 상기 프로세스 대 프로세스 집합을 가지는 모든 새로운 플로우는 모든 필드에 값을 채운 TCAM 엔트리를 갖는 단계;를 포함하여 이루어진 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 의하면, 10Gbps 트래픽에서 최대 12만 5천개의 플로우 생성 및 제어가 가능하다.
본 발명에서는 매우 낮은 트래픽양을 가지는 플로우까지 모니터링 할 수 있는 동적인 플로우 집합 생성을 제안한다. 이 방법은 저속 플로우 정보의 수집과 트래이드오프(tradeoff)를 통해 동시에 매우 많은 수의 플로우를 생성 및 모니터링을 가능하게 한다. 이것은 트래픽의 전체 플로우 수가 적다면 심도 싶은 플로우까지 구별이 가능하고, 전체 플로우 수가 많다면 속도가 적은 플로우들은 플로우-캐쉬가 허락하는 한도 내에서 그룹으로 묶어 모니터링을 가능하게 한다.
도 1은 본 발명에서 10Gbps 플로우 생성 및 제어 시스템의 구조를 도시한 도면.
도 2는 본 발명에서 사용한 Two-Rate Three Color Meter를 이용한 미터링(metering)과 마킹(marking)을 도시한 도면.
도 3은 본 발명에서 ATCA-7010 프로세싱 모듈 상에 구현된 시스템 구조를 도시한 도면.
도 4는 본 발명에서 TCAM 구별장치의 동작을 위한 전체 데이터 구조를 도시한 도면.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 더욱 상세하게 설명한다.
본 발명은 IXP2800 네트워크 프로세서를 이용하여 10Gbps급 트래픽에 대한 플로우 생성 및 제어에 관한 것이다. 발명된 내용에 있어서 동적이고 플로우의 생성은 각 플로우의 전송속도에 따라 동적으로 플로우의 생성 범위가 조절된다. 매우 빠르고 대용량 처리가 가능한 6-Tuple TCAM 기반의 분류(구별)장치(classification)를 사용하며, 분류된 플로우는 미터링(metering), 마킹(marking), 큐잉(queuing) 및 스케듈링(scheduling)에 의해 제어된다.
이와 같은 플로우 제어는 네트워크의 QoS 보장형 서비스 및 네트워크 공격 차단 기능을 제공한다.
본 발명은 Radysys사의 ATCA-7010 프로세싱 모듈기반으로 설계되었으며, 이 모듈은 두 개의 IXP2800 네트워크 프로세서와 고속 구별장치(classification)를 탑재하고 있다. 본 발명의 시스템은 10Gbps 트래픽에서 최대 12만 5천개의 플로우 생성 및 제어가 가능하다.
본 발명은 Radisys ATCA-7010 플랫폼에 10Gbps급 트래픽을 다룰 수 있는 유연하고 확장성 큰 플로우 생성 및 제어 시스템을 설계 및 구현한 것이다.
도 1은 본 발명의 실시예에 따른 10Gbps 플로우 생성 및 제어 시스템의 구조를 도시한 도면으로, 이를 참조하여 상세히 설명하면 다음과 같다.
플로우 생성 및 제어 시스템은 플로우 정보 측정 기능을 제공한다. 이 아키텍처는 데이터 평면 처리 모듈(101), 수집자(102), 그리고 제어 어플리케이션(103)의 3개 요소로 이루어져 있다.
데이터 평면 처리 모듈(101)은 추가적으로 플로우 생성(105)와 제어 기능(110)과 함께 일반적인 IP 라우터 처리를 수행한다. 일반적인 라우터는 네트워크 인터페이스 버퍼로부터 패킷을 받는 Packet RX(104) 모듈, IP 라우팅 수행 및 패킷의 출력 포트를 결정하는 Routing과 Switching(109) 모듈, 패킷을 네트워크 인터페이스 버퍼로 보내는 Packet TX(110) 모듈로 구성된다.
본 발명에서의 데이터 평면 처리는 이출(115)과 제어(116) 인터페이스를 포함한다. 이것은 데이터 평면 처리 모듈(101)이 외부 모듈로 통신 방법을 제공하는 역할을 한다. 플로우 생성 모듈(105)는 아래의 3가지 일을 수행한다.
■ 분류자(106)는 패킷이 해당하는 플로우를 찾아낸다. 일반적인 6-Tuple( source IP address, destination IP address, source port, destination port, IP protocol type, IP type of service) 정보를 IP 헤더로부터 추출하여 분류자가 현재 관리되고 있는 플로우에 속하는지를 검사한다. 만약 그렇다면 패킷 플로우 ID는 추후 동작을 위해 메타데이터 정보에 기록된다. 그렇지 않다면 패킷 정보는 새로운 플로우 엔트리의 생성에 사용된다.
■ 플로우 모니터링(107)은 그 패킷이 속한 플로우 정보를 갱신한다. 갱신되는 플로우 정보에는 플로우의 누적 byte, 패킷 수, 그리고 마지막 타임스탬프 등이 있다.
■ 플로우 이출(108)은 주기적으로 외부 수집자에게 플로우 정보를 전달한다. 주기적 플로우 이출은 분류자 플로우캐시가 오버플로 되지 않으면서 현재 네트워크 상태에 대한 가장 최신 정보를 받을 수 있도록 제어한다.
플로우 제어는 플로우 정책을 위한 미터링/마킹(111), 각 플로우들의 우선순위를 결정는 액티브 큐 매니지먼트(active queue management)(112)와 스케줄링(113)을 통틀어 말한다. 미터링/마킹은 2개의 토큰 버켓(token bucket)으로 구성된 Two-Rate Three Color Meter를 사용하며 동작한다.
도 2는 본 발명에서 사용한 Two-Rate Three Color Meter를 이용한 미터링(metering)과 마킹(marking)을 도시한 도면으로, 이를 참조하여 상세히 설명하면 다음과 같다.
첫 번째 토큰 버켓(201)은 녹색 토큰(G)을 가지며 두 번째(202)는 노란색 토큰(Y)을 가진다. 이 토큰들은 녹색 토큰 버켓(G)에 Committed Information Rate(CIR)이 할당되고, 노란색 토큰 버켓(Y)에는 PIR(Peak Information Rate)이 할당된다.
패킷은 녹색, 노란색, 붉은색 중 하나의 토큰에 대한 정보가 기록된다. 이 색은 액티브 큐 매니지먼트에서 사용되며, 액티브 큐 매니지먼트는 Weighted Random Early Detection(WRED)알고리즘을 기반으로 구현된다.
녹색 토큰(G)을 가진 패킷은 가장 적은 확률로 드롭 되고, 붉은색 토큰(R)을 가진 패킷은 가장 높은 확률로 드롭 되며, 노란색 토큰(Y)을 가진 패킷은 그 사이의 확률로 드롭 된다.
플로우들은 주기적으로 모든 정보를 수집자(117)로 전달하여 수집기는 저장소(118)에 저장한다. 분석기(119)는 현재 네트워크 상태에 대한 분석을 하고 제어 어플리케이션(103)에게 수집기/분석기 인터페이스(120)을 통해 결과를 통보한다.
상기 제어 어플리케이션(103)은 그래픽 유저 인터페이스(GUI)(114)를 통해 현재 네트워크 상태를 보여주고, 제어 인터페이스(121)를 통해 특정 플로우를 조정할 수 있게 한다.
또한, 상기 제어 어플리케이션(103)은 네트워크 공격처럼 특별한 케이스의 플로우에 대해서 자동적으로 처리할 수 있도록 설계할 수 있다.
이렇게 다양한 환경에 적용할 수 있도록 융통성 있게 설계되었다. 더욱 간단한 케이스로, 수집기와 제어 어플리케이션은 하나의 모듈로 통합되어 구현이 가능하다.
데이터 평면 처리모듈(101)은 Radisys ATCA-7010 플랫폼 기반으로 구현되었으며, 이 시스템은 매우 좋은 확장성을 제공한다.
만약, 더욱더 많은 처리를 필요로 한다면 여러 개의 처리 블레이드를 동시에 사용이 가능하다. Radisys ATCA-7010은 두 개의 IXP2800 네트워크 프로세서로 구성되어 있으며, 각각은 Ingress NPU와 Egress NPU로 구분된다.
도 3은 본 발명의 실시예에 따른 ATCA-7010 프로세싱 모듈 상에 구현된 시스템 구조를 도시한 도면으로, 이를 참조하여 상세히 설명하면 다음과 같다.
Ingress NPU는 패킷 분류, 라우팅 및 정책 적용부분을 처리하며, Egress NPU는 큐잉, 스케쥴링을 처리한다.
RX 마이크로블럭(301)은 주기적으로 네트워크 인터페이스에 새로운 패킷이 도착했는지를 확인한다. 도착한 패킷은 즉시 메모리 버퍼에 저장되고 2계층 헤더를 분석하는 L2 decap 마이크로블럭(302)으로 전달된다.
이후 패킷은 분류자 마이크로블럭(303)에 의해서 필드(source IP address, destination IP address, source port number, destination port number, IP protocol type, and IP type of service)에 따라 분류된다.
그리고 패킷이 어떤 플로우에 속하는지 검사를 한다. 만약 이전까지 존재하지 않던 플로우에 대한 분류가 된다면, 새로운 플로우를 생성이 필요로 함으로, 분류자 코어 콤포넌트(315)에 의해 메모리에 새로운 데이터 정보를 만들어 저장시킨다. 그리고 메타데이터에는 새롭게 부여받은 플로우 ID를 기록한다.
이후 패킷은 IPv4 마이크로블럭(304)에서 일반적인 네트워크 노드에서 처리하는 라우팅 작업을 거친다. 미터링(305)은 제어해야할 플로우에 속한 패킷들에 대하여 정책을 수행한다.
상기 통계 마이크로블럭(306)은 플로우 정보 구조체를 갱신하고, 큐 매니저와 스케줄러(307)로 패킷정보를 전달한다.
상기 Ingress NPU에서의 스케줄러는 다른 ATCA 블레이드로의 패킷전달에 대한 일정을 조절한다. 상기 Ingress NPU에서 TX 마이크로블럭(308)은 스위칭 패브릭(switching fabric)으로 패킷을 전달하여 필요한 블레이드로 보내지도록 한다.
만약, 멀티블레이드 처리를 하지 않는다면 TX 마이크로블럭은 곧바로 Egress NPU의 버퍼로 패킷을 전달하게 된다.
상기 Egress NPU의 RX 마이크로블럭(309)은 스위칭 패브릭으로부터 받은 패킷을 저장하고 L2 encap 마이크로블럭으로 정보를 전달하여 패킷에 2계층 이더넷 정보를 기록한다.
WRED(Weighted Random Early Detection) 마이크로블럭(311)은 패킷에 대하여 액티브 큐 매니지먼트 기능을 수행하고, 큐매니저와 스케줄러(312)는 어떤 패킷이 다음에 전달될지 순서를 결정짓는다.
마지막으로 Egress NPU의 TX 마이크로블럭(314)는 네트워크 인터페이스를 통해 패킷을 내보낸다.
분류자 코어 콤포넌트(315)가 마이크로블럭으로부터 예외 메시지를 받았을 때, 새 플로우 생성 절차를 시작한다. 분류자는 3개의 다른 플로우 집합을 사용한다. network-to-network, host-to-host, process-to-process 가 그것이다.
저레벨 플로우를 하나의 집합으로 모으는 것은 더 큰 확장성과 많은 수의 플로우에 대한 지원을 가능하게 한다.
도 4는 본 발명에서 TCAM 구별장치의 동작을 위한 전체 데이터 구조를 도시한 도면으로, 이를 참조하여 보다 상세히 설명하면 다음과 같다.
즉, 새로운 플로우가 생성될 때 가장 먼저 network-to-network 집합이 생성된다. 이러한 종류의 플로우의 IP prefix는 24를 가지며 나머지는 와일드카드로 지정된다(401).
상기 분류자 코어 콤포넌트(315)는 주기적으로 플로우캐시에 저장된 플로우의 전송률을 확인한다. 만약 한 플로우의 전송률이 미리 정해진 한계점을 넘을 경우 해당 플로우 집합은 host-to-host 집합으로 지정된다.
그러기 위해서 TCAM 내의 network-to-network 플로우 집합의 IP 주소값 4bytes 중 마지막 바이트 값을 와일드카드(*)에서 0으로 바뀌게 하여, 이 시점 이후의 해당 플로우 집합은 host-to-host 서브-플로우 집합으로 새롭게 구분되도록 한다(402).
상기 구분자 코어 콤포넌트는 새로운 플로우들을 상위 플로우 집합의 확장 플로우 리스트에 집어넣게 된다.
상기 host-to-host 집합의 플로우들은 정확한 IP 주소를 가지며 여전히 그 외의 모든 값은 와일드카드(*) 상태이다(403).
비슷한 방법으로 host-to-host 플로우의 전송률이 제한된 값을 넘게 되면 다음 단계의 집합으로 확장된다. 이때 비로소 모든 값이 0으로 지정된다(404).
그리고 process-to-process 집합을 가지는 모든 새로운 플로우는 모든 필드에 값을 채운 TCAM 엔트리를 가질 것이다(405).
최종적으로 전체 데이터 구조는 상기 설명한 엔트리들의 리스트 혹은 트리 형태로 저장된다.
이 방법은 대용량 플로우를 가지는 트래픽에 대하여 구체적인 정보를 유지할 수 있도록 할 수 있는 확장성이 큰 시스템에 적합하다.
이상에서 설명한 본 발명에 따른 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어 방법은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양하게 변경하여 실시할 수 있는 범위까지 그 기술적 정신이 있다.
101 : 데이터평면처리모듈 102 : 수집자
103 : 제어 어플리케이션 104 : Packet RX
105 : 플로우 생성 모듈 107 : 플로우 모니터링
108 : 플로우 이출 109 : Switching
110 : Packet TX 111 : 미터링/마킹
112 : 액티브 큐 매니지먼트 113 : 스케줄링
114 : 그래픽 유저 인터페이스 115 : 이출 인터페이스
116 : 제어 인터페이스 117 : 정보수집자
118 : 저장소 119 : 분석기
120 : 수집기/분석기 인터페이스 121 : 제어 인터페이스

Claims (4)

  1. 패킷수신모듈인 인그레스 네트워크 프로세서와 패킷전송모듈인 이그레스 네트워크 프로세서로 구성된 데이터평면처리모듈에 의해 여러 개의 패킷 입출력 처리를 위한 블레이드(blade)를 동시에 사용가능하도록 하는 10Gbps급 대용량 플로우 생성 및 제어방법에 있어서,
    상기 인그레스 네트워크 프로세서는 RX 마이크로블럭(301)에 의해 주기적으로 네트워크 인터페이스에 새로운 패킷이 도착했는지를 확인하고, 도착한 패킷은 메모리버퍼에 저장되고, L2 decap 마이크로블록(302)으로 전달되어 2계층 헤더를 분석하는 제 1 과정;
    상기 L2 decap 마이크로블록(302)에서 전달된 패킷은 분류자 마이크로블록(303)에 의해서 필드별로 분류되고, 패킷이 어떤 플로우에 속하는지 검사하는 제 2 과정;
    상기 제 2 과정에서 검사된 패킷은 IPv4(Internet Protocol version 4) 마이크로블록(304)에서 라우팅작업을 거친 후 미터링(305)에 의해 제어해야할 플로우에 속한 패킷들에 대하여 정책을 수행하는 제 3 과정;
    상기 제 3 과정의 플로우의 정보 구조체를 통계 마이크로블록(306)에 의해 갱신하고, 큐매니저/스케줄러(307)로 패킷 정보를 전달하는 제 4 과정;
    상기 패킷 정보를 전달받은 큐메니저/스케줄러(307)에서 스케줄러는 다른 ATCA(Advanced Telecommunications Computing Architecture) 블레이드로의 패킷 정보 전달에 대한 일정을 조절하는 제 5 과정;
    상기 제 5 과정의 패킷 정보를 TX 마이크로블럭(308)에 의하여 스위칭 패브릭으로 전달하여 필요한 블레이드로 보내지도록 하고, 이그레스 NPU(Network Processing Unit)의 버퍼로 상기 패킷을 전달하는 제 6 과정;
    상기 이그레스 NPU의 RX마이크로블럭(309)은 스위칭 패브릭으로부터 받은 패킷을 저장하고 L2 encap 마이크로블럭(310)으로 패킷 정보를 전달하여 패킷에 2계층 이더넷 정보를 기록하는 제 7 과정;
    상기 제 7 과정의 스위칭 패브릭으로부터 받은 패킷에 대하여 WRED(Weighted Random Early Detection)마이크로블럭(311)에서 액티브 큐 매니지먼트 기능을 수행하고, 큐매니저/스케줄러(312)는 어떤 패킷이 다음에 전달될지 순서를 결정짓는 제 8 과정;
    TX마이크로블럭(314)에 의해 네트워크 인터페이스를 통해 상기 제 7 과정의 스위칭 패브릭으로부터 받은 패킷을 내보내는 제 9 과정을 포함하여 이루어진 것을 특징으로 하는 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어방법.
  2. 제 1 항에 있어서,
    상기 제 2 과정에서 상기 분류자 마이크로블록(303)에 의해서 분류되는 필드는 'source IP address, destination IP address, source port number, destination port number, IP protocol type, IP type of service'인 것을 특징으로 하는 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어방법.
  3. 제 1 항에 있어서,
    상기 제 2 과정에서 패킷이 어떤 플로우에 속하는지 검사한 결과, 상기 패킷이 만약 플로우 목록에 포함되어 있지 않을 경우, 분류자 코어 콤포넌트에 의해 메모리에 새로운 데이터 정보를 만들어 저장시키고, 메타데이터에는 새롭게 부여받은 플로우 ID를 기록하는 단계를 더 포함하는 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어방법.
  4. 제 1 항에 있어서,
    상기 제 2 과정에서 패킷이 어떤 플로우에 속하는지 검사한 결과, 새로운 플로우를 생성해야할 경우 분류자 코어 콤포넌트는 망대망(network-to-network), 호스트 대 호스트(host-to-host), 프로세스 대 프로세스(process-to-process)의 3단계 플로우 집합으로 단계적으로 구별하되,
    새로운 플로우가 생성될 때 망대망 집합을 생성하는 단계;
    주기적으로 플로우 캐시에 저장된 플로우의 전송률을 확인하여, 상기 망대망 플로우가 전송률이 미리 정해진 한계점을 넘을 경우 해당 망대방 플로우 집합은 호스트 대 호스트집합으로 지정하는 단계; 및
    상기 프로세스 대 프로세스 집합을 가지는 모든 새로운 플로우는 모든 필드에 값을 채운 TCAM(Ternary Content Addressable Memory) 엔트리를 갖는 단계;를 포함하여 이루어진 것을 특징으로 하는 3단계 동적 분류를 통한 10Gbps급 대용량 플로우 생성 및 제어방법.
KR1020110128132A 2011-12-02 2011-12-02 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법 KR101191251B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110128132A KR101191251B1 (ko) 2011-12-02 2011-12-02 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110128132A KR101191251B1 (ko) 2011-12-02 2011-12-02 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020070076495A Division KR101275751B1 (ko) 2007-07-30 2007-07-30 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어 장치

Publications (2)

Publication Number Publication Date
KR20120008478A KR20120008478A (ko) 2012-01-30
KR101191251B1 true KR101191251B1 (ko) 2012-10-16

Family

ID=45613458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110128132A KR101191251B1 (ko) 2011-12-02 2011-12-02 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법

Country Status (1)

Country Link
KR (1) KR101191251B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101688635B1 (ko) 2015-07-01 2016-12-21 한국전자통신연구원 플로우 기반 트래픽 저장 장치 및 방법
US11918589B2 (en) 2016-04-28 2024-03-05 Nippon Chemiphar Co., Ltd. Medicament for treatment of multiple sclerosis
US11666582B2 (en) 2018-03-14 2023-06-06 Nippon Chemiphar Co., Ltd. Medicament for treating cough
AU2020439775A1 (en) 2020-03-30 2022-11-03 Nippon Chemiphar Co., Ltd. Medicament for use in preventing or treating irritable bowel syndrome or inflammatory bowel disease
CN116437928A (zh) 2020-08-03 2023-07-14 日本化学药品株式会社 用于预防、抑制或治疗伴随着过敏反应的症状的医药组合物

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100523486B1 (ko) 2002-12-13 2005-10-24 한국전자통신연구원 트래픽 측정 시스템 및 그의 트래픽 분석 방법
US20070153682A1 (en) 2005-12-30 2007-07-05 Erik Swenson Multi-priority multi-color markers for traffic metering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100523486B1 (ko) 2002-12-13 2005-10-24 한국전자통신연구원 트래픽 측정 시스템 및 그의 트래픽 분석 방법
US20070153682A1 (en) 2005-12-30 2007-07-05 Erik Swenson Multi-priority multi-color markers for traffic metering

Also Published As

Publication number Publication date
KR20120008478A (ko) 2012-01-30

Similar Documents

Publication Publication Date Title
CN103765839B (zh) 用于网络设备内的分组处理的基于变量的转发路径结构
CN109743340B (zh) 报文处理的方法和网络装置
US8284665B1 (en) Flow-based rate limiting
US8059532B2 (en) Data and control plane architecture including server-side triggered flow policy mechanism
US7742406B1 (en) Coordinated environment for classification and control of network traffic
US7522521B2 (en) Route processor adjusting of line card admission control parameters for packets destined for the route processor
US11374858B2 (en) Methods and systems for directing traffic flows based on traffic flow classifications
US8804747B2 (en) Network interface controller for virtual and distributed services
EP1754349B1 (en) Hardware filtering support for denial-of-service attacks
US10296551B2 (en) Analytics for a distributed network
US20070014275A1 (en) Dynamically controlling the rate and internal priority of packets destined for the control plane of a routing device
US9356844B2 (en) Efficient application recognition in network traffic
US20130142205A1 (en) Hierarchical Self-Organizing Classification Processing in a Network Switch
CN101106518B (zh) 为中央处理器提供负载保护的拒绝服务方法
JP2005277804A (ja) 情報中継装置
KR101191251B1 (ko) 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법
US11818022B2 (en) Methods and systems for classifying traffic flows based on packet processing metadata
US20110206049A1 (en) Targeted flow sampling
CN1875585A (zh) 利用mac限制来控制动态未知l2泛滥
CN111771358B (zh) 包可编程状态集
US20120076153A1 (en) Statistics module for network processors in virtual local area networks
CA2620349A1 (en) Packet flow bifurcation and analysis
CN101626323A (zh) 一种网络数据流量监测方法和装置
CN101827073A (zh) 跟踪片段数据流
WO2020083272A1 (zh) 处理策略的生成方法、系统及存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
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: 20151001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee