KR100425061B1 - 에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치 - Google Patents

에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치 Download PDF

Info

Publication number
KR100425061B1
KR100425061B1 KR10-2001-0059078A KR20010059078A KR100425061B1 KR 100425061 B1 KR100425061 B1 KR 100425061B1 KR 20010059078 A KR20010059078 A KR 20010059078A KR 100425061 B1 KR100425061 B1 KR 100425061B1
Authority
KR
South Korea
Prior art keywords
credit
value
pdu
transmission
output
Prior art date
Application number
KR10-2001-0059078A
Other languages
English (en)
Other versions
KR20020025723A (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 잘링크 세미콘덕터 브이.엔. 아이엔씨.
Publication of KR20020025723A publication Critical patent/KR20020025723A/ko
Application granted granted Critical
Publication of KR100425061B1 publication Critical patent/KR100425061B1/ko

Links

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/629Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
    • 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/20Traffic policing
    • 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/22Traffic shaping
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • 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/39Credit based
    • 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/623Weighted service order

Landscapes

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

Abstract

본 발명은 데이터 패킷 스위칭 환경에서 큐(queue) 서비스하는 스케쥴링 방법을 제공한다. 상기 방법은 일련의 주기적인 단계들을 포함한다. 출력 큐들은 최하위의 크레디트 값을 기준으로 서비스를 제공하도록 스케쥴링되어 있다. 하나의 통신 포트와 연관된 한 그룹의 출력 큐들로부터 어느 하나의 출력 큐가 선택된다. 이 선택된 출력포트는 전송 중 적어도 하나의 부하 데이터 유니트(Payload Data Unit: PDU)과 그에 연관된 최하위의 크레디트 값을 갖는다. 소정의 길이를 갖는 적어도 하나의 PDU가 상기 선택된 출력 큐로부터 선택되고 그 크레디트 값은 전송된 PDU의 길이를 고려하여 증분된다. PDU들의 전송은 전송주기들로 분할된다. 매 전송주기 당 한번씩 전송시까지 PDU들을 보유하는 출력 큐들과 연관되는 크레디트 값들은 각 출력 큐에 대해 할당된 전송분배에 따라 감소된다. 상기 방법은 최소한의 컴퓨터 조작으로 동작 가능한 하드웨어적 구현으로써 에뮬레이티드 가중치화 공평 큐 서비스를 제공한다.

Description

에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역 공유 방법 및 장치 {BANDWIDTH SHARING USING EMULATED WEIGHTED FAIR QUEUING}
본 발명은 전자 데이터의 전송(이송) 분야에 관한 것으로, 특히 데이터 전송 네트워크의 스위칭 포인트에서 데이터 트래픽 흐름들 간의 출구(egress) 대역폭을 배분하기 위한 방법 및 장치에 관한 것이다.
PDU 스위칭 기술분야에 있어서, 데이터 스위칭 노드 12의 스위칭 장치 10(도 1 참조)은 데이터 트래픽 흐름들 22(일반적으로 입력단으로 언급됨)를 동반하는 입력 포트들 20으로부터, 데이터 트래픽 흐름들 32를 동반하는 다수의 출력포트들 30으로 이루어진 출력단으로, 부하 데이터 유니트(Payload Data Unit: PDU)를 전송한다. 이러한 PDU 의 일례를 들면, 패킷, 셀, 프레임 등이 있지만, 이것들에 한정되지는 않는다.
고품질의 서비스(Quality-of-Service: QoS)를 보증하기 위해서 서비스 등급(Class-of-Service: CoS)은 각각의 PDU와 데이터 트래픽 흐름 32과 관련된다. 동일한 CoS를 보유하며 어느 특정 출력포트 30으로 향하는 PDU들은 단일한 데이터 흐름 32로 한데 모아진다. 단일한 데이터 흐름 32와 관련된 PDU들 106은 출력포트 30의 물리적 매체 102 상으로의 전송을 위해 대응되는 출력 큐 Q(j)에 줄이 세워진다. 출력포트 30과 관련된 m 개의 출력 큐들 Q(j)의 각각은, 하드웨어 또는 소프트웨어적으로 구현될 수 있고, 출력포트 30으로 향하는 다른 데이터 트래픽 흐름들 32와 관련하여 적어도 전송 대역폭과 우선도에 기인한다.
따라서, 음성연결과 관련된 높은 우선도의 PDU는 그와 연관되는 높은 서비스 우선도를 갖는 출력 큐 Q(m-1)에서 대기하고, 반면에 전자메일 전송시기와 연관된 낮은 우선도의 PDU는 그와 연관되는 낮은 서비스 우선도를 갖는 출력 큐 Q(0)에서 대기할 수 있다.
물리적 매체 상으로의 전송을 위한 PDU들의 선택은 스케쥴러 40에 의해 수행된다. QoS 에 대한 보증을 제공함에 있어 높은 우선도의 PDU들은 전송 대역폭의 보증된 부분을 수신하는 것이 일반적으로 필요하다. 따라서, 높은 우선도 PDU들은 그의 우선적인 처리로부터 이익을 본다.
전송되는 PDU들의 변화하는 길이 110 때문에 모든 데이터 흐름들 32는 전송지연과 전송잡음(jitter)에 영향을 받게 된다. 낮은 전송 우선도의 출력 큐들은 높은 우선도의 PDU들의 데이터 트래픽 버스트 구간들 동안에 전송이 완전히 중단되지 않도록 대역폭의 약간의 보증된 부분을 받아들이는 것이 바람직하다. CoS를 이행함과 아울러 낮은 전송지연과 전송잡음을 달성하기 위하여, 소정의 시간 간격 동안에 너무 많은 수의 높은 우선도의 PDU들 106이 전송을 위해 대기행렬에 놓이지 않도록 보장하면서 출력 큐 Q(j)에 PDU들을 대기하게 하는 데에 집행기(enforcer 50)가 사용된다.
"가중치화 공평 큐(Weighted Fair Queueing WFQ)" 기술을 수행하는 출력 큐들 Q(J) 사이에서 출력 물리적 매체 102의 전송 대역폭을 분배하기 위한 여러 가지의 이론적 모델들이 개발되었다. 그러한 하나의 기술이, (미국 매사추세츠 리딩(Reading) 소재의 애디슨 웨슬리에 의해 1997년 간행된 문헌 "An Engineering Approach to Computer Networking: ATM Networks, the Internet, and the Telephone Network")에서 스리니바산 케샤브에 의해 기술되고 있다. (pp 209 - 263 참조)
상기한 WFQ 기술은 하드웨어적으로 구현하는 데에는 비현실적이기는 하지만, 대역폭 배분의 문제에 있어서 해결책을 제시한다. 이론적인 큐 서비스 모델은 통상적으로 WFQ 기술을 이행하는데 소요되는 수치계산 시간이 극소한이므로 무시될 수 있다는 것을 가정한다. 실제적으로는 그러한 수치계산적 시간은 무시될 수 없다. WFO 기술은 출력 큐 서비스를 순서화함에 있어서 반복적인 계산을 사용한다. 이러한 반복적인 계산에는 시간이 많이든다. WFQ 순서화(sequencing) 계산은 또한 나누기 기능을 필요로 하는데 이것은 하드웨어 상의 구현에 있어 매우 복잡한 문제의 원인들을 야기한다.
따라서 전술한 결점들을 극복하면서도 필적하는 WFQ 기술을 제공하는 방법으로 출력 큐 서비스를 순서화하기 위한 모델을 개발할 필요가 있는 것이다.
본 발명의 바람직한 실시예에 따르면, 데이터 스위칭 환경에서 출력 큐 서비스 스케쥴링 방법은 일련의 순환적인 단계들을 포함한다. 출력 큐들은 최하위의 크레디트 값에 근거하여 서비스하도록 스케쥴링된다. 하나의 통신 포트와 연관되는 다수의 출력 큐들로부터 하나의 출력 큐가 선택된다. 이 선택된 출력 포트는 적어도 하나의 전송대기 부하 데이터 유니트 (PDU) 및 그에 연관된 최하위의 크레디트 값을 갖는다. 소정의 길이를 갖는 적어도 하나의 PDU는 선택된 출력 큐로부터 전송되고 그 크레디트 값은 전송된 PDU의 길이를 고려하면서 증분된다. 이러한 PDU 들의 전송은 전송 주기들로 분할된다. 매 전송주기당 한번씩, 전송대기 중인 PDU들을 보유하는 출력 큐들과 연관되는 크레디트 값들이 각 출력 큐에 대해 할당된 전송 배분(apportionments)에 따라 감소된다.
여기에 제안된 방법들은 최소한의 수치계산을 통해 하드웨어적 구현을 가능하게 하는 가중치화 공평 큐 서비스, 즉 WFQ 서비스 기술을 제공하는 것이다.
도 1은 스위칭장치를 통한 PDU들의 예시적인 흐름을 도시하는 개요도.
도 2는 본 발명의 일 실시예에 따른 에뮬레이티드(emulated) 가중치화 공평 큐(WFQ) 기술을 이용하는 큐 서비스를 순서화하는 과정을 도시하는 흐름도.
도 3은 본 발명의 일 실시예에 따른 최하위의 크레디트 값을 갖는 출력 큐로부터 하나의 PDU를 전송하는 과정을 도시하는 흐름도.
도 4는 본 발명의 일 실시예에 따른 출력 큐들과 연관된 크레디트 카운터에 보유되어 있는 크레디트 값에 근거하여 서비스 가능한 출력 큐를 찾는 일반적인 과정을 도시하는 흐름도.
도 5는 본 발명의 일 실시예에 따른 크레디트 카운터를 갱신(updating)하는 과정을 도시하는 흐름도.
도 6은 본 발명의 예시적 구현에 따라 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐를 찾는 예시적인 과정을 도시하는 흐름도.
도 7은 본 발명의 또 하나의 예시적 구현에 따라 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐를 찾는 예시적인 과정을 도시하는 흐름도.
도 1은 스위칭 장치를 통한 PDU들의 예시적인 흐름을 도시하는 개요도이다. CoS와 관계없는 각 PDU는 물리적 매체 102의 위치 104에 개략적으로 도시된 전송율 T로 상기 물리적 전송매체 102 상으로 이송되는데, 이때 각 PDU 106은 전송 목적을 위해 분할 불가한 것으로 간주된다.
상기 출력 물리적 매체 102 상으로의 데이터의 전송은 순차적인 전송 주기들 로 분할되는데, 각각의 전송 주기는 기호 108에 개략적으로 도시된 정수구간 K를 갖는다.
본 발명에 따르면, 각각의 출력 큐 Q(j)는 소망하는 전송 대역폭 할당 A(j)에 기인된다. 각 출력 큐 112에 대한 상기 값 A(j)는 전송 주기 K의 일부에 대응하는 정수인데, 여기서 모든 전송 대역폭 할당들을 제공하는데 필요한 처리시간은 상기 전송주기 K에 더해진다. 정수계산의 수행을 선택하면 신속한 실시간적인 처리를 가능하게 한다.
상기 값들 A(j)가 시간 주기 K의 일부분들을 암시적으로 나타내고 있더라도, A 값들을 비트, 바이트, 옥테트(octets), 셀, 프레임 등으로 정하는 것이 계산적으로는 더 효율적일지 모른다. 당해 기술분야에서 통상의 지식을 가진 자라면 사용된 유니트들은 이행된 디자인 선택사양에 관계없이 서로 상쇄된다는 점을 인식할 것이다. 여기에서 제안된 개념들을 이해하는 것을 돕기 위하여 A(j), C(j), 및 L에 의해 확보되는 값들은 지금까지 바이트로 표시됨을 이해할 것이다.
큐 서비스를 순서화(sequencing)하는데 사용되는 또 하나의 파라미터는 각 PDU 106의 길이 L이다. 각각의 A(j)가 출력 큐 Q(j)와 연관된 PDU들의 전송에 기여될 전송주기 K의 바이트로 측정된 일부분을 나타낼지라도, 각 PDU 길이 L은 각 PDU가 전송될 때 특정한 출력 큐를 서비스함에 있어 실제적으로 전송된 데이터 양을 나타낸다. 상기 PDU 길이 L은 실제적인 PDU 부하(payload) 길이를 포함하고, 추가적으로는 전송 가드 갭(guard gap), 패딩(padding), 기존 헤더(header), 하위 전송 프로토콜 레이어(layer)에 의해 부가된 헤더 등에 상당할 것이다.
본 발명의 바람직한 실시예에 따르면, 크레디트 카운터 C(j)는 각 출력 큐 Q(j)와 연관되고, 각 출력 큐 Q(j)는 먼저 최하위의 크레디트 카운터 C(j)를 갖는 출력 큐 Q(j)를 서비스하는 방향으로 순서에 따른 방식으로 전송을 대기하고 있는 적어도 하나의 PDU가 있을 때에만 제공된다.
시초에는 상기 크레디트 카운터 C(j)는 영으로 설정된다.
각 크레디트 카운터 C(j)는 물리적 전송 매체 102 상으로 대응 출력 큐 보(j)를 서비스하고 그 출력 큐 Q(j)로부터 길이 L의 하나의 PDU 106을 전송할 때 변경된다.
상기 크레디트 카운터 C(j)가 영보다 크거나 같을 경우, 이 크레디트 카운터 C(j)는 방금 전송된 PDU 106의 길이 L의 값이 할당된다. 반면에, 상기 크레디트 카운터 C(j)가 영보다 적을 경우, 그 크레디트 카운터 C(j)는 C(j) + L의 값이 할당된다. 따라서 각 PDU 106이 전송될 때, 전술한 동일한 과정에 의해 최소의 계산으로써 대응하는 크레디트 카운터 C(j)에 대해 L 또는 C(j) + L 중의 더 적은 것을 할당한다.
매 전송주기 K 당 한번씩, 출력 큐들 Q(j)는 전송대기중인 PDU들 106에 대하여 조사된다. 만일 어느 특정한 출력 큐 Q(j)가 적어도 하나의 전송대기 PDU 106을 보유한다면, 대응하는 크레디트 카운터 C(j)는 값 C(J) - A(j)가 할당된다. 만일 어느 특정한 출력 큐 Q(j)가 비어 있는 것으로 판정되면, 대응하는 크레디트 카운터 C(j)는 변화 없이 남겨진다.
상기 출력 큐 서비스 순서화 과정 동안에 크레디트 카운터 C(j)가 음의 값을 가질지도 모른다. 음의 값들을 갖는 C(j)는 PDU 106의 전송에 관하여 쇼트체인지된 (shortchanged) 출력 큐 Q(j)를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 출력 큐 서비스를 속행하는 과정을 도시하는 흐름도이다. 이 출력 큐 서비스 순서화 과정은 직렬이고 본 발명은 에뮬레이티드 WFQ 기술의 직렬(serial) 구현에만 제한되지는 않는다. 전술한 출력 큐 서비스 속행 과정의 하나의 병렬구성의 예는 도 3, 도 4 및 도 5를 참조하여 아래에서 기술될 것이다.
상기 출력 큐 서비스 순서화 과정은 단계 200에서 시작한다. 제1 전송주기 K의 시작 전에 모든 크레디트 카운터 C(j)는 단계 202에서 영의 값으로 채워진다.
최하위의 크레디트 값 C(j)를 갖는 서비스 가능한 출력 큐 Q(j)는 단계 204에서 찾아진다. 최하위의 크레디트 값을 갖는 하나의 서비스 가능한 출력 큐를 구하는 예시적 과정은 도 6과 도 7을 참조하여 이하 설명된다.
상기 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐는 단계 206에서 선택되고 단계 208에서 전송 매체 102 상으로 적어도 하나의 PDU를 전송함으로써 서비스된다. 서비스된 출력 큐 Q(j)에 대응하는 크레디트 카운터 C(j)는 단계 210에서 상기 적어도 하나의 전송된 PDU의 길이와 C(j) + L 사이의 최소치로 설정된다.
하나의 전송주기 K가 경과되지 않았으면, 단계 204의 과정을 재개하고, 단계 212에서 사실이 확인된다.
단계 212에서 전송주기 K가 경과되었으면, 단계 214에서 제1 출력 큐 Q(j)를 선택하고, 단계 216에서 적어도 하나의 전송대기 PDU를 가지는 것으로 발견되면, 단계 218에서 관련된 크레디트 카운터 C(j)는 C(j) - A(j)로 설정된다.
만일 선택된 출력 큐가 단계 216에서 또는 할당에 후속하는 단계 218에서 적어도 하나의 대기 중인 PDU를 가지지 않으면, 단계 220에서의 과정은 상기 선택된 출력 큐 Q(j)가 처리될 마지막 출력 큐인지 아닌지를 식별한다.
만일 상기 선택된 출력 큐 Q(j)가 처리될 마지막 출력 큐가 아니라면, 단계 222에서 다음 출력 큐를 선택하고 단계 216에서부터 재개한다.
단계 220에서 처리될 마지막 출력 큐를 식별한 다음, 단계 204에서 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐를 찾는 과정으로 진행한다.
도 2에서 묘사된 과정은 순차적인 큐 서비스 순서화 과정이다. 당해 기술분야에서 통상의 지식을 가진 사람이라면, 동등한 큐 서비스 순서화 과정이 도3, 도4 및 도 5에 기술된 병렬과정에 제한되지 않고 구현될 수도 있음을 인식할 것이다.
특히, 도 3, 도 4 및 도 5에 기술된 예시적 병렬 구현은 도 4 및 도 5의 종속과정들(subprocesses)의 실행에 의해서 방해됨이 없이 도 3의 큐 서비스 종속과정에 의해서 PDU들 106의 연속적인 전송으로부터 이익을 얻는다.
이상적으로는, 모든 크레디트 카운터들 C(j)는 각 전송주기 K가 경과한 후에 영의 값을 가질 것이다. 그것은, 모든 전송주기 K에 관하여, 각 출력 큐 Q(j)에 대하여 전송된 데이터의 양은 각각의 특정한 출력 큐 Q(j)에 대한 할당된 대역폭에 정확하게 대응한다는 것을 의미한다. 실제로는, PDU들 106은 가변성의 길이를 가지며, 분할 불가능이고, 데이터 트래픽은 돌발적(bursty)일지 모른다. 하나의 전송 주기 K 후에 각 크레디트 카운터 C(j)의 나머지 값들은 데이터 전송에 있어서 일시적인 불균형을 나타낸다.
본 발명의 바람직한 실시예에 따르면, 최하위의 연관된 크레디트 카운터 값 C(j)를 갖는 출력 큐 Q(j)를 서비스하도록 항상 선택함으로써 유발된 일시적인 불균형은 오랜 기간이 지나서 회복된다.
도 6은 본 발명의 예시적인 구현에 따라서 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐를 구하는 예시적인 과정을 도시하는 흐름도이다
하나의 출력포트와 연관된 출력 큐의 리스트가 단계 602에서 획득되고, 대응하는 크레디트 카운터 C(j)에 보유된 크레디트 값에 따라 단계 604에서 구분된다. 최하위의 크레디트 값을 갖는 출력 큐가 단계 606에서 선택되고, 단계 608에서 전송대기중인 PDU들 106에 대해 검사된다.
만일 선택된 출력 큐가 적어도 하나의 전송대기 PDU를 갖는다면, 단계 610에서 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐를 발견했었던 현재의 출력 큐 Q(j)에 대한 지점으로 포인터가 설정된다. 상기 최하위의 크레디트 값을 갖는 서비스 가능한 큐를 선택하는데 있어 단계 206에서 상기 포인터가 검사된다. 당해 기술분야에서 알려진 다른 방법들로서, 제한적이지는 않지만, 현재의 출력 큐 지정 Q(j)로써 하나의 레지스터를 로딩하는(loading) 것이 있다.
만일 단계 608에서 선택된 출력 큐가 적어도 하나의 전송대기 PDU를 갖지 않는다면, 다음으로 낮은 크레디트 값을 갖는 다음 출력 큐가 단계 612에서 선택되고 단계 608에서부터 과정을 재개한다.
리스트에서 마지막 출력 큐가 검사되고, 그 사실이 단계 614에서 확인되면, 단계 616에서 포인터를 'NULL'로 정하고 단계 602에서부터 재개한다.
도 7은 본 발명의 또 하나의 예시적 구현에 따라 최하위의 크레디트 값을 갖는 서비스 가능한 출력 큐를 찾는 또 다른 예시적인 과정을 도시하는 흐름도이다.
출력포트와 연관된 출력 큐 리스트는 단계 702에서 얻는다.
처음에 대기하는 PDU들을 갖지 않는 출력 큐들은 리스트를 통해 스캐닝함으로써 리스트에서 폐기된다. 제1 출력 큐는 단계 704에서 선택되고, 다음으로 단계 706에서 선택된 출력 큐가 적어도 하나의 전송대기 PDU를 갖는지를 결정하기 위해 검사된다.
만일 현재 선택된 출력 큐가 상기 단계 706에서 적어도 하나의 전송대기 PDU를 보유하고 있지 않다면, 현재 선택된 출력 큐는 단계 708에서 리스트로부터 제거된다. 리스트의 끝이 도달되지 않았으면 단계 712에서 다음 출력 큐가 선택되고, 단계 710에서 사실을 확인하고, 단계 706에서부터 과정을 재개한다.
만일 현재 선택된 출력 큐가 상기 단계 706에서 적어도 하나의 전송대기 PDU를 보유하고 있는 것으로 판정되면, 리스트의 끝에 도달하지 않았으면 단계 712에서 다음 번 출력 큐를 선택함으로써 과정을 계속한다.
단계 710에서 리스트의 끝에 도달되면, 상기 리스트는 단계 714에서 검사된다.
단계 714에서 리스트를 검사함에 있어서 상기 리스트가 어떠한 출력 큐를 가지고 있지 않다고 판단되면, 단계 716에서 포인터를 'NULL'로 정하고, 단계 702에서부터의 실행 과정을 재개한다.
그러나 단계 714에서 리스트를 검사함에 있어서 상기 리스트가 적어도 하나의 출력 큐를 가지고 있다고 판단되면, 최하위의 연관된 크레디트 값을 갖는 하나의 출력 큐를 찾기 위해 나머지 리스트를 검색함으로써 과정을 계속한다.
지금까지 발견된 최하위의 크레디트 값을 보유하는 레지스터 C는 단계 718에서 기계적으로 표시 가능한 최대의 값으로 지정된다. 제1 출력 큐는 단계 720에서 나머지의 리스트로부터 선택되고 그것의 연관된 크레디트 값은 단계 722에서 레지스터 C에 보유된 값에 대하여 비교된다.
만일 현재 선택된 출력 큐와 연관되는 크레디트 값이 레지스터 C에 보유된 값 보다 낮다면, 상기 레지스터 C는 단계 724에서 그 크레디트 값이 할당되고, 포인터는 단계 726에서 현재의 출력 큐에 대한 위치로 설정된다. 다음 단계 728에서 리스트의 끝이 도달될 때까지 단계 730에서 다음 번 출력 큐를 선택함으로써 리스트의 나머지를 검색하는 과정을 지속한다.
여기까지 개시된 방법들은 최소의 수치계산으로 실행 가능한 하드웨어적 구현 방법으로써 에뮬레이티드(emulated) 가중치화 공평 큐(Weighted Fair Queue) 서비스를 제공한다.
전술한 실시예들은 단지 예를 들어 설명한 것이며 본 발명의 정신을 이탈하지 않고 어떠한 변경도 가능할 것임을 이해하여야 할 것이다. 본 발명의 범위는 단지 첨부한 청구범위에 의해서만 정해질 것이다.

Claims (12)

  1. 하나의 통신 포트와 연관된 다수의 출력 큐들을 서비스하는 스케쥴링 방법에 있어서,
    (a) 상기 다수의 출력 큐들중에서 적어도 하나의 부하 데이터 유니트(PDU)를 보유하고, 최하위의 크레디트 값을 보유하는 연관된 크레디트 카운터를 가지는 출력 큐를 서비스하기 위한 선택 과정과;
    (b) 상기 선택된 출력 큐로부터 소정의 길이를 가지는 적어도 하나의 PDU가 전송되도록 상기 크레디트 카운터에 보유된 상기 크레디트 값을 선택적으로 증분하는 과정과;
    (c) 각각의 출력 큐에 할당된 전송 대역폭 배분에 따라서 적어도 하나의 전송대기 PDU를 보유하는 출력 큐들과 연관되는 대응하는 다수의 크레디트 카운터들의 부 그룹의 크레디트 값을 주기적으로 감소시키는 과정이 순환적으로 이루어지며,
    종국에는 최소한의 계산으로 최하위의 크레디트 값 에뮬레이티드 가중치화 공평 큐(WFQ)를 가지는 출력 큐을 서비스하기 위한 선택이 성취되는 것을 특징으로 하는 스케쥴링 방법.
  2. 제1항에 있어서, 상기 다수의 출력 큐들은 적어도 두 개의 출력 큐들을 포함하는 스케쥴링 방법.
  3. 제1항에 있어서, 적어도 하나의 PDU를 전송함에 있어서, 상기 방법은 단지 하나의 PDU만을 전송하는 과정을 추가로 포함하는 스케쥴링 방법.
  4. 제1항에 있어서, 상기 선택된 출력 큐와 연관된 상기 크레디트 카운터에 보유된 크레디트 값을 선택적으로 증분하는 과정에 있어, 상기 방법은 상기 크레디트 카운터의 크레디트 값이 양의 값을 갖는다면, 상기 크레디트 카운터의 크레디트 값을 패킷의 길이로 정하는 과정을 추가로 포함하는 스케쥴링 방법.
  5. 제1항에 있어서, 상기 선택된 출력 큐와 연관된 상기 크레디트 카운터의 크레디트 값을 선택적으로 증분하는 과정에 있어, 상기 방법은 상기 크레디트 카운터의 크레디트 값이 음의 값을 갖는다면, 상기 크레디트 카운터의 크레디트 값을 상기 크레디트 카운터의 현재의 크레디트 값과 패킷 길이의 합으로 정하는 과정을 추가로 포함하는 스케쥴링 방법.
  6. 제1항에 있어서, 상기 PDU들의 전송은 전송주기들로 분할되고, 다수의 크레디트 카운터들의 부 그룹의 크레디트 값을 주기적으로 감소시키는 과정은 매 전송주기 동안에 한번씩 수행되는 스케쥴링 방법.
  7. 제6항에 있어서, 상기 다수의 크레디트 카운터들의 부 그룹의 크레디트 값 을 감소시키는 과정은 매 전송주기의 종단에서 수행되는 스케쥴링 방법.
  8. 제7항에 있어서, 상기 크레디트 카운터들의 부 그룹의 크레디트 값들을 감소시키는 과정은 각각의 크레디트 카운터의 값을 현재의 크레디트 카운터 값에서 대응 배분 값을 뺀 값으로 정하는 과정을 추가로 포함하는 스케쥴링 방법.
  9. 제1항에 있어서, 상기 방법은 대응 크레디트 카운터들에 보유된 크레디트 값들에 따라서 적어도 하나의 전송대기 PDU를 보유하는 출력 큐들을 분류하는 과정을 추가로 포함하는 스케쥴링 방법.
  10. 제1항에 있어서, 상기 방법은 대응 크레디트 카운터들에 보유된 최하위의 크레디트 값을 위하여 적어도 하나의 전송대기 PDU를 보유하는 다수의 출력 큐들을 크레디트 카운터를 통해서 검색하는 과정을 추가로 포함하는 스케쥴링 방법.
  11. 제1항에 기재된 큐 서비스 스케쥴링 방법을 실행하는 스케쥴러 장치.
  12. 제1항에 기재된 큐 서비스 스케쥴링 방법을 실행하는 데이터 스위칭 노드 장치.
KR10-2001-0059078A 2000-09-29 2001-09-24 에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치 KR100425061B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23616600P 2000-09-29 2000-09-29
US60/236,166 2000-09-29
US09/808,652 US7142514B2 (en) 2000-09-29 2001-03-15 Bandwidth sharing using emulated weighted fair queuing
US09/808,652 2001-03-15

Publications (2)

Publication Number Publication Date
KR20020025723A KR20020025723A (ko) 2002-04-04
KR100425061B1 true KR100425061B1 (ko) 2004-03-30

Family

ID=26929511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0059078A KR100425061B1 (ko) 2000-09-29 2001-09-24 에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치

Country Status (5)

Country Link
US (1) US7142514B2 (ko)
KR (1) KR100425061B1 (ko)
CN (1) CN1192563C (ko)
CA (1) CA2353657A1 (ko)
TW (1) TWI247512B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7466703B1 (en) * 1998-05-01 2008-12-16 Alcatel-Lucent Usa Inc. Scalable high speed router apparatus
US7424013B1 (en) 2001-12-20 2008-09-09 Applied Micro Circuits Corporation System and method for granting arbitrated bids in the switching of information
US7352694B1 (en) * 2001-12-14 2008-04-01 Applied Micro Circuits Corporation System and method for tolerating data link faults in a packet communications switch fabric
US8418129B1 (en) 2001-12-14 2013-04-09 Qualcomm Incorporated Method for automatically generating code to define a system of hardware elements
US7346068B1 (en) * 2002-12-13 2008-03-18 Cisco Technology, Inc. Traffic management scheme for crossbar switch
KR100927313B1 (ko) 2003-01-24 2009-11-18 주식회사 케이티 이더넷 서비스의 대역폭 제어 장치 및 그 방법
GB0619519D0 (en) * 2006-10-04 2006-11-15 Siemens Ag Packet scheduling
US8045563B2 (en) 2007-12-27 2011-10-25 Cellco Partnership Dynamically adjusted credit based round robin scheduler
FR3030962B1 (fr) * 2014-12-19 2018-04-13 Airbus Operations Systeme de communication d'un aeronef
US10432536B1 (en) * 2017-12-11 2019-10-01 Xilinx, Inc. Systems and methods for policing streams in a network
WO2021113413A1 (en) * 2019-12-02 2021-06-10 DRW Technologies, LLC System and method for latency critical quality of service using continuous bandwidth control

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231633A (en) * 1990-07-11 1993-07-27 Codex Corporation Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
JPH1084383A (ja) * 1996-09-10 1998-03-31 Toshiba Corp パケットスケジューリング装置及びパケット転送方法
US5859835A (en) * 1996-04-15 1999-01-12 The Regents Of The University Of California Traffic scheduling system and method for packet-switched networks
JPH1168770A (ja) * 1997-08-08 1999-03-09 Nec Corp Atmスイッチにおけるスケジューリング方式
KR19990053408A (ko) * 1997-12-24 1999-07-15 이계철 비동기전달모드 스위치에서 셀지연 우선순위 큐잉 대역폭 동적할당 방법
JP2000270023A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd Lan中継交換装置
KR20010000087A (ko) * 2000-02-25 2001-01-05 안병엽 고속 통합 서비스망에서 wfq의 에뮬레이션을 통한 공정패킷 스케쥴링 방법 및 그 공정 패킷 스케쥴러
KR20010048029A (ko) * 1999-11-24 2001-06-15 서평원 에이티엠 스위치의 가중 우선순위에 따른 셀 스케쥴링 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3720406B2 (ja) 1995-03-09 2005-11-30 旭シュエーベル株式会社 ガラス繊維織物およびその製法
EP0748086A1 (en) * 1995-06-09 1996-12-11 Siemens Aktiengesellschaft Method for scheduling message cells leaving an ATM node
JPH09227193A (ja) 1996-02-20 1997-09-02 Sekisui Chem Co Ltd 硬質木片セメント板
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
US6052375A (en) * 1997-11-26 2000-04-18 International Business Machines Corporation High speed internetworking traffic scaler and shaper
US6618354B1 (en) * 1998-03-13 2003-09-09 Hewlett-Packard Development Company, L.P. Credit initialization in systems with proactive flow control
CA2245367A1 (en) * 1998-08-19 2000-02-19 Newbridge Networks Corporation Two-component bandwidth scheduler having application in multi-class digital communication systems
US6570883B1 (en) * 1999-08-28 2003-05-27 Hsiao-Tung Wong Packet scheduling using dual weight single priority queue
US6735174B1 (en) * 2000-03-29 2004-05-11 Intel Corporation Method and systems for flow control of transmissions over channel-based switched fabric connections
US6683884B1 (en) * 2000-03-31 2004-01-27 Intel Corporation Shared credit round robin queuing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231633A (en) * 1990-07-11 1993-07-27 Codex Corporation Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
US5859835A (en) * 1996-04-15 1999-01-12 The Regents Of The University Of California Traffic scheduling system and method for packet-switched networks
JPH1084383A (ja) * 1996-09-10 1998-03-31 Toshiba Corp パケットスケジューリング装置及びパケット転送方法
JPH1168770A (ja) * 1997-08-08 1999-03-09 Nec Corp Atmスイッチにおけるスケジューリング方式
KR19990053408A (ko) * 1997-12-24 1999-07-15 이계철 비동기전달모드 스위치에서 셀지연 우선순위 큐잉 대역폭 동적할당 방법
JP2000270023A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd Lan中継交換装置
KR20010048029A (ko) * 1999-11-24 2001-06-15 서평원 에이티엠 스위치의 가중 우선순위에 따른 셀 스케쥴링 방법
KR20010000087A (ko) * 2000-02-25 2001-01-05 안병엽 고속 통합 서비스망에서 wfq의 에뮬레이션을 통한 공정패킷 스케쥴링 방법 및 그 공정 패킷 스케쥴러

Also Published As

Publication number Publication date
KR20020025723A (ko) 2002-04-04
US20020039351A1 (en) 2002-04-04
US7142514B2 (en) 2006-11-28
CA2353657A1 (en) 2002-03-29
CN1192563C (zh) 2005-03-09
TWI247512B (en) 2006-01-11
CN1359219A (zh) 2002-07-17

Similar Documents

Publication Publication Date Title
Sariowan et al. SCED: A generalized scheduling policy for guaranteeing quality-of-service
JP3715098B2 (ja) 通信ネットワークにおけるパケットの配送装置とその方法
US5831971A (en) Method for leaky bucket traffic shaping using fair queueing collision arbitration
US7958260B2 (en) Method and apparatus for queuing data flows
US7701849B1 (en) Flow-based queuing of network traffic
US6389019B1 (en) Time-based scheduler architecture and method for ATM networks
KR100431191B1 (ko) 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법
US6396843B1 (en) Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using logarithmic calendar queues
US7206858B2 (en) DSL transmit traffic shaper structure and procedure
US6795870B1 (en) Method and system for network processor scheduler
US20030219026A1 (en) Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
US7894347B1 (en) Method and apparatus for packet scheduling
US20050152374A1 (en) Propagation of minimum guaranteed scheduling rates among scheduling layers in a hierarchical schedule
US7522620B2 (en) Method and apparatus for scheduling packets
US6246687B1 (en) Network switching system supporting guaranteed data rates
KR100425061B1 (ko) 에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치
CA2462793C (en) Distributed transmission of traffic streams in communication networks
US7426215B2 (en) Method and apparatus for scheduling packets
US8929216B2 (en) Packet scheduling method and apparatus based on fair bandwidth allocation
EP1627482B1 (en) System and method for time-based scheduling
US8467401B1 (en) Scheduling variable length packets
US7324554B1 (en) Communication bandwidth distribution system and method
US7130270B2 (en) Method and apparatus for varying bandwidth provided to virtual channels in a virtual path
US7599381B2 (en) Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group
US6654345B1 (en) Single-bit timestamps for data transfer rate and delay guarantees in a packet network

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130308

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee