KR101037929B1 - Method and Apparatus for packet scheduling - Google Patents
Method and Apparatus for packet scheduling Download PDFInfo
- 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
Links
Images
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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow 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
도 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
[수학식 1][Equation 1]
[수학식 2][Equation 2]
[수학식 3]&Quot; (3) "
[수학식 4]&Quot; (4) "
[표 1]TABLE 1
본 발명의 상세한 설명이 이하 관련 도면을 참조하여 설명된다.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
본 발명의 스케줄러에서 가상 시간 함수 V(t) 는 이하 수학식 1과 같이 정의된다.
In the scheduler of the present invention, the virtual time function V (t) is defined as in
[수학식 1][Equation 1]
여기서, V(t)는 스케줄러(100)의 가상 시간 함수, τ 는 시스템의 가상 시간 갱신 간격, B(t)는 시간 t에서 스케줄러(100)에 백로그된 모든 스트림 세트, Hi(t)는 데이터 스트림 i 의 헤드 패킷의 일련 번호, Si
k 는 k번째 패킷의 가상 개시 시간이다.Where V (t) is the virtual time function of the
분류기(130)는, 데이터 속도에 따라 여러 데이터 스트림을 분류한다. 분류 등급(quantification grade) M 은 R1,R2,..Rm 과 같이 순차적으로 부여된다. 마찬가지로, 길이에 따른 데이트 스트림은 분류 등급 N을 이용하여 L1,L2,...Ln 과 같이 순차적으로 분류된다. 상이한 데이터 스트림에 대하여, 길이 분류의 등급은 동일할 수도 있고 상이할 수 도 있다. R 과 L 의 조합을 통해서 여러 상이한 데이터 큐가 얻어지며, 이들 각각은 Q(Rm, Ln)과 같이 표현된다. 결국 M*N 개의 데이터 큐가 얻어지며 스케줄러(100)로 인입하는 패킷(132)는 그 패킷이 속한 스트림이 가지는 속도 및 패킷 길이에 따라 상이한 스트림으로 분류되어 저장된다.
소정의 데이터 속도 (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
데이터 스트림의 '첫 번째 패킷'은 시스템의 초기에 또는 소정의 시간에 시스템이 멈춘후 재개시될 때 처리되는 패킷에 해당한다. 새로운 패킷임을 입증하는 방법은, 그 패킷의 데이터 스트림내에 스케줄링을 기다리는 다른 패킷이 없을 때 그 패킷을 첫 번째 패킷으로 간주한다. 그 패킷의 데이터 스트림내에서 스케줄링을 기다리는 패킷이 있는 경우에는, 이러한 패킷은 그 데이터 스트림의 '후속 패킷'으로 불리운다. 첫 번째 패킷의 가상 개시 서비스 시간의 카운트 및 그 데이터 스트림의 후속 패킷의 카운트는 일치하지 않기 때문에, 그 데이터 스트림의 첫 번째 패킷은 개개별로 처리되어야 한다. 그러므로, 도 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
도 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
도 3은 본 발명의 일 실시예에 의한 스케줄링 방법을 나타내는 시간흐름도이다.3 is a time flow diagram illustrating a scheduling method according to an embodiment of the present invention.
단계 310에서, 스케줄러(100)를 초기화하고, 스케줄러(100)의 가상 시간의 초기값을 예를 들면 0 으로 설정한다.In
단계 320에서, 분류기(130)는, 소정의 패킷이 스케줄러(100)에 도달하면, 그 패킷이 데이터 스트림의 첫 번째 패킷인지 여부를 검사한다. In
단계 330에서, 만약 첫 번째 패킷이라면, 그 패킷을 그 패킷의 데이터 속도 및/또는 길이에 따라 제 1 스트림 큐 Q1(Rm,Ln)에 저장한다.In
단계 340에서, 그 후 이하 수학식 2에 따라 가상 개시 서비스 시간을 카운트한다. 이 시간은 해당 데이터 스트림의 가상 개시 서비스 시간이다. In
[수학식 2][Equation 2]
만약 단계 320에서, 인입한 패킷이 해당 스트림의 첫 번째 패킷이 아니라고 판단되었다면, 단계 332에서, 그 패킷을 제 2 스트림 큐(120)에 바로 저장하고, 그 후 단계 334에서, 이하 수학식 3 에 따라 가상 개시 서비스 시간을 카운트한다.
If it is determined in
[수학식 3]&Quot; (3) "
단계 350에서, SEFF 선택부(140)는 제 1 및 제 2 스트림 큐내의 모든 큐에 있는 첫 번째 스트림의 헤드 패킷에 대한 가상 개시 서비스 시간을 스캔한다. 이 때 모든 큐라는 것은 M*N 개의 제 1 스트림 큐 Q1(R,L) 및 M*N 개의 제 2 스트림 큐 Q2(R,L)을 의미한다. In
그 후, 단계 360에서, SEFF 선택부(140)는 패킷의 가상 개시 서비스 시간이 시스템의 가상 시간보다 작은 패킷 즉 리걸 패킷(legal packet)을 검출한다.Then, in step 360, the
단계 370에서, 이하 수학식 4에 따라 이 리걸 패킷의 가상 종료 서비스 시간을 카운트한다. In
[수학식 4]&Quot; (4) "
그 후 단계 380에서, SEFF 선택부(140)는 추출된 리걸 패킷을 최소 가상 종료 서비스 시간에 다음 노드로 전송한다. 위의 모든 단계는 모든 패킷이 전송될 때까지 반복된다.Thereafter, in
도 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
그러면, 단계 420에서, 헤드 패킷이 선택되어 전송된 특정 제 1 스트림 큐 Q1(Rx,Lx) 또는 제 2 스트림 큐 Q2(Rx,Ly)에서, 새로운 헤드 패킷이 발생한다. 또한 데이터 스트림 F 에 대한 다음 패킷이 새로운 헤드 패킷의 데이터 속도 및 길이에 따라 제 2 스트림 큐 Q2(Rx.Ly)에 저장된다. Then, in
그 후 단계 430에서, 수학식 3에 따라, 데이터 스트림 F의 가상 개시 서비스 시간이 갱신된다. 이 시간은 데이터 스트림 F의 새로운 해드 패킷에 대한 가상 개시 서비스 시간이기도 하다. Then, in
그 후 단계 440 및 450 에서, 수학식 1 에 따라 시스템 가상 시간이 갱신된다.Thereafter, in
그 후 단계 460에서, 다음 패킷에 대한 추출 및 전송이 수행되고, 그 후에는 다시 위의 단계들에 의한 서비스 시간 갱신이 수행된다.Then, in
본 발명의 일 실시예에서, 본 발명의 방법에 사용되는 스케줄링 노드는 라우터이다.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
이하에서, 도 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
(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
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)
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)
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)
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 |
-
2003
- 2003-04-11 CN CNB031189180A patent/CN1206835C/en not_active Expired - Fee Related
-
2004
- 2004-03-23 KR KR20040019627A patent/KR101037929B1/en not_active IP Right Cessation
Patent Citations (2)
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 |