KR102184144B1 - Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템 - Google Patents

Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템 Download PDF

Info

Publication number
KR102184144B1
KR102184144B1 KR1020190138974A KR20190138974A KR102184144B1 KR 102184144 B1 KR102184144 B1 KR 102184144B1 KR 1020190138974 A KR1020190138974 A KR 1020190138974A KR 20190138974 A KR20190138974 A KR 20190138974A KR 102184144 B1 KR102184144 B1 KR 102184144B1
Authority
KR
South Korea
Prior art keywords
subflow
rtt
data packet
count
shortest path
Prior art date
Application number
KR1020190138974A
Other languages
English (en)
Inventor
조유제
김건환
Original Assignee
경북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경북대학교 산학협력단 filed Critical 경북대학교 산학협력단
Priority to KR1020190138974A priority Critical patent/KR102184144B1/ko
Application granted granted Critical
Publication of KR102184144B1 publication Critical patent/KR102184144B1/ko

Links

Images

Classifications

    • 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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • 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/0852Delays
    • H04L43/0864Round trip delays
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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

Landscapes

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

Abstract

본 발명에 따르는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법은, (a) 다수개의 서브플로우를 통해 데이터 패킷이 수신되면, 상기 데이터 패킷의 수신순서가 순차적이지 않은 아웃오브오더 현상이 발생하였다가 해소되었는지를 체크하는 단계; 및 (b) 상기 아웃오브오더 현상이 발생하였다가 해소되었으면, 상기 데이터 패킷이 송신된 서브플로우로 레귤러 응답 메시지를 전송하고, 최단경로의 서브플로우를 통해 최단경로 응답 메시지를 전송하는 단계;를 포함하는 것을 특징으로 한다.

Description

MPTCP를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템{ACK MESSAGE PROCESS METHOD IN MPTCP AND SYSTEM THEREOF}
본 발명은 다중 경로 TCP를 이용한 통신기술에 관한 것으로, 더욱 상세하게는 MPTCP를 통한 데이터 통신시에 수신단에서 아웃오브오더 문제가 발생될 때에 송신측으로 빠르게 응답 메시지를 전송하여 송신단에서의 송신차단 시간이 증가하는 문제를 해소할 수 있는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템에 관한 것이다.
전송 제어 프로그램(Transmission Control Protocol, 이하 편이상 TCP라 칭함)은 인터넷 프로토콜(IP)의 핵심 프로토콜 중 하나로, 네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜의 하나로 국제 인터넷 표준화 기구(INTERNET ENGINEERING TASK FORCE; 이하 편이상 IETF라 칭함)의 RFC793에 기술되어 있다. 상기 TCP는 전송계층에 속하며, 연결지향성, 양방향 데이터 통신, 응답 메시지(ACK)를 통한 신뢰성 보장, 흐름 제어 및 혼잡 제어 등의 특성을 갖는다.
상기 TCP/IP는 프로토콜의 네트워크 스택에는 다양한 계층(layer)이 존재하며, 대표적으로는 어플리케이션 계층, 전송 계층, 네트워크 계층, 네트워크 인터페이스 계층, 물리 계층 등이 있다.
어플리케이션 프로그램은 메시지 또는 데이터 스트림을 전송 계층 프로토콜인 UDP(User Datagram Protocol) 또는 TCP 중 하나로 전송한다. 상기 전송 제어 프로토콜은 어플리케이션 프로그램으로부터 전달받은 데이터를 패킷으로 나누어 목적지 포트 번호를 추가한 후에 네트워크 계층으로 패킷을 전달한다. 이어서, 네트워크 계층은 패킷을 IP(인터넷 프로토콜) 데이터그램에 포함한 후에 데이터그램 헤더 및 트레일러에 넣고 데이터그램의 목적지를 결정한 후 네트워크 인터페이스 계층으로 전달된다. 네트워크 인터페이스 계층은 상위 계층에서 전달받은 IP 데이터그램에 이더넷 헤더를 더한 후, 실제 네트워크 하드웨어를 통해 프레임으로 전송한다.
송신단으로부터 전송된 프레임은 실제 네트워크 링크를 따라 전달되고 목적지인 수신단에 도달하면, 앞서 설명한 데이터 전송과정의 역과정이 이루어진다. 상기 프레임은 수신단의 네트워크 인터페이스 계층에 수신된 후, 이더넷 헤더를 확인한 후 데이터그램을 네트워크 계층으로 전달한다. 상기 네트워크 계층에서는 인터넷 프로토콜이 IP 헤더를 확인하고 패킷을 전송 계층으로 전달한다. 네트워크 계층에서는 인터넷 프로토콜이 IP 헤더를 확인하고 패킷을 전송 계층으로 전달한다. 상기 전송 계층에서는 TCP 또는 UDP가 자신에 대한 헤더를 확인하고 데이터를 어플리케이션 계층으로 최종 전달한다.
상기 TCP는 UDP와 달리 연결 지향적이며 응답 메시지(ACK)를 통해 신뢰성을 보장한다.
도 1은 TCP의 데이터 송수신 과정을 도시한 것이다. 먼저 송신단은 순차번호(SEQUENCE NUMBER)가 1이고 크기가 100Bytes인 데이터를 전송한다. 그리고 수신단이 해당 데이터를 무사히 전달받으면 송신단이 보낸 데이터를 잘 전달받았다는 응답 메시지(ACK:101)를 전송한다. 이때 ACK 메시지에는 수신단이 다음에 수신하기를 기대하는 데이터의 순차번호인 101(순차번호 1 + 데이터의 크기 100)을 기록하여 전송한다. 이어서 송신단은 수신단으로부터 전달된 ACK 메시지의 값에 따라 101의 순차번호로 100BYTE의 데이터를 전달한다. 수신단은 해당 메시지를 수신신호 201을 포함하여 ACK 메시지를 전송한다. 이러한 과정을 반복하여 송수신단 사이의 데이터가 전달되기 때문에 TCP는 신뢰성을 보장한다.
그리고 데이터 전송 능력을 향상시키기 위해 Wi-Fi, 셀룰러 네트워크 등 복수의 네트워크를 동시에 이용하는 것은 최근 스마트폰의 매력적인 특징이다.
향후의 5G 기술은 두개의 서로 다른 기지국에 모바일 기기를 탑재함으로써 이중 연결성과 원활한 이동성을 제공하는 것을 목표로 하고 있다. IETF가 제안한 다중 경로 TCP(MULTIPATH TCP, MPTCP)는 신뢰성 향상, 다운로드 속도 향상, 대기 시간 단축, 비용절감, 이동성 향상과 함께 이중 연결성을 제공하여 5G의 목표를 실현하고자 한다.
현재 삼성 다운로드 부스터, KT 기가패스, 애플 쉬리 등 상용화된 제품에서 여러 네트워크 경로를 동시에 이용할 수 있도록 지원하고 있다. 게다가 최근 다양한 연구 개발에서는 파일 다운로드, 웹 검색, 스트리밍과 같은 어플리케이션들이 다중 경로 연결을 활용할 수 있도록 노력하고 있다.
상기 MPTCP는 상위 계층인 어플리케이션으로부터 하나의 입력 데이터 스트림을 가져와서 이를 여러 네트워크로 분할하여 전달하고 수신단은 충분한 제어 정보를 통해 이를 재조립/재정렬하여 신뢰성있게 수신단 어플리케이션으로 전달될 수 있도록 한다. 이는 링크/네트워크 장애 발생에 대한 견고함을 제공하며 동시에 자원을 효율적으로 사용할 수 있게 한다. 상기 MPTCP는 견고성과 종단간 처리량을 함께 증가시키기 위해 종단간에 여러 경로(Subflow)를 사용하여 특정 경로에 문제가 발생하게 되면 경로를 변경하고 각 서브플로우의 처리율을 집계하여 전체 처리량을 늘린다.
도 2는 MPTCP의 추상적인 구조를 도시한 것이다. 어플리케이션 계층의 관점에서 MPTCP는 하나의 표준 TCP 소켓을 사용하는 것으로 여겨진다. 하지만 실제 하위 스택에서는 기존의 TCP 연결처럼 동작하는 몇개의 서브플로우가 존재한다. 그러므로 MPTCP를 구현하기 위해서 응용 프로그램의 수정이 필요하지는 않다.
상기한 바와 같이 언제든지 생성 및 소멸될 수 있는 서브플로우를 통해 전달되는 데이터의 신뢰성을 보장하기 위해서 MPTCP 연결을 통해 전송되는 모든 데이터에 64-비트 데이터 순차번호(DATA SEQUENCE NUMBER, DSN)를 사용하여 번호를 매긴다. 각 서브플로우에는 고유의 32-비트 순차번호공간(SEQUENCE NUMBER SPACE)을 데이터 순차공간(DATA SEQUENCE SPACE, DSS)에 매핑한다. 이를 통해 패킷 전달이 실패한 경우에 다른 서브플로우(동일한 DSN에 매칭)를 이용해 데이터를 재전송할 수 있다.
상기 MPTCP의 모든 서브플로우는 동일한 수신 버퍼를 공유하며 동일한 수신 창(Recieve window)을 알린다(Advertise). 상기 MPTCP에는 두가지의 응답 메시지(ACK)가 존재한다. 레귤러(REGULAR) TCP 응답(ACKNOWLEGEMENTS)는 각 서브플로우에 대해서 DSN과는 독립적으로 서브플로우를 통해 전송된 세그먼트의 수신을 응답(ACKNOWLEDGE)하는데 사용한다. 그리고 데이터 순차공간(DSS)에 대한 연결 레벨 응답(CONNECTION LEVEL ACKNOWLEDGEMENTS)가 있다. 이것은 바이트 스트림(BYTES STREAM)의 증가를 추적하며 수신 창을 우측으로 이동시키는 역할을 한다.
도 3은 MPTCP의 데이터 송수신과정을 예시한 도면이다. 송신단은 두개의 서브플로우(Subflow1,2)를 통해 수신단으로 데이터를 전달한다. 도 3에서 약어 DS는 데이터 순차번호(DATA SEQUENCE NUMBER), SS는 서브플로우 순차번호(SUBFLOW SEQUENCE NUMBER), DA는 데이터 응답번호(DATA ACKNOWLEDGEMENT NUMBER), SA는 서브플롱 응답번호(SUBFLOW ACKNOWLEDGEMENT NUMBER)를 나타낸다.
상위의 어플리케이션 계층에서 전달된 데이터스트림을 6개의 100BYTES 패킷으로 나누어 MPTCP의 스케줄러 동작에 따라 각 서브플로우에 할당한다. 이 예제에서는 각 서브플로우에 3개의 패킷이 할당된 것으로 가장한다. 먼저 서브플로우2(Subflow2)를 통해 데이터 순차번호가 11이고 서브플로우 순차번호가 123인 100Bytes 크기의 패킷을 전달한다. 이어서 서브플로우1(Subflow1)을 통해 데이터패킷을 전달한다. 이 부분에서 서브플로우 순차번호는 각 서브플로우 단에서 임의로 설정되기 때문에 서브플로우 간에는 서로 다른 값을 가진다. 상기 수신단에서는 서브플로우2(Subflow2)를 통해 전달된 패킷에 대해서 데이터 응답번호를 111, 서브플로우 응답번호를 223으로 증가시켜 응답메시지를 전달한다. 마찬가지로 서브플로우1(Subflow1)에게는 411의 데이터 응답번호, 667의 서브플로우 응답번호를 포함하여 응답한다. 위의 과정이 반복하며 두개의 서브플로우를 활용해 데이터를 전달한다. 따라서 도 1의 단일 TCP 연결에서의 데이터 전달과 비교하면 최대 2배의 처리율 향상을 기대할 수 있다. 그러나 성격이 서로 다른 다수의 서브플로우를 사용함으로써 수신단에 도착하는 패킷의 순서가 섞이는 아웃오브오더(OUT OF ORDER) 문제가 발생할 수 있었다.
도 4는 패킷 재정렬(REODER)과 중복 ACK(DUPLICATE ACK)의 발생과정을 예시한 것이다. 서브플로우2(Subflow2)를 통해 네개의 패킷을 전달하고 서브플로우1(Subflow1)을 통해 세개의 패킷을 전달한다. 수신단에는 DS:11의 패킷이 가장 먼저 도착하고 이어서 서브플로우1(Subflow1)을 통해 전달된 DS : 411 패킷이 전달된다고 가정한다. 수신단은 DS : 411 패킷을 수신하면 이전의 패킷을 아직 수신하지 못했기 때문에 DS : 311에 대한 응답 메시지를 전달한다. 이어서 서브플로우2(Subflow2)를 통해 전달된 DS : 111 패킷이 수신되고 서브플로우1(Subflow1)로부터 DS : 511 패킷이 수신된다. 이전과 동일하게 DS : 511 패킷 수신에 대해서 아직 수신받지 못한 DS : 311을 요청하는 응답 메시지를 서브플로우1(Subflow1)로 다시 전송한다. 결국 서브플로우1(Subflow1)에게 세번의 중복된 응답메시지(ACK)가 전달되고, 서브플로우1(Subflow1)은 실제로는 불필요한 재전송 과정을 수행한다. 실제로 DS : 311 패킷은 TS2시점에서 수신이 완료되어 아웃오브오더(OUT-OF-ORDER) 상태가 되기 때문에 상위 계층으로 전달된다.
상기한 아웃오브오더(OUT-OF-ORDER) 문제는 각 서브플로우의 특성인, 종단간 지연시간, 대역폭, 손실률 등이 서로 상이할 때에 더욱 심각해진다. 최악의 경우 하나의 단일 TCP 연결을 사용하는 것보다 낮은 처리율을 초래할 수 있었다. 이에 따라 다수의 서브플로우의 특성이 크게 상이한 환경에서의 아웃오브오더 문제를 최소화하기 위한 연구가 요구되었다.
대한민국 특허등록 제10-1941362호 대한민국 특허등록 제10-1929995호 대한민국 특허등록 제10-1694271호
본 발명은 MPTCP를 통한 데이터 통신시에 수신단에서 아웃오브오더 문제가 발생될 때에 송신측으로 빠르게 응답 메시지를 전송하여 송신단에서의 송신차단 시간이 증가하는 문제를 해소할 수 있는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템을 제공하는 것을 목적으로 한다.
본 발명의 일측면에 따르면, MPTCP를 이용한 통신에서의 응답 메시지 처리 방법은, (a) 다수개의 서브플로우를 통해 데이터 패킷이 수신되면, 상기 데이터 패킷의 수신순서가 순차적이지 않은 아웃오브오더 현상이 발생하였다가 해소되었는지를 체크하는 단계; 및 (b) 상기 아웃오브오더 현상이 발생하였다가 해소되었으면, 상기 데이터 패킷이 송신된 서브플로우로 레귤러 응답 메시지를 전송하고, 최단경로의 서브플로우를 통해 최단경로 응답 메시지를 전송하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 (a) 단계는, (a-1) 상기 데이터 패킷이 수신된 서브플로우의 순차번호 SSNk가 다음 서브플로우의 순차번호 nextSSNk인지를 체크하는 단계; (a-2) 상기 SSNk가 nextSSNk이면, 새로운 SSNi를 산출하고 LastCountk에 이전에 기록된 Countk를 기록하는 단계; 및 (a-3) 데이터 순차번호 DSN이 다음 데이터 순차번호 nextDSN과 같으면 상기 Countk를 초기화하는 단계; (a-4) 데이터 순차번호 DSN이 다음 데이터 순차번호 nextDSN보다 크면 상기 Countk를 증가하는 단계; (a-5) 상기 LastCountk가 상기 Countk보다 크거나 같은지를 체크하여 상기 아웃오브오더 현상이 해소되었는지를 검출하는 단계;를 포함할 수 있다.
또한, 상기 (b) 단계는, 상기 (b) 단계는, (b-1) 상기 아웃오브오더가 해결된 것으로 판단되면, RTTtemp에 RTTk를 기록하고, i를 1에서 N까지 증가하면서 RTTtemp≥RTTi인지를 판별하며, RTTtemp≥RTTi인 경우에 RTTtemp에 RTTi를 기입하고 최단 경로의 서브플로우 Subflowshort에 Subflowi를 기입하는 단계; (b-2) 최단 경로의 서브플로우가 검출되면, 서브플로우 subflowshort로 최단경로 ACK를 전송하는 단계; 및 (b-3) 상기 최단경로 ACK의 전송이 완료되었거나 상기 아웃오브오더가 발생하지 않은 경우에는 서브플로우 subflowk로 레귤러 ACK를 전송하는 단계;를 포함할 수 있다.
또한, 상기 최단경로의 서브플로우는, 최소왕복지연시간을 갖는 서브플로우임을 특징으로 한다.
본 발명의 다른 측면에 따르면, MPTCP를 이용한 통신 시스템에 있어서, 다수개의 서브플로우를 통해 데이터 패킷을 송신하는 송신장치; 상기 다수개의 서브플로우를 통해 데이터를 수신하는 수신장치;를 포함하며, 다수개의 서브플로우를 통해 데이터 패킷을 송신하는 송신장치; 및 상기 다수개의 서브플로우를 통해 데이터를 수신하는 수신장치;를 포함하며, 상기 수신장치가, 다수개의 서브플로우를 통해 데이터 패킷이 수신되면, 상기 데이터 패킷의 수신순서가 순차적이지 않은 아웃오브오더 현상이 발생하였다가 해소되었는지를 체크하고, 상기 아웃오브오더 현상이 발생하였다가 해소되었으면, 상기 데이터 패킷이 송신된 서브플로우로 레귤러 응답 메시지를 전송하고, 최단경로의 서브플로우를 통해 최단경로 응답 메시지를 전송함을 특징으로 한다.
또한, 상기 최단경로의 서브플로우는, 최소왕복지연시간을 갖는 서브플로우임을 특징으로 한다.
상기한 본 발명은 MPTCP를 통한 데이터 통신시에 수신단에서 아웃오브오더 문제가 발생될 때에 송신측으로 빠르게 응답 메시지를 전송하여 송신단에서의 송신차단 시간이 증가하는 문제를 해소할 수 있게 한다.
도 1은 TCP의 데이터 송수신과정을 예시한 도면.
도 2는 MPTCP 구조를 도시한 도면.
도 3은 MPTCP의 데이터 송수신과정을 예시한 도면.
도 4는 패킷 재정렬과 중복 ACK의 발생과정을 예시한 도면.
도 5는 본 발명에 따르는 MPTCP의 데이터 송수신과정을 도시한 도면.
도 6은 본 발명에 따르는 데이터 수신처리를 위한 알고리즘을 도시한 도면.
도 7은 본 발명이 적용가능한 통신 시스템의 구조도.
도 8은 본 발명에 따르는 데이터 수신처리를 위한 처리 흐름도.
본 발명은 MPTCP를 통한 데이터 통신시에 수신측에서 아웃오브오더 문제가 발생되어 송신측에서의 송신차단 시간이 증가하는 문제를 해소하여 MPTCP를 통한 통신 효율을 높일 수 있게 한다.
MPTCP에서는 데이터 수신에 응답하여 CONNECTION LEVEL ACK와 SUBFLOW LEVEL ACK(REGULAR TCP ACK)를 전달한다. 각 서브플로우를 통해 전달되는 데이터 패킷에 대한 수신 응답으로 사용되는 SUBFLOW LEVEL ACK는 수신단에서 아웃오브오더(OUT OF ORDER) 문제가 발생하는 경우에 심각한 처리율 저하를 초래할 수 있다.
이러한 처리율 감소를 최소화하기 위해서 본 발명은 데이터 패킷 수신에 대한 응답을 가장 빠른 서브플로우(Subflow)로 전달한다. 또한 처리율 감소를 완화하기 위해서, 최소 왕복지연시간(Round-Trip-Time, RTT)을 갖는 서브플로우를 통해 ACK를 전달함으로써 송신단의 송신 차단시간을 줄일 수 있다.
먼저 본 발명의 설명에 앞서, 레귤러(Regular) ACK와 최단경로(Shortest Path) ACK의 두가지 종류를 정의한다.
수신단의 수신버퍼에 저장되어 있던 데이터 패킷의 순서가 맞춰지면 데이터 패킷이 전송되었던 서브 플로우 중에서 가장 짧은 RTT를 갖는 서브플로우로 최단경로(Shortest Path) ACK를 보낸다. 상기 최단경로(Shortest Path) ACK는 DSN의 업데이트와 송신측 창(WINDOW) 크기를 광고(ADVERTISE)하는데 사용된다. 하지만 이러한 최단경로(Shortest Path) ACK는 서브 플로우 중 가장 짧은 RTT를 갖는 경로를 통해 전달되기 때문에 레귤러 ACK보다 일찍 송신단에 도착하게 되고 송신단에서는 최단경로(Shortest Path) ACK의 수신으로 인해 송신 차단 기간(blocking duration of sending)이 감소하여 다음 패킷을 더 빨리 송신할 수 있다.
도 5는 본 발명에 따르는 통신과정을 예시한 것이다. 상기 도 5를 참조하면, 송신단과 수신단 사이는 두개의 서브 플로우 Subflow1,2로 연결된다. 상기 송신단은 DSN이 1인 데이터 패킷 P1을 Subflow2로 전송한다. 이어서 송신단은 3개의 데이터 패킷 P2,P3,P4를 Subflow1로 전송한다. 여기서 각 서브플로우 간의 RTT 크기를 RTT Subflow1<RTT Subflow2이라고 가정한다. 상기 도 5에서 수신단에는 P1보다 P2,3,4가 먼저 도착하기 때문에 아웃오브오더(OUT-OF-ORDER) 문제가 발생한다. 즉 데이터 패킷의 수신순서가 순차적이지 않은 문제가 발생한다.
상기 도 5에 도시한 시각 TZERO에서, 수신버퍼가 P2,3,4로 채워졌다고 가정하면, 송신단은 TBLOCK에서 제로 윈도(Zero Window)로 광고되고 다음 패킷의 전송이 차단된다. 즉 Subflow1을 이용해서 데이터 패킷을 계속해서 전달할 수 있지만 Subflow2를 통해 아직 전달되지 않은 P1에 의해 차단 상황이 발생한다. 그리고 시각 T에서 P1을 수신함에 따라 아웃오브오더상황이 해결되어 수신버퍼내의 패킷 순서가 올바르게 정렬되면, 비로소 상위의 어플리케이션으로 전달된다.
상기 수신단은 레귤러 ACK를 데이터 패킷을 전달받은 Subflow2로 보내고, 최단경로 ACK를 가장 짧은 RTT를 갖는 Subflow1로 전송한다. 상기 레귤러 ACK는 T2 시점에 송신단에 도착하지만, 최단경로 ACK는 이보다 빠른 T1 시점에 송신단에 도착하게 된다.
상기 도 5에서 Tblock과 T2 사이의 시간을 D로 Tblock과 Tblock과 T1 사이의 시간을 Dsp으로 정의하면, D는 기존 MPTCP에서의 전송 차단 기간(BLOCKING DURATION OF SENDING)을 나타낸다. 상기 Dsp는 가장 짧은 경로를 통해 전달된 ACK에 의해 결정되는 차단기간이다. 본 발명에 의해 차단 기간이 Dsp로 단축된다.
상기 데이터 패킷 수신에 따르는 수신단에서의 응답 메시지 처리방법의 알고리즘은 도 6에 예시한 바와 같이 구성될 수 있다.
이러한 본 발명의 바람직한 실시예에 따르는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템을 도면을 참조하여 상세히 설명한다.
<MPTCP를 이용한 통신을 이행하는 시스템의 구성>
도 7은 본 발명의 바람직한 실시예에 따르는 MPTCP를 이용한 통신을 이행하는 시스템의 구성을 도시한 것이다.
상기 MPTCP를 이용한 통신을 이행하는 시스템은 송신장치(100)와 수신장치(200)로 구성되며, 상기 송신장치(100)와 상기 수신장치(200) 사이에는 네트워크를 통해 다수개의 통신 경로인 서브플로우들이 형성된다. 상기 송신장치(100)는 MPTCP를 통해 보내고자 하는 데이터를 다수의 데이터 패킷으로 분할한 후에 여러개의 서브플로우를 통해 수신장치(200)로 전송한다.
상기 수신장치(200)는 상기 여러 개의 서브플로우를 통해 송신장치(100)가 제공하는 데이터 패킷들을 수신받아 수신버퍼에 저장함과 아울러 데이터 패킷이 수신된 서브플로우로 수신확인을 위한 응답 메시지(ACK)를 전송한다. 또한 상기 수신장치(200)는 데이터 패킷의 수신 중에 아웃오브오더 현상을 검지하고, 아웃오브오더 현상이 발생되었다가 해결되었다면 제일 빠르게 데이터 패킷이 수신된 서브플로우로 수신된 데이터 패킷에 대한 수신확인을 위한 응답 메시지(ACK)를 전송한다.
<MPTCP를 이용한 통신시의 응답 메시지 처리 방법의 절차>
본 발명의 바람직한 실시예에 따르는 MPTCP를 이용한 통신시의 응답 메시지 처리 방법의 흐름도를 도시한 도 8을 참조하여, 본 발명에 따르는 응답 메시지 처리 방법을 상세히 설명한다.
설명에 앞서 몇가지 기호들에 대해 먼저 설명한다. SSNk는 서브플로우 subflowk로부터 수신받은 데이터 패킷의 서브플로우 순차번호(subflow Sequence Number)이다. 그리고 nextSSNk는 수신단에서 계산한 다음 데이터 패킷의 서브플로우 순차번호(subflow Sequence Number)이다. 그리고 DSN은 수신받은 데이터 패킷의 데이터 순차번호(data Sequence Number)이다. 그리고 nextDSN은 수신단에서 계산한 다음 데이터 패킷의 데이터 순차번호(Data Sequence Number)이다. 그리고 Countk는 서브플로우 subflowk에서 아웃오브오더(out-of-order)가 발생함을 확인하기 위한 변수로서, 아웃오브오더 현상이 해소되었거나 발생하지 않은 상태에서는 이전의 Countk값인 LastCountk과 같거나 작고, 아웃오브오더 현상이 발생된 상태에서는 LastCountk보다 크다. 그리고 LastCountk는 이전의 Countk값으로, 아웃오브오더 현상이 해소되었거나 발생하지 않은 상태에서는 Countk값과 같거나 크고, 아웃오브오더 현상이 발생된 상태에서는 Countk보다 작다. 그리고 RTTi는 서브플로우 subflowi의 왕복지연시간(Round-trip-time)이다. 그리고 min은 최소 RTT 값을 계산하기 위한 변수이다.
MPTCP를 이용한 통신을 이행하는 수신장치(200)는 여러개의 서브플로우를 통해 송신장치(100)가 송신하는 데이터 패킷을 수신하면(300단계), 데이터 패킷이 수신된 서브플로우의 순차번호 SSNk가 nextSSNk인지를 체크한다(302단계). 상기 SSNk가 nextSSNk이면, 새로운 SSNi를 산출하고 LastCountk에 이전 Countk를 기록한다(304단계). 여기서 새로운 SSNi의 산출은 이전 SSNi를 미리 정해둔 값으로 증가시키는 것이 될 수 있다.
이후 상기 수신장치(200)는 데이터 순차번호 DSN이 nextDSN과 같으면 데이터패킷이 정상수신된 것으로 판단하여 수신된 데이터 패킷을 상위 계층으로 전달하고 Countk에 0을 기록하여 초기화하고 nextDSN을 산출한다(308단계). 여기서 nextDSN의 산출은 이전 DSN을 미리 정해둔 값으로 증가시키는 것이 될 수 있다.
이후 상기 수신장치(200)는 상기 DSN이 nextDSN보다 큰지를 체크하고(310단계), 상기 DSN이 nextDSN보다 크면 아웃오브오더 상태가 발생한 것으로 판단하여, 수신된 데이터 패킷을 버퍼에 저장한 후에 Countk에 Countk+1을 기록한다(314단계).
이와 달리 상기 DSN이 nextDSN보다 작으면 데이터패킷이 중복수신된 것으로 판단하여 상기 수신장치(200)는 수신된 데이터패킷을 무시하고 Countk에 Countk+1을 기록한다(312단계).
이후 상기 수신장치(200)는 상기 LastCountk가 Countk보다 크거나 같으면(316단계), 아웃오브오더 현상이 해소된 것으로 판단하여, RTTtemp에 RTTk를 기입한다(318단계). 여기서, RTTk는 미리 정해진 최소왕복지연시간이다.
이후 상기 수신장치(200)는 i를 1에서 N까지 증가하면서 RTTtemp가 RTTi일 때에 RTTtemp에 RTTi를 기입하고 최단거리 서브플로우 Subflowshort에 서브플로우 Subflowi를 기입한다(320단계). 이는 i부터 N까지의 서브플로우의 RTT를 비교하여 최단 경로를 찾는 것이다. 상기 RTTi는 데이터 패킷을 수신한 서브플로우 subflowi의 최소왕복지연시간이다.
이와 같이 최단 경로의 서브플로우 Subflowshort가 결정되면, 상기 수신장치(200)는 서브플로우 Subflowshort로 최단경로 ACK를 전송한다(322단계).
상기한 바와 같이 최단경로 ACK의 전송이 완료되었으면 상기 수신장치(200)는 324계로 진입하여 서브플로우 subflowk로 레귤러 ACK를 전송한다(324단계).
상기 316단계에서 상기 수신장치(200)는 상기 LastCountk가 Countk보다 작으면, 아웃오브오더 현상이 해소되지 않은 것으로 판단하여, 서브플로우 subflowk로 레귤러 ACK를 전송한다(322단계).
상기한 바와 같이 본 발명은 MPTCP를 통한 데이터 통신시에 수신측에서 아웃오브오더 문제가 발생되어 송신측에서의 송신차단 시간이 증가하는 문제를 해소하여 MPTCP를 통한 통신 효율을 높일 수 있다.
상기한 바와 같은, 본 발명의 실시예들에서 설명한 기술적 사상들은 각각 독립적으로 실시될 수 있으며, 서로 조합되어 실시될 수 있다. 또한, 본 발명은 도면 및 발명의 상세한 설명에 기재된 실시예를 통하여 설명되었으나 이는 예시적인 것에 불과하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다. 따라서, 본 발명의 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
100 : 송신장치
200 : 수신장치

Claims (8)

  1. MPTCP를 이용한 통신에서의 응답 메시지 처리 방법에 있어서,
    (a) 다수개의 서브플로우를 통해 데이터 패킷이 수신되면, 상기 데이터 패킷이 수신된 서브플로우의 순차번호 SSNk가 다음 서브플로우의 순차번호 nextSSNk인지를 체크하고, 상기 SSNk가 nextSSNk이면, 새로운 SSNi를 산출하고 LastCountk에 이전에 기록된 Countk를 기록하고, 데이터 순차번호 DSN이 다음 데이터 순차번호 nextDSN 보다 크거나 같은지를 판단하는 단계;
    (b) 상기 (a) 단계에서의 판단결과, 같으면 데이터 패킷이 정상수신된 것으로 판단하여 수신된 데이터 패킷을 상위 계층으로 전달하고,
    상기 DSN이 nextDSN보다 작으면 데이터 패킷이 중복수신된 것으로 판단하며,
    상기 DSN이 nextDSN보다 크면 상기 데이터 패킷의 수신순서가 순차적이지 않은 아웃오브오더 현상이 발생한 것으로 판단하는 단계;
    (c) 상기 LastCountk가 상기 Countk보다 크거나 같은지를 체크하여 상기 아웃오브오더 현상이 해소되었는지를 검출하는 단계; 및
    (d) 상기 (c) 단계에서 LastCountk가 상기 Countk보다 크거나 같으면, 상기 아웃오브오더 현상이 해소된 것으로 판단하여, 상기 데이터 패킷이 송신된 서브플로우로 레귤러 응답 메시지를 전송하고, 최단경로의 서브플로우를 통해 최단경로 응답 메시지를 전송하는 단계;를 포함하고,
    상기 최단경로의 서브플로우는, 상기 다수개의 서브플로우 중, 최소왕복지연시간을 갖는 서브플로우임을 특징으로 하는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법.
  2. 제1항에 있어서,
    상기 (b) 단계에서
    (b-1) 상기 DSN이 nextDSN과 같으면, 상기 Countk에 0을 기록하여 초기화하고 nextDSN을 산출하고,
    (b-2) 상기 DSN이 nextDSN보다 작으면 수신된 데이터 패킷을 무시하고 상기 Countk에 Countk+1을 기록하고,
    (b-3) 상기 DSN이 nextDSN보다 크면 수신된 데이터 패킷을 버퍼에 저장한 후에 상기 Countk에 Countk+1을 기록하는 것을 특징으로 하는 것을 특징으로 하는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법.
  3. 제2항에 있어서,
    상기 (d) 단계는,
    (d-1) RTTtemp에 RTTk를 기록하고, i를 1에서 N까지 증가하면서 RTTtemp≥RTTi인지를 판별하며, RTTtemp≥RTTi인 경우에 RTTtemp에 RTTi를 기입하고 최단 경로의 서브플로우 Subflowshort에 Subflowi를 기입하는 단계;
    (d-2) 최단 경로의 서브플로우가 검출되면, 서브플로우 subflowshort로 최단경로 ACK를 전송하는 단계; 및
    (d-3) 상기 최단경로 ACK의 전송이 완료되었거나 상기 아웃오브오더가 발생하지 않은 경우에는 서브플로우 subflowk로 레귤러 ACK를 전송하는 단계;를 포함하며,
    상기 RTTi는 데이터 패킷을 수신한 서브플로우 Subflowi의 최소왕복지연시간이고, RTTk는 미리 정해진 최소왕복지연시간임을 특징으로 하는 MPTCP를 이용한 통신에서의 응답 메시지 처리 방법.
  4. 삭제
  5. MPTCP를 이용한 통신 시스템에 있어서,
    다수개의 서브플로우를 통해 데이터 패킷을 송신하는 송신장치; 및
    상기 다수개의 서브플로우를 통해 데이터를 수신하는 수신장치;를 포함하며,
    상기 수신장치가,
    상기 다수개의 서브플로우를 통해 데이터 패킷이 수신되면, 상기 데이터 패킷이 수신된 서브플로우의 순차번호 SSNk가 다음 서브플로우의 순차번호 nextSSNk인지를 체크하고, 상기 SSNk가 nextSSNk이면, 새로운 SSNi를 산출하고 LastCountk에 이전에 기록된 Countk를 기록하고, 데이터 순차번호 DSN이 다음 데이터 순차번호 nextDSN 보다 크거나 같은지를 판단하고;
    판단결과, 같으면 데이터 패킷이 정상수신된 것으로 판단하여 수신된 데이터 패킷을 상위 계층으로 전달하고, 상기 DSN이 nextDSN보다 작으면 데이터 패킷이 중복수신된 것으로 판단하며, 상기 DSN이 nextDSN보다 크면 상기 데이터 패킷의 수신순서가 순차적이지 않은 아웃오브오더 현상이 발생한 것으로 판단하고;
    상기 LastCountk가 상기 Countk보다 크거나 같은지를 체크하여 상기 아웃오브오더 현상이 해소되었는지를 검출하고; 및
    상기 LastCountk가 상기 Countk보다 크거나 같으면, 상기 아웃오브오더 현상이 해소된 것으로 판단하여, 상기 데이터 패킷이 송신된 서브플로우로 레귤러 응답 메시지를 전송하고, 최단경로의 서브플로우를 통해 최단경로 응답 메시지를 전송하며;
    상기 최단경로의 서브플로우는, 상기 다수개의 서브플로우 중, 최소왕복지연시간을 갖는 서브플로우임을 특징으로 하는 MPTCP를 이용한 통신 시스템.
  6. 제5항에 있어서,
    상기 수신장치는,
    상기 DSN이 nextDSN과 같으면, 상기 Countk에 0을 기록하여 초기화하고 nextDSN을 산출하고,
    상기 DSN이 nextDSN보다 작으면 수신된 데이터 패킷을 무시하고 상기 Countk에 Countk+1을 기록하고,
    상기 DSN이 nextDSN보다 크면 수신된 데이터 패킷을 버퍼에 저장한 후에 상기 Countk에 Countk+1을 기록하는 것을 특징으로 MPTCP를 이용한 통신 시스템.
  7. 제6항에 있어서,
    상기 수신장치는,
    상기 아웃오브오더가 해결된 것으로 판단되면, RTTtemp에 RTTk를 기록하고, i를 1에서 N까지 증가하면서 RTTtemp≥RTTi인지를 판별하여 최단 경로의 서브플로우를 검출하고, RTTtemp≥RTTi인 경우에 RTTtemp에 RTTi를 기입하고 최단 경로의 서브플로우 Subflowshort에 Subflowi를 기입하고,
    최단 경로의 서브플로우가 검출되면, 서브플로우 subflowshort로 최단경로 ACK를 전송하고,
    상기 최단경로 ACK의 전송이 완료되었거나 상기 아웃오브오더가 발생하지 않은 경우에는 서브플로우 subflowk로 레귤러 ACK를 전송하며,
    상기 RTTi는 데이터 패킷을 수신한 서브플로우 Subflowi의 최소왕복지연시간이고, RTTk는 미리 정해진 최소왕복지연시간임을 특징으로 하는 MPTCP를 이용한 통신 시스템.
  8. 삭제
