KR101841143B1 - Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet - Google Patents

Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet Download PDF

Info

Publication number
KR101841143B1
KR101841143B1 KR1020160067533A KR20160067533A KR101841143B1 KR 101841143 B1 KR101841143 B1 KR 101841143B1 KR 1020160067533 A KR1020160067533 A KR 1020160067533A KR 20160067533 A KR20160067533 A KR 20160067533A KR 101841143 B1 KR101841143 B1 KR 101841143B1
Authority
KR
South Korea
Prior art keywords
packet
retransmission
target
server
priority
Prior art date
Application number
KR1020160067533A
Other languages
Korean (ko)
Other versions
KR20170135511A (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 KR1020160067533A priority Critical patent/KR101841143B1/en
Publication of KR20170135511A publication Critical patent/KR20170135511A/en
Application granted granted Critical
Publication of KR101841143B1 publication Critical patent/KR101841143B1/en

Links

Images

Classifications

    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/245Traffic characterised by specific attributes, e.g. priority or QoS using preemption
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Abstract

본 발명에 따르는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법은, (a) 외부 객체로부터 쿼리를 수신하는 단계;(b) 상기 쿼리에 대한 응답을 위해 우선순위를 지정하는 단계; 및 (c) 상기 우선순위에 따라 패킷을 전송하는 단계;를 포함하며, 상기 우선순위를 지정하는 단계는, 상기 응답을 위한 패킷을 생성하여 다른 서버로 전송하되, 대상 패킷이 재전송 패킷인 경우 다른 패킷보다 상기 재전송 패킷에 대하여 높은 우선순위를 지정한다.According to the present invention there is provided a method for scheduling a packet flow for shortening the delay due to retransmission of a packet, the method comprising the steps of: (a) receiving a query from an external object; (b) prioritizing for a response to the query ; And (c) transmitting a packet according to the priority order, wherein the step of designating the priority order comprises: generating a packet for the response and transmitting the packet to another server; when the target packet is a retransmission packet, A higher priority is assigned to the retransmission packet than a packet.

Description

패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법 및 장치{METHOD AND DEVICE FOR SCHEDULING FLOW OF PACKET FOR REDUCING DELAY TIME DUE TO RETRANSMIT OF PACKET}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a packet scheduling method and apparatus for shortening a delay due to retransmission of a packet,

본 발명은 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법 및 장치에 관한 것으로서, 보다 상세하게는, 데이터센터 네트워크 상의 쿼리 완료 시간을 단축시키기 위한, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and apparatus for packet flow scheduling for shortening a delay due to retransmission of a packet, and more particularly, to a method and apparatus for reducing a delay due to retransmission of a packet And more particularly, to a method and apparatus for packet flow scheduling.

데이터센터는 다수의 컴퓨터 서버와 스위치 등으로 구성되며 사회 관계망 서비스, 웹 검색 엔진, 빅데이터 분석 등에 폭 넓게 이용되고 있는 다양한 응용의 기반이 되는 시설이다. The data center is composed of a number of computer servers and switches, and is a foundation for a wide variety of applications such as social network services, web search engines, and big data analysis.

데이터센터는 사용자 단말로부터 쿼리를 요청받으며, 이 쿼리는 다수의 네트워크 플로우로 분할되어 데이터센터 내 다수의 서버에 할당되어 작업이 수행된다. 작업을 완료한 각 서버들은 작업 결과를 쿼리 작업 처리를 명령한 중앙 서버에 통보하며 이는 네트워크를 통해 전달된다. 모든 분배된 작업 결과가 취합되어야 쿼리가 완료되므로 쿼리 완료 시간은 분할된 네트워크 플로우들 중 가장 느린 플로우의 완료 시간에 의해 결정된다. The data center receives a query from a user terminal. The query is divided into a plurality of network flows and assigned to a plurality of servers in the data center. Each server that has completed the task notifies the central server that it has processed the query results, which is transmitted over the network. The query completion time is determined by the completion time of the slowest flow among the divided network flows since all distributed work results must be collected before the query is completed.

여기서 쿼리 완료 시간은 중요한 요소이다. 만약 쿼리 완료 시간이 느리면 사용자는 서비스 품질에 만족하지 못하고 다른 서비스를 활용할 확률이 높아지며 이러한 사용자의 이탈은 데이터센터 활용 사업자의 수익 감소로 이어질 수 있다.Here, query completion time is an important factor. If the query completion time is slow, the user is not satisfied with the service quality and the probability of utilizing other services increases, and such user deviation may lead to a decrease in the profit of the data center utilizing service provider.

데이터센터 네트워크 상의 쿼리 완료 시간 최소화를 위한 종래의 방법들은 다음과 같다. 먼저 데이터센터 네트워크 혼잡 제어 기법은 네트워크 혼잡도에 비례하여 송신 서버의 전송률을 감소시키는 기법이다. 데이터센터 네트워크 부하 분산 기법은 네트워크 트래픽을 특정 경로에 몰리게 하는 것이 아닌, 네트워크 전체에 고르게 분산시키는 기법이다. 이러한 기법들은 모두 플로우의 패킷 손실 발생 확률을 줄이는 것을 원리로 한다. 플로우의 패킷 손실이 발생하는 경우 패킷 재전송으로 인해 플로우 완료 시간이 느려지므로, 가장 느린 플로우의 완료 시간에 의해 결정되는 쿼리 완료 시간 역시 느려지기 때문이다.Conventional methods for minimizing query completion time on a data center network are as follows. First, the data center network congestion control scheme reduces the transmission rate of the transmission server in proportion to the network congestion. Data center network load balancing is a technique that distributes network traffic evenly throughout the network, rather than driving it to a specific path. All of these techniques are based on reducing the probability of occurrence of packet loss in a flow. This is because when the packet loss of a flow occurs, the flow completion time is slowed down due to packet retransmission, so that the query completion time determined by the completion time of the slowest flow also becomes slow.

그러나 위 종래의 방법들은 네트워크 장비 고장 등 소프트웨어 기술을 통해 방지가 불가능한 플로우의 손실이 발생하는 경우, 쿼리 완료 시간을 최소화시킬 수 없다는 문제가 생긴다. 또한 종래의 방법들은 ECN(Explicit Congestion Notification)과 많은 수의 우선순위 큐 활용을 요구하므로 고가의 스위치에서만 적용 가능하기 때문에, 장비 교체비용이 제한적이고 주기가 긴 대학교와 중소기업 등의 데이터센터에선 적용이 어렵다. 또한 대규모 데이터센터는 다수의 사업자가 데이터센터 자원을 공유해서 사용하고 있으므로 우선순위 큐 활용시 요금액을 기반으로 예약 사용하는 경우가 많기 때문에, 많은 수의 우선순위 큐를 활용하는 기법을 적용하기가 어렵다. However, the above conventional methods have a problem that the query completion time can not be minimized in the case of loss of flow that can not be avoided through software technology such as failure of network equipment. In addition, since conventional methods require ECN (Explicit Congestion Notification) and a large number of priority queues, it can be applied only to expensive switches. Therefore, it is applied to data centers such as universities and small and medium enterprises where the equipment replacement cost is limited, it's difficult. In addition, since large-scale data centers use data center resource sharing among a large number of operators, the number of priority queues is utilized because many of them use reservation based on the amount of money when the priority queue is utilized. it's difficult.

관련하여, 등록특허 제10-1350755호(공고일 : 2014.01.10)는 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템을 개시하고 있다. In this regard, Patent No. 10-1350755 (Attorney Dates: 2014.01.10) discloses a cost-based scheduling method and system for multiple workflows in cloud computing.

본 발명은 패킷 재전송으로 인한 플로우의 지연시간을 최소화하는 플로우 스케줄링 방법 및 장치를 제공하는 것을 목적으로 한다. SUMMARY OF THE INVENTION It is an object of the present invention to provide a method and apparatus for scheduling a flow that minimizes the delay time of a flow due to packet retransmission.

이를 통해, 본 발명은 쿼리 완료 시간을 최소화함으로써 서비스 응답속도 향상을 제공하는 것을 목적으로 한다. Accordingly, it is an object of the present invention to provide a service response speed improvement by minimizing a query completion time.

또한, 본 발명은 저가의 스위치 장비에서도 플로우 지연시간 최소화 기술을 사용할 수 있도록 하는 것을 목적으로 한다. It is another object of the present invention to make it possible to use a flow delay time minimization technique even in a low-cost switch equipment.

본 발명의 일 실시예에 따르는, 서버에 의해 수행되는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법은, (a) 외부 객체로부터 쿼리를 수신하는 단계;(b) 상기 쿼리에 대한 응답을 위해 우선순위를 지정하는 단계; 및 (c) 상기 우선순위에 따라 패킷을 전송하는 단계;를 포함하며, 상기 우선순위를 지정하는 단계는, 상기 응답을 위한 패킷을 생성하여 다른 서버로 전송하되, 대상 패킷이 재전송 패킷인 경우 다른 패킷보다 상기 재전송 패킷에 대하여 높은 우선순위를 지정한다.According to an embodiment of the present invention, a method for scheduling a packet flow for shortening a delay due to retransmission of a packet, the method comprising the steps of: (a) receiving a query from an external object; (b) Assigning a priority to the response; And (c) transmitting a packet according to the priority order, wherein the step of designating the priority order comprises: generating a packet for the response and transmitting the packet to another server; when the target packet is a retransmission packet, A higher priority is assigned to the retransmission packet than a packet.

본 발명의 다른 실시예에 따르는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 장치는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법을 수행하기 위한 프로그램이 저장된 메모리; 및상기 프로그램을 실행하기 위한 프로세서;를 포함하고, 상기 프로세서는, 상기 프로그램의 실행에 따라, 외부 객체로부터 쿼리를 수신하고, 상기 쿼리에 대한 응답을 위해 우선순위를 지정하고, 상기 우선순위에 따라 패킷을 전송하며, 상기 우선순위를 지정하는 과정에서, 상기 응답을 위한 패킷을 생성하여 다른 서버로 전송하되, 대상 패킷이 재전송 패킷인 경우 다른 패킷보다 상기 재전송 패킷에 대하여 높은 우선순위를 지정한다.According to another embodiment of the present invention, there is provided an apparatus for scheduling a packet flow for shortening a delay caused by retransmission of a packet, the apparatus comprising: a memory for storing a program for performing a flow scheduling method of a packet for shortening a delay due to retransmission of a packet; And a processor for executing the program, wherein the processor, in response to execution of the program, receives a query from an external object, prioritizes for a response to the query, In the process of designating the priority, a packet for the response is generated and transmitted to another server. If the target packet is a retransmission packet, a higher priority is assigned to the retransmission packet than another packet.

본 발명은 손실이 발생한 패킷이 재전송됨에 따라 발생되는 플로우의 지연 시간을 최소화함으로써 서비스 응답속도를 단축시켜, 사용자에게 보다 쾌적하고 신속한 서비스를 제공할 수 있다. 또한, 사업자는 이러한 데이터센터의 신속 서비스 효과를 바탕으로 사용자들로부터 보다 많은 수익을 창출할 수 있다. 또한 본 발명은 ECN(Explicit Congestion Notification) 적용을 요구하지 않으며 적은 개수의 우선순위 큐를 요구하기 때문에 저가의 스위치로 구성된 데이터센터에서도 적용 가능하여 데이터센터 구축 및 유지 비용을 절약할 수 있다.The present invention minimizes a delay time of a flow caused by retransmission of a lost packet, thereby shortening a service response speed and providing a more comfortable and quick service to a user. Operators can also generate more revenue from users based on the rapid service effectiveness of these data centers. Further, since the present invention does not require ECN (Explicit Congestion Notification) and requires a small number of priority queues, it can be applied to a data center composed of low-cost switches, thus saving the cost of constructing and maintaining a data center.

도 1은 본 발명의 일 실시예에 따르는 시스템에 대한 구조도이다.
도 2는 본 발명의 일 실시예에 따르는 서버의 구성에 대한 블록도이다.
도3은 도 2의 송신부의 구성에 대한 블록도이다.
도 4는 도 2의 송신부 및 스위치부의 동작과정을 설명하기 위한 개념도이다.
도 5 내지 도 7은 본 발명의 일 실시예와 종래기술의 성능을 비교하기 위한 실험결과 그래프이다.
도 8은 본 발명의 일 실시예에 따르는 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법을 설명하기 위한 순서도이다.
1 is a schematic diagram of a system according to an embodiment of the present invention.
2 is a block diagram of a configuration of a server according to an embodiment of the present invention.
3 is a block diagram of the configuration of the transmitter of FIG.
FIG. 4 is a conceptual diagram for explaining the operation of the transmitter and the switch of FIG. 2;
5 to 7 are graphs of experimental results for comparing the performance of an embodiment of the present invention with the performance of the prior art.
8 is a flowchart illustrating a flow scheduling method of a packet for shortening a delay due to retransmission of a packet according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In this specification, the term " part " includes a unit realized by hardware, a unit realized by software, and a unit realized by using both. Further, one unit may be implemented using two or more hardware, or two or more units may be implemented by one hardware. On the other hand, 'to' is not limited to software or hardware, 'to' may be configured to be an addressable storage medium, and may be configured to play one or more processors. Thus, by way of example, 'parts' may refer to components such as software components, object-oriented software components, class components and task components, and processes, functions, , Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and components may be further combined with a smaller number of components and components or further components and components. In addition, the components and components may be implemented to play back one or more CPUs in a device or a secure multimedia card.

이하에서 언급되는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말기로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), LTE(Long Term Evolution) 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, "네트워크"는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크로 구현될 수 있다. The "user terminal" mentioned below may be implemented as a computer or a portable terminal capable of accessing a server or other terminal through a network. Here, the computer includes, for example, a notebook computer, a desktop computer, a laptop computer, and the like, each of which is equipped with a web browser (WEB Browser), and the portable terminal may be a wireless communication device , International Mobile Telecommunication (IMT) -2000, Code Division Multiple Access (CDMA) -2000, W-CDMA (W-CDMA), Wireless Broadband Internet (WIBRO), Long Term Evolution A handheld-based wireless communication device such as a cellular phone, a tablet PC, and the like. The term "network" may also be used in a wired network such as a local area network (LAN), a wide area network (WAN) or a value added network (VAN) And may be implemented in all kinds of wireless networks, such as communication networks.

이하, 도면을 참조하여 본 발명의 일 실시예에 대하여 구체적으로 설명한다. Hereinafter, one embodiment of the present invention will be described in detail with reference to the drawings.

도 1을 참조하면, 본 발명의 일 실시예에 따르는 시스템은 데이터센터(10)일 수 있다. Referring to Figure 1, the system according to one embodiment of the present invention may be a data center 10.

데이터센터(10)는 네트워크를 통해 계층적으로 연결된 복수의 서버(100)들을 포함한다. The data center 10 includes a plurality of servers 100 hierarchically connected via a network.

구체적으로, 사용자 단말로부터 쿼리를 수신하는 중앙 서버(100a) 및 중앙 서버(100)의 작업을 분산 수행하기 위한 복수의 하위 서버들(100b, 100c)로 구성될 수 있다. Specifically, it may be constituted by a central server 100a for receiving a query from a user terminal and a plurality of lower servers 100b and 100c for distributing the work of the central server 100.

각 온라인 서비스들의 접속 사용자 수 증가로 인한 트래픽 증가, 처리해야할 데이터 용량의 증가 등으로 인해 많은 서비스들(예를 들어, 포털 검색 서비스, SNS 서비스)이 데이터센터(10)를 활용하고 있다. Many services (for example, portal search service, SNS service) utilize the data center 10 due to an increase in traffic due to an increase in the number of connected users of each online service, an increase in data amount to be processed, and the like.

예를 들어, 특정 주제에 대한 검색어를 포함하는 쿼리를 사용자 단말로부터 전송되어 중앙 서버(100a)가 수신한 경우, 중앙 서버(100a)는 복수의 하위 서버들(100b, 100c)을 통해 분산 처리 한다. 즉, 각 하위 서버(100b)들로 패킷을 전송하여 쿼리에 대응하는 응답값이 있는지 검색한다. For example, when a query including a search term for a specific topic is transmitted from a user terminal and received by the central server 100a, the central server 100a distributes the query through a plurality of the subordinate servers 100b and 100c . That is, a packet is transmitted to each of the lower servers 100b to search for a response value corresponding to the query.

이때, 각 최하위 서버(100c)와 중앙 서버(100a) 간의 경로마다 플로우가 정의되고, 중앙 서버(100a)에서 요청패킷이 플로우에 따라 전송된 후, 응답값을 포함하는 응답패킷이 최하위 서버(100c)에서 중앙 서버(100a)로 전송됨으로써 플로우가 완료된다. 즉, 플로우는 특정 송신지에서 특정 수신지로 전달되는 모든 패킷들의 집합에 관한 것으로서, 패킷들의 연속적인 흐름을 나타내는 정보이며, 하나 이상의 패킷으로 구성될 수 있다. 이때, 최초 패킷이 송신된 시점부터 최종의 패킷이 수신된 시점까지의 소요 시간을 플로우 완료 시간이라 할 수 있다. 그런데, 데이터센터(10)에서는 각 플로우마다 하위 서버(100b, 100c)로 패킷을 전송하고 모든 응답을 수신한 경우에만 쿼리에 대한 응답값을 사용자 단말로 전송한다. 여기서 응답값과 플로우는 각각의 최하위 서버(100c)가 중앙 서버(100a)로 전송하는 것으로서, 여러 플로우에서 발생된 응답값이 수신된 상태라고 하더라도 어느 한 플로우의 응답값이 수신되지 못한 상태라면, 쿼리는 종료되지 않는다. 즉, 어느 하나의 플로우에서만 지연이 발생하더라도 쿼리에서 지연이 발생되는 것이다. At this time, a flow is defined for each path between the lowest server 100c and the central server 100a. After the request packet is transmitted in accordance with the flow in the central server 100a, a response packet including the response value is transmitted to the lowest server 100c To the central server 100a, thereby completing the flow. That is, a flow refers to a set of all packets transmitted from a specific destination to a specific destination, and is information indicating a continuous flow of packets, and may be composed of one or more packets. At this time, the time required from the transmission of the first packet to the reception of the last packet can be referred to as a flow completion time. In the data center 10, a packet is transmitted to the lower servers 100b and 100c for each flow, and a response value to the query is transmitted to the user terminal only when all the responses are received. Here, the response value and the flow are transmitted to the central server 100a by the lowest server 100c. If the response value of any one of the flows is not received even though the response value generated in the various flows is received, The query is not terminated. That is, even if a delay occurs in only one of the flows, a delay occurs in the query.

한편, 플로우의 지연은 전송된 패킷에 손실이 발생되어, 재전송해야 하는 상황이 발생되는 경우 쿼리의 지연에 큰 영향을 미칠 수 있다. On the other hand, the delay of the flow can greatly affect the delay of the query if a loss occurs in the transmitted packet and a situation that retransmission occurs occurs.

이에 따라, 본 발명의 일 실시예는 재전송 패킷에 대한 스케줄링을 통해 전체 지연시간을 단축시킨다. Accordingly, an embodiment of the present invention shortens the total delay time through scheduling for a retransmission packet.

이하, 도 2 내지 도 4를 통하여 구체적으로 설명하도록 한다. Hereinafter, the present invention will be described in detail with reference to FIG. 2 through FIG.

본 발명의 일 실시예에 따르는 서버(100)는 데이터센터(10)의 중앙 서버(100a)일 수 있으나, 본 발명의 일 실시예는 중앙 서버(100a)에만 한정되어 적용될 수 있는 기술은 아니기 때문에, 각각의 모든 서버(100)에서도 적용될 수 있다. The server 100 according to an exemplary embodiment of the present invention may be a central server 100a of the data center 10, but since an embodiment of the present invention is not applicable to the central server 100a , And may be applied to all the servers 100.

본 발명의 일 실시예에 따르는 서버(100)는 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법을 수행하는 프로그램(또는 애플리케이션)이 저장된 메모리와 위 프로그램을 실행하는 프로세서를 포함하여 구성될 수 있다. 여기서 프로세서는 메모리에 저장된 프로그램의 실행에 따라 다양한 기능을 수행할 수 있는데, 각 기능에 따라 프로세서에 포함되는 세부 구성요소들을 수신부(110), 송신부(120) 및 스위치부(130)로 나타낼 수 있다. The server 100 according to an embodiment of the present invention includes a processor that executes a program stored in a program (or an application) that performs a flow scheduling method of a packet to shorten a delay due to retransmission of a packet, . Here, the processor can perform various functions according to the execution of programs stored in the memory, and the detailed components included in the processor can be represented by the receiving unit 110, the transmitting unit 120, and the switch unit 130 according to each function .

수신부(110)는 외부 객체로부터 쿼리를 수신할 수 있다. 예를 들어, 사용자 단말로부터 쿼리를 수신할 수 있다. 이때, 쿼리는 다양한 정보를 포함할 수 있다. 예를 들어, 특정 이슈에 대한 검색어를 포함하거나, SNS 상의 친구를 검색하는 요청정보를 포함할 수도 있다. 또는, 수신부(110)는 외부 서버로부터 특정 응답값을 요청하는 패킷을 수신할 수도 있다. The receiving unit 110 may receive a query from an external object. For example, a query may be received from a user terminal. At this time, the query may include various information. For example, it may include a search term for a specific issue, or may include request information to search for a friend on the SNS. Alternatively, the receiving unit 110 may receive a packet requesting a specific response value from an external server.

송신부(120)는 쿼리에 대한 응답을 위해, 패킷을 생성하여 다른 서버 (또는 하위 서버)로 전송하되, 대상 패킷이 재전송 패킷인 경우 다른 패킷보다 재전송 패킷에 대하여 높은 우선순위를 지정한다. In order to respond to the query, the transmitter 120 generates a packet and transmits it to another server (or a lower server). When the target packet is a retransmission packet, the transmitter 120 designates a higher priority for the retransmission packet than other packets.

송신부(120)는 패킷의 플로우 크기 판단부(121)와 우선순위 지정부(122)를 포함한다. The transmission unit 120 includes a flow size determination unit 121 and a priority determination unit 122. [

패킷의 플로우 크기 판단부(121)는 전송해야 할 대상 패킷이 재전송 패킷인지 판단한다. 이때, 재전송 타이머 또는 TCP NewReno에서 제공되는 Fast Retransmit 기법을 통하여 대상 패킷의 재전송 패킷 여부를 판단할 수 있다. 재전송 타이머를 이용하는 경우, 대상 패킷이 하위 서버(100b 또는 100c)로 전송된 후, 미리 설정된 시간 이내에 하위 서버(100b 또는 100c)로부터 수신확인(ACK : acknowledgement) 메시지를 수신하지 못하는 경우, 전송된 대상 패킷을 재전송 패킷으로 판단한다. The flow size determination unit 121 determines whether a packet to be transmitted is a retransmission packet. At this time, it is possible to determine whether the packet is a retransmission packet through the retransmission timer or the Fast Retransmit technique provided by TCP NewReno. When a retransmission timer is used and an object acknowledgment message is not received from the lower server 100b or 100c within a predetermined time after the target packet is transmitted to the lower server 100b or 100c, And judges the packet as a retransmitted packet.

이어서, 패킷의 플로우 크기 판단부(121)는 대상 패킷이 재전송 패킷인 경우, 대상 패킷의 플로우 크기와 미리 설정된 임계값을 비교한다. 이때, 대상 패킷의 플로우의 크기는 대상 패킷의 플로우에 대한 수신확인 메시지의 누적 데이터의 크기를 통해 판단될 수 있다. 수신확인 메시지는 패킷을 수신한 서버(100)가 패킷을 전송한 서버(100)로 전송하는 확인 신호로서, 중앙서버(100a)는 수신확인 메시지가 발생될 때마다 이전부터 현재까지의 수신확인 메시지의 데이터의 크기를 누적 기록한다.Next, the packet size determination unit 121 compares the flow size of the target packet with a predetermined threshold value when the target packet is a retransmission packet. At this time, the size of the flow of the target packet can be determined through the size of the accumulated data of the acknowledgment message for the flow of the target packet. The acknowledgment message is an acknowledgment signal transmitted from the server 100 that has received the packet to the server 100 that has transmitted the packet. The central server 100a transmits an acknowledgment message from the past to the present every time an acknowledgment message is generated. And the size of the data of the recording medium.

우선순위 지정부(122)는 재전송 패킷인지 여부 및 대상 패킷의 플로우 크기와 임계값과의 비교 결과에 따라 대상 패킷에 대한 우선순위값을 지정한다. 도 4를 참조하면, 재전송 패킷인 것으로 판단된 대상 패킷들 중 수신확인 메시지의 누적 데이터의 크기가 임계값 이하인 대상 패킷들에 대해서는 제 1 우선순위값을 지정한다. 제 1 우선순위값은 0일 수 있다. 한편, 누적 데이터의 크기가 임계값 초과인 대상 패킷들에 대해서는 제 2 우선순위값을 지정한다. 제 2 우선순위값은 1일 수 있다. 통상적으로 일반적인 패킷의 수신확인 메시지의 누적 데이터 크기는 일정 크기 이하이기 때문에, 임계값 초과의 대상 패킷들에 대해서는 1이 지정된다. 또한, 대상 패킷이 재전송 패킷이 아닌 경우에도 일반 패킷으로 간주하여 제 2 우선순위값이 지정될 수 있다.The priority specification unit 122 designates a priority value for a target packet according to the comparison result between the retransmission packet and the flow size of the target packet and the threshold value. Referring to FIG. 4, a first priority value is designated for a target packet having a size of cumulative data of an acknowledgment message less than a threshold value among target packets determined to be a retransmission packet. The first priority value may be zero. On the other hand, a second priority value is designated for the target packets whose accumulated data size exceeds the threshold value. The second priority value may be one. Generally, since the cumulative data size of a general packet acknowledgment message is less than a certain size, 1 is specified for the target packets exceeding the threshold value. Also, even when the target packet is not a retransmission packet, a second priority value can be designated as a general packet.

이때, 제 1 및 제 2 우선순위값은 상기 대상 패킷의 IP 헤더의 DSCP(Differentiated Service Code Point) 필드 내에 기록될 수 있다. At this time, the first and second priority values may be recorded in the Differentiated Service Code Point (DSCP) field of the IP header of the target packet.

스위치부(130)는 지정된 우선순위에 따라 순차적으로 패킷을 전송한다. 스위치부(130)는 도 4를 참조하면, 입력포트, 스위치 패브릭 및 출력포트를 포함할 수 있다. 이때, 입력포트 내에는 분급기가 포함되어 있어, 분급기를 통해 우선순위값에 따라 패킷의 전송순서가 결정될 수 있다. 즉, 0과 1의 우선순위값을 갖는 패킷들을 별도로 구분하여 우선순위 큐에 정렬한 뒤, 0의 우선순위값이 지정된 패킷들을 먼저 전송하고, 1의 우선순위값이 지정된 패킷들을 후차적으로 전송한다. 그에 따라, 재전송 패킷이 먼저 전송된다. The switch unit 130 sequentially transmits the packets according to the designated priority order. The switch unit 130 may include an input port, a switch fabric, and an output port with reference to FIG. At this time, the classifier is included in the input port, and the transmission order of the packets can be determined according to the priority value through the classifier. That is, packets having a priority value of 0 and 1 are sorted separately into priority queues, and packets having a priority value of 0 are transmitted first, and packets having a priority value of 1 are transmitted later do. Accordingly, the retransmission packet is transmitted first.

이와 같이, 본 발명의 일 실시예는 두 개의 우선순위 큐만 보유하고 있는 스위치 장치를 통해서도 지연시간 단축의 효과를 제공할 수 있기 때문에 저가의 스위치 장비 활용이 가능하다. 이를 통해 데이터센터(10) 구축시 비용을 절감시킬 수 있다. As described above, since the embodiment of the present invention can provide the effect of shortening the delay time even through the switch device having only two priority queues, it is possible to use the low-cost switch device. This can reduce the cost of establishing the data center 10.

한편, 도 5 내지 도 7은 ns-3 네트워크 시뮬레이터를 통해 시뮬레이션을 실시하여 본 발명과 종래기술들의 네트워크 트래픽 로드 (Load) 변화에 따른 쿼리 종료 시간 (Query Completion Times)을 나타낸 그래프이다. 5 to 7 are graphs showing query completion times according to changes in network traffic load of the present invention and prior arts by performing simulation through the ns-3 network simulator.

본 실험예에서는 1Gbps 네트워크 인터페이스를 장착한 54 대의 서버(100)가 존재하는 3계층 Fat-tree 네트워크 토폴로지가 사용되었으며, 각 스위치 포트는 100KB 크기의 버퍼를 가진다. 또한 최소 재전송 타이머 값 (RTOmin)은 10ms로 설정되었다. 라우팅 및 로드밸런싱 방법으로는 표준 ECMP 라우팅 알고리즘이 사용되었으며, 네트워크 스위치로는 두 개의 우선순위 큐를 가진 스위치가 사용되었다. In this experimental example, a three-layer Fat-tree network topology in which 54 servers 100 equipped with a 1 Gbps network interface exists is used, and each switch port has a buffer size of 100 KB. The minimum retransmission timer value (RTOmin) was set to 10 ms. A standard ECMP routing algorithm was used for the routing and load balancing method, and a switch with two priority queues was used as the network switch.

그래프에서 TCP는 TCP NewReno를 의미하며, TFS는 TCP NewReno를 TCP 프로토콜로 사용한 본 발명의 일 실시예를 의미하며, DCTCP(Data Center TCP)는 ECN을 사용하는 TCP 프로토콜을 의미하며, TFSDCTCP는 DCTCP를 TCP 프로토콜로 사용하는 본 발명의 다른 실시예를 의미한다. In the graph, TCP refers to TCP NewReno, TFS refers to an embodiment of the present invention using TCP NewReno as a TCP protocol, DCTCP (Data Center TCP) refers to a TCP protocol using ECN, and TFSDCTCP refers to DCTCP Lt; RTI ID = 0.0 > TCP < / RTI > protocol.

그래프의 y축값과 관련하여, 도 5 는 평균 쿼리 종료 시간, 도6은 쿼리 종료 시간의 중간값, 도 7은 99.9 백분위수에 해당하는 쿼리 종료 시간을 나타내고 있다. 도 5 내지 도 7을 참조하면, 대부분의 트래픽 로드에 대해 본 발명의 일 실시예 가 TCP보다 더 나은 쿼리 종료 시간을 보임을 알 수 있으며 본 발명의 다른 실시예는 DCTCP보다 더 나은 쿼리 종료 시간을 보임을 알 수 있다. 최종적으로, 본 발명의 다른 실시예가 가장 우수한 성능을 나타냄을 알 수 있다.In relation to the y-axis value of the graph, FIG. 5 shows the average query end time, FIG. 6 shows the middle value of the query end time, and FIG. 7 shows the query end time corresponding to 99.9 percentile. 5 through 7, it can be seen that one embodiment of the present invention for most traffic loads shows a better query end time than TCP, and another embodiment of the present invention provides a better query end time than DCTCP Can be seen. Finally, it can be seen that other embodiments of the present invention exhibit the best performance.

이하, 도 8을 참조하여, 본 발명의 일 실시예에 따르는 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법에 대하여 구체적으로 설명하도록 한다. Hereinafter, with reference to FIG. 8, a flow scheduling method of a packet for shortening a delay due to retransmission of a packet according to an embodiment of the present invention will be described in detail.

이하의 방법은 상술한 서버(100)에 의해 수행되는 것이므로, 생략된 내용이 있다고 하더라도 상술한 내용으로 갈음하도록 한다. Since the following method is performed by the above-described server 100, even if there is an omitted item, the above-mentioned contents are replaced.

먼저, 본 발명의 일 실시예에 따르는 서버(100)는 대상 패킷이 재전송 패킷인지 판단한다(S110).First, the server 100 according to an embodiment of the present invention determines whether the target packet is a retransmission packet (S110).

이어서, 서버(100)는 패킷의 플로우 크기가 미리 설정된 임계값 이하인지 비교 판단한다(S120).Then, the server 100 determines whether the flow size of the packet is equal to or less than a preset threshold (S120).

만약 패킷의 플로우 크기가 미리 설정된 임계값 이하인 경우, 대상 패킷의 IP 헤더의 DSCP 필드 내에 높은 우선순위값을 기록한다(S140).If the flow size of the packet is less than or equal to a preset threshold value, a high priority value is recorded in the DSCP field of the IP header of the target packet (S140).

그러나, 패킷의 플로우 크기가 미리 설정된 임계값 초과인 경우, 대상 패킷의 IP 헤더의 DSCP 필드 내에 낮은 우선순위값을 기록한다(S130). 또한, 대상 패킷이 재전송 패킷이 아닌 경우에도, DSCP 필드 내에 낮은 우선순위값을 기록한다.However, if the flow size of the packet exceeds the preset threshold value, a low priority value is written in the DSCP field of the IP header of the target packet (S130). In addition, even when the target packet is not a retransmission packet, a low priority value is recorded in the DSCP field.

서버(100)는 지정된 우선순위에 따라 스케줄링하여 패킷을 전송한다(S150). 그 결과 재전송 패킷 중에서도 플로우의 크기가 큰 패킷들이 먼저 전송되고, 일반 패킷과 플로우 크기가 작은 패킷들이 후순위로 전송되면서, 패킷 손실에 의한 플로우 지연시간을 최소화할 수 있다. The server 100 schedules according to the designated priority and transmits the packet (S150). As a result, among the retransmission packets, packets having a large flow size are transmitted first, and general packets and packets having a small flow size are transmitted in a rearranged order, thereby minimizing the flow delay time due to packet loss.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being 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. In addition, the computer-readable medium may include both computer storage media and communication media. 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. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

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

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

100: 서버 110 : 수신부
120 : 송신부 130 : 스위치부
100: server 110:
120: transmitting unit 130:

Claims (13)

서버에 의해 수행되는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법에 있어서,
(a) 외부 객체로부터 쿼리를 수신하는 단계;
(b) 상기 쿼리에 대한 응답을 위해 우선순위를 지정하는 단계; 및
(c) 상기 우선순위에 따라 패킷을 전송하는 단계;를 포함하며,
상기 우선순위를 지정하는 단계는, 상기 응답을 위한 패킷을 생성하여 다른 서버로 전송하되, 대상 패킷이 재전송 패킷인 경우 다른 패킷보다 상기 재전송 패킷에 대하여 높은 우선순위를 지정하며,
상기 (b) 단계는, (b-1) 상기 대상 패킷이 재전송 패킷인지 판단하는 단계; (b-2) 상기 대상 패킷이 재전송 패킷인 경우, 상기 대상 패킷의 플로우 크기와 미리 설정된 임계값과 비교하는 단계; 및 (b-3) 상기 재전송 패킷인지 여부 및 상기 대상 패킷의 플로우 크기와 임계값과의 비교 결과에 따라 상기 대상 패킷에 대한 우선순위값을 지정하는 단계;를 포함하되,
상기 (b-1) 단계는, 상기 대상 패킷이 상기 다른 서버로 전송된 후 미리 설정된 시간 이내에 상기 다른 서버로부터 수신확인 메시지를 수신하지 못하는 경우 상기 전송된 대상 패킷을 재전송 패킷으로 판단하는 재전송 타이머 또는 TCP NewReno에서 제공되는 Fast Retransmit 기법을 통하여 상기 대상 패킷의 재전송 패킷 여부를 판단하며,
상기 플로우는 상기 대상 패킷이 출발지에서 목적지로 전송되기까지 이동하는 경로에 관한 정보인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
A method for scheduling a packet flow for shortening a delay caused by a retransmission of a packet, which is performed by a server,
(a) receiving a query from an external object;
(b) assigning a priority for a response to the query; And
(c) transmitting a packet according to the priority order,
The step of designating the priority order may include generating a packet for the response and transmitting the packet to another server, wherein when the target packet is a retransmission packet, a higher priority is assigned to the retransmission packet than another packet,
The step (b) may further comprise: (b-1) determining whether the target packet is a retransmission packet; (b-2) comparing the flow size of the target packet with a predetermined threshold value when the target packet is a retransmission packet; And (b-3) designating a priority value for the target packet according to whether the retransmission packet is a packet or a comparison result between a flow size of the target packet and a threshold value,
Wherein the step (b-1) further comprises: a retransmission timer for determining the transmitted target packet as a retransmission packet when the target packet is not received from the another server within a preset time after the target packet is transmitted to the another server; It is determined whether the packet is a retransmission packet through the Fast Retransmit technique provided by TCP NewReno,
Wherein the flow is information on a path through which the target packet travels until it is transmitted from a source to a destination, wherein the delay is shortened due to retransmission of the packet.
제 1 항에 있어서,
상기 서버는,
사용자 단말의 쿼리에 응답하기 위하여 복수의 서버들이 분산 탐색을 수행하는 데이터 센터에 속하는 것인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
The method according to claim 1,
The server comprises:
Wherein a plurality of servers belong to a data center in which to perform a distributed search to respond to a query of a user terminal.
제 2 항에 있어서,
상기 데이터 센터가, 사용자 단말로부터 상기 쿼리를 수신하는 중앙 서버 및 상기 중앙 서버의 작업을 분산 처리하기 위한 복수의 하위 서버로 구성되는 경우,
상기 스케줄링 방법을 수행하는 서버는 상기 중앙 서버에 대응하며, 상기 다른 서버는 상기 하위 서버에 대응하는 것인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
3. The method of claim 2,
If the data center comprises a central server receiving the query from a user terminal and a plurality of lower servers for distributing the work of the central server,
Wherein the server performing the scheduling method corresponds to the central server and the other server corresponds to the lower server.
제 3 항에 있어서,
상기 스케줄링 방법을 수행하는 서버는,
상기 쿼리에 대한 응답을 찾기 위한 복수의 패킷을 생성하여 복수의 다른 서버로 전송하고, 상기 복수의 다른 서버로부터 상기 전송된 패킷에 대한 응답을 모두 수신할 때까지 대기한 후, 상기 쿼리에 대한 응답을 상기 사용자 단말로 전송하는 것인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
The method of claim 3,
The server for performing the scheduling method comprises:
Generating a plurality of packets for searching for a response to the query and transmitting the plurality of packets to a plurality of other servers, waiting until receiving all the responses to the transmitted packets from the plurality of other servers, To the user terminal. The method of claim < RTI ID = 0.0 > 1, < / RTI >
삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 (b-2) 단계는,
상기 다른 서버로부터 수신확인 메시지를 수신하지 못하는 경우에 기초하여, 상기 대상 패킷이 재전송 패킷으로 판단된 경우, 상기 대상 패킷의 플로우에 대한 수신확인 메시지의 누적 데이터의 크기와 상기 임계값을 비교하는 단계를 포함하는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
The method according to claim 1,
The step (b-2)
Comparing the size of the accumulated data of the acknowledgment message for the flow of the target packet with the threshold value when it is determined that the target packet is a retransmitted packet based on a case in which the acknowledgment message is not received from the other server The method comprising the steps of: receiving a packet;
제 8 항에 있어서,
상기 수신확인 메시지는 패킷을 수신한 서버가 패킷을 전송한 서버로 전송하는 확인 신호이며,
상기 수신확인 메시지가 발생될 때마다 이전부터 현재까지의 수신확인 메시지의 데이터의 크기가 누적 기록되는 것인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
9. The method of claim 8,
The acknowledgment message is an acknowledgment signal transmitted from the server that received the packet to the server that transmitted the packet.
Wherein the size of the data of the acknowledgment message from the past to the present is cumulatively recorded every time the acknowledgment message is generated, in order to shorten the delay due to the retransmission of the packet.
제 1 항에 있어서,
상기 (b-3) 단계는,
상기 대상 패킷의 플로우 크기가 상기 임계값 이하인 경우 상기 대상 패킷에 대하여 제 1 우선순위값을 지정하며,
상기 대상 패킷의 플로우 크기가 상기 임계값 초과이거나 상기 대상 패킷이 재전송 패킷이 아닌 경우, 상기 대상 패킷에 대하여 상기 제 1 우선순위값보다 낮은 제 2 우선순위값을 지정하는 단계;를 포함하는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
The method according to claim 1,
The step (b-3)
Designates a first priority value for the target packet when the flow size of the target packet is less than or equal to the threshold value,
And designating a second priority value lower than the first priority value for the target packet when the flow size of the target packet exceeds the threshold or the target packet is not a retransmission packet. To reduce the delay due to retransmission of the packet.
제 10 항에 있어서,
상기 제 1 및 제 2 우선순위값은 상기 대상 패킷의 IP 헤더의 DSCP(Differentiated Service Code Point) 필드 내에 기록되는 것인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
11. The method of claim 10,
Wherein the first and second priority values are recorded in a Differentiated Service Code Point (DSCP) field of the IP header of the target packet.
제 1 항에 있어서,
상기 (c) 단계는,
분급기를 통하여 상기 우선순위 별로 대상 패킷들을 서로 다른 큐에 정렬하는 단계; 및
우선순위가 가장 높은 큐에 정렬되어 있는 대상 패킷들부터 전송하는 단계;를 포함하는, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법.
The method according to claim 1,
The step (c)
Arranging target packets in different queues according to the priority through a classifier; And
And transmitting from the target packets arranged in the queue having the highest priority a packet delayed by the retransmission of the packet.
패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 장치에 있어서,
패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 방법을 수행하기 위한 프로그램이 저장된 메모리; 및
상기 프로그램을 실행하기 위한 프로세서;를 포함하고,
상기 프로세서는, 상기 프로그램의 실행에 따라, 외부 객체로부터 쿼리를 수신하고, 상기 쿼리에 대한 응답을 위해 우선순위를 지정하고, 상기 우선순위에 따라 패킷을 전송하고, 상기 우선순위를 지정하는 과정에서, 상기 응답을 위한 패킷을 생성하여 다른 서버로 전송하되 대상 패킷이 재전송 패킷인 경우 다른 패킷보다 상기 재전송 패킷에 대하여 높은 우선순위를 지정하며,
상기 우선 순위를 지정하는 처리 시, 상기 대상 패킷이 재전송 패킷인지 판단하고, 상기 대상 패킷이 재전송 패킷인 경우 상기 대상 패킷의 플로우 크기와 미리 설정된 임계값과 비교하며, 상기 재전송 패킷인지 여부 및 상기 대상 패킷의 플로우 크기와 임계값과의 비교 결과에 따라 상기 대상 패킷에 대한 우선순위값을 지정하되,
상기 대상 패킷이 재전송 패킷인지 판단하는 처리 시, 상기 대상 패킷이 상기 다른 서버로 전송된 후 미리 설정된 시간 이내에 상기 다른 서버로부터 수신확인 메시지를 수신하지 못하는 경우 상기 전송된 대상 패킷을 재전송 패킷으로 판단하는 재전송 타이머 또는 TCP NewReno에서 제공되는 Fast Retransmit 기법을 통하여 상기 대상 패킷의 재전송 패킷 여부를 판단하며,
상기 플로우는 상기 대상 패킷이 출발지에서 목적지로 전송되기까지 이동하는 경로에 관한 정보인, 패킷의 재전송으로 인한 지연을 단축시키기 위한 패킷의 플로우 스케줄링 장치.
An apparatus for packet flow scheduling for shortening a delay due to retransmission of packets,
A memory for storing a program for performing a flow scheduling method of a packet for shortening a delay due to retransmission of a packet; And
And a processor for executing the program,
The processor, in response to execution of the program, receives a query from an external object, assigns a priority for a response to the query, transmits a packet according to the priority, and assigns the priority , Generates a packet for the response, and transmits the packet to another server. If the target packet is a retransmission packet, the retransmission packet is assigned a higher priority than another packet,
Wherein the control unit determines whether the target packet is a retransmission packet in the process of designating the priority and compares the flow size of the target packet with a predetermined threshold value when the target packet is a retransmission packet, A priority value for the target packet is specified according to a result of comparison between a flow size of a packet and a threshold value,
When it is determined that the target packet is a retransmission packet, if the target packet is not received from the other server within a preset time after the target packet is transmitted to the other server, the transmitted target packet is determined as a retransmission packet A retransmission timer or a Fast Retransmit technique provided by TCP NewReno to determine whether the packet is a retransmission packet,
Wherein the flow is information related to a path that the target packet travels from the source to the destination until the packet is delayed due to retransmission of the packet.
KR1020160067533A 2016-05-31 2016-05-31 Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet KR101841143B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160067533A KR101841143B1 (en) 2016-05-31 2016-05-31 Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160067533A KR101841143B1 (en) 2016-05-31 2016-05-31 Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet

Publications (2)

Publication Number Publication Date
KR20170135511A KR20170135511A (en) 2017-12-08
KR101841143B1 true KR101841143B1 (en) 2018-03-27

Family

ID=60919741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160067533A KR101841143B1 (en) 2016-05-31 2016-05-31 Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet

Country Status (1)

Country Link
KR (1) KR101841143B1 (en)

Also Published As

Publication number Publication date
KR20170135511A (en) 2017-12-08

Similar Documents

Publication Publication Date Title
US11934868B2 (en) Systems and methods for scheduling tasks
EP2975820B1 (en) Reputation-based strategy for forwarding and responding to interests over a content centric network
KR101670642B1 (en) System and method for scheduling packet transmission on a client device
US9185006B2 (en) Exchange of server health and client information through headers for request management
US9264369B2 (en) Technique for managing traffic at a router
US9385948B2 (en) Packet processing method, device and system
US20130346587A1 (en) Methods and systems for adaptive capacity management
JP7118209B2 (en) Congestion control method, device and system, and computer storage medium
US20230239200A1 (en) Optimisation of network parameters for enabling network coding
US11316916B2 (en) Packet processing method, related device, and computer storage medium
Liu et al. Mix‐flow scheduling using deep reinforcement learning for software‐defined data‐center networks
Jin et al. A congestion control method of SDN data center based on reinforcement learning
US10146584B2 (en) Weight adjusted dynamic task propagation
US10701170B2 (en) Multicasting method in distributed cache environment, and distributed cache server using the same
US11108666B2 (en) Latency prediction and network message microtiming
KR101841143B1 (en) Method and device for scheduling flow of packet for reducing delay time due to retransmit of packet
US8174974B2 (en) Voluntary admission control for traffic yield management
US10313929B2 (en) Packet processor steering in wi-fi access points with multiple wi-fi protocol interfaces
US9054968B2 (en) Business intelligence-infused smart retransmission processing
US11012378B2 (en) Methods and apparatus for shared buffer allocation in a transport node
CN114024968A (en) Message sending method and device based on intermediate equipment and electronic equipment
US20240048640A1 (en) Methods and systems for managing multipath communication
CN112055083B (en) Request processing method and device, electronic equipment and medium
US10834005B2 (en) Buffer shortage management system
Baraković Husić et al. Studying the Impact of SIP Message Differentiation on the Quality of VoIP Session Control Procedures

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