KR101523076B1 - 패킷 스케줄링 장치 및 방법 - Google Patents

패킷 스케줄링 장치 및 방법 Download PDF

Info

Publication number
KR101523076B1
KR101523076B1 KR1020090015550A KR20090015550A KR101523076B1 KR 101523076 B1 KR101523076 B1 KR 101523076B1 KR 1020090015550 A KR1020090015550 A KR 1020090015550A KR 20090015550 A KR20090015550 A KR 20090015550A KR 101523076 B1 KR101523076 B1 KR 101523076B1
Authority
KR
South Korea
Prior art keywords
frame
packet
packets
index
frame index
Prior art date
Application number
KR1020090015550A
Other languages
English (en)
Other versions
KR20100096599A (ko
Inventor
김종원
이동훈
Original Assignee
광주과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광주과학기술원 filed Critical 광주과학기술원
Priority to KR1020090015550A priority Critical patent/KR101523076B1/ko
Publication of KR20100096599A publication Critical patent/KR20100096599A/ko
Application granted granted Critical
Publication of KR101523076B1 publication Critical patent/KR101523076B1/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/6295Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority

Abstract

본 발명에 따른 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누는 단계와, 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 단계와, 상기 패킷들을 상기 각 할당된 하위 프레임에서 전송하는 단계를 포함한다.
패킷 교환 네트워크, 프레임

Description

패킷 스케줄링 장치 및 방법{Packet Scheduling Apparatus and Method}
본 발명은 ATM 으로부터 패킷 교환 네트워크에 이르기까지 많은 연구와 제안이 이루어진 패킷 스케줄링 알고리즘에 관한 것이다.
최근 급격히 증가하고 있는 실시간 분산 미디어 응용 서비스들(ex., grid, e-science, remote collaboration)은, 과거 서버/클라이언트 모델을 중심으로 제공된 단방향 멀티미디어 응용 서비스와는 달리 사용자들 간 실시간 상호작용과 다차원 고품질 미디어(5.1ch audio, HD video 등) 소스들을 기반으로 하는 양방향 복합미디어 응용 서비스로 진화하고 있다. 이들은 보통 여러 개의 고품질/실시간 미디어 스트림을 동시에 활용하기 때문에 대역폭(Mbps~Gbps) 의 보장과 더불어 네트워크 지연 및 지터에 대한 안정적인 성능 보장이 필수적으로 요구된다.
실시간 분산 응용 서비스들에 대한 포괄적 의미에서의 QoS(Quality of Service)(대역폭, 지연, 지터 포함) 보장은 미래 인터넷의 핵심 이슈들 중 하나이다. 기존 인터넷은 분산 노드들에 대한 연결성 제공을 최우선적으로 고려해 디자인되었고, 응용 서비스 또한 네트워크 인프라에 대한 이해 없이 필요한 만큼의 네트워킹 자원을 무분별한 경쟁을 통해 사용해 왔다. 이러한 구조 아래에서 나날이 증 가하는 사용자들의 서비스 품질에 대한 요구를 수용하기 위해 여러 가지 방법들이 응용/네트워크 계층에서 제안되어 왔다. 특히, 네트워크에서는 호 수락 제어 (call admission control), 트래픽 접근 제어 (traffic access control), 패킷 스케줄링 (packet scheduling), 버퍼 관리 (buffer management), 플로우 및 혼잡 제어 (flow and congestion control), QoS 라우팅 등이 서비스 품질 보장을 위한 방안으로써 연구되어 왔다.
이 중 패킷 스케줄링은 각 연결들이 필요로 하는 네트워크 성능(대역폭, 지연, 지터)을 보장하기 위한 대표적인 방법 중 하나로서 ATM 으로부터 패킷 교환 네트워크에 이르기까지 많은 연구와 제안이 이루어졌다.
이들은 주로 각 연결들에 대한 성능(대역폭, 지연, 지터) 보장을 목표로 제안되어 왔으며, 최근에는 실시간 분산 미디어 응용 서비스의 활성화로 인해 네트워크 지연 및 지연 변위와 같은 시간적 측면에서의 보장이 양적인 측면(대역폭과 같은)의 보장만큼이나 중요한 이슈로 떠오르고 있다. 실제로 Fair Queueing(FQ)과 그 변형(e.g., WFQ, WF2Q, SCFQ, SFQ)들은 주로 각 연결들이 요청한 대역폭의 보장과 이에 상응하는 공평한 서비스의 제공을 목표로 개발되어왔지만, Delay-EDD (Early Due Date), Jitter-EDD, Stop-and-Go (SG), Hierarchical Round Robin (HRR)과 같은 스케줄링 방식들은 공평한 서비스의 제공 보다는 할당된 대역폭을 이용해 네트워크의 지연이나 지터에 대한 성능을 보장하는데에 초점을 맞추고 있다. 하지만, 이들 중 Delay-EDD와 Jitter-EDD와 같은 방식들은 계산된 인덱스의 우선 순위화 (sorted priority-based) 를 기반으로 동작하기 때문에 지연과 지터에 대해 비교적 우수한 성능을 제공하는 반면, N개의 연결에 대해 최소 O(logN)의 복잡도를 가지게 된다. 이는 패킷의 처리속도가 매우 빨라야 하는 초고속 네트워크 환경에서는 적합하지 않았다. 한편 SG와 HRR과 같은 프레임 기반 (frame-based) 의 스케줄링 방식은 미리 정해진 길이의 시 구간 별 도착 순서대로 패킷을 처리하기 때문에 매우 간단하며 고속의 패킷 처리가 가능하다는 장점을 가지고 있다.
시간 프레임 기반 (frame-based) 의 패킷 처리 방식은 두 가지 문제점을 가지고 있다. 첫째, 고정적인 시간 프레임을 기반으로 패킷을 전송하기 때문에, 프레임의 크기에 따라 지연 성능과 프레임에 할당 가능한 연결의 수가 상반된 인과 관계를 가지게 된다. 즉 프레임의 크기를 증가시키면 할당할 수 있는 연결의 수가 증가하는 반면 지연 성능은 나빠지게 된다. 둘째, 모든 네트워크 노드들이 같은 크기의 동기화 된 시간 프레임을 기준으로 패킷을 처리해야 하기 때문에, 대규모 네트워크에 적용하기 힘든 문제점을 가지고 있다. Multiple-framing Stop-and-Go, HRR 에서는 다단계의 프레임 구조를 이용해 이러한 문제를 해결하고자 했으나, 트래픽 명세가 고정적인 시간 원점을 기준으로 하는 프레임 구조와 이의 크기에 기인하기 때문에 각 연결의 트래픽 특성을 네트워크 종단에 걸쳐 보장하기 위해서는 여전히 입출력 링크상에 설정된 프레임들에 대한 정보를 모두 파악하고 있어야 한다. 또한, 각 연결에 대한 지연 성능이 해당 연결과 관계된 프레임의 크기에 따라 고정적으로 정해지기 때문에, 호 수락 단계가 복잡해지고 유연성이 떨어져 실제 구현 및 서비스의 제공 측면에서 바람직하지 못하다.
요약하면, 타임 스템프(time-stamp)와 같은 인덱싱(indexing)을 이용한 대부 분의 우선순위 기반(sorted-priority based)의 스케줄링 알고리즘들은 N개의 연결에 대해 최소 O(logN)의 복잡도를 가지기 때문에, 초고속 네트워크 환경에는 적합하지 않다. 반대로 프레임 기반의 패킷 스케줄링 방식은 복잡도를 개선하는 대신 프레임 간 동기화를 요구하기 때문에 대규모 네트워크에 적용하기 힘든 구조적 문제점을 가지고 있다.
상기와 같은 문제점을 해결하기 위해 본 발명은 실시간 분산 미디어 응용 서비스가 요구하는 지연 성능을 보장하고 초고속 네트워크 환경에 적합한 낮은 복잡도를 지닌 패킷 스케줄링 방법 및 장치를 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따라 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누는 단계와, 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 단계와, 상기 패킷들을 상기 각 할당된 하위 프레임에서 전송하는 단계를 포함한다.
여기에서, 상기 할당 단계는 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하는 단계와, 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하는 단계와, 상기 패킷의 가상 서비스 프레임을 계산하는 단계와, 상기 패킷 의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하는 단계와, 상기 패킷을 상기 계산된 서비스 프레임에 전송하는 단계를 포함할 수 있다.
여기에서,제2항에 있어서, 상기 서비스 프레임 인덱스를 결정하는 단계는 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하는 단계일 수 있다.
여기에서, 상기 서비스 프레임 인덱스를 결정하는 단계는 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정하는 단계일 수 있다.
여기에서, 상기 서비스 프레임을 결정하는 단계는 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는 단계일 수 있다.
여기에서, 상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 될 수 있다.
여기에서, 상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산될 수 있다.
Figure 112009011551770-pat00001
여기에서,
Figure 112009011551770-pat00002
는 기준 하위 프레임의 위치이고,
Figure 112009011551770-pat00003
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-pat00004
은 하나의 프레임 내의 최대 하위 프레임의 수이고,
Figure 112009011551770-pat00005
는 해당 프레임에 도착된 패킷의 수이다.
상기 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 나타내는 q값을 1만큼 증가시키는 단계를 더 포함할 수 있다.
상기 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은, 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하고 별도로 저장하는 단계와, 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 전송하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 입력 링크와 출력 링크 사이에 연결되어 패킷을 스케줄링하는 장치는 상기 입력 링크에 연결되어 상기 입력 링크로부터의 패킷들을 수신하여 버퍼링하고 출력하는 입력 인터페이스와, 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누어진 상태에서 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 스케줄러와, 상기 하위 프레임들 별로 패킷들을 큐잉하는 다중 버퍼 장치와, 상기 다중 버퍼 장치로부터의 상기 패킷들을 전송하는 출력 인터페이스를 포함한다.
여기에서, 상기 스케줄러는 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하고, 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하고, 상기 패킷의 가상 서비스 프레임을 계산하고, 상기 패킷의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하고, 상기 패킷을 상기 계산된 서비스 프레임에 대응하여 상기 다중 버퍼 장치로 전달할 수 있다.
여기에서, 상기 스케줄러는 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정할 수 있다.
여기에서, 상기 스케줄러는 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정할 수 있다.
여기에서, 상기 스케줄러는 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정할 수 있다.
여기에서, 상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 설정될 수 있다.
여기에서, 상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산될 수 있다.
Figure 112009011551770-pat00006
여기에서,
Figure 112009011551770-pat00007
는 기준 하위 프레임의 위치이고,
Figure 112009011551770-pat00008
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-pat00009
은 하나의 프레임 내의 최대 하위 프레임의 수이고,
Figure 112009011551770-pat00010
는 해당 프레임에 도착된 패킷의 수이다.
여기에서, 상기 스케줄러는 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 1만큼 증가시킬 수 있다.
여기에서, 상기 패킷을 스케줄링하는 장치는, 낮은 최선(best-effort) 패킷을 저장하는 별도의 큐를 더 포함하고, 상기 스케줄러는 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하여 상기 별도의 큐에 저장하고, 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 전송할 수 있다.
여기에서, 상기 다중 큐 장치는 상기 하위 프레임들에 대응하여 패킷들을 각각 큐잉하는 복수 개의 하위프레임 큐를 포함할 수 있다.
본 발명은 실시간 분산 미디어 응용 서비스가 요구하는 지연 성능을 보장하고 초고속 네트워크 환경에 적합한 낮은 복잡도를 지닌 패킷 스케줄링 방법 및 장치를 제공하였다. 본 발명은 프레임 기반의 스케줄링 방식이지만, 프레임 내부에 가상의 하위 프레임들을 두고, 각 프레임에 전송될 패킷들을 가상의 하위 프레임에 분산 배치해 전송함으로써 같은 크기의 프레임을 갖는 노드들 사이에서 프레임 동기화 없이도 유연한 지연 성능을 제공하고, 지연 성능과 할당 가능한 연결의 수에 대한 커플링 문제를 효과적으로 해결할 수 있다. 즉, 프레임 내부의 하위 프레임 개수를 가변적으로 바꿀 수 있기 때문에, 프레임의 크기를 증가시켜도 하위프레임 개수의 조절을 통해 지연 성능을 독립적으로 조절할 수 있다. 따라서 제안된 방법은 서비스의 호 수락 과정에서 예측 가능하고 차등화 된 지연 성능을 제공할 수 있으며, 이를 종단에 걸쳐 보장할 수 있다. 이러한 성능 보장형 패킷 전송 기술은 기존의 mission/time-critical 응용 서비스 분야 (IPTV, 원격의료, 원격협업 등) 에 적극 활용될 수 있으며, 새로운 응용 서비스의 개발과 관련 산업의 활성화에 크게 기여할 것으로 예상된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들 은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명은 프레임 구조 내에 가상의 하위 프레임들을 두는 2계층 프레임 구조와 이를 이용한 패킷 스케줄링 알고리즘을 통해 고속의 패킷 교환 네트워크 환경에서 다양한 응용 서비스의 전송 품질을 보장하고, 기존 스케줄링 방식의 문제점을 효과적으로 해결할 수 있는 방법을 제공한다. 패킷 전송은 기존 프레임 기반 알고리즘과 같아 매우 간단하지만, 패킷을 내부 하위 프레임에 분산시켜 전송하기 때문에 네트워크 동기화 문제를 효과적으로 해결하고 보다 나은 지연 성능을 제공할 수 있다.
도 1은 일반적인 패킷 교환 네트워크를 나타낸 도면이다.
도 1을 참조하면, 2개의 장치(2,4)는 노드 A(10)로 패킷들을 송신한다. 노드 A(10)는 2개의 장치(2,4)로부터 패킷들을 수신하면 이들 패킷들을 전송을 위해 스케줄링하여 다른 노드, 예컨대, 노드 B(20) 또는 노드 C(30)로 전송한다. 노드 A(10)는 라우터 또는 스위치 장치가 될 수 있다. 본 발명은 이와 같이 패킷을 중계하는 노드들(10, 20, 30)에 구현될 수 있다.
하나의 노드는 각 연결들이 초기에 설정했던 트래픽 명세를 잘 따르는 경우 에 이론적으로 로컬 성능을 보장할 수 있다. 따라서 성능 보장이 필요한 트래픽들은 연결이 설정되는 과정에서 그들이 원하는 트래픽 명세를 선언해야 한다. 노드는 이러한 명세를 이용해 자신의 출력 링크에 가용한 자원의 양과 요청된 자원의 양을 비교해 새로운 연결을 수락하거나 거절할 수 있게 된다. 물론 이러한 성능 보장은 종단간에 이루어져야 하기 때문에 설정된 경로(path)에 존재하는 모든 노드에서 이러한 연결 설정이 성공해야 한다.
하지만, 본 발명은 경로의 설정 과정은 다루지 않고, 설정된 경로 상에서 각 노드의 출력 링크에서 호 수락 제어를 통해 수락된 연결들로부터 도착된 패킷에 대한 스케줄링을 다룬다.
본 발명에서는 각 연결들의 트래픽 명세가 Stop-and-go에서 제안한 (r,T)-smooth를 따른다고 가정한다. 이는 임의의 시 구간 T (sec) (i.e., 프레임) 내에 최대 r?T (bits) 의 트래픽이 발생됨을 뜻한다. 여기서 r은 해당 연결에 할당된 대역폭이다.
본 발명에서는 패킷의 크기가 고정(예컨대, L bits)적인 것으로 가정하고, 할당된 대역폭이 r인 어떤 연결의 경우 한 프레임 내에 전송 가능한 패킷의 수는 (r?T )/L 로 계산될 수 있으며, 이를 Q로 정의한다.
연결이 지나가는 경로에 있는 모든 스위치 (또는 라우터)는 수락된 각 연결에 대한 정보를 저장한다. 각 연결에 대한 정보는 하나의 프레임에 전송 가능한 패킷의 수(Q)와 현재 프레임 내에 서비스된 패킷의 수(q), 및 해당 연결의 ID를 포함한다. 연결이 설정된 직후에는 q값은 0으로 설정된다.. 본 발명은 기존 프레임 기 반의 전송 방식에서 나타나는 전송 프레임 크기와 지연 성능 간 커플링 문제를 효과적으로 해결하기 위해 프레임 구조 내부에 가상의 하위 프레임들을 두고, 해당 프레임에 전송될 패킷들을 가상의 하위 프레임에 배분해 전송하는 2계층 프레임 기반 패킷 스케줄링 알고리즘과 이를 위한 장치를 제공한다.
도 2는 본 발명에 따른 2계층 프레임 기반 패킷 스케줄링 방법을 실행하는 장치의 블록 구성도를 나타낸다.
도 2를 참조하면, 2계층 프레임 기반 패킷 스케줄링 장치는 입력 인터페이스(110), 스케줄러(120), 다중 큐 장치(130) 및 출력 인터페이스(140)를 포함한다.
입력 인터페이스(110)는 입력 링크에 연결되어 복수 개의 연결로부터 제공되는 패킷들을 수신하여 버퍼링할 수 있다. 또한, 입력 인터페이스(110)는 복수 개의 연결로부터 제공되는 패킷들을 스케줄러(120)에게 제공한다.
스케줄러(120)는 복수 개의 연결로부터 제공되는 패킷들을 스케줄링하여 다중 큐 장치(130)에게 제공한다. 구체적으로 스케줄러(120)는 패킷이 도착하면, 도착한 패킷을 출력 링크 상의 프레임 상에 할당한다.
여기에서, 본 발명에 따른 프레임 구조를 도 3을 참조하여 설명한다.
도 3을 참조하면, 본 발명에 따른 프레임은 2-계층 프레임 구조를 갖는다. 2-계층 프레임 구조는 프레임(F)과 각 프레임 내부에 n개의 하위 프레임(f)들로 이루어진다. 본 발명에서는 각 패킷의 도착 시점과 서비스 시점을 2-계층 프레임 구조 하에서 처리하기 위해 출력 링크상의 프레임에 고유의 번호를 부여하고, 각 프레임 내부의 하위 프레임에는 1~n 의 번호를 갖는 것으로 가정하고 이를 {F,f}와 같이 표현한다. 즉, 첫번째 프레임의 제1 하위 프레임의 위치는 {1,1}으로 표현될 수 있으며, 네번째 프레임의 제1 하위 프레임의 위치는 {4,1}으로 표현될 수 있다.
그리고, 하나의 프레임에 포함되는 하위 프레임의 개수는 가변적이다. 그에 따라, 프레임이 증가하여도 하위 프레임의 개수 조절을 통해 지연 성능을 조절할 수 있다. 스케줄러(120)는 이와 같이 2-계층 프레임 상에 수신한 패킷을 할당한다.
이러한, 스케줄러의 동작을 도 4를 참조하여 상세히 설명한다.
도 4는 본 발명의 바람직한 실시예에 따른 스케줄러의 동작을 나타낸 흐름도를 나타낸다. 전술한 바와 같이, 출력 링크의 전송 시간 축은 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누어져 있는 것을 가정한다.
도 4를 참조하면, 스케줄러(120)는 단계 210에서 패킷이 도착했는 지를 판단한다. 스케줄러(120)는 새로운 패킷이 도착하면, 단계 220에서 우선 해당 패킷의 ID를 확인해 출력 링크에 설정된 연결들로부터 온 것인지 확인한다. 스케줄러(120)는 도착한 패킷이 출력 링크에 설정된 연결로부터 온 것이면, 단계 240으로 진행한다. 또한, 스케줄러(120)는 도착한 패킷이 출력 링크에 설정된 연결로부터 온 것이 아니면, 단계 230에서 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하고 별도로 저장하였다가 서버가 유휴(idle)한 상태에 있으면 순차적으로 전송한다.
그리고, 스케줄러(120)는 단계 240에서 패킷의 도착 시점을 출력 링크 상의 프레임 위치로 변환한다. 즉, 스케줄러(120)는 패킷의 도착 시점을 출력 링크 상의 프레임 및 하위 프레임 위치를 나타내는 도착 프레임 인덱스로 변환한다.
예를 들면 프레임의 크기가 1 sec 이고, 하위 프레임의 개수가 10개인 경우, 패킷의 도착 시점이 출력 링크의 전송 시간 축에 대해 4.3 sec 라면, 이는 도착 프레임 인덱스 {F=5th (frame), f=3rd (sub-frame)} 즉, {5,3}으로 표현된다.
이어서, 스케줄러(120)는 단계 250에서 해당 패킷의 가상 서비스 프레임 인덱스를 계산하고 도착 프레임 인덱스와의 비교를 통해 서비스 프레임 인덱스를 결정한다. 그리고, 스케줄러(120)는 단계 260에서 결정된 서비스 프레임이 새로운 프레임인지를 기준 프레임 인덱스와의 비교를 통해 결정한다.
여기에서, 가상 서비스 프레임 인덱스 및 서비스 프레임 인덱스는 본 명세서에서 패킷이 서비스될 프레임 상의 위치 및 서비스되는 프레임 상의 위치 {F,f}}를 각각 나타낸다. 그리고, 연결이 설정된 직후에는 해당 연결의 기준 프레임 인덱스인 {FR, fR}값이 0으로 설정된다. 여기에서, 기준 프레임 인덱스는 각 연결에서 패킷이 할당되는 서비스 프레임 인덱스를 결정할 때 기준이 되는 값이다.
스케줄러(120)는 결정된 서비스 프레임이 새로운 프레임이면 단계 270으로 진행하여 해당 서비스 프레임 인덱스를 기준 프레임 인덱스로 업데이트한다.
이하, 도 5를 참조하여 단계 250 내지 270에 대해 상세히 설명한다.
도 5는 도착 프레임 인덱스에 대해 가상 서비스 프레임 인덱스 및 서비스 프레임 인덱스의 관계를 나타낸 도면이다.
도 4를 참조하면, 연결 i의 Q(한 프레임 내에 전송 가능한 패킷 수) 값이 2인 경우, 도착 프레임 인덱스를 가지는 연속된 4개의 패킷이 순차적으로 도착된 경 우를 가정한다. 그리고, 각 연결로부터 해당 스위치 또는 라우터에 패킷이 처음 도착하는 경우 기준 프레임 인덱스는 {FR =0, fR=0}으로 설정된다.
먼저, 스케줄러(120)는 연결 i로부터 패킷이 도착하면 패킷의 도착 시점을 출력 링크상의 프레임 위치로 변환한다.패킷의 도착 프레임 인덱스가 {F=5,f=1}이면, 패킷의 도착 프레임 인덱스 중 F(=5) 값이 해당 연결의 기준 프레임 인덱스인 FR(=0)값보다 크므로, 스케줄러(120)는 새로운 프레임에 패킷이 도착했음을 알 수 있게 된다.
그러면, 스케줄러(120)는 해당 프레임에 해당 연결로부터 처음으로 도착한 패킷의 경우 수신된 출력 링크 상의 도착 프레임 인덱스의 바로 다음 하위 프레임을 해당 패킷의 서비스 프레임 인덱스로 할당해 전송한다. . 예컨대, 스케줄러(120)는 해당 패킷의 도착 프레임 인덱스가 {5,1}이면, 해당 패킷의 서비스 프레임 인덱스는 {5,2}가 될 수 있다. 따라서, 해당 연결에 대해 처음으로 도착한 패킷의 경우에, 스케줄러(120)는 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하며, 이 가상 서비스 프레임 인덱스는 서비스 프레임 인덱스가 된다. 그리고, 스케줄러(120)는 현재 프레임 내에 서비스된 패킷의 수를 나타내는 q를 1만큼 증가시킨다.
그리고, 이 패킷의 서비스 프레임 위치는 해당 프레임에서 기준 프레임 인덱스가 된다. 따라서, 기준 프레임 인덱스는 {FR =5, fR=2}가 된다. 이 기준 프레임 인덱스는 패킷이 새로운 프레임에 서비스될 때마다 업데이트될 수 있다.
한편, 패킷이 도착하였을 때, 패킷의 계산된 가상 서비스 프레임 인덱스는 도착 프레임 인덱스에 대해 앞서는 경우, 동일한 경우, 뒷쳐지는 경우가 발생한다.
일 예로, 스케줄러(120)는 패킷의 가상 서비스 프레임 인덱스가 도착 서비스 프레임 인덱스보다 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스가 실제 서비스 프레임 인덱스가 되는데, 이하 상세히 설명한다.
도착 프레임 인덱스가 {F=5, f=1}인 패킷 이후에, 도착 프레임 인덱스가 {F=5, f=2}인 패킷이 도착하면 패킷의 도착 프레임 인덱스의 F(=5) 값은 해당 연결의 기준 프레임 인덱스 FR (=5)와 같다. 그에 따라 스케줄러는 이미 시작된 프레임에 패킷이 도착했음을 알 수 있다.
전술한 바와 같이, 5번째 프레임에 이미 하나의 패킷이 서비스 되었으므로, q값은 1이며 기준 프레임 인덱스는 {FR =5, fR=2}이다. 스케줄러(120)는 해당 연결의 q값을 확인하고 이 패킷이 서비스될 가상 서비스 프레임 인덱스를 계산한다.
구체적으로 스케줄러(120)는 해당 연결로부터 도착하는 패킷들을 프레임 내의 하위 프레임에 분산시켜 전송하기 위해, 해당 프레임에 처음으로 도착한 패킷의 기준 프레임 인덱스의
Figure 112009011551770-pat00011
에 기초하여 패킷이 전송될 하위 프레임의 위치를 계산한다. 다시 말해, 스케줄러(120)는 패킷이 서비스될 가상 서비스 프레임 인덱스 즉, 가상 서비스 프레임 인덱스중 하위 프레임값을 다음과 같은 수학식 1에 따라 계산한다.
Figure 112009011551770-pat00012
여기에서,
Figure 112009011551770-pat00013
는 기준 하위 프레임 값이고,
Figure 112009011551770-pat00014
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-pat00015
은 하나의 프레임 내의 하위 프레임의 수이고,
Figure 112009011551770-pat00016
는 해당 프레임에 도착된 패킷의 수이다.
상기의 경우에는 하위 프레임 값은
Figure 112009011551770-pat00017
(=4) 이 되어 해당 패킷이 서비스될 가상 서비스 프레임 인덱스는 {F =5, f=4}가 된다. 이 패킷은 도착 프레임 인덱스가 {F =5, f=2}이고, 가상 서비스 프레임 인덱스가 {F =5, f=4}이므로, 결과적으로 서비스될 시점보다 해당 패킷이 먼저 도착한 것이 되므로, 서비스 프레임 인덱스는 {F =5, f=4}가 된다. 그리고, 스케줄러(120)는 현재 프레임 내에 서비스된 패킷의 수를 나타내는 q를 1만큼 증가시킨다.
다른 예에서, 전술한 바와 같이, 계산된 가상 서비스 프레임 인덱스가 서비스 프레임 인덱스가 되는 경우에, 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 스케줄러(120)는 새로운 프레임의 첫번째 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는데, 이하 상세히 설명한다.
도착 프레임 인덱스가 {F=5, f=4}인 패킷이 도착하면 패킷의 도착 프레임 인덱스의 F(=5) 값은 해당 연결의 기준 프레임 인덱스 FR (=5)와 같다. 그에 따라 스 케줄러는 이미 시작된 프레임에 패킷이 도착했음을 알 수 있다.
스케줄러(120)는 해당 연결의 q값을 확인한다. 이 예에서는 5번째 프레임에 이미 2개의 패킷들이 서비스되었으므로, q값은 2이다. 해당 패킷의 가상 서비스 프레임의 하위 프레임 값은
Figure 112009011551770-pat00018
(=6)이 된다. 따라서, 해당 패킷의 서비스 프레임 인덱스는 {F=5, f=6}이 된다. 그러나, 6번째 하위 프레임은 존재하지 않으므로, 이 패킷은 6번째 프레임의 첫번째 하위 프레임에서 서비스되어야 한다. 따라서, 서비스 프레임 인덱스는 {F=6, f=1}이 된다. 이 경우, 패킷이 새로운 프레임에 서비스되기 때문에, 기준 프레임 인덱스는 {FR =6, fR=1}로 업데이트 된다. 또한, 스케줄러(120)는 6번째 프레임에서 하나의 패킷이 서비스되었으므로, q값을 1로 초기화한다. 또 다른 예에서, 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 스케줄러(120)는 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는데, 이하 상세히 설명한다.
도착 프레임 인덱스가 {F=6, f=4}인 패킷이 도착하면 패킷의 도착 프레임 인덱스의 F(=6) 값은 해당 연결의 기준 프레임 인덱스 FR (=6)와 같다. 그에 따라 스케줄러는 이미 시작된 프레임에 패킷이 도착했음을 알 수 있다.
이 경우, 스케줄러(120)는 해당 연결의 q값을 확인하고, 해당 패킷의 가상 서비스 프레임 인덱스를 계산한다. 전술한 바와 같이, 6번째 프레임에서 이미 한 개의 패킷이 서비스되었으므로, q값은 1이다.
해당 패킷의 가상 서비스 프레임의 하위 프레임 값은
Figure 112009011551770-pat00019
(=3)이 된다. 따라서, 해당 패킷의 가상 서비스 프레임 인덱스는 {F=6, f=3}이 된다. 그런데, 해당 패킷의 도착 프레임 인덱스가 {F=6, f=4}이므로, 해당 패킷은 서비스될 시점보다 늦게 도착한 것이다. 이 경우 스케줄러(120)는 해당 패킷의 하위 서비스 프레임값을 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 값으로 설정한다. 그에 따라, 이 패킷의 서비스 프레임 인덱스는 {F=7,f=1}이 된다. 또한, 패킷이 새로운 프레임에 서비스되기 때문에, 기준 프레임 인덱스는 {FR =7, fR=1}로 업데이트 된다. 또한, 스케줄러(120)는 7번째 프레임에서 하나의 패킷이 서비스되었으므로, q값을 1로 초기화한다.
따라서, 스케줄러(120)는 패킷이 도착하면 패킷의 가상 서비스 프레임이 도착 프레임 인덱스에 대해 앞서는지, 동일한 지 또는 뒤쳐지는 지 판단하고 그 결과에 따라 실제 서비스 프레임을 결정한다.이와 같은 스케줄러(120)의 동작은 다음 표 1과 같이 프로그래밍될 수 있다.
Figure 112009011551770-pat00020
이어서, 스케줄러(120)는 단계 280에서 패킷을 결정된 서비스 프레임에서 서비스한다.
스케줄러(120)는 계산된 서비스 프레임에 따라, 2-계층 프레임 상에 수신한 패킷을 할당하고, 이 패킷을 다중 큐 장치(130)로 출력한다. 다중 큐 장치(130)는 프레임의 하위 프레임에 서비스 될 패킷들을 같은 큐에 저장한다.
만약 출력 링크상에 단일 큐를 두고 서비스프레임이 결정된 패킷들을 순차적으로 전송하려 한다면, 새로운 패킷이 들어올 때마다 큐 내부의 모든 패킷에 대해 서비스프레임 순으로 정렬(Sorting) 작업을 다시 해야 하기 때문에, 고속의 패킷 처리를 요구하는 환경에는 적합하지 않다.
본 발명에서는 2n (n은 하위프레임 개수)개의 다중 큐를 각각 서비스 프레임 인덱스에 대응시키고, 서비스프레임 인덱스에 해당하는 패킷들을 각 큐에 저장해 놓았다가 순차적으로 서비스하는 구조를 제공한다.
예컨대, 초기에는 제 1 하위프레임 큐부터 제 2n 하위프레임 큐까지 {1,1}, {1,2}, …, {1,n}, {2,1}, {2,2}, …, {2,n}의 서비스 프레임 인덱스가 대응된다. 이에 따라 서비스프레임 인덱스가 {1,1}인 패킷들은 제 1 하위프레임 큐에 저장되고, 같은 방식으로 서비스프레임 인덱스가 {2,n}인 패킷들은 제 2n 하위 프레임 큐에 각각 저장된다.
구체적으로, 다중 큐 장치(130)는 복수 개의 하위프레임큐(131 내지 13n)를 포함한다. 다중 큐 장치(130)는 복수 개의 하위프레임큐(131 내지 13n)에 미래에 서비스될 패킷들을 각 하위 프레임 별로 저장해 놓으며, 그에 따라 O(1)의 복잡도를 갖는다.
본 실시예에서, 다중 큐 장치(130)는 최대 2n개의 연속된 하위 프레임에 할당된 패킷을 저장하기 위한 다중 큐 구조를 갖는다. 각 연결의 트래픽 명세가 (r,T)-smooth 특성을 따르기 때문에, 하나의 프레임 기간 동안 2· r·T 이상의 패킷이 도착하지는 않는다. 따라서 2n개의 다중 큐를 순회하면서 사용하면 입력 트래픽을 처리하는데 문제가 없다. 서비스는 큐 별로 순차적으로 이루어지며, 큐 내부의 패킷이 모두 서비스 될 때까지 서비스는 계속된다. 여기서, 스케줄링 된 패킷은 해당 하위 프레임의 큐에 이미 들어간 패킷의 수를 고려하지 않고 저장되기 때문에, 각 하위 프레임 큐에는 T/n시간 내에 처리할 수 있는 패킷의 양보다 작거나 혹은 큰 수의 패킷이 들어갈 수가 있다.
본 발명에서는 각 패킷이 서비스 될 하위 프레임의 위치보다 빠른 시점에 서비스되는 것을 막기 위해, 전송이 시작되면 출력 인터페이스(140)는 제1 하위프레임 큐에 저장된 패킷들을 전송하고 패킷이 해당 하위 프레임 기간 내에 모두 전송되면 남은 시간동안 best-effort 큐(150)에 저장된 패킷을 서비스한다. 만약 남은 시간이 없다면 출력 인터페이스(140) 는 즉시 다음 하위 프레임 큐에 저장된 패킷을 서비스하기 시작한다.
즉, 출력 인터페이스(140)는 최소T/n 간격으로 각 큐를 스위칭하면서 해당 큐에 저장된 패킷을 모두 서비스하는 구성을 갖는다.
전송이 완료된 하위 프레임 큐는 이에 대응하는 서비스 프레임 인덱스가 업데이트된다. 예를 들어, 제1 하위 프레임 큐에 저장된 패킷이 모두 서비스되면, 이에 대응하는 서비스 프레임 인덱스가 {3,1}로 업데이트되어 이에 해당하는 패킷들이 다시 저장되기 시작한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 일반적인 패킷 교환 네트워크를 나타낸 도면이다.
도 2는 본 발명에 따른 2계층 프레임 기반 패킷 스케줄링 방법을 실행하는 장치의 블록 구성도를 나타낸다.
도 3은 본 발명에 따른 프레임 구조를 나타낸 도면이다.
도 4는 본 발명의 바람직한 실시예에 따른 스케줄러의 동작을 나타낸 흐름도를 나타낸다.
도 5는 도착 프레임 인덱스에 대해 가상 서비스 프레임 인덱스 및 서비스 프 레임 인덱스의 관계를 나타낸 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 입력 인터페이스
120: 스케줄러
130: 다중 큐 장치
140: 출력 인터페이스

