マルチパスTCP (MPTCP )は、 インターネット技術タスクフォース (IETF)のマルチパスTCPワーキンググループによる継続的な取り組みであり、伝送制御プロトコル (TCP)接続が複数のパスを使用してスループット を最大化し、冗長性を高めることを目的としています。[ 1 ]
2013年1月、IETFはRFC 6824においてマルチパス仕様を実験的標準として公開しました。これは2020年3月にRFC 8684のマルチパスTCP v1仕様に置き換えられました。
ユーザーインターフェース 展開を容易にするため、マルチパスTCPはTCPと同じソケットインターフェースを提供します。これは、マルチパスTCP上で任意の標準TCPアプリケーションを使用でき、実際にはデータを複数のサブフローに分散できることを意味します。[ 8 ]
プロトコルスタックにおけるマルチパスTCP 一部のアプリケーションは、基盤となるマルチパスTCPスタックを制御するための拡張APIから恩恵を受ける可能性があります。マルチパスTCPスタックの一部の機能をアプリケーションに公開するために、2つの異なるAPIが提案されています。1つはLinux上のNetlinkを拡張するAPI [ 9 ] 、もう1つは拡張ソケットAPI [ 10 ]です。
ユースケース マルチパスTCPは、通常のTCPとの下位互換性を持つように設計されています。そのため、あらゆるアプリケーションをサポートできます。ただし、特定の展開[ 26 ] では、異なるパスを同時に使用する機能を活用しています。
Appleは、 iPhone のSiri アプリケーションをサポートするためにマルチパスTCPを使用しています。SiriはHTTPS セッションを介して音声サンプルをAppleサーバーに送信します。これらのサーバーは、ユーザーが要求した情報で応答します。Appleのエンジニアによると、このアプリケーションにおけるマルチパスTCPの主な利点[ 27 ] は次のとおりです。
ユーザーフィードバック(最初の単語までの時間)が95パーセンタイルで20%高速化 ネットワーク障害を5分の1に削減 他の展開では、マルチパスTCPを使用して異なるネットワークの帯域幅を集約します。たとえば、韓国では、いくつかの種類のスマートフォンがマルチパスTCPを使用してSOCKSプロキシを介してWiFiと4Gを結合しています。[ 28 ] 別の例として、xDSL とLTE ネットワークを組み合わせようとするネットワーク事業者によって展開されるハイブリッドアクセスネットワークが あります。この展開では、マルチパスTCPを使用してxDSLとLTEネットワーク上のトラフィックを効率的にバランスさせます。[ 29 ]
固定通信ネットワークと移動通信ネットワークの統合標準化において、3GPP とBBFは 相互運用を行い、マルチパスセッションをサポートするATSSS(アクセストラフィック選択、スイッチング、分割)機能を提供しています。これは、ユーザー機器(UE)または住宅用ゲートウェイ(RG)とネットワーク側の両方でマルチパスTCPを適用することによって実現されます。[ 30 ]
マルチパスTCPオプション マルチパスTCPは、 RFC 8684で詳細に説明されているオプションを使用します。すべてのマルチパスTCPオプションは、IANAによって予約されているオプションの種類30を持つTCPオプションとしてエンコードされます。[ 31 ]
マルチパスTCPオプションは、標準のOption-Kind(この場合は30)とLengthの値に続いて4ビットのサブタイプフィールドで構成されます。IANAは、「 Transmission Control Protocol (TCP) Parameters」レジストリの下に「MPTCP Option Subtypes」というサブレジストリを管理しています。このサブタイプフィールドはMPTCPヘッダータイプを示し、その値は次のように定義されます。
0x9から0xeまでの値は、現在未割り当てです。
プロトコル操作
簡略化された説明 TCPとMPTCPの違い マルチパスTCPの核心的な考え方は、標準TCPのように2つのインターフェース間ではなく、2つのホスト間で接続を確立する方法を定義することです。
例えば、アリスは3GとWiFiインターフェースを備えたスマートフォン(IPアドレスは10.11.12.13と10.11.12.14)を持っており、ボブはイーサネットインターフェースを備えたコンピュータ(IPアドレスは20.21.22.23)を持っています。
標準TCPでは、接続は2つのIPアドレス間で確立されます。各TCP接続は、送信元アドレス、宛先アドレス、ポート番号の4つ組で識別されます。この制約により、アプリケーションは単一のリンクを介して1つのTCP接続しか作成できません。マルチパスTCPでは、接続が複数のパスを同時に使用できます。そのため、マルチパスTCPは、使用する必要のある各パス上に、サブフローと呼ばれる1つのTCP接続を作成します。
RFC 6824で定義されている各種プロトコル操作の目的は以下のとおりです。
パスの追加/削除のタイミングと方法を処理する(例えば、接続が切断された場合や輻輳制御が必要な場合など)。 従来のTCPハードウェア(シーケンス番号が連続していない場合にTCP接続を自動的に拒否するファイアウォールなど)との互換性を確保するため 異なるリンク間および異なるホスト間(特にMPTCPをサポートしていないホスト間)で公平な輻輳制御戦略を定義する。 MPTCPセッション全体の例 マルチパスTCPは、TCP伝送に新たなメカニズムを追加します。
サブフローシステムは、複数の標準TCP接続(あるホストから別のホストへの経路)をまとめるために使用されます。サブフローはTCPの3ウェイハンドシェイク中に識別されます。ハンドシェイク後、アプリケーションは一部のサブフロー(サブタイプ0x3および0x4)を追加または削除できます。 MPTCP DSSオプションには、データシーケンス番号と確認応答番号が含まれています。これらにより、複数のサブフローからのデータを破損なく元の順序で受信できます(メッセージサブタイプ0x2)。 改良された再送プロトコルは、輻輳制御と信頼性を処理する。
詳細仕様 詳細なプロトコル仕様はRFC 8684に記載されています。いくつかの調査論文では、このプロトコルの概要が説明されています。[ 32 ] [ 33 ]
交通渋滞対策 マルチパス TCP には、いくつかの輻輳制御メカニズムが定義されています。従来の TCP 輻輳制御方式との主な違いは、異なるパス上の輻輳に対応する必要がある一方で、いずれかのパスで競合する可能性のある単一パス TCP ソースに対して不公平にならないようにする必要がある点です。[ 3 ] 現在、Linux カーネルのマルチパス TCP 実装では、4 つのマルチパス TCP 輻輳制御方式がサポートされています。
RFC 6356 で定義されているリンク増加アルゴリズム機会主義的リンク増加アルゴリズム[ 34 ] wVegasの遅延ベースの輻輳制御アルゴリズム バランスリンク増加アルゴリズム[ 35 ]
代替案
マルチパスQUIC IETFは 現在、従来TCP 、TLS 、HTTP プロトコルに見られる機能を統合したQUIC プロトコルを開発している。これは、マルチパスTCPと同じユースケースをサポートするように拡張できる。マルチパスQUICの最初の設計が提案され、[ 36 ] 実装され、評価された。[ 37 ]
ストリーム制御伝送プロトコル ストリーム制御伝送プロトコル (SCTP)は、もともと電気通信シグナリング用に設計された、信頼性の高い順序通りのデータグラム ストリーム転送プロトコルです。複数のアクセスリンクの同時使用をサポートし、アプリケーションがデータグラムストリーム単位でアクセスインターフェイスの選択に影響を与えることができます。また、アクセス再ネゴシエーションによるモビリティもサポートしています。したがって、SCTPもトランスポート層ソリューションです。同時実行性を備えたタイプ3フロー粒度を提供しますが、マルチパスTCPよりもフロースケジューリング制御が優れています。また、マルチパスTCPと同様の方法でモビリティを完全にサポートしています。[ 38 ]
IMS SIP IP マルチメディア サブシステム (IMS) アーキテクチャでは、セッション開始プロトコル (SIP) により、1 つ以上の IMS ユーザー エージェントの登録に複数のコンタクト IP アドレスを同時に使用できます。これにより、複数の IMS シグナリング パスを作成できます。これらのシグナリング パスでは、シグナリング メッセージはセッション記述プロトコル (SDP) メッセージングを伝送し、メディア ストリームをネゴシエートします。SDP により、1 つのメディア セッションのストリームを複数のパスで (再) ネゴシエートできます。これにより、アプリケーション レイヤーのマルチパス トランスポートが可能になります。この観点から、IMS はフロー粒度と同時アクセスを備えたアプリケーション レイヤーのマルチパス サポートを提供できます。リアルタイム トランスポート プロトコル (RTP) のマルチパス拡張は、IETF 内で議論されています。[ 39 ] マルチパス RTP は、同時アクセスとモビリティ (IMS、SDP シグナリング、または RTP 制御プロトコル経由) を備えたフロー粒度を提供できます。[ 38 ] ごく最近、さらにDCCP (データグラム輻輳制御プロトコル)をマルチパス機能で拡張する提案がIETFのTSVWG(トランスポートエリアワーキンググループ)[ 40 ] で議論され、 MP-DCCP と呼ばれています。
AI/MLベースのマルチパスTCP輻輳制御とパケットスケジューリングを統合した深層強化学習(DRL)フレームワークは、ポリシー勾配を使用して経験から輻輳制御とスケジューリング戦略を学習します。 [ 41 ] DRLベースのマルチパスTCPは、分散エッジ学習アプリケーションで使用されています。[ 42 ]
その他のプロトコルと実験 セッション層では、モバイルアクセスルータプロジェクトは2003年に、異種技術を用いた複数の無線アクセスを集約し、それぞれの知覚されるパフォーマンスに応じてトラフィックを透過的にバランスさせる実験を行った。[ 43 ]
複製されたコンテンツの複数のサーバーへの接続を開始するためにHTTP範囲要求を 利用することで転送を高速化する並列アクセス方式[ 38 ] は、アプリケーション層が関与し、既知のサイズのコンテンツに限定されるため、マルチパスTCPとは同等ではありません。
RFC RFC 6181 - マルチパス操作における複数アドレス対応TCP拡張機能の脅威分析 RFC 6182 - マルチパスTCP開発のためのアーキテクチャガイドライン RFC 6356 - マルチパス伝送プロトコルにおける結合型輻輳制御 RFC 6824 - 複数アドレスによるマルチパス操作のためのTCP拡張機能(v0;RFC 8684に置き換えられました) RFC 6897 - マルチパスTCP(MPTCP)アプリケーションインターフェースに関する考慮事項 RFC 7430 - マルチパスTCP(MPTCP)における残存脅威の分析と可能な対策 RFC 8041 - マルチパスTCPのユースケースと運用経験 RFC 8684 - 複数アドレスによるマルチパス動作のためのTCP拡張機能(v1) RFC 8803 - 0-RTT TCP変換プロトコル
参考文献 ↑ マルチパスTCPワーキンググループ ↑ Paasch, Christoph; Detal, Gregory; Duchene, Fabien; Raiciu, Costin; Bonaventure, Olivier (2012). "Exploring mobile/WiFi handover with multipath TCP" . Proceedings of the 2012 ACM SIGCOMM workshop on Cellular networks: Operations, challenges, and future design - Cell Net '12 . ACM SIGCOMM workshop on Cellular Networks (Cellnet'12). p. 31. doi : 10.1145/2342468.2342476 . ISBN 9781450314756 。1 2 S. Pokhrel; M. Panda; H. Vu (2017-02-24). "ラストマイル無線におけるマルチパスTCPの解析的モデリング". IEEE/ACM Transactions on Networking . 25 (3): 1876–1891 . doi : 10.1109/TNET.2017.2663524 . S2CID 21518823 . ↑ S. Pokhrel; M. Mandjes (2019-03-24). "WiFi およびセルラーネットワークにおけるマルチパス TCP パフォーマンスの改善: 分析的アプローチ". IEEE Transactions on Mobile Computing . 25 (3): 1876–1891 . doi : 10.1109/TMC.2018.2876366 . S2CID 69263415 . ↑ Raiciu; Barre; Pluntke; Greenhalgh; Wischik; Handley (2011). "マルチパスTCPによるデータセンターのパフォーマンスと堅牢性の向上" . ACM SIGCOMM Computer Communication Review . 41 (4): 266. CiteSeerX 10.1.1.306.3863 . doi : 10.1145/2043164.2018467 . S2CID 61962047 . ↑ C. Paasch; G. Detal; S. Barré; F. Duchêne; O. Bonaventure. 「マルチパスTCPによる最速のTCP接続」 . 2013年9月20日 取得 。 ↑ アフザル、ジーシャン(2020)。 セキュリティミドルボックスのライフサイクル:新興プロトコルとテクノロジーにおける課題 (博士論文) 。ISBN 978-91-7867-103-8 OCLC 1139703033。 1 2 3 「LinuxカーネルのMultiPath TCPプロジェクト」 。 2014年11月28日 取得 。 ↑ Hesmans, B.; Detal, G.; Barre, S.; Bauduin, R.; Bonaventure, O. (2015). "SMAPP". SMAPP towards smart Multipath TCP-enabled applications . pp. 1–7 . doi : 10.1145/2716281.2836113 . ISBN 9781450334129 . S2CID 9940025 . ↑ Hesmans, Benjamin; Bonaventure, Olivier (2016). "マルチパスTCPのための拡張ソケットAPI". 2016年応用ネットワーク研究ワークショップ(ANRW 16 )議事録、pp. 1–6 . doi : 10.1145/2959424.2959433 . ISBN 9781450344432 . S2CID 13799560 . ↑ 「MPTCP実装の調査(インターネットドラフト、2013)」 。 2013年9月20日 取得 。 ↑ Barre; Paasch; Bonaventure (2011). "MultiPath TCP: From Theory to Practice" . IFIP Networking . ↑ Raiciu; Paasch; Barre; Ford; Honda; Duchene; Bonaventure; Handley (2012). "How Hard Can It Be? Designing and Implementing a Deployable Multipath TCP" . Usenix NSDI : 399–412 . ↑ 「Linux MPTCP アップストリーム プロジェクト」 。 ↑ 「FreeBSD 用マルチパス TCP v0.1」 。 2013年9月23日 取得 。 ↑ Pokhrel, Shiva Raj; Kua, Jonathan; Fleming, Brenton; Ozer, Sebnem; Howe, Jeff; Walid, Anwar (2024). "プラグイン可能な機械学習モデルのためのFreeBSD-13におけるマルチパスTCP実装" . Computer Networks . 252 : 596– 609. doi : 10.1016/j.comnet.2024.110671 . ↑ 「リリースノート:BIG-IP LTMおよびTMOS 11.5.0」 。f5 Networks。2014年5月30日。 2014年5月30日 取得 。 ↑ John Gudmundson (2013-05-28). "NetScaler Multipath TCP でモバイル ユーザー エクスペリエンスを最大化する" . Citrix . 2013-09-20 に取得. ↑ 「AppleもマルチパスTCPを信じているようだ」 。 2013年9月20日 取得 。 ↑ 「MPTCPは(デフォルトで)自由に動作する! – OS X YOSEMITE」 。2014年10月20日。 2015年9月16日 取得 。 ↑ Georg Hampel (2012-10-26). "MPTCPプロキシのコードリリース" . Alcatel-Lucent . 2016-12-28 に取得. ↑ Georg Hampel; Anil Rana (2012-10-26). "MPTCP PROXY" (PDF) . Bell Labs / Alcatel-Lucent . 2016-12-28 に取得. ↑ Rao, Shoaib. 「RFC 6824 に関するいくつかのコメント」 。2015 年 6 月 25 日 取得 。 ↑ 「MPTCP アップストリーム プロジェクト」 。2019-12-17。2020-01-10 に 取得 。 ↑ 「KTのGiGA LTE」 (PDF ) ↑ Bonaventure, Olivier; See, SungHoon (2016). "Multipath TCP Deployments" . IETF Journal . ↑ C. Paasch、「iOSおよびLinuxの実装アップデート」、IETF-99、 https://datatracker.ietf.org/meeting/99/materials/slides-99-mptcp-sessa-ios-linux-implementation-updates/ ↑ S. Seo、「KTのGiGA LTE - モバイルMPTCPプロキシの展開」、IETF-97、 https://www.ietf.org/proceedings/97/slides/slides-97-banana-kt-giga-lte-mobile-mptcp-proxy-development-01.pdf ↑ Gregory Detal、Sebastien Barre、Bart Peirens、Olivier Bonaventure、「マルチパスTCPを活用したハイブリッドアクセスネットワークの構築」、SIGCOMM'17(産業デモ)、 http://conferences.sigcomm.org/sigcomm/2017/files/program-industrial-demos/sigcomm17industrialdemos-paper4.pdf ↑ 3GPP TR 23.793、「5Gシステムアーキテクチャにおけるアクセストラフィックのステアリング、スイッチ、およびスプリッティングサポートに関する研究(リリース16)」、 https://www.3gpp.org/ftp/Specs/latest/Rel-16/23_series/23793-g00.zip ↑ 「IANAプロトコルレジストリTCPオプション種類番号」 。 2013年9月24日 取得 。 ↑ Paasch, Christoph; Bonaventure, Olivier (2014年4月). "Multipath TCP" . Communications of the ACM . 57 (4): 51– 57. doi : 10.1145/2578901 . hdl : 2078.1/141195 . S2CID 17581886 . ↑ Raiciu, Costin; Iyengar, Janardhan; Bonaventure, Olivier (2013). Haddadi, Hamed; Bonaventure, Olivier (編). Recent Advances in Reliable Transport Protocols . ACM SIGCOMM. ↑ Khalili, Ramin; Gast, Nicolas; Popovic, Miroslav; Upadhyay, Utkarsh; Le Boudec, Jean-Yves (2012). "MPTCPはパレート最適ではない". 第8回新興ネットワーク実験と技術に関する国際会議議事録 . pp. 1–12 . doi : 10.1145/2413176.2413178 . ISBN 9781450317757 . S2CID 14210629 . ↑ Peng, Qiuyu; Walid, Anwar; Hwang, Jaehyun; Low, Steven H. (2013). "Multipath TCP: Analysis, Design and Implementation". IEEE/ACM Transactions on Networking . 24 : 596–609 . arXiv : 1308.3119 . Bibcode : 2013arXiv1308.3119P . doi : 10.1109/TNET.2014.2379698 . S2CID 250322 . ↑ Q.デ・コニンク; O. ボナヴェントゥラ (2010-10-30)。 「QUIC用マルチパス拡張」 。 IETF 。 ↑ Q. De Coninck; O. Bonaventure (2010-12-12). "Multipath QUIC: Design and Evaluation" (PDF) . Proc. Conext'2017、ソウル、韓国。 1 2 3 P. Rodriguez; E. Biersack (2002-07-01). 「インターネットにおける複製コンテンツへの動的並列アクセス」 (PDF) . IEEE/ACM Transactions on Networking. 2013-09-27 に オリジナル (PDF)からアーカイブ済み。 ↑ "Draft-ietf-avtcore-MPRTP-03" 。 ↑ "Draft-ietf-TSVWG-multipath-DCCP-04" 。 ↑ S. Pokhrel; A. Walid (2023-02-01). "マルチパス輻輳制御とスケジューリングによる帯域幅の活用学習". IEEE Transactions on Mobile Computing . 22 (2): 996–1009 . arXiv : 2105.14271 . doi : 10.1109/TMC.2021.3085598 . S2CID 69245415 . ↑ S. Pokhrel; J. Choi; A. Walid (2023). "Fair and Efficient Distributed Edge Learning With Hybrid Multipath TCP". IEEE/ACM Transactions on Networking . 31 (4): 1582–1594 . arXiv : 2211.09723 . doi : 10.1109 /TNET.2022.3219924 . S2CID 98245675 . ↑ R. Chakravorty; I. Pratt; P. Rodriguez (2003-07-01). "モバイルアクセスルーター" . ケンブリッジ大学、マイクロソフトリサーチ。
外部リンク LinuxカーネルのマルチパスTCPプロジェクト LinuxカーネルのマルチパスTCPプロジェクト(旧ウェブサイト) Linux MPTCPの実装について分かりやすく解説した記事