MultiPath TCP on CoreOS

MultiPath TCP on CoreOS

이번 iOS 11에서 Multipath TCP란 걸 공식 지원하면서 이를 데일리호텔 서비스에 활용할 수 있는지 기술검토를 해보았다. 우선 MPTCP가 무엇인지 애플의 간략한 설명을 확인하자.

Users would expect that data transfer could continue seamlessly when WiFi assists switches from WiFi to cellular. With regular TCP, this is not possible for technical reasons. Fortunately, Multipath TCP provides the same service as regular TCP.
출처: Apple opens Multipath TCP in iOS11

MPTCP를 서버에서 지원하기

CoreOS도 리눅스일 뿐이라 MPTCP 커널 모듈을 커널에 탑재하면 문제 없이 작동할 것이다. 우분투 등은 패키지매니저를 통해서 미리 준비한 모듈을 쓸 수 있어서 편리한데 CoreOS는 우리가 직접 컴파일해야 한다는 점이 문제이다. 주기적으로 CoreOS 새 버전을 적용하는데 이때마다 커널 버전이 바뀌고 커널 버전이 바뀔 때마다 새로 모듈을 준비하고 테스트하기는 매우 번거롭다. 우아하게 말해 운영비용이 많이 든다.

그리고 MPTCP와 관련된 보안 문제가 얼마나 심각한지 검토할 필요도 있다. 심각하다는 이야기는 아니고 심각한지 여부를 파악할 필요가 있다는 것이다.

지금으로선 리눅스 커널에 MPTCP가 기본탑재되길 기다리는 게 현명해보인다.

추가로 Multipath TCP를 사용하여 iOS의 백업 연결 생성하기에 따르면 MPTCP는 작동조건이 까다롭다. 클라이언트와 서버뿐 아니라 그 중간에서 통신을 연결하는 라우터도 이를 지원해야 한다.

iOS 기기와 서버 사이의 라우터 또는 스위치와 같은 미들박스가 MPTCP를 지원하지 않는 경우 iOS는 표준 TCP를 사용하여 연결합니다.

참고 자료


Also published on Medium.

최 재훈

블로그, 페이스북, 트위터

고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.

Close Menu
%d bloggers like this: