KR20060092757A - 효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템 - Google Patents

효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템 Download PDF

Info

Publication number
KR20060092757A
KR20060092757A KR1020050013886A KR20050013886A KR20060092757A KR 20060092757 A KR20060092757 A KR 20060092757A KR 1020050013886 A KR1020050013886 A KR 1020050013886A KR 20050013886 A KR20050013886 A KR 20050013886A KR 20060092757 A KR20060092757 A KR 20060092757A
Authority
KR
South Korea
Prior art keywords
class
filter
dynamic
system call
parameter
Prior art date
Application number
KR1020050013886A
Other languages
English (en)
Other versions
KR100651435B1 (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 KR1020050013886A priority Critical patent/KR100651435B1/ko
Priority to US11/183,682 priority patent/US20060187830A1/en
Priority to EP05019441A priority patent/EP1694001A1/en
Priority to CNA2005100999859A priority patent/CN1822564A/zh
Publication of KR20060092757A publication Critical patent/KR20060092757A/ko
Application granted granted Critical
Publication of KR100651435B1 publication Critical patent/KR100651435B1/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/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/26Devices for calling a subscriber
    • H04M1/30Devices which can set up and transmit only one digit at a time
    • H04M1/31Devices which can set up and transmit only one digit at a time by interrupting current to generate trains of pulses; by periodically opening and closing contacts to generate trains of pulses
    • H04M1/40Devices which can set up and transmit only one digit at a time by interrupting current to generate trains of pulses; by periodically opening and closing contacts to generate trains of pulses wherein the setting-operation short-circuits or open-circuits the transmitting mechanism during a variable part of a cycle
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 시스템이 동작하는 중에도 특정 트래픽에 대하여 실시간 서비스가 필요한 경우에 클래스를 동적으로 생성하여 우선순위를 보장해 줄 수 있도록 한다. 이를 위한 본 발명의 적응적 큐 설정 시스템은, 사용자 영역으로부터 커널 영역으로의 시스템 호출에 의해 클래스 및/또는 필터를 추가하거나 삭제한다. 또한 본 발명의 적응적 큐 메커니즘은, 디폴트 클래스에 대응하는 디폴트 우선순위 큐와, 적어도 하나의 동적 클래스에 각각 대응되게 동적으로 생성되는 동적 우선순위 큐와, 지정된 동적 클래스에 대응되게 설정된 필터링 정보를 가지며 지정된 동적 클래스에 연동되게 동적으로 생성되는 필터와, 패킷에 대한 클래스를 필터를 이용하여 분류하는 분류기를 구비한다.
실시간 패킷 전송, 큐, 클래스, 필터, 우선순위, 분류, 큐잉, 스케줄링.

Description

효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과 그의 적응적 큐 설정 시스템{ADAPTIVE QUEUE MECHANISM FOR EFFICIENT REAL-TIME PACKET TRANSFER AND ADAPTIVE QUEUE ESTABLISHMENT SYSTEM THEREOF}
도 1은 통상적인 FSFC 방식의 큐잉 시스템의 블록구성도,
도 2는 본 발명의 실시 예에 따른 적응적 큐 메커니즘에 따른 큐잉 및 스케줄링 시스템의 블록구성도,
도 3은 본 발명의 실시 예에 따른 클래스 및 필터의 생성 예시도,
도 4는 본 발명의 실시 예에 따른 적응적 큐 설정 시스템의 블록구성도,
도 5는 본 발명의 실시 예에 따른 패킷 분류 처리 흐름도.
본 발명은 멀티미디어 데이터 전송 환경에서 QoS(Quality of Service)를 지원하기 위한 기술에 관한 것으로, 특히 큐 메커니즘(queue mechanism)에 관한 것이다.
인터넷, 모바일 통신 등이 급속히 확산되면서 멀티미디어 데이터의 전송량이 늘어나고 있다. 이러한 멀티미디어 데이터 중에는 음성 통화나 화상 통신처럼 실시간 전송을 보장해야 하는 서비스들도 있다.
현재 네트워크 디바이스에서 음성 등과 같은 멀티미디어 데이터 서비스를 보장하는데 있어서 문제점은 다양한 고용량 패킷의 전송 요구가 존재한다는 것이다. 즉, 많은 사용자가 다양한 네트워크 서비스를 사용하고 있는데 비해 충분한 서비스를 제공하지 못하게 되면 음성 통화 등과 같은 실시간 멀티미디어 데이터 전송에 있어서 문제가 발생하게 된다.
한편 통상적인 OS(Operating System)에서 기본적으로 제공되는 큐잉(queuing) 기법은 하나의 큐를 기반으로 한 FCFS(First Come First Serve) 방식이다. 도 1에서 보는 바와 같이 FCFS 방식은 하나의 큐(102)만을 사용하고, 인큐(enqueue) 함수 enqueue()로 구현되는 인큐부(100)와 디큐(dequeue) 함수 dequeue()로 구현되는 디큐부(104)의 단순한 동작에 의해 큐잉 및 스케줄링(scheduling)이 수행된다. 인큐부(100)의 인큐 함수에 의한 큐잉은 들어오는 모든 패킷들에 대해서 필터링(filtering)을 수행하지 않고 하나의 큐(102)에 무조건 순차적으로 삽입함으로써 이루어진다. 디큐부(104)의 디큐 함수에 의한 스케줄링은 큐(102)에 들어온 순서대로 패킷을 출력 링크(output link)로 전송함으로써 이루어진다.
상기한 바와 같이 통상적인 OS에서는 다양한 종류의 패킷에 대하여 하나의 큐만을 사용함으로써 알고리즘(algorithm) 자체는 단순하고 적은 작업 복잡도(work complexity)를 가진다. 하지만 전송 큐를 1개만 두고 FCFS 방식의 큐잉 및 스케줄링을 함에 따라 공정한 전송을 해주지 못하는데, 파일 전송과 같은 특정 트래픽의 장시간의 큐 점유로 인해 다른 트래픽에 기아(starvation)를 일으킬 수 있는 등, 실시간 보장성이 떨어지고 있다.
멀티미디어 데이터 전송 환경에서 QoS를 지원함으로써 실시간 전송이 필요한 서비스에 대한 실시간 보장성을 높이기 위한 큐잉 기법으로서, 서비스 목적에 따라 우선순위(priority)를 달리하는 여러 개의 큐를 사용하는 우선순위 큐잉 방식이 있다. 우선순위 큐잉 방식에 있어서 각각의 큐는 서로 다른 트래픽 클래스에 매핑이 된다. 우선순위 큐잉을 사용하는 경우에 스케줄링 방식은 여러 가지가 있지만, 기본적으로는 높은 우선순위 큐에 저장되는 패킷들이 낮은 우선순위 큐에 저장되어 있는 패킷들보다 우선적으로 서비스된다.
이처럼 우선순위 큐잉 방식을 사용하고, 실시간 전송이 필요한 멀티미디어 데이터에 대하여 높은 우선순위의 클래스를 부여함으로써, FCFS 방식에 비해 실시간 전송 보장성을 향상시킬 수 있다.
하지만 종래의 우선순위 큐잉 방식은 시스템 동작 중에 큐를 생성하는 것이 아니라 부팅(booting)시 우선순위 큐잉 시스템이 이루어져 있어야만 하였었다. 이에 따라 클래스와 큐의 추가, 삭제 등 설정을 바꿔야 할 경우에는 재부팅을 필요로 한다.
따라서 본 발명은 시스템이 동작하는 중에도 특정 트래픽에 대하여 실시간 서비스가 필요한 경우에 클래스를 동적으로 생성하여 우선순위를 보장해 줄 수 있는 적응적 큐 메커니즘과 그의 적응적 큐 설정 시스템을 제공한다.
또한 본 발명은 시스템이 동작하는 중에도 클래스를 동적으로 생성하거나 삭제할 수 있는 적응적 큐 메커니즘과 그의 적응적 큐 설정 시스템을 제공한다.
또한 본 발명은 시스템이 동작하는 중에 동적으로 생성되는 클래스에 따라 패킷을 분류하기 위한 필터를 동적으로 생성하거나 삭제할 수 있는 적응적 큐 메커니즘과 그의 적응적 큐 설정 시스템을 제공한다.
이를 위한 본 발명의 적응적 큐 설정 시스템은, 사용자 영역(user mode)으로부터 커널 영역(kernel mode)으로 시스템 호출(system call)을 사용하여 클래스 및/또는 필터를 추가하거나 삭제함을 특징으로 한다.
본 발명의 적응적 큐 메커니즘은, 디폴트(default) 클래스에 대응하는 디폴트 우선순위 큐와, 적어도 하나의 동적 클래스에 각각 대응되게 동적으로 생성되는 동적 우선순위 큐와, 지정된 동적 클래스에 대응되게 설정된 필터링 정보를 가지며 지정된 동적 클래스에 연동(interworking)되게 동적으로 생성되는 필터와, 패킷에 대한 클래스를 필터를 이용하여 분류하는 분류기(classify)를 구비함을 특징으로 한다.
상기 분류기는 우선순위 큐들 중 하나에 넣어야 할 패킷이 가지는 전송 정보 와 일치하는 필터링 정보를 가지는 필터를 검색하여, 검색된 필터에 대응하는 동적 클래스를 패킷에 대한 클래스로 결정하며, 검색된 필터가 없는 경우에는 디폴트 클래스를 패킷에 대한 클래스로 결정한다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 2는 본 발명의 실시 예에 따른 적응적 큐 메커니즘에 따른 큐잉 및 스케줄링 시스템의 블록구성도로서, 인큐부(200)에는 분류기(202)가 포함되고, 하나의 디폴트 우선순위 큐(210) 이외에 3개의 동적 우선순위 큐들(204∼208)이 추가로 생성되어 있으며, 디큐부(212)에 의해 스케줄링이 이루어지는 예를 보인 것이다. 상기 동적 우선순위 큐들(204∼208)은 후술하는 도 4의 적응적 큐 설정 시스템에 의해 동적으로 생성되어 추가되거나 삭제된다.
본 발명의 적응적 큐 메커니즘은 클래스와 필터라는 두 가지의 기본적인 개념을 기반으로 구성된다. 클래스는 우선순위를 가지는 큐를 나타내는 기본적인 단위이다. 필터는 클래스를 구성하는 조건으로서, 패킷에 대한 클래스를 결정하여 분류하는데 적용되며 하나 또는 그 이상이 될 수 있다.
도 3은 이러한 클래스와 필터가 연동되게 생성됨을 보인 것으로, 하나의 디폴트 클래스(306) 이외에 3개의 동적 클래스0∼2(300∼304)이 추가로 생성된 경우에 동적 클래스0∼2(300∼304) 각각에 다수의 필터들(308∼312)이 대응되게 생성되어 연동됨을 보인다. 동적 클래스0∼2(300∼304) 각각은 상기한 도 2의 동적 우선 순위 큐들(204∼208) 각각에 대응된다. 필터들(308∼312) 각각은 패킷을 분류하기 위한 필터링 정보를 가진다. 필터링 정보는 해당 필터에 의해 필터링되어야 할 패킷이 가지게 되는 전송 정보, 예를 들어 소스(source) IP(Internet Protocol) 주소 및 목적지(destination) IP 주소, 소스 포트 번호 및 목적지 포트번호, 프로토콜 정보로 세팅된다. 프로토콜 정보의 예를 들면, TCP(Transmission Control Protocol), IP(Internet Protocol) 등이 있을 수 있다.
상기 디폴트 클래스(306)에 부여되는 우선순위를 '디폴트 우선순위'라 하고, 동적 클래스0∼2(300∼304) 각각에 부여되는 우선순위를 '우선순위 0', '우선순위 1', '우선순위 2'라 할 때, 우선순위들 간의 관계는 우선순위 0 > 우선순위 1 > 우선순위 2 > 디폴트 우선순위가 된다.
그리고 예를 들어 실시간 음성 데이터나 영상 데이터가 상대적으로 높은 우선순위로 할당될 수 있다. 그 다음으로 높은 품질의 서비스는 웹이나 인터넷 트래픽을 예로 들 수 있다. 다음으로 시간에 대한 민감도가 거의 없는 전자 메일을 들 수 있다. 가장 낮은 우선순위 패킷으로는 네트워크 관리 데이터를 가지는 패킷을 들 수 있다.
상기한 용어 '동적 클래스'는 디폴트로 존재하는 '디폴트 클래스'와 구별함과 아울러 동적으로 생성/삭제되는 클래스임을 나타내기 위해 사용된 것이고, 상기한 용어 '동적 우선순위 큐'는 디폴트 클래스에 따라 디폴트로 존재하는 '디폴트 우선순위 큐'와 구별함과 아울러 동적으로 생성/삭제되는 큐임을 나타내기 위해 사용된 것이다.
상기한 바와 같은 클래스와 필터의 생성/삭제를 위한 클래스 기반 연산을 지원하기 위하여 클래스 추가 addclass, 클래스 삭제 deleteclass, 필터 추가 addfilter, 필터 삭제 deletefilter 등의 오퍼레이션 등이 존재하고, 이들은 시스템 호출(system call)을 사용하여 OS(Operating System)의 커널 내부와 통신을 담당한다.
도 4는 상기한 바와 같이 동적 클래스와 이에 연동되는 필터를 동적으로 생성하여 추가하거나 삭제하는 본 발명의 실시 예에 따른 적응적 큐 설정 시스템의 블록 구성도이다. 도 4의 적응적 큐 설정 시스템은 사용자 영역(user mode)과 커널 영역(kernel) 영역으로 구분된다. 사용자 영역에는 클래스 추가 시스템 호출부(400), 필터 추가 시스템 호출부(404), 클래스 삭제 시스템 호출부(408), 필터 삭제 시스템 호출부(412)가 위치한다. 커널 영역에는 클래스 추가부(402), 필터 추가부(406), 클래스 삭제부(410), 필터 삭제부(414)가 위치한다.
상기 클래스 추가 시스템 호출부(400)는 커널로 클래스 추가 시스템 호출과 아울러 추가할 동적 클래스를 정의하는 파라미터(parameter)를 전달한다. 그러면 클래스 추가부(402)는 클래스 추가 시스템 호출부(400)의 클래스 추가 시스템 호출에 응답하여 클래스 추가 시스템 호출부(400)로부터 전달받는 파라미터에 따라 새로운 동적 클래스와 그에 따른 동적 우선순위 큐를 생성한다.
이처럼 클래스 추가 시스템 호출부(400)로부터 클래스 추가부(402)로 전달되는 파라미터는, 새로운 동적 클래스의 클래스 id(identifier)와, 새로운 동적 클래스에 부여된 우선순위를 포함한다.
상기 클래스 추가 시스템 호출부(400)를 클래스 추가 함수 addclass로 구현한 예를 하기 표 1에 보였으며, 상기 클래스 추가부(402)의 구현 예를 하기 표 2에 보였다. 하기 표 1,2는 본 발명이 OS로서 리눅스(Linux)를 채용한 시스템에 적용되는 경우의 구현 예를 보인 것이다.
// file name: add_class.c (사용자 영역) _syscall1(int, addclass, struct classtype *, temp); // addclass 시스템 호출 사용 int main(int argc, char *argv[]) { ... temp.classid = atoi(argv[1]); temp.priority = atoi(argv[2]); ... // default 클래스와 우선순위 접근 방지 if (temp.classid == 0 || temp.priority == 4) { printf("User Not Used!! Need other id or priority Use!\n"); return; } result = addclass(&temp); // 시스템 호출=>커널로 파라미터 전달
asmlinkage int sys_addclass(struct classtype *uclass) // kernel 영역 { ... //파라미터 세팅 ptr = class_find(nclass->classid); flag = add_class(nclass->priority, nclass);// 새로운 클래스 추가 ... return flag; }
상기 필터 추가 시스템 호출부(404)는 커널로 필터 추가 시스템 호출과 아울러 추가할 필터를 정의하며 필터링 정보를 나타내는 파라미터를 전달한다. 그러면 필터 추가부(406)는 필터 추가 시스템 호출에 응답하여 필터 추가 시스템 호출부(404)로부터 전달받는 파라미터에 따라 새로운 필터를 필터 추가 시스템 호출부(404)로부터 전달받는 파라미터에 의해 지정되는 동적 클래스에 연동되게 생성한다.
이처럼 필터 추가 시스템 호출부(404)로부터 필터 추가부(406)로 전달되는 파라미터는 새로운 필터가 연동될 동적 클래스의 클래스 id(identifier)와, 새로운 필터의 필터 id(identifier)를 포함한다. 그리고 필터링 정보는, 새로운 필터에 적용될 패킷이 가지게 되는 전송 정보인 소스 IP 주소 및 목적지 IP 주소, 소스 포트 번호 및 목적지 포트 번호, 프로토콜 정보를 포함한다.
상기 필터 추가 시스템 호출부(404)를 필터 추가 함수 addfilter로 구현한 예를 하기 표 3에 보였으며, 상기 필터 추가부(406)의 구현 예를 하기 표 4에 보였다. 하기 표 3,4는 본 발명이 OS로서 리눅스를 채용한 시스템에 적용되는 경우의 구현 예를 보인 것이다.
// file name: add_filter.c (User 영역) _syscall2(int, addfilter, int, classid, struct filter *, temp); int main(int argc, char *argv[]) { ... // 시스템 호출로 전달할 파라미터 설정 classid = atoi(argv[1]); temp.filterid = atoi(argv[2]); temp.protocol = atoi(argv[3]); temp.source = atoi(argv[4]); temp.dest = atoi(argv[5]); result = addfilter(classid, &temp); // 시스템 호출 return; }
asmlinkage int sys_addfilter(int classid, struct filter *ufilter) //커널 영역 // user application call { ... //파라미터 세팅 ptr = filter_find(temp1->filterid); flag = add_filter(classid, temp1);// 필터 추가 return flag; }
상기 클래스 삭제 시스템 호출부(408)는 커널로 클래스 삭제 시스템 호출과 아울러 삭제할 동적 클래스를 지정하는 파라미터를 전달한다. 그러면 클래스 삭제부(410)는 클래스 삭제 시스템 콜에 응답하여 지정된 동적 클래스와 그에 따른 동적 우선순위 큐를 삭제한다. 상기 삭제할 동적 클래스를 지정하는 파라미터는 삭제할 동적 클래스의 클래스 id를 포함한다.
이러한 클래스 삭제 시스템 호출부(408)와 클래스 삭제부(410)의 구현은 상기 표 1,2에 보인 클래스 추가 시스템 호출부(400)와 클래스 추가부(402)의 구현 예를 보면, 용이하게 이해할 수 있을 것이므로, 생략한다.
상기 필터 삭제 시스템 호출부(412)는 커널로 필터 삭제 시스템 호출과 아울러 삭제할 필터를 지정하는 파라미터를 전달한다. 그러면 필터 삭제부(414)는 필터 삭제 시스템 호출에 응답하여 지정된 필터를 삭제한다. 상기 삭제할 필터를 지정하는 파라미터는 삭제할 동적 클래스의 클래스 id와 삭제할 필터의 필터 id를 포함한다.
이러한 필터 삭제 시스템 호출부(412)와 클래스 삭제부(414)은 상기 표 3,4에 보인 필터 추가 시스템 호출부(408)와 필터 추가부(406)의 구현 예를 보면, 용이하게 이해할 수 있을 것이므로, 생략한다.
상기한 도 2에서는 이미 생성된 동적 우선순위 큐들(204∼208)을 보이고 있고, 상기한 도 3에서는 이미 생성한 동적 클래스들(300∼304)와 필터들(308∼312)을 보이지만, 초기에는 디폴트 클래스(306)와 그에 따른 디폴트 우선순위 큐(210)만 존재한다. 이에 따라 평상시에는 전술한 도 1과 마찬가지의 큐 메커니즘으로 동작한다. 이러한 상태에서 우선순위 전송을 필요로 하는 멀티미디어 데이터가 생길 때, 네트워크 관리자는 상기한 표 1의 클래스 추가 함수 addclass를 호출한다.
그러면 클래스 추가 시스템 호출부(410)에 의해 커널에 있는 클래스 추가부(402)에 대한 시스템 호출이 이루어져, 클래스 추가부(402)에 의해 새로운 동적 클래스와 그에 따른 동적 우선순위 큐가 생성된다. 이와 함께 상기한 표 3의 필터 추가 함수 addfilter를 호출하여 새로운 동적 클래스로 분류되어야 할 패킷을 필터링하기 위한 필터를 추가한다.
그리고 새로운 동적 클래스를 추가할 필요는 없지만, 이전에 추가된 동적 클래스에 연동되는 필터의 필터링 정보와 다른 전송 정보를 가지는 패킷이 해당 동적 클래스로 분류되어야 할 경우가 발생할 수도 있다. 이러한 경우에는 해당 동적 클래스에 전송 정보를 가지는 패킷의 전송 정보를 필터링 정보로 가지는 새로운 필터를 생성하여 추가한다.
상기한 도 2의 예처럼 디폴트 우선순위 큐(210) 이외에 동적 우선순위 큐들(204∼208)이 추가로 생성되어 있는 상태에서, 우선순위 큐들(204∼210) 중 하나에 넣어야할 패킷이 인큐부(200)에 입력되면, 인큐부(200)에 포함된 분류기(202)는 패킷에 대한 클래스를 필터를 이용하여 분류한다.
이러한 분류기(202)의 패킷 분류 처리를 보인 도 5의 흐름도를 참조하면, (500)단계에서 패킷이 입력되면, (502)단계에서 입력된 패킷이 가지는 전송 정보와 일치하는 필터링 정보를 가지는 필터를 검색한다. 그리고 (504)단계에서 전송 정보와 일치하는 필터링 정보를 가지는 필터의 검색 여부에 따라 (506)단계 또는 (508)단계를 수행한다.
만일 입력된 패킷이 가지는 전송 정보와 일치하는 필터링 정보를 가지는 필터가 검색되면, (506)단계에서 검색된 필터에 대응하는 동적 클래스를 입력된 패킷에 대한 클래스로 결정하고 해당 패킷에 대한 분류를 종료한다. 이와 달리 검색된 필터가 없는 경우에는 (508)단계에서 디폴트 클래스를 패킷에 대한 클래스로 결정하고, 해당 패킷에 대한 분류를 종료한다.
상기한 바와 같은 분류기(202)를 분류 함수 classify로 구현한 예를 하기 표 5에 보였다. 하기 표 5는 본 발명이 OS로서 리눅스를 채용한 시스템에 적용되는 경우의 구현 예를 보인 것이며, 하기 표 5의 분류 함수 classify는 인큐부(200)의 인큐 함수의 앞부분에 삽입된다.
본 발명을 OS로서 리눅스에 대하여 구현한 것을 보인 것이다. 하기 표 5를 보면 필터링 정보가 소스 IP 주소 및 목적지 IP 주소, 소스 포트 번호 및 목적지 포트 번호, 프로토콜 정보를 포함하는 전송 정보로 세팅됨을 알 수 있다.
struct pcq_class *classify(struct sk_buff *skb, struct Qdisc *sch) { ... // 초기값 세팅 for(h=0; h<5; h++) { for(cl = q->prio_Array[h]; cl; cl = cl->next) { for(fi = cl->filter_list; fi; fi = fi->next) { if (in_aton(fi->src) == 0) { flag = 0; } else if (skb->nh.iph->saddr== in_aton(fi->src)) { flag = 1; continue; } if (in_aton(fi->dst)==0) { flag = 0; } else if (skb->nh.iph->daddr == in_aton(fi->dst)) { flag = 1; } else { flag = 0; continue; } if (fi->source == 0) { flag = 0; } else if ((int)skb->h.th->source == fi->source) { flag = 1; } if (fi->dest == 0) { flag = 0; } else if ((int)skb->h.th->dest == fi->dest) { flag = 1; } if (fi->protocol == 0) { flag = 0; } else if (skb->nh.iph->protocol == fi->protocol) { flag = 1; } return cl; } return q->prio_Array[4]; }
상기한 바와 같이 각 패킷에 대하여 각 클래스가 가지고 있는 필터링 정보와 일치하는 전송 정보를 가지는 패킷들을 분류기(202)에서 필터링에 의해 분류하여 클래스를 결정하면, 인큐부(200)는 결정된 각 클래스에 따른 우선순위 큐에 패킷을 삽입한다. 이처럼 각 클래스에 삽입된 패킷들을 디큐부(212)의 스케줄링에 따라 꺼내져 전송되는데, 디큐부(212)는 예를 들어 통상적인 우선순위 큐잉에 대하여 적용되고 있는 WRR(Weighted Round Robin) 방식으로 스케줄링하도록 구현할 수 있다.
따라서 시스템이 동작하는 중에도 특정 트래픽에 대하여 실시간 서비스가 필요할 때 시스템을 재부팅하지 않고 커널 시스템 호출을 사용하여 동적으로 우선순위 큐를 생성하고, 그때마다 필요한 서비스에 대해 패킷 필터링을 함으로써, 실시간 데이터 전송을 보장할 수 있게 된다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러가지 변형이 본 발명의 범위내에서 이루어질 수 있다.
특히 본 발명의 실시예에서는 네트워크 관리자의 조작에 따른 호출에 의한 클래스와 필터의 추가/삭제가 이루어지는 예를 들었으나, 미리 정해진 전송 정보를 가지는 패킷을 필요한 우선순위를 부여하여 전송할 필요가 있을 때, 해당 패킷의 전송 정보에 따라 자동적으로 상기 표 1,3의 예와 같은 함수의 호출이 이루어지도록 적용될 수도 있다.
또한 클래스 삭제와 필터 삭제가 각각 별도로 이루어지는 예를 들었으나, 클래스 삭제가 이루어지는 경우에는 해당 클래스에 관한 필터는 더 이상 필요없으므로 클래스 삭제부(410)가 클래스 삭제시 그에 대응하는 필터도 자동적으로 삭제하도록 구현할 수도 있다.
그리고 클래스와 필터를 모두 동적으로 생성하여 추가하고 삭제하는 예를 들었으나, 필요에 따라 어느 한가지만을 동적으로 생성 및 삭제하도록 적용할 수도 있을 것이다.
또한 필터링 정보로서 소스 IP 주소 및 목적지 IP 주소, 소스 포트 번호 및 목적지 포트 번호, 프로토콜 정보를 포함하는 예를 들었으나, 이들은 필요에 따라 선택적으로 필터링 정보에 포함시킬 수도 있으며, 패킷에 관한 또 다른 정보를 더 포함시킬 수도 있다.
따라서 본 발명의 범위는 설명된 실시예에 의하여 한정되는 것이 아니며 특허청구범위와 특허청구범위의 균등한 것에 의하여 정하여져야한다.
상술한 바와 같이 본 발명은 특정 트래픽에 대하여 실시간 서비스가 필요할 때 시스템이 동작하는 중에 커널 시스템 호출을 사용하여 동적으로 우선순위 큐를 생성하고, 그때마다 필요한 서비스에 대해 패킷 필터링을 함으로써, 특정 트래픽에 대하여 실시간 서비스가 필요할 때 시스템을 재부팅하지 않고 실시간 데이터 전송을 보장할 수 있다.

Claims (20)

  1. 실시간 패킷 전송을 위한 큐 메커니즘에 있어서,
    사용자 영역에 위치하며, 커널로 클래스 추가 시스템 호출과 아울러 추가할 동적 클래스를 정의하는 파라미터를 전달하는 클래스 추가 시스템 호출부와,
    커널 영역에 위치하며, 상기 클래스 추가 시스템 호출에 응답하여 상기 파라미터에 따라 새로운 동적 클래스와 그에 따른 동적 우선순위 큐를 생성하는 클래스 추가부를 구비함을 특징으로 하는 적응적 큐 설정 시스템.
  2. 제1항에 있어서, 상기 파라미터가, 상기 새로운 동적 클래스의 클래스 id(identifier)와, 상기 새로운 동적 클래스에 부여된 우선순위를 포함함을 특징으로 하는 적응적 큐 설정 시스템.
  3. 제1항에 있어서,
    상기 사용자 영역에 위치하며, 상기 커널로 클래스 삭제 시스템 호출과 아울러 삭제할 동적 클래스를 지정하는 파라미터를 전달하는 클래스 삭제 시스템 호출부와,
    상기 커널 영역에 위치하며, 상기 클래스 삭제 시스템 콜에 응답하여 상기 지정된 동적 클래스와 그에 따른 동적 우선순위 큐를 삭제하는 클래스 삭제부를 더 구비함을 특징으로 하는 적응적 큐 설정 시스템.
  4. 제3항에 있어서, 상기 삭제할 동적 클래스를 지정하는 파라미터가, 상기 삭제할 동적 클래스의 클래스 id(identifier)를 포함함을 특징으로 하는 적응적 큐 설정 시스템.
  5. 실시간 패킷 전송을 위한 큐 메커니즘에 있어서,
    사용자 영역에 위치하며, 커널로 필터 추가 시스템 호출과 아울러 추가할 필터를 정의하며 필터링 정보를 나타내는 파라미터를 전달하는 필터 추가 시스템 호출부와,
    커널 영역에 위치하며, 상기 필터 추가 시스템 호출에 응답하여 상기 파라미터에 따라 새로운 필터를 상기 파라미터에 의해 지정되는 동적 클래스에 연동되게 생성하는 필터 추가부를 구비함을 특징으로 하는 적응적 큐 설정 시스템.
  6. 제5항에 있어서,
    상기 파라미터가, 상기 동적 클래스의 클래스 id(identifier)와, 상기 새로 운 필터의 필터 id(identifier)를 포함하고,
    상기 필터링 정보가, 상기 새로운 필터에 적용될 패킷이 가지게 되는 전송 정보인 소스 IP(Internet Protocol) 주소 및 목적지 IP(Internet Protocol) 주소, 소스 포트 번호 및 목적지 포트 번호, 프로토콜 정보를 포함함을 특징으로 하는 적응적 큐 설정 시스템.
  7. 제5항에 있어서,
    상기 사용자 영역에 위치하며, 상기 커널로 필터 삭제 시스템 호출과 아울러 삭제할 필터를 지정하는 파라미터를 전달하는 필터 삭제 시스템 호출부와,
    상기 커널 영역에 위치하며, 상기 필터 삭제 시스템 호출에 응답하여 상기 지정된 필터를 삭제하는 필터 삭제부를 더 구비함을 특징으로 하는 적응적 큐 설정 시스템.
  8. 제7항에 있어서, 상기 삭제할 필터를 지정하는 파라미터가, 상기 삭제할 필터에 대응하는 동적 클래스의 클래스 id(identifier)와, 상기 삭제할 필터의 필터 id(identifier)를 포함함을 특징으로 하는 적응적 큐 설정 시스템.
  9. 실시간 패킷 전송을 위한 큐 메커니즘에 있어서,
    디폴트 클래스에 대응하는 디폴트 우선순위 큐와,
    적어도 하나의 동적 클래스에 각각 대응되게 동적으로 생성되는 동적 우선순위 큐와,
    지정된 동적 클래스에 대응되게 설정된 필터링 정보를 가지며 상기 지정된 동적 클래스에 연동되게 동적으로 생성되는 필터와,
    상기 우선순위 큐들 중 하나에 넣어야할 패킷이 가지는 전송 정보와 일치하는 필터링 정보를 가지는 필터를 검색하여, 검색된 필터에 대응하는 동적 클래스를 상기 패킷에 대한 클래스로 결정하며, 검색된 필터가 없는 경우에는 상기 디폴트 클래스를 상기 패킷에 대한 클래스로 결정하는 분류기를 구비함을 특징으로 하는 적응적 큐 메커니즘.
  10. 제9항에 있어서, 상기 분류기가, 상기 입력 패킷을 상기 우선순위 큐들 중에 상기 결정된 클래스의 우선순위 큐에 넣는 인큐부에 포함됨을 특징으로 하는 적응적 큐 메커니즘.
  11. 제9항에 있어서, 상기 필터링 정보 및 상기 전송 정보가, 각각, 소스 IP(Internet Protocol) 주소 및 목적지 IP(Internet Protocol) 주소, 소스 포트 번 호 및 목적지 포트 번호, 프로토콜 정보를 포함함을 특징으로 하는 적응적 큐 메커니즘.
  12. 제9항에 있어서,
    사용자 영역에 위치하며, 커널로 클래스 추가 시스템 호출과 아울러 추가할 동적 클래스를 정의하는 파라미터를 전달하는 클래스 추가 시스템 호출부와,
    커널 영역에 위치하며, 상기 클래스 추가 시스템 호출에 응답하여 상기 파라미터에 따라 새로운 동적 클래스와 그에 따른 우선순위 큐를 생성하는 클래스 추가부를 더 구비함을 특징으로 하는 적응적 큐 메커니즘.
  13. 제12항에 있어서, 상기 파라미터가, 상기 새로운 동적 클래스의 클래스 id(identifier)와, 상기 새로운 동적 클래스에 부여된 우선순위를 포함함을 특징으로 하는 적응적 큐 메커니즘.
  14. 제12항에 있어서,
    상기 사용자 영역에 위치하며, 상기 커널로 클래스 삭제 시스템 호출과 아울러 삭제할 동적 클래스를 지정하는 파라미터를 전달하는 클래스 삭제 시스템 호출 부와,
    상기 커널 영역에 위치하며, 상기 클래스 삭제 시스템 호출에 응답하여 상기 지정된 동적 클래스와 그에 따른 우선순위 큐를 삭제하는 클래스 삭제부를 더 구비함을 특징으로 하는 적응적 큐 메커니즘.
  15. 제12항에 있어서,
    상기 사용자 영역에 위치하며, 상기 커널로 클래스 삭제 시스템 호출과 아울러 삭제할 동적 클래스를 지정하는 파라미터를 전달하는 클래스 삭제 시스템 호출부와,
    상기 커널 영역에 위치하며, 상기 클래스 삭제 시스템 호출에 응답하여 상기 지정된 동적 클래스와 그에 따른 우선순위 큐를 삭제함과 아울러 삭제한 동적 클래스에 대응하는 필터를 삭제하는 클래스 삭제부를 더 구비함을 특징으로 하는 적응적 큐 메커니즘.
  16. 제14항 또는 제15항에 있어서, 상기 삭제할 동적 클래스를 지정하는 파라미터가, 상기 삭제할 동적 클래스의 클래스 id(identifier)를 포함함을 특징으로 하는 적응적 큐 메커니즘.
  17. 제9항 또는 제12항에 있어서,
    사용자 영역에 위치하며, 커널로 필터 추가 시스템 호출과 아울러 상기 추가할 필터를 정의하며 필터링 정보를 나타내는 파라미터를 전달하는 필터 추가 시스템 호출부와,
    커널 영역에 위치하며, 상기 필터 추가 시스템 호출에 응답하여 상기 추가할 필터에 관한 파라미터에 따라 새로운 필터를 상기 추가할 필터에 관한 파라미터에 의해 지정되는 동적 클래스에 연동되게 생성하는 필터 추가부를 구비함을 특징으로 하는 적응적 큐 메커니즘.
  18. 제17항에 있어서,
    상기 추가할 필터를 정의하는 파라미터가, 상기 새로운 필터에 대응하는 동적 클래스의 클래스 id(identifier)와, 상기 새로운 필터의 필터 id(identifier)를 포함하고,
    상기 필터링 정보 및 상기 전송 정보가, 각각, 소스 IP(Internet Protocol) 주소 및 목적지 IP(Internet Protocol) 주소, 소스 포트 번호 및 목적지 포트 번호, 프로토콜 정보를 포함함을 특징으로 하는 적응적 큐 메커니즘.
  19. 제17항에 있어서,
    상기 사용자 영역에 위치하며, 상기 커널로 필터 삭제 시스템 호출과 아울러 삭제할 필터를 지정하는 파라미터를 전달하는 필터 삭제 시스템 호출부와,
    상기 커널 영역에 위치하며, 상기 필터 삭제 시스템 호출에 응답하여 상기 지정된 필터를 삭제하는 필터 삭제부를 더 구비함을 특징으로 하는 적응적 큐 메커니즘.
  20. 제19항에 있어서, 상기 삭제할 필터를 지정하는 파라미터가, 상기 삭제할 필터에 대응하는 동적 클래스의 클래스 id(identifier)와, 상기 삭제할 필터의 필터 id(identifier)를 포함함을 특징으로 하는 적응적 큐 메커니즘.
KR1020050013886A 2005-02-19 2005-02-19 효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템 KR100651435B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020050013886A KR100651435B1 (ko) 2005-02-19 2005-02-19 효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템
US11/183,682 US20060187830A1 (en) 2005-02-19 2005-07-18 Adaptive queue mechanism for efficient realtime packet transfer and adaptive queue establishment system thereof
EP05019441A EP1694001A1 (en) 2005-02-19 2005-09-07 Adaptive queue method and system for realtime packet transfer
CNA2005100999859A CN1822564A (zh) 2005-02-19 2005-09-13 用于有效实时分组传送的自适应队列机制及其自适应队列建立系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050013886A KR100651435B1 (ko) 2005-02-19 2005-02-19 효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템

Publications (2)

Publication Number Publication Date
KR20060092757A true KR20060092757A (ko) 2006-08-23
KR100651435B1 KR100651435B1 (ko) 2006-11-29

Family

ID=35759210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050013886A KR100651435B1 (ko) 2005-02-19 2005-02-19 효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템

Country Status (4)

Country Link
US (1) US20060187830A1 (ko)
EP (1) EP1694001A1 (ko)
KR (1) KR100651435B1 (ko)
CN (1) CN1822564A (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101344014B1 (ko) * 2007-02-07 2014-01-06 삼성전자주식회사 제로 지연 큐잉 방법 및 그 시스템
US9019830B2 (en) * 2007-05-15 2015-04-28 Imagine Communications Corp. Content-based routing of information content
US8271683B2 (en) * 2008-03-21 2012-09-18 International Business Machines Corporation Content push service
CN102752808A (zh) * 2011-04-18 2012-10-24 宏碁股份有限公司 移动通讯装置与方法
WO2014075716A1 (en) 2012-11-14 2014-05-22 Telefonaktiebolaget L M Ericsson (Publ) Content based overload protection
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
IN2013CH05777A (ko) * 2013-12-13 2015-06-19 Indian Inst Technology Madras
US10380486B2 (en) * 2015-01-20 2019-08-13 International Business Machines Corporation Classifying entities by behavior
CN105871780B (zh) * 2015-01-21 2020-01-03 杭州迪普科技股份有限公司 会话日志发送方法及装置
CN104683353B (zh) * 2015-03-18 2017-10-24 大连理工大学 一种车联网安全信息自适应通信系统
US11074211B2 (en) * 2018-06-12 2021-07-27 Intel Corporation Management of priority of data transmission on a bus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286052B1 (en) * 1998-12-04 2001-09-04 Cisco Technology, Inc. Method and apparatus for identifying network data traffic flows and for applying quality of service treatments to the flows
US7010611B1 (en) * 1999-12-21 2006-03-07 Converged Access, Inc. Bandwidth management system with multiple processing engines
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
US7092357B1 (en) * 2001-11-13 2006-08-15 Verizon Services Corp. Anti-flooding flow-control methods and apparatus
US7239639B2 (en) * 2001-12-27 2007-07-03 3Com Corporation System and method for dynamically constructing packet classification rules
US6633835B1 (en) * 2002-01-10 2003-10-14 Networks Associates Technology, Inc. Prioritized data capture, classification and filtering in a network monitoring environment
US20060092963A1 (en) * 2004-10-28 2006-05-04 Ajay Bakre Architecture and method for efficient application of QoS in a WLAN

Also Published As

Publication number Publication date
KR100651435B1 (ko) 2006-11-29
CN1822564A (zh) 2006-08-23
US20060187830A1 (en) 2006-08-24
EP1694001A1 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
KR100651435B1 (ko) 효율적인 실시간 패킷 전송을 위한 적응적 큐 메커니즘과그의 적응적 큐 설정 시스템
US7701849B1 (en) Flow-based queuing of network traffic
US6980555B2 (en) Policy change characterization method and apparatus
US7936770B1 (en) Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
EP1303087B1 (en) Dynamic queue allocation and de-allocation
CA2358525C (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US8619793B2 (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US8230110B2 (en) Work-conserving packet scheduling in network devices
US7948976B2 (en) Efficient management of queueing resources for switches
US8553543B2 (en) Traffic shaping method and device
US6795870B1 (en) Method and system for network processor scheduler
US20060174035A1 (en) System, device, &amp; method for applying COS policies
CN106453138B (zh) 一种报文处理方法和装置
US20120324580A1 (en) Method and Apparatus for Selective E-Mail Processing
US20020178282A1 (en) Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
EP3836498B1 (en) Combined input and output queue for packet forwarding in network devices
WO2019072072A1 (zh) 一种拥塞流识别方法及网络设备
US20050068798A1 (en) Committed access rate (CAR) system architecture
JP2003319009A (ja) データ通信制御方法、データ通信制御システム、データ送出機構、データ通信制御プログラム、およびデータ通信制御プログラム記録媒体
CN116582493A (zh) 数据中心网络链路的选取方法、装置、电子设备
US20080267074A1 (en) METHOD OF SETING QoS PACKET FLOW AND HANDLING QoS PACKET IN PACKET SWITCHING SYSTEM
JP6553563B2 (ja) ゲートウェイルータ、通信システム、トラヒックフロー制御方法及びプログラム
JP2002344509A (ja) ルータとパケットの読み出しレート制御方法およびその処理プログラム
CN110753007A (zh) 基于QoS的流策略配置方法和装置
JP2002305538A (ja) 通信品質制御方法、サーバ及びネットワークシステム

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee