KR100959397B1 - Packet scheduling apparatus - Google Patents
Packet scheduling apparatus Download PDFInfo
- 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
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/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output 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
본 발명은 패킷 스케줄링 장치 및 방법에 관한 것으로, 특히 네트워크 회선을 통해 입력되는 패킷을 저장하고 저장된 패킷의 출발시각을 스케줄링하여 스케줄에 따라 패킷을 출력시키는 패킷 스케줄링 장치 및 방법에 관한 것이다.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
도 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
허용 대역폭(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
출발시각 산출부(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
이하 이 같은 구성을 갖는 패킷 스케줄링 장치(20)에서의 패킷 스케줄링에 대해 보다 구체적으로 설명하기로 한다.Hereinafter, packet scheduling in the
출발시각 산출부(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
여기서 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
도 5는 도 4에 도시된 scheduling processer(430)를 구체화한 예시도이다.FIG. 5 is an exemplary view illustrating the
도 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
한편, 전술한 예에서는 패킷 스위치로 한정하였으나 이에 한정되는 것은 아니며, 라우터 등 다른 네트워크 장치를 포괄한다.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
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위 에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.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)
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)
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)
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)
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 |
-
2008
- 2008-04-28 KR KR1020080039227A patent/KR100959397B1/en not_active IP Right Cessation
Patent Citations (4)
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)
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 |