KR20210053157A - Method and server for stream scheduling - Google Patents

Method and server for stream scheduling Download PDF

Info

Publication number
KR20210053157A
KR20210053157A KR1020200074198A KR20200074198A KR20210053157A KR 20210053157 A KR20210053157 A KR 20210053157A KR 1020200074198 A KR1020200074198 A KR 1020200074198A KR 20200074198 A KR20200074198 A KR 20200074198A KR 20210053157 A KR20210053157 A KR 20210053157A
Authority
KR
South Korea
Prior art keywords
stream
data
transmitted
client
streams
Prior art date
Application number
KR1020200074198A
Other languages
Korean (ko)
Other versions
KR102326986B1 (en
Inventor
이원준
김순재
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Publication of KR20210053157A publication Critical patent/KR20210053157A/en
Application granted granted Critical
Publication of KR102326986B1 publication Critical patent/KR102326986B1/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/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/628Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Abstract

According to an aspect of the present application, a stream scheduling method performed by a server comprises the following steps of: assigning data to a plurality of streams according to preset conditions if a data transmission request is received from a client; measuring a size and request time of data assigned to a stream; and arranging the stream in a stream queue and selecting a stream to be transmitted based on the measured data size and request time to transmit the same to the client. A stream is a continuous flow of data that an application layer wants to transmit when data is transmitted. Streams arranged in the stream queue are sorted from the earliest request time. The measured data sizes are sorted in a descending order and data are transmitted to the client in the sorted order.

Description

스트림 스케줄링 방법 및 서버{METHOD AND SERVER FOR STREAM SCHEDULING}Stream scheduling method and server {METHOD AND SERVER FOR STREAM SCHEDULING}

본 발명은 스트림 스케줄링 방법 및 서버에 관한 것으로, 보다 상세하게는 OSI(Open System Interconnection) 7 계층 모델에서의 전송 계층 프로토콜이 스트림 다중화(stream multiplexing)를 지원할 때 어떤 스트림의 데이터를 언제, 얼마만큼 송신할 것인지를 결정하는 스트림 스케줄링 방법에 관한 것이다.The present invention relates to a stream scheduling method and a server, and more particularly, when a transport layer protocol in an OSI (Open System Interconnection) 7 layer model supports stream multiplexing, when and how much data is transmitted. It relates to a stream scheduling method that determines whether to do so.

OSI 7 계층 모델의 전송 계층은 양 종단 간의 신뢰성 있는 데이터 전송을 담당하며 이 계층의 대표적인 프로토콜인 TCP의 경우 전송에 실패한 패킷을 재전송하는 방식으로 신뢰성 있는 통신을 제공한다. 그러나 하나의 TCP 연결을 이용하여 서로 독립적인 다수의 데이터를 보내려 하는 경우 하나의 바이트 스트림만 제공하는 TCP의 특성상 한 데이터의 전송이 다른 데이터 전송을 지연시키는 HOL 블로킹(HoLB : Head-of-Line Blocking) 문제가 발생할 수 있다. 이 문제를 해결하기 위해 전송 단위로 다수의 스트림을 지원하고 하나의 연결 내에서 이 스트림들을 동시에 전송하는 스트림 다중화 기능을 지원하는 전송 계층 프로토콜이 제안되었다. 대표적으로 QUIC, SCTP 두 프로토콜이 여기에 해당한다.The transport layer of the OSI 7 layer model is responsible for reliable data transmission between both ends, and in the case of TCP, the representative protocol of this layer, provides reliable communication by retransmitting packets that have failed to be transmitted. However, HOL blocking (HoLB: Head-of-Line Blocking) delays the transmission of other data due to the nature of TCP that provides only one byte stream when trying to send multiple independent data using one TCP connection. ) Problems may occur. To solve this problem, a transport layer protocol has been proposed that supports a plurality of streams as a transmission unit and supports a stream multiplexing function that simultaneously transmits these streams within a single connection. Representatively, QUIC and SCTP are two protocols.

전송 계층 프로토콜의 스트림이란 서로 독립적인 데이터를 전송하기 위한 하나의 단위이다. 한 스트림 내부에서 전송되는 데이터들은 전송 순서대로 수신이 완료되어야 하지만 어떤 스트림과 다른 스트림 데이터의 송신 순서와 시간은 정해진 바가 없다. 따라서 다수의 스트림이 한 연결 내에 존재하는 상황에서 어떤 스트림을 언제, 얼마만큼 보낼 것인지를 결정하는 스트림 스케줄링 문제가 발생한다.The stream of the transport layer protocol is a unit for transmitting independent data. Data transmitted within one stream must be received in the order of transmission, but the transmission order and time of data from one stream and other streams are not determined. Accordingly, in a situation where a plurality of streams exist in one connection, a stream scheduling problem occurs in which a stream is determined when and how much to send.

패킷 스위치 네트워크와 같이 여러 주체가 공유된 자원을 나누어 사용하는 경우 이들 간의 공평한 자원 사용이 일반적인 고려 사항이 된다. 따라서 자원을 할당한 결과 개별 주체가 대역폭, 지연 시간 측면에서 공평한 서비스를 받았는지를 측정하여 자원 할당 방법이 공평성이 있는지를 확인하게 된다. 특정 주체가 악의적으로 자원을 많이 사용하여 다른 주체가 더 적은 자원을 할당받게 되는 문제를 막기 위한 방법도 필요하다. Fair Queuing 방법과 그 변형은 여러 주체가 네트워크 자원을 나누어 사용하려 하는 상황에서 대역폭과 지연 시간 공평성 측면에서 이점이 있다고 알려져 있어 흔히 사용되는 방법이다.When multiple subjects share and use shared resources, such as a packet switch network, fair use of resources among them becomes a general consideration. Therefore, as a result of allocating resources, it is possible to check whether the resource allocation method is fair by measuring whether an individual subject has received a fair service in terms of bandwidth and delay time. There is also a need for a method to prevent a problem in which a specific subject is maliciously using a lot of resources and other subjects are allocated fewer resources. The Fair Queuing method and its variants are commonly used because they are known to have an advantage in terms of bandwidth and latency fairness in situations where multiple subjects try to share network resources.

하지만 스트림 다중화가 지원되는 전송 계층 프로토콜에서의 스트림 스케줄링 문제는 일반적인 네트워크에서의 자원 할당 문제와는 다르다. 일반적인 네트워크 자원 할당 문제는 개별 주체가 공유하는 자원을 더 많이 할당받고자 한다고 가정한다. 그러나 전송 계층 프로토콜의 개별 스트림은 본래 하나의 응용이 사용하는 것으로, 더 많은 자원 할당을 위해 스트림 간의 경쟁이 일어나지 않는다. 성능 지표 역시 개별 스트림별로 측정하는 것이 아니라 이들 스트림을 사용하는 상위 계층인 응용 수준에서 측정된다.However, the stream scheduling problem in a transport layer protocol supporting stream multiplexing is different from the resource allocation problem in a general network. The general network resource allocation problem assumes that an individual subject wants to allocate more of the shared resources. However, individual streams of the transport layer protocol are originally used by one application, and there is no contention between streams for more resource allocation. Performance indicators are also measured at the application level, which is the upper layer that uses these streams, not for individual streams.

대한민국 공개특허공보 제10-2006-0096077호 (발명의 명칭: 다중 채널들을 통해 데이터 통신하기 위한 방법 및 장치)Republic of Korea Patent Publication No. 10-2006-0096077 (title of the invention: method and apparatus for data communication through multiple channels)

본 발명은 전술한 문제점을 해결하기 위한 것으로, 응용이 스트림 다중화가 지원되는 전송 계층 프로토콜을 이용하여 다수의 독립된 데이터를 전송할 때 개별 데이터 전송의 지연 시간을 줄이기 위해, 각 데이터 전송을 위한 스트림들이 송신 대기중인 상황에서 어떤 스트림을 보낼지를 결정하는 스트림 스케줄링 방법을 제공하는 것을 기술적 과제로 한다.The present invention is to solve the above-described problem, in order to reduce the delay time of individual data transmission when an application transmits a plurality of independent data using a transport layer protocol supporting stream multiplexing, streams for each data transmission are transmitted. It is a technical problem to provide a stream scheduling method that determines which stream to send in a waiting situation.

모든 스트림이 서로 다른 주체가 아닌 하나의 주체인 상위 응용이 이용하는 전송 단위라는 점에 기초하여, 스트림 간의 공평성을 우선순위로 두는 것이 아니라 먼저 전송이 완료될 것이 예상되는 스트림부터 송신하는 원칙을 바탕으로 하는 스트림 스케줄링 방법을 제공한다.Based on the fact that all streams are transmission units used by higher-level applications that are one subject rather than different subjects, it is based on the principle of transmitting the stream from which the transmission is expected to be completed first, rather than prioritizing fairness between streams. Provides a stream scheduling method.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 개시의 제 1측면에 따른 서버에 의해 수행되는 스트림 스케줄링 방법은, 클라이언트로부터 데이터 전송 요청이 수신되면, 기설정된 조건에 따라 데이터를 복수의 스트림에 할당하는 단계; 스트림에 할당된 데이터의 크기와 요청 시간을 측정하는 단계; 및 스트림 대기열에 스트림을 배치하고, 측정된 데이터 크기 및 요청 시간을 기초로 송신할 스트림을 선택하여 클라이언트에 송신하는 단계; 를 포함한다. 스트림은 데이터 전송시 응용 계층이 송신하고자 하는 데이터의 연속된 흐름인 것이고, 스트림 대기열에 배치된 스트림은 요청 시간이 빠른 것부터 순서대로 정렬되고, 측정된 데이터 크기가 작은 것부터 순서대로 정렬되어, 정렬된 순서대로 클라이언트에 송신되는 것이다.As a technical means for solving the above-described technical problem, the stream scheduling method performed by the server according to the first aspect of the present disclosure, when a data transmission request is received from a client, transfers data to a plurality of streams according to a preset condition. Allocating; Measuring the size of data allocated to the stream and a request time; And arranging the stream in the stream queue, selecting a stream to be transmitted based on the measured data size and the request time, and transmitting the selected stream to the client. Includes. Stream is a continuous flow of data that the application layer wants to transmit when transmitting data, and streams placed in the stream queue are sorted in order from the earliest request time, and sorted in order from the smallest measured data size. It is sent to the client in order.

상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 개시의 제 2측면에 따른 서버에 의해 수행되는 스트림 스케줄링 서버는, 스트림 스케줄링 프로그램이 저장된 메모리; 상기 메모리에 저장된 프로그램을 실행하는 프로세서를 포함한다. 상기 프로세서는 상기 프로그램의 실행에 의해, 클라이언트로부터 데이터 전송 요청이 수신되면, 기설정된 조건에 따라 데이터를 복수의 스트림에 할당하고, 상기 스트림에 할당된 데이터의 크기와 요청 시간을 측정하고, 스트림 대기열에 상기 스트림을 배치하고, 스트림 대기열에 배치된 스트림은 상기 요청 시간이 빠른 것부터 순서대로 정렬되고, 상기 측정된 데이터 크기가 작은 것부터 순서대로 정렬되어, 측정된 상기 데이터 크기 및 요청 시간을 기초로 정렬된 순서대로 송신할 스트림을 선택하여 상기 클라이언트에 송신한다. 상기 스트림은 데이터 전송시 응용 계층이 송신하고자 하는 데이터의 연속된 흐름인 것이다.As a technical means for solving the above technical problem, a stream scheduling server performed by a server according to a second aspect of the present disclosure includes: a memory storing a stream scheduling program; And a processor that executes a program stored in the memory. When a data transmission request is received from a client by execution of the program, the processor allocates data to a plurality of streams according to a preset condition, measures the size and request time of the data allocated to the stream, and performs a stream queue. The streams are arranged in the stream queue, and the streams arranged in the stream queue are arranged in order from the earliest to the request time, and the measured data size is arranged in order from the smallest, and sorted based on the measured data size and request time. Streams to be transmitted are selected in the order specified and transmitted to the client. The stream is a continuous flow of data to be transmitted by the application layer during data transmission.

전술한 본원의 과제 해결 수단 중 어느 하나에 의하면, 개별 데이터들의 전송 완료 시간이 줄어듦에 따라 이를 수신하는 응용이 먼저 도착한 데이터를 신속히 활용하거나 처리할 수 있다. 마지막 데이터의 전송이 끝나는 시간은 어떠한 스트림 스케줄링 방법을 사용하더라도 차이가 없지만, 마지막 이외의 데이터의 경우 본 발명을 통해 전송 완료 시간이 감소하게 되며 따라서 전체 데이터 활용의 효율성은 향상될 수 있다.According to any one of the above-described problem solving means of the present application, as the transmission completion time of individual data decreases, an application receiving the data may quickly utilize or process the data that arrives first. Although there is no difference in the time at which the transmission of the last data ends regardless of which stream scheduling method is used, in the case of data other than the last, the transmission completion time is reduced through the present invention, and thus the efficiency of using the entire data can be improved.

도 1은 본 발명의 일 실시예에 따른 스트림 스케줄링 시스템의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 스트림 스케줄링 서버의 구성을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법을 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 스트림 스케줄링 방법을 설명하는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 스트림 스케줄링 방법에서 스트림 전송시 지연을 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 적용을 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 효과를 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 효과를 설명하기 위해 선입선처리(FCFS: First-Come, First-Served) 기법의 효과를 설명하는 도면이다.
도 9는 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 효과를 설명하기 위해 라운드 로빈(Round Robin)기법의 효과를 설명하는 도면이다.
1 is a block diagram showing the configuration of a stream scheduling system according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a stream scheduling server according to an embodiment of the present invention.
3 is a diagram illustrating a stream scheduling method according to an embodiment of the present invention.
4 is a flowchart illustrating a stream scheduling method according to an embodiment of the present invention.
5 is a diagram illustrating a delay in transmitting a stream in a stream scheduling method according to an embodiment of the present invention.
6 is a diagram illustrating application of a stream scheduling method according to an embodiment of the present invention.
7 is a diagram illustrating an effect of a stream scheduling method according to an embodiment of the present invention.
FIG. 8 is a diagram illustrating the effect of a First-Come, First-Served (FCFS) technique to explain the effect of a stream scheduling method according to an embodiment of the present invention.
9 is a view for explaining the effect of the round robin technique to explain the effect of the stream scheduling method according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present application will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present application. However, the present application may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts irrelevant to the description are omitted in order to clearly describe the present application, and similar reference numerals are attached to similar parts throughout the specification.

본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. Throughout this specification, when a part is said to be "connected" with another part, this includes not only the case that it is "directly connected", but also the case that it is "electrically connected" with another element interposed therebetween. do.

본원 명세서 전체에서, 어떤 부재가 다른 부재 “상에” 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.Throughout this specification, when a member is positioned “on” another member, this includes not only the case where a member is in contact with the other member, but also the case where another member exists between the two members.

이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로, 통신이 일어나는 과정을 단계적으로 파악하여 흐름을 한눈에 알아보고 관리하기 위한 모델이다. OSI 7 계층은 물리 계층(Physical Layer), 데이터링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 구성된다.The OSI 7 layer divides the process of communication in the network into 7 stages, and is a model for identifying and managing the flow at a glance by grasping the process of communication in stages. The OSI 7 layer consists of a physical layer, a data link layer, a network layer, a transport layer, a session layer, a presentation layer, and an application layer.

응용 계층(Application layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.The application layer directly relates to the application process and performs general application services. Typical application services provide switching between related application processes.

전송 계층(Transport layer)은 양 끝단(End to end)의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 시퀀스 넘버 기반의 오류 제어 방식을 사용한다. 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. 또한 전송 계층은 종단간(end-to-end) 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터를 전송하며, 기능은 오류검출 및 복구와 흐름제어, 중복검사 등을 수행한다.The transport layer allows end-to-end users to send and receive reliable data, so that upper layers do not think about the effectiveness or efficiency of data transfer. It uses a sequence number-based error control method. The transport layer controls the validity of a particular connection, and some protocols are stateful and connection oriented. This means that the transport layer checks whether the transmission of packets is valid and retransmits the packets that failed to be transmitted. In addition, the transport layer is the lowest layer that deals with end-to-end communication and transmits reliable and efficient data from end to end, and its functions perform error detection and recovery, flow control, and redundancy check.

가장 잘 알려진 전송 계층의 예는 TCP이며, 스트림 다중화를 지원하는 전송 계층 포로토콜은 QUIC 또는 SCTP이 있다. 스트림 다중화는 하나의 연결 내에서 전송 단위로 다수의 스트림을 지원하여 다수의 스트림들을 동시에 전송하는 기능이다. 이 때 스트림은 응용 계층이 송신하고자 하는 바이트의 연속된 흐름을 추상화 한 것이다. An example of the most well-known transport layer is TCP, and the transport layer protocol supporting stream multiplexing is QUIC or SCTP. Stream multiplexing is a function of simultaneously transmitting multiple streams by supporting multiple streams as a transmission unit within one connection. In this case, the stream is an abstraction of the continuous flow of bytes that the application layer wants to transmit.

스트림 제어 전송 프로토콜(SCTP: Stream Control Transmission Protocol)은 컴퓨터 네트워킹에서 전송 계층 프로토콜의 하나로서, 잘 알려진 프로토콜인 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP)와 비슷한 역할을 수행한다. TCP와 UDP의 동일한 서비스 기능들 가운데 일부를 제공한다. TCP처럼 연결지향적 프로토콜이며 혼잡 제어를 통해 신뢰성 있는 순차적 메시지 전송을 보장한다.Stream Control Transmission Protocol (SCTP) is one of the transport layer protocols in computer networking and plays a similar role to well-known protocols such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). It provides some of the same service functions of TCP and UDP. Like TCP, it is a connection-oriented protocol and guarantees reliable sequential message transmission through congestion control.

QUIC (Quick UDP Internet Connections) 프로토콜은 지연시간이 적은 인터넷 프로토콜로 계층 추가를 통해 TCP와 같은 신뢰성을 제공하고, 하나의 연결로 다수의 병렬 스트림으로 데이터를 동시 전송하며, 순서에 맞는 전송처리를 하는 특징이 있다.QUIC (Quick UDP Internet Connections) protocol is an Internet protocol with low latency. It provides the same reliability as TCP by adding a layer, and simultaneously transmits data in multiple parallel streams with one connection, and performs transmission processing in accordance with the order. There are features.

도 1은 본 발명의 일 실시예에 따른 스트림 스케줄링 시스템의 구성을 도시한 블록도이다. 1 is a block diagram showing the configuration of a stream scheduling system according to an embodiment of the present invention.

스트림 스케줄링 방법은 서버(100) 또는 클라이언트(200)에서 실시될 수 있다. 서버(100)는 클라이언트(200)의 요청에 따라 데이터를 클라이언트(200)에 전송한다. 클라이언트(200)는 서버(100)에 보내는 한 번의 요청에 여러 데이터를 요청하며, 이 데이터들은 서로 독립된 데이터로써 서로 다른 스트림을 통해 전송될 수 있다. 서버(100)는 데이터를 가지고 있는 입장이므로 각 데이터의 크기를 미리 알고 있을 수 있다. 또한 클라이언트(200)가 서버(100)에 데이터를 요청하는 횟수에는 제한이 없다.The stream scheduling method may be implemented in the server 100 or the client 200. The server 100 transmits data to the client 200 according to the request of the client 200. The client 200 requests multiple data in a single request sent to the server 100, and these data are independent data and may be transmitted through different streams. Since the server 100 has data, the size of each data may be known in advance. In addition, there is no limit to the number of times the client 200 requests data from the server 100.

도 2는 본 발명의 일 실시예에 따른 스트림 스케줄링 서버의 구성을 도시한 블록도이다. 2 is a block diagram showing the configuration of a stream scheduling server according to an embodiment of the present invention.

도시된 바와 같이 스트림 스케줄링 서버(100)는 통신 모듈(110), 메모리(120), 프로세서(130), 데이터베이스(140) 및 입력모듈(150)을 포함할 수 있다.As shown, the stream scheduling server 100 may include a communication module 110, a memory 120, a processor 130, a database 140, and an input module 150.

통신모듈(110)은 접속된 클라이언트(200)과 데이터를 송수신할 수 있다. 통신모듈(110)은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.The communication module 110 may transmit and receive data with the connected client 200. The communication module 110 may be a device including hardware and software necessary for transmitting and receiving a signal such as a control signal or a data signal through a wired or wireless connection with another network device.

메모리(120)에는 스트림 스케줄링 프로그램이 저장된다. 스트림 스케줄링 프로그램은 클라이언트로부터 데이터 전송 요청이 수신되면, 기설정된 조건에 따라 데이터를 스트림에 할당하고, 상기 스트림에 할당된 데이터의 크기와 요청 시간을 측정하고, 스트림 대기열에 상기 스트림을 배치하고, 측정된 상기 데이터 크기 및 요청 시간을 기초로 송신할 스트림을 선택하여 클라이언트에 송신한다.A stream scheduling program is stored in the memory 120. When a data transmission request is received from a client, the stream scheduling program allocates data to a stream according to a preset condition, measures the size and request time of the data allocated to the stream, places the stream in a stream queue, and measures The stream to be transmitted is selected and transmitted to the client based on the data size and the requested time.

이러한 메모리(120)에는 스트림 스케줄링 서버(100)의 구동을 위한 운영 체제나 스트림 스케줄링 프로그램의 실행 과정에서 발생되는 여러 종류가 데이터가 저장된다. Various types of data generated in the process of executing an operating system for driving the stream scheduling server 100 or a stream scheduling program are stored in the memory 120.

이때, 메모리(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다. In this case, the memory 120 collectively refers to a nonvolatile storage device that continuously maintains stored information even when power is not supplied, and a volatile storage device that requires power to maintain the stored information.

또한, 메모리(120)는 프로세서(130)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 여기서, 메모리(120)는 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치 외에 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.In addition, the memory 120 may perform a function of temporarily or permanently storing data processed by the processor 130. Here, the memory 120 may include a magnetic storage media or a flash storage media in addition to a volatile storage device requiring power to maintain stored information, but the scope of the present invention is limited thereto. It does not become.

프로세서(130)는 메모리(120)에 저장된 프로그램을 실행하되, 스트림 스케줄링 프로그램의 실행에 따르는 전체 과정을 제어한다. 프로세서(130)가 수행하는 각각의 동작에 대해서는 추후 보다 상세히 살펴보기로 한다.The processor 130 executes a program stored in the memory 120, but controls the entire process according to the execution of the stream scheduling program. Each operation performed by the processor 130 will be described in more detail later.

이러한 프로세서(130)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이 크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The processor 130 may include all types of devices capable of processing data. For example, it may refer to a data processing device embedded in hardware having a circuit that is physically structured to perform a function represented by a code or command included in a program. As an example of a data processing device built into the hardware as described above, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific application-specific device (ASIC) Integrated circuit) and processing devices such as a field programmable gate array (FPGA) may be covered, but the scope of the present invention is not limited thereto.

데이터베이스(140)는 프로세서(130)의 제어에 따라, 스트림 스케줄링 시스템에 필요한 데이터를 저장 또는 제공한다. 이러한 데이터베이스(140)는 메모리(120)와는 별도의 구성 요소로서 포함되거나, 또는 메모리(120)의 일부 영역에 구축될 수도 있다.The database 140 stores or provides data necessary for the stream scheduling system under the control of the processor 130. The database 140 may be included as a separate component from the memory 120 or may be built in a partial area of the memory 120.

도 3은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법을 설명하는 도면이다.3 is a diagram illustrating a stream scheduling method according to an embodiment of the present invention.

클라이언트에 의해 데이터가 요청되면, 스트림 할당부는 데이터의 독립성 여부에 따라 데이터를 특정 스트림에 배치할 수 있다. 서로 독립되어 관련이 없다고 판단되는 데이터는 서로 다른 스트림에 할당되며, 의존성이 있으며 데이터의 전송 순서가 지켜져야 하는 데이터는 같은 스트림에 할당된다. 하나의 메시지에 포함된 데이터들은 관련성이 있는 데이터로 판단될 수 있다. 이 때 메시지는 데이터의 논리적 단위로 전송 처리를 위한 제어 또는 변조 신호가 아닌, 어떤 의미 단위로 구분되고, 그 내부에 실제 정보가 들어있는 신호를 의미한다.When data is requested by a client, the stream allocating unit may allocate data to a specific stream according to whether or not the data is independent. Data that are determined to be independent of each other and are not related are allocated to different streams, and data that have dependence and that the transmission order of data must be observed are allocated to the same stream. Data included in one message may be determined as relevant data. In this case, the message is a logical unit of data, not a control or modulated signal for transmission processing, but a signal that is divided into a certain semantic unit and contains actual information therein.

데이터 측정부는 요청된 데이터의 크기와 요청 시간을 측정하여 각 데이터에 할당한다. 클라이언트의

Figure pat00001
번째 요청에 대해, 요청이 이루어진 시간을
Figure pat00002
, 요청된 데이터의 수를
Figure pat00003
라고 하면, 데이터 측정부는
Figure pat00004
번째 요청에 포함된
Figure pat00005
개의 데이터의 각 크기인
Figure pat00006
을 계산할 수 있다. 한편, 각 요청이 이루어진 시간
Figure pat00007
는 자연히 하기 수학식1을 따르게 된다.The data measurement unit measures the size and request time of the requested data and allocates it to each data. Client's
Figure pat00001
For the first request, the time the request was made
Figure pat00002
, The number of requested data
Figure pat00003
If you say, the data measurement unit
Figure pat00004
Included in the second request
Figure pat00005
The size of each of the data
Figure pat00006
Can be calculated. Meanwhile, the time each request was made
Figure pat00007
Naturally follows Equation 1 below.

[수학식 1][Equation 1]

Figure pat00008
Figure pat00008

이를 바탕으로 데이터 측정부는 요청된 각 데이터에 대해 요청 시간과 데이터의 크기를 나타내는 값인

Figure pat00009
를 부여한다. 스트림 할당부와 데이터 측정부에 의해 스트림의 할당과 데이터의 크기가 측정된 데이터는 스트림 대기열에 배치된다. 그 이후 스케줄러는 스트림 대기열의 데이터에 대해
Figure pat00010
의 값이 작은 것부터 오름차순으로, 그 다음은
Figure pat00011
의 값이 작은 것부터 오름차순으로 전송할 데이터를 선택한다. 여러 데이터에 부여된
Figure pat00012
의 값이 같은 경우 그 중 하나를 임의로 선택할 수 있다.Based on this, the data measurement unit
Figure pat00009
Is given. Data for which the stream allocation and data size are measured by the stream allocating unit and the data measuring unit are placed in the stream queue. After that, the scheduler reads the data in the stream queue.
Figure pat00010
From smallest to ascending, then
Figure pat00011
Select the data to be transmitted in ascending order from the smallest value of. Given to multiple data
Figure pat00012
If the values of are the same, one of them can be arbitrarily selected.

패킷 손실이 감지되어 재전송이 일어나는 경우 재전송 패킷을 가장 먼저 송신해야 하므로 재전송이 일어난 경우는 고려하지 않는다. 또한 본 스트림 스케줄링의 대상이 되는 것은 응용 데이터를 전달하는 스트림에 대한 것으로, 연결 수립 및 관리를 위한 데이터 전송은 그 대상이 아니다. 송신할 데이터가 결정된 이후에는 패킷 데이터 대기열로 전달된다.When retransmission occurs because packet loss is detected, the retransmission packet must be transmitted first, so retransmission is not considered. In addition, the target of this stream scheduling is for the stream that delivers application data, and the data transmission for connection establishment and management is not the target. After the data to be transmitted is determined, it is delivered to the packet data queue.

도 4는 본 발명의 일 실시예에 따른 스트림 스케줄링 방법을 설명하는 순서도이다.4 is a flowchart illustrating a stream scheduling method according to an embodiment of the present invention.

서버(100)는 클라이언트(200)로부터 데이터 전송 요청이 수신되면(S110), 기설정된 조건에 따라 데이터를 스트림에 할당한다(S120). 클라이언트(200)는 복수의 데이터 전송을 요청할 수 있고, 서버(100)는 요청된 복수의 데이터에 대해 데이터간에 의존성이 있거나 데이터의 전송 순서가 지켜져야 하는 데이터는 동일 스트림에 할당하고, 서로 독립되어 관련이 없는 데이터는 서로 다른 스트림에 할당할 수 있다.When a data transmission request is received from the client 200 (S110), the server 100 allocates data to the stream according to a preset condition (S120). The client 200 may request transmission of a plurality of data, and the server 100 allocates data that has dependence between data or the transmission order of data must be observed for the requested plurality of data to the same stream, and is independent of each other. Irrelevant data can be assigned to different streams.

서버(100)는 스트림에 할당된 데이터의 크기와 요청 시간을 측정한다(S130). The server 100 measures the size of the data allocated to the stream and the request time (S130).

서버(100)는 스트림 대기열에 스트림을 배치한다(S140). 스트림 대기열은 데이터가 할당된 스트림들이, 스트림 스케줄러에 의해 선택되기 전 대기하는 곳으로, 스트림 대기열에 저장된 순서되로 송신되는 것은 아니다.The server 100 places a stream in the stream queue (S140). The stream queue is a place to wait before the streams to which data is allocated are selected by the stream scheduler, and are not transmitted in the order stored in the stream queue.

측정된 데이터 크기 및 요청 시간을 기초로 송신할 스트림을 선택하여 클라이언트에 송신한다(S150).The stream to be transmitted is selected and transmitted to the client based on the measured data size and request time (S150).

서버(100)는 측정된 요청 시간이 작은 스트림부터 먼저 선택하여 클라이언트에 송신하거나, 측정된 데이터 크기가 작은 스트림부터 먼저 선택하여 클라이언트에 송신할 수 있다.The server 100 may first select a stream having a small measured request time and transmit it to the client, or select a stream having a small measured data size first and transmit it to the client.

이 때, 스트림 스케줄링 방법은 스트림 다중화를 지원하는 OSI 7 계층 모델의 전송 계층 프로토콜을 통해 수행될 수 있다. 예를 들어 전송 계층 프로토콜은 QUIC 또는 SCTP 중 어느 하나인 것일 수 있다. 또한 본 발명에서 수행되는 스트림 스케줄링 방법은 클라이언트의 단일 응용에서 요청한 데이터 및 스트림을 대상으로 하는 것일 수 있다.In this case, the stream scheduling method may be performed through a transport layer protocol of an OSI 7 layer model supporting stream multiplexing. For example, the transport layer protocol may be either QUIC or SCTP. In addition, the stream scheduling method performed in the present invention may target data and streams requested by a single application of a client.

도 5는 본 발명의 일 실시예에 따른 스트림 스케줄링 방법에서 스트림 전송시 지연을 설명하는 도면이다.5 is a diagram illustrating a delay in transmitting a stream in a stream scheduling method according to an embodiment of the present invention.

본 발명은 저지연 응용 서비스를 제공하기 위해 스트림 스케줄링 방법을 제공한다. 개별 스트림이 크기가 정해진 메시지를 보낼 때, 메시지가 전송 계층으로 요청된 시간부터 통신 상대방에게 전송이 완료되기까지의 시간을 지연(latency)이라 하고, 모든 메시지의 지연의 총합을 줄이는 것이 본 발명의 목표이다. 도5에 표시된 바와 같이 스트림별로 할당된 데이터의 크기가 다르기 때문에, 스트림을 전송하는 순서에 따라 각 스트림별 지연의 총 합은 달라질 수 있다.The present invention provides a stream scheduling method to provide a low-latency application service. When an individual stream sends a message with a fixed size, the time from the time the message is requested to the transport layer to the completion of transmission to the communication counterpart is called latency, and reducing the sum of the delays of all messages is a method of the present invention. It's the goal. As shown in FIG. 5, since the size of data allocated for each stream is different, the total sum of delays for each stream may vary according to the order in which the streams are transmitted.

도 6은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 적용을 설명하는 도면이다.6 is a diagram illustrating application of a stream scheduling method according to an embodiment of the present invention.

본 발명의 효과를 확인하기 위해 본발명의 스트림 스케줄링, 선입선처리 스케줄링, 라운드로빈 스케줄링 각각을 사용하여 데이터를 송신한다. 매 송신은 라운드 단위로 이루어지며, 각 라운드에서 보내는 데이터 크기는 10, 20, 40, 40, 40으로 설정될 수 있다.In order to confirm the effect of the present invention, data is transmitted using each of the stream scheduling, first-in-first-out scheduling, and round-robin scheduling of the present invention. Each transmission is performed in a round unit, and the data size transmitted in each round can be set to 10, 20, 40, 40, 40.

스트림의 크기는 A: 16seg, B: 9seg, C: 14seg, D: 4seg, E: 31seg, F: 11 seg, G: 15 seg, H: 18 seg, I: 3seg, J: 7 seg, K: 11seg 이다.The stream size is A: 16seg, B: 9seg, C: 14seg, D: 4seg, E: 31seg, F: 11 seg, G: 15 seg, H: 18 seg, I: 3seg, J: 7 seg, K: It is 11seg.

스트림 A,B는 라운드 1 전에 요청되고, 스트림 C,D는 라운드 2전에 요청되고, 스트림 E,F,G는 라운드3전에 요청되고, 스트림 H,I,J는 라운드4전에 요청되고, 스트림 K는 라운드 5전에 요청된다.Streams A and B are requested before round 1, streams C and D are requested before round 2, streams E, F, and G are requested before round 3, streams H, I and J are requested before round 4, and stream K Is requested before round 5.

라운드당 송신 데이터 크기의 변화는 TCP, QUIC 등의 실제 사용되는 혼잡 제어 기법(AIMD 기반)과 유사하다. 매 전송에 걸리는 시간은 100 ms로 가정할 수 있다. 라운드가 시작되기 전에 송신 요청된 데이터만 그 라운드의 스케줄링 대상에 포함될 수 있다. 예를 들어 도 6의 스트림 C, D의 데이터는 라운드 1에 전송될 수 없고 라운드2에 스케줄링 될 것이다.The change in the size of transmitted data per round is similar to the congestion control technique (AIMD-based) actually used such as TCP and QUIC. The time taken for each transmission can be assumed to be 100 ms. Only data requested to be transmitted before the round starts may be included in the scheduling target of the round. For example, data of streams C and D of FIG. 6 cannot be transmitted in round 1 and will be scheduled in round 2.

본 발명에 해당하는 Low Latency(LL) 스케줄링은 데이터의 크기가 작은 순서대로 전송한다. 본 발명의 결과는 도 7에서 설명한다.Low Latency (LL) scheduling according to the present invention transmits data in order of small size. The results of the present invention are described in FIG. 7.

선입선처리 스케줄링은 요청 시간 순서대로 전송하며, 요청 시간이 동일한 경우 임의 순서 혹은 스트림 식별 번호 순서대로 전송한다. 선입선처리 스케줄링에 따른 결과는 도8에서 설명한다.First-in-first-out scheduling is transmitted in order of request time, and if the request time is the same, it is transmitted in random order or in the order of stream identification number. The results of the first-in-first-out processing scheduling are described in FIG. 8.

라운드로빈 스케줄링은 모든 스트림을 일정 단위로 나누어 공평하게 돌아가며 전송한다. 라운드로빈 스케줄링에 따른 결과는 도 9에서 설명한다.Round-robin scheduling divides all streams into a certain unit and transmits them in a fair manner. The results according to the round robin scheduling will be described in FIG. 9.

어떤 스케줄링 기법을 사용하든 마지막 데이터 전송이 끝나가는 시점은 변함이 없으나 본 발명을 적용하면 개별 데이터의 지연 시간을 줄이는 이점을 얻을 수 있음을 확인할 수 있다.Regardless of which scheduling technique is used, the time point at which the last data transmission ends is not changed. However, it can be seen that an advantage of reducing the delay time of individual data can be obtained by applying the present invention.

도 7은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 효과를 설명하는 도면이다.7 is a diagram illustrating an effect of a stream scheduling method according to an embodiment of the present invention.

라운드 1에서는 스트림 A 중 1 및 스트림 B중 9를 전송하고, 라운드 2에서는 A:15, C:1, D:4를 전송한다. 라운드 3에서는 C:13, E:1, F:11, G:15 라운드 4에서는 E:30, I:3, J:7 을 전송한다. 라운드 5에서는 H:18,K:11을 전송하고 모든 스트림의 전송이 완료된다.In round 1, 1 of stream A and 9 of stream B are transmitted, and in round 2, A:15, C:1, and D:4 are transmitted. Round 3 sends C:13, E:1, F:11, G:15 Round 4 sends E:30, I:3, J:7. In round 5, H:18,K:11 are transmitted and all streams are transmitted.

이 때 각 스트림별 지연시간은 A: 200 ms, B: 100 ms, C: 200 ms, D: 100 ms, E: 200 ms, F: 100 ms, G: 100 ms, H: 100 ms, I: 100 ms, J: 100 ms, K: 100 ms이다. 스트림별 지연시간을 모두 합친 총 지연시간은 1400 ms 이다.At this time, the delay time for each stream is A: 200 ms, B: 100 ms, C: 200 ms, D: 100 ms, E: 200 ms, F: 100 ms, G: 100 ms, H: 100 ms, I: 100 ms, J: 100 ms, K: 100 ms. The total delay time combined with the delay times for each stream is 1400 ms.

도 8은 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 효과를 설명하기 위해 선입선처리 기법의 효과를 설명하는 도면이다.8 is a diagram illustrating an effect of a first-in-first-out processing technique to explain the effect of a stream scheduling method according to an embodiment of the present invention.

라운드 1에서는 스트림 A 중 10을 전송하고, 라운드 2에서는 A:6, B:9, C:5를 전송한다. 라운드 3에서는 C:9, D:4, E:27 라운드 4에서는 E:4, F:11, G:15, H:10을 전송한다. 라운드 5에서는 H:8, I:3, J:7,K11을 전송하고 모든 스트림의 전송이 완료된다.In round 1, 10 of stream A is transmitted, and in round 2, A:6, B:9, and C:5 are transmitted. Round 3 sends C:9, D:4, E:27 Round 4 sends E:4, F:11, G:15, H:10. In round 5, H:8, I:3, J:7, K11 are transmitted, and all streams are transmitted.

이 때 각 스트림별 지연시간은 A: 200 ms, B: 100 ms, C: 200 ms, D: 100 ms, E: 200 ms, F: 100 ms, G: 100 ms, H: 200 ms, I: 100 ms, J: 100 ms, K: 100 ms이다. 스트림별 지연시간을 모두 합친 총 지연시간은 1500 ms 이다.At this time, the delay time for each stream is A: 200 ms, B: 100 ms, C: 200 ms, D: 100 ms, E: 200 ms, F: 100 ms, G: 100 ms, H: 200 ms, I: 100 ms, J: 100 ms, K: 100 ms. The total delay time combined with the delay times for each stream is 1500 ms.

도 9는 본 발명의 일 실시예에 따른 스트림 스케줄링 방법의 효과를 설명하기 위해 라운드로빈 기법의 효과를 설명하는 도면이다.9 is a diagram for explaining the effect of the round robin technique in order to explain the effect of the stream scheduling method according to an embodiment of the present invention.

라운드 1에서는 스트림 A :5 B:5를 전송하고, 라운드 2에서는 A:6, B:4, C:6, D:4를 전송한다. 라운드 3에서는 A:5, C:8, E:9, F:9, G:9 라운드 4에서는 E:11, F:2, G:6, H:11, I:3, J:7을 전송한다. 라운드 5에서는 E:11, H:7, K:11을 전송하고 모든 스트림의 전송이 완료된다.In round 1, streams A:5 and B:5 are transmitted, and in round 2, A:6, B:4, C:6, and D:4 are transmitted. Round 3 sends A:5, C:8, E:9, F:9, G:9 Round 4 sends E:11, F:2, G:6, H:11, I:3, J:7 do. In round 5, E:11, H:7, and K:11 are transmitted, and all streams are transmitted.

이 때 각 스트림별 지연시간은 A: 300 ms, B: 200 ms, C: 200 ms, D: 100 ms, E: 300 ms, F: 200 ms, G: 200 ms, H: 200 ms, I: 100 ms, J: 100 ms, K: 100 ms이다. 스트림별 지연시간을 모두 합친 총 지연시간은 2000 ms 이다.At this time, the delay time for each stream is A: 300 ms, B: 200 ms, C: 200 ms, D: 100 ms, E: 300 ms, F: 200 ms, G: 200 ms, H: 200 ms, I: 100 ms, J: 100 ms, K: 100 ms. The total delay time combined with the delay times for each stream is 2000 ms.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. An embodiment of the present invention may also be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by a computer. Computer-readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Further, the computer-readable medium may include a computer storage medium. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.Although the methods and systems of the present invention have been described in connection with specific embodiments, some or all of their components or operations may be implemented using a computer system having a general-purpose hardware architecture.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present application is for illustrative purposes only, and those of ordinary skill in the art to which the present application pertains will be able to understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present application. Therefore, it should be understood that the embodiments described above are illustrative in all respects and are not limiting. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as being distributed may also be implemented in a combined form.

본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present application is indicated by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present application.

100: 서버
110: 통신 모듈
120: 메모리
130: 프로세서
140: 데이터베이스
150: 입력모듈
200: 클라이언트
100: server
110: communication module
120: memory
130: processor
140: database
150: input module
200: client

Claims (13)

서버에 의해 수행되는 스트림 스케줄링 방법에 있어서,
(a) 클라이언트로부터 데이터 전송 요청이 수신되면, 기설정된 조건에 따라 데이터를 복수의 스트림에 할당하는 단계;
(b) 상기 스트림에 할당된 데이터의 크기와 요청 시간을 측정하는 단계; 및
(c) 스트림 대기열에 상기 스트림을 배치하고, 측정된 상기 데이터 크기 및 요청 시간을 기초로 송신할 스트림을 선택하여 상기 클라이언트에 송신하는 단계; 를 포함하고,
상기 스트림은 데이터 전송시 응용 계층이 송신하고자 하는 데이터의 연속된 흐름인 것이고,
상기 (c) 단계에서 스트림 대기열에 배치된 스트림은 상기 요청 시간이 빠른 것부터 순서대로 정렬되고, 상기 측정된 데이터 크기가 작은 것부터 순서대로 정렬되어, 정렬된 순서대로 상기 클라이언트에 송신되는 것인,
스트림 스케줄링 방법.
In the stream scheduling method performed by the server,
(a) when a data transmission request is received from a client, allocating data to a plurality of streams according to a preset condition;
(b) measuring the size of data allocated to the stream and a request time; And
(c) placing the stream in a stream queue, selecting a stream to be transmitted based on the measured data size and request time, and transmitting the selected stream to the client; Including,
The stream is a continuous flow of data to be transmitted by the application layer during data transmission,
The streams arranged in the stream queue in step (c) are sorted in order from the earliest to the request time, and are sorted in order from the smallest measured data size, and are transmitted to the client in the sorted order,
Stream scheduling method.
제 1 항에 있어서,
상기 (a) 내지 (c) 단계는, 스트림 다중화를 지원하는 OSI 7 계층 모델의 전송 계층 프로토콜을 통해 수행되는 것이고,
상기 스트림 다중화는 서로 다른 스트림이 하나의 연결을 통해 전송되는 기법인 것인,
스트림 스케줄링 방법.
The method of claim 1,
Steps (a) to (c) are performed through a transport layer protocol of an OSI 7 layer model supporting stream multiplexing,
The stream multiplexing is a technique in which different streams are transmitted through one connection,
Stream scheduling method.
제 2 항에 있어서,
상기 전송 계층 프로토콜은 QUIC 또는 SCTP 중 어느 하나인 것인,
스트림 스케줄링 방법.
The method of claim 2,
The transport layer protocol is either QUIC or SCTP,
Stream scheduling method.
제 1 항에 있어서,
상기 (a) 단계에서 클라이언트로부터 복수의 데이터 전송 요청이 수신되고,
상기 (b) 단계에서 전송 요청이 수신된 복수의 데이터 각각의 크기와 요청 시간을 측정하는 것인,
스트림 스케줄링 방법.
The method of claim 1,
In step (a), a plurality of data transmission requests are received from a client,
To measure the size and request time of each of the plurality of data received in the transmission request in step (b),
Stream scheduling method.
제 1 항에 있어서,
상기 (a) 단계에서 상기 데이터 전송 요청은 클라이언트의 단일 응용에 의한 요청이고,
상기 (c) 단계에서 상기 송신할 스트림은 상기 클라이언트의 단일 응용에 송신되는 것인,
스트림 스케줄링 방법.
The method of claim 1,
In the step (a), the data transmission request is a request by a single application of the client,
In the step (c), the stream to be transmitted is transmitted to a single application of the client,
Stream scheduling method.
제 4 항에 있어서,
상기 (a) 단계에서 복수의 데이터 전송 요청이 수신되면, 데이터간에 의존성이 있거나 데이터의 전송 순서가 지켜져야 하는 데이터는 동일 스트림에 할당하고, 서로 독립되어 관련이 없는 데이터는 서로 다른 스트림에 할당하는 것인,
스트림 스케줄링 방법.
The method of claim 4,
When a plurality of data transmission requests are received in step (a), data that depend on data or that the transmission order of data is to be observed are allocated to the same stream, and data that are independent of each other and are not related to each other are allocated to different streams. That,
Stream scheduling method.
스트림 스케줄링 서버에 있어서,
스트림 스케줄링 프로그램이 저장된 메모리;
상기 메모리에 저장된 프로그램을 실행하는 프로세서를 포함하며,
상기 프로세서는 상기 프로그램의 실행에 의해, 클라이언트로부터 데이터 전송 요청이 수신되면, 기설정된 조건에 따라 데이터를 복수의 스트림에 할당하고, 상기 스트림에 할당된 데이터의 크기와 요청 시간을 측정하고, 스트림 대기열에 상기 스트림을 배치하고, 스트림 대기열에 배치된 스트림은 상기 요청 시간이 빠른 것부터 순서대로 정렬되고, 상기 측정된 데이터 크기가 작은 것부터 순서대로 정렬되어, 측정된 상기 데이터 크기 및 요청 시간을 기초로 정렬된 순서대로 송신할 스트림을 선택하여 상기 클라이언트에 송신하고,
상기 스트림은 데이터 전송시 응용 계층이 송신하고자 하는 데이터의 연속된 흐름인 것인,
스트림 스케줄링 서버.
In the stream scheduling server,
A memory in which a stream scheduling program is stored;
And a processor that executes a program stored in the memory,
When a data transmission request is received from a client by execution of the program, the processor allocates data to a plurality of streams according to a preset condition, measures the size and request time of the data allocated to the stream, and performs a stream queue. The streams are arranged in the stream queue, and the streams arranged in the stream queue are arranged in order from the earliest to the request time, and the measured data size is arranged in order from the smallest, and sorted based on the measured data size and request time. Select the stream to be transmitted in the order specified and send it to the client,
The stream is a continuous flow of data to be transmitted by the application layer during data transmission,
Stream scheduling server.
제 7 항에 있어서,
상기 프로세서는 스트림 다중화를 지원하는 OSI(Open System Interconnection)7 계층 모델의 전송 계층 프로토콜을 통해 스트림 스케줄링을 수행하는 것이고,
상기 스트림 다중화는 서로 다른 스트림이 하나의 연결을 통해 전송되는 기법인 것인,
스트림 스케줄링 서버.
The method of claim 7,
The processor performs stream scheduling through a transport layer protocol of an OSI (Open System Interconnection) 7 layer model supporting stream multiplexing,
The stream multiplexing is a technique in which different streams are transmitted through one connection,
Stream scheduling server.
제 8 항에 있어서,
상기 전송 계층 프로토콜은 QUIC 또는 SCTP 중 어느 하나인 것인,
스트림 스케줄링 서버.
The method of claim 8,
The transport layer protocol is either QUIC or SCTP,
Stream scheduling server.
제 7 항에 있어서,
상기 프로세서는 클라이언트로부터 복수의 데이터 전송 요청을 수신하고, 상기 전송 요청이 수신된 복수의 데이터 각각의 크기와 요청 시간을 측정하는 것인,
스트림 스케줄링 서버.
The method of claim 7,
The processor receives a plurality of data transmission requests from a client, and measures the size and request time of each of the plurality of data from which the transmission request is received,
Stream scheduling server.
제 7 항에 있어서,
상기 데이터 전송 요청은 클라이언트의 단일 응용에 의한 요청이고,
상기 송신할 스트림은 상기 클라이언트의 단일 응용에 송신되는 것인,
스트림 스케줄링 서버.
The method of claim 7,
The data transmission request is a request by a single application of the client,
The stream to be transmitted is transmitted to a single application of the client,
Stream scheduling server.
제 10 항에 있어서,
상기 프로세서는 클라이언트로부터 복수의 데이터 전송 요청이 수신되면, 데이터간에 의존성이 있거나 데이터의 전송 순서가 지켜져야 하는 데이터는 동일 스트림에 할당하고, 서로 독립되어 관련이 없는 데이터는 서로 다른 스트림에 할당하는 것인,
스트림 스케줄링 서버.
The method of claim 10,
When a plurality of data transmission requests are received from a client, the processor allocates data that depends on data or that the transmission order of data is to be observed in the same stream, and allocates independent and unrelated data to different streams. sign,
Stream scheduling server.
제 1 항에 따르는 스트림 스케줄링 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 비일시적 컴퓨터 판독가능 기록매체.A non-transitory computer-readable recording medium on which a computer program for performing the stream scheduling method according to claim 1 is recorded.
KR1020200074198A 2019-11-01 2020-06-18 Method and server for stream scheduling KR102326986B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190138702 2019-11-01
KR20190138702 2019-11-01

Publications (2)

Publication Number Publication Date
KR20210053157A true KR20210053157A (en) 2021-05-11
KR102326986B1 KR102326986B1 (en) 2021-11-16

Family

ID=75915199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200074198A KR102326986B1 (en) 2019-11-01 2020-06-18 Method and server for stream scheduling

Country Status (1)

Country Link
KR (1) KR102326986B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050012058A (en) * 2003-07-24 2005-01-31 유티스타콤코리아 유한회사 Method for packing and stream management of stream control transmission protocol
KR20050046089A (en) * 2003-11-13 2005-05-18 한국전자통신연구원 Router for scheduling a packet and method therefor
KR20060096077A (en) 2003-10-14 2006-09-05 콸콤 인코포레이티드 Method and apparatus for data communications over multiple channels

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050012058A (en) * 2003-07-24 2005-01-31 유티스타콤코리아 유한회사 Method for packing and stream management of stream control transmission protocol
KR20060096077A (en) 2003-10-14 2006-09-05 콸콤 인코포레이티드 Method and apparatus for data communications over multiple channels
KR20050046089A (en) * 2003-11-13 2005-05-18 한국전자통신연구원 Router for scheduling a packet and method therefor

Also Published As

Publication number Publication date
KR102326986B1 (en) 2021-11-16

Similar Documents

Publication Publication Date Title
US11799764B2 (en) System and method for facilitating efficient packet injection into an output buffer in a network interface controller (NIC)
US10116574B2 (en) System and method for improving TCP performance in virtualized environments
US11102129B2 (en) Adjusting rate of outgoing data requests for avoiding incast congestion
US9813529B2 (en) Effective circuits in packet-switched networks
US7499457B1 (en) Method and apparatus for enforcing packet destination specific priority using threads
US20150029860A1 (en) Method and Apparatus for Processing Inbound and Outbound Quanta of Data
JP2019533395A (en) Method and system for sending and receiving data
US20070058649A1 (en) Packet queuing system and method
US11513985B2 (en) RoCE over wireless
JP5738324B2 (en) Transmission device, communication device, communication system, and transmission method
US9007944B2 (en) One-to-many and many-to-one communications on a network
US9509620B2 (en) Deadline-aware network protocol
WO2021041622A1 (en) Methods, systems, and devices for classifying layer 4-level data from data queues
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
CN114363269B (en) Message transmission method, system, equipment and medium
KR102326986B1 (en) Method and server for stream scheduling
JP6851754B2 (en) Relay device, relay system, relay program, and relay method
WO2022143468A1 (en) Data transmission method, apparatus and system, and storage medium
JP2019213031A (en) Transfer system and transfer method
JP2009206900A (en) Data transferring device
US11811672B2 (en) Data validity based network buffer management system
JP6488557B2 (en) Communication control system, communication system, communication control method, and communication control program
CN115242727B (en) User request processing method, device, equipment and medium
CN116760510A (en) Message sending method, message receiving method, device and equipment
US20100067543A1 (en) Method and an apparatus for data storage and communications

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant