KR101046597B1 - 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR101046597B1
KR101046597B1 KR1020090004798A KR20090004798A KR101046597B1 KR 101046597 B1 KR101046597 B1 KR 101046597B1 KR 1020090004798 A KR1020090004798 A KR 1020090004798A KR 20090004798 A KR20090004798 A KR 20090004798A KR 101046597 B1 KR101046597 B1 KR 101046597B1
Authority
KR
South Korea
Prior art keywords
packet data
data
deap
buffer memory
key value
Prior art date
Application number
KR1020090004798A
Other languages
English (en)
Other versions
KR20100085496A (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 KR1020090004798A priority Critical patent/KR101046597B1/ko
Publication of KR20100085496A publication Critical patent/KR20100085496A/ko
Application granted granted Critical
Publication of KR101046597B1 publication Critical patent/KR101046597B1/ko

Links

Images

Classifications

    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

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

Abstract

본발명은, 우선순위 키 값과 도착순서 키 값을 포함하는 복수의 키 값을 가지는 패킷 데이터를 수신하는 단계와, 수신된 패킷 데이터에 할당된 복수의 키 값을 감지하는 단계 및 상기 수신된 패킷 데이터를 상기 복수의 키 값을 이용하여, DEAP 자료구조의 형태로 처리하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법 및 데이터를 처리하는 데이터 송수신 장치 및 컴퓨터로 읽을 수 있는 기록매체에 대한 것이다.

Description

네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체{METHOD FOR PROCESSING DATA IN NETWORK, DEVICE FOR TRANSCEIVING DATA AND COMPUTER RECORDABLE MEDIUM}
본 발명은 네트워크 환경에서 입출력 데이터를 큐잉하는 데이터 처리방법, 데이터 송수신 장치 및 컴퓨터로 읽을 수 있는 기록매체와 관련된 것이다.
일반적인 네트워크 환경에서, 네트워크를 구성하는 장치는 유입되는 링크의 속도와 유출되는 링크의 전송속도 차이를 보정하기 위해 링크 사이에 일정 형태의 버퍼(buffer) 또는 큐(queue)를 두어 데이터를 모아 두고 처리한다.
그런데 여러 사용자들(데이터 흐름 또는 연결)이 버퍼 공간과 링크와 같은 자원을 서로 공유하는 상황에서는 공유 자원에 대한 경쟁의 문제가 발생한다. 따라서 다수의 사용자가 같은 링크에 다중화되어 있는 상황에서는 어떤 패킷이 먼저 처리되어야 하는지를 결정하는 큐잉 기법 또는 패킷 스케줄링 기법이 필요하다.
종래 네트워크 시스템에는 First-In First-Out, Priority Queuing, Fair Queuing, Round Robin 등 여러 가지 패킷 스케줄링 기법들이 적용되어 왔으며, 그 중 중요 데이터의 전달이 보장되어야 하는 네트워크 환경에서는 패킷의 우선순위에 따라 패 킷이 처리되는 우선순위 큐잉(Priority Queuing) 기법이 주로 적용되어 왔다.
본 발명은 네트워크 환경에서 데이터를 처리하는데 있어서, 우선순위가 높은 데이터의 전송을 효율적으로 보장하는 데이터 처리방법을 제공하기 위한 것이다.
상기한 과제를 실현하기 위한 본 발명의 일 실시예와 관련된 네트워크 환경에서의 데이터 처리방법은, 우선순위 키 값과 도착순서 키 값을 포함하는 복수의 키 값을 가지는 패킷 데이터를 수신하는 단계와, 수신된 패킷 데이터를 버퍼 메모리에 저장하는 단계 및 상기 저장된 패킷 데이터를 상기 복수의 키 값을 이용하여, DEAP 자료구조의 형태로 처리하는 단계를 포함한다.
본 발명의 일 측면에서, 상기 처리하는 단계는, 상기 수신된 패킷 데이터를 상기 패킷 데이터의 우선순위 키 값을 고려하여 DEAP 자료구조의 형태로 처리하는 단계를 포함할 수 있다.
본 발명의 다른 일 측면에서, 상기 수신된 패킷 데이터 중 우선순위 키 값이 동일한 패킷 데이터들은, 상기 도착순서 키 값을 고려하여 DEAP 자료구조의 형태로 처리하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 처리하는 단계는, 상기 수신된 패킷 데이터 중 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터 단위로 처리하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 저장하는 단계는, 상기 수신된 패킷 데이터 를 복수의 키 값을 고려하여 DEAP 자료구조의 형태로 버퍼에 저장하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 처리하는 단계는, 상기 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 복수의 키 값을 고려하여 선택하고 전송하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 처리하는 단계는, 상기 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 복수의 키 값을 고려하여 선택하고, 선택된 패킷 데이터를 상기 버퍼 메모리로부터 삭제하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 처리하는 단계는, 상기 버퍼 메모리에 패킷 데이터가 추가 또는 삭제되는 경우 상기 버퍼 메모리에 저장된 패킷 데이터를 DEAP 자료구조의 형태로 정렬하는 단계를 포함할 수 있다.
상기한 과제를 실현하기 위한 본 발명의 다른 일 실시예와 관련된 데이터 송수신장치는, 우선순위 키 값과 도착순서 키 값을 포함하는 복수의 키 값을 가지는 패킷 데이터를 수신하는 데이터 수신부와, 수신된 패킷 데이터를 저장하는 버퍼 메모리 및 상기 수신된 패킷 데이터에 할당된 복수의 키 값을 감지하고, 상기 저장된 패킷 데이터를 상기 복수의 키 값을 이용하여, DEAP 자료구조 형태로 처리하는 메모리 콘트롤러를 포함한다.
본 발명의 일 측면에서, 상기 메모리 콘트롤러는, 상기 수신된 패킷 데이터를 상기 패킷 데이터의 우선순위 키 값을 고려하여 DEAP 자료구조의 형태로 처리할 수 있 다.
본 발명의 다른 일 측면에서, 상기 메모리 콘트롤러는, 상기 수신된 패킷 데이터 중 우선순위 키 값이 동일한 패킷 데이터들은, 상기 도착순서 키 값을 고려하여 DEAP 자료구조의 형태로 처리할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 메모리 콘트롤러는, 상기 수신된 패킷 데이터 중 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터 단위로 처리할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 메모리 콘트롤러는, 상기 수신된 패킷 데이터를 복수의 키 값을 고려하여 DEAP 자료구조의 형태로 버퍼 메모리에 저장할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 메모리 콘트롤러는, 상기 버퍼 메모리에 저장된 패킷 데이터 중 어느 하나를 복수의 키 값을 고려하여 DEAP 자료구조의 규칙에 따라 선택하고, 상기 선택된 패킷 데이터를 전송하는 데이터 송신부를 더 포함할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 메모리 콘트롤러는, 상기 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 복수의 키 값을 고려하여 선택하여 상기 버퍼 메모리로부터 삭제할 수 있다.
본 발명의 또 다른 일 측면에서, 상기 메모리 콘트롤러는, 상기 버퍼 메모리에 패킷 데이터가 추가 또는 삭제되는 경우 상기 버퍼 메모리에 저장된 패킷 데이터를 DEAP 자료구조의 형태로 정렬할 수 있다.
상기한 과제를 실현하기 위한 본 발명의 또 다른 일 실시예와 관련된 컴퓨터로 판독가능한 기록매체는, 상기 네트워크 환경에서의 데이터 처리방법을 수행하는 프로그램을 기록한다.
본 발명은 패킷 데이터를 DEAP(Double Ended heAP) 자료구조 형태로 버퍼메모리에 저장하고 이를 처리함으로서 패킷 데이터의 우선순위에 관계없이 모든 패킷을 하나의 자료구조의 형태로 받아들일 수 있어, 버퍼메모리를 효율적으로 활용할 수 있다.
또한, 본 발명은 패킷 데이터에 대한 우선순위와 도착순서 키 값을 포함하는 복수의 키 값을 설정하고, 이릴 이용하여 패킷 데이터를 정렬함으로써 중요 패킷 데이터의 처리 시간을 줄이고 패킷 데이터의 처리율을 높일 수 있다.
또한, 본 발명은 우선순위가 동일하고 연속적인 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터로 취급하여 DEAP 자료구조형태로 처리함으로써, 연속적으로 수신되고 동일한 우선순위를 가지는 데이터들을 효율적으로 처리할 수 있다.
이하, 본 발명과 관련된 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 기록매체에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이하 개시된 기술에 관한 설명은구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
““제1””, ““제2”” 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
““및/또는””의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, ““제1 항목, 제2 항목 및/또는 제3 항목””의 의미는 제1, 제2 또는 제3 항목뿐만 아니라 제1, 제2 또는 제3 항목들 중 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이 에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
"트래픽"이라 함은, 유선 또는 무선 통신수단에 의하여 송수신되는 모든 통신 데이터의 양을 의미할 수 있다. "유입"은 네트워크에서 외부로부터 데이터가 기준이 되는 장치 또는 노드로 수신되는 것을 의미할 수 있다. "유출"은 네트워크에서 기준으되는 장치 또는 노드로부터 데이터가 외부로 전송되는 것을 의미할 수 있다. 큐(que)구조란 선입선출(First-In First-Out;FIFO)방식에 따라 데이터를 입출력하는 데이터 구조를 의미할 수 있다.
도 1은 일반적인 네트워크 환경에서 사용되는 데이터 처리방법을 나타낸 도면이다.
일반적인 네트워크 환경에서 사용되는 데이터 처리방법은 패킷 데이터에 설정된 우선순위에 따라 별도의 메모리 공간을 메모리에 할당하고 상대적으로 높은 우선순위 키 값을 가지는 패킷 데이터을 상대적으로 낮은 우선순위 키값을 가지는 패킷 데이터보다 먼저 처리하는 것이다.
도 1에 도시된 바와 같이, 데이터 송수신장치는, 네트워크 환경에서 데이터 송수신 장치로 유입되는 트래픽들을 패킷 데이터에 설정된 키 값에 따라 해당하는 메모리 공간에 저장될 수 있다.
도 1과 같은 데이터 처리방법에 따르면, 높은 우선순위 패킷 데이터가 그보다 낮은 우선순위의 패킷데이터 보다 항상 먼저 처리되는 것을 보장할 수 있다. 그러나 우선순위 별로 별도의 메모리 공간을 할당하는 경우, 패킷 데이터 처리율이 제한될 수 있다.
예를 들어, 낮은 우선순위 클래스 1에 해당하는 메모리 공간에는 패킷 데이터이 채워져 있고, 다른 우선순위 클래스 2,3,4에 해당하는 메모리 공간에는 패킷 데이터을 저장할 수 있는 여유공간이 있다고 가정한다.
이 경우, 우선순위 클래스 1에 해당하는 패킷 데이터이 유입되면, 다른 우선순쉬 클래스 2,3,4에 해당하는 메모리 공간에 여유공간이 존재함에도 불구하고, 이후에 유입되는 우선순위 클래스 1에 해당하는 패킷 데이터은 버려질 수 있다.
이러한 점을 보완하기 위하여 다양한 우선순위 키 값을 가지는 패킷 데이터들이 하나의 메모리 영역을 공유할 수 있도록 하면서 유입 트래픽과 유출 트래픽을 처리하는 기법들로서 이중 우선순위 큐(Double priority queue)가 제시될 수 있다.
이중 우선순위 큐는 주로 Min-Max heap과 DEAP(Double Ended heAP) 자료구조로 구현되며, 두 자료구조 모두 이진 트리(binary tree)에 의한 힙(Heap) 자료구조를 기반으로 한다. 힙(Heap) 자료구조는 Max-heap과 Min-heap으로 구분할 수 있다.
도 2, 3, 4는 Max-heap, Min-heap 및 DEAP 의 자료구조를 설명하기 위한 도면이다.
도 2에 도시된 바와 같이, Max-heap 자료구조는 최대 키 값을 가지는 노드가 루트 노드(R)가 되고 부모 노드는 모든 자식 노드보다 큰 키 값을 가지며 정렬되는 자료구조이다.
도 3에 도시된 바와 같이, Min-heap 자료구조는 최소 키 값을 가지는 노드가 루트 노드(R)가 되고 부모 노드는 모든 자식 노드보다 작은 키 값을 가지며 정렬되는 자료구조이다.
Min-Max heap은 이러한 Min-heap과 Max-heap이 이진 트리 내 각 레벨에 교대로 나타나는 자료구조이다.
도 4에 도시된 바와 같이, DEAP 자료구조는 루트 노드(R)가 비어 있고, 상기 루트 노드(R)의 서브 트리가 각기 Min-heap과 Max-heap자료구조의 형태로 배치될 수 있다. 상기 DEAP 자료구조는 Min-Max heap보다 상대적으로 구현방법의 복잡도가 낮은 특징이 있다.
상기 루트 노드(R)의 서브 트리 중, 왼쪽 서브트리(ST1)는 Min-heap 자료구조를, 오른쪽 서브트리(ST2)는 Max-heap자료구조를 구현할 수 있다. Min-heap에 있는 임의의 노드는 Max-heap의 같은 위치에 대응되는 노드를 가지며, 대응하는 위치에 아직 노드가 채워지지 않은 경우는 그 부모 노드가 대응된다.
상기 Min-Max heap이나 DEAP자료구조의 형태로 패킷을 처리하고 정렬하는 경우, 패킷 데이터에 설정된 복수의 키 값을 이용할 수 있다.
도 5는 복수의 키 값을 가지는 패킷 데이터이 버퍼 메모리에 유입되고 유출되는 모습을 나타낸 도면이다.
도 5에 도시된 바와 같이, 버퍼 메모리에 패킷 데이터이 유입되고 유출되는 경우, 상기 각각의 패킷 데이터은 복수의 키 값을 가질 수 있다. 상기 복수의 키 값은 우선순위 키 값과 도착순서 키 값을 포함할 수 있다.
버퍼 메모리에 새로운 패킷 데이터이 저장되거나, 저장된 패킷 데이터을 전송하거나, 저장된 패킷 데이터을 삭제하거나, 저장된 패킷 데이터들을 정렬하는 경우 도 6 내지 도 11에의하여 설명되는 방법에 따르며, 아래에 기술되지 않은 부분은 일반적인 DEAP 자료구조에서의 처리절차에 의할 수 있다.
도 6은 패킷 데이터를 복수의 키 값을 이용하여 DEAP 자료구조의 형태로 버퍼 메모리에 저장한 모습을 보인 도면이다.
도 6에 도시된 바와 같이, 패킷 데이터는 우선순위와 도착순서 키 값을 이용하여 DEAP자료구조의 형태로 버퍼 메모리에 저장될 수 있다.
상기 패킷 데이터를 DEAP 자료구조의 형태로 버퍼 메모리에 저장함에 있어서, 우선순위 키 값을 우선적으로 고려할 수 있다. 예를 들어, 상기 패킷 데이터의 우선순위 키 값이 다른 패킷 데이터 사이에는 다른 키 값을 고려하지 않고, 우선순위 키 값만을 고려하여 DEAP 자료구조의 규칙에 따라 패킷데이터를 정렬할 수 있다.
상기 도착순서 키 값은, 상기 우선순위 키 값이 동일한 패킷 데이터가 존재하는 경우, 우선순위 키 값의 대안으로서 선택될 수 있다. 예를 들어, 우선순위 키 값이 동일한 패킷 데이터들 간에 키 값의 우열을 결정하고자 하는경우, 도착순서 키 값을 고려하여 DEAP 자료구조의 규칙에 따라 패킷데이터를 정렬할 수 있다.
상기 DEAP 자료규칙에 다라 패킷 데이터를 정렬하는 방법은, 상술한 바와 같이, 복수의 키 값 중 적어도 하나의 키 값을 우선적으로 고려하는 방법 이외에도, 상기 복수의 키 값에 대하여 가중치를 부여하여 새롭게 생성한 고유의 키 값을 이용하여 DEAP 자료구조의 규칙에 따라 패킷 데이터를 정렬하는 방법을 포함할 수 있다.
상기 가중치는 사용자에 의하여 설정되거나, 네트워크의 규칙에 따라 기 설정될 수 있다.
도 7, 8은 복수의 키 값을 이용하여, 버퍼 메모리에 새로운 패킷 데이터를 저장하는 모습을 보인 도면이다.
버퍼 메모리에 새로운 패킷 데이터(N)를 저장하고자 하는 경우, 상기 버퍼 메모리에 새로운 패킷 데이터(N)를 저장할 수 있는 공간이 존재하는지 여부를 확인한다. 만약 상기 버퍼 메모리에 새로운 패킷 데이터(N)를 저장할 수 있는 공간이 존재하지 않는다면, 상기 새로운 패킷 데이터(N)는 버려지거나, 상기 저장된 패킷 데이터 중 임의의 패킷 데이터를 삭제하여 버퍼 메모리 내에 새로운 패킷 데이터(N)를 저장할 수 있는 공간을 만들 수 있다.
상기 버퍼 메모리에 새로운 패킷 데이터(N)를 저장할 수 있는 공간이 존재하는 경우, 상기 새로운 패킷데이터의 우선순위 키 값과, 직전에 버퍼 메모리에 저장된 패킷 데이터(P)의 우선순위 키 값을 비교한다.
만약 상기 두 개의 패킷 데이터가 서로 다른 우선순위 키 값을 가진 경우, 다음과 같은 알고리즘 1에 의하여 DEAP 자료구조의 규칙에 맞는 노드에 새로운 패킷 데이터(N)를 저장할 수 있다.
<알고리즘 1>
insert()
새로운 노드를 트리의 마지막 노드 다음 위치에 삽입
삽입된 노드의 키 값과 반대편 서브트리의 대응하는 노드의 키 값을 비교
if(min-heap에서의 노드의 키 값 > max-heap에서의 노드의 키 값)
두 노드의 위치 교환
if(삽입한 노드가 min-heap에 존재)
while(삽입된 노드의 키 값>부모 노드의 키 값)
두 노드의 위치 교환
if(삽입한 노드가 max-heap에 존재)
while(삽입된 노드의 키 값<부모 노드의 키 값)
두 노드의 위치 교환
도 8에 도시된 바와 같이, 만약 상기 두 개의 패킷 데이터가 서로 동일한 우선순위 키 값을 가진 경우, 상기 두 개의 패킷 데이터의 도착순서 키 값이 연속되는지 여부를 판단한다. 만약 두 개의 패킷 데이터의 도착순서 키 값이 연속된다면, 상기 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터를 하나의 패킷 데이터로 취급하여 하나의 노드에 삽입할 수 있다.
도 9 ,10 은 복수의 키 값을 이용하여, 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 선택하여 전송하는 모습을 보인 도면이다.
도 9에 도시된 바와 같이, 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 전송하기 위해서는, 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하 나의 패킷 데이터를 선택하여야한다.
네트워크 환경이 높은 우선순위 키 값을 가지는 패킷 데이터를 우선적으로 전송하도록 설정되어 있는경우, 우선순위가 가장 높고 도착순서가 가장 빠른 패킷 데이터을 선택하여 전송할 수 있다.
우선순위와 도착순서 키 값을 고려하여 구현된 DEAP 자료구조에서는 Min heap에서의 루트노드에 해당하는 패킷 데이터가(T) 상기 조건을 만족한다.
도 10에 도시된 바와 같이, Min heap의 루트노드에 해당하는 패킷 데이터(T')가 하나의 노드에 저장된 복수의 패킷 데이터라면 상기 복수의 패킷 데이터를 모두 선택하여 전송한다.
상기 선택하여 전송된 패킷 데이터(T,T')들은 전송된 뒤 버퍼 메모리로부터 삭제된다. 상기 패킷 데이터(T,T')들이 삭제되면 나머지 패킷 데이터들은 DEAP 자료구조의 형태로 정렬될 수 있으며, 그 과정은 다음의 알고리즘 2에 의한다.
<알고리즘 2>
remove_min()
min-heap에서 루트 노드를 삭제
deap의 마지막 노드를 빈자리에 삽입
while(삽입된 노드의 키 값 > 그 자식 노드의 키 값)
두 노드의 위치 교환
if(삽입된 노드의 키 값 > 대응하는 max-heap노드)
두 노드의 위치 교환
도 11은 복수의 키 값을 이용하여, 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 선택하여 삭제하는 모습을 보인 도면이다.
버퍼 메모리에 할당된 공간이 패킷 데이터로 가득 찬 경우, 버퍼 메모리에 저장된 우선순위가 낮은 패킷 데이터를 선택하여 삭제함으로서, 우선순위 높은 패킷 데이터의 유입을 받아들여야 한다.
우선순위와 도착순서 키 값을 고려하여 구현된 DEAP 자료구조에서는 Max heap에서의 루트노드에 해당하는 패킷 데이터가(D) 상기 조건을 만족한다. Max heap의 루트노드에 해당하는 패킷 데이터가 하나의 노드에 저장된 복수의 패킷 데이터라면 상기 복수의 패킷 데이터를 모두 선택하여 삭제한다.
상기 패킷 데이터들이 삭제되면 나머지 패킷 데이터들은 DEAP 자료구조의 형태로 정렬될 수 있으며, 그 과정은 다음의 알고리즘 3에 의한다.
<알고리즘 3>
remove_max()
max-heap에서 루트 노드를 삭제
마지막 노드를 빈자리에 삽입
while(삽입된 노드의 키 값 < 그 자식 노드의 키 값)
두 노드의 위치 교환
if(삽입된 노드의 키 값 < 대응하는 min heap노드)
두 노드의 위치 교환
도 12는 본 발명의 일 실시예와 관련된 네트워크 환경에서의 데이터 처리방법을 나타낸 흐름도(flow chart)이다.
도 12에 도시된 바와 같이, 데이터 송수신장치는 상기 데이터 우선순위 키 값과 도착순서 키 값을 포함하는 복수의 키 값을 가지는 패킷 데이터를 수신한다(S10).
상기 데이터 송수신장치는 수신된 패킷 데이터에 할당된 복수의 키 값을 감지할 수 있다(S20).
상기 데이터 송수신장치는 수신된 패킷 데이터를 복수의 키 값을 이용하여 DEAP 자료구조의 형태로 처리할 수 있다(S30).
상기 데이터 송수신장치가 수신된 패킷 데이터를 DEAP 자료구조의 형태로 처리함에 있어서, 상기 데이터송수신장치는 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터 단위리 처리할 수 있다(S31).
상기 데이터 송수신장치가 수신된 패킷 데이터를 DEAP 자료구조의 형태로 처리함에 있어서, 상기 데이터송수신장치는 수신된 패킷 데이터를 패킷 데이터의 우선순위 키 값을 고려하여 DEAP 자료구조의 형태로 처리할 수 있다(S32).
상기 데이터 송수신장치가 수신된 패킷 데이터를 DEAP 자료구조의 형태로 처리함에 있어서, 상기 데이터송수신장치는 우선순위 키 값이 동일한 패킷 데이터들은 도착순서 키 값을 고려하여 DEAP 자료구조의 형태로 처리할 수 있다(S33).
도 13은 본 발명의 일 실시예와 관련된 데이터 송수신장치를 나타낸 블록도(block diagram)이다.
상기 데이터 송수신장치(100)는,메모리 컨트롤러(110), 데이터 송수신부(120) 버퍼메모리(130)를 포함할 수 있다. 도 2에 도시된 구성요소들이 필수적인 것은 아니어서, 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들을 갖는 이동 단말기가 구현될 수도 있다.
이하, 상기 구성요소들에 대해 차례로 살펴본다.
상기 메모리 컨트롤러(110)는 수신된 패킷 데이터에 할당된 복수의 키 값을 감지하고, 저장된 패킷 데이터를 복수의 키 값을 이용하여, DEAP 자료구조 형태로 처리할 수 있다.
상기 메모리 컨트롤러(110)는 상기 수신된 패킷 데이터를 상기 패킷 데이터의 우선순위 키 값을 고려하여 DEAP 저료구조의 형태로 처리하고, 우선순위 키 값이 동일한 패킷 데이터들은 도착순서 키 값을 고려하여 DEAP 자료구조의 형태로 처리할 수 있다.
상기 메모리 콘트롤러(110)는 상기 수신된 패킷 데이터 중 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터 단위로 처리할 수 있다.
상기 메모리 콘트롤러(110)는 수신된 패킷 데이터를 복수의 키 값을 고려하여 DEAP 자료구조의 형태로 버퍼 메모리(130)에 저장하고, 삭제하고, 전송하고, 정렬할 수 있다.
상기 버퍼 메모리(130)는 상기 수신된 패킷 데이터를 저장할 수 있다. 버퍼 메모 리(!30)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
데이터 송수신 장치(120)는 데이터 송신부(121)와 데이터 수신부(122)를 포함한다. 데이터 송신부(121)는 메모리 콘트롤러(110)에 의하여 선택된 패킷 데이터를 전송할 수 있다. 데이터 수신부(122)는 외부로부터 유입되는 트래픽을 수신할 수 있다.
설명한 바와 같이 본 발명에 따른 패킷 클러스터링이 적용된 DEAP 기반 우선순위 큐잉 기법은 기존 우선순위 큐잉 기법을 개선함으로써 중요 데이터의 실시간 전달이 중요한 네트워크 환경에서 높은 우선순위 데이터의 전송을 효율적으로 보장한다.
본 발명에서는 하나의 DEAP 자료구조를 사용하여 우선순위 큐를 구성함으로써 패킷의 우선순위에 관계 없이 모든 패킷을 하나의 큐 공간 내에 받아들일 수 있어 큐 공간을 효율적으로 활용할 수 있다.
또한 본 발명에서는 패킷에 대한 키 값을 패킷의 우선순위와 도착 순서를 조합하여 설정하며, 따라서 우선순위와 도착 순서에 따라 패킷을 정렬할 수 있다. 이렇게 정렬된 패킷 중 가장 높은 우선순위를 가지고 가장 먼저 도착한 패킷을 찾아내어 처 리함으로써 중요 데이터의 처리 시간을 줄일 수 있으며, 유입되는 중요 데이터가 차지할 큐 공간이 부족한 경우 가장 낮은 우선순위를 가지며 가장 늦게 도착한 패킷을 찾아내어 버림으로써 중요 데이터의 처리율을 높일 수 있다.
특히 본 발명에서는 함께 처리될 수 있는 패킷들을 클러스터링 하여 DEAP의 하나의 노드에 매핑함으로써 한 번의 검색 작업으로 여러 개의 패킷을 일괄적으로 처리할 수 있으며, 이에 따라 검색 작업에 따른 오버헤드를 줄여 연속적으로 들어오는 데이터를 효율적으로 처리할 수 있다.
또한, 본 발명의 일 실시예에 의하면, 전술한 방법은, 프로그램이 기록된 매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
상기와 같이 설명된 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 기록매체는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
도 1은 일반적인 네트워크 환경에서 사용되는 데이터 처리방법을 나타낸 도면.
도 2는 Max-heap의 자료구조를 설명하기 위한 도면.
도 3은 Min-heap의 자료구조를 설명하기 위한 도면.
도 4는 DEAP 의 자료구조를 설명하기 위한 도면.
도 5는 복수의 키 값을 가지는 패킷 데이터이 버퍼 메모리에 유입되고 유출되는 모습을 나타낸 도면.
도 6은 패킷 데이터를 복수의 키 값을 이용하여 DEAP 자료구조의 형태로 버퍼 메모리에 저장한 모습을 보인 도면.
도 7은 복수의 키 값을 이용하여, 버퍼 메모리에 새로운 패킷 데이터를 저장하는 모습을 보인 도면.
도 8은 복수의 키 값을 이용하여, 버퍼 메모리에 새로운 패킷 데이터를 저장하는 모습을 보인 도면.
도 9 ,10 은 복수의 키 값을 이용하여, 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 선택하여 전송하는 모습을 보인 도면.
도 11은 복수의 키 값을 이용하여, 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 선택하여 삭제하는 모습을 보인 도면.
도 12는 본 발명의 일 실시예와 관련된 네트워크 환경에서의 데이터 처리방법을 나타낸 흐름도(flow chart).
도 13은 본 발명의 일 실시예와 관련된 데이터 송수신장치를 나타낸 블록도(block diagram).

Claims (17)

  1. 우선순위 키 값과 도착순서 키 값을 포함하는 복수의 키 값을 가지는 패킷 데이터를 수신하는 단계;
    수신된 패킷 데이터를 버퍼 메모리에 저장하는 단계와, 상기 저장하는 단계에서는 상기 수신된 패킷 데이터을 복수의 키 값을 고려하여 DEAP 자료구조의 형태로 버퍼에 저장하고;
    상기 저장된 패킷 데이터를 상기 복수의 키 값을 이용하여, DEAP 자료구조의 형태로 처리하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  2. 제1 항에 있어서,
    상기 처리하는 단계는,
    상기 수신된 패킷 데이터를 상기 패킷 데이터의 우선순위 키 값을 고려하여 DEAP 자료구조의 형태로 처리하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  3. 제1 항에 있어서,
    상기 처리하는 단계는,
    상기 수신된 패킷 데이터 중 우선순위 키 값이 동일한 패킷 데이터들은, 상기 도착순서 키 값을 고려하여 DEAP 자료구조의 형태로 처리하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  4. 제1 항에 있어서,
    상기 처리하는 단계는,
    상기 수신된 패킷 데이터 중 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터 단위로 처리하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  5. 삭제
  6. 제1 항에 있어서,
    상기 처리하는 단계는,
    상기 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 복수의 키 값을 고려하여 선택하고 전송하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  7. 제1 항에 있어서,
    상기 처리하는 단계는,
    상기 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 복수의 키 값을 고려하여 선택하고, 선택된 패킷 데이터를 상기 버퍼 메모리로부터 삭제하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  8. 제1 항에 있어서,
    상기 처리하는 단계는,
    상기 버퍼 메모리에 패킷 데이터가 추가 또는 삭제되는 경우 상기 버퍼 메모리에 저장된 패킷 데이터를 DEAP 자료구조의 형태로 정렬하는 단계를 포함하는 네트워크 환경에서의 데이터 처리방법.
  9. 우선순위 키 값과 도착순서 키 값을 포함하는 복수의 키 값을 가지는 패킷 데이터를 수신하는 데이터 수신부;
    수신된 패킷 데이터를 저장하는 버퍼 메모리;및
    상기 수신된 패킷 데이터에 할당된 복수의 키 값을 감지하고, 상기 저장된 패킷 데이터를 상기 복수의 키 값을 이용하여, DEAP 자료구조 형태로 처리하는 메모리 콘트롤러를 포함하고,
    상기 메모리 콘트롤러는 상기 수신된 패킷 데이터를 상기 버퍼 메모리 내에 상기 복수의 키 값을 고려하여 DEAP 자료구조의 형태로 저장하는 것을 특징으로 하는 데이터 송수신장치.
  10. 제9 항에 있어서,
    상기 메모리 콘트롤러는,
    상기 수신된 패킷 데이터를 상기 패킷 데이터의 우선순위 키 값을 고려하여 DEAP 자료구조의 형태로 처리하는 데이터 송수신장치.
  11. 제10 항에 있어서,
    상기 메모리 콘트롤러는,
    상기 수신된 패킷 데이터 중 우선순위 키 값이 동일한 패킷 데이터들은, 상기 도착순서 키 값을 고려하여 DEAP 자료구조의 형태로 처리하는 데이터 송수신장치.
  12. 제9 항에 있어서,
    상기 메모리 콘트롤러는,
    상기 수신된 패킷 데이터 중 동일한 우선순위 키 값을 가지고 연속되는 도착순서 키 값을 가지는 패킷 데이터들을 하나의 패킷 데이터 단위로 처리하는 데이터 송수신장치.
  13. 삭제
  14. 제9 항에 있어서,
    상기 메모리 콘트롤러는,
    상기 버퍼 메모리에 저장된 패킷 데이터 중 어느 하나를 복수의 키 값을 고려하여 DEAP 자료구조의 규칙에 따라 선택하고,
    상기 선택된 패킷 데이터를 전송하는 데이터 송신부를 더 포함하는 데이터 송수신장치.
  15. 제9 항에 있어서,
    상기 메모리 콘트롤러는,
    상기 버퍼 메모리에 저장된 패킷 데이터 중 적어도 하나의 패킷 데이터를 복수의 키 값을 고려하여 선택하여 상기 버퍼 메모리로부터 삭제하는 데이터 송수신장치.
  16. 제9 항에 있어서,
    상기 메모리 콘트롤러는,
    상기 버퍼 메모리에 패킷 데이터가 추가 또는 삭제되는 경우 상기 버퍼 메모리에 저장된 패킷 데이터를 DEAP 자료구조의 형태로 정렬하는 데이터 송수신장치.
  17. 제 1항 내지 제4항, 제6항, 제7항 그리고 제8항 중 어느 한 항의 네트워크 환경에서의 데이터 처리방법을 수행하는 프로그램을 기록하고, 컴퓨터로 판독가능한 기록매체.
KR1020090004798A 2009-01-20 2009-01-20 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체 KR101046597B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090004798A KR101046597B1 (ko) 2009-01-20 2009-01-20 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090004798A KR101046597B1 (ko) 2009-01-20 2009-01-20 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20100085496A KR20100085496A (ko) 2010-07-29
KR101046597B1 true KR101046597B1 (ko) 2011-07-06

Family

ID=42644403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090004798A KR101046597B1 (ko) 2009-01-20 2009-01-20 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR101046597B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180072B (zh) * 2017-03-31 2020-07-31 北京奇艺世纪科技有限公司 一种时序数据的处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100481614B1 (ko) * 2002-11-19 2005-04-08 한국전자통신연구원 서비스 거부와 분산 서비스 거부 공격으로부터 정상트래픽을 보호하는 방법 및 그 장치
KR100541847B1 (ko) * 2002-12-07 2006-01-11 한국전자통신연구원 홈게이트웨이 시스템에서의 동적 우선순위 큐잉 엔진 및방법과 그를 이용한 홈게이트웨이의 데이터 서비스 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100481614B1 (ko) * 2002-11-19 2005-04-08 한국전자통신연구원 서비스 거부와 분산 서비스 거부 공격으로부터 정상트래픽을 보호하는 방법 및 그 장치
KR100541847B1 (ko) * 2002-12-07 2006-01-11 한국전자통신연구원 홈게이트웨이 시스템에서의 동적 우선순위 큐잉 엔진 및방법과 그를 이용한 홈게이트웨이의 데이터 서비스 시스템

Also Published As

Publication number Publication date
KR20100085496A (ko) 2010-07-29

Similar Documents

Publication Publication Date Title
CN103444141B (zh) 分组调度方法和设备
US7321594B2 (en) Router apparatus provided with output port circuit including storage unit, and method of controlling output port circuit of router apparatus
US6721796B1 (en) Hierarchical dynamic buffer management system and method
CN103348640B (zh) 中继装置
US6914881B1 (en) Prioritized continuous-deficit round robin scheduling
US7349399B1 (en) Method and apparatus for out-of-order processing of packets using linked lists
KR101169594B1 (ko) 우선 순위에 기초한 큐잉과 패킷을 모으는 방법
US7230923B2 (en) Time based packet scheduling and sorting system
US8121120B2 (en) Packet relay apparatus
US20080063004A1 (en) Buffer allocation method for multi-class traffic with dynamic spare buffering
EP2782301A1 (en) Relay device, method for controlling relay device, and computer program
CN109688070A (zh) 一种数据调度方法、网络设备及转发单元
US20090262748A1 (en) Relaying apparatus and packet relaying apparatus
US20080080504A1 (en) System and method for managing flow of a plurality of packets in a lossless communication network
US20160142333A1 (en) Method and apparatus for performing a weighted queue scheduling using a set of fairness factors
US6836475B2 (en) Method and apparatus for traffic shaping for IP router queues/egress
US8488489B2 (en) Scalable packet-switch
CN111740922B (zh) 数据传输方法、装置、电子设备及介质
US6714554B1 (en) Method and system for sorting packets in a network
US7330477B2 (en) Method and apparatus for starvation-free scheduling of communications
KR101046597B1 (ko) 네트워크 환경에서의 데이터 처리방법, 데이터 송수신장치 및 컴퓨터로 읽을 수 있는 기록매체
CN105871747B (zh) 通信系统下行数据传输方法和系统
CN104038441A (zh) 一种数据传输方法及系统
US7006513B1 (en) Method and system for pipelining packet selection
US7313093B1 (en) Methods and apparatus for selectively discarding packets during overload conditions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140602

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 5