KR20120055947A - 가입자 인지 플로우별 QoS 제공 방법 및 장치 - Google Patents

가입자 인지 플로우별 QoS 제공 방법 및 장치 Download PDF

Info

Publication number
KR20120055947A
KR20120055947A KR1020100117409A KR20100117409A KR20120055947A KR 20120055947 A KR20120055947 A KR 20120055947A KR 1020100117409 A KR1020100117409 A KR 1020100117409A KR 20100117409 A KR20100117409 A KR 20100117409A KR 20120055947 A KR20120055947 A KR 20120055947A
Authority
KR
South Korea
Prior art keywords
packet
time
arrival
bandwidth
flow
Prior art date
Application number
KR1020100117409A
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 한국전자통신연구원
Priority to KR1020100117409A priority Critical patent/KR20120055947A/ko
Priority to US13/299,618 priority patent/US8660001B2/en
Publication of KR20120055947A publication Critical patent/KR20120055947A/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/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/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/568Calendar queues or timing rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/58Changing or combining different scheduling modes, e.g. multimode scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • 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/525Queue scheduling by attributing bandwidth to queues by redistribution of residual bandwidth

Landscapes

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

Abstract

가입자별로 공평하게 네트워크 대역을 분배하고 각 가입자에게 분배된 대역내에서 가입자의 여러 플로우간 공평하게 대역을 사용하여 패킷을 스케줄링하는 장치 및 방법을 제공한다. 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 복수의 가입자별 제1 대역폭을 계산하는 단계와, 복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 제1 대역폭을 공평하게 공유하도록 플로우별 제2 대역폭을 계산하는 단계와, 제2 대역폭에 기반하여, 각 가입자에 속하는 적어도 하나의 플로우의 패킷을 스케줄링하는 단계를 포함한다.

Description

가입자 인지 플로우별 QoS 제공 방법 및 장치{Method and apparatus for providing Susbscriber-aware per flow}
본 발명은 하나의 네트워크 자원인 네트워크 대역폭을 다중 사용자로부터의 트래픽이 공유함에 있어서 각 트래픽별로 효율적으로 네트워크 대역폭을 공유하는 방법에 관한 것이다.
네트워크 장치에서 QoS(Quality of Service)를 제공하기 위한 기존 방법으로는 트래픽 플로우 또는 클래스별 QoS를 제공하기 위하여 패킷 스케줄링 및 버퍼 관리 방법 등 많은 방법들이 제시되어 왔다. 특히 각 응용 세션별로 QoS를 제공하기 위하여 패킷을 트래픽 플로우로 분류하고 그 분류된 플로우별 QoS를 제공하기 위한 방법 등이 제시되어 왔다. 하지만 이러한 방법들은 실제 트래픽의 가입자별 분포를 고려하지 않고 각각의 플로우별로만 QoS를 제공하는 것을 고려하고 있다. 따라서, 많은 플로우의 트래픽을 생성하는 가입자가 적은 수의 플로우의 트래픽을 사용하는 가입자보다 더 많은 네트워크 대역을 사용하게 된다.
본 발명은 위와 같이 가입자별로 공정하지 못한 네트워크 대역 사용을 방지하여 가입자별로 공평하게 네트워크 대역을 분배하고 각 가입자에게 분배된 대역내에서 가입자의 여러 플로우간 공평하게 대역을 사용하여 패킷을 스케줄링하는 장치 및 방법을 제공한다.
일 측면에 따른 패킷 스케줄링 방법은, 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 상기 복수의 가입자별 제1 대역폭을 계산하는 단계와, 상기 복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 상기 제1 대역폭을 공평하게 공유하도록 상기 플로우별 제2 대역폭을 계산하는 단계와, 상기 제2 대역폭에 기반하여, 상기 각 가입자에 속하는 적어도 하나의 플로우의 패킷을 스케줄링하는 단계를 포함한다.
다른 측면에 따른 패킷 스케줄링 장치는, 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 상기 복수의 가입자별 제1 대역폭을 계산하고, 상기 복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 상기 제1 대역폭을 공평하게 공유하도록 상기 플로우별 제2 대역폭을 계산하는 정보 계산부와, 상기 제2 대역폭에 기반하여, 상기 각 가입자에 속하는 적어도 하나의 플로우의 패킷을 스케줄링하는 패킷 스케줄링부를 포함한다.
본 발명에 따르면, 가입자 간 네트워크 대역을 공평하게 사용할 수 있도록 하며 또한 공평하게 분배된 네트워크 대역 내에서 가입자가 발생하는 각 플로우간 공평한 네트워크 대역을 사용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 공평한 대역 할당 기반 패킷 스케줄링 방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 패킷 스케줄링 방법을 나타내는 순서도이다.
도 3a 내지 도 3c는 발명의 일 실시예에 따른 공평한 대역 할당 기반 패킷 스케줄링 방법의 상세 처리 과정을 나타내는 순서도이다.
도 4는 본 발명의 일 실시예에 따른 공평한 대역 할당 기반 패킷 스케줄링 장치의 구성을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 공평한 대역 할당 기반 패킷 스케줄링 방법을 나타내는 순서도이다.
본 발명에 의한 공평한 대역 할당 기반 패킷 스케줄링 방법은 라우터와 같은 네트워크 장치 등에서 동일한 출력 포트로의 전송을 요구하는 여러 가입자 및 각 가입자의 데이터 트래픽 플로우 간에 공평하게 대역폭을 사용할 수 있도록 한다.
가입자는 하나의 출력 링크를 공유하는 동일한 IP 주소를 사용하는 호스트 또는 서버로 정의될 수 있다. 가입자는 다른 데이터 패킷 헤더의 조합이 동일한 호스트 또는 서버로 확장될 수 있다.
데이터 트래픽 플로우(이하, 플로우라 함)는 데이터 패킷 헤더로부터 추출할 수 있는 필드의 동일한 조합으로 정의될 수 있는 일련의 패킷의 모음으로 정의될 수 있다. 예를 들어 인터넷 프로토콜의 헤더에서 소스 IP 주소, 목적지 IP 주소, 프로토콜 값, TCP/UDP의 소스 포트 번호, TCP/UDP의 목적지 포트 번호가 동일한 일련의 패킷을 하나의 플로우로 정의할 수 있다. 또한, 경우에 따라서는 패킷의 헤더에서 몇 개의 필드를 제외하거나, 더 추가하여 하나의 플로우가 규정될 수도 있다. 일 실시예에 따르면, 플로우는 가입자를 정의하는데 이용되는 필드보다 더 많은 헤더 필드를 이용하여 정의될 수 있다.
이러한 플로우 간의 패킷 스케줄링을 결정하기 위하여 각 가입자에 대한 정보를 포함하는 가입자 정보 저장부(도시되지 않음) 및 각 플로우에 대한 정보를 포함하는 플로우 정보 저장부(도시되지 않음)가 이용된다.
가입자 정보 저장부는 각 가입자별 메모리 블록으로 구성될 수 있다. 각 가입자별 메모리 블록에는, 가입자별 할당된 대역, 가입자의 플로우 개수 등 가입자에 대한 정보가 저장되고, 유지되고 갱신될 수 있다.
플로우 정보 저장부는 각 플로우별 메모리 블록으로 구성될 수 있다. 각 플로우별 메모리 블록에는, 플로우의 포워딩 정보 및 스케줄링 처리 정보 등의 다양한 플로우의 특징 또는 상태 변화 등이 저장되고, 유지되며, 갱신될 수 있다. 예를 들어, 각 플로우별 메모리 블록은, 플로우에 대한 패킷 스케줄링을 제공하기 위해서 필요한 플로우의 QoS 제공 유형(QoS Type), 각 플로우에 할당된 대역폭(bandwidth), 우선 순위(priority), 지연(delay) 등과 같은 QoS 요구 조건 및 패킷 스케줄링을 위한 상태 정보를 포함할 수 있다.
도 1을 참조하면, 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 상기 복수의 가입자별 대역폭이 계산된다(110).
복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 상기 가입자별 대역폭을 공평하게 공유하도록 상기 플로우별 대역폭이 계산된다(220). 이하에서는, 설명의 편의를 위하여 설정된 대역폭을 공평하게 공유하기 위한 가입자별로 할당되는 대역폭을 제1 대역폭이라고 한다. 또한, 가입자별로 공평하게 할당되는 제1 대역폭을 적어도 하나의 플로우가 공평하게 공유하기 위하여, 플로우별로 할당되는 대역폭을 제2 대역폭이라고 한다.
일 실시예에 따라 가입자별로 공평하게 할당되는 제1 대역폭(
Figure pat00001
)은 다음과 같이 구할 수 있다.
패킷의 출력 링크의 대역폭 중 다른 용도로 사용되는 등 일부 대역을 제외하고, 출력 링크를 공유하는 모든 플로우가 공평하게 나누어 쓸 수 있도록 설정된 총 대역폭을
Figure pat00002
라고 가정한다. 이 경우, 어느 가입자(v)가 최소한 보장받아야 하는 최소 대역(
Figure pat00003
)은 총 대역폭(
Figure pat00004
)을 공유하는 가입자 수(N)를 고려하여
Figure pat00005
가 된다.
이때,
Figure pat00006
이면, 즉, N개의 가입자 중 일부 가입자가 최소 대역(
Figure pat00007
) 이하의 트래픽을 사용하고 있어서 실제 사용되는 대역폭이 총 대역폭(
Figure pat00008
)보다 작은 임의의 값(
Figure pat00009
)인 경우, 사용의 효율을 높이기 위해서 사용하지 않고 있는 만큼의 대역(
Figure pat00010
)을 나머지의 가입자가 공정하게 나누어 쓸 수 있도록 할당된 대역이 조정될 수 있다.
이를 위해서 다시 N개의 가입자 각각에게
Figure pat00011
가 더 할당될 수 있다. 이와 같은 과정에 따라서, 각 가입자에게 실제 할당되는 대역(
Figure pat00012
)은
Figure pat00013
으로 조정될 수 있다.
한편, 일 실시예에 따라 임의의 가입자 v에 대해서 플로우들에 공평하게 할당되는 임의의 플로우(i)에 할당된 대역은 다음과 같이 구할 수 있다. 예를 들어, 플로우(i)에 할당된 최소 대역(
Figure pat00014
)은, 플로우(i)가 속해있는 가입자(v)의 총 플로우 개수가
Figure pat00015
이고, 가입자에게 공평하게 할당된 제1 대역폭이
Figure pat00016
일 때
Figure pat00017
와 같이 구할 수 있다. 이때
Figure pat00018
개의 플로우 중 일부 플로우가 최소 대역(
Figure pat00019
) 이하의 트래픽을 사용하고 있어서, 실제 사용되는 대역폭이 가입자 v의 총 대역폭(
Figure pat00020
)보다 작은 임의의 값(
Figure pat00021
)인 경우, 플로우 i의 대역(
Figure pat00022
)에는 사용의 효율을 높이기 위해서 사용하지 않고 있는 만큼의 대역(
Figure pat00023
)을 나머지의 플로우가 공정하게 나누어 쓸 수 있도록 할당된 대역이 조정될 수 있다.
복수의 가입자가 있는 경우 각 가입자에 대하여 제1 대역폭은 동일한 값을 가질 것이다. 그러나, 가입자에 속하는 플로우 개수는 가입자별로 다를 수 있으므로, 가입자에 따라 플로우별 공평하게 할당되는 제2 대역폭은 다른 값을 가질 수 있다.
제2 대역폭에 기반하여, 상기 각 가입자에 속하는 적어도 하나의 플로우의 패킷이 스케줄링된다(130).
가입자 및 플로우별로 공평한 대역폭을 할당하는 과정에 대하여, 네트워크 장치에서 대역폭 BW를 제공하는 하나의 포트(포트 P)를 공유하는 인터넷 프로토콜 주소로 각각 A, B, C를 가지는 세 가입자(이하가입자 A, 가입자 B, 가입자 C로칭함)가 있는 경우를 예를 들어 설명한다.
가입자 A로부터의 A1, A2,…, Ai까지 i (i은적어도 1이상임)개의 플로우가 있고, 가입자 B로부터의 B1, B2,…,Bj까지 j (j는적어도 1이상임)개의 플로우가 있으며, 가입자 C로부터의 C1, C2,…,Ck까지 k (k은적어도 1이상임)개의 플로우가 있다고 가정한다.
포트 P를 공유하는 i+j+k개의 플로우는 포트 P의 BW의 대역을 공유하게 된다. 일반적으로, 서로 다른 가입자를 구분하지 않고 i+j+k개의 총 플로우의 대역내에서 주어진 대역폭을 공평하게 나누어 사용한다. 하지만 본 발명의 경우에는 가입자 A, B, C가 먼저 공평하게 대역폭 BW를 공평하게 할당받게 된다. 이와 같이 세 가입자가 공평하게 BW를 공유할 경우 최소로 받을 수 있는 공평 대역은 BW/3가 될 것이다.
이와 같이 최소 BW/3는 보장을 받지만 가입자중 어느 가입자가, 예를 들어 가입자 A가, 그 최소 보장 대역(BW/3) 이하로 사용하게 된다면 그 사용하지 않는 만큼은 B와 C가 다시 공평하게 나누어 사용하도록 할 수 있다. 물론 다시 A가 최소 대역폭까지 사용량이 늘어나게 된다면 B와 C는 다시 자신들의 최소 할당 대역폭인 BW/3만큼만 사용하고 추가로 사용했던 대역을 사용하지 못하게 될 수 있다. 이와 같이 가입자별로 공평하게 할당을 받은 대역폭 기반으로 A가입자는 i개의 플로우가 B가입자는 j개의 플로우가 C가입자는 k개의 플로우가 공평하게 대역을 나누어 사용할 수 있다.
포트 P는 논리적인 포트를 의미한다. 즉, 물리적으로 하나의 포트는 논리적인 다수의 포트를 가질 수 있다. 또한, 대역폭 BW는 포트 P에 할당된 최대 대역폭이 아닐 수 있으며 여러 가입자가 공유할 수 있는 대역폭을 의미한다. 즉, 최대 대역폭에서 다른 용도로 할당된 대역폭 이외에 여러 가입자들이 공평하게 공유할 수 있는 대역폭을 의미한다. 가입자별로 대역폭을 공정하게 사용할 수 있는 방법 및 공평하게 할당된 가입자의 대역폭을 각 가입자가 각자 자기 플로우간에 대역폭을 공평하게 사용하는 방법은 다양한 알고리즘을 통해서 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 각 플로우에 대하여 공평한 대역이 할당된 경우, 패킷 스케줄링 방법을 나타내는 순서도이다.
도 2를 참조하면, 패킷 스케줄링을 위하여, 공평하게 할당된 대역폭을 가지는 각 플로우마다, 각 플로우별로 공평하게 할당된 대역 및 각 플로우의 현재 입력된 k번째 패킷의 길이를 고려하여, 다음에 입력되는 k+1번째 패킷의 도착 예정 시간(Expected Time of Arrival; ETA)이 계산된다(210).
그런 다음, 각 플로우의 k+1번째 패킷의 도착 예정 시간 및 k+1번째 패킷의 실제 도착 시간이 비교된다(220). k+1번째 패킷의 도착 예정 시간(ETA)과 k+1번째 패킷의 실제 도착 시간을 비교할 때 어느 정도의 패킷이 몰려서 들어오는 버스트를 허용하기 위한 버스트 허용에 따른 버스트 허용 시간(burst tolerance; BT)를 고려할 수 있다.
비교 결과에 따라, 각 플로우의 k+1번째 패킷이 스케줄링된다(230). 해당 플로우의 k+1번째 패킷의 도착 예정 시간(ETA)을 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용 시간(BT)을 합한 시간을 비교하여, k+1번째 패킷이 도착 예정 시간(ETA)이 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용 시간(BT)을 합한 시간(CUR+BT)보다 늦은 경우에는, k+1번째 패킷은 각 플로우에 공평하게 할당된 대역을 위배하여 전송된 것으로 폐기될 수 있다.
도 1의 패킷 스케줄링 방법에는 실제 구현 예에 따라서 다른 부가적인 패킷 처리 절차가 수반될 수 있다.
도 3a 내지 도 3c는 발명의 일 실시예에 따른 공평한 대역 할당 기반 패킷 스케줄링 방법의 상세 처리 과정을 나타내는 순서도이다.
도 3a를 참조하면, 패킷 입력 대기 상태(310)에서 패킷이 입력되면, 가입자 정보 저장부(도시되지 않음)에 대한 정보 검색이 수행된다(312).
입력된 패킷의 가입자 정보가 가입자 저장부에 이미 생성된 가입자로부터의 연속된 패킷(subsequent packet)인지, 아니면 가입자 정보가 아직 생성되지 않은 새로운 가입자의 첫 번째 패킷인지 확인된다(314).
입력된 패킷이, 가입자 정보가 이미 생성된 기존의 가입자의 연속된 패킷인 경우(314), 가입자 정보 저장부에 저장되어 가입자의 총 수를 이용하여 가입자별 제1 대역폭을 계산한다(316). 계산된 가입자별 제1 대역폭은 가입자 정보 저장부의 상태 정보로 갱신되어 저장된다(318). 동작 316 및 318은 다른 단계에서 수행될 수 있으며, 예를 들어, 이후에 설명할 플로우 정보 저장부의 갱신 동작 이후에 수행될 수 있다.
입력된 패킷이, 가입자 정보가 아직 생성되지 않은 새로운 가입자에 대한 첫 번째 패킷인 경우에는(314), 새로운 가입자에 대한 가입자 정보를 생성하여 가입자 정보 저장부에 추가한다(320). 또한, 가입자의 개수를 하나 증가시키고, 증가된 가입자의 개수를 이용하여 가입자별로 공평하게 분배되는 가입자별 제1 대역폭을 계산한다(322). 계산된 가입자별 제1 대역폭은 가입자 정보 저장부의 상태 정보로 갱신되어 저장된다(324).
도 3b를 참조하여, 가입자들에 공평하게 할당되도록 계산된 가입자별 제1 대역폭을 기반으로, 기존의 가입자에 속하는 패킷의 처리 과정을 설명한다.
플로우 정보 저장부(도시되지 않음)에 대한 정보 검색이 수행되어(220), 입력된 패킷의 플로우 정보가 플로우 정보 저장부에 이미 생성된 플로우의 연속된 패킷(subsequent packet)인지 아니면, 플로우 정보가 아직 생성되지 않은 새로운 플로우의 첫 번째 패킷인지를 확인된다(332).
입력된 패킷에 대한 플로우는 플로우 정보가 플로우 정보 저장부에 이미 생성된 플로우를 플로우(i)라고 가정한다. 현재 도착되어 입력된 패킷이 플로우(i)에 대해 손실 없이 연속되어 전송된 k 번째 패킷인 경우, 플로우 정보 저장부에 저장되어 있는 플로우(i)의 k번째 패킷의 도착 예정 시간(
Figure pat00024
)과 k번째 패킷의 실제 도착 시간(CUR)을 비교한다. 실제 도착 시간(CUR)은, 본 발명에 따른 패킷 스케줄링 방법을 수행하는 장치의 시스템 클럭 시간에 대응된다.
k번째 패킷의 도착 예정 시간(
Figure pat00025
)은 k-1번째 패킷이 입력된 때 플로우(i)에 공평하게 할당된 대역폭(
Figure pat00026
), 이전 패킷인 k-1번째 패킷의 도착 예정 시간(
Figure pat00027
) 및 k-1번째 패킷의 길이(
Figure pat00028
)를 이용하여 다음과 같은 수학식 1을 이용하여 계산된 값일 수 있다.
[수학식 1]
Figure pat00029
이미 생성된 플로우(i)에 대한 연속된 k번째 패킷에 대하여, 버스트 허용치(burst tolerance) 또는 버스트 허용 시간(BT)을 고려하여, k번째 패킷의 도착 예상 시간(
Figure pat00030
)을, k번째 패킷이 실제 도착 시간(CUR)에 버스트 허용 시간(BT)을 합산한 시간과 비교하여, k번째 패킷이 버스트 허용 시간(BT)을 초과하여 빨리 입력되었는지가 확인될 수 있다(336). 버스트 허용 시간(BT)는 네트워크 상황 등에 따라 0(zero)을 포함한 소정의 시간으로 설정될 수 있다.
k번째 패킷의 도착 예상 시간(
Figure pat00031
)이 실제 도착 시간(CUR)에 버스트 허용 시간(BT)을 합산한 시간(CUR+BT)보다 크다면(336), k번째 패킷은 버스트 허용 시간(BT)을 초과한 패킷으로 k번째 패킷은 폐기 처리될 수 있다(338).
k번째 패킷의 도착 예정 시간(
Figure pat00032
)이 실제 도착 시간(CUR)에 버스트 허용 시간(BT)을 합산한 시간(CUR+BT)보다 작거나 같다면(336), 다시 도착 예정 시간(ETA)에 대한 재보정 한계 시간(LT)(이하에서, 재보정 한계 시간이라 함)를 고려하여, k번째 패킷의 도착 예정 시간(
Figure pat00033
)을, k번째 패킷의 실제 도착 시간(CUR)에 ETA 재보정 한계 시간(LT)을 뺀 시간과 비교하여(340), k번째 패킷이 실제 도착 시간(CUR)에 ETA 재보정 한계 시간(LT)을 초과하여 늦게 입력되었는지가 확인될 수 있다(340). 재보정 한계 시간(LT)은 네트워크 상황 등에 따라 설정될 수 있다.
k번째 패킷의 도착 예정 시간(
Figure pat00034
)이 k번째 패킷의 실제 도착 시간(CUR)에 ETA 재보정 한계 시간(LT)을 뺀 시간(CUR-LT)보다 작으면(340), k번째 패킷은 재보정 한계 시간(LT)을 초과하여 늦게 도착한 패킷으로, 해당 플로우의 도착 예정 시간(ETA)이 시스템 클럭과 계속 벌어지지 않도록, 현재 시스템 클럭으로 재조정한다. 즉, k번째 패킷의 도착 예정 시간(
Figure pat00035
)을 실제 도착 시간(CUR)으로 초기화할 수 있다(342).
그런 다음, 플로우(i)의 k번째 패킷의 길이 (
Figure pat00036
)을 고려하여 수학식 2와 같이, k+1번째 패킷의 도착 예정 시간(
Figure pat00037
)을 계산할 수 있다(344).
[수학식 2]
Figure pat00038
이와 같이 계산된, 다음 전송될 k+1번째 패킷의 도착 예상 시간(
Figure pat00039
)을 플로우 정보 저장부에 저장하여, 플로우(i)에 대한 플로우 상태 정보를 업데이트할 수 있다(346). k번째 패킷은 실제 도착 시간(CUR)으로 초기화된 도착 예상 시간(
Figure pat00040
)을 기초로 스케줄링될 수 있다(348).
k번째 패킷의 도착 예정 시간(
Figure pat00041
)이 k번째 패킷의 실제 도착 시간(CUR)에 ETA 재보정 한계 시간(LT)을 뺀 시간(CUR-LT)보다 크거나 같으면(340), k번째 패킷은 도착 예정 시간(
Figure pat00042
)보다 늦게 들어왔지만 아직 재보정 한계 시간(LT)을 초과하지 않은 패킷이다. 이러한 패킷은 플로우(i)의 k번째 패킷의 길이(
Figure pat00043
)을 고려하여 수학식 2와 같이, k+1번째 패킷의 도착 예상 시간(
Figure pat00044
)이 계산될 수 있다(342). k+1번째 패킷의 도착 예상 시간(
Figure pat00045
)은 플로우 정보 저장부에 업데이트되고(344), k번째 패킷은 도착 예상 시간(
Figure pat00046
)에 기반하여 스케줄링될 수 있다(346).
입력된 패킷이, 생성되지 않은 임의의 플로우(j)에 대한 첫 번째 패킷인 경우에는 플로우 정보를 생성하여 플로우 정보 저장부에 추가한다(334). 동작 334이수행될 때, 플로우 개수가 1 증가된다. 그에 따라, 새로운 플로우(j)에 할당될 대역 (
Figure pat00047
)이 계산될 수 있다. 새로운 플로우(j)에 할당될 대역 (
Figure pat00048
)은 전술한 바와 같이, 모든 플로우가 공평하게 나누어 쓸 수 있는 총 대역폭(
Figure pat00049
)을 출력 링크를 공유하는 모든 플로우의 수(N)로 분할하여, 플로우(j)를 포함하는 출력 링크를 공유하는 모든 플로우에 공평하게 대역폭이 할당될 수 있다.
플로우(j)의 도착 예정 시간(
Figure pat00050
)을 패킷 도착 시간인 현재의 시스템 클럭 시간(CUR)로
Figure pat00051
초기화한다(342).
그리고 플로우(j)의 첫 번째 패킷의 길이(
Figure pat00052
) 및 플로우(j)에 할당된 대역 (
Figure pat00053
)을 고려하여, 플로우(j)의 다음 패킷의 도착 예정 시간(
Figure pat00054
)을 수학식 3을 이용하여 계산할 수 있다(344).
[수학식 3]
Figure pat00055
다음 패킷의 도착 예정 시간(
Figure pat00056
)은 플로우 정보 저장부의 플로우(j)에 대한 메모리 블록에 업데이트되고(346), 플로우(j)의 첫 번째 패킷은 패킷 도착 시간으로 초기화된 패킷 도착 예정 시간(
Figure pat00057
)에 기반하여 스케줄링될 수 있다(348). 이후에는 동작 310으로 리턴되어 다음 패킷 입력 대기 상태로 들어갈 수 있다.
도 3c를 참조하여, 가입자들에 공평하게 할당되도록 계산된 가입자별 제1 대역폭을 기반으로, 새로운 가입자의 첫 번째 패킷의 처리 과정을 설명한다.
입력된 패킷이, 새로운 가입자에 대한 첫 번째 패킷인 경우에는 플로우(l)로 식별하고 플로우 정보를 생성하여 플로우 정보 저장부에 추가하고 플로우별로 공평하게 할당되는 제2 대역폭을 계산한다(350). 새로운 가입자의 첫 번째 패킷의 경우, 제2 대역폭의 값은 동작 324에서 계산된 제1 대역폭의 값이 된다.
플로우(l)의 도착 예정 시간을 패킷 도착 시간인 현재의 시스템 클럭 시간(CUR)로 초기화한다(352).
그리고 플로우(l)의 첫 번째 패킷의 길이 및 플로우(l)에 할당된 대역을 고려하여, 플로우(l)의 다음 패킷인 2번째 패킷의 도착 예정 시간을 계산할 수 있다(354).
다음 패킷의 도착 예정 시간은 플로우 정보 저장부의 플로우(l)에 대한 메모리 블록에 업데이트되고(356), 플로우(l)의 첫 번째 패킷은 패킷 도착 시간으로 초기화된 패킷 도착 예정 시간에 기반하여 스케줄링되어 전송될 수 있다(358). 이후에는 동작 310으로 리턴되어 다음 패킷 입력 대기 상태로 들어갈 수 있다.
도 4는 도 1의 패킷의 도착 예정 시간에 기반한 공평한 대역 할당 기반 패킷 스케줄링 방법을 수행하는 패킷 스케줄링 장치의 구성의 일 예를 나타내는 도면이다.
도 4의 패킷 스케줄링 장치(400)는 입력 처리부(410), 정보 저장부(420), 정보 계산부(430) 및 패킷 스케줄링부(440)를 포함할 수 있다. 정보 저장부(420)는 가입자 정보 저장부(422) 및 플로우 정보 저장부(424)를 포함할 수 있다. 패킷 스케줄링 장치(400)는 라우터, L3 스위치 등 다양한 네트워크 장치로 구현될 수 있다. 패킷 스케줄링 장치(400)는 입력 링크(10)를 통해 패킷을 입력받고, 출력 링크(20)를 통해 스케줄링된 패킷을 출력할 수 있다.
입력 처리부(410)는 패킷을 입력받고, 입력된 패킷에 대한 가입자 정보를 생성하여 가입자 정보 저장부(422)에 저장할 수 있다. 또한, 입력 처리부(410)는 입력된 패킷에 대한 플로우 정보를 생성하여 플로우 정보 저장부(424)에 저장할 수 있다. 입력 처리부(410)는 가입자 정보 저장부(422) 및 플로우 정보 저장부(424)에서 각각 가입자 정보 플로우 정보를 검색하고 갱신하여 관리할 수 있다.
입력 처리부(410)는 입력된 패킷에 대한 가입자 정보가 적어도 하나의 가입자에 대한 정보를 저장하는 가입자 정보 저장부(422)에서 검색되는지 여부를 확인할 수 있다. 입력 처리부(410)는 입력된 패킷에 대한 가입자가 가입자 정보 저장부(422)에서 검색되지 않는 새로운 가입자에 해당되는 경우, 입력된 패킷에 대한 가입자 정보를 생성하여 가입자 정보 저장부(422)에 추가할 수 있다.
입력 처리부(410)는 입력된 패킷에 대한 플로우 정보가 적어도 하나의 플로우에 대한 정보를 저장하는 플로우 정보 저장부(424)에서 검색되는지 여부를 확인할 수 있다. 입력 처리부(410)는 입력된 패킷에 대한 플로우가 플로우 정보 저장부(424)에서 검색되지 않는 새로운 플로우에 해당되는 경우, 입력된 패킷에 대한 플로우 정보를 생성하여 플로우 정보 저장부(424)에 추가할 수 있다.
가입자 정보 저장부(422)는 가입자의 플로우 수, 가입자별 공평하게 할당된 제2 대역폭 등, 가입자의 특징 또는 상태 변화 등을 저장, 유지 갱신하도록 구성될 수 있다.
플로우 정보 저장부(424)는 플로우의 포워딩 정보 및 스케줄링 처리 정보 등의 다양한 플로우의 특징 또는 상태 변화 등을 저장, 유지 및 갱신하도록 구성될 수 있다. 플로우 정보 저장부(424)는 정보 계산부(430)에서 계산되는 각 플로우의 다음 패킷의 도착 예정 시간 정보를 저장할 수 있다.
정보 계산부(430)는 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 상기 복수의 가입자별 제1 대역폭을 계산하고, 상기 복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 상기 제1 대역폭을 공평하게 공유하도록 상기 플로우별 제2 대역폭을 계산할 수 있다.
정보 계산부(430)는 각 플로우에 공평하게 할당된 대역폭 및 현재 입력된 k번째 패킷의 길이를 이용하여 각 플로우의 다음 번 입력되는 k+1번째 패킷의 도착 예정 시간을 계산한다. 정보 계산부(430)는, k번째 패킷의 길이를 플로우에 할당된 대역폭으로 나눈 값을 k번째 패킷의 도착 예정 시간에 합산하여, k+1번째 패킷의 도착 예정 시간을 계산할 수 있다.
정보 계산부(430)는 입력 링크(10) 및 출력 링크(20)의 대역폭 이용율을 관리할 수 있다. 정보 계산부(430)는, 출력 링크(20)에 설정된 대역폭에서 실제 이용되지 않는 대역폭이 있는 경우, 실제 이용되지 않는 대역폭을 출력 링크(20)를 공유하는 모든 가입자에 공평하게 배분할 수 있다. 출력 링크(20)를 공유하는 모든 플로우의 개수는 플로우 정보 저장부(320)에서 관리하는 모든 플로우의 개수에 대응한다.
패킷 스케줄링부(440)는 각 플로우의 패킷의 도착 예정 시간 및 패킷의 실제 도착 시간을 비교하고, 비교 결과에 따라, 각 플로우의 다음 패킷을 스케줄링한다. 패킷 스케줄링부(440)는 k+1번째 패킷이 도착되면, k+1번째 패킷의 도착 예정 시간 및 k+1번째 패킷의 실제 도착 시간을 비교하고, 비교 결과에 따라, 각 플로우의 k+1번째 패킷을 스케줄링할 수 있다. 패킷 스케줄링부(440)는 스케줄링 입력부(442), 패킷 포인터 버퍼(444) 및 스케줄링 출력부(446)를 포함할 수 있다.
스케줄링 입력부(442)는 계산된 도착 예정 시간에 따라 패킷 포인터 버퍼(444)에 패킷을 할당한다. 스케줄링 입력부(442)는 각 패킷의 도착 예정 시간에 따라 할당된 패킷 포인터 버퍼(444)의 타임 슬롯에 다음 패킷을 할당한다.
스케줄링 입력부(442)는, 입력된 패킷이 각 플로우의 첫 번째 패킷이 아닌 경우, k+1번째 패킷의 도착 예정 시간을 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간과 비교할 수 있다. 스케줄링 입력부(442)는, 각 플로우의 k+1번째 패킷의 도착 예정 시간이, k+1번째 패킷의 실제 도착시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간보다 늦은 경우에는, k+1번째 패킷을 폐기할 수 있다.
또한, 스케줄링 입력부(442)는, 각 플로우의 k+1번째 패킷의 도착 예정 시간이, k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간보다 늦지 않은 경우에는, k+1번째 패킷의 도착 예정 시간을 패킷의 실제 도착 시간(CUR)에서 도착 예정 시간에 대한 재보정 한계 시간(LT)을 뺀 시간과 비교할 수 있다.
스케줄링 입력부(442)는, k+1번째 패킷의 도착 예정 시간이, k+1번째 패킷의 실제 도착 시간(CUR)에서 재보정 한계 시간(LT)을 뺀 시간 보다 작은 경우, k+1번째 패킷의 도착 예정 시간을 k+1번째 패킷의 실제 도착 시간으로 초기화할 수 있다. 스케줄링 입력부(442)는, k+1번째 패킷의 도착 예정 시간이, k+1번째 패킷의 실제 도착 시간(CUR)에서 도착 예정 시간에 대한 재보정 한계 시간(LT)을 뺀 시간 보다 작지 않은 경우, k+1번째 패킷의 도착 예정 시간을 기반으로 k+1번째 패킷의 다음으로 입력되는 k+2번째 패킷의 도착 예정 시간을 계산할 수 있다.
패킷 포인터 버퍼(444)는 각 패킷의 도착 예정 시간에 따라 할당된 복수 개의 타임 슬롯을 포함할 수 있다. 패킷 포인터 버퍼(444)는, 타임 슬롯에 대응하는 큐의 처음과 끝이 연결되도록 구성된 환형 큐 방식으로 동작될 수 있다.
패킷 포인터 버퍼(444)는 메모리의 용량에 따라서 다양한 크기를 가질 수 있으며 도 4에서는 16,384개의 타임 슬롯을 가지는 경우를 도시하였다. 하나의 타임 슬롯의 크기 역시 메모리 용량에 따라서 다양한 크기를 가질 수 있다. 예를 들어 하나의 타임 슬롯은 8 마이크로 초 단위로 만들어질 수 있다. 즉, 8 마이크로 초 단위로 도착 예정 시간(ETA) 값에 따라서 스케줄링 입력부(442)는 패킷 포인터 버퍼(444)로 패킷을 할당할 수 있다.
스케줄링 출력부(446)는 출력 링크(20)의 대역에 따라서 패킷을 패킷 포인터 버퍼(444)로부터 스케줄링 입력부(442)에 의해 할당된 패킷을 하나씩 처리하여 출력 링크(20)로 전송한다.
도 4의 패킷 스케줄링 장치(400)는 일 실시예에 따른 패킷 스케줄링 방법을 수행하기 위한 구성이며, 실제 구현시는 다양한 기능 블록이 추가될 수 있다. 본 발명에 따르면, 가입자 간 네트워크 대역을 공평하게 사용할 수 있도록 하며 또한 공평하게 분배된 네트워크 대역 내에서 가입자가 발생하는 각 플로우간 공평한 네트워크 대역을 사용할 수 있다. 또한, 각 플로우별로 공평한 대역을 결정하고 그 결정된 대역기반으로 각 패킷의 스케줄링 시간을 결정하도록 함으로써 네트워크의 트래픽 체증(traffic congestion)에 반응하지 않는 트래픽(unresponsive traffic)에 대한 효율적인 제어와 각 플로우간 공평한 대역 사용 등이 가능하다. 또한, WFQ(Weigted Fair Queuing) 등과 같이 가상 시간과 가상 시간에 의해서 계산된 각 패킷에 할당된 타임스탬프 값 기반의 정렬구조를 필요로 하지 않으며, 프레임 기반의 스케줄링알고리즘과 같이 프레임 크기의 조정 및 프레임간 동기화 등을 필요로 하지 않는다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
400: 패킷 스케줄링 장치 410: 입력 처리부
420: 플로우 정보 저장부 430: 정보 계산부
440: 패킷 스케줄링부 442: 스케줄링 입력부
444: 패킷 포인터 버퍼 446: 스케줄링 출력부

