[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20150123185A - Apparatus and method for transferring data using multipath transmission control protocol - Google Patents

Apparatus and method for transferring data using multipath transmission control protocol Download PDF

Info

Publication number
KR20150123185A
KR20150123185A KR1020150057246A KR20150057246A KR20150123185A KR 20150123185 A KR20150123185 A KR 20150123185A KR 1020150057246 A KR1020150057246 A KR 1020150057246A KR 20150057246 A KR20150057246 A KR 20150057246A KR 20150123185 A KR20150123185 A KR 20150123185A
Authority
KR
South Korea
Prior art keywords
data
sub
data units
priority
flows
Prior art date
Application number
KR1020150057246A
Other languages
Korean (ko)
Other versions
KR102328615B1 (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 KR20150123185A publication Critical patent/KR20150123185A/en
Application granted granted Critical
Publication of KR102328615B1 publication Critical patent/KR102328615B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • H04L47/14
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed is a method for transmitting data between a first device and a second device by using a multipath transmission control protocol (MPTCP) connection. The method includes the processes of: receiving the data which is currently in use, is to be transmitted, and includes a set of data units from the first device; and extracting priority-related information regarding the data units from the received data. Also, the method includes the processes of: processing the priority-related information in order to allocate each data unit to one of multiple sub-flows in the MPTCP connection; and using the sub-flows allocated with the data units to transmit the data units being in use to the second device through the MPTCP connection.

Description

다중 경로 송신 제어 프로토콜 연결을 사용하여 데이터를 전송하는 장치 및 방법{APPARATUS AND METHOD FOR TRANSFERRING DATA USING MULTIPATH TRANSMISSION CONTROL PROTOCOL}[0001] APPARATUS AND METHOD FOR TRANSFERRING DATA USING MULTIPATH TRANSMISSION CONTROL PROTOCOL [0002]

본 발명은 다중 경로 송신 제어 프로토콜(Transmission Control Protocol TCP)(Multipath TCP: MPTCP) 연결을 사용하여 데이터를 전송하는 장치 및 방법에 관한 것이다.
The present invention relates to an apparatus and method for transmitting data using a Multipath TCP (MPTCP) connection.

MPTCP는 어플리케이션(application)에 대한 표준 송신 제어 프로토콜(Transmission Control Protocol: TCP) 소켓(socket) 어플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)를 유지하면서, 단일 세션(session)에 대한 다수의 인터페이스들의 동시 이용을 허여하는 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force)에 의해 스탠다드화된 TCP의 에볼루션(evolution)이다. 병렬 서브 플로우들을 생성하는 상기 다수의 인터페이스들의 사용은 자원 사용을 향상시키고, 리던던시(redundancy)를 증가시킬 수 있으며, 따라서 상기 세션 어그리게이트 처리량(session aggregate throughput)을 증가시키게 된다. 또한, 상기 병렬 서브 플로우들을 생성하는 상기 다수의 인터페이스들의 사용은 원활한 핸드오버를 보장하고 혼잡 네트워크에서 다수의 인터페이스들간의 트래픽 로드(traffic load)를 밸런싱하는데 기여할 수 있다. MPTCP를 데이터 센터들 및 멀티 홈 서버(multihomed server)들에 도입함으로써 발생되는 처리량 향상 뿐만 아니라, MPTCP는 이동 전화기들이 인터넷에 연결하는 하나 이상의 인터페이스를 구비하고 있는 이동 무선 네트워크들에서 특히 유용하다. Wi-Fi™ 및 이동 네트워크 3G/LTE (롱 텀 에볼루션(Long Term Evolution)) 둘 다를 사용하는 것이 일반적인 사용 경우이다. 상기 어그리게이트 대역폭의 증가로 인해서 처리량에서의 기대되는 이득들 뿐만 아니라, MPTCP는 사용자 이동으로 인해서 연결 중단에 대한 강인함(robustness)을 개선시킬 수 있다. MPTCP provides a mechanism for simultaneously using multiple interfaces to a single session while maintaining a standard Transmission Control Protocol (TCP) socket application programming interface (API) for the application. Is the evolution of TCP standardized by the Internet Engineering Task Force, which grants the use of TCP. The use of multiple interfaces to create parallel sub-flows can improve resource utilization and increase redundancy, thereby increasing the session aggregate throughput. In addition, the use of the multiple interfaces for creating the parallel sub-flows may contribute to smooth handover and to balancing the traffic load between multiple interfaces in a congested network. MPTCP is particularly useful in mobile wireless networks where mobile telephones have one or more interfaces to the Internet, as well as throughput enhancements introduced by introducing MPTCP to data centers and multihomed servers. It is common use case to use both Wi-Fi ™ and mobile network 3G / LTE (Long Term Evolution). In addition to the expected gains in throughput due to the increased aggregation bandwidth, the MPTCP can improve the robustness to disconnection due to user movement.

도 1은 상기 클라이언트(client)(100)(이동 핸드셋 UE)가 두 개의 인터페이스들 Wi-Fi™(104) 및 3G/LTE 모뎀(106)을 통해 상기 서버(102) AS로부터 데이터, 일 예로, 파일들, 이미지들, 비디오들 혹은 웹 페이지들을 업로드(upload)하는 예제 MPTCP 연결의 시스템 개략도를 도시하고 있다. 따라서, 두 개의 서브 플로우들, 하나는 Wi-Fi™ 핫 스팟(hotspot)을 통한 서브 플로우, 나머지는 E-UTRAN를 통한 서브 플로우가 생성된다. 상기 두 개의 경로들은 다른 네트워크 토팔러지(network topology)들과 접하게 되고, 다양한 중간 장비(middlebox) 제한들을 통해 진행하기 때문에, 상기 생성된 두 개의 서브 플로우들은 다른 능력들 및 왕복 시간(Round Trip Time: RTT)들을 나타낸다. MPTCP의 중요한 태스크(task)들은 네트워크 혼잡 상태, 경로 토팔러지들, 수신기 버퍼 유용 공간을 기반으로 어떻게 동작하고, 얼마나 많은 데이터가 각 서브 플로우에 할당될 필요가 있는지를 포함한다. Figure 1 shows the client 100 (mobile handset UE) receiving data from the server 102 AS, via two interfaces Wi-Fi ™ 104 and 3G / LTE modem 106, Shows a system schematic of an exemplary MPTCP connection for uploading files, images, videos or web pages. Thus, two sub-flows, one sub-flow via Wi-Fi (TM) hotspot and the other sub-flow via E-UTRAN are created. Since the two paths are in contact with other network topologies and proceed through various middlebox constraints, the two generated sub-flows have different capabilities and Round Trip Time : RTT). Important tasks of MPTCP include how to operate based on network congestion state, route totes, receiver buffer availability space, and how much data needs to be allocated to each sub-flow.

SPDY™와 같은 일부 어플리케이션들 및 서비스들에서, 상기 데이터 세그먼트(segment)들은 높은 우선 순위 데이터가 브라우징(browsing) 경험을 향상시키기 위해서 첫 번째로 송신되는 방식으로 우선 순위화된다. 우선 순위화된 데이터를 MPTCP가 세그먼트의 중요도(importance) 및 중요성(significance)를 인식하지 않는 MPTCP 버퍼에 푸시(push)하는 것은 특히 높은 중요도 세그먼트들 중 일부가 손실이 있는 채널을 통해 송신될 경우 상기 송신을 덜 효율적으로 할 수 있고, 상기 채널에서는 반복적 재송신이 상기 높은 중요도 데이터(브라우징시 상기 문서 오브젝트 모델(Document Object Model: DOM)을 구성하기 위해 필요로 되는 상기 HTML 파일과 같은)를 성공적으로 송신하기 위해 발생할 수 있다. In some applications and services, such as SPDY (TM), the data segments are prioritized in such a way that high priority data is sent first to improve the browsing experience. Pushing the prioritized data to an MPTCP buffer where the MPTCP does not recognize the significance and significance of the segment is particularly important when pushing some of the high priority segments over the lost channel Transmission can be made less efficient and the channel is able to successfully send a high priority data (such as the HTML file needed to construct the document object model (DOM) at browsing) .

보다 효율적인 송신을 위해서, MPTCP가 상기 패킷들의 중요도를 인식하도록 하여 혼잡 제어가 상기 높은 우선 순위 패킷들을 강인하고, 보다 손실이 적은 서브 플로우들로 푸시하도록 할 수 있도록 하는 것이 보다 이로울 것이다. 본 발명자가 아는 한, 문헌 상 어떤 연구도 이 교차 계층 동작 및 MPTCP가 어떻게 서브 플로우들을 분류할 수 있고 상기 우선 순위화된 데이터를 어떻게 상기 서브 플로우들로 오프로드할 수 있는지에 대해서는 전혀 언급하지 않고 있었다.
For more efficient transmission, it would be advantageous for the MPTCP to be aware of the importance of the packets so that congestion control can push the higher priority packets to the more robust and less lossful sub-flows. As far as the present inventors are aware, no research in the literature has referred to this cross-layer operation and how MPTCP can classify sub-flows and offload the prioritized data to the sub-flows there was.

본 발명의 실시예들은 상기에서 설명한 바와 같은 몇몇 문제점들을 적어도 처리하도록 의도된다. 본 발명의 실시예들은 상기 세션 계층으로부터의 교환된 우선 순위화된 패킷들을 반영하기 위해서 유용한 서브 블로우들을 분류하는 MPTCP 기반 데이터 전송 시스템들에 대한 메커니즘을 제공할 수 있다. 또한, 본 발명의 실시예들은 상기 공통 버퍼를 관리하여 적합한 서브 플로우들에 상기 우선 순위화된 데이터를 오프로드(offload)할 수 있다.
Embodiments of the present invention are intended to at least address some of the problems as described above. Embodiments of the present invention may provide mechanisms for MPTCP based data transmission systems that classify sub-blobs useful for reflecting switched prioritized packets from the session layer. Embodiments of the present invention may also manage the common buffer to offload the prioritized data to appropriate sub-flows.

본 발명의 제1 측면에 따르면, 다중 경로 송신 제어 프로토콜(Multipath Transmission Control Protocol: MPTCP) 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법이 제공되며, 상기 방법은:According to a first aspect of the present invention there is provided a method of transmitting data between a first device and a second device using a Multipath Transmission Control Protocol (MPTCP) connection, the method comprising:

상기 제1 디바이스로부터 데이터 유닛들의 집합을 포함하는, 사용중인 전송될 데이터를 수신하는 과정과;Receiving data to be transmitted in use, the data including a set of data units from the first device;

상기 수신된 데이터로부터 상기 데이터 유닛들에 대한 우선 순위-관련 정보를 추출하는 과정과;Extracting priority-related information for the data units from the received data;

상기 데이터 유닛 각각을 상기 MPTCP 연결의 다수의 서브 플로우들 중 하나에 할당하기 위해 상기 우선 순위-관련 정보를 프로세싱하는 과정과; Processing the priority-related information to assign each of the data units to one of a plurality of sub-flows of the MPTCP connection;

상기 할당된 서브 플로우들을 사용하여 상기 MPTCP 연결을 통해 상기 제2 디바이스로 상기 사용중인 데이터 유닛들을 전송하는 과정을 포함함을 특징으로 한다. And transmitting the data units in use to the second device over the MPTCP connection using the assigned sub-flows.

상기 우선 순위-관련 정보를 프로세싱하는 과정은 다수의 우선 순위 레벨들 중 하나를 상기 각 데이터 유닛에 할당하기 위해 상기 데이터 유닛들을 분석하는 과정을 포함할 수 있다. The processing of the priority-related information may include analyzing the data units to assign one of a plurality of priority levels to each of the data units.

상기 방법은 다수의 품질 클래스(class)들 중 하나를 상기 각 서브 플로우에 할당하기 위해서 상기 MPTCP 연결의 서브 플로우들을 분석하는 과정을 더 포함할 수 있다. The method may further comprise analyzing the sub-flows of the MPTCP connection to assign one of a plurality of quality classes to each of the sub-flows.

또한, 상기 우선 순위-관련 정보를 프로세싱하는 과정은 상기 데이터 유닛들을 상기 서브 플로우들에 할당하여 특정한 우선 순위 레벨을 가지는 데이터 유닛들이 특정 품질 클래스를 가지는 서브 플로우에 할당되도록 하는 과정을 더 포함할 수 있다. In addition, the processing of the priority-related information may further include allocating the data units to the sub-flows so that data units having a certain priority level are allocated to sub-flows having a specific quality class have.

상기 방법은 혼잡 제어 프로세스를 상기 버퍼로부터 전송되는 상기 데이터 유닛들의 상기 각 서브 플로우에 적용하는 과정을 더 포함할 수 있다. 상기 혼잡 제어 프로세스는 결합 MPTCP 혼잡 제어 메커니즘(coupled MPTCP congestion control mechanism)을 포함할 수 있다. The method may further comprise applying a congestion control process to each of the sub-flows of the data units transmitted from the buffer. The congestion control process may include a combined MPTCP congestion control mechanism.

상기 우선 순위-관련 정보를 프로세싱하는 과정은 상기 서브 플로우들을 RTT 및 ACK들과 같은 손실 레이트 및/혹은 다른 파라미터들과 같은, 상기 서브 플로우들의 적어도 하나의 데이터 전송 품질-관련 팩터(factor)를 기반으로 상기 품질 클래스들, 일 예로 낮은 및 높은 품질 클래스들로 분류하는 과정을 포함할 수 있다. 높은 품질 클래스를 가지는 서브 플로우는 강인하지만(일 예로, 낮은 기대 재송신 레이트를 가지는) 손실되지는 않는 서브 플로우를 포함할 수 있다. 낮은 품질 클래스를 가지는 서브 플로우는 상기 데이터 유닛들의 반복적인 재송신을 요구하지 않는 서브 플로우를 포함할 수 있다.The processing of the priority-related information may be based on at least one data transmission quality-related factor of the sub-flows, such as loss rates and / or other parameters such as RTT and ACKs, Into the quality classes, e.g., low and high quality classes. A subflow with a high quality class may be robust but may include a non-lost subflow (e.g., with a low expected retransmission rate). A sub-flow having a lower quality class may include a sub-flow that does not require repetitive retransmission of the data units.

상기 우선 순위-관련 정보를 프로세싱하는 과정은 서브 플로우의 손실 레이트를 계산하는 과정과, 상기 계산된 손실 레이트를 기반으로 품질 클래스를 상기 서브 플로우에 할당하는 과정을 포함할 수 있다. 상기 서브 플로우의 손실 레이트를 계산하는 과정은:The processing of the priority-related information may include calculating a loss rate of a sub-flow, and allocating a quality class to the sub-flow based on the calculated loss rate. Calculating a loss rate of the sub-flow comprises:

상기 각 서브 플로우를 사용하여 다수의 데이터 유닛들을 전송하는 과정과;Transmitting a plurality of data units using each sub-flow;

상기 각 서브 플로우에 대한 시간 윈도우(T) 내에서 손실된 데이터 유닛들(일 예로, NACK(non-acknowledged) 데이터 유닛들)의 개수를 인지하는 과정과;Recognizing the number of lost data units (e. G., Non-acknowledged data units (NACK)) within the time window T for each sub-flow;

상기 각 서브 플로우에 대한 시간 윈도우 내에서 평균 손실 레이트 LRi를 계산하는 과정을 포함할 수 있다.And calculating an average loss rate LR i within a time window for each of the sub-flows.

상기 평균 손실 레이트 LRi를 계산하는 과정은 하기의 수학식을 사용할 수 있다:The process of calculating the average loss rate LR i may use the following equation:

Figure pat00001
Figure pat00001

상기 서브 플로우들을 상기 품질 클래스들로 분류하는 과정은 상기 각 서브 플로우의 상기 계산된 평균 손실 레이트 LRi를 기반으로 상기 서브 플로우들을 정렬하는 과정을 포함할 수 있다. 일부 실시예들에서, 기준 값, 일 예로 1%보다 작은 계산된 평균 손실 레이트 LRi를 가지는 서브 플로우는 높은 품질 클래스 서브 플로우로 분류된다.The classifying the sub-flows into the quality classes may include aligning the sub-flows based on the calculated average loss rate LR i of each sub-flow. In some embodiments, a subflow having a reference value, e.g., a calculated average loss rate LR i of less than 1%, is classified as a high quality class subflow.

상기 서브 플로우들을 분석하는 과정은:The process of analyzing the subflows comprises:

상기 서브 플로우들의 서브 그룹들의 다수의 결합들을 통해 다수의 높은 우선 순위 레벨 데이터 유닛들을 전달하는 기대 전달 시간을 계산하는 과정과;Calculating an expected transfer time to transfer a plurality of high priority level data units through a plurality of combinations of subgroups of the subflows;

가장 낮은 기대 전달 시간을 가지는 서브 그룹에서의 서브 플로우들을 높은 품질 클래스로 분류하는 과정을 포함할 수 있다. Classifying the sub-flows in the sub-group having the lowest expected delivery time into a high quality class.

상기 기대 전달 시간을 계산하는 과정은:The process of calculating the expected delivery time comprises:

상기 서브 플로우들의 서브 그룹을 통해 상기 다수의 데이터 유닛들의 전달을 시도하는 과정과,Attempting delivery of the plurality of data units through a subgroup of sub-flows;

상기 다수의 데이터 유닛들의 반복 송신을 수행하는 과정과, Performing repetitive transmission of the plurality of data units,

각 왕복 시간(Round Trip Time: RTT)에서 각 서브 플로우에 대한 상응하는 윈도우를 계산하는 과정을 포함할 수 있다. And calculating a corresponding window for each sub-flow at each round trip time (RTT).

상기 서브 플로우들을 분석하는 과정은 일 예로, 상기 MPTCP 연결 변경을 위해 사용되는 네트워크의 조건에 상응하여 다이나믹(dynamic)하게 수행될 수 있다.The process of analyzing the sub-flows may be performed dynamically according to the conditions of the network used for changing the MPTCP connection.

상기 데이터 유닛들을 분석하는 과정은 상기 수신된 데이터로부터 상기 데이터 유닛들에 대한 우선 순위-관련 정보를 추출하는 과정을 포함할 수 있다. 상기 우선 순위-관련 정보를 추출하는 과정은 세션 계층(session layer)과 트랜스포트 계층(transport layer)간을 교차하는 데이터 유닛들에 대한 정보와 같은 교차 계층 정보(cross layer information)를 프로세싱할 수 있다. 상기 데이터 유닛들을 분석하는 과정은 상기 데이터 유닛들의 우선 순위 플래그(flag)들/신호들을 분석하는 과정을 포함할 수 있다. 일부 실시예들에서, 상기 데이터 유닛들을 분석하는 과정은 상기 데이터 유닛들의 관련 순서(relevance order)를 분석하는 과정을 포함한다. The analyzing of the data units may include extracting priority-related information for the data units from the received data. The process of extracting the priority-related information may process cross layer information such as information on data units crossing between a session layer and a transport layer . The step of analyzing the data units may include analyzing the priority flags / signals of the data units. In some embodiments, analyzing the data units comprises analyzing the relevance order of the data units.

상기 데이터 유닛은 SPDY™ 메시지를 포함할 수 있다. 상기 데이터 유닛들을 분석하는 과정은 SYN_STREAM 혹은 SYN_REPLY 높은 우선 순위 식별자를 가지는 SPDY™ 메시지를 포함하는 데이터 유닛에 높은 우선 순위 레벨을 할당하는 과정을 포함할 수 있다. The data unit may include an SPDY (TM) message. The process of analyzing the data units may include assigning a high priority level to a data unit comprising a SPDY (TM) message having a SYN_STREAM or SYN_REPLY high priority identifier.

상기 데이터는 비디오 데이터를 포함할 수 있으며, 상기 각 데이터 유닛은 I-프레임, P-프레임, 혹은 B-프레임으로 카테고리화된다. 상기 데이터 유닛들을 분석하는 과정은 I-프레임을 포함하는 데이터 유닛에 높은 우선 순위 레벨을 할당하는 과정과, 상기 P-프레임 혹은 B-프레임을 포함하는 데이터 유닛에 낮은 우선 순위 레벨을 할당하는 과정을 포함할 수 있다. The data may comprise video data, wherein each data unit is categorized into an I-frame, a P-frame, or a B-frame. The process of analyzing the data units may include assigning a high priority level to a data unit including an I-frame, and assigning a low priority level to the data unit including the P-frame or the B-frame. .

상기 버퍼에 상기 데이터 유닛들을 배열하는 과정은 높은 우선 순위 레벨을 가지는 데이터 유닛들을 상기 버퍼로 포워드 로딩(forward loading)하는 과정과, 낮은 우선 순위 레벨을 가지는 데이터 유닛들을 상기 버퍼로 백워드 로딩(backward loading)하는 과정을 포함할 수 있다. 상기 데이터 유닛들을 상기 버퍼에 배열하는 과정은 상기 버퍼의 나머지 공간이 상기 높은 우선 순위 레벨을 가지는 데이터 유닛들의 로딩에만 충분할 경우 상기 낮은 우선 순위 레벨을 가지는 데이터 유닛들의 상기 버퍼로의 추가적인 로딩을 방지하는 과정을 포함할 수 있다. The step of arranging the data units in the buffer includes forward loading data units having a high priority level to the buffer, and backward loading data units having a low priority level into the buffer. loading process. The step of arranging the data units in the buffer prevents further loading of the data units having the lower priority level into the buffer when the remaining space of the buffer is sufficient for loading the data units having the higher priority level Process.

상기 MPTCP 연결은 다수의 통신 네트워크 인터페이스들을 사용할 수 있다. 상기 통신 네트워크들은 무선 네트워크들, 일 예로 LTE 및 Wi-Fi™를 포함할 수 있다. 상기 방법은 상기 제1 디바이스와 제2 디바이스간의 MPTCP 연결을 성립하는 과정을 포함할 수 있다. 상기 MPTCP 연결은 다수의, 일 예로 2개의 서브 플로우들을 포함할 수 있다. The MPTCP connection may use multiple communication network interfaces. The communication networks may include wireless networks, e.g., LTE and Wi-Fi. The method may include establishing an MPTCP connection between the first device and the second device. The MPTCP connection may include multiple, e.g., two, subflows.

본 발명의 다른 측면에 따르면, 다중 경로 송신 제어 프로토콜(Multipath Transmission Control Protocol: MPTCP) 연결을 통해 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 시스템이 제공되며, 상기 시스템은:According to another aspect of the present invention, there is provided a system for transmitting data between a first device and a second device via a Multipath Transmission Control Protocol (MPTCP) connection, the system comprising:

상기 제1 디바이스로부터 데이터 유닛들의 집합을 포함하는, 사용중인 전송될 데이터를 수신하도록 구성되는 디바이스와;A device configured to receive in-use data to be transmitted, the device comprising a collection of data units from the first device;

상기 수신된 데이터로부터 상기 데이터 유닛들에 대한 우선 순위-관련 정보를 추출하도록 구성되는 분석기와;An analyzer configured to extract priority-related information for the data units from the received data;

상기 각 데이터 유닛을 상기 MPTCP 연결의 다수의 서브 플로우들 중 하나에 할당하기 위해 상기 우선 순위-관련 정보를 프로세싱하도록 구성되는 프로세싱 디바이스와; A processing device configured to process the priority-related information to assign each of the data units to one of a plurality of sub-flows of the MPTCP connection;

상기 할당된 서브 플로우들을 사용하여 상기 MPTCP 연결을 통해 상기 제2 디바이스로 상기 사용중인 데이터 유닛들을 전송하도록 구성되는 데이터 전송 디바이스를 포함한다. And a data transfer device configured to transfer the in-use data units to the second device over the MPTCP connection using the assigned sub-flows.

상기 분석기는 안드로이드 프레임워크(Android™ framework) 내에 논리적으로 위치될 수 있으며, 상기 프로세싱 디바이스는 리눅스 커널(Linux kernel) 내에 논리적으로 위치될 수 있다.The analyzer may be logically located within the Android framework and the processing device may be logically located within the Linux kernel.

상기 MPTCP 연결은 적어도 하나의 무선 네트워크, 일 예로, 3G/LTE 혹은 Wi-Fi™ 네트워크를 사용할 수 있다.The MPTCP connection may use at least one wireless network, for example a 3G / LTE or Wi-Fi ™ network.

본 발명의 또 다른 측면에 따르면, 여기에서 설명되는 방법을 실질적으로 동작시키는 컴퓨터 프로그램을 저장하는 컴퓨터 리드 가능 매체가 제공된다.According to yet another aspect of the present invention there is provided a computer readable medium storing a computer program that substantially operates the method described herein.

본 발명의 또 다른 측면에 따르면, MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법이 제공되며, 상기 방법은:According to yet another aspect of the present invention, there is provided a method of transmitting data between a first device and a second device using an MPTCP connection, the method comprising:

상기 제1 디바이스로부터 데이터 유닛들의 집합을 포함하는, 사용중인 전송될 데이터를 수신하는 과정과;Receiving data to be transmitted in use, the data including a set of data units from the first device;

다수의 우선 순위 레벨들 중 하나를 상기 각 데이터 유닛에 할당하기 위해 상기 데이터 유닛들을 분석하는 과정과;Analyzing the data units to assign one of a plurality of priority levels to each of the data units;

각 서브 플로우에 다수의 품질 클래스들 중 하나를 할당하기 위해 상기 MPTCP 연결의 서브 플로우들을 분석하는 과정과;Analyzing the sub-flows of the MPTCP connection to assign one of a plurality of quality classes to each sub-flow;

상기 데이터 유닛들을 상기 서브 플로우들에 할당하여 특정한 우선 순위 레벨을 가지는 데이터 유닛들이 상응하는 품질 클래스를 가지는 서브 플로우에 할당되도록 하는 과정과;Assigning the data units to the sub-flows to allow data units having a certain priority level to be assigned to a sub-flow having a corresponding quality class;

상기 데이터 유닛들의 할당된 우선 순위 레벨들에 따라 상기 MPTCP 연결의 버퍼 내에 상기 데이터 유닛들을 배열하는 과정과;Arranging the data units in the buffer of the MPTCP connection according to the assigned priority levels of the data units;

상기 할당된 서브 플로우들을 사용하여 상기 버퍼로부터 상기 제2 디바이스로 사용중인 상기 배열된 데이터 유닛들을 전송하는 과정을 포함한다. And transmitting the arranged data units in use from the buffer to the second device using the allocated sub-flows.

상기 우선 순위-관련 정보를 프로세싱하는 과정은:The processing of the priority-related information comprises:

상기 우선 순위-관련 정보로부터 데이터 유닛이 낮은 우선 순위 레벨을 가지는지 혹은 높은 우선 순위 레벨을 가지는지 결정하는 과정과;Determining from the priority-related information whether the data unit has a low priority level or a high priority level;

상기 낮은 우선 순위 레벨을 가지는 데이터 유닛을 높은 우선 순위 데이터 전송 분류를 가지는 서브 플로우에 할당하는 과정과;Assigning the data unit having the low priority level to a subflow having a high priority data transmission classification;

상기 높은 우선 순위 레벨을 가지는 데이터 유닛을 낮은 우선 순위 데이터 전송 분류를 가지는 서브 플로우에 할당하는 과정을 포함할 수 있다.And allocating the data unit having the high priority level to a subflow having a low priority data transmission classification.

상기 방법은 상기 MPTCP 연결의 서브 플로우들을 높은 품질 데이터 전송 분류를 가지는 서브 플로우로 분류하거나, 혹은 낮은 품질 데이터 전송 분류를 가지는 서브 플로우로 분류하는 과정을 더 포함할 수 있다. The method may further include classifying the sub-flows of the MPTCP connection into sub-flows having a high-quality data transmission class, or classifying them into sub-flows having a low-quality data transmission class.

본 발명에 따르면, 첨부된 청구항들에 기재되어 있는 바와 같은 방법, 장치 및 시스템이 제공된다. 본 발명의 다른 특징들은 종속항들 및 하기의 상세한 설명으로부터 자명할 것이다.
According to the present invention, a method, an apparatus and a system as described in the appended claims are provided. Other features of the invention will be apparent from the dependent claims and the following detailed description.

본 발명에 대한 보다 나은 이해를 위해서, 그리고 본 발명의 실시예들이 어떻게 효과적으로 수행될 수 있는지를 나타내기 위해서, 이제부터는 다음과 같은 첨부 도식적 도면들을 참조하여 예시적으로 설명될 것이다:
도 1은 서버로부터 클라이언트로의 데이터 전송에 사용중인 예제 MPTCP 연결의 시스템 개략도를 도시하고 있는 도면이다;
도 2는 본 발명의 데이터 전송 방법의 일 실시예에 따라 MPTCP 연결을 통해 서버로부터 클라이언트로의 데이터 전송을 도시하고 있는 타임라인(timeline)이다;
도 3은 상기 데이터 전송 방법의 일 실시예에 따른 이동 디바이스에 배치된 예제 MPTCP 우선 순위화된 데이터 오프로드 메커니즘(offload mechanism)의 아키텍쳐(architecture)를 도시하고 있다;
도 4는 상기 데이터 전송 방법의 일 실시예에 따른 버퍼 관리를 그래픽적으로 도시하고 있다;
도 5는 상기 데이터 전송 방법의 일 실시예에 따른 비디오 프레임들의 중요 카테고리화를 그래픽적으로 도시하고 있다.
BRIEF DESCRIPTION OF THE DRAWINGS For a better understanding of the present invention and to show how embodiments of the invention may be effected, reference will now be made, by way of example, to the accompanying diagrammatic drawings in which:
Brief Description of the Drawings Figure 1 shows a system schematic of an example MPTCP connection being used for data transmission from a server to a client;
Figure 2 is a timeline illustrating data transmission from a server to a client over an MPTCP connection in accordance with an embodiment of the data transfer method of the present invention;
Figure 3 illustrates the architecture of an example MPTCP prioritized data offload mechanism deployed in a mobile device according to one embodiment of the data transfer method;
Figure 4 graphically illustrates buffer management according to one embodiment of the data transfer method;
Figure 5 graphically illustrates an important categorization of video frames according to one embodiment of the data transfer method.

본 발명의 실시예들은 상기 MPTCP 오프로딩 메커니즘에 패킷/세그먼트 분석기(304), 서브 플로우 코디네이터(subflow coordinator)(306), 버퍼 관리기(308), 듀얼 혼잡 제어(dual congestion control)(310)를 포함할 수 있는 새로운 절차들을 도입한다. 도 2는 서버(300)와 클라이언트(302)간의 MPTCP 송신 진행에 따른 상기 도입된 절차들의 타임라인(timeline) 다이아그램이다. 도 2의 단계들은 오직 예일 뿐이며, 다른 실시예들에서는 상기 단계들 중 적어도 일부가 재정렬될 수 있거나 혹은 생략될 수 있고, 및/혹은 추가적인 단계들이 또한 수행될 수 있다는 것이 이해될 것이다. Embodiments of the present invention include a packet / segment analyzer 304, a subflow coordinator 306, a buffer manager 308, and a dual congestion control 310 in the MPTCP offloading mechanism And introduces new procedures that can be FIG. 2 is a timeline diagram of the introduced procedures as the MPTCP transmission progresses between the server 300 and the client 302. FIG. It will be appreciated that the steps of FIG. 2 are exemplary only, and that in other embodiments at least some of the steps may be reordered or omitted, and / or that additional steps may also be performed.

상기 절차는 MTCP 연결이 다수의 활성화된 서브 플로우들을 사용하여 이동 핸드셋(mobile handset)(클라이언트(302)) 및 송신기((서버(300))간에 성립된다고 가정하기로 한다. 교차 계층 정보(cross layer information) 교환이 세션 계층과 트랜스포트 계층간에 발생하여 상기 패킷들/세그먼트들의 우선 순위화 레벨 및 상기 패킷들/세그먼트들 중 어떤 패킷들/세그먼트들이 높은 우선 순위 중요 태스크들에 상응하는지(일 예로, 브라우징시 DOM을 구성하는 것에 관련되는 세그먼트들, 혹은 비디오 송신시 I-프레임들, 하지만, 상기 방법은 다양한 방식들로 우선 순위화될 수 있는 다른 타입들의 데이터 유닛들에도 적용될 수 있다는 것이 이해될 것이다)에 관한 MPTCP를 알려주는 포인트로부터 시작하기로 한다. 상기 패킷 분석기(Packet Analyzer: PA)(304)는 상기 세그먼트들/패킷들을 우선 순위 레벨 클래스들로 분류한다. 예제 실시예에서, 상기 클래스들은 상기 교환되는 정보(일 예로, SPDY™ 서비스를 가정할 경우의 세그먼트의 우선 순위)를 기반으로 높은 우선 순위 클래스(high priority class: HPC) 및 낮은 우선 순위 클래스(low priority class: LPC)를 포함한다. 하지만, 다른 실시예들에서, 다른 타입들 및/혹은 다수의 우선 순위 레벨 클래스들이 사용될 수 있다는 것이 이해될 것이다.This procedure assumes that the MTCP connection is established between a mobile handset (client 302) and a transmitter (server 300) using a plurality of activated sub-flows. Cross layer information information exchange occurs between the session layer and the transport layer to determine the prioritization level of the packets / segments and which packets / segments of the packets / segments correspond to high priority critical tasks (e.g., It will be appreciated that segments related to constructing the DOM at browsing, or I-frames at the time of video transmission, but the method may also be applied to other types of data units that may be prioritized in various manners The Packet Analyzer (PA) 304 receives the MPTCP from the segment / packets In the exemplary embodiment, the classes are classified into priority level classes based on the information to be exchanged (e.g., the priority of a segment when assuming an SPDY ™ service) : HPC) and a low priority class (LPC). However, it will be appreciated that in other embodiments, other types and / or multiple priority level classes may be used.

한편, 상기 서브 플로우 코디네이터(Subflow Coordinator: SC)(306)는 상기 유용한 서브 플로우들을 상기 유용한 서브 플로우들의 손실 레이트 및/혹은 RTT 및/혹은 ACK들과 같은 다른 파라미터들과 같은 데이터 전송 품질 팩터들을 기반으로 품질 클래스들로 분류한다. 상기 SC에 의해 수행될 수 있는 상기 분류 절차들의 예들은 하기에서 설명된다. 상기 분류는 다이나믹하게 수행되며, 클라이언트 설정들을 기반으로 일 예로 네트워크/무선 조건 변경과 같은 짧은 기간에 대한 연속적이고도 빠른 리밸런싱(rebalancing)을 허여한다. 상기 예제 실시예에서, 서브 플로우들의 두 가지 품질 클래스들이 제공된다. 상기 서브 플로우 클래스들은 그리고 나서 상기 PA(304)에 의해 수행되는 상기 HPC 및 LPC 세그먼트들/프래그먼트들에 매핑된다. 상기 분류를 수행하는 예제 메커니즘이 하기에서 설명될 것이다. 다른 실시예들에서, 다른 타입들 및/혹은 다수의 품질 클래스들이 사용될 수 있다. 상기 데이터 유닛 우선 순위 레벨 클래스들, 상기 서브 플로우 품질 클래스들 및/혹은 상기 MPTCP 연결에 관련되는 네트워크 인터페이스들의 개수는 서로에게 필수적으로 상응하지는 않는다. Meanwhile, the sub-flow coordinator (SC) 306 may calculate the useful sub-flows based on data transmission quality factors such as the loss rate of the useful sub-flows and / or other parameters such as RTT and / or ACKs Quality classes. Examples of the above classification procedures that can be performed by the SC are described below. The classification is performed dynamically and allows continuous and rapid rebalancing for short periods of time, e.g., based on client settings, e.g., network / wireless condition changes. In the example embodiment, two quality classes of subflows are provided. The sub-flow classes are then mapped to the HPC and LPC segments / fragments performed by the PA 304. An example mechanism for performing the above classification will be described below. In other embodiments, other types and / or multiple quality classes may be used. The data unit priority level classes, the subflow quality classes and / or the number of network interfaces associated with the MPTCP connection do not necessarily correspond to each other.

각 윈도우에 포함하는 특정한 개수의 높은 우선 순위 패킷들 및 특정한 개수의 낮은 우선 순위 패킷들을 할당하는 것을 포함할 수 있는, 각 클래스에 대한 어그리게이트 유용 서브 플로우 윈도우들을 산출한 후, 상기 버퍼 관리기(Buffer Manager: BM)(308)는 상기 서버(300)의 공통 버퍼 내에서 상기 분류된 패킷들을 재정렬하여 상기 유용한 버퍼 공간이 보다 나은 버퍼 사용 효율성을 위해 공정 기회 방식(fair and opportunistic manner)으로 HPC 및 LPC 세그먼트들/패킷들 둘 다에 대해서 할당될 수 있도록 한다. 이런 할당의 예제가 하기에서 설명될 것이다. After calculating the aggregate useful subflow windows for each class, which may include assigning a specific number of high priority packets and a specific number of low priority packets contained in each window, the buffer manager The buffer manager (BM) 308 rearranges the classified packets in a common buffer of the server 300 so that the useful buffer space can be allocated to HPC and / or HPC in a fair and opportunistic manner for better buffer utilization efficiency. Lt; RTI ID = 0.0 > LPC < / RTI > segments / packets. An example of such an assignment will be described below.

마지막으로, 두 개의 별도의 혼잡 제어들(310)은 상기에서 설명된 바와 같은 각 품질 클래스에 적용될 수 있고, 상기 연산된 분류들에 따라 상기 패킷들을 상기 서브 플로우들에 할당할 수 있다. 각 혼잡 제어 프로세스는 상기 두 개의 제어들이 explicitly 결합되지 않고, 독립적으로 동작된다고 할지라도 기본 결합 MPTCP 혼잡 제어 메커니즘(basic coupled MPTCP congestion control mechanism)이 될 수 있다. 하지만, 서브 플로우 분류는 다이나믹하기 때문에, 서브 플로우들은 상기 두 개의 메커니즘들간의 간접적인 커플링의 분류를 확실하게 하는 다른 서브 플로우에 규칙적으로 재할당될 수 있다. Finally, two separate congestion controls 310 may be applied to each quality class as described above, and the packets may be assigned to the sub-flows according to the computed classifications. Each congestion control process may be a basic coupled MPTCP congestion control mechanism even though the two controls are not explicitly coupled and operate independently. However, since the sub-flow classification is dynamic, the sub-flows can be re-allocated regularly to other sub-flows ensuring classification of the indirect coupling between the two mechanisms.

상기 데이터가 상기 서버(300)로부터 상기 클라이언트(302)로 전송되도록 하기 위해서, 상기 패킷들은 상기 클라이언트 디바이스의 플로우 제어기(312)로 전송되며, 상기 클라이언트 디바이스는 상기 서버에게 상기 클라이언트 디바이스의 버퍼에서의 공간이 상기 데이터를 수신하기에 유용한지 여부를 지시한다. In order for the data to be transmitted from the server 300 to the client 302, the packets are sent to the flow controller 312 of the client device, Indicating whether the space is useful for receiving the data.

안드로이드(Android™) 이동 전화에서의 예제 MPTCP 플로우 제어 메커니즘의 블록 아키텍쳐(architecture) 및 그 배치가 도 3에 도시되어 있다. 상기 예제 MPTCP 플로우 제어 메커니즘은 두 개의 네트워크 토팔러지들: LTE 및 무선 근거리 네트워크(Wireless Local Area Network: WLAN)를 사용하여 구현된다. 상기 아키텍쳐는 상기 규칙적 MPTCP/TCP 소켓 API(501)(이미 두 개의 서브 플로우들이 개시되어 있는 상기 서버/송신기와 상기 클라이언트간의 성립된 MPTCP 연결을 가정할 경우)를 유지하고, 하기에서 설명되는, 서로 다른 계층들에 배치되는, 상기 패킷 분석기(packet analyzer: PA)(304) 및 상기 서브 플로우 코디네이터(subflow coordinator: SC)(306)를 도입하지만, 상기 세션 및 트랜스포트 계층들간의 교차 계층 채널을 사용하여 우선 순위화 제어 신호들을 교환한다. 다른 실시예들에서, 다른 타입들의 네트워크들, 인터페이스들, 송신/수신 디바이스들이 사용될 수 있다는 것이 이해될 것이다. The block architecture and the deployment of an example MPTCP flow control mechanism in an Android ™ mobile phone is shown in FIG. The example MPTCP flow control mechanism is implemented using two network tokens: LTE and Wireless Local Area Network (WLAN). The architecture maintains the regular MPTCP / TCP socket API 501 (assuming an established MPTCP connection between the server / transmitter and the client where two subflows are already present) A packet analyzer (PA) 304 and a subflow coordinator (SC) 306, which are located in different layers, are introduced, but using an intersection layer channel between the session and transport layers And exchanges prioritization control signals. It will be appreciated that in other embodiments, other types of networks, interfaces, transmit / receive devices may be used.

상기 패킷 분석기(packet analyzer: PA)(304)는 상기 세션/어플리케이션 계층(502)과 트랜스포트 계층간의 인터페이스에서 도입된다(그리고, 따라서 상기 도시되어 있는 실시예에서 상기 안드로이드 프레임워크 내에서 논리적으로 위치된다). 전송될 데이터 유닛들의 우선 순위 레벨들에 관련되는 데이터는 상기 PA(304)에 의해 수신되고 프로세싱된다. 상기 패킷 분석기의 중요한 역할은 상기 교환되는 패킷들의 우선 순위 플래그들/신호들을 기반으로 패킷들을 분류하는 것이다(일 예로, 높은 우선 순위 클래스(high priority class: HPC) 및 낮은 우선 순위 클래스(low priority class: LPC)와 같이). 일 예로, 상기 SPDY™ 서비스의 경우에서, 상기 PA는 상기 세그먼트들을 분류하기 전에 세그먼트들의 그룹 플래그들 혹은 관련 순서를 참조한다. The packet analyzer (PA) 304 is introduced at the interface between the session / application layer 502 and the transport layer (and thus is logically located within the Android framework in the illustrated embodiment) do). Data relating to the priority levels of the data units to be transmitted are received and processed by the PA 304. [ An important role of the packet analyzer is to classify packets based on priority flags / signals of the exchanged packets (e.g., a high priority class (HPC) and a low priority class : LPC)). As an example, in the case of the SPDY (TM) service, the PA refers to group flags or related sequences of segments before classifying the segments.

상기 서브 플로우 코디네이터(subflow coordinator: SC)(306) 및 상기 버퍼 관리기(buffer manager: BM)(308)는 상기 도시되어 있는 실시예에서 상기 리눅스(Linux™) 커널 내에 논리적으로 위치되어 있는, 상기 MPTCP 연결(504), TCP들(505A, 505B) 및 IP 라우팅 컴포넌트(routing component)(506)와 함께 존재한다. 상기 SC(306)는 다이나믹하게 상기 유용한 서브 플로우들(일 예로, 508A, 508B)을 상기 유용한 서브 플로우들의 손실 레이트와 같은 품질-관련 팩터들 및/혹은 RTT 및 ACK들과 같은 다른 파라미터들을 기반으로 품질 클래스들, 일 예로, HPC 및 LPC로 분류한다. 다른 실시예들에서, 상기 플로우 제어 윈도우로부터의 데이터는 품질 클래스들을 할당하기 위해 사용될 수 있고, 일반적으로, 송신 동안 교환되는 어떤 정보라도 상기 분류를 기반으로 할 수 있다. 또한, 다른 메커니즘들이 상기 분류 프로세스를 수행하기 위해 사용될 수 있다는 것이 이해될 것이다. The subflow coordinator (SC) 306 and the buffer manager (BM) 308 are coupled to the MPTCP 306, which is logically located in the Linux ™ kernel in the illustrated embodiment. Connection 504, TCPs 505A and 505B, and an IP routing component 506. As shown in FIG. The SC 306 may dynamically determine the useful sub-flows (e.g., 508A, 508B) based on quality-related factors such as the loss rate of the useful sub-flows and / or other parameters such as RTT and ACKs Quality classes, for example, HPC and LPC. In other embodiments, the data from the flow control window can be used to assign quality classes, and in general any information exchanged during transmission can be based on the classification. It will also be appreciated that other mechanisms may be used to perform the classification process.

첫 번째 예제 분류 프로세스는 각 서브 플로우의 손실 레이트를 계산하는 것을 기반으로 하는 간단한 분류 프로세스이다. 이 예제 분류 절차를 사용할 경우, 시작에서, 모든 서브 플로우들, 즉 i=1:N 개의 서브 플로우들은 상기 SC(306)에 의해 상기 HPC 클래스로 분류된다. 그리고 나서, 상기 SC(306)는 특정 시간 윈도우 T: 일반적으로 각 서브 플로우에 대해서 몇 개의 RTT들 내에서 상기 손실된 패킷들(NACK(non-acknowledged) 패킷들)의 개수를 인지하고, 그리고 나서 이 시간 윈도우 내에서의 평균 손실 레이트 LRi를 하기 수학식과 같이 계산한다:The first example classification process is a simple classification process based on calculating the loss rate of each sub-flow. When using this example classification procedure, at the start, all sub-flows, i = 1: N sub-flows, are classified by the SC 306 into the HPC class. The SC 306 then recognizes the number of the non-acknowledged packets (NACK) within a certain time window T: typically within several RTTs for each sub-flow, The average loss rate LR i in this time window is calculated as: < RTI ID = 0.0 >

Figure pat00002
Figure pat00002

모든 LRi i=1:N를 계산한 후, 상기 SC(306)는 모든 서브 플로우들의 손실 레이트들을 기반으로 상기 모든 서브 플로우들을 정렬한다. 기본적으로,

Figure pat00003
인 서브 플로우는 HPC로 분류되고, 상기 조건에 부합되지 못하는 서브 플로우에는 상기 LPC 클래스로 할당된다.
Figure pat00004
의 대표적인 예제 값은 1%이다. After calculating all LR i i = 1: N, the SC 306 aligns all of the sub-flows based on the loss rates of all the sub-flows. Basically,
Figure pat00003
Is classified as HPC, and a subflow that does not meet the above condition is assigned to the LPC class.
Figure pat00004
A typical example value is 1%.

상기 SC(306)에 의해 수행될 수 있는, 보다 더 복잡하지만, 보다 더 효율적인 분류 절차의 예제는 서브 플로우들의 모든 가능한 서브 그룹들의 M개의 높은 우선 순위 패킷들을 전달하는 기대 시간을 계산하는 것을 기반으로 한다. 각 서브 플로우에 대해서, 상기 SC(306)는 상기 각 서브 플로우가 상기 MPTCP 혼잡 제어 메카니즘의 실제 상태/현재의 스테이트(state)로부터 시작되는 서브 플로우들의 서브 그룹을 통해 M개의 패킷들을 전달하는 것을 시도하고 있다고 가정하며, 그리고 나서 상기 패킷들의 반복적 송신을 동작시키고, 알려진 혼잡 제어 알고리즘들을 기반으로 각 RTT에서 각 서브 플로우에 대한 상응하는 윈도우를 계산한다. An example of a more complex but more efficient classification procedure that can be performed by the SC 306 is based on calculating the expected time to deliver M high priority packets of all possible subgroups of subflows do. For each sub-flow, the SC 306 attempts to deliver M packets through the sub-group of sub-flows that each sub-flow originates from the actual state / current state of the MPTCP congestion control mechanism And then operates iterative transmission of the packets and calculates the corresponding window for each sub-flow in each RTT based on known congestion control algorithms.

일 실시예에서, 상기 버퍼 관리기(buffer manager: BM)(308)는 상기 분류된 패킷들을 상기 공통 버퍼에 할당하여 HPC 패킷들이 상기 공통 버퍼의 시작으로부터 시작되어 위치되고, 일 예로, 왼쪽으로부터 오른쪽으로(포워드 로딩(forward loading) 로딩되고, LPC 패킷들은 상기 마지막으로부터 시작되어 오른쪽에서 왼쪽으로 로딩되도록 한다. 이는 한 가지 가능한 버퍼 관리 예제일 뿐이며, 다른 공유 메카니즘들이 사용될 수 있다는 것이 이해될 것이다. 도 4는 이 방법에 따른 버퍼 관리를 그래픽적으로 도시하고 있다. 한 가지 중요한 측면은 HPC 데이터는 상기 유용한 메모리 공간이 HPC 송신에 대해 필요로 될 경우 LPC의 더 이상의 추가적인 로딩이 수행되지 않는 로딩되는 버퍼의 경우에서 항상 우선 순위를 가질 수 있다. In one embodiment, the buffer manager (BM) 308 allocates the classified packets to the common buffer so that HPC packets are located starting from the beginning of the common buffer, (Forward loading, LPC packets starting from the end and loading from right to left. It will be appreciated that this is only one possible buffer management example, and that other sharing mechanisms may be used. Graphically illustrates buffer management according to this method. One important aspect is that the HPC data is stored in a buffer that is loaded with no further loading of the LPC when the useful memory space is needed for HPC transmission In the case, you can always have priority.

다른 실시예는 SPDY™ 세그먼트들을 프로세싱하도록 구성된다. SPDY™은 HTTP 통신을 작은 개별 프레임들로 분할하고, 상기 작은 개별 프레임들은 논리 스트림(stream) 내에서의 메시지들에 매핑된다. 상기 스트림은 양방향 메시지들을 운반하는 가상 채널이다. 각 스트림은 고유한 정수 식별자 (1, 2, …, S)를 가진다. HTTP 1.x와는 달리, SPDY™에서, 모든 통신은 단일 TCP 연결 내에서 수행된다. SPDY™의 성능을 추가적으로 개선시키기 위해서, 각 스트림에는 31-비트 우선 순위 값이 할당된다:Another embodiment is configured to process SPDY (TM) segments. SPDY (TM) divides the HTTP communication into small individual frames, which are mapped to messages in the logical stream. The stream is a virtual channel carrying bi-directional messages. Each stream has a unique integer identifier (1, 2, ..., S). Unlike HTTP 1.x, in SPDY ™, all communications are performed within a single TCP connection. To further improve SPDY ™ performance, each stream is assigned a 31-bit priority value:

. 0은 가장 높은 우선 순위 스트림을 나타낸다.. 0 represents the highest priority stream.

. 2 31 -1는 가장 낮은 우선 순위 스트림을 나타낸다. . 2 31 -1 represents the lowest priority stream.

상기 브라우저에서 페이지를 렌더링(rendering)할 경우 모든 자원들이 동일한 우선 순위를 가지지 않기 때문에, 상기 HTML 문서 자체는 상기 DOM의 구성에 대해서 중요하고: 상기 캐스케이딩 스타일 시트들(Cascading Style Sheets: CSS)이 상기 CSS 오브젝트 모델(Object Model)을 구성하는 것이 필요로 되며; 상기 DOM 및 CSS 오브젝트 모델 구성 둘 다는 자바 스크립트(JavaScript™) 자원들에서 차단될 수 있으며, 이미지들과 같은 다른 자원들은 주로 더 낮은 우선 순위로 페치(fetch)된다. 공간에서의 우선 순위들을 사용하여, 상기 클라이언트 및 서버는 다양한 기술들을 적용하여 상기 자원들(CPU, 메모리, 대역폭)의 할당을 제어함으로써 개별 스트림들, 메시지들, 프레임들을 최적 순서로 프로세싱하고, 상기 응답 데이터가 유용하면, 상기 클라이언트에 대한 높은-우선 순위 프레임들의 전달을 우선 순위화한다. When rendering a page in the browser, the HTML document itself is important to the construction of the DOM because not all resources have the same priority: the Cascading Style Sheets (CSS) It is necessary to construct the CSS Object Model; Both the DOM and CSS object model configurations can be blocked in JavaScript (TM) resources, and other resources such as images are usually fetched at a lower priority. Using the priorities in space, the client and server apply various techniques to process the individual streams, messages, and frames in an optimal order by controlling the allocation of the resources (CPU, memory, bandwidth) If the response data is useful, it prioritizes delivery of high-priority frames to the client.

하지만, SPDY™는 모든 세그먼트들을 하나의 TPC 연결로 페치하도록 디자인되고, MPTCP에 대해서는 디자인되지 않는다. 기본 MPTCP 상에서 SPDY™를 구현하는 것은 우선 순위화된 세그먼트들을 하나 이상의 TCP 서브 플로우에 매핑하는 것이 고려되지 않기 때문에 최적이 되지는 않을 것이다. 하지만, 본 발명자들은 여기서 설명되는 메카니즘의 일 실시예를 개발하여 높은 우선 순위가 가능한한 빨리 최선의 서브 플로우들의 집합을 통해 송신되는 것을 보장하고, 상기 낮은 우선 순위 세그먼트들을 손실이 있는 서브 플로우들에 할당함으로써 추가적으로 SPDY™ 성능을 향상시킬 수 있는 향상된 매핑을 제공하도록 한다. However, SPDY ™ is designed to fetch all segments into a single TPC connection, and is not designed for MPTCP. Implementing SPDY ™ on native MPTCP will not be optimal because it does not consider mapping prioritized segments to one or more TCP subflows. However, the inventors have developed an embodiment of the mechanism described herein to ensure that a high priority is transmitted through the set of best sub-flows as soon as possible, and the low priority segments are sent to the lost sub- By allocating, you can provide an improved mapping that can further improve SPDY ™ performance.

SPDY™ 메시지들에서 SYN_STREAM 및 SYN_REPLY와 같은 우선 순위 식별자들은 상기 세그먼트들의 우선 순위 레벨을 분류하기 위해 상기 MPTCP 패킷 분석기(304)와 교환될 수 있다. 상기에서 설명된 바와 같은 절차는 그리고 나서 상기 분류 프로세스를 따를 수 있다. Priority identifiers such as SYN_STREAM and SYN_REPLY in the SPDY (TM) messages may be exchanged with the MPTCP packet analyzer 304 to classify the priority levels of the segments. The procedure as described above may then be followed by the classification process.

다른 실시예는 비디오 패킷들의 우선 순위를 기반으로 상기 비디오 패킷들을 분류할 수 있다. 비디오 컨텐트(Video content)는 인코딩된 비디오 패킷들이 일시적으로 이전에 인코딩된 비디오 패킷들과 상관되기 때문에 일반적인 데이터와는 차별화되고, 상기 이전에 인코딩된 비디오 패킷들은 패킷들간의 상호 의존성들을 도입한다. 게다가, 비디오 패킷들은 상기 비디오 패킷들의 능력에 따라 3개의 주요 카테고리들로 분류되어 셀프-디코딩 가능하거나(self-decodable) 혹은 종속적으로 디코딩 가능해진다(dependent-decodable). 비디오 패킷들/프레임들은 3개의 카테고리들: I-프레임들, P-프레임들, B-플레임들로 구분되며, 특히:Other embodiments may classify the video packets based on the priority of the video packets. Video content is differentiated from generic data because encoded video packets are temporarily correlated with previously encoded video packets and the previously encoded video packets introduce interdependencies between the packets. In addition, the video packets are self-decodable or dependent-decodable depending on the capabilities of the video packets and classified into three main categories. Video packets / frames are divided into three categories: I-frames, P-frames, B-frames,

- I-프레임들은 최소 압축 가능 프레임들이고, 디코딩될 다른 비디오 프레임들을 기반으로 하지 않는다- I-frames are the least compressible frames and are not based on other video frames to be decoded

- P-프레임들은 디코딩되기 위해서 이전 프레임들로부터의 데이터를 필요로 하고, I-프레임들보다 더 나은 압축을 성취할 수 있다- P-frames require data from previous frames to be decoded and can achieve better compression than I-frames

- B-프레임들은 높은 레벨의 압축을 성취하기 위해서 인코딩에 대한 이전 및 이후의 프레임들을 사용하지만, 상기 B-프레임들의 디코딩 프로세스는 철저하게 상기 B-프레임들이 기반으로 하는 패킷들의 디코딩의 성공을 기반으로 한다. Although the B-frames use previous and subsequent frames for encoding to achieve a high level of compression, the decoding process of the B-frames is based heavily on the success of decoding the packets on which the B-frames are based .

이 카테고리화를 고려할 경우, 본 발명자들은 상기 프레임들의 독립성 및 셀프-디코딩 능력을 기반으로 상기 프레임들에 대한 우선 순위화(도 5에 도시되어 있는)를 보다 중요하거나, 혹은 덜 중요하게 제안한 바 있다:Considering this categorization, the present inventors have proposed prioritization (shown in FIG. 5) of the frames to be more important or less important based on the independence and self-decoding capability of the frames :

- I-프레임들은 상기 I-프레임들이 셀프-디코딩 가능하고 어떤 기준 프레임도 요구하지 않기 때문에 P-프레임들 혹은 B-프레임들보다 보다 중요하게 고려될 수 있다. P-프레임들 및 B-프레임들은 디코딩되기 위해서 I-프레임들을 필요로 한다. - I-frames may be considered more important than P-frames or B-frames because the I-frames are self-decodable and do not require any reference frames. P-frames and B-frames require I-frames to be decoded.

- P-프레임들은 상기 P-프레임들이 상기 P-프레임들 자신을 디코딩하기 위해 기준 프레임/패킷의 이전의 성공적인 디코딩을 필요로 하기 때문에 B-프레임들보다 보다 중요하게 고려될 수 있다. 게다가, P-프레임들은 B-프레임들의 인코딩에 대한 기준 프레임으로서 사용될 수 있으며, 따라서 B-프레임들은 상기 B-프레임들이 상기 P-프레임들을 참조할 경우, 상기 P-프레임들을 기반으로 한다. - P-frames may be considered more important than B-frames because the P-frames require prior successful decoding of the reference frame / packet to decode the P-frames themselves. In addition, P-frames can be used as a reference frame for encoding B-frames, so that B-frames are based on the P-frames when the B-frames refer to the P-frames.

- B-프레임들은 상기 B-프레임들이 상기 B-프레임들 자신의 디코딩에 대해서 상기 B-프레임들의 기준 프레임들(I-프레임들 혹은 P-프레임들이 될 수 있다)의 이전의 성공적인 디코딩을 필요로 하기 때문에 P-프레임들 혹은 I-프레임들보다 덜 중요하게 고려될 수 있다(셀프-디코딩 능력 측면에서). - B-frames require previous successful decoding of the reference frames of the B-frames (which may be I-frames or P-frames) for decoding of the B-frames themselves (Or in terms of self-decoding capability) since it is less important than P-frames or I-frames.

상기 MPTCP 패킷 분석기(304)와 비디오 프레임 타입 및 중요도 레벨(일 예로, 일 실시예에서, I-프레임들만 중요하고 높은 우선 순위라고 고려되고, B-프레임들 및 P-프레임들 둘 다는 낮은 우선 순위로 고려된다)을 교환함으로써, 상기 PA는 상기 상응하는 프레임들을 HPC 혹은 LHC 클래스들로 분류할 수 있다. 상기에서 설명한 바와 같은 프로세스는 그리고 나서 상기 송신 프로세스를 완료하도록 할 수 있다. (E.g., in one embodiment, only I-frames are considered to be significant and high priority, and both B-frames and P-frames have a low priority , The PA can classify the corresponding frames into HPC or LHC classes. The process as described above may then be allowed to complete the transmission process.

한편, 별도의 도면으로 도시하지는 않았으나, 본 발명의 일 실시예에서 서버는 송신기와, 제어기와, 수신기와, 저장 유닛을 포함할 수 있다.Meanwhile, although not shown in separate drawings, in one embodiment of the present invention, a server may include a transmitter, a controller, a receiver, and a storage unit.

먼저, 상기 제어기는 상기 서버의 전반적인 동작을 제어한다. 상기 제어기는 상기 서버가 본 발명의 일 실시예에 따른 MPTCP 연결을 사용하여 데이터를 전송하는 동작에 관련된 전반적인 동작을 수행하도록 제어한다. 여기서, 본 발명의 일 실시예에 따른 MPTCP 연결을 사용하여 데이터를 전송하는 동작에 관련된 전반적인 동작은 도 2 내지 도 5에서 설명한 바와 동일하므로, 그 상세한 설명을 생략하기로 한다. First, the controller controls the overall operation of the server. The controller controls the server to perform the overall operation related to the operation of transmitting data using the MPTCP connection according to an embodiment of the present invention. Here, since the overall operation related to the operation of transmitting data using the MPTCP connection according to the embodiment of the present invention is the same as that described with reference to FIG. 2 to FIG. 5, detailed description thereof will be omitted.

상기 송신기는 상기 제어기의 제어에 따라 다른 엔터티, 일 예로 클라이언트 등으로 각종 신호들 및 각종 메시지들 등을 송신한다. 여기서, 상기 송신기가 송신하는 각종 신호들 및 각종 메시지들 등은 도 2 내지 도 5에서 설명한 바와 동일하므로, 그 상세한 설명을 생략하기로 한다.The transmitter transmits various signals and various messages to another entity, e.g., a client, under the control of the controller. Here, various signals and various messages transmitted by the transmitter are the same as those described with reference to FIGS. 2 to 5, and a detailed description thereof will be omitted.

또한, 상기 수신기는 상기 제어기의 제어에 따라 다른 엔터티, 일 예로 클라이언트 등으로부터 각종 신호들 및 각종 메시지들 등을 수신한다. 여기서, 상기 수신기가 수신하는 각종 신호들 및 각종 메시지들 등은 도 2 내지 도 5에서 설명한 바와 동일하므로, 그 상세한 설명을 생략하기로 한다.In addition, the receiver receives various signals and various messages from other entities, for example, clients, under the control of the controller. Here, various signals and various messages received by the receiver are the same as those described with reference to FIG. 2 to FIG. 5, and a detailed description thereof will be omitted.

상기 저장 유닛은 상기 서버의 동작에 필요한 프로그램과 각종 데이터 등, 특히 본 발명의 일 실시예에 따른 MPTCP 연결을 사용하여 데이터를 전송하는 동작에 관련된 전반적인 동작에 관련된 정보 등을 저장한다. 또한, 상기 저장 유닛은 상기 수신기가 수신한 각종 신호들 및 각종 메시지들 등을 저장한다. The storage unit stores information related to the overall operation related to the operation of transmitting data using the MPTCP connection according to an embodiment of the present invention, such as programs and various data necessary for the operation of the server. In addition, the storage unit stores various signals and various messages received by the receiver.

한편, 상기에서는 상기 서버가 상기 송신기와, 제어기와, 수신기와, 저장 유닛과 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 서버는 상기 송신기와, 제어기와, 수신기와, 저장 유닛 중 적어도 두 개가 1개의 유닛으로 통합된 형태로 구현 가능함은 물론이다.In the above description, the server is implemented as separate units such as the transmitter, the controller, the receiver, and the storage unit. However, the server may include the transmitter, the controller, the receiver, It should be understood that at least two units may be integrated into one unit.

또한, 별도의 도면으로 도시하지는 않았으나, 본 발명의 일 실시예에서 클라이언트는 송신기와, 제어기와, 수신기와, 저장 유닛을 포함할 수 있다.Also, although not shown in separate drawings, in one embodiment of the present invention, the client may include a transmitter, a controller, a receiver, and a storage unit.

먼저, 상기 제어기는 상기 클라이언트의 전반적인 동작을 제어한다. 상기 제어기는 상기 클라이언트가 본 발명의 일 실시예에 따른 MPTCP 연결을 사용하여 데이터를 전송하는 동작에 관련된 전반적인 동작을 수행하도록 제어한다. 여기서, 본 발명의 일 실시예에 따른 MPTCP 연결을 사용하여 데이터를 전송하는 동작에 관련된 전반적인 동작은 도 2 내지 도 5에서 설명한 바와 동일하므로, 그 상세한 설명을 생략하기로 한다. First, the controller controls the overall operation of the client. The controller controls the client to perform the overall operation related to the operation of transmitting data using the MPTCP connection according to an embodiment of the present invention. Here, since the overall operation related to the operation of transmitting data using the MPTCP connection according to the embodiment of the present invention is the same as that described with reference to FIG. 2 to FIG. 5, detailed description thereof will be omitted.

상기 송신기는 상기 제어기의 제어에 따라 다른 엔터티, 일 예로 서버 등으로 각종 신호들 및 각종 메시지들 등을 송신한다. 여기서, 상기 송신기가 송신하는 각종 신호들 및 각종 메시지들 등은 도 2 내지 도 5에서 설명한 바와 동일하므로, 그 상세한 설명을 생략하기로 한다.The transmitter transmits various signals and various messages to another entity, e.g., a server, under the control of the controller. Here, various signals and various messages transmitted by the transmitter are the same as those described with reference to FIGS. 2 to 5, and a detailed description thereof will be omitted.

또한, 상기 수신기는 상기 제어기의 제어에 따라 다른 엔터티, 일 예로 서버 등으로부터 각종 신호들 및 각종 메시지들 등을 수신한다. 여기서, 상기 수신기가 수신하는 각종 신호들 및 각종 메시지들 등은 도 2 내지 도 5에서 설명한 바와 동일하므로, 그 상세한 설명을 생략하기로 한다.In addition, the receiver receives various signals and various messages from another entity, e.g., a server, under the control of the controller. Here, various signals and various messages received by the receiver are the same as those described with reference to FIG. 2 to FIG. 5, and a detailed description thereof will be omitted.

상기 저장 유닛은 상기 클라이언트의 동작에 필요한 프로그램과 각종 데이터 등, 특히 본 발명의 일 실시예에 따른 MPTCP 연결을 사용하여 데이터를 전송하는 동작에 관련된 전반적인 동작에 관련된 정보 등을 저장한다. 또한, 상기 저장 유닛은 상기 수신기가 수신한 각종 신호들 및 각종 메시지들 등을 저장한다. The storage unit stores information related to an overall operation related to an operation of transmitting data using an MPTCP connection according to an embodiment of the present invention, such as programs and various data necessary for the operation of the client. In addition, the storage unit stores various signals and various messages received by the receiver.

한편, 상기에서는 상기 클라이언트가 상기 송신기와, 제어기와, 수신기와, 저장 유닛과 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 클라이언트는 상기 송신기와, 제어기와, 수신기와, 저장 유닛 중 적어도 두 개가 1개의 유닛으로 통합된 형태로 구현 가능함은 물론이다.In the above description, the client is implemented as separate units such as the transmitter, the controller, the receiver, and the storage unit. However, the client includes the transmitter, the controller, the receiver, It should be understood that at least two units may be integrated into one unit.

본 발명의 실시예들은 송신될 패킷들과 같은 데이터 유닛들의 우선 순위들이 보다 최적화된 서비스에 대해 상기 오프로드 메카니즘에 반영되는 효율적인 MPTCP 송신 방식을 제공할 수 있다. 상기 MPTCP 오프로딩 메카니즘에서의 추가적인 유연성은 상위 계층들의 설정들을 만족시킬 수 있고, 상기 상위 계층들의 설정들은 상기 교차 계층 가시성(cross layer visibility)을 도입함으로써 성취될 수 있다. Embodiments of the present invention may provide an efficient MPTCP transmission scheme in which priorities of data units, such as packets to be transmitted, are reflected in the offload mechanism for more optimized services. The additional flexibility in the MPTCP offloading mechanism can satisfy the settings of higher layers and the settings of the higher layers can be achieved by introducing the cross layer visibility.

현재, 클라이언트들은 휴리스틱(heuristics)을 사용하여 주기적으로 가장 좋은 인터페이스를 선택할 수 있고, 기존 연결들을 종료시키고 새로운 연결들을 재성립할 때 마다 스위치가 이루어진다. 여기에서 설명되는 상기 MPTCP 우선 순위화 데이터 오프로딩 메카니즘의 실시예들은 상기와 같은 이진 결정들을 할 필요를 피할 수 있고, 대신에 클라이언트 설정들을 기반으로 무선 조건 변경과 같은 짧은 기간에서 연속적이고 빠른 리밸런싱(rebalancing)을 허여할 수 있다. Currently, clients can periodically select the best interface using heuristics, and switch every time they terminate existing connections and re-establish new connections. Embodiments of the MPTCP prioritized data offloading mechanism described herein may avoid the need to make such binary decisions and instead use continuous and fast rebalancing in a short period of time, (rebalancing).

실시예들은 상기 MPTCP 송신 프로토콜을 변경하지 않고 어떤 제어 신호들 혹은 플래그들도 생성되거나 교환될 필요가 없기 때문에 중간 장비(middlebox)들로 완전하게 보여지지 않을 수 있다. 또한, 오직 교차 계층 정보만이 교환되기 때문에 어떤 추가적인 오버헤드 혹은 제어 데이터도 상기 네트워크를 통해 송신될 필요가 없다. The embodiments may not be completely visible to the middleboxes because no control signals or flags need to be generated or exchanged without changing the MPTCP transmission protocol. Also, since only cross-layer information is exchanged, no additional overhead or control data needs to be transmitted over the network.

본 발명의 바람직한 실시예에 따라, 상기의 실시예들에 따른 방법을 동작시키는 컴퓨터 프로그램을 저장하는 컴퓨터 리드 가능 매체가 제공된다는 것이 이해될 것이다. It will be appreciated that, in accordance with a preferred embodiment of the present invention, there is provided a computer readable medium storing a computer program for operating a method according to the above embodiments.

본 출원에 관해서 이 상세한 설명과 동시에 혹은 이전에 출원되고, 이 상세한 설명으로 공중 조사에 공개되는 모든 문서들 및 서류들과, 상기와 같은 모든 문서들 및 서류들의 컨텐트들은 참조로 여기에 포함된다는 것에 유의하여야 할 것이다. All documents and documents filed concurrently with or in connection with this application or which have been previously filed and which are disclosed to the public within this disclosure and the contents of all such documents and documents are hereby incorporated by reference It should be noted.

본 명세서(첨부 청구항들, 요약서, 도면들을 포함하는)에서 개시되는 모든 특징들, 및/혹은 상기에서와 같이 개시된 방법 혹은 프로세서의 모든 단계들은 상기와 같은 특징들, 및/혹은 단계들 중 적어도 일부가 상호 배제되는 결합들을 제외한, 어떤 결합으로라도 결합될 수 있다. All features disclosed in this specification (including any accompanying claims, abstract, drawings), and / or all steps of a method or processor disclosed in the above description may be combined with at least some of the features, and / May be combined in any combination, except for those that are mutually excluded.

본 명세서(첨부 청구항들, 요약서, 도면들을 포함하는)에 개시되어 있는 각 특징은 별도로 다르게 언급되지 않는 한 동일하거나, 등가적이거나, 혹은 유사한 목적을 서비스하는 다른 특징들로 대체될 수 있다. 따라서, 별도로 다르게 언급되지 않는한, 개시되어 있는 각 특징은 등가의 혹은 유사한 특징들의 일반적인 시리즈의 한 예제일 뿐이다. Each feature disclosed in this specification (including any accompanying claims, abstract, drawings) may be replaced by other features that serve the same, equivalent, or similar purpose, unless specifically stated otherwise. Thus, unless stated otherwise, each feature disclosed is but one example of a generic series of equivalent or similar features.

본 발명은 상기의 실시예(들)의 구체적인 사항들로 제한되지 않는다. 본 발명은 본 상세한 설명(첨부되는 청구항들, 요약서 및 도면들을 포함하는)에서 개시되어 있는 특징들의 신규한 특징, 혹은 신규한 결합, 혹은 상기에서 개시된 방법 혹은 프로세스의 단계들의 신규한 단계 혹은 신규한 결합으로 확장된다.The present invention is not limited to the specific details of the above-described embodiment (s). It is intended that the present invention not be limited to the novel features or novel combinations of features disclosed in this specification (including any accompanying claims, abstract and drawings), or to novel steps or steps of the method or process disclosed hereinabove, Lt; / RTI >

Claims (27)

다중 경로 송신 제어 프로토콜(Multipath Transmission Control Protocol: MPTCP) 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법에 있어서,
상기 제1 디바이스로부터 데이터 유닛들의 집합을 포함하는, 사용중인 전송될 데이터를 수신하는 과정과;
상기 수신된 데이터로부터 상기 데이터 유닛들에 대한 우선 순위-관련 정보를 추출하는 과정과;
상기 데이터 유닛들 각각을 상기 MPTCP 연결의 다수의 서브 플로우들 중 하나에 할당하기 위해 상기 우선 순위-관련 정보를 프로세싱하는 과정과;
상기 할당된 서브 플로우들을 사용하여 상기 MPTCP 연결을 통해 상기 제2 디바이스로 상기 사용중인 데이터 유닛들을 전송하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
A method for transmitting data between a first device and a second device using a Multipath Transmission Control Protocol (MPTCP) connection, the method comprising:
Receiving data to be transmitted in use, the data including a set of data units from the first device;
Extracting priority-related information for the data units from the received data;
Processing the priority-related information to assign each of the data units to one of a plurality of sub-flows of the MPTCP connection;
And transmitting the data units in use to the second device over the MPTCP connection using the assigned sub-flows. The method of claim 1, further comprising transmitting data between the first device and the second device using an MPTCP connection How to.
제1항에 있어서,
상기 우선 순위-관련 정보를 프로세싱하는 과정은 다수의 우선 순위 레벨들 중 하나를 상기 각 데이터 유닛에 할당하기 위해 상기 데이터 유닛들을 분석하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method according to claim 1,
Wherein the processing of the priority-related information comprises analyzing the data units to assign one of a plurality of priority levels to each of the data units. ≪ RTI ID = 0.0 > And transferring data between the first device and the second device.
제2항에 있어서,
다수의 품질 클래스(class)들 중 하나를 상기 각 서브 플로우에 할당하기 위해서 상기 MPTCP 연결의 서브 플로우들을 분석하는 과정을 더 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
3. The method of claim 2,
Further comprising analyzing the sub-flows of the MPTCP connection to assign one of a plurality of quality classes to each of the sub-flows, using the MPTCP connection. How to transfer data.
제3항에 있어서,
상기 우선 순위-관련 정보를 프로세싱하는 과정은 상기 데이터 유닛들을 상기 서브 플로우들에 할당하여 특정한 우선 순위 레벨을 가지는 데이터 유닛들이 상응하는 품질 클래스를 가지는 상기 서브 플로우에 할당되도록 하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method of claim 3,
Wherein the step of processing the priority-related information comprises the step of allocating the data units to the sub-flows and allocating the data units having a certain priority level to the sub-flows having a corresponding quality class The method comprising: transmitting data between a first device and a second device using an MPTCP connection.
제4항에 있어서,
상기 데이터 유닛들의 상기 할당된 우선 순위 레벨들에 따라 버퍼에 상기 데이터 유닛들을 배열하는 과정과,
상기 할당된 서브 플로우들을 사용하여 상기 사용중인 배열된 데이터 유닛들을 상기 버퍼로부터 상기 제2 디바이스로 전송하는 과정을 더 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
5. The method of claim 4,
Arranging the data units in a buffer according to the assigned priority levels of the data units;
And transferring the in-use arranged data units from the buffer to the second device using the allocated sub-flows. The method of claim 1, further comprising: transmitting data between the first device and the second device using the MPTCP connection How to transfer.
제1항 내지 제5항 중 어느 한 항에 있어서,
별도의 혼잡 제어 프로세스를 상기 각 서브 플로우에 적용하는 과정을 더 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
6. The method according to any one of claims 1 to 5,
Further comprising applying a separate congestion control process to each of the sub-flows. ≪ Desc / Clms Page number 21 >
제6항에 있어서,
상기 혼잡 제어 프로세스는 결합 MPTCP 혼잡 제어 메커니즘(coupled MPTCP congestion control mechanism)을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method according to claim 6,
Wherein the congestion control process comprises a combined MPTCP congestion control mechanism. ≪ Desc / Clms Page number 21 >
제3항에 있어서,
상기 서브 플로우들을 분석하는 과정은 상기 서브 플로우들을 상기 서브 플로우들의 적어도 하나의 데이터 전송 품질-관련 팩터(factor)를 기반으로 상기 품질 클래스들로 분류하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method of claim 3,
Wherein the step of analyzing the sub-flows comprises classifying the sub-flows into quality classes based on at least one data transmission quality-related factor of the sub-flows. Thereby transferring data between the first device and the second device.
제3항에 있어서,
상기 서브 플로우들을 분석하는 과정은 상기 서브 플로우의 손실 레이트를 계산하는 과정과,
상기 계산된 손실 레이트를 기반으로 상기 품질 클래스를 상기 서브 플로우에 할당하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method of claim 3,
The process of analyzing the sub-flows may include calculating a loss rate of the sub-
And allocating the quality class to the sub-flow based on the calculated loss rate. The method of claim 1, wherein the quality class is allocated to the sub-flow.
제9항에 있어서,
상기 서브 플로우의 손실 레이트를 계산하는 과정은:
상기 각 서브 플로우를 사용하여 다수의 데이터 유닛들을 전송하는 과정과;
상기 각 서브 플로우에 대한 시간 윈도우(time window) 내에서 손실된 데이터 유닛들의 개수를 인지하는 과정과;
상기 각 서브 플로우에 대한 시간 윈도우 내에서 평균 손실 레이트를 계산하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
10. The method of claim 9,
Calculating a loss rate of the sub-flow comprises:
Transmitting a plurality of data units using each sub-flow;
Recognizing the number of lost data units in a time window for each sub-flow;
And calculating an average loss rate within a time window for each sub-flow. ≪ Desc / Clms Page number 21 >
제10항에 있어서,
기준 값 보다 작은 계산된 평균 손실 레이트를 가지는 서브 플로우는 높은 품질 클래스 서브 플로우로 분류됨을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
11. The method of claim 10,
Wherein the sub-flow having a calculated average loss rate less than a reference value is classified as a high quality class sub-flow.
제3항에 있어서,
상기 서브 플로우들을 분석하는 과정은:
상기 서브 플로우들의 서브 그룹들의 다수의 결합들을 통해 다수의 높은 우선 순위 레벨 데이터 유닛들을 전달하는 기대 전달 시간을 계산하는 과정과;
가장 낮은 기대 전달 시간을 가지는 서브 그룹의 서브 플로우들을 높은 품질 클래스로 분류하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method of claim 3,
The process of analyzing the subflows comprises:
Calculating an expected transfer time to transfer a plurality of high priority level data units through a plurality of combinations of subgroups of the subflows;
Classifying the sub-flows of the sub-group having the lowest expected delivery time into a high-quality class.
제12항에 있어서,
상기 기대 전달 시간을 계산하는 과정은:
상기 서브 플로우들의 서브 그룹을 통해 상기 다수의 데이터 유닛들의 전달을 시도하는 과정과,
상기 기대 전달 시간을 계산하기 위해서 상기 다수의 데이터 유닛들의 반복 송신을 수행하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
13. The method of claim 12,
The process of calculating the expected delivery time comprises:
Attempting delivery of the plurality of data units through a subgroup of sub-flows;
And performing repetitive transmission of the plurality of data units to calculate the expected delivery time. ≪ Desc / Clms Page number 19 >
제3항에 있어서,
상기 서브 플로우들을 분석하는 과정은 상기 MPTCP 연결 변경에 대해 사용되는 네트워크의 조건에 응답하여 다이나믹(dynamic)하게 수행됨을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method of claim 3,
Wherein the step of analyzing the sub-flows is performed dynamically in response to a condition of a network used for the MPTCP connection change. A method of transmitting data between a first device and a second device using an MPTCP connection .
제1항에 있어서,
상기 우선 순위-관련 정보를 추출하는 과정은 교차 계층 정보(cross layer information)를 프로세싱하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
The method according to claim 1,
Wherein the step of extracting the priority-related information comprises processing cross layer information. ≪ Desc / Clms Page number 19 >
제15항에 있어서,
상기 교차 계층 정보는 세션 계층(session layer)과 트랜스포트 계층(transport layer)간을 교차하는 데이터 유닛들에 대한 정보를 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
16. The method of claim 15,
Wherein the intersection layer information includes information on data units crossing between a session layer and a transport layer, wherein the data between the first device and the second device using the MPTCP connection Lt; / RTI >
제1항 내지 제5항과, 제7항 내지 제16항 중 어느 한 항에 있어서,
상기 우선 순위-관련 정보를 프로세싱하는 과정은 상기 데이터 유닛들의 우선 순위 플래그(flag)들/신호들을 분석하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
17. A method according to any one of claims 1 to 5 and 7 to 16,
Wherein the processing of the priority-related information comprises analyzing priority flags / signals of the data units. The method of claim 1, wherein the processing of the priority-related information comprises analyzing the priority flags / How to transfer.
제1항 내지 제5항과, 제7항 내지 제16항 중 어느 한 항에 있어서,
상기 우선 순위-관련 데이터를 프로세싱하는 과정은 상기 데이터 유닛들의 관련 순서(relevance order)를 분석하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
17. A method according to any one of claims 1 to 5 and 7 to 16,
Wherein the step of processing the priority-related data comprises the step of analyzing a relevance order of the data units. The method of transmitting data between a first device and a second device using an MPTCP connection .
제1항 제5항과, 제7항 내지 제16항 중 어느 한 항에 있어서,
상기 데이터 유닛은 SPDY™ 메시지를 포함하며, 상기 우선 순위-관련 데이터를 프로세싱하는 과정은 SYN_STREAM 혹은 SYN_REPLY 높은 우선 순위 식별자를 가지는 SPDY™ 메시지를 포함하는 데이터 유닛에 높은 우선 순위 레벨을 할당하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
17. The method according to any one of claims 1 to 16,
The data unit may include a SPDY ™ message and the process of processing the priority-related data may include assigning a high priority level to a data unit including a SPDY ™ message having a SYN_STREAM or SYN_REPLY high priority identifier Wherein the MPTCP connection is used to transmit data between the first device and the second device.
제1항 제5항과, 제7항 내지 제16항 중 어느 한 항에 있어서,
상기 데이터는 비디오 데이터를 포함하며, 상기 각 데이터 유닛은 I-프레임, P-프레임, 혹은 B-프레임으로 카테고리화되고, 상기 우선 순위-관련 데이터를 프로세싱하는 과정은 I-프레임을 포함하는 데이터 유닛에 높은 우선 순위 레벨을 할당하는 과정과, 상기 P-프레임 혹은 B-프레임을 포함하는 데이터 유닛에 낮은 우선 순위 레벨을 할당하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
17. The method according to any one of claims 1 to 16,
Wherein the data comprises video data, each data unit being categorized as an I-frame, a P-frame, or a B-frame, the processing of the priority- Assigning a higher priority level to the data unit including the P-frame or the B-frame, and assigning a lower priority level to the data unit including the P-frame or the B-frame. A method for transmitting data between two devices.
제5항에 있어서,
상기 버퍼에 상기 데이터 유닛들을 배열하는 과정은 높은 우선 순위 레벨을 가지는 데이터 유닛들을 상기 버퍼로 포워드 로딩(forward loading)하는 과정과,
낮은 우선 순위 레벨을 가지는 데이터 유닛들을 상기 버퍼로 백워드 로딩(backward loading)하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
6. The method of claim 5,
The step of arranging the data units in the buffer includes forwarding data units having a high priority level to the buffer,
And backward loading data units having a lower priority level into the buffer. The method of claim 1, wherein the data is transmitted to the first device via the MPTCP connection.
제21항에 있어서,
상기 데이터 유닛들을 상기 버퍼에 배열하는 과정은 상기 버퍼의 나머지 공간이 높은 우선 순위 레벨을 가지는 데이터 유닛들의 로딩에만 충분할 경우 낮은 우선 순위 레벨을 가지는 데이터 유닛들의 상기 버퍼로의 추가적인 로딩을 방지하는 과정을 포함함을 특징으로 하는 MPTCP 연결을 사용하여 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 방법.
22. The method of claim 21,
The step of arranging the data units in the buffer is to prevent further loading of data units having a low priority level into the buffer when the remaining space of the buffer is sufficient for loading data units having a high priority level Wherein the MPTCP connection is used to transmit data between the first device and the second device.
다중 경로 송신 제어 프로토콜(Multipath Transmission Control Protocol: MPTCP) 연결을 통해 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 시스템에 있어서,
상기 제1 디바이스로부터 데이터 유닛들의 집합을 포함하는, 사용중인 전송될 데이터를 수신하도록 구성되는 디바이스와;
상기 수신된 데이터로부터 상기 데이터 유닛들에 대한 우선 순위-관련 정보를 추출하도록 구성되는 분석기와;
상기 데이터 유닛 각각을 상기 MPTCP 연결의 다수의 서브 플로우들 중 하나에 할당하기 위해 상기 우선 순위-관련 정보를 프로세싱하도록 구성되는 프로세싱 디바이스와;
상기 할당된 서브 플로우들을 사용하여 상기 MPTCP 연결을 통해 상기 제2 디바이스로 상기 사용중인 데이터 유닛들을 전송하도록 구성되는 데이터 전송 디바이스를 포함함을 특징으로 하는 MPTCP 연결을 통해 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 시스템.
A system for transmitting data between a first device and a second device via a Multipath Transmission Control Protocol (MPTCP) connection, the system comprising:
A device configured to receive in-use data to be transmitted, the device comprising a collection of data units from the first device;
An analyzer configured to extract priority-related information for the data units from the received data;
A processing device configured to process the priority-related information to assign each of the data units to one of a plurality of sub-flows of the MPTCP connection;
And a data transfer device configured to transfer the in-use data units to the second device over the MPTCP connection using the assigned sub-flows. A system for transmitting data.
제23항에 있어서,
상기 분석기는 안드로이드 프레임워크(Android™ framework) 내에 논리적으로 위치되며, 상기 프로세싱 디바이스는 리눅스 커널(Linux kernel) 내에 논리적으로 위치됨을 특징으로 하는 MPTCP 연결을 통해 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 시스템.
24. The method of claim 23,
Wherein the analyzer is logically located within an Android framework and the processing device is logically located within a Linux kernel and wherein data is transferred between the first device and the second device via an MPTCP connection, System.
제23항 혹은 제24항에 있어서,
상기 MPTCP 연결은 적어도 하나의 무선 네트워크를 사용함을 특징으로 하는 MPTCP 연결을 통해 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 시스템.
25. The method according to claim 23 or 24,
Wherein the MPTCP connection uses at least one wireless network, and wherein data is transmitted between the first device and the second device through an MPTCP connection.
제25항에 있어서,
상기 적어도 하나의 무선 네트워크는 3G/LTE 혹은 Wi-Fi™ 네트워크를 포함함을 특징으로 하는 MPTCP 연결을 통해 제1 디바이스와 제2 디바이스간의 데이터를 전송하는 시스템.
26. The method of claim 25,
Wherein the at least one wireless network comprises a 3G / LTE or Wi-Fi < (TM) > network.
청구항 1 내지 청구항 22 중 어느 한 항에 따른 방법을 동작시키는 컴퓨터 프로그램을 저장하는 컴퓨터 리드 가능 매체.A computer readable medium storing a computer program for operating a method according to any one of the preceding claims.
KR1020150057246A 2014-04-24 2015-04-23 Apparatus and method for transferring data using multipath transmission control protocol KR102328615B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1407227.6A GB2525416B (en) 2014-04-24 2014-04-24 Data transfer using a multipath TCP connection
GB1407227.6 2014-04-24

Publications (2)

Publication Number Publication Date
KR20150123185A true KR20150123185A (en) 2015-11-03
KR102328615B1 KR102328615B1 (en) 2021-11-19

Family

ID=50971816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150057246A KR102328615B1 (en) 2014-04-24 2015-04-23 Apparatus and method for transferring data using multipath transmission control protocol

Country Status (2)

Country Link
KR (1) KR102328615B1 (en)
GB (1) GB2525416B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180088248A (en) * 2017-01-26 2018-08-03 삼성전자주식회사 Method and appratus for data transmission of multipath transport system
KR20190056396A (en) * 2016-09-29 2019-05-24 노키아 테크놀로지스 오와이 Radio bearer switching in wireless access
KR20200072293A (en) * 2018-12-12 2020-06-22 국방과학연구소 Packet distribution system and method for multi-path transmission in multi-layer network
US10708170B2 (en) 2018-03-14 2020-07-07 At&T Intellectual Property I, L.P. Transferring data over multiple network paths using decoupled sub-flows
KR20220072386A (en) 2020-11-25 2022-06-02 한국전자통신연구원 Method for improving performance of multi-path transmission control protocol in wireless communication environment

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114885034A (en) * 2017-09-29 2022-08-09 苹果公司 ROHC header compression for MPTCP
WO2021069678A1 (en) * 2019-10-10 2021-04-15 Deutsche Telekom Ag A method and communication device for transmitting multiple data streams of different communication services over a multipath transmission system
CN111200557B (en) * 2019-11-22 2021-08-10 荣耀终端有限公司 Connection establishing method and terminal equipment
CN113328940B (en) * 2020-02-28 2022-06-03 中国电信股份有限公司 Path selection method and device, access gateway and communication system
CN111447152B (en) * 2020-03-16 2023-10-13 Oppo广东移动通信有限公司 Sub-stream resource scheduling method, device, terminal equipment and storage medium
CN114553781A (en) * 2021-12-23 2022-05-27 北京秒如科技有限公司 Efficient transport layer multi-path convergence method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120096802A (en) * 2011-02-23 2012-08-31 에스케이텔레콤 주식회사 Network selection system and method therof in heterogeneous network
KR20130076921A (en) * 2011-12-29 2013-07-09 한국기초과학지원연구원 Content-based network system and method for transmitting content thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8514865B2 (en) * 2004-04-30 2013-08-20 Hewlett-Packard Development Company, L.P. Assigning WAN links to subflows based on WAN link characteristics and application preferences
US7933294B2 (en) * 2005-07-20 2011-04-26 Vidyo, Inc. System and method for low-delay, interactive communication using multiple TCP connections and scalable coding
US7911956B2 (en) * 2007-07-27 2011-03-22 Silicon Image, Inc. Packet level prioritization in interconnection networks
KR101714830B1 (en) * 2010-10-27 2017-03-22 인터디지탈 패튼 홀딩스, 인크 Scalable policy-controlled packet inspection systems and methods for advanced application interface
US9490948B2 (en) * 2011-06-20 2016-11-08 Vid Scale, Inc. Method and apparatus for video aware bandwidth aggregation and/or management
US9264353B2 (en) * 2011-09-22 2016-02-16 Qualcomm Incorporated Dynamic subflow control for a multipath transport connection in a wireless communication network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120096802A (en) * 2011-02-23 2012-08-31 에스케이텔레콤 주식회사 Network selection system and method therof in heterogeneous network
KR20130076921A (en) * 2011-12-29 2013-07-09 한국기초과학지원연구원 Content-based network system and method for transmitting content thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190056396A (en) * 2016-09-29 2019-05-24 노키아 테크놀로지스 오와이 Radio bearer switching in wireless access
US11553369B2 (en) 2016-09-29 2023-01-10 Nokia Technologies Oy Radio bearer switching in radio access
US12101659B2 (en) 2016-09-29 2024-09-24 Nokia Technologies Oy Radio bearer switching in radio access
KR20180088248A (en) * 2017-01-26 2018-08-03 삼성전자주식회사 Method and appratus for data transmission of multipath transport system
US10708170B2 (en) 2018-03-14 2020-07-07 At&T Intellectual Property I, L.P. Transferring data over multiple network paths using decoupled sub-flows
KR20200072293A (en) * 2018-12-12 2020-06-22 국방과학연구소 Packet distribution system and method for multi-path transmission in multi-layer network
KR20220072386A (en) 2020-11-25 2022-06-02 한국전자통신연구원 Method for improving performance of multi-path transmission control protocol in wireless communication environment

Also Published As

Publication number Publication date
GB2525416B (en) 2017-11-01
KR102328615B1 (en) 2021-11-19
GB2525416A (en) 2015-10-28
GB201407227D0 (en) 2014-06-11

Similar Documents

Publication Publication Date Title
KR102328615B1 (en) Apparatus and method for transferring data using multipath transmission control protocol
US9877265B2 (en) Coding approach for a robust and flexible communication protocol
US8867354B2 (en) Transmission control method, transmission control system, communication device and recording medium of transmission control program
JP6121478B2 (en) Dynamic subflow control for multipath transport connections in wireless communication networks
EP3457643B1 (en) Method and device for transmitting data stream
US20230276483A1 (en) Multipath-scheduling-based relay device
JP5001283B2 (en) Providing movement indications to resource requesters
JP5373027B2 (en) Provision of QoS processing based on multiple requests
CN111052787A (en) Function selection based on utilization level in 5G environment
US20140153392A1 (en) Application quality management in a cooperative communication system
US20110087915A1 (en) Hybrid reliable streaming protocol for peer-to-peer multicasting
CN108234309B (en) Network data transmission method
WO2019179157A1 (en) Data traffic processing method and related network device
CN108156633A (en) Data flow remaps method and device and user equipment, RAN equipment
US9832679B2 (en) Window regulator for improved performance in a communications network
CN111510390A (en) Insertion and use of application or radio information in network data packet headers
US11647419B2 (en) Adjusting window size based on quality of experience
JP2015518195A (en) Method and apparatus for content distribution in a wireless access network
US8155074B1 (en) Methods and systems for improving performance of applications using a radio access network
CN113595920A (en) Network congestion control method and equipment
TWI757887B (en) Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver
CN111756557B (en) Data transmission method and device
Zeydan et al. Enhancing the capabilities of mobile backhaul: A user plane perspective
KR20210077841A (en) Method and apparatus for providing high quality real time media streaming service with low latency
CN116390152B (en) Data transmission method, device and medium for ATSSS in communication core network

Legal Events

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