KR101037929B1 - Method and Apparatus for packet scheduling - Google Patents

Method and Apparatus for packet scheduling Download PDF

Info

Publication number
KR101037929B1
KR101037929B1 KR20040019627A KR20040019627A KR101037929B1 KR 101037929 B1 KR101037929 B1 KR 101037929B1 KR 20040019627 A KR20040019627 A KR 20040019627A KR 20040019627 A KR20040019627 A KR 20040019627A KR 101037929 B1 KR101037929 B1 KR 101037929B1
Authority
KR
South Korea
Prior art keywords
packet
stream
virtual
queue
service time
Prior art date
Application number
KR20040019627A
Other languages
Korean (ko)
Other versions
KR20040089475A (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 US10/822,145 priority Critical patent/US20050147103A1/en
Publication of KR20040089475A publication Critical patent/KR20040089475A/en
Application granted granted Critical
Publication of KR101037929B1 publication Critical patent/KR101037929B1/en

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/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/28Flow control; Congestion control in relation to timing considerations

Landscapes

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

Abstract

패킷 스케줄링 방법이 개시된다. 본 발명은, 스케줄러에 인입되는 스트림을 속도 및/또는 패킷 길이에 기초하여 분류하고; 분류된 패킷에 대하여, 스트림의 패킷이 첫 번째 패킷인 경우 제 1 스트림 큐에 저장하고; 후속 패킷인 경우 제 2 스트림 큐에 저장하고; 제 1 스트림 큐에 저장한 패킷의 가상 개시 서비스 시간을 웨이트 공평 큐(Weighted fairness Queuing)방법에 따라 카운트하고; 제 2 스트림 큐에 저장한 패킷의 가상 개시 서비스 시간을 이전 패킷의 가상 서비스 종료 시간으로 카운트한다. 본 발명은 방법은 간단하고 효율적인 패킷 스케줄링을 수행하며, 하드웨어 구현이 용이하다. 또한 WF2Q+ 알고리즘의 성능을 보장한다.A packet scheduling method is disclosed. The present invention is directed to classifying streams entering the scheduler based on speed and / or packet length; For the classified packet, store in the first stream queue if the packet of the stream is the first packet; Store in a second stream queue if it is a subsequent packet; Counting a virtual start service time of a packet stored in a first stream queue according to a weighted fairness queuing method; The virtual start service time of the packet stored in the second stream queue is counted as the virtual service end time of the previous packet. The present invention is a simple and efficient packet scheduling, hardware implementation is easy. It also guarantees the performance of the WF2Q + algorithm.

Description

패킷 스케줄링 방법 및 장치{Method and Apparatus for packet scheduling}Packet scheduling method and apparatus {Method and Apparatus for packet scheduling}

도 1은 본 발명에 따른 스케쥴링 방법의 개략도.1 is a schematic diagram of a scheduling method according to the present invention;

도 2는 본 발명의 일 실시예에 의한 제 1 및 제 2 스트림 큐의 내부 구성을 나타내는 도면.2 is a diagram illustrating an internal configuration of first and second stream queues according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 의한 스케줄링 방법을 나타내는 시간흐름도.3 is a time flow diagram illustrating a scheduling method according to an embodiment of the present invention.

도 4는 이전 패킷의 전송과 다음 패킷의 전송사이에서 시스템의 가상 서비스 시간이 갱신되는 과정을 나타내는 시간흐름도.4 is a time flow diagram illustrating a process of updating a virtual service time of a system between transmission of a previous packet and transmission of a next packet.

도 5는 본 발명의 다른 실시예에 의한 제 1 및 제 2 스트림 큐의 구조를 나타내는 도면.5 is a diagram illustrating the structure of first and second stream queues according to another embodiment of the present invention.

도 6은 본 발명의 시뮬레이팅에 사용된 네트워크 토폴로지를 나타내는 도면.6 illustrates a network topology used for simulating the present invention.

도 7는 도 2의 일 실시예에 의한 데이터 스트림의 대역폭 특성을 나타내는 도면.7 is a diagram illustrating bandwidth characteristics of a data stream according to one embodiment of FIG. 2.

도 8는 도 2의 일 실시예에 의한 데이터 스트림의 대역폭 지터 특성을 나타내는 도면.8 illustrates bandwidth jitter characteristics of a data stream according to an embodiment of FIG. 2.

도 9는 도 2의 일 실시예에 의한 데이터 스트림의 딜레이 특성을 나타내는 도면.9 illustrates a delay characteristic of a data stream according to an embodiment of FIG. 2.

도 10는 도 2의 일 실시예에 의한 데이터 스트림의 딜레이 지연 특성을 나타 내는 도면.FIG. 10 is a diagram illustrating a delay delay characteristic of a data stream according to an embodiment of FIG. 2.

도 11는 도 5의 일 실시예에 의한 데이터 스트림의 대역폭 특성을 나타내는 도면.FIG. 11 is a diagram illustrating bandwidth characteristics of a data stream according to one embodiment of FIG. 5. FIG.

도 12는 도 5의 일 실시예에 의한 데이터 스트림의 대역폭 지터 특성을 나타내는 도면.12 illustrates bandwidth jitter characteristics of a data stream according to an embodiment of FIG. 5.

도 13는 도 5의 일 실시예에 의한 데이터 스트림의 딜레이 특성을 나타내는 도면.13 illustrates a delay characteristic of a data stream according to an embodiment of FIG. 5.

도 14는 도 5의 일 실시예에 의한 데이터 스트림의 딜레이 지연 특성을 나타내는 도면.14 illustrates a delay delay characteristic of a data stream according to an embodiment of FIG. 5.

본 발명은 네트워크 통신 시스템 및 그 응용 기술 분야에 관한 것이다. 본 발명은 특히 라우터의 패킷 스케쥴링 방법에 응용가능한 패킷 스케쥴링 방법에 관한 것이다.The present invention relates to a network communication system and its application field. The present invention relates in particular to a packet scheduling method applicable to a packet scheduling method of a router.

인터넷의 발전에 따라, 멀티미디어 산업은 점점더 광범위하게 사용되고 있다. 음성 및 영상 같은 멀티 미디어 산업은 대역폭 및 딜레이에 많이 의존하기 때문에, 라우터는 점점더 효율적이고 빠른 속도의 패킷 스케쥴링 방법을 필요로하고, 이러한 방법은 네트워크 종단 기기들간에 신뢰적인 서비스 품질 기능(Qos)를 제공하여야 한다. With the development of the Internet, the multimedia industry is increasingly used. Because the multimedia industry, such as voice and video, relies heavily on bandwidth and delay, routers require increasingly efficient and high-speed packet scheduling methods, which provide reliable quality of service (Qos) between network end devices. Should be provided.                         

최근에, 이러한 서비스 품질 보증 기능을 수행하기 위해, WFQ, WF2Q, WF2Q+ 같은 GPS 모델에 기초한 스케쥴링 알고리즘이 광범위하게 개발되고 있다. GPS(General Processor Sharing) 모델은 이상적인 스트림 모델이다. 이것은 이하의 가정에 기초한다: (1) 패킷의 길이는 무한적으로 분할될 수 있다 (2) 모든 스트림은 동시에 서비스를 수용할 수 있다. 실제 시스템에 있어서, 스케쥴러 서버가 서비스하는 최소 단위는 패킷이고, 스케쥴러 서버는 동시에 오직 하나의 스트림만 서비스 가능하므로, GPS 모델은 실제적으로는 구현불가능하다. Jon C. R. Bennett and Hui Zhang는 실제의 시스템에서 GPS 모델을 시뮬레이팅하기 위해 WF2Q 스케쥴링 알고리즘을 개발하였다(J. Bennett and H. Zhang, Hierarchical packet fair queuing algorithms, In Proceedings of the ACM-SIGCOMM96, pages 143-156, Palo Alto, CA, August 1996 참고). 이 기술의 기본 아이디어는 스트림내의 각 패킷에 대하여 개시 서비스 시간과 종료 서비스 시간을 유지하는 것이다. 스케쥴러가 패킷을 보내기 전에, 스케쥴러는 스케쥴링되어야 할 패킷에 대한 품질 검사를 수행하여야 한다. 그 개시 서비스 시간이 시스템 가상 시간보다 적은 패킷만이 검사를 통과할 수 있다. 검사를 통과한 패킷중에서 최소의 종료 서비스 시간을 가진 패킷만이 전송될 것이다. 이러한 정책은 SEFF(Smallest Ellgible virtual Finish time First) 선택 정책이라 불리운다.Recently, scheduling algorithms based on GPS models such as WFQ, WF 2 Q, and WF 2 Q + have been widely developed to perform this quality of service guarantee function. The GPS (General Processor Sharing) model is an ideal stream model. This is based on the following assumptions: (1) The length of the packet can be split infinitely (2) All streams can simultaneously accommodate the service. In a real system, the minimum unit serviced by the scheduler server is a packet, and since the scheduler server can service only one stream at the same time, the GPS model is practically impossible to implement. Jon CR Bennett and Hui Zhang developed WF 2 Q scheduling algorithms to simulate GPS models in real systems (J. Bennett and H. Zhang, Hierarchical packet fair queuing algorithms, In Proceedings of the ACM-SIGCOMM96 , pages 143-156, Palo Alto, CA, August 1996). The basic idea of this technique is to maintain the start service time and end service time for each packet in the stream. Before the scheduler sends a packet, the scheduler must perform a quality check on the packet to be scheduled. Only packets whose start service time is less than the system virtual time can pass the check. Only those packets that have passed the minimum end service time will be transmitted. This policy is called the Smallest Elgible Virtual Finish time First (SEFF) selection policy.

WF2Q+ 방법은 좋은 공평 특성(fairness) 및 지연 특성을 가지고, 복잡하지 않기 때문에, 이 알고리즘은 업계에서 광범위하게 주목 받고 있다. 그러나, WF2Q+ 알고리즘은 실제 이용에서 이하의 문제점을 가진다: 첫째, 스케줄링되어야하는 스트림이 증가할수록 알고리즘의 복잡도가 증가한다. 특히 고속 코어 라우터(core router) 경우, 데이터 스트림의 양이 크면, 이 알고리즘의 응용은 시스템에 많은 부하를 안겨줄 것이다. 둘째, 하드웨어의 구현이 용이하지 않다.Since the WF 2 Q + method has good fairness and delay characteristics and is not complicated, this algorithm has received widespread attention in the industry. However, the WF2Q + algorithm has the following problems in practical use: First, the complexity of the algorithm increases as the streams to be scheduled increase. Especially for high speed core routers, if the amount of data streams is large, the application of this algorithm will put a heavy load on the system. Second, hardware implementation is not easy.

본 발명은 전술한 문제점을 극복하고자 한다. 본 발명은 간단하고 효율적이며, 하드웨어는 용이하게 구현가능하다. 또한 본 발명은 서비스 품질 보증 기능을 위한 WF2Q+ 알고리즘의 성능을 보증한다.The present invention seeks to overcome the above problems. The present invention is simple and efficient, and the hardware can be easily implemented. In addition, the present invention guarantees the performance of the WF2Q + algorithm for the service quality assurance function.

전술한 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 패킷 스케쥴링 방법은 스케쥴된 패킷을 제 1 스트림 큐 및 제 2 스트림 큐로 분할하여 저장한 후 각 패킷에 대하여 SEFF 정책에 의해 스케줄링을 수행한다. 이 과정은 이하와 같다.In order to achieve the above object, according to an embodiment of the present invention, a packet scheduling method divides and stores a scheduled packet into a first stream queue and a second stream queue, and performs scheduling according to an SEFF policy for each packet. . This process is as follows.

(1) 스케쥴링 노드를 초기화하고, 시스템의 가상 시간의 초기값을 설정한다.(1) Initialize the scheduling node and set the initial value of the virtual time of the system.

(2) 소정의 패킷이 스케줄링 노드에 도달하면, 그 패킷이 데이터 스트림의 첫 번째 패킷인지 아닌지를 검사한다. 만약 첫 번째 패킷이면, 그 패킷을 해당 데이터 스트림의 데이터 속도(rate) 및/또는 길이에 따라 제 1 스트림 큐 Q1 의 말단에 저장하고, 수학식 2에 따라 가상 개시 서비스 시간을 카운트한다. 이 시간은 데이터 스트림의 가상 개시 서비스 시간이다. 만약 첫 번째 패킷이 아니면, 그 패킷을 데이터 스트림의 말단에 바로 저장한다.(2) When a predetermined packet reaches the scheduling node, it is checked whether the packet is the first packet of the data stream. If it is the first packet, the packet is stored at the end of the first stream queue Q1 according to the data rate and / or length of the corresponding data stream, and the virtual initiation service time is counted according to equation (2). This time is the virtual initiation service time of the data stream. If it is not the first packet, store the packet directly at the end of the data stream.

(3) 스케줄링에서, 스케줄러는 모든 큐에 있는 제 1 데이터 스트림의 헤드 패킷의 가상 개시 서비스 시간을 스캔(scan)한다. 그 후, 시스템 가상 시간보다 작은 가상 개시 서비스 시간을 가지는 리걸 패킷(legal packet)을 검출한후, 수학식 4 에 따라 이 리걸 패킷의 가상 종료 서비시 시간을 카운트한다. 그 후, 그 패킷을 최소 가상 종료 서비스 시간으로 전송한다.(3) In scheduling, the scheduler scans the virtual initiation service time of the head packet of the first data stream in all queues. Thereafter, after detecting a legal packet having a virtual start service time smaller than the system virtual time, the virtual end service time of the legal packet is counted according to Equation (4). The packet is then sent with the minimum virtual termination service time.

(4) 선택된 헤드 패킷을 전송하는 절차는 다음과 같다: 우선. 데이터 스트림 F 로부터 패킷을 추출하고 전송한다. 그 후, 데이터 스트림 F 는 새로운 헤드 패킷의 데이터 속도 및 길이에 따라 백로그 스트림 Q2(Rx,Ly)의 말단에 저장될 것이다. 그 후, 수학식 3 에 따라, 데이터 스트림 F의 가상 개시 서비스 시간을 갱신하고, 이 시간은 데이터 스트림 F 의 새로운 헤드 패킷의 가상 개시 서비스 시간이다. 그 후, 수학식 1에 따라 시스템의 가상 시간을 갱신한다.(4) The procedure for transmitting the selected head packet is as follows: First. Extract packets from data stream F and send. The data stream F will then be stored at the end of the backlog stream Q2 (Rx, Ly) according to the data rate and length of the new head packet. Then, according to equation (3), the virtual start service time of the data stream F is updated, and this time is the virtual start service time of the new head packet of the data stream F. Thereafter, the virtual time of the system is updated according to the equation (1).

(5) 전체 동작이 끝날 때 까지 과정 (2)내지 (4)를 반복한다.(5) Repeat steps (2) to (4) until the entire operation is completed.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

먼저, 표 1 및 수학식 1 내지 4를 이용하여 이하의 설명에서 사용될 수학식 및 기호를 정의한다.First, equations and symbols to be used in the following description are defined using Table 1 and Equations 1 to 4.

[수학식 1][Equation 1]

Figure 112004011809153-pat00001
Figure 112004011809153-pat00001

[수학식 2][Equation 2]

Figure 112004011809153-pat00002
Figure 112004011809153-pat00002

[수학식 3]&Quot; (3) "

Figure 112004011809153-pat00003
Figure 112004011809153-pat00003

[수학식 4]&Quot; (4) "

Figure 112004011809153-pat00004
Figure 112004011809153-pat00004

[표 1]TABLE 1

V(t)V (t) 시스템의 가상 시간 함수Virtual time function of the system Si k S i k 데이트 스트림 i 의 패킷 k 의 가상 개시 시간Virtual start time of packet k of data stream i Fi k F i k 데이트 스트림 i 의 패킷 k 의 가상 종료 시간Virtual end time of packet k of data stream i ττ 시스템 가상 시간 갱신 시간-간격System virtual time update time-interval B(t)B (t) 시간 t에서 시스템에 백로그된 모든 스트림 세트Set of all streams backlogged to the system at time t Hi(t)Hi (t) 시간 t에서의 데이터 스트림 i 의 헤드 패킷의 일련 번호The serial number of the head packet of data stream i at time t QiQi 데이터 스트림 i 의 스케줄되는 패킷의 양The amount of scheduled packets in data stream i ai k a i k 데이터 스트림 i 의 패킷 k 의 도착 시간 Arrival time of packet k in data stream i Li k L i k 데이터 스트림 i 의 패킷 k 의 길이 Length of packet k in data stream i Ri(t)Ri (t) 시간 t에서의 데이터 스트림 i 의 데이터 속도 Data rate of data stream i at time t

본 발명의 상세한 설명이 이하 관련 도면을 참조하여 설명된다.The detailed description of the invention is now described with reference to the associated drawings.

도 1은 본 발명의 일 실시예에 따른 스케쥴링 방법을 나타내는 구조도이다.1 is a structural diagram showing a scheduling method according to an embodiment of the present invention.

본 발명에 따른 스케줄러(100)는 분류기(classifier)(130), 제 1 스트림 큐(110), 제 2 스트림 큐(120) 및 SEFF 선택부(140)를 포함한다.The scheduler 100 according to the present invention includes a classifier 130, a first stream queue 110, a second stream queue 120, and a SEFF selector 140.

본 발명의 스케줄러에서 가상 시간 함수 V(t) 는 이하 수학식 1과 같이 정의된다. In the scheduler of the present invention, the virtual time function V (t) is defined as in Equation 1 below.                     

[수학식 1][Equation 1]

Figure 112004011809153-pat00005
Figure 112004011809153-pat00005

여기서, V(t)는 스케줄러(100)의 가상 시간 함수, τ 는 시스템의 가상 시간 갱신 간격, B(t)는 시간 t에서 스케줄러(100)에 백로그된 모든 스트림 세트, Hi(t)는 데이터 스트림 i 의 헤드 패킷의 일련 번호, Si k 는 k번째 패킷의 가상 개시 시간이다.Where V (t) is the virtual time function of the scheduler 100, τ is the virtual time update interval of the system, B (t) is the set of all streams backlogged to the scheduler 100 at time t, and Hi (t) is The serial number of the head packet of data stream i, Si k is the virtual start time of the k th packet.

분류기(130)는, 데이터 속도에 따라 여러 데이터 스트림을 분류한다. 분류 등급(quantification grade) M 은 R1,R2,..Rm 과 같이 순차적으로 부여된다. 마찬가지로, 길이에 따른 데이트 스트림은 분류 등급 N을 이용하여 L1,L2,...Ln 과 같이 순차적으로 분류된다. 상이한 데이터 스트림에 대하여, 길이 분류의 등급은 동일할 수도 있고 상이할 수 도 있다. R 과 L 의 조합을 통해서 여러 상이한 데이터 큐가 얻어지며, 이들 각각은 Q(Rm, Ln)과 같이 표현된다. 결국 M*N 개의 데이터 큐가 얻어지며 스케줄러(100)로 인입하는 패킷(132)는 그 패킷이 속한 스트림이 가지는 속도 및 패킷 길이에 따라 상이한 스트림으로 분류되어 저장된다.Classifier 130 classifies the various data streams according to the data rates. The quantification grades M are assigned in sequence, such as R1, R2, ... Rm. Similarly, the length of the data streams is classified sequentially using L1, L2, ... Ln using the classification class N. For different data streams, the ratings of the length classifications may be the same or may be different. The combination of R and L results in several different data queues, each of which is represented by Q (Rm, Ln). As a result, M * N data queues are obtained, and packets 132 entering the scheduler 100 are classified into different streams according to the speed and packet length of the stream to which the packet belongs.

소정의 데이터 속도 (R=Rm) 및 헤드 패킷 길이 (L, Ln-1<L<=Ln)에 대하여, 각 데이터 스트림은 해당 큐 Q(Rm,Ln)에 저장된다. 이 헤드 패킷은 스트림 큐(110,120)내에, 현재 제일 처음 위치에 저장된다. 분류기(130)에서, 그 분류를 위한 데이터 길이는 그 자체의 길이보다 큰 길이 중에 가장 가까운 길이로 선택된다. 가장 높은 등급보다 큰 길이는 가장 높은 등급으로 분류된다. 데이터 큐내의 데이터 스트림은 F1,F2,.. , Ftail, 로 표현되고, I번째 데이터 스트림내의 패킷은 Pi1,Pi2,...Pi,tail 로 표현된다.For a given data rate (R = Rm) and head packet length (L, Ln-1 < L < = Ln), each data stream is stored in the corresponding queue Q (Rm, Ln). This head packet is stored in the stream queues 110 and 120 at the first position at present. In classifier 130, the data length for the classification is selected to be the closest of the lengths greater than its length. Lengths greater than the highest grade are classified as the highest grade. The data streams in the data queue are represented by F1, F2, ..., F tail , and the packets in the I-th data stream are represented by Pi1, Pi2, ... Pi , tail .

데이터 스트림의 '첫 번째 패킷'은 시스템의 초기에 또는 소정의 시간에 시스템이 멈춘후 재개시될 때 처리되는 패킷에 해당한다. 새로운 패킷임을 입증하는 방법은, 그 패킷의 데이터 스트림내에 스케줄링을 기다리는 다른 패킷이 없을 때 그 패킷을 첫 번째 패킷으로 간주한다. 그 패킷의 데이터 스트림내에서 스케줄링을 기다리는 패킷이 있는 경우에는, 이러한 패킷은 그 데이터 스트림의 '후속 패킷'으로 불리운다. 첫 번째 패킷의 가상 개시 서비스 시간의 카운트 및 그 데이터 스트림의 후속 패킷의 카운트는 일치하지 않기 때문에, 그 데이터 스트림의 첫 번째 패킷은 개개별로 처리되어야 한다. 그러므로, 도 1에서와 같이, 데이터 큐를 제 1 스트림 큐 (110) 및 제 2 스트림 큐 (120) 의 두 부분으로 분할하여 저장한다. 제 1 스트림 큐 (110) 는 데이터 스트림의 첫 번째 패킷의 처리를 담당하고, 제 2 스트림 큐는 그 데이터 스트림의 후속 패킷의 처리를 담당한다. 따라서 제 1 및 제 2 스트림 큐(110,120)는 총 2*M*N 개의 큐를 필요로한다. 스케쥴러 (140) 는 SEFF 정책에 따라 제 1 및 제 2 스트림 큐로부터 소정의 시간에 패킷들을 선택하여 다음 노드로 전송한다.The 'first packet' of a data stream corresponds to a packet that is processed at the beginning of the system or when it is restarted after the system stops at a predetermined time. The method of proving a new packet considers the packet as the first packet when no other packet is waiting for scheduling in the packet's data stream. If there is a packet waiting for scheduling in the data stream of the packet, such a packet is called a 'following packet' of the data stream. Since the count of the virtual start service time of the first packet and the count of subsequent packets of the data stream do not match, the first packet of the data stream must be processed individually. Therefore, as shown in FIG. 1, the data queue is divided into two parts, the first stream queue 110 and the second stream queue 120, and stored. The first stream queue 110 is responsible for the processing of the first packet of the data stream, and the second stream queue is responsible for the processing of subsequent packets of the data stream. Thus, the first and second stream queues 110 and 120 require a total of 2 * M * N queues. The scheduler 140 selects packets at a predetermined time from the first and second stream queues according to the SEFF policy and transmits them to the next node.

도 2는 제 1 및 제 2 스트림 큐의 내부 구성을 나타내는 도면이다.2 is a diagram illustrating an internal configuration of first and second stream queues.

분류기(130)는 스케줄러(100)로 인입하는 스트림(132)를 속도 및 패킷 길이에 따라 제 1 스트림 큐(110) 및 제 2 스트림 큐(120)의 어느 큐에 패킷을 저장할 것인지를 결정한다. 이 때 만약 그 패킷이 첫 번째 패킷(112)이라면, 제 1 스트림 큐(110)내의 소정의 큐 Q1(R1,L1)에 저장하고, 만약 그 패킷이 후속 패킷(122)이라면, 제 2 스트림 큐(120)내의 소정의 큐 Q2(R1,L1)에 저장한다. 큐 Q1(R1,L1) 및 큐 Q2(R1,L1)에 저장되는 패킷(112,122)는 서로 동일한 패킷 길이 및 스트림 속도를 가진다.The classifier 130 determines which streams of the first stream queue 110 and the second stream queue 120 store packets according to the speed and the packet length of the stream 132 that enters the scheduler 100. At this time, if the packet is the first packet 112, it is stored in the predetermined queue Q1 (R1, L1) in the first stream queue 110, and if the packet is a subsequent packet 122, the second stream queue. The data is stored in the predetermined queue Q2 (R1, L1) in 120. Packets 112 and 122 stored in queue Q1 (R1, L1) and queue Q2 (R1, L1) have the same packet length and stream rate.

도 3은 본 발명의 일 실시예에 의한 스케줄링 방법을 나타내는 시간흐름도이다.3 is a time flow diagram illustrating a scheduling method according to an embodiment of the present invention.

단계 310에서, 스케줄러(100)를 초기화하고, 스케줄러(100)의 가상 시간의 초기값을 예를 들면 0 으로 설정한다.In step 310, the scheduler 100 is initialized and the initial value of the virtual time of the scheduler 100 is set to 0, for example.

단계 320에서, 분류기(130)는, 소정의 패킷이 스케줄러(100)에 도달하면, 그 패킷이 데이터 스트림의 첫 번째 패킷인지 여부를 검사한다. In step 320, the classifier 130 checks whether a packet is the first packet of the data stream when the predetermined packet reaches the scheduler 100.

단계 330에서, 만약 첫 번째 패킷이라면, 그 패킷을 그 패킷의 데이터 속도 및/또는 길이에 따라 제 1 스트림 큐 Q1(Rm,Ln)에 저장한다.In step 330, if it is the first packet, the packet is stored in the first stream queue Q1 (Rm, Ln) according to the data rate and / or length of the packet.

단계 340에서, 그 후 이하 수학식 2에 따라 가상 개시 서비스 시간을 카운트한다. 이 시간은 해당 데이터 스트림의 가상 개시 서비스 시간이다. In step 340, the virtual start service time is then counted according to Equation 2 below. This time is the virtual initiation service time of the data stream.

[수학식 2][Equation 2]

Figure 112004011809153-pat00006
Figure 112004011809153-pat00006

만약 단계 320에서, 인입한 패킷이 해당 스트림의 첫 번째 패킷이 아니라고 판단되었다면, 단계 332에서, 그 패킷을 제 2 스트림 큐(120)에 바로 저장하고, 그 후 단계 334에서, 이하 수학식 3 에 따라 가상 개시 서비스 시간을 카운트한다. If it is determined in step 320 that the incoming packet is not the first packet of the stream, then in step 332, the packet is stored directly in the second stream queue 120, and then in step 334, Accordingly, the virtual start service time is counted.                     

[수학식 3]&Quot; (3) &quot;

Figure 112004011809153-pat00007
Figure 112004011809153-pat00007

단계 350에서, SEFF 선택부(140)는 제 1 및 제 2 스트림 큐내의 모든 큐에 있는 첫 번째 스트림의 헤드 패킷에 대한 가상 개시 서비스 시간을 스캔한다. 이 때 모든 큐라는 것은 M*N 개의 제 1 스트림 큐 Q1(R,L) 및 M*N 개의 제 2 스트림 큐 Q2(R,L)을 의미한다. In step 350, the SEFF selector 140 scans the virtual start service time for the head packet of the first stream in all queues in the first and second stream queues. In this case, all queues mean M * N first stream queues Q1 (R, L) and M * N second stream queues Q2 (R, L).

그 후, 단계 360에서, SEFF 선택부(140)는 패킷의 가상 개시 서비스 시간이 시스템의 가상 시간보다 작은 패킷 즉 리걸 패킷(legal packet)을 검출한다.Then, in step 360, the SEFF selector 140 detects a packet, that is, a legal packet, whose virtual start service time is smaller than the virtual time of the system.

단계 370에서, 이하 수학식 4에 따라 이 리걸 패킷의 가상 종료 서비스 시간을 카운트한다. In step 370, the virtual termination service time of the legal packet is counted according to Equation 4 below.

[수학식 4]&Quot; (4) &quot;

Figure 112004011809153-pat00008
Figure 112004011809153-pat00008

그 후 단계 380에서, SEFF 선택부(140)는 추출된 리걸 패킷을 최소 가상 종료 서비스 시간에 다음 노드로 전송한다. 위의 모든 단계는 모든 패킷이 전송될 때까지 반복된다.Thereafter, in step 380, the SEFF selector 140 transmits the extracted legal packet to the next node at the minimum virtual termination service time. All of the above steps are repeated until all packets have been sent.

도 4는 이전 패킷의 전송과 다음 패킷의 전송사이에서 시스템의 가상 서비스 시간이 갱신되는 과정을 나타내는 시간흐름도이다.4 is a time flow diagram illustrating a process of updating a virtual service time of a system between transmission of a previous packet and transmission of a next packet.

제 1 스트림 큐 Q1(Rm.Ln) 또는 제 2 스트림 큐 Q2(Rm.Ln)의 첫 번째 스트림의 헤드 패킷을 선택하고 전송하는 경우에 있어서, 위 두 가지 경우 모두 이하의 절차가 공통적으로 사용된다.In the case of selecting and transmitting the head packet of the first stream of the first stream queue Q1 (Rm.Ln) or the second stream queue Q2 (Rm.Ln), the following procedures are commonly used in both cases. .

먼저, 단계 410에서, SEFF 선택부(140)는 데이터 스트림 F 로부터 패킷을 추출하고 전송한다. First, in step 410, the SEFF selector 140 extracts the packet from the data stream F and transmits it.

그러면, 단계 420에서, 헤드 패킷이 선택되어 전송된 특정 제 1 스트림 큐 Q1(Rx,Lx) 또는 제 2 스트림 큐 Q2(Rx,Ly)에서, 새로운 헤드 패킷이 발생한다. 또한 데이터 스트림 F 에 대한 다음 패킷이 새로운 헤드 패킷의 데이터 속도 및 길이에 따라 제 2 스트림 큐 Q2(Rx.Ly)에 저장된다. Then, in step 420, a new head packet is generated in a particular first stream queue Q1 (Rx, Lx) or second stream queue Q2 (Rx, Ly) to which the head packet is selected and transmitted. The next packet for the data stream F is also stored in the second stream queue Q2 (Rx.Ly) according to the data rate and length of the new head packet.

그 후 단계 430에서, 수학식 3에 따라, 데이터 스트림 F의 가상 개시 서비스 시간이 갱신된다. 이 시간은 데이터 스트림 F의 새로운 해드 패킷에 대한 가상 개시 서비스 시간이기도 하다. Then, in step 430, the virtual start service time of the data stream F is updated according to equation (3). This time is also the virtual initiation service time for the new head packet of data stream F.

그 후 단계 440 및 450 에서, 수학식 1 에 따라 시스템 가상 시간이 갱신된다.Thereafter, in steps 440 and 450, the system virtual time is updated according to equation (1).

그 후 단계 460에서, 다음 패킷에 대한 추출 및 전송이 수행되고, 그 후에는 다시 위의 단계들에 의한 서비스 시간 갱신이 수행된다.Then, in step 460, extraction and transmission for the next packet is performed, after which the service time update by the above steps is performed again.

본 발명의 일 실시예에서, 본 발명의 방법에 사용되는 스케줄링 노드는 라우터이다.In one embodiment of the invention, the scheduling node used in the method of the invention is a router.

도 5는 본 발명의 다른 실시예에 의한 제 1 및 제 2 스트림 큐의 구조를 나타내는 도면이다.5 is a view showing the structure of the first and second stream queues according to another embodiment of the present invention.

도 5에서, 제 2 스트림 큐(520)의 구조는 도 2에서와 동일지만, 제 1 스트림 큐(510)은 도 2와 상이하다. 이는 제 1 스트림 큐의 구조를 간략화함으로써 큐의 양과 하드웨어 자원을 절약하기 위함이다. 도 5를 참조하면, 제 1 스트림 큐 (510) 는 길이 또는 속도 중 어느 하나에 따라 분류되며, 이는 Q1(Ln) 또는 Q1(Rm)으로 표시된다. 따라서 제 1 스트림 큐(510)내의 큐는, M*N+N 또는 M*N+M 개의 큐가 필요하다. In FIG. 5, the structure of the second stream queue 520 is the same as in FIG. 2, but the first stream queue 510 is different from FIG. 2. This is to save the queue amount and hardware resources by simplifying the structure of the first stream queue. Referring to FIG. 5, the first stream queue 510 is classified according to either length or speed, which is represented by Q1 (Ln) or Q1 (Rm). Therefore, the queue in the first stream queue 510 needs M * N + N or M * N + M queues.

이하에서, 도 5는 길이에 의한 분류를 이용한 큐를 사용하여 스케줄링하는 방법을 설명한다.Hereinafter, FIG. 5 illustrates a scheduling method using a queue using classification by length.

(1) 스케줄 노드를 초기화하고, 예를 들면 0과 같이 시스템의 가상 시간의 초기값을 설정한다.(1) The schedule node is initialized and the initial value of the virtual time of the system is set, for example, 0.

(2) 소정의 패킷이 스케줄 노드에 도착하면, 그 패킷이 그 데이터 스트림의 첫 번째 패킷인지를 검사한다. 만약 그렇다면, 그 패킷을 그 속도에 대응하는 제 1 스트림 큐 Q1(Ln)의 말단에 저장하고, 가상 개시 서비스 시간을 수학식 2에 따라 카운트한다. 이 시간은 해당 데이터 스트림의 가상 개시 서비스 시간이다. 만약 첫 번째 패킷이 아니라면, 그 패킷은 해당 데이터 스트림 말단에 직접 저장된다.(2) When a predetermined packet arrives at the schedule node, it is checked whether the packet is the first packet of the data stream. If so, the packet is stored at the end of the first stream queue Q1 (Ln) corresponding to that rate, and the virtual start service time is counted according to equation (2). This time is the virtual initiation service time of the data stream. If it is not the first packet, the packet is stored directly at the end of the data stream.

(3) 스케줄링에서, 스케줄러는 모든 큐내의 첫 번째 스트림의 헤드 패킷에 대한 가상 개시 서비스 시간을 스캔한다. 여기서 모든 큐라함은 N 개의 제 1 스트림 큐 Q1(L) 및 M*N 개의 제 2 스트림 큐 Q2(R,L)를 말한다. 그 후 가상 개시 서비스 시간이 시스템 가상 시간보다 작은 리걸 패킷을 추출하고, 수학식 4에 따라 이러한 리걸 패킷의 가상 종료 서비스 시간을 카운트한다. 그 후 해당 패킷을 최소 가상 종료 서비스 시간에 전송한다.(3) In scheduling, the scheduler scans the virtual initiation service time for the head packet of the first stream in every queue. Here, all the queues refer to N first stream queues Q1 (L) and M * N second stream queues Q2 (R, L). Then, a legal packet having a virtual initiation service time smaller than the system virtual time is extracted, and the virtual termination service time of the legal packet is counted according to Equation (4). The packet is then sent at the minimum virtual termination service time.

(4) 제 1 스트림 큐 Q1(Ln) 또는 제 2 스트림 큐 Q2(Rm.Ln)의 제 1 스트림의 헤드 패킷을 선택하고 전송하는 경우에 있어서, 위 두 가지 경우 모두 이하의 절차가 사용된다. 우선, 데이터 스트림 F로부터 패킷을 추출하고 전송한다. 그 후 데이터 스트림 F 는 그 패킷을 새로운 헤드 패킷의 데이터 속도 및 길이에 따라 제 2 스트림 큐 Q2(Rx.Ly)의 말단에 저장한다. 그 후 수학식 3에 따라, 데이터 스트림 F의 가상 개시 서비스 시간을 갱신하는데, 이 시간은 데이터 스트림 F의 새로운 해드 패킷의 가상 개시 서비스 시간이기도 하다. 그 후 수학식 1에 따라 시스템 가상 시간을 갱신한다.(4) In the case of selecting and transmitting the head packet of the first stream of the first stream queue Q1 (Ln) or the second stream queue Q2 (Rm.Ln), the following procedure is used in both of the above cases. First, a packet is extracted from the data stream F and transmitted. The data stream F then stores the packet at the end of the second stream queue Q2 (Rx.Ly) according to the data rate and length of the new head packet. Then, according to equation (3), the virtual start service time of data stream F is updated, which is also the virtual start service time of the new head packet of data stream F. Thereafter, the system virtual time is updated according to Equation 1.

(5) 전체 스케줄링이 종료될 때 까지 (2) 내지 (4) 과정을 반복한다.(5) Steps (2) to (4) are repeated until the entire scheduling is completed.

도 6은 본 발명의 시뮬레이팅에 사용된 네트워크 토폴로지를 나타내는 도면이다.6 is a diagram illustrating a network topology used for simulating the present invention.

도 6에서, 각 입력 체인(chain)의 대역폭은 10M이다. 모든 데이터 스트림은 스케줄링 노드에 의해 스케줄되어 출력 체인으로 출력된다. 도 6의 스케줄 노드의 속도 및 길이는 도 5의 간략화된 방법을 사용하였으며, 5개의 등급으로 분류되었다.In Figure 6, the bandwidth of each input chain is 10M. All data streams are scheduled by the scheduling node and output to the output chain. The speed and length of the schedule node of FIG. 6 were used in the simplified method of FIG. 5 and classified into five classes.

본 시뮬에이션에서 사용된 데이터 스트림의 5개의 속도 등급은 다음과 같다:The five speed classes of the data stream used in this simulation are as follows:

0.1Mbps, 0.3Mbps, 1Mbps, 2Mbps, 5Mbps0.1 Mbps, 0.3 Mbps, 1 Mbps, 2 Mbps, 5 Mbps

본 시뮬에이션에서 사용된 데이터 스트림의 5개의 길이 등급은 다음과 같다.The five length classes of the data stream used in this simulation are as follows.

200, 400, 800, 1000, 1600bytes200, 400, 800, 1000, 1600bytes

본 발명에 적용가능한 데이터 스트림의 전송 방식은 다음과 같으며, 본 시뮬레이션에서는 ON/OFF 방식을 사용하였다. A data stream transmission method applicable to the present invention is as follows. In this simulation, an ON / OFF method is used.                     

- CBR(Constant Bot Rate) 방식: 일정한 속도를 가진 데이터 스트림을 사용한다.-Constant Bot Rate (CBR) method: Uses a data stream with a constant rate.

- On/Off 방식: 간헐적으로 전송되는 데이터 스트림을 사용한다.-On / Off method: Use the data stream transmitted intermittently.

- 동일한 패킷 길이: 데이터 스트림내의 패킷의 길이가 모두 동일한 데이터 스트림을 사용한다.Same packet length: All data packets in the data stream use the same data stream.

- 평균 분포(Average Distribution) 방식: 데이터 스트림내의 패킷의 길이는 소정의 범위내에서 고르게(evenly) 분포한다.Average Distribution scheme: The length of packets in the data stream is evenly distributed within a predetermined range.

- 일반 분포(Normal Distribution) : 데이터 스트림내의 패킷의 길이는 소정의 중심값을 기준으로 소정의 범위에 일반적으로(normally) 분포한다.Normal Distribution: The length of a packet in a data stream is normally distributed in a predetermined range based on a predetermined center value.

도 7내지 도 14는 본 발명의 스케줄링에 의한 시뮬레이션의 결과를 나타내는 도면이다. 본 발명에 의한 패킷 스케줄링 방법의 성능을 입증하기 위해, 네트워크 시뮬레이터를 이용하여 시뮬레이션되었고 이하의 성능 인덱스가 테스트되었다.7 to 14 are diagrams showing the results of simulation by the scheduling of the present invention. To demonstrate the performance of the packet scheduling method according to the present invention, it was simulated using a network simulator and the following performance indices were tested.

* 대역폭 : 각 데이터 스트림에 의해 수신된 실제 대역폭(Mbps)Bandwidth: The actual bandwidth (Mbps) received by each data stream.

* 대역폭 지터 : 인접한 기간(period)에서의 각 데이터 스트림에 의해 수신된 대역폭의 평균 실제 차이값(Mbps)* Bandwidth jitter: the average actual difference in Mbps of the bandwidth received by each data stream in an adjacent period

* 지연(delay) : 각 데이터 스트림의 패킷의 출발 및 도착 시간사이의 차이값(ms)Delay: the difference between the departure and arrival times of packets in each data stream (ms)

* 지연 지터 : 각 데이터 스트림의 이전 패킷 과 이후 패킷 사이의 평균 딜레이 차이값(ms)Delay jitter: Average delay difference (ms) between the previous and subsequent packets of each data stream.

결과는 상세 성능 테스트 방법의 일부를 참조한다. 전체적으로, 이러한 방법 은 간단하고 효율적이며, 하드웨어 구현이 용이하다. 또한 본 발명은 WF2Q+ 알고리즘의 성능을 보장한다.The results refer to some of the detailed performance test methods. Overall, this method is simple, efficient, and easy to implement hardware. The present invention also ensures the performance of the WF2Q + algorithm.

본 시뮬레이션에 사용된 파라미터는 표 2와 같다.The parameters used in this simulation are shown in Table 2.

[표 2]TABLE 2

데이터 스트림Data stream 체인 대역폭Chain bandwidth 수행된 대역폭Bandwidth performed 전송 방식 및 속도Transmission method and speed 패킷 길이Packet length 1One 10 Mbps10 Mbps 5.0 Mbps5.0 Mbps 50%50% On/OffOn / Off 5.0 Mbps5.0 Mbps 정상 분포Normal distribution 22 10 Mbps10 Mbps 2.0 Mbps2.0 Mbps 20%20% On/OffOn / Off 2.0 Mbps2.0 Mbps 정상 분포Normal distribution 33 10 Mbps10 Mbps 1.0 Mbps1.0 Mbps 10%10% On/OffOn / Off 1.0 Mbps1.0 Mbps 정상 분포Normal distribution 44 10 Mbps10 Mbps 1.0 Mbps1.0 Mbps 10%10% On/OffOn / Off 1.0 Mbps1.0 Mbps 정상 분포Normal distribution 55 10 Mbps10 Mbps 0.3 Mbps0.3 Mbps 3%3% On/OffOn / Off 0.3 Mbps0.3 Mbps 정상 분포Normal distribution 66 10 Mbps10 Mbps 0.3 Mbps0.3 Mbps 3%3% On/OffOn / Off 0.3 Mbps0.3 Mbps 정상 분포Normal distribution 77 10 Mbps10 Mbps 0.1 Mbps0.1 Mbps 1%One% On/OffOn / Off 0.1 Mbps0.1 Mbps 정상 분포Normal distribution 88 10 Mbps10 Mbps 0.1 Mbps0.1 Mbps 1%One% On/OffOn / Off 0.1 Mbps0.1 Mbps 정상 분포Normal distribution 99 10 Mbps10 Mbps 0.1 Mbps0.1 Mbps 1%One% On/OffOn / Off 0.1 Mbps0.1 Mbps 정상 분포Normal distribution 1010 10 Mbps10 Mbps 0.1 Mbps0.1 Mbps 1%One% On/OffOn / Off 0.1 Mbps0.1 Mbps 정상 분포Normal distribution 스케쥴링 출력Scheduling output 10Mbps10 Mbps

On/Off 모델이 전술한 구성의 데이터 스트림 각각에 사용되었다. 데이터 스트림내의 패킷은 정상 분포(평균값은 1000비트이고, 편차는 400비트)이다. 본 테스트에서, 대역폭, 대역폭 지터, 지연, 지연 지터의 성능 지수(Performance Index)를 도 2 및 도 5에 나타난 2개의 방법에 대하여 측정하였다. On / Off models were used for each of the data streams of the above configuration. Packets in the data stream have a normal distribution (average is 1000 bits, deviation is 400 bits). In this test, the Performance Index of bandwidth, bandwidth jitter, delay, delay jitter was measured for the two methods shown in FIGS. 2 and 5.

도 7 내지 도 10은 도 2 의 방법에 따른 대역폭, 대역폭 지터, 지연 및 지연 지터를 나타내고, 도 11 내지 도 14는 도 5 의 방법에 따른 대역폭, 대역폭 지터, 지연 및 지연 지터를 나타낸다.7 to 10 illustrate bandwidth, bandwidth jitter, delay and delay jitter according to the method of FIG. 2, and FIGS. 11 to 14 illustrate bandwidth, bandwidth jitter, delay and delay jitter according to the method of FIG. 5.

도 7 내지 14의 시뮬레이션 결과에 따르면, 본 발명에 따른 2가지 스케쥴링 방법은 위의 4가지 성능 지수를 모두 보장됨을 알 수 있다. 따라서 고객의 서비스 품질(Quality of Service)는 보장될 수 있다. According to the simulation results of FIGS. 7 to 14, it can be seen that the two scheduling methods according to the present invention guarantee all four performance indices. Therefore, the quality of service of the customer can be guaranteed.                     

NS(Network Simulator)의 시뮬레이션에 기초하여, 스케줄링 칩으로는 자일링스사의 FPGA(Field Programmable Gate Array)가 사용되었다. 이 칩은 최대 128K의 데이터 스트림을 지원하며, 5개의 속도 및 길이 등급을 지원한다. 또한 이 칩은 모든 속도 및 길이 등급을 다양하게 구성할 수 있다. 실제의 프로세싱 테스트에 따라 이 칩은 각 데이터 스트림의 요구된 대역폭, 딜레이 및 균형성(fairness)을 모두 보장할 수 있었다.Based on the simulation of the network simulator (NS), Xilinx Field Programmable Gate Array (FPGA) was used as the scheduling chip. The chip supports data streams up to 128K and five speed and length classes. The chip is also available in a variety of speed and length grades. Based on actual processing tests, the chip was able to guarantee all the required bandwidth, delay and fairness of each data stream.

한편, 본 발명에 따른 스케줄링 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 패킷의 스케줄링을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.On the other hand, the scheduling method according to the present invention can be created by a computer program. The codes and code segments that make up the program can be easily deduced by a computer programmer in the field. The program is also stored in a computer readable media, which is read and executed by a computer to implement scheduling of packets. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

전술한 바와 같이 본 발명에 의하면, 스트림의 수가 증가하더라도 간단한 하드웨어 구조를 이용한 패킷 스케줄링이 가능하다. As described above, according to the present invention, even if the number of streams increases, packet scheduling using a simple hardware structure is possible.

Claims (20)

패킷 스케줄링 방법에 있어서,In the packet scheduling method, a)스케줄러에 인입되는 스트림을 속도, 패킷 길이, 또는 속도 및 패킷 길이에 기초하여 분류하는 단계;a) classifying streams entering the scheduler based on rate, packet length, or rate and packet length; b)상기 분류된 패킷에 대하여, 상기 스트림의 패킷이 첫 번째 패킷인 경우 제 1 스트림 큐에 저장하고, 후속 패킷인 경우 제 2 스트림 큐에 저장하는 단계;b) for the classified packet, storing in the first stream queue if the packet of the stream is the first packet and storing in the second stream queue if it is a subsequent packet; c)상기 제 1 스트림 큐에 저장한 상기 패킷의 가상 개시 서비스 시간을 웨이트 공평 큐(Weighted fairness Queuing)방법에 따라 카운트하는 단계; 및 c) counting a virtual start service time of the packet stored in the first stream queue according to a weighted fairness queuing method; And d)상기 제 2 스트림 큐에 저장한 상기 패킷의 가상 개시 서비스 시간을 이전 패킷의 가상 서비스 종료 시간으로 카운트하는 단계;d) counting a virtual start service time of the packet stored in the second stream queue as a virtual service end time of a previous packet; 를 포함하는 것을 특징으로 하는 방법.Method comprising a. 제 1 항에 있어서, 상기 c)단계는, WF2Q(Worst-case Fair Weighted Fair Queueing) 스케줄링 알고리즘 또는 WF2Q+(Worst-case Fair Weighted Fair Queueing+) 스케줄링 알고리즘에 의해 수행되는 것을 특징으로 하는 방법.The method of claim 1, characterized in that step c) is carried out by WF 2 Q (Worst-case Fair Weighted Fair Queueing) scheduling algorithm or WF 2 Q + (Worst-case Fair Weighted Fair Queueing +) Scheduling Algorithm . 제 2 항에 있어서, 상기 c)단계는, 이하 수학식,The method of claim 2, wherein c) is represented by the following equation,
Figure 112004011809153-pat00009
Figure 112004011809153-pat00009
에 의해 수행되고, 여기서 Si k 는 I번째 스트림의 k번째 패킷의 가상 개시 서비스 시간, V(t)는 시스템의 가상 시간 함수, ai k 는 I 번째 스트림의 k번째 패킷의 도착 시간, Fi k-1 는 I번째 스트림의 k-1번째 패킷의 가상 종료 서비스 시간, Qi 는 I번째 스트림의 해당 큐에 들어 있는 이전 패킷의 양을 나타내는 것을 특징으로 하는 방법.S i k is the virtual initiation service time of the k th packet of the I th stream, V (t) is the virtual time function of the system, a i k is the arrival time of the k th packet of the I th stream, F i k-1 is the virtual termination service time of the k-1th packet of the Ith stream, and Qi is the amount of previous packets contained in the corresponding queue of the Ith stream.
제 1 항에 있어서, 상기 d)단계는 스몰리스트 일레지블 가상 종료 시간 우선 정책(Smallest Eligible virtual Finish time First, SEFF)에 의해 수행되는 것을 특징으로 하는 방법.2. The method of claim 1, wherein step d) is performed by a Smallest Eligible virtual Finish time First (SEFF). 제 1 항에 있어서, e)상기 제 1 스트림 큐 및 상기 제 2 스트림 큐에 저장된 패킷의 가상 개시 서비스 시간을 스캔함으로써 상기 가상 개시 서비스 시간이 시스템의 가상 서비스 시간보다 작은 리걸 패킷을 검출하는 단계를 더 포함하는 것을 특징으로 하는 방법.The method of claim 1, further comprising: e) scanning a virtual start service time of a packet stored in the first stream queue and the second stream queue to detect a legal packet whose virtual start service time is less than a virtual service time of a system. It further comprises a method. 제 5 항에 있어서, 상기 e)단계는, The method of claim 5, wherein step e) e1) 상기 리걸 패킷의 가상 종료 서비스 시간을 이하 수학식,e1) the virtual termination service time of the legal packet is represented by the following equation,
Figure 112004011809153-pat00010
Figure 112004011809153-pat00010
에 따라 카운트 하는 단계를 포함하고, 여기서 Fi k 는 I번째 스트림의 k번째 패킷의 가상 종료 서비스 시간, Si k 는 I번째 스트림의 k번째 패킷의 가상 개시 서비스 시간, Li k 는 I 번째 스트림의 k번째 패킷의 길이, Ri(t)는 I번째 스트림의 속도를 나타내는 것을 특징으로 하는 방법.Counting according to the equation, wherein F i k is the virtual end service time of the k th packet of the I th stream, S i k is the virtual start service time of the k th packet of the I th stream, and L i k is the I th The length of the k th packet of the stream, Ri (t), represents the speed of the I th stream.
제 5 항에 있어서, f) 상기 검출된 리걸 패킷을 다음 노드로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.6. The method of claim 5, comprising: f) sending the detected legal packet to a next node. 제 1 항에 있어서, 상기 b)단계의 제 1 스트림 큐는,The method of claim 1, wherein the first stream queue of step b) is 상기 스트림의 속도에 따라 분류되는 것을 특징으로 하는 방법.And classify according to the speed of the stream. 제 1 항에 있어서, 상기 b)단계의 제 1 스트림 큐는,The method of claim 1, wherein the first stream queue of step b) is 상기 스트림의 패킷 길이에 따라 분류되는 것을 특징으로 하는 방법.And classify according to the packet length of the stream. 제 1 항에 있어서, 상기 b)단계의 제 1 스트림 큐는,The method of claim 1, wherein the first stream queue of step b) is 상기 스트림의 속도 및 패킷 길이에 따라 분류되는 것을 특징으로 하는 방법.And classify according to the speed and packet length of the stream. 웨이티드 공평 큐 방법을 이용한 패킷 스케줄링 장치에 있어서,A packet scheduling apparatus using a weighted fair queue method, a)스케줄러에 인입되는 스트림을 속도, 패킷 길이, 또는 속도 및 패킷 길이에 기초하여 분류하는 분류기(classifier);a) a classifier that classifies streams entering the scheduler based on rate, packet length, or rate and packet length; b)상기 분류된 패킷중 첫 번째 패킷을 저장하는 제 1 스트림 큐;b) a first stream queue storing a first packet of the classified packets; c)상기 분류된 패킷중 후속 패킷을 저장하는 제 2 스트림 큐; 및c) a second stream queue for storing subsequent packets of the classified packets; And d)상기 제 1 스트림 큐 및 상기 제 2 스트림 큐에 저장된 모든 패킷에 대하여 SEFF 정책에 따라 리걸 패킷을 검출하는 SEFF 선택부를 포함하는 것을 특징으로 하는 장치.d) a SEFF selector for detecting a legal packet according to a SEFF policy for all packets stored in the first stream queue and the second stream queue. 제 11 항에 있어서, 상기 SEFF 선택부는, The method of claim 11, wherein the SEFF selector, 상기 제 1 스트림 큐에 저장한 상기 패킷의 가상 개시 서비스 시간을 웨이트 공평 큐(Weighted fairness Queuing) 방법에 따라 카운트하고,A virtual start service time of the packet stored in the first stream queue is counted according to a weighted fairness queuing method, 상기 제 2 스트림 큐에 저장한 상기 패킷의 가상 개시 서비스 시간을 이전 패킷의 가상 서비스 종료 시간으로 카운트하는 것을 특징으로 하는 장치.And count the virtual initiation service time of the packet stored in the second stream queue as the virtual service end time of the previous packet. 제 12 항에 있어서, 상기 스케줄러의 가상 시간 함수는 이하 수학식,The virtual time function of claim 12, wherein:
Figure 112004011809153-pat00011
Figure 112004011809153-pat00011
로 나타내며, 여기서, V(t)는 스케줄러(100)의 가상 시간 함수, τ 는 시스템의 가상 시간 갱신 간격, B(t)는 시간 t에서 스케줄러(100)에 백로그된 모든 스트림 세트, Hi(t)는 데이터 스트림 i 의 헤드 패킷의 일련 번호, Si k 는 k번째 패킷의 가상 개시 시간을 나타내는 것을 특징으로 하는 장치.Where V (t) is the virtual time function of the scheduler 100, τ is the virtual time update interval of the system, B (t) is the set of all streams backlogged to the scheduler 100 at time t, Hi ( t) is the serial number of the head packet of data stream i, S i k is the virtual start time of the k th packet.
제 12 항에 있어서, 상기 SEFF 선택부는, 이하 수학식,The method of claim 12, wherein the SEFF selector is,
Figure 112004011809153-pat00012
Figure 112004011809153-pat00012
에 의해 상기 제 1 스트림 큐의 가상 개시 서비스 시간을 카운트하고, 여기서 Si k 는 I번째 스트림의 k번째 패킷의 가상 개시 서비스 시간, V(t)는 시스템의 가상 시간 함수, ai k 는 I 번째 스트림의 k번째 패킷의 도착 시간, Fi k-1 는 I번째 스트림의 k-1번째 패킷의 가상 종료 서비스 시간, Qi 는 I번째 스트림의 해당 큐에 들어 있는 이전 패킷의 양을 나타내는 것을 특징으로 하는 장치.Counts the virtual initiation service time of the first stream queue, where S i k is the virtual initiation service time of the k th packet of the I th stream, V (t) is the system's virtual time function, and a i k is I The arrival time of the k-th packet of the first stream, F i k-1 is the virtual termination service time of the k-1th packet of the I-th stream, and Qi represents the amount of previous packets in the corresponding queue of the I-th stream. Device.
제 12 항에 있어서, 상기 SEFF 선택부는, 이하 수학식,The method of claim 12, wherein the SEFF selector is,
Figure 112004011809153-pat00013
Figure 112004011809153-pat00013
에 의해 상기 제 2 스트림 큐의 가상 개시 서비스 시간을 카운트하며, 여기서 Si k 는 I번째 스트림의 k번째 패킷의 가상 개시 서비스 시간, Fi k-1 는 I번째 스트 림의 k-1번째 패킷의 가상 종료 서비스 시간, Qi 는 I번째 스트림의 해당 큐에 들어 있는 이전 패킷의 양을 나타내는 것을 특징으로 하는 장치.Counts the virtual initiation service time of the second stream queue, where S i k is the virtual initiation service time of the k th packet of the I th stream, and F i k-1 is the k-1 th packet of the I th stream Wherein the virtual termination service time of &lt; RTI ID = 0.0 &gt; Qi &lt; / RTI &gt; represents the amount of previous packets contained in the corresponding queue of the I-th stream.
제 12 항에 있어서, 상기 SEFF 선택부는, 상기 제 1 스트림 큐 및 상기 제 2 스트림 큐에 저장된 패킷의 가상 개시 서비스 시간을 스캔함으로써 상기 가상 개시 서비스 시간이 시스템의 가상 서비스 시간보다 작은 리걸 패킷을 검출하는 것을 특징으로 하는 장치.The apparatus of claim 12, wherein the SEFF selector is configured to scan a virtual start service time of packets stored in the first stream queue and the second stream queue to detect a legal packet having a virtual start service time smaller than a virtual service time of a system. Device characterized in that. 제 16 항에 있어서, 상기 SEFF 선택부는, 이하 수학식,The method of claim 16, wherein the SEFF selector is,
Figure 112004011809153-pat00014
Figure 112004011809153-pat00014
에 따라 상기 리걸 패킷의 가상 종료 서비스 시간을 카운트하고, 여기서 Fi k 는 I번째 스트림의 k번째 패킷의 가상 종료 서비스 시간, Si k 는 I번째 스트림의 k번째 패킷의 가상 개시 서비스 시간, Li k 는 I 번째 스트림의 k번째 패킷의 길이, Ri(t)는 I번째 스트림의 속도를 나타내는 것을 특징으로 하는 장치.Count the virtual termination service time of the legal packet according to F i k , the virtual termination service time of the k-th packet of the I-th stream, S i k , the virtual initiation service time of the k-th packet of the I-th stream, and L i k is the length of the k th packet of the I th stream, and Ri (t) is the speed of the I th stream.
제 11 항에 있어서, 상기 제 1 스트림 큐는,The method of claim 11, wherein the first stream queue, 상기 스트림의 속도에 따라 분류되는 것을 특징으로 하는 장치.And classify according to the speed of the stream. 제 11 항에 있어서, 상기 제 1 스트림 큐는,The method of claim 11, wherein the first stream queue, 상기 스트림의 패킷 길이에 따라 분류되는 것을 특징으로 하는 장치.And classify according to the packet length of the stream. 제 11 항에 있어서, 상기 제 1 스트림 큐는,The method of claim 11, wherein the first stream queue, 상기 스트림의 속도 및 패킷 길이에 따라 분류되는 것을 특징으로 하는 장치.And classify according to the speed and packet length of the stream.
KR20040019627A 2003-04-11 2004-03-23 Method and Apparatus for packet scheduling KR101037929B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/822,145 US20050147103A1 (en) 2003-04-11 2004-04-12 Packet scheduling method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN03118918.0 2003-04-11
CNB031189180A CN1206835C (en) 2003-04-11 2003-04-11 Scheduling method for data pocket

Publications (2)

Publication Number Publication Date
KR20040089475A KR20040089475A (en) 2004-10-21
KR101037929B1 true KR101037929B1 (en) 2011-05-31

Family

ID=28684369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20040019627A KR101037929B1 (en) 2003-04-11 2004-03-23 Method and Apparatus for packet scheduling

Country Status (2)

Country Link
KR (1) KR101037929B1 (en)
CN (1) CN1206835C (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331336C (en) * 2004-05-25 2007-08-08 华中科技大学 Rapid analyzing method for data pack
CN100418313C (en) * 2005-12-21 2008-09-10 中国科学院计算技术研究所 Band wide redistribution method for band width changing link layering sharing and management zone
CN101674482B (en) * 2009-09-25 2011-05-11 上海大学 Method for optimized dispatching of extension type video flow in partially observational Markovian decision process
CN105915425B (en) * 2016-06-16 2017-05-03 厦门理工学院 Vehicular CAN FD network-oriented signal grouping and packaging method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010010918A (en) * 1999-07-23 2001-02-15 안병엽 Rate proportional self-clocked fair queueing apparatus and method for high-speed packet-switched networks
US20030050954A1 (en) 1999-12-08 2003-03-13 Tayyar Haitham F. Weighted fair queuing scheduler

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010010918A (en) * 1999-07-23 2001-02-15 안병엽 Rate proportional self-clocked fair queueing apparatus and method for high-speed packet-switched networks
US20030050954A1 (en) 1999-12-08 2003-03-13 Tayyar Haitham F. Weighted fair queuing scheduler

Also Published As

Publication number Publication date
KR20040089475A (en) 2004-10-21
CN1450754A (en) 2003-10-22
CN1206835C (en) 2005-06-15

Similar Documents

Publication Publication Date Title
US7619969B2 (en) Hardware self-sorting scheduling queue
US20030103514A1 (en) Apparatus and method for packet scheduling using credit based round robin
Mazzini et al. A closed form solution of Bernoullian two-classes priority queue
CN110086728B (en) Method for sending message, first network equipment and computer readable storage medium
Cidon et al. On protective buffer policies
Zhou et al. Analysis and implementation of packet preemption for time sensitive networks
US7469203B2 (en) Wireless network hybrid simulation
CN101478456B (en) Fast forwarding service end-to-end time delay prediction method
KR101037929B1 (en) Method and Apparatus for packet scheduling
Lund et al. Fair prioritized scheduling in an input-buffered switch
CN111416779B (en) Internet service queue scheduling method based on time limit
Jin et al. Efficient gigabit ethernet switch models for large-scale simulation
Wang et al. Decision tree classification based mix-flows scheduling in optical switched DCNs
US20050147103A1 (en) Packet scheduling method and apparatus
CN114915597B (en) Deterministic resource scheduling method for time-sensitive network
CN114257554A (en) Scheduling method for improving TSN (traffic service network) BE (BE) stream bandwidth utilization rate
Wang et al. Quantitative study of differentiated service model using UltraSAN
CN102868577A (en) Weighted random early detection (WRED) automated testing method and device
Vila-Carbó et al. Analysis of switched Ethernet for real-time transmission
KR101093500B1 (en) Real Time Scheduling Apparatus and Method by Flow Reservation/Registration
Dube et al. Queueing and fluid analysis of partial message discarding policy
Rahouti et al. QoSP: A priority-based queueing mechanism in software-defined networking environments
Nino-Mora Marginal productivity index policies for scheduling multiclass delay-/loss-sensitive traffic with delayed state observation
Carmo et al. Modeling and evaluating the DQDB protocol with stochastic timed Petri nets
Koubaa (m, k)-WFQ: Integrating (m, k)-Firm Real-Time Constraints into Guaranteed-Rate 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
LAPS Lapse due to unpaid annual fee