KR100987388B1 - 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치 - Google Patents

동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR100987388B1
KR100987388B1 KR1020080071910A KR20080071910A KR100987388B1 KR 100987388 B1 KR100987388 B1 KR 100987388B1 KR 1020080071910 A KR1020080071910 A KR 1020080071910A KR 20080071910 A KR20080071910 A KR 20080071910A KR 100987388 B1 KR100987388 B1 KR 100987388B1
Authority
KR
South Korea
Prior art keywords
packet
time
packets
real
priority
Prior art date
Application number
KR1020080071910A
Other languages
English (en)
Other versions
KR20100010849A (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 KR1020080071910A priority Critical patent/KR100987388B1/ko
Publication of KR20100010849A publication Critical patent/KR20100010849A/ko
Application granted granted Critical
Publication of KR100987388B1 publication Critical patent/KR100987388B1/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/568Calendar queues or timing rings
    • 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

본 발명은 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치를 개시한다.
본 발명의 동적 타임슬롯을 가지는 캘린더 큐 스케줄러는 입력패킷을 실시간 패킷과 비실시간 패킷으로 분류하여 실시간 패킷의 입력주기와 스케줄러의 타임슬롯을 동기화시킨 다음에 입력패킷들의 출력시간과 우선순위를 결정하고 스케줄러에서 결정된 패킷들의 출력시간과 우선순위에 따라서 패킷을 전송하기 때문에 실시간 패킷의 입력주기를 유지하면서 효과적으로 패킷을 전송할 수 있다.
캘린더 큐, 스케줄러, 스케줄링, 동적 타임슬롯

Description

동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치{Method and apparatus for calendar queue scheduling with dynamic time-slot}
본 발명은 다수의 입력포트로부터 입력된 패킷들을 다수의 출력포트로 전달하는 기능을 수행하는 패킷 스케줄러의 스케줄링 알고리즘에 관한 것으로서, 보다 상세하게, 본 발명은 실시간 패킷과 비실시간 패킷을 효율적으로 전송하기 위하여 캘린더 큐 스케줄러의 타임슬롯 사이즈를 최적화시키는 캘린더 큐 스케줄링 방법 및 장치에 관한 것이다.
현재 데이터 패킷망에서는 다수의 사용자들이 웹 서핑, 전자 우편, 파일 전송 등의 일반적인 Best Effort 서비스뿐만이 아니라 VoIP(Voice over IP), VoD(Video on Demand), IPTV(Internet Protocol Television) 등의 회선 교환급 실시간 처리를 요구하는 다양한 멀티미디어 서비스를 이용한다. 따라서 데이터 패킷망에서 적용되는 스위치들은 일반적인 데이터 전송을 위한 패킷 교환급 비실시간 패킷과 다양한 멀티미디어 서비스를 위한 회선 교환급 실시간 패킷을 구분하고 각 트래픽의 특성에 따라서 차별적으로 처리해주는 장치가 필요하다. 그러므로 데이터 패킷망에서 사용되는 스위치는 일정한 시간 간격을 가지고 입력되는 실시간 회선 교환 트래픽의 전송 특성을 보장하고 비실시간 패킷 교환 트래픽보다 높은 우선순위와 정확한 시간 간격을 유지하기 위하여 비실시간 패킷 교환 트래픽보다 엄격하게 출력시간을 결정하고 결정된 결과에 따라서 정확한 시간에 우선순위에 따라서 효율적으로 전송할 수 있는 패킷 스케줄러가 필수적으로 요구된다.
일반적인 스위치에서 패킷을 효율적으로 전송하기 위하여 다양한 구조를 가지는 스케줄러들이 사용되었다. 현재 사용되고 있는 대표적인 스케줄러 구조는 가상 출력 큐(Virtual Output Queue)를 이용하는 방식과 캘린더 큐(Calender Queue)를 이용하는 방식이 있다.
가상 출력 큐(Virtual Output Queue)를 이용하는 방식은 인터넷 패킷(IP)을 전송하기 위한 대표적인 스케줄링 방식으로서 입력 포트마다 출력포트별 가상의 출력 큐를 가지고 우선순위에 의해서 인터넷 패킷을 전송한다. 이러한 가상 출력 큐 스케줄링 방식은 입력 큐잉 방식에서 발생하는 헤드 오브 라인 (Head of Line) 블로킹에 대한 문제를 해결할 수 있다는 장점을 가지고 있지만 실시간 트래픽과 같이 정확한 출력시간에 맞추어 패킷을 전송하는 것은 불가능하다는 단점을 가진다.
캘린더 큐(Calendar Queue)를 이용하는 방식은 ATM Cell을 전송하기 위한 대표적인 스케줄링 방식으로서 캘린더 메모리의 출력 타임슬롯에 출력될 ATM Cell이 저장되고 해당 타임슬롯이 선택되었을 때 ATM Cell을 전송할 수 있으므로 실시간 트래픽과 같이 정확한 출력시간에 맞추어 패킷을 전송할 수 있다는 장점을 가진다. 이러한 캘린더 큐 스케줄러를 이용한 스케줄링 방식은 패킷의 출력시간을 조정하여 전송할 수 있으며 기존 방식의 캘린더 큐 스케줄러는 일정한 크기를 가지므로 ATM Cell과 같은 고정길이를 가지는 패킷의 전송에 유리하다는 장점을 가지고 있지만 인터넷 패킷과 같은 가변길이를 가지는 패킷의 전송에는 비효율적이라는 단점을 가진다.
이에 따라 당 기술분야에서는 주기적으로 입력되는 인터넷 패킷을 효율적으로 전송하기 위하여 패킷의 속성에 따라서 차등적인 출력시간과 우선순위를 부여하고 전송효율을 극대화시키기 위하여 타임슬롯의 사이즈를 자동적으로 조절할 수 있는 알고리즘의 개발이 요구된다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로서, 스위치의 입력패킷을 실시간 패킷과 비실시간 패킷으로 분류하여 실시간 패킷의 입력주기를 유지하고 가변 길이를 가지는 인터넷 패킷을 효율적으로 전달하도록 주기패킷의 입력주기에 따라 캘린더 큐 스케줄러의 타임슬롯을 자동적으로 조절하는 방식을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기의 기술적 과제를 달성하기 위한 본 발명의 캘린더 큐 스케줄링 방법은 하나 이상의 포트로 수신되는 패킷을 실시간 패킷과 비실시간 패킷으로 분류하는 단계; 상기 실시간 패킷의 입력주기에 캘린더 큐의 타임슬롯을 동기화하는 단계; 상기 패킷의 우선 순위를 기초로 패킷의 출력시각을 계산하는 단계; 및 상기 패킷의 출력시각에 따라 상기 타임슬롯에 패킷을 할당하는 단계;를 포함할 수 있다.
상기의 기술적 과제를 달성하기 위한 본 발명의 캘린더 큐 스케줄링 장치는 하나 이상의 포트로 수신되는 패킷을 실시간 패킷과 비실시간 패킷으로 분류하는 패킷 분류부; 상기 실시간 패킷의 입력주기에 캘린더 큐의 타임슬롯을 동기화하는 제어부; 상기 패킷의 우선 순위를 기초로 패킷의 출력시각을 계산하는 출력시각 계산부; 및 상기 패킷의 출력시각에 따라 상기 타임슬롯에 패킷을 할당하는 패킷 할당부;를 포함할 수 있다.
상기의 기술적 과제를 달성하기 위한 본 발명은 캘린더 큐 스케줄링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 발명의 동적 타임슬롯을 가지는 캘린더 큐 스케줄러는 입력패킷을 실시간 패킷과 비실시간 패킷으로 분류하여 실시간 패킷의 입력주기와 스케줄러의 타임슬롯을 동기화시킨 다음에 입력패킷들의 출력시간과 우선순위를 결정하고 스케줄러에서 결정된 패킷들의 출력시간과 우선순위에 따라서 패킷을 전송하기 때문에 실시간 패킷의 입력주기를 유지하면서 효과적으로 패킷을 전송할 수 있다.
또한 본 발명은 미리 정해진 패킷의 출력시간에 대해 우선순위를 고려하여 패킷을 스위칭하여 스케줄링하고, 주기패킷의 입력주기에 따라 타임슬롯을 자동적으로 조절하기 때문에 주기보존과 전송효율을 극대화시킬 수 있다.
이하 본 발명의 바람직한 실시예가 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 명세서에 기재된 "…부", "…기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 발명은 패킷 스위치 내부에서 패킷이 처리되는 시간의 차이를 나타내는 지연 변이(Delay Variance)를 최소화시키기 위하여 원하는 출력시간에 패킷을 전송할 수 있는 캘린더 큐 스케줄러에서 주기적으로 입력되는 패킷을 효율적으로 전송하기 위하여 패킷의 속성에 따라서 차등적인 출력시간과 우선순위를 부여하고 전송효율을 극대화시키기 위하여 주기패킷의 입력주기에 따라서 타임슬롯의 사이즈를 자동적으로 조절하는 방안이다.
본 발명은 입력주기와 패킷길이가 일정한 실시간 패킷과 입력주기와 패킷길이가 일정하지 않은 비실시간 패킷들이 혼합된 형태로 들어오는 입력 트래픽에서 실시간 패킷과 비실시간 패킷을 분류하고, 캘린더 큐 스케줄러의 타임슬롯 사이즈를 동적으로 최적화시켜 실시간 패킷의 입력주기를 일정하게 유지시키면서 실시간 패킷과 비실시간 패킷을 효율적으로 전송한다.
도 1은 캘린더 큐의 기본 개념을 도시한 개념도이다.
도 1을 참조하면, 캘린더 큐는 다수의 타임슬롯으로 구성된다. 캘린더 큐의 전체주기는 하나의 타임슬롯이 의미하는 단위 시간의 총합으로 이루어진다. 일반적으로 전체주기를 year(101) 라고 부르고, 하나의 타임슬롯은 day(102) 라고 부른다. 따라서 캘린더 큐를 구성하는 모든 day(102) 들을 합쳐서 하나의 year(101) 를 구성한다.
캘린더 큐는 현재시각(TNOW)(103)이 타임슬롯이 나타내는 시각(T0, T1, T2, …, T5)과 일치하는 경우에 해당 타임슬롯 동안에 우선순위에 의하여 이벤트를 수행한다. 예를 들어 현재시각(TNOW)(103)이 타임슬롯(T1)(104)과 일치하는 순간에 타임슬롯(T1)(104)에 할당된 이벤트 A(106)와 이벤트 B(107)를 수행한다. 시간이 경과하여 현재시각(TNOW)이 타임슬롯(T2)과 일치하는 순간에는 타임슬롯(T2)에 할당된 이벤트가 없으므로 아무것도 수행하지 않는다.
캘린더 큐는 원하는 시각에 이벤트를 수행하도록 조정하는 것이 가능하다. 따라서 이러한 개념을 이용하여 원하는 시각에 패킷을 전송할 수 있으므로 패킷 전송을 위한 스위치의 패킷 스케줄러로서 사용이 가능하다.
도 2는 캘린더 큐 스케줄러(200)의 동작을 설명하기 위한 일 실시예로서의 블록도이다.
입력포트0(202)으로부터 플로우 A, 입력포트1(203)로부터 플로우 B, 그리고 입력포트2(204)로부터 플로우 C가 입력되고, 출력포트3(205)으로 패킷이 출력되는 것을 가정한다. 특히 입력포트0(202)으로부터 입력되는 플로우 A는 일정한 간격을 가지고 주기적으로 들어오는 패킷의 흐름으로써, 플로우 B와 플로우 C에 비하여 우선순위가 높다고 가정한다. 입력주기가 일정하지 않은 플로우 B와 플로우 C 간에는 먼저 들어온 패킷이 우선순위가 높다고 가정한다. 따라서 선입선출의 규칙에 의해 먼저 들어온 패킷이 먼저 출력될 수 있다. 한편, 들어온 시간이 동일한 패킷 간에는 패킷 사이즈 등의 설정 조건에 따라 우선순위가 결정될 수 있다.
도 3a 내지 도 3c는 캘린더 큐의 1 year가 10 개의 타임슬롯으로 구성된 경우, 도 2의 캘린더 큐 스케줄러(200) 내부의 동작 개념도를 도시한다.
도 3a를 참조하면, 1 Year는 10 개의 Day로 구성되어 있으므로, 1 Year의 시간을 3000 이라고 가정하면 1 Day의 시간은 300이므로, 1 Day 동안에 전송할 수 있는 패킷의 사이즈는 300 이 된다. 플로우 A, 플로우 B, 플로우 C의 패킷 사이즈는 각각 200, 200, 300이다.
도 3a와 같이 각 패킷들의 출력시각을 나타내는 TTS(Time to send)가 결정된 경우에 도 3b와 같이 각 패킷들은 패킷의 출력시각을 나타내는 타임슬롯에 할당된다. 따라서 타임슬롯 T0에 패킷 A1, B1, C1이 할당되고, 타임슬롯 T2에 패킷 A2가 할당되고, 타임슬롯 T3에 패킷 B2, C2가 할당되고, 타임슬롯 T5에 패킷 A3가 할당되고, 타임슬롯 T6에 패킷 B3, C3가 할당되고, 타임슬롯 T7에 패킷 A4가 할당된다.
캘린더 큐 스케줄러(200)는 현재시각을 나타내는 TNOW와 타임슬롯 각각의 개별시각(T0, T1, T2, … , T9)이 일치하는 경우에 일치된 타임슬롯에 할당된 패킷들을 타임슬롯별 할당된 전송시간(사이즈 300) 동안에 우선순위에 따라서 전송한다. 그러나 현재시각을 나타내는 TNOW와 타임슬롯 T0 가 일치하는 경우에 첫번째 패킷(사이즈 200)(A1)은 전송이 가능하지만, 두번째 패킷(사이즈 200)(B1)과 세번째 패킷(사이즈 300)(C1)은 타임슬롯별 전송시간(사이즈 300)의 제약에 의해 타임슬롯 T0에서 전송이 불가능하다. 따라서 각 패킷의 출력시간이 재조정될 필요가 있다. 패킷의 우선순위를 고려하면 두번째 패킷(사이즈 200)(B1)과 세번째 패킷(사이즈 300)(C1)은 각각 타임슬롯 T1과 타임슬롯 T3 동안에 전송이 가능하다.
도 3c는 최종적으로 타임슬롯 사이즈 및 우선순위를 고려하여 패킷의 출력시간을 조정함으로써 캘린더 큐 스케줄러(200)에 의하여 출력된 패킷들을 보여준다.
도 3c를 참조하면 타임슬롯의 개수가 너무 많이 설정된 경우는 다음과 같은 단점들을 가진다. 첫번째로는 타임슬롯의 개수가 증가하는 만큼 하나의 타임슬롯이 수용 가능한 전체 패킷의 사이즈가 작아지므로 비효율적이라는 단점을 가진다. 두번째로는 타임슬롯의 개수가 증가하는 만큼 패킷들을 관리하기 위하여 사용하는 패킷 포인터의 개수 또한 증가하기 때문에 구조가 복잡해진다는 단점을 가진다. 세번째로는 주기적인 패킷의 입력주기와 동기가 맞지 않는 경우에 패킷의 주기성을 유지하기 어렵다는 단점을 가진다.
도 4a 내지 도 4d는 캘린더 큐의 1 year가 3 개의 타임슬롯으로 구성된 경우, 도 2의 캘린더 큐 스케줄러(200) 내부의 동작 개념도를 도시한다.
도 4a를 참조하면, 1 Year는 3 개의 Day로 구성되어 있으므로 1 Year 의 시 간을 3000 이라고 가정하면 1 Day의 시간은 1000이므로, 1 Day 동안에 전송할 수 있는 패킷의 사이즈는 1000 이 된다. 플로우 A, 플로우 B, 플로우 C의 패킷 사이즈는 각각 200, 200, 300이다.
도 4a와 같이 각 패킷들의 출력시각을 나타내는 TTS(Time to send)가 결정된 경우, 도 4b와 같이 각 패킷들은 패킷의 출력시각을 나타내는 타임슬롯에 할당된다. 따라서 타임슬롯 T0에 패킷 A1, B1, C1, A2가 할당되고, 타임슬롯 T1에 패킷 B2, C2, A3, C3, B3가 할당되고, 타임슬롯 T2에 패킷 A4가 할당된다. 캘린더 큐 스케줄러(200)는 우선순위가 높은 패킷이 먼저 전송되기 때문에, 도 4c와 같이 우선순위별로 패킷의 전송순서를 재배열한다. 따라서 타임슬롯 T0에 패킷 A1, A2, B1, C1가 차례로 배열되고, 타임슬롯 T1에 패킷 A3, B2, C2, C3, B3가 차례로 배열되고, 타임슬롯 T2에 패킷 A4가 배열된다. 캘린더 큐 스케줄러는 현재시각을 나타내는 TNOW와 타임슬롯 각각의 개별시각(T0, T1, T2)이 일치하는 경우에 일치된 타임슬롯에 할당된 패킷들을 타임슬롯별 할당된 전송시간(사이즈 1000) 동안에 우선순위에 따라서 전송한다. 현재시각을 나타내는 TNOW와 타임슬롯 T1이 일치하는 경우에 첫번째 패킷(사이즈 200)(A3)부터 네번째 패킷(사이즈 300)(C3)까지는 전송이 가능하지만 다섯번째 패킷(사이즈 200)(B3)은 타임슬롯별 전송시간(사이즈 1000)의 제약에 의해 타임슬롯 T1에서 전송이 불가능하다. 따라서 각 패킷의 출력시간이 재조정될 필요가 있다. 패킷의 우선순위를 고려하면 다섯번째 패킷(사이즈 200)(B3)은 타임슬롯 T2 동안에 전송이 가능하다. 타임슬롯 T2에는 우선순위가 높은 패킷(A4)이 이미 할당되어 있으므로, 다섯번째 패킷(사이즈 200)(B3)은 패킷(A4) 이후 전송될 수 있다.
도 4d는 최종적으로 캘린더 큐 스케줄러(200)에 의하여 출력된 패킷들을 보여준다. 도 4d를 참조하면, 타임슬롯의 개수를 너무 적게 설정하여 타임슬롯의 주기가 주기적으로 들어오는 패킷의 입력주기보다 크기 때문에, 패킷의 주기성을 유지하기 어렵다는 단점을 가진다.
도 5a 내지 도 5c는 캘린더 큐의 1 year가 4 개의 타임슬롯으로 구성된 경우, 본 발명의 일 실시예에 따른 도 2의 캘린더 큐 스케줄러(200)의 동작 개념도를 도시한다.
도 5a를 참조하면, 타임슬롯 주기가 플로우 A의 패킷 입력주기와 동일하게 구성되어, 1 year가 4 개의 타임슬롯으로 구성되어 있다. 1 Year는 4 개의 Day로 구성되어 있으므로 1 Year 의 시간을 3000 이라고 가정하면 1 Day의 시간은 750이 되므로, 1 Day 동안에 전송할 수 있는 패킷의 사이즈는 750 이 된다. 플로우 A, 플로우 B, 플로우 C의 패킷 사이즈는 각각 200, 200, 300이다.
도 5a와 같이 각 패킷들의 출력시각을 나타내는 TTS(Time to send)가 결정된 경우, 도 5b와 같이 각 패킷들은 패킷의 출력시각을 나타내는 타임슬롯에 할당된다. 따라서 타임슬롯 T0에 패킷 A1, B1, C1이 할당되고, 타임슬롯 T1에 패킷 A2, B2, C2가 할당되고, 타임슬롯 T2에 A3, C3, B3가 할당되고, 타임슬롯 T3에 패킷 A4 가 할당된다.
캘린더 큐 스케줄러(200)는 현재시각을 나타내는 TNOW와 타임슬롯 각각의 개별시각(T0, T1, T2, T3)이 일치하는 경우에 일치된 타임슬롯에 할당된 패킷들을 타임슬롯별 할당된 전송시간(사이즈 750) 동안에 우선순위에 따라서 전송한다. 각각의 타임슬롯들(T0, T1, T2, T3)에 할당된 패킷들은 대역을 초과하지 않으므로 패킷의 손실 없이 미리 설정된 출력시각에 정확하게 패킷을 전송할 수 있다.
도 5c는 최종적으로 캘린더 큐 스케줄러(200)에 의하여 출력된 패킷들을 보여준다. 도 5c를 참조하면, 타임슬롯의 주기를 주기적으로 들어오는 패킷의 입력주기와 동일하게 설정한 경우에는 주기적인 패킷의 입력주기와 동기가 맞으므로 패킷의 주기성을 유지하기에 용이하다는 장점을 가진다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 캘린더 큐 스케줄러(200)에 두 개 이상의 주기 패킷들이 입력되는 경우의 동작 개념도를 보여준다.
도 6a를 참조하면, 캘린더 큐 스케줄러(200)에 플로우 A, 플로우 B, 그리고 플로우 C 등 세 개의 플로우가 입력된다. 플로우 A 는 입력주기가 800 인 주기패킷, 플로우 B 는 입력주기가 1600 인 주기패킷, 그리고 플로우 C 는 입력주기가 일정하지 않은 비주기 패킷들로 구성된다.
캘린더 큐 스케줄러(200)는 수신된 패킷의 주기와 전달효율을 극대화시키기 위하여 두 개 이상의 주기패킷이 입력되는 경우에 입력주기들의 최대 공약수를 구하여, 최대 공약수 값을 타임슬롯의 주기로 설정하고, 타임슬롯에 패킷을 할당한 다. 플로우 A의 입력주기는 800 이고, 플로우 B의 입력주기는 1600 이므로 두 플로우의 최대 공약수인 800 을 타임슬롯의 주기로 설정하고 패킷들을 타임슬롯에 할당하여 전송한다.
도 6b는 최종적으로 캘린더 큐 스케줄러에 의하여 출력된 패킷들을 보여준다. 도 6b와 같이 두 플로우의 최대 공약수인 800 을 타임슬롯의 주기로 설정하고, 먼저 입력되는 플로우 A의 패킷을 플로우 B의 패킷에 우선하고, 플로어 A 및 B의 패킷이 입력주기가 일정하지 않은 플로우 C의 패킷보다 우선하는 방식으로 패킷을 각 타임슬롯(사이즈 800)에 할당한다. 따라서, 타임슬롯 T0에 패킷 A1, B1, C1이 차례로 할당되고, 타임슬롯 T1에 패킷 A2, C2, C3가 차례로 할당되고, 타임슬롯 T2에 패킷 A3, B2, C4가 차례로 할당되고, 타임슬롯 T3에 패킷 A2, C5, C6이 차례로 할당되고, 동일한 방식으로 이후 타임슬롯에 패킷들이 차례로 할당된다.
도 6b의 패킷 출력을 참조하면, 플로우 A와 플로우 B의 입력주기가 보장되고 있음을 알 수 있다. 따라서 본 발명이 적용된 스케줄러에 다수개의 주기패킷들이 입력되는 경우에는 입력주기들의 최대 공약수를 구하고 패킷을 할당해주기 때문에 주기패킷들의 주기성을 유지하기에 용이하다는 장점을 가진다.
도 7은 본 발명의 일 실시예에 따른 캘린더 큐 스케줄러에서 스케줄링 방법을 설명하는 흐름도이다.
캘린더 큐 스케줄러는 하나 이상의 포트로 입력되는 하나 이상의 패킷 플로우로부터 입력패킷을 수신한다(S701).
캘린더 큐 스케줄러는 입력패킷을 분석하고(S702), 입력패킷을 실시간 패킷과 비실시간 패킷으로 분류한다(S703). 캘린더 큐 스케줄러는 인터넷 패킷의 4계층 포트 정보(TCP/UDP 포트 번호)를 기초로 패킷을 분류할 수 있다.
캘린더 큐 스케줄러는 입력패킷이 실시간 패킷인 경우에 입력패킷의 입력주기를 측정하거나 입력주기 정보를 추출한다(S704). 입력주기는 실시간 패킷의 타임 스탬프 정보로부터 측정되거나, 실시간 패킷의 페이로드에 삽입된 주기 정보로부터 추출될 수 있다.
캘린더 큐 스케줄러는 실시간 패킷의 입력주기와 캘린더 큐 스케줄러의 타임슬롯을 동기화시킨다(S705). 이로써 실시간 패킷의 입력주기와 캘린더 큐 스케줄러의 타임슬롯 주기가 동일해진다. 실시간 패킷의 종류가 둘 이상이면, 둘 이상의 패킷 입력주기들의 최대 공약수 값에 타임 슬롯이 동기화된다.
캘린더 큐 스케줄러는 입력패킷의 출력시각(TTS)을 계산한다(S706). 캘린더 큐 스케줄러는 패킷의 우선 순위 및 타임슬롯 사이즈(타임슬롯 시간 동안 전송할 수 있는 패킷 사이즈)를 기초로 패킷의 출력시각을 계산한다. 패킷의 우선 순위는 실시간 패킷이 비실시간 패킷에 우선하고, 우선 순위가 동일한 패킷 간에는 선입선출 규칙에 따라 먼저 입력된 패킷이 우선하는 방식으로 결정될 수 있고, 입력 순서가 동일한 패킷 간에는 패킷 사이즈 등 다른 설정 조건에 따라 결정될 수 있다.
캘린더 큐 스케줄러는 계산된 입력패킷의 출력시각에 해당하는 캘린더 큐(CQ)의 타임슬롯(TS)에 입력패킷을 할당한다(S707).
캘린더 큐 스케줄러는 타임슬롯과 현재시각이 일치하는 경우에 타임슬롯에 할당된 패킷들을 전송한다(S708).
도 8은 본 발명의 일 실시예에 따른 캘린더 큐 스케줄링 장치의 내부 구성을 개략적으로 도시한 블록도이다. 이하에서는 전술된 캘린더 큐 스케줄링 방법에서의 각 동작과 동일한 본 발명의 캘린더 큐 스케줄링 장치의 각 내부 구성의 동작에 대한 상세한 설명은 생략하겠다.
도 8을 참조하면, 본 발명의 캘린더 큐 스케줄링 장치(800)는 패킷 분류부(810), 입력주기 결정부(830), 제어부(850), 출력시각 결정부(870) 및 패킷 할당부(890)를 포함한다.
패킷 분류부(810)는 하나 이상의 포트로 수신되는 패킷을 실시간 패킷과 비실시간 패킷으로 분류한다. 패킷 분류부(810)는 인터넷 패킷의 4계층 포트 정보(TCP/UDP 포트 번호)를 기초로 패킷을 실시간 패킷과 비실시간 패킷으로 분류할 수 있다.
입력주기 결정부(830)는 실시간 패킷의 타임 스탬프 정보 또는 페이로드에 삽입된 주기 정보로부터 입력주기를 결정하고, 실시간 패킷의 종류가 둘 이상이면 둘 이상의 패킷 입력주기들의 최대 공약수 값을 계산한다.
제어부(850)는 실시간 패킷의 입력주기에 캘린더 큐의 타임슬롯을 동기화하여 패킷 입력주기와 타임슬롯 주기를 동일하게 한다. 제어부(850)는 실시간 패킷의 종류가 둘 이상이면 입력주기 결정부(830)에서 계산된 입력주기의 최대 공약수 값에 타임슬롯을 동기화한다.
출력시각 계산부(870)는 패킷의 우선 순위를 기초로 패킷의 출력시각을 계산 한다. 출력시각 계산부(870)는 실시간 패킷이 비실시간 패킷에 우선하고, 우선 순위가 동일한 패킷 간에는 선입력 패킷이 우선하는 방식으로 패킷의 우선 순위를 결정한다.
패킷 할당부(890)는 패킷의 출력시각에 따라 타임슬롯에 패킷을 할당한다. 타임슬롯과 현재 시각이 일치하면 타임슬롯에 할당된 패킷을 순서대로 전송한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
지금까지 본 발명에 대하여 바람직한 실시예들을 중심으로 살펴보았다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.
그러므로 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명 이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 따라서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 캘린더 큐의 기본 개념을 도시한 개념도이다.
도 2는 캘린더 큐 스케줄러의 동작을 설명하기 위한 일 실시예로서의 블록도이다.
도 3a 내지 도 3c는 캘린더 큐의 1 year가 10 개의 타임슬롯으로 구성된 경우, 도 2의 캘린더 큐 스케줄러의 동작 개념도이다.
도 4a 내지 도 4d는 캘린더 큐의 1 year가 3 개의 타임슬롯으로 구성된 경우, 도 2의 캘린더 큐 스케줄러의 동작 개념도이다.
도 5a 내지 도 5c는 캘린더 큐의 1 year가 4 개의 타임슬롯으로 구성된 경우, 본 발명의 일 실시예에 따른 도 2의 캘린더 큐 스케줄러의 동작 개념도이다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 캘린더 큐 스케줄러에 두 개 이상의 주기 패킷들이 입력되는 경우의 동작 개념도를 보여준다.
도 7은 본 발명의 일 실시예에 따른 캘린더 큐 스케줄러에서 스케줄링 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 캘린더 큐 스케줄링 장치의 내부 구성을 개략적으로 도시한 블록도이다.

Claims (10)

  1. 하나 이상의 포트로 수신되는 패킷을 실시간 패킷과 비실시간 패킷으로 분류하는 단계;
    상기 실시간 패킷의 입력주기에 캘린더 큐의 타임슬롯을 동기화하는 단계;
    상기 패킷의 우선 순위를 기초로 패킷의 출력시각을 계산하는 단계; 및
    상기 패킷의 출력시각에 따라 상기 타임슬롯에 패킷을 할당하는 단계;를 포함하는 것을 특징으로 하는 캘린더 큐 스케줄링 방법.
  2. 제1항에 있어서, 상기 타임 슬롯 동기화 단계는,
    상기 실시간 패킷의 패킷 입력주기에 따른 종류가 둘 이상이면, 둘 이상의 패킷 입력주기들의 최대 공약수 값에 타임 슬롯을 동기화하는 단계;를 포함하는 것을 특징으로 하는 캘린더 큐 스케줄링 방법.
  3. 제1항에 있어서,
    상기 입력주기는 상기 실시간 패킷의 타임 스탬프 정보로부터 측정하는 것을 특징으로 하는 캘린더 큐 스케줄링 방법.
  4. 제1항에 있어서,
    상기 입력주기는 상기 실시간 패킷의 페이로드에 삽입된 주기 정보로부터 추 출되는 것을 특징으로 하는 캘린더 큐 스케줄링 방법.
  5. 제1항에 있어서, 상기 패킷 분류 단계는,
    인터넷 패킷의 4계층 포트 정보를 기초로 패킷을 실시간 패킷과 비실시간 패킷으로 분류하는 단계;를 포함하는 것을 특징으로 하는 캘린더 큐 스케줄링 방법.
  6. 제1항에 있어서,
    실시간 패킷이 비실시간 패킷에 우선하고, 우선 순위가 동일한 패킷 간에는 선입력 패킷이 우선하는 방식으로 상기 패킷의 우선 순위를 결정하는 것을 특징으로 하는 캘린더 큐 스케줄링 방법.
  7. 하나 이상의 포트로 수신되는 패킷을 실시간 패킷과 비실시간 패킷으로 분류하는 패킷 분류부;
    상기 실시간 패킷의 입력주기에 캘린더 큐의 타임슬롯을 동기화하는 제어부;
    상기 패킷의 우선 순위를 기초로 패킷의 출력시각을 계산하는 출력시각 계산부; 및
    상기 패킷의 출력시각에 따라 상기 타임슬롯에 패킷을 할당하는 패킷 할당부;를 포함하는 것을 특징으로 하는 캘린더 큐 스케줄링 장치.
  8. 제7항에 있어서,
    상기 실시간 패킷의 타임 스탬프 정보 또는 페이로드에 삽입된 주기 정보로부터 입력주기를 결정하고, 상기 실시간 패킷의 패킷 입력주기에 따른 종류가 둘 이상이면 둘 이상의 패킷 입력주기들의 최대 공약수 값을 계산하는 입력주기 결정부;를 더 포함하는 것을 특징으로 하는 캘린더 큐 스케줄링 장치.
  9. 제7항에 있어서, 상기 패킷 분류부는,
    인터넷 패킷의 4계층 포트 정보를 기초로 패킷을 실시간 패킷과 비실시간 패킷으로 분류하는 것을 특징으로 하는 캘린더 큐 스케줄링 장치.
  10. 제7항에 있어서, 상기 출력시각 계산부는,
    실시간 패킷이 비실시간 패킷에 우선하고, 우선 순위가 동일한 패킷 간에는 선입력 패킷이 우선하는 방식으로 상기 패킷의 우선 순위를 결정하는 것을 특징으로 하는 캘린더 큐 스케줄링 장치.
KR1020080071910A 2008-07-23 2008-07-23 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치 KR100987388B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080071910A KR100987388B1 (ko) 2008-07-23 2008-07-23 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080071910A KR100987388B1 (ko) 2008-07-23 2008-07-23 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100010849A KR20100010849A (ko) 2010-02-02
KR100987388B1 true KR100987388B1 (ko) 2010-10-12

Family

ID=42085428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080071910A KR100987388B1 (ko) 2008-07-23 2008-07-23 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100987388B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102269068B1 (ko) 2017-03-10 2021-06-24 한국전자통신연구원 스위칭을 위한 스케줄링 방법 및 스케줄러
CN113612700B (zh) * 2021-08-12 2023-11-14 北京邮电大学 一种低时延零抖动的混合时间敏感流量调度方法及装置
CN117812022A (zh) * 2024-02-28 2024-04-02 上海励驰半导体有限公司 时间敏感网络的时隙调度方法、装置及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477144B1 (en) 1998-09-10 2002-11-05 Nortel Networks Limited Time linked scheduling of cell-based traffic
KR20030056287A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 캘린더를 이용한 비동기전송모드 셀 스케쥴링 장치 및 그방법
KR20040105973A (ko) * 2003-06-10 2004-12-17 한국전자통신연구원 캘린더 메모리를 이용한 패킷 스케줄러와 그 구동 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477144B1 (en) 1998-09-10 2002-11-05 Nortel Networks Limited Time linked scheduling of cell-based traffic
KR20030056287A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 캘린더를 이용한 비동기전송모드 셀 스케쥴링 장치 및 그방법
KR20040105973A (ko) * 2003-06-10 2004-12-17 한국전자통신연구원 캘린더 메모리를 이용한 패킷 스케줄러와 그 구동 방법
KR100542433B1 (ko) 2003-06-10 2006-01-11 한국전자통신연구원 패킷 스케줄링 장치 및 패킷 스케줄링 방법

Also Published As

Publication number Publication date
KR20100010849A (ko) 2010-02-02

Similar Documents

Publication Publication Date Title
US20070076766A1 (en) System And Method For A Guaranteed Delay Jitter Bound When Scheduling Bandwidth Grants For Voice Calls Via A Cable Network
CN112202685A (zh) 报文转发方法、转发设备和网络设备
US20050047425A1 (en) Hierarchical scheduling for communications systems
USRE39103E1 (en) Timing reference for scheduling data traffic on multiple ports
US20010024452A1 (en) Data rate limiting
US7626993B2 (en) Transmission device and method, recording medium, program, and control device
US7843940B2 (en) Filling token buckets of schedule entries
US6965607B1 (en) Access control mechanism for packet switched communication networks
Ramabhadran et al. The stratified round robin scheduler: design, analysis and implementation
US8929216B2 (en) Packet scheduling method and apparatus based on fair bandwidth allocation
KR100987388B1 (ko) 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치
Jardetzky et al. Storage and synchronization for distributed continuous media
US7599381B2 (en) Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group
EP0886405B1 (en) Correction of calendar based ATM cell scheduling for downstream cell insertion
Apostolidis et al. A reservation protocol for packet voice and data integration in unidirectional bus networks
Vila-Carbó et al. Analysis of switched Ethernet for real-time transmission
Wang et al. Packet fair queuing algorithms for wireless networks
Wang et al. A priority-based weighted fair queueing algorithm in wireless sensor network
Tse et al. Efficient distributed scheduling architecture for wireless atm networks
Fallah et al. Fair scheduling for real-time multimedia support in IEEE 802.16 wireless access networks
Barhoun et al. Hierarchical scheduling for heterogeneous flows
Graffi et al. Taxonomy of message scheduling strategies in context of peer-to-peer scenarios
Ryu Considering non-real-time traffic in real-time packet scheduling
Yu et al. A Time Utility Function Driven Scheduling Scheme for Managing Mixed-Criticality Traffic in TSN
Pope Scheduling and management of real-time communication in point-to-point wide area networks

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

Year of fee payment: 18