KR102352514B1 - Method and appratus for data transmission of multipath transport system - Google Patents

Method and appratus for data transmission of multipath transport system Download PDF

Info

Publication number
KR102352514B1
KR102352514B1 KR1020170075057A KR20170075057A KR102352514B1 KR 102352514 B1 KR102352514 B1 KR 102352514B1 KR 1020170075057 A KR1020170075057 A KR 1020170075057A KR 20170075057 A KR20170075057 A KR 20170075057A KR 102352514 B1 KR102352514 B1 KR 102352514B1
Authority
KR
South Korea
Prior art keywords
data
subflow
path
mptcp
header
Prior art date
Application number
KR1020170075057A
Other languages
Korean (ko)
Other versions
KR20180088248A (en
Inventor
변도준
크리쉬나 마노하르 싱
김진형
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180088248A publication Critical patent/KR20180088248A/en
Application granted granted Critical
Publication of KR102352514B1 publication Critical patent/KR102352514B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Landscapes

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

Abstract

본 개시의 실시예가 제공하는 다중 경로 전송을 제어하는 방법은, 통신 중인 데이터의 데이터 손실률의 정보를 획득하는 과정; 상기 데이터 손실률이 제1 기준 값 이상인지 여부를 판단하는 과정; 및 상기 데이터 손실률이 상기 제1 기준 값 이상이면, 상기 데이터 손실률에 기초하여 상기 MPTCP의 서브플로우의 개수를 결정하는 과정을 포함한다.
또한, 본 개시의 실시예가 제공하는 다중 경로 전송 시스템에서의 데이터 전송 방법은, 기준시간 동안 단일 서브플로우가 사용되는지 여부를 판단하는 과정; 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 상기 서브플로우의 링크 특성 정보를 기초로 공통의 데이터 매핑 정보가 적용될 데이터 세그먼트들의 개수를 결정하는 과정; 상기 결정된 개수의 데이터 세그먼트들 중 첫번째 데이터 세그먼트에 상기 공통 데이터 매핑 정보를 포함하는 다중 경로 헤더를 포함시켜 전송하는 과정; 및 상기 데이터 세그먼트들 중 나머지 데이터 세그먼트들을 다중 경로 헤더 없이 전송하는 과정을 포함한다.
A method for controlling multi-path transmission provided by an embodiment of the present disclosure includes: obtaining information on a data loss rate of data being communicated; determining whether the data loss rate is equal to or greater than a first reference value; and if the data loss rate is equal to or greater than the first reference value, determining the number of subflows of the MPTCP based on the data loss rate.
In addition, a data transmission method in a multi-path transmission system provided by an embodiment of the present disclosure includes the steps of determining whether a single subflow is used for a reference time; determining the number of data segments to which common data mapping information is to be applied based on link characteristic information of the subflow when a single subflow is used during the reference time; transmitting a multi-path header including the common data mapping information in a first data segment among the determined number of data segments; and transmitting the remaining data segments among the data segments without a multi-path header.

Description

다중 경로 전송 시스템의 데이터 전송 방법 및 장치{METHOD AND APPRATUS FOR DATA TRANSMISSION OF MULTIPATH TRANSPORT SYSTEM}Method and apparatus for data transmission in a multi-path transmission system

본 개시는 다중 경로 전송 시스템에서 다중 경로를 제어하기 위한 방법 및 장치에 관한 것이다.The present disclosure relates to a method and apparatus for controlling multipath in a multipath transmission system.

또한, 본 개시는 다중 경로 전송 시스템에서 데이터를 전송하기 위한 방법 및 장치에 관한 것이다.The present disclosure also relates to a method and apparatus for transmitting data in a multi-path transmission system.

무선 네트워크를 이용하는 모바일 디바이스가 WiFi, LTE(Long-Term Evolution) 등 다양한 통신 인터페이스들을 가지고 있는 것이 점점 일반화 되면서, 하나의 모바일 디바이스에서 다수의 네트워크 경로를 동시에 이용하여 전송 효율을 높이고자 하는 방법으로 다중 경로 전송 제어 프로토콜(Multipath Transport Control Protocol, MPTCP)가 연구되고 있다. MPTCP는 서로 다른 IP(Internet Protocol) 주소를 가지고 있는 여러 통신 인터페이스를 동시에 사용한 데이터 전송을 가능하게 한다.As it is becoming more common for mobile devices using wireless networks to have various communication interfaces such as WiFi and LTE (Long-Term Evolution), multiple network paths are simultaneously used in one mobile device to increase transmission efficiency. The Multipath Transport Control Protocol (MPTCP) is being studied. MPTCP enables data transmission using multiple communication interfaces with different Internet Protocol (IP) addresses simultaneously.

MPTCP는 기존의 TCP 프로토콜을 확장하여 복수 개의 네트워크 인터페이스를 사용하기 위한 기술이다. TCP는 기본적으로 송신 장치와 수신 장치 간의 통신 경로가 하나로 구성되는 데 비하여, MPTCP는 송신 장치와 수신 장치 간의 통신 경로를 복수 개로 구성한다는 차이점이 있다.MPTCP is a technology for using a plurality of network interfaces by extending the existing TCP protocol. While TCP basically consists of one communication path between a transmitting device and a receiving device, MPTCP has a difference in that a plurality of communication paths between the transmitting device and the receiving device are configured.

MPTCP는 양 종단에 있는 송신 장치와 수신 장치 간 복수의 경로들을 따라 데이터를 병렬적으로(동시에) 전송함으로써, 통신 성능 및 고장 내성(fault tolerance)을 개선할 수 있다. 또한, 각각이 단일 TCP 연결을 지원하도록 구성된 복수의 경로들을 따라 이용 가능한 통신 자원들을 모아 관리한다.MPTCP can improve communication performance and fault tolerance by transmitting data in parallel (simultaneously) along multiple paths between a transmitting device and a receiving device at both ends. It also collects and manages available communication resources along a plurality of paths, each configured to support a single TCP connection.

MPTCP에서 지원하는 다중 경로는 서브플로우들(sub-flows)이라고도 칭하는 복수의 결합 연결들(connected connections)을 의미한다. MPTCP의 개별적 서브플로우는 기존의 단일 TCP 연결과 유사하나, 통상적으로 데이터의 부분 집합만을 전송한다.Multipath supported by MPTCP means a plurality of connected connections, also called sub-flows. Individual subflows in MPTCP are similar to a single conventional TCP connection, but typically only transmit a subset of data.

MPTCP는 단일 TCP 연결과 마찬가지로, 어플리케이션에 구애 받지 않고, 복수의 서브플로우들이나 서로 연관된 데이터 세그먼트들로 이루어진 세션을 액세스할 수 있다.Like a single TCP connection, MPTCP can access a session consisting of multiple subflows or related data segments regardless of application.

MPTCP는 양 종단 간 서브플로우들을 병렬적으로 사용하는 복수의 인터페이스들 상에서 데이터를 교환하여 전통적인 단일 TCP 연결의 문제점들 중 상당수를 해소한다. 즉, MPTCP는 처리량 면에서 보다 우수한 성능을 가지고, 데이터 손실, 연결 해제 등에 대한 회복력을 가지며, 복수의 서브플로우들을 통한 동시적 데이터 교환이 가능하다.MPTCP solves many of the problems of a traditional single TCP connection by exchanging data over multiple interfaces using both end-to-end subflows in parallel. That is, MPTCP has superior performance in terms of throughput, has resilience against data loss and disconnection, and enables simultaneous data exchange through a plurality of subflows.

또한, MPTCP에서는, 서브플로우들 각각을 통한 데이터 교환뿐 아니라 서로 다른 인터페이스들 상에서의 서브플로우들을 설정(establish)하기 위해, 자체적인 헤더들(MPTCP 헤더들)이 TCP 옵션의 일부로서 추가된다.In addition, in MPTCP, in order to establish subflows on different interfaces as well as data exchange through each of the subflows, their own headers (MPTCP headers) are added as part of the TCP option.

본 개시는 다중 경로 전송 시스템에서 각 경로를 이루는 서브플로우의 개수를 적응적으로 설정하기 위한 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for adaptively setting the number of subflows constituting each path in a multi-path transmission system.

본 개시는 다중 경로 전송 시스템에서 데이터 손실률에 기초하여 서브플로우의 개수를 결정하는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for determining the number of subflows based on a data loss rate in a multipath transmission system.

본 개시는 다중 경로 전송 시스템에서 데이터 손실률을 획득하는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for obtaining a data loss rate in a multi-path transmission system.

본 개시는 다중 경로 전송 시스템에서 처리할 데이터 량을 고려하여 서브플로우의 개수를 결정하는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for determining the number of subflows in consideration of the amount of data to be processed in a multi-path transmission system.

본 개시는 다중 경로 전송 시스템에서 처리할 데이터 량을 획득하는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for obtaining an amount of data to be processed in a multi-path transmission system.

본 개시는 하나의 서브플로우가 단일 인터페이스를 통한 데이터 교환에 지속적으로 사용되는 경우 다중 경로 헤더들의 양을 최적화하는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for optimizing the amount of multipath headers when one subflow is continuously used for data exchange over a single interface.

본 개시는 데이터 교환 중 생성되는 다중 경로 헤더들의 수를 억제하여 오버헤드를 방지하는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for preventing overhead by suppressing the number of multi-path headers generated during data exchange.

본 개시는 새 인터페이스 추가에 대한 응답성을 향상시킬 뿐 아니라 데이터 손실률, 전송 시간, 전송 시간 변동량 등과 다양한 링크 특성들의 균형을 맞출 수 있는 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus capable of not only improving responsiveness to addition of a new interface but also balancing various link characteristics, such as data loss rate, transmission time, transmission time variation, and the like.

본 개시의 실시예가 제공하는 다중 경로 전송을 제어하는 방법은, 통신 중인 데이터의 데이터 손실률의 정보를 획득하는 과정; 상기 데이터 손실률이 제1 기준 값 이상인지 여부를 판단하는 과정; 및 상기 데이터 손실률이 상기 제1 기준 값 이상이면, 상기 데이터 손실률에 기초하여 상기 다중 경로의 서브플로우 개수를 결정하는 과정을 포함한다.A method for controlling multi-path transmission provided by an embodiment of the present disclosure includes: obtaining information on a data loss rate of data being communicated; determining whether the data loss rate is equal to or greater than a first reference value; and if the data loss rate is equal to or greater than the first reference value, determining the number of subflows of the multipath based on the data loss rate.

본 개시의 실시예가 제공하는 다중 경로 전송을 제어하는 장치는, 통신 중인 데이터의 데이터 손실률의 정보를 획득하는 데이터 손실률 모니터링 부; 및 상기 데이터 손실률이 제1 기준 값 이상인지 여부를 판단하고, 상기 데이터 손실률이 상기 제1 기준 값 이상이면, 상기 데이터 손실률에 기초하여 상기 다중 경로의 서브플로우 개수를 결정하는 서브플로우 관리부를 포함한다.An apparatus for controlling multi-path transmission provided by an embodiment of the present disclosure includes: a data loss rate monitoring unit for obtaining information on a data loss rate of data being communicated; and a subflow management unit to determine whether the data loss rate is equal to or greater than a first reference value, and to determine the number of subflows of the multipath based on the data loss rate if the data loss rate is equal to or greater than the first reference value .

본 개시의 실시예가 제공하는 다중 경로 전송 시스템에서의 데이터 전송 방법은, 기준시간 동안 단일 서브플로우가 사용되는지 여부를 판단하는 과정; 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 상기 서브플로우의 링크 특성 정보를 기초로 공통의 데이터 매핑 정보가 적용될 데이터 세그먼트들의 개수를 결정하는 과정; 상기 결정된 개수의 데이터 세그먼트들 중 첫번째 데이터 세그먼트에 상기 공통 데이터 매핑 정보를 포함하는 다중 경로 헤더를 포함시켜 전송하는 과정; 및 상기 데이터 세그먼트들 중 나머지 데이터 세그먼트들을 다중 경로 헤더 없이 전송하는 과정을 포함한다.A data transmission method in a multi-path transmission system provided by an embodiment of the present disclosure includes the steps of determining whether a single subflow is used for a reference time; determining the number of data segments to which common data mapping information is to be applied based on link characteristic information of the subflow when a single subflow is used during the reference time; transmitting a multi-path header including the common data mapping information in a first data segment among the determined number of data segments; and transmitting the remaining data segments among the data segments without a multi-path header.

본 개시의 실시예가 제공하는 다중 경로 전송 시스템에서의 데이터 전송 방법은, 기준시간 동안 다중 경로 모드에서 단일 서브플로우가 사용되는지 여부를 판단하는 과정; 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 단일 경로 모드로의 전환을 결정하는 과정; 상기 단일 경로 모드로의 전환이 결정되면, 상기 서브플로우에 대한 데이터 매핑 정보를 포함하는 다중 경로 헤더를 생성하여 전송하는 과정; 상기 다중 경로 모드로부터 단일 경로 모드로 전환하는 과정; 및 상기 단일 경로 모드에서 상기 데이터 매핑 정보를 이용하는 데이터 세그먼트들을 전송하는 과정을 포함한다.A data transmission method in a multi-path transmission system provided by an embodiment of the present disclosure includes the steps of determining whether a single subflow is used in a multi-path mode for a reference time; determining to switch to a single-path mode when a single subflow is used during the reference time; generating and transmitting a multi-path header including data mapping information for the subflow when it is determined to switch to the single-path mode; switching from the multi-path mode to the single-path mode; and transmitting data segments using the data mapping information in the single path mode.

본 개시의 실시예가 제공하는 다중 경로 전송 시스템에서의 데이터 전송 장치는, 기준시간 동안 단일 서브플로우가 사용되는지 여부를 판단하고, 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 상기 서브플로우의 링크 특성 정보를 기초로 공통의 데이터 매핑 정보가 적용될 데이터 세그먼트들의 개수를 결정하는 제어부; 및 상기 제어부의 제어 하에 상기 결정된 개수의 데이터 세그먼트들 중 첫번째 데이터 세그먼트에 상기 공통 데이터 매핑 정보를 포함하는 다중 경로 헤더를 포함시켜 전송하고, 상기 데이터 세그먼트들 중 나머지 데이터 세그먼트들을 다중 경로 헤더 없이 전송하는 송수신부를 포함한다.A data transmission apparatus in a multi-path transmission system provided by an embodiment of the present disclosure determines whether a single subflow is used during a reference time, and when a single subflow is used during the reference time, link characteristics of the subflow a control unit that determines the number of data segments to which common data mapping information is to be applied based on the information; and transmitting the multi-path header including the common data mapping information in a first data segment among the determined number of data segments under the control of the controller, and transmitting the remaining data segments among the data segments without a multi-path header It includes a transceiver.

본 개시의 실시예가 제공하는 다중 경로 전송 시스템에서의 데이터 전송 장치는, 기준시간 동안 다중 경로 모드에서 단일 서브플로우가 사용되는지 여부를 판단하고, 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 단일 경로 모드로의 전환을 결정하며, 상기 단일 경로 모드로의 전환이 결정되면, 상기 서브플로우에 대한 데이터 매핑 정보를 포함하는 다중 경로 헤더를 생성하여 전송하고, 상기 다중 경로 모드로부터 단일 경로 모드로 전환하는 제어부; 및 상기 제어부의 제어 하에, 상기 다중 경로 모드에서 다중 경로 헤더를 포함시켜 데이터 세그먼트들을 전송하고, 상기 단일 경로 모드에서 다중 경로 헤더 없이 상기 데이터 매핑 정보를 이용하는 데이터 세그먼트들을 전송하는 송수신부를 포함한다.A data transmission apparatus in a multipath transmission system provided by an embodiment of the present disclosure determines whether a single subflow is used in a multipath mode for a reference time, and when a single subflow is used for the reference time, a single path Determining switching to the single-path mode, generating and transmitting a multi-path header including data mapping information for the subflow when switching to the single-path mode is determined, and switching from the multi-path mode to the single-path mode control unit; and a transceiver for transmitting data segments including a multipath header in the multipath mode under the control of the controller and transmitting data segments using the data mapping information without a multipath header in the single path mode.

도 1은 MPTCP를 설명하기 위한 도면.
도 2는 MPTCP 프록시가 서버와 클라이언트 간의 MPTCP를 지원하는 예를 설명하는 도면.
도 3은 본 개시의 실시예에 따라 MPTCP의 서브플로우의 개수를 조정하는 방식을 설명하는 도면.
도 4는 MPTCP의 데이터 전송을 예시한 도면.
도 5는 MPTCP 헤더의 구성을 설명하는 도면.
도 6은 MPTCP 헤더로 인한 오버헤드를 설명하는 도면.
도 7a 및 도 7b는 본 개시의 실시예에 따른 MPTCP 시스템에서의 데이터 전송 방법을 설명하는 도면.
도 8은 도 7b의 데이터 전송 방법을 설명하는 흐름도.
도 9a 및 도 9b는 본 개시의 실시예에 따른 MPTCP 시스템에서의 데이터 전송 방법을 설명하는 도면.
도 10a 및 도 10b는 도 9b의 데이터 전송 방법을 설명하는 흐름도.
도 11은 본 개시의 실시예들에 따른 장치 구성을 설명하는 도면.
1 is a diagram for explaining MPTCP.
2 is a view for explaining an example in which an MPTCP proxy supports MPTCP between a server and a client;
3 is a view for explaining a method of adjusting the number of subflows of MPTCP according to an embodiment of the present disclosure;
4 is a diagram illustrating data transmission of MPTCP.
5 is a diagram for explaining the configuration of an MPTCP header;
6 is a diagram for explaining an overhead due to an MPTCP header;
7A and 7B are diagrams for explaining a data transmission method in an MPTCP system according to an embodiment of the present disclosure;
Fig. 8 is a flowchart for explaining the data transmission method of Fig. 7B;
9A and 9B are diagrams for explaining a data transmission method in an MPTCP system according to an embodiment of the present disclosure;
10A and 10B are flowcharts for explaining the data transmission method of FIG. 9B;
11 is a view for explaining the configuration of an apparatus according to embodiments of the present disclosure;

하기에서 본 개시를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 이하 첨부된 도면을 참조하여 상기한 본 개시의 실시예를 구체적으로 설명하기로 한다.In the following description of the present disclosure, if it is determined that a detailed description of a related well-known function or configuration may unnecessarily obscure the subject matter of the present disclosure, the detailed description thereof will be omitted. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

이하에서 설명되는 본 개시의 실시예들은 설명의 편의를 위하여 분리된 것이지만, 상호 충돌되지 않는 범위 내에서 적어도 둘 이상의 실시예는 결합되어 수행될 수 있다.Although the embodiments of the present disclosure described below are separated for convenience of description, at least two or more embodiments may be combined and performed within a range that does not conflict with each other.

이하에서 후술되는 용어들은 본 개시의 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Terms to be described below are terms defined in consideration of functions in embodiments of the present disclosure, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification.

본 개시의 실시예는 다양한 변경을 가할 수 있고 여러 가지 실시 예들을 가질 수 있는 바, 특정 실시 예들을 도면들에 예시하여 상세하게 설명한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The embodiment of the present disclosure may have various changes and may have various embodiments, and specific embodiments will be described in detail by exemplifying the drawings. However, this is not intended to limit the present disclosure to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present disclosure.

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

또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In addition, the terms used herein are used only to describe specific embodiments, and are not intended to limit the present disclosure. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

본 개시에서 제안하는 장치 및 방법은 롱 텀 에볼루션(Long-Term Evolution: LTE) 이동 통신 시스템과, 롱 텀 에볼루션-어드밴스드(Long-Term Evolution-Advanced: LTE-A) 이동 통신 시스템과, 고속 하향 링크 패킷 접속(high speed downlink packet access: HSDPA) 이동 통신 시스템과, 고속 상향 링크 패킷 접속(high speed uplink packet access: HSUPA) 이동 통신 시스템과, 3세대 프로젝트 파트너쉽 2(3rd generation project partnership 2: 3GPP2)의 고속 레이트 패킷 데이터(high rate packet data: HRPD) 이동 통신 시스템과, 3GPP2의 광대역 코드 분할 다중 접속(Wideband Code Division Multiple Access: WCDMA) 이동 통신 시스템과, 3GPP2의 코드 분할 다중 접속(Code Division Multiple Access: CDMA) 이동 통신 시스템과, 국제 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers: IEEE) 802.16m 통신 시스템과, 진화된 패킷 시스템(Evolved Packet System: EPS)과, 모바일 인터넷 프로토콜(Mobile Internet 프로토콜: Mobile IP) 시스템 등과 같은 다양한 통신 시스템들에 적용 가능하다.The apparatus and method proposed in the present disclosure include a Long-Term Evolution (LTE) mobile communication system, a Long-Term Evolution-Advanced (LTE-A) mobile communication system, and a high-speed downlink Packet access (high speed downlink packet access: HSDPA) mobile communication system, high speed uplink packet access (HSUPA) mobile communication system, 3rd generation project partnership 2 (3rd generation project partnership 2: 3GPP2) High rate packet data (HRPD) mobile communication system, 3GPP2 Wideband Code Division Multiple Access (WCDMA) mobile communication system, and 3GPP2 Code Division Multiple Access (Code Division Multiple Access: CDMA) Mobile Communication System, Institute of Electrical and Electronics Engineers (IEEE) 802.16m Communication System, Evolved Packet System (EPS), and Mobile Internet Protocol (Mobile Internet Protocol: Mobile) It is applicable to various communication systems, such as an IP) system.

이하, 다중 경로 전송 제어 프로토콜(multipath transport control protocol, MPTCP)을 지원하는 통신 시스템을 가정하여 본 개시의 실시예들을 설명한다. 이들은 본 개시의 실시 형태를 한정하기 위함이 아니라 설명하기 위한 것일 뿐, 본 개시는 다중 경로를 사용하여 데이터를 교환하는 통신 시스템, 즉 다중 경로 전송 시스템 어디에든 적용 가능하다.Hereinafter, embodiments of the present disclosure will be described assuming a communication system supporting a multipath transport control protocol (MPTCP). These are only for explaining, not limiting, embodiments of the present disclosure, and the present disclosure is applicable to any communication system that exchanges data using a multi-path, that is, a multi-path transmission system.

도 1 내지 도 6을 참조로 MPTCP, MPTCP의 데이터 전송, MPTCP 헤더 및 오버헤드 발생을 설명한다.MPTCP, data transmission of MPTCP, MPTCP header, and overhead generation will be described with reference to FIGS. 1 to 6 .

도 1은 MPTCP를 설명하기 위한 도면이다.1 is a diagram for explaining MPTCP.

(a)는 하나의 네트워크 인터페이스에서 TCP 프로토콜을 포함하는 계층 구조를 나타내는데, 어플리케이션 계층(101) 아래에 하나의 TCP 계층(103)과 하나의 IP 계층(105)이 있다. (a) shows a hierarchical structure including the TCP protocol in one network interface, and there is one TCP layer 103 and one IP layer 105 under the application layer 101 .

(b)는 하나의 네트워크 인터페이스에서 MPTCP 프로토콜을 포함하는 계층 구조를 나타내는데, 어플리케이션 계층(111) 아래에 하나의 MPTCP 계층(113)이 있고, MPTCP에 복수 개의 TCP 서브플로우들(114, 115, 116)이 포함되어 있고, 각각의 TCP 서브플로우들(114, 115, 116) 아래에 각각의 IP 계층(117, 118, 119)이 있음을 볼 수 있다. 상기 TCP 서브플로우들(114, 115, 116)은 서로 다른 네트워크 인터페이스에 연결된다. 예를 들어, TCP 서브플로우 114는 LTE 네트워크를 통하여 클라이언트와 통신하기 위한 것이고, TCP 서브플로우 115는 Wi-Fi 네트워크를 통하여 클라이언트와 통신하기 위한 것이고, TCP 서브플로우 116은 WiMax 네트워크를 통하여 클라이언트와 통신하기 위한 것일 수 있다. (b) shows a hierarchical structure including the MPTCP protocol in one network interface. There is one MPTCP layer 113 under the application layer 111, and a plurality of TCP subflows 114, 115, 116 in MPTCP. ) is included, and it can be seen that each IP layer 117 , 118 , 119 is below each of the TCP subflows 114 , 115 , 116 . The TCP subflows 114, 115, 116 are connected to different network interfaces. For example, TCP subflow 114 is for communicating with a client over an LTE network, TCP subflow 115 is for communicating with a client over a Wi-Fi network, and TCP subflow 116 is for communicating with a client over a WiMax network. it may be for

한편, MPTCP가 정상적으로 동작하기 위해서는 서버와 클라이언트가 모두 MPTCP를 지원해야 하는데, 이러한 호환성 문제를 해결하기 위하여 MPTCP 프록시(이하 "프록시")를 도입하여, 프록시가 서버와 클라이언트 사이에서 MPTCP의 다중 경로를 지원하도록 하고 있다. On the other hand, in order for MPTCP to operate normally, both the server and the client must support MPTCP. To solve this compatibility problem, an MPTCP proxy (hereinafter referred to as "proxy") was introduced, so that the proxy uses the multi-path of MPTCP between the server and the client. to support it.

도 2는 프록시가 서버와 클라이언트 간의 MPTCP를 지원하는 예를 설명하는 도면이다. 2 is a diagram for explaining an example in which a proxy supports MPTCP between a server and a client.

참조 번호 241은 기존의 TCP 프로토콜을 사용하는 경우의 트래픽 플로우를 도시한 것으로, MPTCP와의 비교를 위하여 도시되었다. Reference number 241 shows a traffic flow when the existing TCP protocol is used, and is shown for comparison with MPTCP.

참조 번호 251 및 253은 MPTCP 프로토콜을 사용하여 두 개의 네트워크 인터페이스를 구성한 예를 도시한 것이다. 즉, 프록시(220)는 클라이언트(210)와 두 개의 네트워크 인터페이스를 구성하고 있다. 예를 들어, A-B 간의 네트워크 인터페이스(251)는 LTE 를 위한 네트워크 인터페이스이고, A'-B 간의 네트워크 인터페이스(252)는 Wi-Fi 를 위한 네트워크 인터페이스가 될 수 있다. 한편, 참조 번호 255는 프록시(223)와 서버(230)와의 네트워크 인터페이스를 도시한 것인데 통상적으로 프록시(223)와 서버(230) 사이는 유선 망으로 연결되어 있기 때문에, 복수 개의 네트워크 인터페이스를 구성하지 않는 것이 일반적이다.Reference numerals 251 and 253 show examples of configuring two network interfaces using the MPTCP protocol. That is, the proxy 220 configures two network interfaces with the client 210 . For example, the network interface 251 between A-B may be a network interface for LTE, and the network interface 252 between A'-B may be a network interface for Wi-Fi. On the other hand, reference number 255 shows a network interface between the proxy 223 and the server 230. Since the proxy 223 and the server 230 are typically connected through a wired network, a plurality of network interfaces is not configured. it is common not to

MPTCP에서는 복수 개의 네트워크 인터페이스를 구성하기 위하여 하나의 TCP 플로우를 복수 개의 TCP 서브플로우로 구성하는 서브플로우 관리(Subflow Management)가 지원된다. 하나의 TCP 플로우를 복수 개의 TCP 서브플로우로 구성하는 것은 앞서 도 1에서 설명된 바 있다.In MPTCP, subflow management that configures one TCP flow into a plurality of TCP subflows is supported in order to configure a plurality of network interfaces. The configuration of one TCP flow into a plurality of TCP subflows has been previously described with reference to FIG. 1 .

한편, 프록시가 지원할 수 있는 전체 사용자 장치의 개수는 각 사용자의 TCP 플로우의 개수가 적을수록 증가한다. 따라서 각 사용자 별 TCP 플로우의 개수가 적을수록 프록시의 오버헤드 또는 비용 측면에서 좋다. 그런데 기존의 MPTCP에서 서브플로우들의 개수는 고정된 값으로 설정된다. 즉, 프록시에 대하여 서브플로우의 개수가 설정되면 모든 사용자가 동일한 서브플로우의 개수를 사용하여야 한다.Meanwhile, the total number of user devices that the proxy can support increases as the number of TCP flows for each user decreases. Therefore, the smaller the number of TCP flows for each user, the better in terms of proxy overhead or cost. However, in the existing MPTCP, the number of subflows is set to a fixed value. That is, when the number of subflows is set for the proxy, all users must use the same number of subflows.

이렇게 서브플로우의 개수를 고정된 값으로 사용하게 되면 다음과 같은 문제가 생길 수 있다. If the number of subflows is used as a fixed value in this way, the following problems may occur.

예를 들어, 서브플로우의 개수를 과도하게 많이 설정하면 처리량(throughput)은 서브플로우의 개수가 1개일 때보다 높을 수 있으나, 프록시에 불필요한 오버헤드가 생겨서 프록시를 추가로 구성해야 할 수 있고, 이 경우 시스템 구성을 위한 비용이 증가하게 된다. 반면, 서브플로우의 개수를 과도하게 적게 설정하면 프록시의 오버헤드는 낮아질 수 있으나 처리량 또한 낮아지게 된다.For example, if the number of subflows is set excessively, the throughput may be higher than when the number of subflows is 1, but unnecessary overhead occurs in the proxy, and additional proxies may need to be configured. In this case, the cost for system configuration increases. On the other hand, if the number of subflows is set excessively small, the overhead of the proxy may be lowered, but the throughput will also be lowered.

본 개시는 MPTCP를 지원하는 통신 시스템에서 MPTCP 서브플로우의 개수를 적응적으로 설정하기 위한 방법 및 장치를 제공한다.The present disclosure provides a method and apparatus for adaptively setting the number of MPTCP subflows in a communication system supporting MPTCP.

본 개시의 실시예의 상세한 설명에 앞서 본 개시의 기본 개념을 간략히 설명한다.Prior to the detailed description of the embodiments of the present disclosure, basic concepts of the present disclosure will be briefly described.

본 개시에서, 프록시는 하나의 네트워크 인터페이스에 대한 데이터의 손실률과 처리할 데이터의 양을 고려하여, 하나의 네트워크 인터페이스를 위한 MPTCP 서브플로우의 개수를 적응적으로 조정한다. 만일 데이터의 손실률이 소정 값 이상이고, 처리할 데이터의 양이 기준 값 이상이라면, 서브플로우의 개수를 증가시켜서 처리량을 증가시킬 수 있다. 반대로 데이터 손실률과 처리할 데이터의 양을 고려하여 서브플로우의 개수를 감소시키거나 또는 초기 설정 값으로 유지할 수도 있다. In the present disclosure, the proxy adaptively adjusts the number of MPTCP subflows for one network interface in consideration of the data loss rate for one network interface and the amount of data to be processed. If the data loss rate is equal to or greater than a predetermined value and the amount of data to be processed is equal to or greater than the reference value, the throughput may be increased by increasing the number of subflows. Conversely, in consideration of the data loss rate and the amount of data to be processed, the number of subflows may be reduced or maintained at an initial setting value.

프록시가 클라이언트에게 데이터를 송신하는 경우, 프록시는 데이터의 손실률을 클라이언트가 송신하는 TCP ACK 정보에 기초하여 획득할 수 있고, 처리할 데이터의 양은 MPTCP 내의 송신 큐(Tx Queue)에 저장되어 있는 데이터의 양 또는 정보는 TCP의 ACK되지 않은 데이터량에 기초하여 획득할 수 있다. 프록시가 클라이언트로부터 데이터를 수신하는 경우에도 유사한 방식으로 프록시는 데이터의 손실률과 처리할 데이터의 양을 획득하여 해당 네트워크 인터페이스에 대한 서브플로우의 개수를 조정할 수 있다. When the proxy sends data to the client, the proxy can obtain a data loss rate based on the TCP ACK information sent by the client, and the amount of data to be processed depends on the amount of data stored in the Tx Queue in the MPTCP. The amount or information can be obtained based on the amount of unacknowledged data in TCP. When a proxy receives data from a client, in a similar manner, the proxy can adjust the number of subflows for its network interface by obtaining the rate of data loss and the amount of data to process.

도 3은 본 개시의 실시예에 따라 MPTCP의 서브플로우의 개수를 조정하는 방식을 설명하는 도면이다. 3 is a diagram illustrating a method of adjusting the number of subflows of MPTCP according to an embodiment of the present disclosure.

프록시는 데이터의 손실률이 기준 값(x) 이상인지 여부를 결정한다(301). 데이터의 손실률이 소정 값(x) 이상이라면, 처리할 데이터의 양이 기준 값(y) 이상인지 여부를 판단한다(303). 데이터의 손실률이 소정 값(x) 미만이라면, 서브플로우의 개수를 조정하지 않고 초기 설정된 값으로 유지한다(307). 만일 처리할 데이터의 양이 기준 값(y) 이상이라면 데이터의 손실률에 기초하여 서브플로우의 개수를 조정 또는 결정하고(305), 처리할 데이터의 양이 기준 값(y) 미만이라면 서브플로우의 개수를 조정 또는 결정하지 않고 초기 설정된 값으로 유지한다(307).The proxy determines whether the data loss rate is greater than or equal to a reference value (x) ( 301 ). If the data loss rate is greater than or equal to a predetermined value (x), it is determined whether the amount of data to be processed is greater than or equal to a reference value (y) ( 303 ). If the data loss rate is less than the predetermined value (x), the number of subflows is not adjusted and maintained at an initially set value ( 307 ). If the amount of data to be processed is greater than or equal to the reference value (y), the number of subflows is adjusted or determined based on the data loss rate (305), and if the amount of data to be processed is less than the reference value (y), the number of subflows is maintained at the initial set value without adjusting or determining (307).

상술한 것처럼, 상기 데이터의 손실률의 정보는 클라이언트가 송신하는 TCP ACK 정보에 기초하여 획득할 수 있고, 처리할 데이터의 양은 MPTCP 내의 송신 큐(Tx Que)에 저장되어 있는 데이터의 양 또는 TCP의 ACK되지 않은 데이터량에 의하여 획득할 수 있다. 다만, 데이터 손실률의 정보 및 처리할 데이터량의 정보을 획득하는 방식은 상술한 방식으로만 제한되는 것은 아니다. As described above, the information on the data loss rate can be obtained based on the TCP ACK information transmitted by the client, and the amount of data to be processed is the amount of data stored in the transmission queue (Tx Que) in the MPTCP or TCP ACK. It can be obtained by the amount of data that is not available. However, the method of obtaining information on the data loss rate and information on the amount of data to be processed is not limited to the above-described method.

한편, 상기 303단계는 301단계보다 먼저 수행될 수 있다. 즉, 처리할 데이터의 양이 기준 값(y) 이상인지 여부를 판단하고, 기준 값(y) 이상인 경우에, 데이터의 손실률이 기준 값(x) 이상인지 여부를 판단하고, 데이터의 손실률이 기준 값(x) 이상이라면 305단계로 진행하여 서브플로우의 개수를 조정할 수 있다. 또한, 상기 303단계는 반드시 수행되지 않아도 된다. 즉, 301단계에 의하여 데이터 손실률이 기준값(x) 이상이라혐 상기 303 단계를 수행하지 않고, 데이터 손실률에 기초하여 서브플로우의 개수를 결정할 수 있다.Meanwhile, step 303 may be performed before step 301 . That is, it is determined whether the amount of data to be processed is equal to or greater than the reference value (y), and when the amount of data to be processed is equal to or greater than the reference value (y), it is determined whether the data loss rate is equal to or greater than the reference value (x), and the data loss rate is the reference value (x). If it is greater than or equal to the value (x), the number of subflows may be adjusted by proceeding to step 305 . Also, step 303 is not necessarily performed. That is, since the data loss rate is greater than or equal to the reference value (x) in step 301, the number of subflows may be determined based on the data loss rate without performing step 303.

상기 305단계에서 서브플로우의 개수를 조정하는 방식은, 데이터 손실률에 기초하여 미리 결정된 소정의 함수에 의하여 결정될 수 있다. 예를 들어, 데이터 손실률이 0.1% ~ 0.5% 라면 서브플로우의 개수를 4로 설정하고, 데이터 손실률이 0.5 ~ 1.0%인 경우 서브플로우의 개수를 8로 설정하고, 1.0% 이상인 경우 서브플로우의 개수를 10으로 설정할 수 있다.A method of adjusting the number of subflows in step 305 may be determined by a predetermined function determined in advance based on a data loss rate. For example, if the data loss rate is 0.1% to 0.5%, set the number of subflows to 4, if the data loss rate is 0.5 to 1.0%, set the number of subflows to 8, and if it is 1.0% or more, the number of subflows can be set to 10.

한편, 본 개시에서 서브플로우의 개수를 조정하는 시점 또는 조정 주기는 특별히 제한하지 않는다. 다만, 경우에 따라 소정 주기에 따라 서브플로우의 개수를 조정할 수도 있고, 소정의 이벤트, 예를 들면, 특정 타입의 데이터가 송수신되는 경우에 서브플로우의 개수를 조정할 수도 있다.Meanwhile, in the present disclosure, a time point or an adjustment period for adjusting the number of subflows is not particularly limited. However, in some cases, the number of subflows may be adjusted according to a predetermined period, or the number of subflows may be adjusted when a predetermined event, for example, a specific type of data is transmitted/received.

도 4는 MPTCP의 데이터 전송을 예시한 도면이다.4 is a diagram illustrating data transmission of MPTCP.

도시한 바와 같이, MPTCP에서는 복수의 인터페이스를 구성하기 위하여 하나의 TCP 플로우를 복수 개의 TCP 서브플로우로 구성하는 서브플로우 관리(Subflow Management)가 지원된다.As shown, in MPTCP, subflow management of configuring one TCP flow into a plurality of TCP subflows is supported in order to configure a plurality of interfaces.

하나의 TCP 플로우를 복수 개의 서브플로우로 구성하는 것은 앞서 도 1에서 설명된 바 있다.The configuration of one TCP flow into a plurality of subflows has been previously described with reference to FIG. 1 .

한편, MPTCP에서는 TCP 옵션들의 일부로서 MPTCP 헤더가 새로 추가된다.Meanwhile, in MPTCP, the MPTCP header is newly added as a part of TCP options.

MPTCP에서 데이터 패킷들은 데이터 시퀀스 신호(Data Sequence Signal, DSS)라고 불리는 MPTCP 헤더를 가진다.In MPTCP, data packets have an MPTCP header called a Data Sequence Signal (DSS).

MPTCP 헤더는 서로 다른 서브플로우들을 통해 전송되는 데이터의 분할 및 재조립을 위한 것으로서, 통상 최대 28 bytes의 길이를 가지며, TCP 옵션 필드로서 전달된다. MPTCP 헤더의 사용은 1500 MTU(maximum transmission unit) 경로들에 대해 약 1.8%의 오버헤드를 부가한다.The MPTCP header is for segmentation and reassembly of data transmitted through different subflows, usually has a maximum length of 28 bytes, and is transmitted as a TCP option field. The use of the MPTCP header adds about 1.8% overhead for 1500 maximum transmission unit (MTU) paths.

도 5는 MPTCP 헤더의 구성을 설명하는 도면이다.5 is a diagram for explaining the configuration of an MPTCP header.

도 5를 참조하면, MPTCP 헤더는 서브플로우 시퀀스 넘버 필드(1510), 데이터 시퀀스 넘버 필드(1520), 데이터 레벨 길이 필드(1540) 및 데이터 ACK 필드(1530)를 포함한다.Referring to FIG. 5 , the MPTCP header includes a subflow sequence number field 1510 , a data sequence number field 1520 , a data level length field 1540 , and a data ACK field 1530 .

MPTCP 헤더는 서로 다른 서브플로우들을 통해 전송되는 데이터의 분할 및 재조립을 수행하기 위해 하기와 같은 두 레벨의 시퀀스 넘버들을 보유한다.The MPTCP header holds the following two levels of sequence numbers in order to perform division and reassembly of data transmitted through different subflows.

첫 번째는, TCP 계층에 있는 서브플로우 레벨(단일 TCP 레벨)의 서브플로우 시퀀스 넘버(Subflow Sequence Number, SSN)이다.The first is the subflow sequence number (SSN) of the subflow level (single TCP level) in the TCP layer.

각 서브플로우마다 고유한 서브플로우 시퀀스 넘버들이 부여된다. 한 서브플로우의 시퀀스 넘버들은 기존의 단일 TCP 연결에서 해당 서브플로우에 할당된 데이터를 순차 전송하기 위해 할당되는 TCP 시퀀스 넘버들과 똑같이 작용한다.Each subflow is assigned a unique subflow sequence number. The sequence numbers of a subflow work the same as the TCP sequence numbers allocated to sequentially transmit data allocated to that subflow in a single existing TCP connection.

두 번째는, MPTCP 계층에 있는 데이터 레벨(MPTCP 연결 레벨)의 데이터 시퀀스 넘버(Data Sequence Number, DSN)이다. 데이터 시퀀스 넘버에 의해, 서브플로우들 각각으로부터의 데이터가 결합되어 어플리케이션(예컨대, 수신 장치의 어플리케이션)으로 순차 전송될 수 있다. The second is the data sequence number (DSN) of the data level (MPTCP connection level) in the MPTCP layer. According to the data sequence number, data from each of the subflows may be combined and sequentially transmitted to an application (eg, an application of a receiving device).

데이터 ACK 역시 MPTCP 계층에 속하는 데이터 레벨의 필드이다.Data ACK is also a data level field belonging to the MPTCP layer.

이와 같이 구성된 MPTCP 헤더는 서로 다른 서브플로우들을 통해 수신된 트래픽들(즉 데이터 세그먼트들)을 함께 모아 하나의 데이터(데이터 스트림)로 조립하기 위해, 서브플로우 시퀀스 넘버를 데이터 시퀀스 넘버로 매핑(Data Sequence Signal Mapping, 이하 DSS 매핑)하는 데 사용된다.The MPTCP header configured as described above collects traffic (ie, data segments) received through different subflows and maps the subflow sequence number to the data sequence number in order to assemble it into one data (data stream). Signal Mapping, hereinafter DSS mapping) is used.

DSS 매핑은 MPTCP 헤더를 이용해 각각의 서브플로우 시퀀스 넘버 대 데이터 시퀀스 넘버 간 매핑을 수행하는 동작으로 정의할 수 있다.DSS mapping can be defined as an operation of performing mapping between each subflow sequence number and data sequence number using the MPTCP header.

MPTCP 헤더는 DSS 매핑 정보로서, 서브플로우 시퀀스 넘버, 데이터 시퀀스 넘버 및 데이터 레벨 길이 중 적어도 하나를 포함할 수 있다.The MPTCP header is DSS mapping information and may include at least one of a subflow sequence number, a data sequence number, and a data level length.

데이터 레벨 길이는 DSS 매핑이 적용될 데이터의 길이(즉 사이즈)를 지정하는 값으로서 DSS 매핑 길이라고도 칭한다. 하나의 인터페이스만이 사용되고, 데이터 레벨 길이가 기 할당된 충분히 큰 값으로 설정되면, 일정 주기 동안에는 새로운 MPTCP 헤더를 수신하지 않고서 기 수신된 MPTCP 헤더를 반복적으로 사용하여 DSS 매핑이 가능하다.The data level length is a value designating the length (ie, size) of data to which DSS mapping is to be applied, and is also referred to as a DSS mapping length. If only one interface is used and the data level length is set to a sufficiently large pre-allocated value, DSS mapping is possible by repeatedly using the previously received MPTCP header without receiving a new MPTCP header for a certain period.

DSS 매핑 길이가 충분히 길게 주어지면, DSS 매핑 횟수가 적어지고, 전달되는 MPTCP 헤더들의 개수가 줄어 헤더 용량으로 인한 오버헤드를 줄일 수 있다.If the DSS mapping length is given sufficiently long, the number of DSS mappings decreases and the number of MPTCP headers transmitted decreases, thereby reducing overhead due to header capacity.

그러나, DSS 매핑 길이가 너무 길면, 새로운 인터페이스가 나타날 때 데이터 낭비를 초래할 수 있다. 이는 이전 인터페이스의 DSS 매핑을 위해 많은 MPTCP 헤더들이 전달되어야 하기 때문이다. 한 서브플로우 상에서 일단 전송(공유)된 DSS 매핑 정보는 취소될 수 없다. DSS 매핑 횟수가 너무 적은 경우, 데이터 세그먼트들이 서브플로우 레벨(아무 매핑도 존재하지 않음) 내에서 전달될 수는 있지만, 실제 이들을 어플리케이션들에 전달하는 MPTCP 연결 레벨로 전송하기 위한 DSS 매핑 정보가 부족할 수 있다. 때문에 데이터 세그먼트들이 서브플로우 레벨에 머물러 있게 된다. 데이터 세그먼트는 하나의 데이터(데이터 스트림)로부터 분할된 데이터 전송 단위로서, 데이터 패킷과 동일할 수도 있고, 데이터 패킷의 부분 집합, 또는 복수의 데이터 패킷일 수도 있다.However, if the DSS mapping length is too long, it may result in data wastage when a new interface appears. This is because many MPTCP headers must be transmitted for DSS mapping of the previous interface. DSS mapping information once transmitted (shared) in one subflow cannot be canceled. If the number of DSS mappings is too small, the data segments may be delivered within the subflow level (no mapping exists), but there may not be enough DSS mapping information to transmit them at the MPTCP connection level, which actually delivers them to applications. have. As a result, data segments remain at the subflow level. A data segment is a data transmission unit divided from one data (data stream), and may be the same as a data packet, a subset of a data packet, or a plurality of data packets.

한편, DSS 매핑 길이가 너무 짧으면, DSS 매핑 횟수가 잦아지고, DSS 매핑을 위해 더 많은 MPTCP 헤더들이 전달되어야 하기 때문에 오버헤드가 증가하게 된다. 너무 잦은 DSS 매핑은 헤더 공간의 오버헤드로 인해 처리량 저하를 일으킨다.On the other hand, if the length of the DSS mapping is too short, the number of DSS mappings increases, and the overhead increases because more MPTCP headers must be transmitted for the DSS mapping. Too frequent DSS mapping causes throughput degradation due to the overhead of header space.

도 6은 MPTCP 헤더로 인한 오버헤드를 설명하는 도면이다.6 is a diagram for explaining an overhead due to an MPTCP header.

MPTCP는, 여러 인터페이스들이 이용 가능하고(available), 회복력(resilience), 처리량(throughput) 등과 관련하여 여러 인터페이스들에 걸쳐 하나의 TCP 연결을 분할해야 할 때, MPTCP 헤더를 포함한 다양한 값들을 추가한다.MPTCP adds various values including the MPTCP header when multiple interfaces are available, and when one TCP connection needs to be split across multiple interfaces in relation to resilience, throughput, and the like.

하나의 인터페이스를 이용하는 경우에도, MPTCP는 데이터 교환 중 DSS 매핑을 설정하기 위한 MPTCP 헤더를 추가한다.Even when using one interface, MPTCP adds an MPTCP header for establishing DSS mapping during data exchange.

도 6은 MPTCP의 경우 4 개의 서브플로우들을 가진 1 기가 단일 인터페이스 상의 10Mbps 트래픽과, 단일 TCP의 경우 동일한 단일 인터페이스 상의 10Mbps 트래픽을 비교 도시한 것이다.FIG. 6 shows a comparison of 10Mbps traffic on a single interface of 1 gigabit having 4 subflows in the case of MPTCP and 10Mbps traffic on the same single interface in the case of a single TCP.

손실률이 큰 경우(Loss=5%)와 작은 경우(Loss=0%)을 비교해 보면 MPTCP의 필요성을 알 수 있다. 즉, 어느 한 링크(서브플로우) 상에서 데이터 손실률이 높아지는 경우 MPTCP는 다른 링크(서브플로우)를 활용해 손실률을 낮출 수 있으며, 이로 인해 데이터 처리량(throughput)을 유지할 수 있다.The necessity of MPTCP can be seen by comparing the case where the loss rate is large (Loss=5%) and the case where the loss rate is small (Loss=0%). That is, when the data loss rate increases on one link (subflow), MPTCP can utilize the other link (subflow) to lower the loss rate, thereby maintaining data throughput.

다만, 손실률 0~2%까지의 구간 동안에, 단일 TCP 대비 MPTCP 성능 저하(MPTCP degradation)가 나타남을 알 수 있다.However, it can be seen that MPTCP degradation compared to single TCP appears during the period up to the loss rate of 0 to 2%.

이러한 MPTCP 성능 저하의 주요 원인 중의 하나는, 다양한 서브플로우들의 사용에 수반되는 DSS 매핑을 위해 소요되는 MPTCP 헤더 용량이라 할 수 있다.One of the main causes of such MPTCP performance degradation is the MPTCP header capacity required for DSS mapping accompanying the use of various subflows.

즉, 긴 듀레이션 동안 하나의 인터페이스만이 이용 가능한 경우, 데이터 교환 중 MPTCP 헤더들의 추가로 인해 불필요한 오버헤드가 야기되는 것이다. 예를 들어, 1500 MTU 경로에서, 데이터 교환 중에 최대 사이즈인 28 bytes의 MPTCP 헤더를 데이터 세그먼트들에 추가하는 경우, 약 1.8%의 오버헤드가 부가됨으로써 효율성이 감소되는 결과를 가져온다.That is, when only one interface is available for a long duration, unnecessary overhead is caused due to the addition of MPTCP headers during data exchange. For example, in a 1500 MTU path, when an MPTCP header of 28 bytes, which is the maximum size, is added to data segments during data exchange, an overhead of about 1.8% is added, resulting in reduced efficiency.

MPTCP 연결은 다중 인터페이스를 지원하나 단일 인터페이스만을 가질 수도 있다. 예를 들어, LTE를 위한 네트워크 인터페이스와 Wi-Fi 를 위한 네트워크 인터페이스를 모두 이용할 수 있는 MPTCP에서, LTE를 위한 네트워크 인터페이스만 나타나고 Wi-Fi 를 위한 네트워크 인터페이스는 없는 경우가 있을 수 있다.An MPTCP connection supports multiple interfaces, but may only have a single interface. For example, in MPTCP in which both a network interface for LTE and a network interface for Wi-Fi can be used, there may be a case where only a network interface for LTE appears and there is no network interface for Wi-Fi.

이 경우, 새로운 인터페이스의 트래픽이 발생하기 전까지 여러 인터페이스들의 다양한 서브플로우들을 고려하여 데이터를 재구성(reassembly)할 필요성이 없다.In this case, there is no need to reassemble data in consideration of various subflows of various interfaces until traffic of a new interface occurs.

한편, 새로운 인터페이스가 언제든 나타날 수 있는 MPTCP의 특성으로 인해 하나의 인터페이스만이 지속적으로 사용되는 경우라 하더라도 새 인터페이스 출현(추가)에 대해 빠른 응답성이 요구된다.On the other hand, due to the characteristics of MPTCP in which a new interface can appear at any time, even when only one interface is continuously used, a quick response to the appearance (addition) of a new interface is required.

본 개시에서는, 단일 인터페이스에서의 오버헤드와 응답성 간의 균형을 맞출 수 있도록, MPTCP에서의 효율적인 데이터 교환을 위한 헤더 최적화를 주 목적으로 하며, 이를 위해 하기의 실시예들을 제안한다.In the present disclosure, the main purpose of header optimization for efficient data exchange in MPTCP is to achieve a balance between overhead and responsiveness in a single interface, and for this, the following embodiments are proposed.

이하, 도 7a 내지 도 11을 참조로, 본 개시의 실시예들에 대해 설명한다.Hereinafter, embodiments of the present disclosure will be described with reference to FIGS. 7A to 11 .

본 개시의 실시예들을 수행하는 주체는 설명의 편의상 주로 송신 장치로 기재하나, 본 개시가 이에 한정되는 것은 아니며, 실시 형태에 따라 다중 경로 데이터 교환이 가능한 서버나 클라이언트, 송신 장치나 수신 장치, 서버와 클라인트 간 통신 연결을 매개하는 프록시 장치, 혹은 이들의 선택적인 조합이나 일부 조합 등 다양한 형태로 구현될 수 있다.A subject performing the embodiments of the present disclosure is mainly described as a transmitting device for convenience of description, but the present disclosure is not limited thereto, and a server or client capable of exchanging multi-path data according to an embodiment, a transmitting device or a receiving device, and a server It can be implemented in various forms, such as a proxy device that mediates a communication connection between a client and a client, or a selective combination or some combination thereof.

MPTCP에서 다양한 서브플로우들에 걸쳐 분할 전송된 데이터의 재조립이 이미 알려진(즉, 송신 장치와 수신 장치 간에 공유된) DSS 매핑에 의해 커버되는 한, DSS 매핑을 위한 MPTCP 헤더가 매 데이터 세그먼트마다 포함될 필요가 없다.In MPTCP, an MPTCP header for DSS mapping will be included for every data segment, as long as the reassembly of data segmented across various subflows is covered by a known DSS mapping (that is, shared between the sending device and the receiving device). no need.

따라서, DSS 매핑이 미리 알려져 있는 경우(예컨대, 수신 장치에서 충분한 데이터 범위에 대한 DSS 매핑 정보를 이미 수신한 경우), 이러한 점을 활용해 오버헤드를 감소시킬 수 있다. 그러한 한 경우는 송신 장치와 수신 장치 간에 단일 인터페이스만이 존재할 때이고, 다른 한 경우는 데이터의 세그먼트들이 패킷 크기의 청크들(chunks)보다 더 크게 스케줄링 될 때이다.Accordingly, when the DSS mapping is known in advance (eg, when DSS mapping information for a sufficient data range has already been received by the receiving device), overhead can be reduced by utilizing this point. One such case is when there is only a single interface between the transmitting device and the receiving device, and the other is when segments of data are scheduled to be larger than packet size chunks.

본 개시의 실시예는 오버헤드를 방지하기 위해, 데이터 세그먼트들과 함께 전송되는 MPTCP 헤더들의 개수를 줄이는 DSS 매핑 억제를 수행하되, (현재 사용 중인) 인터페이스를 구성하는 서브플로우의 링크 특성에 기반하여 이를 수행한다.An embodiment of the present disclosure performs DSS mapping suppression to reduce the number of MPTCP headers transmitted together with data segments to prevent overhead, but based on the link characteristics of subflows constituting the interface (currently in use) do this

적용 가능한 링크 특성 정보는, 손실률(Loss rate, p), 링크 안정성, 링크 강건성, 전송 시간(Round trip time, RTT), 전송 시간 변동량(RTT variance), 전송 가능한 데이터량, 현재의 혼잡 윈도우(cwnd)와 수신 윈도우(rcv_win), 링크 사용 이력, 최대 세그먼트 사이즈(Max segment size, MSS) 중 적어도 하나를 포함할 수 있다.Applicable link characteristic information includes loss rate (p), link stability, link robustness, round trip time (RTT), transmission time variance (RTT variance), transmittable data amount, and current congestion window (cwnd). ), a reception window (rcv_win), a link usage history, and at least one of a maximum segment size (MSS).

본 개시의 실시예들에서, 초기 MPTCP 연결이 셋-업(setup)되고 일정 문턱시간 후, 각 인터페이스를 구성하는 서브플로우 개수만큼의 MPTCP 연결이 체크된다.In embodiments of the present disclosure, after an initial MPTCP connection is set-up and a predetermined threshold time, MPTCP connections as many as the number of subflows constituting each interface are checked.

서브플로우 개수가 하나를 초과하는 경우, DSS 매핑 억제는 전혀 수행되지 않으며, 모니터링을 위해 서브플로우들 각각에 대한 링크 특성들만 측정된다.If the number of subflows exceeds one, DSS mapping suppression is not performed at all, and only link characteristics for each of the subflows are measured for monitoring.

일정 듀레이션(시작부터 또는 여러 서브플로우들로부터 하나의 서브플로우로 연속 중인 경우)을 넘는 동안 하나의 서브플로우만 사용되는 경우, DSS 매핑에 대한 부분 억제 또는 완전 억제가 수행된다. DSS 매핑의 부분 억제 및 완전 억제에 대해서는 이하에서 보다 상세히 후술한다.When only one subflow is used for more than a certain duration (from the beginning or in the case of continuous from several subflows to one subflow), partial or complete suppression for DSS mapping is performed. Partial inhibition and complete inhibition of DSS mapping are described in more detail below.

각 인터페이스에 대해 수행되는 억제 정도는 그 인터페이스를 구성하는 서브플로우의 링크 특성, 예컨대, 현재 사용 중인 서브플로우의 손실률, 링크 안정성, 링크 강건성, 전송 시간, 전송 시간 변동량, 전송 가능한 데이터량, 현재의 혼잡 윈도우(cwnd)와 수신 윈도우(rcv_win), 링크 사용 이력, 최대 세그먼트 사이즈 중 적어도 어느 하나에 기반하여 결정될 수 있다.The degree of suppression performed for each interface is determined by the link characteristics of the subflows constituting the interface, for example, the loss rate of the subflow currently in use, link stability, link robustness, transmission time, transmission time fluctuation amount, transmittable data amount, current It may be determined based on at least one of a congestion window (cwnd), a reception window (rcv_win), a link usage history, and a maximum segment size.

도 7a 및 도 7b는 본 개시의 실시예에 따른 MPTCP 시스템에서의 데이터 전송 방법을 설명하는 도면이다.7A and 7B are diagrams for explaining a data transmission method in an MPTCP system according to an embodiment of the present disclosure.

본 실시예는 DSS 매핑을 위한 MPTCP 헤더들의 개수를 주기적으로 억제하는 방식으로, 이하 "부분 억제(partial suppression)"로 칭한다.This embodiment is a method of periodically suppressing the number of MPTCP headers for DSS mapping, hereinafter referred to as "partial suppression".

송신 장치가 일정 시간 동안만 단일 서브플로우 상태임을 인지한 경우, 손실률, 링크 안정성, 링크 강건성, 전송 시간, 전송 시간 변동량(편차), 전송 가능한 데이터량, 현재의 혼잡 윈도우와 수신 윈도우, 링크 사용 이력 및 최대 세그먼트 사이즈와 같은 링크 특성에 기반하여 해당 시간보다 긴 데이터 범위를 커버함으로써, DSS 매핑 횟수를 억제한다.When the transmitting device recognizes that it is in a single subflow state only for a certain period of time, loss rate, link stability, link robustness, transmission time, transmission time variation (deviation), transmittable data amount, current congestion window and reception window, and link usage history And by covering a data range longer than the corresponding time based on link characteristics such as the maximum segment size, the number of DSS mappings is suppressed.

이러한 방식은 단일 인터페이스만 설정된 경우, 또는 단일 인터페이스 외의 백업 인터페이스가 존재하는 경우, 또는 백업 인터페이스가 사용될 수 있을 만큼 충분히 낮은 트래픽을 가진 단일 인터페이스가 활성화된 경우 등에 모두 적용 가능하다.This method is applicable when only a single interface is configured, when a backup interface other than a single interface exists, or when a single interface with low enough traffic for the backup interface is active, etc.

도 7a는 부분 억제가 없는 정상 상태에서의 데이터 전송을 도시한 것으로, 도 7b에 나타난 부분 억제와의 비교를 위해 도시되었다.Fig. 7a shows data transmission in a steady state without partial suppression, and is shown for comparison with the partial suppression shown in Fig. 7b.

도 7a와 같이 부분 억제가 없는 정상 상태에서는, 일정 주기(이하 RTT로 가정함) 동안 1500 bytes의 M개 세그먼트들을 전송하는 경우, 각 세그먼트마다 MPTCP 헤더가 태깅된다. 그리고, 각 세그먼트에 부가되는 MPTCP 헤더들 내에서 DSS 매핑을 위한 데이터 시퀀스 번호(DSN)가 순차적으로 갱신된다.In the normal state without partial suppression as shown in FIG. 7A, when M segments of 1500 bytes are transmitted for a certain period (hereinafter, assumed to be RTT), an MPTCP header is tagged for each segment. In addition, the data sequence number (DSN) for DSS mapping in the MPTCP headers added to each segment is sequentially updated.

일정 주기(이하 RTT로 가정함) 동안 하나의 인터페이스만이 사용되는 경우 도 7b와 같이 부분 억제 동작이 수행될 수 있다(S1720).When only one interface is used for a certain period (hereinafter referred to as RTT), a partial suppression operation may be performed as shown in FIG. 7B ( S1720 ).

부분 억제 상태에서는, 일정 주기(RTT) 동안 1500 bytes의 M개 세그먼트들을 전송하는 경우, 단위 주기(이하 RTT*(N/M)로 가정함)마다 전송되는 N개의 세그먼트들 중, 단 1개의 세그먼트, 일 예로 최초의 세그먼트에만 MPTCP 헤더가 태깅된다(S1725). 한 단위 주기(RTT*(N/M)) 동안, N개의 세그먼트들 중 나머지 세그먼트들에는 MPTCP 헤더가 태깅되지 않는다(S1730). 여기서, N은 단위 주기(RTT*(N/M)) 동안 전송되는 세그먼트들의 개수이다.In the partial suppression state, when M segments of 1500 bytes are transmitted during a certain period (RTT), only one segment among N segments transmitted per unit period (hereinafter, assumed to be RTT*(N/M)) , for example, only the first segment is tagged with the MPTCP header (S1725). During one unit period (RTT*(N/M)), the MPTCP header is not tagged in the remaining segments among the N segments ( S1730 ). Here, N is the number of segments transmitted during a unit period (RTT*(N/M)).

송신 장치는 각각의 주기(RTT)에서, 현재 인터페이스를 구성하는 서브플로우의 링크 특성에 기반하여 하나의 MPTCP만이 태깅될 세그먼트들의 최적 개수 N을 산출한다. 최적 개수 N에 의해, MPTCP 헤더를 포함할 세그먼트들의 간격이 선택된다. MPTCP 헤더는 산출된 개수의 데이터 세그먼트들에 적용될 공통의 데이터 매핑 정보를 포함한다.In each period (RTT), the transmitting apparatus calculates the optimal number N of segments to be tagged with only one MPTCP based on the link characteristics of subflows constituting the current interface. By the optimal number N, the interval of segments to contain the MPTCP header is selected. The MPTCP header includes common data mapping information to be applied to the calculated number of data segments.

또한, 송신 장치는 각각의 주기(RTT)에서 선택된 간격의 N개 세그먼트들에 대한 DSS 매핑을 정의하는 MPTCP 헤더를 생성한다. N<1에 대해서는, 복수 주기(RTT)에 걸쳐 각 주기마다 MPTCP 헤더가 태깅된 하나의 세그먼트만이 전송된다.In addition, the transmitter generates an MPTCP header defining DSS mapping for N segments of a selected interval in each period (RTT). For N<1, only one segment tagged with the MPTCP header is transmitted for each period over multiple periods (RTT).

이와 같이, 부분 억제가 수행되면서 현재 인터페이스를 통해 데이터가 전송되는 중에, 백업 인터페이스가 추가로 사용되면, 그 응답으로 중복 데이터 스케줄러가 동작하여 현재 인터페이스 및 백업 인터페이스의 양 서브플로우들에 대해 이미 공유된 DSS 매핑 정보를 포함하는 MPTCP 헤더를 전송한다. 이 경우 DSS 매핑의 부분 억제 기능은 일정 기간 동안 사용 불가하게 된다. 새로운 인터페이스의 설정으로 서브플로우가 추가되는 경우에도, 부분 억제 기능은 사용 불가하게 되며, 일정한 기준시간 동안 단일 서브플로우 상태가 발생할 때 다시 사용 가능하게 된다.In this way, if the backup interface is additionally used while data is being transferred through the current interface while partial suppression is performed, the redundant data scheduler operates in response to the current interface and the already shared data for both subflows of the backup interface. An MPTCP header including DSS mapping information is transmitted. In this case, the partial suppression function of DSS mapping is disabled for a certain period of time. Even when a subflow is added by setting a new interface, the partial suppression function is disabled and becomes available again when a single subflow state occurs for a certain reference time.

부분 억제에서, 각 주기(RTT) 내 세그먼트들의 최적 개수 N은 아래의 사항들 중 적어도 하나에 따라 결정될 수 있다.In partial suppression, the optimal number N of segments in each period RTT may be determined according to at least one of the following.

- 링크 상에서의 손실률: 손실률이 높을수록 DSS 매핑들의 억제 정도는 더 적어진다. 즉 손실률이 클수록 DSS 매핑 횟수가 늘어나야 하므로, 공통의 매핑 정보를 사용하는 최적 개수 N이 적어지고, 손실률이 작을수록 DSS 매핑 횟수가 줄어 공통의 매핑 정보를 사용하는 최적 개수 N이 많아진다. DSS 매핑 횟수는 손실률 P의 제곱근에 정비례한다.- Loss rate on link: the higher the loss rate, the less suppression of DSS mappings. That is, since the number of DSS mappings should increase as the loss rate increases, the optimal number N using common mapping information decreases, and as the loss rate decreases, the number of DSS mappings decreases and the optimal number N using common mapping information increases. The number of DSS mappings is directly proportional to the square root of the loss factor P.

- 링크 안정성: 단일 서브플로우의 지속 시간. 단일 서브플로우 상태(새 서브플로우가 추가되지 않고 하나의 서브플로우가 지속됨)에 있는 듀레이션이 길수록, 단위 주기(RTT*(M/N) 내에 서브플로우를 통해 보내야 할 세그먼트들이 적고, 그에 따라 보다 적은 수의 DSS 매핑들이 요구된다. 즉, 링크 안정성 값이 클수록 DSS 매핑 횟수가 줄어 공통의 매핑 정보를 사용하는 최적 개수 N이 많아지고, 링크 안정성 값이 작을수록 DSS 매핑 횟수가 늘어 공통의 매핑 정보를 사용하는 최적 개수 N이 적어진다.- Link Stability: Duration of a single subflow. The longer the duration in a single subflow state (no new subflows are added and one subflow continues), the fewer segments to send through the subflow in a unit period (RTT*(M/N), and therefore fewer A number of DSS mappings are required, that is, as the link stability value increases, the number of DSS mappings decreases and the optimal number N that uses common mapping information increases, and as the link stability value decreases, the number of DSS mappings increases and provides common mapping information. The optimal number N to be used decreases.

- RTT 변동량(RTT variance): RTT 변동량이 높은 경우 데이터 세그먼트들의 손실/재정렬 정보가 지연되어 처리량이 저하될 수 있다. 그러므로, DSS 매핑들의 억제 정도는 더 적어지게 된다.- RTT variance: When the amount of RTT variance is high, loss/rearrangement information of data segments is delayed and throughput may decrease. Therefore, the suppression degree of DSS mappings becomes smaller.

- 링크 강건성(현재 서브플로우의 강건성, 가령 무선 서브플로우의 경우 신호 세기에 기반함) 또는 새로운 인터페이스 설정: 이들 정보는 최하위 계층인 IP 계층의 교차 계층 정보(cross layer information)를 주기적으로 모니터링 하여 알 수 있다.- Link robustness (based on the robustness of the current subflow, for example, signal strength in the case of a wireless subflow) or new interface establishment: These information are obtained by periodically monitoring the cross layer information of the lowest IP layer, the IP layer. can

- 전송 가능한 데이터량- Amount of data that can be transmitted

- 현재의 혼잡 윈도우 및 수신 윈도우- Current Congestion Window and Receive Window

또한, 하나의 MPTCP 헤더에 포함된 공통의 매핑 정보를 적용할 세그먼트들의 최적 개수 N은 0 < N <= cwnd(혼잡 윈도우)을 만족하는 세그먼트들의 한계사항 내에 있는 값으로 결정될 수 있다.In addition, the optimal number N of segments to which common mapping information included in one MPTCP header is applied may be determined as a value within the limit of segments satisfying 0 < N <= cwnd (congestion window).

각 단위 주기(RTT/(M/N))마다, 한 세그먼트, 일 예로 최초 세그먼트에 대해서만 DSS 매핑을 위한 MPTCP 헤더가 태깅되고, 나머지 세그먼트들은 MPTCP 헤더 없이 전송된다.For each unit period (RTT/(M/N)), the MPTCP header for DSS mapping is tagged only for one segment, for example, the first segment, and the remaining segments are transmitted without the MPTCP header.

일 예로, 공통의 매핑 정보를 적용할 세그먼트들의 최적 개수 N은 수학식 1에 의해 계산할 수 있다.As an example, the optimal number N of segments to which common mapping information is to be applied may be calculated by Equation (1).

[수학식 1][Equation 1]

N = (1/α)* min(min(congestion window(혼잡 윈도우), receive window(수신 윈도우)), 어플리케이션으로 전송 가능한 데이터량)N = (1/α)* min(min(congestion window, receive window), amount of data that can be sent to the application)

여기서, α는 데이터 손실률, 단일 링크 안정성, 교차 계층 정보에 좌우되는 팩터이다. α가 클수록, 보다 적은 세그먼트들이 DSS 매핑을 위한 MPTCP 헤더와 함께 태깅되며, 그 반대의 경우도 성립한다.Here, α is a factor dependent on data loss rate, single link stability, and cross-layer information. The larger α, the fewer segments are tagged with the MPTCP header for DSS mapping, and vice versa.

α=1인 경우에는, 부분 억제 기능이 적용되지 않고 매 세그먼트마다 MPTCP 헤더가 태깅된다.When α=1, the partial suppression function is not applied and the MPTCP header is tagged for every segment.

교차 계층 정보는 새 인터페이스의 출현(나타나거나 나타나려고 하는 경우)을 알리는, 최하위 계층인 IP 계층의 정보로서, 이 교차 계층 정보가 α를 증감시키는데 적극 활용될 수 있다.The cross-layer information is information of the IP layer, which is the lowest layer, which notifies the appearance (when a new interface appears or is about to appear), and this cross-layer information can be actively used to increase or decrease α.

새 인터페이스가 설정되면(새 인터페이스가 나타나거나 나타나려고 하는 경우), 또는 데이터 손실률이 높거나 백업 인터페이스가 최근 사용된 경우, α는 증가한다. 왜냐하면, 신규 인터페이스의 서브플로우가 추가될 가능성이 높아지거나, DSS 매핑 정보의 부족으로 인해 데이터 손실률이 높아지거나, 현재 인터페이스 외에 백업 인터페이스가 추가로 사용되어 중복 데이터를 파생하기 때문이다. 따라서, 이 경우, α의 증가로 N 값을 줄임으로써 DSS 매핑을 위한 MPTCP 헤더를 더 자주 전송해야 할 필요성이 있다.α increases when a new interface is established (a new interface appears or is about to appear), or when the data loss rate is high or the backup interface has been recently used. This is because the possibility that the subflow of the new interface will be added increases, the data loss rate increases due to the lack of DSS mapping information, or the backup interface is additionally used in addition to the current interface to derive redundant data. Accordingly, in this case, there is a need to more frequently transmit the MPTCP header for DSS mapping by reducing the value of N with an increase in α.

도 8은 도 7b의 데이터 전송 방법을 보다 세부적으로 설명하는 도면이다.FIG. 8 is a diagram for explaining the data transmission method of FIG. 7B in more detail.

각각의 주기(이하, RTT로 가정함)에서, 송신 장치는 서브플로우들의 사용 여부 및 서브플로우들의 링크 특성 정보를 모니터링하여 해당 정보를 획득한다(S1810). 서브플로우들의 사용 여부 및 링크 특성 정보는 교차 계층 정보로부터 획득할 수 있다.In each period (hereinafter, assumed to be RTT), the transmitting apparatus monitors whether subflows are used and link characteristic information of the subflows to obtain the corresponding information (S1810). Whether subflows are used and link characteristic information may be obtained from cross-layer information.

그리고, 상기한 S1810 단계에서 획득한 서브플로우들의 사용 여부에 기반하여 기준시간 동안 하나의 서브플로우만이 사용 중인지 여부를 판단한다(S1820).Then, it is determined whether only one subflow is being used for a reference time based on whether the subflows obtained in step S1810 are used (S1820).

상기한 S1820 단계의 판단 결과, 기준시간 동안 하나의 서브플로우만 사용되는 경우라면, 상기한 S1810 단계에서 획득된 해당 서브플로우의 링크 특성 정보를 기초로 소정 개수의 데이터 세그먼트들에 MPTCP 헤더를 선택적으로 포함시키는 헤더 최적화를 수행한다(S1850 내지 S1880).As a result of the determination in step S1820, if only one subflow is used during the reference time, the MPTCP header is selectively added to a predetermined number of data segments based on the link characteristic information of the corresponding subflow obtained in step S1810. Header optimization to include is performed (S1850 to S1880).

이때, 사용되는 서브플로우의 링크 특성 정보를 기초로 MPTCP 헤더를 선택적으로 포함시키는 MPTCP 헤더 최적화가 가능한지 여부를 먼저 판단할 수 있다(S1840). 이 서브플로우의 링크 특성 정보를 기초로 MPTCP 헤더 최적화가 가능하다고 판단되면, 후술하는 헤더 최적화(부분 억제) 동작을 수행하게 된다.In this case, it may be first determined whether the MPTCP header optimization for selectively including the MPTCP header is possible based on the link characteristic information of the used subflow ( S1840 ). If it is determined that MPTCP header optimization is possible based on the link characteristic information of this subflow, a header optimization (partial suppression) operation described later is performed.

부분 억제 방식의 헤더 최적화는 S1850 내지 S1880 단계로 세분화될 수 있다.The header optimization of the partial suppression method may be subdivided into steps S1850 to S1880.

S1850 단계에서, 송신 장치는 사용 중인 서브플로우의 링크 특성 정보를 기초로 하나의 MPTCP 헤더를 태깅할 세그먼트들의 최적 개수 N을 산출한다.In step S1850, the transmitting device calculates the optimal number N of segments to be tagged with one MPTCP header based on the link characteristic information of the subflow being used.

그리고, 산출된 개수인 N개의 세그먼트들을 재조립에 필요한 공통의 DSS 매핑 정보(예컨대, 데이터 시퀀스 넘버, 서브플로우 시퀀스 넘버 및 데이터 레벨 길이 중 적어도 하나 이상)를 포함하는 MPTCP 헤더를 생성한다(S1860).Then, an MPTCP header including common DSS mapping information (eg, at least one of a data sequence number, a subflow sequence number, and a data level length) required for reassembling the calculated number of N segments is generated (S1860) .

상기한 S1860 단계에서 생성된 MPTCP 헤더는 N개의 세그먼트들 중 하나, 일 예로 최초로 전송되는 세그먼트에 포함되어 전송될 수 있다(S1870).The MPTCP header generated in step S1860 may be transmitted while being included in one of the N segments, for example, the first transmitted segment (S1870).

매 단위 주기(이하 RTT*(M/N)로 가정함)마다 하나의 MPTCP 헤더가 태깅된 N개의 세그먼트들을 순차적으로 전송하는 데이터 전송 동작이 수행된다(S1870, S1880).A data transmission operation of sequentially transmitting N segments tagged with one MPTCP header is performed every unit period (hereinafter, assumed to be RTT*(M/N)) (S1870, S1880).

여기서, 단위 주기(RTT*(M/N)) 동안 전송되는 N개의 세그먼트들에 대해 공통의 DSS 매핑 정보를 포함하는 하나의 MPTCP 헤더가 태깅된다. 예컨대, 단위 주기(RTT*(M/N)) 동안 전송될 N개의 세그먼트들 중 하나의 세그먼트(일 예로, 최초 세그먼트)에만 MPTCP 헤더가 태깅되고, 나머지 세그먼트들은 MPTCP 헤더 없이 전송된다.Here, one MPTCP header including common DSS mapping information for N segments transmitted during a unit period (RTT*(M/N)) is tagged. For example, only one segment (eg, the first segment) among N segments to be transmitted during the unit period (RTT*(M/N)) is tagged with the MPTCP header, and the remaining segments are transmitted without the MPTCP header.

즉, 송신 장치는 단위 주기(RTT*(M/N)) 동안 사용 중인 서브플로우 상으로 전송되는 모든 세그먼트들에 대한 DSS 매핑 정보를 생성하여 한 세그먼트와 함께 전송하는 한편, 단위 주기(RTT*(M/N)) 내 나머지 세그먼트들에는 모두 MPTCP 헤더들을 태깅하지 않음으로써 오버헤드를 줄일 수 있다.That is, the transmitting device generates DSS mapping information for all segments transmitted on a subflow in use during a unit period (RTT*(M/N)) and transmits it together with one segment, while transmitting it along with one segment. M/N)) in the remaining segments, all MPTCP headers are not tagged, thereby reducing overhead.

상기한 S1820 단계의 판단 결과 복수의 서브플로우들이 사용되는 경우, 또는 상기한 S1840 단계의 판단 결과 헤더 최적화가 불가능하다고 판단되는 경우에는, 헤더 최적화 없이 하나의 데이터 스트림으로부터 분할된 모든 세그먼트들 각각에 대하여 MPTCP 헤더들을 포함시켜 데이터를 전송하게 된다(S1830).When it is determined in step S1820 that a plurality of subflows are used, or when it is determined that header optimization is impossible as a result of determination in step S1840, for each of all segments divided from one data stream without header optimization Data is transmitted by including MPTCP headers (S1830).

이와 같이, 송신 장치는 각각의 주기(RTT)에서 공통의 DSS 매핑 정보를 사용할 세그먼트들의 최적 개수를 산출하고, DSS 매핑을 위한 MPTCP 헤더 개수를 억제할 수 있다. 이때, DSS 매핑 간격이 너무 짧으면 MPTCP 헤더 개수가 많아져 오버헤드가 야기되고, DSS 매핑 간격이 너무 길면 새 인터페이스 출현(추가)에 대해 낮은 응답성을 보이므로, 오버헤드 대 낮은 응답성 간에 균형이 유지되어야 한다.In this way, the transmitting apparatus may calculate the optimal number of segments to use common DSS mapping information in each period (RTT), and may suppress the number of MPTCP headers for DSS mapping. At this time, if the DSS mapping interval is too short, the number of MPTCP headers increases and overhead is caused, and if the DSS mapping interval is too long, it shows low responsiveness to the appearance (addition) of a new interface, so there is a balance between overhead versus low responsiveness. should be maintained

오버헤드 대 낮은 응답성 간에 균형을 유지하기 위해, 헤더 최적화 가능 여부를 판단하는 S1840 단계 또는 세그먼트들의 개수 N을 결정하는 S1850 단계에서, 현재 사용 중인 서브플로우의 링크 특성 정보가 기준이 될 수 있다.In order to maintain a balance between overhead versus low responsiveness, in step S1840 of determining whether header optimization is possible or step S1850 of determining the number of segments N, link characteristic information of a currently used subflow may be used as a reference.

적용 가능한 링크 특성 정보는, 손실률, 링크 안정성, 링크 강건성, 전송 시간, 전송 시간 변동량, 전송 가능한 데이터량, 현재의 혼잡 윈도우와 수신 윈도우, 링크 사용 이력, 최대 세그먼트 사이즈 중 적어도 하나를 포함할 수 있다.The applicable link characteristic information may include at least one of loss rate, link stability, link robustness, transmission time, transmission time variation, transmittable data amount, current congestion window and reception window, link usage history, and maximum segment size. .

일 예로, 링크 특성 정보는 손실률을 포함할 수 있다. 이 경우 손실률이 클수록 세그먼트들의 개수가 적어지고, 손실률이 작을수록 세그먼트들의 개수가 많아진다. As an example, the link characteristic information may include a loss rate. In this case, as the loss rate increases, the number of segments decreases, and as the loss rate decreases, the number of segments increases.

다른 예로, 링크 특성 정보는 링크 안정성을 포함할 수 있다. 이 경우 링크 안정성 값이 클수록 세그먼트들의 개수가 많아지고, 링크 안정성 값이 작을수록 세그먼트들의 개수가 적어진다.As another example, the link characteristic information may include link stability. In this case, as the link stability value increases, the number of segments increases, and as the link stability value decreases, the number of segments decreases.

혹은, 상기한 S1840 단계에서, 데이터 손실률이 임계값보다 높거나 링크 안정성이 임계값보다 낮은 경우에, 헤더 최적화로 인해 데이터 손실이나 통신 장애 등이 발생할 수 있음을 고려하여, 헤더 최적화가 불가능한 것으로 판단할 수 있다.Alternatively, in step S1840, when the data loss rate is higher than the threshold value or link stability is lower than the threshold value, it is determined that header optimization is impossible, considering that data loss or communication failure may occur due to header optimization. can do.

또한, 도시하지는 않았으나, 송신 장치는 새 인터페이스의 설정 또는 백업 인터페이스의 활성화로 인한 서브플로우의 추가나 변경을 알려주는 IP 계층의 교차 계층 정보를 모니터링하고 있다가, 새 인터페이스가 설정되거나 백업 인터페이스가 활성화되는 경우, 교차 계층 정보를 통해 이를 감지하여 헤더 최적화를 위한 부분 억제를 실행하지 않거나 실행 중인 부분 억제 동작을 종료할 수 있다.In addition, although not shown, the transmitting device monitors the cross-layer information of the IP layer that notifies the addition or change of a subflow due to the setting of a new interface or activation of the backup interface, and when a new interface is set or the backup interface is activated In this case, by detecting this through cross-layer information, partial suppression for header optimization may not be executed or the partial suppression operation being executed may be terminated.

수신 장치는 수신된 세그먼트에 MPTCP 헤더가 포함되어 있는지 여부를 판단하고, 만일 포함되어 있지 않으면 이전에 수신한 MPTCP 헤더를 이용하여 상기 세그먼트를 해석한다.The receiving device determines whether the MPTCP header is included in the received segment, and if not, interprets the segment using the previously received MPTCP header.

도 9a 및 도 9b는 본 개시의 실시예에 따른 MPTCP 시스템에서의 데이터 전송 방법을 설명하는 도면이다.9A and 9B are diagrams for explaining a data transmission method in an MPTCP system according to an embodiment of the present disclosure.

본 실시예는 하나의 인터페이스만이 활성화되는 단일 서브플로우 상태가 기준시간 이상 지속되는 경우, 새 인터페이스가 나타날 때까지, 모드 자체를 복수의 서브플로우들을 지원하는 MPTCP 모드에서 하나의 서브플로우를 지원하는 TCP 모드(단일 TCP와 동일)로 변경하여 성능 이득을 향상시키는 방식으로, 이하 "완전 억제(complete suppression)"로 칭한다.In this embodiment, when a single subflow state in which only one interface is activated lasts longer than a reference time, the mode itself supports one subflow in the MPTCP mode that supports a plurality of subflows until a new interface appears. A method of improving the performance gain by changing to the TCP mode (same as single TCP), hereinafter referred to as "complete suppression".

TCP 모드로 변경되면, 하나의 인터페이스만 지원 가능하므로, TCP 모드로 변경되기 전의 MPTCP 모드에서 백업 인터페이스가 존재하는 경우에는, 본 실시예가 적용되지 않는다.When the TCP mode is changed, only one interface can be supported, so if a backup interface exists in the MPTCP mode before the change to the TCP mode, this embodiment does not apply.

완전 억제는 후술하는 무한 매핑 MPTCP 헤더를 이용하여 단일 서브플로우(백업 서브플로우 없음)를 MPTCP 모드에서 TCP 모드로 이동하는 동작을 수반한다. 이때 MPTCP 모드에서 사용하던 서브플로우의 모든 MPTCP 연결에 대한 설정 정보가 저장될 수 있으며, TCP 모드에서 MPTCP 모드로 복귀할 때 저장된 설정 정보에 기반하여 처리량 저하 없이 MPTPC 연결을 신속히, 효율적으로 복원될 수 있다.Complete suppression involves moving a single subflow (no backup subflow) from the MPTCP mode to the TCP mode using an infinite mapping MPTCP header, which will be described later. At this time, configuration information for all MPTCP connections of the subflow used in MPTCP mode can be saved, and when returning from TCP mode to MPTCP mode, based on the saved configuration information, MPTPC connections can be quickly and efficiently restored without degradation of throughput. have.

무한 매핑 MPTCP 헤더는 일정 주기(예컨대, multiple RTT durations) 이상에 대해 데이터 시퀀스 넘버들과 서브플로우 시퀀스의 매핑을 정의하기 때문에, TCP 모드로의 전환 전에 무한 매핑 MPTCP 헤더를 미리 전송하면 이를 반복적으로 적용해 데이터 세그먼트들을 재조립할 수 있으며, TCP 모드에서 어떤 MPTCP 헤더도 전송될 필요가 없다.Since the infinite mapping MPTCP header defines the mapping of data sequence numbers and subflow sequences for a certain period (eg, multiple RTT durations) or more, if the infinite mapping MPTCP header is transmitted in advance before switching to the TCP mode, it is repeatedly applied. data segments can be reassembled by the solution, and no MPTCP header needs to be transmitted in TCP mode

또한, 새 인터페이스의 설정을 알리는 이벤트에 대한 모니터링이 주기적으로 수행된다. 일 예로, 송신 장치는 교차 계층 정보를 지속적으로 모니터링하여 새 인터페이스의 설정(추가)을 감지할 수 있다. 해당 이벤트가 발생하는 경우, 기 저장된 MPTCP 연결 설정 정보에 기반하여 TCP 모드로부터 MPTCP 모드로의 전환이 이루어질 수 있다.In addition, monitoring for an event notifying the setting of a new interface is performed periodically. As an example, the transmitting device may detect the setting (addition) of a new interface by continuously monitoring the cross-layer information. When a corresponding event occurs, the conversion from the TCP mode to the MPTCP mode may be performed based on pre-stored MPTCP connection setting information.

도 9a는 완전 억제가 없는 정상 상태에서의 데이터 전송을 도시한 것으로, 도 9b에 나타난 부분 억제와의 비교를 위해 도시되었다.Fig. 9a shows data transmission in the steady state without full suppression, and is shown for comparison with the partial suppression shown in Fig. 9b.

일정 주기(예컨대, RTT) 동안, 제1 인터페이스(Iface1)가 활성화되어 1500 bytes의 M개 세그먼트들을 전송하는 경우, 도 9a와 같이 완전 억제가 없는 정상 상태에서는, 각 세그먼트마다 MPTCP 헤더가 태깅된다(S1910). 제2 인터페이스(Iface2)가 설정되면(S1920), 마찬가지로 제2 인터페이스(Iface2)의 세그먼트들 각각에 MPTCP 헤더가 태깅되어 전송된다. 각 세그먼트에 부가되는 MPTCP 헤더들 내에서 DSS 매핑을 위한 데이터 시퀀스 번호(DSN)가 순차적으로 갱신된다.During a certain period (eg, RTT), when the first interface Iface1 is activated and transmits M segments of 1500 bytes, in a normal state without complete suppression as shown in FIG. 9A, an MPTCP header is tagged for each segment ( S1910). When the second interface Iface2 is set ( S1920 ), the MPTCP header is also tagged and transmitted to each segment of the second interface Iface2 . A data sequence number (DSN) for DSS mapping is sequentially updated in MPTCP headers added to each segment.

여러 인터페이스들이 활성화된 경우, 송수신 장치는 활성화된 인터페이스들의 모든 서브플로우들에 대해 도 9a에 구성된 바와 같이 데이터를 교환한다.When multiple interfaces are activated, the transceiver exchanges data as configured in FIG. 9A for all subflows of the activated interfaces.

만약, 기준시간 동안 하나의 인터페이스만이 존재하는 경우, 예컨대 하나의 인터페이스(Iface1)만 활성화된 상태가 최소 기준시간 이상 지속되는 경우라면, 도 9b와 같이 현재의 인터페이스(Iface1)에서 사용 중인 서브플로우에 대한 무한 매핑 MPTCP 헤더가 먼저 전송(S1955)된 후 TCP 모드로 전환된다(S1960).If only one interface exists during the reference time, for example, if the activated state of only one interface Iface1 continues for more than the minimum reference time, the subflow currently being used in the interface Iface1 as shown in FIG. 9B . An infinite mapping MPTCP header for ? is first transmitted (S1955) and then switched to the TCP mode (S1960).

무한 매핑 MPTCP 헤더에 의한 DSS 매핑은 사용 중인 현재의 인터페이스 이외의 다른 인터페이스(들)이 설정되면(일 예로, 교차 계층 정보에 의한 이벤트 발생 시), 중단된다.Infinite mapping DSS mapping by the MPTCP header is stopped when an interface(s) other than the current interface being used is set (eg, when an event is generated by cross-layer information).

TCP 모드에서는 DSS 매핑을 위한 MPTCP 헤더의 사용 없이 현재의 단일 인터페이스(Iface1) 상에서 데이터 교환이 이루어진다(S1960). 상기한 S1960 단계의 데이터 교환 중 DSS 매핑 정보를 포함하는 MPTCP 헤더들이 전혀 전송되지 않으므로, 오버헤드가 감소되는 효과가 있다.In the TCP mode, data exchange is performed on the current single interface Iface1 without using the MPTCP header for DSS mapping (S1960). Since MPTCP headers including DSS mapping information are not transmitted at all during the data exchange in step S1960, overhead is reduced.

이후, 새로운 인터페이스, 즉 제2 인터페이스(Iface2)가 설정되면, 사용 중이던 제1 인터페이스(Iface1)의 제1 서브플로우에 대해 MP_JOIN 기능을 이용하여 제1 인터페이스(Iface1) 상에서 제2 서브플로우를 설정하고(S1970), 무한 매핑 MPTCP 헤더가 교환되었던 제1 서브플로우를 연결 해제한다(S1975). 이는 제1 인터페이스(Iface1)뿐 아니라 제2 인터페이스(Iface2)에서 데이터 교환의 연속성을 가져올 것이다. 그리고, 앞서 무한 매핑 MPTCP 헤더를 수신하였던 세션 상에 MP_JOIN을 허가하기 위해 양 종단의 송수신 장치들이 진화(enhanced)된다.Thereafter, when a new interface, that is, the second interface Iface2 is set, a second subflow is set on the first interface Iface1 using the MP_JOIN function for the first subflow of the first interface Iface1 being used, and (S1970), the first subflow in which the infinite mapping MPTCP header was exchanged is disconnected (S1975). This will bring continuity of data exchange in the first interface Iface1 as well as in the second interface Iface2. And, in order to allow MP_JOIN on the session in which the infinite mapping MPTCP header was previously received, the transceivers of both ends are enhanced (enhanced).

이때, 느린 시작(startup)으로 인한 성능 저하를 줄이기 위해 중단된 제1 서브플로우의 혼잡 윈도우(cwnd), 슬로우 스타트 경계값(Slow-Start Threshold, ssthresh)과 같은 TCP 관련 파라미터들을 제2 서브플로우에 적용할 수 있다(S1970).At this time, in order to reduce performance degradation due to slow startup, TCP-related parameters such as the congestion window cwnd of the stopped first subflow and the slow-start threshold value (Slow-Start Threshold, ssthresh) are added to the second subflow. It can be applied (S1970).

그리고, MP_JOIN 기능을 이용하여 제2 인터페이스(Iface2) 상에서 제3의 서브플로우를 설정하고(S1980), MPTCP 모드로 복귀하여 양 인터페이스(Iface1, Iface2) 상에서 DSS 매핑 정보들과 함께 데이터를 교환한다(S1985).Then, using the MP_JOIN function, a third subflow is set on the second interface (Iface2) (S1980), returns to the MPTCP mode, and data is exchanged with DSS mapping information on both interfaces (Iface1, Iface2) ( S1985).

이후, 송신 장치는 무한 매핑 MPTCP 헤더가 교환되었던 제1 서브플로우에서 마지막으로 성공적 전송이 확인된 데이터에 기반하여 현재의 DSS 매핑 정보를 정의하는 MPTCP 헤더를 생성한다. 즉, 송신 장치는 성공적 전송이 확인된 데이터에 기반하여 새로운 DSS 매핑 정보를 생성하고, 이 DSS 매핑 정보를 이용하여, 제1, 제2 인터페이스들(Iface1, Iface2) 상에서 새로 설정된 서브플로우들(즉 제2, 제3 서브플로우들)을 통한 데이터 교환을 개시한다(S1985). 이후, 양 인터페이스(Iface1, Iface2) 상에서 DSS 매핑 정보들이 포함된 데이터 세그먼트들이 계속하여 순차 전송된다.Thereafter, the transmitting device generates an MPTCP header defining current DSS mapping information based on the last successful transmission confirmed data in the first subflow in which the infinite mapping MPTCP header was exchanged. That is, the transmitting device generates new DSS mapping information based on the data for which successful transmission is confirmed, and uses the DSS mapping information to set new subflows on the first and second interfaces Iface1 and Iface2 (that is, data exchange through the second and third subflows) is started (S1985). Thereafter, data segments including DSS mapping information are continuously transmitted sequentially on both interfaces Iface1 and Iface2.

도 10a 및 도 10b는 도 9b의 데이터 전송 방법을 보다 세부적으로 설명하는 도면이다.10A and 10B are diagrams for explaining the data transmission method of FIG. 9B in more detail.

각각의 주기(예컨대, RTT)에서, 송신 장치는 기본적으로 복수의 서브플로우들을 지원하는 MPTCP 모드로 동작하여 데이터 교환을 수행한다.In each period (eg, RTT), the transmitting apparatus basically operates in the MPTCP mode supporting a plurality of subflows to perform data exchange.

MPTCP 모드에서의 데이터 교환 중에, 송신 장치는 서브플로우들의 사용 여부와 서브플로우들의 링크 특성 정보를 모니터링하여 해당 정보를 획득한다(S2100). 일 예로, 서브플로우들의 사용 여부 및 링크 특성 정보는 교차 계층 정보를 주기적으로 체크하여 획득할 수 있다.During data exchange in the MPTCP mode, the transmitting apparatus monitors whether subflows are used and link characteristic information of the subflows to obtain the corresponding information (S2100). As an example, whether subflows are used and link characteristic information may be obtained by periodically checking cross-layer information.

그리고, 상기한 S2100 단계에서 획득한 서브플로우들의 사용 여부에 대한 정보를 기초로 기준시간 동안 단일 서브플로우만이 사용되는지 여부를 판단하고(S2110), 판단 결과 기준시간 동안 단일 서브플로우만이 사용되는 경우, 단일 서브플로우를 지원하는 TCP 모드로의 전환을 결정한다(S2120).And, it is determined whether only a single subflow is used for a reference time based on the information on whether the subflows are used or not obtained in step S2100 ( S2110 ), and as a result of the determination, only a single subflow is used for the reference time In this case, it is determined to switch to the TCP mode supporting a single subflow (S2120).

MPTCP 모드에서는 하나의 데이터 스트림으로부터 분할된 세그먼트들의 일부 또는 전체에 MPTCP 헤더들이 포함되어 전송된다. 반면, TCP 모드에서는 데이터로부터 분할된 세그먼트들이 MPTCP 헤더 없이 전송된다(일반적인 TCP 연결과 동일).In the MPTCP mode, MPTCP headers are included in some or all of the segments divided from one data stream and transmitted. On the other hand, in TCP mode, segments divided from data are transmitted without an MPTCP header (same as a normal TCP connection).

현재 하나의 서브플로우만이 사용 중이고, 이러한 단일 서브플로우 상태가 기준시간 이상 지속된 경우, MPTCP 헤더 없이 데이터 교환을 수행하는 TCP 모드로의 전환이 결정되는 것이다.Currently, only one subflow is being used, and when this single subflow state continues for more than a reference time, the transition to the TCP mode for performing data exchange without an MPTCP header is determined.

상기한 S2120 단계에서 TCP 모드로의 전환이 결정되면, 송신 장치는 현재 인터페이스에서 사용 중인 제1 서브플로우에 대한 제1 MPTCP 헤더를 생성하여 미리 전송할 수 있다(S2140). 제1 MPTCP 헤더는 TCP 모드에서 현재 사용 중인 제1 서브플로우를 통해 전송될 데이터 세그먼트들의 재조립을 위한 DSS 매핑 정보를 포함한다.When it is determined in step S2120 to switch to the TCP mode, the transmitting apparatus may generate and transmit a first MPTCP header for the first subflow currently being used in the interface in advance (S2140). The first MPTCP header includes DSS mapping information for reassembly of data segments to be transmitted through the first subflow currently being used in the TCP mode.

구체적으로, 제1 MPTCP 헤더는 DSS 매핑 정보 중 데이터 레벨 길이의 값을 기 설정된 충분히 큰 값으로 할당한 무한 매핑 MPTCP 헤더일 수 있다. 데이터 레벨 길이의 값을 충분히 크게 주면, 일정 시간(예컨대, multiple RTT durations) 동안 기 전송된 DSS 매핑 정보만으로 서브플로우 시퀀스 넘버들과 데이터 시퀀스 넘버들 간의 무한(반복) 매핑이 가능하다.Specifically, the first MPTCP header may be an infinite mapping MPTCP header in which a data level length value among DSS mapping information is allocated to a preset sufficiently large value. If the value of the data level length is sufficiently large, infinite (repeated) mapping between subflow sequence numbers and data sequence numbers is possible only with DSS mapping information previously transmitted for a certain period of time (eg, multiple RTT durations).

이후, 송신 장치는 복수의 서브플로우들을 지원하는 MPTCP 모드로부터 하나의 서브플로우를 지원하는 TCP 모드로 전환하여(S2150), TCP 모드에서 데이터를 전송하게 된다(S2160). TCP 모드에서 송신 장치는 기 전송된 DSS 매핑 정보에 따른 서브플로우 시퀀스 넘버들과 데이터 시퀀스 넘버들 간의 매핑을 계속하여 수행할 수 있다.Thereafter, the transmitter switches from the MPTCP mode supporting a plurality of subflows to the TCP mode supporting one subflow (S2150), and transmits data in the TCP mode (S2160). In the TCP mode, the transmitting apparatus may continuously perform mapping between subflow sequence numbers and data sequence numbers according to the previously transmitted DSS mapping information.

한편, 송신 장치는 TCP 모드에서 현재 서브플로우의 인터페이스가 아닌 새로운 인터페이스가 설정되는지 여부를 감지한다(S2200). 이때, 송신 장치는 IP 계층의 교차 계층 정보를 지속적으로 모니터링하여, TCP 모드에서 현재 서브플로우의 인터페이스가 아닌 새 인터페이스가 설정되는 경우 교차 계층 정보를 통해 이를 감지할 수 있다.Meanwhile, the transmitter detects whether a new interface other than the interface of the current subflow is set in the TCP mode (S2200). In this case, the transmitting device continuously monitors the cross-layer information of the IP layer, and when a new interface other than the current subflow interface is set in the TCP mode, it can be detected through the cross-layer information.

새 인터페이스가 설정되는 경우, 즉 제2 인터페이스가 나타나거나 나타나려고 하는 경우에는, 서브플로우의 추가나 변경 등이 예상되므로, 복수 서브플로우들을 지원할 수 있는 MPTCP 모드로 다시 복귀하여 데이터 교환을 수행한다(S2210 내지 2260).When a new interface is set, that is, when a second interface appears or is about to appear, addition or change of a subflow is expected. Therefore, data exchange is performed by returning to the MPTCP mode that can support multiple subflows (S2210). to 2260).

TCP 모드에서 MPTCP 모드로의 전환 단계는 S2210 내지 2260으로 세분화될 수 있다.The step of switching from the TCP mode to the MPTCP mode may be subdivided into S2210 to 2260.

상기한 2200 단계의 모니터링 결과, TCP 모드에서 제2 인터페이스가 설정되는 경우, 송신 장치는 먼저 현재 사용 중인 제1 인터페이스에 제2 서브플로우를 설정하고, 사용 중인 제1 서브플로우의 연결을 해제한다(S2210). 이때, 시작 성능 저하를 피하기 위해, 연결 해제할 제1 서브플로우의 링크 특성 정보, 예컨대, 혼잡 윈도우(cwnd), 슬로우 스타트 경계값(Slow-Start Threshold, ssthresh) 등의 TCP 관련 파라미터들을 적용하여 제2 서브플로우를 설정할 수 있다.As a result of the monitoring in step 2200, when the second interface is set in the TCP mode, the transmitter first sets the second subflow to the first interface currently being used, and then disconnects the first subflow in use ( S2210). At this time, in order to avoid starting performance degradation, link characteristic information of the first subflow to be disconnected, for example, TCP related parameters such as congestion window (cwnd) and slow start threshold (Slow-Start Threshold, ssthresh) are applied. You can set 2 subflows.

그리고, 제2 인터페이스 상에 제3 서브플로우를 새로 설정한다(S2220).Then, a third subflow is newly set on the second interface ( S2220 ).

이어서, 송신 장치는 데이터 교환의 연속성을 위해, 제1 서브플로우를 통해 마지막으로 성공적 전송이 확인된 데이터에 기반하여 현재 데이터의 분할 및 재조립을 위한 제2 MPTCP 헤더를 생성한다. 즉, 제2 MPTCP 헤더는, 사용이 중단된 제1 서브플로우 상에서 데이터가 성공적으로 교환된 지점과 연속되는 새로운 DSS 매핑 정보를 포함한다(S2230).Then, for continuity of data exchange, the transmitting device generates a second MPTCP header for segmentation and reassembly of current data based on the last successful transmission confirmed data through the first subflow. That is, the second MPTCP header includes new DSS mapping information that is continuous with the point at which data is successfully exchanged on the first subflow that is stopped in use ( S2230 ).

그리고, 송신 장치는 제1 인터페이스의 제2 서브플로우 및 제2 인터페이스의 제3 서브플로우 양측을 통해 제2 MPTCP 헤더가 포함된 데이터 세그먼트들을 각각 전송한다(S2240). 이후 각 서브플로우 상에서는 계속하여 자신의 MPTCP 헤더가 포함된 데이터 세그먼트들이 전송될 수 있다.Then, the transmitting device transmits the data segments including the second MPTCP header through both the second subflow of the first interface and the third subflow of the second interface, respectively (S2240). Thereafter, data segments including its own MPTCP header may be continuously transmitted on each subflow.

또한, 상기한 S2120 단계에서 TCP 모드로의 전환이 결정된 경우, 송신 장치는 MPTCP 연결에 대한 설정 정보를 저장할 수 있다(S2130). MPTCP 연결에 대한 설정 정보를 유지하면(S2130), TCP 모드로부터 MPTCP 모드로 복귀할 때, 저장 중인 설정 정보를 기초로 MPTCP 연결(제2 및 제3 서브플로우들)을 효율적으로, 신속히 복원할 수 있다(S2250, S2260). 송신 장치는 MPTCP 연결에 대한 설정 정보를 자체 저장하여 사용할 수도 있고, 혹은 통신 연결된 수신 장치로 전송하여 모드 전환 시 사용하게끔 유도할 수도 있다.In addition, when it is determined to switch to the TCP mode in step S2120, the transmitting device may store configuration information for the MPTCP connection (S2130). If the configuration information for the MPTCP connection is maintained (S2130), when returning from the TCP mode to the MPTCP mode, the MPTCP connection (second and third subflows) can be efficiently and quickly restored based on the saved configuration information. There is (S2250, S2260). The transmitting device may store and use the setting information for the MPTCP connection by itself, or may transmit it to the communication-connected receiving device and induce it to be used when changing the mode.

도 11은 본 개시의 실시예들에 따른 장치 구성을 설명하는 도면이다.11 is a view for explaining the configuration of an apparatus according to embodiments of the present disclosure.

본 개시의 실시예들에 따른 장치는 MPTCP를 지원하는 서버나 클라이언트, 송신 장치나 수신 장치, 서버와 클라인트 간 통신 연결을 매개하는 프록시 장치, 혹은 이들의 선택적인 조합이나 일부 조합 등 다양한 형태로 구현될 수 있다.The device according to the embodiments of the present disclosure may be provided in various forms, such as a server or client supporting MPTCP, a transmitting device or a receiving device, a proxy device mediating a communication connection between a server and a client, or a selective or partial combination thereof. can be implemented.

도 11을 참조하면, 본 개시의 실시예들에 따른 장치는 모니터링부(2300), 제어부(2310) 및 송수신부(2320)를 포함한다.Referring to FIG. 11 , an apparatus according to embodiments of the present disclosure includes a monitoring unit 2300 , a control unit 2310 , and a transceiver 2320 .

본 개시의 장치가 상기한 도 3의 실시예에 따라 MPTCP의 서브플로우 개수를 조정하는 프록시 장치인 경우, 모니터링부(2300)는 데이터 손실률을 모니터링하여 데이터 손실률을 획득한다. 상술한 것처럼, 데이터 손실률은 클라이언트가 송신하는 TCP ACK 정보에 기초하여 획득할 수 있다.When the device of the present disclosure is a proxy device that adjusts the number of subflows of MPTCP according to the embodiment of FIG. 3 , the monitoring unit 2300 monitors the data loss rate to acquire the data loss rate. As described above, the data loss rate can be obtained based on the TCP ACK information transmitted by the client.

또한, 모니터링부(2300)는 프록시에서 처리할 데이터의 양을 모니터링한다. 상술할 것처럼, 처리할 데이터의 양은 MPTCP 내의 송신 큐(Tx Que)에 저장되어 있는 데이터의 양으로부터 획득할 수 있다.Also, the monitoring unit 2300 monitors the amount of data to be processed by the proxy. As described above, the amount of data to be processed can be obtained from the amount of data stored in the transmission queue (Tx Que) in the MPTCP.

제어부(2310)는 상기 획득한 데이터 손실률과 상기 처리할 데이터의 양에 기초하여 도 3에서 상술된 바에 따라 MPTCP계층의 서브플로우 개수를 조정한다. 즉, 제어부(2310)는 데이터의 손실률이 기준 값(x) 이상이고, 처리할 데이터의 양이 기준 값(y) 이상 이상이라면 데이터의 손실률에 기초하여 서브플로우의 개수를 결정한다, 그렇지 않다면, 서브플로우의 개수를 초기 설정된 값으로 유지한다.The controller 2310 adjusts the number of subflows of the MPTCP layer as described above in FIG. 3 based on the acquired data loss rate and the amount of data to be processed. That is, if the data loss rate is equal to or greater than the reference value (x) and the amount of data to be processed is equal to or greater than the reference value (y), the controller 2310 determines the number of subflows based on the data loss rate, otherwise, The number of subflows is maintained at an initially set value.

한편, 본 개시의 장치가 상기한 도 7b 및 도 8의 실시예에 따라 MPTCP의 데이터를 전송하는 장치인 경우(부분 억제), 모니터링부(2300)는 서브플로우들의 사용 여부 및 서브플로우들의 링크 특성 정보를 모니터링한다. 상술한 것처럼, 서브플로우들의 사용 여부 및 서브플로우들의 링크 특성 정보는 교차 계층 정보로부터 획득할 수 있다.On the other hand, when the device of the present disclosure is a device for transmitting MPTCP data according to the embodiments of FIGS. 7B and 8 (partial suppression), the monitoring unit 2300 determines whether subflows are used and link characteristics of the subflows. monitor information. As described above, information on whether subflows are used and link characteristic information of subflows may be obtained from cross-layer information.

제어부(2310)는 서브플로우들의 사용 여부를 기초로 기준시간 동안 단일 서브플로우만이 사용되는지 여부를 판단하고, 기준시간 동안 단일 서브플로우만이 사용된 경우, 사용 중인 서브플로우의 링크 특성 정보를 기초로 공통의 데이터 매핑 정보가 적용될 데이터 세그먼트들의 개수를 결정한다.The controller 2310 determines whether only a single subflow is used for a reference time based on whether subflows are used, and when only a single subflow is used for a reference time, based on link characteristic information of the subflow being used determines the number of data segments to which common data mapping information is to be applied.

송수신부(2320)는 제어부(2310)의 제어 하에 데이터 교환을 수행하며, MPTCP 헤더가 선택적으로 포함된 데이터 세그먼트들을 전송한다. 구체적으로, 송수신부(2320)는 결정된 개수의 데이터 세그먼트들 중 하나, 예컨대 첫번째 데이터 세그먼트에 공통 데이터 매핑 정보를 포함하는 다중 경로 헤더를 포함시켜 전송하고, 데이터 세그먼트들 중 나머지 데이터 세그먼트들을 다중 경로 헤더 없이 전송한다.The transceiver 2320 performs data exchange under the control of the controller 2310 and transmits data segments selectively including an MPTCP header. Specifically, the transceiver 2320 includes a multi-path header including common data mapping information in one of the determined number of data segments, for example, a first data segment and transmits the multi-path header, and transmits the remaining data segments among the data segments. transmit without

또한, 본 개시의 장치가 상기한 도 9b, 도 10a 및 도 10b의 실시예에 따라 MPTCP의 데이터를 전송하는 장치인 경우(완전 억제), 모니터링부(2300)의 동작은 상기한 실시예에서와 동일하다.In addition, when the device of the present disclosure is a device for transmitting MPTCP data according to the embodiments of FIGS. 9B, 10A, and 10B (complete suppression), the operation of the monitoring unit 2300 is the same as in the above-described embodiment. same.

제어부(2310)는 모니터링 결과에 기반하여 기준시간 동안 다중 경로 모드에서 단일 서브플로우가 사용되는지 여부를 판단하고, 기준시간 동안 단일 서브플로우가 사용된 경우, 단일 경로 모드로의 전환을 결정한다. 단일 경로 모드로의 전환이 결정된 경우, 제어부(2310)는 사용 중인 서브플로우에 대한 데이터 매핑 정보를 포함하는 다중 경로 헤더를 생성하여 전송하고, 다중 경로 모드로부터 단일 경로 모드로 전환한다.The controller 2310 determines whether a single subflow is used in the multi-path mode for a reference time based on the monitoring result, and when the single subflow is used for the reference time, determines to switch to the single-path mode. When it is determined to switch to the single-path mode, the controller 2310 generates and transmits a multi-path header including data mapping information for a subflow in use, and switches from the multi-path mode to the single-path mode.

송수신부(2320)는 제어부(2310)의 제어 하에 데이터 교환을 수행하되, 다중 경로 모드에서 다중 경로 헤더를 포함시켜 데이터 세그먼트들을 전송하고, 단일 경로 모드에서 다중 경로 헤더 없이 데이터 매핑 정보를 이용하는 데이터 세그먼트들을 전송한다.The transceiver 2320 performs data exchange under the control of the controller 2310, but transmits data segments including the multi-path header in the multi-path mode, and uses data mapping information without the multi-path header in the single-path mode. send them

상술한 본 개시의 특정 측면들은 또한 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의하여 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 상기 컴퓨터 리드 가능 기록 매체의 예들은 리드 온니 메모리(Read-Only Memory: ROM)와, 랜덤-접속 메모리(Random-Access Memory: RAM)와, CD-ROM들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(상기 인터넷을 통한 데이터 송신과 같은)을 포함할 수 있다. 상기 컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통하여 분산될 수 있고, 따라서 상기 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 개시를 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 개시가 적용되는 분야에서 숙련된 프로그래머들에 의하여 쉽게 해석될 수 있다.Certain aspects of the present disclosure described above may also be implemented as computer readable code in a computer readable recording medium. A computer readable recording medium is any data storage device capable of storing data that can be read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, and , floppy disks, optical data storage devices, and carrier waves (such as data transmission over the Internet). The computer readable recording medium may also be distributed through network-connected computer systems, so that the computer readable code is stored and executed in a distributed manner. In addition, functional programs, code, and code segments for accomplishing the present disclosure may be easily interpreted by programmers skilled in the art to which the present disclosure is applied.

