MPTCP(MultiPath TCP)をUser Mode Linuxで手軽に試す

アプリケーションには透過的に、復数の経路でTCPコネクションを張るMultiPath TCPが注目されている


気軽にMPTCPをUser Mode Linuxで試す方法が提供されている。
仮想マシン上でも試すことが出来、Virtual Box上のUbuntu 13.10で実際に試してみた。

setupスクリプトを実行する
wget http://multipath-tcp.org/data/uml/setup.py
python ./setup.py -h

実行すると以下の様なファイルが生成される

vagrant@vagrant-ubuntu-raring-64:~$ ls
README  client.sh  fs_client  fs_server  server.sh  setup.py  vmlinux
serverとclientを実行する

ターミナルを二つ立ちあげてそれぞれでclient.shとserver.shを実行する。(この時メモリが足りないと動作しないかもしれない)
ユーザ名とパスワードを聞かれるのでroot/rootでログインする。

クライアントは二つのインターフェースを持っている(10.1.1.2と10.1.2.2)
サーバのインターフェースはひとつだけである(10.2.1.2)

MPTCPを行う

server側でiperfをサーバモードで起動する

root@server:~# iperf -s

client側でiperfでseverにアクセスする

root@client:~# iperf -c 10.2.1.2
結果

以下の二つの様子が確認できる。

  • クライアントからTCPコネクションが二つ張られている
  • TCPのSYNでMultiPath TCPのオプションが使用されている