アップストリーム版のMPTCPを試してみた

従来、LinuxでMPTCPを利用する場合「Linux Kernel MultiPath TCP project」が公開しているLinuxカーネルを使う必要がありましたが、アップストリームのLinuxカーネル 5.6以降でMPTCPが利用可能になりました。

現在、MPTCPの仕様は「RFC6824」で規定された”MPTCP v0″と「RFC8684」で規定された”MPTCP v1″の2つのバージョンが存在します。従来版は”MPTCP v0″にのみ、アップストリーム版は”MPTCP v1″のみに対応しており、”MPTCP v1″は後方互換性を持たないので、現時点では従来版とアップストリーム版でMPTCP通信を行うことができません。

従来版および”MPTCP v0″については、本ブログでも過去に以下の投稿しています。

今回は、Ubuntuでアップストリーム版を使った複数サブフローでのMPTCP通信を試してみました。
 
 

Continue reading →

MPTCPのパケットを眺めてみる(その1)

前回は、RFC 6824で定義されているMPTCPについて紹介しました。
今回は、TCPのオプション領域でやり取りされるMPTCPのシグナリングパケットを簡単に説明し、RFCで定義されているオプションのフォーマットとMPTCPのMP_CAPABLEが付いた実際のパケットを見比べてみようと思います。

Continue reading →

Multipath TCP(MPTCP)

Multipath TCP(MPTCP)は、複数のIPアドレス/インタフェースを同時に使用して通信することで、通信のスループットを向上させるという機能です。また、あるIPアドレス/インタフェースが使用できない状態になっても別のIPアドレス/インタフェースを使うことで、通信を継続できるという耐障害性も兼ね備えています。

そんな夢のようなMPTCPに触れる機会があったので、簡単にご紹介します。

Continue reading →