KR20040048233A - Apparatus for queue scheduling using linear control and method therefor - Google Patents

Apparatus for queue scheduling using linear control and method therefor Download PDF

Info

Publication number
KR20040048233A
KR20040048233A KR1020020076027A KR20020076027A KR20040048233A KR 20040048233 A KR20040048233 A KR 20040048233A KR 1020020076027 A KR1020020076027 A KR 1020020076027A KR 20020076027 A KR20020076027 A KR 20020076027A KR 20040048233 A KR20040048233 A KR 20040048233A
Authority
KR
South Korea
Prior art keywords
packets
queue
packet
control variable
amount
Prior art date
Application number
KR1020020076027A
Other languages
Korean (ko)
Other versions
KR100462475B1 (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 KR10-2002-0076027A priority Critical patent/KR100462475B1/en
Publication of KR20040048233A publication Critical patent/KR20040048233A/en
Application granted granted Critical
Publication of KR100462475B1 publication Critical patent/KR100462475B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

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

Abstract

PURPOSE: A queue scheduling apparatus and method using linear control are provided to effectively utilize scheduling of a queue of a router by predicting an inflow speed of packets transmitted to the router. CONSTITUTION: e(t)(10) is the number of packets introduced during certain time. (d/dt)e(t)(12) is the changed amount of the number of introduced packets. A numerical formula(14) is the total amount of packets introduced during the certain time. A PID controller(200) generates certain control variable(20) through PID controlling according to the number of packets(10) introduced into a queue(300) during certain time, its changed amount(12) and the total amount of the number of packets(14). The control variable(20) is the number of discharged packets during the certain time, a threshold value of the queue, or a discard probability. The packet discarding unit(210) discards packets introduced into the queue(300) by using a certain discard algorithm.

Description

선형제어를 이용한 큐 스케쥴링 장치 및 방법{Apparatus for queue scheduling using linear control and method therefor}Apparatus for queue scheduling using linear control and method therefor}

본 발명은 데이터의 전송에 관한 것으로, 특히 인터넷의 라우터 큐의 패킷 처리 및 폐기를 위한 효율적인 스케쥴링에 관한 것이다.The present invention relates to the transmission of data, and more particularly to efficient scheduling for packet processing and discarding of router queues on the Internet.

기존의 큐 관련 스케쥴링 방법에는 Tail Dropping, RED(Random Early Detection), RIO(RED with In/Out), PO(Push-Out) 등이 있다.Conventional queue-related scheduling methods include tail dropping, random early detection (RED), red with in / out (RIO), and push-out (PO).

Tail Dropping 스케쥴링은 기존의 최선의 노력 기반(best-effort basis)의 서비스에서 사용되는 방법으로, FIFO(First-In First-Out) 큐가 가득 찰 경우 제일 먼저 큐에 저장된 패킷부터 폐기가 되는 방법으로, 패킷의 중요도와 관계없이 오로지 큐에 저장된 순서로 패킷이 폐기됨으로 QoS(Quality of Service) 보장이 불가능하다.Tail Dropping Scheduling is used in the existing best-effort basis service. When the first-in first-out queue is full, the first dropping packet is discarded. However, QoS is not guaranteed because packets are discarded in the order in which they are queued, regardless of the importance of the packets.

RED 스케쥴링은 큐가 가득 차기 이전에도 입력 패킷을 폐기할 수 있는 능동적인 큐 관리기법으로, RED에서는 큐의 최대 길이보다 작은 일정한 임계값을 정한 후, 큐의 길이가 이 값을 넘어설 경우 입력되는 모든 패킷들을 임의의 확률 P에 따라 폐기시키는 스케쥴링이다. RED는 체증으로 인해 큐가 오버플로우 되기 전에 무작위로 패킷들을 폐기함으로서, Tail Dropping 기법이 유발하는 TCP 트래픽의 전역 동기화 문제를 해결할 수 있지만, 패킷의 중요도에 따라 손실률 차별화를 가져올 수 없는 문제가 있다.RED scheduling is an active queue management technique that can discard input packets even before the queue is full. In RED, a certain threshold is set that is smaller than the maximum length of the queue. Scheduling that discards all packets according to a random probability P. RED solves the global synchronization problem of TCP traffic caused by Tail Dropping technique by randomly discarding packets before the queue overflows due to congestion, but there is a problem in that loss rate differentiation cannot be brought about according to the importance of packets.

RIO 스케쥴링은 미리 내정된 규약을 준수하는 In-Profile 패킷들과, 그렇지 않은 Out-Profile 패킷들에 대하여 각각의 RED를 적용하는 기법이다. In-Profile 패킷들과 Out-Profile 패킷들에 적용되는 각각의 RED는 임계값과 폐기 확률이 서로 다르게 적용되는데(대개의 경우, In-Profile 패킷용의 RED는 느슨하게, Out-Profile 패킷용의 RED는 엄격하게 적용된다), 이용률이 낮은 단점을 가진다.RIO scheduling is a technique that applies each RED to In-Profile packets that comply with a predefined protocol and to Out-Profile packets that do not. Each RED applied to In-Profile packets and Out-Profile packets has a different threshold and discard probability (usually loose for RED for In-Profile packets and RED for Out-Profile packets). Is strictly applied), which has the disadvantage of low utilization.

PO 기법은 큐가 가득 찬 경우에 도착한 패킷을 받아들이기 위하여 이미 큐에 들어 있는 패킷을 선택적으로 제거하는 기법이다. 이 기법은 임계값에 의거하여 패킷을 수용하는 방식들(RED, RIO 등)에 비하여 이용률(utilization)이 높고 우선순위가 높은 패킷들의 손실률을 최소화하는 장점이 있지만, 전역 동기화 문제를 해결할 수 없다는 단점이 있다.The PO technique is a technique for selectively removing a packet already in the queue to receive a packet arriving when the queue is full. This technique has the advantage of minimizing the loss rate of high-utilization and high-priority packets compared to the methods of accepting packets based on thresholds (RED, RIO, etc.), but cannot solve the global synchronization problem. There is this.

또한, 기존의 패킷 스케쥴링 기법들은 공통적으로, 라우터에 유입되는 패킷이 폭주하여 라우터가 가진 큐의 용량을 초과할 경우, 새롭게 라우터에 전송되는 패킷 및 기존에 큐에 먼저 저장된 순서로 중요도와는 관련 없이 폐기된다는 문제점이 있다.In addition, conventional packet scheduling schemes commonly use a new packet transmitted to the router when the packet flowing into the router exceeds the queue capacity of the router, regardless of importance. There is a problem that it is discarded.

본 발명이 이루고자 하는 기술적 과제는 패킷 손실률을 최소화하고 전역 동기화 문제를 해결할 수 있는 큐 스케쥴링 장치 및 방법을 제공하는 것이다.It is an object of the present invention to provide a queue scheduling apparatus and method which can minimize packet loss rate and solve global synchronization problem.

본 발명이 이루고자 하는 다른 기술적 과제는 상기와 같은 큐 스케쥴링 장치를 포함하는 네트워크 라우터를 제공하는 것이다.Another object of the present invention is to provide a network router including the above-described queue scheduling apparatus.

본 발명이 이루고자 하는 다른 기술적 과제는 상기의 큐 스케쥴링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.Another object of the present invention is to provide a computer-readable recording medium having recorded thereon a program for executing the above-described queue scheduling method on a computer.

도 1은 본 발명에 의한 큐 스케쥴링에 적용할 PID 제어기에 의한 제어 시스템의 구성도이다.1 is a block diagram of a control system by a PID controller to be applied to queue scheduling according to the present invention.

도 2는 본 발명에 의한 큐 스케쥴링 제어 장치를 나타낸 블록도이다.2 is a block diagram illustrating an apparatus for controlling queue scheduling according to the present invention.

도 3은 본 발명에 의한 큐 스케쥴링에 관련된 변수들을 나타낸 큐의 개념도이다.3 is a conceptual diagram of a queue showing variables related to queue scheduling according to the present invention.

상기 기술적 과제를 이루기 위한 본 발명에 의한 큐 스케쥴링 장치는, 소정의 시간 동안 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 PID제어부; 및 상기 제어 변수에 따라 큐에 유입된 패킷을 폐기하는 패킷폐기부를 포함하는 것이 바람직하다.According to an aspect of the present invention, there is provided a queue scheduling apparatus, including: a PID controller configured to generate a predetermined control variable through PID control according to the number of packets introduced into a queue, a change amount, and a total amount of packets for a predetermined time; And a packet discarding unit for discarding packets introduced to the queue according to the control variable.

상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 개수 또는 폐기 확률인 것이 바람직하다.The control variable is preferably the discard count or discard probability of the packet for a predetermined time.

상기 PID제어부는, 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따른 상기 패킷의 폐기 개수의 변화량의 상승 시간에 대한 소정의 요구조건을 만족하도록 제어 변수를 생성하는 PI제어부; 및 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따른 상기 패킷의 폐기 개수의 변화량의 최대 초과량에 대한 소정의 요구 조건을 만족하도록 제어 변수를 생성하는 PD제어부를 포함하는 것이 바람직하다.The PID controller may include a PI controller configured to generate a control variable so as to satisfy a predetermined requirement for a rise time of a change amount of the discarded number of packets according to the number of packets flowing into the queue, the amount of change, and the total amount of packets; And a PD control unit for generating a control variable so as to satisfy a predetermined requirement for the maximum amount of change in the discarded number of packets according to the number of packets flowing into the queue, the amount of change, and the total amount of packets. desirable.

상기 기술적 과제를 이루기 위한 본 발명에 의한 큐 스케쥴링 방법은, 소정의 시간 동안 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 단계; 및 상기 제어 변수에 따라 큐에 유입된 패킷을 폐기하는 단계를 포함하는 것이 바람직하다.According to an aspect of the present invention, there is provided a method for scheduling a queue, the method including: generating a predetermined control variable through PID control according to the number of packets flowing into the queue, a change amount, and a total amount of packets for a predetermined time; And discarding packets introduced to the queue according to the control variable.

상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 네트워크 라우터는, 네트워크 패킷을 받아 저장하는 패킷 큐; 소정의 시간 동안 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 PID제어부; 및 상기 제어 변수에 따라 상기 큐에 유입된 패킷을 폐기하는 패킷폐기부를 포함하는 것이 바람직하다.According to another aspect of the present invention, there is provided a network router including: a packet queue configured to receive and store network packets; A PID controller configured to generate a predetermined control variable through PID control according to the number of packets flowing into the queue, a change amount thereof, and a total amount of packets for a predetermined time; And a packet discarding unit for discarding packets introduced into the queue according to the control variable.

이하, 첨부된 도면들을 참조하여 본 발명에 따른 큐 스케쥴링 장치 및 방법에 대해 상세히 설명한다.Hereinafter, an apparatus and method for scheduling a queue according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 의한 큐 스케쥴링에 적용할 PID 제어기에 의한 제어 시스템의 구성도이다.1 is a block diagram of a control system by a PID controller to be applied to queue scheduling according to the present invention.

네트워크 상에서 경험할 수 있는 QoS(Quality of Service)는 딜레이, 지터 및 손실로 특성화된다. 많은 네트워크 애플리케이션들은 이러한 하나 이상의 파라미터들에 민감하다. 예컨대, 대화형 애플리케이션은 네트워크의 전체 딜레이가 임계값을 초과하면 사용할 수 없게 된다. 비디오와 같은 스트리밍 애플리케이션들은 대량의 고정 딜레이는 용인할 수 있지만 서로 다른 패킷들이 경험하는 딜레이의 지터 또는 변화가 임계값을 초과하면 초과의 버퍼 공간을 필요로 한다. 다른 애플리케이션들은 패킷 손실, 예컨대 초과 정체(congestion) 때문에 드롭되는 패킷들을 용인할 수 없다.The quality of service (QoS) that can be experienced on the network is characterized by delay, jitter and loss. Many network applications are sensitive to one or more of these parameters. For example, an interactive application may not be available if the total delay of the network exceeds a threshold. Streaming applications such as video can tolerate large fixed delays, but require more buffer space if the jitter or change in delay experienced by different packets exceeds a threshold. Other applications cannot tolerate dropped packets due to packet loss, such as excess congestion.

오늘날의 대부분의 인터넷 트래픽은 최선의 노력으로(best-effort basis) 전달되는 단일 부류의 트래픽으로서 조절된다. 즉, 네트워크는 모든 패킷들을 적정한 시간 내에 전달하려고 노력하지만 딜레이나 손실에 대해서는 보장이 없다. 네트워크 트래픽의 버스트 특성 때문에, 몇몇 패킷들은 정체 때문에 딜레이 또는 드롭될 수 있으며, 패킷들이 경험하는 딜레이는 패킷에 따라 상당히 다르게 된다. 최선의 노력의 전달은 파일 전달 및 웹 페이지 액세스와 같은 많은 타입의 트래픽에 충분하지만, 실시간 오디오 및 비디오 스트림과 같은 다른 타입의 트래픽에는 적절치 않다. 실시간으로 트래픽을 지원하고 또한 특정 고객에게 프리미엄 급의 서비스를 제공하기 위해, 몇몇 네트워크는 트래픽을 분류들로 분리하고 각 트래픽 부류에 대한 서비스 보장을 제공한다. 예를 들어, 트래픽은 제한 비트율 및 제한 딜레이가 보장되는 제 1 부류, 최소 비트율이 보장되는 제 2 부류, 및 전체 네트워크 대역폭의 서로 다른 부분들이 할당되는 하나 이상의 최선 노력의 트래픽 부류들로 분할된다.Most of today's Internet traffic is moderated as a single class of traffic delivered on a best-effort basis. That is, the network tries to deliver all packets in a reasonable time, but there is no guarantee of delay or loss. Because of the burst nature of network traffic, some packets may be delayed or dropped due to congestion, and the delays they experience vary considerably from packet to packet. The best effort delivery is sufficient for many types of traffic such as file delivery and web page access, but not for other types of traffic such as real time audio and video streams. In order to support traffic in real time and also provide premium quality services to specific customers, some networks divide traffic into segments and provide service guarantees for each class of traffic. For example, the traffic is divided into a first class in which the limited bit rate and a limited delay are guaranteed, a second class in which the minimum bit rate is guaranteed, and one or more best effort traffic classes in which different portions of the overall network bandwidth are allocated.

네트워크의 전달 유닛(패킷, 셀 또는 프레임)이 수신하는 서비스 트래픽의 분류가 유닛에 인코딩되는 방식은 여러 가지가 있다. 예를 들어, 인터넷 패킷에서의 서비스 부류는 패킷 헤더의 8비트 ToS(Type of Service) 필드를 사용하여 인코딩된다. 또는, 서비스 부류는 패킷이 속하는 흐름으로부터 직접 유도될 수 있다. ATM 네트워크의 경우, 서비스 부류는 셀이 통과하는 가상 회로와 관련된다.There are many ways in which the classification of the service traffic received by the delivery unit (packet, cell or frame) of the network is encoded in the unit. For example, the class of service in an Internet packet is encoded using an 8 bit Type of Service (ToS) field in the packet header. Or, the service class can be derived directly from the flow to which the packet belongs. In the case of an ATM network, the service class is associated with the virtual circuit through which the cell passes.