Claims (20)

  1. 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 상기 복수의 가입자별 제1 대역폭을 계산하는 단계;
    상기 복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 상기 제1 대역폭을 공평하게 공유하도록 상기 플로우별 제2 대역폭을 계산하는 단계;
    상기 제2 대역폭에 기반하여, 상기 각 가입자에 속하는 적어도 하나의 플로우의 패킷을 스케줄링하는 단계를 포함하는 패킷 스케줄링 방법.
  2. 제1항에 있어서,
    상기 설정된 대역폭에서 실제 이용되지 않는 대역폭이 있는 경우, 상기 실제 이용되지 않는 대역폭을 상기 설정된 대역폭을 공유하는 모든 가입자에게 공평하게 배분하는 단계를 더 포함하는 패킷 스케줄링 방법.
  3. 제1항에 있어서,
    상기 제2 대역폭에서 실제 이용되지 않는 대역폭이 있는 경우, 상기 실제 이용되지 않는 대역폭을 상기 제2 대역폭을 공유하는 모든 플로우에게 공평하게 배분하는 단계를 더 포함하는 패킷 스케줄링 방법.
  4. 제1항에 있어서,
    상기 제2 대역폭에 기반하여, 상기 각 가입자에 속하는 적어도 하나의 플로우의 패킷을 스케줄링하는 단계는,
    상기 플로우별 제2 대역폭 및 현재 입력된 k번째 패킷의 길이를 이용하여 상기 각 플로우의 다음 번 입력되는 k+1번째 패킷의 도착 예정 시간을 계산하는 단계; 및
    상기 k+1번째 패킷이 도착되면, 상기 k+1번째 패킷의 도착 예정 시간 및 상기 k+1번째 패킷의 실제 도착 시간을 비교하는 단계; 및
    상기 비교 결과에 따라, 상기 각 플로우의 상기 k+1번째 패킷을 스케줄링하는 단계를 포함하는 패킷 스케줄링 방법.
  5. 제4항에 있어서,
    상기 각 플로우의 상기 k+1번째 패킷의 도착 예정 시간 및 상기 k+1번째 패킷의 실제 도착 시간을 비교하는 단계는,
    상기 k+1번째 패킷의 도착 예정 시간을 상기 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간과 비교하는 단계를 포함하는 패킷 스케줄링 방법.
  6. 제5항에 있어서,
    상기 비교 결과에 따라, 상기 각 플로우의 상기 k+1번째 패킷을 스케줄링하는 단계는,
    상기 각 플로우의 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간보다 늦은 경우에는, 상기 k+1번째 패킷을 폐기하는 단계를 포함하는 패킷 스케줄링 방법.
  7. 제6항에 있어서,
    상기 비교 결과에 따라, 상기 각 플로우의 상기 k+1번째 패킷을 스케줄링하는 단계는,
    상기 k+1번째 패킷의 실제 도착 시간에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간보다 늦지 않은 경우에는,
    상기 k+1번째 패킷의 도착 예정 시간을 상기 k+1번째 패킷의 실제 도착 시간(CUR)에서 도착 예정 시간에 대한 재보정 한계 시간(LT)을 뺀 시간과의 비교하는 단계를 더 포함하는 패킷 스케줄링 방법.
  8. 제7항에 있어서,
    상기 각 플로우의 상기 k+1번째 패킷을 스케줄링하는 단계는,
    상기 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착 시간에서 상기 재보정 한계 시간(LT)을 뺀 시간 보다 작은 경우, 상기 k+1번째 패킷의 도착 예정 시간을 상기 실제 도착 시간(CUR)으로 초기화하는 단계를 포함하고,
    상기 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착 시간(CUR)에서 상기 재보정 한계 시간(LT)을 뺀 시간 보다 작지 않은 경우, 상기 계산된 k+1번째 패킷의 도착 예정 시간을 기반으로 상기 k+1번째 패킷 다음에 입력되는 k+2번째 패킷의 도착 예정 시간을 계산하는 단계를 더 포함하는 패킷 스케줄링 방법.
  9. 제1항에 있어서,
    상기 k+1번째 패킷의 도착 예정 시간을 계산하는 단계는,
    상기 k번째 입력된 패킷의 도착 예정 시간에, 상기 k번째 입력된 패킷의 길이를 상기 k번째 입력된 패킷의 플로우에 할당된 대역폭으로 나눈 값을 합산하여, 상기 k+1번째 패킷의 도착 예정 시간을 계산하는 단계를 포함하는 패킷 스케줄링 방법.
  10. 제1항에 있어서,
    입력된 패킷에 대한 가입자가, 적어도 하나의 가입자에 대한 정보를 저장하는 가입자 정보 저장부에서 검색되지 않는 새로운 가입자에 해당되는 경우, 상기 새로운 가입자에 대한 정보를 생성하여, 상기 가입자 정보 저장부에 추가하는 단계를 더 포함하는 패킷 스케줄링 방법.
  11. 제1항에 있어서,
    입력된 패킷의 플로우가, 적어도 하나의 플로우에 대한 정보를 저장하는 플로우 정보 저장부에서 검색되지 않는 새로운 플로우에 해당되는 경우, 상기 입력된 패킷에 대한 플로우 정보를 생성하여 상기 플로우 정보 저장부에 추가하는 단계;
    상기 입력된 패킷의 도착 예정 시간을 상기 입력된 패킷이 실제 도착된 시간으로 설정하는 단계; 및
    상기 설정된 도착 예정 시간을 이용하여, 상기 새로운 플로우의 다음 패킷의 도착 예정 시간을 계산하는 단계를 더 포함하는 패킷 스케줄링 방법.
  12. 복수의 가입자가 패킷 전송을 위해 설정된 대역폭을 공평하게 공유하도록 상기 복수의 가입자별 제1 대역폭을 계산하고, 상기 복수의 가입자 각각에 대하여, 각 가입자에 속하는 적어도 하나의 플로우가 상기 제1 대역폭을 공평하게 공유하도록 상기 플로우별 제2 대역폭을 계산하는 정보 계산부; 및
    상기 제2 대역폭에 기반하여, 상기 각 가입자에 속하는 적어도 하나의 플로우의 패킷을 스케줄링하는 패킷 스케줄링부를 포함하는 패킷 스케줄링 장치.
  13. 제12항에 있어서,
    상기 정보 계산부는, 상기 제2 대역폭 및 현재 입력된 k번째 패킷의 길이를 이용하여 상기 각 플로우의 다음 번 입력되는 k+1번째 패킷의 도착 예정 시간을 계산하고,
    상기 패킷 스케줄링부는 상기 k+1번째 패킷이 도착되면, 상기 k+1번째 패킷의 도착 예정 시간 및 상기 k+1번째 패킷의 실제 도착 시간을 비교하고, 상기 비교 결과에 따라, 상기 각 플로우의 상기 k+1번째 패킷을 스케줄링하는 패킷 스케줄링 장치.
  14. 제13항에 있어서,
    상기 적어도 하나의 가입자에 대한 정보를 저장하는 가입자 정보 저장부; 및
    상기 k+1번째 패킷의 도착 예정 시간을 포함하는, 적어도 하나의 플로우에 대한 정보를 저장하는 플로우 정보 저장부를 더 포함하는 패킷 스케줄링 장치.
  15. 제13항에 있어서,
    상기 패킷 스케줄링부는,
    각 패킷의 도착 예정 시간에 따라 할당된 복수 개의 타임 슬롯을 포함하는 패킷 포인터 버퍼;
    상기 각 패킷의 도착 예정 시간에 따라 할당된 상기 패킷 포인터 버퍼의 타임 슬롯에 상기 각 패킷을 할당하는 스케줄링 입력부; 및
    상기 패킷 포인터 버퍼에서 상기 할당된 패킷을 전송하는 스케줄링 출력부를 포함하는 패킷 스케줄링 장치.
  16. 제15항에 있어서,
    상기 스케줄링 입력부는,
    입력된 패킷이 각 플로우의 첫 번째 패킷이 아닌 경우, 상기 k+1번째 패킷의 도착 예정 시간을 상기 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간과 비교하고,
    상기 각 플로우의 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간보다 늦은 경우에는, 상기 k+1번째 패킷을 폐기하는 패킷 스케줄링 장치.
  17. 제16항에 있어서,
    상기 스케줄링 입력부는,
    상기 각 플로우의 상기 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착 시간(CUR)에 버스트 허용에 따른 버스트 허용 시간(BT)을 합산한 시간보다 늦지 않은 경우에는,
    상기 k+1번째 패킷의 도착 예정 시간을 패킷의 실제 도착 시간(CUR)에서 도착 예정 시간에 대한 재보정 한계 시간(LT)을 뺀 시간과 비교하는 패킷 스케줄링 장치.
  18. 제17항에 있어서,
    상기 스케줄링 입력부는,
    상기 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착 시간(CUR)에서 상기 재보정 한계 시간(LT)을 뺀 시간 보다 작은 경우, 상기 k+1번째 패킷의 도착 예정 시간을 상기 k+1번째 패킷의 실제 도착 시간으로 초기화하고,
    상기 k+1번째 패킷의 도착 예정 시간이, 상기 k+1번째 패킷의 실제 도착 시간(CUR)에서 도착 예정 시간에 대한 재보정 한계 시간(LT)을 뺀 시간 보다 작지 않은 경우, 상기 계산된 k+1번째 패킷의 도착 예정 시간을 기반으로 상기 k+1번째 패킷의 다음으로 입력되는 k+2번째 패킷의 도착 예정 시간을 계산하는 패킷 스케줄링 장치.
  19. 제15항에 있어서,
    상기 패킷 포인터 버퍼는, 타임 슬롯에 대응하는 큐의 처음과 끝이 연결되도록 구성된 환형 큐 방식으로 동작되는 패킷 스케줄링 장치.
  20. 제15항에 있어서,
    상기 정보 계산부는, 상기 출력 링크에 설정된 대역폭에서 실제 이용되지 않는 대역폭이 있는 경우, 상기 실제 이용되지 않는 대역폭을 상기 설정된 대역폭을 공유하는 모든 가입자에게 공평하게 배분하고,
    상기 제2 대역폭에서 실제 이용되지 않는 대역폭이 있는 경우, 상기 실제 이용되지 않는 대역폭을 상기 제2 대역폭을 공유하는 모든 플로우에게 공평하게 배분하는 패킷 스케줄링 장치.
KR1020100117409A 2010-11-24 2010-11-24 가입자 인지 플로우별 QoS 제공 방법 및 장치 KR20120055947A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100117409A KR20120055947A (ko) 2010-11-24 2010-11-24 가입자 인지 플로우별 QoS 제공 방법 및 장치
US13/299,618 US8660001B2 (en) 2010-11-24 2011-11-18 Method and apparatus for providing per-subscriber-aware-flow QoS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100117409A KR20120055947A (ko) 2010-11-24 2010-11-24 가입자 인지 플로우별 QoS 제공 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20120055947A true KR20120055947A (ko) 2012-06-01

Family

ID=46064292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100117409A KR20120055947A (ko) 2010-11-24 2010-11-24 가입자 인지 플로우별 QoS 제공 방법 및 장치

Country Status (2)

Country Link
US (1) US8660001B2 (ko)
KR (1) KR20120055947A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101737516B1 (ko) * 2010-11-24 2017-05-18 한국전자통신연구원 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
US9100464B2 (en) * 2012-08-29 2015-08-04 Ericsson Television Inc. Regulating content streams from a weighted fair queuing scheduler using weights defined for user equipment nodes
US9537777B1 (en) * 2015-03-30 2017-01-03 EMC IP Holding Company LLC Adjusting input/output operation arrival times to represent a token bucket that enforces maximum rate and burst size limits
KR20170101537A (ko) * 2016-02-29 2017-09-06 한국전자통신연구원 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907243B1 (en) * 1999-06-09 2005-06-14 Cisco Technology, Inc. Method and system for dynamic soft handoff resource allocation in a wireless network
US7444669B1 (en) * 2000-05-05 2008-10-28 Microsoft Corporation Methods and systems for providing variable rates of service for accessing networks, methods and systems for accessing the internet
KR100369562B1 (ko) 2000-02-25 2003-01-30 학교법인 한국정보통신학원 고속 통합 서비스망에서 wfq의 에뮬레이션을 통한 공정패킷 스케쥴링 방법 및 그 공정 패킷 스케쥴러
US6574195B2 (en) 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
JP2002271359A (ja) 2001-03-14 2002-09-20 Nec Corp ルータ装置及びその帯域制御方法並びにプログラム
JPWO2003053012A1 (ja) * 2001-12-14 2005-04-28 古河電気工業株式会社 ポリシング制御方法、その制御装置およびその制御装置を用いたネットワークシステム
US7039013B2 (en) * 2001-12-31 2006-05-02 Nokia Corporation Packet flow control method and device
JP2004100967A (ja) * 2002-09-04 2004-04-02 Sumitomo Metal Ind Ltd 粉体燃焼用バーナ、粉体燃焼方法および焼却炉
US8248932B2 (en) * 2004-05-26 2012-08-21 West Lane Data Llc Method and apparatus for fairly sharing excess bandwidth and packet dropping amongst subscribers of a data network
KR100734827B1 (ko) * 2004-12-07 2007-07-03 한국전자통신연구원 가입자 망에서 가입자들간의 공평성을 보장하기 위한 장치및 그 방법
US8031682B2 (en) * 2004-12-07 2011-10-04 Electronics And Telecommunications Research Institute Apparatus and method for aggregating and switching traffic in subscriber network
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

Also Published As

Publication number Publication date
US20120127858A1 (en) 2012-05-24
US8660001B2 (en) 2014-02-25

Similar Documents

Publication Publication Date Title
US11316795B2 (en) Network flow control method and network device
EP1705851B1 (en) Communication traffic policing apparatus and methods
JP4017867B2 (ja) スケジューリング装置
JP4403348B2 (ja) 通信装置及び通信方法
US7969881B2 (en) Providing proportionally fair bandwidth allocation in communication systems
WO2019157978A1 (zh) 调度报文的方法、第一网络设备及计算机可读存储介质
US10063478B2 (en) Switching device and control method of switching device
EP2702731A1 (en) Hierarchical profiled scheduling and shaping
JP4163044B2 (ja) 帯域制御方法およびその帯域制御装置
US8248932B2 (en) Method and apparatus for fairly sharing excess bandwidth and packet dropping amongst subscribers of a data network
RU2643666C2 (ru) Способ и устройство для управления авторизацией виртуальной очереди вывода, а также компьютерный носитель информации
KR20160041631A (ko) 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법
CN107835133B (zh) 一种基于多属性决策的流优先级控制方法
KR101737516B1 (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
US8913501B2 (en) Efficient urgency-aware rate control scheme for multiple bounded flows
JP2023511889A (ja) サービスレベル構成方法および装置
CN113162789A (zh) 调整服务等级的方法、装置、设备、系统及存储介质
US10044632B2 (en) Systems and methods for adaptive credit-based flow
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
EP3202111B1 (en) Allocating capacity of a network connection to data steams based on type
US8467401B1 (en) Scheduling variable length packets
EP2063580B1 (en) Low complexity scheduler with generalized processor sharing GPS like scheduling performance
US20090073878A1 (en) Usage based queuing with accounting for wireless access points
CN113973342A (zh) 流量控制方法、装置、电子设备及存储介质
CN114448903A (zh) 一种报文处理方法、装置和通信设备

Legal Events

Date Code Title Description
A201 Request for examination