Claims (19)

  1. 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법에 있어서,
    출력 링크의 전송 시간 축이 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나뉘어진 상태에서 패킷들이 도착하면, 패킷 스케줄링 장치가 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 단계와,
    상기 패킷 스케줄링 장치가 상기 패킷들을 상기 각 할당된 하위 프레임에서 전송하는 단계를 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.
  2. 제1항에 있어서,
    상기 할당 단계는,
    패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하는 단계와,
    상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하는 단계와,
    상기 패킷의 가상 서비스 프레임을 계산하는 단계와,
    상기 패킷의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하는 단계와,
    상기 패킷을 상기 계산된 서비스 프레임에 전송하는 단계를 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.
  3. 제2항에 있어서,
    상기 서비스 프레임 인덱스를 결정하는 단계는,
    상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하는 단계인 것을 특징으로 하는 패킷 스케줄링 방법.
  4. 제2항에 있어서,
    상기 서비스 프레임 인덱스를 결정하는 단계는,
    상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정하는 단계인 것을 특징으로 하는 패킷 스케줄링 방법.
  5. 제2항에 있어서,
    상기 서비스 프레임을 결정하는 단계는,
    상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는 단계인 것을 특징으로 하는 패킷 스케줄링 방법.
  6. 제4항 또는 제5항에 있어서,
    상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 설정되는 것을 특징으로 하는 패킷 스케줄링 방법.
  7. 제2항에 있어서,
    상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산되는 것을 특징으로 하는 패킷 스케줄링 방법.
    Figure 112009011551770-pat00021
    여기에서,
    Figure 112009011551770-pat00022
    는 기준 하위 프레임의 위치이고,
    Figure 112009011551770-pat00023
    는 하위 프레임 내에서 전송 가능한 패킷 수이고,
    Figure 112009011551770-pat00024
    은 하나의 프레임 내의 최대 하위 프레임의 수이고,
    Figure 112009011551770-pat00025
    는 해당 프레임에 도착된 패킷의 수이다.
  8. 제7항에 있어서,
    상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 나타내는 q값을 1만큼 증가시키는 단계를 더 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.
  9. 제2항에 있어서,
    상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하고 별도로 저장하는 단계와,
    추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.
  10. 입력 링크와 출력 링크 사이에 연결되어 패킷을 스케줄링하는 장치에 있어서,
    상기 입력 링크에 연결되어 상기 입력 링크로부터의 패킷들을 수신하여 버퍼링하고 출력하는 입력 인터페이스와,
    출력 링크의 전송 시간 축이 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누어진 상태에서 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 스케줄러와,
    상기 하위 프레임들 별로 패킷들을 큐잉하는 다중 버퍼 장치와,
    상기 다중 버퍼 장치로부터의 상기 패킷들을 전송하는 출력 인터페이스를 포함하는 것을 특징으로 하는 패킷 스케줄링 장치.
  11. 제10항에 있어서,
    상기 스케줄러는 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하고, 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하고, 상기 패킷의 가상 서비스 프레임을 계산하고, 상기 패킷의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하고, 상기 패킷을 상기 계산된 서비스 프레임에 대응하여 상기 다중 버퍼 장치로 전달하는 것을 특징으로 하는 패킷 스케줄링 장치.
  12. 제11항에 있어서,
    상기 스케줄러는 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하는 것을 특징으로 하는 패킷 스케줄링 장치.
  13. 제11항에 있어서,
    상기 스케줄러는 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정하는 것을 특징으로 하는 패킷 스케줄링 장치.
  14. 제11항에 있어서,
    상기 스케줄러는 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는 것을 특징으로 하는 패킷 스케줄링 장치.
  15. 제13항 또는 제14항에 있어서,
    상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 설정되는 것을 특징으로 하는 패킷 스케줄링 장치.
  16. 제11항에 있어서,
    상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산되는 것을 특징으로 하는 패킷 스케줄링 장치.
    Figure 112009011551770-pat00026
    여기에서,
    Figure 112009011551770-pat00027
    는 기준 하위 프레임의 위치이고,
    Figure 112009011551770-pat00028
    는 하위 프레임 내에서 전송 가능한 패킷 수이고,
    Figure 112009011551770-pat00029
    은 하나의 프레임 내의 최대 하위 프레임의 수이고,
    Figure 112009011551770-pat00030
    는 해당 프레임에 도착된 패킷의 수이다.
  17. 제16항에 있어서,
    상기 스케줄러는 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 1만큼 증가시키는 것을 특징으로 하는 패킷 스케줄링 장치.
  18. 제11항에 있어서,
    낮은 최선(best-effort) 패킷을 저장하는 별도의 큐를 더 포함하고,
    상기 스케줄러는 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하여 상기 별도의 큐에 저장하고, 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 서비스하는 것을 특징으로 하는 패킷 스케줄링 장치.
  19. 제10항에 있어서,
    상기 다중 큐 장치는 상기 하위 프레임들에 대응하여 패킷들을 각각 큐잉하는 복수 개의 하위프레임 큐를 포함하는 것을 특징으로 하는 패킷 스케줄링 장치.
KR1020090015550A 2009-02-25 2009-02-25 패킷 스케줄링 장치 및 방법 KR101523076B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090015550A KR101523076B1 (ko) 2009-02-25 2009-02-25 패킷 스케줄링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090015550A KR101523076B1 (ko) 2009-02-25 2009-02-25 패킷 스케줄링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100096599A KR20100096599A (ko) 2010-09-02
KR101523076B1 true KR101523076B1 (ko) 2015-05-27

Family

ID=43004105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090015550A KR101523076B1 (ko) 2009-02-25 2009-02-25 패킷 스케줄링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101523076B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877447B1 (ko) * 2000-10-24 2009-01-07 노오텔 네트웍스 리미티드 공유 채널 구조, arq 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877447B1 (ko) * 2000-10-24 2009-01-07 노오텔 네트웍스 리미티드 공유 채널 구조, arq 시스템 및 방법

Also Published As

Publication number Publication date
KR20100096599A (ko) 2010-09-02

Similar Documents

Publication Publication Date Title
Chuanxiong SRR: An O (1) time complexity packet scheduler for flows in multi-service packet networks
US7027457B1 (en) Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches
EP2302843B1 (en) Method and device for packet scheduling
US7385997B2 (en) Priority based bandwidth allocation within real-time and non-real-time traffic streams
JP4995101B2 (ja) 共有リソースへのアクセスを制御する方法及びシステム
WO2002073865A2 (en) Time based packet scheduling and sorting system
US9197570B2 (en) Congestion control in packet switches
Guo SRR: An O (1) time-complexity packet scheduler for flows in multiservice packet networks
EP1528728A1 (en) Packet scheduling based on quality of service and index of dispersion for counts
Kaur et al. Core-stateless guaranteed throughput networks
KR101523076B1 (ko) 패킷 스케줄링 장치 및 방법
US7602797B2 (en) Method and apparatus for request/grant priority scheduling
KR100739493B1 (ko) Ip 망에서의 서비스 품질 향상을 위한 패킷 트래픽 관리장치 및 그 방법
US20030072317A1 (en) Stepwise quality-of-service scheduling method in output-buffered switches for broadband networks
CN117378215A (zh) 在分组交换网络中实现的用于调度以太网帧的传输的方法、计算机程序和设备
Tong et al. Quantum varying deficit round robin scheduling over priority queues
Zhang et al. RCSP and stop-and-go: A comparison of two non-work-conserving disciplines for supporting multimedia communication
Matthew et al. Modeling and simulation of queuing scheduling disciplines on packet delivery for next generation internet streaming applications
Mohanty et al. On fair scheduling in heterogeneous link aggregated services
Şimşek et al. A new packet scheduling algorithm for real-time multimedia streaming
Wu Link-sharing method for ABR/UBR services in ATM networks
Abramova Analysis of the Impact of Priority Traffic Control Mechanisms on Network Quality of Service
Ahmed et al. Switched Multi-hop Priority Queued Networks-Influence of priority levels on Soft Real-time Performance
Fu A study on differentiated service queuing scheme with an overflow buffer allocation within a UMTS core network
Wang et al. A Markovian Analytical Model for a Hybrid Traffic Scheduling Scheme

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

Year of fee payment: 5