서비스 보장은 입력 정리(policing) 및 출력 스케쥴링의 조합에 의해 구현된다. 입력 정리는 라우터에 도달하는 모든 트래픽이 적절한 서비스 접속과 일치하도록 보장한다. 패킷이 라우터에 도달하면, 그 도달 시간이 그 서비스 접속과 일치하는지 결정하기 위한 체크가 행해진다. 패킷이 일치하면, 정상적으로 처리된다. 패킷이 일치하지 않으면, 예컨대 10Mbit/s의 대역폭이 보장된 흐름이 15Mbit/s를 소모하면, 패킷 불일치의 표시가 되며, 일단 패킷은 정상적으로 처리되지만, 네트워크 정책에 따라 서비스 품질이 저하되거나 패킷이 드롭될 수 있다.Service guarantees are implemented by a combination of input policing and output scheduling. Input cleanup ensures that all traffic arriving at the router matches the appropriate service connection. When the packet arrives at the router, a check is made to determine if its arrival time matches the service connection. If the packets match, they are processed normally. If the packets do not match, for example, a 10 Mbit / s bandwidth-guaranteed flow consumes 15 Mbit / s, an indication of packet inconsistency is provided, and once the packets are processed normally, the quality of service is degraded or the packets are dropped according to network policy. Can be.

출력 스케쥴링은 패킷이 특정 출력 채널을 통해 라우터를 떠나는 순서를 결정한다. 스케쥴링은 특정 QoS를 보장하는데 있어서 주요한 요인이 된다. 예를 들어, 제한 비트율을 특정 흐름으로 보장하기 위해, 이러한 흐름의 패킷들은 사용 가능한 용량을 초과할 수 있는 버스트한 최선 노력의 흐름으로부터의 패킷의 앞에 스케줄링되어야 한다. 스트리밍 흐름 상에 낮은 지터를 보장하기 위해, 각 패킷은 좁은 시간의 윈도우 내에서 라우터를 떠나도록 스케줄링된다.Output scheduling determines the order in which packets leave the router on a particular output channel. Scheduling is a major factor in ensuring specific QoS. For example, to ensure a limited bit rate for a particular flow, packets of this flow must be scheduled in front of packets from a burst of best effort flow that may exceed the available capacity. To ensure low jitter on the streaming flow, each packet is scheduled to leave the router within a narrow window of time.

GBR(guaranteed bit rate) 트래픽을 위한 출력 스케쥴링은 종종 다중 큐 구조를 사용하여 수행된다. 각 트래픽 부류(클래스 기반 큐잉, CBQ) 또는 각 네트워크 흐름(흐름 큐잉)에 대해 별개의 출력 큐가 제공된다. 각 큐는 출력 라인을 통한 전송을 기다리는 몇몇의 패킷들을 기다린다. 다음 패킷이 큐를 떠날 때를 나타내는카운터는 각 큐와 관련된다. 예컨대, 일정 비트율 트래픽과 관련된 큐들에 대해서, 카운터는 다음 패킷이 큐를 떠나야 할 때를 표시한다. 패킷이 큐를 떠난 후에, 카운터는 현재 시간 및 대역폭 할당에 의해 분리된 패킷의 길이를 반영하는 증분으로 업데이트 된다. 이러한 업데이트 방법은 일정 비트율 QoS를 위한 ATM 누수-버킷(leaky-bucket) 알고리즘에 대응한다.Output scheduling for guaranteed bit rate (GBR) traffic is often performed using multiple queue structures. Separate output queues are provided for each traffic class (class-based queuing, CBQ) or for each network flow (flow queuing). Each queue waits for some packets waiting for transmission on the output line. A counter indicating when the next packet leaves the queue is associated with each queue. For example, for queues associated with constant bit rate traffic, the counter indicates when the next packet should leave the queue. After the packet leaves the queue, the counter is updated in increments to reflect the length of the packet separated by the current time and bandwidth allocation. This update method corresponds to an ATM leak-bucket algorithm for constant bit rate QoS.

최선 노력의 트래픽을 위한 출력 스케쥴링은 또한 WFQ(weighted-fair queuing)를 사용하여 수행된다. 그러한 트래픽은 또한 각 트래픽 부류 또는 각 흐름에 대한 별개의 큐를 사용하여 스케줄링된다. 그러나, 최선 노력의 트래픽을 위해서는, 큐의 패킷들에는 출력 포트 상의 보장된 비트율이 할당되지 않는다. 오히려, 각각의 큐는 이용 가능한 대역폭의 일부를 할당하며, 패킷은 이용 가능한 대역폭에 따른 최상의 작용을 기반으로 하여 스케쥴링된다. 이러한 최상의 작용 트래픽과 연관된 큐에서, 각각의 큐와 연관된 카운터는 가중된 페어 큐잉 알고리즘에 따라 실행되며, 출력 대역폭이 이용 가능할 때 가장 작은 카운트와 연관된 큐가 전송을 위하여 선택되며 그것의 카운터는 대역폭 셰어(share)의 역수만큼 증가된다.Output scheduling for the best effort traffic is also performed using weighted-fair queuing (WFQ). Such traffic is also scheduled using a separate queue for each traffic class or each flow. However, for best effort traffic, packets in the queue are not assigned a guaranteed bit rate on the output port. Rather, each queue allocates a portion of the available bandwidth, and packets are scheduled based on the best action according to the available bandwidth. In queues associated with this best-acting traffic, the counter associated with each queue is run according to a weighted pair queuing algorithm, where the queue associated with the smallest count is selected for transmission when the output bandwidth is available and its counter is bandwidth share Incremented by the inverse of the share.

종래의 라우터에서, 가장 낮은 카운터를 탐색하고, 적정 큐를 선택하며, 상기 큐와 연관된 카운터를 업데이트하는 과정은 마이크로프로세서 상에서 실행되는 소프트웨어에 의하여 수행된다. 클래스 기반 큐잉 또는 퍼-플로우(per-flow) 큐잉으로 각각의 패킷을 전송하는데 필요한 처리 오버헤드 때문에, 이들 메커니즘은 중간 개수의 큐를 가지고 저속링크 상에서 사용하도록 제한된다.In a conventional router, the process of searching for the lowest counter, selecting the appropriate queue, and updating the counter associated with the queue is performed by software running on the microprocessor. Because of the processing overhead required to transfer each packet with class-based queuing or per-flow queuing, these mechanisms are limited to use on low-speed links with an intermediate number of queues.

본 발명에 의한 PID 제어 이론을 적용한 큐 스케쥴링 알고리즘은 크게 PID제어기의 비례계수, 미분계수, 적분계수를 계산하는 방법과 설계된 제어기를 실제 큐에 적용하는 방법으로 구성된다.The queue scheduling algorithm applying the PID control theory according to the present invention is largely composed of a method of calculating a proportional coefficient, a derivative coefficient, an integral coefficient of a PID controller, and a method of applying a designed controller to an actual queue.

먼저, PID 제어기의 각 계수를 구하는 것은, Queuing 스케쥴링을 위한 PID 제어기를 설계하여 각 계수를 구하는 방법에 의한다.First, obtaining each coefficient of the PID controller is based on a method of obtaining each coefficient by designing a PID controller for queuing scheduling.

도 1에 도시된 PID 제어기의 전달함수는 다음 수학식 1과 같다.The transfer function of the PID controller shown in FIG. 1 is represented by Equation 1 below.

수학식 1에서 Kp는 비례계수, Kd는 미분계수, Ki는 적분계수를 나타낸다.In Equation 1, K p is a proportional coefficient, K d is a derivative coefficient, K i represents the integral coefficient.

수학식 1의 전달함수를 시간영역에서 표현하면 다음 수학식 2와 같이 나타낼 수 있다.When the transfer function of Equation 1 is expressed in the time domain, it may be expressed as Equation 2 below.

도 1에 도시한 PID 제어기를 설계하는 방법에는 여러 가지가 있을 수 있지만, 본 발명에서는 PI 제어기와 PD 제어기 설계 방법을 활용하여 다음과 같은 분해식 접근방법을 이용하여 각 계수를 구한다.There may be various methods of designing the PID controller shown in FIG. 1, but in the present invention, each coefficient is obtained by using the following decomposition method using a PI controller and a PD controller design method.

수학식 1에서 표현한 PID 제어기 전달함수는 다음 수학식 3과 같이 분해하여 쓸 수 있다.The PID controller transfer function expressed in Equation 1 may be decomposed and used as in Equation 3 below.

수학식 3을 보면 PID 제어기가 PI 제어 부분과 PD 제어 부분의 직렬접속으로 이루어졌음을 알 수 있다. PID 제어기에서는 세 개의 계수가 필요하므로 수학식 3의 오른쪽 항에서 PD 제어 부분의 상수항을 1로 놓고 양변의 계수를 비교하여 대응시키면 다음 수학식 4 내지 수학식 6과 같은 관계를 얻는다.Equation 3 shows that the PID controller is formed by serial connection of the PI control part and the PD control part. In the PID controller, three coefficients are required, so if the constant term of the PD control part is set to 1 in the right term of Equation 3, and the coefficients of both sides are compared and matched, the relations of Equations 4 to 6 are obtained.

먼저 PI 제어 부분을 설계하기 위하여 계수 Ki2와 Kp2를 결정한다. 적분 계수에 의해 시스템의 꼴이 한 차수 커져서 정상상태 오차가 개선되므로 시스템의 상승시간에 대한 요구를 만족하게끔 Ki2와 Kp2값을 선택한다. 이 단계에서는 최대초과가 크더라도 다음의 미분제어에 의해 조절할 수 있으므로 상관하지 않는다.First, the coefficients K i2 and K p2 are determined to design the PI control part. The integral coefficients increase the order of the system by one order to improve the steady-state error, so select the values K i2 and K p2 to satisfy the system's rise time requirements. This step does not matter even if the maximum exceeded because it can be adjusted by the following derivative control.

다음 최대초과를 감소시키기 위해 PD 제어 부분을 설계한다. 앞에서 설계한 PI 제어 부분을 포함하는 대상에 대해 설계목표를 만족시킬 수 있는 제동비 요구조건에 맞게끔 Kd1값을 선택한다.Then design the PD control section to reduce the maximum exceeded. K d1 value is selected to meet the braking ratio requirement to satisfy the design target for the object including the PI control part designed earlier.

이와 같은 방법에 의하여 Ki2, Kp2, Kd1값이 정해지면 수학식 4 내지 수학식 6의 관계를 이용하여 Kp, Kd, Ki값을 구한다.When K i2 , K p2 , and K d1 values are determined by the above method, K p , K d , and K i values are obtained using the relations of Equations 4 to 6.

이와 같이 설계한 PID 제어기를 라우터 큐 시스템에 맞게 설계하는 방법을 살펴보면, 앞에서 설명한 PID 제어기의 각 함수 및 변수는 제어 신호를 요구하는 시스템을 안정(stable)한 상태로 만들기 위한 제어변수 u(t)를 구하는 과정이므로, 인터넷 상에서 라우터에 유입되는 패킷의 유입속도에 따라 큐에 저장되어 있는 패킷을 폐기하는 것을 목적으로 하는 본 시스템에 적용하기 위해서는 위에서 설계한 제어기의 각 함수 및 변수 등을 본 시스템에 맞게 재 정의할 필요가 있다.In the method of designing the PID controller designed for the router queue system, the functions and variables of the PID controller described above are the control variables u (t) for making the system requiring the control signal stable. In order to apply this system to the purpose of discarding the packets stored in the queue according to the inflow rate of the packets flowing into the router on the Internet, the functions and variables of the controller designed above are applied to the system. You need to redefine it.

도 2는 본 발명에 의한 큐 스케쥴링 제어 장치를 나타낸 블록도이다.2 is a block diagram illustrating an apparatus for controlling queue scheduling according to the present invention.

먼저, 도 2에 도시한 각 변수 및 함수를 설명하면, e(t)(10)는 특정 시간 동안 유입되는 패킷의 개수이며,(12)는 유입되는 패킷 개수의 변화량이다. 그리고,(14)는 특정 시간 동안 유입된 패킷의 총량, 즉 적분을 의미한다.First, referring to each variable and function illustrated in FIG. 2, e (t) 10 is the number of packets flowing in during a specific time period. (12) is the amount of change in the number of incoming packets. And, (14) means the total amount of packets introduced during a specific time, i.e., integral.

도 2에 의하면, 본 발명에 의한 패킷 큐 스케쥴링 장치의 바람직한 실시예는 PID 제어기(200)와 패킷을 폐기(discard)하는 부분(패킷폐기부, 210)을 포함한다.According to FIG. 2, a preferred embodiment of the packet queue scheduling apparatus according to the present invention includes a PID controller 200 and a portion (packet closure unit 210) for discarding a packet.

PID 제어기(200)는 소정의 시간 동안 큐(300)에 유입되는 패킷 개수(10), 그 변화량(12), 및 패킷 개수의 총량(14)에 따라 도 1에서와 같은 PID 제어를 통해 소정의 제어 변수 u(t)(20)를 생성한다.PID controller 200 according to the PID control as shown in FIG. 1 according to the number of packets 10, the amount of change 12, and the total amount 14 of the packets flowing into the queue 300 for a predetermined time, Generate the control variable u (t) 20.

제어변수 u(t)(20)는 특정 시간 동안의 패킷의 폐기 개수, 큐의 임계값, 또는 폐기 확률이 된다.The control variable u (t) 20 is the discard count of the packet, the threshold of the queue, or the discard probability for a specific time.

패킷폐기부(210)는 제어 변수 u(t)(20)에 따라 소정의 폐기 알고리즘을 이용하여 큐(300)에 유입된 패킷을 폐기한다.The packet discard unit 210 discards the packet introduced into the queue 300 using a predetermined discard algorithm according to the control variable u (t) 20.

도 3은 본 발명에 의한 큐 스케쥴링에 관련된 변수들을 나타낸 큐의 개념도이다.3 is a conceptual diagram of a queue showing variables related to queue scheduling according to the present invention.

도 3을 참고하여 각 변수들을 살펴보면, 다음 수학식 7 내지 수학식 10과 같이 정의된다.Looking at each variable with reference to Figure 3, it is defined as the following equation (7) to (10).

상기 수학식들에서, 변수들은 각각, t는 특정 시간, Pk(l)은 l번째 큐 스택에 저장된 패킷, Pk(m)은 m 번째 큐 스택에 저장된 패킷, Pk(n)은 n 번째 큐 스택에 저장된 패킷을 나타낸다. 그리고, 도 3에서, de(t)(36)는, se(t)(38)는를 의미한다.In the above equations, variables are respectively a time t, Pk (l) is a packet stored in the l-th queue stack, Pk (m) is a packet stored in the m-th queue stack, Pk (n) is an n-th queue stack Represents a packet stored in. 3, de (t) 36 is , se (t) (38) Means.

본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다.The present invention can be embodied as code that can be read by a computer (including all devices having an information processing function) in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명에 의한 큐 스케쥴링 장치 및 방법에 의하면, PID 제어 이론을 적용한 패킷 스케쥴링을 이용하여 라우터로 전송되는 패킷의 유입 속도를 예측 가능하므로써, 라우터 내부의 큐의 스케쥴링을 보다 효율적으로 활용할 수 있으며, 라우터에 전송되는 패킷 개수의 유입량에 따라 패킷의 폐기가 이루어질 수 있다.According to the apparatus and method for scheduling a queue according to the present invention, by using the packet scheduling applying the PID control theory, the inflow rate of the packet transmitted to the router can be predicted, so that the scheduling of the queue inside the router can be more efficiently utilized. The packet may be discarded according to the inflow amount of the number of packets transmitted to the packet.

또한, 전송되는 패킷의 개수의 변화를 감지하여 능동적으로 큐에 저장된 패킷을 분류하여 선택적으로 폐기가 가능하기 때문에, 기존 스케쥴링 방법들이 갖고있던 전역 동기화 문제를 해결 가능하며 패킷 손실률을 최소화 할 수 있다.In addition, by detecting the change in the number of packets to be transmitted and actively classifying the packets stored in the queue can be selectively discarded, it is possible to solve the global synchronization problem of the existing scheduling methods and to minimize the packet loss rate.

Claims (12)

소정의 시간 동안 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 PID제어부; 및A PID controller configured to generate a predetermined control variable through PID control according to the number of packets flowing into the queue, a change amount thereof, and a total amount of the packets for a predetermined time; And 상기 제어 변수에 따라 큐에 유입된 패킷을 폐기하는 패킷폐기부를 포함하는 것을 특징으로 하는 패킷 큐 스케쥴링 장치.And a packet discarding unit for discarding packets introduced to the queue according to the control variable. 제 1 항에 있어서, 상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 개수임을 특징으로 하는 패킷 큐 스케쥴링 장치.The apparatus of claim 1, wherein the control variable is a discard count of a packet during a predetermined time. 제 1 항에 있어서, 상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 확률임을 특징으로 하는 패킷 큐 스케쥴링 장치.2. The apparatus of claim 1, wherein the control variable is a probability of discarding a packet for a predetermined time. 제 1 항에 있어서, 상기 PID제어부는,The method of claim 1, wherein the PID control unit, 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따른 상기 패킷의 폐기 개수의 변화량의 상승 시간에 대한 소정의 요구 조건을 만족하도록 제어 변수를 생성하는 PI제어부; 및A PI controller configured to generate a control variable so as to satisfy a predetermined requirement for a rise time of the change amount of the discarded number of packets according to the number of packets flowing into the queue, the amount of change, and the total amount of packets; And 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따른 상기 패킷의 폐기 개수의 변화량의 최대 초과량에 대한 소정의 요구 조건을 만족하도록 제어 변수를 생성하는 PD제어부를 포함하는 것을 특징으로 하는 패킷 큐 스케쥴링 장치.And a PD controller configured to generate a control variable so as to satisfy a predetermined requirement for the maximum amount of change in the discarded number of packets according to the number of packets flowing into the queue, the amount of change, and the total amount of packets. Packet queue scheduling apparatus. 네트워크 패킷을 받아 저장하는 패킷 큐;A packet queue for receiving and storing network packets; 소정의 시간 동안 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 PID제어부; 및A PID controller configured to generate a predetermined control variable through PID control according to the number of packets flowing into the queue, a change amount thereof, and a total amount of packets for a predetermined time; And 상기 제어 변수에 따라 상기 큐에 유입된 패킷을 폐기하는 패킷폐기부를 포함하는 것을 특징으로 하는 네트워크 라우터.And a packet discarding unit for discarding packets introduced into the queue according to the control variable. 제 5 항에 있어서, 상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 개수임을 특징으로 하는 네트워크 라우터.6. The network router according to claim 5, wherein the control variable is a discard count of a packet for a predetermined time. 제 5 항에 있어서, 상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 확률임을 특징으로 하는 네트워크 라우터.6. The network router of claim 5, wherein the control variable is a probability of discarding a packet for a predetermined time. 제 5 항에 있어서, 상기 PID제어부는,The method of claim 5, wherein the PID control unit, 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따른 상기 패킷의 폐기 개수의 변화량의 상승 시간에 대한 소정의 요구 조건을 만족하도록 제어 변수를 생성하는 PI제어부; 및A PI controller configured to generate a control variable so as to satisfy a predetermined requirement for a rise time of the change amount of the discarded number of packets according to the number of packets flowing into the queue, the amount of change, and the total amount of packets; And 상기 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따른 상기 패킷의 폐기 개수의 변화량의 최대 초과량에 대한 소정의 요구 조건을 만족하도록 제어 변수를 생성하는 PD제어부를 포함하는 것을 특징으로 하는 네트워크 라우터.And a PD controller configured to generate a control variable so as to satisfy a predetermined requirement for the maximum amount of change in the discarded number of packets according to the number of packets flowing into the queue, the amount of change, and the total amount of packets. Network router. (a) 소정의 시간 동안 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 단계; 및(a) generating a predetermined control variable through PID control according to the number of packets flowing into the queue for a predetermined time, the amount of change thereof, and the total amount of packets; And (b) 상기 제어 변수에 따라 큐에 유입된 패킷을 폐기하는 단계를 포함하는 것을 특징으로 하는 패킷 큐 스케쥴링 방법.and (b) discarding packets introduced to the queue according to the control variable. 제 9 항에 있어서, 상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 개수임을 특징으로 하는 패킷 큐 스케쥴링 방법.10. The method of claim 9, wherein the control variable is a discard count of a packet for a predetermined time. 제 9 항에 있어서, 상기 제어 변수는 소정의 시간 동안의 패킷의 폐기 확률임을 특징으로 하는 패킷 큐 스케쥴링 방법.10. The method of claim 9, wherein the control variable is a probability of discarding a packet for a predetermined time. (a) 소정의 시간 동안 큐에 유입되는 패킷 개수, 그 변화량, 및 패킷 개수의 총량에 따라 PID 제어를 통해 소정의 제어 변수를 생성하는 단계; 및(a) generating a predetermined control variable through PID control according to the number of packets flowing into the queue for a predetermined time, the amount of change thereof, and the total amount of packets; And (b) 상기 제어 변수에 따라 큐에 유입된 패킷을 폐기하는 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.(b) a computer-readable recording medium having recorded thereon a program for causing a computer to discard a packet introduced into a queue according to the control variable.
KR10-2002-0076027A 2002-12-02 2002-12-02 Apparatus for queue scheduling using linear control and method therefor KR100462475B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0076027A KR100462475B1 (en) 2002-12-02 2002-12-02 Apparatus for queue scheduling using linear control and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0076027A KR100462475B1 (en) 2002-12-02 2002-12-02 Apparatus for queue scheduling using linear control and method therefor

Publications (2)

Publication Number Publication Date
KR20040048233A true KR20040048233A (en) 2004-06-07
KR100462475B1 KR100462475B1 (en) 2004-12-17

Family

ID=37343130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0076027A KR100462475B1 (en) 2002-12-02 2002-12-02 Apparatus for queue scheduling using linear control and method therefor

Country Status (1)

Country Link
KR (1) KR100462475B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100582905B1 (en) * 2003-12-24 2006-05-23 한국전자통신연구원 Packet scheduling method for realtime traffic transmission in mobile communication system and recording medium storing program embodying the same
KR100662122B1 (en) * 2003-09-15 2006-12-27 아바야 테크놀러지 엘엘씨 Congestion management in telecommunications networks

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101084629B1 (en) 2010-03-23 2011-11-17 국방과학연구소 A buffer space securing method and apparatus for real time data transmission according to data increase/decrease rate

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100662122B1 (en) * 2003-09-15 2006-12-27 아바야 테크놀러지 엘엘씨 Congestion management in telecommunications networks
KR100582905B1 (en) * 2003-12-24 2006-05-23 한국전자통신연구원 Packet scheduling method for realtime traffic transmission in mobile communication system and recording medium storing program embodying the same

Also Published As

Publication number Publication date
KR100462475B1 (en) 2004-12-17

Similar Documents

Publication Publication Date Title
US7792033B2 (en) Bandwidth policing method and packet transfer apparatus with bandwidth policing function
KR100323258B1 (en) Rate guarantees through buffer management
JP4512699B2 (en) Flow control device and node device
US7535835B2 (en) Prioritizing data with flow control
US7697436B2 (en) Bandwidth allocation
US7631096B1 (en) Real-time bandwidth provisioning in a switching device
Kortebi et al. Implicit service differentiation using deficit round robin
US7369489B1 (en) Unbiased token bucket
US8174985B2 (en) Data flow control
US20050068798A1 (en) Committed access rate (CAR) system architecture
US20040022246A1 (en) Packet sequence control
US7499400B2 (en) Information flow control in a packet network based on variable conceptual packet lengths
KR20120055946A (en) Method and apparatus for packet scheduling based on allocating fair bandwidth
EP2996293A1 (en) A packet scheduling networking device for deadline aware data flows
KR100546968B1 (en) Method and system for controlling transmission of packets in computer networks
KR100462475B1 (en) Apparatus for queue scheduling using linear control and method therefor
KR20020079904A (en) Unified algorithm for frame scheduling and buffer management in differentiated services networks
Astuti Packet handling
EP1327334B1 (en) Policing data based on data load profile
US20040196792A1 (en) Filtering data flows
Cisco Policing and Shaping Overview
KR100720917B1 (en) Method of adaptive multi-queue management to guarantee QoS
EP2398195B1 (en) Method and apparatus for policing and buffering a bursty data signal
Hu et al. Evaluation of queue management algorithms
JP4104756B2 (en) Method and system for scheduling data packets in a telecommunications network

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081202

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee