• 검색 결과가 없습니다.

광대역 다중 경로 망에서 MPTCP 성능 개선을 위한 혼잡제어 설계

N/A
N/A
Protected

Academic year: 2022

Share "광대역 다중 경로 망에서 MPTCP 성능 개선을 위한 혼잡제어 설계"

Copied!
7
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

광대역 다중 경로 망에서 MPTCP 성능 개선을 위한 혼잡제어 설계

김병철

1

, 한기문

2

, 이재용

1,*

3)

Design of Congestion Control for Performance Improvement of MPTCP in High BDP Multipath Networks

Byung Chul Kim

1

, Ki Moon Han

2

, Jae Yong Lee

1*

요 약

최근 들어 WiFi, 4G, 5G, 위성링크와 같은 다중경로를 갖는 광대역 네크워크 망이 구축되어 있 어, MPTCP 프로토콜과 같이 다중 경로를 이용하여 트래픽을 전송하여 자원을 효율적으로 활용하 는 것이 필요하다. 하지만 고속의 장거리 네트워크를 포함하는 다중경로에서는 MPTCP의 트래픽 전송 성능이 저하되는 문제점이 있어 관련 혼잡제어 연구가 필요하다. 본 논문에서는 MPTCP의 이 와 같은 문제를 해결하기 위해 BDP가 큰 경로에서는 TCP CUBIC으로 동작하고 다른 경로는 LIA 로 동작하는 혼잡제어를 제안하였다. 제안한 혼잡제어 검증을 위해 실제 리눅스 커널 LIA 혼잡제어 소스 코드를 수정하여 제안 알고리즘을 구현하고, BDP가 큰 경로와 작은 경로를 갖는 이종 다중 경로망 테스트베드를 구축하고 성능을 분석하였다. 실험결과 BDP가 큰 경로에서 LIA는 대역폭의 10 ~ 20% 정도밖에 활용하지 못하는 반면 제안한 방안은 대역폭의 80%를 활용할 수 있어 자원 활용률이나 트래픽 평균 전송속도 성능이 크게 개선되는 것을 확인하였다.

Abstract

These days, multipath networks which has high BDP such as WiFi, 4G, 5G and satellite links have been established. MPTCP uses multiple paths to send traffic to make efficient use of resources. However, high-speed long-distance network degrades traffic transmission and congestion control studies are insufficient. In order to solve this problem, this paper proposes a new ongestion control that works with TCP CUBIC on a large BDP path and LIA on another path. In order to verify the congestion control, the actual Linux kernel LIA congestion control source code was modified, and heterogeneous network testbeds with large and small paths of BDP were constructed and the performances was analyzed. Experimental results show that the proposed scheme utilizes 80% of the bandwidth in the high BDP path, while LIA

1충남대학교 전파정보통신공학과 (대전시 유성구 대학로 99) (교수)

2충남대학교 전파정보통신공학과 (대전시 유성구 대학로 99) (학생)

*Corresponding Author : [email protected] 접수일자 : 2020. 04. 21.

1차 심사 : 2020. 04. 27.

2차 심사 : 2020. 11. 07.

게재확정 : 2020. 11. 18.

DOI: http://data.doi.or.kr/10.22733/JITAE.2020.10.02.003

(2)

utilizes 10-20% of the bandwidth, so the resource utilization rate and the average traffic speed performance can be greatly improved.

Keywords: MPTCP, TCP Congestion Control, High BDP Network, CUBIC, LIA

1. 서 론

TCP[1]는 흐름제어, 혼잡제어를 수행하며 신뢰성을 기반으로 동작하는 전송계층 프로토 콜로서 혼잡제어는 종단간 연결된 경로를 통해, 슬라이딩 윈도우 기반 메커니즘을 이용하여 송 신 단에서 네트워크 상황에 따라 전송률을 조 절하는 역할을 한다. 초기 TCP는 하나의 세션 연결만을 고려하여 설계되어 다양한 경로가 존 재해도 자원을 활용하지 못하였는데 오늘날의 네트워크에서는 하나의 세션에서 다양한 경로 의 자원을 효율적으로 사용하기 위해서 MPTCP (Multipath TCP)[2][3]가 전송계 층 프로토콜로 연구되고 있다.

그러나 MPTCP의 기본적인 혼잡제어 방식인 결합혼잡제어 (coupled congestion control) 방식은 다중경로의 특성 (지연시간, 대역폭 등) 이 크게 다른 다중경로를 사용할 경우에 적절 히 대응하지 못하고 성능이 저하되는 단점을 가지고 있다. 특히 최근 들어 네트워크의 속도 가 향상된 고속의 장거리 네트워크를 가지는 다중경로가 형성될 경우, 고속 네트워크의 장점 을 활용하지 못하고 성능이 개선되지 못하는 단점을 가지게 된다. 이를 개선하기 위해서는 MPTCP의 혼잡제어가 고속의 네트워크를 활 용할 수 있도록 개선되어야 하나, 아직 이 분야 의 연구가 미흡한 실정이다.

본 논문에서는 MPTCP를 활용하여 고속의 장거리 네트워크를 포함하는 다중경로를 사용 할 경우에 자원의 활용률을 높이는 것을 목표 로 새로운 MPTCP 혼잡제어 알고리즘을 제안 하였다. 즉, 단일 경로 혼잡제어 중 고 대역폭 과 긴 지연시간을 가지는 네트워크에 적합하게 대응하도록 설계되어 있는 TCP Cubic[4]과 MPTCP 혼잡제어인 LIA (Linked Increase Algorithm)를 조합한 혼잡윈도우 적용을 통해

병목지점에서 일반 TCP와 경쟁해도 공평성 (Fairness)을 유지하면서 성능 개선을 가져오 는 방안을 제안하고 이의 성능 분석을 수행하 였다.

2. 관련 연구

본 장에서는 먼저 MPTCP 연결방법 및 동 작 원리를 설명하고, 다음으로 실제 Linux kernel에 구현되어 있는 MPTCP 혼잡제어에 대하여 소개한다. 다음으로 고속의 장거리 네트 워크 망에서 성능이 검증된 TCP Cubic에 대 해 설명하고, 마지막으로 현재 MPTCP 혼잡제 어의 한계점을 설명한 후 TCP Cubic을 접목 하는 방안을 제시한다.

2.1 MPTCP

MPTCP는 다중 인터페이스를 이용해 하나 의 세션에 여러 개의 연결을 사용하여 자원의 효율성을 증대하고 혼잡한 경로를 피하고 비어 있는 경로를 활용하기 위한 전송계층 프로토콜 이다. 그림 1과 같이 전송 계층을 세분화하여 하나 이상의 TCP 서브플로우(Subflow) 위에 MPTCP Shim 계층을 추가해 혼잡제어를 수 행하며 일반 TCP와 호환성이 뛰어나다.

그림 1. MPTCP 계층구조.

Fig. 1. Structure of MPTCP Layer.

(3)

MPTCP가 IETF에서 차세대 TCP 프로토콜 로 인정되면서 혼잡제어 연구가 다양하게 진행 되었다. 윈도우 기반 및 전송률 기반의 혼잡제어 알고리즘들이 연구되었다. 대표적으로 LIA[5], OLIA[6]가 있는데 이중 LIA는 식 (1)과 같이 각 서브플로우의 증가인자 를 계산하여 혼잡 윈도우를 증가시키며 다중 경로 트래픽 전송을 제어한다. r번째 서브플로우의 혼잡윈도우 크기 는 이고, RTT(Round Trip Time)는 

이다. 은 식 (2)와 같이 계산하며 ACK를 받을 때마다 증가인자 를 전체 서브플로우의 혼잡윈도우 크기의 합으로 나눈 값 또는 해당 서브플로우의 혼잡윈도우 크기 역수 중 작은 값만큼 증가시킨다.

 

× 



max

(1)

  min 

  

  (2)

LIA는 다중 경로의 혼잡윈도우를 균형있게 조절하기 때문에 일반 TCP와 병목 지점에서 네트워크 트래픽을 공유하여도 공평성을 유지 한다. 하지만 대역폭이 크고 지연시간이 긴 경 로를 가지는 MPTCP 환경에서는 대역폭 자원 을 제대로 이용하지 못하는 성능 저하가 발생 하는 문제점을 가진다.

2.2 BDP가 큰 경로를 포함하는 MPTCP MPTCP 혼잡제어의 다양한 연구 및 개선에 도 불구하고 기본적으로 MPTCP 혼잡제어는 사용하는 경로들의 특성이 서로 상이하게 될 경 우 큰 성능 저하현상이 발생한다[7][8]. 이러한 측면에서 볼 때, 고속의 장거리 환경을 가지는 경로를 가질 경우에 대한 혼잡제어 연구가 미흡 한 실정이다. 기본적인 LIA를 사용할 경우 저 속의 경로에 영향을 받아 고속 경로의 자원을 제대로 활용할 수가 없기 때문이다. 따라서 본 논문에서는 BDP가 큰 경로에서는 TCP Cubic

혼잡제어로 동작하여 혼잡윈도우를 빠르게 증가 시켜 링크 대역폭을 충분히 활용하도록 하고, BDP가 작은 경로에서는 LIA 혼잡제어로 동작 하도록 하는 혼잡제어를 제안하였다.

TCP Cubic[4]은 Linux OS에서 기본으로 설정되고 있는 전송계층 혼잡제어이다. 이진탐 색 알고리즘을 이용한 혼잡제어 방식인 TCP BIC의 취약점을 보완하고 계산의 복잡성을 간 단하게 설계한 것이 TCP Cubic이다. 따라서 여러 개의 세션이 TCP Cubic을 이용하여 대 역폭 경쟁을 할 때 혼잡윈도우 크기는 모두 동 일하게 나타난다. 또한, RTT에 영향을 받지 않아 장거리 고속의 네트워크에서 자원 활용 효율이 일반 TCP보다 높게 나타난다.

MPTCP 프로토콜을 high-speed network 에 적용하는 방안에 대한 연구로는 MCubic의 설계, 구현 및 다중 연고 TCP의 성능 평가에 관한 [9]와 CUBIC과 유사한 혼잡 제어 방안 을 다중 경로 TCP에 적용한 mpCUBIC[10]

논문이 최근 나왔으나 비 대칭적인 subflow에 서 공정성을 유지하며 성능을 최대로 유지하기 위한 방안의 연구는 아직 부족한 편이다.

3. 혼잡 제어 개선 알고리즘

본 장에서는 지연시간이 길고 대역폭이 큰 광대역 망에서 MPTCP를 사용할 때, 링크 자 원 활용 향상을 목표로 하는 새로운 혼잡제어 알고리즘에 대해 소개한다.

제안한 혼잡제어는 BDP가 작은 링크에서는 LIA와 동일하게 각 경로의 공격성을 계산하여 혼잡윈도우의 크기를 계산하고, BDP가 큰 경 로에서는 독립적으로 TCP Cubic의 혼잡제어 로 동작한다. 즉, 대역폭이 크고 가용 용량이 충분한 곳에서는 망의 최대 용량을 사용하도록 CUBIC으로 동작하고 다른 TCP와 공유하는 링크에서는 LIA 방법에 따라 공정성을 유지하 도록 하여 다중 경로에 따른 트래픽 증가가 다 른 트래픽의 성능에 영향을 미치지 않도록 하 였다. 따라서 TCP Cubic으로 동작하는 경로 는 LIA의 혼잡윈도우의 커플링 (coupling) 과

(4)

상관없이 독립적으로 동작하여 네트워크 자원 을 충분히 활용할 수 있는 이점이 있다. 하지 만, TCP Cubic의 혼잡윈도우 값을 그대로 LIA의 증가 인자 를 계산하는데 사용하면 나 머지 BDP가 작은 경로에서는 혼잡윈도우 증가 속도가 지나치게 느려지게 되어 최대한 가용한 모든 경로의 자원을 활용하는 MPTCP의 설계 목표에 어긋나게 된다. 따라서, TCP Cubic으 로 동작하는 경로를 가상의 LIA 혼잡제어가 동 작하는 것처럼 가상혼잡윈도우를 계산하여 다 른 경로의 윈도우 증가인자 를 계산하는데 사 용한다. 즉, 높은 BDP를 가지는 경로에서 사 용중인 TCP CUBIC의 혼잡윈도우 대신 가상 의 혼잡윈도우를 적용하여 TCP Reno가 동작 하고 있는 것처럼 보이도록 하였다.

TCP Cubic의 혼잡윈도우를 LIA의 가상 혼 잡윈도우로 바꾸기 위해 패킷 손실률이 같은 네트워크 환경에서 TCP Reno의 평균 혼잡윈 도우와 TCP Cubic의 평균 혼잡윈도우의 비를 사용하였다. 즉, 현재의 TCP Cubic의 혼잡윈 도우를 두 혼잡제어의 비로 나누어 가상의 TCP Reno 혼잡윈도우를 구하였다. 그림 2는 가상의 TCP Reno 혼잡윈도우를 이용하여 LIA의 증가 인자 를 계산하는 VLIA 흐름도 를 보여준다. 다중 경로를 이용하여 MPTCP 연결을 설정하고 각 서브플로우의 혼잡윈도우 파라미터 값을 파악한다. BDP가 큰 광대역 경 로이면 혼잡제어는 TCP Cubic으로 동작한다.

반대로 BDP가 작은 경로이면 LIA 혼잡제어로 동작한다. 광대역 경로의 혼잡윈도우는 가상의 TCP Reno 혼잡윈도우로 변형되고 가상의 혼 잡윈도우와 나머지 경로의 혼잡윈도우 및 RTT 를 이용해 식 (1)에 적용할 새로운 증가인자인

을 계산한다. 이후 가상의 혼잡윈도우에 

의 제곱근을 곱하여 최종적으로 LIA 알고리즘 이 적용됐을 때의 혼잡윈도우를 구한다. 의 제곱근을 곱하는 이유는 TCP Reno와 LIA의 평균 혼잡윈도우 값 및 크기 비율을 비교해볼 때 평균 혼잡윈도우 크기가 의 제곱근만큼 차 이가 나는 것을 알 수 있기 때문이다.

이후 광대역 경로에서는 가상 혼잡윈도우를

계산에만 이용하고 독립적으로 Cubic 혼잡

윈도우를 적용하여 해당 경로로 전송하는 데이 터양을 조절한다. 광대역 경로에서는 TCP Cubic으로 동작해 자원을 충분히 활용할 수 있 고, BDP가 작은 경로에서는 광대역 경로를 하 나의 LIA 서브플로우로 인식한다. 따라서 이 방식을 사용하면 일반적인 경로에서는 혼잡윈 도우 증가속도 저하도 나타나지 않고 공평성 측면에서도 기존 LIA와 동일하게 자원을 공유 하게 된다.

그림 2. VLIA 혼잡제어 흐름도.

Fig. 2. VLIA congestion control flowchart.

4. 성능 평가

본 장에서는 제안한 혼잡제어 알고리즘의 TCP 처리율 성능 향상 및 공정성을 분석하였다.

4.1 실험 환경

성능 분석을 위한 실험 환경은 그림 3에서와 같이 총 8대의 PC를 사용했으며 모든 PC에 Linux OS Ubuntu 14.04 LTS를 설치하였 다. MPTCP 송수신단에는 MPTCP 그룹에서 제공하는 커널파일에 있는 LIA 소스코드를 변 경하여 구현하였다. 광대역 망을 구성하기 위해 서 버퍼 크기와 수신윈도우 설정을 변경하여 데이터가 전송되는 서브플로우 1, 2 모든 중간 지점과 종단지점의 버퍼 크기는 BDP의 100%

로 설정하였고, 수신윈도우 크기가 혼잡윈도우 에 영향을 주지 않도록 충분히 크게 설정하였

(5)

다. 서브플로우 1의 물리적 요소인 NIC 및 케 이블의 대역폭은 1Gbps로 하였고 중간 노드 Dummynet[11]에서 QoS를 설정하여 대역폭 을 500Mbps, 지연시간을 100ms로 적용하여 광대역 망을 구성하였다. 서브플로우 2의 물리 적 대역폭은 100Mbps이고, 중간 노드에서 대 역폭에는 변화를 주지 않고 지연시간을 20ms 로 설정하여 BDP가 작은 경로를 구성하였다.

각 노드에 정적라우팅 설정을 하여 MPTCP 송수신단은 서브플로우1과 2의 경로를 거치도 록 하였다. TCP 송수신단은 서브플로우 2의 경로를 거치도록 하였다. 패킷 손실률은 서브플 로우 1, 2 병목링크에 일반 유선 네트워크망의 손실률인 10-6을 설정하였다.

그림 3. 테스트베드 네트워크 토폴로지.

Fig. 3. Testbed network topology.

Iperf 툴[12]을 이용하여 TCP 트래픽을 발 생시켰으며, 최대 세그먼트 사이즈는 1460바이 트로 설정하였다. 패킷 분석을 위해 Wireshark 툴[13]을 이용하여, 총 전송시간, 평균 전송속 도를 측정하였다.

4.2 실험 결과

제안한 알고리즘의 성능을 살펴보기 위해 세 션 시간이 긴 경우(1000초)에 대해 성능을 평 가하였다. 그림 4는 MPTCP 혼잡제어로 LIA 를 사용한 경우의 결과이다. 서브플로우 1은 BDP가 큰 경로이며, 대역폭 500Mbps와 지연 시간 100ms로 BDP를 계산하면 링크에 수용 할 수 있는 최대 혼잡윈도우는 4166개이다. 버 퍼크기를 BDP의 100%로 설정하였으므로 버 퍼를 포함한 링크 수용 혼잡윈도우량은 8332 개이다. 서브플로우 1의 그래프에서 LIA 혼잡

윈도우는 240초 동안 증가해 1290개 정도가 된다. 240초에 패킷 손실이 발생해 혼잡윈도우 는 절반으로 감소한다. 계속 증가 감소를 반복 하며 혼잡윈도우를 변화시키지만 최대 수용량 에는 도달하지 못한다. BDP가 큰 네트워크 환 경에서는 링크의 자원을 15%도 사용하지 못하 고 낭비하고 있는 것이다.

그림 5에서 서브플로우 1은 BDP가 큰 경로 에서 TCP CUBIC으로 동작할 때 혼잡윈도우 변화 그래프이다. 짧은 시간에 링크 최대 수용 혼잡윈도우 크기 8332에 도달하는 것을 볼 수 있고 LIA와는 다르게 단 시간 내에도 링크 자 원을 최대로 활용하는 것을 볼 수 있다.

그림 4. LIA: 혼잡윈도우 변화 그래프 (1000초).

Fig. 4. LIA: congestion window change graph (1000 sec).

그림 5. 제안 방안: 혼잡윈도우 변화 그래프 (1000초).

Fig. 5. Suggested scheme: congestion window change graph (1000 sec).

(6)

그림 6. 화일 다운로드 완료 시간 비교.

Fig. 6. Comparison of file download completion time.

실험결과의 평균 전송성능을 Wireshark 툴 을 이용해 각 경로 및 전체 경로의 패킷을 캡 처해 평균 전송속도 값을 얻은 결과 1000초 동안 LIA 혼잡제어의 전체 평균 전송속도는 115Mbps이었다. 서브플로우 1의 평균 전송속 도는 95Mbps, 서브플로우 2는 20Mbps이었 다. 서브플로우 1은 다른 TCP의 간섭이 없기 때문에 충분한 시간이 흐르면 링크 최대 전송 속도인 500Mbps에 가깝게 사용해야 하지만 잦은 패킷 손실과 느린 혼잡윈도우 증가로 인 해 링크의 전송속도는 95Mbps에 수렴한다.

링크의 자원을 1/5정도 밖에 사용하지 못하는 것이다. 그러나 제안된 방안을 적용할 경우 평 균 전송속도는 서브플로우 1은 397Mbps, 2는 25Mbps, 전체는 422Mbps로 전체 링크 대역 폭의 약 80%임을 알 수 있었다. 마지막으로 기존의 LIA 기법을 사용한 경우와 본 논문에서 제안한 방안을 사용하여 10Gbyte의 크기를 가 지는 대용량 파일을 다운로드하는데 걸리는 시 간을 비교한 결과 그림 6과 같이 약 3.67배 감 소함을 알 수 있었다.

5. 결 론

본 논문에서는 BDP가 큰 경로를 갖는 네트 워크에서 MPTCP의 전송성능을 개선하기 위 해 새로운 혼잡제어 알고리즘을 설계하고 성능 평가를 수행하였다. 고속의 장거리 네트워크에 서 기존 MPTCP 혼잡제어는 패킷 손실 및 느 린 혼잡윈도우 증가로 트래픽 전송 성능 저하 가 나타나며 해당 경로의 네트워크 자원을

15% 이하 정도밖에 사용하지 못한다.

이를 해결하기 위해 제안한 혼잡제어는 BDP 가 큰 경로에서는 독립적으로 TCP Cubic으로 동작하여 경로자원을 최대로 활용하고, BDP가 작은 일반 경로에서는 기존 LIA와 동일하게 전 체 사용하고 있는 다중 경로의 증가 인자를 계 산하여 혼잡제어 하도록 설계하여 MPTCP 자 체의 전송성능 공평성이 유지되도록 하였다.

실제 리눅스 PC에 제안한 VLIA 혼잡제어 알고리즘을 MPTCP LIA 소스코드를 활용하여 구현하고, BDP가 큰 경로와 BDP가 작은 경 로를 갖는 이종망 테스트베드 네트워크 토폴로 지를 구성하여 실험하였다. LIA 혼잡제어와 제 안한 VLIA 혼잡제어를 적용하였을 때 긴 시간 (1000초) TCP 세션을 연결하여 실험 결과를 분석하였다. 제안한 혼잡제어는 평균 전송속도, 링크 자원 활용률 성능이 대폭 향상된 것을 확 인하였다. 향후에는 다양한 네트워크 환경을 구 성하여 제안한 혼잡제어를 적용하여 성능을 확 인해볼 것이다.

감사의 글

이 연구는 충남대학교 학술연구비에 의해 지 원되었음.

참고 문헌

0[1] Jacobsen V, and Karels MJ. “Congestion avoidance and control,” ACM CCR Vol.

18, No. 4, pp. 314-329, Jan. 1995.

0[2] A. Ford, C. Raiciu, M. Handley, and O. Bonaventur, “TCP Extensions for Multipath Operation With Multiple Addresses”, document MPTCP 6824, Internet Eng. Task Force, Fremont, CA, USA, 2009.

0[3] A. Ford, C. Raiciu, M. Handley, and O. Bonaventur, “TCP Extensions for Multipath Operation With Multiple

(7)

Addresses”, document RFC 6824, Internet Eng. Task Force, Fremont, CA, USA, 2013.

0[4] Bao W, Wong VWS, and Leung VCM.

“A model for steady state throughput of TCP CUBIC”, IEEE Globecom, pp. 1-6, 2010.

0[5] C. Raiciu and M. H. D. Wischik,

“Coupled Congestion Control for Multipath Transport Protocols”, IETF, Internet Standart RFC 6356, Oct. 2011.

0[6] C. Raiciu and M. H. D. Wischik,

“Coupled Congestion Control for Multipath Transport Protocols”, IETF, Internet Standart RFC 6356, Oct.

2011.

0[7] S. Ferlin, T. Dreibholz, and O. Alay,

“Multi-path transport over heterogeneous wireless networks: Does it really pay off?”, IEEE Globecom, pp. 1-6, Dec. 2010.

0[8] S. H. Baidya and R. Prakash, “Improving the performance of multipath TCP over heterogeneous paths using slow path adaptation”, IEEE ICC, pp. 3222-3227, Jun. 2014.

0[9] 노승환, 류장열, 최진규, “MCubic(Multipath Cubic)의 설계, 구현 및 다중 경로 TCP의 성능 평가에 관한 연구”, 한국정보기술학회논 문지, 제16권, 제8호, pp. 45-55, 2018.

[10] Toshihiko Kato, et.al., “mpCUBIC: A CUBIC-like Congestion Control Algorithm for Multipath TCP”, WorldCIST 2020, June 2020.

[11] Dummynet,

http://info.iet.unipi.it/~luigi/dummynet/

[12] Iperf, https://iperf.fr/

[13] Wireshark, https://www.wireshark.org/

참조

관련 문서