KR1020190138974A 2019-11-01 2019-11-01 Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템 KR102184144B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190138974A KR102184144B1 (ko) 2019-11-01 2019-11-01 Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190138974A KR102184144B1 (ko) 2019-11-01 2019-11-01 Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR102184144B1 true KR102184144B1 (ko) 2020-11-30

Family

ID=73641774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190138974A KR102184144B1 (ko) 2019-11-01 2019-11-01 Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102184144B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070109313A (ko) * 2006-05-10 2007-11-15 삼성전자주식회사 고속 데이터 처리를 위한 효율적인 재전송 요청 장치 및방법
KR101071366B1 (ko) * 2009-04-30 2011-10-07 강원대학교산학협력단 다중 경로 라우팅 시스템 및 방법
KR101694271B1 (ko) 2015-07-07 2017-01-23 공주대학교 산학협력단 혼잡제어를 위한 다중경로 m-cubic
KR101929995B1 (ko) 2017-11-30 2018-12-17 울산과학기술원 무선통신 시스템의 단말 및 그의 데이터 전송 방법
KR101941362B1 (ko) 2017-02-24 2019-01-24 한국과학기술원 Mptcp 성능 향상을 위한 전송 지연 측정 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070109313A (ko) * 2006-05-10 2007-11-15 삼성전자주식회사 고속 데이터 처리를 위한 효율적인 재전송 요청 장치 및방법
KR101071366B1 (ko) * 2009-04-30 2011-10-07 강원대학교산학협력단 다중 경로 라우팅 시스템 및 방법
KR101694271B1 (ko) 2015-07-07 2017-01-23 공주대학교 산학협력단 혼잡제어를 위한 다중경로 m-cubic
KR101941362B1 (ko) 2017-02-24 2019-01-24 한국과학기술원 Mptcp 성능 향상을 위한 전송 지연 측정 방법 및 시스템
KR101929995B1 (ko) 2017-11-30 2018-12-17 울산과학기술원 무선통신 시스템의 단말 및 그의 데이터 전송 방법

Similar Documents

Publication Publication Date Title
KR102203509B1 (ko) 패킷 전송 방법, 단말, 네트워크 디바이스 및 통신 시스템
CN110661723B (zh) 一种数据传输方法、计算设备、网络设备及数据传输系统
KR100785293B1 (ko) 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
JP5523350B2 (ja) Tcpフロー制御のための方法及び装置
WO2018205688A1 (zh) 一种数据传输的方法、装置和系统
EP2119085B1 (en) Enhanced error control communication systems and methods
US9577791B2 (en) Notification by network element of packet drops
WO2012066824A1 (ja) 通信装置および通信システム
KR20180082571A (ko) 데이터 전송 방법, 전송 노드, 수신 노드 및 데이터 전송 시스템
US20090046717A1 (en) Methods to improve transmission control protocol (tcp) performance over large bandwidth long delay links
CN109510690B (zh) 传输报文的方法、网络组件和计算机可读存储介质
US20110141904A1 (en) Method and apparatus for transmitting packets of a two-way passenger data stream
WO2022116178A1 (zh) 一种tcp mss调整方法、装置及系统
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
KR102184144B1 (ko) Mptcp를 이용한 통신에서의 응답 메시지 처리 방법 및 시스템
US7490160B2 (en) Method of efficiently transmitting/receiving data using transport layer in a mobile ad hoc network, and network device using the method
Nguyen et al. An improvement of TCP performance over wireless networks
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
Shagdar et al. Improving ECN-based TCP performance over wireless networks using a homogeneous implementation of EWLN
JP2012134907A (ja) Tcp転送装置およびそのプログラム
KR20110078564A (ko) 멀티-호밍 기능을 제공하는 통신 프로토콜에 있어서의 패킷 왕복 시간 업데이트 방법 및 멀티-호밍 기능을 제공하는 통신 장치
EP3389206B1 (en) Multipath error correction
KR20050013777A (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
PROTOCOL Transmission Control Protocol
Rani et al. Enhancing TCP Performance by Detecting Spurious RTO in Wireless Network

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant