無線メッシュネットにおけるTCPのスループットについて

目次

1. はじめに

近年、インターネットの普及によりネットワーク上に流れるデータ量は急激に増加している。それらの膨大なデータが1箇所に集中してしまいデータの輻輳が起きることがある。TCPではこの輻輳を制御するために CUBIC や Reno 、BBR などの様々な輻輳制御アルゴリズムが存在する。
GoogleはBBRを改良した新たな輻輳制御アルゴリズムとしてBBRv2を発表した。

また、Katsuya Atsutaらの論文[1]では、IEEE802.11s無線メッシュネットワーク上でCUBIC、BBRの性能を評価している。
本論文では、IEEE802.11s無線メッシュネットワーク上でのスループット測定にCUBIC、BBR以外にBBRv2を加えて測定と比較を行った。

2. 準備

2.1. IEEE802.11s 無線メッシュネットワーク

IEEE802.11sは、無線LANの仕様の一つであり、メッシュ通信を実現するものである。メッシュ通信とは、複数のノード同士が相互に通信を行うことで故障などで1つの経路が使用できなくなっても別の経路を使用して通信が可能となるものである。

2.2. TCP輻輳制御アルゴリズム

1箇所に、トラフィックが集中するとルータ等のネットワーク機器のバッファに蓄積されるデータが増え、超過したデータは消滅してしまう。
これを極力発生させないように対策したものがTCPの輻輳制御アルゴリズムである。TCPの輻輳制御アルゴリズムには、主に「ロスベース」「遅延ベース」「ハイブリッドベース」が存在する。ロスベースは、パケットの損失を用いた方式でありパケットロスが閾値を超えた場合に輻輳と判定しウィンドウサイズを下げる、または転送速度を下げて輻輳を回避する。遅延ベースでは、RTTの計測値と測定値を用いて推測値より計測値が上回れば通信が空いていると判断しウィンドウサイズを大きくし、逆に下回る場合は輻輳が発生していると判定してウィンドウサイズを小さくして輻輳を回避する。ハイブリッドベースでは、上記のロスベースと遅延ベースを合わせた方式であり、両者の欠点を補うように設計されている。

2.2.1. TCP CUBIC

CUBICは、ロスベースの輻輳制御アルゴリズムであり、様々なOSでデフォルトの輻輳制御アルゴリズムとして採用されている。BIC TCPアルゴリズムの改良版であり、ウィンドウサイズ増加関数を三次関数で置き換えるなどBIC TCPの複雑なアルゴリズムを簡略化している。

2.2.2. TCP BBR

BBRはGoogleが開発した輻輳制御アルゴリズムで、RTpropとBtlBwを指標として通信を制御する。これにより、従来のロスベースの輻輳制御アルゴリズムよりスループットを上げることができる。
BBRは、Linuxカーネル4.9以降に組み込まれており設定することで利用が可能である。

2.2.3. TCP BBRv2

BBRv2はBBRの改良版でありBBRの欠点の軽減を目的として開発された輻輳制御アルゴリズムである。Googleが開発をしており、2023年1月現在開発中でありアルファ版で公開されている。
BBRv2は従来のTCP BBRに加え、パケットロス、ECNを新たに指標に加えたアルゴリズムとなっている。

2.3. iperf3

iperf3はネットワークのパフォーマンスを測定することができるクロスプラットフォームのコマンドラインツールである。
サーバとクライアントの両方でiperf3を起動し接続すると、ネットワークのスループット、TCPのリトライ数、UDPのパケットロス数などが測定できる。また、LinuxとFreeBSDでは、TCP輻輳制御アルゴリズムを指定して使用することができる。

3. 計測

3.1. 計測の目的と手法

MarthisらはTCP輻輳制御アルゴリズムのスループットを1パケットの大きさをMSS、ラウンドトリップタイムをRTT、パケットロス率をpとするとバンド幅と比例するようなモデル式(1)を求めた[7]。

\begin{align} Bw \propto \frac{MSS}{RTT}\frac{1}{\sqrt{p}}\tag{1} \end{align}

[1]では、このMarthisらの式をメッシュネットワークで適用させ、ノード数をnとしたときに(2)の式を求め、TCP CUBICとTCP BBRがこの式を超えることができないことを検証した。

\begin{align} Bw \propto \frac{MSS}{nRTT\sqrt{1-(1-p)^n}}\sim\frac{1}{n^{1.5}}\frac{MSS}{RTT}\frac{1}{\sqrt{p}}\tag{2} \end{align}

本計測では、TCP BBRv2がMarthisらの式を超えることができるのかを計測する。

3.2. 計測システム

IEEE802.1sを使用したメッシュネットワークを構築するには、それに対応したドライバとチップセットを持つ無線LANアダプタが必要である。
本計測では、IEEE802.11sが対応しているドライバはMediaTek社製のmt76ドライバやRalink社製のrt2800usbなどが存在するが本計測ではRalink社製のrt2800usbを使用するBuffalo社製のWLI-UC-G301Nを使用した。

ノードは、ノード同士の距離を変えて計測を行うため図1のようなRaspberry Pi 3 Model B V12を使用したものを作成した。
OSは、Raspberry Pi OSのバージョンrpi-5.13y(Gitコミットハッシュ: d8ac3c3c15fddf400b8e2b96cfa0c8517db937a4)にBBRv2のアルファ版カーネル実装(最新Gitコミットハッシュ: a23c4bb59e0c5a505fc0f5cc84c4d095a64ed361)をマージしたものを使用した。

実験に使用したノード

図1. 実験に使用したノード

3.3. 計測工程

計測した場所は、他の無線ネットワークが存在する大学構内と電波暗室の2つの場所で行った。大学構内の無線ネットワークの環境は図2であり、1chから14chまですべてのチャンネルに無線ネットワークが存在していることがわかる。

大学構内の2.4GHz帯のチャンネル

図2. 大学構内の2.4GHz帯のチャンネル

ノード数は、Katsuya Atsutaらの研究結果[2]から4ホップ目以降のパフォーマンスがそれほど変わらないことから5台のノードを使用した1ホップから4ホップの4パターンで計測した。
メッシュネットワークの設定は、チャンネル6を使用し、IEEE802.11nを使用してHT40+、送信ビットレートをMCS Index 11に固定して計測した。
また、ノード同士の電波は同じチャネルを使用しているためノード同士の距離が短いと電波が干渉すると考えられる。そのため、0.2m、0.5m、1m、2mと間隔を開けてそれぞれ測定した。

計測は2つの工程で行った。最初に、iperf3を使用してUDPモードで送信するビットレートを10Kbpsから10Mbpsまで対数的に増加させていきそれぞれ10秒ずつ送信ビットレートと受信ビットレートを計測した。
次に、iperf3のTCPモードを使用してCUBIC、BBR、BBRv2のそれぞれの輻輳制御アルゴリズムを使用して100秒ずつスループットの計測を行った。

3.4. 計測結果

3.4.1. UDPを使用したスループット特性

はじめに、1mにおけるUDPのスループットのグラフを図3に示す。グラフを見ると、送信ビットレートが1Mbpsを超えたあたりから受信ビットレートが送信ビットレートに対して少ない値になっており、パケットのロスが発生している事がわかる。また、大学構内のほうが電波暗室より多くのロスが発生しており、周りの電波に影響されている事がわかる。
図4と図5はそれぞれ1ホップと2ホップにおけるUDPスループットの結果である。図4のグラフは線形となっており、ほとんどロスが発生していないことがわかるが2ホップでは2Mbpsからパケットのロスが発生しており、メッシュネットワークのホップ数が増加するとロス率が増えることがわかる。

1mにおけるUDPのスループット

図3. 1mにおけるUDPのスループット

1ホップにおけるUDPのスループット

図4. 1ホップにおけるUDPのスループット

2ホップにおけるUDPのスループット

図5. 2ホップにおけるUDPのスループット

次に、電波暗室のUDPの時間に対するスループットのグラフを図6、図7、図8、図9にそれぞれ0.2m、0.5m、1m、2mとして、大学構内のUDPの時間に対するスループットのグラフを図10、図11、図12、図13に0.2m、0.5m、1m、2mとして示す。
図6と図7、図8、図9を比較すると、0.2mである図6は2ホップ1000Kで10Mbpsに到達しておらず、他の距離とくらべてスループットが低い。また、図9も0.5mと1mとくらべて2m 3ホップ 10000Kが10Mbpsに到達していないなどスループットが低い。これらは、ノード同士が近すぎる場合、お互いの電波が干渉してスループットの低下になると予想する。2mでスループットが低くなるのは電波強度が低くなるためと考えられ[2]の研究結果と一致する。

電波暗室の0.2mにおけるUDPの時間対スループット

図6. 電波暗室の0.2mにおけるUDPの時間対スループット

電波暗室の0.5mにおけるUDPの時間対スループット

図7. 電波暗室の0.5mにおけるUDPの時間対スループット

電波暗室の1mにおけるUDPの時間対スループット

図8. 電波暗室の1mにおけるUDPの時間対スループット

電波暗室の2mにおけるUDPの時間対スループット

図9. 電波暗室の2mにおけるUDPの時間対スループット

大学構内の0.2mにおけるUDPの時間対スループット

図10. 大学構内の0.2mにおけるUDPの時間対スループット

大学構内の0.5mにおけるUDPの時間対スループット

図11. 大学構内の0.5mにおけるUDPの時間対スループット

大学構内の1mにおけるUDPの時間対スループット

図12. 大学構内の1mにおけるUDPの時間対スループット

大学構内の2mにおけるUDPの時間対スループット

図13. 大学構内の2mにおけるUDPの時間対スループット

3.4.2. 各TCP輻輳制御アルゴリズムのスループット特性

各輻輳制御アルゴリズムのスループットを0.2m、0.5m、1m、2mでそれぞれ、図14、図15、図16、図17に示す。
すべての図では、ホップ数が増加するにつれてスループットが低下している事がわかる。また、0.2mでは、電波暗室のスループットが大学構内と同程度で0.5m以降の結果と比べるとスループットが低いことがわかる。
また、すべての距離に置いてTCP BBRv2はTCP CUBICとTCP BBRとくらべてスループットは同程度となっており、アルゴリズムによる優位性はなかった。

図14、図15、図16、図17に(2)の式を描画している。これらのグラフを見ると、概ねホップ数による変動は(2)の式に比例している事がわかる。
TCP BBRv2はグラフより、TCP CUBICとTCP BBRと同程度のスループットであるため、TCP BBRv3も(2)の式を超えることができない結果となった。

0.2mにおける各輻輳制御アルゴリズムのスループット特性

図14. 0.2mにおける各輻輳制御アルゴリズムのスループット特性

0.5mにおける各輻輳制御アルゴリズムのスループット特性

図15. 0.5mにおける各輻輳制御アルゴリズムのスループット特性

1mにおける各輻輳制御アルゴリズムのスループット特性

図16. 1mにおける各輻輳制御アルゴリズムのスループット特性

2mにおける各輻輳制御アルゴリズムのスループット特性

図17. 2mにおける各輻輳制御アルゴリズムのスループット特性

4. まとめ

本研究では、メッシュネットワーク上で性能評価を行った。

結果、TCP CUBIC、TCP BBR、TCP BBRv2はすべて同程度のスループットであり、アルゴリズムによる優位性は見当たらなかった。また、すべてにおいてホップ数が増加するとスループットが低下し、Marthisらの式を超えることはなかった。さらに、ノード同士の距離が0.2mと非常に近いとスループットが低下することが分かった。 今後は、メッシュネットワークのアルゴリズムから通信効率が向上できないか検討していきたい。

5. 参考文献

[1] Katsuya Atsuta, Satoshi Kouya, and Naoshi Sakamoto, "Performance of TCP CUBIC and TCP BBR on IEEE802.11s Mesh Network," Journal of Communications vol. 15, no. 8, pp. 639-645, August 2020. Doi: 10.12720/jcm.15.8.639-645
[2] Naoshi Sakamoto and Katsuya Atsuta, “Measurement of the Performance of IEEE 802.11s,”Journal of Communications vol. 14, no. 12, pp. 1218-1223, 2019. Doi: 10.12720/jcm.14.12.1218-1223
[3] K. Nguyen and H. Sekiya, "TCP Behavior on Multi-Gigabit IEEE 802.11ad Link," 2020 International Conference on Green and Human Information Technology (ICGHIT), Hanoi, Vietnam, 2020, pp. 58-61, doi: 10.1109/ICGHIT49656.2020.00022.
[4] 宮川 湧太郎 “TCP各バージョンの輻輳制御の比較”, http://www.net.c.dendai.ac.jp/~yutaro/
[5] Injong Rhee and Lisong Xu and Sangtae Ha and Alexander Zimmermann and Lars Eggert and Richard Scheffenegger (2018), “RFC 8312 - CUBIC for Fast Long-Distance Networks”
[6] Y. -J. Song, G. -H. Kim, I. Mahmud, W. -K. Seo and Y. -Z. Cho, "Understanding of BBRv2: Evaluation and Comparison With BBRv1 Congestion Control Algorithm," in IEEE Access, vol. 9, pp. 37131-37145, 2021, doi: 10.1109/ACCESS.2021.3061696.
[7] M. Mathis, J. Semke, J. Mahdavi, and T. Ott, “The macroscopic behavior of the TCP congestion avoidance algorithm,” SIGCOMM Comput. Commun. Rev., vol.27, no.3, pp.67–82, July 1997.