KR100959397B1 - Packet scheduling apparatus - Google Patents

Packet scheduling apparatus Download PDF

Info

Publication number
KR100959397B1
KR100959397B1 KR1020080039227A KR20080039227A KR100959397B1 KR 100959397 B1 KR100959397 B1 KR 100959397B1 KR 1020080039227 A KR1020080039227 A KR 1020080039227A KR 20080039227 A KR20080039227 A KR 20080039227A KR 100959397 B1 KR100959397 B1 KR 100959397B1
Authority
KR
South Korea
Prior art keywords
packet
session
output
session identifier
queue
Prior art date
Application number
KR1020080039227A
Other languages
Korean (ko)
Other versions
KR20090060108A (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 한국전자통신연구원
Publication of KR20090060108A publication Critical patent/KR20090060108A/en
Application granted granted Critical
Publication of KR100959397B1 publication Critical patent/KR100959397B1/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/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing

Landscapes

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

Abstract

패킷 스위치에서 패킷을 스케줄링하는 패킷 스케줄링 장치 및 방법이 개시된다. 본 발명의 패킷 스케줄링 장치는, 입력 패킷을 저장하는 패킷 메모리; 세션별 허용 대역폭을 포함하는 파라미터를 저장하는 세션 파라미터 저장부; 상기 입력 패킷의 세션 식별자를 가지고 상기 세션 저장부의 해당 파라미터를 검색하고, 검색된 파라미터의 허용 대여폭을 고려하여 상기 패킷의 출발시각을 산출하는 출발시각 산출부; 상기 산출된 출발시각에 상기 패킷이 출발하도록 스케줄링하는 스케줄러; 및 상기 스케줄링에 따라 상기 패킷 메모리에 저장된 해당 패킷을 출력하는 패킷 출력부;를 포함한다. 이에 의해 가입자의 가입 서비스 종류에 따라 다양한 스케줄링이 가능하다.Disclosed are a packet scheduling apparatus and method for scheduling a packet in a packet switch. The packet scheduling apparatus of the present invention comprises: a packet memory for storing an input packet; A session parameter storage unit for storing a parameter including an allowable bandwidth for each session; A departure time calculation unit for retrieving a corresponding parameter of the session storage unit using the session identifier of the input packet and calculating a departure time of the packet in consideration of the allowable rental width of the retrieved parameter; A scheduler for scheduling the packet to depart at the calculated departure time; And a packet output unit configured to output a corresponding packet stored in the packet memory according to the scheduling. Accordingly, various scheduling is possible according to the subscriber's subscription service type.

Description

패킷 스케줄링 장치{Packet scheduling apparatus}Packet scheduling apparatus

본 발명은 패킷 스케줄링 장치 및 방법에 관한 것으로, 특히 네트워크 회선을 통해 입력되는 패킷을 저장하고 저장된 패킷의 출발시각을 스케줄링하여 스케줄에 따라 패킷을 출력시키는 패킷 스케줄링 장치 및 방법에 관한 것이다.The present invention relates to a packet scheduling apparatus and method, and more particularly, to a packet scheduling apparatus and method for storing a packet input through a network circuit and scheduling the departure time of the stored packet to output the packet according to a schedule.

고급 품질의 데이터 통신 서비스 요구가 늘어나고 있다. 이에 따라 패킷 스위치에서는 통신 품질의 등급을 미리 정하여 두고 가입자가 요구하는 서비스를 등급에 맞추어 제공할 필요가 있다. 이를 위해서 패킷 스위치에서는 등급에 따라 가상 연결을 설정해 두고, 가입자의 트래픽이 들어오면 그 등급에 맞는 가상 연결 통로로 트래픽을 전송한다. 그러나 이 경우 패킷 스위치에서는 가입자의 트래픽이 다른 가입자가 보낸 트래픽과 섞이고 교환될 때 패킷의 충돌이 발생하며, 충돌에 의해 밀려난 패킷은 지연된다. 결국 통신 서비스의 품질을 준수하기가 어렵게 된다. 더구나 인터넷과 같이 가입자가 임의로 트래픽을 보낼 때에는 링크 대역을 초과하는 경우가 자주 발생하고, 이에 따라 고급 서비스의 트래픽에 손실이 생긴다.The demand for high quality data communication services is increasing. Accordingly, in the packet switch, it is necessary to determine the grade of communication quality in advance and provide the service required by the subscriber according to the grade. To this end, the packet switch establishes a virtual connection according to the class, and when the subscriber's traffic comes in, the packet switch transmits the traffic to the virtual connection path corresponding to the class. However, in this case, packet collision occurs when a subscriber's traffic is mixed with other subscriber's traffic and exchanged, and the packet pushed by the collision is delayed. As a result, it is difficult to comply with the quality of communication services. Moreover, when the subscriber randomly sends the traffic, such as the Internet, the link band is often exceeded, resulting in loss of traffic of the advanced service.

이러한 문제 해결을 위해 트래픽을 잘 스케줄링하여 고급 품질의 트래픽을 우선으로 전달하고, 저급의 트래픽은 여유가 있을 때 전달하되 시간을 초과하면 폐기하여 통신 품질을 유지할 수 있게 하여야 한다. 그러나 기존의 패킷 스케줄링 장치는 단순히 서비스 등급에 따라 우선 순위로 패킷을 스케줄링하기 때문에, 패킷 스케줄러가 패킷 스위치의 입력 장치에 구현될 경우, 패킷 스위치의 특정 출력 포트에서 충돌이 발생하면 출력 포트에 관계없이 모든 트래픽을 내보내지 못하는 문제가 있다. 또한 통신 서비스의 품질을 단순히 우선 순위로만 등급을 매기기 때문에, 시간 지연이 허용되지 않는 저급의 트래픽이나 시간 지연은 허용되나 손실이 허용되지 않는 트래픽에 대해서는 등급을 정하기 어려우며, 스케줄링 방식도 매우 복잡하여 경제적이지 못한 문제가 있다.In order to solve this problem, the traffic should be well scheduled to deliver high quality traffic first, and the low quality traffic should be delivered when there is time to spare. However, since the existing packet scheduling apparatus simply schedules packets with priority according to the service class, when the packet scheduler is implemented at the input device of the packet switch, if a collision occurs at a specific output port of the packet switch, regardless of the output port, There is a problem that can not send all the traffic. In addition, because the quality of the communication service is simply rated as a priority, it is difficult to rank low-level traffic that does not allow time delay or traffic that does not allow time delay but loss is not allowed. There is a problem that is not.

본 발명은 이 같은 배경에서 도출된 것으로, 통신 서비스의 품질을 보장하면서도 간단한 구조의 패킷 스케줄링 장치 및 방법을 제공함을 목적으로 한다.SUMMARY OF THE INVENTION The present invention is derived from this background, and aims to provide a packet scheduling apparatus and method having a simple structure while ensuring the quality of a communication service.

전술한 기술적 과제를 해결하기 위한 본 발명에 따른 외부로부터 입력된 패킷의 출발시각을 스케줄링하는 패킷 스케줄링 장치는, 입력 패킷을 저장하는 패킷 메모리; 세션별 허용 대역폭을 포함하는 파라미터를 저장하는 세션 파라미터 저장부; 상기 입력 패킷의 세션 식별자를 가지고 상기 세션 저장부의 해당 파라미터를 검색하고, 검색된 파라미터의 허용 대여폭을 고려하여 상기 패킷의 출발시각을 산출하는 출발시각 산출부; 상기 산출된 출발시각에 상기 패킷이 출발하도록 스케줄링하는 스케줄러; 및 상기 스케줄링에 따라 상기 패킷 메모리에 저장된 해당 패킷을 출력하는 패킷 출력부;를 포함한다.According to an aspect of the present invention, there is provided a packet scheduling apparatus for scheduling a departure time of an externally input packet, the packet memory storing an input packet; A session parameter storage unit for storing a parameter including an allowable bandwidth for each session; A departure time calculation unit for retrieving a corresponding parameter of the session storage unit using the session identifier of the input packet and calculating a departure time of the packet in consideration of the allowable rental width of the retrieved parameter; A scheduler for scheduling the packet to depart at the calculated departure time; And a packet output unit configured to output a corresponding packet stored in the packet memory according to the scheduling.

상기 스케줄러는, 다수의 타임 슬롯들을 가지는 캘린더 메모리를 포함하고, 상기 세션 식별자를 상기 산출된 출발시각에 해당하는 타임 슬롯에 저장하며, 단위 시간마다 순차적으로 타임 슬롯을 지정하여 지정된 타임 슬롯에 저장된 세션 식별자를 출력한다.The scheduler includes a calendar memory having a plurality of time slots, stores the session identifier in a time slot corresponding to the calculated departure time, and designates a time slot in sequence every unit time and stores the session in a designated time slot. Print an identifier.

상기 타임 슬롯은 우선순위 지정된 다수의 큐들을 포함하고, 상기 스케줄러는, 상기 세션 저장부의 해당 파라미터 중 서비스 우선순위 파라미터를 확인하여 확인된 우선순위에 대응하는 큐에 상기 세션 식별자를 저장하며, 우선순위가 높은 큐에 저장된 세션 식별자부터 출력 처리한다.The time slot includes a plurality of prioritized queues, and the scheduler checks a service priority parameter among corresponding parameters of the session storage unit, and stores the session identifier in a queue corresponding to the identified priority. Processes output from the session identifier stored in the high queue.

한편, 전술한 기술적 과제를 해결하기 위한 본 발명에 따른 네트워크 장치에서 외부로부터 입력된 패킷의 출발시각을 스케줄링하는 패킷 스케줄링 방법은, 입력 패킷의 세션 식별자를 확인하는 단계; 상기 확인된 세션 식별자를 가지고 해당되는 세션 파라미터를 획득하는 단계; 상기 획득된 세션 파라미터에 포함된 허용 대역폭 파라미터를 고려하여 패킷의 출발시각을 산출하는 단계; 및 상기 산출된 출발시각에 맞게 패킷이 출발하도록 스케줄링하는 단계;를 포함한다.On the other hand, the packet scheduling method for scheduling the departure time of the packet input from the outside in the network device according to the present invention for solving the above technical problem, the step of checking the session identifier of the input packet; Obtaining a corresponding session parameter with the identified session identifier; Calculating a departure time of a packet in consideration of an allowable bandwidth parameter included in the obtained session parameter; And scheduling the packet to depart according to the calculated departure time.

본 발명은 패킷 스위치에 입력된 패킷을 서비스 우선순위에 따라 스케줄링하고, 고급 품질의 트래픽이 스위칭 과정에서 손실이 발생하지 않게 스케줄링한다. 또한 최선형(Best Effort)과 같은 저급의 트래픽에 대해서는 가입자 간에 공평성을 유지하도록 스케줄링하고, 스위치의 과부하시 해당 포트로 전달되는 트래픽을 억제하여 손실이 발생하지 않도록 한다.The present invention schedules packets input to the packet switch according to service priority, and schedules high quality traffic so that no loss occurs during the switching process. In addition, the low-level traffic such as Best Effort is scheduled to maintain fairness among subscribers, and the loss of traffic is prevented by suppressing the traffic to the corresponding port when the switch is overloaded.

본 발명에 따른 스케줄러는 다양한 스케줄링을 동일한 기본 구조의 캘린더 메모리를 가지고 수행하므로, 버퍼의 제어 구조가 간단하여 구현이 용이하며 동작의 신뢰성이 높다.Since the scheduler according to the present invention performs various scheduling with a calendar memory having the same basic structure, the control structure of the buffer is simple, so that the implementation is easy and the operation reliability is high.

전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명 하기로 한다.The foregoing and further aspects of the present invention will become more apparent through the preferred embodiments described with reference to the accompanying drawings. Hereinafter, the present invention will be described in detail to enable those skilled in the art to easily understand and reproduce the present invention.

도 1은 패킷 스위치 블록도이다.1 is a packet switch block diagram.

도시된 바와 같이, 패킷 스위치는 네트워크 회선을 통해 전달되는 패킷을 입력받는 다수의 입력 인터페이스 장치(10)들, 입력된 패킷을 특정 출력 포트로 전달하는 스위치 모듈(30), 및 스위치 모듈(30)의 각 출력 포트에 전달된 패킷을 외부로 출력하는 다수의 출력 인터페이스 장치(40)를 포함한다. 입력 인터페이스 장치(10)들로 입력된 패킷들은 스위치 모듈(30)을 통과하면서 혼합되고 다중화되어 특정 출력 포트에 과부하가 발생할 수 있다. 따라서 이 같은 문제 해결을 위해 패킷의 특성에 맞도록 패킷의 출발시각을 스케줄링하는 것이 요구된다. 이를 위해 각 입력 인터페이스 장치(10)에 구현되는 본 발명의 패킷 스케줄링 장치(20)는 하나의 캘린더 방식의 스케줄러를 사용하여 패킷의 출발시각을 스케줄링한다. 캘린더 방식의 스케줄러는 여러 개의 타임 슬롯들로 구성된 캘린더 메모리를 갖추고, 패킷이 입력되면 그 패킷이 소속된 세션의 특성 파라미터에 준하여 패킷을 스케줄링한다.As shown, the packet switch includes a plurality of input interface devices 10 for receiving a packet transmitted through a network line, a switch module 30 for transferring the input packet to a specific output port, and a switch module 30. A plurality of output interface device 40 for outputting the packet transmitted to each output port of the outside. Packets input to the input interface devices 10 may be mixed and multiplexed through the switch module 30 to overload a particular output port. Therefore, in order to solve this problem, it is required to schedule the departure time of the packet according to the characteristics of the packet. To this end, the packet scheduling apparatus 20 of the present invention implemented in each input interface device 10 schedules the departure time of a packet by using one calendar type scheduler. The calendar scheduler has a calendar memory composed of a plurality of time slots, and when a packet is input, the scheduler schedules the packet according to a characteristic parameter of the session to which the packet belongs.

도 2는 본 발명에 따른 패킷 스케줄링 장치의 블록도이다.2 is a block diagram of a packet scheduling apparatus according to the present invention.

도시된 바와 같이, 본 발명에 따른 패킷 스케줄링 장치(20)는 패킷 메모리(100), 세션 파라미터 저장부(200), 출발시각 산출부(300), 스케줄러(400), 및 패킷 출력부(500)를 포함한다. 패킷 메모리(100)는 외부의 네트워크 회선을 통해 전송되어 입력 인터페이스 장치(10)로 입력된 패킷을 저장한다. 여기서 패킷 메모 리(100)는 링크드 리스트(linked list) 방식으로 패킷을 저장하며, 이 같은 방식은 널리 알려진 사실이므로 상세한 설명은 생략한다. 세션 파라미터 저장부(200)는 도 3에 도시된 바와 같은 세션 테이블을 저장한다. 세션 테이블에는 세션 식별자(ID)별로 파라미터가 기록된다. 세션 테이블에서 관리되는 파라미터로는 세션의 허용 대역폭(service bandwidth), 서비스 종류(service category), 서비스 우선순위(service priority)가 있다. 이들 중에서 허용 대역폭(service bandwidth)은 필수적인 파라미터이며, 서비스 우선순위(service priority) 또한 본 발명의 추가적인 양상에 따라 필수적으로 기록되어 있어야 할 파라미터이다.As illustrated, the packet scheduling apparatus 20 according to the present invention includes a packet memory 100, a session parameter storage unit 200, a departure time calculation unit 300, a scheduler 400, and a packet output unit 500. It includes. The packet memory 100 stores a packet transmitted through an external network line and input to the input interface device 10. Here, the packet memory 100 stores the packet in a linked list method, and since such a method is well known, a detailed description thereof will be omitted. The session parameter storage unit 200 stores a session table as shown in FIG. 3. In the session table, parameters are recorded for each session identifier (ID). Parameters managed in the session table include a service bandwidth, a service category, and a service priority of the session. Among these, the service bandwidth is an essential parameter, and the service priority is also a parameter that must be recorded according to an additional aspect of the present invention.

허용 대역폭(service bandwidth) 파라미터는 가입자별로 구분되어 정해짐이 바람직하다. 예를 들어 가입자의 가입 서비스 유형에 따라 허용 대역폭이 정해질 수 있다. 예를 들어 가입자의 트래픽이 고품질이면 허용 대역폭을 스위치 모듈(30)의 입력 포트의 전체 대역폭과 가까운 값으로 정한다. 품질이 높을수록 허용 대역폭 값은 전체 대역폭 값과 더욱 가까워질 것이다. 만약 저품질, 즉 최선형(Best Effort, BE) 트래픽이면 집선비를 얼마로 하고 BE를 얼마나 수용할 것인가 하는 정책에 따라 허용 대역폭을 정한다. 그리고 서비스 우선순위(service priority) 파라미터는 트래픽 특성에 따라 나뉠 수 있다. 일반적으로 트래픽은 서비스 유형에 따라 실시간 트래픽과 비실시간 트래픽으로 구분되고, 또 한편으로 고품질과 저품질로 구분된다. 따라서 고품질의 실시간 트래픽, 고품질의 비실시간 트래픽, 저품질의 실시간 트래픽, 저품질의 비실시간 트래픽 순으로 품질의 등급을 매기고, 이를 서비스 우선 순위(service priority)로 정한다.Allowable bandwidth (service bandwidth) parameters are preferably determined for each subscriber. For example, the allowable bandwidth may be determined according to the subscriber's subscription service type. For example, if the traffic of the subscriber is high quality, the allowable bandwidth is set to a value close to the total bandwidth of the input port of the switch module 30. The higher the quality, the closer the allowable bandwidth value will be to the total bandwidth value. If it is low quality, that is, Best Effort (BE) traffic, the allowable bandwidth is determined according to the policy of how much the aggregation cost and how much to accommodate the BE. The service priority parameter may be divided according to traffic characteristics. In general, traffic is classified into real-time traffic and non-real-time traffic according to the type of service, and high quality and low quality. Therefore, high quality real time traffic, high quality non real time traffic, low quality real time traffic, and low quality non real time traffic are ranked in order of quality, which is defined as service priority.

출발시각 산출부(300)는 우선 입력된 패킷의 세션 식별자를 추출하고, 추출된 세션 식별자를 가지고 세션 파라미터 저장부(200)의 세션 테이블로부터 해당되는 파라미터를 읽어온다. 출발시각 산출부(300)는 읽어들인 파라미터 중 허용 대역폭을 고려하여 패킷의 출발시각을 계산한다. 구체적인 출발시각 계산법에 대해서는 후술하기로 한다. 스케줄러(400)는 출발시각 산출부(300)에서 처리된 패킷의 세션 식별자와 출발시각 정보를 입력받는다. 그리고 그 출발시각에 해당 패킷이 출발하도록 스케줄링한다. 구체적으로 스케줄러(400)는 캘린더 큐를 사용하여 패킷을 출력 순서에 따라 정렬하는 방식으로 스케줄링한다. 패킷을 출발 순서에 따라 정렬하는 방식이란, 캘린더 메모리(calendar memory)의 타임 슬롯(time slot)에 출발할 패킷이 있음을 표시하고, 해당 타임 슬롯이 되었을 때 패킷을 출력시키는 것을 말한다. 본 발명에 따른 스케줄러(400)는 입력된 출발시각 정보에 해당하는 타임 슬롯에 세션 식별자를 저장하고, 해당 타임 슬롯이 되었을 때 그 타임 슬롯에 저장된 세션 식별자를 출력한다. 패킷 출력부(500)는 스케줄러(400)로부터 출력된 세션 식별자를 입력받는다. 그리고 그 세션 식별자에 해당하는 패킷을 패킷 메모리(100)에서 읽어내어 스위치 모듈(30)로 전달한다.The departure time calculation unit 300 first extracts the session identifier of the input packet, and reads a corresponding parameter from the session table of the session parameter storage unit 200 with the extracted session identifier. The departure time calculation unit 300 calculates the departure time of the packet in consideration of the allowable bandwidth among the read parameters. A detailed departure time calculation method will be described later. The scheduler 400 receives the session identifier and departure time information of the packet processed by the departure time calculator 300. The packet is scheduled to depart at the departure time. In more detail, the scheduler 400 schedules the packets using a calendar queue in a sorted order according to the output order. The method of sorting packets according to the departure order indicates that there is a packet to depart in a time slot of a calendar memory, and outputs the packet when the corresponding time slot is reached. The scheduler 400 according to the present invention stores a session identifier in a time slot corresponding to the input departure time information, and outputs a session identifier stored in the time slot when the corresponding time slot is reached. The packet output unit 500 receives a session identifier output from the scheduler 400. The packet corresponding to the session identifier is read from the packet memory 100 and transferred to the switch module 30.

이하 이 같은 구성을 갖는 패킷 스케줄링 장치(20)에서의 패킷 스케줄링에 대해 보다 구체적으로 설명하기로 한다.Hereinafter, packet scheduling in the packet scheduling apparatus 20 having such a configuration will be described in more detail.

출발시각 산출부(300)는 패킷의 세션 식별자를 가지고 해당 세션 파라미터를 읽어들이고 그 파라미터를 고려하여 패킷의 출발시각을 계산한다. 패킷의 출발시 각은 캘린더 메모리의 타임 슬롯 단위로 계산되는데, t를 현재 시각, ts를 캘린더 메모리에서 한 개의 슬롯이 차지하는 시간이라 하면, 타임 슬롯 단위의 시각 k=t/ts가 된다. 따라서 입력 패킷의 길이를 시간으로 표현한 값을 tl이라 하고, 스위치 모듈(30)의 입력 포트의 전체 대역폭을 B, 해당 세션의 허용 대역폭을 A라 하면, 현재 시각을 기준으로 패킷의 출발시각 kd는 다음과 같은 수학식에 의해 계산된다.The departure time calculating unit 300 reads the corresponding session parameter with the session identifier of the packet and calculates the departure time of the packet in consideration of the parameter. The start time of the packet is calculated in units of time slots of the calendar memory. If t is the current time and t s is the time occupied by one slot in the calendar memory, the time k = t / t s is the time slot unit. Therefore, when the length of the input packet is expressed as time t l , the total bandwidth of the input port of the switch module 30 is B, and the allowable bandwidth of the corresponding session is A, the packet departure time k based on the current time. d is calculated by the following equation.

Figure 112008030265569-pat00001
Figure 112008030265569-pat00001

여기서 ts는 고정적인 값이 되며, tl은 입력 패킷별로 가변적일 수 있다. 따라서 tl값에 대해서는 입력 패킷별로 확인하는 과정이 수행됨이 바람직하다.Here, t s is a fixed value and t l may be variable for each input packet. Therefore, it is preferable that the process of checking for each input packet for the t l value is performed.

스케줄러(400)는 다수의 타임 슬롯들로 구성된 캘린더 메모리를 포함한다. 그리고 상술한 바와 같은 방식에 의해 산출된 출발시각에 해당하는 타임 슬롯에 그 패킷의 세션 식별자를 저장한다. 즉, 현재의 타임 슬롯을 기준으로 kd만큼 뒤에 있는 타임 슬롯에 세션 식별자를 저장한다. 스케줄러(400)는 타임 슬롯의 단위 시간마다 타임 슬롯을 순차적으로 하나씩 이동하면서 다음 타임 슬롯을 출력 타임 슬롯으로 지정한다. 그리고 지정된 타임 슬롯에 저장된 세션 식별자를 출력한다. 본 발명의 특징적인 양상에 따라 타임 슬롯은 우선순위 지정된 다수의 큐(Queue)들을 포함한다. 일 실시예에 있어서, 큐(Queue)는 FIFO(First Input First Output) 형 식이다. 그리고 하나의 타임 슬롯에 포함되는 큐(Queue)의 수는 상술한 서비스 우선순위(service priority)의 수와 동일함이 바람직하다.The scheduler 400 includes a calendar memory composed of a plurality of time slots. The session identifier of the packet is stored in a time slot corresponding to the departure time calculated by the method described above. That is, the session identifier is stored in a time slot that is k d later than the current time slot. The scheduler 400 designates the next time slot as an output time slot while sequentially moving one time slot at every unit time of the time slot. The session identifier stored in the specified time slot is output. According to a characteristic aspect of the present invention, a time slot includes a plurality of prioritized queues. In one embodiment, the queue is in the form of First Input First Output (FIFO). The number of queues included in one time slot is preferably equal to the number of service priorities described above.

도 4는 도 2에 도시된 스케줄러(400)의 예시도이다.4 is an exemplary diagram of the scheduler 400 shown in FIG. 2.

도시된 바와 같이, 스케줄러(400)는 다수의 타임 슬롯(420)들로 구성된 캘린더 메모리(410)를 포함한다. 각 타임 슬롯에 저장된 세션 식별자는 타임 슬롯의 순번에 따라 순차적으로 출력되는데, 현재 시점을 k라 하면 다음 시각에는 k+1번째 타임 슬롯에 저장된 세션 식별자가 출력되고, 그 다음 시각에는 k+2번째 타임 슬롯에 저장된 세션 식별자가 출력된다. 각 타임 슬롯은 FIFO 형식의 4개의 큐(Queue)를 포함한다. 여기서 큐(Queue)의 수는 서비스 우선순위(service priority)의 수와 동일하다. 스케줄러(400)는 입력된 세션 식별자를 가지고 세션 테이블의 해당 서비스 우선순위 파라미터를 확인하여 그 우선순위와 동일한 순위를 갖는 큐(Queue)에 입력된 세션 식별자를 저장한다. 그리고 스케줄러(400)는 타임 슬롯에 저장된 세션 식별자를 출력시킬 때 우선 순위가 높은 큐(Queue)에 저장된 세션 식별자부터 먼저 출력시킨다.As shown, the scheduler 400 includes a calendar memory 410 composed of a plurality of time slots 420. The session identifiers stored in each time slot are sequentially output according to the order of time slots. If the current time is k, the session identifier stored in the k + 1 th time slot is output at the next time, and the k + 2 th at the next time. The session identifier stored in the time slot is output. Each time slot contains four queues in FIFO format. The number of queues is equal to the number of service priorities. The scheduler 400 checks the corresponding service priority parameter of the session table with the input session identifier and stores the session identifier entered in a queue having the same priority as the priority. When the scheduler 400 outputs the session identifier stored in the time slot, the scheduler 400 first outputs the session identifier stored in the high priority queue.

그런데 만일 현재 시점인 k번째 타임 슬롯 이전의 k-1번째나 k-2번째 타임 슬롯에 저장된 세션 식별자가 너무 많아서, 해당 출발시각에 세션 식별자가 모두 출력되지 못하는 경우가 발생할 수 있다. 이 경우를 고려하여 스케줄러(400)는 scheduling(430)에서와 같이 k-2번째와 k-1번째 타임 슬롯에 남아있는 세션 식별자가 있는지 확인하고, 있으면 그 세션 식별자를 먼저 출력시킨다.However, if there are too many session identifiers stored in the k-1 th or k-2 th time slots before the k th time slot, which is the current time point, all of the session identifiers may not be output at the corresponding departure time. In consideration of this case, the scheduler 400 checks whether there is a session identifier remaining in the k-2nd and k-1th time slots as in scheduling 430, and if so, outputs the session identifier first.

도 5는 도 4에 도시된 scheduling processer(430)를 구체화한 예시도이다.FIG. 5 is an exemplary view illustrating the scheduling processer 430 illustrated in FIG. 4.

도 5는 k, k-1, k-2번째 타임 슬롯에 저장된 세션 식별자 중 먼저 출력시킬 세션 식별자를 결정하는 방식을 표현한 것이다. 먼저 각 타임 슬롯의 동일한 우선 순위를 갖는 큐(Queue)끼리 비교하여 이전 타임 슬롯부터 라운드 로빈(Round Robin, RR) 방식으로 검색하고, 타임 슬롯 간에는 이전 타임 슬롯을 우선으로 하여 우선순위에 따라 타임 슬롯을 검색함으로써 출력될 세션 식별자를 결정한다. 바람직하게 세션 식별자의 출력 순서는 우선 순위가 높은 큐부터 a → e → i → b → f → j → c → g → k → d → h → l이 된다. 아니면 이전 타임 슬롯부터 차례대로 a → b → c → d → e → f → g → h → i → j → k → l이 될 수도 있다.5 illustrates a method of determining a session identifier to be outputted first among session identifiers stored in k, k-1, and k-2 th time slots. First, the queues having the same priority of each time slot are compared and searched from the previous time slot to the round robin method, and among the time slots, the previous time slot is given priority to time slots according to the priority. Determines the session identifier to be output by searching for. Preferably, the output sequence of the session identifier is a → e → i → b → f → j → c → g → k → d → h → l from the high priority queue. Or it could be a → b → c → d → e → f → g → h → i → j → k → l in order from the previous time slot.

도 6은 도 2에 도시된 패킷 출력부의 예시도이다.FIG. 6 is an exemplary view of a packet output unit shown in FIG. 2.

도시된 바와 같이, 패킷 출력부(500)는 다수의 가상 출력 큐(Virtual Output Queue, VOQ)들을 포함한다. 바람직하게 가상 출력 큐(VOQ)의 수는 상술한 서비스 우선순위의 수와 동일하며, 우선순위를 갖는다. 즉, 서비스 우선순위별로 우선 출력 처리하고자 하는 패킷을 처리할 수 있도록 하고자 함이다. 또한 각 가상 출력 큐(VOQ)는 스위치 모듈(30)의 출력 포트들에 대응되는 포트별 큐(#1 ~ #n)를 포함한다. 일 실시예에 있어서, 가상 출력 큐(VOQ) 간에는 우선순위에 따라 스케줄링하고, 우선순위별 가상 출력 큐(VOQ) 내에 있는 포트별 큐 간에는 라운드 로빈(RR) 방식으로 스케줄링한다. 스케줄링 결과 전달할 패킷의 세션 식별자가 결정되면, 패킷 출력부(500)는 결정된 세션 식별자에 해당되는 패킷을 패킷 메모리(100)로부터 읽어와서 스위치 모듈(30)로 전달한다. 이때 스위치 모듈(30)에서 패킷 충돌이 빈번하여 스위치 모듈(30)의 해당 출력 포트에 과부하가 발생하면, 스위치 모 듈(30)은 패킷 출력부(500)로 BP(back pressure) 신호를 보낸다. BP 신호를 수신한 패킷 출력부(500)는 해당 포트의 큐에 대한 액세스를 생략하여 그 출력 포트로 패킷이 전달되지 않도록 한다.As shown, the packet output unit 500 includes a plurality of virtual output queues (VOQs). Preferably the number of virtual output queues VOQ is equal to the number of service priorities described above and has a priority. In other words, it is intended to be able to process a packet to be prioritized for each service priority. In addition, each virtual output queue VOQ includes port-specific queues # 1 to #n corresponding to output ports of the switch module 30. In one embodiment, scheduling is performed between the virtual output queues VOQ according to priority, and scheduling is performed between the port-specific queues within the priority-specific virtual output queue VOQ in a round robin manner. When the session identifier of the packet to be delivered is determined, the packet output unit 500 reads the packet corresponding to the determined session identifier from the packet memory 100 and delivers the packet to the switch module 30. At this time, if a packet collision occurs frequently in the switch module 30 and an overload occurs in the corresponding output port of the switch module 30, the switch module 30 sends a BP (back pressure) signal to the packet output unit 500. The packet output unit 500 receiving the BP signal omits access to the queue of the corresponding port so that the packet is not transmitted to the output port.

한편, 전술한 예에서는 패킷 스위치로 한정하였으나 이에 한정되는 것은 아니며, 라우터 등 다른 네트워크 장치를 포괄한다.On the other hand, in the above example, but limited to the packet switch, but is not limited to this, encompasses other network devices such as routers.

도 7은 본 발명에 따른 패킷 스케줄링 방법의 흐름도이다.7 is a flowchart of a packet scheduling method according to the present invention.

네트워크 장치에서 외부로부터 입력된 패킷의 출발시각을 스케줄링하는 패킷 스케줄링 방법에 대한 흐름도로써, 네트워크 장치의 입력 인터페이스 장치(10)에 구현된 패킷 스케줄링 장치(20)는 패킷이 입력되면 입력된 패킷의 세션 식별자를 확인한다(단계 S100)(단계 S200). 패킷 스케줄링 장치(20)는 확인된 세션 식별자를 가지고 전술한 바와 같이 해당되는 세션 파라미터를 획득한다(단계 S300). 그리고 획득된 세션 파라미터 중 허용 대역폭 값을 고려하여 [수학식 1]에 의한 공식으로 패킷의 출발시각을 산출한다(단계 S400). 그 다음 산출된 출발시각에 패킷이 출발하도록 스케줄링한다(단계 S500). 스케줄링 방식은 전술한 바와 같다.As a flowchart of a packet scheduling method for scheduling a departure time of a packet input from an external device in a network device, the packet scheduling device 20 implemented in the input interface device 10 of the network device has a session of an input packet when a packet is input. The identifier is checked (step S100) (step S200). The packet scheduling apparatus 20 obtains a corresponding session parameter as described above with the confirmed session identifier (step S300). In addition, the departure time of the packet is calculated using the formula according to [Equation 1] in consideration of the allowable bandwidth value among the obtained session parameters (step S400). The packet is then scheduled to depart at the calculated departure time (step S500). The scheduling scheme is as described above.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위 에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.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 descriptive sense only and not for purposes of limitation. The scope of the present invention is shown not in the above description but in the claims, and all differences within the scope will be construed as being included in the present invention.

도 1은 패킷 스위치 블록도.1 is a packet switch block diagram.

도 2는 본 발명에 따른 패킷 스케줄링 장치의 블록도.2 is a block diagram of a packet scheduling apparatus according to the present invention.

도 3은 세션 테이블 예시도.3 is an exemplary session table.

도 4는 도 2에 도시된 스케줄러의 예시도.4 is an exemplary view of the scheduler shown in FIG.

도 5는 도 4에 도시된 scheduling process 예시도.5 is an exemplary diagram illustrating a scheduling process shown in FIG. 4.

도 6은 도 2에 도시된 패킷 출력부의 예시도.6 is an exemplary view of a packet output unit shown in FIG. 2.

도 7은 본 발명에 따른 패킷 스케줄링 방법의 흐름도.7 is a flowchart of a packet scheduling method according to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 패킷 메모리 200 : 세션 파라미터 저장부100: packet memory 200: session parameter storage unit

300 : 출발시각 산출부 400 : 스케줄러300: departure time calculation unit 400: scheduler

500 : 패킷 출력부500: packet output unit

Claims (8)

삭제delete 삭제delete 외부로부터 입력된 패킷의 출발시각을 스케줄링하는 패킷 스케줄링 장치에 있어서,In the packet scheduling apparatus for scheduling the departure time of a packet input from the outside, 입력된 패킷을 저장하는 패킷 메모리;A packet memory for storing an input packet; 세션별 허용 대역폭과 서비스 우선순위를 포함하는 파라미터를 저장하는 세션 파라미터 저장부;A session parameter storage unit for storing parameters including allowed bandwidth per session and service priority; 상기 입력된 패킷의 세션 식별자를 가지고 상기 세션 파라미터 저장부의 해당 파라미터를 검색하고, 검색된 파라미터의 허용 대여폭을 고려하여 상기 패킷의 출발시각을 산출하는 출발시각 산출부;A departure time calculation unit for retrieving a corresponding parameter of the session parameter storage unit using the session identifier of the input packet and calculating a departure time of the packet in consideration of the allowable rental width of the retrieved parameter; 우선순위 지정된 다수의 큐들을 포함하는 타임 슬롯들을 가지는 캘린더 메모리를 포함하고, 상기 세션 식별자를 상기 산출된 출발시각에 해당하는 타임 슬롯에 저장하되 상기 세션 파라미터 저장부의 해당 파라미터 중 서비스 우선순위 파라미터를 확인하여 확인된 우선순위에 대응하는 큐에 상기 세션 식별자를 저장하며, 단위 시간마다 순차적으로 타임 슬롯을 지정하고 지정된 타임 슬롯 내의 우선순위가 높은 큐에 저장된 세션 식별자부터 출력하는 하나의 스케줄러; 및A calendar memory having time slots including a plurality of prioritized queues, and storing the session identifier in a time slot corresponding to the calculated departure time, wherein a service priority parameter is identified among corresponding parameters of the session parameter storage unit; A scheduler for storing the session identifier in a queue corresponding to the checked priority, sequentially specifying a time slot every unit time, and outputting the session identifier stored in a queue having a high priority within a designated time slot; And 상기 출력된 세션 식별자에 해당하는 패킷을 상기 패킷 메모리에서 읽어들여 출력하는 패킷 출력부;A packet output unit configured to read and output a packet corresponding to the output session identifier from the packet memory; 를 포함하는 것을 특징으로 하는 패킷 스케줄링 장치.Packet scheduling apparatus comprising a. 제3항에 있어서,The method of claim 3, 상기 스케줄러는, 지정된 타임 슬롯의 우선순위가 높은 큐에 저장된 세션 식별자부터 우선 출력하되 적어도 하나의 이전 타임 슬롯의 동일 우선순위를 갖는 큐에 세션 식별자가 저장되어 있으면 그 세션 식별자를 우선 출력하는 것을 특징으로 하는 패킷 스케줄링 장치.The scheduler first outputs a session identifier stored in a queue having a high priority of a designated time slot, but outputs the session identifier if the session identifier is stored in a queue having the same priority of at least one previous time slot. Packet scheduling apparatus. 제3항 또는 제4항에 있어서,The method according to claim 3 or 4, 상기 패킷 출력부는, 상기 타임 슬롯의 큐들과 대응되는 우선순위를 갖는 다수의 가상 출력 큐들을 포함하고, 상기 가상 출력 큐는 스위치 모듈의 출력포트에 대응되는 다수의 가상 출력포트별 큐를 포함하고, 상기 스케줄러에서 받은 세션 식별자를 해당 패킷이 전달될 스위치 모듈의 출력포트에 대응되는 가상 출력포트 큐에 저장하는 것을 특징으로 하는 패킷 스케줄링 장치.The packet output unit may include a plurality of virtual output queues having a priority corresponding to the queues of the time slot, and the virtual output queue includes a plurality of virtual output port-specific queues corresponding to output ports of the switch module. And a session identifier received from the scheduler in a virtual output port queue corresponding to the output port of the switch module to which the packet is to be delivered. 제5항에 있어서,The method of claim 5, 상기 패킷 출력부는, 우선순위가 높은 가상 출력 큐부터 그 큐에 저장된 패킷 식별자에 해당하는 패킷을 상기 패킷 메모리로부터 추출하여 출력하는 것을 특징으로 하는 패킷 스케줄링 장치.The packet output unit extracts a packet corresponding to a packet identifier stored in the queue from the high priority virtual output queue and outputs the packet from the packet memory. 제6항에 있어서,The method of claim 6, 상기 패킷 출력부는, 상기 스위치 모듈로부터 특정 출력 포트에 대한 과부하 상태 신호가 입력되면 과부하가 발생한 출력 포트로 전달될 패킷의 출력을 중단하는 것을 특징으로 하는 패킷 스케줄링 장치.The packet output unit, when the overload status signal for a specific output port is input from the switch module, the packet scheduling apparatus, characterized in that for stopping the output of the packet to be delivered to the output port is overloaded. 삭제delete
KR1020080039227A 2007-12-07 2008-04-28 Packet scheduling apparatus KR100959397B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070127159 2007-12-07
KR20070127159 2007-12-07

Publications (2)

Publication Number Publication Date
KR20090060108A KR20090060108A (en) 2009-06-11
KR100959397B1 true KR100959397B1 (en) 2010-05-24

Family

ID=40990099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080039227A KR100959397B1 (en) 2007-12-07 2008-04-28 Packet scheduling apparatus

Country Status (1)

Country Link
KR (1) KR100959397B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9166924B2 (en) 2012-06-29 2015-10-20 Electronics And Telecommunications Research Institute Packet scheduling method and apparatus considering virtual port

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102124530B1 (en) * 2017-07-04 2020-06-18 주식회사 케이티 Method, optical line terminal and apparatus for scheduling packet in ethernet passive optical network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477144B1 (en) 1998-09-10 2002-11-05 Nortel Networks Limited Time linked scheduling of cell-based traffic
KR20030056287A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 An Apparatus and Method for scheduling the ATM cell using a Calendar
KR20040105973A (en) * 2003-06-10 2004-12-17 한국전자통신연구원 Packet scheduler using calendar memory and driving method there of same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477144B1 (en) 1998-09-10 2002-11-05 Nortel Networks Limited Time linked scheduling of cell-based traffic
KR20030056287A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 An Apparatus and Method for scheduling the ATM cell using a Calendar
KR20040105973A (en) * 2003-06-10 2004-12-17 한국전자통신연구원 Packet scheduler using calendar memory and driving method there of same
KR100542433B1 (en) 2003-06-10 2006-01-11 한국전자통신연구원 Packet scheduling device and packet scheduling method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9166924B2 (en) 2012-06-29 2015-10-20 Electronics And Telecommunications Research Institute Packet scheduling method and apparatus considering virtual port

Also Published As

Publication number Publication date
KR20090060108A (en) 2009-06-11

Similar Documents

Publication Publication Date Title
US6765905B2 (en) Method for reducing packet data delay variation in an internet protocol network
US8467295B2 (en) System and methods for distributed quality of service enforcement
KR100881925B1 (en) Apparatus and method for scheduling of downlink voip packets in mobile communication base station system
JP4338285B2 (en) Packet scheduling method and apparatus
US7385993B2 (en) Queue scheduling mechanism in a data packet transmission system
US6795870B1 (en) Method and system for network processor scheduler
US9608927B2 (en) Packet exchanging device, transmission apparatus, and packet scheduling method
US20030219014A1 (en) Communication quality assuring method for use in packet communication system, and packet communication apparatus with transfer delay assurance function
WO2012145841A1 (en) Hierarchical profiled scheduling and shaping
JP2007201965A (en) Packet repeating apparatus having transmission control function
US8139481B2 (en) Method and equipment for shaping transmission speed of data traffic flow
CN112585914A (en) Message forwarding method and device and electronic equipment
WO2004077767A1 (en) Packet transfer control method and packet transfer control circuit
CN103858474A (en) Enhanced performance service-based profiling for transport networks
KR100959397B1 (en) Packet scheduling apparatus
US7382792B2 (en) Queue scheduling mechanism in a data packet transmission system
CN108234350B (en) Scheduling method and customer premises equipment
US8072885B2 (en) Traffic shaping circuit, terminal device and network node
CA2482130A1 (en) Method for common control of the bandwidths of a group of individual information flows
US20070263542A1 (en) Method for Transmitting Data Available in the Form of Data Packets
US11146485B1 (en) Time sensitive network programming
US9166924B2 (en) Packet scheduling method and apparatus considering virtual port
JP2009124237A (en) Relay device and band control program
Liebeherr et al. A versatile packet multiplexer for quality-of-service networks
JP4104756B2 (en) Method and system for scheduling data packets in a telecommunications network

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