マルチホップ無線通信のための TCP の改良
2006MI076 小林 英司

近年，無線 LAN における通信技術やネットワークの構築技術の高度化が進んでいる．無線 LAN では，ある1 つのアクセスポイントのサービスエリア範囲内に存在する端末間では通信可能であるが，範囲外に存在する端末と通信を行う場合，新しくアクセスポイントを作るなど大幅なコストがかかることになってしまう．現在，通信範囲を拡大する技術としてマルチホップ無線通信が注目されている．マルチホップ無線通信とは，アクセスポイントを介して通信を行うのではなく，無線の端末同士が一時的にネットワークを構成して通信を行うという通信形態である．マルチホップ無線通信の特徴は，各ノードがルータの機能を持ち，ノードを中継してデータを転送することである．これにより，離れていて直接通信を行うことができない端末同士でも端末間に存在するノードを中継しデータを転送することによって通信可能となり，通信範囲を拡大することができる．しかし，マルチホップ無線通信にも問題点がある．TCP が作られた当
初，マルチホップ無線通信という通信形態は考えられていなかった．そのため，マルチホップ無線通信環境下において，スループットの大幅な減少などの問題が生じることが知られている [1]．
本研究では，シミュレーションを行いマルチホップ無線通信において実際に生じる問題を調査する．そして，TCP で利用できる輻輳制御アルゴリズムを用いてスループットの変化を調べる．また，問題を解決するた
め TCP に変更を加え，マルチホップ無線通信に対応させるための改良方法を考える．

2 シミュレーション方法
シミュレーションに関して，NS2[2, 3] と言うネットワークシミュレータを用いる．NS2 では，Tcl 言語を用いてシミュレーションのシナリオファイルを作成する．
シナリオファイルは，シミュレーションのネットワーク構成を記述した TCL スクリプトであり，ネットワークトポロジー，通信時間，通信で使用するプロトコルなど全ての設定を記述する [4]．
マルチホップ無線通信で生じる問題を調べるため，マルチホップ無線通信と，中継無しで端末間で直接行う通信 (以下，シングルホップ無線通信とする) のシナリオを作成しシミュレーションを行い，それぞれのスループットを計算し比較する．シナリオの設定に関しては，マルチホップ (データの転送，中継ノードの追加) 以外の設定はシングルホップ，マルチホップ共に同じとする．通信を行う時間は 100 秒〜200 秒に設定した．これは，シミュレーションにより，シングルホップからマルチホップに切り替わる時間が 150 秒となったので，その前後の時間を取ったものである．シミュレーションは，単純なネットワークと複雑なネットワークの 2 種類で行う．
単純なネットワークは，図 1 のように一方向で通信を行う．その際，ノード A を中継してデータの転送を行う．
複雑なネットワークは，図 2 のように二方向で通信を行う．その際，ノード B を中継してデータの転送を行う．

図 1 単純なネットワーク (マルチホップ)
図 2 複雑なネットワーク (マルチホップ)

3 シミュレーション結果
図 3，図 4 は単純なネットワークで，図 5，図 6 は複雑なネットワークでスループットを計算した結果を示したものである．スループットは 1 秒間隔で計算した．
3.1 単純なネットワーク
図 3 はシングルホップ無線通信のノード 2，図 4 はマルチホップ無線通信のノード 2 で測定した結果である．
データの転送が行われる 150 秒以降のスループットを比較すると，シングルホップでは約 75000〜85000byte/sの値が出ているのに対し，マルチホップでは 35000〜45000byte/s の値しか出ていない．マルチホップにおけるデータ転送後のスループットは，シングルホップの約50 ％前後の値まで減少した．
80000

80000

60000

60000

throughput[byte/s]

1 はじめに

石崎 文雄

throughput[byte/s]

指導教員

40000
20000

04000020000

100120140time[s]160180

図 3 シングル
ホップにおけるスループット計
算結果 (ノード1 →ノード 2)200

0100120140time[s]160180

図 4 マルチホップにおけるスループット計算
結果 (ノード 1→ノード 2)200

複雑なネットワーク
図 5 はシングルホップ無線通信のノード 2，図 6 はマルチホップ無線通信のノード 2 で測定した結果である．
データの転送が行われる 150 秒以降のスループットを比較すると，シングルホップでは約 35000〜45000byte/sのスループットが出ているのに対し，マルチホップでは約 10000〜20000byte/s の値しか出ていない．複雑なネットワークでは，マルチホップにおけるデータ転送後のスループットは，シングルホップの 50 ％以下の値となった．

High Speed TCP

80000

80000

60000

60000

throughput[byte/s]

throughput[byte/s]

3.2

40000

20000

00120

140time[s]160180200100120140time[s]160180200

図 6 マルチホップにおけるスループット計算
結果 (ノード 1→ノード 2)

3.3 TCP の改良
TCP では，利用できる輻輳制御アルゴリズムが複数用意されている [5]．本研究では，その内 4 つのアルゴリ
ズム (High Speed TCP，Scalable TCP，TCP Vegas，TCP-HYBLA) を用いてシミュレーションを行い，マル
チホップ無線通信のスループットの計算結果を比較した．図 7 は単純なネットワークでのノード A で，図 8 は複雑なネットワークでのノード 2 で，4 つのアルゴリズムそれぞれを用いた時の結果を表したものである．
図 7 の結果からわかるように，単純なネットワークにおいては TCP-HYBLA アルゴリズムを用いることでスループットの低下を防ぐことができた．図 8 の結果
から，ほとんどのアルゴリズムではデータ転送が始まる
150 秒以降のスループットは約 10000byte/s 前後と低い値になるが，TCP Vegas アルゴリズムを用いた場合，約60000byte/s と比較的高い値が出ることがわかった．
High Speed TCP
Scalable TCP

80000

TCP Vegas

throughput[byte/s]

TCP-HYBLA

60000
40000
20000

100120140160time[s]throughput[byte/s]

TCP-HYBLA

40000
20000
0100120140160time[s]180200

図 8 複雑なネットワークにおける各アルゴリ
ズムでのスループットの比較 (ノード 1 →ノード 2)

4 まとめ

図 5 シングル
ホップにおけるスループット計
算結果 (ノード1 →ノード 2)

0

TCP Vegas

60000

40000

20000

100

Scalable TCP

80000

180200

図 7 単純なネットワークにおける各アルゴリ
ズムでのスループットの比較 (ノード 1 →ノード A)

本研究では，シングルホップ無線通信とマルチホップ無線通信のシミュレーションを行い，それぞれのスループットのシミュレーション結果を比較し，マルチホップ無線通信で生じる問題を調査した．シミュレーショ
ン結果から，マルチホップではシングルホップと比較し，スループットが約 50 ％前後もしくはそれ以下となり通信効率が悪くなる．また，混雑したネットワークでは安定したスループットが出ない．この問題を解決するため，TCP で利用できる輻輳制御アルゴリズムを用いてシミュレーションを行った．単純なネットワークではTCP-HYBLA を，複雑なネットワークでは TCP Vegasを用いることで高いスループットを得られることがわかった．マルチホップ無線通信の環境に適したアルゴリ
ズムは存在するが，ネットワークの環境によって利用するアルゴリズムを選択する必要がある．TCP-HYBLA，TCP Vegas を用いることで結果が変わる理由をさらに詳しく調べることが今後の研究課題となる．また，実際に TCP に変更を加えることに関して，乱数を発生させて congestion window サイズの増加幅，減少幅をランダムに変更し，最も効率良く通信が行われる時の値に設定することで改良が可能と考えられる．

参考文献[1] 田村尚志，宮本伸一：“電磁環境を考慮したマルチホップ無線ネットワークに関する一検討”，大阪大学大学院工学研究科電気電子情報工学専攻修士論文(2005).
[2] 銭飛：“NS2 によるネットワークシミュレーション”，
森北出版 (2006).
[3] T．Issariyakul，E．Hossain：“Introduction to Network Simulator NS2”，Springer (2009).
[4] Marc Greis：Running Wireless Simulations in NS,
http://www.kensuke.org/ns/nsscript5.html.
[5] David．Wei，Pei．Cao：A Linux TCP
implementation for NS2,
http://netlab.caltech.edu/projects/ns2tcplinux/ns2linux/index.html.