KR100333475B1 - 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷스케쥴링 장치 및 그 스케쥴링 방법 - Google Patents
고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷스케쥴링 장치 및 그 스케쥴링 방법 Download PDFInfo
- Publication number
- KR100333475B1 KR100333475B1 KR1019990030048A KR19990030048A KR100333475B1 KR 100333475 B1 KR100333475 B1 KR 100333475B1 KR 1019990030048 A KR1019990030048 A KR 1019990030048A KR 19990030048 A KR19990030048 A KR 19990030048A KR 100333475 B1 KR100333475 B1 KR 100333475B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- potential
- arrival
- time stamp
- calculated
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 68
- 230000005540 biological transmission Effects 0.000 claims abstract description 57
- 230000015654 memory Effects 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 2
- 101710196742 Probable phosphatidylglycerophosphate synthase Proteins 0.000 abstract description 26
- 238000004422 calculation algorithm Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004321 preservation Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/629—Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 서버에서의 동작 상태를 나타내는 시스템 포텐셜 함수를 이용하여 동일한 기준으로 도착 패킷의 타임 스템프를 계산함으로써 패킷 전송의 지연 특성을 개선하고, 시스템 포텐셜 및 타임 스템프의 계산 복잡성을 낮출 수 있는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 기법에 관한 것으로, 이를 위하여 본 발명은, 서버에서 타임 스템프에 따라 스케쥴링된 패킷의 전송이 종료될 때마다 이전 시스템 포텐션을 갱신하고, 전송 패킷의 서비스 시작 시간을 기록하며, 갱신된 이전 시스템 포텐셜 및 전송 패킷 서비스 시작 시간을 이용하여 동일한 기준으로 연결로부터 새로 도착하는 패킷의 타임 스템프를 계산하여 헤더에 부가하도록 함으로써, 현저하게 낮은 복잡성을 유지, 즉 종래 SCFQ 수준으로 복잡성을 유지할 수 있을 뿐만 아니라 매우 우수한 지연 바운드 특성, 즉 종래 PGPS 수준의 지연 바운드 특성을 얻을 수 있는 것이다.
Description
본 발명은 ATM 또는 인터넷 등과 같은 고속 패킷 교환망에서 전송 패킷을 스케쥴링하는 기법에 에 관한 것으로, 더욱 상세하게는 ATM 교환기, 라우터 등에 적용 가능하며, 복수의 사용 요청에 대하여 제한된 노드의 자원을 공정하게 분배하는 데 적합한 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링(rate proportional self-clocked fair queueing : RP-SCFQ) 장치 및 그 스케쥴링 방법에 관한 것이다.
통상적으로, ATM 교환기, 라우터 등과 같은 고속 패킷 교환망에 있어서, 복수의 사용자 연결로부터 다양한 성능 요구사항을 갖는 트래픽이 인입될 때 서버에서는, 최초 설정시에 할당된 서비스 속도에 비례하는 서비스 속도를 보장해야 한다.
이 기술분야에 잘 알려진 바와같이, 기존의 패킷 스케쥴링은 통상 서버의 동작 모드에 따라 크게 두가지로 구분되는 데, 하나는 대기 행렬내 서비스를 대기하는 패킷이 존재하는 한 서버가 계속적으로 서비스를 제공하는 방식인 작업 보존(work - conserving) 스케쥴링이고, 다른 하나는 대기 행렬내 서비스를 대기하는 패킷이 존재하더라도 일정한 기준에 부합되지 않으면 서버가 서비스를 제공하지 않고 유지 모드에 위치하는 비작업 보존(non work - conserving) 스케쥴링이다.
상기한 스케쥴링 방법중 후자의 방법은 대기하는 패킷이 있음에도 불구하고 서비스(패킷 전송)를 제공하지 않으므로 서버의 이용 효율이 상대적으로 낮은 단점을 갖는 반면 사전에 약속된 지연 바운드 또는 지연 지터 바운드 등의 성능 요구사항을 정확히 보장 가능하다는 장점을 갖는다. 또한, 전자의 방법은 서버의 이용 효율이 상대적으로 높지만 연결별 최소 성능을 타 연결의 동작과 무관하게 보장하여야 하고 서버의 유휴 자원을 사용하려는 복수의 요청에 대하여 연결별 계약 속도 등 정해진 비율에 의하여 공정하게 나누어 주기 위한 메커니즘이 고려되어야 한다. 여기에서, 본 발명은 전자의 작업 보존 방식에 속하는 스케쥴링 기법의 개선에 관련된다.
한편, 본 발명과 관련되는 전형적인 종래의 패킷 전송 스케쥴링 기법으로는 GPS(Generalized Processor Sharing), PGPS(Packet-by-packet Generalized Processor Sharing), SCFQ(Self-Clocked Fair Queueing), MD-SCFQ(Minimum Delay Self-Clocked Fair Queueing), SFQ(Starting Potential Fair Queueing), FFQ(Frame-based Fair Queueing) 등과 같은 알고리즘이 있다.
먼저, GPS 알고리즘은 Abhay K.Parekh 등에 의해 제안되어 “A generalized Processor Sharing Approach to Flow Control in Intergrate Services Networks: The Single-node case”라는 제목으로 1993년 6월에 IEEE/ACM Transactions on Networking, Vol.1, No.3에 개시된 기법으로, 작업 보존 알고리즘의 기준이 되는 가설적인 이론이다.
즉, GPS는 모든 입력 트래픽을 유체의 흐름으로 모델링하고 서버는 서비스를 요청하는 모든 연결에 대하여 동시에 서비스를 제공하는 스케쥴링 기법인 것으로, 이상적인 공정성(fairness) 및 최적의 지연 바운드(delay bound)값을 제공한다.
그러나, 이러한 GPS는 실제적인 패킷 환경에서 트래픽의 최소 단위가 패킷이고 특정 순간 서버에서 하나의 패킷만을 전송 가능하다는 점을 고려할 때, 현실적으로 구현이 불가능하며, 단지 모든 공정 스케쥴링 알고리즘이 지향하는 하나의 개념적인 성능 기준만을 제시하고 있다. 즉, GPS는 구현 가능성이 없는 단지 이상적인 모델에 불과한 것이다.
또한, PGPS 알고리즘은 Abhay K.Parekh 등에 의해 제안되어 “A generalized Processor Sharing Approach to Flow Control in Intergrate Services Networks: The Single-node case”라는 제목으로 1993년 6월에 IEEE/ACM Transactions on Networking, Vol.1, No.3에 개시된 기법으로, GPS 알고리즘의 개념을 가장 근접하게 실제 망 환경에서 구현한 알고리즘이며 GPS와는 달리 인입 트래픽의 기본 단위를 패킷으로 가정하고 있다.
이러한 PGPS 알고리즘은 마치 유체의 흐름으로 모델링된 트래픽을 동시에 서비스하는 것처럼 GPS 서버의 동작을 모방해야 하므로 GPS 서버의 동작 정도를 표시한 가상 시간(virtual time)이라는 개념을 도입하여 새로운 패킷이 도착하거나 서비스중인 패킷이 서비스를 종료하고 시스템을 떠날 때마다 가상 시간을 새로 계산하여 갱신하며, 이와같이 갱신되는 가상 시간을 새로 도착하는 패킷의 타임 스템프(timestamp)를 할당할 때 기준값으로 활용하는 기법을 제시하고 있다.
그러나, PGPS 알고리즘은 GPS에 근접한 성능을 제공할 수는 있으나, 하나의 패킷이 전송되는 동안 최악의 경우 모든 연결로부터 새로운 패킷이 도착할 수 있으므로 연결 수만큼의 가상 시간 계산 및 갱신이 반복될 수 있다는 문제(즉, 구현 복잡성이 매우 높음)가 있다. 즉, PGPS의 경우 패킷에 대한 고속의 전송 순서 결정이 요구되는 고속망 환경에서는 그 구현이 사실상 곤란한 알고리즘에 불과하다고 볼 수 있다.
다음에, SCFQ 알고리즘은 S.Jamaloddin Golestani에 의해 제안되어 “A Self-Clocked Fair Queueing Scheme for Broadband applications”라는 제목으로 1994년에 Proceedings of INFOCOM94에서 개시된 기법으로, 상술한 PGPS 알고리즘의 구현 복잡성을 개선하기 위해 제안된 것이다.
이러한 SCFQ 알고리즘에서는 PGPS와는 달리 연속적인 GPS 시뮬레이션 없이 새로운 패킷 도착시에 서비스중인 패킷의 타임 스템프를 가상 시간으로 간주한다. 따라서, SCFQ는 하나의 패킷 전송중 도착한 패킷이 모두 동일한 가상 시간을 공유하게 되므로 가상 시간을 계산하는 데 소요되는 복잡성이 대폭 개선되는 결과를 얻을 수 있다.
그러나, SCFQ 알고리즘은 최악의 경우 모든 세션이 임의의 패킷 도착시에 서비스중인 패킷의 타임 스템프와 동일한 시간을 가질 수 있고 따라서 새로 도착한 패킷은 트래픽 약속 준수 여부와 무관하게 최대 모든 세션의 패킷이 전송되기까지 대기하여야만 한다는 문제(즉, 전송 지연의 문제)가 있으며, 이러한 대기 시간의 길이는 연결의 수에 비례한다. 즉, SCFQ 알고리즘은 가상 시간 계산에 따른 복잡성은 개선되었으나 보장 가능한 지연 바운드가 PGPS보다 오히려 열화된다는 새로운 문제점(지연 바운드 특성이 매우 나쁨)을 갖는다.
또한, MD-SCFQ 알고리즘은 Fabio M.Chiussi 등에 의해 제안되어 “Minimum Delay Self-Clocked Fair Queueing Algorithm for Packet Switched Networks”라는 제목으로 1998년에 Proceedings of INFOCOM94에서 개시된 기법으로, SCFQ와 같이 GPS를 별도로 시뮬레이션하지 않고 대기 행렬에서 대기중인 선두 패킷에 관한 정보를 이용하여 시스템 포텐셜을 계산하는 방법을 개시하고 있다.
따라서, MD-SCFQ 알고리즘은 대기 행렬에서 대기중인 선두 패킷에 관한 정보를 이용하여 시스템 포텐셜을 계산하기 때문에 계산 복잡성이 PGPS에 비해 개선되고 지연 특성이 SCFQ에 비해 개선되는 장점을 갖는 반면에, 시스템 포텐셜을 계산하는 순간에 대기 행렬에서 대기하는 패킷의 정보를 지속적으로 수집 관리해야만 하기 때문에 그에 따른 오버헤드가 발생하게 된다는 또다른 문제점을 갖는다.
한편, SFQ 알고리즘은 Pawan Goyal 등에 의해 제안되어 “Start-Time FairQueueing : A scheduling Algorithm for Intergrated Services Packet Switching Netwoeks”라는 제목으로 1997년 10월에 IEEE/ACM Transactions on Networking, Vol.5, No.5에 개시된 기법으로, SCFQ와 유사한 관점에서 PGPS의 계산 복잡성을 개선하기 위해 패킷 도착시에 서비스중인 패킷의 시작 포텐셜을 가상 시간으로 이용하는 기법을 개시하고 있다.
그러나, SFQ 알고리즘은 SCFQ와 동일하게 계산 복잡성이 PGPS에 비해 월등하게 개선되었으나, 여전히 SCFQ와 마찬가지로 지연 특성이 연결의 수에 의존하는 특성, 즉 보장 가능한 지연 바운드가 PGPS보다 현저하게 열화된다는 문제를 갖는다.
다른한편, FFQ 알고리즘은 Anujan Varma 등에 의해 제안되어 “Traffic Scheduling System and Method for Packet-switched networks”라는 명칭으로 1999년 1월 12일에 미국 상표특허청에 특허출원(US5859835)된 것으로, 시스템 포텐셜의 계산 복잡성은 줄였으나 성능이 악화되는 단점을 갖는 전술한 SCFQ의 개선하는 기법을 개시하고 있다.
즉, FFQ 알고리즘은 시스템 포텐셜 계산의 복잡성을 O(1)으로 유지하면서 성능이 나빠지지 않는 공정 스케쥴링 기법으로, 여기에서는 시스템 포텐셜의 공간을 크기 T의 프레임으로 분할할 때 현재 프레임 k의 시간 t에서 어느 한 연결의 포텐셜은 다음의 수학식 1과 같은 조건을 만족한다.
따라서, FFQ에서는 모든 연결들의 포텐셜이 kT보다 커지는 순간 알고리즘은 다음 프레임 k-1로 진행한다. 임의의 프레임 k의 시간 t에서 포텐셜 v(t)는 다음의 수학식 2와 같이 구해진다.
상기한 수학식 2에서 ts는 현재 프레임 k의 시작 시간을 나타낸다.
따라서, FFQ는 GPS를 시뮬레이션하여 시스템 포텐셜을 구하지 않고 정해진 크기의 프레임 진행 상태에 따라 시스템 포텐셜을 정하기 때문에 이에 따른 계산의 복잡성이 PGPS에 비해 현저히 줄어 SCFQ와 비슷한 수준으로 된다.
그러나, FFQ는 연결간의 공정성 바운드가 프레임의 크기에 의존하는 특성을 갖음에도 불구하고, 프레임의 크기를 정하는 기준에 대한 명확한 기준을 제시하지 못하고 있어, 그 실제적인 구현에 있어 큰 곤란성이 유발된다는 문제가 있다.
한편, 상술한 바로부터 알 수 있는 바와같이, 고속 망 환경에서의 적용을 위해서 작업 보존 스케쥴링 알고리즘에서는 다음과 같은 핵심적인 사항(조건)을 충분하게 충족시킬 필요가 있다.
가) 임의 연결은 서버에 의하여 최소 연결 설정시에 할당받은 속도 만큼 보장받아야 함(즉, 최대 지연 바운드값을 제공 가능해야 함).
나) 서버의 여유 용량을 서비스 대기중인 연결별 할당 속도에 비례하여 공유함(즉, 서비스를 요구하는 임의의 두 연결이 받은 서비스양의 최대 차이가 일정 한도 이내여야 함).
다) 한동안 휴지 상태에 머물던 연결에 패킷이 도착하였을 경우 기존의 서비스 대기중인 연결에 속한 패킷들과 동일한 대우를 받아야 함.
라) 다음 전송할 패킷을 선택하는 기준으로 패킷 도착시 타임 스템프를 부여하고 서버는 패킷 전송이 완료된 순간 서비스 대기중인 모든 연결의 선두 패킷의 타임 스템프를 비교하여 증가순으로 서비스를 제공해야 함.
마) 한동안 휴지 상태에 있던 연결에 새로 도착한 패킷을 위하여 서버의 동작 상태를 나타내는 시스템 포텐셜 함수를 글로벌 변수로서 지속적으로 관리해야 함.
즉, 고속 망 환경을 대상으로 하는 패킷 전송 스케쥴링에서 가장 중요한 성능 파라메터는 고속의 전송 순서 결정 속도를 지원하기 위한 알고리즘의 단순성이라 할 수 있다. 따라서, 이와같은 단순성을 유지하면서 작업 보존 알고리즘의 기본적인 요구조건인 공정성 및 지연 특성을 GPS에서와 가장 근접하게 유지할 수 있는 알고리즘이 우수한 알고리즘이라고 할 수 있을 것이다.
그러나, 전술한 바와같은 기존의 패킷 전송 스케쥴링 기법들은 상기한 바와같은 조건들(복잡성, 지연 바운드, 공정성) 모두를 충분하게 충족시키지 못하고 있다.
따라서, 본 발명은 상술한 종래기술의 문제점을 해결하기 위한 것으로, 서버에서의 동작 상태를 나타내는 시스템 포텐셜 함수를 이용하여 동일한 기준으로 도착 패킷의 타임 스템프를 계산함으로써 패킷 전송의 지연 특성을 개선하고, 시스템 포텐셜 및 타임 스템프의 계산 복잡성을 낮출 수 있는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치 및 그 스케쥴링 방법을 제공하는 데 그 목적이 있다.
상기 목적을 달성하기 위한 일관점에 따른 본 발명은, N(N은 정수)개의 연결로부터 기할당된 임의의 속도로 인입되는 패킷들을 타임 스템프를 이용하여 스케쥴링하고, 이 스케쥴링에 따라 전송 선택된 패킷들을 순차적으로 다중화하여 전송하는 고속 패킷 노드를 위한 패킷 스케쥴링 장치에 있어서, 상기 장치는, 상기 각 연결로부터 임의의 패킷이 도착할 때 해당 도착 패킷의 타임 스템프를 계산하여 헤더에 부가한 다음 대기 행렬 메모리에 저장하는 타임 스템프 계산 블록과 각 헤더에 부가된 타임 스템프를 이용하여 대기 행렬 메모리에 저장된 패킷들을 인출한 다음 다중화하여 전송하는 서버를 포함하며, 상기 타임 스템프 계산 블록은: 상기 서버로부터 제공되는 갱신된 이전 시스템 포텐셜과 전송 패킷의 서비스 시작 시간 정보에 의거하여 패킷 도착시의 시스템 포텐셜을 계산하는 수단; 해당 연결에 속하는 대기 행렬 메모리에서의 대기 패킷 검색 결과에 따른 대기 패킷의 타임 스템프 및 상기 계산된 시스템 포텐셜에 의거하여 도착 패킷의 시작 포텐셜을 계산하는 수단; 및 상기 계산된 시작 포텐셜, 도착 패킷의 길이 및 상기 도착 패킷이 속한 연결에 기할당된 속도 정보에 의거하여 상기 도착 패킷의 타임 스템프를 계산하고, 이 계산된 타임 스템프를 상기 도착 패킷의 헤더에 부가하여 대응하는 대기 행렬 메모리에 저장하는 수단을 포함하고, 상기 서버는: 각 대기 패킷의 헤더에 각각 부가된 타임 스템프에 의거하여, 대기 행렬 메모리에 저장된 대기 패킷들중 하나를 선택하고, 선택된 패킷을 인출 및 다중화하여 전송하는 수단; 선택된 패킷의 전송이 종료될 때 전송 패킷의 타임 스템프, 상기 전송 패킷의 길이, 상기 전송 패킷이 속한 연결에 할당된 속도 정보에 의거하여 상기 전송 패킷의 시작 포텐셜을 계산하는 수단; 이전 전송 패킷의 전송시에 갱신된 시스템 포텐셜값과 상기 계산된 시작 포텐셜값을 비교하여 기준 포텐셜을 결정하는 수단; 상기 결정된 기준 포텐셜과 상기 전송 패킷의 실제 처리 시간에 의거하여 시스템 포텐셜을 갱신하고, 이 갱신된 이전 시스템 포텐셜을 상기 패킷 도착시의 시스템 포텐셜 계산 수단으로 제공하는 수단; 및 전송 서비스중인 패킷의 실제 서비스 시작 시간을 기록하여 상기 패킷 도착시의 시스템 포텐셜 계산 수단으로 제공하는 수단을 포함하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치를 제공한다.
상기 목적을 달성하기 위한 다른 관점에 따른 본 발명은, N(N은 정수)개의 연결로부터 기할당된 임의의 속도로 인입되는 패킷들을 타임 스템프를 이용하여 스케쥴링하고, 이 스케쥴링에 따라 전송 선택된 패킷들을 순차적으로 다중화하여 전송하는 고속 패킷 노드를 위한 패킷 스케쥴링 방법에 있어서, 상기 각 연결로부터 임의의 패킷이 도착할 때 이전 전송 패킷의 전송 종료시에 계산된 갱신 시스템 포텐셜과 상기 이전 전송 패킷의 서비스 시작 시간 정보에 의거하여 패킷 도착시의 시스템 포텐셜을 계산하는 제 1 과정; 해당 연결에 속하는 대기 행렬에서의 대기 패킷의 타임 스템프 및 상기 계산된 시스템 포텐셜에 의거하여 도착 패킷의 시작 포텐셜을 계산하는 제 2 과정; 상기 계산된 시작 포텐셜, 도착 패킷의 길이 및 상기 도착 패킷이 속한 연결에 기할당된 속도 정보에 의거하여 상기 도착 패킷의 타임 스템프를 계산하고, 이 계산된 타임 스템프를 상기 도착 패킷의 헤더에 부가하는 제 3 과정; 전송 대기중인 각 패킷의 헤더에 각각 부가된 타임 스템프에 따라 전송 선택된 패킷의 전송이 종료될 때, 전송 패킷의 시작 포텐셜과 이전 시스템 포텐셜중 큰 값에 상기 전송 패킷의 실제 처리에 소요된 시간을 가산하여 상기 시스템 포텐셜을 갱신하는 제 4 과정; 및 상기 패킷 도착시의 시스템 포텐셜을 계산을 위해, 현재 전송중인 패킷의 실제 서비스 시작 시간을 기록하는 제 5 과정으로 이루어진 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법을 제공한다.
도 1은 본 발명의 바람직한 실시예에 따라 속도 비례 자가 클럭 공정 패킷 스케쥴링을 수행하는 각 과정들을 기능 블록화하여 구성한 패킷 스케쥴링 장치의 개략적인 블록구성도,
도 2는 도 1에 도시된 타임 스템프 계산 블록의 세부적인 블록구성도,
도 3은 도 1에 도시된 서버의 세부적인 블록구성도,
도 4는 본 발명의 바람직한 실시예에 따라 도착 패킷에 대한 타임 스템프를 계산하고, 계산된 타임 스템프를 도착 패킷의 헤더에 부가하여 전송 선택을 위한 스케쥴링을 수행하는 과정을 도시한 플로우챠트,
도 5는 본 발명에 따라 스케쥴링된 대기 행렬 패킷들에서 전송 패킷을 선택하고, 선택된 패킷의 서비스 시작 시간을 기록하면서 선택된 전송 패킷을 다중화하여 전송하는 과정을 도시한 플로우챠트,
도 6은 본 발명의 RP-SCFQ 방식과 종래 방식인 PGPS 및 SCFQ 방식과의 성능 비교를 위해 입력 트래픽을 동일 조건으로 가정하여 패킷의 전송 순서를 결정하는 일예를 도시한 예시도.
<도면의 주요부분에 대한 부호의 설명>
100 : 타임 스템프 계산 블록 102 : 시스템 포텐셜 계산부
104 : 도착 패킷 시작 포텐셜 계산부 106 : 타임 스템프 계산부
200 : 메모리 블록 200/1 - 200/n : 대기 행렬 메모리
300 : 서버 302 : 패킷 인출부
304 : 다중화부 306 : 서비스 종료 검출부
308 : 전송 패킷 시작 포텐셜 계산부 310 : 기준 포텐셜 계산부
312 : 시스템 포텐셜 갱신부 314 : 전송 패킷 선택부
316 : 서비스 시작 시간 기록부
본 발명의 상기 및 기타 목적과 여러가지 장점은 이 기술분야에 숙련된 사람들에 의해 첨부된 도면을 참조하여 하기에 기술되는 본 발명의 바람직한 실시예로 부터 더욱 명확하게 될 것이다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
잘 알려진 바와같이, 고속 망 환경에서의 패킷 스케쥴링 알고리즘을 구현하는 데 있어서는 복잡성과 지연 바운드 특성을 고려한 구현 용이성이 가장 중요한 성능 지표중의 하나이다.
여기에서, 복잡성은 크게 두가지로 구분되는 데, 하나는 시스템 전체적인 글로벌 함수인 시스템 포텐셜을 계산 및 유지하기 위하여 소요되는 계산의 복잡성에 대한 척도이고, 다른 하나는 대기 행렬에 저장된 패킷의 타임 스템프를 이용하여 전송 순서를 결정하기 위해 정렬하는 데 소요되는 복잡성이다. 전자의 경우 통상 하나의 패킷 전송시에 얼마나 많은 갱신 동작이 필요한가에 따라 정의되며, 후자의 경우 대개 정렬 우선 순위 대기 행렬 방식을 이용하며 이들은 모두 동일한 복잡성을 갖는다. 또한, 지연 바운드 특성은 대기 행렬에 도착한 새로운 패킷이 도착 시점에부터 전송이 완료될 때까지 겪는 최대 지연 한도값을 의미한다.
따라서, 본 발명은 상기한 바와같은 복잡성 및 지연 바운드 특성을 최적 상태(즉, 복잡성이 매우 낮고 지연 바운드 특성이 우수한 상태)로 유지하면서 전송 패킷들을 스케쥴링하는 기법의 개선에 관련된다.
본 발명에 따른 속도 비례 자가 클럭 공정 패킷 스케쥴링(RP-SCFQ) 기법의 핵심 기술요지는, 노드내에서 지속적으로 유지 및 관리되는 시스템 포텐셜 함수(갱신 시스템 포텐셜 및 전송 패킷의 실제 서비스 시작 시간 정보)를 이용하여(즉, 동일한 기준으로) 새로 도착하는 패킷에 부여하는 타임 스템프를 계산함으로써, 시스템 포텐셜의 갱신이 연결의 수에 의존하여 큰 복잡성을 갖는 기존의 PGPS 방식에 비해, 시스템 포텐셜의 계산 복잡성을 현저하게 줄이고, 또한 임의의 패킷이 도착하여 전송될 때까지 겪는 지연의 최대값이 연결의 수에 의존하는 단점을 갖는 SCFQ에 비해, 지연 특성을 현저하게 절감한다는 것이다. 즉, 본 발명은 시스템 포텐셜 및 타임 스템프의 계산 복잡성을 SCFQ와 동일하게 유지하면서 최대 지연 한도를PGPS 수준으로 보장 가능하기 때문에 고속 패킷 교환 노드에 매우 적합한 기법이다.
도 1은 본 발명의 바람직한 실시예에 따라 속도 비례 자가 클럭 공정 패킷 스케쥴링을 수행하는 각 과정들을 기능 블록화하여 구성한 패킷 스케쥴링 장치의 개략적인 블록구성도로써, 타임 스템프 계산 블록(100), 메모리 블록(200) 및 서버(300)를 포함한다.
도 1을 참조하면, 타임 스템프 계산 블록(100)은 다수의 연결에 대응하는 다수의 패킷 입력 라인(입력 1 내지 입력 n)을 가지며, 각 입력 라인을 통해 새로운 패킷이 인입될 때 라인 L11 및 L12를 통해 후술하는 서버(300)로부터 제공되는 시스템 포텐셜 함수, 즉 갱신된 이전 시스템 포텐셜과 전송 선택된 패킷의 실제 서비스 시작 시간을 이용하여 도착 패킷의 타임 스템프를 계산하며, 이 계산된 타임 스템프를 도착 패킷의 헤더에 부가한다.
이러한 타임 스템프 계산 블록(100)에서 새로운 패킷이 도착할 때마다 타임 스템프를 계산하여 부가하는 과정에 대하여 그 세부적인 블록 구성을 도시한 도 2를 참조하여 보다 상세하게 설명한다.
도 2는 도 1에 도시된 타임 스템프 계산 블록(100)의 세부적인 블록구성도로써, 시스템 포텐셜 계산부(102), 도착 패킷 시작 포텐셜 계산부(104) 및 타임 스템프 계산부(106)를 포함한다.
도 2를 참조하면, 시스템 포텐셜 계산부(102)에서는 임의의 입력 라인을 통해 새로운 패킷이 도착하면, 라인 L11을 통해 후술하는 도 3의 시스템 포텐셜 갱신부(312)로부터 제공되는 갱신된 이전 시스템 포텐셜과 라인 L12를 통해 후술하는 도 3의 서비스 시작 시간 기록부(312)로부터 제공되는 전송 패킷의 실제 서비스 시작 시간을 이용하여 패킷 도착시의 시스템 포텐셜을 계산한다.
즉, 현재 서비스중인 패킷의 서비스 개시 시점(즉, 직전 패킷의 서비스 종료 시점)에 갱신된 시스템 포텐셜(Pi)에 새로운 패킷의 도착 시간에서 전송 패킷의 서비스 시작 시간을 감산한 값을 합하여 도착 순간의 시스템 포텐셜을 계산한다. 예를들어, 새로운 패킷의 도착 시점을 t라 하고 도착 당시에 서비스중인 패킷 j의 실제 서비스 시작 시간을라 할 때 새로운 패킷 도착시의 시스템 포텐셜(tempk)은 다음의 수학식 3과 같다.
또한, 도착 패킷 시작 포텐셜 계산부(104)에서는 도착 패킷이 속한 연결의 대기 행렬, 즉 메모리를 검색하여 대기 행렬에 처리되어야 할 패킷이 대기중인지의 여부를 체크하고, 그 체크 결과에 따라 도착한 패킷이 속한 연결에서 대기중인 직전 패킷의 타임 스템프 또는 도착 순간의 시스템 포텐셜에 의거하여 도착 패킷의 시작 포텐셜을 계산하며, 여기에서 계산된 시작 포텐셜은 타임 스템프 계산부(106)로 전달된다.
즉, 도착 패킷 시작 포텐셜 계산부(104)는 새로운 패킷이 도착한 순간 연결의 대기 행렬(즉, 도 1의 메모리 블록내 해당 메모리)에 처리되어야 할 패킷이 대기하고 있으면 직전에서 대기중인 패킷의 타임 스템프를 기준으로 도착 패킷의 시작 포텐셜을 계산(대기중인 패킷의 타임 스템프를 도착 패킷의 시작 포텐셜로 설정)하고, 새로운 패킷의 도착시에 대기 행렬에 처리되어야 할 패킷이 없으면 도착 당시의 시스템 포텐셜을 도착 패킷의 시작 포텐셜로 계산하며, 여기에서 계산된 도착 패킷의 시작 포텐셜은 다음단의 타임 스템프 계산부(106)로 전달한다.
다음에, 타임 스템프 계산부(106)에서는 상기한 도착 패킷 시작 포텐셜 계산부(104)로부터 제공되는 시작 포텐셜과 패킷의 길이를 도착 패킷이 속한 연결에 할당된 속도로 나눈 정규화 서비스양에 의거하여 도착 패킷의 타임 스템프를 계산한다.
즉,를 연결 i의 k번째 패킷의 시작 포텐셜이라 하고,를 연결 i의 (k-1)번째 패킷의 타임 스템프라 하면, 시작 포텐셜()은 다음의 수학식 4와 같다.
따라서, 도착 패킷의 타임 스템프는 큰 값에 자신의 패킷 길이를 자신이 속한 연결의 할당 속도, 즉 정규화된 서비스양 만큼 증가시킨값으로 하여 다음의 수학식 5와 같이 계산한다.
상기한 수학식 5에서,는 연결 i의 k번째 패킷의 길이를 나타내고, i는 연결 i에 할당된 속도를 나타낸다.
그런다음, 타임 스템프 계산부(106)에서는 도착 패킷의 헤더에 계산된 타임 스템프를 부가한 다음 해당 연결에 속하는 대기 행렬 메모리(즉, 논리적 대리 행렬 메모리)에 도착 패킷을 저장한다.
따라서, 상술한 바와같은 과정들을 통해 새로운 패킷이 도착할 때마다 시스템 포텐셜 함수(갱신 시스템 포텐셜 및 전송 패킷의 서비스 시작 시간)를 이용하여 계산되는 도착 패킷의 타임 스템프(즉, 서버에서의 전송 순서를 결정하는 데 사용되는 일종의 인덱스 정보)가 도착 패킷의 헤더에 부가되어 도착 패킷의 연결에 속하는 논리적 대기 행렬 메모리에 저장되어 전송을 대기하게 된다.
즉, 도 1을 참조하면, 메모리 블록(200)은 다수의 메모리(200/1 내지 200/n), 즉 논리적 대기 행렬 메모리를 포함하는 데, 메모리(200/1)에는 입력 1의 연결에 속하는 도착 패킷들이 자신의 타임 스템프가 부가된 헤더 정보와 함께 저장되고, 메모리(200/2)에는 입력 2의 연결에 속하는 도착 패킷들이 자신의 타임 스템프가 부가된 헤더 정보와 함께 저장되며, 메모리(200/n)에는 입력 n의 연결에 속하는 도착 패킷들이 자신의 타임 스템프가 부가된 헤더 정보와 함께 저장된다.
한편, 서버(300)에서는 논리적 대기 행렬 메모리에 각각 저장된 패킷들의 각 헤더에 부가된 타임 스템프에 의거하여 전송할 패킷을 선택하고, 전송된 패킷의 시작 포텐셜 및 기준 표텐셜을 계산하며, 시스템 포텐셜을 갱신하는 등의 동작을 수행함과 동시에 논리적 대기 행렬에서 선택한 패킷들을 다중화하여 출력하는 데, 이러한 서버(300)의 자세한 동작 과정에 대해서는 그 세부적인 블록 구성을 도시한 도 3을 참조하여 상세하게 설명한다.
도 3은 도 1에 도시된 서버(300)의 세부적인 블록구성도로써, 패킷 인출부(302), 다중화부(304), 서비스 종료 검출부(306), 전송 패킷 시작 포텐셜 계산부(308), 기준 포텐셜 계산부(310), 시스템 포텐셜 갱신부(312), 전송 패킷 선택부(314) 및 서비스 시작 시간 기록부(316)를 포함한다. 여기에서, 본 발명에 직접 관련되는 부분은 실선으로 블록화되어 참조부호 A로써 표시된 부분이라고 할 수 있다.
도 3을 참조하면, 패킷 인출부(302)는, 라인 L31을 통해 후술하는 전송 패킷 선택부(314)로부터 제공되는 선택 패킷 결정신호에 의거하여, 도 1에 도시된 메모리 블록(200)내의 논리적 대기 행렬 메모리중의 어느 하나로부터 전송 선택된 패킷을 인출하여 다중화부(304)로 전달하고, 다중화부(304)는 패킷 인출부(302)로부터 제공되는 패킷들을 다중화하여 출력한다.
한편, 서비스 종료 검출부(306)는 다중화부(304)를 통해 다중화되어 전송되는 패킷의 서비스가 종료되었는지의 여부를 검출, 즉 선택된 패킷의 전송이 종료되었는 지의 여부를 검출하며, 전송 패킷의 종료가 검출될 때 그에 상응하는 서비스종료 신호를 발생하여 전송 패킷 시작 포텐셜 계산부(308)로 제공한다. 이때, 전송 패킷의 타임 스템프, 전송 패킷의 길이, 전송 패킷이 속한 연결 i에 할당된 속도 정보가 함께 전송 패킷 시작 포텐셜 계산부(308)로 제공된다.
또한, 전송 패킷 시작 포텐셜 계산부(308)에서는 서비스 종료 신호와 함께 제공되는 전송 패킷의 타임 스템프, 전송 패킷의 길이, 전송 패킷이 속한 연결 i에 할당된 속도 정보에 의거하여 전송 패킷의 시작 포텐셜을 계산한다. 예를들어, j번째 패킷에 대한 전송이 방금 종료되었다고 가정할 때, 패킷 j의 시작 포텐셜 SPj는 다음의 수학식 6과 같이 계산되며, 여기에서 계산된 패킷 j의 시작 포텐셜은 기준 포텐셜 계산부(310)로 전달된다.
상기한 수학식에서, TSj는 j번째 패킷의 타임 스템프를 나타내고, Lj는 j번째 패킷의 길이를 나타내며, i는 패킷 j가 속한 연결 i에 할당된 속도를 나타낸다.
다음에, 기준 포텐셜 계산부(310)에서는 직전 패킷(j-1 번째 패킷)의 전송시에 갱신된 시스템 포텐셜값 Pj-1과 계산된 시작 포텐셜값을 비교하여, 다음의 수학식 7과 같이 큰 값을 기준 포텐셜 SP로 결정한다.
이때, 패킷의 전송 순서는 타임 스템프가 적은 순으로 선택되므로, 방금 전송한 패킷이 선택될 당시에는 해당 패킷이 가장 적은 타임 스템프를 보유하였음을 의미하고, 전송 종료후에 시작 포텐셜과 직전의 시스템 포텐셜을 비교하여 큰 값을 기준 포텐셜로 선택하기 때문에 항상 시스템 포텐셜의 증가량이 실제 시간보다 크게 유지된다.
다음에, 시스템 포텐셜 갱신부(312)에서는 기준 포텐셜 계산부(310)로부터 제공되는 기준 포텐셜에 방금 전송한 패킷의 실제 처리 시간을 더함으로써 시스템 포텐셜을 갱신한다. 예를들어, 방금 전송 종료된 패킷 j의 길이를 Lj라 하고, 서버의 총 서비스 속도를 r이라 정의할 때, 시스템 포텐셜 Pj는 다음의 수학식 8과 같이 계산되어 갱신되며, 이와같이 갱신된 시스템 포텐셜값은 전송 패킷 선택부(314)로 제공됨과 동시에 라인 L11을 통해 도 2의 시스템 포텐셜 계산부(102)로 제공된다.
한편, 전송 패킷 선택부(314)는 도 1에 도시된 메모리 블록(200)을 검색하여 다음 전송할 패킷이 존재하는 지의 여부를 체크하고, 전송할 패킷들이 존재할 때 각 패킷의 헤더에 각각 부가된 타임 스템프에 의거하여 대기 패킷을 갖는 각 연결의 선두 패킷들중 어느 하나를 전송 패킷을 결정(즉, 타임 스템프가 가장 적은 선두 패킷을 전송 패킷으로 결정), 즉 다음의 수학식 9에서와 같이 전송 패킷을 설정하며, 전송 패킷을 설정될 때 라인 L31을 통해 선택 패킷 결정신호를 발생하여 패킷 인출부(302)로 전달한다. 따라서, 패킷 인출부(302)에서는 선택된 전송 패킷을 메모리 블록(200)의 해당 논리적 대기 행렬 메모리로부터 인출하여 다중화부(304)로 전달한다.
다음에, 서비스 시작 시간 기록부(316)에서는 서비스중인 패킷의 실제 서비스 시작 시간을 기록, 예를들어 서비스중인 패킷 j의 실제 서비스 시작 시간을라 할 때 다음의 수학식 10과 같이 기록하며, 여기에서 기록된 패킷 j의 서비스 시작 시간 정보는 라인 L12를 통해 도 2의 시스템 포텐셜 계산부(102)로 제공된다. 따라서, 도 2의 시스템 포텐셜 계산부(102)에서는 라인 L11 및 L12를 통해 제공되는 갱신 시스템 포텐셜 및 서비스 시작 시간을 이용하여 패킷 도착시의 시스템 포텐셜을 계산하게 될 것이다.
다음에, 상술한 바와같은 구성을 갖는 본 발명에 따른 속도 비례 자가 클럭공정 패킷 스케쥴링 장치를 이용하여 공정 패킷 스케쥴링을 수행하는 과정에 대하여 설명한다.
도 4는 본 발명의 바람직한 실시예에 따라 도착 패킷에 대한 타임 스템프를 계산하고, 계산된 타임 스템프를 도착 패킷의 헤더에 부가하여 전송 선택을 위한 스케쥴링을 수행하는 과정을 도시한 플로우챠트이다.
도 4를 참조하면, 본 발명에 따른 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치에서는 각 연결로부터의 패킷 입력을 대기하는 대기 모드를 수행하는 중에(단계 402), 임의의 연결로부터 새로운 패킷이 도착하는 지의 여부를 체크하는 데, 여기에서의 체크 결과 새로운 패킷이 도착하면(단계 404), 도 2의 시스템 포텐셜 계산부(102)에서는 라인 L11을 통해 도 3의 시스템 포텐셜 갱신부(312)로부터 제공되는 갱신 시스템 포텐셜과 라인 L12를 통해 도 3의 서비스 시작 시간 기록부(312)로부터 제공되는 전송 패킷의 서비스 시작 시간에 의거하여 새로운 패킷 도착시의 시스템 포텐셜을 계산, 보다 상세하게, 전술한 수학식 3에서와 같이, 현재 서비스중인 패킷의 서비스 개시 시점(즉, 직전 패킷의 서비스 종료 시점)에 갱신된 시스템 포텐셜(Pi)에 새로운 패킷의 도착 시간에서 전송 패킷의 서비스 시작 시간을 감산한 값을 합하여 도착 순간의 시스템 포텐셜을 계산한다.
또한, 단계(408)에서는 도착 패킷이 속한 연결의 대기 행렬, 즉 메모리를 검색하여 대기 행렬에 처리되어야 할 패킷이 대기중인지의 여부를 체크하는 데, 새로운 패킷이 도착한 순간 연결의 대기 행렬(즉, 도 1의 메모리 블록내 해당 메모리)에 처리되어야 할 패킷이 대기하고 있으면 직전에서 대기중인 패킷의 타임 스템프를 기준으로 도착 패킷의 시작 포텐셜을 계산(대기중인 패킷의 타임 스템프를 도착 패킷의 시작 포텐셜로 설정)하고, 새로운 패킷의 도착시에 대기 행렬에 처리되어야 할 패킷이 없으면 도착 당시의 시스템 포텐셜을 도착 패킷의 시작 포텐셜로 계산한다.
다음에, 단계(410)에서는 계산된 시작 포텐셜과 패킷의 길이를 도착 패킷이 속한 연결에 할당된 속도로 나눈 정규화 서비스양에 의거하여 도착 패킷의 타임 스템프를 계산, 즉 전술한 수학식 4 및 5에서와 같이 계산된 시작 포텐셜, 도착 패킷의 길이, 도착 패킷의 연결에 할당된 속도에 의거하여 도착 패킷의 타임 스템프를 계산한다. 여기에서, 도착 패킷의 타임 스템프는 큰 값에 자신의 패킷 길이를 자신이 속한 연결의 할당 속도, 즉 정규화된 서비스양 만큼 증가시킨 값이다.
마지막으로, 단계(412)에서는 계산된 도착 패킷의 타임 스템프를 도착 패킷의 헤더에 부가한 다음 해당 연결에 속하는 대기 행렬 메모리, 즉 도 1에 도시된 대기 행렬 메모리(200/1 내지 200/n)중 대응하는 하나에 저장한다.
따라서, 상술한 바와같은 과정을 통해 새로운 패킷이 도착할 때마다 시스템 포텐셜 함수(갱신 시스템 포텐셜 및 전송 패킷의 서비스 시작 시간)를 이용하여 계산되는 도착 패킷의 타임 스템프, 즉 서버에서의 전송 순서를 결정하는 데 사용되는 일종의 인덱스 정보가 도착 패킷의 헤더에 부가되어 도착 패킷의 연결에 속하는 논리적 대기 행렬 메모리에 저장되어 전송을 대기하게 된다.
다음에, 상술한 바와같은 과정을 통해 각 패킷의 헤더에 타임 스템프가 부가되어 저장된 상태에서 각 헤더의 타임 스템프를 이용하여 전송 패킷을 스케쥴링하는 과정에 대하여 설명한다.
도 5는 본 발명에 따라 스케쥴링된 대기 행렬 패킷들에서 전송 패킷을 선택하고, 선택된 패킷의 서비스 시작 시간을 기록하면서 선택된 전송 패킷을 다중화하여 전송하는 과정을 도시한 플로우챠트이다.
도 5를 참조하면, 서버가 패킷 전송 서비스 모드를 수행, 즉 전송이 선택된 패킷들을 다중화하여 전송하는 서비스 모드를 수행하는 중에(단계 502), 도 3의 서비스 종료 검출부(306)에서는 서비스의 종료 여부를 체크하는 데, 여기에서의 여기에서의 체크 결과 서비스 종료가 검출되면(단계 504), 단계(506)에서는 전송 종료 패킷의 시작 포텐셜을 계산, 즉 전술한 수학식 6에서와 같이, 전송 패킷의 타임 스템프, 전송 패킷의 길이, 전송 패킷이 속한 연결에 할당된 속도 정보에 의거하여 전송 패킷의 시작 포텐셜을 계산한다.
또한, 단계(508)에서는 직전 패킷(예를들어, 전송 패킷이 j번째 패킷일 때 j-1 번째 패킷)의 전송시에 갱신된 시스템 포텐셜값과 계산된 시작 포텐셜값을 비교하여 큰 값을 기준 포텐셜 SP로 결정한다. 이때, 패킷의 전송 순서가 타임 스템프가 적은 순으로 선택되므로, 방금 전송한 패킷이 선택될 당시에는 해당 패킷이 가장 적은 타임 스템프를 보유하게 되고, 전송 종료후에 시작 포텐셜과 직전의 시스템 포텐셜을 비교하여 큰 값을 기준 포텐셜로 선택하기 때문에 항상 시스템 포텐셜의 증가량이 실제 시간보다 크게 유지된다.
다음에, 단계(510)에서는 결정된 기준 포텐셜에 방금 전송한 패킷의 실제 처리 시간을 더함으로써 시스템 포텐셜을 갱신, 즉 전술한 수학식 8에서와 같이, 시작 포텐셜, 방금 전송 종료된 패킷의 길이, 서버의 총 서비스 속도에 의거하여 시스템 포텐셜을 갱신하며, 여기에서 갱신되는 시스템 포텐셜은 기준 포텐셜을 계산하는 데 이용되며, 또한 새로운 패킷이 도착할 때 도착 패킷의 타임 스템프(보다 상세하게, 새로운 패킷 도착 시점의 시스템 포텐셜)를 계산하는 데 이용된다.
이어서, 단계(512)에서는 전송이 선택된 패킷의 전송 종료후에 시스템 포텐셜이 갱신되면, 도 1의 메모리 블록(200)을 검색하여 전송을 대기하는 대기 패킷이 존재하는 지의 여부를 체크하는 데, 여기에서의 체크 결과 대기 패킷이 존재하면 각 대기 패킷의 헤더에 각각 부가된 타임 스템프에 의거하여 대기 패킷을 갖는 각 연결의 선두 패킷들중 어느 하나를 전송 패킷을 결정, 즉 타임 스템프가 가장 적은 선두 패킷을 전송 패킷으로 선택한다.
또한, 단계(516)에서는 임의의 선두 패킷이 전송 패킷으로 선택되면, 선택된 전송 패킷의 서비스 시작 시간을 기록하며, 이와같이 기록된 전송 패킷의 서비스 시작 시간은 도 2의 시스템 포텐셜 계산부(102)로 전달되어 도착 패킷의 타임 스템프(보다 상세하게, 새로운 패킷 도착 시점의 시스템 포텐셜)를 계산하는 데 이용된다.
그런다음, 단계(518)에서는 전송 선택된 패킷을 메모리 블록(200)의 해당 대기 행렬 메모리로부터 인출한 다음 다중화하여 전송한다.
상술한 바와같이, 본 발명에 따라 시스템 포텐셜 함수(갱신 시스템 포텐셜,전송 패킷의 서비스 시작 시간)를 이용하여 도착 패킷들의 타임 스템프를 계산하고, 이 계산된 타임 스템프를 이용하여 전송 패킷을 스케쥴링(전송 순서 결정)하는 과정에 대해 전술한 종래 방법들과의 비교예를 들어 설명한다.
먼저, 전술한 종래 방법들중 PGPS 및 SCFQ 방식과 본 발명의 RP-SCFQ 방식과의 성능 비교를 위해 11개의 연결(S1 - S11)이 동일한 입력 트래픽, 일예로서 도 6a에 도시된 바와같이, 연결 S1이 0.5의 속도를 할당받고, 연결 S2 내지 S11이 모두 0.05의 속도를 할당받으며, 서버의 비지 구간의 시작점에 각 연결의 패킷이 동시에 도착하였다고 가정한다.
이때, 설명과 이해의 편의상 서버의 속도가 1이라 가정하고, 각 패킷의 길이가 모두 1이라 가정한다. 또한, 설명의 편의와 이해의 증진을 위해 연결 S1에서는 계속적으로 자신의 할당 속도를 준수하여 패킷()이 도착한다고 가정하고,를 연결 i로부터 k번째 도착한 패킷이라 가정한다.
따라서, 상기한 바와같은 조건일 때 종래의 PGPS 알고리즘에서는, 연결의 할당 속도에 비례하여 서비스가 제공되고 각 연결의 패킷 타임 스템프가 자신의 할당 속도에 의하여 결정되므로, 패킷(k=1,2,3,---,11)의 타임 스템프는 각각 2,4,6,---,20이 되고, 패킷(i=2,3,4,---11)의 타임 스템프는 20이 된다. 즉, PGPS는 타임 스템프의 증가순으로 패킷의 전송 순서를 결정하는 작업 보존 알고리즘이므로 패킷의 전송 순서는, 도 6b에 도시된 바와같이,과 같이 된다. 이러한 PGPS는 연결의 수만큼 가상 시간 계산 및 갱신을 반복해야 하기 때문에 복잡성은 매우 높은 편이나 지연 바운드 특성은 우수하다.
또한, SCFQ 알고리즘에서는 패킷 도착시에 서비스중인 패킷의 타임 스템프를 이용하므로 패킷과(i=2,3,4,---11)의 타임 스템프는 각각 2와 20이다. 그런데, 패킷이 서비스를 종료하는 시점 1에 연결 S1에 대기 패킷이 없으므로(i=2,3,4,---11)중 어느 하나가 다음 전송될 패킷으로 선택된다.
이어서, 시점 2에 도착하는의 타임 스템프는 직전에 전송된 패킷의 타임 스템프를 이용하므로 22(20+2)가 된다. 따라서, 시점 2부터는, 도 6c에 도시된 바와같이, 타임 스템프가 적은(i=3,4,---11)의 패킷이 모두 전송된 후에가 전송된다. 즉, 트래픽 계약을 준수하는 연결 S1이 다른 연결(S2 내지 S11)에 의하여 10개(즉, 총 연결의 수인 11개에서 해당 연결을 제외한 수)의 타임 슬롯 만큼 지연됨을 알 수 있다.
따라서, SCFQ는 직전의 타임 스템프를 이용하기 때문에 복잡성은 매우 낮지만 지연 바운드가 나쁘다는 것을 알 수 있다. 즉, SCFQ는 임의의 패킷이 도착하여 전송될 때까지 겪는 지연의 최대값이 연결의 수에 의존하는 특성을 갖기 때문에 많은 인입 트래픽이 존재하는 노드에의 적용이 어렵다.
한편, 본 발명의 RP-SCFQ 방식에서는 0시점에 도착한 11개의 연결 S1 내지S11에서의 패킷중 첫번째 패킷은 각각 2와 20의 타임 스템프를 가지므로 패킷가 처음 서비스(전송)되고, 이어서(i=2,3,4,---11) 패킷중의 어느 하나가 전송된다. 이어서, 시점 2에서 연결 S1으로부터 새로운 패킷이 도착하면, 해당 연결의 대기 행렬에 처리되어야 할 패킷이 없는 경우 도착 당시의 시스템 포텐셜을 기준으로 타임 스템프가 결정되므로, 이때의 시스템 포텐셜(패킷 도착시의 시스템 포텐셜)은 2가 된다. 따라서, 연결 S1로부터 인입된 패킷의 타임 스템프는 4가 된다.
따라서, 연결 S1으로부터 인입된 패킷의 타임 스템프가 4이고,의 패킷중 대기중인 패킷들의 타임 스템프가 20 이므로 패킷가 서비스되고,패킷중의 다른 하나가 서비스된다.
즉, 본 발명의 RP-SCFQ 방식에서는 상기한 바와같은 과정을 반복 수행함으로써, 도 6d에 도시된 바와같이,의 순서, 즉 상술한 PGPS 방식에서와 같이 지연 바운드가 우수한 특성을 갖게 된다.
또한, 본 발명의 RP-SCFQ 방식은 갱신 시스템 포텐셜과 전송 패킷의 서비스 시작 시간을 이용하여 패킷 도착시의 시스템 포텐셜을 계산하고 도착 패킷의 타임 스템프를 계산하기 때문에 전술한 종래의 SCFQ 방식에서와 같이 복잡성이 매우 낮다.
다시말해, 본 발명의 RP-SCFQ 방식은 종래 PGPS 방식 및 SCFQ 방식의 장점만을 취한 결과를 얻을 수 있는 것으로, 지연 바운드 특성이 종래 PGPS 방식에서와 같이 우수하고, 복잡성이 종래 SCFQ 방식에서와 같이 낮다.
이상 설명한 바와같이 본 발명의 RP-SCFQ 방식에 의한 속도 비례 자가 클럭 공정 패킷 스케쥴링 기법에 따르면, 연결로부터 새로 도착하는 패킷의 타임 스템프를 모두 동일한 기준(갱신 시스템 포텐셜 및 전송 패킷 서비스 시작 시간)으로 계산하기 때문에 현저하게 낮은 복잡성을 유지(즉, 종래 SCFQ 수준으로 유지)할 수 있을 뿐만 아니라 매우 우수한 지연 바운드 특성(즉, 종래 PGPS 수준의 지연 바운드 특성)을 얻을 수 있다.
Claims (15)
- N(N은 정수)개의 연결로부터 기할당된 임의의 속도로 인입되는 패킷들을 타임 스템프를 이용하여 스케쥴링하고, 이 스케쥴링에 따라 전송 선택된 패킷들을 순차적으로 다중화하여 전송하는 고속 패킷 노드를 위한 패킷 스케쥴링 장치에 있어서,상기 장치는, 상기 각 연결로부터 임의의 패킷이 도착할 때 해당 도착 패킷의 타임 스템프를 계산하여 헤더에 부가한 다음 대기 행렬 메모리에 저장하는 타임 스템프 계산 블록과 각 헤더에 부가된 타임 스템프를 이용하여 대기 행렬 메모리에 저장된 패킷들을 인출한 다음 다중화하여 전송하는 서버를 포함하며,상기 타임 스템프 계산 블록은:상기 서버로부터 제공되는 갱신된 이전 시스템 포텐셜과 전송 패킷의 서비스 시작 시간 정보에 의거하여 패킷 도착시의 시스템 포텐셜을 계산하는 수단;해당 연결에 속하는 대기 행렬 메모리에서의 대기 패킷 검색 결과에 따른 대기 패킷의 타임 스템프 및 상기 계산된 시스템 포텐셜에 의거하여 도착 패킷의 시작 포텐셜을 계산하는 수단; 및상기 계산된 시작 포텐셜, 도착 패킷의 길이 및 상기 도착 패킷이 속한 연결에 기할당된 속도 정보에 의거하여 상기 도착 패킷의 타임 스템프를 계산하고, 이 계산된 타임 스템프를 상기 도착 패킷의 헤더에 부가하여 대응하는 대기 행렬 메모리에 저장하는 수단을 포함하고,상기 서버는:각 대기 패킷의 헤더에 각각 부가된 타임 스템프에 의거하여, 대기 행렬 메모리에 저장된 대기 패킷들중 하나를 선택하고, 선택된 패킷을 인출 및 다중화하여 전송하는 수단;선택된 패킷의 전송이 종료될 때 전송 패킷의 타임 스템프, 상기 전송 패킷의 길이, 상기 전송 패킷이 속한 연결에 할당된 속도 정보에 의거하여 상기 전송 패킷의 시작 포텐셜을 계산하는 수단;이전 전송 패킷의 전송시에 갱신된 시스템 포텐셜값과 상기 계산된 시작 포텐셜값을 비교하여 기준 포텐셜을 결정하는 수단;상기 결정된 기준 포텐셜과 상기 전송 패킷의 실제 처리 시간에 의거하여 시스템 포텐셜을 갱신하고, 이 갱신된 이전 시스템 포텐셜을 상기 패킷 도착시의 시스템 포텐셜 계산 수단으로 제공하는 수단; 및전송 서비스중인 패킷의 실제 서비스 시작 시간을 기록하여 상기 패킷 도착시의 시스템 포텐셜 계산 수단으로 제공하는 수단을 포함하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.
- 제 1 항에 있어서, 상기 패킷 도착시의 시스템 포텐셜은, 다음의 수학식과 같이 계산되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.tempk= Pj+ (t-)(상기 수학식에서, tempk는 패킷 도착시의 시스템 포텐셜을, Pi는 갱신 시스템 포텐셜을, t는 새로운 패킷의 도착 시점을,는 서비스중인 패킷 j의 실제 서비스 시작 시간을 각각 의미함.)
- 제 1 항에 있어서, 상기 도착 패킷 시작 포텐셜 계산 수단은, 상기 도착 패킷의 연결에 속하는 대기 행렬을 검색하여, 대기 패킷이 존재하면 직전 대기 패킷의 타임 스템프를 상기 도착 패킷의 시작 포텐셜로 결정하고, 대기 패킷이 존재하지 않으면 상기 계산된 시스템 포텐셜을 상기 도착 패킷의 시작 포텐셜로 결정하는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.
- 제 1 항에 있어서, 상기 도착 패킷의 타임 스템프는, 다음의 수학식과 같이 계산되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.=+(상기 수학식에서,는 연결 i의 (k-1)번째 패킷의 타임 스템프를,는 연결 i의 k번째 패킷의 시작 포텐셜을,는 연결 i의 k번째패킷의 길이를, i는 연결 i에 할당된 속도를 각각 의미함.)
- 제 1 항에 있어서, 상기 전송 패킷의 시작 포텐셜은, 다음의 수학식과 같이 계산되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.(상기 수학식에서, SPj는 전송 패킷 j의 시작 포텐셜을, TSj는 j번째 패킷의 타임 스템프를, Lj는 j번째 패킷의 길이를, i는 패킷 j가 속한 연결 i에 할당된 속도를 각각 의미함.)
- 제 1 항에 있어서, 상기 기준 포텐셜 결정 수단은, 상기 갱신된 시스템 포텐셜값과 계산된 시작 포텐셜값중 큰 값을 상기 기준 포텐셜로 결정하는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.
- 제 1 항에 있어서, 상기 이전 시스템 포텐셜은, 다음의 수학식과 같이 갱신되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 장치.(상기 수학식에서, Pj는 갱신되는 이전 시스템 포텐셜을, SP는 결정된 기준 포텐셜을, Lj는 전송 종료된 패킷 j의 길이를, r은 서버의 총 서비스 속도를 각각 의미함.)
- N(N은 정수)개의 연결로부터 기할당된 임의의 속도로 인입되는 패킷들을 타임 스템프를 이용하여 스케쥴링하고, 이 스케쥴링에 따라 전송 선택된 패킷들을 순차적으로 다중화하여 전송하는 고속 패킷 노드를 위한 패킷 스케쥴링 방법에 있어서,상기 각 연결로부터 임의의 패킷이 도착할 때 이전 전송 패킷의 전송 종료시에 계산된 갱신 시스템 포텐셜과 상기 이전 전송 패킷의 서비스 시작 시간 정보에 의거하여 패킷 도착시의 시스템 포텐셜을 계산하는 제 1 과정;해당 연결에 속하는 대기 행렬에서의 대기 패킷의 타임 스템프 및 상기 계산된 시스템 포텐셜에 의거하여 도착 패킷의 시작 포텐셜을 계산하는 제 2 과정;상기 계산된 시작 포텐셜, 도착 패킷의 길이 및 상기 도착 패킷이 속한 연결에 기할당된 속도 정보에 의거하여 상기 도착 패킷의 타임 스템프를 계산하고, 이 계산된 타임 스템프를 상기 도착 패킷의 헤더에 부가하는 제 3 과정;전송 대기중인 각 패킷의 헤더에 각각 부가된 타임 스템프에 따라 전송 선택된 패킷의 전송이 종료될 때, 전송 패킷의 시작 포텐셜과 이전 시스템 포텐셜중 큰 값에 상기 전송 패킷의 실제 처리에 소요된 시간을 가산하여 상기 시스템 포텐셜을 갱신하는 제 4 과정; 및상기 패킷 도착시의 시스템 포텐셜을 계산을 위해, 현재 전송중인 패킷의 실제 서비스 시작 시간을 기록하는 제 5 과정으로 이루어진 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.
- 제 8 항에 있어서, 상기 패킷 도착시의 시스템 포텐셜은, 다음의 수학식과 같이 계산되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.tempk= Pj+ (t-)(상기 수학식에서, tempk는 패킷 도착시의 시스템 포텐셜을, Pi는 갱신 시스템 포텐셜을, t는 새로운 패킷의 도착 시점을,는 서비스중인 패킷 j의 실제 서비스 시작 시간을 각각 의미함.)
- 제 8 항에 있어서, 상기 제 2 과정은, 상기 도착 패킷의 연결에 속하는 대기 행렬을 검색하여, 대기 패킷이 존재하면 직전 대기 패킷의 타임 스템프를 상기 도착 패킷의 시작 포텐셜로 결정하고, 대기 패킷이 존재하지 않으면 상기 계산된 시스템 포텐셜을 상기 도착 패킷의 시작 포텐셜로 결정하는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.
- 제 8 항에 있어서, 상기 도착 패킷의 타임 스템프는, 다음의 수학식과 같이 계산되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.=+(상기 수학식에서,는 연결 i의 (k-1)번째 패킷의 타임 스템프를,는 연결 i의 k번째 패킷의 시작 포텐셜을,는 연결 i의 k번째 패킷의 길이를, i는 연결 i에 할당된 속도를 각각 의미함.)
- 제 8 항에 있어서, 상기 제 4 과정은:상기 전송 패킷의 타임 스템프, 전송 패킷의 길이, 전송 패킷이 속한 연결에 할당된 속도 정보에 의거하여 상기 전송 패킷의 시작 포텐셜을 계산하는 제 41 과정;이전 전송 패킷의 전송시에 갱신된 이전 시스템 포텐셜값과 상기 계산된 시작 포텐셜값을 비교하여 기준 포텐셜을 결정하는 제 42 과정; 및상기 결정된 기준 포텐셜에 상기 전송 패킷의 실제 처리에 소요된 시간을 가산하여 시스템 포텐셜을 갱신하는 제 43 과정을 포함하는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.
- 제 12 항에 있어서, 상기 전송 패킷의 시작 포텐셜은, 다음의 수학식과 같이 계산되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.(상기 수학식에서, SPj는 전송 패킷 j의 시작 포텐셜을, TSj는 j번째 패킷의 타임 스템프를, Lj는 j번째 패킷의 길이를, i는 패킷 j가 속한 연결 i에 할당된 속도를 각각 의미함.)
- 제 12 항에 있어서, 상기 제 42 과정은, 상기 갱신된 이전 시스템 포텐셜값과 계산된 시작 포텐셜값중 큰 값을 상기 기준 포텐셜로 결정하는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.
- 제 12 항에 있어서, 상기 이전 시스템 포텐셜은, 다음의 수학식과 같이 갱신되는 것을 특징으로 하는 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷 스케쥴링 방법.(상기 수학식에서, Pj는 갱신된 이전 시스템 포텐셜을, SP는 결정된 기준 포텐셜을, Lj는 전송 종료된 패킷 j의 길이를, r은 서버의 총 서비스 속도를 각각 의미함.)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990030048A KR100333475B1 (ko) | 1999-07-23 | 1999-07-23 | 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷스케쥴링 장치 및 그 스케쥴링 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990030048A KR100333475B1 (ko) | 1999-07-23 | 1999-07-23 | 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷스케쥴링 장치 및 그 스케쥴링 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010010918A KR20010010918A (ko) | 2001-02-15 |
KR100333475B1 true KR100333475B1 (ko) | 2002-04-25 |
Family
ID=19604116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990030048A KR100333475B1 (ko) | 1999-07-23 | 1999-07-23 | 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷스케쥴링 장치 및 그 스케쥴링 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100333475B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100431191B1 (ko) * | 2001-12-03 | 2004-05-12 | 주식회사 케이티 | 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법 |
CN1206835C (zh) * | 2003-04-11 | 2005-06-15 | 华中科技大学 | 一种数据包的调度方法 |
KR20040052921A (ko) | 2004-05-17 | 2004-06-23 | 김기천 | 분산 트래픽 제어를 위한 클록 동기화 장치 |
-
1999
- 1999-07-23 KR KR1019990030048A patent/KR100333475B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20010010918A (ko) | 2001-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5859835A (en) | Traffic scheduling system and method for packet-switched networks | |
US5274625A (en) | Traffic measurements in packet communications networks | |
US6134217A (en) | Traffic scheduling system and method for packet-switched networks with fairness and low latency | |
Stiliadis et al. | A general methodology for designing efficient traffic scheduling and shaping algorithms | |
US5278828A (en) | Method and system for managing queued cells | |
US5629936A (en) | Control of consecutive packet loss in a packet buffer | |
US6396843B1 (en) | Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using logarithmic calendar queues | |
JPH0897831A (ja) | 出力トラフィックのシェーピング方法および装置 | |
US7394836B2 (en) | Packet scheduling system and method for high-speed packet networks | |
Lee et al. | Queueing system with multiple delay and loss priorities for ATM networks | |
US6341134B1 (en) | Process for the arrangement of equitable-loss packets | |
Chiussi et al. | Implementing fair queueing in atm switches: The discrete-rate approach | |
US20010008530A1 (en) | Shaper and scheduling method for use in the same | |
KR100333475B1 (ko) | 고속 패킷 노드를 위한 속도 비례 자가 클럭 공정 패킷스케쥴링 장치 및 그 스케쥴링 방법 | |
US6693913B1 (en) | Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using generalized discrete data transfer rate approach | |
KR100369562B1 (ko) | 고속 통합 서비스망에서 wfq의 에뮬레이션을 통한 공정패킷 스케쥴링 방법 및 그 공정 패킷 스케쥴러 | |
US6618391B1 (en) | Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using discrete data transfer rates | |
KR100745679B1 (ko) | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 | |
Gong et al. | Performance analysis of a flexible protocol achieving user fairness in high-speed dual-bus networks with destination release | |
Lam et al. | Burst scheduling networks | |
Tassiulas | Cut-through switching, pipelining, and scheduling for network evacuation | |
Stiliadis et al. | Frame-based fair queueing: A new tra c scheduling algorithm for packet-switched networks | |
US20040151167A1 (en) | Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using generalized discrete data transfer rate approach | |
Rajabi et al. | On modeling optical burst switching networks with fiber delay lines: A novel approach | |
Lai et al. | Buffering and prioritization in switches for fast processing table‐miss packets in software‐defined networks |
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: 20080324 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |