KR20170142513A - Apparatus for multinet aggregation transmission, and packet scheduling method thereof - Google Patents

Apparatus for multinet aggregation transmission, and packet scheduling method thereof Download PDF

Info

Publication number
KR20170142513A
KR20170142513A KR1020160076069A KR20160076069A KR20170142513A KR 20170142513 A KR20170142513 A KR 20170142513A KR 1020160076069 A KR1020160076069 A KR 1020160076069A KR 20160076069 A KR20160076069 A KR 20160076069A KR 20170142513 A KR20170142513 A KR 20170142513A
Authority
KR
South Korea
Prior art keywords
network
data
transmission
size
networks
Prior art date
Application number
KR1020160076069A
Other languages
Korean (ko)
Other versions
KR102111029B1 (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 KR1020160076069A priority Critical patent/KR102111029B1/en
Publication of KR20170142513A publication Critical patent/KR20170142513A/en
Application granted granted Critical
Publication of KR102111029B1 publication Critical patent/KR102111029B1/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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/14
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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]
    • H04W72/1226
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/54Allocation or scheduling criteria for wireless resources based on quality criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A packet scheduling method of a device for merging and transmitting multi-networks comprises the following steps of: collecting network state parameters with respect to a plurality of networks, connected to a receiving device, respectively; determining a control network among the plurality of networks based on the network state parameters of each of the plurality of networks; and adjusting a data amount per unit time to be transmitted to the control network based on at least one network state parameter with respect to the control network.

Description

다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법{APPARATUS FOR MULTINET AGGREGATION TRANSMISSION, AND PACKET SCHEDULING METHOD THEREOF} TECHNICAL FIELD [0001] The present invention relates to a multi-network merging transmission apparatus and a packet scheduling method,

본 발명은 다중망 병합 전송에 관한 것이다.The present invention relates to multi-network merging transmission.

병합 전송(aggregation transmission)은 복수의 통신망을 동시에 사용하여 데이터를 전송하는 기술로서, 각 경로로 전송된 데이터를 하나의 세션으로 처리한다. 병합 전송 기술을 통해, 단말은 한 시점에 복수의 통신망에 연결될 수 있고, 하나의 서비스/어플리케이션은 망 종류나 망의 수에 관계없이 복수의 망을 하나의 망처럼 병합하여 통신한다. 따라서, 병합 전송 장치는 가용한 복수의 망 자원을 이용하여 대량의 데이터를 빠르게 송수신할 수 있다. 복수의 망을 병합하는 의미에서 다중망 병합(MultiNet Aggregation)이라고 부를 수 있다.Aggregation transmission is a technique of transmitting data using a plurality of communication networks at the same time, and processes data transmitted through each path into one session. Through a merge transmission technique, a terminal can be connected to a plurality of communication networks at a time, and one service / application merges a plurality of networks as a single network, regardless of the number of networks or networks. Therefore, the merge transmission apparatus can quickly transmit and receive a large amount of data using a plurality of usable network resources. It can be called MultiNet Aggregation in the sense of merging a plurality of networks.

병합 전송 기술 중에서 여러 개의 TCP 플로우를 묶어서 사용하는 다중 경로 TCP(Multi-Path TCP, MPTCP) 기술이 있다. MPTCP는 복수의 IP 인터페이스를 동시에 사용하기 위한 L4 기술이다. 복수의 물리적 인터페이스를 구비한 단말은 MPTCP 기술을 통해, 한 시점에 복수의 통신망에 연결될 수 있고, 서브플로우(subflow) 단위로 세션을 생성하여 단대단 통신한다. There are multi-path TCP (MPTCP) technologies that combine multiple TCP flows in a merge transmission technique. MPTCP is an L4 technology for simultaneously using multiple IP interfaces. A terminal having a plurality of physical interfaces can be connected to a plurality of communication networks at a single point through MPTCP technology, and creates a session on a subflow basis to perform end-to-end communication.

지금까지의 네트워크 장치는 다중망으로 패킷을 전송하더라도 단일망에서 사용하는 흐름 제어(flow control), 혼잡 제어(congestion control), 오류 제어(error control) 방식을 그대로 사용하여 패킷 스케줄링한다. 즉, 지금까지의 네트워크 장치는 다중망 각각에 생성된 경로별로 패킷 전송 지연시간, 패킷 왕복 시간(Round Trip Time, RTT), 패킷 손실율 등이 동일하다는 이상적인 가정을 한다. 하지만 다중망은 특성이 다른 이종망으로 구성될 수 있고, 동종망으로 구성되더라도 망 상태가 항상 동일한 것은 아니다. 즉, 경로별로 패킷 전송 지연시간, RTT, 패킷 손실율 등이 망의 무선/유선구간에 따라 시시각각 변동한다. 따라서, 망 상태가 동일한 복수의 경로라면 라운드-로빈(round-robin) 방법으로 패킷 스케줄링하더라도 병합 전송 효율이 낮아지지 않으나, 서로 다른 망 상태의 다중망 스케줄링에 라운드-로빈 방법을 그대로 사용하면 병합 전송 효율이 낮아질 수밖에 없다.Conventional network devices use a flow control, a congestion control, and an error control method used in a single network to perform packet scheduling even when a packet is transmitted to multiple networks. That is, the conventional network apparatus makes an ideal assumption that the packet transmission delay time, the round trip time (RTT), and the packet loss rate are the same for each route generated in each of the multiple networks. However, multi-networks can be composed of heterogeneous networks with different characteristics, and even if they are composed of homogeneous networks, the network status is not always the same. That is, the packet transmission delay time, RTT, and packet loss rate vary with time depending on the wireless / wired section of the network. Therefore, if a plurality of paths having the same network state are used, the merge transmission efficiency is not lowered even if packet scheduling is performed by a round-robin method. However, if the round-robin method is used for multi- The efficiency is inevitably lowered.

본 발명이 해결하고자 하는 과제는 다중망 각각의 상태를 기초로 동적으로 패킷 스케줄링하는 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a multi-network merging transmission apparatus that dynamically packetizes packets based on states of multiple networks, and a packet scheduling method therefor.

본 발명의 한 실시예에 따른 다중망 병합 전송 장치의 패킷 스케줄링 방법으로서, 수신 장치와 연결된 복수 망 각각에 대한 망 상태 파라미터들을 수집하는 단계, 상기 복수 망 각각의 망 상태 파라미터들을 기초로 상기 복수 망 중에서 제어 망을 결정하는 단계, 그리고 상기 제어 망에 대한 적어도 하나의 망 상태 파라미터를 기초로 상기 제어 망으로 전송할 단위시간당 데이터량을 조정하는 단계를 포함한다.A packet scheduling method of a multi-network merging transmission apparatus according to an exemplary embodiment of the present invention includes collecting network status parameters for each of a plurality of networks connected to a receiving apparatus, And adjusting the amount of data per unit time to be transmitted to the control network based on the at least one network status parameter for the control network.

상기 망 상태 파라미터들은 패킷 왕복 시간, 전송 데이터 중에서 아직 확인응답을 수신하지 않은 플라이트 상태 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 그리고 재전송 데이터 크기 중 적어도 두 개를 포함할 수 있다.The network status parameters may include at least two of a packet round-trip time, a flight status data size, a reception window size, a congestion window size, and a retransmission data size that have not yet received an acknowledgment from transmission data.

상기 단위시간당 데이터량을 조정하는 단계는 상기 제어 망을 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기가 제1기준값보다 큰 경우, 상기 단위시간당 데이터량을 조정할 수 있다.The step of adjusting the amount of data per unit time may adjust the amount of data per unit time when the size of the data transmitted through the control network and not received an acknowledgment is larger than the first reference value.

상기 단위시간당 데이터량을 조정하는 단계는 상기 제어 망에 대한 적어도 하나의 망 상태 파라미터를 기초로, 기준값보다 많거나 적은 단위시간당 전송 데이터량을 결정하고, 상기 기준값은 상기 제어 망의 가용한 혼잡 윈도우 크기 또는 상기 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수일 수 있다.Wherein adjusting the amount of data per unit time comprises determining an amount of transmission data per unit time that is greater or less than a reference value based on at least one network state parameter for the control network, Size or the number of segments that can be transmitted in the available congestion window size.

상기 패킷 스케줄링 방법은 원본 데이터 버퍼에서 전송 대기중인 데이터 중에서 상기 결정한 전송 데이터량을 상기 제어 망으로 전송하는 단계를 더 포함할 수 있다.The packet scheduling method may further include transmitting the determined amount of data to be transmitted from the data waiting to be transmitted in the original data buffer to the control network.

상기 패킷 스케줄링 방법은 스케줄링 변경 조건을 기초로 제1 스케줄링 방법에서 제2 스케줄링 방법으로 변경할지 판단하는 단계를 더 포함하고, 상기 제어 망을 결정하는 단계는 상기 제1 스케줄링 방법에서 상기 제2 스케줄링 방법으로 변경되는 경우, 상기 복수 망 중에서 제어 망을 결정하며, 상기 제1 스케줄링 방법은 단일망에서 사용되는 스케줄링 방법이고, 상기 제2 스케줄링 방법은 다중망 병합 스케줄링 방법일 수 있다.Wherein the packet scheduling method further comprises determining whether to change from a first scheduling method to a second scheduling method based on a scheduling change condition, wherein the step of determining the control network comprises: The first scheduling method may be a scheduling method used in a single network, and the second scheduling method may be a multi-network merge scheduling method.

상기 스케줄링 변경 조건은 상기 복수 망에 생성된 서브플로우의 수와 서브플로우들로 전송되는 데이터 스트림의 크기(Data Sequence Signal, DSS)로 구성된 판단 조건일 수 있다.The scheduling change condition may be a condition including a number of subflows generated in the plurality of networks and a size of a data stream transmitted to the subflows (Data Sequence Signal, DSS).

상기 스케줄링 변경 조건은 상기 복수 망 중 어느 하나의 망의 전송 품질이 제1 기준값 이상으로 좋아지는 경우, 상기 복수 망 중 어느 하나의 망의 전송 품질이 제2 기준값 이상으로 악화되는 경우, 상기 복수 망 중 적어도 두 망의 품질 차이가 제3 기준값 이상인 경우 중 어느 하나를 포함할 수 있다.Wherein the scheduling change condition is a condition that when the transmission quality of any one of the plurality of networks is improved to a first reference value or more and the transmission quality of any one of the plurality of networks becomes worse than a second reference value, And a case where the difference in quality of at least two networks is equal to or greater than a third reference value.

상기 패킷 스케줄링 방법은 상기 제1 스케줄링 방법에서 상기 제2 스케줄링 방법으로 변경된 후, 상기 스케줄링 변경 조건이 해제되면, 상기 제1 스케줄링 방법으로 복귀하는 단계를 더 포함할 수 있다.The packet scheduling method may further include returning to the first scheduling method when the scheduling change condition is released after the first scheduling method is changed to the second scheduling method.

상기 패킷 스케줄링 방법은 상기 제1 스케줄링 방법에서 상기 제2 스케줄링 방법으로 변경된 후, 상기 수신 단말로의 데이터 전송이 완료되면, 상기 제1 스케줄링 방법으로 복귀하는 단계를 더 포함할 수 있다.The packet scheduling method may further include a step of returning to the first scheduling method after the data transmission to the receiving terminal is completed after the first scheduling method is changed to the second scheduling method.

본 발명의 다른 실시예에 따른 다중망 병합 전송 장치의 패킷 스케줄링 방법으로서, 임의 서브플로우를 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기를 기초로 상기 서브플로우로 전송할 세그먼트 크기 조정이 필요한지 판단하는 단계, 세그먼트 크기 조정이 필요한 경우, 상기 서브플로우에 관계된 적어도 하나의 망 상태 파라미터를 기초로 상기 서브플로우로 전송할 총 전송 세그먼트 크기를 결정하는 단계, 그리고 결정한 총 전송 세그먼트 크기의 데이터를 전송하는 단계를 포함한다.In a packet scheduling method of a multi-network merging transmission apparatus according to another embodiment of the present invention, there is provided a packet scheduling method of a multi-network merging transmission apparatus that requires segment size adjustment to be transmitted to a subflow based on a data size, Determining a total transmission segment size to be transmitted to the sub-flow based on at least one network state parameter related to the sub-flow when segment size adjustment is required, and transmitting the determined total transmission segment size data .

상기 세그먼트 크기 조정이 필요한지 판단하는 단계는 상기 확인응답을 수신하지 않은 데이터 크기가 제1기준값보다 큰 경우, 세그먼트 크기 조정이 필요하다고 판단할 수 있다.The step of determining whether the segment size adjustment is necessary may determine that segment size adjustment is necessary when the data size for which the acknowledgment is not received is larger than the first reference value.

상기 총 전송 세그먼트 크기를 결정하는 단계는 상기 서브플로우에 관계된 망 상태 파라미터들을 비교하여, 기준값보다 크거나 작은 총 전송 세그먼트 크기를 결정하고, 상기 기준값은 상기 제어 망의 가용한 혼잡 윈도우 크기 또는 상기 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수일 수 있다.Wherein determining the aggregate transmission segment size comprises comparing the network state parameters associated with the sub-flow to determine a total transmission segment size that is greater or less than a reference value, the reference value being an available congestion window size of the control network, The number of segments that can be transmitted in one congestion window size.

상기 서브플로우에 관계된 망 상태 파라미터들은 상기 서브플로우를 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 그리고 재전송 데이터 크기 중 적어도 두 파라미터들을 포함할 수 있다.The network status parameters related to the sub-flow may include at least two parameters among data transmitted through the sub-flow, such as a data size, a reception window size, a congestion window size, and a retransmission data size which have not yet received an acknowledgment.

본 발명의 또 다른 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 패킷 스케줄러로서, 수신 장치와 연결된 복수 망 각각의 망 상태 파라미터들을 수집하는 망 상태 모니터링부, 상기 복수 망 각각의 망 상태 파라미터들을 기초로 상기 복수 망 각각에 생성된 서브플로우별 전송량을 조절하는 패킷 전송량 조절부, 그리고 상기 서브플로우별 전송량을 기초로 상기 수신 장치로 전달할 원본 데이터를 분할하고, 분할한 데이터를 각 서브플로우의 데이터 버퍼에 추가하는 버퍼 전달부를 포함하고, 상기 각 서브플로우의 데이터 버퍼에 저장된 데이터는 MPTCP(Multi-Path TCP) 계층과 IP(Internet Protocol) 계층을 거쳐 상기 각 서브플로우가 생성된 망으로 전달된다.A packet scheduler operated by at least one processor according to another embodiment of the present invention, the packet scheduler comprising: a network status monitoring unit for collecting network status parameters of each of a plurality of networks connected to a receiving apparatus; A packet transmission rate adjuster for adjusting the transmission rate of each sub-flow generated in each of the plurality of networks, and dividing the original data to be transmitted to the receiver on the basis of the transmission amount of each sub-flow, And the data stored in the data buffer of each sub-flow is transmitted to the network through which the sub-flows are generated through the multi-path TCP (MPTCP) layer and the IP (Internet Protocol) layer.

상기 망 상태 파라미터들은 각 망으로 전송한 패킷의 왕복 시간(round trip time), 각 망으로 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기, 각 망의 수신 윈도우 크기, 각 망의 혼잡 윈도우 크기, 그리고 각 망에서의 재전송 데이터 크기 중 적어도 두 개를 포함할 수 있다.The network status parameters include a round trip time of a packet transmitted to each network, a size of data not yet acknowledged among data transmitted to each network, a size of a reception window of each network, a size of a congestion window of each network , And retransmission data size in each network.

상기 패킷 전송량 결정부는 상기 복수 망 각각의 망 상태 파라미터를 기초로 서브플로우별 전송량 제어를 시작할지 판단하고, 상기 서브플로우별 전송량 제어를 시작하는 경우, 상기 복수 망 중 적어도 하나의 망에서의 전송 데이터량을 기준값을 기준으로 상향 또는 하향 조정할 수 있다.Wherein the packet transmission amount determination unit determines whether to start the transmission amount control for each subflow based on the network state parameter of each of the plurality of networks and, when starting the transmission amount control for each subflow, The amount can be adjusted up or down based on the reference value.

상기 패킷 전송량 결정부는 상기 복수 망에 생성된 서브플로우의 수와 서브플로우들로 전송되는 데이터 스트림의 크기(Data Sequence Signal, DSS)로 구성된 판단 조건을 기초로 상기 서브플로우별 전송량 제어를 시작할지 판단할 수 있다.The packet transmission amount determination unit determines whether to start the transmission amount control for each subflow based on a determination condition composed of the number of subflows generated in the plurality of networks and the size of a data stream (Data Sequence Signal, DSS) transmitted to the subflows can do.

상기 패킷 전송량 결정부는 상기 복수 망 중 어느 하나의 망의 전송 품질이 제1 기준값 이상으로 좋아지는 경우, 상기 복수 망 중 어느 하나의 망의 전송 품질이 제2 기준값 이상으로 악화되는 경우, 상기 복수 망 중 적어도 두 망의 품질 차이가 제3 기준값 이상인 경우 중 어느 하나를 포함하는 판단 조건을 기초로 상기 서브플로우별 전송량 제어를 시작할지 판단할 수 있다.When the transmission quality of any one of the plurality of networks is improved to a first reference value or more and the transmission quality of any one of the plurality of networks is degraded to a second reference value or more, It is possible to determine whether to start the transmission amount control for each sub-flow based on a determination condition including at least one of the cases where the quality difference of at least two networks is equal to or greater than the third reference value.

상기 패킷 전송량 결정부는 상기 복수 망 각각의 망 상태 파라미터를 기초로 단위시간당 전송되는 세그먼트 수 또는 총 전송 세그먼트 크기를 가변할 수 있다.The packet transmission amount determination unit may vary the number of segments transmitted or the total transmission segment size per unit time based on the network status parameter of each of the plurality of networks.

본 발명의 실시예에 따르면 다중망 병합 전송 장치가 다중망 각각의 상태를 관리하고 각 망의 상태에 맞춰 통합 스케줄링하므로, 저품질 망의 상태에 의해 고품질 망의 전송 효율이 방해받지 않는다. 따라서, 본 발명의 실시예에 따르면 다중망 각각의 자원을 효율적으로 사용하여 다중망 병합 전송 효율을 높일 수 있다.According to the embodiment of the present invention, the multi-network merging transmission apparatus manages the states of each of the multiple networks and performs integrated scheduling according to the states of the respective networks, so that the transmission efficiency of the high-quality network is not hindered by the state of the low-quality network. Therefore, according to the embodiment of the present invention, efficiency of multi-network merging transmission can be improved by efficiently using resources of each of the multiple networks.

도 1은 본 발명의 한 실시예에 따른 다중망 병합 시스템의 구성도를 설명하는 도면이다.
도 2는 본 발명의 한 실시예에 따른 다중망 병합 전송을 설명하는 개념도이다.
도 3은 본 발명의 한 실시예에 따른 송신 장치의 패킷 스케줄러의 구성도이다.
도 4는 본 발명의 한 실시예에 따른 송신 장치에서 스케줄링된 패킷이 전송되는 네트워크 스택을 개념적으로 설명하는 도면이다.
도 5는 본 발명이 적용되지 않은 경우의 병합 전송 스케줄링 방법을 설명하는 도면이다.
도 6은 본 발명의 한 실시예에 따른 병합 전송 스케줄링 방법을 설명하는 도면이다.
도 7은 본 발명의 한 실시예에 따른 패킷 스케줄링 방법의 흐름도이다.
도 8은 본 발명의 다른 실시예에 따른 패킷 스케줄링 방법의 흐름도이다.
도 9는 본 발명의 또 다른 실시예에 따른 패킷 스케줄링 방법의 흐름도이다.
도 10은 본 발명의 한 실시예에 따른 다중망 병합 전송 장치의 하드웨어 블록도이다.
FIG. 1 is a diagram illustrating a configuration of a multi-network merging system according to an embodiment of the present invention. Referring to FIG.
2 is a conceptual diagram illustrating multi-network merging transmission according to an embodiment of the present invention.
3 is a configuration diagram of a packet scheduler of a transmission apparatus according to an embodiment of the present invention.
4 is a conceptual illustration of a network stack in which a packet is transmitted in a transmitting apparatus according to an embodiment of the present invention.
FIG. 5 is a view for explaining a merging transmission scheduling method when the present invention is not applied.
6 is a diagram illustrating a merging transmission scheduling method according to an embodiment of the present invention.
7 is a flowchart of a packet scheduling method according to an embodiment of the present invention.
8 is a flowchart of a packet scheduling method according to another embodiment of the present invention.
9 is a flowchart of a packet scheduling method according to another embodiment of the present invention.
10 is a hardware block diagram of a multiplexing transmission apparatus 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 so that those skilled in the art can easily carry out the present invention. 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 an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise. Also, the terms " part, "" module," and " module ", etc. in the specification mean a unit for processing at least one function or operation and may be implemented by hardware or software or a combination of hardware and software have.

본 발명에서 송신 장치와 수신 장치는 다중망으로 연결되고, 송신 장치가 수신 장치로 데이터를 보낼 때 다중망 병합 전송한다. 다음에서 다중망 병합 전송 장치인 송신 장치가 수신 장치로 데이터를 전송할 때, 다중망 각각에 생성된 각 서브플로우로 데이터를 어느 정도 분할하여 전송할 것인지 판단하는 스케줄링하는 방법에 대해 설명한다. In the present invention, a transmitting apparatus and a receiving apparatus are connected by a multi-network, and when a transmitting apparatus sends data to a receiving apparatus, multi-network merging transmission is performed. Next, a description will be given of a scheduling method for determining how much data is to be transmitted to each sub-flow generated in each of the multiple networks when the transmitting apparatus, which is a multi-network merging transmission apparatus, transmits data to the receiving apparatus.

본 발명에서 송신 장치 또는 수신 장치는 사용자 단말일 수 있다. 사용자단말은 이동국(Mobile Station, MS), 이동 단말(Mobile Terminal, MT), 가입자국(Subscriber Station, SS), 휴대 가입자국(Portable Subscriber Station, PSS), 사용자 장치(User Equipment, UE), 접근 단말(Access Terminal, AT) 등을 지칭할 수도 있고, 이동국, 이동 단말, 가입자국, 휴대 가입자 국, 사용자 장치, 접근 단말 등의 전부 또는 일부의 기능을 포함할 수도 있다. In the present invention, the transmitting apparatus or the receiving apparatus may be a user terminal. A user terminal includes a mobile station (MS), a mobile terminal (MT), a subscriber station (SS), a portable subscriber station (PSS), a user equipment An access terminal (AT), and the like, and may include all or some of functions of a mobile station, a mobile terminal, a subscriber station, a mobile subscriber station, a user equipment, an access terminal, and the like.

사용자 단말은 기지국(base station, BS), 접근점(Access Point, AP), 무선 접근국(Radio Access Station, RAS), 노드B(Node B), 고도화 노드B(evolved NodeB, eNodeB), 송수신 기지국(Base Transceiver Station, BTS), MMR(Mobile Multihop Relay)-BS 등과 같은 네트워크 장치에 접속하여 원격의 서버에 연결될 수 있다.The user terminal includes a base station (BS), an access point (AP), a radio access station (RAS), a node B, an evolved NodeB (eNodeB) A base transceiver station (BTS), a mobile multihop relay (MMR) -BS, and the like.

사용자 단말은 스마트폰과 같은 모바일 단말, 스마트패드와 태블릿PC와 같은 태블릿 단말, 컴퓨터, 텔레비전 등 다양한 형태의 통신 단말로서, 복수의 통신 인터페이스를 구비할 수 있다. 통신 인터페이스는 다양할 수 있다. 예를 들면, 통신 인터페이스는 와이파이(WiFi)/WLAN/블루투스(bluetooth) 등의 근거리 무선망 인터페이스, 그리고 3G/LTE(Long Term Evolution)/LTE-A(Long Term Evolution-Advanced) 등의 이동통신망 인터페이스를 포함할 수 있고, 단말 제조사가 다양한 통신 인터페이스를 추가할 수 있다. 본 명세서에서는 3G/LTE 인터페이스와 WiFi 인터페이스를 예로 들어 설명하나, 통신 인터페이스가 이에 한정되는 것은 아니다.The user terminal may be a mobile terminal such as a smart phone, a tablet terminal such as a smart pad and a tablet PC, a communication terminal such as a computer and a television, and may have a plurality of communication interfaces. The communication interface may vary. For example, the communication interface may include a short-range wireless network interface such as WiFi / WLAN / Bluetooth and a mobile communication network interface such as 3G / Long Term Evolution (LTE) / Long Term Evolution-Advanced And the terminal manufacturer may add various communication interfaces. In this specification, the 3G / LTE interface and the WiFi interface are described as an example, but the communication interface is not limited thereto.

본 발명에서 송신 장치 또는 수신 장치는 네트워크 장치일 수 있다. 네트워크 장치는 다중 경로로 전송되는 서브플로우를 병합하거나, 단일 경로로 전송되는 플로우를 다중 경로의 서브플로우로 분할하여 전송하는 게이트웨이 또는 서버일 수 있다. 네트워크 장치는 다중망의 접점에 위치하고, 예를 들면, LTE망과 WiFi망의 접점에 위치할 수 있다. 네트워크 장치는 다중망 병합 게이트웨이(MultiNet Aggregation-Gateway, MA-GW)라고 부를 수 있다.In the present invention, the transmitting apparatus or the receiving apparatus may be a network apparatus. A network device may be a gateway or a server that merges sub-flows that are transmitted in a multi-path, or splits a flow that is transmitted in a single path into sub-flows of a multi-path and transmits the sub-flows. The network device is located at the contact point of the multi-network, for example, at the contact point of the LTE network and the WiFi network. The network device may be referred to as a MultiNet Aggregation-Gateway (MA-GW).

도 1은 본 발명의 한 실시예에 따른 다중망 병합 시스템의 구성도를 설명하는 도면이다.FIG. 1 is a diagram illustrating a configuration of a multi-network merging system according to an embodiment of the present invention. Referring to FIG.

도 1을 참고하면, 다중망 병합(MultiNet Aggregation) 전송은 복수의 통신망을 병합하여 데이터를 전송하는 기술로서, 전송 데이터를 복수의 동종 망 또는 복수의 이종 망의 경로로 분할하여 전송하거나, 복수의 경로로 전송된 데이터를 하나의 경로로 묶어 전송할 수 있다. 다중망 병합 전송은 데이터를 복수의 경로로 동시에 전송하는 의미에서 다중 경로(Multi-Path) 전송이라고 부를 수 있다.Referring to FIG. 1, MultiNet Aggregation transmission is a technique of transmitting data by merging a plurality of communication networks. The multi-network aggregation transmission is a technique of dividing transmission data into a plurality of routes of the same kind of networks or a plurality of heterogeneous networks, The data transmitted through the path can be bundled and transmitted. Multi-network merging transmission may be referred to as multi-path transmission in the sense of simultaneously transmitting data to a plurality of paths.

다중망 병합 시스템은 사용자 단말(10), 그리고 사용자 단말(10)과 복수의 망(예를 들면, 3G/LTE망과 WiFi망)으로 연결되는 네트워크 장치(20)를 포함할 수 있다. The multi-network merging system may include a user terminal 10 and a network device 20 connected to the user terminal 10 and a plurality of networks (e.g., a 3G / LTE network and a WiFi network).

사용자 단말(10)은 다중 통신 인터페이스를 구비하고, 다중 통신 인터페이스를 통해 한 시점에 복수의 망에 연결될 수 있다. 사용자 단말(10)은 사용자가 접근하여 다중망 접속을 설정하거나 관리할 수 있는 관리 어플리케이션을 탑재할 수 있다.The user terminal 10 has multiple communication interfaces and can be connected to a plurality of networks at one time via multiple communication interfaces. The user terminal 10 may be equipped with a management application that allows a user to access and set up or manage a multi-network connection.

사용자 단말(10)은 다중망 병합을 위한 인증, 상태 관리, 트래픽 처리를 수행하는 네트워크 에이전트(agent)를 포함하고, 네트워크 에이전트는 단말 내부 로직으로 구현될 수 있다. 사용자 단말(10) 내부에서 네트워크 에이전트와 각종 어플리케이션은 소켓(socket) 통신한다. 네트워크 에이전트는 네트워크 관리를 위한 관리 어플리케이션의 설정 정보에 따라 네트워크 장치(20)와 연동한다. The user terminal 10 includes a network agent for performing authentication, state management, and traffic processing for merging multiple networks, and the network agent can be implemented as internal logic of the terminal. In the user terminal 10, a network agent and various applications communicate with each other through a socket. The network agent cooperates with the network device 20 in accordance with the setting information of the management application for network management.

네트워크 장치(20)는 다중 경로로 전송되는 서브플로우를 병합하거나, 단일 경로로 전송되는 플로우를 다중 경로의 서브플로우로 분할하여 전송한다. 네트워크 장치(20)는 다중망의 접점에 위치하고, 예를 들면, LTE망과 WiFi망의 접점에 위치할 수 있다. The network device 20 merges the sub-flows transmitted in the multi-path or splits the flows transmitted in the single path into the multi-path sub-flows and transmits the sub-flows. The network device 20 is located at the contact point of the multi-network, and can be located, for example, at the contact point of the LTE network and the WiFi network.

네트워크 장치(20)는 수신 데이터를 단말(10)로 전달하기 위해 데이터를 분할한다. 그리고 네트워크 장치(20)는 일부 데이터를 제1망(예를 들면, LTE망)의 서브플로우를 통해 사용자 단말(10)로 전송하고, 나머지 데이터를 제2망(예를 들면, WiFi망)의 서브플로우를 통해 사용자 단말(10)로 전송할 수 있다. 사용자 단말(10)은 복수의 통신 인터페이스를 통해 수신된 데이터를 병합한다. 마찬가지 방법으로, 네트워크 장치(20)는 사용자 단말(10)이 다중 통신 인터페이스를 이용하여 전송한 데이터를 병합하여 서버(30)로 전송할 수 있다.The network device 20 divides the data to transmit the received data to the terminal 10. [ Then, the network device 20 transmits some data to the user terminal 10 through the sub-flow of the first network (e.g., LTE network), and transmits the remaining data to the second network (e.g., WiFi network) To the user terminal 10 via the sub-flow. The user terminal 10 merges data received via a plurality of communication interfaces. In the same way, the network device 20 can merge the data transmitted by the user terminal 10 using the multiple communication interfaces and transmit the merged data to the server 30.

다중망 병합 기술은 병합 지점에 따라 다음과 같이 분류될 수 있다. The multi-network merging technique can be classified as follows according to the merging point.

L2/링크 계층 병합은 LTE 코어망(core)와 접속망(access)의 경계 지점(즉, eNB)에서 WiFi AP로 전용 터널을 생성한다.L2 / link layer merging creates a dedicated tunnel to the WiFi AP at the boundary between the LTE core and the access network (ie, the eNB).

L3/네트워크 계층 병합은 LTE망과 WiFi망에서 독립적으로 사용하는 IP 주소를 통합하기 위해 가상 IP 터널을 생성한다.L3 / network layer merging creates virtual IP tunnels to integrate IP addresses independently used in LTE and WiFi networks.

L4/전송 계층 병합은 단일 접속망을 통해 세션을 생성한 후, 추가적인 접속망이 사용 가능한 경우, IP 주소체계와 상관없이 데이터 전송에 참여시킬 수 있다. 이때, 응용레벨의 통신 주체는 하나 이상의 접속망을 이용하여 단일 세션 기반의 데이터 통신이 가능한 구조를 지원한다. L4 / transport layer merging can create a session over a single access network and then participate in data transmission regardless of the IP address scheme, if additional access networks are available. At this time, the application-level communication entity supports a structure capable of single-session-based data communication using one or more access networks.

L7/응용 계층 병합은 전용 어플리케이션/네트워크 에이전트가 자체적으로 LTE망과 WiFi망을 통해 수신한 데이터를 재조합하거나 응용 프로토콜 데이터를 분리하여 전송한다.L7 / Application layer merge reassembles data received by dedicated application / network agent through LTE network and WiFi network or transmits application protocol data separately.

이와 같이, 병합 전송 계층에 따라 다양한 병합 전송이 가능한데, 앞으로는 L4 기반 다중 경로 TCP(Multi-Path TCP, MPTCP)를 통한 병합 기술을 예로 들어 설명한다. In this way, it is possible to perform various merge transmissions according to the merge transport layer. In the following, merge technology using L4-based multipath TCP (MPTCP) will be described as an example.

도 2는 본 발명의 한 실시예에 따른 다중망 병합 전송을 설명하는 개념도이다.2 is a conceptual diagram illustrating multi-network merging transmission according to an embodiment of the present invention.

도 2를 참고하면, 네트워크 장치(20)가 이번 스케줄링 라운드에서 원본 데이터(1, 2, 3, 4, 5)를 전송하고, 다음 스케줄링 라운드에서 원본 데이터(6, 7, 8, 9, 10)(미도시)를 전송한다고 가정한다.2, the network device 20 transmits the original data 1, 2, 3, 4 and 5 in this scheduling round and the original data 6, 7, 8, 9 and 10 in the next scheduling round, (Not shown).

네트워크 장치(20)는 제1 스케줄링 라운드에서 원본 데이터(1, 2, 3, 4, 5)를 분할하여 제1망으로 일부 데이터(2, 3)를 전송하고, 제2망으로 나머지 데이터(1, 4, 5)를 전송한다고 가정한다. 네트워크 장치(20)는 제2 스케줄링 라운드에서 원본 데이터(6, 7, 8, 9, 10)를 분할하여 제1망으로 일부 데이터(7, 8)를 전송하고, 제2망으로 나머지 데이터(6, 9, 10)를 전송한다고 가정한다. 이때, 네트워크 장치(20)는 다중망으로 데이터를 전송하더라도 수신자가 데이터 순서를 확인할 수 있도록 데이터에 순서를 표시한다(In-order delivery).The network device 20 divides the original data 1, 2, 3, 4 and 5 in the first scheduling round to transmit some data 2 and 3 to the first network and transmits the remaining data 1 , 4, 5). The network device 20 divides the original data 6, 7, 8, 9, 10 in the second scheduling round to transmit some data 7 and 8 to the first network and transmits the remaining data 6 , 9, 10). At this time, the network device 20 displays an order in the data so that the receiver can confirm the order of the data even if the data is transmitted to the multi-network (In-order delivery).

사용자 단말(10)은 제1망에서 수신한 데이터(2, 3)와 제2망에서 수신한 데이터(1, 4, 5)의 순서대로 데이터를 병합하여 원본 데이터(1, 2, 3, 4, 5)를 획득한다.The user terminal 10 merges the data 2, 3 received in the first network and the data 1, 4, 5 received in the second network in order of the original data 1, 2, 3, 4 , 5).

한편, 제2망의 상태가 열악하여 사용자 단말(10)이 제2망을 통해 데이터를 제대로 수신하지 못할 수 있다. 그러면, 사용자 단말(10)은 네트워크 장치(20)로 재전송을 요청한다. 또는 네트워크 장치(20)는 사용자 단말(10)로부터 전송 데이터에 대한 확인응답(Acknowledgement, Ack)을 받지 못할 수 있다. 이 경우, 제1망은 제2 스케줄링 라운드의 데이터(7, 8)를 전송할 차례인데, 제2망은 제1 스케줄링 라운드의 데이터(1, 4, 5)를 재전송해야 한다. 따라서, 네트워크 장치(20)는 순서가 어긋난 전송(out-of-order delivery)을 방지하기 위해, 데이터를 전송할 제1망의 자원이 있음에도 불구하고, 제1망을 통한 제2 스케줄링 라운드 기회를 포기할 수 있다. 이와 같이, 단대단(end-to-end) 연결 기반의 전송 계층 프로토콜인 TCP는 전송 데이터에 대한 확인응답(Ack)을 미수신하거나 재전송을 요청받은 경우, 데이터를 재전송하여 신뢰성(reliability)을 보장한다. 하지만 단일망이라 데이터 재전송을 통해 신뢰성을 보장할 수 있지만, 다중망 중 어느 하나의 망에서 진행되는 데이터 재전송은 병합 전송 효율을 전체적으로 악화시키는 주요 원인이 된다.On the other hand, the state of the second network is poor and the user terminal 10 may not properly receive data through the second network. Then, the user terminal 10 requests retransmission to the network device 20. Or the network device 20 may not receive an acknowledgment (ACK) for the transmission data from the user terminal 10. [ In this case, the first network is to transmit the data 7, 8 of the second scheduling round, and the second network must retransmit the data 1, 4, 5 of the first scheduling round. Thus, in order to prevent out-of-order delivery, the network device 20 may abandon the second scheduling round opportunity through the first network even though there is a resource of the first network to transmit data . As described above, TCP, which is an end-to-end connection-based transport layer protocol, guarantees reliability by retransmitting data when it does not receive an acknowledgment (ACK) for transmission data or is requested to retransmit . However, reliability can be guaranteed by data retransmission because of a single network. However, data retransmission in any one of multiple networks is a major cause of deteriorating the merge transmission efficiency.

또는, 사용자 단말(10)이 제2망을 통해 제1 스케줄링 라운드에서 전송된 데이터(1, 4, 5)를 수신하기 전에, 제1망을 통해 제2 스케줄링 라운드에서 전송된 데이터(7, 8)를 수신할 수 있다(head-of-line blocking). 이렇게, 먼저 전송한 데이터가 다음에 전송한 데이터보다 늦게 도착하면, 사용자 단말(10)은 순서대로 데이터를 받지 못해 데이터 병합 처리를 하지 못할 수 있다. Alternatively, before the user terminal 10 receives the data (1, 4, 5) transmitted in the first scheduling round through the second network, the data 7, 8 transmitted in the second scheduling round through the first network (Head-of-line blocking). If the data transmitted first arrives later than the data transmitted next, the user terminal 10 may not receive the data in order and may not be able to perform the data merge process.

이와 같이, 다중망 각각의 상태가 다른 경우, 저품질 망의 영향을 받아 고품질 망이 자신의 자원을 최대로 사용하지 못할 수 있다. 또는 사용자 단말(10)이 다중망의 품질 차이에 의해 데이터를 순차적으로 수신하지 못하는 경우, 데이터를 제대로 전송한 고품질 망에서도 재전송이 요구될 수 있다. 이와 같이 다중망 각각에 생성된 경로별로 망 상태(예를 들면, 패킷 전송 지연시간, RTT, 패킷 손실율 등)가 다름에도 불구하고, 다중망 각각을 단일망처럼 개별적으로 패킷 스케줄링한다면, 다중망 병합 전송 효율이 낮아질 수밖에 없다.As described above, when the states of the multiple networks are different, the high-quality network may not be able to use the resources of the highest quality due to the influence of the low-quality network. Or if the user terminal 10 can not sequentially receive data due to the difference in quality of the multi-network, retransmission may be required even in a high-quality network in which data is correctly transmitted. In this way, even if the network state (for example, packet transmission delay time, RTT, packet loss rate, etc.) differs for each route generated in each of the multiple networks, if each of the multiple networks is individually scheduled as a single network, The efficiency is inevitably lowered.

다중망 병합 전송 효율을 저하시키는 다른 원인으로 수신 윈도우가 있다. 수신자인 사용자 단말(10)은 자신이 받을 수 있는 바이트 수를 나타내는 수신 윈도우(receive window)를 송신자인 네트워크 장치(20)에게 전달한다. 수신 윈도우는 버퍼 중에서 사용하지 않은 버퍼 크기일 수 있다. 네트워크 장치(20)는 수신 윈도우에 해당하는 바이트 수만큼 데이터를 전송한다. 이를 TCP에서 흐름 제어라고 하는데, 사용자 단말(10)이 수신 윈도우를 제한하는 경우, 전송망은 고품질 망이더라도 패킷 전송이 정체될 수 있다.Multi-network merging Another cause of poor transmission efficiency is the receiving window. The user terminal 10 as a receiver transmits a receive window indicating the number of bytes it can receive to the network device 20 as a sender. The receiving window may be a buffer size that is not used in the buffer. The network device 20 transmits data corresponding to the number of bytes corresponding to the reception window. This is referred to as flow control in TCP. When the user terminal 10 restricts the reception window, the packet transmission may be congested even if the transmission network is a high-quality network.

도 3은 본 발명의 한 실시예에 따른 송신 장치의 패킷 스케줄러의 구성도이다.3 is a configuration diagram of a packet scheduler of a transmission apparatus according to an embodiment of the present invention.

도 3을 참고하면, 송신 장치의 패킷 스케줄러(100)는 망 상태 모니터링부(110), 패킷 전송량 조절부(130), 그리고 버퍼 전달부(150)를 포함한다. 여기서, 송신 장치와 수신 장치가 복수의 망(예를 들면, 제1망과 제2망)을 통해 서브플로우들을 생성한 상태라고 가정한다. 패킷 스케줄러(100)는 각 서브플로우가 생성된 망 상태를 기초로 원본 데이터를 분할하고, 분할한 데이터를 해당 서브플로우의 데이터 버퍼에 추가한다. 데이터 버퍼에 추가된 데이터는 MPTCP 계층, IP 계층, L2/L1을 거쳐 연결된 망으로 전송된다.Referring to FIG. 3, the packet scheduler 100 of the transmission apparatus includes a network status monitoring unit 110, a packet transmission rate adjustment unit 130, and a buffer delivery unit 150. Here, it is assumed that the transmitting apparatus and the receiving apparatus have generated sub-flows through a plurality of networks (for example, a first network and a second network). The packet scheduler 100 divides the original data based on the network state in which each sub-flow is generated, and adds the divided data to the data buffer of the corresponding sub-flow. The data added to the data buffer is transmitted to the MPTCP layer, the IP layer, and the network connected via L2 / L1.

망 상태 모니터링부(110)는 하위 계층으로부터 각 망의 상태 파라미터를 수집한다. 망 상태 모니터링부(110)는 망 상태 파라미터를 기초로 각 망의 상태를 추정할 수 있다. 망 상태 모니터링부(110)가 수집할 수 있는 망 상태 파라미터는 다양할 수 있다. 예를 들면, 망 상태 파라미터는 RTT, 플라이트(flight) 상태 데이터 크기(bytes in flight, in-flight), 수신 윈도우(receive window, rwnd) 크기, 혼잡 윈도우(congestion window, cwnd) 크기, 데이터 버퍼에서 대기중인 데이터 크기(data size), 서브플로우 수, 재전송 데이터 크기, DSS(Data Sequence Signal) 크기 등을 포함할 수 있다.The network status monitoring unit 110 collects status parameters of each network from a lower layer. The network status monitoring unit 110 can estimate the status of each network based on the network status parameters. The network status parameters that can be collected by the network status monitoring unit 110 may vary. For example, the network state parameters may include RTT, flight in-flight, receive window (rwnd) size, congestion window (cwnd) size, The number of subflows, the size of retransmission data, the size of a DSS (Data Sequence Signal), and the like.

RTT는 세션 확립 초기단계에서 각 망을 통해 진행되는 TCP 핸드쉐이크 과정에서 얻을 수 있는 파라미터이다.The RTT is a parameter that can be obtained in the TCP handshake process through each network at the initial stage of session establishment.

플라이트 상태 데이터 크기는 전송 데이터 중에서 아직 확인응답(Ack)을 수신하지 않은 데이터 정보이다. 각 망의 서브플로우를 통해 전송한 데이터들이 데이터 버퍼(도 4의 210, 220)에 저장되므로, 플라이트 상태 데이터 크기는 데이터 버퍼(도 4의 210, 220)를 참조하여 얻을 수 있는 파라미터이다.The flight status data size is data information that has not yet received acknowledgment (Ack) from the transmission data. Since the data transmitted through the sub-flows of the respective networks are stored in the data buffers 210 and 220 of FIG. 4, the flight status data size is a parameter that can be obtained by referring to the data buffers 210 and 220 of FIG.

수신 윈도우 크기는 수신자로부터 수신한 확인응답(Ack)의 TCP 헤더에 포함되거나, 응답을 기초로 유추될 수 있다. 수신 윈도우 크기는 리눅스 커널 등에서 수신 윈도우 크기를 지시하는 변수("rwnd")로부터 얻을 수 있는 파라미터이다. The receiving window size may be included in the TCP header of the acknowledgment (Ack) received from the receiver or may be inferred based on the response. The receive window size is a parameter that can be obtained from a variable ("rwnd") indicating the size of the receive window in the Linux kernel or the like.

혼잡 윈도우 크기는 리눅스 커널 등에서 혼잡 윈도우 크기를 지시하는 변수("cwnd")로부터 얻을 수 있는 파라미터이다. The congestion window size is a parameter that can be obtained from a variable ("cwnd") indicating the congestion window size in the Linux kernel and so on.

데이터 버퍼에서 대기중인 데이터 크기는 이번 스케줄링 라운드에서 전송할 분량의 데이터 크기로서, 시간이 지나면서 전송하고 남은 데이터 크기를 지시한다. 여기서, 데이터 버퍼는 원본 데이터 버퍼(도 4의 200)이고, "skb.len"이 지시하는 값으로부터 데이터 버퍼에 대기중인 데이터 크기를 얻을 수 있다. 여기서, "skb"는 소켓 버퍼(socket buffer)를 의미하고, "len"은 길이(length)를 의미한다.The size of data waiting in the data buffer is the size of the data to be transmitted in this scheduling round, indicating the size of data that is transmitted and left over time. Here, the data buffer is the original data buffer (200 in FIG. 4), and the data size waiting in the data buffer can be obtained from the value indicated by "skb.len ". Here, "skb" means a socket buffer, and "len " means a length.

서브플로우 수, 재전송 데이터 크기, DSS 크기 등도 망 상태 모니터링부(110)에서 얻을 수 있는 파라미터들이다. DSS 크기는 경로별 서브플로우들을 합친 스트림의 크기로서, MPTCP에서 사용되는 용어이다. 예를 들어, LTE망과 WiFi망 각각에 서브플로우가 생성된 경우, DSS 크기는 LTE 서브플로우와 WiFi 서브플로우로 전송되는 데이터 크기이다.The sub-flow number, the retransmission data size, the DSS size, and the like are parameters that can be obtained from the network status monitoring unit 110. The DSS size is the size of the stream combining sub-flows by path, and is a term used in MPTCP. For example, if a subflow is generated in each of the LTE network and the WiFi network, the DSS size is the data size transmitted to the LTE subfluid and the WiFi subflow.

망 상태는 적어도 하나의 망 상태 파라미터를 기초로 추정될 수 있다. 망 상태는 품질이나 전송 속도를 의미할 수 있고, 망의 최적 전송 바이트로 정량화될 수도 있다. 예를 들면, 제1망의 최적 전송 바이트가 1500바이트로 계산되는 경우, 제1망 상태는 1500바이트로 정량화될 수 있다. 앞으로 품질이나 전송 속도를 망 상태의 한 예로 들어 설명할 수 있다.The network status can be estimated based on at least one network status parameter. The network state may mean quality or transmission rate and may be quantified as the optimal transmission byte of the network. For example, if the optimal transmission byte of the first network is calculated as 1500 bytes, the first network state may be quantified as 1500 bytes. In the future, quality or transmission speed can be described as an example of network conditions.

예를 들면, 망 상태 모니터링부(110)는 TCP 순서 번호(sequence number)의 변화 추이를 기초로 망 상태를 판단할 수 있다. TCP 순서 번호의 변화 추이는 누적된 전송 바이트수가 시간에 따라 빠르게 변하는지 느리게 변하는지를 나타내는 정보로서, 단위시간당 증가되는 순서번호 변화량(기울기)으로 계산될 수 있다. TCP 순서 번호 변화 추이를 기초로 전송 속도가 추정될 수 있다. TCP 순서 번호 변화 추이는 SACK(Selective Ack)과 DSACK(Duplicate SACK)을 포함하여 계산될 수 있다. For example, the network status monitoring unit 110 can determine the network status based on the transition of the TCP sequence number. The change in the TCP sequence number can be calculated as a sequence number change amount (slope) that is increased per unit time, as information indicating whether the accumulated number of transmission bytes changes rapidly or slowly with time. The transmission rate can be estimated based on the TCP sequence number change trend. Transition of TCP sequence number can be calculated including SACK (Selective Ack) and DSACK (Duplicate SACK).

TCP 순서 번호(앞으로, 간단히 "순서 번호"라고 한다)는 TCP 헤더에 포함되는 정보로서, 전송 데이터를 포함하는 TCP 세그먼트마다 지정된 필드에 기재된다. 수신 장치는 수신 TCP 세그먼트에서 수신 번호를 확인하고, 다음에 수신하기를 원하는 순서 번호를 확인응답에 기재해서 전송한다. 송신 장치는 확인응답에 포함된 순서 번호를 기초로 자신이 다음 데이터를 보낼지 이미 보낸 데이터를 재전송할지를 결정할 수 있어서, 수신 장치의 상태 또는 망 상태를 추정할 수 있다. 또는 송신 장치는 송신 윈도우 크기 안에서 여러 TCP 세그먼트를 전송하고, 수신 장치로부터 한 번의 확인응답을 수신할 수 있다. 이러한 순서 번호 기재 방식에 따라, 만약 순서 번호의 증가 속도(단위 시간당 순서 번호 변화량)가 거의 일정하다면 망 상태가 안정적이거나 자원 사용량이 임계값에 도달한 상태라고 판단될 수 있다. 순서 번호의 증가 속도가 빨라진다면 망 상태가 개선된 상태이거나 자원 사용량이 남아 있는 상태라고 판단될 수 있다. 순서 번호의 증가 속도가 느려진다면 망 상태가 악화된 상태이거나 자원 사용량이 부족한 상태라고 판단될 수 있다. 또는 단위시간당 증가되는 순서번호 변화량(기울기)이 가파르게 변하면, 망의 전송 속도가 빠른 상태라고 판단될 수 있다. 단위시간당 증가되는 순서번호 변화량(기울기)이 완만하게 변하거나 변화가 없는 경우라면, 망의 전송 속도가 느리거나 데이터 전송이 더 이상 진행되지 않는 상태라고 판단될 수 있다. 이와 같이, 망 상태 모니터링부(110)는 TCP 순서 번호 변화 추이를 기초로 망의 전송 상태 및 전송 패턴을 파악할 수 있다. The TCP sequence number (hereinafter simply referred to as "sequence number") is information included in the TCP header and written in a field specified for each TCP segment including transmission data. The receiving apparatus confirms the receiving number in the receiving TCP segment, and transmits a description of the sequence number to be received next in the acknowledgment. Based on the sequence number included in the acknowledgment, the transmitting apparatus can determine whether to send the next data or retransmit the already-transmitted data based on the sequence number included in the acknowledgment, thereby estimating the state or network state of the receiving apparatus. Alternatively, the transmitting device may transmit multiple TCP segments within the transmission window size and receive a single acknowledgment from the receiving device. According to this sequence numbering scheme, if the increase rate of the sequence number (the sequence number change per unit time) is almost constant, it can be judged that the network status is stable or the resource usage has reached the threshold value. If the increase rate of the sequence number is increased, it can be judged that the network status is improved or the resource usage remains. If the increase rate of the sequence number is slowed down, it can be judged that the network state is deteriorated or the resource usage is insufficient. Or the sequence number change amount (slope) increased per unit time is steeply changed, it can be determined that the transmission speed of the network is fast. If the sequence number change (slope) increases per unit time or if there is no change, it can be judged that the transmission rate of the network is slow or the data transmission is not proceeding any further. In this way, the network status monitoring unit 110 can grasp the transmission status and transmission pattern of the network based on the TCP sequence number change trend.

망 상태 모니터링부(110)는 RTT가 기준값 이상이면 패킷 전송 지연이 예상된다고 판단되거나 저품질 망이라고 판단할 수 있다.If the RTT is equal to or greater than the reference value, the network status monitoring unit 110 may determine that a packet transmission delay is expected or may be a low quality network.

망 상태 모니터링부(110)는 플라이트 상태 데이터 크기를 기초로 망 상태, 즉 품질이나 전송 속도를 판단할 수 있다. 망 상태 모니터링부(110)는 플라이트 상태 데이터 크기를 기초로 망이 얼마나 적극적으로 전송에 참여하고 있는지를 파악할 수 있다. 망 상태 모니터링부(110)는 수신 윈도우 크기, 송신 윈도우 크기, 데이터 버퍼에서 대기중인 데이터 크기, 재전송 데이터 크기, DSS 크기 등을 기초로 망 상태를 파악할 수 있다. The network status monitoring unit 110 can determine the network status, that is, the quality or the transmission rate, based on the flight status data size. The network status monitoring unit 110 determines how active the network is participating in transmission based on the size of the flight status data . The network status monitoring unit 110 can grasp the network status based on a reception window size, a transmission window size, a data size waiting in a data buffer, a retransmission data size, a DSS size, and the like.

패킷 전송량 조절부(130)는 망 상태 모니터링부(110)에서 획득한 각 망의 상태 파라미터를 기초로 각 서브플로우(또는 각 망에 생성된 경로)로 전달할 전송량을 조절한다. 전송 데이터는 TCP 전송 단위인 MTU(Maximum Transmission Unit)나 MSS(Maximum Segment Size)로 분할되어 패킷화(packetization)된다. 따라서, 각 망의 패킷 전송량은 패킷 수 또는 TCP 세그먼트 수로 결정될 수 있다. 또는 각 망의 패킷 전송량은 각 망이 데이터 전송에서 분담하는 전송 분담율(전송 비율)로 결정될 수 있다. 패킷 전송량 조절부(130)는 세그먼트로 나누어지는 기회에 대한 비율을 조정할 수 있다.The packet transmission rate adjustment unit 130 adjusts a transmission rate to be transmitted to each sub-flow (or a route generated in each network) based on the status parameters of the respective networks obtained by the network status monitoring unit 110. Transmission data is divided into packet transmission unit MTU (Maximum Transmission Unit) or MSS (Maximum Segment Size) and packetized. Therefore, the packet transmission amount of each network can be determined by the number of packets or the number of TCP segments. Alternatively, the packet transmission rate of each network can be determined as a transmission sharing rate (transmission rate) in which each network shares the data transmission. The packet transmission amount adjustment unit 130 can adjust the ratio of the opportunities divided into segments.

패킷 스케줄러(100)가 전송량을 제어하는 시점은 다양하게 설정될 수 있다.The time point at which the packet scheduler 100 controls the amount of transmission may be variously set.

한 실시예에 따르면, 패킷 전송량 조절부(130)는 스케줄링 라운드마다 각 망의 상태 파라미터를 기초로 각 서브플로우로 전달할 전송량을 결정할 수 있다. According to one embodiment, the packet transmission rate controller 130 may determine a transmission rate to be transmitted to each sub-flow based on status parameters of each network for each scheduling round.

다른 실시예에 따르면, 패킷 전송량 조절부(130)는 특정 시점에서 획득한 각 망의 상태 파라미터를 기초로 서브플로우별 전송량을 결정하고, 결정한 서브플로우별 전송량을 기초로 일정 시간 동안 스케줄링할 수 있다. 여기서 일정 시간은 복수의 스케줄링 라운드가 진행될 수 있는 시간을 의미한다.According to another embodiment, the packet transmission rate controller 130 may determine a transmission rate for each sub-flow based on status parameters of each network acquired at a specific time, and schedule the transmission rate for a predetermined time based on the determined transmission rate for each sub-flow . Here, the predetermined time means a time during which a plurality of scheduling rounds can proceed.

또 다른 실시예에 따르면, 패킷 전송량 조절부(130)는 스케줄링 변경 조건을 기초로 서브플로우별 전송량 제어를 시작할 것인지 판단할 수 있다. 스케줄링 변경 조건은 트리거링 조건이라고 부를 수 있고, 망 상태 파라미터와 망 상태의 조합으로 구성될 수 있다. 서브플로우별 전송량 제어는 복수 망의 상태를 기초로 각 망의 패킷 스케줄링을 통합 수행하는 것을 의미한다. 예를 들어, 패킷 전송량 조절부(130)는 적어도 하나의 망 상태가 기준값 이상으로 좋아지거나, 기준값 이하로 나빠지는 경우, 또는 적어도 두 망의 상태 차이가 기준값 이상인 경우, 서브플로우별 전송량을 조정하기 위해 서브플로우별 전송량 제어에 진입할 수 있다. According to another embodiment, the packet transmission rate controller 130 may determine whether to start the transmission rate control for each subflow based on the scheduling change condition. The scheduling change condition may be referred to as a triggering condition, and may be configured by a combination of a network state parameter and a network state. The control of transmission rate by sub-flow means that packet scheduling of each network is integrated based on the states of a plurality of networks. For example, when the at least one network state is improved to be equal to or greater than the reference value, or the state is at least equal to or less than the reference value, or when the state difference of at least two networks is equal to or greater than the reference value, It is possible to enter the transmission amount control for each sub-flow.

스케줄링 변경 조건은 다양한 망 상태 파라미터를 기초로 설정될 수 있다. 스케줄링 변경 조건을 만족하는 경우, 서브플로우별 전송량 제어에 진입하도록 트리거링된다. 스케줄링 변경 조건은 예를 들면, 적어도 하나의 망의 전송 품질값이 임계값에 도달한 경우, 또는 적어도 두 망의 전송 품질값 차이가 임계값에 도달한 경우일 수 있다. 전송 품질값은 예를 들면, RTT, 전송 속도, 전송 분담률(전송 비율), 재전송 데이터 크기, 수신 윈도우 크기, 송신 윈도우 크기 등과 같이 각 망의 전송 품질을 평가할 수 있는 적어도 하나의 정보로부터 결정된다. 예를 들어, 적어도 두 망의 수신 윈도우 차이가 기준값 이상인 경우 또는 RTT 차이가 기준값 이상인 경우 서브플로우별 전송량 제어에 진입하도록 트리거링될 수 있다. 적어도 하나의 망으로 전송한 확인응답 미수신 데이터(플라이트 상태 데이터)가 기준값 이상 발생한 경우 또는 확인응답 미수신 데이터가 기준값 이상 연속적으로 발생한 경우 서브플로우별 전송량 제어에 진입하도록 트리거링될 수 있다. The scheduling change condition can be set based on various network status parameters. If the scheduling change condition is satisfied, it is triggered to enter the transmission amount control per sub-flow. The scheduling change condition may be, for example, when the transmission quality value of at least one network has reached a threshold value, or at least when the transmission quality value difference of the two networks has reached a threshold value. The transmission quality value is determined from at least one piece of information capable of evaluating the transmission quality of each network, for example, RTT, transmission rate, transmission sharing ratio (transmission ratio), retransmission data size, reception window size, transmission window size, For example, if the difference between the reception windows of at least two networks is equal to or greater than the reference value, or if the RTT difference is equal to or greater than the reference value, the control may be triggered to enter the transmission rate control for each sub-flow. It may be triggered to enter the transmission amount control per subflow when the acknowledgment not received data (flight status data) transmitted to at least one network occurs more than the reference value or when the acknowledgment not received data continuously occurs beyond the reference value.

스케줄링 변경 조건은 서브플로우의 개수를 고려할 수 있다. 즉, 서브플로우의 개수가 기준값 이상인 경우, 서브플로우별 전송량 제어를 시작할 수 있다.The scheduling change condition can take into account the number of sub-flows. That is, when the number of subflows is equal to or greater than the reference value, the control of the amount of transmission for each subflow can be started.

스케줄링 변경 조건은 DSS 크기를 고려할 수 있다. 즉, 서브플로우들로 전송되는 데이터 스트림의 크기가 기준값 이상인 경우, 서브플로우별 전송량 제어를 시작할 수 있다.The scheduling change condition can take into account the DSS size. That is, when the size of the data stream transmitted to the sub-flows is equal to or larger than the reference value, the control of the amount of transmission for each sub-flow can be started.

서브플로우별 전송량 제어에 진입시킨 스케줄링 변경 조건이 해제되면 서브플로우별 전송량 제어가 해제하도록 트리거링된다. 서브플로우별 전송량 제어가 해제된 경우, 패킷 전송량 조절부(130)는 디폴트 스케줄링 방법에 따라 패킷 스케줄링을 한다. 제1망과 제2망의 상태가 유사한 경우 또는 제1망과 제2망이 모두 양호한 경우, 스케줄링 라운드마다 각 망으로 전송할 데이터량을 판단할 필요가 없기 때문이다. 디폴트 스케줄링 방법은 다양할 수 있고, 예를 들면 라운드-로빈 방식일 수 있다. 디폴트 스케줄링 방법은 각 망의 수신 윈도우 크기에 맞춰 전송하는 방식일 수 있다. 디폴트 스케줄링 방법은 복수 망 각각을 단일망처럼 간주하는 종래의 스케줄링 방식일 수 있다.When the scheduling change condition entering the sub-flow-based transmission amount control is released, the transmission amount control for each sub-flow is triggered to be released. When the transmission amount control for each subflow is released, the packet transmission amount adjustment unit 130 performs packet scheduling according to the default scheduling method. This is because it is not necessary to determine the amount of data to be transmitted to each network for each scheduling round when the first network and the second network are in a similar state or when the first network and the second network are both good. The default scheduling method may vary and may be, for example, a round-robin scheme. The default scheduling method may be a method of transmitting according to the size of the receiving window of each network. The default scheduling method may be a conventional scheduling scheme that considers each of the plurality of networks as a single network.

패킷 스케줄러(100)가 스케줄링 라운드에서 각 망에 스케줄링되는 전송량을 결정하는 방법은 다양할 수 있다. The manner in which the packet scheduler 100 determines the amount of transmission scheduled for each network in the scheduling round may vary.

한 실시예에 따르면, 패킷 전송량 조절부(130)는 복수의 망 각각의 상태 파라미터를 기초로 복수의 망 중 고품질 망을 확인한다. 그리고 패킷 전송량 조절부(130)는 고품질 망의 수신 윈도우 또는 수신 윈도우보다 일정 값 작은 크기의 데이터량을 고품질 망에 스케줄링한다. 그리고 패킷 전송량 조절부(130)는 저품질 망의 수신 윈도우를 기초로 일정 데이터량을 저품질 망에 스케줄링한다. 이때, 패킷 전송량 조절부(130)는 고품질 망의 수신 윈도우에 맞는 데이터량을 전송하는 대신, 고품질 망과 저품질 망의 수신 윈도우 차이에 해당하는 데이터량을 전송할 수 있다. 이렇게 데이터량을 수신 윈도우보다 줄여서 전송하는 이유는, 저품질 망으로 전송한 데이터가 유실되더라도, 다음 스케줄링 라운드에서 데이터 재전송에 의해 데이터 순서가 어긋나는 문제, 그리고 고품질 망이 전송 기회를 잃거나 정상적으로 전송한 데이터를 재전송하는 문제를 방지할 수 있기 때문이다. 즉, 패킷 전송량 조절부(130)는 저품질 망의 상태가 좋지 않은 경우, 저품질 망으로 전송하는 데이터가 유실되더라도 다음 스케줄링 라운드에서 순서 번호가 어긋나지 않게 유실된 데이터를 전송할 수 있도록 고품질 망의 전송량을 수신 윈도우보다 줄이는 것이다.According to one embodiment, the packet transmission rate controller 130 identifies a high quality network among a plurality of networks based on status parameters of each of a plurality of networks. The packet transmission rate controller 130 schedules a data amount of a size smaller than a reception window or a reception window of the high-quality network in the high-quality network. The packet transmission rate adjustment unit 130 schedules a certain amount of data to the low-quality network based on the reception window of the low-quality network. At this time, instead of transmitting the amount of data corresponding to the reception window of the high-quality network, the packet transmission rate controller 130 may transmit the amount of data corresponding to the reception window difference between the high-quality network and the low-quality network. The reason why the amount of data is reduced as compared with the reception window is that even if data transmitted to the low-quality network is lost, the data order is shifted due to data retransmission in the next scheduling round, It is possible to prevent the problem of re-transmission of the data. That is, if the quality of the low-quality network is not good, the packet transmission rate controller 130 receives the transmission amount of the high-quality network so that the lost data can be transmitted in the next scheduling round It is less than Windows.

다른 실시예에 따르면, 패킷 전송량 조절부(130)는 복수의 망 각각의 상태 파라미터를 기초로 복수 망으로의 최적의 데이터 전송 비율을 결정할 수 있다. 예를 들면, 패킷 전송량 조절부(130)는 복수의 망 각각의 상태 파라미터(RTT, 수신 윈도우, 패킷 손실율 등)가 a, b, c, ..., n이고, 각 상태 파라미터의 가중치가 Wa, Wb, Wc, ..., Wn이며, 복수의 망이 x개 존재(N1, N2, N3, ..., Nn)한다면, 수학식 1과 같이 각 망의 상태값을 계산한다. 긍정적인 상태 파라미터(예를 들면, 수신 윈도우 크기 등)라면 가중치는 플러스값이거나 상태 파라미터값을 키우는 값이고, 부정적인 상태 파라미터(예를 들면, RTT, 패킷 손실율 등)라면 가중치는 마이너스값이거나 상태 파라미터값을 줄이는 값일 수 있다. 수학식 1에서, N은 N1부터 Nx 중 어느 하나이다.According to another embodiment, the packet transmission amount adjustment unit 130 can determine the optimal data transmission ratio to a plurality of networks based on the state parameters of each of the plurality of networks. B, c, ..., n, and the weight of each state parameter is Wa (i, j), for example, , Wn, Wc, ..., Wn, and if a plurality of networks exist (N1, N2, N3, ..., Nn), the state values of the respective networks are calculated as shown in Equation (1). If the weight is a positive value or a value that raises the state parameter value, and if it is a negative state parameter (e.g., RTT, packet loss rate, etc.), then the weight is negative or the state parameter May be a value that reduces the value. In Equation (1), N is any one of N1 to Nx.

Figure pat00001
Figure pat00001

패킷 전송량 조절부(130)는 복수의 망 중에서 각 망의 상태값이 차지하는 비율을 표준화하고, 이를 각 망의 데이터 전송 비율로 결정한다. 예를 들면, 패킷 전송량 조절부(130)는 제1망의 상태값으로부터 계산된 전송 비율이 75%이고, 제2망의 상태값으로부터 계산된 전송 비율이 25%일 수 있다. 패킷 전송량 조절부(130)는 전송량을 전송 비율로 분할하는데, 예를 들면 전송량이 2000바이트라면 제1망으로 1500바이트를 전송하고, 제2망으로 500바이트를 전송할 수 있다. 전송량은 패킷 수로 표현되고, 전송 패킷수를 전송 비율로 분할할 수 있다.The packet transmission rate controller 130 normalizes the ratio of the status values of the respective networks among a plurality of networks and determines the ratio as a data transmission rate of each network. For example, the packet transmission rate controller 130 may have a transmission rate calculated from the state value of the first network is 75%, and a transmission rate calculated from the state value of the second network may be 25%. The packet transmission rate controller 130 divides the transmission rate into transmission ratios. For example, if the transmission rate is 2000 bytes, the packet transmission rate adjuster 130 may transmit 1500 bytes to the first network and 500 bytes to the second network. The amount of transmission is represented by the number of packets, and the number of transmission packets can be divided by the transmission rate.

버퍼 전달부(150)는 패킷 전송량 조절부(130)에서 결정한 서브플로우별 전송량을 기초로 원본 데이터를 분할하고, 분할된 데이터를 해당 서브플로우의 데이터 버퍼에 추가한다. 각 서브플로우의 데이터 버퍼에 추가된 데이터는 MPTCP 계층과 IP 계층을 거쳐 전송 패킷이 되고, L2/L1의 네트워크 계층을 거쳐 수신자에게 전달된다. The buffer transfer unit 150 divides the original data on the basis of the transfer amount per sub-flow determined by the packet transfer amount control unit 130, and adds the divided data to the data buffer of the corresponding sub-flow. The data added to the data buffer of each sub-flow is transmitted through the MPTCP layer and the IP layer, and is transmitted to the receiver through the L2 / L1 network layer.

도 4는 본 발명의 한 실시예에 따른 송신 장치에서 스케줄링된 패킷이 전송되는 네트워크 스택을 개념적으로 설명하는 도면이다.4 is a conceptual illustration of a network stack in which a packet is transmitted in a transmitting apparatus according to an embodiment of the present invention.

도 4를 참고하면, 패킷 스케줄러(100)는 원본 데이터 버퍼(200)에 수신 장치로 전송할 데이터가 채워지면, 복수의 망 각각으로 어느 정도의 데이터를 전송할지 결정한다. 또는 패킷 스케줄러(100)는 송신 장치의 프로세서(미도시)와 커널 컨텍스트를 얻어 소켓 통신을 수행할 수 있는 기회를 얻게 되면, 소켓에 의해 할당된 데이터 버퍼(200)를 통해 포인터 이동 연산(디스크립터 지정)을 하여 패킷 스케줄링을 시작할 수 있다 Referring to FIG. 4, when the data to be transmitted to the receiving apparatus is filled in the original data buffer 200, the packet scheduler 100 determines how much data is to be transmitted to each of the plurality of networks. Or the packet scheduler 100 obtains a kernel context from the processor of the transmitting apparatus and acquires an opportunity to perform socket communication, the packet scheduler 100 performs a pointer movement operation (descriptor designation) through the data buffer 200 allocated by the socket ) To start packet scheduling

원본 데이터 버퍼(200)는 수신 장치로 전송할 데이터를 저장하는 저장소이다. 원본 데이터는 외부로부터 수신한 데이터이거나, 송신 장치의 어플리케이션에서 생성된 데이터일 수 있다. The original data buffer 200 is a storage for storing data to be transmitted to the receiving apparatus. The original data may be data received from the outside, or data generated in the application of the transmitting apparatus.

패킷 스케줄러(100)는 각 망의 상태 파라미터를 수집한다. 그리고 패킷 스케줄러(100)는 각 망의 상태 파라미터를 기초로 각 망의 상태를 결정한다. 패킷 스케줄러(100)는 각 망의 상태를 기초로 서브플로우별 전송량 제어에 진입할 것인지 판단할 수 있다. 패킷 스케줄러(100)는 각 망의 상태를 기초로 서브플로우별 전송량 제어에 진입하는 조건이 해제되면 서브플로우별 전송량 제어를 해제하고, 디폴트 스케줄링 방법의 패킷 스케줄링을 할 수 있다. 패킷 스케줄러(100)는 스케줄링 라운드마다 각 서브플로우로 전달할 데이터량을 결정할 수 있다. 각 서브플로우로 전달할 데이터량은 각 서브플로우로 전달할 데이터비율일 수 있다. 패킷 스케줄러(100)는 서브플로우별 데이터량/데이터비율을 기초로 원본 데이터 버퍼(200)에 저장된 데이터를 분할한다. 패킷 스케줄러(100)는 분할된 데이터를 해당 서브플로우의 데이터 버퍼(210, 220)에 추가한다. 데이터 버퍼(210, 220)는 전송 소켓 버퍼(send socket buffer)일 수 있다.The packet scheduler 100 collects status parameters of each network. The packet scheduler 100 determines the state of each network based on the state parameters of the respective networks. The packet scheduler 100 can determine whether to enter the throughput control for each subflow based on the state of each network. The packet scheduler 100 can release the transmission rate control for each sub-flow and perform packet scheduling according to the default scheduling method when the condition for entering the transmission rate control for each sub-flow is canceled based on the state of each network. Packet scheduler 100 may determine the amount of data to be delivered to each sub-flow per scheduling round. The amount of data to be delivered to each sub-flow may be the ratio of data to be delivered to each sub-flow. The packet scheduler 100 divides the data stored in the original data buffer 200 based on the data amount / data ratio for each sub-flow. The packet scheduler 100 adds the divided data to the data buffers 210 and 220 of the corresponding sub-flows. The data buffers 210 and 220 may be transmit socket buffers.

MPTCP 계층은 각 서브플로우의 데이터 버퍼(210, 220)에 추가된 데이터를 TCP 세그먼트들로 분할한다. 각 서브플로우에 대응된 IP 계층은 TCP 세그먼트들에 IP 헤더를 붙인 패킷을 생성한다. 패킷은 L2/L1의 네트워크 계층을 거쳐 수신 장치에게 전달된다.The MPTCP layer splits the data added to the data buffers 210 and 220 of each sub-flow into TCP segments. The IP layer associated with each sub-flow creates a packet with an IP header attached to the TCP segments. The packet is transmitted to the receiving device via the L2 / L1 network layer.

도 5는 본 발명이 적용되지 않은 경우의 병합 전송 스케줄링 방법을 설명하는 도면이고, 도 6은 본 발명의 한 실시예에 따른 병합 전송 스케줄링 방법을 설명하는 도면이다.FIG. 5 is a diagram for explaining a merging transmission scheduling method when the present invention is not applied, and FIG. 6 is a view for explaining a merging transmission scheduling method according to an embodiment of the present invention.

먼저, 단대단(end-to-end) 연결 기반의 전송 계층 프로토콜인 TCP는 흐름 제어(flow control), 혼잡 제어(congestion control), 오류 제어(error control) 방식을 기반으로 동작한다. 그리고, TCP는 전송 데이터에 대한 확인응답(Ack)을 미수신한 경우, 확인응답 미수신 데이터를 재전송하여 신뢰성(reliability)을 보장하는 특징이 있다. First, TCP, an end-to-end connection-based transport layer protocol, operates based on flow control, congestion control, and error control. TCP is characterized in that, when an acknowledgment (ACK) for transmission data is not received, retransmission of acknowledgment / non-acknowledgment data ensures reliability.

흐름 제어는 송신 장치가 수신 장치의 수신 윈도우가 허용하는 데이터량을 전송하는 것을 의미한다. 수신 윈도우는 수신 장치가 알려준다.Flow control means that the transmitting device transmits the amount of data allowed by the receiving window of the receiving device. The receiving window informs the receiving device.

혼잡 제어는 망에서의 혼잡을 방지하기 위해 망에 유입되는 데이터량을 제한하는 것을 의미한다. 혼잡 제어는 혼잡 윈도우(congestion window)가 허용하는 데이터량을 전송하도록 한다. 혼잡 제어는 송신 장치가 구현한다. Congestion control means to limit the amount of data that flows into the network to prevent congestion in the network. Congestion control allows transmission of the amount of data allowed by the congestion window. Congestion control is implemented by the transmitting device.

혼잡 제어는 송신 장치가 수신 장치로 전송하는 데이터량을 점차적으로 증가시키면서 혼잡이 야기되는 시점에 전송량을 조정한다. 혼잡 제어를 통해 가능한 최대의 망 자원을 점유하여 통신 속도를 조정할 수 있다. 이때 TCP 혼잡 제어는 수신 장치의 확인응답에 따라 송신 장치가 전송량을 점차적으로 늘린다. 전송량은 세션 연결부터 느린 시작(slow start)까지는 기하급수적(exponential)으로 증가한다. 설정에 의해 정의된 느린 시작 임계(slow start threshold, ssthresh) 구간부터는 혼잡 회피(congestion avoidance, ca) 구간이다. 혼잡 회피 구간에서 전송량은 확인응답 수신에 따라 선형적(linear)으로 증가한다. 이때 사용되는 전송량을 혼잡 윈도우라고 한다. 혼잡 윈도우의 크기는 TCP 순서 번호(sequence number)를 증가하면서 늘어나다가, 이후 기대하는 정도로 전송이 안되거나, 순서 번호가 비정상적으로 인입되어 정상적인 데이터 통신이 불가능한 경우, 혼잡 윈도우 크기는 조정되어 적절한 데이터량이 망으로 전송된다. Congestion control adjusts the amount of transmission at the point of time when congestion occurs, gradually increasing the amount of data transmitted by the transmitting device to the receiving device. Congestion control can control the communication speed by occupying the maximum possible network resources. At this time, the TCP congestion control gradually increases the transmission amount by the transmitting apparatus according to the acknowledgment of the receiving apparatus. Transmission volume increases exponentially from session connection to slow start. It is a congestion avoidance (ca) interval from the slow start threshold (ssthresh) interval defined by the setting. In the congestion avoidance period, the amount of transmission increases linearly with receipt of the acknowledgment. The amount of transmission used at this time is called the congestion window. The size of the congestion window increases as the TCP sequence number increases. If the data can not be transmitted to the expected degree, or if the sequence number is abnormally received and normal data communication is not possible, the congestion window size is adjusted, Lt; / RTI >

하지만 다중망으로 데이터를 전송할 때, 단일망 기준으로 설계된 혼잡 제어 메커니즘을 그대로 사용한다면, 제1망 상태에 따라 발생되는 재전송이나 혼잡 제어가 제2망에 영향을 주게 된다. 따라서, 도 2를 참고로 설명한 바와 같이, 수신 장치에서 수신된 원본 데이터의 전달 순서가 어긋날 수 있다. However, when data is transmitted through multiple networks, if the congestion control mechanism designed based on a single network is used as it is, retransmission or congestion control caused by the first network state affects the second network. Therefore, as described with reference to Fig. 2, the order of transmission of the original data received by the receiving apparatus may be out of order.

한편, 각 망으로 전달되는 데이터 전송량/전송 비율/전송 기회는 송신 장치의 TCP 계층이 아닌 패킷 스케줄러에 의해 결정된다. 하지만, 종래의 패킷 스케줄러는 망 상태를 알지 못한 채 단지 정해진 방식으로 스케줄링하기 때문에, 어느 망의 상태가 다른 망으로 영향을 주어 결과적으로 전체 병합 전송 효율이 저하됨에도 불구하고, 스케줄링을 동적으로 변경하기 어렵다. 즉, 종래의 네트워크 장치는 TCP 계층에서 혼잡 제어를 할 뿐, 혼잡 발생 시 또는 혼잡 발생 전에 패킷 스케줄러에 의한 전송량/전송 비율/전송 기회 제어를 기대하기 어렵다.Meanwhile, the data transmission amount / transmission ratio / transmission opportunity transmitted to each network is determined by the packet scheduler, not the TCP layer of the transmitting apparatus. However, since the conventional packet scheduler schedules only a predetermined manner without knowing the network status, it is possible to change the scheduling dynamically even though the state of one network affects the other network, it's difficult. That is, the conventional network device performs congestion control only at the TCP layer, and it is difficult to expect the transmission rate / transmission rate / transmission opportunity control by the packet scheduler at the time of congestion or before congestion occurs.

도 5를 참고하면, 제1망은 빠른 RTT, 낮은 패킷 손실율을 가지는 고품질 망이고, 제2망은 제1망보다 느린 RTT, 높은 패킷 손실율을 가지는 저품질 망이라고 가정한다. Referring to FIG. 5, it is assumed that the first network is a high-quality network having a fast RTT and a low packet loss rate, and the second network is a low-quality network having a slow RTT and a high packet loss rate than the first network.

종래의 일반적인 TCP 혼잡 제어 방식으로 다중망으로 전송되는 패킷을 스케줄링하는 경우, 혼잡 제어에 의해 제1망의 초기 전송량이 늘어나지만, 시간이 지나면서 제2망의 패킷 전송 지연이나 재전송에 의해 제1망이 영향을 받아 전송량이 줄어들 수 있다.In the case of scheduling a packet transmitted to multiple networks in a conventional TCP congestion control scheme, the initial transmission amount of the first network increases due to congestion control, but the packet transmission delay or retransmission of the first network is delayed The network may be affected and the throughput may be reduced.

예를 들면, 송신 장치는 제1 스케줄링 라운드에서 수신 장치로 일정 데이터를 전송하고, 수신 장치로부터 제1망의 수신 윈도우는 2000바이트이고 제2망의 수신 윈도우는 500바이트라고 회신받는다. 그러면, 송신 장치는 제2 스케줄링 라운드에서 제1망으로 2000바이트를 전송하고, 제2망으로 500바이트를 전송한다. 그런데, 제2망의 상태가 열악하여 송신 장치가 수신 장치로부터 제2망으로 전송한 데이터에 대한 확인응답을 받지 못할 수 있다. 제3 스케줄링 라운드가 되면, 송신 장치는 제2망으로 다음 데이터를 보내지 않고 대기하거나 이전 데이터를 재전송할 수 있고, 제1망으로는 다음 데이터를 보내거나 전송 기회를 포기할 수 있다. 결과적으로 두 망의 상태가 달라 TCP 혼잡 제어나 재전송이 어느 망에서 진행된다면, 수신 장치가 수신한 데이터 순서가 어긋날 수 있고, 송신 장치는 고품질의 제1망으로 보낸 데이터마저 재전송할 수 있다.For example, the transmitting apparatus transmits certain data to the receiving apparatus in the first scheduling round, and receives a reply from the receiving apparatus that the receiving window of the first network is 2000 bytes and the receiving window of the second network is 500 bytes. Then, the transmitting apparatus transmits 2000 bytes to the first network in the second scheduling round, and transmits 500 bytes to the second network. However, the state of the second network may be poor and the transmitting apparatus may not receive an acknowledgment of the data transmitted from the receiving apparatus to the second network. At the third scheduling round, the transmitting apparatus can wait for the next data to be transmitted to the second network or retransmit the previous data, and can send the next data to the first network or abandon the transmission opportunity. As a result, if the TCP congestion control or the retransmission is performed in any network, the order of data received by the receiving apparatus may be changed and the transmitting apparatus may retransmit data sent to the first network of high quality.

이와 같이, 종래의 스케줄링 방식을 따르면, 제1망은 고품질이지만, 제2망의 영향으로 패킷 스케줄링 기회를 잃어 동반하여 패킷 전송량 및 병합 전송 효율이 낮아질 수 있다.As described above, according to the conventional scheduling scheme, although the first network is of high quality, the packet transmission amount and the merge transmission efficiency may be lowered due to the loss of the packet scheduling opportunity due to the influence of the second network.

도 6을 참고하면, 본 발명의 패킷 스케줄러(100)는 각 망의 상태를 관리한다. 특히 패킷 스케줄러(100)는 각 망의 수신 윈도우를 관리한다. 패킷 스케줄러(100)는 수신 윈도우를 기초로 각 망이 분담할 전송량/전송 비율을 동적으로 결정한다. Referring to FIG. 6, the packet scheduler 100 of the present invention manages the state of each network. In particular, the packet scheduler 100 manages the reception windows of each network. The packet scheduler 100 dynamically determines a transmission amount / transmission rate to be shared by each network based on the reception window.

예를 들면, 송신 장치는 제1 스케줄링 라운드에서 수신 장치로 일정 데이터를 전송하고, 수신 장치로부터 제1망의 수신 윈도우는 2000바이트이고 제2망의 수신 윈도우는 500바이트라고 회신받는다. 이때, 송신 장치의 패킷 스케줄러(100)는 제1망과 제2망이 모두 양호한 품질의 망 상태라면 수신 윈도우를 기초로 제1망으로 2000바이트를 전송하고 제2망으로 500바이트를 전송하도록 스케줄링할 수 있다. For example, the transmitting apparatus transmits certain data to the receiving apparatus in the first scheduling round, and receives a reply from the receiving apparatus that the receiving window of the first network is 2000 bytes and the receiving window of the second network is 500 bytes. At this time, if the first network and the second network are both in good network quality, the packet scheduler 100 of the transmitting apparatus transmits scheduling information such as 2000 bytes to the first network and 500 bytes to the second network, can do.

만약, 패킷 스케줄러(100)가 제2망의 상태 파라미터를 기초로 제2망이 기준 이하의 저품질 망이라는 것을 판단할 수 있고, 패킷 손실율이 기준값 이상이라는 것을 예상할 수 있다. 즉, 패킷 스케줄러(100)는 제2망으로 전송한 데이터에 대해 확인응답이 늦게 도달하거나, 확인응답을 받지 못한 경우, 서브플로우별 전송량 제어가 필요하다고 판단한다. 송신 장치는 원본 데이터를 순서대로 보내야 하는데, 이미 제2망으로 보낸 데이터에 대한 확인응답을 못 받은 상황이라면 다음 데이터를 제1망으로도 보낼 수 없으므로, 서브플로우별 전송량 제어를 시작한다.If the packet scheduler 100 determines that the second network is a lower-quality low-quality network based on the state parameters of the second network, it can be predicted that the packet loss rate is equal to or higher than the reference value. That is, the packet scheduler 100 determines that the transmission rate control for each sub-flow is necessary when the acknowledgment is delayed or the acknowledgment is not received with respect to the data transmitted to the second network. The transmitting apparatus must transmit the original data in order. If the receiving apparatus does not receive the acknowledgment of the data already sent to the second network, it can not transmit the next data to the first network.

패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제1망의 수신 윈도우(2000바이트)보다 적은 전송량을 제1망에 스케줄링한다. 여기서, 수신 윈도우보다 적은 전송량은 제1망의 수신 윈도우(2000바이트)에서 제2망으로 전송하는 데이터량(예를 들면 500바이트)을 제외한 값(1500바이트)일 수 있다. 패킷 스케줄러(100)는 만약에 제2망으로 보낸 500바이트에 대해 확인응답을 못 받더라도, 제3 스케줄링 라운드가 되면, 제2 스케줄링 라운드에서 미처 보내지 않은 500바이트를 제1망으로 보낼 수 있다. 또는 패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제2망으로 보냈으나 확인응답을 못 받은 500바이트를 포함한 전송량을 제1망으로 보낼 수 있다. The packet scheduler 100 schedules the first network with a transmission amount smaller than the reception window (2000 bytes) of the first network in the second scheduling round. Here, the transmission amount less than the reception window may be a value (1500 bytes) excluding the amount of data (for example, 500 bytes) transmitted from the reception window (2000 bytes) of the first network to the second network. If the packet scheduler 100 fails to acknowledge the 500 bytes sent to the second network, the packet scheduler 100 may send 500 bytes not yet sent in the second scheduling round to the first network when the third scheduling round is reached. Alternatively, the packet scheduler 100 may send a transmission amount including 500 bytes that were sent from the second scheduling round to the second network but failed to receive an acknowledgment to the first network.

이와 같이, 패킷 스케줄러(100)는 제2 스케줄링 라운드에서 저품질의 제2망으로 전송한 패킷에 대한 확인응답 수신 여부에 관계없이, 원본 데이터 중에서 제2 스케줄링 라운드에서 제1망에 스케줄링하고 남은 다음 데이터가 있으면, 제3 스케줄링 라운드에서 남은 다음 데이터를 제1망에 스케줄링(reinjection)한다. 여기서, 제2 스케줄링 라운드에서 제1망에 스케줄링하고 남은 다음 데이터는 제2 스케줄링 라운드에서 제2망에 스케줄링한 데이터를 포함하므로, 수신 장치는 결과적으로 제1망과 제2망을 통해 순차적으로 전송된 패킷을 수신하고, 이를 병합해서 원본 데이터를 획득할 수 있다. As described above, the packet scheduler 100 determines whether or not the acknowledgment of the packet transmitted to the second network of the lower quality in the second scheduling round is received, the next packet of the original data, which is scheduled to the first network in the second scheduling round, , It reinjects the next data remaining in the third scheduling round to the first network. In this case, since the next data scheduled in the first scheduling round in the second scheduling round includes the data scheduled in the second network during the second scheduling round, the receiving apparatus sequentially transmits through the first and second networks Received packets, and merges them to obtain original data.

이렇게 패킷 스케줄러(100)가 제2망의 상태를 고려하여 제1망의 전송량을 제어하여 전송하면, 수신 장치에서 다중망으로 전송된 데이터 순서를 빨리 조합할 수 있고, 전체 구간으로 보았을 때 병합 전송 속도를 높일 수 있다. 왜냐하면 저품질의 제2망으로부터 확인응답을 수신하지 못하더라도 제1망마저 전송 기회를 잃거나 데이터 순서를 맞추기 위해 제1망마저 재전송해야 하는 상황을 회피할 수 있기 때문이다. When the packet scheduler 100 controls the amount of transmission of the first network considering the state of the second network, the packet scheduler 100 can quickly combine the data sequence transmitted from the receiving apparatus to the multi-network, It can speed up. This is because even if the acknowledgment is not received from the second network of low quality, it is possible to avoid the situation in which the first network is forced to retransmit the first network in order to lose the transmission opportunity or to arrange the order of the data.

한편, 패킷 스케줄러(100)는 확인응답에 포함된 수신 윈도우의 크기를 기초로 각 망의 전송량을 결정한다. 이때, 패킷 스케줄러(100)는 수신 윈도우에 해당하는 바이트수보다 적은 바이트수를 전송량으로 결정한다. On the other hand, the packet scheduler 100 determines a transmission amount of each network based on the size of the reception window included in the acknowledgment. At this time, the packet scheduler 100 determines the number of bytes less than the number of bytes corresponding to the reception window as the transmission amount.

실제로 수신 장치가 알려주는 수신 윈도우의 크기는 실제 수신 가능한 양보다 다소 높이 알려줄 수 있다. 따라서, 패킷 스케줄러(100)는 TCP 순서 번호의 증가 추이와 수신 장치로부터 수신한 수신 윈도우의 크기의 변화 추이를 기초로 수신 장치가 알려주는 수신 윈도우의 크기가 실제 수신 가능한 양보다 다소 높이 알려주는 것인지 판단한다. 그리고 패킷 스케줄러(100)는 판단 결과를 기초로 수신 윈도우에 해당하는 바이트수보다 적은 바이트수를 전송량으로 결정한다. In fact, the size of the receiving window that the receiving device is informed of may be somewhat higher than the actual receivable amount. Accordingly, the packet scheduler 100 determines whether the size of the reception window indicated by the reception apparatus is higher than the actual receivable amount based on the trend of increase of the TCP sequence number and the change of the size of the reception window received from the reception apparatus . Based on the determination result, the packet scheduler 100 determines the number of bytes less than the number of bytes corresponding to the reception window as the transmission amount.

이와 같이, 패킷 스케줄러(100)가 각 망의 수신 윈도우보다 적은 데이터량을 전송한다면, 전체 원본 데이터 구성 시 데이터 순서 오류로 인해 발생되는 패킷 재전송/재주입(reinjection)을 피할 수 있다.As described above, if the packet scheduler 100 transmits a smaller amount of data than the receiving window of each network, packet retransmission / reinjection due to data sequence error can be avoided in the entire original data configuration.

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

도 7을 참고하면, 다중망 병합 전송을 위해 복수의 망 각각을 통해 서브플로우가 생성된 상태에서, 패킷 스케줄러(100)는 수신 장치로 전송할 데이터가 있으면, 각 서브플로우로 전송할 데이터를 스케줄링한다. Referring to FIG. 7, in a state where a sub-flow is generated through each of a plurality of networks for multi-network merging transmission, the packet scheduler 100 schedules data to be transmitted to each sub-flow if there is data to be transmitted to the receiving apparatus.

패킷 스케줄러(100)는 수신 장치와 연결된 복수 망 각각의 상태 파라미터를 수집한다(S110). 망 상태 파라미터는 RTT, 플라이트 상태 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 데이터 버퍼에서 대기중인 데이터 크기, 서브플로우 수, 재전송 데이터 크기, DSS 크기 등을 포함할 수 있다. The packet scheduler 100 collects status parameters of each of a plurality of networks connected to the receiving apparatus (S110). The network status parameters may include RTT, flight status data size, receive window size, congestion window size, data size waiting in the data buffer, number of subflows, retransmission data size, DSS size, and the like.

패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터를 기초로 복수 망에 대한 통합 스케줄링이 필요한 시점을 결정한다(S120). 즉, 패킷 스케줄러(100)는 서브플로우별 전송량 제어에 진입할 것인지 판단한다. 스케줄링 통합 기준은 도 3에서 설명한 바와 같이, 적어도 하나의 망의 수신 윈도우가 임계값에 도달한 경우 또는 RTT가 임계값에 도달한 경우일 수 있다. 또는 스케줄링 통합 기준은 적어도 두 망의 수신 윈도우 차이가 임계값 이상인 경우 또는 RTT 차이가 임계값 이상인 경우일 수 있다. 예를 들어, 제2망의 수신 윈도우가 임계값에 도달하거나 RTT가 임계값에 도달하면, 통합 스케줄링 시점이라고 결정될 수 있다. 제1망과 제2망의 수신 윈도우 차이가 임계값 이상이거나 RTT 차이가 임계값 이상이면, 통합 스케줄링 시점이라고 결정될 수 있다.The packet scheduler 100 determines a point in time when the integrated scheduling for a plurality of networks is required based on the status parameters of each of the plurality of networks (S120). That is, the packet scheduler 100 determines whether to enter the transmission rate control for each sub-flow. The scheduling integration criteria may be when the reception window of at least one network has reached a threshold value or when the RTT has reached a threshold value, as described in FIG. Or the scheduling integration criteria may be at least when the reception window difference of the two networks is above the threshold or when the RTT difference is above the threshold. For example, if the reception window of the second network reaches a threshold value or the RTT reaches a threshold value, it can be determined to be the integrated scheduling time point. If the difference between the reception windows of the first network and the second network is equal to or greater than the threshold value or the RTT difference is equal to or greater than the threshold value, it can be determined as the integrated scheduling time point.

통합 스케줄링 시점인 경우, 패킷 스케줄러(100)는 각 망의 상태 파라미터를 기초로 복수의 망 중에서 고품질의 제1망을 결정한다(S130). In the case of the integrated scheduling time, the packet scheduler 100 determines a first network of high quality among a plurality of networks based on the state parameters of the respective networks (S130).

패킷 스케줄러(100)는 복수의 망 중에서 제1망이 아닌 나머지 제2망의 수신 윈도우를 기초로 제2망의 전송량을 결정한다(S140). 제2망의 전송량은 제2망의 수신 윈도우와 같거나 적은 값이다.The packet scheduler 100 determines the amount of transmission of the second network based on the reception window of the second network that is not the first network among the plurality of networks (S140). The transmission amount of the second network is equal to or less than the reception window of the second network.

패킷 스케줄러(100)는 제1망의 수신 윈도우보다 일정 크기 적은 데이터량을 제1망의 전송량으로 결정한다(S150). 여기서 일정 크기는 제2망의 전송량일 수 있다.The packet scheduler 100 determines a data amount smaller than the reception window of the first network by a predetermined amount as the transmission amount of the first network (S150). Here, the predetermined size may be the transmission amount of the second network.

패킷 스케줄러(100)는 제1망의 전송량에 해당하는 데이터와 제2망의 전송량에 해당하는 데이터를 해당 망의 서브플로우 데이터 버퍼에 추가한다(S160). 서브플로우의 데이터 버퍼에 저장된 데이터는 MPTCP 계층에서 TPC 세그먼트로 분할되고 IP 계층에서 IP 패킷으로 생성되어 수신 장치로 전송된다.The packet scheduler 100 adds the data corresponding to the transmission amount of the first network and the data corresponding to the transmission amount of the second network to the sub-flow data buffer of the corresponding network (S160). The data stored in the data buffer of the sub-flow is divided into TPC segments in the MPTCP layer and is generated as IP packets in the IP layer and transmitted to the receiving device.

패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터를 기초로 통합 스케줄링을 해제할 시점을 결정한다(S170). 스케줄링 통합 기준을 만족하지 못하면 통합 스케줄링을 해제할 시점이라고 판단될 수 있다. The packet scheduler 100 determines a time point at which unified scheduling is released based on the state parameters of each of the plurality of networks (S170). If the scheduling integration criterion is not satisfied, it can be judged that the integrated scheduling is canceled.

통합 스케줄링 해제 시점인 경우, 패킷 스케줄러(100)는 디폴트 스케줄링 방법에 따라 복수 망 각각으로 전송할 데이터를 스케줄링한다(S180). In the case of the unified scheduling release point, the packet scheduler 100 schedules data to be transmitted to each of the plurality of networks according to the default scheduling method (S180).

한편, 패킷 스케줄러(100)는 스케줄링 라운드마다 제1망의 전송량과 제2망의 전송량을 계산할 수 있다. 또는 패킷 스케줄러(100)는 한 번 계산된 제1망의 전송량과 제2망의 전송량을 복수의 스케줄링 라운드에서 사용할 수 있다. 제1망의 전송량과 제2망의 전송량은 제1망과 제2망의 전송 비율 그리고 스케줄링 라운드에서의 총 전송량으로부터 계산될 수 있다.On the other hand, the packet scheduler 100 can calculate the transmission amount of the first network and the transmission amount of the second network for each scheduling round. Alternatively, the packet scheduler 100 can use the transmission amount of the first network and the transmission amount of the second network, which are calculated once, in a plurality of scheduling rounds. The transmission rate of the first network and the transmission rate of the second network can be calculated from the transmission ratios of the first and second networks and the total transmission amount in the scheduling round.

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

도 8을 참고하면, 패킷 스케줄러(100)는 제1 스케줄링 라운드에서 제1망과 제2망으로 전송한 데이터에 대해, 수신 장치로부터 확인응답들을 수신한다(S210).Referring to FIG. 8, the packet scheduler 100 receives acknowledgments from the receiving apparatus for data transmitted to the first network and the second network in the first scheduling round (S210).

패킷 스케줄러(100)는 확인응답들을 기초로 제1망의 수신 윈도우와 제2망의 수신 윈도우를 확인한다(S220).The packet scheduler 100 confirms the reception window of the first network and the reception window of the second network based on the acknowledgments (S220).

패킷 스케줄러(100)는 각 망의 상태 파라미터와 트리거링 조건을 기초로 제1망과 제2망에 대한 전송량 제어가 필요한지 판단한다(S230). 트리거링 조건은 도 3에서 설명한 바와 같이, 적어도 하나의 망의 수신 윈도우가 임계값에 도달한 경우 또는 전송 품질값(예를 들면, RTT, 전송 지연 시간, 패킷 손실율 등)가 임계값에 도달한 경우일 수 있다. 또는 판단 기준은 적어도 두 망의 수신 윈도우 차이가 기준값 이상인 경우 또는 전송 품질값 차이가 기준값 이상인 경우일 수 있다. The packet scheduler 100 determines whether the amount of traffic to be transmitted to the first network and the second network is necessary based on the status parameters and the triggering conditions of each network (S230). 3, when the reception window of at least one network reaches the threshold value or when the transmission quality value (for example, RTT, transmission delay time, packet loss rate, etc.) reaches the threshold value Lt; / RTI > Or the determination criterion may be at least when the reception window difference between the two networks is equal to or greater than the reference value or when the transmission quality value difference is equal to or greater than the reference value.

전송량 제어가 필요한 경우, 패킷 스케줄러(100)는 제1망과 제2망 중 고품질인 제1망을 결정하고, 제1망의 수신 윈도우보다 일정 크기 적은 데이터량을 제2 스케줄링 라운드에서의 제1망 전송량으로 결정한다(S240). 여기서 일정 크기는 제2망의 전송량일 수 있다.The packet scheduler 100 determines a first network of high quality among the first and second networks and transmits a data amount smaller than the reception window of the first network by a predetermined amount to the first one of the first and second networks in the second scheduling round, Is determined as the network transmission amount (S240). Here, the predetermined size may be the transmission amount of the second network.

패킷 스케줄러(100)는 제1망과 제2망 중 저품질인 제2망의 수신 윈도우를 기초로 제2 스케줄링 라운드에서의 제2망 전송량을 결정한다(S250).The packet scheduler 100 determines a second network transmission amount in a second scheduling round based on a reception window of a second network of a lower quality among the first and second networks (S250).

패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제1망으로 전송한 데이터에 대해, 수신 장치가 전송한 확인응답이 수신된 것을 확인한다(S260).The packet scheduler 100 confirms that an acknowledgment transmitted by the receiving apparatus has been received, to the data transmitted to the first network in the second scheduling round (S260).

제3 스케줄링 라운드가 도래하는 시점에, 패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제2망으로 전송한 데이터에 대해, 확인응답을 수신하지 못한 것을 확인한다(S270).At the time when the third scheduling round arrives, the packet scheduler 100 confirms that the acknowledgment is not received for the data transmitted to the second network in the second scheduling round (S270).

패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제2망으로 전송한 데이터를 제3 스케줄링 라운드에서 제1망으로 전송할 데이터 버퍼에 추가한다(S280).The packet scheduler 100 adds the data transmitted to the second network in the second scheduling round to the data buffer to be transmitted to the first network in the third scheduling round (S280).

도 9는 본 발명의 또 다른 실시예에 따른 패킷 스케줄링 방법의 흐름도이다.9 is a flowchart of a packet scheduling method according to another embodiment of the present invention.

도 9를 참고하면, 패킷 스케줄러(100)는 수신 장치와 연결된 복수 망 각각의 상태 파라미터를 기초로 스케줄링 방법을 가변한다. 패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터들이 스케줄링 변경 조건을 만족하는 경우, 제1 방법에서 제2 방법으로 스케줄링 방법을 변경한다. 패킷 스케줄러(100)는 스케줄링 변경 조건이 해제된 경우, 제2 방법에서 제1 방법으로 스케줄링 방법을 복귀한다. 앞으로, 제1 방법을 디폴트 스케줄링 방법이라고 가정하고, 제2 방법을 서브플로우별 전송량 제어를 수행하는 다중망 병합 패킷 스케줄링(Multinet Aggregation Packet Scheduling, MA-PS) 방법이라고 가정하며, 스케줄링 방법 명칭은 당연히 다양하게 변경될 수 있다. 다음에서, 총 전송 세그먼트 크기는 일정 크기로 전송되는 세그먼트 수에 대응되는 의미일 수 있다. 다음에서, 세그먼트 크기 제어로 전송량을 제어하는 방법에 대해 설명한다.Referring to FIG. 9, the packet scheduler 100 varies a scheduling method based on state parameters of each of a plurality of networks connected to a receiving apparatus. The packet scheduler 100 changes the scheduling method from the first method to the second method when the state parameters of each of the plurality of networks satisfy the scheduling change condition. The packet scheduler 100 returns the scheduling method to the first method in the second method when the scheduling change condition is released. It is assumed that the first method is a default scheduling method and that the second method is a Multinet Aggregation Packet Scheduling (MA-PS) method for controlling the throughput per sub-flow, and the name of the scheduling method is of course And can be variously changed. In the following, the total transmission segment size may have a meaning corresponding to the number of segments transmitted with a certain size. Next, a method of controlling the amount of transmission with the segment size control will be described.

적어도 하나의 망을 통해 서브플로우가 생성(세션 성립)되면, 패킷 스케줄러(100)는 디폴트 스케줄링 방법으로 스케줄링을 시작한다(S310). 디폴트 스케줄링 방법은 복수 망 각각의 상태 파라미터와 관계없이 동작하도록 미리 지정된다.When a subflow is created through at least one network (session establishment), the packet scheduler 100 starts scheduling by the default scheduling method (S310). The default scheduling method is predetermined to operate regardless of the status parameters of each of the plurality of networks.

패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터를 기초로 스케줄링 변경 조건(트리거링 조건)을 만족하는지 판단한다(S320). 스케줄링 변경 조건은 서브플로우별 전송량 제어에 진입하도록 트리거링하는 정보로서, 다양한 조건들의 조합으로 구성될 수 있다. 예를 들면, 스케줄링 변경 조건은 서브플로우 수와 DSS 크기를 조건 파라미터로 이용할 수 있다. 만약, 서브플로우의 개수가 기준값(A) 초과인 경우, 패킷 스케줄러(100)는 DSS 크기가 기준값(B) 초과인지 판단한다(S322, S324). 서브플로우의 개수가 기준값(A) 이하이거나 DSS 크기가 기준값(B) 이하인 경우, 패킷 스케줄러(100)는 디폴트 스케줄링 방법을 유지(스케줄링 변경 조건 불만족)한다(S322, S324). DSS 크기가 기준값(B) 초과이면, 패킷 스케줄러(100)는 스케줄링 변경 조건을 만족한다고 판단한다.The packet scheduler 100 determines whether the scheduling change condition (triggering condition) is satisfied based on the state parameters of each of the plurality of networks (S320). The scheduling change condition is information for triggering to enter the transmission rate control per sub-flow, and can be configured as a combination of various conditions. For example, the scheduling change condition can use the number of subflows and the size of the DSS as condition parameters. If the number of subflows exceeds the reference value A, the packet scheduler 100 determines whether the size of the DSS exceeds the reference value B (S322, S324). If the number of subflows is less than or equal to the reference value A or the DSS size is less than or equal to the reference value B, the packet scheduler 100 maintains the default scheduling method (unsatisfactory scheduling change condition) (S322, S324). If the DSS size exceeds the reference value B, the packet scheduler 100 determines that the scheduling change condition is satisfied.

스케줄링 변경 조건을 만족하는 경우, 패킷 스케줄러(100)는 다중망 병합 스케줄링(MA-PS)을 시작한다(S330).If the scheduling change condition is satisfied, the packet scheduler 100 starts the multi-network merge scheduling (MA-PS) (S330).

패킷 스케줄러(100)는 적어도 하나의 서프플로우를 전송량 제어 대상(간단히, "제어 대상"이라고 한다)으로 결정한다(S340). 제어 대상은 다양하게 결정될 수 있고, 예를 들면, 복수의 서브플로우 중 고품질 서브플로우를 제어 대상으로 결정할 수 있다. 다음에서, LTE망에 생성된 서브플로우에 대한 전송량 제어를 설명한다. WiFi망에 생성된 서브플로우에 대한 전송량 제어도 별도로 진행될 수 있다. 한편, 다중망 병합 스케줄링은 WiFi망으로 전송한 데이터에 대한 확인응답을 수신하지 못한 경우, 확인응답 미수신 데이터를 LTE 망으로 재주입(reinjection)할 수 있지만, 도 9에서는 재주입 관련 프로세스까지 설명하지 않는다.The packet scheduler 100 determines at least one surf flow as a transmission rate control object (simply referred to as a "control object") (S340). The control object can be variously determined, and for example, a high-quality sub-flow among a plurality of sub-flows can be determined as a control object. Next, the transmission amount control for the sub-flow generated in the LTE network will be described. The transmission rate control for the generated sub-flows in the WiFi network can also be performed separately. On the other hand, when the multi-network merging scheduling fails to receive the acknowledgment of the data transmitted to the WiFi network, the acknowledgment non-receipt data can be reinjected into the LTE network. Do not.

패킷 스케줄러(100)는 제어 대상의 망 상태 파라미터를 기초로 제어 대상을 통해 단위시간당 전송할 총 전송 세그먼트(segment) 크기를 조정할지 판단한다(S350). 여기서, 세그먼트 크기는 TSO(TCP Segment Offload)에 의해 TCP 스택에서 MTU보다 큰 세그먼트를 생성할 수 있는 경우라면 단일 세그먼트의 크기를 의미할 수 있고, 그렇지 않은 경우라면 단위 세그먼트들의 총 크기(총 전송량)을 의미할 수 있다. 단위 세그먼트는 TCP 전송 단위인 MTU 또는 MSS일 수 있다. 패킷 스케줄러(100)는 제어 대상의 상태 파라미터들, 예를 들면, 플라이트 상태 데이터(in-flight) 크기, 수신 윈도우(rwnd) 크기, 혼잡 윈도우(cwnd) 크기, 재전송 데이터(retx) 크기를 사용하여 세그먼트 크기를 조정할지 판단한다. 예를 들면, 단계(S350)에서, 패킷 스케줄러(100)는 플라이트 상태 데이터 크기를 기초로 총 세그먼트 크기 조정 여부를 판단할 수 있다. The packet scheduler 100 determines whether to adjust the total transmission segment size to be transmitted per unit time through the control object based on the network status parameter of the control object (S350). Here, the segment size can mean the size of a single segment if a segment larger than the MTU can be generated in the TCP stack by TSO (TCP Segment Offload), otherwise the total size (total transmission amount) . ≪ / RTI > The unit segment may be an MTU or an MSS, which is a TCP transmission unit. The packet scheduler 100 uses the state parameters of the control object, for example, the flight state data (in-flight) size, the reception window size, the congestion window size, and the retransmission data (retx) size Determine if the segment size should be adjusted. For example, in step S350, the packet scheduler 100 may determine whether to adjust the total segment size based on the flight state data size.

플라이트 상태 데이터가 기준값(C)을 초과하여 발생한 경우, 패킷 스케줄러(100)는 총 전송 세그먼트 크기를 결정한다(S360). 즉, 플라이트 상태 데이터가 기준값(C)을 초과하여 발생한 경우, 패킷 스케줄러(100)는 제어 대상의 망 상태 파라미터를 기초로 총 전송 세그먼트 크기를 늘리거나 줄이면서 전송할 세그먼트 크기를 결정한다. 단계(S370)를 통해 단위시간당 전송 데이터량이 가변될 수 있다.If the flight state data occurs beyond the reference value C, the packet scheduler 100 determines the total transmission segment size (S360). That is, when the flight state data occurs beyond the reference value C, the packet scheduler 100 determines the segment size to be transmitted with increasing or decreasing the total transmission segment size based on the network state parameter of the control object. The amount of transmission data per unit time may be varied through step S370.

패킷 스케줄러(100)는 총 전송 세그먼트 크기가 결정되면, 데이터 버퍼(200)에 대기중인 데이터 크기(skb.len이 지시하는 데이터 크기)와 총 전송 세그먼트 크기를 비교한다(S370).  When the total transmission segment size is determined, the packet scheduler 100 compares the total transmission segment size with the data size (data size indicated by skb.len) waiting in the data buffer 200 (S370).

데이터 버퍼(200)에 대기중인 데이터 크기(skb.len)가 총 전송 세그먼트 크기보다 크면, 패킷 스케줄러(100)는 데이터 버퍼(200)에서 대기중인 데이터 중에서 총 전송 세그먼트 크기만큼을 제어 대상(LTE 망)을 통해 전송한다(S372).If the data size (skb.len) waiting in the data buffer 200 is larger than the total transmission segment size, the packet scheduler 100 allocates the total transmission segment size from the data waiting in the data buffer 200 to the control target (LTE network (S372).

데이터 버퍼(200)에 대기중인(남은) 데이터 크기(skb.len)가 총 전송 세그먼트 크기보다 작으면, 패킷 스케줄러(100)는 데이터 버퍼(200)에 대기중인 데이터(skb.len)를 제어 대상(LTE 망)을 통해 전송한다(S374).If the data size (skb.len) waiting in the data buffer 200 is smaller than the total transmission segment size, the packet scheduler 100 transmits data (skb.len) waiting in the data buffer 200 to the control target (LTE network) (S374).

한편, 단계(S350)에서 플라이트 상태 데이터가 기준값(C) 이하로 발생한 경우, 패킷 스케줄러(100)는 단계(S370)로 이동한다. 이때, 패킷 스케줄러(100)는 단계(S360)의 총 전송 세그먼트 크기 조정 단계를 거치지 않고, 일반적인 방식을 따른다. 즉, 패킷 스케줄러(100)는 가용한 혼잡 윈도우 크기(cwnd 크기와 in-flight 크기의 차이)를 기초로 결정된 총 전송 세그먼트 크기(MTU 크기* 세그먼트 수)가 skb.len보다 크면, skb.len만큼의 데이터를 전송하고, skb.len보다 작으면, 총 전송 세그먼트 크기를 전송한다. On the other hand, if the flight state data is less than or equal to the reference value C in step S350, the packet scheduler 100 moves to step S370. At this time, the packet scheduler 100 does not go through the total transmission segment size adjusting step of step S360, but follows the general method. That is, if the total transmission segment size (MTU size * segment number) determined based on the available congestion window size (the difference between the cwnd size and the in-flight size) is larger than skb.len, skb.len And transmits the total transmission segment size if it is smaller than skb.len.

패킷 스케줄러(100)는 데이터 버퍼에 대기중인 적어도 일부의 데이터를 전송한 후, 제어 대상의 망 상태 파라미터를 기초로 다중망 병합 스케줄링이 해제되는지 판단한다(S380). 패킷 스케줄러(100)는 원본 데이터 버퍼(200)에 저장된 데이터 크기(skb.len)를 기초로 스케줄링 변경 조건을 해제할 것인지 판단할 수 있다. 만약, 원본 데이터 버퍼(200)에 저장된 데이터 크기가 기준값(예를 들면, 0)이 되면, 패킷 스케줄러(100)는 디폴트 스케줄링 방법으로 이동한다(S310으로 이동). 원본 데이터 버퍼에 저장된 데이터 크기가 기준값보다 크면, 패킷 스케줄러(100)는 제어 대상에 대한 전송량 제어를 유지한다(S350으로 이동).The packet scheduler 100 determines whether multi-network merging scheduling is released based on the network status parameter of the control object after transmitting at least some data waiting in the data buffer (S380). The packet scheduler 100 may determine whether to release the scheduling change condition based on the data size (skb.len) stored in the original data buffer 200. [ If the data size stored in the original data buffer 200 becomes a reference value (for example, 0), the packet scheduler 100 moves to the default scheduling method (moves to S310). If the size of the data stored in the original data buffer is larger than the reference value, the packet scheduler 100 maintains the transmission amount control for the control object (moves to S350).

한편, 단계(S360)에서, 현재 스케줄링 라운드의 총 전송 세그먼트 크기를 결정하기 위해 다양한 망 상태 파라미터들이 이용될 수 있다. 예를 들면, 플라이트 상태 데이터(in-flight) 크기, 수신 윈도우(rwnd) 크기, 혼잡 윈도우(cwnd) 크기, 재전송 데이터(retx) 크기가 이용될 수 있다.On the other hand, in step S360, various network status parameters may be used to determine the total transmission segment size of the current scheduling round. For example, flight state data (in-flight) size, reception window (rwnd) size, congestion window size (cwnd), retransmission data (retx) size can be used.

패킷 스케줄러(100)는 제어 대상의 망 상태 파라미터들을 기초로 총 전송 세그먼트 크기를 상향 또는 하향 조정 여부를 판단한다(S362). 판단 조건은 표 1과 같이 설정될 수 있다. 이때, 총 전송 세그먼트 크기는 기준값보다 상향 또는 하향 조정되는데, 기준값은 가용한 혼잡 윈도우 크기(available cwnd) 또는 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수일 수 있다. 여기서, 가용한 혼잡 윈도우 크기는 혼잡 윈도우 크기에서 플라이트 상태 데이터 크기(in-filght)를 제외한 값으로 정의될 수 있다. The packet scheduler 100 determines whether the total transmission segment size is adjusted up or down based on the network status parameters of the control object (S362). The judgment conditions can be set as shown in Table 1. At this time, the total transmission segment size is adjusted upward or downward from the reference value, which may be an available congestion window size (available cwnd) or the number of segments that can be transmitted in an available congestion window size. Here, the available congestion window size can be defined as a value excluding the flight state data size (in-filght) in the congestion window size.

조건Condition 판단 결과Judgment result in-flight<rwnd(or cwnd)
and/or
retx<threshold
in-flight <rwnd (or cwnd)
and / or
retx <threshold
총 전송 세그먼트 크기 또는 총 전송 세그먼트 수)를
가용한 혼잡 윈도우(cwnd) 크기보다 상향 조정
Total transmission segment size or total number of transmission segments)
Upwards than the available congestion window (cwnd) size
in-flight>=rwnd(or cwnd)
and/or
retx>=threshold
in-flight> = rwnd (or cwnd)
and / or
retx> = threshold
총 전송 세그먼트 크기 또는 총 전송 세그먼트 수를
가용한 cwnd 크기보다 하향 조정
The total transmission segment size or the total number of
Lower than the available cwnd size

패킷 스케줄러(100)는 판단 결과를 기초로 가용한 혼잡 윈도우 크기보다 상향 조정된 총 전송 세그먼트 크기를 결정한다(S364). The packet scheduler 100 determines the total transmission segment size adjusted upwards than the available congestion window size based on the determination result (S364).

또는 패킷 스케줄러(100)는 판단 결과를 기초로 가용한 혼잡 윈도우 크기보다 하향 조정된 총 전송 세그먼트 크기를 결정한다(S366).Alternatively, the packet scheduler 100 determines the total transmission segment size that is lower than the available congestion window size based on the determination result (S366).

예를 들어, 가용한 혼잡 윈도우 크기가 5000Bytes이고, 단위 세그먼트 크기가 1500Bytes라고 가정한다. 가용한 혼잡 윈도우 크기에서 단위시간당 전송될 수 있는 세그먼트 수는 3개이다.For example, assume that the available congestion window size is 5000Bytes and the unit segment size is 1500Bytes. The number of segments that can be transmitted per unit time in the available congestion window size is three.

하지만, 표 1의 판단 결과가 상향 조정인 경우, 패킷 스케줄러(100)는 총 전송 세그먼트 크기를 가용한 혼잡 윈도우 크기보다 큰 값(6000Bytes)으로 상향 조정한다. 그러면, LTE망은 세그먼트 크기 조정 전보다 많은 4개의 세그먼트를 전송할 수 있다. However, if the determination result in Table 1 is the upward adjustment, the packet scheduler 100 adjusts the total transmission segment size to a value larger than the available congestion window size (6000 bytes). Then, the LTE network can transmit more than four segments before segment size adjustment.

표 1의 판단 결과가 하향 조정인 경우, 패킷 스케줄러(100)는 총 전송 세그먼트 크기를 가용한 혼잡 윈도우 크기보다 작은 값(3000Bytes)으로 하향 조정한다. 그러면, LTE망은 세그먼트 크기 조정 전보다 적은 2개의 세그먼트를 전송할 수 있다. If the determination result in Table 1 is a downward adjustment, the packet scheduler 100 adjusts the total transmission segment size to a value smaller than the available congestion window size (3000 bytes). Then, the LTE network can transmit less than two segments before segment size adjustment.

이때, 총 전송 세그먼트 크기를 가용한 혼잡 윈도우 크기보다 큰 6000Bytes로 상향 조정할지, 가용한 혼잡 윈도우 크기보다 작은 3000Bytes로 하향 조절할지는 단위 세그먼트 크기를 기준으로 조정할 수 있다. 즉, 패킷 스케줄러(100)는 제어 대상인 LTE망의 상태 파라미터를 기초로 현재의 가용한 혼잡 윈도우 크기로 전송할 수 있는 세그먼트 수보다 적어도 한 개 더 보내거나 적어도 한 개 덜 보내는 전송량 제어를 수행할 수 있다.At this time, it is possible to adjust the total transmission segment size based on the unit segment size to be adjusted to 6000Bytes larger than the available congestion window size or down to 3000Bytes smaller than the available congestion window size. That is, the packet scheduler 100 can perform at least one transmission or at least one less transmission control than the number of segments that can be transmitted at the current available congestion window size based on the state parameters of the LTE network to be controlled .

패킷 스케줄러(100)는 TCP의 GSO(generic segmentation offload)를 기반으로 세그먼트 수를 조정할 수 있다. 이를 통해 패킷 스케줄러(100)는 단위시간당 전송 세그먼트 수(또는 패킷 수)를 가변할 수 있는 효과를 얻을 수 있다. 한편, 특정 경로(예를 들면, WiFi망에 생성된 서브플로우 경로)에 GSO 세그먼트 크기(<64KB)를 적용할 것인지를 나타내는 코드레벨이 사용될 수 있다.Packet scheduler 100 may adjust the number of segments based on the generic segmentation offload (GSO) of TCP. Accordingly, the packet scheduler 100 can obtain the effect of varying the number of transmission segments (or the number of packets) per unit time. On the other hand, a code level indicating whether to apply the GSO segment size (<64 KB) to a specific path (for example, a sub-flow path created in the WiFi network) may be used.

도 10은 본 발명의 한 실시예에 따른 다중망 병합 전송 장치의 하드웨어 블록도이다.10 is a hardware block diagram of a multiplexing transmission apparatus according to an embodiment of the present invention.

도 10을 참고하면, 패킷 스케줄러(100)가 구현된 다중망 병합 전송 장치(1000)는 프로세서(1100), 메모리 장치(1200), 저장 장치(1300), 복수의 통신 장치(1400) 등을 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다. 하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 프로그램은 도 1부터 도 9를 참고로 설명한 본 발명의 동작 방법을 구현한 명령어(instructions)를 포함하고, 프로세서(1100)와 메모리 장치(1200) 등의 하드웨어와 결합하여 본 발명을 실행한다. 패킷 스케줄러(100)의 동작은 프로세서(1100)에 의해 구동되고, 원본 데이터 버퍼(200)나 각 서브플로우의 데이터 버퍼(210, 220)는 메모리 장치(1200)의 지정된 위치에 구현될 수 있다. MPTCP/IP 알고리즘은 운영 체제의 커널(Kernel) 영역에 구현될 수 있다.10, a multi-network merge transmission apparatus 1000 in which a packet scheduler 100 is implemented includes a processor 1100, a memory device 1200, a storage device 1300, a plurality of communication devices 1400, and the like And stores a program that is executed in combination with hardware at a specified location. The hardware has a configuration and performance capable of executing the method of the present invention. The program includes instructions implementing the method of operation of the present invention described with reference to FIGS. 1-9, and is implemented in conjunction with hardware, such as processor 1100 and memory device 1200, to implement the present invention. The operation of the packet scheduler 100 is driven by the processor 1100 and the original data buffer 200 and the data buffers 210 and 220 of each subflow can be implemented at designated locations in the memory device 1200. The MPTCP / IP algorithm can be implemented in the operating system kernel domain.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.The embodiments of the present invention described above are not implemented only by the apparatus and method, but may be implemented through a program for realizing the function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

Claims (20)

다중망 병합 전송 장치의 패킷 스케줄링 방법으로서,
수신 장치와 연결된 복수 망 각각에 대한 망 상태 파라미터들을 수집하는 단계,
상기 복수 망 각각의 망 상태 파라미터들을 기초로 상기 복수 망 중에서 제어 망을 결정하는 단계, 그리고
상기 제어 망에 대한 적어도 하나의 망 상태 파라미터를 기초로 상기 제어 망으로 전송할 단위시간당 데이터량을 조정하는 단계
를 포함하는 패킷 스케줄링 방법.
A packet scheduling method of a multi-network merging transmission apparatus,
Collecting network status parameters for each of a plurality of networks coupled to the receiving device,
Determining a control network among the plurality of networks based on the network state parameters of each of the plurality of networks, and
Adjusting a data amount per unit time to be transmitted to the control network based on at least one network status parameter for the control network
Lt; / RTI &gt;
제1항에서,
상기 망 상태 파라미터들은
패킷 왕복 시간, 전송 데이터 중에서 아직 확인응답을 수신하지 않은 플라이트 상태 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 그리고 재전송 데이터 크기 중 적어도 두 개를 포함하는 패킷 스케줄링 방법.
The method of claim 1,
The network state parameters
A packet round-trip time, a flight status data size, a reception window size, a congestion window size, and a retransmission data size that have not yet received an acknowledgment from transmission data.
제1항에서,
상기 단위시간당 데이터량을 조정하는 단계는
상기 제어 망을 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기가 제1기준값보다 큰 경우, 상기 단위시간당 데이터량을 조정하는 패킷 스케줄링 방법.
The method of claim 1,
The step of adjusting the amount of data per unit time
And adjusting the amount of data per unit time when a size of data that has not yet received an acknowledgment from the data transmitted through the control network is larger than a first reference value.
제1항에서,
상기 단위시간당 데이터량을 조정하는 단계는
상기 제어 망에 대한 적어도 하나의 망 상태 파라미터를 기초로, 기준값보다 많거나 적은 단위시간당 전송 데이터량을 결정하고,
상기 기준값은 상기 제어 망의 가용한 혼잡 윈도우 크기 또는 상기 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수인 패킷 스케줄링 방법.
The method of claim 1,
The step of adjusting the amount of data per unit time
Determining a transmission data amount per unit time that is more or less than a reference value based on at least one network status parameter for the control network,
Wherein the reference value is a number of transmittable segments in an available congestion window size of the control network or the available congestion window size.
제4항에서,
원본 데이터 버퍼에서 전송 대기중인 데이터 중에서 상기 결정한 전송 데이터량을 상기 제어 망으로 전송하는 단계
를 더 포함하는 패킷 스케줄링 방법.
5. The method of claim 4,
Transmitting the determined amount of data to be transmitted from the data buffer waiting in the original data buffer to the control network
Lt; / RTI &gt;
제1항에서,
스케줄링 변경 조건을 기초로 제1 스케줄링 방법에서 제2 스케줄링 방법으로 변경할지 판단하는 단계를 더 포함하고,
상기 제어 망을 결정하는 단계는
상기 제1 스케줄링 방법에서 상기 제2 스케줄링 방법으로 변경되는 경우, 상기 복수 망 중에서 제어 망을 결정하며,
상기 제1 스케줄링 방법은 단일망에서 사용되는 스케줄링 방법이고,
상기 제2 스케줄링 방법은 다중망 병합 스케줄링 방법인 패킷 스케줄링 방법.
The method of claim 1,
Further comprising determining whether to change from a first scheduling method to a second scheduling method based on a scheduling change condition,
The step of determining the control network
Wherein when the first scheduling method is changed to the second scheduling method, a control network is determined among the plurality of networks,
The first scheduling method is a scheduling method used in a single network,
Wherein the second scheduling method is a multi-network merge scheduling method.
제6항에서,
상기 스케줄링 변경 조건은
상기 복수 망에 생성된 서브플로우의 수와 서브플로우들로 전송되는 데이터 스트림의 크기(Data Sequence Signal, DSS)로 구성된 판단 조건인 패킷 스케줄링 방법.
The method of claim 6,
The scheduling change condition
And a determination condition configured by a number of subflows generated in the plurality of networks and a size of a data stream transmitted to the subflows (Data Sequence Signal, DSS).
제6항에서,
상기 스케줄링 변경 조건은
상기 복수 망 중 어느 하나의 망의 전송 품질이 제1 기준값 이상으로 좋아지는 경우, 상기 복수 망 중 어느 하나의 망의 전송 품질이 제2 기준값 이상으로 악화되는 경우, 상기 복수 망 중 적어도 두 망의 품질 차이가 제3 기준값 이상인 경우 중 어느 하나를 포함하는 패킷 스케줄링 방법.
The method of claim 6,
The scheduling change condition
When transmission quality of any one of the plurality of networks is improved to be equal to or higher than a first reference value and transmission quality of any one of the plurality of networks is deteriorated to a second reference value or more, And the difference is equal to or greater than a third reference value.
제6항에서,
상기 제1 스케줄링 방법에서 상기 제2 스케줄링 방법으로 변경된 후, 상기 스케줄링 변경 조건이 해제되면, 상기 제1 스케줄링 방법으로 복귀하는 단계
를 더 포함하는 패킷 스케줄링 방법.
The method of claim 6,
Wherein when the scheduling change condition is released after the first scheduling method is changed to the second scheduling method, the step of returning to the first scheduling method
Lt; / RTI &gt;
제6항에서,
상기 제1 스케줄링 방법에서 상기 제2 스케줄링 방법으로 변경된 후, 상기 수신 단말로의 데이터 전송이 완료되면, 상기 제1 스케줄링 방법으로 복귀하는 단계
를 더 포함하는 패킷 스케줄링 방법.
The method of claim 6,
Wherein the first scheduling method is changed to the second scheduling method, and when data transmission to the receiving terminal is completed, returning to the first scheduling method
Lt; / RTI &gt;
다중망 병합 전송 장치의 패킷 스케줄링 방법으로서,
임의 서브플로우를 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기를 기초로 상기 서브플로우로 전송할 세그먼트 크기 조정이 필요한지 판단하는 단계,
세그먼트 크기 조정이 필요한 경우, 상기 서브플로우에 관계된 적어도 하나의 망 상태 파라미터를 기초로 상기 서브플로우로 전송할 총 전송 세그먼트 크기를 결정하는 단계, 그리고
결정한 총 전송 세그먼트 크기의 데이터를 전송하는 단계
를 포함하는 패킷 스케줄링 방법.
A packet scheduling method of a multi-network merging transmission apparatus,
Determining whether segment size adjustment to be sent to the subflow is necessary based on a data size that has not yet received an acknowledgment from among data transmitted through an arbitrary subflow;
Determining a total transmission segment size to transmit to the sub-flow based on at least one network status parameter associated with the sub-flow if segment size adjustment is required; and
The step of transmitting data of the determined total transmission segment size
Lt; / RTI &gt;
제11항에서,
상기 세그먼트 크기 조정이 필요한지 판단하는 단계는
상기 확인응답을 수신하지 않은 데이터 크기가 제1기준값보다 큰 경우, 세그먼트 크기 조정이 필요하다고 판단하는 패킷 스케줄링 방법.
12. The method of claim 11,
The step of determining whether the segment size adjustment is necessary
And determining that segment size adjustment is necessary if the size of the data that does not receive the acknowledgment is greater than a first reference value.
제11항에서,
상기 총 전송 세그먼트 크기를 결정하는 단계는
상기 서브플로우에 관계된 망 상태 파라미터들을 비교하여, 기준값보다 크거나 작은 총 전송 세그먼트 크기를 결정하고,
상기 기준값은 상기 제어 망의 가용한 혼잡 윈도우 크기 또는 상기 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수인 패킷 스케줄링 방법.
12. The method of claim 11,
The step of determining the total transmission segment size
Comparing the network state parameters associated with the sub-flow to determine a total transmission segment size greater or smaller than the reference value,
Wherein the reference value is a number of transmittable segments in an available congestion window size of the control network or the available congestion window size.
제13항에서,
상기 서브플로우에 관계된 망 상태 파라미터들은
상기 서브플로우를 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 그리고 재전송 데이터 크기 중 적어도 두 파라미터들을 포함하는 패킷 스케줄링 방법.
The method of claim 13,
The network state parameters associated with the sub-
Wherein the at least two parameters include at least one of a data size, a reception window size, a congestion window size, and a retransmission data size that have not yet received an acknowledgment from the data transmitted through the sub-flow.
적어도 하나의 프로세서에 의해 동작하는 패킷 스케줄러로서,
수신 장치와 연결된 복수 망 각각의 망 상태 파라미터들을 수집하는 망 상태 모니터링부,
상기 복수 망 각각의 망 상태 파라미터들을 기초로 상기 복수 망 각각에 생성된 서브플로우별 전송량을 조절하는 패킷 전송량 조절부, 그리고
상기 서브플로우별 전송량을 기초로 상기 수신 장치로 전달할 원본 데이터를 분할하고, 분할한 데이터를 각 서브플로우의 데이터 버퍼에 추가하는 버퍼 전달부
를 포함하고,
상기 각 서브플로우의 데이터 버퍼에 저장된 데이터는 MPTCP(Multi-Path TCP) 계층과 IP(Internet Protocol) 계층을 거쳐 상기 각 서브플로우가 생성된 망으로 전달되는 패킷 스케줄러.
A packet scheduler operating by at least one processor,
A network status monitoring unit for collecting network status parameters of a plurality of networks connected to the receiving apparatus,
A packet transmission rate controller for controlling a transmission rate of each sub-flow generated in each of the plurality of networks based on the network status parameters of the plurality of networks,
A buffer transfer unit for dividing the original data to be transferred to the receiving apparatus based on the transmission amount for each sub-flow and adding the divided data to the data buffer of each sub-
Lt; / RTI &gt;
Wherein data stored in a data buffer of each sub-flow is delivered to a network in which each sub-flow is generated through a multi-path TCP (MPTCP) layer and an IP (Internet Protocol) layer.
제15항에서,
상기 망 상태 파라미터들은
각 망으로 전송한 패킷의 왕복 시간(round trip time), 각 망으로 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기, 각 망의 수신 윈도우 크기, 각 망의 혼잡 윈도우 크기, 그리고 각 망에서의 재전송 데이터 크기 중 적어도 두 개를 포함하는 패킷 스케줄러.
16. The method of claim 15,
The network state parameters
The round trip time of packets transmitted to each network, the size of data not yet acknowledged among the data transmitted to each network, the size of the receiving window of each network, the size of the congestion window of each network, The size of the retransmission data of the packet scheduler.
제15항에서,
상기 패킷 전송량 결정부는
상기 복수 망 각각의 망 상태 파라미터를 기초로 서브플로우별 전송량 제어를 시작할 지 판단하고, 상기 서브플로우별 전송량 제어를 시작하는 경우, 상기 복수 망 중 적어도 하나의 망에서의 전송 데이터량을 기준값을 기준으로 상향 또는 하향 조정하는 패킷 스케줄러.
16. The method of claim 15,
The packet transmission amount determination unit
Determining whether to start the transmission rate control for each subflow based on the network status parameter of each of the plurality of networks, and when starting the transmission rate control for each subflow, calculating a transmission data amount in at least one network among the plurality of networks, To the packet scheduler.
제17항에서,
상기 패킷 전송량 결정부는
상기 복수 망에 생성된 서브플로우의 수와 서브플로우들로 전송되는 데이터 스트림의 크기(Data Sequence Signal, DSS)로 구성된 판단 조건을 기초로 상기 서브플로우별 전송량 제어를 시작할 지 판단하는 패킷 스케줄러.
The method of claim 17,
The packet transmission amount determination unit
And determines whether to start the transmission rate control for each subflow based on a determination condition including a number of subflows generated in the plurality of networks and a size of a data stream transmitted to the subflows (Data Sequence Signal, DSS).
제17항에서,
상기 패킷 전송량 결정부는
상기 복수 망 중 어느 하나의 망의 전송 품질이 제1 기준값 이상으로 좋아지는 경우, 상기 복수 망 중 어느 하나의 망의 전송 품질이 제2 기준값 이상으로 악화되는 경우, 상기 복수 망 중 적어도 두 망의 품질 차이가 제3 기준값 이상인 경우 중 어느 하나를 포함하는 판단 조건을 기초로 상기 서브플로우별 전송량 제어를 시작할 지 판단하는 패킷 스케줄러.
The method of claim 17,
The packet transmission amount determination unit
When transmission quality of any one of the plurality of networks is improved to be equal to or higher than a first reference value and transmission quality of any one of the plurality of networks is deteriorated to a second reference value or more, And the difference is equal to or greater than a third reference value. The packet scheduler according to claim 1, further comprising:
제15항에서,
상기 패킷 전송량 결정부는
상기 복수 망 각각의 망 상태 파라미터를 기초로 단위시간당 전송되는 세그먼트 수 또는 총 전송 세그먼트 크기를 가변하는 패킷 스케줄러.
16. The method of claim 15,
The packet transmission amount determination unit
Wherein the packet scheduler varies the number of segments transmitted or the total transmission segment size per unit time based on the network status parameter of each of the plurality of networks.
KR1020160076069A 2016-06-17 2016-06-17 Apparatus for multinet aggregation transmission, and packet scheduling method thereof KR102111029B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160076069A KR102111029B1 (en) 2016-06-17 2016-06-17 Apparatus for multinet aggregation transmission, and packet scheduling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160076069A KR102111029B1 (en) 2016-06-17 2016-06-17 Apparatus for multinet aggregation transmission, and packet scheduling method thereof

Publications (2)

Publication Number Publication Date
KR20170142513A true KR20170142513A (en) 2017-12-28
KR102111029B1 KR102111029B1 (en) 2020-05-14

Family

ID=60940033

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160076069A KR102111029B1 (en) 2016-06-17 2016-06-17 Apparatus for multinet aggregation transmission, and packet scheduling method thereof

Country Status (1)

Country Link
KR (1) KR102111029B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101992061B1 (en) * 2018-11-09 2019-09-30 건국대학교 산학협력단 Apparatus and method for transmitting file data
KR20200116985A (en) * 2018-02-12 2020-10-13 후아웨이 테크놀러지 컴퍼니 리미티드 Packet transmission method and related device
CN113068202A (en) * 2020-08-19 2021-07-02 鲍俐文 System for realizing data fast transmission between network devices
US11349739B2 (en) 2018-10-16 2022-05-31 Samsung Electronics Co., Ltd. Method and apparatus for splitting data in multi-connectivity
WO2023093256A1 (en) * 2021-11-25 2023-06-01 华为技术有限公司 Parameter adjustment method and apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140134936A (en) * 2013-05-15 2014-11-25 삼성전자주식회사 Method and apparatus for transmitting and receiving data packets in a wireless communication system
KR20150089853A (en) * 2014-01-28 2015-08-05 삼성전자주식회사 Traffic split control method and apparatus in heterogeneous wireless networks
KR20160036878A (en) * 2014-09-26 2016-04-05 삼성전자주식회사 Apparatus and method for controlling data flow in a communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140134936A (en) * 2013-05-15 2014-11-25 삼성전자주식회사 Method and apparatus for transmitting and receiving data packets in a wireless communication system
KR20150089853A (en) * 2014-01-28 2015-08-05 삼성전자주식회사 Traffic split control method and apparatus in heterogeneous wireless networks
KR20160036878A (en) * 2014-09-26 2016-04-05 삼성전자주식회사 Apparatus and method for controlling data flow in a communication system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200116985A (en) * 2018-02-12 2020-10-13 후아웨이 테크놀러지 컴퍼니 리미티드 Packet transmission method and related device
US11444867B2 (en) 2018-02-12 2022-09-13 Huawei Technologies Co., Ltd. Packet sending method and related device
US11349739B2 (en) 2018-10-16 2022-05-31 Samsung Electronics Co., Ltd. Method and apparatus for splitting data in multi-connectivity
KR101992061B1 (en) * 2018-11-09 2019-09-30 건국대학교 산학협력단 Apparatus and method for transmitting file data
CN113068202A (en) * 2020-08-19 2021-07-02 鲍俐文 System for realizing data fast transmission between network devices
WO2023093256A1 (en) * 2021-11-25 2023-06-01 华为技术有限公司 Parameter adjustment method and apparatus

Also Published As

Publication number Publication date
KR102111029B1 (en) 2020-05-14

Similar Documents

Publication Publication Date Title
US11876711B2 (en) Packet transmission system and method
JP4878391B2 (en) Scheduling and queue management with adaptive queue latency
US11432223B2 (en) Methods and apparatuses for selecting a first base station or a second base station to transmit a packet data unit (PDU) to a user equipment (UE)
US8339962B2 (en) Limiting RLC window size in the HSDPA flow control
US8761011B2 (en) Efficient flow control in a radio network controller (RNC)
US9979653B2 (en) System and method of providing improved throughput control under delay-based congestion situation in a network
KR102111029B1 (en) Apparatus for multinet aggregation transmission, and packet scheduling method thereof
US10111130B2 (en) Supporting delivery of data packets using transmission control protocol in a wireless communication network
CN107534890B (en) Method for adaptive TTI adjustment and user equipment
JP2015517251A (en) Link aggregation device
KR102176176B1 (en) METHOD AND APPARATUS FOR CONTROLLING CONGESTION IN A WIRELESS NETWORK USING Transmission Control Protocol
WO2013036453A1 (en) Methods, system and apparatus for packet routing using a hop-by-hop protocol in multi-homed environments
JP6973511B2 (en) Communication equipment, communication systems, communication methods and programs
JP6897769B2 (en) Data transmitters, methods and programs
Szilágyi et al. Efficient LTE PDCP buffer management
JP2006340169A (en) Apparatus and method for packet communication
KR20080071002A (en) Apparatus and method for transmission using rlp buffering timer change in mobile communication ssytem

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)