KR101328627B1 - 패킷 처리 장치 및 그것의 패킷 처리 방법 - Google Patents

패킷 처리 장치 및 그것의 패킷 처리 방법 Download PDF

Info

Publication number
KR101328627B1
KR101328627B1 KR1020120008273A KR20120008273A KR101328627B1 KR 101328627 B1 KR101328627 B1 KR 101328627B1 KR 1020120008273 A KR1020120008273 A KR 1020120008273A KR 20120008273 A KR20120008273 A KR 20120008273A KR 101328627 B1 KR101328627 B1 KR 101328627B1
Authority
KR
South Korea
Prior art keywords
data packets
packet
data
queuing
hash value
Prior art date
Application number
KR1020120008273A
Other languages
English (en)
Other versions
KR20130093844A (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 KR1020120008273A priority Critical patent/KR101328627B1/ko
Publication of KR20130093844A publication Critical patent/KR20130093844A/ko
Application granted granted Critical
Publication of KR101328627B1 publication Critical patent/KR101328627B1/ko

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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • 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

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

본 발명은 패킷 전송망을 통해 데이터 패킷을 전송하는 패킷 처리 장치 및 그것의 패킷 처리 방법에 관한 것이다. 본 발명의 실시 예에 따른 패킷 처리 방법은 외부로부터 데이터 패킷들을 수신하는 단계를 포함한다. 이때 데이터 패킷들 각각의 헤더는 대응하는 데이터 패킷의 세션(session) 정보에 기반하여 생성된 해쉬 값을 포함한다. 해쉬 값에 따라 데이터 패킷들을 복수의 큐잉 블록들 중 어느 하나에 할당하는 단계, 그리고 프로세싱 유닛들에서, 대응하는 큐잉 블록들에 할당된 데이터 패킷들을 처리하는 단계를 더 포함한다.

Description

패킷 처리 장치 및 그것의 패킷 처리 방법{PACKET HANDLER DEVICE AND PACKET HANDLING METHOD THEREOF}
본 발명은 패킷 전송망을 통해 데이터 패킷을 전송하는 패킷 처리 장치 및 그것의 패킷 처리 방법에 관한 것이다.
네트워크 상의 패킷 처리 장치에는 대칭적 다중 처리(Symmetric Multiprocessing, 또는 대칭형 다중 처리) 방식이 적용될 수 있다. 대칭적 다중 처리 방식이 적용된 패킷 처리 장치는 복수의 프로세싱 유닛들을 포함한다. 그러한 복수의 프로세싱 유닛들은 운영 체제(Operating System, OS)에 의해 운용될 것이다. 복수의 프로세싱 유닛들 각각은 입출력 장치 및 데이터 저장 장치를 사용할 수 있다. 대칭적 다중 처리 방식은 대칭적인 특징을 가지며, 따라서 다른 방식에 비해 작업 부하를 효과적으로 분산시킬 수 있다. 예를 들면, 한 프로세싱 유닛이 오동작하는 경우에 운영 체제는 그 프로세싱 유닛을 배체한 상태로 나머지 프로세싱 유닛들만을 이용하여 패킷 처리를 수행할 수 있다. 다른 예로서, 하나의 프로세싱 유닛에서 실행되던 작업을 다른 프로세싱 유닛으로 옮기고 다른 프로세싱 유닛이 실행되던 작업을 계속 처리할 수 있다. 또 다른 예로서, 하나의 프로세싱 유닛에서 실행되던 작업이 다른 프로세싱 유닛들과 협력하여 처리될 수 있다.
대칭적 다중 처리 방식이 적용된 패킷 처리 장치는 패킷의 세션 정보에 기반하여 수신된 패킷들을 처리할 프로세싱 유닛들을 결정하고, 결정된 프로세싱 유닛들이 패킷들의 처리를 수행한다. 그러나, 다양한 세션들의 패킷들이 유입되지 않고 단일 세션의 패킷들만 유입되는 경우에는 복수의 프로세싱 유닛들이 동작하여 패킷들을 처리하지 못하고 하나의 프로세싱 유닛이 동작하여 패킷들을 처리할 것이다.
사용자가 복수의 세션들에 각각 대응하는 복수의 패킷들을 전송하는 경우에, 복수의 패킷들이 암호화되어 전송된다고 가정한다. 암호화된 패킷들을 수신한 패킷 처리 장치는 수신된 패킷들을 하나의 세션에 대응하는 것으로 인식할 것이다. 따라서, 암호화된 패킷들은 하나의 프로세싱 유닛에 의해서만 처리되는 문제점이 발생한다.
본 발명의 목적은 패킷 전송 장치의 복수의 프로세싱 유닛들을 효율적으로 사용하여 패킷 전송 장치의 패킷 처리 효율을 향상시키는 것이다.
본 발명의 실시 예에 따른 패킷 처리 방법은 외부로부터 데이터 패킷들을 수신하되, 상기 데이터 패킷들 각각의 헤더는 대응하는 데이터 패킷의 세션(session) 정보에 기반하여 생성된 해쉬 값을 포함하는 단계; 상기 해쉬 값에 따라 상기 데이터 패킷들을 복수의 큐잉 블록들 중 어느 하나에 할당하는 단계; 및 프로세싱 유닛들에서, 대응하는 큐잉 블록들에 할당된 데이터 패킷들을 처리하는 단계를 포함한다.
실시 예로서, 상기 데이터 패킷들 각각은 메인 데이터, 원(original) 출발지 주소, 원 목적지 주소가 함께 암호화된 데이터를 포함할 수 있다.
실시 예로서, 상기 해쉬 값은 상기 원 출발지 주소 및 상기 원 목적지 주소에 기반하여 생성될 수 있다.
실시 예로서, 상기 데이터 패킷들 각각의 세션은 상기 데이터 패킷들 각각의 원 출발지 주소 및 원 목적지 주소에 기반하여 정의될 것이다.
실시 예로서, 상기 할당하는 단계는 상기 수신된 데이터 패킷의 헤더를 참조하여 상기 암호화 여부를 판별하는 단계를 포함할 수 있다.
실시 예로서, 상기 해쉬 값에 따라 상기 데이터 패킷들을 할당하는 단계는 상기 데이터 패킷들이 멀티 캐스트(multicast) 방식으로 통신되는 경우에 수행되고, 상기 패킷 처리 방법은 상기 데이터 패킷들이 멀티 캐스트 방식으로 통신되지 않는 경우에, 상기 데이터 패킷들을 각각 상기 복수의 큐잉 블록들에 순차적으로 할당하는 단계를 더 포함할 수 있다.
본 발명의 다른 일면은 패킷 처리 장치에 관한 것이다. 본 발명의 실시 예에 따른 패킷 처리 장치는 데이터 패킷들을 수신하도록 구성되되, 상기 데이터 패킷들 각각의 헤더는 대응하는 데이터 패킷의 세션(session) 정보에 기반하여 생성된 해쉬 값을 포함하는 수신기; 상기 데이터 패킷들을 저장하도록 구성되는 복수의 큐잉 블록들; 및 상기 해쉬 값에 따라, 상기 데이터 패킷들을 상기 복수의 큐잉 블록들에 할당하도록 구성되는 패킷 분배기를 포함한다. 그리고, 상기 복수의 큐잉 블록들 각각에 저장된 데이터 패킷들은 선입 선출(First-In First-Out) 방식에 따라 처리된다.
실시 예로서, 상기 데이터 패킷들 각각은 메인 데이터, 원(original) 출발지 주소, 원 목적지 주소가 함께 암호화된 데이터를 포함할 수 있다.
실시 예로서, 상기 해쉬 값은 상기 원 출발지 주소 및 상기 원 목적지 주소에 기반하여 생성될 수 있다.
실시 예로서, 상기 데이터 패킷들 각각의 세션은 상기 데이터 패킷들 각각의 원 출발지 주소 및 원 목적지 주소에 기반하여 정의될 것이다.
실시 예로서, 상기 패킷 처리 장치는 상기 복수의 큐잉 블록들에 각각 대응하는 복수의 프로세싱 유닛들을 더 포함하고, 상기 복수의 프로세싱 유닛들은 선입 선출 방식에 따라 상기 복수의 프로세싱 유닛들 각각에 대응하는 큐잉 블록에 저장된 데이터 패킷들을 추출 및 처리하도록 구성될 수 있다.
실시 예로서, 상기 패킷 처리 장치는 상기 복수의 프로세싱 유닛들과 연결되고, 상기 처리된 데이터 패킷들을 외부 네트워크로 전송하도록 구성되는 송신기를 더 포함할 수 있다.
실시 예로서, 상기 복수의 큐잉 블록들은 단일의 버퍼 메모리로서 제공될 수 있다.
실시 예로서, 상기 복수의 큐잉 블록들은 각각 독립된 버퍼 메모리들로서 제공될 수 있다.
본 발명의 실시 예에 따르면, 패킷 전송 장치의 복수의 프로세싱 유닛들이 효율적으로 사용되어 패킷 전송 장치의 패킷 처리 효율이 향상된다.
도 1은 패킷 전송망을 보여주는 도면이다.
도 2는 도 1의 데이터 패킷들 중 하나의 본 발명의 실시 예에 따른 데이터 포맷을 보여주는 개념도이다.
도 3은 본 발명의 실시 예에 따른 패킷 처리 장치를 보여주는 블록도이다.
도 4는 도 3의 패킷 처리 장치의 패킷 전송 방법의 실시 예를 보여주는 순서도이다.
도 5는 도 3의 패킷 전송 방법에 따라 큐잉 블록들에 데이터 패킷들이 할당되는 과정을 설명하기 위한 도면이다.
도 6은 도 3의 패킷 처리 장치의 패킷 전송 방법의 다른 실시 예를 보여주는 순서도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 패킷 전송망을 보여주는 도면이다.
도 1을 참조하면, 패킷 전송망(100)은 제 1 및 제 2 네트워크들(110, 120), 그리고 제 1 및 제 2 패킷 처리 장치들(210, 220)을 포함한다.
제 1 및 제 2 네트워크들(110, 120)은 제 1 및 제 2 패킷 처리 장치들(210, 220)을 통해 서로 연결된다. 예시적인 실시 예로서, 제 1 네트워크(110)는 지점 네트워크이고, 제 2 네트워크(120)는 센터 네트워크일 수 있다. 다른 예로서, 제 1 네트워크(110)는 사용자 네트워크(Customer Network)이고, 제 2 네트워크(120)는 백본 네트워크(Backbone Network)일 수 있다. 제 1 및 제 2 패킷 처리 장치들(210, 220) 각각은, 예를 들면 네트워크 서버들일 수 있다.
제 1 및 제 2 네트워크들(110, 120) 각각에는 복수의 노드들이 포함된다. 데이터 패킷은 하나의 네트워크의 노드들 사이에서 송수신될 수 있고, 서로 다른 네트워크의 노드들 사이에서 송수신될 수도 있다.
이하, 제 1 네트워크(110) 내의 노드에서 제 2 네트워크(120)의 노드로 데이터 패킷(DP)이 전송된다고 가정한다. 제 1 네트워크(110)의 출발지 노드로부터의 데이터 패킷(DP)은 제 1 및 제 2 패킷 처리 장치들(210, 220)을 통해 제 2 네트워크(120)의 목적지 노드에 전송될 것이다. 다만, 본 발명은 이에 한정되지 않을 것이다.
한편, 데이터 패킷(DP)은 가상 사설 네트워크(Virtual Private Network) 방식으로 전송될 수 있다. 제 1 패킷 처리 장치(210)는 제 1 네트워크(110)로부터 데이터 패킷(DP)을 수신하면 데이터 패킷(DP)을 암호화고, 암호화된 데이터 패킷(DP)을 제 2 패킷 처리 장치(220)로 전송할 것이다. 제 2 패킷 처리 장치(220)는 암호화된 데이터 패킷(DP)을 복호화하고, 복호화된 데이터 패킷에 대한 처리를 수행한 후에, 처리된 데이터 패킷을 재 암호화하고, 재 암호화된 데이터 패킷을 제 2 네트워크(120)로 전송할 수 있다.
도 2는 도 1의 데이터 패킷들(DP) 중 하나의 데이터 패킷(DP1)의 본 발명의 실시 예에 따른 데이터 포맷을 보여주는 개념도이다.
도 1 및 도 2를 참조하면, 데이터 패킷(DP1)은 암호화된 데이터(10) 및 헤더 정보(20)를 포함한다. 데이터 패킷(DP1)은 제 1 패킷 처리 장치(210)에 의해 생성될 것이다. 암호화된 데이터(10)는 데이터 패킷(DP1)의 원(original) 출발지 주소(예를 들면, 110 내의 DP1이 발생된 출발지 노드의 주소), 데이터 패킷(DP1)의 원 목적지 주소(예를 들면, 120 내의 DP1이 도착할 목적지 노드의 주소), 및 메인(사용자) 데이터 등이 함께 암호화된 데이터일 것이다. 결과적으로, 원 출발지 주소 및 원 목적지 주소는 데이터 패킷(DP1) 내에서 암호화되어 전송된다.
헤더 정보(20)는 데이터 패킷(DP1)을 관리하기 위한 데이터일 것이다. 예시적인 실시 예로서, 헤더 정보(20)는 제 1 패킷 처리 장치(210)를 가리키는 출발지 주소(SA, 이하 임시 출발지 주소) 및 제 2 패킷 처리 장치(220)를 가리키는 목적지 주소(DA, 이하 임시 목적지 주소)를 포함한다. 그리고, 본 발명의 실시 예에 따르면, 헤더 정보(20)는 데이터 패킷(DP1)의 세션(session) 정보에 기반하여 생성된 해쉬 값(HSV)을 더 포함한다. 이때, 세션은 패킷 전송망(100)에서 노드들 간에 데이터 패킷(DP1)을 송수신하기 위한 논리적인 연결을 의미할 것이다. 예를 들면, 세션은 데이터 패킷(DP1)의 원 출발지 노드 및 원 목적지 노드에 의해 정의될 것이다. 예를 들면, 세션은 데이터 패킷(DP1)을 송수신하기 위한 패킷 전송망(100) 상에서의 경로를 의미할 것이다.
해쉬 값(HSV)은 제 1 네트워크(110)의 원 출발지 노드로부터 수신된 데이터 패킷에 기반하여 다양한 방법에 따라 생성될 것이다. 예를 들면, 해쉬 값(HSV)은 데이터 패킷의 원 목적지 주소 및 원 출발지 주소에 기반하여 생성될 것이다. 다른 예로서, 해쉬 값(HSV)은 데이터 패킷의 원 목적지 주소, 원 출발지 주소, 데이터 패킷에 적용된 프로토콜 정보, 프로토콜(예를 들면, Transmission Control Protocol, TCP) 헤더의 소스 포트 및 목적지 포트에 기반하여 생성될 것이다. 다른 예로서, 해쉬 값(HSV)은 원 목적지 주소 및 원 출발지 주소와 함께, 데이터 패킷에 적용된 프로토콜 정보, 프로토콜(예를 들면, Transmission Control Protocol, TCP) 헤더의 소스 포트 및 목적지 포트, 세션 키(key) 등 다양한 변수들 중 적어도 하나에 기반하여 생성될 것이다.
제 2 패킷 처리 장치(220)는 해쉬 값(HSV)을 포함하는 데이터 패킷들(DP)을 수신할 것이다. 제 2 패킷 처리 장치(220)는 수신된 데이터 패킷들(DP)에 각각 대응하는 해쉬 값들을 참조하여, 수신된 데이터 패킷들(DP)을 복수의 큐잉 블록들에 할당할 것이다. 이는 도 3을 참조하여 더 상세히 설명된다.
도 3은 도 1의 제 2 패킷 처리 장치(220)를 보여주는 블록도이다.
도 3을 참조하면, 패킷 처리 장치(220)는 수신기(310), 패킷 분배기(320), 큐잉 유닛(330), 중앙 처리 장치(340) 및 송신기(350)를 포함한다. 수신기(310)는 외부(예를 들면, 210)로부터 데이터 패킷들(DP)을 수신하고, 데이터 패킷들(DP)을 패킷 분배기(320)에 전달한다.
패킷 분배기(320)는 수신기(310) 및 큐잉 유닛(330)에 연결된다. 패킷 분배기(320)는 수신기(310)로부터의 데이터 패킷들(DP)을 제 1 내지 제 N 큐잉 블록들(331~33N)에 할당하도록 구성된다. 패킷 분배기(320)는 동일한 세션에 대응하는 데이터 패킷들을 동일한 큐잉 블록에 할당하고, 상이한 세션들에 대응하는 데이터 패킷들을 상이한 큐잉 블록들에 할당한다.
한편, 데이터 패킷들(DP)은 도 2를 참조한 설명과 같이 암호화된 패킷들이다. 암호화된 데이터 패킷들(DP) 각각에 해쉬 값(HSV)이 포함되지 않는다고 가정한다. 데이터 패킷들은 세션 별로 큐잉 블록들에 저장된다. 각 데이터 패킷이 복호화되기 전에는, 패킷 분배기(320)는 암호화된 데이터(10) 내에 포함되는 원 출발지 주소 및 원 목적지 주소를 체크할 수 없을 것이다. 이때, 패킷 분배기(320)는 각 데이터 패킷의 임시 출발지 주소(SA, 도 2 참조) 및 임시 목적지 주소(DA, 도 2 참조)에 따라, 제 1 및 제 2 패킷 처리 장치들(210, 220)을 각각 모든 데이터 패킷들의 도착지 노드 및 목적지 노드로 판별할 수 있다. 즉, 패킷 분배기(320)는 데이터 패킷들(DP)을 모두 동일한 세션에 대응하는 것으로 판별할 것이다. 따라서, 데이터 패킷들을 가상 사설 네트워크 방식으로 전송하는 경우에, 데이터 패킷들은 하나의 큐잉 블록에 할당될 것이고, 하나의 프로세싱 유닛에 의해서만 처리될 것이다. 결과적으로, 패킷 처리 장치(220)의 동작 속도는 저하될 것이다.
본 발명의 실시 예에 따르면, 데이터 패킷들(DP) 각각은 해쉬 값을 포함한다. 이러한 해쉬 값은 원 출발지 주소 및 원 도착지 주소에 기반하여 제 1 패킷 처리 장치(210)에 의해 생성된다. 데이터 패킷들의 해쉬 값들이 서로 상이한 것은 그 데이터 패킷들에 대응하는 세션들이 서로 다른 것을 의미할 것이다. 데이터 패킷들의 해쉬 값들이 서로 동일한 것은 그 데이터 패킷들에 대응하는 세션들이 서로 동일한 것을 의미할 것이다.
패킷 분배기(320)는 데이터 패킷들(DP)의 해쉬 값들에 따라 데이터 패킷들(DP)을 제 1 내지 제 N 큐잉 블록들(331~33N)에 할당한다. 제 1 내지 제 N 큐잉 블록들(331~33N) 중에 데이터 패킷들(DP)의 해쉬 값들 각각에 대응하는 큐잉 블록이 존재할 것이다. 패킷 분배기(320)는 데이터 패킷들(DP) 각각의 해쉬 값에 대응하는 큐잉 블록을 판별하고, 판별된 큐잉 블록에 데이터 패킷들(DP)을 저장할 것이다. 예시적인 실시 예로서, 패킷 분배기(320)는 가상 사설 네트워크 패킷의 분배 엔진(VPN Packet Distribution Engine)일 것이다.
큐잉 유닛(330)은 패킷 분배기(320) 및 중앙 처리 장치(340)에 연결된다. 큐잉 유닛(330)은 제 1 내지 제 N 큐잉 블록들(331~33N)을 포함한다. 제 1 내지 제 N 큐잉 블록들(331~33N)은 데이터 패킷들(DP)을 저장한다. 제 1 내지 제 N 큐잉 블록들(331~33N)은 각각 제 1 내지 제 N 프로세싱 유닛들(341~34N)에 대응한다.
제 1 내지 제 N 큐잉 블록들(331~33N) 각각은 선입 선출(First-In First-Out, FIFO) 방식에 따라 데이터 패킷들을 저장하도록 구성된다. 각 큐잉 블록의 데이터 패킷들은 선입 선출 방식에 따라 입출력된다. 예시적인 실시 예로서, 제 1 내지 제 N 큐잉 블록들(331~33N)은 단일 버퍼 메모리로서 구현될 수 있다. 예를 들면, 제 1 내지 제 N 큐잉 블록들(331~33N)은 하나의 램(Random Access Memory, RAM)으로서 제공될 수 있다. 또는, 제 1 내지 제 N 큐잉 블록들(331~33N)은 각각 독립된 버퍼 메모리들로서 구현될 수 있다.
중앙 처리 장치(340)는 큐잉 유닛(330) 및 송신기(350)에 연결된다. 중앙 처리 장치(340)는 제 1 내지 제 N 프로세싱 유닛들(341~34N)을 포함한다. 제 1 내지 제 N 프로세싱 유닛들(341~34N)은 각각 제 1 내지 제 N 큐잉 블록에 저장된 데이터 패킷들을 선입 선출 방식에 따라 추출하고, 처리하도록 구성된다. 처리된 데이터 패킷들은 송신기(350)를 통하여 외부(예를 들면, 도 1의 220)로 전송될 것이다. 송신기(350)는 제 1 내지 제 N 프로세싱 유닛들(341~34N)에서 처리된 데이터 패킷들을 스케쥴링하고, 외부로 전송하도록 구성될 것이다.
본 발명의 실시 예에 따르면, 패킷 분배기(320)는 데이터 패킷들(DP)을 그것들에 각각 포함된 해쉬 값들에 따라 큐잉 블록들(331~33N)에 할당하도록 구성된다. 따라서, 데이터 패킷들(DP)이 암호화된 패킷들이더라도, 데이터 패킷들(DP)은 특정한 큐잉 블록에 집중적으로 할당되지 않을 것이다. 프로세싱 유닛들(341~34N)은 프로세싱 유닛들(341~34N) 각각에 대응하는 큐잉 블록에 할당된 데이터 패킷들을 처리할 것이다. 본 발명의 실시 예에 따르면, 프로세싱 유닛들(341~34N)에 데이터 패킷들의 처리 동작들을 효율적으로 할당함으로써, 향상된 패킷 처리 속도를 갖는 패킷 처리 장치(220)가 제공된다.
도 4는 도 3의 패킷 처리 장치(220)의 패킷 전송 방법의 실시 예를 보여주는 순서도이다.
도 3 및 도 4를 참조하면, S110단계에서, 수신된 데이터 패킷들(DP)이 암호화되었는지 판별된다. 데이터 패킷이 암호화되었는지 여부는 데이터 패킷의 헤더 정보(20)를 참조하여 판별될 수 있다. 예시적인 실시 예로서, 데이터 패킷의 헤더 정보(20)는 데이터 패킷이 암호화된 데이터 패킷인지 여부에 대한 정보를 포함할 수 있다. 다른 예로서, 헤더 정보(20)에 해쉬 값(HSV)이 존재하는지 여부에 따라 데이터 패킷이 암호화된 데이터 패킷인지 여부가 판별될 것이다. 데이터 패킷들이 암호화된 경우에, S120단계가 수행된다. 데이터 패킷들이 암호화되지 않은 경우에, S140단계가 수행된다.
S120단계에서, 데이터 패킷들(DP)에 포함된 해쉬 값들이 추출된다. S130단계에서, 데이터 패킷들(DP)은 추출된 해쉬 값들에 각각 대응하는 큐잉 블록들(331~33N)에 할당될 것이다.
데이터 패킷들이 암호화되지 않은 경우에, 데이터 패킷들은 해쉬 값들을 포함하지 않을 것이다. 이때, 데이터 패킷들은 대응하는 큐잉 블록들에 할당될 것이다(S140). 패킷 분배기(320)는 데이터 패킷들의 복호화 없이도 각 데이터 패킷에 포함된 원 출발지 주소 및 원 목적지 주소를 체크할 수 있다. 패킷 분배기(320)는 각 데이터 패킷의 원 출발지 주소 및 원 목적지 주소에 기반하여 각 데이터 패킷의 해쉬 값을 계산할 것이다. 그리고, 계산된 해쉬 값들에 각각 대응하는 큐잉 블록들(331~33N)에 데이터 패킷들을 할당할 것이다.
도 5는 도 4의 패킷 전송 방법에 따라 큐잉 블록들에 데이터 패킷들이 할당되는 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 패킷 분배기(320)에 제 1 내지 제 6 데이터 패킷들(DP1~DP6)이 순차적으로 수신된다. 도 5의 제 1 내지 제 6 데이터 패킷들(DP1~DP6)의 점선 박스 및 실선 박스에 표시된 숫자들은 각 데이터 패킷에 해당하는 세션을 의미한다. 동일한 세션에 대응하는 데이터 패킷들은 동일한 해쉬 값들을 가질 것이다. 상이한 세션들에 대응하는 데이터 패킷들은 상이한 해쉬 값들을 가질 것이다.
패킷 분배기(320)는 각 데이터 패킷이 수신될 때마다 각 데이터 패킷에 포함된 해쉬 값을 추출할 것이다. 그리고, 패킷 분배기(320)는 추출된 해쉬 값에 대응하는 큐잉 블록에 각 데이터 패킷을 저장할 것이다. 동일한 해쉬 값들을 갖는 데이터 패킷들은 동일한 세션에 해당할 것이다. 상이한 해쉬 값들을 갖는 데이터 패킷들은 상이한 세션들에 해당할 것이다. 제 1 내지 제 4 세션들이 각각 제 1 내지 제 4 큐잉 블록들(331~334)에 대응한다고 가정한다. 제 1 및 제 5 데이터 패킷들(DP1)은 제 1 세션에 대응하므로, 제 1 큐잉 블록(331)에 선입 선출 방식에 따라 저장될 것이다. 제 2 데이터 패킷(DP2)은 제 2 세션에 대응하고 제 2 큐잉 블록(332)에 저장될 것이다. 제 3 데이터 패킷(DP3)은 제 3 세션에 대응하고 제 3 큐잉 블록(333)에 저장될 것이다. 제 4 및 제 6 데이터 패킷들(DP4, DP6)은 제 4 세션에 대응하므로, 제 4 큐잉 블록(334)에 선입 선출 방식에 따라 저장될 것이다.
도 6은 도 3의 패킷 처리 장치(220)의 패킷 전송 방법의 다른 실시 예를 보여주는 순서도이다. 도 4 및 도 6을 비교할 때, 도 6의 패킷 전송 방법은 S220단계를 더 포함한다. 이하, 도 4를 참조한 설명과 중복되는 설명은 생략된다.
S220단계에서, 패킷 분배기(320)는 데이터 패킷들의 처리 정책이 순환 순서 방식(Round Robin, RR)인지 여부를 판별한다. 데이터 패킷들의 전송 정책이 순환 순서 방식인 것은 원 목적지 노드에 제공되는 서비스 방식이 데이터 패킷들의 전송 순서에 민감하지 않은 것을 의미한다. 예를 들면, 아이피 티비(IPTV)와 같이, 원 출발지 노드와 원 목적지 노드 사이의 멀티 캐스트 통신이 요구되는 경우, 데이터 패킷들은 순환 순서 방식으로 처리될 수 없고, 해쉬 값들에 따라 큐잉 블록들에 저장될 것이다. 데이터 패킷들의 처리 정책이 순환 순서 방식인 경우, S230단계가 수행된다.
S230단계에서, 패킷 분배기(320)는 데이터 패킷들 각각을 큐잉 블록들에 순차적으로 저장한다.
본 발명의 실시 예에 따르면, 프로세싱 유닛들(341~34N)에 데이터 패킷들의 처리 동작들이 효율적으로 할당된다. 따라서, 향상된 패킷 처리 속도를 갖는 패킷 처리 장치(220)가 제공된다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110, 120: 제 1 및 제 2 네트워크
210, 220: 제 1 및 제 2 패킷 처리 장치들
HSV: 해쉬 값
SA: 임시 출발지 주소
DA: 임시 목적지 주소
10: 암호화된 데이터
310: 수신기
320: 패킷 분배기
330: 큐잉 유닛
340: 중앙 처리 장치
350: 송신기

Claims (15)

  1. 프로세싱 유닛들, 그리고 상기 프로세싱 유닛들에 각각 대응하는 큐잉 블록들을 포함하는 패킷 처리 장치의 패킷 처리 방법에 있어서:
    외부로부터 데이터 패킷들을 수신하되, 수신되는 상기 데이터 패킷들 각각은 헤더 정보 및 암호화된 데이터를 포함하고, 상기 암호화된 데이터에는 해당 데이터 패킷의 세션 정보가 포함되어 있는 단계;
    상기 데이터 패킷들 각각의 헤더 정보에 포함되어 있는 해쉬 값을 추출하되, 상기 해쉬 값은 상기 암호화된 데이터에 포함되어 있는 상기 세션(session) 정보에 기반하여 생성된 단계;
    상기 해쉬 값에 따라 상기 데이터 패킷들을 상기 복수의 큐잉 블록들에 할당하는 단계; 및
    상기 프로세싱 유닛들에서, 대응하는 큐잉 블록들에 할당된 데이터 패킷들을 처리하는 단계를 포함하는 패킷 처리 방법.
  2. 제 1 항에 있어서,
    상기 암호화된 데이터는 사용자 데이터와, 원(original) 출발지 주소 및 원 목적지 주소에 따른 상기 세션 정보가 함께 암호화되어 형성되는 패킷 처리 방법.
  3. 제 2 항에 있어서,
    상기 해쉬 값은 상기 세션 정보의 상기 원 출발지 주소 및 상기 원 목적지 주소에 기반하여 생성되는 패킷 처리 방법.
  4. 제 1 항에 있어서,
    상기 데이터 패킷들에 대한 처리 정책이 순환 순서(Round Robin) 방식인 경우 상기 데이터 패킷들을 상기 복수의 큐잉 블록들에 순차적으로 할당하는 단계를 더 포함하는 패킷 처리 방빕.
  5. 제 1 항에 있어서,
    상기 할당하는 단계는 상기 데이터 패킷들 각각의 헤더 정보를 참조하여 상기 데이터 패킷들 각각이 상기 암호화된 데이터를 가지는지 여부를 판별하는 단계를 포함하는 패킷 처리 방법.
  6. 제 1 항에 있어서,
    상기 해쉬 값에 따라 상기 데이터 패킷들을 할당하는 단계는 상기 데이터 패킷들이 멀티 캐스트(multicast) 방식으로 통신되는 경우에 수행되고,
    상기 데이터 패킷들이 상기 멀티 캐스트 방식으로 통신되지 않는 경우에, 상기 데이터 패킷들을 각각 상기 복수의 큐잉 블록들에 순차적으로 할당하는 단계를 더 포함하는 패킷 처리 방법.
  7. 데이터 패킷들을 수신하도록 구성되되, 수신되는 상기 데이터 패킷들 각각은 헤더 정보 및 암호화된 데이터를 포함하고, 상기 암호화된 데이터에는 해당 데이터 패킷의 세션 정보가 포함되어 있는 수신기;
    상기 데이터 패킷들을 저장하도록 구성되는 복수의 큐잉 블록들; 및
    상기 데이터 패킷들 각각의 헤더 정보에 포함되어 있는 해쉬 값을 추출하고 상기 해쉬 값에 따라 상기 데이터 패킷들을 상기 복수의 큐잉 블록들에 할당하도록 구성되는 패킷 분배기를 포함하고,
    상기 해쉬 값은 상기 암호화된 데이터에 포함되어 있는 상기 세션 정보에 기반하여 생성되고,
    상기 복수의 큐잉 블록들 각각에 저장된 데이터 패킷들은 선입 선출(First-In First-Out) 방식에 따라 처리되는 패킷 처리 장치.
  8. 제 7 항에 있어서,
    상기 암호화된 데이터는 사용자 데이터와, 원(original) 출발지 주소 및 원 목적지 주소에 따른 상기 세션 정보가 함께 암호화되어 형성되는 패킷 처리 장치.
  9. 제 8 항에 있어서,
    상기 해쉬 값은 상기 세션 정보의 상기 원 출발지 주소 및 상기 원 목적지 주소에 기반하여 생성되는 패킷 처리 장치.
  10. 제 7 항에 있어서,
    상기 패킷 분배기는 상기 데이터 패킷들에 대한 처리 정책이 순환 순서(Round Robin) 방식인 경우 상기 데이터 패킷들을 상기 복수의 큐잉 블록들에 순차적으로 할당하는 패킷 처리 장치.
  11. 제 7 항에 있어서,
    상기 복수의 큐잉 블록들에 각각 대응하는 복수의 프로세싱 유닛들을 더 포함하고,
    상기 복수의 프로세싱 유닛들은 선입 선출 방식에 따라 상기 복수의 프로세싱 유닛들 각각에 대응하는 큐잉 블록에 저장된 데이터 패킷들을 추출 및 처리하도록 구성되는 패킷 처리 장치.
  12. 제 11 항에 있어서,
    상기 복수의 프로세싱 유닛들과 연결되고, 상기 처리된 데이터 패킷들을 외부 네트워크로 전송하도록 구성되는 송신기를 더 포함하는 패킷 처리 장치.
  13. 제 7 항에 있어서,
    상기 복수의 큐잉 블록들은 단일의 버퍼 메모리로서 제공되는 패킷 처리 장치.
  14. 제 7 항에 있어서,
    상기 복수의 큐잉 블록들은 각각 독립된 버퍼 메모리들로서 제공되는 패킷 처리 장치.
  15. 제 7 항에 있어서,
    상기 패킷 분배기는 상기 데이터 패킷들이 멀티 캐스트(multicast) 방식으로 통신되는 경우에 상기 해쉬 값에 따라 상기 데이터 패킷들을 할당하고,
    상기 데이터 패킷들이 상기 멀티 캐스트 방식으로 통신되지 않는 경우에 상기 데이터 패킷들을 각각 상기 복수의 큐잉 블록들에 순차적으로 할당하도록 구성되는 패킷 처리 장치.
KR1020120008273A 2012-01-27 2012-01-27 패킷 처리 장치 및 그것의 패킷 처리 방법 KR101328627B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120008273A KR101328627B1 (ko) 2012-01-27 2012-01-27 패킷 처리 장치 및 그것의 패킷 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120008273A KR101328627B1 (ko) 2012-01-27 2012-01-27 패킷 처리 장치 및 그것의 패킷 처리 방법

Publications (2)

Publication Number Publication Date
KR20130093844A KR20130093844A (ko) 2013-08-23
KR101328627B1 true KR101328627B1 (ko) 2013-11-14

Family

ID=49217865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120008273A KR101328627B1 (ko) 2012-01-27 2012-01-27 패킷 처리 장치 및 그것의 패킷 처리 방법

Country Status (1)

Country Link
KR (1) KR101328627B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100014995A (ko) * 2008-08-04 2010-02-12 이원찬 전송데이타 암호화에 의한 네트워크 보안기술
US8098676B2 (en) * 2004-08-12 2012-01-17 Intel Corporation Techniques to utilize queues for network interface devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8098676B2 (en) * 2004-08-12 2012-01-17 Intel Corporation Techniques to utilize queues for network interface devices
KR20100014995A (ko) * 2008-08-04 2010-02-12 이원찬 전송데이타 암호화에 의한 네트워크 보안기술

Also Published As

Publication number Publication date
KR20130093844A (ko) 2013-08-23

Similar Documents

Publication Publication Date Title
US10581884B2 (en) Channel data encapsulation system and method for use with client-server data channels
US10511521B2 (en) System and method for virtual multipath data transport
US9628400B2 (en) Interest forwarding for interactive client anonymity
US20180062836A1 (en) Communication device, communication system, and communication method
US8856518B2 (en) Secure and efficient offloading of network policies to network interface cards
CN114402574A (zh) 用于提供多租户软件定义的广域网(sd-wan)节点的方法、系统和计算机可读介质
JP2017518710A (ja) サービスフロー処理方法、装置、およびデバイス
US9602331B2 (en) Shared interface among multiple compute units
WO2016107598A1 (zh) 一种业务加速方法及装置
EP3541007B1 (en) Cryptographic communication apparatus, cryptographic communication system, cryptographic communication method and computer-readable medium
CN113055269B (zh) 虚拟专用网络数据的传输方法及装置
CN1946061B (zh) 一种快速处理报文的方法及装置
TW201715869A (zh) 傳輸裝置及其傳輸方法
JP2018029283A (ja) 通信装置、通信システム及び通信方法
JP2017530643A (ja) タイプに基づくデータストリームへのネットワーク接続の容量の割り振り
CN106130746B (zh) 一种数据传输方法及装置
KR101328627B1 (ko) 패킷 처리 장치 및 그것의 패킷 처리 방법
CN106992963B (zh) 一种信息处理方法及网关
CN110535834B (zh) 一种网络安全IPsec的加速处理方法及系统
KR102043658B1 (ko) 일방향 데이터 전송 장치 및 그 방법
JP6622736B2 (ja) 通信システム及び通信制御方法
JP5886170B2 (ja) 分散処理システムおよび分散処理方法
KR100920327B1 (ko) 서비스 처리 시스템
JP6220916B2 (ja) スレーブデバイス及びその制御方法
KR101424508B1 (ko) 부하 분산을 위한 암호화/복호화 장치 및 방법

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181106

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191105

Year of fee payment: 7