KR20120062174A - 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법 - Google Patents

다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법 Download PDF

Info

Publication number
KR20120062174A
KR20120062174A KR1020100123319A KR20100123319A KR20120062174A KR 20120062174 A KR20120062174 A KR 20120062174A KR 1020100123319 A KR1020100123319 A KR 1020100123319A KR 20100123319 A KR20100123319 A KR 20100123319A KR 20120062174 A KR20120062174 A KR 20120062174A
Authority
KR
South Korea
Prior art keywords
packet
packet processing
interface
interface card
card
Prior art date
Application number
KR1020100123319A
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 KR1020100123319A priority Critical patent/KR20120062174A/ko
Priority to US13/311,968 priority patent/US20120140640A1/en
Publication of KR20120062174A publication Critical patent/KR20120062174A/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

Landscapes

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

Abstract

특정네트워크 프로세서를 사용하지 않고 범용의 프로세서를 사용하여 특정 패킷 처리용 API와 특정 컴파일러를 사용하지 않는 대신 일반적으로 사용되는 OSS(Open Source Software) 컴파일러를 사용하여, 하드웨어와 소프트웨어의 업그레이드가 되는 경우 소프트웨어의 재사용이 용이하다.

Description

다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법{Apparatus and method for dynamic processing a variety of characteristics packet}
본 발명은 인터페이스로부터 유입되는 다양한 패킷을 처리하는 기술에 관한 것으로, 보다 상세하게는 다양한 패킷 처리를 수행하는 모듈들을 동시에 수행하거나, 패킷 처리 모듈을 다이내믹하게 업그레이드하는 기능을 통해, 다기능 패킷 처리를 실현하는 패킷 처리장치 및 방법에 관한 것이다.
일반적인 패킷처리 장치는 저속처리용, 고속처리용, 인터페이스에 따라 다양하게 분류될 수 있다.
저속 처리용은 가정이나, 사무실에서 사용하는 유,무선 소규모 홈 라우터이며, 고속처리용은 데이터 센터나, ISP에서 사용하는 망 접속용 EDGE/CORE급 패킷 처리용 스위치 및 라우터이다.
고속 처리용 패킷 처리 장치는 이더넷 인터페이스(Ethernet interface), POS(Packet of Sonet) 인터페이스 등 다양한 인터페이스를 제공할 수 있다. 특히, 고속 처리용의 경우 네트워크 프로세서를 이용하여 빠른 패킷 처리를 실현하고 있다.
그러나, 네트워크 프로세서를 사용하는 경우 장치의 개발과 업그레이드에 어려움이 있다. 첫째, 해당 벤더에서 제공하는 특정 API와 컴파일러를 이용해야 하므로 개발비용이 크다. 둘째, 특정 벤더에서 해당 버전의 네트워크 프로세서를 지원하지 않거나, 새로운 네트워크 프로세서를 출시 할 경우, 해당 소프트웨어를 재사용이 어렵다.
따라서, 특정 네트워크 프로세서를 사용하지 않고 범용의 프로세서를 사용하여 특정 패킷 처리용 API와 특정 컴파일러를 사용하지 않고, 특정 컴파일러 대신 일반적으로 사용되는 OSS(Open Source Software) 컴파일러를 사용할 수 있는 기술에 대한 필요성이 대두되고 있다.
또한, 하드웨어와 소프트웨어의 업그레이드가 되는 경우, 소프트웨어의 재사용이 용이하고, 패킷을 포워딩하는 네트워크 장치, 패킷을 실시간으로 분석하는 DPI(Deep packet Inspection) 장치, 다이내믹 프로그래밍이 로딩이 필요한 네트워크 장치, 패킷을 분석하여 블록킹하는 방화벽 장치 등에 활용할 수 있는 기술에 대한 개발을 필요로하고 있다.
본 발명은, 다양한 인터페이스를 가지는 패킷 처리용 장치 및 방법을 제공할 수 있다.
또한, 일반적인 패킷 처리용 장치를 개발하는 방법과 비교하여 개발비용과 개발 기간을 단축할 수 있다.
또한, 특정의 네트워크 프로세서 고유의 API를 사용하지 않으므로 코드의 재활용할 수 있다.
본 발명은, 다양한 패킷 처리를 수행하는 모듈들을 동시에 수행하거나, 패킷 처리 모듈을 다이내믹하게 업그레이드하는 기능을 제공할 수 있다.
또한, 이 기능을 통해, 다기능 패킷 처리를 실현하게 된다.
본 발명의 바람직한 일 양상에 따른 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치는 네트워크 간에 연결되어 패킷 처리를 수행하는 패킷 처리장치에 있어서, 네트워크로부터 전달된 패킷의 특성에 따라 패킷을 처리하는 하나 이상의 패킷처리 모듈을 포함하고, 패킷처리 모듈은 네트워크 간에 패킷 처리를 수행하고자 하는 사용자가 요구하는 패킷 처리 서비스를 수행하도록 동적으로 추가 또는 제거된다.
또한, 패킷처리 모듈은 사용자가 정의한 프로토콜에 따라 패킷 처리 서비스를 수행하는 인터페이스 카드 및 인터페이스 카드를 프로토콜에 따라 설정하고, 설정된 프로토콜에 따라 패킷 처리 서비스를 수행하도록 인터페이스 카드를 제어하는 컨트롤 서버 카드를 포함할 수 있다.
또한, 패킷처리 모듈은 네트워크 간의 서로 다른 특성의 패킷 처리 서비스를 수행하는 하나 이상의 인터페이스 카드를 포함할 수 있다.
또한, 패킷처리 모듈은 인터페이스 카드 간, 컨트롤 서버 카드와 인터페이스 카드 간 통신을 수행하는 통신채널을 더 포함할 수 있다.
또한, 인터페이스 카드는 네트워크 간의 통신을 위하여 사용자가 정의한 프로토콜에 따라 통신하는 하나 이상의 인터페이스부를 포함할 수 있다.
또한, 인터페이스 카드는 패킷 처리 서비스를 수행하는 패킷 프로세싱 유닛(Packet Processing Unit), 입출력되는 패킷을 저장하는 메모리 블록, 네트워크 상의 범용 인터페이스 디바이스와 연결되어 패킷 프로세싱 유닛(PPU) 및 메모리 블록과 통신하는 인터페이스부 및 패킷 프로세싱 유닛(PPU)의 운영체제, 사용자가 정의한 프로토콜에 대한 정보를 저장하는 보조기억부를 포함할 수 있다.
또한, 패킷 프로세싱 유닛(PPU)는 General Purpose CPU(Central Processing Unit) 또는 Multicore-CPU로 구성된 다양한 특성의 패킷을 동적으로 처리할 수 있다.
또한, 패킷처리 모듈은 네트워크 간의 서로 다른 특성의 패킷 처리 서비스를 수행하는 하나 이상의 인터페이스 카드를 포함하고, 인터페이스 카드는 인터페이스 카드 간, 컨트롤 서버 카드와 인터페이스 카드 간 통신을 수행하는 내부 인터페이스부를 포함할 수 있다.
또한, 내부 인터페이스부는 PCI-E(Peripheral Component Interconnet Express), PCI-X(Peripheral Component Interconnect Extended), 10G 또는 100G 이더넷 버스(Ethernet Bus)로 구성될 수 있다.
또한, 컨트롤 서버 카드는 인터페이스 카드 간의 패킷 처리 서비스를 수행하는 스케쥴을 관리하는 제어부, 인터페이스 카드의 동작을 제어하는 인터페이스 관리부, 사용자가 정의한 프로토콜에 따라 패킷 처리 서비스를 수행하는 응용프로그램을 인터페이스 카드에 로딩하거나 인터페이스 카드로부터 언로딩하는 프로그램 제어부 및 제어부의 운영체제, 응용프로그램에 대한 정보를 저장하는 저장부를 포함할 수 있다.
본 발명의 바람직한 일 양상에 따른 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리방법은 네트워크 간에 연결되어 패킷 처리를 수행하는 패킷 처리방법에 있어서, 네트워크로부터 패킷을 수신하는 단계, 수신된 패킷의 헤더를 분석하여 패킷의 특성을 파악하는 단계, 파악된 패킷의 특성에 따라 패킷 처리 서비스를 수행하는 단계 및 파악된 패킷의 특성이 패킷 처리 서비스를 수행할 수 없는 경우, 패킷을 폐기하는 단계를 포함할 수 있다.
또한, 패킷의 특성을 파악하는 단계는 수신된 패킷의 헤더를 분석하여 패킷에 맞는 패킷 처리 서비스를 검색할 수 있다.
또한, 패킷의 특성을 파악하는 단계는 수신된 패킷의 헤더가 네트워크 간에 패킷 처리를 수행하고자 하는 사용자가 요구하는 패킷 처리 서비스를 지정하는 경우, 해당 패킷 처리 서비스를 검색할 수 있다.
또한, 패킷 처리 서비스를 수행하는 단계는 패킷에 대하여 검색된 패킷 처리 서비스를 수행할 수 있다.
또한, 패킷을 폐기하는 단계는 패킷에 맞는 패킷 처리 서비스가 검색되지 않는 경우, 패킷을 처리할 수 없음을 보고하고 패킷을 폐기할 수 있다.
본 발명은, 특정 네트워크 프로세서를 사용하지 않고 범용의 프로세서를 사용하여 특정 패킷 처리용 API와 특정 컴파일러를 사용하지 않는다. 특정 컴파일러 대신 일반적으로 사용되는 OSS(Open Source Software)를 사용한다.
또한, 개발 비용 및 개발 시간을 단축할 수 있는 이점이 있다. 특히, 하드웨어와 소프트웨어의 업그레이드가 되는 경우, 소프트웨어의 재사용이 용이한 장점이 있다. 기존 장치는 하드웨어가 변경되는 경우, 고유의 특정 컴파일러를 사용하므로, 소프트웨어가 호환이 되지 않는다.
본 발명은, 다양한 서비스를 처리할 수 있는 사용자 모듈을 동적으로 로딩/언로딩하여 다양한 서비스의 패킷을 처리할 수 있다. 이를 응용하면, 다양한 서비스를 사용자가 원하는대로 처리하는 서비스 인지 패킷 처리시스템(Service-Aware Packet Processing System)을 실현할 수 있게 되어, 많은 비용을 들이지 않고 다양한 서비스를 수용할 수 있게 된다.
도 1은 본 발명의 바람직한 일 실시예에 따른 네트워크 간에 적용된 패킷 처리장치를 나타낸 블록도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 패킷 처리장치의 구성을 나타낸 블록도이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 패킷 처리장치의 인터페이스 카드의 세부구성을 나타낸 블록도이다.
도 4은 본 발명의 바람직한 일 실시예에 따른 패킷 처리장치의 컨트롤 서버 카드의 세부구성을 나타낸 블록도이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 패킷 처리방법을 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 네트워크 간에 적용된 패킷 처리장치를 나타낸 블록도이다. 도 1을 참조하면, 패킷 처리장치(110)는 네트워크(100, 120) 사이에 위치하여 다수의 패킷처리 모듈(111)을 통하여 패킷을 처리하게 된다.
패킷 처리장치(110) 상의 패킷처리 모듈(111)은 네트워크로부터 전달된 패킷의 특성에 따라 해당 패킷을 처리하며, 다수의 패킷을 처리하기 위해 하나 이상 배치된다.
각각의 패킷처리 모듈(111)은 특정 특성의 패킷만을 처리할 수 있도록 설정되며, 이러한 설정은 패킷의 입력 상태 등에 따라 처리할 수 있는 패킷의 특성을 변경가능하다.
네트워크(100)는 패킷 처리장치(110)에 연결될 수 있는 네트워크이다. 일반적으로 사용되는 인터넷이 될 수 있다.
도 1의 예에서, 패킷 처리장치(110)는 n개의 서비스를 제공하는 모듈(111)을 탑재하고 있다. 이 모듈들은 사용자가 요구하는 서비스로, 시스템이 수행되는 동안에 동적으로(DYNAMIC LOADING) 추가 혹은 제거가 가능하다. 패킷처리 모듈(111)은 해당 패킷을 처리하는 기능을 갖는다.
도 2는 본 발명의 바람직한 일 실시예에 따른 패킷 처리장치의 구성을 나타낸 블록도이다. 도 2를 참조하면, 본 발명의 패킷처리 모듈(111)은 컨트롤 서버 카드(200), 인터페이스 카드(210), 통신채널(220)를 포함할 수 있다.
인터페이스 카드(210)는 사용자가 정의한 프로토콜에 따라 패킷 처리 서비스를 수행한다. 또한, 인터페이스 카드(210)는 네트워크 간의 통신을 위하여 사용자가 정의한 프로토콜에 따라 통신하는 인터페이스부(212, 212, 213)가 하나 이상 포함될 수 있다.
컨트롤 서버 카드(200)는 인터페이스 카드(210)를 프로토콜에 따라 설정하고, 설정된 프로토콜에 따라 패킷 처리 서비스를 수행하도록 인터페이스 카드(210)를 제어한다.
통신 채널(220)은 인터페이스 카드 간, 컨트롤 서버 카드(200)와 인터페이스 카드(210) 간 통신을 수행한다.
컨트롤 서버 카드(200)는 패킷 처리용 인터페이스 카드(210)를 제어한다. 주요기능은, 인터페이스 카드(210)의 부팅 제어, 프로그램 로딩 제어, 라우팅 제어, 모니터링, 사용자 제어, 리소스 제어 기능 등을 수행한다.
인터페이스 카드(210)는 패킷을 처리한다. 주요 기능은 패킷 파싱, 기능별 패킷 처리, 리소스 제어 등이다.
패킷 파싱과 처리는 사용자가 정의한 프로토콜에 따라 그 기능이 정의된다. 예를 들면, IPV4 패킷의 특정 필드를 이용하여 플로우를 생성하는 기능, IPV6 패킷의 특정 필드를 포함하는 경우 패킷 드랍을 수행하는 기능 등이다. 이 기능은 사용자의 특정 용도에 따라 정의될 수 있다.
리소스의 제어는 사용자의 패킷 처리 기능에 인터페이스 카드(210)의 리소스(CPU, 메모리 등)를 할당하고 제어하는 기능이다. 인터페이스 카드(210)는 인터페이스 카드가 제공하는 다양한 네트워크 인터페이스(211, 212, 213)를 포함한다. 예를 들면, 이더넷 1G/10G/100G 인터페이스 등이 가능하다.
통신채널(220)은 인터페이스간, 컨트롤 서버 카드(200)와 인터페이스(210)간 신호를 전달하는 채널이다. PCI 버스, 이더넷 10G 혹은 100G 스위칭 채널을 이용할 수 있다. 혹은 시스템을 구성하는 고유 통신 채널을 사용할 수도 있다.
만약 ATCA(Advanced Telecommunications Computing Architecture) 규격을 사용한다면, 해당 규격의 통신 채널을 이용할 수 있다. 또는 논블럭킹 크로스바 스위칭 채널(Nonbroking crossbar switching channel)을 이용할 수 있다.
도 3은 본 발명의 바람직한 일 실시예에 따른 패킷 처리장치의 인터페이스 카드의 세부구성을 나타낸 블록도이다. 본 발명의 인터페이스 카드(210)는 패킷 프로세싱 유닛(Packet Processing Unit, 301), 인터페이스부(Interface, 302), 메모리 블록(Memory, 303), 보조기억부(Disk, 304), 내부 인터페이스부(Internal Interface, 305)를 포함할 수 있다.
패킷 프로세싱 유닛(301)은 패킷 처리 서비스를 수행한다.
메모리 블록(303)은 입출력되는 패킷을 저장한다.
인터페이스부(302)는 네트워크 상의 범용 인터페이스 디바이스와 연결되어 패킷 프로세싱 유닛(PPU, 301) 및 메모리 블록(303)과 통신한다.
보조기억부(304)는 패킷 프로세싱 유닛(301)의 운영체제, 사용자가 정의한 프로토콜에 대한 정보를 저장한다.
내부 인터페이스부(305)는 인터페이스 카드(210)는 인터페이스 카드 간, 컨트롤 서버 카드(200)와 인터페이스 카드(210) 간 통신을 수행한다.
패킷 프로세싱 유닛(PPU, 301)는 패킷의 처리를 담당하는 CPU(Central Processing Unit)이다. PPU(301)로는 일반적인 싱글코어 프로세서(Single Core Processor) 혹은 멀티코어 프로세서(Multi-Core Processor)가 사용된다.
멀티코어 프로세싱 유닛은 성능과 소비 전력 절감, 그리고 여러 개의 작업을 보다 효율적으로 처리하기 위해 두 개 이상의 프로세서가 붙어있는 집적회로이다.
현재는 64 멀티 코어 집적 기술이 사용 가능하다. 싱글코어 프로세싱 집적 기술은 발열문제, 집적화 문제로 성능 향상에 제한이 있다.
따라서, 멀티코어 프로세싱의 성능을 높이려는 기술은 계속 발전될 것으로 전망된다. 본 발명은 멀티코어 프로세서에 패킷처리 모듈 기능을 코어별로 다이내믹하게 구성하여 수행하도록 하거나, 싱글 코어를 사용하여 패킷처리 모듈을 다이내믹하게 구성하여 수행하도록 한다.
PPU(301)의 패킷 처리 모듈은 콘트롤 서버 카드(200)에 의해 제어된다. 패킷 처리장치는 그 기능에 따라 다양하게 구현된 후 로딩되어 해당 목적에 따라 인터페이스 카드(210)가 동작하게 된다.
예를 들면 IPV4 패킷 포워딩 처리 기능의 인터페이스 카드로 동작하기 위해서 IPV4 패킷 파서, 라우팅 룩업, 패킷 재조립, 패킷 헤더 수정 기능이 동작된다. PPU(301)는 패킷 처리 모듈을 로딩하고 언로딩하는 기능, 리소스 제어 기능, 스켸쥴링 기능을 수행한다.
PPU(301)의 기본 운영체제는 OSS(OPen Source SoftWare)인 리눅스, BSD 등을 탑재할 수 있다. 본 발명은, 패킷 처리를 위해 특정의 네트워크 프로세서를 사용하지 않는다. 특정 네트워크 프로세서를 사용하지 않고 범용의 프로세서를 사용하여 특정 패킷 처리용 API와 특정 컴파일러를 사용하지 않는다.
특정 컴파일러 대신 일반적으로 사용되는 OSS(Open Source Software)를 사용할 수 있다. 이러한 특징을 가능하게 하기 위해, PPU(301)로 General Purpose CPU 혹은 Multicore-CPU를 사용하고, 특정 운영체제가 아닌 범용 운영체제를 사용한다.
인터페이스부(302)는 범용의 인터페이스 디바이스와 PPU(301), 메모리 블록(303)과 연결된다. 인터페이스부(302)는 이더넷 1G/10G/100G 혹은 POS 인터페이스 등이 포함된다.
또한, 인터페이스부(302)에는 관리용 목적의 시리얼 인터페이스도 포함될 수 있다. 또한 관리용 및 개발 목적의 VGA(Video Graphics Array)용 인터페이스가 연결될 수 있다.
메모리 블록(303)은 입출력 되는 패킷이 저장되는 장소이다. 고속의 패킷 분석을 위해 TCAM(Ternary Content-Addressable Memory)기술이 사용된다. PPU(301)의 종류에 따라 일반 메모리가 사용될 수 있다.
보조기억부(304)는 PPU(301)의 운영체제와 정보를 처리하기 위해 사용되는 장치이다. 필요에 따라 다른 부가장치들이 탑재될 수 있다. 예를 들면, 플레쉬 메모리이다. 그 밖의 장치로 전원모듈 등 장치가 동작하기 위해 필요한 구성요소가 있을 수 있으나, 본 발명의 요지와 관련이 적어 구체적인 설명은 생략한다.
내부 인터네이스부(305)는 시스템 내부에 연결되는 인터페이스이다. 이 채널을 통해 인터페이스 카드간, 컨트롤 서버 카드와 인터페이스 카드간 통신이 이루어진다. 고속의 인터페이스를 위해 PCI-E(Peripheral Component Interconnect Express), PCI-X(Peripheral Component Interconnect Extended), 10G 이더넷 버스, 100G 이더넷 버스 등이 사용된다. 내부 인터페이스부(305)는 구현되는 시스템의 용도에 따라 다양하게 적용될 수 있다.
도 4은 본 발명의 바람직한 일 실시예에 따른 패킷 처리장치의 컨트롤 서버 카드의 세부구성을 나타낸 블록도이다. 도 4를 참조하면, 본 발명의 컨트롤 서버 카드(200)는 제어부(401), 인터페이스 관리부(402), 프로그램 제어부(403), 저장부(404)를 포함할 수 있다.
제어부(401)는 인터페이스 카드(210) 간의 패킷 처리 서비스를 수행하는 스케쥴을 관리한다.
인터페이스 관리부(402)는 인터페이스 카드(210)의 동작을 제어한다.
프로그램 제어부(403)는 사용자가 정의한 프로토콜에 따라 패킷 처리 서비스를 수행하는 응용프로그램을 인터페이스 카드(210)에 로딩하거나 인터페이스 카드(210)로부터 언로딩한다.
저장부(404)는 제어부(401)의 운영체제, 응용프로그램에 대한 정보를 저장한다.
간략히 설명하면, 제어부(401)는 리소스 제어 기능, 스켸쥴링 기능을 수행한다.
인터페이스 관리부(402)는 다양한 응용프로그램에 대한 관리 기능을 수행한다.
컨트롤 서버 카드(200)의 기본 운영체제는 OSS(Open Source Software)인 리눅스, BSD 등을 탑재할 수 있다. 또한 상용 운영체제인 윈도우를 탑재하여 응용프로그램을 관리할 수도 있다.
본 발명은 이러한 운영체제의 탑재가 특징이 아니라, 이들의 특성을 이용한 다양한 패킷의 처리가 가능한 인터페이스 장치의 연결과 소프트웨어 모듈의 구성들이다.
저장부(404)는 응용프로그램, 제어부(401)에서 데이터를 저장하기 위한 메모리 및 디스크 장치이다.
인터페이스 관리부(402)는 시스템에 연결된 인터페이스 카드(210)를 관리 및 제어한다. 인터페이스 부팅, OS 로딩 등을 수행한다. 프로그램 제어부(403)는 인터페이스 카드(210)에 탑재할 다양한 패킷 처리 모듈을 로딩/언로딩하는 기능을 제공한다.
패킷 처리 모듈은 특정 패킷을 처리하기 위해 생성되는 응용프로그램이다. 예를 들어 포워딩 정보를 생성하기 위한 모듈이 실현된다.
도 5는 본 발명의 바람직한 일 실시예에 따른 패킷 처리방법을 나타낸 흐름도이다.
네트워크 간에 연결되어 패킷 처리를 수행하는 패킷 처리방법은 먼저, 네트워크로부터 패킷을 수신하는 과정으로부터 시작된다(501).
수신된 패킷의 헤더를 분석하여 패킷의 특성을 파악한다(502). 파악된 패킷의 특성에 따라 패킷 처리 서비스를 수행한다(503, 504).
파악된 패킷의 특성이 패킷 처리 서비스를 수행할 수 없는 경우, 패킷을 처리할 수 없음을 보고하고, 해당 패킷을 폐기한다(505).
간략히 정리하면, 먼저, 인터페이스를 통해 패킷이 수신되고(501), 수신된 패킷의 헤더를 분석한다(502). 어떤 서비스에 해당하는 패킷인지를 구분하여(503) 해당 서비스용 모듈(504)로 전달한다.
처리할 수 없는 패킷의 경우, 오류보고를 한 후 해당 패킷을 폐기한다(505). 어떤 서비스의 패킷인지는 다양한 정책을 통해 결정될 수 있다.
예를 들어 IPv4의 특정 IP주소를 서비스에 매핑할 수 있다. 또는, IPV6의 특정 IP주소를 서비스에 매핑할 수 있다. 또한, 여러 가지 룰을 혼합하여 사용할 수 있다.
사용자가 특정하게 설정한 패킷 헤더를 사용할 수도 있다. 특정 패킷 헤더를 특정 서비스에 매핑하여 사용할 수도 있다. 이와 같은 다양한 패킷 포맷을 수용할 수 있다.
도 5와 같은 패킷 처리 과정을 통하여 도 1의 패킷 처리장치를 운용하는 다음과 같은 실시예를 고려할 수 있다.
[실시예1]
본 발명은, 실시간 소프트웨어 업그레이드에 활용할 수 있다. 특정 용도의 패킷 처리 모듈을 구현하여, 실제 망에서 적용하려는 경우 해당 모듈을 동적으로 로딩하여 적용이 가능하다.
예를 들면, 인터페이스 카드는 유입되는 사용자 패킷을 기존 서비스(S0)를 처리한다고 가정한다. 특정 용도의 패킷 처리를 위한 모듈 서비스(S1)를 로딩하여 인터페이스 카드에 수행하여 기존 서비스를 대체할 수 있다.
[실시예2]
본 발명은, IP 패킷 포워딩 처리 모듈을 구현하여, 일반적인 라우터 기능에 활용할 수 있다. 인터페이스 카드에 IP패킷 파싱 기능, 라우팅 룩업 기능, 패킷 수정 기능, 패킷 포워딩 기능을 PPU에 로딩한다.
라우팅 프로토콜 기능은 콘트롤 서버에 구현되어 수행되어 포워딩 정보를 생성한다. 생성된 포워딩 정보를 다운로드하여 포워딩 룩업에 사용한다. 또한 인터페이스 카드는 다수개의 IP 패킷 포워딩 처리 모듈이 구현될 수 있다. S1, S2, …, Sn 등의 IP 패킷 포워딩 처리 모듈을 각각의 코어에 수행하여 패킷을 처리한다.
[실시예3]
본 발명은, 패킷을 포워딩하는 네트워크 장치, 패킷을 실시간으로 분석하는 DPI(Deep packet Inspection) 장치, 다이내믹 프로그래밍이 로딩이 필요한 네트워크 장치, 패킷을 분석하여 블록킹하는 방화벽 장치 등에 활용할 수 있다.
[실시예4]
본 발명은, 교육의 목적, 혹은 시범 서비스를 위한 목적 등으로 실험적인 패킷을 처리하는 네트워크 장치에 활용할 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
200 컨트롤 서버 카드
210 인터페이스 카드
230 통신채널

Claims (15)

  1. 네트워크 간에 연결되어 패킷 처리를 수행하는 패킷 처리장치에 있어서,
    상기 네트워크로부터 전달된 패킷의 특성에 따라 상기 패킷을 처리하는 하나 이상의 패킷처리 모듈;을 포함하고,
    상기 패킷처리 모듈은 상기 네트워크 간에 패킷 처리를 수행하고자 하는 사용자가 요구하는 패킷 처리 서비스를 수행하도록 동적으로 추가 또는 제거되는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  2. 제 1 항에 있어서, 상기 패킷처리 모듈은
    상기 사용자가 정의한 프로토콜에 따라 패킷 처리 서비스를 수행하는 인터페이스 카드; 및
    상기 인터페이스 카드를 상기 프로토콜에 따라 설정하고, 상기 설정된 프로토콜에 따라 상기 패킷 처리 서비스를 수행하도록 상기 인터페이스 카드를 제어하는 컨트롤 서버 카드;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  3. 제 2 항에 있어서, 상기 패킷처리 모듈은
    상기 네트워크 간의 서로 다른 특성의 패킷 처리 서비스를 수행하는 하나 이상의 인터페이스 카드;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  4. 제 3 항에 있어서, 상기 패킷처리 모듈은
    상기 인터페이스 카드 간, 상기 컨트롤 서버 카드와 상기 인터페이스 카드 간 통신을 수행하는 통신채널;을 더 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  5. 제 2 항에 있어서, 상기 인터페이스 카드는
    상기 네트워크 간의 통신을 위하여 상기 사용자가 정의한 프로토콜에 따라 통신하는 하나 이상의 인터페이스부;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  6. 제 5 항에 있어서, 상기 인터페이스 카드는
    상기 패킷 처리 서비스를 수행하는 패킷 프로세싱 유닛(Packet Processing Unit);
    입출력되는 패킷을 저장하는 메모리 블록;
    상기 네트워크 상의 범용 인터페이스 디바이스와 연결되어 상기 패킷 프로세싱 유닛(PPU) 및 상기 메모리 블록과 통신하는 인터페이스부; 및
    상기 패킷 프로세싱 유닛(PPU)의 운영체제, 상기 사용자가 정의한 프로토콜에 대한 정보를 저장하는 보조기억부;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  7. 제 6 항에 있어서, 상기 패킷 프로세싱 유닛(PPU)는
    General Purpose CPU(Central Processing Unit) 또는 Multicore-CPU로 구성된 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  8. 제 6 항에 있어서,
    상기 패킷처리 모듈은 상기 네트워크 간의 서로 다른 특성의 패킷 처리 서비스를 수행하는 하나 이상의 인터페이스 카드;를 포함하고,
    상기 인터페이스 카드는 상기 인터페이스 카드 간, 상기 컨트롤 서버 카드와 상기 인터페이스 카드 간 통신을 수행하는 내부 인터페이스부;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  9. 제 8 항에 있어서, 상기 내부 인터페이스부는
    PCI-E(Peripheral Component Interconnet Express), PCI-X(Peripheral Component Interconnect Extended), 10G 또는 100G 이더넷 버스(Ethernet Bus)로 구성된 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  10. 제 3 항에 있어서, 상기 컨트롤 서버 카드는
    상기 인터페이스 카드 간의 패킷 처리 서비스를 수행하는 스케쥴을 관리하는 제어부;
    상기 인터페이스 카드의 동작을 제어하는 인터페이스 관리부;
    상기 사용자가 정의한 프로토콜에 따라 패킷 처리 서비스를 수행하는 응용프로그램을 상기 인터페이스 카드에 로딩하거나 상기 인터페이스 카드로부터 언로딩하는 프로그램 제어부; 및
    상기 제어부의 운영체제, 상기 응용프로그램에 대한 정보를 저장하는 저장부;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치.
  11. 네트워크 간에 연결되어 패킷 처리를 수행하는 패킷 처리방법에 있어서,
    상기 네트워크로부터 패킷을 수신하는 단계;
    상기 수신된 패킷의 헤더를 분석하여 상기 패킷의 특성을 파악하는 단계;
    상기 파악된 패킷의 특성에 따라 패킷 처리 서비스를 수행하는 단계; 및
    상기 파악된 패킷의 특성이 패킷 처리 서비스를 수행할 수 없는 경우, 상기 패킷을 폐기하는 단계;를 포함하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리방법.
  12. 제 11 항에 있어서, 상기 패킷의 특성을 파악하는 단계는
    상기 수신된 패킷의 헤더를 분석하여 상기 패킷에 맞는 패킷 처리 서비스를 검색하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리방법.
  13. 제 11 항에 있어서, 상기 패킷의 특성을 파악하는 단계는
    상기 수신된 패킷의 헤더가 상기 네트워크 간에 패킷 처리를 수행하고자 하는 사용자가 요구하는 패킷 처리 서비스를 지정하는 경우, 해당 패킷 처리 서비스를 검색하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리방법.
  14. 제 12 항에 있어서, 상기 패킷 처리 서비스를 수행하는 단계는
    상기 패킷에 대하여 상기 검색된 패킷 처리 서비스를 수행하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리방법.
  15. 제 14 항에 있어서, 상기 패킷을 폐기하는 단계는
    상기 패킷에 맞는 패킷 처리 서비스가 검색되지 않는 경우, 상기 패킷을 처리할 수 없음을 보고하고 상기 패킷을 폐기하는 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리방법.
KR1020100123319A 2010-12-06 2010-12-06 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법 KR20120062174A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100123319A KR20120062174A (ko) 2010-12-06 2010-12-06 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법
US13/311,968 US20120140640A1 (en) 2010-12-06 2011-12-06 Apparatus and method for dynamically processing packets having various characteristics

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100123319A KR20120062174A (ko) 2010-12-06 2010-12-06 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법

Publications (1)

Publication Number Publication Date
KR20120062174A true KR20120062174A (ko) 2012-06-14

Family

ID=46162157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100123319A KR20120062174A (ko) 2010-12-06 2010-12-06 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법

Country Status (2)

Country Link
US (1) US20120140640A1 (ko)
KR (1) KR20120062174A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477012B1 (ko) * 2014-05-23 2014-12-29 주식회사 파이오링크 Sdn 스위칭 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101502808B1 (ko) * 2010-11-29 2015-03-24 알까뗄 루슨트 단일 모뎀 보드 상의 개선된 멀티-셀 지원을 위한 방법 및 시스템
CN112422419A (zh) * 2020-11-05 2021-02-26 杭州明物智能科技有限公司 一种具备工业数据采集的5g网关路由器及其应用方法
KR102502758B1 (ko) * 2022-11-24 2023-02-23 펌킨네트웍스(주) 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059170A1 (en) * 2012-05-02 2014-02-27 Iosif Gasparakis Packet processing of data using multiple media access controllers
US10826982B2 (en) 2013-01-10 2020-11-03 Nxp Usa, Inc. Packet processing architecture and method therefor
JP6275572B2 (ja) * 2014-07-01 2018-02-07 株式会社日立製作所 ネットワークシステム、管理サーバ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590727B1 (en) * 2004-09-28 2009-09-15 Sprint Communications Company L.P. System and method for software failover on a bladed system
US8504718B2 (en) * 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101502808B1 (ko) * 2010-11-29 2015-03-24 알까뗄 루슨트 단일 모뎀 보드 상의 개선된 멀티-셀 지원을 위한 방법 및 시스템
KR101477012B1 (ko) * 2014-05-23 2014-12-29 주식회사 파이오링크 Sdn 스위칭 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN112422419A (zh) * 2020-11-05 2021-02-26 杭州明物智能科技有限公司 一种具备工业数据采集的5g网关路由器及其应用方法
KR102502758B1 (ko) * 2022-11-24 2023-02-23 펌킨네트웍스(주) 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Also Published As

Publication number Publication date
US20120140640A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
US10652155B2 (en) Universal cloud classification [UCC]as a service
CN109547580B (zh) 一种处理数据报文的方法和装置
KR20120062174A (ko) 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법
CN110896373A (zh) 用于动态选择虚拟交换的资源的技术
García-Dorado et al. High-performance network traffic processing systems using commodity hardware
US11588734B2 (en) Systems for providing an LPM implementation for a programmable data plane through a distributed algorithm
CN112585915A (zh) 控制网络系统中数据传输的装置和方法
Jouet et al. Bpfabric: Data plane programmability for software defined networks
CN110661709A (zh) 用于负载感知的业务引导的技术
CN114363170A (zh) 容器服务网络配置方法及相关产品
US11258707B1 (en) Systems for building data structures with highly scalable algorithms for a distributed LPM implementation
Riccobene et al. Automated generation of VNF deployment rules using infrastructure affinity characterization
CA3167334A1 (en) Zero packet loss upgrade of an io device
TWI637611B (zh) 使用wol的系統復原
Garcia et al. An nsh-enabled architecture for virtualized network function platforms
Barbareschi et al. Network traffic analysis using android on a hybrid computing architecture
US10719475B2 (en) Method or apparatus for flexible firmware image management in microserver
US10015291B2 (en) Host network controller
US20180091447A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
Bolla et al. OpenFlow in the small: A flexible and efficient network acceleration framework for multi-core systems
CN115499889A (zh) 基于vpp的upf转发面实现方法、装置、系统及相关设备
GB2530513A (en) Assembling response packets
US11606418B2 (en) Apparatus and method for establishing connection and CLAT aware affinity (CAA)-based scheduling in multi-core processor
Brasilino et al. Data Distillation at the Network's Edge: Exposing Programmable Logic with InLocus
US11706293B1 (en) Buffer profile assignment management based on peer network device data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application