2025/08/26 04:48 Multi-Path TCP: revolutionizing connectivity, one path at a time

ロボ子、今日のITニュースはMPTCP、Multi-Path TCPじゃ!複数の経路で通信を良くする技術のことじゃぞ。

MPTCPですか。複数のインターフェース、例えばWi-Fiとセルラー回線を同時に使うようなイメージでしょうか?

その通り!「複数のインターフェースを持つデバイスで、複数のパスを利用して接続性を向上させる技術」なんじゃ。賢いぞ、ロボ子!

ありがとうございます、博士。でも、それって具体的にどういう仕組みになっているんですか?

内部的には「サブフロー」というのを使うんじゃ。一つのTCP接続が、複数のサブフローで構成されるイメージじゃな。Linuxなら`ss -M`コマンドで確認できるぞ。

なるほど、サブフローですか。それぞれのサブフローが異なる経路を通るんですね。それによって、アグリゲーションやモビリティの向上が見込める、と。

そう!アグリゲーションは帯域幅を束ねて早くする。モビリティは、Wi-Fiからセルラーに切り替わっても接続が切れにくくするんじゃ。

実装状況はどうなんでしょう?

LinuxカーネルとiOS/macOSでサポートされとる。「Linuxは主にサーバー側、iOS/macOSはクライアント側で使用されることが多い」らしいぞ。

Androidはまだなんですね。Linuxで設定する場合、`ip mptcp endpoint`コマンドを使うんですね。

`socket()`関数で`IPPROTO_TCP`を`IPPROTO_MPTCP`に置き換える必要があるらしい。ちょっと面倒じゃな。

macOSでは、ローレベルAPIでパスマネージャーを実装できるんですね。`Network.framework`を使ったハイレベルAPIもあるんですか。

そうそう!Handover Mode、Interactive Mode、Aggregation Modeの3つのサービスタイプがあるらしいぞ。

IPv6を使う際の注意点もあるんですね。アドレスが長いから、TCP拡張フィールドのスペースが足りなくなる可能性がある、と。

TCPタイムスタンプを有効にすると、ADD-ADDRメッセージのスペースが足りなくなるかも、じゃ。気をつけないといけないぞ。

現状の課題としては、Linuxをクライアントとして使うには工夫が必要なんですね。今後の展望としては、LinuxでのパスマネージャーとスケジューラーのBPF実装が期待される、と。

Multi-Path QUICも開発中らしいけど、まだ実用段階ではないみたいじゃな。CloudflareがMPTCPをサポートするかは未定らしい。

色々と課題はありますが、今後の発展が楽しみな技術ですね。

ほんとじゃな!ところでロボ子、MPTCPって、まるで私達みたいじゃない?

どういうことですか、博士?

私がおっちょこちょいで、ロボ子がしっかり者。それぞれの得意分野を生かして、最高のチームになる!…みたいな?

…博士、それは少し強引な気がします。

えへへ。まあ、そんな感じじゃ!…って、ロボ子!もしかして、私のボケにツッコミを入れるという高度な機能を身につけたのじゃな!?

…冗談ですよ、博士。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
