KR20100096599A - Packet scheduling apparatus and method - Google Patents

Packet scheduling apparatus and method Download PDF

Info

Publication number
KR20100096599A
KR20100096599A KR1020090015550A KR20090015550A KR20100096599A KR 20100096599 A KR20100096599 A KR 20100096599A KR 1020090015550 A KR1020090015550 A KR 1020090015550A KR 20090015550 A KR20090015550 A KR 20090015550A KR 20100096599 A KR20100096599 A KR 20100096599A
Authority
KR
South Korea
Prior art keywords
frame
packet
packets
frame index
index
Prior art date
Application number
KR1020090015550A
Other languages
Korean (ko)
Other versions
KR101523076B1 (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 KR1020090015550A priority Critical patent/KR101523076B1/en
Publication of KR20100096599A publication Critical patent/KR20100096599A/en
Application granted granted Critical
Publication of KR101523076B1 publication Critical patent/KR101523076B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6295Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority

Landscapes

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

Abstract

PURPOSE: A packet scheduling device and a method of the same are provided to leave an imaginary lower frame in the inner side of the frame and arrange packets in an imaginary lower frame and transmit packets, thereby providing flexible delay performance without synchronizing frame between nodes of the same size frame. CONSTITUTION: A scheduler(120) schedules received packets. A multi queue device(130) includes a plurality of lower frame queues(131~13n). The multi queue device respectively stores packets in a plurality of lower frame queue. An output interface(140) transmits the stored packets of a first lower frame queue. If all the packets are transmitted within a lower frame period, the output interface services stored packets of best-effort queue during remaining time.

Description

패킷 스케줄링 장치 및 방법{Packet Scheduling Apparatus and Method}Packet Scheduling Apparatus and Method

본 발명은 ATM 으로부터 패킷 교환 네트워크에 이르기까지 많은 연구와 제안이 이루어진 패킷 스케줄링 알고리즘에 관한 것이다. The present invention relates to a packet scheduling algorithm that has been studied and proposed from ATM to packet switched network.

최근 급격히 증가하고 있는 실시간 분산 미디어 응용 서비스들(ex., grid, e-science, remote collaboration)은, 과거 서버/클라이언트 모델을 중심으로 제공된 단방향 멀티미디어 응용 서비스와는 달리 사용자들 간 실시간 상호작용과 다차원 고품질 미디어(5.1ch audio, HD video 등) 소스들을 기반으로 하는 양방향 복합미디어 응용 서비스로 진화하고 있다. 이들은 보통 여러 개의 고품질/실시간 미디어 스트림을 동시에 활용하기 때문에 대역폭(Mbps~Gbps) 의 보장과 더불어 네트워크 지연 및 지터에 대한 안정적인 성능 보장이 필수적으로 요구된다.In recent years, the rapidly increasing real-time distributed media application services (ex., Grid, e-science, remote collaboration), unlike the one-way multimedia application service provided around the server / client model in the past, real-time interaction and multi-dimensional interaction between users It is evolving into an interactive multimedia application service based on high quality media (5.1ch audio, HD video, etc.) sources. Since they usually utilize multiple high quality / real-time media streams simultaneously, it is essential to guarantee bandwidth (Mbps to Gbps) and to ensure stable performance against network delay and jitter.

실시간 분산 응용 서비스들에 대한 포괄적 의미에서의 QoS(Quality of Service)(대역폭, 지연, 지터 포함) 보장은 미래 인터넷의 핵심 이슈들 중 하나이다. 기존 인터넷은 분산 노드들에 대한 연결성 제공을 최우선적으로 고려해 디자인되었고, 응용 서비스 또한 네트워크 인프라에 대한 이해 없이 필요한 만큼의 네트워킹 자원을 무분별한 경쟁을 통해 사용해 왔다. 이러한 구조 아래에서 나날이 증 가하는 사용자들의 서비스 품질에 대한 요구를 수용하기 위해 여러 가지 방법들이 응용/네트워크 계층에서 제안되어 왔다. 특히, 네트워크에서는 호 수락 제어 (call admission control), 트래픽 접근 제어 (traffic access control), 패킷 스케줄링 (packet scheduling), 버퍼 관리 (buffer management), 플로우 및 혼잡 제어 (flow and congestion control), QoS 라우팅 등이 서비스 품질 보장을 위한 방안으로써 연구되어 왔다. Guaranteeing Quality of Service (QoS) (including bandwidth, delay and jitter) in a comprehensive sense for real-time distributed application services is one of the key issues of the future Internet. The existing Internet was designed with the highest priority in providing connectivity to distributed nodes, and application services have also been able to use as many networking resources as they need without understanding network infrastructure. Under this structure, several methods have been proposed at the application / network layer to accommodate the increasing demands on the quality of service of users. In particular, in networks, call admission control, traffic access control, packet scheduling, buffer management, flow and congestion control, QoS routing, etc. This has been studied as a way to guarantee the quality of service.

이 중 패킷 스케줄링은 각 연결들이 필요로 하는 네트워크 성능(대역폭, 지연, 지터)을 보장하기 위한 대표적인 방법 중 하나로서 ATM 으로부터 패킷 교환 네트워크에 이르기까지 많은 연구와 제안이 이루어졌다. Among them, packet scheduling is one of the representative methods to guarantee the network performance (bandwidth, delay, jitter) required by each connection, and many studies and proposals have been made from ATM to packet switched network.

이들은 주로 각 연결들에 대한 성능(대역폭, 지연, 지터) 보장을 목표로 제안되어 왔으며, 최근에는 실시간 분산 미디어 응용 서비스의 활성화로 인해 네트워크 지연 및 지연 변위와 같은 시간적 측면에서의 보장이 양적인 측면(대역폭과 같은)의 보장만큼이나 중요한 이슈로 떠오르고 있다. 실제로 Fair Queueing(FQ)과 그 변형(e.g., WFQ, WF2Q, SCFQ, SFQ)들은 주로 각 연결들이 요청한 대역폭의 보장과 이에 상응하는 공평한 서비스의 제공을 목표로 개발되어왔지만, Delay-EDD (Early Due Date), Jitter-EDD, Stop-and-Go (SG), Hierarchical Round Robin (HRR)과 같은 스케줄링 방식들은 공평한 서비스의 제공 보다는 할당된 대역폭을 이용해 네트워크의 지연이나 지터에 대한 성능을 보장하는데에 초점을 맞추고 있다. 하지만, 이들 중 Delay-EDD와 Jitter-EDD와 같은 방식들은 계산된 인덱스의 우선 순위화 (sorted priority-based) 를 기반으로 동작하기 때문에 지연과 지터에 대해 비교적 우수한 성능을 제공하는 반면, N개의 연결에 대해 최소 O(logN)의 복잡도를 가지게 된다. 이는 패킷의 처리속도가 매우 빨라야 하는 초고속 네트워크 환경에서는 적합하지 않았다. 한편 SG와 HRR과 같은 프레임 기반 (frame-based) 의 스케줄링 방식은 미리 정해진 길이의 시 구간 별 도착 순서대로 패킷을 처리하기 때문에 매우 간단하며 고속의 패킷 처리가 가능하다는 장점을 가지고 있다. They have been proposed mainly to guarantee the performance (bandwidth, delay, jitter) for each connection. Recently, due to the activation of real-time distributed media application services, the guarantees in terms of time such as network delay and delay displacement are quantitative ( As well as guaranteeing bandwidth). Indeed, Fair Queuing (FQ) and its variants (eg, WFQ, WF2Q, SCFQ, SFQ) have been developed primarily to guarantee the bandwidth requested by each connection and to provide an equal level of service, but Delay-EDD (Early Due) Scheduling schemes such as Date, Jitter-EDD, Stop-and-Go (SG), and Hierarchical Round Robin (HRR) focus on ensuring the performance of network latency or jitter by using allocated bandwidth rather than providing fair services. Is fitting. However, of these methods, such as Delay-EDD and Jitter-EDD, operate on the basis of computed sorted priority-based, which provides relatively good performance against delay and jitter, whereas N connections It has a minimum O (logN) complexity for. This is not suitable in high-speed network environments where packet processing must be very fast. On the other hand, frame-based scheduling methods such as SG and HRR have the advantage of being very simple and high-speed packet processing because the packets are processed in the order of arrival for each time interval of a predetermined length.

시간 프레임 기반 (frame-based) 의 패킷 처리 방식은 두 가지 문제점을 가지고 있다. 첫째, 고정적인 시간 프레임을 기반으로 패킷을 전송하기 때문에, 프레임의 크기에 따라 지연 성능과 프레임에 할당 가능한 연결의 수가 상반된 인과 관계를 가지게 된다. 즉 프레임의 크기를 증가시키면 할당할 수 있는 연결의 수가 증가하는 반면 지연 성능은 나빠지게 된다. 둘째, 모든 네트워크 노드들이 같은 크기의 동기화 된 시간 프레임을 기준으로 패킷을 처리해야 하기 때문에, 대규모 네트워크에 적용하기 힘든 문제점을 가지고 있다. Multiple-framing Stop-and-Go, HRR 에서는 다단계의 프레임 구조를 이용해 이러한 문제를 해결하고자 했으나, 트래픽 명세가 고정적인 시간 원점을 기준으로 하는 프레임 구조와 이의 크기에 기인하기 때문에 각 연결의 트래픽 특성을 네트워크 종단에 걸쳐 보장하기 위해서는 여전히 입출력 링크상에 설정된 프레임들에 대한 정보를 모두 파악하고 있어야 한다. 또한, 각 연결에 대한 지연 성능이 해당 연결과 관계된 프레임의 크기에 따라 고정적으로 정해지기 때문에, 호 수락 단계가 복잡해지고 유연성이 떨어져 실제 구현 및 서비스의 제공 측면에서 바람직하지 못하다.The time frame-based packet processing scheme has two problems. First, since a packet is transmitted based on a fixed time frame, there is a causal relationship between the delay performance and the number of connections that can be allocated to the frame according to the size of the frame. Increasing the size of a frame increases the number of connections that can be allocated, while reducing latency. Second, since all network nodes must process packets based on the same sized synchronized time frame, it is difficult to apply to large networks. Multiple-framing Stop-and-Go and HRR have attempted to solve this problem by using a multi-stage frame structure. However, because the traffic specification is based on the frame structure and its size based on a fixed time origin, To ensure network end-to-end, you still need to know all the information about the frames configured on the I / O link. In addition, since the delay performance for each connection is fixed according to the size of the frame associated with the connection, the call acceptance step becomes complicated and inflexible, which is undesirable in terms of actual implementation and service provision.

요약하면, 타임 스템프(time-stamp)와 같은 인덱싱(indexing)을 이용한 대부 분의 우선순위 기반(sorted-priority based)의 스케줄링 알고리즘들은 N개의 연결에 대해 최소 O(logN)의 복잡도를 가지기 때문에, 초고속 네트워크 환경에는 적합하지 않다. 반대로 프레임 기반의 패킷 스케줄링 방식은 복잡도를 개선하는 대신 프레임 간 동기화를 요구하기 때문에 대규모 네트워크에 적용하기 힘든 구조적 문제점을 가지고 있다. In summary, since most sorted-priority based scheduling algorithms using indexing such as time-stamp have a minimum O (logN) complexity for N connections, It is not suitable for high speed network environment. In contrast, the frame-based packet scheduling scheme has a structural problem that is difficult to apply to a large network because it requires synchronization between frames instead of improving complexity.

상기와 같은 문제점을 해결하기 위해 본 발명은 실시간 분산 미디어 응용 서비스가 요구하는 지연 성능을 보장하고 초고속 네트워크 환경에 적합한 낮은 복잡도를 지닌 패킷 스케줄링 방법 및 장치를 제공하는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to provide a packet scheduling method and apparatus having a low complexity that is suitable for a high-speed network environment and guarantees the delay performance required by a real-time distributed media application service.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따라 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누는 단계와, 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 단계와, 상기 패킷들을 상기 각 할당된 하위 프레임에서 전송하는 단계를 포함한다. According to an embodiment of the present invention, a method of scheduling a packet between an input link and an output link includes dividing a transmission time axis of an output link into a plurality of frames each including at least two subframes; When packets arrive, allocating the packets to subframes of the plurality of frames, and transmitting the packets in the respective allocated subframes.

여기에서, 상기 할당 단계는 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하는 단계와, 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하는 단계와, 상기 패킷의 가상 서비스 프레임을 계산하는 단계와, 상기 패킷 의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하는 단계와, 상기 패킷을 상기 계산된 서비스 프레임에 전송하는 단계를 포함할 수 있다.Herein, the allocating step includes determining whether a packet is from a connection established in advance on the output link when the packet arrives, and when the packet is from the connection, an arrival frame index indicating a frame position on the output link. Converting the packet to a packet, calculating a virtual service frame of the packet, comparing the virtual service frame index of the packet with the arrival frame index, and determining a service frame index according to the result; And transmitting the calculated service frame.

여기에서,제2항에 있어서, 상기 서비스 프레임 인덱스를 결정하는 단계는 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하는 단계일 수 있다. The method of claim 2, wherein the determining of the service frame index comprises: if the packet is the first packet arrived for the connection, determining the next lower frame of the packet's arrival frame index as a virtual service frame index. Can be.

여기에서, 상기 서비스 프레임 인덱스를 결정하는 단계는 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정하는 단계일 수 있다.The determining of the service frame index may include determining the calculated virtual service frame index as the service frame index when the virtual service frame index of the packet lags behind the arrival service frame index in time.

여기에서, 상기 서비스 프레임을 결정하는 단계는 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는 단계일 수 있다.Here, in the determining of the service frame, if the calculated virtual service frame index is temporally ahead of an arrival frame index, the next lower frame value of the lower frame value of the arrival frame index is a lower frame value of the service frame index. It may be a step of setting.

여기에서, 상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 될 수 있다.Here, when the lower frame value of the virtual service frame index exceeds the maximum lower frame value, the first lower frame value of the next frame of the virtual service frame may be a lower frame value of the service frame index.

여기에서, 상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산될 수 있다.Here, the lower frame of the virtual service frame may be calculated by the following equation.

Figure 112009011551770-PAT00001
Figure 112009011551770-PAT00001

여기에서,

Figure 112009011551770-PAT00002
는 기준 하위 프레임의 위치이고,
Figure 112009011551770-PAT00003
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-PAT00004
은 하나의 프레임 내의 최대 하위 프레임의 수이고,
Figure 112009011551770-PAT00005
는 해당 프레임에 도착된 패킷의 수이다. From here,
Figure 112009011551770-PAT00002
Is the position of the base subframe,
Figure 112009011551770-PAT00003
Is the number of packets that can be transmitted within the lower frame,
Figure 112009011551770-PAT00004
Is the maximum number of subframes within one frame,
Figure 112009011551770-PAT00005
Is the number of packets arriving in the frame.

상기 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 나타내는 q값을 1만큼 증가시키는 단계를 더 포함할 수 있다.The method of scheduling a packet between the input link and the output link may further include increasing a q value indicating the number of packets arriving in the corresponding frame after the service step by one.

상기 입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법은, 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하고 별도로 저장하는 단계와, 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 전송하는 단계를 더 포함할 수 있다.The method of scheduling a packet between the input link and the output link may include, if the packet is not from the connection, storing the received packet as a low best-effort traffic and storing it separately, and later if the output link is idle. The method may further include sequentially transmitting the stored packets.

또한, 본 발명의 일 실시예에 따른 입력 링크와 출력 링크 사이에 연결되어 패킷을 스케줄링하는 장치는 상기 입력 링크에 연결되어 상기 입력 링크로부터의 패킷들을 수신하여 버퍼링하고 출력하는 입력 인터페이스와, 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누어진 상태에서 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 스케줄러와, 상기 하위 프레임들 별로 패킷들을 큐잉하는 다중 버퍼 장치와, 상기 다중 버퍼 장치로부터의 상기 패킷들을 전송하는 출력 인터페이스를 포함한다.Further, an apparatus for scheduling a packet connected between an input link and an output link according to an embodiment of the present invention includes an input interface connected to the input link to receive, buffer and output packets from the input link, and an output link. A scheduler for allocating the packets to subframes of the plurality of frames when packets arrive in a state in which a transmission time axis of the subframe is divided into a plurality of frames each including at least two subframes, and packets for each subframe. A multiple buffer device for queuing, and an output interface for transmitting the packets from the multiple buffer device.

여기에서, 상기 스케줄러는 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하고, 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하고, 상기 패킷의 가상 서비스 프레임을 계산하고, 상기 패킷의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하고, 상기 패킷을 상기 계산된 서비스 프레임에 대응하여 상기 다중 버퍼 장치로 전달할 수 있다.Herein, when the packet arrives, the scheduler determines whether the packet is from a connection established in advance on the output link, and if the packet is from the connection, converts the arrival time of the packet into an arrival frame index indicating a frame position on the output link. Calculate a virtual service frame of the packet, compare the virtual service frame index of the packet with the arrival frame index, determine a service frame index according to the result, and match the packet to the calculated service frame. Can be passed to the buffer device.

여기에서, 상기 스케줄러는 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정할 수 있다.Here, if the packet arrives for the first time for the connection, the scheduler may determine the next lower frame of the packet arrival frame index as the virtual service frame index.

여기에서, 상기 스케줄러는 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정할 수 있다.Here, when the virtual service frame index of the packet lags behind the arrival service frame index in time, the scheduler may determine the calculated virtual service frame index as the service frame index.

여기에서, 상기 스케줄러는 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정할 수 있다.Here, the scheduler may set the next lower frame value of the lower frame value of the arrival frame index as the lower frame value of the service frame index when the calculated virtual service frame index is temporally ahead of the arrival frame index.

여기에서, 상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 설정될 수 있다.Here, when the lower frame value of the virtual service frame index exceeds the maximum lower frame value, the first lower frame value of the next frame of the virtual service frame may be set to the lower frame value of the service frame index.

여기에서, 상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산될 수 있다.Here, the lower frame of the virtual service frame may be calculated by the following equation.

Figure 112009011551770-PAT00006
Figure 112009011551770-PAT00006

여기에서,

Figure 112009011551770-PAT00007
는 기준 하위 프레임의 위치이고, 는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-PAT00009
은 하나의 프레임 내의 최대 하위 프레임의 수이고,
Figure 112009011551770-PAT00010
는 해당 프레임에 도착된 패킷의 수이다. From here,
Figure 112009011551770-PAT00007
Is the position of the base subframe, Is the number of packets that can be transmitted within the lower frame,
Figure 112009011551770-PAT00009
Is the maximum number of subframes within one frame,
Figure 112009011551770-PAT00010
Is the number of packets arriving in the frame.

여기에서, 상기 스케줄러는 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 1만큼 증가시킬 수 있다. Here, the scheduler may increase the number of packets arriving in the corresponding frame by one after the service step.

여기에서, 상기 패킷을 스케줄링하는 장치는, 낮은 최선(best-effort) 패킷을 저장하는 별도의 큐를 더 포함하고, 상기 스케줄러는 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하여 상기 별도의 큐에 저장하고, 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 전송할 수 있다.Here, the apparatus for scheduling the packet further includes a separate queue for storing a low best-effort packet, the scheduler is a low-best best-effort packet arrived if the packet is not from the connection The traffic can be stored as a separate queue and stored in a separate queue. If the output link is idle, the stored packets can be sequentially transmitted.

여기에서, 상기 다중 큐 장치는 상기 하위 프레임들에 대응하여 패킷들을 각각 큐잉하는 복수 개의 하위프레임 큐를 포함할 수 있다.Here, the multi-queue device may include a plurality of subframe queues for queuing packets respectively corresponding to the subframes.

본 발명은 실시간 분산 미디어 응용 서비스가 요구하는 지연 성능을 보장하고 초고속 네트워크 환경에 적합한 낮은 복잡도를 지닌 패킷 스케줄링 방법 및 장치를 제공하였다. 본 발명은 프레임 기반의 스케줄링 방식이지만, 프레임 내부에 가상의 하위 프레임들을 두고, 각 프레임에 전송될 패킷들을 가상의 하위 프레임에 분산 배치해 전송함으로써 같은 크기의 프레임을 갖는 노드들 사이에서 프레임 동기화 없이도 유연한 지연 성능을 제공하고, 지연 성능과 할당 가능한 연결의 수에 대한 커플링 문제를 효과적으로 해결할 수 있다. 즉, 프레임 내부의 하위 프레임 개수를 가변적으로 바꿀 수 있기 때문에, 프레임의 크기를 증가시켜도 하위프레임 개수의 조절을 통해 지연 성능을 독립적으로 조절할 수 있다. 따라서 제안된 방법은 서비스의 호 수락 과정에서 예측 가능하고 차등화 된 지연 성능을 제공할 수 있으며, 이를 종단에 걸쳐 보장할 수 있다. 이러한 성능 보장형 패킷 전송 기술은 기존의 mission/time-critical 응용 서비스 분야 (IPTV, 원격의료, 원격협업 등) 에 적극 활용될 수 있으며, 새로운 응용 서비스의 개발과 관련 산업의 활성화에 크게 기여할 것으로 예상된다. The present invention provides a low complexity packet scheduling method and apparatus for guaranteeing the delay performance required by a real-time distributed media application service and suitable for a high speed network environment. Although the present invention is a frame-based scheduling scheme, virtual subframes are placed inside a frame, and packets to be transmitted in each frame are distributed and transmitted in virtual subframes without frame synchronization between nodes having the same frame size. It provides flexible delay performance and effectively solves the coupling problem of delay performance and the number of assignable connections. That is, since the number of lower frames in the frame can be changed variably, the delay performance can be independently adjusted by adjusting the number of subframes even if the size of the frame is increased. Therefore, the proposed method can provide predictable and differentiated delay performance in the call acceptance process of the service, and can guarantee this from end to end. This performance-based packet transmission technology can be actively utilized in the existing mission / time-critical application service fields (IPTV, telemedicine, remote collaboration, etc.) and is expected to greatly contribute to the development of new application services and related industries. .

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들 은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

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

본 발명은 프레임 구조 내에 가상의 하위 프레임들을 두는 2계층 프레임 구조와 이를 이용한 패킷 스케줄링 알고리즘을 통해 고속의 패킷 교환 네트워크 환경에서 다양한 응용 서비스의 전송 품질을 보장하고, 기존 스케줄링 방식의 문제점을 효과적으로 해결할 수 있는 방법을 제공한다. 패킷 전송은 기존 프레임 기반 알고리즘과 같아 매우 간단하지만, 패킷을 내부 하위 프레임에 분산시켜 전송하기 때문에 네트워크 동기화 문제를 효과적으로 해결하고 보다 나은 지연 성능을 제공할 수 있다.The present invention can guarantee the transmission quality of various application services in a high-speed packet switched network environment and effectively solve the problems of the existing scheduling scheme through a two-layer frame structure having virtual subframes in the frame structure and a packet scheduling algorithm using the same. Provide a way. Packet transmission is very simple like the existing frame-based algorithms, but by distributing the packets in the inner subframes, it can effectively solve the network synchronization problem and provide better delay performance.

도 1은 일반적인 패킷 교환 네트워크를 나타낸 도면이다.1 is a diagram illustrating a general packet switched network.

도 1을 참조하면, 2개의 장치(2,4)는 노드 A(10)로 패킷들을 송신한다. 노드 A(10)는 2개의 장치(2,4)로부터 패킷들을 수신하면 이들 패킷들을 전송을 위해 스케줄링하여 다른 노드, 예컨대, 노드 B(20) 또는 노드 C(30)로 전송한다. 노드 A(10)는 라우터 또는 스위치 장치가 될 수 있다. 본 발명은 이와 같이 패킷을 중계하는 노드들(10, 20, 30)에 구현될 수 있다. Referring to FIG. 1, two devices 2, 4 transmit packets to node A 10. When Node A 10 receives packets from two devices 2 and 4, these packets are scheduled for transmission and sent to another node, such as Node B 20 or Node C 30. Node A 10 may be a router or a switch device. The present invention can be implemented in the nodes 10, 20, 30 relaying the packet in this way.

하나의 노드는 각 연결들이 초기에 설정했던 트래픽 명세를 잘 따르는 경우 에 이론적으로 로컬 성능을 보장할 수 있다. 따라서 성능 보장이 필요한 트래픽들은 연결이 설정되는 과정에서 그들이 원하는 트래픽 명세를 선언해야 한다. 노드는 이러한 명세를 이용해 자신의 출력 링크에 가용한 자원의 양과 요청된 자원의 양을 비교해 새로운 연결을 수락하거나 거절할 수 있게 된다. 물론 이러한 성능 보장은 종단간에 이루어져야 하기 때문에 설정된 경로(path)에 존재하는 모든 노드에서 이러한 연결 설정이 성공해야 한다. One node can theoretically guarantee local performance if each connection follows the traffic specification initially established. Therefore, traffic that needs to guarantee performance must declare their desired traffic specification during connection establishment. Using this specification, a node can compare the amount of resources available on its output link with the amount of resources requested to accept or reject new connections. Of course, this performance guarantee must be done end-to-end, so this connection establishment must succeed on all nodes that exist in the established path.

하지만, 본 발명은 경로의 설정 과정은 다루지 않고, 설정된 경로 상에서 각 노드의 출력 링크에서 호 수락 제어를 통해 수락된 연결들로부터 도착된 패킷에 대한 스케줄링을 다룬다. However, the present invention does not deal with the establishment of the path, but deals with the scheduling of packets arriving from the accepted connections through call admission control at the output link of each node on the established path.

본 발명에서는 각 연결들의 트래픽 명세가 Stop-and-go에서 제안한 (r,T)-smooth를 따른다고 가정한다. 이는 임의의 시 구간 T (sec) (i.e., 프레임) 내에 최대 r?T (bits) 의 트래픽이 발생됨을 뜻한다. 여기서 r은 해당 연결에 할당된 대역폭이다. In the present invention, it is assumed that the traffic specification of each connection follows the (r, T) -smooth proposed by Stop-and-go. This means that up to r? T (bits) of traffic occur within any time interval T (sec) (i.e., frame). Where r is the bandwidth allocated for the connection.

본 발명에서는 패킷의 크기가 고정(예컨대, L bits)적인 것으로 가정하고, 할당된 대역폭이 r인 어떤 연결의 경우 한 프레임 내에 전송 가능한 패킷의 수는 (r?T )/L 로 계산될 수 있으며, 이를 Q로 정의한다. In the present invention, it is assumed that the packet size is fixed (e.g., L bits), and for any connection having an allocated bandwidth of r, the number of packets that can be transmitted in one frame may be calculated as (r? T) / L. We define this as Q.

연결이 지나가는 경로에 있는 모든 스위치 (또는 라우터)는 수락된 각 연결에 대한 정보를 저장한다. 각 연결에 대한 정보는 하나의 프레임에 전송 가능한 패킷의 수(Q)와 현재 프레임 내에 서비스된 패킷의 수(q), 및 해당 연결의 ID를 포함한다. 연결이 설정된 직후에는 q값은 0으로 설정된다.. 본 발명은 기존 프레임 기 반의 전송 방식에서 나타나는 전송 프레임 크기와 지연 성능 간 커플링 문제를 효과적으로 해결하기 위해 프레임 구조 내부에 가상의 하위 프레임들을 두고, 해당 프레임에 전송될 패킷들을 가상의 하위 프레임에 배분해 전송하는 2계층 프레임 기반 패킷 스케줄링 알고리즘과 이를 위한 장치를 제공한다. Every switch (or router) in the path through which a connection passes stores information about each accepted connection. The information on each connection includes the number Q of packets that can be transmitted in one frame, the number q of packets serviced in the current frame, and the ID of the connection. Immediately after the connection is established, the q value is set to 0. The present invention places virtual subframes inside the frame structure to effectively solve the coupling problem between the transmission frame size and the delay performance of the conventional frame-based transmission scheme. In addition, the present invention provides a layer 2 frame-based packet scheduling algorithm for distributing and transmitting packets to be transmitted in a corresponding frame to a virtual lower frame and an apparatus therefor.

도 2는 본 발명에 따른 2계층 프레임 기반 패킷 스케줄링 방법을 실행하는 장치의 블록 구성도를 나타낸다.2 is a block diagram of an apparatus for executing a layer 2 frame-based packet scheduling method according to the present invention.

도 2를 참조하면, 2계층 프레임 기반 패킷 스케줄링 장치는 입력 인터페이스(110), 스케줄러(120), 다중 큐 장치(130) 및 출력 인터페이스(140)를 포함한다.Referring to FIG. 2, the layer 2 frame-based packet scheduling apparatus includes an input interface 110, a scheduler 120, a multiple queue apparatus 130, and an output interface 140.

입력 인터페이스(110)는 입력 링크에 연결되어 복수 개의 연결로부터 제공되는 패킷들을 수신하여 버퍼링할 수 있다. 또한, 입력 인터페이스(110)는 복수 개의 연결로부터 제공되는 패킷들을 스케줄러(120)에게 제공한다.The input interface 110 may be connected to the input link to receive and buffer packets provided from the plurality of connections. In addition, the input interface 110 provides the scheduler 120 with packets provided from the plurality of connections.

스케줄러(120)는 복수 개의 연결로부터 제공되는 패킷들을 스케줄링하여 다중 큐 장치(130)에게 제공한다. 구체적으로 스케줄러(120)는 패킷이 도착하면, 도착한 패킷을 출력 링크 상의 프레임 상에 할당한다. The scheduler 120 schedules packets provided from the plurality of connections and provides them to the multiple queue device 130. Specifically, the scheduler 120 assigns the arriving packet on a frame on the output link when the packet arrives.

여기에서, 본 발명에 따른 프레임 구조를 도 3을 참조하여 설명한다.Here, the frame structure according to the present invention will be described with reference to FIG.

도 3을 참조하면, 본 발명에 따른 프레임은 2-계층 프레임 구조를 갖는다. 2-계층 프레임 구조는 프레임(F)과 각 프레임 내부에 n개의 하위 프레임(f)들로 이루어진다. 본 발명에서는 각 패킷의 도착 시점과 서비스 시점을 2-계층 프레임 구조 하에서 처리하기 위해 출력 링크상의 프레임에 고유의 번호를 부여하고, 각 프레임 내부의 하위 프레임에는 1~n 의 번호를 갖는 것으로 가정하고 이를 {F,f}와 같이 표현한다. 즉, 첫번째 프레임의 제1 하위 프레임의 위치는 {1,1}으로 표현될 수 있으며, 네번째 프레임의 제1 하위 프레임의 위치는 {4,1}으로 표현될 수 있다.3, the frame according to the present invention has a two-layer frame structure. The two-tier frame structure consists of a frame F and n subframes f within each frame. In the present invention, in order to process the arrival time and service time of each packet under a two-layer frame structure, it is assumed that a unique number is assigned to a frame on the output link, and a lower frame of each frame has a number of 1 to n. This is expressed as {F, f}. That is, the position of the first lower frame of the first frame may be represented by {1,1}, and the position of the first lower frame of the fourth frame may be represented by {4,1}.

그리고, 하나의 프레임에 포함되는 하위 프레임의 개수는 가변적이다. 그에 따라, 프레임이 증가하여도 하위 프레임의 개수 조절을 통해 지연 성능을 조절할 수 있다. 스케줄러(120)는 이와 같이 2-계층 프레임 상에 수신한 패킷을 할당한다. The number of lower frames included in one frame is variable. Accordingly, even if the frame increases, the delay performance may be adjusted by controlling the number of lower frames. The scheduler 120 thus allocates the received packet on the two-layer frame.

이러한, 스케줄러의 동작을 도 4를 참조하여 상세히 설명한다.The operation of the scheduler will be described in detail with reference to FIG. 4.

도 4는 본 발명의 바람직한 실시예에 따른 스케줄러의 동작을 나타낸 흐름도를 나타낸다. 전술한 바와 같이, 출력 링크의 전송 시간 축은 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누어져 있는 것을 가정한다.4 is a flowchart illustrating the operation of a scheduler according to an exemplary embodiment of the present invention. As described above, it is assumed that the transmission time axis of the output link is divided into a plurality of frames each including at least two subframes.

도 4를 참조하면, 스케줄러(120)는 단계 210에서 패킷이 도착했는 지를 판단한다. 스케줄러(120)는 새로운 패킷이 도착하면, 단계 220에서 우선 해당 패킷의 ID를 확인해 출력 링크에 설정된 연결들로부터 온 것인지 확인한다. 스케줄러(120)는 도착한 패킷이 출력 링크에 설정된 연결로부터 온 것이면, 단계 240으로 진행한다. 또한, 스케줄러(120)는 도착한 패킷이 출력 링크에 설정된 연결로부터 온 것이 아니면, 단계 230에서 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하고 별도로 저장하였다가 서버가 유휴(idle)한 상태에 있으면 순차적으로 전송한다. Referring to FIG. 4, the scheduler 120 determines whether a packet has arrived in step 210. When a new packet arrives, the scheduler 120 first checks the ID of the packet in step 220 to determine whether it is from connections established on the output link. The scheduler 120 proceeds to step 240 if the arriving packet is from a connection established on the output link. In addition, the scheduler 120 considers the packet arriving in step 230 as a low best-effort traffic if it has not come from a connection established on the output link, and stores it separately before the server is idle. If there is, send it sequentially.

그리고, 스케줄러(120)는 단계 240에서 패킷의 도착 시점을 출력 링크 상의 프레임 위치로 변환한다. 즉, 스케줄러(120)는 패킷의 도착 시점을 출력 링크 상의 프레임 및 하위 프레임 위치를 나타내는 도착 프레임 인덱스로 변환한다. The scheduler 120 then converts the arrival time of the packet to the frame position on the output link in step 240. That is, the scheduler 120 converts the arrival time of the packet into an arrival frame index indicating the frame and lower frame positions on the output link.

예를 들면 프레임의 크기가 1 sec 이고, 하위 프레임의 개수가 10개인 경우, 패킷의 도착 시점이 출력 링크의 전송 시간 축에 대해 4.3 sec 라면, 이는 도착 프레임 인덱스 {F=5th (frame), f=3rd (sub-frame)} 즉, {5,3}으로 표현된다. For example, if the size of the frame is 1 sec and the number of subframes is 10, if the arrival time of the packet is 4.3 sec with respect to the transmission time axis of the output link, then the destination frame index {F = 5th (frame), f = 3rd (sub-frame)}, i.e., {5,3}.

이어서, 스케줄러(120)는 단계 250에서 해당 패킷의 가상 서비스 프레임 인덱스를 계산하고 도착 프레임 인덱스와의 비교를 통해 서비스 프레임 인덱스를 결정한다. 그리고, 스케줄러(120)는 단계 260에서 결정된 서비스 프레임이 새로운 프레임인지를 기준 프레임 인덱스와의 비교를 통해 결정한다. Next, the scheduler 120 calculates the virtual service frame index of the packet in step 250 and determines the service frame index through comparison with the arrival frame index. The scheduler 120 determines whether the service frame determined in step 260 is a new frame through comparison with a reference frame index.

여기에서, 가상 서비스 프레임 인덱스 및 서비스 프레임 인덱스는 본 명세서에서 패킷이 서비스될 프레임 상의 위치 및 서비스되는 프레임 상의 위치 {F,f}}를 각각 나타낸다. 그리고, 연결이 설정된 직후에는 해당 연결의 기준 프레임 인덱스인 {FR, fR}값이 0으로 설정된다. 여기에서, 기준 프레임 인덱스는 각 연결에서 패킷이 할당되는 서비스 프레임 인덱스를 결정할 때 기준이 되는 값이다.Here, the virtual service frame index and the service frame index indicate a position on the frame where the packet is to be serviced and a position {F, f}} on the frame being served, respectively. Immediately after the connection is established, the {F R , f R } value, which is the reference frame index of the connection, is set to 0. Here, the reference frame index is a reference value when determining a service frame index to which a packet is allocated in each connection.

스케줄러(120)는 결정된 서비스 프레임이 새로운 프레임이면 단계 270으로 진행하여 해당 서비스 프레임 인덱스를 기준 프레임 인덱스로 업데이트한다. If the determined service frame is a new frame, the scheduler 120 proceeds to step 270 and updates the service frame index with the reference frame index.

이하, 도 5를 참조하여 단계 250 내지 270에 대해 상세히 설명한다.Hereinafter, the steps 250 to 270 will be described in detail with reference to FIG. 5.

도 5는 도착 프레임 인덱스에 대해 가상 서비스 프레임 인덱스 및 서비스 프레임 인덱스의 관계를 나타낸 도면이다.5 is a diagram illustrating a relationship between a virtual service frame index and a service frame index with respect to an arrival frame index.

도 4를 참조하면, 연결 i의 Q(한 프레임 내에 전송 가능한 패킷 수) 값이 2인 경우, 도착 프레임 인덱스를 가지는 연속된 4개의 패킷이 순차적으로 도착된 경 우를 가정한다. 그리고, 각 연결로부터 해당 스위치 또는 라우터에 패킷이 처음 도착하는 경우 기준 프레임 인덱스는 {FR =0, fR=0}으로 설정된다.Referring to FIG. 4, when the value of Q (the number of packets that can be transmitted in one frame) of the connection i is 2, it is assumed that four consecutive packets having the arrival frame index arrive sequentially. And, when a packet first arrives at the switch or router from each connection, the reference frame index is set to {F R = 0, f R = 0}.

먼저, 스케줄러(120)는 연결 i로부터 패킷이 도착하면 패킷의 도착 시점을 출력 링크상의 프레임 위치로 변환한다.패킷의 도착 프레임 인덱스가 {F=5,f=1}이면, 패킷의 도착 프레임 인덱스 중 F(=5) 값이 해당 연결의 기준 프레임 인덱스인 FR(=0)값보다 크므로, 스케줄러(120)는 새로운 프레임에 패킷이 도착했음을 알 수 있게 된다. First, the scheduler 120 converts the arrival time of the packet to the frame position on the output link when the packet arrives from the connection i. If the arrival frame index of the packet is {F = 5, f = 1}, the arrival frame index of the packet F (= 5) of Since the value is larger than the F R (= 0) value of the reference frame index of the connection, the scheduler 120 may know that a packet has arrived in a new frame.

그러면, 스케줄러(120)는 해당 프레임에 해당 연결로부터 처음으로 도착한 패킷의 경우 수신된 출력 링크 상의 도착 프레임 인덱스의 바로 다음 하위 프레임을 해당 패킷의 서비스 프레임 인덱스로 할당해 전송한다. . 예컨대, 스케줄러(120)는 해당 패킷의 도착 프레임 인덱스가 {5,1}이면, 해당 패킷의 서비스 프레임 인덱스는 {5,2}가 될 수 있다. 따라서, 해당 연결에 대해 처음으로 도착한 패킷의 경우에, 스케줄러(120)는 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하며, 이 가상 서비스 프레임 인덱스는 서비스 프레임 인덱스가 된다. 그리고, 스케줄러(120)는 현재 프레임 내에 서비스된 패킷의 수를 나타내는 q를 1만큼 증가시킨다.Then, the scheduler 120 allocates and transmits the next lower frame of the arrival frame index on the received output link as the service frame index of the packet in the case of the packet first arriving from the connection. . For example, if the arrival frame index of the packet is {5,1}, the scheduler 120 may have the service frame index of the packet to be {5,2}. Thus, for the first packet arriving for the connection, the scheduler 120 determines the next lower frame of the packet's arrival frame index as the virtual service frame index, which becomes the service frame index. The scheduler 120 increments q by 1, which indicates the number of packets serviced in the current frame.

그리고, 이 패킷의 서비스 프레임 위치는 해당 프레임에서 기준 프레임 인덱스가 된다. 따라서, 기준 프레임 인덱스는 {FR =5, fR=2}가 된다. 이 기준 프레임 인덱스는 패킷이 새로운 프레임에 서비스될 때마다 업데이트될 수 있다. The service frame position of this packet is a reference frame index in the frame. Therefore, the reference frame index is {F R = 5, f R = 2}. This reference frame index can be updated each time a packet is serviced in a new frame.

한편, 패킷이 도착하였을 때, 패킷의 계산된 가상 서비스 프레임 인덱스는 도착 프레임 인덱스에 대해 앞서는 경우, 동일한 경우, 뒷쳐지는 경우가 발생한다.On the other hand, when a packet arrives, a case where the calculated virtual service frame index of the packet is ahead of the arrival frame index, and the same case, falls behind.

일 예로, 스케줄러(120)는 패킷의 가상 서비스 프레임 인덱스가 도착 서비스 프레임 인덱스보다 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스가 실제 서비스 프레임 인덱스가 되는데, 이하 상세히 설명한다.For example, if the virtual service frame index of the packet lags behind the arrival service frame index in time, the calculated virtual service frame index becomes the actual service frame index, which will be described in detail below.

도착 프레임 인덱스가 {F=5, f=1}인 패킷 이후에, 도착 프레임 인덱스가 {F=5, f=2}인 패킷이 도착하면 패킷의 도착 프레임 인덱스의 F(=5) 값은 해당 연결의 기준 프레임 인덱스 FR (=5)와 같다. 그에 따라 스케줄러는 이미 시작된 프레임에 패킷이 도착했음을 알 수 있다. After a packet with a destination frame index of {F = 5, f = 1}, if a packet with a destination frame index of {F = 5, f = 2} arrives, the F (= 5) value of the packet's arrival frame index is Equivalent to the reference frame index F R (= 5) of the concatenation. As a result, the scheduler knows that a packet has arrived in a frame that has already started.

전술한 바와 같이, 5번째 프레임에 이미 하나의 패킷이 서비스 되었으므로, q값은 1이며 기준 프레임 인덱스는 {FR =5, fR=2}이다. 스케줄러(120)는 해당 연결의 q값을 확인하고 이 패킷이 서비스될 가상 서비스 프레임 인덱스를 계산한다. As described above, since one packet is already served in the fifth frame, the q value is 1 and the reference frame index is {F R = 5, f R = 2}. The scheduler 120 checks the q value of the connection and calculates the virtual service frame index for which this packet will be serviced.

구체적으로 스케줄러(120)는 해당 연결로부터 도착하는 패킷들을 프레임 내의 하위 프레임에 분산시켜 전송하기 위해, 해당 프레임에 처음으로 도착한 패킷의 기준 프레임 인덱스의

Figure 112009011551770-PAT00011
에 기초하여 패킷이 전송될 하위 프레임의 위치를 계산한다. 다시 말해, 스케줄러(120)는 패킷이 서비스될 가상 서비스 프레임 인덱스 즉, 가상 서비스 프레임 인덱스중 하위 프레임값을 다음과 같은 수학식 1에 따라 계산한다. Specifically, the scheduler 120 distributes the packets arriving from the connection to the lower frames in the frame and transmits them to the reference frame index of the first packet arriving in the frame.
Figure 112009011551770-PAT00011
Calculate the position of the lower frame to which the packet is to be transmitted. In other words, the scheduler 120 calculates a lower frame value among the virtual service frame indexes to which the packet is to be serviced, that is, the virtual service frame index, according to Equation 1 below.

Figure 112009011551770-PAT00012
Figure 112009011551770-PAT00012

여기에서,

Figure 112009011551770-PAT00013
는 기준 하위 프레임 값이고,
Figure 112009011551770-PAT00014
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-PAT00015
은 하나의 프레임 내의 하위 프레임의 수이고,
Figure 112009011551770-PAT00016
는 해당 프레임에 도착된 패킷의 수이다.From here,
Figure 112009011551770-PAT00013
Is the base subframe value,
Figure 112009011551770-PAT00014
Is the number of packets that can be transmitted within the lower frame,
Figure 112009011551770-PAT00015
Is the number of subframes within one frame,
Figure 112009011551770-PAT00016
Is the number of packets arriving in the frame.

상기의 경우에는 하위 프레임 값은

Figure 112009011551770-PAT00017
(=4) 이 되어 해당 패킷이 서비스될 가상 서비스 프레임 인덱스는 {F =5, f=4}가 된다. 이 패킷은 도착 프레임 인덱스가 {F =5, f=2}이고, 가상 서비스 프레임 인덱스가 {F =5, f=4}이므로, 결과적으로 서비스될 시점보다 해당 패킷이 먼저 도착한 것이 되므로, 서비스 프레임 인덱스는 {F =5, f=4}가 된다. 그리고, 스케줄러(120)는 현재 프레임 내에 서비스된 패킷의 수를 나타내는 q를 1만큼 증가시킨다.In this case, the lower frame value
Figure 112009011551770-PAT00017
(= 4), and the virtual service frame index to which the packet is to be served is {F = 5, f = 4}. Since the packet has a destination frame index of {F = 5, f = 2} and a virtual service frame index of {F = 5, f = 4}, the packet arrives earlier than the point of service. The index is {F = 5, f = 4}. The scheduler 120 increments q by 1, which indicates the number of packets serviced in the current frame.

다른 예에서, 전술한 바와 같이, 계산된 가상 서비스 프레임 인덱스가 서비스 프레임 인덱스가 되는 경우에, 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 스케줄러(120)는 새로운 프레임의 첫번째 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는데, 이하 상세히 설명한다.In another example, as described above, when the calculated virtual service frame index becomes the service frame index, if the lower frame value of the service frame index exceeds the maximum lower frame value, the scheduler 120 may lower the first lower frame of the new frame. The frame value is set to a lower frame value of the service frame index, which will be described in detail below.

도착 프레임 인덱스가 {F=5, f=4}인 패킷이 도착하면 패킷의 도착 프레임 인덱스의 F(=5) 값은 해당 연결의 기준 프레임 인덱스 FR (=5)와 같다. 그에 따라 스 케줄러는 이미 시작된 프레임에 패킷이 도착했음을 알 수 있다. When a packet with an arrival frame index of {F = 5, f = 4} arrives, the F (= 5) value of the packet's arrival frame index is equal to the reference frame index F R (= 5) of the corresponding connection. This allows the scheduler to know that a packet has arrived in a frame that has already started.

스케줄러(120)는 해당 연결의 q값을 확인한다. 이 예에서는 5번째 프레임에 이미 2개의 패킷들이 서비스되었으므로, q값은 2이다. 해당 패킷의 가상 서비스 프레임의 하위 프레임 값은

Figure 112009011551770-PAT00018
(=6)이 된다. 따라서, 해당 패킷의 서비스 프레임 인덱스는 {F=5, f=6}이 된다. 그러나, 6번째 하위 프레임은 존재하지 않으므로, 이 패킷은 6번째 프레임의 첫번째 하위 프레임에서 서비스되어야 한다. 따라서, 서비스 프레임 인덱스는 {F=6, f=1}이 된다. 이 경우, 패킷이 새로운 프레임에 서비스되기 때문에, 기준 프레임 인덱스는 {FR =6, fR=1}로 업데이트 된다. 또한, 스케줄러(120)는 6번째 프레임에서 하나의 패킷이 서비스되었으므로, q값을 1로 초기화한다. 또 다른 예에서, 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 스케줄러(120)는 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는데, 이하 상세히 설명한다.The scheduler 120 checks the q value of the connection. In this example, the value of q is 2 since two packets are already served in the fifth frame. The lower frame value of the virtual service frame of that packet is
Figure 112009011551770-PAT00018
(= 6). Therefore, the service frame index of the packet is {F = 5, f = 6}. However, since the sixth subframe does not exist, this packet must be serviced in the first subframe of the sixth frame. Therefore, the service frame index is {F = 6, f = 1}. In this case, because the packet is serviced in a new frame, the reference frame index is updated to {F R = 6, f R = 1}. In addition, the scheduler 120 initializes q to 1 since one packet was serviced in the sixth frame. In another example, if the calculated virtual service frame index is temporally ahead of the arrival frame index, the scheduler 120 sets the next lower frame value of the lower frame value of the arrival frame index to the lower frame value of the service frame index. It will be described in detail below.

도착 프레임 인덱스가 {F=6, f=4}인 패킷이 도착하면 패킷의 도착 프레임 인덱스의 F(=6) 값은 해당 연결의 기준 프레임 인덱스 FR (=6)와 같다. 그에 따라 스케줄러는 이미 시작된 프레임에 패킷이 도착했음을 알 수 있다. When a packet with an arrival frame index of {F = 6, f = 4} arrives, the F (= 6) value of the packet's arrival frame index is equal to the reference frame index F R (= 6) of the corresponding connection. As a result, the scheduler knows that a packet has arrived in a frame that has already started.

이 경우, 스케줄러(120)는 해당 연결의 q값을 확인하고, 해당 패킷의 가상 서비스 프레임 인덱스를 계산한다. 전술한 바와 같이, 6번째 프레임에서 이미 한 개의 패킷이 서비스되었으므로, q값은 1이다. In this case, the scheduler 120 checks the q value of the connection and calculates the virtual service frame index of the packet. As described above, since one packet has already been serviced in the sixth frame, the q value is one.

해당 패킷의 가상 서비스 프레임의 하위 프레임 값은

Figure 112009011551770-PAT00019
(=3)이 된다. 따라서, 해당 패킷의 가상 서비스 프레임 인덱스는 {F=6, f=3}이 된다. 그런데, 해당 패킷의 도착 프레임 인덱스가 {F=6, f=4}이므로, 해당 패킷은 서비스될 시점보다 늦게 도착한 것이다. 이 경우 스케줄러(120)는 해당 패킷의 하위 서비스 프레임값을 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 값으로 설정한다. 그에 따라, 이 패킷의 서비스 프레임 인덱스는 {F=7,f=1}이 된다. 또한, 패킷이 새로운 프레임에 서비스되기 때문에, 기준 프레임 인덱스는 {FR =7, fR=1}로 업데이트 된다. 또한, 스케줄러(120)는 7번째 프레임에서 하나의 패킷이 서비스되었으므로, q값을 1로 초기화한다.The lower frame value of the virtual service frame of that packet is
Figure 112009011551770-PAT00019
(= 3). Therefore, the virtual service frame index of the packet becomes {F = 6, f = 3}. However, since the arrival frame index of the packet is {F = 6, f = 4}, the packet arrives later than the time of service. In this case, the scheduler 120 sets the lower service frame value of the packet to the next value of the lower frame value of the arrival frame index. Accordingly, the service frame index of this packet is {F = 7, f = 1}. Also, because the packet is serviced in a new frame, the reference frame index is updated to {F R = 7, f R = 1}. In addition, the scheduler 120 initializes q to 1 since one packet was serviced in the seventh frame.

따라서, 스케줄러(120)는 패킷이 도착하면 패킷의 가상 서비스 프레임이 도착 프레임 인덱스에 대해 앞서는지, 동일한 지 또는 뒤쳐지는 지 판단하고 그 결과에 따라 실제 서비스 프레임을 결정한다.이와 같은 스케줄러(120)의 동작은 다음 표 1과 같이 프로그래밍될 수 있다.Accordingly, when the packet arrives, the scheduler 120 determines whether the virtual service frame of the packet is ahead of, equal to, or behind the arrival frame index, and determines the actual service frame according to the result. The operation of can be programmed as shown in Table 1 below.

Figure 112009011551770-PAT00020
Figure 112009011551770-PAT00020

이어서, 스케줄러(120)는 단계 280에서 패킷을 결정된 서비스 프레임에서 서비스한다. The scheduler 120 then services the packet in the determined service frame at step 280.

스케줄러(120)는 계산된 서비스 프레임에 따라, 2-계층 프레임 상에 수신한 패킷을 할당하고, 이 패킷을 다중 큐 장치(130)로 출력한다. 다중 큐 장치(130)는 프레임의 하위 프레임에 서비스 될 패킷들을 같은 큐에 저장한다.The scheduler 120 allocates the received packet on the two-layer frame according to the calculated service frame and outputs the packet to the multi-queue device 130. The multiple queue device 130 stores the packets to be serviced in the lower frame of the frame in the same queue.

만약 출력 링크상에 단일 큐를 두고 서비스프레임이 결정된 패킷들을 순차적으로 전송하려 한다면, 새로운 패킷이 들어올 때마다 큐 내부의 모든 패킷에 대해 서비스프레임 순으로 정렬(Sorting) 작업을 다시 해야 하기 때문에, 고속의 패킷 처리를 요구하는 환경에는 적합하지 않다.If you put a single queue on the output link and want to send packets that have been determined by the service frame sequentially, every time a new packet comes in, all packets in the queue need to be sorted in order of service frame again. It is not suitable for environments that require packet processing.

본 발명에서는 2n (n은 하위프레임 개수)개의 다중 큐를 각각 서비스 프레임 인덱스에 대응시키고, 서비스프레임 인덱스에 해당하는 패킷들을 각 큐에 저장해 놓았다가 순차적으로 서비스하는 구조를 제공한다.The present invention provides a structure in which 2n (n is the number of subframes) of multiple queues correspond to service frame indexes, and packets corresponding to the service frame indexes are stored in each queue and sequentially serviced.

예컨대, 초기에는 제 1 하위프레임 큐부터 제 2n 하위프레임 큐까지 {1,1}, {1,2}, …, {1,n}, {2,1}, {2,2}, …, {2,n}의 서비스 프레임 인덱스가 대응된다. 이에 따라 서비스프레임 인덱스가 {1,1}인 패킷들은 제 1 하위프레임 큐에 저장되고, 같은 방식으로 서비스프레임 인덱스가 {2,n}인 패킷들은 제 2n 하위 프레임 큐에 각각 저장된다. For example, initially, from the first subframe queue to the second nth subframe queue, {1,1}, {1,2},... , {1, n}, {2,1}, {2,2},... , The service frame index of {2, n} corresponds. Accordingly, packets having a service frame index of {1,1} are stored in the first subframe queue, and packets having a service frame index of {2, n} are stored in a second subframe queue, respectively.

구체적으로, 다중 큐 장치(130)는 복수 개의 하위프레임큐(131 내지 13n)를 포함한다. 다중 큐 장치(130)는 복수 개의 하위프레임큐(131 내지 13n)에 미래에 서비스될 패킷들을 각 하위 프레임 별로 저장해 놓으며, 그에 따라 O(1)의 복잡도를 갖는다. Specifically, the multi-queue device 130 includes a plurality of subframe queues 131 to 13n. The multiple queue apparatus 130 stores packets to be serviced in the future in the plurality of subframe queues 131 to 13n for each subframe, and thus has a complexity of O (1).

본 실시예에서, 다중 큐 장치(130)는 최대 2n개의 연속된 하위 프레임에 할당된 패킷을 저장하기 위한 다중 큐 구조를 갖는다. 각 연결의 트래픽 명세가 (r,T)-smooth 특성을 따르기 때문에, 하나의 프레임 기간 동안 2· r·T 이상의 패킷이 도착하지는 않는다. 따라서 2n개의 다중 큐를 순회하면서 사용하면 입력 트래픽을 처리하는데 문제가 없다. 서비스는 큐 별로 순차적으로 이루어지며, 큐 내부의 패킷이 모두 서비스 될 때까지 서비스는 계속된다. 여기서, 스케줄링 된 패킷은 해당 하위 프레임의 큐에 이미 들어간 패킷의 수를 고려하지 않고 저장되기 때문에, 각 하위 프레임 큐에는 T/n시간 내에 처리할 수 있는 패킷의 양보다 작거나 혹은 큰 수의 패킷이 들어갈 수가 있다. In this embodiment, the multi-queue device 130 has a multi-queue structure for storing packets allocated to up to 2n consecutive subframes. Since the traffic specification of each connection follows the (r, T) -smooth characteristic, no packets more than 2 · r · T arrive in one frame period. Therefore, when using 2n multiple queues while traversing, there is no problem handling input traffic. The service is sequentially performed for each queue, and the service continues until all the packets in the queue are serviced. Here, since the scheduled packet is stored without considering the number of packets already in the queue of the subframe, the number of packets smaller or larger than the amount of packets that can be processed within the T / n time is included in each subframe queue. This can go in.

본 발명에서는 각 패킷이 서비스 될 하위 프레임의 위치보다 빠른 시점에 서비스되는 것을 막기 위해, 전송이 시작되면 출력 인터페이스(140)는 제1 하위프레임 큐에 저장된 패킷들을 전송하고 패킷이 해당 하위 프레임 기간 내에 모두 전송되면 남은 시간동안 best-effort 큐(150)에 저장된 패킷을 서비스한다. 만약 남은 시간이 없다면 출력 인터페이스(140) 는 즉시 다음 하위 프레임 큐에 저장된 패킷을 서비스하기 시작한다. In the present invention, in order to prevent each packet from being serviced earlier than the position of the subframe to be serviced, when the transmission is started, the output interface 140 transmits the packets stored in the first subframe queue and the packet is within the corresponding subframe period. If all are transmitted, the packets stored in the best-effort queue 150 are serviced for the remaining time. If there is no time left, the output interface 140 immediately starts serving the packet stored in the next lower frame queue.

즉, 출력 인터페이스(140)는 최소T/n 간격으로 각 큐를 스위칭하면서 해당 큐에 저장된 패킷을 모두 서비스하는 구성을 갖는다. That is, the output interface 140 is configured to service all the packets stored in the queue while switching each queue at a minimum T / n interval.

전송이 완료된 하위 프레임 큐는 이에 대응하는 서비스 프레임 인덱스가 업데이트된다. 예를 들어, 제1 하위 프레임 큐에 저장된 패킷이 모두 서비스되면, 이에 대응하는 서비스 프레임 인덱스가 {3,1}로 업데이트되어 이에 해당하는 패킷들이 다시 저장되기 시작한다.The lower frame queue in which transmission is completed is updated with the corresponding service frame index. For example, when all the packets stored in the first lower frame queue are serviced, the corresponding service frame index is updated to {3,1} and the corresponding packets start to be stored again.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

도 1은 일반적인 패킷 교환 네트워크를 나타낸 도면이다.1 is a diagram illustrating a general packet switched network.

도 2는 본 발명에 따른 2계층 프레임 기반 패킷 스케줄링 방법을 실행하는 장치의 블록 구성도를 나타낸다.2 is a block diagram of an apparatus for executing a layer 2 frame-based packet scheduling method according to the present invention.

도 3은 본 발명에 따른 프레임 구조를 나타낸 도면이다.3 is a view showing a frame structure according to the present invention.

도 4는 본 발명의 바람직한 실시예에 따른 스케줄러의 동작을 나타낸 흐름도를 나타낸다.4 is a flowchart illustrating the operation of a scheduler according to an exemplary embodiment of the present invention.

도 5는 도착 프레임 인덱스에 대해 가상 서비스 프레임 인덱스 및 서비스 프 레임 인덱스의 관계를 나타낸 도면이다.5 is a diagram illustrating a relationship between a virtual service frame index and a service frame index with respect to an arrival frame index.

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

110: 입력 인터페이스110: input interface

120: 스케줄러120: scheduler

130: 다중 큐 장치130: multiple queue device

140: 출력 인터페이스140: output interface

Claims (19)

입력 링크와 출력 링크 사이에서 패킷을 스케줄링하는 방법에 있어서,A method of scheduling a packet between an input link and an output link, 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누는 단계와,Dividing the transmission time axis of the output link into a plurality of frames, each comprising at least two subframes, 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 단계와,When packets arrive, allocating the packets to subframes of the plurality of frames; 상기 패킷들을 상기 각 할당된 하위 프레임에서 전송하는 단계를 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.And transmitting the packets in each of the allocated lower frames. 제1항에 있어서, The method of claim 1, 상기 할당 단계는,The allocation step, 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하는 단계와,Determining if the packet is from a connection previously established on the output link; 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하는 단계와,Converting the arrival time of the packet to an arrival frame index indicating a frame position on an output link if the packet is from the connection; 상기 패킷의 가상 서비스 프레임을 계산하는 단계와,Calculating a virtual service frame of the packet; 상기 패킷의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하는 단계와,Comparing the virtual service frame index of the packet with the arrival frame index and determining a service frame index according to the result; 상기 패킷을 상기 계산된 서비스 프레임에 전송하는 단계를 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.Transmitting the packet in the calculated service frame. 제2항에 있어서, The method of claim 2, 상기 서비스 프레임 인덱스를 결정하는 단계는,Determining the service frame index, 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하는 단계인 것을 특징으로 하는 패킷 스케줄링 방법.If the packet is the first packet arrived for the connection, determining the next lower frame of the packet arrival frame index as a virtual service frame index. 제2항에 있어서, The method of claim 2, 상기 서비스 프레임 인덱스를 결정하는 단계는,Determining the service frame index, 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정하는 단계인 것을 특징으로 하는 패킷 스케줄링 방법.If the virtual service frame index of the packet lags behind the arrival service frame index in time, determining the calculated virtual service frame index as a service frame index. 제2항에 있어서, The method of claim 2, 상기 서비스 프레임을 결정하는 단계는,Determining the service frame, 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는 단계인 것을 특징으로 하는 패킷 스케줄링 방법.If the calculated virtual service frame index is earlier in time than the arrival frame index, setting the next lower frame value of the lower frame value of the arrival frame index to the lower frame value of the service frame index. . 제4항 또는 제5항에 있어서, The method according to claim 4 or 5, 상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 설정되는 것을 특징으로 하는 패킷 스케줄링 방법.If the lower frame value of the virtual service frame index exceeds the maximum lower frame value, the first lower frame value of the next frame of the virtual service frame is set to the lower frame value of the service frame index. 제2항에 있어서, The method of claim 2, 상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산되는 것을 특징으로 하는 패킷 스케줄링 방법.The lower frame of the virtual service frame is calculated by the following equation.
Figure 112009011551770-PAT00021
Figure 112009011551770-PAT00021
여기에서,
Figure 112009011551770-PAT00022
는 기준 하위 프레임의 위치이고,
Figure 112009011551770-PAT00023
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-PAT00024
은 하나의 프레임 내의 최대 하위 프레임의 수이고,
Figure 112009011551770-PAT00025
는 해당 프레임에 도착된 패킷의 수이다.
From here,
Figure 112009011551770-PAT00022
Is the position of the base subframe,
Figure 112009011551770-PAT00023
Is the number of packets that can be transmitted within the lower frame,
Figure 112009011551770-PAT00024
Is the maximum number of subframes within one frame,
Figure 112009011551770-PAT00025
Is the number of packets arriving in the frame.
제7항에 있어서, The method of claim 7, wherein 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 나타내는 q값을 1만큼 증가시키는 단계를 더 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.And increasing the q value representing the number of packets arriving in the corresponding frame by one after the service step. 제1항에 있어서, The method of claim 1, 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하고 별도로 저장하는 단계와,If it is not a packet from the connection, storing the received packet as the best best-effort traffic and storing it separately; 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 패킷 스케줄링 방법.And subsequently transmitting the stored packets sequentially if the output link is idle. 입력 링크와 출력 링크 사이에 연결되어 패킷을 스케줄링하는 장치에 있어서,An apparatus for scheduling a packet connected between an input link and an output link, the apparatus comprising: 상기 입력 링크에 연결되어 상기 입력 링크로부터의 패킷들을 수신하여 버퍼링하고 출력하는 입력 인터페이스와,An input interface coupled to the input link to receive, buffer, and output packets from the input link; 출력 링크의 전송 시간 축을 적어도 2개의 하위 프레임을 각각 포함하는 복수 개의 프레임으로 나누어진 상태에서 패킷들이 도착하면, 상기 패킷들을 상기 복수 개의 프레임의 하위 프레임들에 할당하는 스케줄러와,A scheduler for allocating packets to subframes of the plurality of frames when packets arrive in a state in which a transmission time axis of an output link is divided into a plurality of frames each including at least two subframes; 상기 하위 프레임들 별로 패킷들을 큐잉하는 다중 버퍼 장치와,A multiple buffer device for queuing packets for each of the lower frames; 상기 다중 버퍼 장치로부터의 상기 패킷들을 전송하는 출력 인터페이스를 포함하는 것을 특징으로 하는 패킷 스케줄링 장치.And an output interface for transmitting the packets from the multiple buffer device. 제10항에 있어서, The method of claim 10, 상기 스케줄러는 패킷이 도착하면 상기 출력 링크에 미리 설정된 연결로부터 온 패킷인지를 판단하고, 상기 연결로부터 온 패킷이면 상기 패킷의 도착 시점을 출력 링크 상의 프레임 위치를 나타내는 도착 프레임 인덱스로 변환하고, 상기 패킷의 가상 서비스 프레임을 계산하고, 상기 패킷의 가상 서비스 프레임 인덱스를 상기 도착 프레임 인덱스와 비교하여 그 결과에 따라 서비스 프레임 인덱스를 결정하고, 상기 패킷을 상기 계산된 서비스 프레임에 대응하여 상기 다중 버퍼 장치로 전달하는 것을 특징으로 하는 패킷 스케줄링 장치.When the packet arrives, the scheduler determines whether the packet is from a connection established in advance on the output link. If the packet is from the connection, the scheduler converts the arrival time of the packet into an arrival frame index indicating a frame position on the output link. Calculates a virtual service frame of the packet, compares the packet's virtual service frame index with the arrival frame index, and determines a service frame index according to the result, and transmits the packet to the multi-buffer device corresponding to the calculated service frame. Packet scheduling apparatus characterized in that the transfer. 제11항에 있어서, The method of claim 11, 상기 스케줄러는 상기 패킷이 상기 연결에 대해 처음으로 도착한 패킷이면, 패킷의 도착 프레임 인덱스의 바로 다음 하위 프레임을 가상 서비스 프레임 인덱스로 결정하는 것을 특징으로 하는 패킷 스케줄링 장치.And the scheduler determines the next lower frame of the packet arrival frame index as the virtual service frame index if the packet is the first packet arrived for the connection. 제11항에 있어서, The method of claim 11, 상기 스케줄러는 상기 패킷의 가상 서비스 프레임 인덱스가 상기 도착 서비스 프레임 인덱스 시간적으로 뒤쳐지면, 계산된 가상 서비스 프레임 인덱스를 서비스 프레임 인덱스로 결정하는 것을 특징으로 하는 패킷 스케줄링 장치.And if the virtual service frame index of the packet lags behind the arrival service frame index in time, the scheduler determines the calculated virtual service frame index as a service frame index. 제11항에 있어서, The method of claim 11, 상기 스케줄러는 상기 계산된 가상 서비스 프레임 인덱스가 도착 프레임 인덱스 보다 시간적으로 앞서면, 상기 도착 프레임 인덱스의 하위 프레임 값의 바로 다음 하위 프레임 값을 서비스 프레임 인덱스의 하위 프레임 값으로 설정하는 것을 특징으로 하는 패킷 스케줄링 장치.The scheduler sets the next lower frame value of the lower frame value of the arrival frame index as the lower frame value of the service frame index when the calculated virtual service frame index is ahead of the arrival frame index. Device. 제13항 또는 제14항에 있어서, The method according to claim 13 or 14, 상기 가상 서비스 프레임 인덱스의 하위 프레임 값이 최대 하위 프레임 값을 초과하면, 상기 가상 서비스 프레임의 다음 프레임의 첫번째 하위 프레임 값이 서비스 프레임 인덱스의 하위 프레임 값으로 설정되는 것을 특징으로 하는 패킷 스케줄링 장치.And when the lower frame value of the virtual service frame index exceeds the maximum lower frame value, the first lower frame value of the next frame of the virtual service frame is set to the lower frame value of the service frame index. 제11항에 있어서, The method of claim 11, 상기 가상 서비스 프레임의 하위 프레임은 다음 수학식에 의해 계산되는 것을 특징으로 하는 패킷 스케줄링 장치.And a lower frame of the virtual service frame is calculated by the following equation.
Figure 112009011551770-PAT00026
Figure 112009011551770-PAT00026
여기에서,
Figure 112009011551770-PAT00027
는 기준 하위 프레임의 위치이고,
Figure 112009011551770-PAT00028
는 하위 프레임 내에서 전송 가능한 패킷 수이고,
Figure 112009011551770-PAT00029
은 하나의 프레임 내의 최대 하위 프레임의 수이고,
Figure 112009011551770-PAT00030
는 해당 프레임에 도착된 패킷의 수이다.
From here,
Figure 112009011551770-PAT00027
Is the position of the base subframe,
Figure 112009011551770-PAT00028
Is the number of packets that can be transmitted within the lower frame,
Figure 112009011551770-PAT00029
Is the maximum number of subframes within one frame,
Figure 112009011551770-PAT00030
Is the number of packets arriving in the frame.
제16항에 있어서, The method of claim 16, 상기 스케줄러는 상기 서비스 단계 후에 상기 해당 프레임에 도착된 패킷의 수를 1만큼 증가시키는 것을 특징으로 하는 패킷 스케줄링 장치.And the scheduler increases the number of packets arriving in the corresponding frame by one after the service step. 제10항에 있어서, The method of claim 10, 낮은 최선(best-effort) 패킷을 저장하는 별도의 큐를 더 포함하고, Further includes a separate queue to store low best-effort packets, 상기 스케줄러는 상기 연결로부터 온 패킷이 아니면, 도착한 패킷을 낮은 최선(best-effort) 트랙픽으로 간주하여 상기 별도의 큐에 저장하고, 추후 출력 링크가 유휴 상태이면 상기 저장한 패킷들을 순차적으로 서비스하는 것을 특징으로 하는 패킷 스케줄링 장치.If the scheduler is not a packet from the connection, the scheduler considers the received packet as a low best-effort traffic and stores it in the separate queue. Packet scheduling apparatus characterized in that. 제10항에 있어서, The method of claim 10, 상기 다중 큐 장치는 상기 하위 프레임들에 대응하여 패킷들을 각각 큐잉하는 복수 개의 하위프레임 큐를 포함하는 것을 특징으로 하는 패킷 스케줄링 장치.The multi-queue device comprises a plurality of sub-frame queues for queuing packets respectively corresponding to the sub-frames.
KR1020090015550A 2009-02-25 2009-02-25 Packet Scheduling Apparatus and Method KR101523076B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090015550A KR101523076B1 (en) 2009-02-25 2009-02-25 Packet Scheduling Apparatus and Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090015550A KR101523076B1 (en) 2009-02-25 2009-02-25 Packet Scheduling Apparatus and Method

Publications (2)

Publication Number Publication Date
KR20100096599A true KR20100096599A (en) 2010-09-02
KR101523076B1 KR101523076B1 (en) 2015-05-27

Family

ID=43004105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090015550A KR101523076B1 (en) 2009-02-25 2009-02-25 Packet Scheduling Apparatus and Method

Country Status (1)

Country Link
KR (1) KR101523076B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4309129B2 (en) * 2000-10-24 2009-08-05 ノーテル・ネットワークス・リミテッド Shared channel structure, ARQ system and method

Also Published As

Publication number Publication date
KR101523076B1 (en) 2015-05-27

Similar Documents

Publication Publication Date Title
US7701849B1 (en) Flow-based queuing of network traffic
EP1239637B1 (en) Time based packet scheduling and sorting system
EP2302843B1 (en) Method and device for packet scheduling
Liu et al. Delay-optimized video traffic routing in software-defined interdatacenter networks
EP1867112B1 (en) Assigning resources to items such as processing contexts for processing packets
US20220150159A1 (en) Control device, switch device and methods
EP1528728A1 (en) Packet scheduling based on quality of service and index of dispersion for counts
Ashourian et al. An improved node scheduling scheme for resilient packet ring network
KR101737516B1 (en) Method and apparatus for packet scheduling based on allocating fair bandwidth
CN106330710B (en) Data stream scheduling method and device
Kaur et al. Core-stateless guaranteed throughput networks
US8467401B1 (en) Scheduling variable length packets
KR100739493B1 (en) Packet traffic management system and method for developing the quality of service for ip network
KR101523076B1 (en) Packet Scheduling Apparatus and Method
Tong et al. Quantum varying deficit round robin scheduling over priority queues
KR100369562B1 (en) Emulated weighted fair queueing algorithm for high-speed integrated service networks and the scheduler therefor
Mohanty et al. On fair scheduling in heterogeneous link aggregated services
JP2005244290A (en) Shaping device capable of minimizing delay of preferential packet
Şimşek et al. A new packet scheduling algorithm for real-time multimedia streaming
Ghaffar et al. The output-controlled round robin scheduling in differentiated services edge switches
Wu Link-sharing method for ABR/UBR services in ATM networks
Ahmed et al. Switched Multi-hop Priority Queued Networks-Influence of priority levels on Soft Real-time Performance
Zhu et al. A new scheduling scheme for resilient packet ring networks with single transit buffer
Adaikalam et al. A Modified Priority-Based Multischeduler (PBMS) for Optical Network
Tu et al. Enhanced bulk scheduling for supporting delay sensitive streaming applications

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
FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 5