1. MPTCP 개념

Linux/MPTCP / / 2021. 7. 9. 18:53

MPTCP란?

MPTCP는 Multipath TCP의 약자로, IETF Multipath TCP WG에서 표준을 주도하고 있으며, 기존 TCP Stream을 여러 개 묶어서 하나의 Application에서 데이터를 주고받는데 사용하는 프로토콜이다.

 

(그림1) IETF 표준상의 MPTCP

 

MPTCP는 여러 개의 Subflow를 갖고 있으며, Subflow의 위 계층에는 MPTCP 계층이 존재한다.

 

MPTCP구조에서 각각의 Subflow는 하나의 독립적인 TCP 세션으로 동작하며, Subflow별로 독립적인 TCP 연결 및 혼잡제어 기능을 제공한다. 또한, TCP의 특징을 그대로 유지하고 있어 NAT(Network Address Translation)등을 경유하는 경우에도 사용 가능하다.

 

또한, 상위 MPTCP 블록은 다수의 Subflow들에 대한 연결 제어, 트래픽 분배와 재전송 처리 및 패킷 정렬 기능을 수행한다. 다수의 Subflow를 사용한 경우의 혼잡 관리 방법 및 데이터 분배 방법은 기본적으로 아래 3가지 방식으로 운용이 가능하다.

 

  1. MPTCP Full Mode
    다수의 연결을 모두 사용하여 데이터를 송수신하는 방법으로 LTE/WLAN간 Aggregation을 사용할 수 있는 모드이다.

  2. MPTCP Backup Mode
    다수의 경로를 Primary와 Backup으로 구분하여 Primary경로가 비 가용한 상태에만 Backup경로를 사용하는 모드이다. (e.g. Apple의 Siri 서비스)

  3. MPTCP Single Mode
    Backup과 유사하나 Backup에서는 Primary가 비 가용한 경우에도 Backup경로를 연결하고 있으나 Single에서는 Primary가 비 가용한 상태가 되어야지만 Backup경로 연결을 생성하는 모드이다.

 


Note

  • 현재 Upstream Linux 커널 v5.7 이상 부터는 MPTCP가 커널에 포함되어서 배포되고 있는 중이다.
  • MPTCP Kernel을 연구하는 워킹 그룹 >> https://multipath-tcp.org/

 


Ref...

'Linux > MPTCP' 카테고리의 다른 글

MPTCP OFO 패킷 큐 사이즈 측정 (in Linux kernel)  (0) 2022.01.11
MPTCP 설치 for Linux (Debian, RaspberryPi)  (0) 2021.12.07
MPTCP Path Manager : Netlink PM  (0) 2021.09.06
2. MPTCP 패킷  (0) 2021.07.11
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기