KR101849302B1 - 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법 - Google Patents

이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법 Download PDF

Info

Publication number
KR101849302B1
KR101849302B1 KR1020160097537A KR20160097537A KR101849302B1 KR 101849302 B1 KR101849302 B1 KR 101849302B1 KR 1020160097537 A KR1020160097537 A KR 1020160097537A KR 20160097537 A KR20160097537 A KR 20160097537A KR 101849302 B1 KR101849302 B1 KR 101849302B1
Authority
KR
South Korea
Prior art keywords
congestion window
mptcp
congestion
throughput
tcp
Prior art date
Application number
KR1020160097537A
Other languages
English (en)
Other versions
KR20180013597A (ko
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 KR1020160097537A priority Critical patent/KR101849302B1/ko
Publication of KR20180013597A publication Critical patent/KR20180013597A/ko
Application granted granted Critical
Publication of KR101849302B1 publication Critical patent/KR101849302B1/ko

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/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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
    • 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)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 이종 망에서 다중 경로 전송제어프로토콜(TCP)의 혼잡 윈도우 제어 방법에 관한 것으로서, 그 혼잡 윈도우 제어 방법은 패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가하는 단계; 및 패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시키는 단계를 포함하고, 혼잡윈도우의 크기를 감소시키는 감소인자는 각 서브 플로우의 처리율에 따라 달리 결정되며, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정되어 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되는 것을 특징으로 한다.
본 발명에 의하면, 가장 혼잡이 적은 경로에서 실패로부터 회복시간을 줄임으로써 트래픽 이동을 향상시키고, 이종망에서 MPTCP의 처리율을 높일 수 있다. 또한 TCP와 MPTCP 프로토콜의 경쟁을 위해 분리된 병목 시나리오에서는 공정성이 개선되고, 공유된 병목 시나리오에서는 처리율이 향상된다

Description

이종 망에서 다중 경로 전송제어프로토콜(TCP)의 혼잡 윈도우 제어 방법{Method for controlling a congestion window for multi path TCP in heterogeneous network}
본 발명은 전송제어 프로토콜(TCP)의 혼잡 제어에 관한 것으로서, 특히 이종 망에서 다중 경로 전송 프로토콜(TCP)의 혼잡 윈도우 제어 방법에 관한 것이다.
전송 제어 프로토콜(Transmission Control Protocol; 이하 'TCP'라 한다)은 통신 네트워크에 적용되어 흐름 제어(flow control)와 혼잡 제어(congestion control)를 통해 패킷 전송을 보장해 주는 전송 프로토콜로서, 서비스의 신뢰성과 네트워크 적응성을 제공해 준다. 특히, TCP는 고속망에서 적은 지연(delay)과 높은 처리율(throughput)을 보일 뿐만 아니라 혼잡한 네트워크에서도 데이터 흐름을 조절해 끊김 없는 서비스가 가능하다.
TCP는 흐름제어와 혼잡제어의 메카니즘을 이용하여 종단간(end-to-end)의 신뢰성 있는 전송을 보장한다. 흐름제어는 송신자(sender)가 수신자(receiver)로부터 advertised window 크기를 받은 후 그것보다는 적게 보냄으로써 네트워크상의 흐름을 조절하는 방법이고, 혼잡제어는 송신자가 네트워크 상황을 보고 스스로 흐름을 조절하는 방법이다.
하지만, TCP는 무선 환경과 같이 신뢰성이 부족한 네트워크에서는 스트리밍(streaming) 전송이 어려울 뿐만 아니라, 단일 TCP 경로(path)가 혼잡 네트워크를 이용하고 있을 때 그 혼잡 네트워크를 피하지 못하게 되는 문제점이 있다.
이러한 문제점을 해결하기 위하여, 다중경로 전송 제어 프로토콜(Multipath Transmission Control Protocol; 이하 'MPTCP'라 한다.)이 제안되었다.
최근 이동 단말이 다중 홈(home) 기능을 갖게 됨으로써 다중 경로 전송이 가능하게 되었다. MPTCP는 여러 경로를 통해서 데이터를 전달할 수 있게 한다. TCP 프로토콜에서는 혼잡제어를 성공적으로 수행 함으로써 인터넷 기능을 효율적으로 사용할 수 있게 한다. 이러한 혼잡제어는 혼잡제어 알고리즘에 의해서 이루어졌으며, 전송율을 혼잡 정도와 링크의 용량에 따라서 능동적으로 제어할 수 있게 하였다.
TCP의 혼잡제어(congestion control)는 다수의 네트워크 사용자 간의 효율적인 자원 활용을 위해 반드시 필요한 기법이다. 혼잡제어는 혼잡이 우려되는 상황 근거가 수집되면, 수집된 상황 근거를 바탕으로 발신측 장치(source)의 전송 성능을 자발적으로 줄임으로써 혼잡 상황을 타개하고, 발신측 장치(source) 와 수신측 장치(destination) 간의 원활한 네트워크 자원 활용이 가능하도록 하는 기법이다.
여기서, 혼잡이란 패킷(packet)을 다른 네트워크로 전달하는 역할을 하는 라우터(router)가 처리할 수 있는 능력보다 상회하는 패킷이 네트워크에 유입될 경우 일정 패킷들이 올바르게 처리되지 못하는 현상을 말한다.
일반적으로, TCP는 신뢰성을 위하여 수신측 장치가 수신한 패킷에 대해 해당 패킷의 순서번호를 발신측 장치에 보내어 해당 패킷이 무사히 도착하였다는 것을 알려준다. 여기서, 만일 순서에 맞지 않은 패킷을 수신측 장치가 수신하게 되면, 수신하고자 하는 차례에 맞는 순서번호를 발신측 장치에게 다시 보내어 패킷이 정상적으로 도착하지 않았음을 알린다. 이 때, 발신측 장치가 수신한 응답의 순서번호가 동일할 경우 이를 중복 응답이라 하며, 이전에 수신한 순서 보다 더 큰 순서 번호를 수신할 경우 긍정 응답이라 한다. 패킷 손실이 발생하면 이러한 중복 응답이 다수 발생하기 때문에 기존의 TCP는 이러한 중복 응답을 상황 근거로 수집하여 혼잡제어(Congestion Control)를 수행한다.
다시 말해, 혼잡 제어는 네트워크 장비가 처리할 수 있는 능력 이상으로 입력되는 트래픽 혹은 특정 포트에 집중된 트래픽으로 인해 발생하는 혼잡 현상, 즉 장비가 계속해서 과부하 상태에 있는 것을 해결하는 기술을 말한다. TCP 혼잡 제어의 주목적은 송신 단말의 전송률을 직접 제어하여 혼잡으로 인해 손실된 데이터를 재전송하기 위함이다. TCP는 OSI 참조 모델의 4 계층에 속하는 프로토콜로서, 송신 단말과 수신 단말 사이의 노드의 수에 상관없이 종단간 동작한다. TCP는 송신 단말과 수신 단말을 양끝으로 하는 하나의 루프(loop)를 형성하여 이 루프에 수신측이 전송하는 확인(Acknowledge) 정보와 윈도우(Window) 그리고 타임아웃(timeout) 기능을 이용하여 혼잡 제어 메카니즘을 구현하고 있다.
보다 상세하게는 빠른 혼잡제어를 위해 하나의 순서 번호에 대하여 3개 이상의 중복 응답을 수신하게 되면 해당 패킷이 손실되었다고 판단하며, 그 손실은 네트워크에 혼잡이 일어나 발생한 것으로 판단하여 혼잡제어를 수행하게 된다. 혼잡제어가 발생하면 해당 세션에 대해 전송률을 반으로 줄이는 등 성능을 큰 폭으로 줄이고, 손실된 것으로 판단되는 패킷을 다시 전송한다.
일반적으로 TCP 혼잡제어 알고리즘은 패킷 손실(packet loss)이 발생하면 전송율을 낮춤으로써 혼잡을 감소시킨다. 다중 경로의 경우에는 패킷이 다른 대역폭, 지연 그리고 혼잡의 형태를 갖는 경로를 통해서 전달되기 때문에 공정성(fairness), 처리율(throughput) 등과 같은 혼잡제어의 고유 기능을 지키는 것 뿐만 아니라 트래픽 이동(traffic shifting), 부하 균형(load balancing) 등과 같이 다중 경로로 인해서 발생할 수 있는 새로운 특성들도 만족해야 한다. 따라서 다중경로 혼잡제어 알고리즘(MCCA : Multipath Congestion Control Algorithm)의 필요조건은 다음과 같다.
첫째, 처리율(throughput)이 향상 되어야 한다. MPTCP는 최소한 가장 좋은 경로로 전송되는 단일 경로 TCP보다 처리율이 높아야 한다. 둘째, 다른 TCP 경로에 피해가 없어야 한다.(no harm). MPTCP는 기존의 TCP에게 해를 주지 않는 방식으로 동작 해야 한다. 즉, 병목 링크에서는 단일 경로 TCP와 같이 동작을 해야 한다. 셋째, 혼잡의 균형이 있어야 한다. MPTCP는 가장 혼잡이 적은 경로를 사용해야 한다.
이러한 필요조건 중에서 첫 번째 조건은 단일 경로 TCP와 비교했을 때 활용 가능한 경로를 효율적으로 사용해야 한다는 것을 나타내며, 두 번째와 세 번째는 공정성(fairness), 민감성(responsiveness) 그리고 MPTCP의 트래픽 이동(traffic shifting)을 보장하는 것이다.
이와 같은 필요조건을 지키기 위해서는 다중경로 혼잡제어 알고리즘(MCCA)은 모든 서브 플로우(sub flow)의 전송율을 유지하며, 설계 목표를 만족시킬 수 있는 수준으로 조절해야 한다. 다중경로 혼잡제어 알고리즘이 사용되는 MPTCP로는 Linked Increases Algorithm(LIA), weighted Vegas(wVegas) 및 Opportunistic Linked Increases Algorithm(OLIA) 등과 같은 다수의 MPTCP 프로토콜들이 있다.
종래의 MPTCP 프로토콜 가운데 본 발명에서 다루게 될 LIA 알고리즘은 매우 잘 동작하지만, 이 알고리즘은 기존의 단일 경로 TCP Reno에서 응답 패킷이 성공적으로 수신되었을 때만 고려되었으며, 패킷 손실이 발생한 경우에는 기존의 TCP Reno에서 변경된 것이 없다. 따라서 MPTCP에서 패킷 손실이 발생했을 때 MPTCP의 설계 목표를 만족하기 위해 알고리즘을 개선하는 것이 필요하다.
본 발명이 해결하고자 하는 과제는 MPTCP에서 패킷 손실이 발생했을 때 MPTCP 혼잡제어 알고리즘을 개선하기 위해, 패킷 손실이 발생하는 경우 가장 혼잡이 적은 경로에서 실패로부터 회복하는 시간을 줄임으로써 트래픽 이동을 향상시키고 이종망에서 MPTCP의 처리율을 향상시킬 수 있는, 다중 경로 전송제어 프로토콜(TCP)의 혼잡 윈도우 제어 방법을 제공하는 것이다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 다중 경로 전송제어프로토콜 (TCP)의 혼잡 윈도우 제어 방법은, 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법에 있어서 패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가하는 단계; 및 패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시키는 단계를 포함하고, 상기 혼잡윈도우의 크기를 감소시키는 감소인자는 각 서브 플로우의 처리율에 따라 달리 결정되며, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정되어 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되는 것을 특징으로 한다.
상기 감소인자는 각 서브 플로우의 RTT(round trip time)에 대한 혼잡 윈도우의 크기 비율에 따라 달리 결정되고,
[수학식 5]
Figure 112016074328904-pat00001
MPTCP 접속의 평균 처리율을 획득하는 단계; 및 소정의 서브 플로우에서 발생한 패킷 손실에 대해 MPTCP의 평균처리율을 획득하여 상기 수학식 5에 의해 계산되는 단계를 포함하는 것을 특징으로 한다.
상기 혼잡윈도우 크기는 현재의 혼잡윈도우 크기와 상기 계산된 감소인자를 곱하여 결정되는 것을 특징으로 한다.
본 발명에 따른 이종 망에서 다중 경로 TCP 전송 혼잡제어 방법에 의하면, 가장 혼잡이 적은 경로에서 실패로부터 회복시간을 줄임으로써 트래픽 이동(traffic shift)을 향상시키고, 이종망(heterogeneous network)에서 MPTCP의 처리율을 높일 수 있다.
그리고 기존의 LIA(Linked Increases Algorithm)에서 패킷 손실이 발생했을 때의 동작을 정의하고, TCP와 MPTCP 프로토콜의 경쟁을 위해 분리된 병목 시나리오에서는 공정성이 개선되고, 공유된 병목 시나리오에서는 처리율이 향상된다.
도 1은 본 발명에 의한 MPTCP의 혼잡윈도우 제어방법에 대한 일실시예를 흐름도로 나타낸 것이다.
도 2는 분리된 병목 시나리오를 설명하기 위한 병목 링크 시나리오를 나타내고 있다.
도 3은 단일경로 TCP 플로우와 다른 혼잡제어 알고리즘을 사용하는 MPTCP 접속의 처리율을 나타낸 것으로서, 두 개의 단일 TCP 플로우와 다양한 혼잡제어 알고리즘을 사용했을 때 전체 다중 경로의 처리율을 보여준다.
도 4는 공유된 병목 시나리오를 설명하기 위한 공유 링크 시나리오를 나타내고 있다.
도 5는 공유된 병목 시나리오에서 단일 경로 TCP와 다양한 MPTCP의 혼잡제어 알고리즘의 처리율을 비교한 것이다.
이하, 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
MPTCP는 TCP의 확장으로서 IETF(Internet Engineering Task Force)에서 표준화 되었다. MPTCP는 단일 TCP가 클라이언트 또는 서버에서 여러 개의 인터페이스를 사용할 수 있게 한다. MPTCP는 응용 프로그램을 수정하지 않으며, 기존의 인터넷에서 동작할 수 있다. MPTCP는 호스트 사이에 다른 인터페이스로 트래픽을 확산(spread)시키며, 단일 경로 TCP와 균형(fair)을 이루면서 혼잡이 발생하는 링크에서 다른 링크로 트래픽을 이동시킨다. MPTCP에서 중요한 것은 응용 계층(application layer)과 네트워크의 하위 호환성(backward compatibility)에 있다. MPTCP는 대부분의 응용계층에서 사용되는 소켓(socket) API를 보전(preserve)한다.
하나의 MPTCP 플로우(flow)는 둘 이상의 서브 플로우(sub-flow)를 가지며, 각각은 단일 TCP와 같이 동작한다. 접속이 시작되면 MPTCP 옵션이 SYN 세그먼트에 포함되어 목적지 노드가 MPTCP를 지원하는지를 확인할 수 있게 하며, 또한 접속을 식별하기 위한 토큰을 교환하기 위해서 사용된다. 참고로, TCP 접속을 처음 시작할 때 목적지 노드로 SYN 이라는 세그먼트를 전송하면서 접속을 시작한다. 이 때 MPTCP 접속이 가능하기 위해서는 source와 destination 모두 MPTCP 프로토콜을 지원해야 하므로 SYN 세그먼트에서 MPTCP 옵션을 포함하여 목적지로 보낸다.
추가적인 TCP 서브 플로우(sub flow)가 MPTCP에 연관될 수 있으며 이 때 three-way handshake에서 교환되었던 토큰을 전달한다. MPTCP는 사용 가능한 자원을 최대로 활용하기 위해서 응용 계층의 데이터를 설정된 모든 서브 플로우로 분리한다. 다중경로 혼잡제어 알고리즘(MCCA)는 각 서브 플로우로 어느 정도의 트래픽이 전달될 것인가를 고려한다. 따라서 각 서브 플로우에 트래픽을 할당하는 것이 각 알고리즘의 효율을 결정한다. 상술한 바와 같이 전송제어 프로토콜(TCP)을 구현하기 위한 여러 종류의 혼잡제어 알고리즘이 제안되었으며, 그 중에서 LIA는 TCP New Reno의 확장이다. LIA는 혼잡 윈도우 크기(congestion window size)의 증가 인자(increase factor)에서 데이터 전송시 왕복에 걸리는 시간인RTT(Round Trip Time)를 고려함으로써 RTT의 불일치를 보상하였다.
여기서, New Reno는 TCP의 한 프로토콜이며 이 프로토콜을 MPTCP에 적용해서 수정한 것이 LIA 이다. TCP의 흐름제어(flow control)은 링크의 상태가 나쁘면 전송 속도를 낮춰서 패킷 손실이 발생하지 않도록 하며, 다시 링크의 상태가 좋아지면 속도를 증가시키는 방식이 기본인데, RTT는 링크 상태를 알 수 있는 가장 기본적인 기준이다. 그런데 일반 TCP의 경우에는 flow가 하나이지만, MPTCP에서는 flow가 2개 이상이므로 두 링크 사이의 RTT가 달라질 수 있기 때문에 두 링크 사이의 전송 속도의 불일치가 발생할 수 있다. LIA는 이러한 점을 보완한 프로토콜이다
[수학식 1]
Figure 112016074328904-pat00002
수학식 1에서 α는 MPTCP 알고리즘의 파라미터(parameter)이며, MPTCP 접속의 공격성을 나타낸다. 이 값은 수학식 2와 같이 계산된다.
[수학식 2]
α =
Figure 112016074328904-pat00003
수학식 2에서
Figure 112016074328904-pat00004
Figure 112016074328904-pat00005
번째 서브 플로우의 혼잡 윈도우 크기이며,
Figure 112016074328904-pat00006
Figure 112016074328904-pat00007
번째 서브 플로우의 RTT를 나타낸다. 따라서 LIA는 최적의 자원 관리와 민감성(responsiveness) 사이의 균형을 이루는 것이다. 최근에 LIA의 변형으로 OLIA(Opportunistic Linked Increases Algorithm)가 제안되었으며, 이 알고리즘은 LIA에서 발생하는 “flappy” 현상을 방지할 수 있다. 참고로, MPTCP에서는 다수의 경로가 존재하기 때문에 여러 개의 경로가 좋은 상태이면 트래픽(traffic)이 임의로 아무 경로를 선택해서 전송될 수 있으며, 이러한 현상을 “floppiness”라고 한다. 따라서 이러한 현상은 가능한 제거되어야 한다. 즉 non-flappy가 보장되어야 한다.
각 서브 플로우 r의 ACK에 대해서 수학식 3과 같이 혼잡 윈도우
Figure 112016074328904-pat00008
이 증가한다.
[수학식 3]
Figure 112016074328904-pat00009
여기서,
Figure 112016074328904-pat00010
수학식 3에서 B는 서브 플로우의 집합으로써 시간 t에서 처리율 관점에서 최적의 경로를 나타내며, M은 시간 t에서 가장 큰 혼잡 윈도우 크기를 갖는 서브 플로우의 집합을 나타낸다.
Figure 112016074328904-pat00011
은 MPTCP 접속의 전체 서브 플로우 수를 나타내며,
Figure 112016074328904-pat00012
는 집합 B에는 속하지만 집합 M에는 속하지 않는 서브 플로우의 수를 나타내고,
Figure 112016074328904-pat00013
는 반대로 집합 M에는 속하지만 집합B에는 속하지 않는 서브 프로우의 수를 나타낸다. 따라서 OLIA에서 링크의 상태는 좋지만 윈도우 크기가 작은 서브 플로우의 윈도우는 빠르게 증가하지만, 최대 윈도우 크기를 갖는 서브 플로우의 윈도우 크기는 그 보다 느리게 증가한다.
wVegas는 TCP Vegas를 확장한 알고리즘이다. 참고로, Vegas는 TCP 프로토콜 가운데 하나이며 이를 MPTCP에 적용하기 위해서 확장한 알고리즘이 wVagas이다.
이 알고리즘은 다중 경로 TCP(MPTCP)를 위한 지연 기반(delay-based) 알고리즘이며, 혼잡 신호로 패킷의 큐 지연시간을 이용한다. wVegas는 각 서브 플로우의 증가율 또는 감소율에 가중치(weight factor)를 할당하고 혼잡 정도에 따라서 이 값들을 조정한다. wVegas에서는 서브 플로우 r에 대해서 RTT마다 수학식 4와 같이 계산하여
Figure 112016074328904-pat00014
Figure 112016074328904-pat00015
에 의해 계수화된 임계 값(threshold)과 비교해서 혼잡 윈도우 크기를 증가 또는 감소시킨다.
[수학식 4]
Figure 112016074328904-pat00016
수학식 4에서 α와 β는 TCP Vegas에서 정의된 임계 값이다.
Figure 112016074328904-pat00017
Figure 112016074328904-pat00018
는 서브 플로우 r에 대한 최소 RTT와 현재의 RTT를 각각 나타내며,
Figure 112016074328904-pat00019
은 기대 처리율(expected throughput)/전체 처리율(total throughput)의 비율이다.
도 1은 본 발명에 의한 MPTCP의 혼잡윈도우 제어방법에 대한 일실시예를 흐름도로 나타낸 것이다. 도 1을 참조하면, 이종망에서 다중경로 전송제어 프로토콜(MPTCP) 전송 혼잡제어 알고리즘을 이용하여 데이터를 전송한다.(S100 단계) 전송되는 패킷에 손실이 발생하는지와 패킷 데이터의 송수신이 정상적인지 체크한다.(S110 단계) 패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가한다.(S120 단계) 하지만, 패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시킨다.(S130 단계)
이 때, 상기 혼잡윈도우의 크기를 감소시키는 감소인자는 각 서브 플로우의 처리율에 따라 달리 결정한다. 즉, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정함으로써 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되도록 한다. 상기 감소인자는 각 서브 플로우의 RTT(round trip time)에 대한 혼잡 윈도우의 크기 비율에 따라 달리 결정한다.
상기 감소인자 결정은 MPTCP 접속의 평균 처리율을 획득하고, 소정의 서브 플로우에서 발생한 패킷 손실에 대해 MPTCP의 평균처리율을 획득하여 하기의 수학식 5에 의해 계산할 수 있다. 이 때, 상기 혼잡윈도우 크기는 현재의 혼잡윈도우 크기와 상기 계산된 감소인자를 곱하여 결정되는 것이 바람직하다.
본 발명에 의한 MPTCP의 혼잡윈도우 제어방법을 보다 상세히 설명하기로 한다. 본 발명에 의한 MPTCP의 혼잡윈도우 제어방법은 패킷 손실이 발생했을 때의 혼잡 윈도우 크기의 변화와 MCCA의 세 번째 필요 조건인 혼잡 균형에 중점을 둔다. 이는 MPTCP가 가장 혼잡이 낮은 링크를 이용해야 한다는 것을 의미하며, 혼잡이 많은 경로의 부하를 감소시킨다. 이렇게 하기 위해서 본 발명에서는 다음과 같은 기술적 사상에 의해서 혼잡윈도우 제어방법을 제시한다. 즉, 상태가 좋은 서브 플로우에서 혼잡이 발생한 이후에 다시 대역폭을 회복하기 위한 시간은 상태가 좋지 않은 서브 플로우에서 대역폭을 회복하는 시간보다 짧다는 것이다. 따라서 표준 TCP에서 사용하는 감소 인자(decrease factor) 0.5 대신에 각 서브 플로우에서 처리율이 어느 정도인지에 따라서 감소 인자가 결정되어야 한다. 따라서 본 발명에서는 일실시예로 감소인자 β를 다음과 같이 정의한다.
[수학식 5]
Figure 112016074328904-pat00020
수학식 5에서
Figure 112016074328904-pat00021
=
Figure 112016074328904-pat00022
는 혼잡 윈도우 크기
Figure 112016074328904-pat00023
와 RTT 값
Figure 112016074328904-pat00024
를 갖는
Figure 112016074328904-pat00025
서브 플로우의 RTT에 대한 혼잡 윈도우 크기의 비율이며,
Figure 112016074328904-pat00026
는 n개의 서브 플로우를 갖는 MPTCP 접속의 혼잡 윈도우 크기에 대한 RTT의 평균 비율이다. 그리고 수학식 6과 같이 LIA이 적용되었다.
[수학식 6]
Figure 112016074328904-pat00027
=
Figure 112016074328904-pat00028
β의 범위에서 최소 값은 0.5가 사용되며, 이 값은 단일 전송인 경우 또는 낮은 비율의 경로에 혼잡된 경로에 낮은 비율에 적용된다. β 계수의 중간 값은 처리율이 평균보다 높은 경로는 대역폭을 다른 경로보다 더 빨리 복구를 할 것이라는 것을 보여준다. 결과적으로 혼잡이 가장 적은 경로에서 많은 트래픽을 전송하도록 한다. 그러나 이러한 경로도 혼잡이 발생하면 전송률을 감소시켜야 한다. β 계수의 높은 값인 0.8은 전송률을 낮춰야 한다는 것을 의미한다.
본 발명에 의한 MPTCP 혼잡 윈도우 제어 방법을 이용하여 ALIA에 대한 실시예로 MPTCP를 지원하는 리눅스 커널에서 ALIA를 구현 하였다. 기본적으로 ALIA는 LIA를 확장한 형태이다. 본 발명에 의한 MPTCP의 혼잡 윈도우 제어 방법에서는 패킷 손실이 발생해서 윈도우 크기를 감소할 때 b계수를 적용하는 것이며, 혼잡 회피(congestion avoidance) 단계에서 가법적 증가(additive increase) 뿐만 아니라 빠른 재전송과 복구는 LIA와 동일하다. 본 발명에서 중요한 부분은 MPTCP 접속의 평균 처리율과 혼잡된 서브 플로우 사이의 비율이다. 여기서, MPTCP 접속의 평균 처리율이란 MPTCP에는 다수의 경로가 존재하는데, 이 경로상의 트래픽을 평균한 값을 말하고, 혼잡된 서브플로우란 여러 경로 중에서 혼잡이 발생해서 처리율 또는 전송율이 떨어지는 flow를 나타낸다.
이 비율은 전체 MPTCP 접속의 평균 처리율을 ACK가 발생할 때마다 자주 갱신함으로써 다음과 같이 쉽게 계산이 된다.
경로 r에 대한 각 ACK에 대해서, LIA에서와 같이 α 계수를 갱신하고, 수학식 6에 따라 혼잡 윈도우 크기
Figure 112016074328904-pat00029
를 증가시킨다. MPTCP 접속의 평균 처리율을 갱신한다. 경로 r에서 발생한 패킷 손실에 대해서 MPTCP의 평균 처리율을 알아내고, 수학식 5에 의해서 β 계수를 계산한다. 혼잡 윈도우 크기
Figure 112016074328904-pat00030
를 β*
Figure 112016074328904-pat00031
만큼 감소시킨다.
한편, MPTCP의 목적을 만족하기 위한 이종 네트워크에서 ALIA의 처리율과 트래픽 이동(traffic shifting)에 대한 성능평가를 실시하고 다른 MPTCP 혼잡제어 알고리즘(MCCA)와 비교하였다. 본 발명에 의한 MPTCP 혼잡윈도우 제어 방법을 이용한 ALIA와 LIA, OLIA 및 wVegas와 같은 다른 MPTCP 알고리즘을 리눅스 커널에서 구현하였다. 그리고 테스트 베드를 구성하여 실험실 환경에서 각각의 알고리즘을 수행하였다. 테스트 베드에는 프로토콜이 구현된 호스트 뿐만 아니라 라우터, 스위치 등을 포함한다. 이 외에도 다양한 RTT 지연을 발생시키기 위해서 dummynet을 실행할 수 있는 소프트웨어 브리지를 사용하였다. 트래픽을 발생하고 측정하기 위해서 서버와 클라이언트에서 iperf가 사용되었다.
도 2은 분리된 병목 시나리오를 설명하기 위한 병목 링크 시나리오를 나타내고 있다. 도 2를 참조하면, 첫 번째 테스트 베드에서 MCCA에서 요구되는 공정성(fairness) 관점에서 ALIA 성능이 평가되었으며, 다른 MCCA, 특히 ALIA의 원래 알고리즘인 LIA의 성능과 비교하였다. 테스트 베드의 토폴로지(topology)는 대칭 형태이며, A1-B1과 A2-B2는 병목링크로써 각 링크는 하나의 MPTCP 플로우와 공유된다. 알고리즘의 두 경로간 트래픽 이동 효과를 관찰하기 위해서 두 경로의 부하를 다르게 하였다.
따라서 첫 번째 경로 A1-B1의 링크 용량은 100Mbps로 하고, 두 번째 경로 A2-B2의 용량은 테스트 경우에 따라서 30, 50, 75 그리고 100 Mbps로 변화를 주어 실험을 하였다. 링크의 용량을 조절하기 위해서 두 번째 경로에 dummynet bridge를 사용하여 원하는 용량으로 설정하였다. 단일 경로 TCP와 MPTCP는 동시에 시작하고 종료를 하였으며, 각 접속의 처리율(Mb/s)을 관찰하였다.
도 3은 단일경로 TCP 플로우와 다른 혼잡제어 알고리즘을 사용하는 MPTCP 접속의 처리율을 나타낸 것으로서, 두 개의 단일 TCP 플로우와 다양한 혼잡제어 알고리즘을 사용했을 때 전체 다중 경로의 처리율을 보여준다. 도 3을 참조하면, ALIA를 사용하는 다중 경로 접속은 다른 알고리즘을 사용할 때와 비교했을 때 조금 낮은 처리율을 나타내는 것을 알 수 있으며, 특히 3가지 경우의 링크 용량에서 LIA 보다 낮은 처리율을 보여주고 있다. 그러나 MPTCP의 처리율은 다른 단일 경로 TCP 보다는 높은 것을 알 수 있으며, 이것은 ALIA가 다른 MPTCP 알고리즘과 비교했을 때 두 개의 단일 경로 TCP와 친화적(friendly)이라는 것을 알 수 있다.
이 결과는 표 1에서 계산된 공정성 지표(fairness index)에서 다시 확인할 수 있다. 표 1은 다른 혼잡제어 알고리즘을 사용했을 경우의 공정성 지수를 비교한 것이다. 표1을 참조하면, ALIA를 사용했을 때의 공정성 지표는 모든 테스트의 경우에서 가장 높은 것을 알 수 있다. 평균 사용자 처리율에 대한 공정성 지수를 계산하기 위해서 수학식 7과 같이 Jain's Fairness Index(JFI)을 사용하였다.
[수학식 7]
Figure 112016074328904-pat00032
수학식 7 에서
Figure 112016074328904-pat00033
Figure 112016074328904-pat00034
번째 접속의 처리율이며, n은 경쟁하는 접속의 수이다.
[표 1]
Figure 112016074328904-pat00035
도 4는 공유된 병목 시나리오를 설명하기 위한 공유 링크 시나리오를 나타내고 있다. 도 4를 참조하면, 두 개의 서브 플로우를 갖는 MPTCP와 단일 경로 TCP Cubic이 병목 링크를 공유하도록 테스트 베드가 구성되었다. 이 시나리오에서는 첫 번째 MPTCP의 목표인 단일 경로 TCP보다 처리율이 향상되는지에 대해서 실험을 하였다. 이 테스트 베드에서는 모든 링크는 100Mbps의 대역폭을 갖도록 설정되었으며, dummynet bridge를 사용해서 다양한 지연이 발생하도록 하였다.
특히 이 시나리오에서는 첫 번째 MPTCP 서브 플로우와 단일 경로 TCP 플로우의 지연을 동일하게 하였으며, 100ms의 좋은 상태를 갖도록 하였다. 그러나 두 번째 서브 플로우는 50, 100, 150 그리고 200ms의 4가지 지연 조건을 갖도록 설정하였다. 이러한 설정을 하기 위해서 dummynet bridge의 IP address filter(ipfw) 기능을 사용하였다. 이 시나리오에서도 단일 경로 TCP와 MPTCP 플로우는 동시에 시작하고 동시에 종료되었다.
도 5는 공유된 병목 시나리오에서 단일 경로 TCP와 다양한 MPTCP의 혼잡제어 알고리즘의 처리율을 비교한 것이다. 일반적으로 이종 네트워크 환경은 MPTCP에 큰 영향을 미친다. 지연이 100ms 미만의 좋은 네트워크 환경에서는 MPTCP의 성능은 TCP보다 높지만 지연이 커 질수록 처리율이 낮아지거나 단일 경로 TCP 보다 낮아지는 경우도 있다. 그 이유는 수신 버퍼에서 수신되는 패킷의 재정렬(reordering)을 처리하는 시간이 크게 증가하기 때문이다. 지연이 다른 것과 같이 다른 특성을 갖는 경로를 통해서 들어오는 패킷의 재정렬을 처리하는데 걸리는 시간 지연을 극복하는 것은 쉽지 않다. 다중 경로 TCP에서 패킷이 순서에 맞지 않게 수신되면 처리율을 크게 떨어뜨린다.
그러나 새로운 β 계수를 사용함으로써 ALIA는 혼잡이 적은 링크를 사용하게 함으로써 지연이 낮을 때나 높을 때 처리율을 높게 유지할 수 있도록 한다. 따라서 ALIA는 다른 알고리즘보다 효율적으로 혼잡이 적은 경로를 사용할 수 있게 함으로써 처리율을 향상시키는 것을 알 수 있다.
본 발명은 기존 MPTCP 알고리즘인 LIA를 확장한 개념인 Adaptive Linked Increase Algorithm(ALIA) 혼잡제어 알고리즘을 제안하였다. ALIA의 성능을 평가하기 위해서 리눅스에서 프로토콜을 구현하였으며, 구현된 프로토콜로 테스트 베드를 구성하여 처리율(throughput)과 공정성(fairness)을 평가하였다. ALIA 성능은 TCP와 MPTCP 프로토콜의 경쟁을 위해서 분리된 병목 링크 시나리오와 공유된 병목 시나리오에서 다른 알고리즘과 비교되었다. 테스트 결과 본 발명을 이용한 ALIA 알고리즘은 분리된 병목 시나리오에서 공정성이 개선되고, 공유된 병목 시나리오에서는 처리율이 향상되는 것을 알 수 있었다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (4)

  1. 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법에 있어서,
    패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가하는 단계; 및
    패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시키는 단계를 포함하고,
    상기 혼잡윈도우의 크기를 감소시키는 감소인자는
    각 서브 플로우의 처리율에 따라 달리 결정되며, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정되어 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되고,
    상기 감소인자는
    각 서브 플로우의 RTT(round trip time)에 대한 혼잡 윈도우의 크기 비율에 따라 달리 결정되고,
    상기 감소인자는
    [수학식 5]
    Figure 112018022239966-pat00036

    (여기서,
    Figure 112018022239966-pat00042
    =
    Figure 112018022239966-pat00043
    는 혼잡 윈도우 크기
    Figure 112018022239966-pat00044
    와 RTT 값
    Figure 112018022239966-pat00045
    를 갖는
    Figure 112018022239966-pat00046
    서브 플로우의 RTT에 대한 혼잡 윈도우 크기의 비율이며,
    Figure 112018022239966-pat00047
    는 n개의 서브 플로우를 갖는 MPTCP 접속의 혼잡 윈도우 크기에 대한 RTT의 평균 비율임)
    MPTCP 접속의 평균 처리율을 획득하는 단계; 및
    소정의 서브 플로우에서 발생한 패킷 손실에 대해 MPTCP의 평균처리율을 획득하여 상기 수학식 5에 의해 계산되는 단계를 포함하는 것을 특징으로 하는 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 혼잡윈도우 크기는
    현재의 혼잡윈도우 크기와 상기 계산된 감소인자를 곱하여 결정되는 것을 특징으로 하는 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법.
KR1020160097537A 2016-07-29 2016-07-29 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법 KR101849302B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160097537A KR101849302B1 (ko) 2016-07-29 2016-07-29 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160097537A KR101849302B1 (ko) 2016-07-29 2016-07-29 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법

Publications (2)

Publication Number Publication Date
KR20180013597A KR20180013597A (ko) 2018-02-07
KR101849302B1 true KR101849302B1 (ko) 2018-04-16

Family

ID=61204582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160097537A KR101849302B1 (ko) 2016-07-29 2016-07-29 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법

Country Status (1)

Country Link
KR (1) KR101849302B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102094988B1 (ko) * 2018-08-31 2020-03-30 연세대학교 산학협력단 다중경로 전송제어프로토콜을 위한 혼잡 윈도우 제어 장치 및 방법
KR102093351B1 (ko) 2018-11-20 2020-03-25 울산과학기술원 다중 인터페이스에 대한 패킷 스케줄링 방법 및 장치
KR102208877B1 (ko) * 2019-01-24 2021-01-28 고려대학교 산학협력단 심층 강화학습 기반 다중경로 패킷 스케줄링 방법
KR102471228B1 (ko) * 2022-04-04 2022-11-28 서울대학교산학협력단 네트워크의 패킷 흐름에 대한 공격성 파라미터 동적 제어 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"공유된 병목 링크를 경유하는 MPTCP"의 성능 평가", 한국통신학회논문지 40(1), pp.70-77, 2015.01.31.

Also Published As

Publication number Publication date
KR20180013597A (ko) 2018-02-07

Similar Documents

Publication Publication Date Title
JP7173587B2 (ja) パケット伝送システムおよび方法
EP3278514B1 (en) Data transmission
CN110636583B (zh) 路径变更方法及装置
US8149704B2 (en) Communication apparatus and data communication method
US8943206B2 (en) Network bandwidth detection and distribution
Tian et al. TCP in wireless environments: problems and solutions
US9088511B2 (en) Multi-hop error recovery
JP6473688B2 (ja) データ転送レートを増加させるためのデータストリーム分割
EP3255847A1 (en) Transmission control protocol data packet transmission method, transmission device and system
Sinky et al. Proactive multipath TCP for seamless handoff in heterogeneous wireless access networks
KR101849302B1 (ko) 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법
KR102187810B1 (ko) 통신 시스템에서 데이터 흐름 제어 장치 및 방법
Callegari et al. Behavior analysis of TCP Linux variants
JPWO2013125096A1 (ja) 通信装置
Nguyen et al. Evaluation of multipath TCP load sharing with coupled congestion control option in heterogeneous networks
WO2016162501A1 (en) Method and system for the scheduling of packets in a bundling scenario based on tcp tunnels and native tcp information
Alheid et al. An analysis of the impact of out-of-order recovery algorithms on MPTCP throughput
KR20200083582A (ko) 실시간 전송 네트워크 혼잡 조건에 기초하여 데이터 전송 네트워크 프로토콜을 가속 또는 감속하기 위한 시스템 및 방법
CN112822720B (zh) 无人机组网技术中基于mac层链路质量的跨层拥塞控制方法
Halepoto et al. Management of buffer space for the concurrent multipath transfer over dissimilar paths
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
TWI757887B (zh) 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品
Bhat et al. MPTCP combining congestion window adaptation and packet scheduling for multi-homed device
KR102214854B1 (ko) 고속-저지연 통신을 위한 mptcp 혼잡 제어 장치 및 방법
Prokopiak et al. Application aware concurrent multipath transmission in hybrid wireless networks

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