KR101319561B1 - IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법 - Google Patents

IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법 Download PDF

Info

Publication number
KR101319561B1
KR101319561B1 KR1020130042940A KR20130042940A KR101319561B1 KR 101319561 B1 KR101319561 B1 KR 101319561B1 KR 1020130042940 A KR1020130042940 A KR 1020130042940A KR 20130042940 A KR20130042940 A KR 20130042940A KR 101319561 B1 KR101319561 B1 KR 101319561B1
Authority
KR
South Korea
Prior art keywords
packet
processing
internet
processor
software
Prior art date
Application number
KR1020130042940A
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 KR1020130042940A priority Critical patent/KR101319561B1/ko
Application granted granted Critical
Publication of KR101319561B1 publication Critical patent/KR101319561B1/ko
Priority to US14/210,452 priority patent/US9338262B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6

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

IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법이 개시된다. 시스템 로직 회로에 의해 인터넷 패킷을 프로세싱하는 하드웨어 방식 패킷 처리기; 미리 준비된 프로그램의 실행에 따라 인터넷 패킷을 프로세싱하는 소프트웨어 방식 패킷 처리기; 인터넷 패킷을 수신하여 미리 정해진 소정 프로토콜의 인터넷 패킷을 상기 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하고, 미리 정해진 다른 소정 프로토콜의 인터넷 패킷을 상기 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 패킷 처리 제어기를 구성한다. 상기와 같은 IPv4/IPv6 듀얼 스택 인터넷 패킷 처리 장치 및 방법에 의하면, 비교적 많이 사용되는 종류의 패킷은 처리 속도가 우월한 하드웨어 방식 패킷 처리 장치를 이용하여 처리하고, 비교적 많이 사용되지 않는 종류의 패킷이나 새롭게 추가되는 종류의 패킷은 처리 속도는 비교적 느리지만 언제든지 프로세싱 알고리즘을 추가할 수 있는 소프트웨어 방식 패킷 처리 장치를 이용하여 처리함으로써, 패킷 프로세싱을 원활하게 하고 IPv6 프로토콜의 확장성과 유연성을 모두 수용할 수 있는 효과가 있다.

Description

IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법{IPv4/IPv6 DUAL STACK SOFTWARE/HARDWARE APPARATUS AND METHOD FOR PROCESSING INTERNET PACKET}
본 발명은 인터넷 패킷 처리 장치 및 방법에 관한 것으로서, 좀 더 구체적으로는 IPv4/IPv6 듀얼 스택이 소프트웨어/하드웨어로 구현되는 인터넷 패킷 처리 장치 및 방법에 관한 것이다.
IPv6(internet protocol version 6) 프로토콜은 기존 IPv4 프로토콜에 비해 더 많은 확장성과 유연성을 제공한다. IPv6 프로토콜은 IPv4 프로토콜과 달리 확장 헤더(extension header)라는 유연성을 제공하고 ICMPv6 프로토콜 또한 운용 방법에 따라 다양한 형태를 갖는다.
이러한 확장 헤더와 ICMPv6 패킷을 처리하기 위해서는 상당히 복잡한 형태의 하드웨어 장치가 요구된다.
그런데, IPv6 패킷의 확장 헤더나 몇몇 ICMPv6 패킷은 그다지 빈번히 사용되는 것이 아니므로, 이를 처리하기 위해 복잡한 하드웨어 구성을 추가하는 것은 비용 대비 효율이 매우 낮다.
IPv6기술은 센서노드나 무선단말과 같은 시스템 리소스가 극히 제한적인 임베디드시스템에서 적용이 많이 기대대고 있다.
이러한 임베디드 시스템에서는 제한된 리소스를 활용하여 다양한 응용 부합하는 수용성/유연성/유지관리성 높은 IPv4 / IPv6 패킷 처리 장치가 요구되고 있다.
현재는 IPv4 망과 IPv6 망이 혼재할 경우 두 가지 프로토콜을 모두 처리할 수 있어야 함은 물론 IPv6의 가변적 요소들을 모두 수용할 수 있는 인터넷 패킷 처리 장치가 요구된다.
본 발명의 목적은 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치를 제공하는 데 있다.
본 발명의 다른 목적은 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법을 제공하는 데 있다.
상술한 본 발명의 목적에 따른 Pv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치는, 시스템 로직 회로에 의해 인터넷 패킷을 프로세싱하는 하드웨어 방식 패킷 처리기; 미리 준비된 프로그램의 실행에 따라 인터넷 패킷을 프로세싱하는 소프트웨어 방식 패킷 처리기; 인터넷 패킷을 수신하여 미리 정해진 소정 프로토콜의 인터넷 패킷을 상기 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하고, 미리 정해진 다른 소정 프로토콜의 인터넷 패킷을 상기 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 패킷 처리 제어기를 포함하도록 구성될 수 있다.
이때, 상기 하드웨어 방식 패킷 처리기가, 인터넷 패킷을 수신하여 해당 프로토콜에 따라 프로세싱하는 이더넷(Ethernet) 헤더 프로세싱 모듈; IPv4 패킷/IPv6 패킷을 해당 프로토콜에 따라 프로세싱하는 IPv4/IPv6 헤더 프로세싱 모듈; TCP/UDP 패킷을 해당 프로토콜에 따라 프로세싱하는 TCP/UDP 헤더 프로세싱 모듈을 포함하도록 구성될 수 있다.
그리고 상기 소프트웨어 방식 패킷 처리기가, 인터넷 패킷의 프로세싱을 구현하기 위한 사용자의 프로그램을 저장하 소프트웨어 프로그램 메모리; 패킷 데이터버스로부터 인터넷 패킷을 수신하여 저장하는 버퍼; 상기 소프트웨어 프로그램 메모리에 저장된 프로그램에 따라 상기 버퍼에 저장된 인터넷 패킷을 프로세싱하는 프로세서를 포함하도록 구성될 수 있다.
그리고 상기 패킷 처리 제어기가, 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지에 대한 정의를 인터넷 패킷의 프로토콜에 따라 미리 설정하여 저장하는 사용자 정의 메모리; 인터넷 패킷을 파싱하여 IPv6 패킷인지 IPv4 패킷인지 감지하고 감지 결과를 출력하는 IPv6 패킷 감지 모듈; 상기 IPv6 패킷 감지 모듈에서 감지된 IPv6 패킷의 헤더 중에서 넥스트 헤더(Next header) 값을 감지하여 넥스트 헤더 값을 출력하는 넥스트 헤더(Next header) 감지 모듈; 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 동작 상태를 감지하여 동작 상태를 출력하는 HW/SW 방식 패킷 처리기 상태 감지 모듈; 상기 IPv6 패킷 감지 모듈에서 출력된 감지 결과, 상기 넥스트 헤더 감지 모듈에서 출력된 넥스트 헤더 값, 상기 HW/SW 방식 패킷 처리기 상태 감지 모듈에서 출력된 동작 상태를 수신하고, 수신된 감지 결과, 넥스트 헤더 값, 동작 상태를 참조하여 상기 사용자 정의 메모리에 저장된 정의에 따라 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지를 지시하는 제어 신호를 생성하여 출력하는 HW/SW 패킷 처리 스위치를 포함하도록 구성될 수 있다.
이때, 상기 사용자 정의 메모리가, 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지가 이더넷 헤더의 타입 필드(type field) 값에 의해 미리 정의된 제1 테이블을 저장하고, 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지가 넥스트 헤더의 넥스트 헤더 값에 의해 미리 정의된 제2 테이블을 저장하도록 구성될 수 있다.
그리고 상기 IPv6 패킷 감지 모듈이, 상기 이더넷 헤더 프로세싱 모듈로부터 이더넷 헤더의 타입 필드(type filed) 값을 수신하고, 수신된 타입 필드 값과 상기 사용자 정의 메모리의 제1 테이블에 저장된 타입 필드 값을 대비하여 IPv6 패킷, IPv4 패킷, ARP, PPPoE 패킷을 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하도록 구성될 수 있다.
그리고 상기 넥스트 헤더 감지 모듈이, 상기 IPv4/IPv6 헤더 프로세싱 모듈로부터 넥스트 헤더(Next header) 값을 수신하고, 수신된 넥스트 헤더 값과 상기 사용자 정의 메모리의 제2 테이블에 저장된 넥스트 헤더 값을 대비하여 TCP, UDP, ICMPv6, Hop by hop 헤더, 라우팅 헤더를 포함하는 확장 헤더를 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하도록 구성될 수 있다.
그리고 상기 HW/SW 방식 패킷 처리기 상태 감지 모듈이, 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 현재 패킷 처리량을 각각 감지하고, 감지된 현재 패킷 처리량의 퍼센티지(percentage)를 상기 HW/SW 패킷 처리 스위치로 전달하고, 상기 HW/SW 패킷 처리 스위치가, 상기 전달받은 퍼센티지가 소정 값 이상이 되는 경우, 상기 퍼센티지가 상기 소정 값 이하가 되도록 하기 위하여, 패킷에 적용된 프로토콜의 각 필드에 따라서 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기로 로드 밸런싱을 수행하도록 구성될 수 있다.
상술한 본 발명의 목적에 따른 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법은, 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계; 상기 하드웨어 방식 패킷 처리기에서 상기 출력된 제어 신호에 따라 시스템 로직 회로에 의해 상기 인터넷 패킷을 프로세싱하는 단계; 상기 소프트웨어 방식 패킷 처리기가 상기 출력된 제어 신호에 따라 미리 준비된 프로그램의 실행에 의해 상기 인터넷 패킷을 프로세싱하는 단계를 포함하도록 구성될 수 있다.
이때, 상기 하드웨어 방식 패킷 처리기에서 상기 출력된 제어 신호에 따라 시스템 로직 회로에 의해 상기 인터넷 패킷을 프로세싱하는 단계가, 이더넷(Ethernet) 헤더 프로세싱 모듈이 인터넷 패킷을 수신하여 해당 프로토콜에 따라 프로세싱하고, IPv4/IPv6 헤더 프로세싱 모듈이 IPv4 패킷/IPv6 패킷을 해당 프로토콜에 따라 프로세싱하고, TCP/UDP 헤더 프로세싱 모듈이 TCP/UDP 패킷을 해당 프로토콜에 따라 처리하도록 구성될 수 있다.
그리고 상기 소프트웨어 방식 패킷 처리기가 상기 출력된 제어 신호에 따라 미리 준비된 프로그램의 실행에 의해 상기 인터넷 패킷을 프로세싱하는 단계가, 패킷 데이터버스로부터 인터넷 패킷을 수신하여 저장하는 버퍼에 저장하고, 인터넷 패킷의 프로세싱을 구현하기 위한 사용자의 프로그램을 저장하 소프트웨어 프로그램 메모리의 프로그램에 따라 프로세서가 상기 저장된 인터넷 패킷을 프로세싱하도록 구성될 수 있다.
그리고 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가, IPv6 패킷 감지 모듈이 인터넷 패킷을 파싱하여 IPv6 패킷인지 IPv4 패킷인지 감지하고 감지 결과를 출력하고, 넥스트 헤더(Next header) 감지 모듈이 상기 IPv6 패킷 감지 모듈에서 감지된 IPv6 패킷의 헤더 중에서 넥스트 헤더(Next header) 값을 감지하여 넥스트 헤더 값을 출력하고, HW/SW 방식 패킷 처리기 상태 감지 모듈이 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 동작 상태를 감지하여 동작 상태를 출력하고, HW/SW 패킷 처리 스위치가 상기 출력된 감지 결과, 넥스트 헤더 값, 동작 상태를 참조하여 상기 사용자 정의 메모리에 저장된 정의에 따라 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지를 지시하는 제어 신호를 생성하여 출력하도록 구성될 수 있다.
한편, 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가, 상기 IPv6 패킷 감지 모듈이 상기 이더넷 헤더 프로세싱 모듈로부터 이더넷 헤더의 타입 필드(type filed) 값을 수신하고, 수신된 타입 필드 값과 상기 사용자 정의 메모리에 미리 저장된 타입 필드 값을 대비하여 IPv6 패킷, IPv4 패킷, ARP, PPPoE 패킷을 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하도록 구성될 수 있다.
그리고 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가, 상기 넥스트 헤더 감지 모듈이 상기 IPv4/IPv6 헤더 프로세싱 모듈로부터 넥스트 헤더(Next header) 값을 수신하고, 수신된 넥스트 헤더 값과 상기 사용자 정의 메모리에 미리 저장된 넥스트 헤더 값을 대비하여 TCP, UDP, ICMPv6, Hop by hop 헤더, 라우팅 헤더를 포함하는 확장 헤더를 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하도록 구성될 수 있다.
그리고 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가, 상기 HW/SW 방식 패킷 처리기 상태 감지 모듈이, 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 현재 패킷 처리량을 각각 감지하고, 감지된 현재 패킷 처리량의 퍼센티지(percentage)를 상기 HW/SW 패킷 처리 스위치로 전달하도록 구성될 수 있다.
그리고 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가, 상기 전달받은 퍼센티지가 소정 값 이상이 되는 경우, 상기 퍼센티지가 상기 소정 값 이하가 되도록 하기 위하여, 패킷에 적용된 프로토콜의 각 필드에 따라서 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기로 로드 밸런싱을 수행하도록 구성될 수 있다.
상기와 같은 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법에 의하면, 비교적 많이 사용되는 종류의 패킷은 처리 속도가 우월한 하드웨어 방식 패킷 처리 장치를 이용하여 처리하고, 비교적 많이 사용되지 않는 종류의 패킷이나 새롭게 추가되는 종류의 패킷은 처리 속도는 비교적 느리지만 언제든지 프로세싱 알고리즘을 추가할 수 있는 소프트웨어 방식 패킷 처리 장치를 이용하여 처리함으로써, 패킷 프로세싱을 원활하게 하고 IPv6 프로토콜의 확장성과 유연성을 모두 수용할 수 있는 효과가 있다.
또한, 하드웨어 방식 패킷 처리기 또는 소프트웨어 패킷 처리기 중 어느 하나의 패킷 처리기의 사용율이 100%에 육박할 경우, 하드웨어 방식 패킷 처리기 및 소프트웨어 패킷 처리기에 대하여 로드 밸런싱(load balancing)을 수행함으로써, 안정적인 패킷 처리를 할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치의 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 하드웨어 방식 패킷 처리 장치의 세부 구성도이다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 방식 패킷 처리 장치의 세부 구성도이다.
도 4는 본 발명의 일 실시예에 따른 패킷 처리 제어기의 세부 구성도이다.
도 5는 본 발명의 일 실시예에 따른 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법의 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치의 블록 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치(100)(이하, '인터넷 패킷 처리 장치'라 함)는 하드웨어 방식 패킷 처리기(110), 소프트웨어 방식 패킷 처리기(120) 및 패킷 처리 제어기(130)를 포함하도록 구성될 수 있다.
인터넷 패킷 처리 장치(100)는 IPv6 패킷 및 IPv4 패킷을 모두 처리할 수 있는 듀얼 스택 장치이며, 프로토콜/패킷에 따라 하드웨어 방식 또는 소프트웨어 방식으로 프로세싱을 수행하도록 구성된다.
인터넷 패킷 처리 장치(100)는 비교적 많이 이용되는 프로토콜/패킷은 속도가 빠른 하드웨어 방식 패킷 처리기(110)가 프로세싱을 하고, 비교적 많이 이용되지 않는 프로토콜/패킷은 속도가 상대적으로 느린 소프트웨어 방식 패킷 처리기(120)를 이용하여 가변적으로 운용하도록 구성된다. 소프트웨어 방식 패킷 처리기(120)의 경우 속도는 상대적으로 느리지만, 처리 알고리즘의 추가나 변경이 용이하므로, 새로운 유형의 패킷 처리에 유리하다.
또한, 인터넷 패킷 처리 장치(100)는 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)가 사용률이 높을 경우 하드웨어 방식 패킷 처리기(110) 및 소프트웨어 방식 패킷 처리기(120) 상호 간에 로드 밸런싱(laod balancing)이 되도록 구성됨으로써, 패킷 처리에 지연이 생기는 것을 방지할 수 있다. 사용률 즉 즉 처리 용량 대비 현재 처리량의 퍼센티지가 소정 퍼센티지를 넘는 경우에는, 로드 밸런싱이 자동으로 수행되도록 구성된다.
좀 더 구체적으로는, 인터넷 패킷 처리 장치(100)는 퍼센티지 즉, 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)의 사용률이 소정 값 이상이 되는 경우, 예를 들어 95% 이상이 되면, 퍼센티지가 95% 이하가 되도록 하기 위하여 현재 패킷에 적용된 프로토콜의 각 필드에 따라서 하드웨어 방식 패킷 처리기(110) 및 소프트웨어 방식 패킷 처리기(120)로 로드 밸런싱을 수행하도록 구성된다. 즉, 프로토콜 및 특정 필드에 따라 하드웨어 방식 패킷 처리기(110)로 패킷 처리 로드(loadn)를 부담시키거나 소프트웨어 방식 패킷 처리기(120)로 패킷 처리 로드를 부담시키도록 구성될 수 있다.
이하, 세부적인 구성에 대하여 설명한다.
하드웨어 방식 패킷 처리기(110)는 시스템 로직 회로에 의해 인터넷 패킷을 프로세싱하도록 구성된다. IPv4와 같이 이미 정형화된 패킷 처리 방식은 시스템 로직 회로로 구현하여 보다 빠르게 패킷 처리를 하도록 구성된다. 그리고 IPv6 패킷 중에서도 자주 이용되는 종류의 패킷은 하드웨어 방식 패킷 처리기(110)에서 처리할 수 있도록 구성되는 것이 바람직하다.
소프트웨어 방식 패킷 처리기(120)는 미리 준비된 프로그램의 실행에 따라 인터넷 패킷을 프로세싱하도록 구성된다. 소프트웨어 방식 패킷 처리기(120)는 비교적 잘 이용되지 않는 종류의 패킷이라든가 아니면 새롭게 표준에 추가된 패킷, 확장 헤더를 갖는 패킷 등을 처리하기에 유용하다. 처리 속도는 상대적으로 느리지만, 패킷 처리 알고리즘의 추가가 쉬우므로 확장성이 높은 IPv6 프로토콜에서는 매우 유용하다.
패킷 처리 제어기(130)는 인터넷 패킷을 수신하여 미리 정해진 소정 프로토콜의 인터넷 패킷을 하드웨어 방식 패킷 처리기(110)에서 프로세싱하도록 제어하는 것으로 구성될 수 있다. 그리고 미리 정해진 다른 소정 프로토콜의 인터넷 패킷을 소프트웨어 방식 패킷 처리기(120)에서 프로세싱하도록 제어하는 것으로 구성될 수 있다. 앞서 설명한 바와 같이, 하드웨어 방식 또는 소프트웨어 방식에 적합한 패킷 처리 방식을 패킷 마다 미리 설정함으로써, 보다 적합하게 이용할 수 있다.
도 2는 본 발명의 일 실시예에 따른 하드웨어 방식 패킷 처리기의 세부 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 하드웨어 방식 패킷 처리기(110)는 이더넷(Ethernet) 헤더 프로세싱 모듈(111), IPv4/IPv6 헤더 프로세싱 모듈(112) 및 TCP/UDP 헤더 프로세싱 모듈(113)을 포함하도록 구성될 수 있다.
이더넷 헤더 프로세싱 모듈(111)은 인터넷 패킷을 수신하여 해당 이더넷 프로토콜에 따라 파싱하여 프로세싱하도록 구성된다.
IPv4/IPv6 헤더 프로세싱 모듈(112)는 IPv4 패킷/IPv6 패킷을 해당 프로토콜에 따라 파싱하여 프로세싱하도록 구성된다.
TCP/UDP 헤더 프로세싱 모듈(113)은 TCP/UDP 패킷을 해당 프로토콜에 따라 파싱하여 프로세싱하도록 구성된다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 방식 패킷 처리기의 세부 구성도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 방식 패킷 처리기(120)는 소프트웨어 프로그램 메모리(121), 버퍼(122), 프로세서(123)를 포함하도록 구성될 수 있다.
소프트웨어 프로그램 메모리(121)는 인터넷 패킷의 프로세싱을 구현하기 위한 사용자의 프로그램을 저장하도록 구성된다. 롬(ROM)과 같은 메모리에 사용자에 의해 미리 프로그래밍된 프로토콜 프로세싱 알고리즘이 저장된다. 이러한 메모리는 사용자에 의해 추가되는 버전의 소프트웨어 프로그램에 의해 계속 대체되어 새로운 알고리즘에 따른 패킷 프로세싱을 가능하게 한다.
버퍼(122)는 패킷 데이터버스로부터 인터넷 패킷을 수신하여 저장하도록 구성된다.
프로세서(1230는 일종의 CPU로서 소프트웨어 프로그램 메모리(121)에 저장된 프로그램에 따라 버퍼(122)에 저장된 인터넷 패킷을 프로세싱하도록 구성된다.
도 4는 본 발명의 일 실시예에 따른 패킷 처리 제어기의 세부 구성도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 패킷 처리 제어기(130)는 사용자 정의 메모리(131), IPv6 패킷 감지 모듈(132), 넥스트 헤더 감지 모듈(133), HW/SW 방식 패킷 처리기 상태 감지 모듈(134), HW/SW 패킷 처리 스위치(135)를 포함하도록 구성될 수 있다.
사용자 정의 메모리(131)는 하드웨어 방식 패킷 처리기(110)에서 프로세싱할 지 소프트웨어 방식 패킷 처리기(120)에서 프로세싱할 지에 대한 정의를 인터넷 패킷의 프로토콜/종류에 따라 미리 설정하여 저장하도록 구성된다. 이는 사용자에 의해 미리 프로그래밍되어 저장되도록 구성된다.
여기에서, 사용자 정의 메모리(131)는 하드웨어 방식 패킷 처리기(110)에서 프로세싱할 지 또는 소프트웨어 방식 패킷 처리기(120)에서 프로세싱할 지가 이더넷 헤더의 타입 필드(type field) 값에 따라 미리 정의된 제1 테이블을 저장하도록 구성된다. 인터넷 패킷은 타입 필드 값에 따라서 하드웨어 방식 또는 소프트웨어 방식을 선택할 수 있도록 구성된다.
그리고 사용자 정의 메모리(131)는 하드웨어 방식 패킷 처리기(110)에서 프로세싱할 지 또는 소프트웨어 방식 패킷 처리기(120)에서 프로세싱할 지가 넥스트 헤더의 넥스트 헤더 값에 의해 미리 정의된 제2 테이블을 저장하도록 구성된다.
IPv6 패킷 감지 모듈(132)은 인터넷 패킷을 파싱하여 IPv6 패킷인지 IPv4 패킷인지 감지하고 감지 결과를 HW/SW 패킷 처리 스위치(135)로 출력하도록 구성된다.
IPv6 패킷 감지 모듈(132)은 이더넷 헤더 프로세싱 모듈(111)로부터 이더넷 헤더의 타입 필드(type filed) 값을 수신하고, 수신된 타입 필드 값과 사용자 정의 메모리(131)의 제1 테이블에 저장된 타입 필드 값을 대비하도록 구성된다.
그리고 IPv6 패킷 감지 모듈(132)은 상기 대비에 의해 IPv6 패킷, IPv4 패킷, ARP, PPPoE 패킷을 구별하여 구별 신호를 HW/SW 패킷 처리 스위치(135)로 전달하도록 구성된다.
넥스트 헤더 감지 모듈(133)은 IPv6 패킷 감지 모듈(132)에서 감지된 IPv6 패킷의 헤더 중에서 넥스트 헤더(Next header) 값을 감지하여 넥스트 헤더 값을 HW/SW 패킷 처리 스위치(135)로 출력하도록 구성된다.
넥스트 헤더 감지 모듈(133)은 IPv4/IPv6 헤더 프로세싱 모듈(112)로부터 넥스트 헤더(Next header) 값을 수신하고, 수신된 넥스트 헤더 값과 상기 사용자 정의 메모리(131)의 제2 테이블에 저장된 넥스트 헤더 값을 대비하도록 구성된다.
그리고 넥스트 헤더 감지 모듈(133)은 상기 대비에 의해 TCP, UDP, ICMPv6, Hop by hop 헤더, 라우팅 헤더를 포함하는 확장 헤더를 구별하여 구별 신호를 HW/SW 패킷 처리 스위치(135)로 전달하도록 구성된다.
HW/SW 방식 패킷 처리기 상태 감지 모듈(134)은 하드웨어 방식 패킷 처리기(110) 및 소프트웨어 방식 패킷 처리기(120)의 동작 상태를 감지하여 동작 상태를 HW/SW 패킷 처리 스위치(135)로 출력하도록 구성된다.
HW/SW 방식 패킷 처리기 상태 감지 모듈(134)은 하드웨어 방식 패킷 처리기(110) 및 소프트웨어 방식 패킷 처리기(120)의 현재 패킷 처리량을 각각 감지하고, 감지된 현재 패킷 처리량의 퍼센티지(percentage)를 HW/SW 패킷 처리 스위치(135)로 전달하도록 구성된다. 이는 사용량이 많은 처리기에 지연이 생기는 것을 방지하기 위함이다.
HW/SW 패킷 처리 스위치(135)는 IPv6 패킷 감지 모듈(132)에서 출력된 감지 결과, 넥스트 헤더 감지 모듈(133)에서 출력된 넥스트 헤더 값, HW/SW 방식 패킷 처리기 상태 감지 모듈(134)에서 출력된 동작 상태를 수신하도록 구성된다.
HW/SW 패킷 처리 스위치(135)는 수신된 감지 결과, 넥스트 헤더 값, 동작 상태를 참조하여 사용자 정의 메모리(131)에 저장된 정의에 따라 하드웨어 방식 패킷 처리기(110)에서 프로세싱할 지 또는 소프트웨어 방식 패킷 처리기(120)에서 프로세싱할 지를 지시하는 제어 신호를 생성하고 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)로 출력하도록 구성된다.
또한, HW/SW 패킷 처리 스위치(135)는 HW/SW 방식 패킷 처리기 상태 감지 모듈(134)로부터 전달받은 퍼센티지가 소정 값 이상이 되는 경우 소정 값 이상이 된 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)에 대하여 로드 밸런싱을 수행하여 퍼센티지를 낮추어 준다. 그리고 사용률이 적은 처리기로부터 사용률이 높은 패킷을 이전하여 처리하도록 구성되는 것이 바람직하다. 물론, 양 처리기에서 모두 처리가 가능한 패킷이어야 한다.
좀 더 구체적으로는, HW/SW 패킷 처리 스위치(135)는 퍼센티지 즉, 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)의 사용률이 소정 값 이상이 되는 경우, 로드 밸린싱을 수행한다.
예를 들어 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120) 중 어느 하나의 퍼센티지 즉 사용률이 95% 이상이 되면, 퍼센티지가 95% 이하가 되도록 하기 위하여 사용률이 95% 이상인 패킷 처리기의 로드를 다른 하나의 패킷 처리기로 넘겨준다. 이때, HW/SW 패킷 처리 스위치(135)는 현재 패킷에 적용된 프로토콜의 각 필드에 따라서 로드 밸런싱을 수행할 수 있는데, 특정 프로토콜 및 특정 필드의 패킷에 대하여는 하드웨어 방식 패킷 처리기(110)로 패킷 처리 로드(loadn)를 부담시키거나 다른 특정 프로토콜 및 특정 필드의 패킷에 대하여는 소프트웨어 방식 패킷 처리기(120)로 패킷 처리 로드를 부담시키도록 구성될 수 있다.
로드 밸런싱의 일례로, 하드웨어 방식 패킷 처리기(110)는 속도면에서 유리하므로, 하드웨어 방식 패킷 처리기(110)나 소프트웨어 방식 패킷 처리기(110)에서 모두 처리 가능한 패킷이라면 하드웨어 방식 패킷 처리기(110)에 패킷 처리 로드를 부담시키는 것이 유리하며, IPv6의 확장 필드를 가지는 소정 패킷이 하드웨어 방식 패킷 처리기(110)에서 처리가 불가능한 경우에는 무조건 소프트웨어 방식 패킷 처리기(120)로 패킷 처리 로드를 부담시켜야 한다.
로드 밸런싱의 세부적인 알고리즘은 가장 적합한 최적의 처리를 위해 세부적인 다양하게 구성될 수 있다.
도 5는 본 발명의 일 실시예에 따른 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법의 흐름도이다.
도 5를 참조하면, 먼저 패킷 처리 제어기(110)가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기(110)에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기(120)에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력한다(S101).
이때, IPv6 패킷 감지 모듈(132)이 인터넷 패킷을 파싱하여 IPv6 패킷인지 IPv4 패킷인지 감지하고 감지 결과를 출력하고, 넥스트 헤더(Next header) 감지 모듈(133)이 IPv6 패킷 감지 모듈(132)에서 감지된 IPv6 패킷의 헤더 중에서 넥스트 헤더(Next header) 값을 감지하여 넥스트 헤더 값을 출력하고, HW/SW 방식 패킷 처리기 상태 감지 모듈(135)이 하드웨어 방식 패킷 처리기(110) 및 소프트웨어 방식 패킷 처리기(120)의 동작 상태를 감지하여 동작 상태를 출력하도록 구성될 수 있다.
여기에서, HW/SW 패킷 처리 스위치(135)가 앞서 출력된 감지 결과, 넥스트 헤더 값, 동작 상태를 참조하여 사용자 정의 메모리(131)에 저장된 정의에 따라 하드웨어 방식 패킷 처리기(110)에서 프로세싱할 지 또는 소프트웨어 방식 패킷 처리기(120)에서 프로세싱할 지를 지시하는 제어 신호를 생성하여 출력하도록 구성된다.
한편, IPv6 패킷 감지 모듈(132)이 이더넷 헤더 프로세싱 모듈(111)로부터 이더넷 헤더의 타입 필드(type filed) 값을 수신하고, 수신된 타입 필드 값과 사용자 정의 메모리(131) 미리 저장된 타입 필드 값을 대비하여 IPv6 패킷, IPv4 패킷, ARP, PPPoE 패킷을 구별하여 구별 신호를 HW/SW 패킷 처리 스위치(135)로 전달하도록 구성될 수 있다.
그리고 넥스트 헤더 감지 모듈(133)이 IPv4/IPv6 헤더 프로세싱 모듈(112)로부터 넥스트 헤더(Next header) 값을 수신하고, 수신된 넥스트 헤더 값과 사용자 정의 메모리(131)에 미리 저장된 넥스트 헤더 값을 대비하여 TCP, UDP, ICMPv6, Hop by hop 헤더, 라우팅 헤더를 포함하는 확장 헤더를 구별하여 구별 신호를 HW/SW 패킷 처리 스위치(135)로 전달하도록 구성될 수 있다.
다른 한편, HW/SW 방식 패킷 처리기 상태 감지 모듈(134)이, 하드웨어 방식 패킷 처리기(110) 및 소프트웨어 방식 패킷 처리기(120)의 현재 패킷 처리량을 각각 감지하고, 감지된 현재 패킷 처리량의 퍼센티지(percentage)를 HW/SW 패킷 처리 스위치(135)로 전달하도록 구성될 수 있다.
또 다른 한편, HW/SW 패킷 처리 스위치(135)가 앞서 전달받은 퍼센티지가 소정 값 이상이 되는 경우, 소정 값 이상이 된 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)에 대하여 해당 퍼센티지가 소정 값을 넘지 않도록 양 패킷 처리기에 대한 로드 밸런싱을 수행하도록 구성될 수 있다.
좀 더 구체적으로는, HW/SW 패킷 처리 스위치(135)는 퍼센티지 즉, 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120)의 사용률이 소정 값 이상이 되는 경우, 로드 밸린싱을 수행한다.
예를 들어 하드웨어 방식 패킷 처리기(110) 또는 소프트웨어 방식 패킷 처리기(120) 중 어느 하나의 퍼센티지 즉 사용률이 95% 이상이 되면, 퍼센티지가 95% 이하가 되도록 하기 위하여 사용률이 95% 이상인 패킷 처리기의 로드를 다른 하나의 패킷 처리기로 넘겨준다. 이때, HW/SW 패킷 처리 스위치(135)는 현재 패킷에 적용된 프로토콜의 각 필드에 따라서 로드 밸런싱을 수행할 수 있는데, 특정 프로토콜 및 특정 필드의 패킷에 대하여는 하드웨어 방식 패킷 처리기(110)로 패킷 처리 로드(loadn)를 부담시키거나 다른 특정 프로토콜 및 특정 필드의 패킷에 대하여는 소프트웨어 방식 패킷 처리기(120)로 패킷 처리 로드를 부담시키도록 구성될 수 있다.
로드 밸런싱의 일례로, 하드웨어 방식 패킷 처리기(110)는 속도면에서 유리하므로, 하드웨어 방식 패킷 처리기(110)나 소프트웨어 방식 패킷 처리기(110)에서 모두 처리 가능한 패킷이라면 하드웨어 방식 패킷 처리기(110)에 패킷 처리 로드를 부담시키는 것이 유리하며, IPv6의 확장 필드를 가지는 소정 패킷이 하드웨어 방식 패킷 처리기(110)에서 처리가 불가능한 경우에는 무조건 소프트웨어 방식 패킷 처리기(120)로 패킷 처리 로드를 부담시켜야 한다.
로드 밸런싱의 세부적인 알고리즘은 가장 적합한 최적의 처리를 위해 세부적인 다양하게 구성될 수 있다.
다음으로, 하드웨어 방식 패킷 처리기(110)에서 앞서 출력된 제어 신호에 따라 시스템 로직 회로에 의해 인터넷 패킷을 프로세싱한다(S102).
이때, 이더넷(Ethernet) 헤더 프로세싱 모듈(111)이 인터넷 패킷을 수신하여 해당 프로토콜에 따라 프로세싱하고, IPv4/IPv6 헤더 프로세싱 모듈(112)이 IPv4 패킷/IPv6 패킷을 해당 프로토콜에 따라 프로세싱하고, TCP/UDP 헤더 프로세싱 모듈(113)이 TCP/UDP 패킷을 해당 프로토콜에 따라 처리하도록 구성될 수 있다.
다음으로, 소프트웨어 방식 패킷 처리기(130)가 앞서 출력된 제어 신호에 따라 미리 준비된 프로그램의 실행에 의해 인터넷 패킷을 프로세싱한다(S103).
이때, 패킷 데이터버스로부터 인터넷 패킷을 수신하여 저장하는 버퍼(122)에 저장하고, 인터넷 패킷의 프로세싱을 구현하기 위한 사용자의 프로그램을 저장하 소프트웨어 프로그램 메모리(121)의 프로그램에 따라 프로세서(123)가 앞서 저장된 인터넷 패킷을 프로세싱하도록 구성될 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (16)

  1. 시스템 로직 회로에 의해 인터넷 패킷을 프로세싱하는 하드웨어 방식 패킷 처리기;
    미리 준비된 프로그램의 실행에 따라 인터넷 패킷을 프로세싱하는 소프트웨어 방식 패킷 처리기;
    인터넷 패킷을 수신하여 미리 정해진 소정 프로토콜의 인터넷 패킷을 상기 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하고, 미리 정해진 다른 소정 프로토콜의 인터넷 패킷을 상기 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 패킷 처리 제어기를 포함하고,
    상기 패킷 처리 제어기가,
    상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지에 대한 정의를 인터넷 패킷의 프로토콜에 따라 미리 설정하여 저장하는 사용자 정의 메모리;
    인터넷 패킷을 파싱하여 IPv6 패킷인지 IPv4 패킷인지 감지하고 감지 결과를 출력하는 IPv6 패킷 감지 모듈;
    상기 IPv6 패킷 감지 모듈에서 감지된 IPv6 패킷의 헤더 중에서 넥스트 헤더(Next header) 값을 감지하여 넥스트 헤더 값을 출력하는 넥스트 헤더(Next header) 감지 모듈;
    상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 동작 상태를 감지하여 동작 상태를 출력하는 HW/SW 방식 패킷 처리기 상태 감지 모듈;
    상기 IPv6 패킷 감지 모듈에서 출력된 감지 결과, 상기 넥스트 헤더 감지 모듈에서 출력된 넥스트 헤더 값, 상기 HW/SW 방식 패킷 처리기 상태 감지 모듈에서 출력된 동작 상태를 수신하고, 수신된 감지 결과, 넥스트 헤더 값, 동작 상태를 참조하여 상기 사용자 정의 메모리에 저장된 정의에 따라 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지를 지시하는 제어 신호를 생성하여 출력하는 HW/SW 패킷 처리 스위치를 포함하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  2. 제1항에 있어서, 상기 하드웨어 방식 패킷 처리기가,
    인터넷 패킷을 수신하여 해당 프로토콜에 따라 프로세싱하는 이더넷(Ethernet) 헤더 프로세싱 모듈;
    IPv4 패킷/IPv6 패킷을 해당 프로토콜에 따라 프로세싱하는 IPv4/IPv6 헤더 프로세싱 모듈;
    TCP/UDP 패킷을 해당 프로토콜에 따라 처리하는 TCP/UDP 헤더 프로세싱 모듈을 포함하도록 구성되는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  3. 제1항에 있어서, 상기 소프트웨어 방식 패킷 처리기가,
    인터넷 패킷의 프로세싱을 구현하기 위한 사용자의 프로그램을 저장하 소프트웨어 프로그램 메모리;
    패킷 데이터버스로부터 인터넷 패킷을 수신하여 저장하는 버퍼;
    상기 사용자 인테페이스 메모리에 저장된 프로그램에 따라 상기 버퍼에 저장된 인터넷 패킷을 프로세싱하는 프로세서를 포함하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  4. 삭제
  5. 제2항 또는 제3항에 있어서, 상기 사용자 정의 메모리가,
    상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지가 이더넷 헤더의 타입 필드(type field) 값에 의해 미리 정의된 제1 테이블을 저장하고, 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지가 넥스트 헤더의 넥스트 헤더 값에 의해 미리 정의된 제2 테이블을 저장하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  6. 제5항에 있어서, 상기 IPv6 패킷 감지 모듈이,
    상기 이더넷 헤더 프로세싱 모듈로부터 이더넷 헤더의 타입 필드(type filed) 값을 수신하고, 수신된 타입 필드 값과 상기 사용자 정의 메모리의 제1 테이블에 저장된 타입 필드 값을 대비하여 IPv6 패킷, IPv4 패킷, ARP, PPPoE 패킷을 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  7. 제6항에 있어서, 상기 넥스트 헤더 감지 모듈이,
    상기 IPv4/IPv6 헤더 프로세싱 모듈로부터 넥스트 헤더(Next header) 값을 수신하고, 수신된 넥스트 헤더 값과 상기 사용자 정의 메모리의 제2 테이블에 저장된 넥스트 헤더 값을 대비하여 TCP, UDP, ICMPv6, Hop by hop 헤더, 라우팅 헤더를 포함하는 확장 헤더를 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  8. 제7항에 있어서,
    상기 HW/SW 방식 패킷 처리기 상태 감지 모듈이,
    상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 현재 패킷 처리량을 각각 감지하고, 감지된 현재 패킷 처리량의 퍼센티지(percentage)를 상기 HW/SW 패킷 처리 스위치로 전달하고,
    상기 HW/SW 패킷 처리 스위치가,
    상기 전달받은 퍼센티지가 소정 값 이상이 되는 경우, 상기 퍼센티지가 상기 소정 값 이하가 되도록 하기 위하여, 패킷에 적용된 프로토콜의 각 필드에 따라서 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기로 로드 밸런싱을 수행하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치.
  9. 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계;
    상기 하드웨어 방식 패킷 처리기에서 상기 출력된 제어 신호에 따라 시스템 로직 회로에 의해 상기 인터넷 패킷을 프로세싱하는 단계;
    상기 소프트웨어 방식 패킷 처리기가 상기 출력된 제어 신호에 따라 미리 준비된 프로그램의 실행에 의해 상기 인터넷 패킷을 프로세싱하는 단계를 포함하고,
    상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가,
    IPv6 패킷 감지 모듈이 인터넷 패킷을 파싱하여 IPv6 패킷인지 IPv4 패킷인지 감지하고 감지 결과를 출력하고, 넥스트 헤더(Next header) 감지 모듈이 상기 IPv6 패킷 감지 모듈에서 감지된 IPv6 패킷의 헤더 중에서 넥스트 헤더(Next header) 값을 감지하여 넥스트 헤더 값을 출력하고, HW/SW 방식 패킷 처리기 상태 감지 모듈이 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 동작 상태를 감지하여 동작 상태를 출력하고, HW/SW 패킷 처리 스위치가 상기 출력된 감지 결과, 넥스트 헤더 값, 동작 상태를 참조하여 사용자 정의 메모리에 저장된 정의에 따라 상기 하드웨어 방식 패킷 처리기에서 프로세싱할 지 또는 상기 소프트웨어 방식 패킷 처리기에서 프로세싱할 지를 지시하는 제어 신호를 생성하여 출력하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
  10. 제9항에 있어서, 상기 하드웨어 방식 패킷 처리기에서 상기 출력된 제어 신호에 따라 시스템 로직 회로에 의해 상기 인터넷 패킷을 프로세싱하는 단계가,
    이더넷(Ethernet) 헤더 프로세싱 모듈이 인터넷 패킷을 수신하여 해당 프로토콜에 따라 프로세싱하고, IPv4/IPv6 헤더 프로세싱 모듈이 IPv4 패킷/IPv6 패킷을 해당 프로토콜에 따라 프로세싱하고, TCP/UDP 헤더 프로세싱 모듈이 TCP/UDP 패킷을 해당 프로토콜에 따라 처리하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
  11. 제10항에 있어서, 상기 소프트웨어 방식 패킷 처리기가 상기 출력된 제어 신호에 따라 미리 준비된 프로그램의 실행에 의해 상기 인터넷 패킷을 프로세싱하는 단계가,
    패킷 데이터버스로부터 인터넷 패킷을 수신하여 저장하는 버퍼에 저장하고, 인터넷 패킷의 프로세싱을 구현하기 위한 사용자의 프로그램을 저장하 소프트웨어 프로그램 메모리의 프로그램에 따라 프로세서가 상기 저장된 인터넷 패킷을 프로세싱하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
  12. 삭제
  13. 제11항에 있어서, 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가,
    상기 IPv6 패킷 감지 모듈이 상기 이더넷 헤더 프로세싱 모듈로부터 이더넷 헤더의 타입 필드(type filed) 값을 수신하고, 수신된 타입 필드 값과 상기 사용자 정의 메모리에 미리 저장된 타입 필드 값을 대비하여 IPv6 패킷, IPv4 패킷, ARP, PPPoE 패킷을 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
  14. 제13항에 있어서, 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가,
    상기 넥스트 헤더 감지 모듈이 상기 IPv4/IPv6 헤더 프로세싱 모듈로부터 넥스트 헤더(Next header) 값을 수신하고, 수신된 넥스트 헤더 값과 상기 사용자 정의 메모리에 미리 저장된 넥스트 헤더 값을 대비하여 TCP, UDP, ICMPv6, Hop by hop 헤더, 라우팅 헤더를 포함하는 확장 헤더를 구별하여 구별 신호를 상기 HW/SW 패킷 처리 스위치로 전달하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
  15. 제14항에 있어서, 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가,
    상기 HW/SW 방식 패킷 처리기 상태 감지 모듈이, 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기의 현재 패킷 처리량을 각각 감지하고, 감지된 현재 패킷 처리량의 퍼센티지(percentage)를 상기 HW/SW 패킷 처리 스위치로 전달하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
  16. 제15항에 있어서, 상기 패킷 처리 제어기가 인터넷 패킷의 프로토콜에 따라 하드웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호 또는 소프트웨어 방식 패킷 처리기에서 프로세싱하도록 제어하는 제어 신호를 생성하여 출력하는 단계가,
    상기 전달받은 퍼센티지가 소정 값 이상이 되는 경우, 상기 퍼센티지가 상기 소정 값 이하가 되도록 하기 위하여, 패킷에 적용된 프로토콜의 각 필드에 따라서 상기 하드웨어 방식 패킷 처리기 및 상기 소프트웨어 방식 패킷 처리기로 로드 밸런싱을 수행하는 것을 특징으로 하는 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 방법.
KR1020130042940A 2013-04-18 2013-04-18 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법 KR101319561B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130042940A KR101319561B1 (ko) 2013-04-18 2013-04-18 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법
US14/210,452 US9338262B2 (en) 2013-04-18 2014-03-14 IPv4/IPv6 dual stack software/hardware apparatus and method for processing internet packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130042940A KR101319561B1 (ko) 2013-04-18 2013-04-18 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101319561B1 true KR101319561B1 (ko) 2013-10-23

Family

ID=49638759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130042940A KR101319561B1 (ko) 2013-04-18 2013-04-18 IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9338262B2 (ko)
KR (1) KR101319561B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002354064A (ja) * 2001-05-29 2002-12-06 Sony Corp 送信装置、受信装置、及び送受信装置
JP2007201785A (ja) * 2006-01-26 2007-08-09 Murata Mach Ltd 通信装置
KR101021948B1 (ko) * 2010-11-10 2011-03-16 (주) 위즈네트 네트워크 보안 하드웨어 인터넷 패킷 처리장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044679A1 (en) * 2011-08-19 2013-02-21 Béla Rathonyi System and Methods for Handling an IP Dual-Stack Connection
US8867568B2 (en) * 2011-10-28 2014-10-21 Emulex Corporation Method for parsing network packets having future defined tags

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002354064A (ja) * 2001-05-29 2002-12-06 Sony Corp 送信装置、受信装置、及び送受信装置
JP2007201785A (ja) * 2006-01-26 2007-08-09 Murata Mach Ltd 通信装置
KR101021948B1 (ko) * 2010-11-10 2011-03-16 (주) 위즈네트 네트워크 보안 하드웨어 인터넷 패킷 처리장치

Also Published As

Publication number Publication date
US9338262B2 (en) 2016-05-10
US20140314102A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
CN109905259B (zh) 通信连接维持方法、系统和相关设备
CN106713182B (zh) 一种处理流表的方法及装置
US20130282867A1 (en) Information system, control apparatus, method of providing virtual network, and program
US9455916B2 (en) Method and system for changing path and controller thereof
US9875126B2 (en) Hash-based load balancing for bonded network interfaces
US10833988B2 (en) Generating table entry and forwarding packet in software defined network
JP2009218752A (ja) 電源供給装置、電源供給制御方法、電源供給制御プログラム、及びネットワークシステム
US9680948B2 (en) System and method for device failure notification
CN106803812B (zh) 一种用于实现负载分担的方法和装置
US20160344611A1 (en) Method and control node for handling data packets
US20160028589A1 (en) Data loop detection
US20210099377A1 (en) Method and apparatus for controlling network traffic path
US9374387B2 (en) Hardware-based granular traffic storm protection
US9503372B1 (en) SDN protocol message handling within a modular and partitioned SDN switch
KR101319561B1 (ko) IPv4/IPv6 듀얼 스택 SW/HW 겸용 인터넷 패킷 처리 장치 및 방법
CN113497752B (zh) 一种报文发送方法、第一网络设备及网络系统
US8755274B2 (en) Adaptive data rate limiter in a wireless communication device
US10887237B2 (en) Advanced load balancing based on bandwidth estimation
JP5616389B2 (ja) 通信装置、通信方法、およびプログラム
US9998374B1 (en) Method of handling SDN protocol messages in a modular and partitioned SDN switch
US10749803B1 (en) Enhanced congestion avoidance in network devices
WO2016160212A1 (en) Technologies for network packet pacing during segmentation operations
US20170070473A1 (en) A switching fabric including a virtual switch
KR102262230B1 (ko) 통신 성공률을 개선할 수 있는 통신 시스템
US10908664B2 (en) POE power supply system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20160907

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190905

Year of fee payment: 7