KR20170142513A - Apparatus for multinet aggregation transmission, and packet scheduling method thereof - Google Patents
Apparatus for multinet aggregation transmission, and packet scheduling method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H04L47/14—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow 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—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/50—Allocation or scheduling criteria for wireless resources
- H04W72/54—Allocation or scheduling criteria for wireless resources based on quality criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing 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/04—Registration 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
Description
본 발명은 다중망 병합 전송에 관한 것이다.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
사용자 단말(10)은 다중 통신 인터페이스를 구비하고, 다중 통신 인터페이스를 통해 한 시점에 복수의 망에 연결될 수 있다. 사용자 단말(10)은 사용자가 접근하여 다중망 접속을 설정하거나 관리할 수 있는 관리 어플리케이션을 탑재할 수 있다.The
사용자 단말(10)은 다중망 병합을 위한 인증, 상태 관리, 트래픽 처리를 수행하는 네트워크 에이전트(agent)를 포함하고, 네트워크 에이전트는 단말 내부 로직으로 구현될 수 있다. 사용자 단말(10) 내부에서 네트워크 에이전트와 각종 어플리케이션은 소켓(socket) 통신한다. 네트워크 에이전트는 네트워크 관리를 위한 관리 어플리케이션의 설정 정보에 따라 네트워크 장치(20)와 연동한다. The
네트워크 장치(20)는 다중 경로로 전송되는 서브플로우를 병합하거나, 단일 경로로 전송되는 플로우를 다중 경로의 서브플로우로 분할하여 전송한다. 네트워크 장치(20)는 다중망의 접점에 위치하고, 예를 들면, LTE망과 WiFi망의 접점에 위치할 수 있다. The
네트워크 장치(20)는 수신 데이터를 단말(10)로 전달하기 위해 데이터를 분할한다. 그리고 네트워크 장치(20)는 일부 데이터를 제1망(예를 들면, LTE망)의 서브플로우를 통해 사용자 단말(10)로 전송하고, 나머지 데이터를 제2망(예를 들면, WiFi망)의 서브플로우를 통해 사용자 단말(10)로 전송할 수 있다. 사용자 단말(10)은 복수의 통신 인터페이스를 통해 수신된 데이터를 병합한다. 마찬가지 방법으로, 네트워크 장치(20)는 사용자 단말(10)이 다중 통신 인터페이스를 이용하여 전송한 데이터를 병합하여 서버(30)로 전송할 수 있다.The
다중망 병합 기술은 병합 지점에 따라 다음과 같이 분류될 수 있다. 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
네트워크 장치(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
사용자 단말(10)은 제1망에서 수신한 데이터(2, 3)와 제2망에서 수신한 데이터(1, 4, 5)의 순서대로 데이터를 병합하여 원본 데이터(1, 2, 3, 4, 5)를 획득한다.The
한편, 제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
또는, 사용자 단말(10)이 제2망을 통해 제1 스케줄링 라운드에서 전송된 데이터(1, 4, 5)를 수신하기 전에, 제1망을 통해 제2 스케줄링 라운드에서 전송된 데이터(7, 8)를 수신할 수 있다(head-of-line blocking). 이렇게, 먼저 전송한 데이터가 다음에 전송한 데이터보다 늦게 도착하면, 사용자 단말(10)은 순서대로 데이터를 받지 못해 데이터 병합 처리를 하지 못할 수 있다. Alternatively, before the
이와 같이, 다중망 각각의 상태가 다른 경우, 저품질 망의 영향을 받아 고품질 망이 자신의 자원을 최대로 사용하지 못할 수 있다. 또는 사용자 단말(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
다중망 병합 전송 효율을 저하시키는 다른 원인으로 수신 윈도우가 있다. 수신자인 사용자 단말(10)은 자신이 받을 수 있는 바이트 수를 나타내는 수신 윈도우(receive window)를 송신자인 네트워크 장치(20)에게 전달한다. 수신 윈도우는 버퍼 중에서 사용하지 않은 버퍼 크기일 수 있다. 네트워크 장치(20)는 수신 윈도우에 해당하는 바이트 수만큼 데이터를 전송한다. 이를 TCP에서 흐름 제어라고 하는데, 사용자 단말(10)이 수신 윈도우를 제한하는 경우, 전송망은 고품질 망이더라도 패킷 전송이 정체될 수 있다.Multi-network merging Another cause of poor transmission efficiency is the receiving window. The
도 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
망 상태 모니터링부(110)는 하위 계층으로부터 각 망의 상태 파라미터를 수집한다. 망 상태 모니터링부(110)는 망 상태 파라미터를 기초로 각 망의 상태를 추정할 수 있다. 망 상태 모니터링부(110)가 수집할 수 있는 망 상태 파라미터는 다양할 수 있다. 예를 들면, 망 상태 파라미터는 RTT, 플라이트(flight) 상태 데이터 크기(bytes in flight, in-flight), 수신 윈도우(receive window, rwnd) 크기, 혼잡 윈도우(congestion window, cwnd) 크기, 데이터 버퍼에서 대기중인 데이터 크기(data size), 서브플로우 수, 재전송 데이터 크기, DSS(Data Sequence Signal) 크기 등을 포함할 수 있다.The network
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
망 상태는 적어도 하나의 망 상태 파라미터를 기초로 추정될 수 있다. 망 상태는 품질이나 전송 속도를 의미할 수 있고, 망의 최적 전송 바이트로 정량화될 수도 있다. 예를 들면, 제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
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
망 상태 모니터링부(110)는 RTT가 기준값 이상이면 패킷 전송 지연이 예상된다고 판단되거나 저품질 망이라고 판단할 수 있다.If the RTT is equal to or greater than the reference value, the network
망 상태 모니터링부(110)는 플라이트 상태 데이터 크기를 기초로 망 상태, 즉 품질이나 전송 속도를 판단할 수 있다. 망 상태 모니터링부(110)는 플라이트 상태 데이터 크기를 기초로 망이 얼마나 적극적으로 전송에 참여하고 있는지를 파악할 수 있다. 망 상태 모니터링부(110)는 수신 윈도우 크기, 송신 윈도우 크기, 데이터 버퍼에서 대기중인 데이터 크기, 재전송 데이터 크기, DSS 크기 등을 기초로 망 상태를 파악할 수 있다. The network
패킷 전송량 조절부(130)는 망 상태 모니터링부(110)에서 획득한 각 망의 상태 파라미터를 기초로 각 서브플로우(또는 각 망에 생성된 경로)로 전달할 전송량을 조절한다. 전송 데이터는 TCP 전송 단위인 MTU(Maximum Transmission Unit)나 MSS(Maximum Segment Size)로 분할되어 패킷화(packetization)된다. 따라서, 각 망의 패킷 전송량은 패킷 수 또는 TCP 세그먼트 수로 결정될 수 있다. 또는 각 망의 패킷 전송량은 각 망이 데이터 전송에서 분담하는 전송 분담율(전송 비율)로 결정될 수 있다. 패킷 전송량 조절부(130)는 세그먼트로 나누어지는 기회에 대한 비율을 조정할 수 있다.The packet transmission
패킷 스케줄러(100)가 전송량을 제어하는 시점은 다양하게 설정될 수 있다.The time point at which the
한 실시예에 따르면, 패킷 전송량 조절부(130)는 스케줄링 라운드마다 각 망의 상태 파라미터를 기초로 각 서브플로우로 전달할 전송량을 결정할 수 있다. According to one embodiment, the packet
다른 실시예에 따르면, 패킷 전송량 조절부(130)는 특정 시점에서 획득한 각 망의 상태 파라미터를 기초로 서브플로우별 전송량을 결정하고, 결정한 서브플로우별 전송량을 기초로 일정 시간 동안 스케줄링할 수 있다. 여기서 일정 시간은 복수의 스케줄링 라운드가 진행될 수 있는 시간을 의미한다.According to another embodiment, the packet
또 다른 실시예에 따르면, 패킷 전송량 조절부(130)는 스케줄링 변경 조건을 기초로 서브플로우별 전송량 제어를 시작할 것인지 판단할 수 있다. 스케줄링 변경 조건은 트리거링 조건이라고 부를 수 있고, 망 상태 파라미터와 망 상태의 조합으로 구성될 수 있다. 서브플로우별 전송량 제어는 복수 망의 상태를 기초로 각 망의 패킷 스케줄링을 통합 수행하는 것을 의미한다. 예를 들어, 패킷 전송량 조절부(130)는 적어도 하나의 망 상태가 기준값 이상으로 좋아지거나, 기준값 이하로 나빠지는 경우, 또는 적어도 두 망의 상태 차이가 기준값 이상인 경우, 서브플로우별 전송량을 조정하기 위해 서브플로우별 전송량 제어에 진입할 수 있다. According to another embodiment, the packet
스케줄링 변경 조건은 다양한 망 상태 파라미터를 기초로 설정될 수 있다. 스케줄링 변경 조건을 만족하는 경우, 서브플로우별 전송량 제어에 진입하도록 트리거링된다. 스케줄링 변경 조건은 예를 들면, 적어도 하나의 망의 전송 품질값이 임계값에 도달한 경우, 또는 적어도 두 망의 전송 품질값 차이가 임계값에 도달한 경우일 수 있다. 전송 품질값은 예를 들면, 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
패킷 스케줄러(100)가 스케줄링 라운드에서 각 망에 스케줄링되는 전송량을 결정하는 방법은 다양할 수 있다. The manner in which the
한 실시예에 따르면, 패킷 전송량 조절부(130)는 복수의 망 각각의 상태 파라미터를 기초로 복수의 망 중 고품질 망을 확인한다. 그리고 패킷 전송량 조절부(130)는 고품질 망의 수신 윈도우 또는 수신 윈도우보다 일정 값 작은 크기의 데이터량을 고품질 망에 스케줄링한다. 그리고 패킷 전송량 조절부(130)는 저품질 망의 수신 윈도우를 기초로 일정 데이터량을 저품질 망에 스케줄링한다. 이때, 패킷 전송량 조절부(130)는 고품질 망의 수신 윈도우에 맞는 데이터량을 전송하는 대신, 고품질 망과 저품질 망의 수신 윈도우 차이에 해당하는 데이터량을 전송할 수 있다. 이렇게 데이터량을 수신 윈도우보다 줄여서 전송하는 이유는, 저품질 망으로 전송한 데이터가 유실되더라도, 다음 스케줄링 라운드에서 데이터 재전송에 의해 데이터 순서가 어긋나는 문제, 그리고 고품질 망이 전송 기회를 잃거나 정상적으로 전송한 데이터를 재전송하는 문제를 방지할 수 있기 때문이다. 즉, 패킷 전송량 조절부(130)는 저품질 망의 상태가 좋지 않은 경우, 저품질 망으로 전송하는 데이터가 유실되더라도 다음 스케줄링 라운드에서 순서 번호가 어긋나지 않게 유실된 데이터를 전송할 수 있도록 고품질 망의 전송량을 수신 윈도우보다 줄이는 것이다.According to one embodiment, the packet
다른 실시예에 따르면, 패킷 전송량 조절부(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
패킷 전송량 조절부(130)는 복수의 망 중에서 각 망의 상태값이 차지하는 비율을 표준화하고, 이를 각 망의 데이터 전송 비율로 결정한다. 예를 들면, 패킷 전송량 조절부(130)는 제1망의 상태값으로부터 계산된 전송 비율이 75%이고, 제2망의 상태값으로부터 계산된 전송 비율이 25%일 수 있다. 패킷 전송량 조절부(130)는 전송량을 전송 비율로 분할하는데, 예를 들면 전송량이 2000바이트라면 제1망으로 1500바이트를 전송하고, 제2망으로 500바이트를 전송할 수 있다. 전송량은 패킷 수로 표현되고, 전송 패킷수를 전송 비율로 분할할 수 있다.The packet
버퍼 전달부(150)는 패킷 전송량 조절부(130)에서 결정한 서브플로우별 전송량을 기초로 원본 데이터를 분할하고, 분할된 데이터를 해당 서브플로우의 데이터 버퍼에 추가한다. 각 서브플로우의 데이터 버퍼에 추가된 데이터는 MPTCP 계층과 IP 계층을 거쳐 전송 패킷이 되고, L2/L1의 네트워크 계층을 거쳐 수신자에게 전달된다. The
도 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
원본 데이터 버퍼(200)는 수신 장치로 전송할 데이터를 저장하는 저장소이다. 원본 데이터는 외부로부터 수신한 데이터이거나, 송신 장치의 어플리케이션에서 생성된 데이터일 수 있다. The
패킷 스케줄러(100)는 각 망의 상태 파라미터를 수집한다. 그리고 패킷 스케줄러(100)는 각 망의 상태 파라미터를 기초로 각 망의 상태를 결정한다. 패킷 스케줄러(100)는 각 망의 상태를 기초로 서브플로우별 전송량 제어에 진입할 것인지 판단할 수 있다. 패킷 스케줄러(100)는 각 망의 상태를 기초로 서브플로우별 전송량 제어에 진입하는 조건이 해제되면 서브플로우별 전송량 제어를 해제하고, 디폴트 스케줄링 방법의 패킷 스케줄링을 할 수 있다. 패킷 스케줄러(100)는 스케줄링 라운드마다 각 서브플로우로 전달할 데이터량을 결정할 수 있다. 각 서브플로우로 전달할 데이터량은 각 서브플로우로 전달할 데이터비율일 수 있다. 패킷 스케줄러(100)는 서브플로우별 데이터량/데이터비율을 기초로 원본 데이터 버퍼(200)에 저장된 데이터를 분할한다. 패킷 스케줄러(100)는 분할된 데이터를 해당 서브플로우의 데이터 버퍼(210, 220)에 추가한다. 데이터 버퍼(210, 220)는 전송 소켓 버퍼(send socket buffer)일 수 있다.The
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
예를 들면, 송신 장치는 제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
만약, 패킷 스케줄러(100)가 제2망의 상태 파라미터를 기초로 제2망이 기준 이하의 저품질 망이라는 것을 판단할 수 있고, 패킷 손실율이 기준값 이상이라는 것을 예상할 수 있다. 즉, 패킷 스케줄러(100)는 제2망으로 전송한 데이터에 대해 확인응답이 늦게 도달하거나, 확인응답을 받지 못한 경우, 서브플로우별 전송량 제어가 필요하다고 판단한다. 송신 장치는 원본 데이터를 순서대로 보내야 하는데, 이미 제2망으로 보낸 데이터에 대한 확인응답을 못 받은 상황이라면 다음 데이터를 제1망으로도 보낼 수 없으므로, 서브플로우별 전송량 제어를 시작한다.If the
패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제1망의 수신 윈도우(2000바이트)보다 적은 전송량을 제1망에 스케줄링한다. 여기서, 수신 윈도우보다 적은 전송량은 제1망의 수신 윈도우(2000바이트)에서 제2망으로 전송하는 데이터량(예를 들면 500바이트)을 제외한 값(1500바이트)일 수 있다. 패킷 스케줄러(100)는 만약에 제2망으로 보낸 500바이트에 대해 확인응답을 못 받더라도, 제3 스케줄링 라운드가 되면, 제2 스케줄링 라운드에서 미처 보내지 않은 500바이트를 제1망으로 보낼 수 있다. 또는 패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제2망으로 보냈으나 확인응답을 못 받은 500바이트를 포함한 전송량을 제1망으로 보낼 수 있다. The
이와 같이, 패킷 스케줄러(100)는 제2 스케줄링 라운드에서 저품질의 제2망으로 전송한 패킷에 대한 확인응답 수신 여부에 관계없이, 원본 데이터 중에서 제2 스케줄링 라운드에서 제1망에 스케줄링하고 남은 다음 데이터가 있으면, 제3 스케줄링 라운드에서 남은 다음 데이터를 제1망에 스케줄링(reinjection)한다. 여기서, 제2 스케줄링 라운드에서 제1망에 스케줄링하고 남은 다음 데이터는 제2 스케줄링 라운드에서 제2망에 스케줄링한 데이터를 포함하므로, 수신 장치는 결과적으로 제1망과 제2망을 통해 순차적으로 전송된 패킷을 수신하고, 이를 병합해서 원본 데이터를 획득할 수 있다. As described above, the
이렇게 패킷 스케줄러(100)가 제2망의 상태를 고려하여 제1망의 전송량을 제어하여 전송하면, 수신 장치에서 다중망으로 전송된 데이터 순서를 빨리 조합할 수 있고, 전체 구간으로 보았을 때 병합 전송 속도를 높일 수 있다. 왜냐하면 저품질의 제2망으로부터 확인응답을 수신하지 못하더라도 제1망마저 전송 기회를 잃거나 데이터 순서를 맞추기 위해 제1망마저 재전송해야 하는 상황을 회피할 수 있기 때문이다. When the
한편, 패킷 스케줄러(100)는 확인응답에 포함된 수신 윈도우의 크기를 기초로 각 망의 전송량을 결정한다. 이때, 패킷 스케줄러(100)는 수신 윈도우에 해당하는 바이트수보다 적은 바이트수를 전송량으로 결정한다. On the other hand, the
실제로 수신 장치가 알려주는 수신 윈도우의 크기는 실제 수신 가능한 양보다 다소 높이 알려줄 수 있다. 따라서, 패킷 스케줄러(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
이와 같이, 패킷 스케줄러(100)가 각 망의 수신 윈도우보다 적은 데이터량을 전송한다면, 전체 원본 데이터 구성 시 데이터 순서 오류로 인해 발생되는 패킷 재전송/재주입(reinjection)을 피할 수 있다.As described above, if the
도 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
패킷 스케줄러(100)는 수신 장치와 연결된 복수 망 각각의 상태 파라미터를 수집한다(S110). 망 상태 파라미터는 RTT, 플라이트 상태 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 데이터 버퍼에서 대기중인 데이터 크기, 서브플로우 수, 재전송 데이터 크기, DSS 크기 등을 포함할 수 있다. The
패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터를 기초로 복수 망에 대한 통합 스케줄링이 필요한 시점을 결정한다(S120). 즉, 패킷 스케줄러(100)는 서브플로우별 전송량 제어에 진입할 것인지 판단한다. 스케줄링 통합 기준은 도 3에서 설명한 바와 같이, 적어도 하나의 망의 수신 윈도우가 임계값에 도달한 경우 또는 RTT가 임계값에 도달한 경우일 수 있다. 또는 스케줄링 통합 기준은 적어도 두 망의 수신 윈도우 차이가 임계값 이상인 경우 또는 RTT 차이가 임계값 이상인 경우일 수 있다. 예를 들어, 제2망의 수신 윈도우가 임계값에 도달하거나 RTT가 임계값에 도달하면, 통합 스케줄링 시점이라고 결정될 수 있다. 제1망과 제2망의 수신 윈도우 차이가 임계값 이상이거나 RTT 차이가 임계값 이상이면, 통합 스케줄링 시점이라고 결정될 수 있다.The
통합 스케줄링 시점인 경우, 패킷 스케줄러(100)는 각 망의 상태 파라미터를 기초로 복수의 망 중에서 고품질의 제1망을 결정한다(S130). In the case of the integrated scheduling time, the
패킷 스케줄러(100)는 복수의 망 중에서 제1망이 아닌 나머지 제2망의 수신 윈도우를 기초로 제2망의 전송량을 결정한다(S140). 제2망의 전송량은 제2망의 수신 윈도우와 같거나 적은 값이다.The
패킷 스케줄러(100)는 제1망의 수신 윈도우보다 일정 크기 적은 데이터량을 제1망의 전송량으로 결정한다(S150). 여기서 일정 크기는 제2망의 전송량일 수 있다.The
패킷 스케줄러(100)는 제1망의 전송량에 해당하는 데이터와 제2망의 전송량에 해당하는 데이터를 해당 망의 서브플로우 데이터 버퍼에 추가한다(S160). 서브플로우의 데이터 버퍼에 저장된 데이터는 MPTCP 계층에서 TPC 세그먼트로 분할되고 IP 계층에서 IP 패킷으로 생성되어 수신 장치로 전송된다.The
패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터를 기초로 통합 스케줄링을 해제할 시점을 결정한다(S170). 스케줄링 통합 기준을 만족하지 못하면 통합 스케줄링을 해제할 시점이라고 판단될 수 있다. The
통합 스케줄링 해제 시점인 경우, 패킷 스케줄러(100)는 디폴트 스케줄링 방법에 따라 복수 망 각각으로 전송할 데이터를 스케줄링한다(S180). In the case of the unified scheduling release point, the
한편, 패킷 스케줄러(100)는 스케줄링 라운드마다 제1망의 전송량과 제2망의 전송량을 계산할 수 있다. 또는 패킷 스케줄러(100)는 한 번 계산된 제1망의 전송량과 제2망의 전송량을 복수의 스케줄링 라운드에서 사용할 수 있다. 제1망의 전송량과 제2망의 전송량은 제1망과 제2망의 전송 비율 그리고 스케줄링 라운드에서의 총 전송량으로부터 계산될 수 있다.On the other hand, the
도 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
패킷 스케줄러(100)는 확인응답들을 기초로 제1망의 수신 윈도우와 제2망의 수신 윈도우를 확인한다(S220).The
패킷 스케줄러(100)는 각 망의 상태 파라미터와 트리거링 조건을 기초로 제1망과 제2망에 대한 전송량 제어가 필요한지 판단한다(S230). 트리거링 조건은 도 3에서 설명한 바와 같이, 적어도 하나의 망의 수신 윈도우가 임계값에 도달한 경우 또는 전송 품질값(예를 들면, RTT, 전송 지연 시간, 패킷 손실율 등)가 임계값에 도달한 경우일 수 있다. 또는 판단 기준은 적어도 두 망의 수신 윈도우 차이가 기준값 이상인 경우 또는 전송 품질값 차이가 기준값 이상인 경우일 수 있다. The
전송량 제어가 필요한 경우, 패킷 스케줄러(100)는 제1망과 제2망 중 고품질인 제1망을 결정하고, 제1망의 수신 윈도우보다 일정 크기 적은 데이터량을 제2 스케줄링 라운드에서의 제1망 전송량으로 결정한다(S240). 여기서 일정 크기는 제2망의 전송량일 수 있다.The
패킷 스케줄러(100)는 제1망과 제2망 중 저품질인 제2망의 수신 윈도우를 기초로 제2 스케줄링 라운드에서의 제2망 전송량을 결정한다(S250).The
패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제1망으로 전송한 데이터에 대해, 수신 장치가 전송한 확인응답이 수신된 것을 확인한다(S260).The
제3 스케줄링 라운드가 도래하는 시점에, 패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제2망으로 전송한 데이터에 대해, 확인응답을 수신하지 못한 것을 확인한다(S270).At the time when the third scheduling round arrives, the
패킷 스케줄러(100)는 제2 스케줄링 라운드에서 제2망으로 전송한 데이터를 제3 스케줄링 라운드에서 제1망으로 전송할 데이터 버퍼에 추가한다(S280).The
도 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
적어도 하나의 망을 통해 서브플로우가 생성(세션 성립)되면, 패킷 스케줄러(100)는 디폴트 스케줄링 방법으로 스케줄링을 시작한다(S310). 디폴트 스케줄링 방법은 복수 망 각각의 상태 파라미터와 관계없이 동작하도록 미리 지정된다.When a subflow is created through at least one network (session establishment), the
패킷 스케줄러(100)는 복수 망 각각의 상태 파라미터를 기초로 스케줄링 변경 조건(트리거링 조건)을 만족하는지 판단한다(S320). 스케줄링 변경 조건은 서브플로우별 전송량 제어에 진입하도록 트리거링하는 정보로서, 다양한 조건들의 조합으로 구성될 수 있다. 예를 들면, 스케줄링 변경 조건은 서브플로우 수와 DSS 크기를 조건 파라미터로 이용할 수 있다. 만약, 서브플로우의 개수가 기준값(A) 초과인 경우, 패킷 스케줄러(100)는 DSS 크기가 기준값(B) 초과인지 판단한다(S322, S324). 서브플로우의 개수가 기준값(A) 이하이거나 DSS 크기가 기준값(B) 이하인 경우, 패킷 스케줄러(100)는 디폴트 스케줄링 방법을 유지(스케줄링 변경 조건 불만족)한다(S322, S324). DSS 크기가 기준값(B) 초과이면, 패킷 스케줄러(100)는 스케줄링 변경 조건을 만족한다고 판단한다.The
스케줄링 변경 조건을 만족하는 경우, 패킷 스케줄러(100)는 다중망 병합 스케줄링(MA-PS)을 시작한다(S330).If the scheduling change condition is satisfied, the
패킷 스케줄러(100)는 적어도 하나의 서프플로우를 전송량 제어 대상(간단히, "제어 대상"이라고 한다)으로 결정한다(S340). 제어 대상은 다양하게 결정될 수 있고, 예를 들면, 복수의 서브플로우 중 고품질 서브플로우를 제어 대상으로 결정할 수 있다. 다음에서, LTE망에 생성된 서브플로우에 대한 전송량 제어를 설명한다. WiFi망에 생성된 서브플로우에 대한 전송량 제어도 별도로 진행될 수 있다. 한편, 다중망 병합 스케줄링은 WiFi망으로 전송한 데이터에 대한 확인응답을 수신하지 못한 경우, 확인응답 미수신 데이터를 LTE 망으로 재주입(reinjection)할 수 있지만, 도 9에서는 재주입 관련 프로세스까지 설명하지 않는다.The
패킷 스케줄러(100)는 제어 대상의 망 상태 파라미터를 기초로 제어 대상을 통해 단위시간당 전송할 총 전송 세그먼트(segment) 크기를 조정할지 판단한다(S350). 여기서, 세그먼트 크기는 TSO(TCP Segment Offload)에 의해 TCP 스택에서 MTU보다 큰 세그먼트를 생성할 수 있는 경우라면 단일 세그먼트의 크기를 의미할 수 있고, 그렇지 않은 경우라면 단위 세그먼트들의 총 크기(총 전송량)을 의미할 수 있다. 단위 세그먼트는 TCP 전송 단위인 MTU 또는 MSS일 수 있다. 패킷 스케줄러(100)는 제어 대상의 상태 파라미터들, 예를 들면, 플라이트 상태 데이터(in-flight) 크기, 수신 윈도우(rwnd) 크기, 혼잡 윈도우(cwnd) 크기, 재전송 데이터(retx) 크기를 사용하여 세그먼트 크기를 조정할지 판단한다. 예를 들면, 단계(S350)에서, 패킷 스케줄러(100)는 플라이트 상태 데이터 크기를 기초로 총 세그먼트 크기 조정 여부를 판단할 수 있다. The
플라이트 상태 데이터가 기준값(C)을 초과하여 발생한 경우, 패킷 스케줄러(100)는 총 전송 세그먼트 크기를 결정한다(S360). 즉, 플라이트 상태 데이터가 기준값(C)을 초과하여 발생한 경우, 패킷 스케줄러(100)는 제어 대상의 망 상태 파라미터를 기초로 총 전송 세그먼트 크기를 늘리거나 줄이면서 전송할 세그먼트 크기를 결정한다. 단계(S370)를 통해 단위시간당 전송 데이터량이 가변될 수 있다.If the flight state data occurs beyond the reference value C, the
패킷 스케줄러(100)는 총 전송 세그먼트 크기가 결정되면, 데이터 버퍼(200)에 대기중인 데이터 크기(skb.len이 지시하는 데이터 크기)와 총 전송 세그먼트 크기를 비교한다(S370). When the total transmission segment size is determined, the
데이터 버퍼(200)에 대기중인 데이터 크기(skb.len)가 총 전송 세그먼트 크기보다 크면, 패킷 스케줄러(100)는 데이터 버퍼(200)에서 대기중인 데이터 중에서 총 전송 세그먼트 크기만큼을 제어 대상(LTE 망)을 통해 전송한다(S372).If the data size (skb.len) waiting in the
데이터 버퍼(200)에 대기중인(남은) 데이터 크기(skb.len)가 총 전송 세그먼트 크기보다 작으면, 패킷 스케줄러(100)는 데이터 버퍼(200)에 대기중인 데이터(skb.len)를 제어 대상(LTE 망)을 통해 전송한다(S374).If the data size (skb.len) waiting in the
한편, 단계(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
패킷 스케줄러(100)는 데이터 버퍼에 대기중인 적어도 일부의 데이터를 전송한 후, 제어 대상의 망 상태 파라미터를 기초로 다중망 병합 스케줄링이 해제되는지 판단한다(S380). 패킷 스케줄러(100)는 원본 데이터 버퍼(200)에 저장된 데이터 크기(skb.len)를 기초로 스케줄링 변경 조건을 해제할 것인지 판단할 수 있다. 만약, 원본 데이터 버퍼(200)에 저장된 데이터 크기가 기준값(예를 들면, 0)이 되면, 패킷 스케줄러(100)는 디폴트 스케줄링 방법으로 이동한다(S310으로 이동). 원본 데이터 버퍼에 저장된 데이터 크기가 기준값보다 크면, 패킷 스케줄러(100)는 제어 대상에 대한 전송량 제어를 유지한다(S350으로 이동).The
한편, 단계(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
and/or
retx<thresholdin-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
and/or
retx>=thresholdin-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
또는 패킷 스케줄러(100)는 판단 결과를 기초로 가용한 혼잡 윈도우 크기보다 하향 조정된 총 전송 세그먼트 크기를 결정한다(S366).Alternatively, the
예를 들어, 가용한 혼잡 윈도우 크기가 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
표 1의 판단 결과가 하향 조정인 경우, 패킷 스케줄러(100)는 총 전송 세그먼트 크기를 가용한 혼잡 윈도우 크기보다 작은 값(3000Bytes)으로 하향 조정한다. 그러면, LTE망은 세그먼트 크기 조정 전보다 적은 2개의 세그먼트를 전송할 수 있다. If the determination result in Table 1 is a downward adjustment, the
이때, 총 전송 세그먼트 크기를 가용한 혼잡 윈도우 크기보다 큰 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
패킷 스케줄러(100)는 TCP의 GSO(generic segmentation offload)를 기반으로 세그먼트 수를 조정할 수 있다. 이를 통해 패킷 스케줄러(100)는 단위시간당 전송 세그먼트 수(또는 패킷 수)를 가변할 수 있는 효과를 얻을 수 있다. 한편, 특정 경로(예를 들면, WiFi망에 생성된 서브플로우 경로)에 GSO 세그먼트 크기(<64KB)를 적용할 것인지를 나타내는 코드레벨이 사용될 수 있다.
도 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
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.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 >
상기 망 상태 파라미터들은
패킷 왕복 시간, 전송 데이터 중에서 아직 확인응답을 수신하지 않은 플라이트 상태 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 그리고 재전송 데이터 크기 중 적어도 두 개를 포함하는 패킷 스케줄링 방법.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기준값보다 큰 경우, 상기 단위시간당 데이터량을 조정하는 패킷 스케줄링 방법.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.
상기 단위시간당 데이터량을 조정하는 단계는
상기 제어 망에 대한 적어도 하나의 망 상태 파라미터를 기초로, 기준값보다 많거나 적은 단위시간당 전송 데이터량을 결정하고,
상기 기준값은 상기 제어 망의 가용한 혼잡 윈도우 크기 또는 상기 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수인 패킷 스케줄링 방법.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.
원본 데이터 버퍼에서 전송 대기중인 데이터 중에서 상기 결정한 전송 데이터량을 상기 제어 망으로 전송하는 단계
를 더 포함하는 패킷 스케줄링 방법.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 >
스케줄링 변경 조건을 기초로 제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.
상기 스케줄링 변경 조건은
상기 복수 망에 생성된 서브플로우의 수와 서브플로우들로 전송되는 데이터 스트림의 크기(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).
상기 스케줄링 변경 조건은
상기 복수 망 중 어느 하나의 망의 전송 품질이 제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.
상기 제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 >
상기 제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 >
임의 서브플로우를 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기를 기초로 상기 서브플로우로 전송할 세그먼트 크기 조정이 필요한지 판단하는 단계,
세그먼트 크기 조정이 필요한 경우, 상기 서브플로우에 관계된 적어도 하나의 망 상태 파라미터를 기초로 상기 서브플로우로 전송할 총 전송 세그먼트 크기를 결정하는 단계, 그리고
결정한 총 전송 세그먼트 크기의 데이터를 전송하는 단계
를 포함하는 패킷 스케줄링 방법.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 >
상기 세그먼트 크기 조정이 필요한지 판단하는 단계는
상기 확인응답을 수신하지 않은 데이터 크기가 제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.
상기 총 전송 세그먼트 크기를 결정하는 단계는
상기 서브플로우에 관계된 망 상태 파라미터들을 비교하여, 기준값보다 크거나 작은 총 전송 세그먼트 크기를 결정하고,
상기 기준값은 상기 제어 망의 가용한 혼잡 윈도우 크기 또는 상기 가용한 혼잡 윈도우 크기에서 전송 가능한 세그먼트 수인 패킷 스케줄링 방법.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.
상기 서브플로우에 관계된 망 상태 파라미터들은
상기 서브플로우를 통해 전송한 데이터 중에서 아직 확인응답을 수신하지 않은 데이터 크기, 수신 윈도우 크기, 혼잡 윈도우 크기, 그리고 재전송 데이터 크기 중 적어도 두 파라미터들을 포함하는 패킷 스케줄링 방법.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 >
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.
상기 망 상태 파라미터들은
각 망으로 전송한 패킷의 왕복 시간(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.
상기 패킷 전송량 결정부는
상기 복수 망 각각의 망 상태 파라미터를 기초로 서브플로우별 전송량 제어를 시작할 지 판단하고, 상기 서브플로우별 전송량 제어를 시작하는 경우, 상기 복수 망 중 적어도 하나의 망에서의 전송 데이터량을 기준값을 기준으로 상향 또는 하향 조정하는 패킷 스케줄러.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.
상기 패킷 전송량 결정부는
상기 복수 망에 생성된 서브플로우의 수와 서브플로우들로 전송되는 데이터 스트림의 크기(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).
상기 패킷 전송량 결정부는
상기 복수 망 중 어느 하나의 망의 전송 품질이 제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:
상기 패킷 전송량 결정부는
상기 복수 망 각각의 망 상태 파라미터를 기초로 단위시간당 전송되는 세그먼트 수 또는 총 전송 세그먼트 크기를 가변하는 패킷 스케줄러.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.
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)
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)
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 |
-
2016
- 2016-06-17 KR KR1020160076069A patent/KR102111029B1/en active IP Right Grant
Patent Citations (3)
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)
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) |