マルチパスTCP

マルチパスTCP (MPTCP)
通信プロトコル
MPTCPロゴ
目的汎用
開発者IETF
導入2009 (2009年
に基づくIP (通常はTCPと階層化)
RFC(s)8684

マルチパスTCPMPTCP)は、インターネット技術特別調査委員会(IETF)のマルチパスTCPワーキンググループが現在取り組んでいる技術であり、伝送制御プロトコル(TCP)接続で複数のパスを使用することでスループットを最大化し、冗長性を高めることを目的としています。[ 1 ]

2013年1月、IETFはRFC 6824においてMultipath仕様を実験的標準として公開しました。これは2020年3月にRFC  8684のMultipath TCP v1仕様に置き換えられました。  

利点

マルチパスTCPが提供する冗長性により、リソースの逆多重化が可能になり、標準TCPで必要とされる単一のチャネルを使用する代わりに、利用可能なすべてのリンクレベルチャネルの合計にTCPスループットが向上します。マルチパスTCPは標準TCPと下位互換性があります。

マルチパスTCPは無線ネットワークにおいて特に有用であり、[ 2 ] Wi-Fiモバイルネットワークの両方を使用するのが典型的な使用例である。[ 3 ]逆多重化によるスループットの向上に加えて、エンドツーエンドのTCP接続を中断することなく、ユーザーが通信範囲内または通信範囲外に移動したときにリンクを追加または削除することができる。[ 4 ]

リンクハンドオーバーの問題は、ネットワーク層リンク層に特別なメカニズムを必要とせず、トランスポート層における抽象化によって解決されます。これにより、インターネットのエンドツーエンド原則に従い、サブネットに特別な機能を必要とせずに、エンドポイントでハンドオーバー機能を実装できます。

マルチパスTCPはデータセンター環境においてもパフォーマンス上の利点をもたらす。 [ 5 ] 802.3adリンクアグリゲーションを用いたイーサネットチャネルボンディングとは対照的に、マルチパスTCPは単一のTCP接続を複数のインターフェースに分散させ、非常に高いスループットを達成することができる。[ 6 ]

マルチパスTCPはいくつかの新たな問題を引き起こします。ネットワークセキュリティの観点から見ると、マルチパスルーティングはパス間のデータ断片化を引き起こし、ファイアウォールやマルウェアスキャナが1つのパスのトラフィックしか認識できなくなるため、効率が低下します。さらに、エンドツーエンド暗号化プロトコルによるSSL復号も効率が悪くなります。[ 7 ]

ユーザーインターフェース

マルチパスTCPは、その導入を容易にするために、TCPと同じソケットインターフェースを備えています。これは、マルチパスTCP上で任意の標準TCPアプリケーションを使用できることを意味します。同時に、実際には複数のサブフローにデータを分散させます。[ 8 ]

プロトコルスタックにおけるマルチパスTCP

一部のアプリケーションは、基盤となるマルチパスTCPスタックを制御するための拡張APIの恩恵を受ける可能性があります。マルチパスTCPスタックの機能の一部をアプリケーションに公開するために、2つの異なるAPIが提案されています。1つはLinux上のNetlinkを拡張するAPI [ 9 ]、もう1つは拡張ソケットAPIです[ 10 ] 。

実装

2013年7月、MPTCPワーキンググループは、マルチパスTCPの5つの独立した実装を報告しました[ 11 ]。これにはLinuxカーネルの最初のリファレンス実装[ 8 ]が含まれています[ 12 ] [ 13 ]

現在利用可能な実装は次のとおりです。

2014年7月、OracleはSolarisへの実装が開発中であると発表しました。2015年6月現在、作業は進行中です。[ 23 ]また、メインラインLinuxカーネルに新しいマルチパスTCP実装を導入する取り組みも進行中です。[ 24 ]

IETF 93のMPTCP WG会議で、SungHoon Seoは、KTが6月中旬からスマートフォンユーザーがMPTCPプロキシサービスを使用して1Gbit/sに到達できる商用サービスを展開していると発表した。[ 25 ] Wavenetは、ハイブリッドアクセスネットワークを展開するためにLinuxカーネル実装(Tessaresによって開発)を使用している。

ユースケース

マルチパスTCPは通常のTCPとの下位互換性を持つように設計されており、あらゆるアプリケーションをサポートできます。ただし、特定の展開[ 26 ]では、異なるパスを同時に使用する機能を活用します。

AppleはiPhoneSiriアプリケーションをサポートするためにマルチパスTCPを使用しています。SiriはHTTPSセッションを介してAppleのサーバーに音声サンプルを送信します。サーバーはユーザーが要求した情報を返信します。Appleのエンジニアによると、このアプリケーションにおけるマルチパスTCPの 主な利点[ 27 ]は次のとおりです。

  • ユーザーフィードバック(最初の単語までの時間)が 95 パーセンタイルで 20% 高速化
  • ネットワーク障害の5分の1削減

その他の展開では、マルチパスTCPを用いて異なるネットワークの帯域幅を集約します。例えば、韓国で特に普及しているいくつかの種類のスマートフォンでは、SOCKSプロキシを介してWi-Fiと4GをマルチパスTCPで接続しています。[ 28 ]もう1つの例として、xDSLLTEネットワークを統合したいネットワーク事業者が展開するハイブリッドアクセスネットワークが挙げられます。この展開では、マルチパスTCPを用いてxDSLとLTEネットワーク間のトラフィックを効率的に分散させます。[ 29 ]

統合固定通信ネットワークと移動通信ネットワークの標準化において、3GPPBBFは相互運用して、マルチパスセッションをサポートするATSS(アクセストラフィック選択、スイッチング、分割)機能を提供しています。例えば、マルチパスTCPをユーザー機器(UE)または住宅ゲートウェイ(RG)とネットワーク側の両方に適用します。[ 30 ]

マルチパスTCPオプション

マルチパスTCPは、 RFC  8684で詳細に説明されているオプションを使用します。すべてのマルチパスTCPオプションは、IANAによって予約されているオプション種別30のTCPオプションとしてエンコードされます。[ 31 ]

マルチパスTCPオプションは、標準のオプション種別(この場合は30)と長さの値、そしてそれに続く4ビットのサブタイプフィールドで構成されます。IANAは、伝送制御プロトコル(TCP)パラメータ」レジストリの下に「MPTCPオプションサブタイプ」というサブレジストリを管理しています。このサブタイプフィールドはMPTCPヘッダーの種類を示し、その値は以下のように定義されています。

価値シンボル名前
0x0MP_対応マルチパス対応
0x1MP_JOIN接続に参加する
0x2DSSデータシーケンス信号(データACKとデータシーケンスマッピング)
0x3追加アドレス住所を追加
0x4削除アドレス住所を削除
0x5MP_PRIOサブフローの優先度を変更する
0x6MP_FAIL後退する
0x7MP_FASTCLOSE高速クローズ
0x8MP_TCPRSTサブフローリセット
0xfMP_実験的個人使用のみ

値 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現在、TCPTLSHTTPプロトコルに従来備わっている機能を統合したQUICプロトコルを開発しています。このプロトコルは、マルチパスTCPと同じユースケースをサポートするように拡張可能です。マルチパスQUICの最初の設計が提案され、[ 36 ]実装および評価されました。[ 37 ]

ストリーム制御伝送プロトコル

ストリーム制御伝送プロトコル(SCTP)は、信頼性の高い順序付きデータグラムストリームトランスポートプロトコルであり、元々は電気通信シグナリングを目的としていました。複数のアクセスリンクの同時使用をサポートし、アプリケーションがデータグラムストリーム単位でアクセスインターフェースの選択に影響を与えることを可能にします。また、アクセス再ネゴシエーションによるモビリティもサポートします。したがって、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 ]さらに最近では、 IETFのTSVWG(トランスポートエリアワーキンググループ)で、 DCCP(データグラム輻輳制御プロトコル)をマルチパス機能で拡張する提案が議論されており、MP-DCCPと呼ばれています。 [ 40 ]

AI/MLベースのマルチパスTCP

経験から最適な輻輳制御とスケジューリング戦略を学習するために、ポリシー勾配を活用したインテリジェントエージェントによる輻輳制御とパケットスケジューリングを共同で行う深層強化学習(DRL)フレームワークが開発されている。 [ 41 ] DRLベースのマルチパスTCPの利点は、公平で効率的な分散エッジ学習アプリケーションで示されている。[ 42 ]

その他のプロトコルと実験

セッション層では、モバイルアクセスルータプロジェクトが2003年に異機種混在技術による複数の無線アクセスを集約し、それぞれのパフォーマンスに応じてトラフィックを透過的に分散させる実験を行った。[ 43 ]

並列アクセス方式[ 38 ]は、HTTP範囲要求を利用して複製されたコンテンツの複数のサーバーへの接続を開始することで転送を高速化するために使用されますが、アプリケーション層が関与し、既知のサイズのコンテンツに制限されるため、マルチパス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 変換プロトコル

参照

参考文献

  1. ^マルチパスTCPワーキンググループ
  2. ^ Paasch, Christoph; Detal, Gregory; Duchene, Fabien; Raiciu, Costin; Bonaventure, Olivier (2012). 「マルチパスTCPによるモバイル/WiFiハンドオーバーの検討」 . 2012 ACM SIGCOMM セルラーネットワークワークショップ:運用、課題、そして将来の設計 - Cell Net '12議事録. ACM SIGCOMM セルラーネットワークワークショップ (Cellnet'12). p. 31. doi : 10.1145/2342468.2342476 . ISBN 9781450314756
  3. ^ a b 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 . 
  4. ^ 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 . 
  5. ^ 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 .  
  6. ^ C. Paasch; G. Detal; S. Barré; F. Duchêne; O. Bonaventure. 「マルチパスTCPによる最速TCP接続」2013年9月20日閲覧
  7. ^ Afzal, Zeeshan (2020).セキュリティミドルボックスのライフサイクル:新興プロトコルとテクノロジーの課題(PhD). ISBN 978-91-7867-103-8. OCLC  1139703033 .
  8. ^ a b c「LinuxカーネルMultiPath TCPプロジェクト」 。 2014年11月28日閲覧
  9. ^ Hesmans, B.; Detal, G.; Barre, S.; Bauduin, R.; Bonaventure, O. (2015). 「SMAPP」.スマートなマルチパスTCP対応アプリケーションに向けたSMAPP . pp.  1– 7. doi : 10.1145/2716281.2836113 . ISBN 9781450334129. S2CID  9940025 .
  10. ^ Hesmans, Benjamin; Bonaventure, Olivier (2016). 「マルチパスTCP向けの拡張ソケットAPI」. 2016年応用ネットワーク研究ワークショップ議事録 - ANRW 16. pp.  1– 6. doi : 10.1145/2959424.2959433 . ISBN 9781450344432. S2CID  13799560 .
  11. ^ 「MPTCP実装の調査(インターネットドラフト、2013年)」 。 2013年9月20日閲覧
  12. ^ Barre、Paasch、Bonaventure (2011). 「MultiPath TCP:理論から実践へ」 IFIPネットワーキング.
  13. ^ Raiciu、Paasch、Barre、Ford、Honda、Duchene、Bonaventure、Handley (2012). 「どれほど難しいことか? 展開可能なマルチパスTCPの設計と実装」 Usenix NSDI : 399– 412.
  14. ^ 「Linux MPTCP アップストリーム プロジェクト」
  15. ^ 「Multipath TCP for FreeBSD v0.1」 。 2013年9月23日閲覧
  16. ^ 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 .
  17. ^ 「リリースノート:BIG-IP LTMおよびTMOS 11.5.0」。f5 Networks。2014年5月30日。 2014年5月30日閲覧
  18. ^ John Gudmundson (2013年5月28日). 「NetScaler Multipath TCPでモバイルユーザーエクスペリエンスを最大化」 . Citrix . 2013年9月20日閲覧
  19. ^ 「AppleもマルチパスTCPを信じているようだ」 。 2013年9月20日閲覧
  20. ^ 「MPTCPはデフォルトで無料でローミングします! – OS X YOSEMITE」 2014年10月20日. 2015年9月16日閲覧
  21. ^ Georg Hampel (2012年10月26日). 「MPTCP Proxyのコードリリース」 . Alcatel-Lucent . 2016年12月28日閲覧。
  22. ^ Georg Hampel; Anil Rana (2012年10月26日). 「MPTCP PROXY」(PDF) . Bell Labs / Alcatel-Lucent . 2016年12月28日閲覧
  23. ^ Rao, Shoaib. 「RFC 6824に関するコメント」 . 2015年6月25日閲覧
  24. ^ 「MPTCP Upstream Project」 . 2019年12月17日. 2020年1月10日閲覧。
  25. ^ 「KTのGiGA LTE」(PDF) .
  26. ^ Bonaventure, Olivier; SungHoon (2016)を参照。「マルチパスTCP展開」 IETFジャーナル
  27. ^ C. Paasch、「iOS および Linux 実装アップデート」、IETF-99、 https://datatracker.ietf.org/meeting/99/materials/slides-99-mptcp-sessa-ios-linux-implementation-updates/
  28. ^ 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
  29. ^ Gregory Detal、Sebastien Barre、Bart Peirens、Olivier Bonaventure、「マルチパス TCP を活用したハイブリッド アクセス ネットワークの構築」、SIGCOMM'17 (産業デモ)、 http://conferences.sigcomm.org/sigcomm/2017/files/program-industrial-demos/sigcomm17industrialdemos-paper4.pdf
  30. ^ 3GPP TR 23.793、「5Gシステムアーキテクチャにおけるアクセストラフィックステアリング、スイッチ、および分割サポートに関する調査(リリース16)」、 https://www.3gpp.org/ftp/Specs/latest/Rel-16/23_series/23793-g00.zip
  31. ^ 「IANAプロトコルレジストリTCPオプション種別番号」 。 2013年9月24日閲覧
  32. ^ Paasch, Christoph; Bonaventure, Olivier (2014年4月). 「マルチパスTCP」 . Communications of the ACM . 57 (4): 51– 57. doi : 10.1145/2578901 . hdl : 2078.1/141195 . S2CID 17581886 . 
  33. ^ Raiciu, Costin; Iyengar, Janardhan; Bonaventure, Olivier (2013). Haddadi, Hamed; Bonaventure, Olivier (編).信頼性の高いトランスポートプロトコルの最近の進歩. ACM SIGCOMM.
  34. ^ 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 .
  35. ^ Peng, Qiuyu; Walid, Anwar; Hwang, Jaehyun; Low, Steven H. (2013). 「マルチパスTCP:分析、設計、実装」. IEEE/ACM Transactions on Networking . 24 : 596–609 . arXiv : 1308.3119 . Bibcode : 2013arXiv1308.3119P . doi : 10.1109/TNET.2014.2379698 . S2CID 250322 . 
  36. ^ Q.デ・コーニンク; O. ボナヴェントゥラ (2010-10-30)。「QUIC用マルチパス拡張」IETF
  37. ^ Q. De Coninck; O. Bonaventure (2010-12-12). 「Multipath QUIC: 設計と評価」(PDF) . Proc. Conext'2017, ソウル, 韓国.
  38. ^ a b c P. Rodriguez; E. Biersack (2002-07-01). 「インターネットにおける複製コンテンツへの動的並列アクセス」(PDF) . IEEE/ACM Transactions on Networking.オリジナル(PDF)から2013年9月27日アーカイブ
  39. ^ 「Draft-ietf-avtcore-MPRTP-03」
  40. ^ 「Draft-ietf-TSVWG-multipath-DCCP-04」
  41. ^ 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 . 
  42. ^ S. Pokhrel; J. Choi; A. Walid (2023). 「ハイブリッドマルチパスTCPを用いた公平かつ効率的な分散エッジ学習」. IEEE/ACM Transactions on Networking . 31 (4): 1582– 1594. arXiv : 2211.09723 . doi : 10.1109/TNET.2022.3219924 . S2CID 98245675 . 
  43. ^ R. Chakravorty、I. Pratt、P. Rodriguez (2003-07-01). 「モバイルアクセスルーター」ケンブリッジ大学、Microsoft Research.