MPTCP란?
MPTCP는 Multipath TCP의 약자로, IETF Multipath TCP WG에서 표준을 주도하고 있으며, 기존 TCP Stream을 여러 개 묶어서 하나의 Application에서 데이터를 주고받는데 사용하는 프로토콜이다.
MPTCP는 여러 개의 Subflow를 갖고 있으며, Subflow의 위 계층에는 MPTCP 계층이 존재한다.
MPTCP구조에서 각각의 Subflow는 하나의 독립적인 TCP 세션으로 동작하며, Subflow별로 독립적인 TCP 연결 및 혼잡제어 기능을 제공한다. 또한, TCP의 특징을 그대로 유지하고 있어 NAT(Network Address Translation)등을 경유하는 경우에도 사용 가능하다.
또한, 상위 MPTCP 블록은 다수의 Subflow들에 대한 연결 제어, 트래픽 분배와 재전송 처리 및 패킷 정렬 기능을 수행한다. 다수의 Subflow를 사용한 경우의 혼잡 관리 방법 및 데이터 분배 방법은 기본적으로 아래 3가지 방식으로 운용이 가능하다.
- MPTCP Full Mode
다수의 연결을 모두 사용하여 데이터를 송수신하는 방법으로 LTE/WLAN간 Aggregation을 사용할 수 있는 모드이다. - MPTCP Backup Mode
다수의 경로를 Primary와 Backup으로 구분하여 Primary경로가 비 가용한 상태에만 Backup경로를 사용하는 모드이다. (e.g. Apple의 Siri 서비스) - 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 |