또한 본 개시의 일 실시예에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 개시의 일 실시예에 따른 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의하여 구현될 수 있고, 상기 메모리는 본 개시의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. In addition, it will be appreciated that the apparatus and method according to an embodiment of the present disclosure may be realized in the form of hardware, software, or a combination of hardware and software. Any such software, for example, whether erasable or rewritable, may be stored in a volatile or non-volatile storage device such as a ROM, or a memory such as, for example, RAM, a memory chip, device or integrated circuit. , or an optically or magnetically recordable storage medium such as a CD, DVD, magnetic disk, or magnetic tape, and at the same time may be stored in a machine (eg, computer) readable storage medium. The method according to an embodiment of the present disclosure may be implemented by a computer or portable terminal including a control unit and a memory, wherein the memory is suitable for storing a program or programs including instructions for implementing embodiments of the present disclosure You will see that it is an example of a machine-readable storage medium.

따라서, 본 개시는 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통하여 전달되는 통신 신호와 같은 임의의 매체를 통하여 전자적으로 이송될 수 있고, 본 개시는 이와 균등한 것을 적절하게 포함한다.Accordingly, the present disclosure includes a program including code for implementing the apparatus or method described in any claim of the present specification, and a machine (computer, etc.) readable storage medium storing such a program. Also, such a program may be transmitted electronically through any medium such as a communication signal transmitted through a wired or wireless connection, and the present disclosure suitably includes the equivalent thereof.

또한 본 개시의 일 실시예에 따른 장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 상기 프로그램을 수신하여 저장할 수 있다. 상기 프로그램 제공 장치는 상기 프로그램 처리 장치가 기 설정된 컨텐츠 보호 방법을 수행하도록 하는 지시들을 포함하는 프로그램, 컨텐츠 보호 방법에 필요한 정보 등을 저장하기 위한 메모리와, 상기 그래픽 처리 장치와의 유선 또는 무선 통신을 수행하기 위한 통신부와, 상기 그래픽 처리 장치의 요청 또는 자동으로 해당 프로그램을 상기 송수신 장치로 송신하는 제어부를 포함할 수 있다.Also, the device according to an embodiment of the present disclosure may receive and store the program from a program providing device connected by wire or wirelessly. The program providing device may include a program including instructions for causing the program processing device to perform a preset content protection method, a memory for storing information necessary for the content protection method, and wired or wireless communication with the graphic processing device. It may include a communication unit for performing, and a control unit for automatically transmitting a corresponding program to the transmission/reception device at the request of the graphic processing device or.

Claims (27)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 다중 경로 전송 시스템에서 데이터를 전송하는 방법에 있어서,
기준시간 동안 단일 서브플로우가 사용되는지 여부를 판단하는 과정;
상기 기준시간 동안 단일 서브플로우가 사용된 경우, 상기 서브플로우의 링크 특성 정보를 기초로 공통의 데이터 매핑 정보가 적용될 데이터 세그먼트들의 개수를 결정하는 과정;
상기 결정된 개수의 데이터 세그먼트들 중 첫번째 데이터 세그먼트에 상기 공통 데이터 매핑 정보를 포함하는 다중 경로 헤더를 포함시켜 전송하는 과정; 및
상기 데이터 세그먼트들 중 나머지 데이터 세그먼트들을 다중 경로 헤더 없이 전송하는 과정을 포함하는 방법.
A method for transmitting data in a multi-path transmission system, the method comprising:
determining whether a single subflow is used for a reference time;
determining the number of data segments to which common data mapping information is to be applied based on link characteristic information of the subflow when a single subflow is used during the reference time;
transmitting a multi-path header including the common data mapping information in a first data segment among the determined number of data segments; and
and transmitting the remaining data segments among the data segments without a multi-path header.
제15항에 있어서,
상기 기준시간 동안 단일 서브플로우가 사용된 경우, 상기 서브플로우의 링크 특성 정보를 기초로 상기 데이터 세그먼트들에 상기 공통의 데이터 매핑 정보를 적용할지 여부를 판단하는 과정을 더 포함하는 방법.
16. The method of claim 15,
and determining whether to apply the common data mapping information to the data segments based on link characteristic information of the subflow when a single subflow is used during the reference time.
제15항에 있어서,
상기 다중 경로 헤더는 상기 데이터 세그먼트들의 결정된 개수에 따라 생성되는 방법.
16. The method of claim 15,
wherein the multi-path header is generated according to the determined number of data segments.
제15항에 있어서,
상기 링크 특성 정보는,
상기 서브플로우의 손실률, 링크 안정성, 링크 강건성, 전송 시간, 전송 시간 변동량, 전송 가능한 데이터량, 현재의 혼잡 윈도우와 수신 윈도우, 링크 사용 이력, 및 최대 세그먼트 사이즈 중 하나 이상을 포함하는 방법.
16. The method of claim 15,
The link characteristic information is
The method comprising at least one of a loss rate of the subflow, link stability, link robustness, transmission time, transmission time variation, transmittable data amount, current congestion window and reception window, link usage history, and a maximum segment size.
제15항에 있어서,
상기 링크 특성 정보는 상기 서브플로우의 손실률을 포함하며,
상기 손실률이 클수록 상기 개수가 적어지고, 상기 손실률이 작을수록 상기 개수가 많아지는 방법.
16. The method of claim 15,
The link characteristic information includes a loss rate of the subflow,
The larger the loss rate, the smaller the number, and the smaller the loss rate, the greater the number.
제15항에 있어서,
상기 링크 특성 정보는 상기 서브플로우의 링크 안정성을 포함하며,
링크 안정성 값이 클수록 상기 개수가 많아지고, 상기 링크 안정성 값이 작을수록 상기 개수가 적어지는 방법.
16. The method of claim 15,
The link characteristic information includes link stability of the subflow,
A method in which the number increases as the link stability value increases, and the number decreases as the link stability value decreases.
다중 경로 전송 시스템에서 데이터를 전송하는 방법에 있어서,
기준시간 동안 다중 경로 모드에서 단일 서브플로우가 사용되는지 여부를 판단하는 과정;
상기 기준시간 동안 단일 서브플로우가 사용된 경우, 단일 경로 모드로의 전환을 결정하는 과정;
상기 단일 경로 모드로의 전환이 결정되면, 상기 서브플로우에 대한 데이터 매핑 정보를 포함하는 다중 경로 헤더를 생성하여 전송하는 과정;
상기 다중 경로 모드로부터 단일 경로 모드로 전환하는 과정; 및
상기 단일 경로 모드에서 상기 데이터 매핑 정보를 이용하는 데이터 세그먼트들을 전송하는 과정을 포함하는 방법.
A method for transmitting data in a multi-path transmission system, the method comprising:
determining whether a single subflow is used in a multipath mode during a reference time;
determining to switch to a single-path mode when a single subflow is used during the reference time;
generating and transmitting a multi-path header including data mapping information for the subflow when it is determined to switch to the single-path mode;
switching from the multi-path mode to the single-path mode; and
and transmitting data segments using the data mapping information in the single path mode.
제21항에 있어서,
상기 단일 경로 모드에서 신규 인터페이스가 설정되는지 감지하는 과정; 및
상기 신규 인터페이스가 설정된 경우, 상기 단일 경로 모드에서 상기 다중 경로 모드로 복귀하는 과정을 더 포함하는 방법.
22. The method of claim 21,
detecting whether a new interface is established in the single path mode; and
The method further comprising the step of returning to the multi-path mode from the single-path mode when the new interface is set.
제22항에 있어서,
상기 다중 경로 모드에서 상기 단일 경로 모드로의 전환이 결정된 경우, 상기 다중 경로 연결에 대한 설정 정보를 저장하는 과정; 및
상기 단일 경로 모드에서 상기 다중 경로 모드로 복귀되는 경우, 상기 저장된 설정 정보를 기초로 상기 다중 경로 연결을 복원하는 과정을 더 포함하는 방법.
23. The method of claim 22,
storing configuration information for the multi-path connection when it is determined to switch from the multi-path mode to the single-path mode; and
When returning to the multi-path mode from the single-path mode, the method further comprising the step of restoring the multi-path connection based on the stored configuration information.
제22항에 있어서,
상기 단일 경로 모드에서 신규 인터페이스가 설정되는 경우, 상기 신규 인터페이스 상에 제2 서브플로우를 설정하고, 상기 단일 경로 모드에서 사용되던 현재 인터페이스 상의 제1 서브플로우의 연결을 해제하는 과정;
상기 신규 인터페이스 상에 제3 서브플로우를 설정하는 과정;
상기 제1 서브플로우를 통해 마지막으로 전송된 데이터 세그먼트에 기반하여 상기 제2 및 제3 서브플로우들을 위한 다중 경로 헤더를 생성하는 과정; 및
상기 제2 및 제3 서브플로우들을 통해 상기 다중 경로 헤더가 포함된 데이터 세그먼트들을 전송하는 과정을 더 포함하는 방법.
23. The method of claim 22,
when a new interface is set in the single-path mode, setting a second subflow on the new interface and disconnecting a first subflow on the current interface used in the single-path mode;
setting a third subflow on the new interface;
generating multi-path headers for the second and third subflows based on a data segment last transmitted through the first subflow; and
and transmitting the data segments including the multi-path header through the second and third subflows.
제24항에 있어서,
상기 제2 서브플로우는 상기 제1 서브플로우의 링크 특성 정보를 적용하여 설정되는 방법.
25. The method of claim 24,
The second subflow is set by applying link characteristic information of the first subflow.
다중 경로 전송 시스템에서 데이터를 전송하는 장치에 있어서,
기준시간 동안 단일 서브플로우가 사용되는지 여부를 판단하고, 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 상기 서브플로우의 링크 특성 정보를 기초로 공통의 데이터 매핑 정보가 적용될 데이터 세그먼트들의 개수를 결정하는 제어부; 및
상기 제어부의 제어 하에 상기 결정된 개수의 데이터 세그먼트들 중 첫번째 데이터 세그먼트에 상기 공통 데이터 매핑 정보를 포함하는 다중 경로 헤더를 포함시켜 전송하고, 상기 데이터 세그먼트들 중 나머지 데이터 세그먼트들을 다중 경로 헤더 없이 전송하는 송수신부를 포함하는 장치.
An apparatus for transmitting data in a multi-path transmission system, comprising:
Determining whether a single subflow is used for a reference time, and when a single subflow is used for the reference time, determining the number of data segments to which common data mapping information is applied based on link characteristic information of the subflow control unit; and
Transmission and reception for transmitting a first data segment among the determined number of data segments by including a multi-path header including the common data mapping information under the control of the controller, and transmitting the remaining data segments among the data segments without a multi-path header A device containing wealth.
다중 경로 전송 시스템에서 데이터를 전송하는 장치에 있어서,
기준시간 동안 다중 경로 모드에서 단일 서브플로우가 사용되는지 여부를 판단하고, 상기 기준시간 동안 단일 서브플로우가 사용된 경우, 단일 경로 모드로의 전환을 결정하며, 상기 단일 경로 모드로의 전환이 결정되면, 상기 서브플로우에 대한 데이터 매핑 정보를 포함하는 다중 경로 헤더를 생성하여 전송하고, 상기 다중 경로 모드로부터 단일 경로 모드로 전환하는 제어부; 및
상기 제어부의 제어 하에, 상기 다중 경로 모드에서 다중 경로 헤더를 포함시켜 데이터 세그먼트들을 전송하고, 상기 단일 경로 모드에서 다중 경로 헤더 없이 상기 데이터 매핑 정보를 이용하는 데이터 세그먼트들을 전송하는 송수신부를 포함하는 장치.
An apparatus for transmitting data in a multi-path transmission system, comprising:
It is determined whether a single subflow is used in the multi-path mode for a reference time, and when a single subflow is used for the reference time, a switch to the single-path mode is determined, and when the switch to the single-path mode is determined , a control unit that generates and transmits a multi-path header including data mapping information for the subflow and switches from the multi-path mode to the single-path mode; and
and a transceiver for transmitting data segments including a multi-path header in the multi-path mode and transmitting data segments using the data mapping information without a multi-path header in the single-path mode under the control of the controller.
KR1020170075057A 2017-01-26 2017-06-14 Method and appratus for data transmission of multipath transport system KR102352514B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170012845 2017-01-26
KR20170012845 2017-01-26

Publications (2)

Publication Number Publication Date
KR20180088248A KR20180088248A (en) 2018-08-03
KR102352514B1 true KR102352514B1 (en) 2022-01-19

Family

ID=63250521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170075057A KR102352514B1 (en) 2017-01-26 2017-06-14 Method and appratus for data transmission of multipath transport system

Country Status (1)

Country Link
KR (1) KR102352514B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101932138B1 (en) * 2018-09-11 2018-12-24 서울대학교산학협력단 Credit-based multipath transmission method for datacenter network load balancing
CN114556883B (en) * 2020-06-11 2024-07-30 华为技术有限公司 Data transmission method, transmitting side device and receiving side device
WO2024085445A1 (en) * 2022-10-17 2024-04-25 삼성전자 주식회사 Electronic device for data communication in wireless communication system, and operating method therefor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101336211B1 (en) * 2012-03-13 2013-12-03 광주과학기술원 Method and apparatus for deciding number of path in multi-path network
KR102069501B1 (en) * 2012-10-19 2020-01-23 한국전자통신연구원 Multipath communication apparatus for improving energy efficiency and traffic distribution method for improving energy efficiency thereof
GB2525416B (en) * 2014-04-24 2017-11-01 Samsung Electronics Co Ltd Data transfer using a multipath TCP connection

Also Published As

Publication number Publication date
KR20180088248A (en) 2018-08-03

Similar Documents

Publication Publication Date Title
US20210075737A1 (en) Adaptive private network with path maximum transmission unit (mtu) discovery process
Ferlin et al. BLEST: Blocking estimation-based MPTCP scheduler for heterogeneous networks
JP6841918B2 (en) Methods and devices for transmitting service flows based on flexible Ethernet, as well as communication systems
US10200911B2 (en) Control method and apparatus for load transmission
JP6526825B2 (en) Method and apparatus for transmitting transmission control protocol TCP data packets, and system
KR102242633B1 (en) Integrated circuit
EP2858313B1 (en) Method, device, and system for routing function activation and data transmission
KR101130586B1 (en) Centralized medium access control algorithm for cdma reverse link
KR102352514B1 (en) Method and appratus for data transmission of multipath transport system
WO2014044333A1 (en) Traffic shaping and steering for a multipath transmission control protocol connection
JP2010514332A (en) Scheduling and queue management with adaptive queue latency
US11736407B2 (en) Method and apparatus for load balancing and packet re-sequencing on network
WO2014026050A1 (en) System and method for providing improved quality of service over broadband networks
WO2015021343A1 (en) System and method for providing improved quality of service over broadband networks
Zhao et al. ON/OFF traffic shaping in the Internet: Motivation, challenges, and solutions
US20230327995A1 (en) Data packet transmission method and device
KR102003195B1 (en) Apparatus and method for simultaneously transmitting data in heterogeneous network
US20200076718A1 (en) High bandwidth using multiple physical ports
KR101600403B1 (en) Apparatus and method for simultaneously transmitting data in heterogeneous network
CN113824648A (en) QoE-based MPTCP data packet scheduling method and device
KR101689718B1 (en) Apparatus and method for simultaneously transmitting data in heterogeneous network
KR101663800B1 (en) Apparatus and method for simultaneously transmitting data in heterogeneous network
US20190238455A1 (en) Multipath adjustments
KR101562784B1 (en) Management apparatus and method thereof for simultaneously transmitting data in heterogeneous network
KR101235647B1 (en) Apparatus and method for simultaneously transmitting data in heterogeneous network

Legal Events

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