広帯域・高遅延ネットワークにおける TCP ス
ループットの評価
篠崎誠太朗 1

古屋保 2 下園幸一 2

升屋正人 2

概要：TCP では受信者からの確認応答を待って次のパケットを送信することでデータの到達性を保証している．このため往復遅延時間が大きくなると，帯域幅の大小に関わらず単位時間当たりに伝送できるデータの量が少なくなり帯域幅を使い切れない．これまで，高遅延環境におけるスループットの評価は広く行われてきているが，帯域幅を変えて測定した例はなく，必要以上の帯域幅があれば十分なのか，また，帯域幅が不足している場合にスループットがどうなるのかについては詳しく知られていない．そこで本研
究では，さまざまな帯域幅の環境下で，往復遅延時間や輻輳制御アルゴリズムを変えてスループットを測定し，帯域幅との関係を評価した．
キーワード：TCP，帯域幅遅延積，輻輳制御

Evaluation of TCP throughput in long fat
networks
SEITARO SHINOZAKI1
KOICHI SHIMOZONO2TAMOTSU FURUYA2MASATO MASUYA2

Abstract: TCP guarantees data reachability by waiting for an acknowledgement from the receiver to send the nextpacket. For this reason, as the round-trip delay increases, the amount of data that can be transmitted per unit of timedecreases whether the bandwidth is large or small, and the bandwidth is not fully used. So far, throughput has been
widely evaluated in high latency environments, but there are no examples of measurements with various bandwidths,
and it is not known in detail whether more bandwidth than necessary is enough or what happens to throughput when
bandwidth is not enough. In this research, throughput was measured under various bandwidths with different roundtrip delay times and congestion control algorithms, and the relationship with bandwidth was evaluated.
Keywords: TCP, bandwidth-delay product, congestion control algorithm

1.

はじめに単位時間あたりのデータ伝送量の最大値が大きいことを広帯域といい，送信者がデータを送信してから受信者が受信するまでの時間が大きいことを高遅延という．ネットワーク機器の性能向上と遠隔地接続の機会の増加により， 広帯域・高遅延ネットワークの利用機会が広がってきた．これに伴い，広帯域・高遅延ネットワークでは帯域幅を使い切れない，という問題が表面化しつつある．
確認応答が帰ってくるまでの時間である往復遅延時間と帯域幅の積を帯域遅延積といい，一度に送信できるデータ量の上限である輻輳ウィンドウサイズがその 2 倍以上の大きさであれば帯域幅を使い切ることができる．ところが，輻
1 鹿児島大学大学院理工学研究科
Graduate School of Science and Engineering, Kagoshima University
2 鹿児島大学情報基盤統括センター

輳制御アルゴリズムによって効率的なデータ伝送を実現するため，輻輳ウィドウサイズは最大値に固定されず変動している．このため，実際の単位時間あたりのデータ伝送量（スループット）は帯域幅よりも必ず小さくなる．しかし，遅延及び帯域幅とスループットの関係については十分に調べられていない．
伊藤らによる，TCP 上でファイル転送する場合において，最大ウィンドウサイズとネットワークの通信速度・遅延時間によるスループットへの影響を調査した研究[1]，北辻らによる，実ネットワークの遅延環境を用い，それぞれの区間において TCP によるデータ伝送を観測して性能を示した
研究[2]，長谷川と村田による，TCP Reno の高速・高遅延ネットワーク環境での改善方法の提案の研究[3]，Sato らによCenter for Management of Information Technologies, Kagoshima
University1

る，高遅延環境で TCP 全体に FEC を用いてパケットロスを防ぎスループットを高くする研究[4]など，広帯域・高遅延のネットワークにおけるスループットの実測や輻輳制御方法の改善の提案などに関する研究の例はある．しかし，広帯域・高遅延ネットークにおいて，帯域幅とスループットの関係について調べた例はない．
そこで本研究では様々な輻輳制御アルゴリズムや帯域幅，遅延環境下でスループットを測定し，これらの関係を調べることにした．さらに，測定されたスループットから帯域幅をどれだけ利用できているか，すなわち，帯域利用効率を求める．この帯域利用効率から，遅延の大きさと使い切ることができる帯域幅を明らかにすることにした．なお，本研究では，高遅延を 50 ミリ秒以上の往復遅延時間，広帯域を 1 Gbps以上の帯域幅と想定した．

2.

用いた輻輳制御アルゴリズム

輻輳制御アルゴリズムには，パケットロスを検知して輻輳ウィンドウサイズを調整する Loss-based 手法，遅延の大きさに応じて輻輳ウィンドウサイズを調整する Delay-based手法，パケットロスと遅延の両方を基準に輻輳ウィンドウサイズを調整する Hybrid 手法がある．本研究では，Lossbased 手法である，Reno と CUBIC，Delay-based 手法である
BBR を評価の対象とした．Reno は古くから利用されている標準的な輻輳制御アルゴリズム，CUBIC は Linux や Windowsで標準となっている代表的な Loss-based 手法のアルゴリズ
ム，BBR は Google が開発した代表的な Delay-based 手法のアルゴリズムである．

3.

測定環境と方法

3.1
測定環境
本研究では仮想環境でスループットの測定を行った．PCにインストールした Oracle VirtualBox の中に仮想マシンを 2台作成し，OS として Oracle Linux 8.6 を最小インストールして用いた．プロセッサ数はいずれも 1 とし，受信側の仮想マ
シンにはメモリを 2 GB，送信側の仮想マシンにはメモリを1 GB 割り当てている．仮想マシンには HTTP サーバソフト
ウェアとして nginx を，ネットワークパフォーマンス測定ツールとして iperf3 を追加でインストールした．また，仮想ネッ ト ワ ー ク イ ン タ ー フ ェ ー ス カ ー ド と し て Intel
PRO/1000MT デスクトップを設定した．
3.2
ダウンロード時間の測定
スループットの測定は，サイズが 10 MB と 100 MB のファイルを，nginx を動作させた送信側の仮想マシン②に置き受信側の仮想マシン①から curl コマンドでダウンロードすることで行う（図 1）．ダウンロードしたサイズと時間からスループットを求めた．ダウンロードは 10 回実行して中央値を求めたが，帯域幅を設定していない場合のみ，外れ値が多く見られたため測定を 100 回行って中央値を求めた．

図 1 スループットを求めるためのダウンロード時間の測定方法
3.3
遅延と帯域幅及び輻輳制御アルゴリズムの設定
遅延の設定は，Oracle Linux 8.6 に標準で搭載されているtc コマンドで行った．Tc コマンドによる設定は送出パケッ
トにのみ働くため，2 つの仮想マシンそれぞれに同じ値の遅延を設定した．設定値の 2 倍の値が往復遅延時間となる．往
復遅延時間は 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80,90, 100, 125, 150, 175, 200, 250, 300, 400, 500 ミリ秒に設定して測定を行った．帯域幅の設定も同様に，tc コマンドを 2 つの仮想マシンで用いることで行った．設定した帯域幅は 100
Mbps，50 Mbps，10 Mbps の 3 通りである．往復遅延時間とは異なり設定値が帯域幅となる．例えば，帯域を 10 Mbps に設定するときは，それぞれの仮想マシンでsudo tc qdisc add dev enp0s3 root netem rate 10mbitを実行した．異なる設定を適用する場合はsudo tc qdisc del dev enp0s3 rootとして設定を解除した後に改めて設定した．
輻輳制御アルゴリズムは例えば Reno への変更の場合，
sudo sysctl -w net.ipv4.tcp_congestion_contorol=”reno”として変更した．CUBIC，BBR への変更も同様の方法で行い，輻輳制御アルゴリズムを変えて測定を行った．

4.

スループットと帯域利用効率4.1
輻輳制御アルゴリズムとして CUBIC を用いた場合
輻輳制御アルゴリズムとして CUBIC を用い，設定帯域と往復遅延時間を変えて測定したスループットの，往復遅延時間設定が 0，10，50，100 ミリ秒のときの値を表 1 に示す．
表 1 より，往復遅延時間が小さいときは帯域を設定しない方がスループットは高くなるが，50 ミリ秒や 100 ミリ秒など往復遅延時間が大きいときは帯域を設定した方が，スループットが高くなることがわかる．CUBIC はパケットロスが検知されるまで輻輳ウィンドウサイズを増加させ続ける Loss-based 手法の輻輳制御アルゴリズムである．帯域を設定しない場合には大きく変動する輻輳ウィンドウのサイズが，帯域を設定することで上限付近でのみ変動するようになりスループットが高くなったと考えられる．
表1

輻輳制御アルゴリズムとして CUBIC を用いた場合のスループットの中央値（Mbps）
往復遅延時間(ms)設定帯域（Mbps）

設定無し
10050
100
1218.6
92.2
47.7
9.6

10179.1
93.4
46.5
9.6

50
58.7
91.4
46.1
9.5

100
39.4
86.6
44.4
9.52また，設定帯域ごとの往復遅延時間と帯域利用効率を図 2に示す．帯域を設定しない場合は，往復遅延時間の増加に伴って帯域利用効率は急激に減少するが，帯域を設定した場合は利用効率の減少は緩やかである．また，設定帯域が小さいほど低下の度合いが小さいことがわかった．
100帯域
利用
効率（％）

90

設定帯域
10 Mbps8070

設定帯域
50 Mbps6050

設定帯域
100 Mbps

40

図3
設定無し
(2150 Mbps)

1000

100
200
300
往復遅延時間（ms）

400500輻輳制御アルゴリズムとして CUBIC を用いた場合の往復遅延時間と帯域利用効率4.2
輻輳制御アルゴリズムとして Reno を用いた場合
輻輳制御アルゴリズムとして Reno を用い，設定帯域と往復遅延時間を変えて測定したスループットの，往復遅延時間設定が 0，10，50，100 ミリ秒のときの値を表 2 に示す．
CUBIC のときよりも往復遅延時間が大きい場合にスループットが低くなった．帯域を設定すると CUBIC の場合と同様に，往復遅延時間が大きいときに帯域を設定しないときよりもスループットが高くなることがわかったが．CUBIC よりもその割度合は小さい．これはパケットロスを検知した際に，輻輳ウィンドウサイズを CUBIC より大きく低下させる Reno の輻輳制御アルゴリズムに起因しているものと考えられる．
表2

輻輳制御アルゴリズムとして Reno を用いた場合のスループットの中央値（Mbps）
往復遅延時間(ms)設定帯域（Mbps）

設定無し
100501001220.1
94.2
47.8
9.6

設定帯域
10 Mbps

設定帯域
100 Mbps

10162.793.647.79.65049.1
68.4
44.0
9.5

100
27.5
33.5
29.1
9.5

また，設定帯域ごとの往復遅延時間と帯域利用効率を図 3に示す．CUBIC の場合と傾向は同じであるが，設定帯域が100 Mbps と 50 Mbps のときの帯域利用効率の低下の度合いが CUBIC の場合に比べて大きく，帯域を設定しない場合と同様に往復遅延時間が大きくなると急激に効率が低下することがわかった．

設定帯域
50 Mbps

設定なし(2050 Mbps)
03020

図2

100
帯 90
域 80
利 70
用
効 60
率 50（ 40％） 302010
0100200300400
500
往復遅延時間（ms）
輻輳制御アルゴリズムとして Reno を用いた場合の往復遅延時間と帯域利用効率4.3
輻輳制御アルゴリズムとして BBR を用いた場合
輻輳制御アルゴリズムとして BBR を用い，設定帯域と往復遅延時間を変えて測定したスループットの，往復遅延時間設定が 0，10，50，100 ミリ秒のときの値を表 3 に示す．
スループットは CUBIC や Reno の場合よりも高い．また，帯域を設定しても帯域を設定しない場合よりスループットが高くなることはなかった．BBR は遅延の大きさに応じて輻輳ウィンドウサイズを調整する Delay-based 手法の輻輳制
御アルゴリズムであり，往復遅延時間を常にモニタリングしながらデータ伝送量を調整している．遅延の大きさに対し，ネットワークが処理できる範囲内でデータ伝送量を増加させているため，帯域を設定しても BBR におけるウィンドウサイズの変動に影響がなかったと考えられる．
表3

輻輳制御アルゴリズムとして BBR を用いた場合のスループットの中央値（Mbps）
往復遅延時間(ms)設定帯域（Mbps）

設定無し
100
50
100
1341.0
91.1
45.3
9.4

10673.5
89.1
45.3
9.3

50266.7
84.4
44.3
9.3

100150.8
84.0
42.8
9.1

また，設定帯域ごとの往復遅延時間と帯域利用効率を図 4に示す．CUBIC の場合と傾向は同じであるが，設定帯域が50 Mbps のときの帯域利用効率の低下の度合いが CUBIC の場合に比べて小さい．
10090
帯 80
域 70利用 60
効 50率 40（％ 30） 20100

設定帯域10 Mbps

設定帯域100 Mbps

設定帯域50 Mbps

設定なし
(2620 Mbps)
0

100

200

300

400

500

往復遅延時間（ms）
図4

輻輳制御アルゴリズムとして BBR を用いた場合の往復遅延時間と帯域利用効率

35.

まとめ

輻輳制御アルゴリズムとして CUBUC，Reno，BBR を用い，往復遅延時間と設定帯域を変えてスループット求めた．
CUBIC と Reno では，往復遅延時間が大きい場合，帯域を設定しない場合に比べて帯域を設定した方が，スループットが高くなることがわかった．一方 BBR では，帯域を設定してもスループットは高くならなかった．また，帯域を設定すると設定しないときよりも帯域利用効率が高くなり，往復遅延時間が大きい方がより帯域利用効率が大きくなるが，その度合は輻輳制御アルゴリズムにより異なることがわかった．

参考文献[1] 伊藤 嘉浩，石倉 雅巳，飯作 俊一，浅見 徹，"広帯域・高遅延ネットワーク上での TCP スループット特性の測定，"電子情報通信学会技術研究報告．IN，情報ネットワーク，vol.95，no.28，pp.55-61，May.1995．
[2] 北辻 佳憲，窪田 歩，山崎 克之，"広帯域・遅延環境における TCP 伝送の性能と評価， "電子情報通信学会技術研究報告．IA，インターネットアーキテクチャ，vol.102，no.636，pp.41- 46，Jan.2003．
[3] 長谷川 剛，村田 正幸，"高速・高遅延ネットワークのためのトランスポート層プロトコル，"電子情報通信学会技術研究報告．IN，情報ネットワーク，vol.106，no.524，pp.4146，Jan. 2007．
[4] Sato, Y., Koga, H. and Ikenaga, T., "TCP Using Adaptive FEC
to Improve Throughput Performance in High-Latency
Environments", IEICE Transactions on Communications,
Vol.E102 B, No.3, pp.537-544, 2019.

4