KR20070060552A - 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 - Google Patents

적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 Download PDF

Info

Publication number
KR20070060552A
KR20070060552A KR1020050120244A KR20050120244A KR20070060552A KR 20070060552 A KR20070060552 A KR 20070060552A KR 1020050120244 A KR1020050120244 A KR 1020050120244A KR 20050120244 A KR20050120244 A KR 20050120244A KR 20070060552 A KR20070060552 A KR 20070060552A
Authority
KR
South Korea
Prior art keywords
flow
packet
service
count
service count
Prior art date
Application number
KR1020050120244A
Other languages
English (en)
Other versions
KR100745679B1 (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 KR1020050120244A priority Critical patent/KR100745679B1/ko
Priority to US11/633,740 priority patent/US20070133561A1/en
Publication of KR20070060552A publication Critical patent/KR20070060552A/ko
Application granted granted Critical
Publication of KR100745679B1 publication Critical patent/KR100745679B1/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/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • 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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling

Abstract

본 발명은, 다수의 플로우들이 하나의 링크를 공유하는 고속 통신망에서 상기 다수의 플로우들의 서비스를 스케쥴링하기 위해서는, 다양한 패킷 크기를 갖는 패킷들을 입력받아 각 패킷들의 패킷 플로우 정보에 따라 플로우별로 저장하고, 임의의 서비스할 플로우가 휴지상태에서 활성상태로 전환되면 활성 플로우 리스트의 마지막에 상기 해당 플로우의 식별번호를 추가하고, 상기 활성 플로우 리스트에서 상기 해당 플로우의 식별번호가 선두가 되면 상기 해당 플로우의 선두 패킷을 서비스하며, 상기 서비스되는 패킷의 크기만큼 서비스 카운트를 증가시키고, 최대 서비스 카운트를 설정하고, 상기 서비스 플로우의 서비스 카운트와 다음 패킷 크기를 고려하여 상기 다음 패킷을 서비스하고, 상기 해당 플로우의 서비스 카운트와 다음 패킷 크기가 상기 최대 서비스 카운트보다 크게 되면 다음 플로우를 서비스함으로써, 공평하게 서비스할 수 있으며, 다수의 플로우들을 공평하게 서비스할 수 있으며, 보다 낮은 레이턴스를 제공할 수 있다.
라운드 로빈, 플로우, 패킷 스케쥴링, 공평성, 레이턴시.

Description

적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치{METHOD AND APPARATUS FOR PACKET SCHEDULING USING ADAPTATION ROUND ROBIN}
도 1은 본 발명의 실시예에 따른 고속 통신망에서의 패킷을 라우팅하기 위한 라우터를 도시한 블록도,
도 2는 본 발명의 실시예에 따른 고속 통신망에서 적응 라운드 로빈 방법을 이용하여 패킷 스케쥴링을 하기 위한 패킷 스케쥴링 장치의 구성을 도시한 블록도,
도 3은 본 발명의 실시예에 따라 패킷 스케쥴링 장치에서 패킷 도착 과정을 도시한 흐름도,
도 4는 본 발명의 실시예에 따라 패킷 스케쥴링 장치에서 패킷 스케쥴링 서비스를 위한 패킷 출력 과정을 도시한 흐름도,
도 5는 본 발명의 실시예에 따라 패킷 스케쥴링 장치에서 제한된 크기를 갖는 카운트 운영 과정을 도시한 흐름도,
도 6은 본 발명에 따른 패킷 스케쥴링 장치와 종래의 탄성 라운드 로빈의 공평성을 컴퓨터로 모의 실험한 일예를 도시한 그래프.
본 발명은 고속 통신망에서 패킷 스케쥴링 방법 및 장치에 관한 것으로서, 특히 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치에 관한 것이다.
일반적으로 통신망에서는 다수의 플로우가 제한된 자원을 공유하므로 일시적인 혼잡이 발생할 수 있다. 이러한 혼잡 발생시 다수의 플로우간 공평성(fairness)을 제공하고 레이턴시(latency)를 제한하기 위하여 다양한 방법으로 스케쥴링한다.
고속 통신망에서 사용되는 스케쥴러는 플로우간 공평성과 레이턴시를 제한하여야 할 뿐만 아니라 고속으로 운용되어야 하므로 시간 복잡도가 작아야 한다. 예를 들면, 10Gbps 인터페이스에서 길이가 100 바이트의 패킷은 0.08usec내에 처리되어야 한다.
종래의 스케쥴링 방법으로서는 미국특허 제6,101,193호에 라운드 로빈 방법이 개시되어 있다. 그러나 상기 방법은 시간 복잡도는 작지만 짧은 시간 공평성이 낮고 레이턴시가 큰 편이었다.
또한, 미국특허 제6,134,217호에 페어 큐잉 방법이 개시되어 있지만 공평성과 레이턴시는 양호하나 타임스탬프에 따른 소팅으로 시간 복잡도가 플로우 수에 따라 증가되는 문제점이 있었다.
이전의 라운드 로빈 방법은 한 라운드에 서비스 받을 수 있는 량을 최대 패킷 크기보다 크게 설정해야 했으며, 최대 패킷 크기를 너무 크게 잡으면 한 라운드에 많은 량을 서비스하게 되므로 플로우간 공평성이 저하되는 문제점이 있었다.
기존의 라운드 로빈 방법으로는 부족 라운드 로빈(Deficit Round Robin; 참조논문- M.Shreedhar and George Varghese, Efficient Fair Queueing using Deficit Round Robin, SIGCOMM '95, pp. 231-241)과 탄성 라운드 로빈(ERR; Fair and Efficient Packet Scheduling Using Elastic Round Robin, IEEE Trans. On Parallel and distributed system Vol 13, No 3, 2003, pp. 324-336)이 있으며, 이들은 O(1)의 시간 복잡도를 갖는다.
상기 종래의 방법들은 서비스될 최대 패킷 크기를 미리 설정하지 않고 매 라운드시작시마다 서비스될 량을 결정해서 결정된 서비스 량만큼 서비스 하는 방법이다.
상기 부족 라운드 로빈은 한 라운드에 주어지는 양을 나타내는 퀀텀과 서비스하고 남은 량을 관리하는 부족 카운트(deficit)를 운영한다. 임의의 플로우가 처음 서비스 받게 되면 부족 카운트를 퀀텀으로 할당하고 부족 카운트보다 크기가 작은 패킷은 서비스하고 서비스 한 만큼 부족 카운트를 감소시킨다. 다음 패킷이 부족 카운트보다 크지 않을 때까지 계속 서비스한다. 만약, 다음 패킷이 부족 카운트보다 크기가 크면 서비스하지 못하고 남은 량은 부족 카운트에 저장하고 다음 플로우를 서비스 한다. 새로운 라운드가 시작되면 부족 카운트는 새로운 퀀텀을 받아 부족 카운트 DCi를 DCi <- DCi + Quantum 으로 증가시킨다. 상기 방법은 부족 카운트보다 작은 패킷은 몇 개의 패킷이 서비스 받으며, 부족 카운트보다 큰 패킷은 다음 라운드에서 새로운 퀀텀을 받아 서비스 받는다. 그리고 상기 방법은 퀀텀 크기 를 제어하므로서 플로우별로 한 라운드에 서비스 받을 량을 제어하여 플로우별로 대역폭을 제어하는데 활용될 수 있다. 즉, 속도가 큰 플로우는 퀀텀을 크게 설정하며 작은 플로우는 작게 설정하여 서비스하면 퀀텀에 비례하는 속도로 서비스된다. 이러한 방법도 O(1)의 시간 복잡도를 유지하기 위해서는 퀀텀 크기를 최대 패킷 크기보다 크게 설정해야 되며 퀀텀을 크게 설정하면 공평성과 레이턴시가 저하되는 문제점이 있다.
상기 탄성 라운드 로빈(ERR : Elastic Round Robin)은 부족 라운드 로빈(DRR)과 달리 실제 서비스되는 패킷 크기를 고려하여 다음 라운드에 서비스될 량을 결정하여 공평성과 레이턴시를 개선하기 위하여, 초과 카운트(surplus count)가 음수가 되지 않으면 계속 서비스하는 초과 카운트와 한 라운드에서 최대의 초과 카운트를 나타내는 최대 초과 카운트를 운영한다. 초과 카운트는 처음 1로 주어지고 패킷이 도착하면 서비스하고 초과 카운트가 양수이기 때문에 그 패킷을 서비스하고 초과 카운트에서 서비스 된 패킷 크기를 빼면 음수가 되기 때문에 그 플로우의 서비스를 종료하고 다음 플로우의 서비스를 시작한다. 이때 초과 카운트는 서비스 한 량에서 초과 카운트를 감한다. 즉, SCi(r) <- Senti(r) - SCi(r)로 갱신한다. 이와 같이 한 라운드의 서비스가 끝나면 직전 라운드인 r-1 라운드에서 최대 초과 카운트를 찾고, 다음 라운드인 r 라운드의 각 플로우의 허용치 Ai(r)를 계산하고, 초과 카운트SCi(r) 을 갱신하며, 이는 <수학식 1>과 같이 나타낼 수 있다.
SCi( r) <- Senti(r ) - Ai( r)
Ai( r) <- 1 + MaxSC(r-1) - SCi(r-1)
이와 같은 방법은 부족 라운드 로빈(DRR)과 달리 최대 패킷 크기를 모르는 상황에서 운영하기 용이하며 직전 라운드의 최대 서비스 카운트(MaxSC)를 현재 라운드에 반영하므로 공평성 및 레이턴시 성능을 크게 개선할 수 있는 장점이 있다. 반면, 매 라운드의 시작 혹은 끝을 인식하여 최대 서비스 카운트를 갱신해야 하며 서비스 카운트(SC) 값을 매 라운드의 시작점에서 갱신하므로 한 라운드 동안 임의의 두 플로우간 공평성이나 레이턴시 성능이 저하되는 문제점이 있다. 그리고 현재의 라운드가 아닌 직전 라운드 값에 따라 현재 라운드의 서비스 량을 결정하므로 한 라운드 지연되는 문제점이 있다.
또한, 상기 타임스탬프(time stamp) 기반의 스케쥴링 방법으로는 참고문헌(S. J. Golestani,"A self-clocked fair queueing scheme for high speed applications". Proc. INFOCOM '94, pp.636-646, Apr.1994)에서의 셀프 클럭 페어 큐잉과, 가상 클럭(virtual clock) 및 참고문헌(D.Stidialis, A.Varma, "Efficient Fair Queueing Algorithms for Packet-Switched Networks", IEEE/ACM Trasactions on Networking, Vol.6, No.2, pp.175-185, April,1998)에서의 스타닝 포텐셜 페어 큐잉, 고속 패킷 스케쥴링 방법 및 장치(High Speed Packet Scheduling Method and Apparatus, US005905730A, May 18, 1999) 등이 개시되어 있다.
그러나 이러한 타임스탬프 기반의 스케쥴링 방법은 지연과 공평성은 양호하 지만 타임스탬프에 따른 순서 정렬을 위하여 적어도 O(log(N))의 시간 복잡도를 갖는다. 플로우 수에 따라 시간 복잡도가 증가하므로 플로우 수가 많고 속도가 빠른 고속 통신망에 구현하기 어려운 문제가 있었다.
게다가 일반적으로 통신망에서는 하나의 포트를 많은 플로우(connection or flow)들이 공유하여 사용하며, 각 플로우가 요구하는 속도와 전송되는 패킷 크기가 다양하다. 이에 따라 각 플로우가 요구하는 속도를 제공하고 공평하게 서비스를 제공하며 레이턴시를 작게하는 스케쥴링 장치 및 방법이 요구된다.
따라서, 본 발명의 목적은 다양한 패킷 크기를 갖는 다수의 플로우들이 제한된 망 자원을 효율적으로 활용하기 위한 패킷 스케쥴링 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 고속 광통신망에서 모든 플로우를 순차적으로 서비스하고, 한번에 서비스하는 량을 다른 플로우들이 서비스 받은 량에 따라 서비스함으로써 공평성과 레이턴시 성능을 개선되도록 패킷을 스케쥴링하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치를 제공함에 있다.
상기 이러한 본 발명의 목적들을 달성하기 위한 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법, 다양한 패킷 크기를 갖는 패킷들을 입력받아 각 패킷들의 패 킷 플로우 정보에 따라 플로우별로 저장하는 과정과, 임의의 서비스할 플로우가 휴지상태에서 활성상태로 전환되면 활성 플로우 리스트의 마지막에 상기 해당 플로우의 식별번호를 추가하는 과정과, 상기 활성 플로우 리스트에서 상기 해당 플로우의 식별번호가 선두가 되면 상기 해당 플로우의 선두 패킷을 서비스하는 과정과, 상기 서비스되는 패킷의 크기만큼 서비스 카운트를 증가시키고, 최대 서비스 카운트를 설정하는 과정과, 상기 서비스 플로우의 서비스 카운트와 다음 패킷 크기를 고려하여 상기 다음 패킷을 서비스하는 과정과, 상기 해당 플로우의 서비스 카운트와 다음 패킷 크기가 상기 최대 서비스 카운트보다 크게 되면 다음 플로우를 서비스하는 과정을 포함하는 것을 특징으로 한다.
상기 본 발명의 목적들을 달성하기 위한 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치는, 다양한 패킷 크기를 갖는 패킷들을 입력받아 각 패킷들의 패킷 플로우 정보에 따라 플로우별로 저장하는 플로우 큐와, 상기 플로우별로 저장된 패킷의 크기에 따라 상기 각 플로우의 서비스할 패킷 크기만큼 서비스 량을 증가하여 서비스 카운트를 설정하는 서비스 카운터와, 상기 각 플로우의 최대 서비스 량을 나타내는 최대 서비스 카운트를 설정하는 최대 서비스 카운터와, 서비스할 해당 플로우가 휴지상태에서 활성상태로 전환되면 마지막에 상기 해당 플로우의 식별번호를 추가하고, 선두 플로우부터 해당 플로우의 서비스 카운트에서 허용하는 량만큼 상기 패킷들을 출력하고, 상기 출력되는 해당 플로우에 상기 서비스 카운트를 초과하는 패킷이 남아있는 경우 다음 라운드에 서비스하도록 상기 활성 플로우 리스트의 마지막에 식별번호를 추가하는 활성 플로우 리스트부를 포함하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 실시예에서 이용되는 라운드 로빈 방법은 그룹 내에 있는 모든 요소들을 합리적인 순서에 입각하여 뽑는 방법으로서, 리스트의 맨 위에서 아래로 가며 하나 씩 뽑고, 끝나면 다시 맨 위로 돌아가는 방법이다.
그리고 본 발명의 실시예에 따른 플로우는 패킷 헤더로부터 구분되는 하나의 데이터 스트림 혹은 다수의 데이터 스트림이 병합된 경우를 나타낸다. 또한, 공평성은 임의의 두 플로우가 임의의 시간 동안 받은 서비스 량의 차이 정도를 나타내며 차이가 작을수록 공평성이 양호하다. 레이턴시는 서비스 받는 패킷의 지연 정도를 나타내는 것으로 작을수록 양호하다.
그러면 본 발명의 실시예에 따라 고속 통신망에서 적응 라운드 로빈 방법을 이용하여 패킷 스케쥴링을 하기 위한 장치 및 방법에 대해 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 고속 통신망에서의 패킷을 라우팅하기 위한 라우터를 도시한 블록도이다.
상기 도 1을 참조하면, 라우터(또는 스위치)(10)는 n 개의 입력 포트와 n개의 출력 포트를 갖으며, 상기 출력 포트로 출력되는 패킷을 일시적으로 저장하는 버퍼(도시되지 않음)와, 상기 버퍼에 저장된 패킷을 스케쥴링하는 스케쥴러(도시되지 않음)와 연동한다.
상기 라우터(10)는 각 입력 포트로 입력된 패킷을 스위칭하여 해당 출력포트를 통해 전송하며, 동일 출력 포트로 동시에 패킷들이 출력되는 경우 상기 패킷들을 버퍼로 전송하여 일시적으로 저장하도록 한다.
상기 버퍼는 다수의 입력 포트에서 패킷들이 한 포트로 집중되어 출력 포트의 대역폭을 초과하는 경우를 대비하여 입력된 패킷을 일시적으로 저장한다.
상기 스케쥴러는 상기 버퍼에 대기중인 패킷을 소정의 순서나 일정에 따라 요구되는 서비스 품질(QoS: Quality of Service)을 고려하여 서비스한다.
도 2는 본 발명의 실시예에 따른 고속 통신망에서 적응 라운드 로빈 방법을 이용하여 패킷 스케쥴링을 하기 위한 패킷 스케쥴링 장치의 구성을 도시한 블록도이다.
상기 도 2를 참조하면, 패킷 스케쥴링 장치(이하, 스케쥴러(100)라 칭함)는 입력되는 패킷들을 각 플로우별로 일시 저장하는 플로우 큐(110)와, 서비스 카운터(120)와, 최대 서비스 카운터(130)와, 활성 플로우 리스트부(140)를 포함한다. 여기서 플로우 큐(110)의 패킷에 나타낸 숫자는 패킷 크기를 나타내며, 서비스 카운터(120)의 나타낸 숫자들은 각 플로우별 서비스 량을, 최대 서비스 카운터(130)는 최대 서비스 량을 나타낸다.
상기 패킷 스케쥴러(100)는 패킷이 도착하면 도착된 패킷의 헤더 정보에 따라 플로우를 구분하며, 도착 패킷을 플로우 정보에 따라 해당 플로우 큐(110)에 저장한다. 이때 해당 플로우가 휴지(idle) 상태에서 활성(active) 상태로 전환되는 경우 상기 패킷 스케쥴링 장치는 활성 플로우 리스트부(140)의 활성 플로우 리스트의 마지막에 해당 플로우 ID를 추가한다.
상기 스케쥴러(100)는 활성 플로우 리스트가 빈 상태(empty)가 아니면 활성 플로우 리스트의 선두 플로우부터 서비스를 시작하며, 서비스 카운트에서 허용하는 량만큼 서비스하고 해당 플로우 큐(110)에서 대기중인 모든 패킷을 서비스하면 활성 플로우의 다음 플로우를 서비스한다. 그리고 상기 스케쥴러(100)는 서비스 할 패킷이 있는 경우 활성 플로우 리스트의 마지막에 해당 플로우 식별번호(ID)를 저장하여 다음 라운드에 서비스 받도록 하며, 최대 서비스 카운트(130)를 갱신한다. 여기서 모든 플로우는 가중치를 동일하게 설정하였으나, 각각의 가중치가 다른 경우에는 각 플로우별로 가중치를 나타내는 파라미터를 포함한다.
상기 서비스 카운터(120)는 각 플로우별 서비스 량을 설정 즉, 각 플로우별로 서비스되는 패킷의 크기만큼 증가하여 서비스 카운트를 설정한다. 즉, 이전에 설정된 서비스 카운트와 서비스되는 다음 패킷의 크기를 더하여 다음 패킷의 서비스 시 이용할 서비스 카운트를 갱신하다.
상기 최대 서비스 카운터(130)는 상기 서비스되는 플로우의 최대 서비스 카운트를 설정한다. 즉, 상기 입력된 패킷들 중 최대 크기를 갖는 패킷보다 크거나 같은 크기의 값에 따라 미리 설정된 값(예를 들어 4배의 크기)으로 최대 서비스 카 운트를 설정한다. 그리고 상기 최대 서비스 카운터(130)는 상기 갱신된 서비스 카운트가 최대 서비스 카운트보다 크게 되거나, 서비스할 플로우가 빈 상태이어서 다음 플로우를 서비스할 시 최대 서비스 카운트를 갱신한다. 또한, 상기 최대 서비스 카운터(130)는 상기 활성 플로우 리스트부(140)는 서비스 중 활성 플로우 리스트에 없는 새로운 플로우의 패킷이 도착하면 상기 새로운 플로우의 서비스 카운트를 최대 서비스 카운트로 설정한다. 여기서 상기 서비스 카운터(120)와 상기 최대 서비스 카운터(130)는 단순 카운터와 비교기로서 구현될 수 있으며, 활성 플로우 리스트에 저장된 순서에 따라 서비스되므로 O(1) 시간 복잡도를 갖는다.
상기 활성 플로우 리스트부(140)는 플로우들을 관리하는 활성 플로우 리스트를 포함하며, 서비스 시 해당 플로우의 식별번호를 마지막 영역에 추가한다. 그리고 상기 활성 플로우 리스트부(140)는 서비스 중 활성 플로우 리스트에 없는 새로운 플로우의 패킷이 도착하면 활성 플로우 리스트의 마지막에 추가한다.
이와 같은 구조를 갖는 본 발명의 실시예에 따른 패킷 스케쥴링 장치에서 다양한 패킷 크기를 갖는 다수의 플로우들을 서비스하기 위해 라운드 로빈 방식을 이용하여 스케쥴링하기 위한 방법을 첨부된 도면들을 참조하여 구체적으로 설명하기로 한다.
전체적인 스케쥴링 동작을 다시 상기 도 2를 참조하여 설명하기로 한다. 상기 도 2에서 플로우 큐(110)의 플로우 1(Flow 1)에는 크기가 300인 패킷이 저장되고, 플로우 2(Flow 2)에는 크기가 200인 패킷이 저장되고, 플로우 n(Flow n)에는 크기가 100인 패킷이 저장되는 것을 예를 들어 도시하였으며, 각 플로우의 서비스 카운터(120)에는 상기 각 플로우에 저장된 패킷의 크기에 따라 서비스 카운트가 설정된다. 그리고 최대 플로우 카운터(130)는 처음 서비스되는 플로우 1의 패킷 크기에 따라 300으로 최대 서비스 카운트가 설정된다.
처음으로 활성 플로우 리스트가 활성화된 경우, 스케쥴러(100)의 각 플로우의 서비스 카운터(120) 및 최대 서비스카운터(130)는 카운트를 0으로 초기화 하고, 플로우 1의 선두 패킷을 서비스하고 서비스 카운트를 300으로 갱신한다.
그러면 서비스 카운트가 최대 서비스 카운트보다 크기 때문에 더 이상 서비스를 하지 못하고 최대 서비스 카운트를 갱신하고, 자신의 플로우 ID를 활성 플로우 리스트의 마지막에 추가한 플로우 2를 서비스한다.
플로우 2의 선두 패킷을 서비스하고 자신의 서비스 카운트를 200으로 설정한 후 다음 패킷을 서비스하면 최대 서비스 카운트보다 크기 때문에 서비스하지 못한다. 최대 서비스 카운트는 그대로 유지되고 활성 플로우 리스트 마지막에 자신의 ID를 추가한 후 플로우 3을 서비스한다. 플로우 3 큐의 선두 패킷을 서비스하고, 서비스 카운트와 서비스 받을 패킷 크기의 합이 최대 서비스 카운트를 초과하지 않을 때까지 계속 서비스한 후 활성 플로우 리스트에서 선두가 된 플로우 예를 들어 플로우 1을 서비스한다.
이와 같이 패킷 크기로 서비되는 패킷 순서를 나타내면 300 < 200 < 100 < 100 < 1000 < 300 의 순서로 서비스된다. 하지만 탄성 라운드 로빈의 경우 먼저 각 플로우별로 하나씩 서비스한 후 최대 초과 카운트를 갱신하여 서비스하므로 첫 번째 라운드의 서비스 순서는 300 < 200 < 100 <300 의 순으로 서비스되어 공평성이 저하되므로 상술한 바와 같이 라운드 로빈 방식을 적용함에 따라 공평하게 서비스할 수 있음을 알 수 있다.
도 3은 본 발명의 실시예에 따라 패킷 스케쥴링 장치에서 패킷 도착 과정을 도시한 흐름도이다.
상기 도 3을 참조하면, 310단계에서 스케쥴러(100)는 스위치/라우터(10)를 통해 스위칭되어 버퍼(20)에 일시적으로 저장된 패킷을 수신한다. 320단계에서 스케쥴러(100)는 해당 패킷의 플로우 ID에 따라 해당 플로우 큐(110)에 상기 수신된 패킷을 저장한다.
330단계에서 상기 스케쥴러(100)는 상기 플로우가 이미 활성 상태인지를 확인하여 활성상태인 경우에는 동작을 종료하고, 그렇지 않은 경우에는 340단계에서 휴지 상태에서 활성 상태로 천이된 것으로 설정한다. 이후, 350단계에서 상기 스케쥴러(100)는 상기 해당 플로우의 ID를 활성 플로우 리스트(130)의 마지막에 추가한다.
그런 다음 360단계에서 스케쥴러(100)는 상기 해당 플로우의 서비스 카운트를 최대 서비스 카운트로 설정(Activelist[tail[Activelist]] <- I)하고 동작을 종료한다.
도 4는 본 발명의 실시예에 따라 패킷 스케쥴링 장치에서 패킷 스케쥴링 서비스를 위한 패킷 출력 과정을 도시한 흐름도이다.
상기 도 4를 참조하면, 스케쥴러(100)는 활성 플로우 리스트가 빈 상태(empty)에서 활성 상태로 천이되었는지를 확인한다. 이때 410단계에서 스케쥴러 (100)는 활성 리스트가 빈 상태인지를 확인하여 빈 상태인 경우 계속해서 대기 상태를 유지하고, 그렇지 않은 경우 420단계에서 활성 리스트의 선두 플로우에 대한 플로우 식별번호(ID)를 확인한다.
그런 다음 430단계에서 스케쥴러(100)는 해당 플로우의 선두 패킷 서비스 및 서비스된 패킷 길이(Li)를 더하여 서비스 카운트(SCi)를 갱신한다. 즉, 상기 해당 플로우 ID를 i라고 가정하면, 스케쥴러(100)는 해당 플로우 큐(110)의 선두 패킷 Pi를 서비스하고, 서비스 카운터(130)를 이전에 설정된 서비스 카운트와 해당 플로우의 패킷 길이(Li)를 더한 값을 서비스 카운트(SCi)로 설정한다.(SCi <- SCi+Li)
440단계에서 상기 스케쥴러(100)는 선두 패킷을 서비스한 후 플로우 큐가 빈 상태(empty)인지(Flowi_que=empty)를 확인한다. 확인 결과 상기 플로우 큐(110)가 빈 상태(empty)인 경우 490단계로 진행하고, 그렇지 않은 경우 450단계에서 선두 패킷 길이를 확인한다.
460단계에서 상기 스케쥴러(100)는 상기 SCi+Li 값이 최대 서비스 카운트 값(MaxSC)를 비교하여 만약, 상기 더한 값이 상기 최대 서비스 카운트 값보다 작으면 430단계로 진행한다. 반면, 상기 더한 값이 상기 최대 서비스 카운트 값보다 크면 470단계에서 스케쥴러(100)는 해당 플로우 식별번호(ID)를 활성 리스트의 마지막에 저장하고, 480단계에서 최대 서비스 카운트를 갱신한다.
그런 다음 490단계에서 스케쥴러(100)는 활성 리스트가 빈 상태인지를 확인하여 빈 상태인 경우 동작을 종료하고, 그렇지 않은 경우 420단계로 진행하여 다음 플로우를 서비스한다.
만약, 서비스 중 플로우 큐(110)가 빈(empty) 상태로 되면 해당 플로우의 서비스를 종료하고 활성 플로우 리스트에 따라 다음 플로우를 서비스하며, 서비스 중 해당 플로우 카운트와 선두 패킷 크기의 합이 최대 서비스 카운트보다 크면 그 패킷을 서비스하지 않고 다음 라운드에 서비스한다. 이때 해당 플로우의 플로우 ID를 활성 플로우 리스트의 마지막에 추가한다. 이러한 동작을 반복적으로 수행함으로써 활성 플로우 리스트가 빈 상태(empty) 될 때까지 서비스를 계속한다.
이와 같은 과정에서 각각의 플로우가 각기 다른 대역폭을 요구하는 경우 요구하는 대역폭을 제공하기 위한 방법을 설명하면 다음과 같다.
모든 플로우는 정규화된 가중치 w를 갖는다. w가 1인 플로우에 비하여 w가 2인 플로우는 2배의 대역폭을 가지며 2배의 서비스를 받을 수 있다. 상기 도 4에 도시된 바와 같은 패킷 출력 과정에서 첫 번째 패킷 이후의 패킷은 (SCi + w Li)≤ MaxSC이면 서비스하고, 그렇지 않으면 다음 라운드에 서비스한다. 또한, 상기 도 4에 도시된 바와 같이, 최대 패킷 크기 판별 시에도 SC/w > MaxSc 인지를 확인하고, SC/w가 크면 최대 서비스 카운터(130)는 최대 서비스 카운트(MaxSC)를 SCi/w로 갱신한다.
다음으로 본 발명의 실시예에 따라 패킷 스케쥴링 장치에서 제한된 크기를 갖는 서비스 카운트의 운영 과정을 첨부된 도 5를 참조하여 설명하기로 한다.
각 플로우의 서비스 카운트와 최대 서비스 카운트는 서비스 받을 때마다 계 속 증가되기 때문에 무한대의 카운터가 필요하지만 실제 구현에서 무한대의 카운터를 설계할 수 없으므로 유한 크기의 카운터를 사용하여야 한다. 통신망에 사용되는 패킷은 가변적이지만 최대 패킷 크기는 제한된다. 여기서 최대 패킷 크기는 통신망에 존재할 수 있는 최대 패킷 크기보다 같거나 큰 수 M을 가정하고, 카운터 크기를 4M보다 같거나 크게 설정한다. 서비스 카운트가 4M을 초과하면 다시 0부터 시작된다.
상기 도 5를 참조하면, 510단계에서 패킷의 최대 서비스 카운트(MaxSC)가 해당 패킷의 서비스 카운트(SCi)보다 큰지를 확인하여 최대 서비스 카운트(MaxSC)가 해당 패킷의 서비스 카운트가 보다 큰 경우 520단계에서 최대 서비스 카운트(MaxSC)가 해당 패킷의 서비스 카운트보다 M이상 큰지를 확인한다. 확인 결과, M보다 큰 경우 530단계에서 상기 서비스 카운터를 최대 서비스 카운트로 갱신한 후 동작을 종료한다. 이는 최대 서비스 카운트가 4M을 초과하여 다시 0부터 시작되었으나 해당 패킷의 서비스 카운트는 아직 4M을 초과하지 않은 경우를 나타낸다. 반면, 520단계에서 최대 서비스 카운트(MaxSC)가 해당 패킷의 서비스 카운트보다 M이상 크지 않으면 최대 서비스 카운트(MaxSC)를 갱신하지 않고 그대로 유지한다.
반면, 510단계에서 확인한 결과, 최대 서비스 카운트(MaxSC)가 해당 패킷의 서비스 카운트(SCi)보다 크지 않은 경우 540단계에서 해당 패킷의 서비스 카운트가 상기 최대 서비스 카운트(MaxSC)보다 M 이상 큰지를 확인한다. 해당 패킷의 서비스 카운트가 상기 최대 서비스 카운트(MaxSC)보다 M 이상 크지 큰 경우 최대 카운트를 갱신하지 않고 현재 값을 유지한다. 이는 최대 서비스 카운트는 4M을 초과하여 0부터 다시 시작되고 해당 패킷의 서비스 카운트는 아직 4M을 초과하지 않은 경우를 나타낸다. 반면, 해당 패킷의 서비스 카운트가 상기 최대 서비스 카운트(MaxSC)보다 M 이상 크지 않을 경우 550단계에서 최대 서비스 카운트(MaxSC)를 서비스 카운트(SCi)로 설정하고 동작을 종료한다. 즉, 최대 서비스 카운트(MaxSC)와 서비스 카운트(SCi)를 비교하여 큰 값으로 갱신한다. 이는 서비스를 종료한 플로우의 서비스 카운트와 최대 서비스 카운트와의 차이가 M 보다 적기 때문이다.
도 6은 본 발명에 따른 패킷 스케쥴링 장치와 종래의 탄성 라운드 로빈의 공평성을 컴퓨터로 모의 실험한 일예를 도시한 그래프이다.
상기 도 6에 도시된 바와 같은 모의실험은 두 플로우의 패킷 크기를 40 바이트에서 1600 바이트 사이를 랜덤하게 발생시켜 항상 활성 상태로 유지한 다음 하나의 플로우의 서비스가 종료될 때마다 두 플로우간 서비스 차이를 나타낸다. 종래의 탄성 라운드 로빈은 2500 바이트 이상의 차이가 있는 반면, 본 발명의 실시예에서는 1500 바이트 이하의 차이가 있다. 서비스량의 차이 평균은, 탄성 라운드 로빈 방법에서는 1073 바이트이며, 본 발명의 실시예에서는 377바이트로 본 발명의 종래의 방법에 비하여 최대 서비스 차이뿐만 아니라 평균 서비스 차이에서도 우수함을 알 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물 론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐 만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 제한된 망 자원을 공유하는 고속 통신망에서 다양한 크기를 갖는 패킷들을 적응 라운드 로빈 방식을 적용하여 매 라운드마다 임의의 플로우가 서비스 받을 수 있는 량을 결정함으로써 보다 공평하게 서비스할 수 있으며, 보다 낮은 레이턴시를 제공할 수 있는 효과가 있다.

Claims (13)

  1. 다양한 패킷 크기를 갖는 패킷들을 입력받아 각 패킷들의 패킷 플로우 정보에 따라 플로우별로 저장하는 과정과,
    임의의 서비스할 플로우가 휴지상태에서 활성상태로 전환되면 활성 플로우 리스트의 마지막에 상기 해당 플로우의 식별번호를 추가하는 과정과,
    상기 활성 플로우 리스트에서 상기 해당 플로우의 식별번호가 선두가 되면 상기 해당 플로우의 선두 패킷을 서비스하는 과정과,
    상기 서비스되는 패킷의 크기만큼 서비스 카운트를 증가시키고, 최대 서비스 카운트를 설정하는 과정과,
    상기 서비스 플로우의 서비스 카운트와 다음 패킷 크기를 고려하여 상기 다음 패킷을 서비스하는 과정과,
    상기 해당 플로우의 서비스 카운트와 다음 패킷 크기가 상기 최대 서비스 카운트보다 크게 되면 다음 플로우를 서비스하는 과정을 포함하는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  2. 제1항에 있어서,
    상기 해당 플로우에 상기 최대 서비스 카운트를 초과하는 패킷이 남아있는 경우 다음 라운드에 서비스하도록 상기 활성 플로우 리스트의 마지막에 식별번호를 추가하고, 최대 서비스 카운트를 갱신하는 과정을 더 포함하는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  3. 제1항에 있어서,
    상기 최대 서비스 카운트는 상기 서비스 카운트와 비교하여 상기 최대 서비스 카운트를 갱신한 값이 미리 설정된 값보다 큰 값을 가지는 경우 초기화됨을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  4. 제1항에 있어서, 상기 다음 패킷을 서비스하는 과정은,
    상기 해당 플로우가 빈 상태인지를 확인하는 단계와,
    상기 플로우가 빈 상태가 아닌 경우 상기 다음 패킷의 크기를 상기 해당 플로우의 서비스 카운트에 더하여 상기 서비스 카운트를 갱신하는 단계와,
    상기 갱신된 서비스 카운트와 상기 최대 서비스 카운트를 비교하는 단계와,
    상기 갱신된 서비스 카운트가 상기 최대 서비스 카운트보다 작으면 상기 다음 패킷을 서비스하는 단계를 포함하는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  5. 제4항에 있어서, 상기 다음 패킷을 서비스하는 과정은,
    상기 플로우가 빈 상태인 경우 상기 최대 서비스 카운트를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  6. 제1항에 있어서, 상기 다음 플로우를 서비스하는 과정은,
    상기 해당 플로우의 서비스 카운트와 다음 패킷 크기가 상기 최대 서비스 카운트보다 큰 경우 상기 다음 플로우의 식별번호를 상기 활성 리스트의 마지막에 추가하는 단계와,
    상기 다음 플로우의 패킷을 서비스하는 단계를 포함하는 것 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  7. 제1항에 있어서,
    상기 플로우들이 각각 다른 대역폭을 요구하는 경우 상기 각 플로우별로 각각 다른 가중치를 갖는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법.
  8. 다양한 패킷 크기를 갖는 패킷들을 입력받아 각 패킷들의 패킷 플로우 정보 에 따라 플로우별로 저장하는 플로우 큐와,
    상기 플로우별로 저장된 패킷의 크기에 따라 상기 각 플로우의 서비스할 패킷 크기만큼 서비스 량을 증가하여 서비스 카운트를 설정하는 서비스 카운터와,
    상기 각 플로우의 최대 서비스 량을 나타내는 최대 서비스 카운트를 설정하는 최대 서비스 카운터와,
    서비스할 해당 플로우가 휴지상태에서 활성상태로 전환되면 마지막에 상기 해당 플로우의 식별번호를 추가하고, 선두 플로우부터 해당 플로우의 서비스 카운트에서 허용하는 량만큼 상기 패킷들을 출력하고, 상기 출력되는 해당 플로우에 상기 서비스 카운트를 초과하는 패킷이 남아있는 경우 다음 라운드에 서비스하도록 상기 활성 플로우 리스트의 마지막에 식별번호를 추가하는 활성 플로우 리스트부를 포함하는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치.
  9. 제8항에 있어서,
    상기 최대 서비스 카운터는, 상기 출력되는 해당 플로우에 상기 서비스 카운트를 초과하는 패킷이 남아있는 경우 최대 서비스 카운트를 갱신함을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치.
  10. 제8항에 있어서,
    상기 최대 서비스 카운터는 상기 최대 서비스 카운트와 상기 서비스 카운트를 비교하여 상기 최대 서비스 카운트를 갱신한 값이 미리 설정된 값보다 큰 값을 가지는 경우 상기 최대 서비스 카운트를 초기화함 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치.
  11. 제8항에 있어서,
    상기 활성 리스트부는 상기 서비스되는 플로우의 패킷 크기가 더해진 서비스 카운트가 상기 최대 서비스 카운트보다 큰 경우 다음 플로우의 식별번호를 상기 활성 리스트의 마지막에 추가함을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치.
  12. 제8항에 있어서,
    상기 서비스 카운터는 상기 서비스되는 플로우의 패킷 크기와 상기 설정된 서비스 카운트를 더하여 상기 서비스 카운트를 갱신함을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치.
  13. 제8항에 있어서,
    상기 플로우 큐는 상기 플로들이 각각 다른 대역폭을 요구하는 경우 상기 각 플로우별로 각각 다른 가중치를 부여하기 위한 파라미터를 포함하는 것을 특징으로 하는 적응 라운드 로빈을 이용한 패킷 스케쥴링 장치.
KR1020050120244A 2005-12-08 2005-12-08 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 KR100745679B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050120244A KR100745679B1 (ko) 2005-12-08 2005-12-08 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치
US11/633,740 US20070133561A1 (en) 2005-12-08 2006-12-05 Apparatus and method for performing packet scheduling using adaptation round robin

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050120244A KR100745679B1 (ko) 2005-12-08 2005-12-08 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20070060552A true KR20070060552A (ko) 2007-06-13
KR100745679B1 KR100745679B1 (ko) 2007-08-02

Family

ID=38139265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050120244A KR100745679B1 (ko) 2005-12-08 2005-12-08 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치

Country Status (2)

Country Link
US (1) US20070133561A1 (ko)
KR (1) KR100745679B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9166924B2 (en) 2012-06-29 2015-10-20 Electronics And Telecommunications Research Institute Packet scheduling method and apparatus considering virtual port

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9973438B2 (en) 2013-10-07 2018-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Downlink flow management

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134217A (en) * 1996-04-15 2000-10-17 The Regents Of The University Of California Traffic scheduling system and method for packet-switched networks with fairness and low latency
JP3435293B2 (ja) * 1996-09-10 2003-08-11 株式会社東芝 パケットスケジューリング装置及びパケット転送方法
US5959993A (en) * 1996-09-13 1999-09-28 Lsi Logic Corporation Scheduler design for ATM switches, and its implementation in a distributed shared memory architecture
EP0972379A4 (en) * 1997-04-04 2000-07-05 Ascend Communications Inc EXTREMELY FAST PACKET PROGRAMMING METHOD AND DEVICE
KR100250437B1 (ko) * 1997-12-26 2000-04-01 정선종 라운드로빈 중재 및 적응 경로 제어를 수행하는경로제어 장치
DE60024228T2 (de) * 1999-01-08 2006-08-10 Nortel Networks Ltd., St. Laurent Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
KR100347731B1 (ko) * 1999-12-03 2002-08-09 광주과학기술원 무선 이동 단말에서의 트래픽 제어 방법
US6650651B1 (en) * 1999-12-13 2003-11-18 Nortel Networks Limited System and method to implement a packet switch output buffer
US6914881B1 (en) * 2000-11-28 2005-07-05 Nortel Networks Ltd Prioritized continuous-deficit round robin scheduling
US6950396B2 (en) * 2001-03-20 2005-09-27 Seabridge Ltd. Traffic control method and system
US7457297B2 (en) * 2001-11-16 2008-11-25 Enterasys Networks, Inc. Methods and apparatus for differentiated services over a packet-based network
US20040120258A1 (en) * 2002-12-19 2004-06-24 Mattila Petri To Traffic channel scheduling
US20050174944A1 (en) * 2004-02-10 2005-08-11 Adc Broadband Access Systems, Inc. Bandwidth regulation
US20060256723A1 (en) * 2005-05-16 2006-11-16 Hellenthal Jan W Scheduling incoming packet traffic on an output link of a network device associated with a data network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9166924B2 (en) 2012-06-29 2015-10-20 Electronics And Telecommunications Research Institute Packet scheduling method and apparatus considering virtual port

Also Published As

Publication number Publication date
US20070133561A1 (en) 2007-06-14
KR100745679B1 (ko) 2007-08-02

Similar Documents

Publication Publication Date Title
US7701849B1 (en) Flow-based queuing of network traffic
KR100431191B1 (ko) 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법
US7027457B1 (en) Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches
US6934250B1 (en) Method and apparatus for an output packet organizer
US7885281B2 (en) Systems and methods for determining the bandwidth used by a queue
US9722942B2 (en) Communication device and packet scheduling method
US6795870B1 (en) Method and system for network processor scheduler
US9608927B2 (en) Packet exchanging device, transmission apparatus, and packet scheduling method
JP4163044B2 (ja) 帯域制御方法およびその帯域制御装置
CA2462793C (en) Distributed transmission of traffic streams in communication networks
US8929216B2 (en) Packet scheduling method and apparatus based on fair bandwidth allocation
KR100425061B1 (ko) 에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치
KR100745679B1 (ko) 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치
US20050243847A1 (en) Systems and methods for smooth and efficient round-robin scheduling
Hu et al. Dynamic queuing sharing mechanism for per-flow quality of service control
EP2063580B1 (en) Low complexity scheduler with generalized processor sharing GPS like scheduling performance
US20120127858A1 (en) Method and apparatus for providing per-subscriber-aware-flow qos
JP4455772B2 (ja) パケットメッセージング方法および装置
KR100369562B1 (ko) 고속 통합 서비스망에서 wfq의 에뮬레이션을 통한 공정패킷 스케쥴링 방법 및 그 공정 패킷 스케쥴러
Rahbar et al. OCGRR: a new scheduling algorithm for differentiated services networks
JP4391346B2 (ja) 通信制御方法、通信制御装置、制御プログラム及び記録媒体
KR100757194B1 (ko) 자원 이용도가 높고 구현 복잡성이 낮은 공정 패킷스케줄링 장치
KR100527339B1 (ko) 이더넷 광 네트워크에서 큐오에스 보장 방법
Martinez-Morais et al. Providing QoS with the deficit table scheduler
James et al. A 40 Gb/s packet switching architecture with fine-grained priorities

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130624

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee