KR20030001412A - 스위치에서의 대역폭 분배를 위한 방법 및 장치 - Google Patents

스위치에서의 대역폭 분배를 위한 방법 및 장치 Download PDF

Info

Publication number
KR20030001412A
KR20030001412A KR1020027013568A KR20027013568A KR20030001412A KR 20030001412 A KR20030001412 A KR 20030001412A KR 1020027013568 A KR1020027013568 A KR 1020027013568A KR 20027013568 A KR20027013568 A KR 20027013568A KR 20030001412 A KR20030001412 A KR 20030001412A
Authority
KR
South Korea
Prior art keywords
traffic class
bandwidth
packet
counter
port
Prior art date
Application number
KR1020027013568A
Other languages
English (en)
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 KR20030001412A publication Critical patent/KR20030001412A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1302Relay switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1304Coordinate switches, crossbar, 4/2 with relays, coupling field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13056Routines, finite state machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13141Hunting for free outlet, circuit or channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13332Broadband, CATV, dynamic bandwidth allocation

Abstract

본 발명은 스위치 또는 라우터에서 대역폭 분배를 위한 방법 및 장치에 관한 것이다. 특히, 본 발명은 출력 포트로 향하고 다양한 트래픽 클래스들 및 플로우들에서 수신되는 데이타 트래픽 상에서 대역폭 분배를 위한 스케줄러 및 관련 알고리즘에 관한 것이다. 상기 스위치는 스위칭 구조를 포함한다. 바람직하게는 상기 대역폭 스케줄러는 출력 대기행렬 앞에 위치한다. 상기 방법은 스위칭 구조로부터 데이타 스트림을 수신하는 단계 및 상기 스트림이 전송 또는 중단(수용 또는 거절)되도록 상기 대역폭 스케줄러에서 결정 알고리즘을 상기 데이타 스트림에 적용하는 단계를 포함하고 상기 대역폭 스케줄러의 결정 알고리즘은 패킷이 수용 또는 거절여부를 결정한다. 바람직하게는, 상기 데이타 스트림은 식별 데이타 패킷을 포함하고 대역폭 스케줄러의 결정 알고리즘은 패킷이 수용 또는 거절된 것인지 여부를 결정한다. 상기 대역폭 스케줄러는 출력 대기행렬 전에 위치하여 조기에 패킷 패기하고 효율적인 출력 버퍼 메모리의 효율을 높인다. 이러한 알고리즘은 대역폭 분배를 구현하기 위해 수용 트래픽을 기록하는 변수들 및 카운터에서 동작하는 논리룰들을 포함한다. 이러한 알고리즘은 가중 분배 및 장기 및 단기 공정성(fairness)을 제공한다.

Description

스위치에서의 대역폭 분배를 위한 방법 및 장치{METHOD AND APPARATUS FOR DISTRIBUTION OF BANDWIDTH IN A SWITCH}
문서 Andras Racz, Gabor Fodor, Zoltan Turanyi:Weighted Fair Early Packet Discard at an ATM Switch Output Port, 0-7803-55420-6/99 1999 IEEE 는 ATM 스위치에서의 공정성 및 대역폭 이용에 대한 유사한 개념을 제시하고 있다. 소정 가중 몫(share)이 데이타 스트림과 관련된다. 알고리즘은 장기간의 평균에서 스트림들에 대해 이러한 대역폭 몫을 제공하고자 한다. 그러나, 상기 문서는 대역폭에서의 스케줄러 분할 및 잠복 스케줄링 등에 대해서는 제시하고 있지 않다.
본 발명의 목적은 스케줄러를 두개 부분, 대역폭 스케줄러 및 잠복 스케줄러로 분할하는 것이다. 대역폭 스케줄링은 패킷이 출력 대기행렬에 도달하기 전에 수행된다. 떨어뜨리는 것이 적합한 패킷들은 순향적으로 차단된다. 따라서, 대역폭을 할당하기 위해 플로우 및/또는 트래픽 플로우들을 구별하는 것이 필요하지 않게된다.
본원발명은 스위치 또는 라우터에서 대역폭 분배를 위한 방법 및 장치에 관한 것이다. 특히, 본원발명은 출력포트로 전송되고 다양한 트래픽 클래스들 및 플로우들에서 수신되는 데이타 트랙픽상의 대역폭을 분배하는 스케줄러 및 관련 알고리즘에 관한 것이다. 대역폭 스케줄러는 출력 대기행렬들 전에 위치하여 조기에 패킷들을 패기하고 효율적인 출력 버퍼 메모리의 사용을 가능케한다. 이러한 알고리즘은 대역폭 분배를 구현하기 위해 수용된 트래픽을 리코딩하는 변수들 및 카운터에서 동작하는 논리 룰들을 포함한다. 이러한 알고리즘은 가중 분배 그리고 단기 및 장기 공정성(fairness)을 가능케한다.
도1은 종래 기술의 스케줄러에 관한 블록 다이아그램이다.
도2는 본 발명에 따른 분할 스케줄러 구조의 블록 다이아그램이다.
도3은 종래 기술의 Max-Min 알고리즘에 따른 대역폭 분배 알고리즘에 관한 도이다.
도4는 본 발명에 따른 백로깅 및 채러티(charity) 카운터를 사용하는 수용 대역폭 알고리즘에 관한 다이아그램이다.
도5는 도4와 관련된 백로깅 카운터 다이아그램이다.
도6은 도4와 관련된 경험적 대역폭에 관한 다이아그램이다.
도7은 상이한 레벨들에서의 계층적 트래픽 구조에 대한 다이아그램이다.
본 발명의 이러한 목적 및 다른 목적들은 스위칭 구조를 갖는 스위치에서의 대역폭 스케줄링 방법 및 장치에 의해 달성된다. 제1 실시예에 따르면, 대역폭 스케줄러는 출력 대기행렬 전에 위치하고, 상기 방법은 스위칭 구조로부터 데이타 스트림을 수신하는 단계; 상기 스트림에 대역폭 스케줄러에서 결정 알고리즘을 적용하여 스트림이 전송 또는 중단(수용 또는 거절)되도록 하는 단계를 포함한다. 바람직하게는, 상기 데이타 스트림은 식별가능한 데이타 패킷들을 포함하고 대역폭 스케줄러의 결정 알고리즘은 데이타 패킷이 수용 또는 거절되는 것을 결정한다.
추가적인 실시예들에 따르면, 다수의 논리 룰들 및 연산들이 하기에 제시된 것들을 통해 실행된다:
한계(BWPmax)는 포트당 최대 수용 대역폭에서 설정되고, 가상 대기행렬은 각 포트와 관련되며, 플래그는 포트 대기행렬 길이에 따라 설정된다;
한계(BWTCmax)는 트래픽 클래스당 최대 수용 대역폭에서 설정되고, 가상 대기행렬은 각 트래픽 클래스와 관련되며, 플래그는 트래픽 클래스 대기행렬 길이에 따라 설정된다;
대역폭은 Max-Min 알고리즘에 따라 분배된다;
각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장된다;
가중(WTC)은 알고리즘이 자동적으로 어떠한 트래픽 클래스들보다 우선하도록 하기 위해 각 트래픽 클래스들과 관련된다;
각 클래스에 있어서, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해서 얼마나 많은 패킷들이 수용되는지에 관한 정보를 얻어내어, 이전의 유휴 트래픽 클래스가 활성이 되면, 보다 많은 대역폭을 이러한 트래픽 클래스에 분배하므로써 트래픽 클래스가 보상된다;
하나의 트래픽 클래스가 특히 적극적 또는 활성이 되면, 그 수용 대역폭의 일부를 포기한다.
추가적인 실시예에 따르면 대역폭 스케줄러는 출력 대기행렬 후에 위치한다.
본 발명의 일 장점은 대역폭이 훨씬 일찍 분배되어 보다 적은 버퍼가 요구되고 보다 작은 버퍼 사용 변동을 야기시킨다는 것이다. 또한 가중 라운드 로빈 및 가중 공정성 대기와 같은 알고리즘이 가능한한 많은 대기행렬들을 필요로함에 비해 상기 알고리즘은 포트당 출력 대기행렬들의 수와는 완전히 독립적이라는 것이다.
일반적으로, 스케줄러의 임무는 스위칭 구조로부터 수신된 트래픽을 출력 포트들 및 각 출력 링크들로 전송하거나 패기하는 것이다. 서비스 품질 개념이 스위칭 동작의 품질을 정의하기 위해 도입되었다. 4개의 상이한 서비스 품질이 연구될 수 있다. 첫째는 잠복, 흐름이 장치를 통해 경험하는 지연이다. 둘째는 지터, 또는 잠복 변동이다. 세째는 대역폭 분배이고 네째는 손실 확률이다. 본 발명은 주로 대역폭 분배와 관련된다.
도1에서, 결합된 잠복 및 대역폭 분배를 갖는 종래기술 구조가 제시된다. 트래픽은 스위칭 구조에 의해 스위칭되고 각각 다수의 대기행렬을 갖는 포트들 상에서 분배된다. 스케줄러는 출력 대기행렬 이후에 위치한다. 이러한 종류의 스케줄러의 예는 라운드 로빈, 가중 라운드 로빈 및 가중 공정성 대기들이다. 여기서 대기행렬들은 상이한 플로우들 및/또는 트래픽 클래스들을 분리하여 스케줄러가 그들을 구별할 수 있도록 하기 위해 사용된다. 이러한 타입의 구조는 테일-드롭 또는 푸쉬-아웃 투 드록 패킷과 같은 일반적인 기술들을 사용한다.
도2에서 본 발명에 따른 스케줄러 구조가 제시된다. 중요한 차이점은 스케줄러가 2개 포트, 대역폭 스케줄러 및 잠복 스케줄러로 분할된다는 것이다. 대역폭 스케줄링은 패킷이 출력 대개행렬들에 도달하기 전에 수행된다. 떨어뜨리기에 적합한 패킷들은 순향적으로 차단된다. 따라서 대역폭을 할당하기위해 플로우들 및/또는 트래픽 플로우들을 구별하는 것이 필요하지 않고 출력 대기행렬들은 잠복 우선성만을 위해 사용될 수 있다. 일 장점은 대역폭이 훨씬 일찍 분배되어 보다 작은 버퍼 요구조건 및 보다 작은 버퍼 사용 변동이 가능하다는 것이다. 또한 가중 라운드 로빈 및 가중 공정성 대기와 같은 알고리즘이 가능한한 많은 대기행렬을 필요로함에 비해 상기 알고리즘은 포트당 대기행렬들의 수에 대해 완전히 독립적이다.
잠복 스케줄러는 본 발명에 따라 대역폭 스케줄러와 함께 동작할 수 있고 엄격한 우선순위가 제안된다.
본 발명의 또 다른 양상은 이러한 대역폭 스케줄러 알고리즘이다. 이러한 알고리즘은 각 포트에서 플로우들 및 트래픽 클래스들 사이의 공정한 대역폭 분배를 목적으로 한다. 이러한 알고리즘은 각 플로우의 대역폭 요구와 같은 다양한 인자들을 고려하고, 장기 및 단기 공정성은 하기에서 상술될 것이다. 이러한 알고리즘은 일반적이고 원칙적으로 출력 포트 이전 또는 이후에 위치될 수 있다.
공정한 대역폭 분배는 다양한 방식으로 달성될 수 있다. 또한 공정성은 상이한 정의를 가지고 다양한 방식으로 측정될 수 있다. 공정성은 요구 대역폭의 합으로 나뉘어진 요구 대역폭과 동일한 대역폭을 분배하는 것으로 정의될 수 있다. 이는 수개의 라운드 로빈 방식에 의해 달성될 수 있다. 그러나 본 발명에서 Max-Min 알고리즘이 선호된다. 상기 이름과 같이, 이러한 알고리즘은 최소 플로우를 최대화한다. 이는 모든 흐름들이 증가된 대역폭들로 동일하게 이익을 볼 수 있다면 가장 공정한 알고리즘으로 간주된다.
Max-Min 알고리즘은 도3에 제시된다. 기본 개념이 동일 대역폭이 동일 이용성이라면, 한계 l을 발견하는 것이 가장 공정하고 여기서 l 보다 작게 제공하는 모든 흐름들은 어떠한 손실도 경험하지 않는다. 보다 많은 트래픽을 제공하는 플로우들은 그들이 아무리 많은 대역폭을 제공하더라고 l 까지의 대역폭만을 갖는다. 공정한 몫이 모든 플로우들에 의해 사용되지 않기 때문에, 여분 대역폭은 공정 몫 할당 이후에 남아있다. 이러한 여분 대역폭은 이러한 공정한 몫보다 많은 트래픽을 제공하는 플로우들에서 한계 l 까지 분배된다. 한계 l 보다 많은 트래픽을 제공하는 플로우들은 이러한 트래픽 부분들이 차단되도록 한다.
본 발명은 Max-Min 알고리즘의 추가적인 확장을 제안한다:
첫째로, 모든 흐름들은 동일하지 않다. 각 흐름은 대역폭이 각 플로우의 가중과 관련하여 분배되도록 가중과 관련된다. 바람직하게는, 각 트래픽 클래스는 가중을 가지고 있고 트래픽 클래스내의 플로우들은 동일하게 취급된다.
둘째로, 일부 플로우들은 대역폭이 보장될 수 있다. 즉, 플로우들이 보장된 대역폭 한계를 초과하기 까지는 어떠한 데이타 패킷들도 상실되지 않는다.
세째로, 단기 공정성이 플로우들 사이에서 도입된다. 비록 상기 라인이 완전이 이용되지 않는 상태로 남겨지더라도 최대화된 플로우는 그 한계보다 많은 대역폭을 가질수 없다.
네째로, 단기 공정성이 플로우들 사이에서 도입된다. 플로우가 폭주하면, 즉 수용된 대역폭 보다 많은 패킷들이 전송되면, 스케줄링 유연성을 위해 단기간동안 이는 수용된다. 다른 플루우들은 장래에 보상될 것이다.
다섯째로, 플로우들 사이의 장기 공정성이 또한 도입된다. 흐름이 일정 기간동안 폭주하면 다른 플로우들에 대한 그 수용 대역폭을 "채러티"로서 포기해야만 한다. 플로우가 일정 기간동안 잠잠하면, 축적된 채러티에 의해 장래에 보상되어플로우가 경쟁 플로우들보다 많은 대역폭이 할당될 수 있다. 그러나 이러한 일정 기간은 제한되어야 하고 축적된 보상량 또한 제한되어야 한다.
상기 알고리즘의 구현은 하기에서 상술된다.
대역폭 스케줄러는 일반적으로 데이트 스트림을 수신한다. 이러한 스트림은 TCP(전송 제어 프로토콜) 및 UDP(사용자 데이타그램 프로토콜)과 같은 상이한 프로토콜들에 따라 셀들 또는 데이타 패킷들내에서 조직된다. 데이타 패킷 및 이러한 응용예들에서 유사한 어구들은 임의의 데이타 엔티티들을 포괄하기 위해 사용된다. 또한 상이한 환경들하에서, 상이한 의미들을 가질 수 있는 플로우라는 어구의 사용역시 실용적이다. 만약 예를 들어 TCP/IP 가 사용되면 플로우는 응용 플로우(소스 및 목적지 모두에서의 포트 및 어드레스) 또는 호스트 플로우(소스 및 목적지의 어드레스만)일 수 있다. 각 플로우는 다음 카테고리에 대한 그 식별로서 분류되는 것으로 가정한다.
트래픽은 각 포트들에서 분배된다. 이는 직접적이지만 일반적으로 운영자는 포트당 최대 수용 대역폭에 대한 한계를 설정한다.
각 포트는 다수의 트래픽 클래스들을 수용할 수 있다. 모든 플로우들은 클래스들로 카테고리화된다. 클래스는 일반적으로 일부 네트워크 프로토콜들 및/또는 네트워크 호스트들에 기반하지만, 본원발명은 임의의 카테고리에 기반할 수 있다. 이러한 클래스들은 완전히 분리되어야만 하고 본원발명은 모든 클래스들에 대해 인에이블될 필요는 없다. 트래픽 클래스내의 모든 흐름들은 동일하다. 이것이 바람직하지 않다면, 트래픽 클래스는 2개 또는 그 이상의 클래스들로 분할될 필요가 있다.
원칙적으로, 응용 플로우는 스케줄러에 의해 취급되는 가장작은 유닛이다. 그러나, 응용 플로우들의 수는 매우 크고 고속으로 성장하는 것으로 보이기 때문에, 본원발명은 플로우 그룹으로 언급되는 해쉬 그룹세트로 해쉬 함수에 의해 응용 플로우들을 함께 그룹화하는 것을 제안한다. 이러한 해쉬 함수는 하나의 플로우에 속하는 모든 패킷들이 동일한 플로우 그룹들에 항상 매핑되도록 결정론적이고 고정적이다. 플로우 그룹들이 사용되면, 본원발명은 플로우 그룹들 내의 플로우들 사이를 구별하지 않는다.
본원발명의 물리적인 구현은 출력 대기행렬 전 또는 후의 스케줄러에 저장된 프로그램에서 이루어진다. 이러한 프로그램은 상수, 구성 파라미터 및 다양한 변수들 및 카운터에서 동작하는 논리 룰들을 정의하는 알고리즘을 포함한다. 인입 데이타 스트림은 데이타 스트림의 일부분, 예를 들면 개별 데이타 패킷들의 헤더에서 알고리즘이 동작하는 동안 버퍼에 저장된다. 추출된 정보 또는 헤더는 상기 알고리즘을 통해 처리되고 그 결과는 데이타 스트림이 전송 또는 중단(데이타 패킷의 경우에는 패킷의 수용 또는 거절)이다. 다양한 카운터들은 각 트래픽 클래스 및 플로우 그룹들에 대해 수용된 트래픽으로부터 계속하여 정보를 얻어낸다. 또한, 상기 변수들 및 카운터들은 일정간격으로 갱신된다. 상기 처리는 상기 알고리즘의 다양한 부분을 참조하여 하기에서 상술된다.
다수의 파라미터들 및 변수들이 상기 알고리즘을 구현하기 위해 사용된다. 이들은 상기 변수들의 계층적 순서 및 상기 변수들의 증가, 감소 및 갱신을 위한 룰들을 보여주는 하기 테이블에서 리스트화된다.
구성 파라미터
포트 트래픽 클래스 플로우 그룹
BWPmax BWTCmax
BWTCmin
WTC
BWPmax포트당 최대 대역폭
BWTCmax트래픽 클래스 당 최대 대역폭
BWTCmin트래픽 클래스 당 최소 대역폭
WTC 트래픽 클래스 당 가중
포트 카운트들 및 변수들
이름 논리 전송/패기된 패킷당 증분 시간 유닛 당 업데이트
VQLP + 패킷 길이 -BWPmax
TCPmax =max(포트의 모든 TC들) - -
BLPmax =max(포트의 모든 BL들) - -
CH 주어지면, +패킷 길이 ×주어진 인자취해지면, -패킷 길이 ×WTC ×감쇠 인자(예를 들면, 15/16)
VQLP 포트당 가상 대기행렬 길이
TCPmax포트당 최대 트래픽 클래스 변수
BLPmax포트당 최대 백로깅 변수
CH 포트당 채러티 카운터
트래픽 클래스 카운터 및 변수들
이름 논리 전송된 패킷당 증분 시간 유닛 당 업데이트
TC +패킷 길이 ×WTC -BWTC ×WTC
FGmax =max(TC의 모든 FG들) - -
BL 0〈 BL〈256kB +패킷 길이 ×WTC -BWTCmin ×WTC
VQLTC +패킷 길이 -BWTCmax
TC 트래픽 클래스 카운터
FGmax 트래픽 클래스 당 최대 플로우 그룹 변수
BL 트래픽 클래스 당 백로깅 카운터
VQLTC 트래픽 클래스 당 가상 대기행렬 길이
플로우 그룹 카운터
이름 논리 전송된 패킷당 증분 시간 유닛 당 업데이트
FG +패킷 길이 -
FG 플로우 그룹 카운터
본 발명을 설명하기 위해 데이타 스트림이 플로우 식별에 관한 정보를 수반하는 패킷에서 도달한다고 가정한다. 각 포트는 데이타 스트림의 각 부분을 수신한다. 스케줄러는 구성 파라미터 BWPmax(포트당 최대 대역폭)에 의해 포트당 수용 대역폭량을 제한하도록 구성된다. 각 포트에 대해 수용 대역폭에 관한 정보를 계속 추적하기 위해 가상 대기행렬이 구현된다. 즉, 카운터 VQLP(포트의 가상 대기행렬 길이)는 포트가 패킷을 수용할 때 패킷 길이를 증가시킨다. 구성 파라미터 BWPmax 를 감산시켜 각 시간 유닛에서 카운터 VQLP를 업데이트 또는 리프레싱함으로써, 한계는 자동적으로 유지된다. 가상 대기행렬이 너무 길게 성장하면(VQLP〉상수), 패킷들은 거절된다.
상기한바와 같이, 각 포트는 또한 일반적으로 다양한 트래픽 클래스들을 수용한다. 각 트래픽 클래스는 각 트래픽 클래스의 수용된 대역폭 정보를 추적하기 위해 가상 대기행렬 길이 카운터 TC를 가지고 있다. 변수 TCPmax 는 당면하는 포트에 대한 트래픽 클래스 카운터들의 최대치와 동일한 값에서 설정되고 가장 높은 값을 갖는 트래픽 클래스 카운터의 기록의 유지한다. 카운터 TC는 트래픽 클래스가 패킷을 수용할 때 패킷길이를 증가시킨다. 또한, 카운터 TC는 구성 파라미터 BWTCmin 를 감산함으로써 각각의 시간 유닛에서 업데이트 또는 리프레싱된다. 공정성은 다양한 방식으로 정의될 수 있다. 본 발명에서 공정성은 차이 또는 비율로서 계산된다. 따라서, 차이 TCPmax - TC 〈 상수, 예를 들면 128kB 를 갖는 트래픽 클래스는 공정한 것으로 간주되고, 보다 분주한 클래스들은 공정하지 않다고 간주된다. 대안적으로, 비율 TC/TCPmax〈 상수, 예를 들면 0.75 를 갖는 트래픽 클래스는 공정한 것으로 간주되고, 보다 분주한 클래스들은 공정하지 않은 것으로 간주된다. 트래픽 클래스가 공정하면, 제공된 패킷은 수용된다. 가상 대기행렬이 너무 성장하면(TC〉상수), 공정하지 않은 패킷들은 거절된다. 가장 적극적인 트래픽 클래스(TC=TCPmax)에 있어서, 제공된 패킷들은 가상 대기행렬이 훨씬 짧은 경우에 거절된다. 이러한 방식으로 카운터 TC 는 트래픽 클래스에 대한 기본적인 알고리즘 Max-Min 구현을 돕는다.
또한 각 플로우 그룹은 얼마나 많은 패킷들이 수용되는지를 추적하는 가상 대기행령 카운터 FG를 갖는다. 각 트래픽 클래스는 변수 FGmax를 가지고, 상기 변수는 이러한 트래픽 클래스에 속하는 카운터 FG의 최대값으로 설정된다. 차이 FGmax-FG〈 상수, 예를 들면 128kB 를 갖는 플로우 그룹은 공정한 것으로 간주되고, 보다 분주한 플로우 그룹은 공정하지 않은것으로 간주된다. 대안적으로 비율 FG/FGmax〈 상수, 예를 들면 0.75를 갖는 플로우 그룹은 공정한 것으로 간주되고 보다 분주한 플로우 그룹들은 공정하지 않은 것으로 간주된다. 가장 적극적인 플로우 그룹에 있어서(FG=FGmax), 제공된 패킷들은 가상 대기행렬이 훨씬 짧은 경우에 거절된다. 이러한 방식으로, 카운터 FG는 플로우 그룹들에 대해 기본 알고리즘 Max-Min 구현을 돕는다.
본 발명은 상기 내용에 추가하여 Max-Min 알고리즘의 추가적인 확장을 포함한다. 상기 추가는 서로 병렬적이고 독립적으로 동작한다. 모든 추가들이 구현될 필요는 없지만 다양한 방식으로 결합될 수 있다.
다른 트래픽 클래스들에 비해 어떠한 트래픽 클래스들에 우선순위를 부여하기 위해서, 가중이 각 트래픽 클래스와 관련된다. 구성 파라미터 WTC(가중 트래픽클래스)가 스케줄러를 초기화할 때 설정된다. 패킷들이 수용되면 각 카운터들은 가중방식으로 증가되어, 알고리즘은 자동적으로 어떠한 트래픽 클래스들에 우선순위를 부여한다. 따라서, 카운터 TC는 트래픽 클래스가 패킷을 수용할 때 가중 WTC에 의해 승산된 패킷 길이로 증가된다. 물론, 가중 함수는 모든 가중 WTC를 1로 설정함으로써 디스에이블될 수 있다.
각 트래픽 클래스는 보장된 대역폭과 관련된다. 구성 파라미터 BWTCmin(최소 대역폭 트래픽 클래스)는 스케줄러를 초기화할 때 설정된다. 당면한 트래픽 클래스가 보장된 대역폭 보다 작은 대역폭을 제공하면, 항상 수용된다. 물론 모든 트래픽 클래스들에 대한 보장된 총 대역폭은 포트의 최대 대역폭 BWPmax 보다 작거나 같아야 한다.
카운터 TC 는 가중 WTC 에 의해 승산된 구성 파라미터 BWTCmin 를 감산함으로써 매 시간 유닛마다 업데이트 또는 리프레싱된다. 이는 가중 및 보장 대역폭 모두를 설명한다. 이러한 감산은 이러한 클래스에 대해 BWTCmin 이하의 모든 트래픽이 수용되도록 한다. 카운터 TC 가 BWTCmin 모다 커지면, 트래픽은 다른 플로우들과 동일하게 경쟁할 것이다.
최대 대역폭은 각 트래픽 클래스와 관련된다. 구성 파라미터 BWTCmax(최대 대역폭 트래픽 클래스)는 스케줄러를 초기화할 때 설정된다. 이러한 파라미터는 존재하는 여분 용량에 관계없이 트래픽 클래스의 수용된 트래픽 량을 제한한다. 또 다른 가상 대기행렬은 수용된 패킷의 수를 카운팅하는 카운터 VQLTC(트래픽 클래스당 가상 대기행렬 길이)에 의해 각 트래픽 클래스와 관련된다. 카운터 VQLTC는 구성 파라미터 BWTCmax를 감산함으로써 매 시간 유닛마다 업데이트 또는 리프레싱된다. 따라서, 상기 한계는 자동적으로 유지된다. 가상 대기행렬이 너무 길어지면(VQLTC〉상수 + (가능하게는) 상이한 패킷 사이즈들을 허용하는 허용 상수), 패킷들은 거절된다.
폭주 트래픽을 수용하면서 단기간에 대해 제시된 공정한 방식으로 대역폭을 분배하기 위해서, 카운터가 각 트래픽 클래스들에 도입되어 동일한 포트에 속하는 다른 트래픽 클래스들에 대한 하나의 트래픽 클래스의 수용된 트래픽량 기록을 유지한다. 상기 카운터들은 백로깅 카운터 BL로 불린다. 또한, 하나의 변수 BLPmax(백로깅 포트 최대치)는 각 포트의 트래픽 클래스들에 대한 백로깅 카운터들의 최대치를 저장한다. 차이 BLPmax - BL〈 상수, 예를 들면 128kB 를 갖는 트래픽 클래스는 공정한 것으로 간주되고, 보다 분주한 트래픽 클래스들은 공정하지 않은 것으로 간주된다. 대안적으로, 비율 BL/BLPmax 〈 상수, 예를 들면 0.75 를 갖는 트래픽 클래스는 공정한 것으로 간주되고, 보다 분주한 클래스들은 공정하지 않은 것으로 간주된다. 카운터 BL은 트래픽 클래스가 패킷을 수용할 때 가중 WTC 에 의해 승산된 패킷 길이로 증가된다. 카운터 BL은 가중 WTC 에 의해 승산된 구성 파라미터 BWTCmin 를 감산함으로써 매 시간 유닛마다 업데이트 또는 리프레싱된다. 이러한 방식으로 카운터 BL은 카운터 TC 및 FG와 함께 기본 알고리듬 Max-Min 구현을 돕는다. 이러한 카운터 BL은 단기 공정성 개념과 관련되지만, 백로깅 카운터 BL은 또한 가중 함수에 중요하다.
트래픽 클래스가 일부 시간동안 유휴상태이면, 여분 대역폭은 활성 플로우들사이에서 분배된다. 유휴 플로우가 다시 활성상태가 되면, 상기 플로우는 보다 많은 대역폭을 그 플로우에 분배함으로써 보상된다. 다른 한편으로, 현재 활성 클래스는 링크를 독점하여 이를 달성하는 것은 허용되지 않는다. 대신, 이는 플로들이 다시 동일하게 취급되기 까지 보다 많은 대역폭 부분이 정적인 클래스에 주어지면, 이는 느린 과정이어야 한다. 다른 한편으로, 하나의 트래픽 클래스가 특히 적극적이거나 활동적이면, 그 수용된 대역폭의 일부를 "채러티" 로서 포기하여야 한다. 이러한 상황들 모두는 장기간의 공정성 개념과 관련된다. 이러한 특징은 각 포트(및 존재하면, 추가된 레벨)에 대한 카운터 CH(채러티)와 관련된다. 포트 아래의 모든 레벨들은 하나 또는 동일한 카운터를 사용하고, 레벨 아래의 모든 트래픽 클래스들(포트, 만약 추가된 레벨이 없다면)은 하나의 카운터를 사용한다. 패킷이 최대 수용 대역폭을 갖는 트래픽 클래스에서 수용될 때, 즉 변수 TC 가 TCPmax 와 동일할 때, 다른 기준에 대해 공정하지 않으면(대기행렬 길이에 따라) 패킷은 대신 패기된다. 그리고 나서, 카운터 CH는 수용된 패킷길이의 배열된 부분으로 증가된다(+패킷 길이 ×제공 인자). 다른 트래픽 클래스 카운터들(TC 및 BL)은 패킷이 수용된 것처럼 증분된다. 다른 한편으로, 패킷이 카운터 TC ≠TCPmax 인 다른 트래픽 클래스들 중 하나에 의해 전송되고, 패킷이 다른 논리 룰들에 따라 거절될 것으로 결정되면, 트래픽 클래스는 패킷이 수용되도록 하기 위해 채러티 함수를 사용할 수 있다. 그리고 나서 포트의 채러티 카운터 CH는 각 트래픽 클래스의 가중치(또는 기본 레벨)로 가중된 패킷 길이로 감소된다; -패킷 길이 ×WTC(-패킷 길이 ×WAL). 유사하게, 추가된 레벨에 있어서 채러티 카운터 CHAL 은 각 트래픽 클래스의 가중치로 승산된 패킷 길이로 감소된다; -패킷 길이 ×WTC. 따라서, 채널 카운터 CH 값은 변화하고 하나의 트래픽 클래스(또는 기본 레벨)가 다른 것보다 훨씬 적극적이면 이를 반영한다. 트래픽 클래스가 거의 동일하면, 채러티 카운터는 바람직하게는 서서히 감쇠한다. 따라서, 카운터 CH는 감쇠 인자, 예를 들면 15/16로 승산됨으로써 매 시간 유닛마다 업데이트 또는 리프레싱된다.
도4는 총 수용 대역폭를 보여주는 제1 다이아그램이고 도5는 2개의 흐름 A 및 B에 대해 백로깅 카운터를 보여주는 다이아그램이다. 백로깅 카운터는 도4에 제시된 바와 같이 패킷이 수용될 때마다 증가된다. 백로깅 카운터는 고정값, 예를 들면 ±128kB 로 제한된다. 플로우에 대해 하나의 백로깅 카운터가 상한에 도달하면, 이러한 포트에 속하는 모든 카운터들은 내부 차이를 유지하기 위해 감소된다. 플로우에 대해 하나의 백로깅 카운터가 하한에 도달하면, 이 카운터는 하한에서 머무른다(그러나 다른 카운터들이 영향을 받지 않는다). 이러한 방식은 단지 가까운 과거만이 기억된다. 따라서 단기간의 공정성이다. 이제는 우리는 상이한 시간 스케일에서 공정성을 측정하는 2개의 변수들(백 로깅 카운터 및 채러티 카운터)을 갖는다.
T1 까지 두 플로우들, A 및 B는 활성상태이다. 이들은 모든 면에서 동일한 것으로 간주되고 스위치에 동일한 대역폭량을 제공한다. T1 및 T2 사이에서 플로우 A 만이 활성상태이고 플로우 B 는 유휴 상태이다. T2 후에 A 및 B 모두가 다시활성상태이다.
도4 및 5의 2개의 다이아그램들은 동일한 시간축을 공유한다. T1까지 A 및B 플로우들은 동일한 대역폭 및 백로깅 카운터들을 가지고 있다. 플로우 B는 T1에서 유휴상태가 되기 때문에, 플로우 A 의 카운터만이 T2 까지 증가된다. 백로깅 카운터는 상한을 가지고 있고 증가를 계속하는 대신, 모든 플로우들은 그들의 백로깅 카운터들을 감소시킴을 주목하라. 또한 백로깅 카운터는 하한, 도5의 Min 백로깅을 가지고 있음을 주목하라. 포트의 채러티 카운터 CH는 증가되는데, 이는 플로우 A가 가장 적극적인 플로우 이고 일부 패킷들을 패기하기 때문이다. 플로우 A 및 B 모두가 대역폭을 제공하면, 가장 작은 백로깅 카운터 BL을 갖는 플로우만이 수용된다. T2 에서 플로우 B는 다시 활성상태가 되고, 일부 기간(T2-T3) 동안, 플로우 B의 모든 트래픽이 플로우 B의 백로깅 카운터가 증가되는 동안 수용된다. 백로깅 카운터가 동일하게 되면, 그들은 대역폭을 다시 공유한다.
T3 및 T4 사이에서, 수용된 대역폭은 플로우 A 및 B 사이에서 상이하다. 그들이 매칭될 때 까지, 플로우 A 는 플로우 B 에 대한 그 대역폭의 일부를 포기한다. 포트의 채러티 카운터 CH가 플루우 A 가 일부 패킷들을 패기함으로써 증가되고 플로우 B가 일부 패킷들을 취함으로써 감소된다. T4 후에, 그들은 라인을 동일하게 공유한다. 도6은 양 플로우들에 대한 경험된 대역폭을 보여준다. 이러한 모든 다이아그램들은 분별할 수 있는 도면을 보여주기 위해서 다소 깨진 시간축을 가지고 있다. T2 및 T3는 매우 가까이 있고(단기 공정성) T3 및 T4는 다소 떨어져있다(장기 공정성).
위에서 언급된바와 같이, 패킷이 수용될 때마다 각각의 관련된 카운터는 상기 테이블에 따라 증가된다. 카운터가 제안될 필요는 없지만, 카운터의 사이즈를적절한 값으로 유지하기 위해서 모든 카운터들에 대해 상한을 설정하는 것이 바람직하다. 모든 시간들에서 모든 카운터들 사이의 관계를 반영하고 오버플로우를 방지하기 위해서, 카테고리 내의 모든 카운터들 중 하나가 상한에 근접하면 모든 카운터들은 감소하여야만 한다. 따라서 그룹내의 카운터(예를 들면, 포트 아래의 모든 TC 카운터들)가 물리적 사이즈에 근접한 한계에 도달하면, 상수가 이 그룹내의 모든 카운터들로부터 감산된다.
동작은 또한 시간에 대해 순환적이다. 각 타임 유닛에서 변수들은 대응 파라미터로 업데이트된다. 즉, 파라미터들이 각 변수들로부터 감산되어 시간의 일정량이 경과하였고 일정 트래픽량이 전달되었음을 표시한다.
모든 알고리즘을 통한 운영은 플래그들이 설정되도록 한다. 지금까지, 패킷을 수용 또는 거절할 것인지에 대한 결정이 이루어지지 않았고 이제 모든 플래그들을 사용할 시간이다. 이러한 결정 시퀀스의 예는 하기에서 리스트된다. 결정이 취해지면 각 카운터들은 증분되고 다음 패킷들에 대해 알고리즘이 반복된다.
1) 포트가 스위치 오프되면, 거절함:
2) 플로우 그룹들이 인에이블되고 플로우 그룹이 공정하면, 수용;
3) 대기행렬(VQLP,VQLTC)이 DiscardWanted(=요구되는 최대 길이) 보다 길면, 거절;
4) 플로우 그룹들이 인에이블되고 대기행렬(VQLP,VQLTC)이 DiscardPrefered(=선호되는 최대 길이) 보다 길면, 그리고 가장 적극적인 플로우 그룹이면, 거절;
5) 트래픽 클래스들이 인에이블되고 트래픽 클래스가 공정하면, 수용;
6) 대기행렬(VQLP,VQLTC)이 DiscardPrefered(=선호되는 최대 길이) 보다 길면, 거절. 그렇지 않으면;
7) 수용
본 발명에 의해 달성되는 트래픽 클래스들 사이의 대역폭 분배에 관한 결과의 예가 아래에서 제시된다. 대역폭은 편의를 위해 퍼센트로 측정된다.
트래픽 클래스 구성 인입트래픽 수용된 트래픽
보장된 대역폭 가중 최대 대역폭 수용된 보장 트래픽 수용된 가중 트래픽 합계
클래스A 10% 30 100% 80% 10% 10% 20%
클래스B 20% 60 100% 10% 10% 0% 10%
클래스C 5% 20 15% 40% 5% 10% 15%
클래스D 0% 20 50% 10% 5% 5% 10%
클래스E 0% 60 100% 10% 0% 5% 5%
클래스F 0% 12 100% 50% 0% 25% 25%
클래스G 0% 60 100% 50% 0% 5% 5%
클래스H 0% 15 10% 100% 0% 10% 10%
40% - - - 30% 70% 100%
상기 클래스들은 다음을 예시한다:
클래스가 보장된 대역폭보다 작은량을 제공하면, 모두 수용된다(클래스 B).
클래스가 그 최대 대역폭 이상을 제공하면, 수용되지 않는다.
경쟁이 존재하면(클래스 F 및 G), 정확하게 동일한 입력 트래픽을 갖는 2개의 클래스들은 그들의 가중치에 따라 대역폭을 수신한다. 대역폭은 상기 테이블의 가중치값에 반비례하여 분배된다.
최소 및 최대대역폭 그리고 가중치를 갖는 클래스에 대한 일반적인 대역폭 계산은 다음과 같다;
B=min(제공된 대역폭, BWTCmax, BWTCmin + WTC / ∑WTC ×BWspare)
(플로우 그룹들 사이의 분배는 상기 테이블에서 제시되지 않는다)
본 발명에 따른 방법 및 장치는 보다 많은 레벨들로 확장될 수 있다. 임의의 레벨들이 추가될 수 있다. 도7에 예가 제시된다. 물리적인 접속이 종종 다수의 사용자들에 의해 공유된다. 이러한 접속은 다수의 포트를 구비한 해외 링크 또는 케이블일 수 있다. 하나의 포트는 예를 들면 레벨 1에서 하나 또는 다수의 통신 운영자들에 대여될 수 있다. 단지 하나의 예가 각 레벨에서 제시된다. 이러한 운영자는 다수의 고객들을 가지고 있고, 각 고객들에 특정 트래픽 몫이 제공된다. 이들은 레벨 2에 위치한다. 고객은 어떠한 사용자 또는 가입자 등에 우선순위를 부여함으로써 트래픽을 제어하고자 한다. 이는 레벨 3에서 이루어진다. 레벨 3 아래에, 통상적인 트래픽 클래스, 플로우 그룹 및 응용 플로우 레벨들이 존재할 수 있다.
각 레벨에서 트래픽은 상기에서 기술된 바와 같이 최대 대역폭, 최소 대역폭 및 가중을 포함하는 구성 파라미터를 사용하여 제어될 수 있다. 구성 파라미터들은 당면한 특정 레벨 및 필요하면 하위 레벨들을 제어하는 조직에 의해 설정된다.
추가된 레벨들은 트래픽 클래스 레벨 위에 삽입된다. 구성 파라미터 및 각각의 카운터와 변수들을 리스팅하는 테이블의 예는 하나의 추가된 레벨을 가지고 하기에서 제시된다. 포트는 상기에서 기술된 바와 같이 트래픽 클래스와 동일한 방식으로 추가된 레벨과 인터페이스한다. 물론, 카운터 및 변수들은 추가된 레벨의 대응 카운터 및 변수들로 대치되어야한다.
유사하게, 트래픽 클래스는 이전에 기술된 바와 같이 포트를 통해 추가된 레벨과 위로 인터페이스한다. 여기서 카운터 및 변수들은 이전과 동일한 이름을 갖지만, 다른 트래픽 클래스 셋들이 동일한 레벨에서 병렬적으로 위치하고 있기 때문에 절대값들은 추가된 레벨을 고려하기 위해 변경되어야 한다. 플로우 그룹 레벨 및 플로우 레벨에도 동일하게 적용된다.
보다 많은 레벨이 추가된다면, 대응하는 치환이 이루어져야 한다. 그러나 이는 간단하므로 여기서 상술하지 않는다.
구성 파라미터
포트 추가된 레벨 트래픽 클래스 플로우 그룹
BWPmax BWALmax BWTCmax
BWALmin BWTCmin
WAL WTC
BWPmax 포트당 최대 대역폭
BWALmax 추가된 레벨당 최대 대역폭
BWALmin 추가된 레벨당 최소 대역폭
WAL 추가된 레벨당 가중
BWTCmax 트래픽 클래스 당 최대 대역폭
BWTCmin 트래픽 클래스 당 최소 대역폭
WTC 트래픽 클래스 당 가중
포트 카운터들 및 변수들
이름 논리 전송/패기된 패킷당 증분 시간 유닛 당 업데이트
VQLP + 패킷 길이 -BWPmax
ALPmax =max(포트의 모든 AL들) - -
BLPmax =max(포트의 모든 BL들) - -
CHP 주어지면, +패킷 길이 ×주어진 인자취해지면, -패킷 길이×WTC ×감쇠 인자(예를 들면,15/16)
VQLP 포트당 가상 대기행렬 길이
ALPmax 포트당 최대 추가된 레벨 변수
BLPmax 포트당 최대 백로깅 변수
CHP 이러한 포트아래의 모든 추가된 레벨들에 대한 채러티 카운터
추가된 레벨 카운터 및 변수들
이름 논리 전송된 패킷당 증분 시간 유닛 당 업데이트
AL +패킷 길이 ×WAL -BWALmin ×WAL
FGmax =max(AL의 모든 TC들) - -
BLAL 0〈 BLAL〈256kB +패킷 길이 ×WAL -BWALmin ×WAL
VQLAL +패킷 길이 -BWALmax
CHAL 주어지면, +패킷 길이×주어진 인자취해지면, -패킷 길이×WTC ×감쇠 인자(예를 들면,15/16)
AL 추가된 레벨 카운터
TCmax 추가된 레벨당 최대 트래픽 클래스 변수
BLAL 추가된 레벨당 백로깅 카운터
VQLAL 추가된 레벨당 가상 대기행렬 길이
CHAL 이러한 추가된 레벨 아래의 모든 트래픽 클래스들에 대한 채널티 카운터
트래픽 클래스 카운터 및 변수들
이름 논리 전송된 패킷당 증분 시간 유닛 당 업데이트
TC +패킷 길이 ×WTC -BWTCmin ×WTC
FGmax =max(TC의 모든 FG들) - -
BLTC 0〈 BLTC〈256kB +패킷 길이 ×WTC -BWTCmin ×WTC
VQLTC +패킷 길이 -BWTCmax
TC 트래픽 클래스 카운터
FGmax 트래픽 클래스당 최대 플로우 그룹 변수
BLTC 트래픽 클래스당 백로깅 카운터
VQLTC 트래픽 클래스당 가상 대기행렬 길이
플로우 그룹 카운터
이름 논리 전송된 패킷당 증분 시간 유닛 당 업데이트
FG +패킷 길이 -
FG 플로우 그룹 카운터
상기에서 제시된 실시예는 예시일 뿐이고, 본 발명이 이들로 제한되지는 않는다. 하드웨어 및 소프트웨어 그리고 다른 실시예들에 의한 물리적 구현들이 본 발명의 영역을 벗어남이 없이 구현될 수 있음을 당업자는 잘 이해할 것이다.

Claims (76)

  1. 스위칭 구조 및 출력 대기행렬 앞에 위치하는 대역폭 스케줄러를 포함하는 스위치의 대역폭 스케줄링 방법에 있어서,
    스위칭 구조로부터 데이타 스트림을 수신하는 단계;
    상기 스트림이 전송 또는 중단(수용 또는 거절) 되도록 상기 스트림에 대해 상기 대역폭 스케줄러에서 결정 알고리즘을 적용하는 단계를 포함하는 대역폭 스케줄링 방법.
  2. 제1항에 있어서,
    상기 데이타 스트림은 식별가능한 데이타 패킷을 포함하고;
    상기 데이타 패킷이 수용 또는 거절되도록 상기 대역폭 스케줄러에서 각 데이타 패킷에 대해 결정 알고리즘을 적용하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  3. 제2항에 있어서,
    각각의 패킷은 그 플로우 식별에 대한 정보, 즉 포트(번호) 및 트래픽 클래스를 포함하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  4. 제3항에 있어서,
    한계(BWPmax) 가 포트당 최대 수용 대역폭에서 설정되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  5. 제4항에 있어서,
    가상 대기행렬이 카운터 VQLP(포트의 가상 대기행렬 길이)에 의해 각 포트와 관련되고 상기 카운터 VQLP 는 각 수용 패킷에 대한 패킷 길이로 증가되고 구성 파라미터 BWPmax(포트당 최대 수용 대역폭)를 각 시간 유닛마다 감산함으로써 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  6. 제5항에 있어서,
    카운터 VQLP〈 상수 이면, 패킷 수용 또는 거절 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  7. 제4항에 있어서,
    한계(BWTCmax)가 트래픽 클래스당 최대 수용 대역폭에서 설정되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  8. 제7항에 있어서,
    가상 대기행렬이 카운터 VQLTC(트래픽당 가상 대기행렬 길이)에 의해 각 트래픽 클래스와 관련되고 카운터 VQLTC 는 각 수용된 패킷에 대한 패킷 길이로 증가되고 구성 파라미터 BWTCmax 를 감산함으로써 각 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  9. 제8항에 있어서,
    카운터 VQLTC〈 상수 이면, 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  10. 제3항에 있어서,
    카운터 TC(트래픽 클래스)는 트래픽 클래스가 패킷을 수용할 때 패킷 길이로 증가되고 변수 TCPmax(최대 트래픽 클래스 포트) 가 당면하는 포트에 대한 TC 카운터의 최대값과 동일한 값으로 설정되며, TC 및 TCPmax 사이의 관계가 기준을 만족시키는 트래픽 클래스에 대해서, 패킷을 수용 또는 거절하는 결정 알고리즘에 사용되는 값으로 플래그가 설정되며, 이를 통해 대역폭이 Max-Min 알고리즘에 따라 분배되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  11. 제10항에 있어서,
    TC 및 TCPmax 사이의 상기 기준은 TCPmax - TC〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  12. 제10항에 있어서,
    TC 및 TCPmax 사이의 상기 기준은 TC/TCPmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  13. 제3항에 있어서,
    각 트래픽 클래스에 한계(BWTCmin) 까지의 대역폭이 보장되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  14. 제13항에 있어서,
    카운터 TC(트래픽 클래스)는 트래픽 클래스가 패킷을 수용할 때 패킷 길이로 증가되고 구성 파라미터 BWTCmin(트래픽 클래스당 최소 대역폭)를 감산함으로써 매 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  15. 제10항에 있어서,
    가중 WTC(가중 트래픽 클래스)가 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 우선순위를 부여하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  16. 제15항에 있어서,
    카운터 TC(트래픽 클래스)가 트래픽 클래스가 패킷을 수용할 때 구성 파라미터 WTC(가중 트래픽 클래스)에 의해 승산된 패킷 길이로 증가되고, 카운터 TC 는상기 구성 파라미터 WTC에 의해 승산된 구성 파라미터 BWTCmin(트래픽 클래스 당 최소 대역폭)를 감산함으로써 매 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  17. 제3항에 있어서,
    각 트래픽 클래스에 대해서, 카운터 BL(백로깅)은 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되었는지에 대한 정보를 계속 추적하여 이전의 유휴 트래픽 클래스가 활성이 되면, 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많는 대역폭을 분배함으로써 보상되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  18. 제17항에 있어서,
    변수 BLPmax(최대 백로깅 포트)는 각 포트의 트래픽 클래스들에 대한 백로깅 카운터의 최대치를 저장하고 BL 및 BLPmax 사이의 관계가 기준을 만족시키는 트래픽 클래스에 대해서 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  19. 제18항에 있어서,
    BL 및 BLPmax 사이의 상기 기준은 BLPmax-BL〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  20. 제18항에 있어서,
    BL 및 BLPmax 사이의 상기 기준은 BL/BLPmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  21. 제18항에 있어서,
    BL 카운터는 트래픽 클래스가 패킷을 수용할 때 구성 파라미터 WTC(가중 트래픽 클래스)에 의해 승산된 패킷 길이로 증가되고, 상기 카운터 BL는 고정 상한 및 고정 하한으로 제한되며, 트래픽 클래스에 대한 하나의 백로깅 카운터가 상기 상한에 도달하면, 모든 다른 카운터들은 내부 차이를 유지하기 위해서 감소되고, 플로우에 대한 하나의 백로깅 카운터가 하한에 도달하면, 이러한 카운터는 하한에서 유지되며 상기 카운터 BL는 상기 구성 파라미터 WTC에 의해 승산된 구성 파라미터 BWTCmin(트래픽 클래스 당 최소 대역폭)를 감산함으로써 매 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  22. 제3항에 있어서,
    하나의 트래픽 클래스가 특히 적극적(aggressive) 또는 활성상태가 되면, 그 수용 대역폭의 일부를 포기하여야만 하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  23. 제22항에 있어서,
    패킷이 최대 수용 대역폭(TC=TCPmax)을 갖는 클래스에서 수용되면, 채러티(charity) 함수는 상기 패킷이 패기되도록 하고 카운터 채러티(CH)는 수용된 패킷 길의의 구성가능한 부분(+패킷 길이 ×제공 인자)으로 증가되고 패킷이 다른 트래픽 클래스들 중 하나에서 거절되면 상기 채러티 함수는 패킷이 수용되도록 하고 채러티 카운터(CH)는 각 트래픽 클래스 가중으로 승산된 패킷 길이(-패킷 길이 ×WTC)로 감소되며, 상기 카운터(CH)는 감쇠 인자 곱에 의해 매 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  24. 제3항에 있어서,
    한계(BWPmax)는 포트당 최대 수용 대역폭으로 설정되고, 가상 대기행렬이 각 포트와 관련되며, 플래그가 포트 대기행렬 길이에 따라 설정되며,
    한계(BWTCmax)는 트래픽 클래스당 최대 수용 대역폭으로 설정되고, 가상 대기행렬이 각 트래픽 클래스와 관련되며, 플래그가 트래픽 클래스 대기행렬 길이에 따라 설정되며,
    대역폭이 Max-Min 알고리즘에 따라 분배되며;
    각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장되고;
    가중(WTC)이 각 트래픽 클래스와 관련되어 알고리즘이 자동으로 어떠한 트래픽 클래스들에 대해 우선순위를 부여하며;
    각 트래픽 클래스에 대해, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되었는가에 대한 정보를 계속 추적하여 이전의 유휴 트래픽 클래스가 활성상태가 되면 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배함으로써 보상되며;
    하나의 트래픽 클래스가 특히 적극적 또는 활성이면, 그 수용된 대역폭의 일부를 포기하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  25. 제24항에 있어서,
    추가된 레벨이 포트 레벨 및 트래픽 클래스 레벨 사이에서 삽입되고, 상기 추가된 레벨은 상기 포트 레벨방향으로 트래픽 클래스로서 인터페이싱하고 트래픽 클래스 레벨 방향으로 포트로서 인터페이싱하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  26. 제3항에 있어서,
    플로우들이 플로우 그룹 세트로 해쉬 함수에 의해 함께 그룹화되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  27. 제26항에 있어서,
    카운터 FG(플로우 그룹)은 플로우 그룹이 패킷을 수용할 때 패킷 길이로 증가되고 변수 FGmax(최대 플로우 그룹)은 당면하는 트래픽 클래스에 대한 FG 카운터의 최대치값으로 설정되며, FG 및 FGmax 사이의 관계가 기준을 만족하는 플로우 그룹에 대해서, 패킷을 수용 또는 거절하는 결정 알고리즘에서 사용되는 값으로 플래그가 설정되며, 이를 통해 Max-Min 알고리즘에 따라 대역폭이 분배되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  28. 제27항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FGmax-FG〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  29. 제27항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FG/FGmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  30. 제27항에 있어서,
    한계(BWPmax)는 포트당 최대 수용 대역폭에서 설정되고, 가상 대기행렬이 각 포트와 관련되며, 플래그가 포트 대기행렬 길이에 따라 설정되며;
    한계(BWTCmax)가 트래픽 클래스당 최대 수용 대역폭에서 설정되고, 가상 대기행렬이 각 트래픽 클래스와 관련되며, 플래그가 트래픽 클래스 대기행렬 길이에 따라 설정되며;
    각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장되고;
    가중(WTC)이 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 대해 우선순위를 부여하며;
    각 트래픽 클래스에 대해, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되는지에 대한 정보를 계속 추적하여 이전 유휴 트래픽 클래스가 활성상태가 되면, 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배함으로써 보상되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  31. 제30항에 있어서,
    추가된 레베이 포트 레벨 및 트래픽 클래스 레벨 사이에 삽입되고, 상기 추가된 레벨은 포트 레벨 방향으로 트래픽 클래스로서 인터페이싱하고, 트래픽 클래스 레벨 방향으로 포트로서 인터페이싱하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  32. 제6,9,10,14,16,21, 23항 중 어느 한 항에 있어서,
    플로우들은 플로우 그룹 셋으로 해쉬함수에 의해 함께 그룹화되고, 카운터 FG(플로우 그룹)는 플로우 그룹이 패킷을 수용할 때 패킷 길이로 증가되며, 변수 FGmax(최대 플로우 그룹)는 당면하는 트래픽 클래스에 대한 FG 카운터들의 최대치로 설정되며, FG 및 FGmax 사이의 관계가 기준을 만족시키는 플로우 그룹에 대해서, 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되며, 이를 통해 Max-Min 알고리즘에 따라 대역폭이 분배되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  33. 제31항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FGmax-FG 〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  34. 제31항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FG/FGmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 방법.
  35. 제30항에 있어서
    상기 알고리즘 논리에 의해 설정되는 플래그들은 결정 시퀀스에서 사용되고, 상기 결정 시퀀스는:
    포트가 스위치 오프되면 거절, 이와는 달리;
    플로우 그룹들이 인에이블 되고 플로우 그룹이 공정하면(fair) 수용, 이와는 달리;
    대기행렬(VQLP,VQLTC)이 DiscradWanted(=요구되는 최대 길이)보다 길면 거절, 이와는 달리;
    플로우 그룹들이 인에이블되고 대기행렬(VQLP,VQLTC)이 DiscardPreferred(=선호되는 최대 길이)보다 길고, 가장 적극적인 플로우 그룹이면 거절, 이와는 달리;
    트래픽 클래스가 인에이블되고 트래픽 클래스가 공정하면 수용, 이와는 달리;
    대기행렬(VQLP,VQLTC)이 DiscardPreferred(선호되는 최대 길이)보다 길면 거절, 그렇지 않으면;
    수용 을 포함하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  36. 스위칭 구조 및 출력 대기행렬들 뒤에 위치하는 대역폭 스케줄러를 포함하는 스위치에서의 대역폭 스케줄링 방법에 있어서,
    스위칭 구조로부터 식별가능한 데이타 패킷들을 포함하는 데이타 스트림을 수신하는 단계;
    데이타 패킷이 수용 또는 거절되도록 대역폭 스케줄러에서 결정 알고리즘을 각 데이타 패킷에 적용하는 단계를 포함하며,
    한계(BWPmax)는 포트당 최대 수용 대역폭으로 설정되고, 가상 대기행렬이 카운터 VQLP(포트당 가상 대기행렬 길이)에 의해 각 포트와 관련되고 카운터 VQLP는 각 수용된 패킷에 대한 패킷 길이로 증가되고 각 시간 유닛마다 구성 파라미터 BWPmax(포트당 최대 수용 대역폭)를 감산함으로써 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 방법.
  37. 제36항에 있어서,
    플래그는 포트 대기행렬 길이에 따라 설정되고;
    한계(BWTCmax)는 트래픽 클래스당 최대 수용된 대역폭에서 설정되며, 가상 대기행렬은 각 트래픽 클래스와 관련되고, 플래그는 트래픽 클래스 대기행렬 길이에 따라 설정되며;
    각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장되고;
    가중(WTC)이 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 우선순위를 부여하며;
    각 트래픽 클래스에 대해서, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되었는지에 대한 정보를 계속 추적하여 이전 유휴 트래픽 클래스가 활성상태가 되면, 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배하고;
    하나의 트래픽 클래스가 특히 적극적 또는 활성이면, 그 수용된 대역폭의 일부를 포기하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  38. 제37항에 있어서,
    추가된 레벨이 포트 레벨 및 트래픽 클래스 레벨 사이에 삽입되고, 상기 추가된 레벨은 상기 포트 레벨 방향으로 트래픽 클래스로서 인터페이싱하며, 상기 트래픽 클래스 레벨방향으로 포트로서 인터페이싱하는 것을 특징으로 하는 대역폭 스케줄링 방법.
  39. 스위치 구조 및 출력 대기행렬 앞에 위치하는 대역폭 스케줄러를 포함하는스위치에서의 대역폭 스케줄링 장치에 있어서,
    상기 스위칭 구조로부터 데이타 스트림을 수신하는 수단;
    상기 스트림이 전송 또는 중단(수용 또는 거절)되도록 상기 대역폭 스케줄러에서 대역폭 결정 알고리즘을 상기 데이타에 적용하는 수단을 포함하는 대역폭 스케줄링 장치.
  40. 제39항에 있어서,
    상기 데이타 스트림은 식별가능한 데이타 패킷을 포함하고;
    상기 데이타 패킷이 수용 또는 거절되도록 대역폭 스케줄러에서 결정 알고리즘을 각 데이타 패킷에 적용하는 수단을 추가로 포함하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  41. 제40항에 있어서,
    각 데이타 패킷은 그 플로우 식별에 대한 정보, 즉 포트(번호) 및 트래픽 클래스를 포함하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  42. 제41항에 있어서,
    한계(BWPmax)가 포트당 최대 수용 대역폭으로 설정되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  43. 제42항에 있어서,
    가상 대기행렬이 카운터 VQLP(포트당 가상 대기행렬 길이)에 의해 각 포트와 관련되고 카운터 VQLP는 각 수용된 패킷에 대한 패킷 길이로 증가되고 각 시간 유닛마다 구성 파라미터 BWPmax(포트당 최대 수용 대역폭)를 감산함으로써 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  44. 제43항에 있어서,
    카운터 VQLP〈 상수이면, 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  45. 제42항에 있어서,
    한계(BWTCmax)가 트래픽 클래스당 최대 수용 대역폭으로 설정되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  46. 제45항에 있어서,
    가상 대기행렬은 카운터 VQLTC(트래픽 클래스당 가상 대기행렬 길이)에 의해 각 트래픽 클래스와 관련되고 상기 카운터 VQLTC는 각 수용된 패킷에 대한 패킷 길이로 증가되며 구성 파라미터 BWTCmax를 감산함으로써 각 시간 유닛 마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  47. 제46항에 있어서,
    상기 카운터 VQLTC〈 상수이면, 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  48. 제41항에 있어서,
    카운터 TC(트래픽 클래스)는 트래픽 클래스가 패킷을 수용할 때 패킷 길이로 증가되고, 변수 TCPmax(최대 트래픽 클래스 포트)는 당면하는 포트에 대한 TC 카운터들의 최대치로 설정되며, TC 및 TCPmax 사이의 관계가 기준을 만족시키는 트래픽 클래스에 대해서 패킷을 수용 또는 거절하는 결정 알고리즘에 사용되는 값으로 플래그가 설정되어 이를 통해 Max-Min 알고리즘에 따라 대역폭이 분배되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  49. 제48항에 있어서,
    TC 및 TCPmax 사이의 상기 기준은 TCPmax-TC〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  50. 제48항에 있어서,
    TC 및 TCPmax 사이의 상기 기준은 TC/TCPmax〈 상수인 것을 것을 특징으로 하는 대역폭 스케줄링 장치.
  51. 제41항에 있어서,
    각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  52. 제51항에 있어서,
    카운터 TC(트래픽 클래스)는 트래픽 클래스가 패킷을 수용할 때 패킷 길이로 증가되고 구성 파라미터 BWTCmin(트래픽 클래스당 최소 대역폭)를 감산함으로써 매 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  53. 제48항에 있어서,
    가중 WTC(가중 트래픽 클래스)가 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 우선순위를 부여하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  54. 제53항에 있어서,
    카운터 TC(트래픽 클래스)는 트래픽 클래스가 패킷을 수용할 때 구성 파라미터 WTC(가중 트래픽 클래스)에 의해 승산된 패킷 길이로 증가되며 카운터 TC는 구성 파라미터 WTC에 의해 승산된 구성 파라미터 BWTCmin(트래픽 클래스당 최소 대역폭)를 감산함으로써 매 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  55. 제41항에 있어서,
    각 트래픽 클래스에 대해서, 카운터 BL(백로깅)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되는지에 대한 정보를 계속 추적하여 이전 유휴 트래픽 클래스가 활성상태가 되면, 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배함으로써 보상되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  56. 제55항에 있어서,
    변수 BLPmax(백로깅 포트 최대치)는 각 포트의 트래픽 클래스들에 대해 백로깅 카운터들의 최대치를 저장하고 BL 및 BLPmax 사이의 관계가 기준을 만족시키는 트래픽 클래스에 대해서, 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  57. 제56항에 있어서,
    BL 및 BLPmax 사이의 상기 기준은 BLPmax-BL〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  58. 제56항에 있어서,
    BL 및 BLPmax 사이의 상기 기준은 BL/BLPmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  59. 제55항에 있어서,
    상기 카운터 BL은 트래픽 클래스가 패킷을 수용할 때 구성 파라미터 WTC(가중 트래픽 클래스)에 의해 승산된 패킷길이로 증가되고, 상기 BL 카운터는 고정 상한 및 고정 하한으로 제한되며 트래픽 클래스에 대해 하나의 백로깅 카운터가 상한에 도달하면, 모든 다른 카운터들은 내부 차이를 유지하기 위해 감소되고 플로우에 대한 하나의 백로깅 카운터가 하한에 도달하면, 이러한 카운터는 하한에서 유지되며, 상기 카운터 BL는 구성 파라미터 WTC에 의해 승산된 구성 파라미터 BWTCmin(트래픽 클래스당 최소 대역폭)를 감산함으로써 각 시간 유닛마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  60. 제41항에 있어서,
    하나의 트래픽 클래스가 특히 적극적 또는 활성이면, 그 수용된 대욕폭의 일부를 포기하여야만 하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  61. 제60항에 있어서,
    패킷이 최대 수용 대역폭(TC=TCPmax)을 가지는 트래픽 클래스에서 수용되면, 채러티 함수는 패킷이 파기되도록 하고 채러티 카운터(CH)는 수용된 패킷 길이의구성가능한 부분(+패킷 길이×제공 인자)으로 증가되며, 패킷이 다른 트래픽 클래스들 중 하나에서 거절되면, 채러티 함수는 상기 패킷이 수용되도록 하며 채러티 카운터(CH)는 각 트래픽 클래스의 가중에 의해 승산된 패킷 길이(-패킷 길이×WTC)로 감소되며, 상기 카운터(CH)는 감쇠 인자 곱에 의해 각 시간 유닛 마다 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  62. 제41항에 있어서,
    한계(BWPmax)는 포트당 최대 수용 대역폭으로 설정되고, 가상 대기행렬은 각포트와 관련되며, 포트 대기행렬 길이에 따라 플래그가 설정되며;
    한계(BWTCmax)는 트래픽 클래스당 최대 수용 대역폭으로 설정되고, 가상 대기행렬은 각 트래픽 클래스와 관련되며, 트래픽 클래스 대기행렬 길이에 따라 플래그가 설정되며;
    대역폭이 Max-Min 알고리즘에 따라 분배되고;
    각 트래픽은 한계(BWTCmin) 까지 대역폭이 보장되며;
    가중(WTC)이 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 우선순위를 부여하며;
    각 트래픽 클래스에 대해, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되는지에 대한 정보를 계속 추적하여 이전 유휴 트래픽 클래스가 활성상태가 되면 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배함으로써 보상되며;
    하나의 트래픽 클래스가 특히 적극적 또는 활성이면 그 수용 대역폭의 일부를 포기하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  63. 제62항에 있어서,
    추가된 레벨이 포트 레벨 및 트래픽 클래스 레벨 사이에 삽입되고, 상기 추가된 레벨은 상기 포트 레벨 방향으로 트래픽 클래스로서 인터페이싱하며, 상기 트래픽 클래스 레벨 방향으로 포트로서 인터페이싱하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  64. 제41항에 있어서,
    플로우들은 플로우 그룹들 셋으로 해쉬 함수에 의해 함께 그룹화되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  65. 제64항에 있어서,
    카운터 FG(플로우 그룹)은 플로우 그룹이 패킷을 수용할 때 패킷 길이로 증가되고 변수 FGmax(최대 플로우 그룹)은 당면하는 트래픽 클래스에 대한 FG 카운터의 최대치값으로 설정되며, FG 및 FGmax 사이의 관계가 기준을 만족하는 플로우 그룹에 대해서, 패킷을 수용 또는 거절하는 결정 알고리즘에서 사용되는 값으로 플래그가 설정되며, 이를 통해 Max-Min 알고리즘에 따라 대역폭이 분배되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  66. 제65항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FGmax-FG〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  67. 제65항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FG/FGmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  68. 제65항에 있어서,
    한계(BWPmax)는 포트당 최대 수용 대역폭에서 설정되고, 가상 대기행렬이 각 포트와 관련되며, 플래그가 포트 대기행렬 길이에 따라 설정되며;
    한계(BWTCmax)가 트래픽 클래스당 최대 수용 대역폭에서 설정되고, 가상 대기행렬이 각 트래픽 클래스와 관련되며, 플래그가 트래픽 클래스 대기행렬 길이에 따라 설정되며;
    각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장되고;
    가중(WTC)이 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 대해 우선순위를 부여하며;
    각 트래픽 클래스에 대해, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되는지에 대한 정보를 계속 추적하여 이전 유휴 트래픽 클래스가 활성상태가 되면, 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배함으로써 보상되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  69. 제68항에 있어서,
    추가된 레벨이 포트 레벨 및 트래픽 클래스 레벨 사이에 삽입되고, 상기 추가된 레벨은 포트 레벨 방향으로 트래픽 클래스로서 인터페이싱하고, 트래픽 클래스 레벨 방향으로 포트로서 인터페이싱하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  70. 제44,47,50,52,54,59,60항 중 어느 한 항에 있어서,
    플로우들은 플로우 그룹 셋으로 해쉬함수에 의해 함께 그룹화되고, 카운터 FG(플로우 그룹)는 플로우 그룹이 패킷을 수용할 때 패킷 길이로 증가되며, 변수 FGmax(최대 플로우 그룹)는 당면하는 트래픽 클래스에 대한 FG 카운터들의 최대치로 설정되며, FG 및 FGmax 사이의 관계가 기준을 만족시키는 플로우 그룹에 대해서, 패킷을 수용 또는 거절하는 결정 알고리즘에 의해 사용되는 값으로 플래그가 설정되며, 이를 통해 Max-Min 알고리즘에 따라 대역폭이 분배되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  71. 제70항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FGmax-FG 〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  72. 제70항에 있어서,
    FG 및 FGmax 사이의 상기 기준은 FG/FGmax〈 상수인 것을 특징으로 하는 대역폭 스케줄링 장치.
  73. 제68항에 있어서,
    상기 알고리즘 논리에 의해 설정되는 플래그들은 결정 시퀀스에서 사용되고, 상기 결정 시퀀스는:
    포트가 스위치 오프되면 거절, 이와는 달리;
    플로우 그룹들이 인에이블 되고 플로우 그룹이 공정하면(fair) 수용, 이와는 달리;
    대기행렬(VQLP,VQLTC)가 DiscradWanted(=요구되는 최대 길이)보다 길면 거절, 이와는 달리;
    플로우 그룹들이 인에이블되고 대기행렬(VQLP,VQLTC)가 DiscardPreferred(=선호되는 최대 길이)보다 길고, 가장 적극적인 플로우 그룹이면 거절, 이와는 달리;
    트래픽 클래스가 인에이블되고 트래픽 클래스가 공정하면 수용, 이와는 달리;
    대기행렬(VQLP,VQLTC)가 DiscardPreferred(선호되는 최대 길이)보다 길면 거절, 그렇지 않으면;
    수용 을 포함하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  74. 스위칭 구조 및 출력 대기행렬들 뒤에 위치하는 대역폭 스케줄러를 포함하는 스위치에서의 대역폭 스케줄링 장치에 있어서,
    스위칭 구조로부터 식별가능한 데이타 패킷들을 포함하는 데이타 스트림을 수신하는 수단;
    데이타 패킷이 수용 또는 거절되도록 대역폭 스케줄러에서 결정 알고리즘을 각 데이타 패킷에 적용하는 수단을 포함하며,
    한계(BWPmax)는 포트당 최대 수용 대역폭으로 설정되고, 가장 대기행렬이 카운터 VQLP(포트당 가상 대기행렬 길이)에 의해 각 포트와 관련되고 카운터 VQLP는 각 수용된 패킷에 대한 패킷 길이로 증가되고 각 시간 유닛마다 구성 파라미터 BWPmax(포트당 최대 수용 대역폭)를 감산함으로써 업데이트되는 것을 특징으로 하는 대역폭 스케줄링 장치.
  75. 제74항에 있어서,
    플래그는 포트 대기행렬 길이에 따라 설정되고;
    한계(BWTCmax)는 트래픽 클래스당 최대 수용된 대역폭에서 설정되며, 가상 대기행렬은 각 트래픽 클래스와 관련되고, 플래그는 트래픽 클래스 대기행렬 길이에 따라 설정되며;
    각 트래픽 클래스는 한계(BWTCmin) 까지의 대역폭이 보장되고;
    가중(WTC)이 각 트래픽 클래스와 관련되어 알고리즘이 자동적으로 어떠한 트래픽 클래스들에 우선순위를 부여하며;
    각 트래픽 클래스에 대해서, 백로깅 카운터(BL)는 다른 트래픽 클래스들에 대해 얼마나 많은 패킷들이 수용되었는지에 대한 정보를 계속 추적하여 이전 유휴 트래픽 클래스가 활성상태가되면, 상기 트래픽 클래스는 이러한 트래픽 클래스에 보다 많은 대역폭을 분배하고;
    하나의 트래픽 클래스가 특히 적극적 또는 활성이면, 그 수용된 대역폭의 일부를 포기하는 것을 특징으로 하는 대역폭 스케줄링 장치.
  76. 제75항에 있어서,
    추가된 레벨이 포트 레벨 및 트래픽 클래스 레벨 사이에 삽입되고, 상기 추가된 레벨은 상기 포트 레벨 방향으로 트래픽 클래스로서 인터페이싱하며, 상기 트래픽 클래스 레벨방향으로 포트로서 인터페이싱하는 것을 특징으로 하는 대역폭 스케줄링 장치.
KR1020027013568A 2000-04-10 2001-04-04 스위치에서의 대역폭 분배를 위한 방법 및 장치 KR20030001412A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/546,494 2000-04-10
US09/546,494 US7215678B1 (en) 2000-04-10 2000-04-10 Method and apparatus for distribution of bandwidth in a switch

Publications (1)

Publication Number Publication Date
KR20030001412A true KR20030001412A (ko) 2003-01-06

Family

ID=24180685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027013568A KR20030001412A (ko) 2000-04-10 2001-04-04 스위치에서의 대역폭 분배를 위한 방법 및 장치

Country Status (14)

Country Link
US (1) US7215678B1 (ko)
EP (1) EP1277357A1 (ko)
JP (1) JP2003530792A (ko)
KR (1) KR20030001412A (ko)
CN (1) CN1271830C (ko)
AU (2) AU2001244996B2 (ko)
CA (1) CA2406074A1 (ko)
EG (1) EG22898A (ko)
IL (1) IL152149A0 (ko)
MY (1) MY136305A (ko)
NO (1) NO20024882L (ko)
TW (1) TW525395B (ko)
WO (1) WO2001078420A1 (ko)
ZA (1) ZA200208608B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200452223Y1 (ko) * 2008-11-28 2011-02-14 주식회사골드라인 접이형 상자

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072353B2 (en) * 2000-06-15 2006-07-04 At&T Corp. Flexible bandwidth allocation in high-capacity grooming switches
US8370517B2 (en) * 2001-09-27 2013-02-05 International Business Machines Corporation Conserving energy in a data processing network
US7324452B2 (en) * 2002-01-14 2008-01-29 Fujitsu Limited Weighted credit-based arbitration using credit history
CA2398755A1 (en) * 2002-08-19 2004-02-19 Faisal Shad Scheduler for a shared channel
KR20050083685A (ko) * 2002-09-13 2005-08-26 패씨브 엘티디. 다수의 엔티티를 갖는 통신망 유닛을 포함하는 이더넷 수동광 통신망에서의 동작 방법
US7376121B2 (en) * 2003-06-06 2008-05-20 Microsoft Corporation Method and system for global routing and bandwidth sharing
DE60305040T2 (de) * 2003-10-21 2006-11-30 Alcatel Doppelseitige Bandbreitenzuweisung durch Detektion von kurzzeitiger Verkehrsänderung
CN100359888C (zh) * 2003-11-27 2008-01-02 华为技术有限公司 一种数据轮询调度方法
JP4419541B2 (ja) * 2003-12-03 2010-02-24 株式会社日立製作所 ポリシング装置
FI118072B (fi) * 2004-09-24 2007-06-15 Tellabs Oy Viiveominaisuudet säilyttävä menetelmä ja laitteisto siirtoyhteyskapasiteetin vuorottamiseksi pakettikytkentäisten tietoliikennevoiden kesken
US7525962B2 (en) * 2004-12-27 2009-04-28 Intel Corporation Reducing memory access bandwidth consumption in a hierarchical packet scheduler
CN100450076C (zh) * 2004-12-30 2009-01-07 中兴通讯股份有限公司 用于多输入单输出的网络流量整形和带宽分配的方法
ATE398878T1 (de) * 2006-04-20 2008-07-15 Alcatel Lucent Verfahren und vorrichtung für effiziente gewichtete und gerechte datenüberwachung
ATE498272T1 (de) * 2006-12-08 2011-02-15 Deutsche Telekom Ag Verfahren und system für peer-to-peer- inhaltsverbreitung
JP4899961B2 (ja) * 2007-03-19 2012-03-21 富士通株式会社 通信装置および出力制御方法
US7839864B1 (en) * 2007-05-21 2010-11-23 Cisco Technology, Inc. Priority propagation with a hierarchical asynchronous transfer mode (ATM) scheduler
CN101272348B (zh) * 2008-04-30 2012-07-04 杭州华三通信技术有限公司 一种带宽控制的方法和系统
US8593950B2 (en) * 2008-06-24 2013-11-26 At&T Intellectual Property I, L.P. Method and apparatus for providing a weighted bandwidth allocation for a network
US9148381B2 (en) 2011-10-21 2015-09-29 Qualcomm Incorporated Cloud computing enhanced gateway for communication networks
US9116893B2 (en) 2011-10-21 2015-08-25 Qualcomm Incorporated Network connected media gateway for communication networks
US20130100955A1 (en) * 2011-10-24 2013-04-25 Qualcomm Incorporated Technique for prioritizing traffic at a router
US8285141B1 (en) * 2011-12-15 2012-10-09 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US9641438B2 (en) 2011-12-15 2017-05-02 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US8849112B2 (en) 2011-12-15 2014-09-30 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
CN104618265B (zh) * 2014-12-30 2018-03-13 华为技术有限公司 一种报文转发方法和装置
US10033657B2 (en) 2016-06-30 2018-07-24 Juniper Networks, Inc. Generating automatic bandwidth adjustment policies per label-switched path
CN113194007B (zh) * 2021-04-22 2023-03-28 西安交通大学 一种网络可用带宽测量方法、系统、设备及可读存储介质
CN116800693A (zh) * 2022-03-16 2023-09-22 华为技术有限公司 一种队列调度的方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381413A (en) 1992-12-28 1995-01-10 Starlight Networks Data throttling system for a communications network
US5432790A (en) 1993-09-17 1995-07-11 Motorola, Inc. Method for allocating internodal link bandwidth in a packet oriented communication network to guarantee delay quality-of-service
JP2928452B2 (ja) 1994-03-17 1999-08-03 富士通株式会社 Atm交換機及びatm交換機における呼受付け装置及び呼受付け方法
US6141346A (en) * 1995-07-19 2000-10-31 Fujitsu Network Communications, Inc. Point-to-multipoint transmission using subqueues
JPH11510010A (ja) 1995-07-19 1999-08-31 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド 割付け型及び動的帯域幅管理
US5764641A (en) * 1995-09-08 1998-06-09 Cisco Systems, Inc. Early and integrated tail packet discard system
GB9520807D0 (en) 1995-10-11 1995-12-13 Newbridge Networks Corp Fair queue servicing using dynamic weights
US5917822A (en) 1995-11-15 1999-06-29 Xerox Corporation Method for providing integrated packet services over a shared-media network
GB9606711D0 (en) 1996-03-29 1996-06-05 Plessey Telecomm Routing and bandwidth allocation
US5828653A (en) * 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US5742594A (en) 1996-06-13 1998-04-21 Motorola, Inc. Method and apparatus for allocating shared bandwidth among a plurality of users
JP3409966B2 (ja) * 1996-06-21 2003-05-26 株式会社日立製作所 パケット交換機およびパケット転送制御方法
US5768257A (en) 1996-07-11 1998-06-16 Xylan Corporation Input buffering/output control for a digital traffic switch
JP3525656B2 (ja) * 1996-12-06 2004-05-10 株式会社日立製作所 パケット交換機、および輻輳通知方式
JP2970571B2 (ja) 1997-01-30 1999-11-02 日本電気株式会社 仮想パスコネクション群の多重化方式
JP2965070B2 (ja) 1997-04-23 1999-10-18 日本電気株式会社 Atm装置及びポートシェーピング方法
US6292465B1 (en) * 1997-05-27 2001-09-18 Ukiah Software, Inc. Linear rule based method for bandwidth management
US6072800A (en) * 1997-08-18 2000-06-06 Nec Usa, Inc. Weighted longest queue first adaptive scheduling discipline for ATM networks
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6853638B2 (en) * 1998-04-01 2005-02-08 Cisco Technology, Inc. Route/service processor scalability via flow-based distribution of traffic
US6628609B2 (en) * 1998-04-30 2003-09-30 Nortel Networks Limited Method and apparatus for simple IP-layer bandwidth allocation using ingress control of egress bandwidth
DE69924057T2 (de) * 1998-07-31 2006-04-13 Alcatel Verfahren, Ablauffolgesteuerung, intelligenter Pufferspeicher, Prozessor und Telekommunikationssystem zum Verteilen verfügbahrer Bandbreite
US6549938B1 (en) * 1998-12-10 2003-04-15 Nokia Corporation System and method for prioritizing multicast packets in a network service class utilizing a priority-based quality of service
US6570883B1 (en) * 1999-08-28 2003-05-27 Hsiao-Tung Wong Packet scheduling using dual weight single priority queue

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200452223Y1 (ko) * 2008-11-28 2011-02-14 주식회사골드라인 접이형 상자

Also Published As

Publication number Publication date
EP1277357A1 (en) 2003-01-22
US7215678B1 (en) 2007-05-08
AU2001244996B2 (en) 2005-12-22
EG22898A (en) 2003-10-30
NO20024882L (no) 2002-12-10
WO2001078420A1 (en) 2001-10-18
CN1428054A (zh) 2003-07-02
MY136305A (en) 2008-09-30
JP2003530792A (ja) 2003-10-14
ZA200208608B (en) 2003-10-24
CN1271830C (zh) 2006-08-23
IL152149A0 (en) 2003-05-29
CA2406074A1 (en) 2001-10-18
NO20024882D0 (no) 2002-10-09
TW525395B (en) 2003-03-21
AU4499601A (en) 2001-10-23

Similar Documents

Publication Publication Date Title
KR20030001412A (ko) 스위치에서의 대역폭 분배를 위한 방법 및 장치
AU2001244996A1 (en) Method and apparatus for distribution of bandwidth in a switch
US5867663A (en) Method and system for controlling network service parameters in a cell based communications network
US8189597B2 (en) Pipeline scheduler with fairness and minimum bandwidth guarantee
US5274644A (en) Efficient, rate-base multiclass access control
JP4394203B2 (ja) 利用可能な帯域幅を共用する方法、そのような方法を実現するプロセッサ、ならびにスケジューラ、インテリジェントバッファ、およびそのようなプロセッサを含む通信システム
US6535484B1 (en) Method and apparatus for per traffic flow buffer management
US7616567B2 (en) Shaping apparatus, communication node and flow control method for controlling bandwidth of variable length frames
US7792033B2 (en) Bandwidth policing method and packet transfer apparatus with bandwidth policing function
KR100326789B1 (ko) 패킷통신시스템,패킷통신모듈,메모리공간할당시스템및메모리공간할당방법
US7023856B1 (en) Method and system for providing differentiated service on a per virtual circuit basis within a packet-based switch/router
US6795870B1 (en) Method and system for network processor scheduler
US20040151197A1 (en) Priority queue architecture for supporting per flow queuing and multiple ports
KR20020091088A (ko) 통신 네트워크에서 패킷 다중화를 위한 멀티레벨 스케줄링방법
GB2339371A (en) Rate guarantees through buffer management
US6246687B1 (en) Network switching system supporting guaranteed data rates
CA2462793C (en) Distributed transmission of traffic streams in communication networks
KR20120055946A (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
EP1031253B1 (en) Buffer management method
Shreedhar et al. E cient fair queuing using de cit round robin
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
KR100598342B1 (ko) DiffServ-Enabled 코어형 라우터의복수크래스 서비스품질 제어 방법
JP4391346B2 (ja) 通信制御方法、通信制御装置、制御プログラム及び記録媒体
EP0894382B1 (en) Arrangement and method for allocation of bandwidth and buffer space in an atm network
EP1665663B1 (en) A scalable approach to large scale queuing through dynamic resource allocation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application