DEIM Forum 2019 J3-1

深層学習を用いた無線 LAN 通信時の端末情報を考慮したパケット解析に基づく輻輳の予測山本葵†

山口実靖††

神山剛†††

小口正人†† お茶の水女子大学 〒 112–8610 東京都文京区大塚 2-1-1†† 工学院大学 〒 163-8677 東京都新宿区西新宿 1-24-2††† 九州大学 〒 819-0395 福岡市西区元岡 744
E-mail: †aoi@ogl.is.ocha.ac.jp,oguchi@is.ocha.ac.jp, ††sane@cc.kogakuin.ac.jp, †††kami@f.ait.kyushu-u.ac.jp
あらまし 近年，世界中に増え続けているスマートフォン，タブレット端末は機能や性能も強化されている． 気軽にネットワークにアクセスし，動画やゲームなどのデータ通信を楽しむことが出来るようになり，大 容量かつ高速な通信に対する需要は増大している．しかし有線接続に比べ低帯域かつノイズの多い無線接続においては，膨大なパケットが通信中に無線 LAN アクセスポイントに蓄積され，その結果輻輳が発生 してしまうという問題も生じている．本
研究では輻輳発生前に制御を加え無線 LAN AP の輻輳を回避す ることを最終目的とし，本稿では目的達成のため輻
輳の予測を行う．Android 端末を用いて無線 LAN 通 信を行い，アクセスポイント周りのパケットをキャプチャした.
そのパケットを深層学習の LSTM モデル を用いて解析し無線 LAN 通信時のトラフィックの予測性能を評価した．
キーワード 深層学習，無線 LAN，無線通信，Android 端末，LSTM，輻輳

Congestion Prediction Based on Wi-Fi Packet Analysis Considering
Terminal Information Using Deep Learning
Aoi YAMAMOTO† , Saneyasu YAMAGUCHI†† , Takeshi KAMIYAMA††† , and Masato OGUCHI†† Ochanomizu University 2-1-1 Otsuka, Bunkyou-ku, Tokyo, 112-8610, Japan†† Kogakuin University 1-24-2 Nishi-shinjuku, Shinjuku-ku, Tokyo, 163-8677, Japan††† Kyushu University 744 Motooka, Nishi-ku, Fukuoka, 819-0395, Japan
E-mail: †aoi@ogl.is.ocha.ac.jp,oguchi@is.ocha.ac.jp, ††sane@cc.kogakuin.ac.jp, †††kami@f.ait.kyushu-u.ac.jp

1. は じ め に

このことから大量のデータ通信がワイヤレスデバイスから発生しており，電波帯域は圧迫され，足りなくなりつつある．こ

モバイルネットワークにアクセスするスマートフォンやタブの問題を解決しようと携帯電話事業者は基地局の設置とともにレット端末などのワイヤレスデバイスは世界中で増加し続けてデータオフロード，その中でも Wi-Fi オフロードを推進していいる．毎年多様な形状のワイヤレスデバイスが市場に登場し，る．混雑しているワイヤレスデバイス-基地局間の無線部分のこれらの機能や性能も強化され進化し続けている．全世界のワ

データ通信を，Wi-Fi 経由にすることでデータを有線接続の固

イヤレスデバイス数は，2020 年までには 116 億にまで増加し，定回線などに誘導し，無線部分の通信量を減らそうとしている．

1 人あたりのデバイス数は 1．5 台になるという予想もなされ実際に街中の施設では Wi-Fi オフロードを推進している携帯電ている [1]．

話事業者などが配布した AP をみる機会も多くあるだろう．

端末自体の高機能化，高性能化は気軽にホームページの閲覧

このような背景から今後無線 LAN へアクセスする端末数やや音楽，動画やゲームなどのデータ通信を行うことを容易にしトラフィック量が増加し，ワイヤレスデバイス-アクセスポインている．このようなデータ通信は大容量になることも多くあり

ト (AP) 間においても大量のデータ通信が発生し帯域が圧迫さ得る．大容量かつ高速な通信に対する需要は増大すると考えられることが考えられる．ワイヤレスデバイスから送信されるパれ，全世界のモバイルトラフィック量は 2015 年から 2020 年のケットを処理する AP の負荷が増大し，輻輳が起こる頻度も多間に約 8 倍も増加すると予想されてい [1]．

くなると考えられる．

TCP プロトコルは，様々な目的でのデータ通信において標準的に利用されているプロトコルの 1 つであり，ネットワークステムの発動タイミングを調整し多くの端末が同時に通信するときの全体の通信速度と公平性の向上を可能にした．の公平かつ効率的な利用のため、TCP には輻輳制御アルゴリ

本研究はカーネルモニタで得ることができる情報を用いて，ズムが備わっている．Linux や Android が採用しているロス

無線 LAN AP に接続される端末において輻輳を回避するため

ベースアルゴリズムはパケットのロスを観測し，ロスが増加すに制御を行うことを目標としている点で関連研究を継承していると輻輳が発生したとして送信量を抑えるというアルゴリズム

る．しかし輻輳が起こった後に輻輳を検知してい制御を加えるである．しかし，より高いスループットを得るためにアグレッ

関連研究対し，本研究は輻輳が起こることを予想して輻輳が起シブにパケットを送信するため，有線接続に比べて低帯域かつこる前に制御を加えることを目標としている点で異なる．

ノイズの多い無線接続環境においてはその手法によって膨大なパケットが蓄積されてしまうという問題が生じることがある．

3. 深 層 学 習

この問題の解決法としては，高速通信の規格化があり，使用可

深層学習はニューラルネットワークの階層を深めたアルゴリ

能な周波数帯の増加や伝送速度の向上があれば輻輳は起きにく

ズムで，機械学習を実装するための 1 つの手法である．機械くなるしかし規格が広く普及するには時間がかかり，実際街中が自分自身で特徴量を抽出できるようになり，また階層を深めでは狭い帯域を取り合っているのが現状である．

ることで精度が大幅に向上した．これにより現在は第 3 次 AI

よって本研究では無線 LAN AP の輻輳を回避することを最ブームとも言われている．代表的な実用例は，郵便局で郵便番終目的とし，本稿ではこの目的を達成するために輻輳を予測で号を認識して選別する際に使われる文字認識，Amazon の売りきるか検証する．輻輳の発生が事前に検知できれば，CWND上げを大きくあげたことで有名な商品レコメンドシステム，自の補正をなどによって，輻輳発生前にパケットの送信量を抑え動車の運転支援システムなど幅広く使われている．深層学習でることができる．その結果パケットロスを発生させることなく，用いられるモデルをさらに詳しく説明する．

また無線 LAN AP に接続している全端末が平等に安定したス

3. 1 ニューラルネットワーク (NN)

ループットを確保できる輻輳制御が実現できる可能性がある．

人間の脳内にある神経細胞とその繋がり，神経回路網を人工

本稿では，無線通信のトラフィックを解析し，輻輳の極めてニューロンという数式的なモデルで表現したもので，一般的な早期における検出，予兆の発見をし輻輳の予測を行う．具体ものは図 1 のように多数の層から一方向へ情報が伝搬される的には，Android 端末を用いてデータ通信を行い，無線 LANようなモデルがよく使われる．層と層の間にはニューロン同士AP 周りのパケットをキャプチャデバイスを用いて取得し，入の繋がりの強さを表す重みがある．NN の発案はコンピュータ力データとする．また各 Android 端末において通信速度，スが普及し始めた時と言われており，当時のコンピュータは非力ループットを測定して記録する．これらのデータを用いて深層で膨大な計算を行えるほどの容量や計算能力ではなかったが，学習を行い，トラフィックの予測が可能であるか検証した．

近年のコンピュータのスペックの向上により深層学習が容易と

2. 関 連 研 究
2. 1 カーネルモニタなった．

3. 2 リカレントニューラルネットワーク (RNN)
RNN(図 2) は，入力データは互いに独立であると仮定されてカーネル内部の処理は通常バックグラウンドで進められていいた NN と違い，時系列の流れに意味を持つデータの予測や分るため，通常ユーザ空間からその処理の様子を監視することは類に用いられるモデルである．RNN は以前に計算された情報できない．そこで先行研究 [2] によりカーネル内部の情報を見を覚えておくための記憶力を持っている．理論的には長いデーるためにカーネルモニタというツールが開発された．TCP のタを記憶し，利用することが可能だが，実際は 2，3 ステップ

ソースコードにモニタ関数を挿入し，カーネルを再構築するこ前くらいの記憶しか維持できないという欠点がある．とで，メモリからログを得ることができる．これにより輻輳ウ3. 3 ロングショートタームメモリネットワーク (LSTM)

インドウサイズや往復遅延時間 (RTT)，各種エラーイベントのLSTM(図 3) は RNN の拡張として登場した，時系列データ発生タイミングなどの TCP パラメータをリアルタイムにモニに対するモデルである．LSTM は RNN の隠れ層のユニットをタすることができる．

LSTM block と呼ばれるメモリと 3 つのゲートをもつブロック

2. 2 輻輳制御ミドルウェアに置き換えることで実現された．その最も大きな特徴は RNN

先行研究 [3] [4] で開発された輻輳制御ミドルウェアは， カーではできなかった長期依存が可能であるということである．

ネルモニタをベースとしたシステムであり，Android 端末間の連携した制御を目的としている．Android 端末間でこれから送信するセグメント数を表す輻輳ウインドウ値を通知し，周辺端末の通信状況を把握する．さらに周辺端末から受けた情報に基

本研究は時系列データであるパケットの解析であるため，この LSTM をモデルとした深層学習を行う．

4. 正解データの検討

づき，輻輳ウインドウの上限値を自動で算出し補正することで，本章では各パラメータの振る舞いを観察することにより深層端末間で可用帯域を公平に分け合う．これにより無線 LAN AP学習をする際の正解データをどのように設定するか検討を行う．に於ける ACK パケットの蓄積を回避する．

輻輳を示す値としてどのパラメータを採用すべきか実験を行い

さらに [5] では輻輳制御ミドルウェアの改良を行っている．シ

決定する．各パラメータを観察するために，先行研究 [2] にてトロスの検知により輻輳と判断している．よって図 5，図 6 のCWND の振る舞いをみると，各端末が自由に大量のパケットを送出し，パケットロスが起こるまで指数関数的に CWND が増加している．その結果輻輳が発生し，パケットロスを検知した TCP が CWND の値を変更することによる制御が行われていることが確認できる．

図 1 NNまた図 5 では 1 部の時間では CWND 値に差はあるが，大部分の時間において端末 1，端末 2 どちらも同じ程度のパケットを送信していることがわかる．
図 6 については，パケットを送信し始めた 20 秒以降，端末3 と端末 4 の 2 台が帯域の大部分を圧迫しておりそのほかの端末の送信パケット数が抑えられていることがわかる．
図 2 RNN

図 3 LSTM開発されたカーネルモニタを導入した Android 端末を用いて通信を行い，通信時の TCP パラメータを取得する．また，通信には iperf を使用して通信速度であるスループットを測定する．実験環境は図 4 である．輻輳の発生を観察するために 70秒間パラメータを取得した．0-20 秒は Android 端末からは一切パケットを送信はせず，20 秒付近で全ての Android 端末から一斉に iperf によりサーバにパケットを送信した．全端末においてパケットを送信する，しないの極端なデータ通信を行い輻輳を発生させた．通信する Android 端末の台数を 2 台と 6

図 5 2 台同時通信における Android 端末の CWND の推移

台の場合にわけ，各 Android 端末の CWND 値，各 Android
端末-Server 間の RTT 値，各 Android 端末のスループット，3つのパラメータを取得し，グラフとして出力したものが図 5-図10 である．

図 6 6 台同時通信における Android 端末の CWND の推移

4. 2 Android 端末-Server 間の RTT 値
図 4 基礎実験環境

4. 1 各 Android 端末の CWND 値
図 5 は通信を行った Android 端末 2 台の輻輳ウインドウ(CWND)，図 6 は Android 端末 6 台の輻輳ウインドウ (CWND)の振る舞いを測定した結果である．20 秒までは通信を行っていないので値は 0 で一定だが，パケットを送信し始めた 20 秒付近からは各端末が自由にパケットを送出しており，TCP が各端末を制御している様子が見て取れる．Android 端末からパケットを送信し始めた 20 付近以降，輻輳を検知した TCP が CWNDの値を変えて制御を行っている．Android が採用している輻輳制御アルゴリズムであるロスベースアルゴリズムは，パケッ

図 7 と図 8 は Android 端末-Server 間の RTT 値の振る舞いを測定した結果である．パケットを送信し始めた 20 秒付近から徐々に RTT 値が増加している．
図 7 については，パケットを送信し始めた 20 秒から数秒間はまだキューが溜まっていないことに加え，通信している端末も 2 台と少ないため，適切にパケットを処理できていると考えられる．そのため RTT 値は大幅には増加しておらず徐々に増加している．しかし各端末は大量にパケットを送出し続けているため，40 秒以降でパケットの処理が追いつかず RTT 値が大幅に上昇していると考えられる．
図 8 については，図 7 よりも早い段階から RTT 値の大幅な増加が見て取れる．これは 6 台の端末から大量にパケットが送られてくるため，キューが溜まる速度も速くパケットの処理が追いつかなかったことがわかる．また図 6 の CWND 値のグラフで帯域を占領していた端末 3 と端末 4 の RTT 値はほとんど増加おらず，その他の端末の RTT 値が大幅に増加していることがわかり，6 台通信時において端末は平等に安定した通信が行われていないことがわかる．

5. 1 データセット
深層学習に用いるデータセットについて説明する．正解デー
タには 4. 章よりスループットの合計値を使用する．

5. 1. 1 入力データ
入力データとして無線 LAN AP 周辺のパケットを使用する．
用いるキャプチャデバイスは米国，riverbed 社の AirPcap [6]である．AirPcap は wireshark 統合型のワイヤレストラフィッ
クパケットキャプチャデバイスで，制御，管理，データの各フレームを含む，IEEE802．11 a/b/g/n のトラフィックをキャプチャできるデバイスである．AirPcap からキャプチャしたパケットを数値化し，さらにカーネルモニタから取得した CWND値を加えたものを入力データとした．図 11 のような入力デー
タと正解データのセットが実験時間の秒数分ある．

5. 2 深層学習用フレームワーク
今回の実験に用いた深層学習用フレームワークは Chaier である．これは Preferred Networks 社が開発し，2015 年に公開さ
図 7 2 台同時通信における Android 端末-Server 間の RTT 値の推移

れた Python のライブラリである．特徴として”Flexible”，”In-tuitive”，”Powerful”を掲げている [7]．
5. 3 実 験 環 境
5. 1 章のデータを取得し実験を行う．実験環境を図 12 に示した．1 台の AP に接続した複数台の Android 端末から iperf [8]

図 8 6 台同時通信における Android 端末-Server 間の RTT 値の推移

4. 3 各 Android 端末のスループット
図 9 と図 10 は各 Android 端末のスループットを振る舞いを測定した結果とそのスループットを合計したグラフである．

図 9 2 台同時通信における Android 端末のスループットの推移

CWND 値を測定した結果と比較してみると，CWND 値が小さくなり輻輳を検知したと思われる箇所はスループットも減少している．また各端末のスループットを合計することで，複数の端末で通信するときに起こる 1 部の端末が帯域を占領してしまう場合においても，接続している AP が混雑しているかどうかが判断できるのではないかと考える．

4. 4 正解データの決定実験により正解データとしては，Android 端末でデータ通信中に iperf を使用得られた通信速度であるスループットを合計したものを用いる．輻輳が発生している時にスループットの合計値は減少しており，AP の混雑具合や輻輳の発生を表してい

図 10 6 台同時通信における Android 端末のスループットの推移ると考えられるからである．

5. 実

験

本章では Android 端末によるデータ通信を行なった時に深層学習を用いて輻輳が予測できるか評価実験を行なった

図 11 データセット

によって，データをサーバに送信する．それと同時に PC で上記のデータを取得する．その後，適切なデータ形式に加工し，LSTM モデルを用いた深層学習をおこなう．

図 13 学習データによる予測結果 (2 台通信)
図 12 実 験 環 境

表 1 実験機器の性能
Android Model number

Nexus S

Nexus 7(2013)

Firmware version

4.1.1

6.0.0

CPU1.0 GHz Cortex-A8

Quad-core 1.5 GHz Krait

Memory(Internal) 16 GB， 512 MB RAM 16 GB， 2 GB RAM
WLAN
server

Wi-Fi 802.11 b/g/n

Ubuntu 14.04 (64bit) / Linux 3.13.0

CPUIntel(R) Core(TM)2 Quad CPU Q8400

Main Memory
AP

Wi-Fi 802.11 a/b/g/n

OSModel

8.1GiBMZK-MF300N(Planex)

Support Format

IEEE 802.11 n/g/b

Channel13

Frequency Band

2.4 GHz(2，1412-2，472 MHz)

図 14 学習データによる予測結果 (6 台通信)

表 2 解析に用いた PC の性能

5. 6 テストデータによる予測結果

14.04.1-Ubuntu学習の汎化能力を検証するためテス トデータによる検証を行CPUIntel(R) Core(TM) i7-6700K CPU @ 4.00GHz

う．テストデータは新規に作成する．2 台または 6 台の Android

GPUGeForce GTX 1080

端末を用いて通信を行い，50 秒間のデータを取得してデータ

PC OSMemory

2.4 GHz(32GB)セットとした．0-10 秒はパケットを送信せず，10-30 秒で iperfを用いて通信し，その後 30-50 秒はパケットを送信しない．こ5. 4 学習の 50 秒間で取得したデータを図 11 のようなデータセットす

2 台通信時のデータ，6 台通信時のデータの 2 つのデータセッ

る．学習に用いた 70 秒のデータとはパケットを送信する前のトを用いてそれぞれ学習を行なった．2 台または 6 台の Android

時間も送信時間も違うデータをモデルに入力することで汎化能端末を用いて通信を行い，70 秒間のデータを取得してデータ力を検証する．

セットとした．0-20 秒はパケットを送信せず，20-50 秒で iperf

結果は図 15 と図 16 となった．

を用いて通信し，その後 50-70 秒はパケットを送信しない．こ図 15 は 2 台通信時のテスト用入力データを先ほど学習させの 70 秒間で取得したパケット，カーネルモニタより CWNDたモデルに入力した結果である．10 秒，30 秒付近のスループッ

値，iperf よりスループットのデータを図 11 のようなデータ

ト値が大幅に変化する箇所では正確な値までは予測できていなセットとし t 秒の入力データから t 秒のスループットを予測すいが，値が変化するタイミングは非常に良い精度で予測ができる学習を行った．学習回数は 2000 回である．ている．

5. 5 学習データによる予測結果

図 16 は 6 台通信時のテスト用入力データを先ほど学習させ図 13 と図 14 は 70 秒の学習用データを学習させたモデルにたモデルに入力した結果である．10 秒付近に大きくスループッ

再び同じ 70 秒の学習用データを入力データとして与えたもの

ト値が上がる箇所は数秒の誤差で予測ができており，また 30である．オレンジの線が正解の RTT 値，青の線が予測した値秒でスループット値が大幅に減少する箇所も予測も 5 秒ほどのである．

誤差で減少する予測ができている．

図 13 と図 14 ともに精度よく学習ができていることがわかる．

5. 7 数秒先の予測
5. 4 章から 5. 6 章での実験では t 秒までの入力データから t図 17 学習データによる

図 18 テストデータによる予測結果 (t+1)

予測結果 (t+1)

図 15 テストデータによる予測結果 (2 台通信)

図 19 学習データによる

図 20 テストデータによる予測結果 (t+5)

予測結果 (t+5)

キャプチャする．そのパケット情報を数値化し，さらにカーネルモニタから取得した各 Android 端末の CWND 値を入力データとした．またカーネルモニタから得られる TCP パラメータのうち，各 Android 端末の CWND 値，Android 端末-Server間の RTT 値を，iperf よりスループットの振る舞いを観察する
ことにより，正解データとして各 Android 端末のスループット
図 16 テストデータによる予測結果 (6 台通信)を合計したものを採用し，深層学習を行なった．深層学習はフレームワークに Preferred Networks 社の Chainer を使い，時秒の正解データであるスループットを予測できるか検証した．

系列データに適する LSTM モデルを使用してトラフィックの予しかし制御を目的とした本研究では，制御するための計算時間測が行えるか実験を行なった．

を考慮しなくてはならないため，t 秒までの入力データから数学習データによる予測は非常にうまくいっており，学習デー秒先の正解データを予測し，輻輳を発見する必要がある．そこ

タの特徴を良く学習できていることがわかった．テストデータ

で 6 台の端末を用いてどのくらい先の時間まで精度よく予測でによる予測はうまくいくものといかないものの差がおおきく，きるのか実験した．学習に用いたデータは 5. 4 章の 6 台通信時改善の余地がある．のデータセットである．

今後の課題としては様々な状況下でデータ通信を行なってい図 17 と図 18 は t 秒までの入力データから t+1 秒の正解デーる時の予測精度の向上が 1 番に挙げられる．数十分，数時間，タを予想した結果，図 19 と図 20 は t 秒までの入力データから数日とさらに長時間のデータを集めてあらゆる状況においてのt+5 秒の正解データを予想した結果である．1 秒先の予測ではデータを用いて十分に学習をさせていきたい．また端末の台数

学習データはある程度精度よく，テストデータによる結果ではの変更や端末が一斉に通信を行なった場合だけでなく，ランダ値は予測できていないが，上昇タイミングは数秒の誤差で予測

ムに通信を行なっている場合においても精度よく予測ができるできている．5 秒先の予測では，学習データによる予測はあまように学習を行って行きたい．

り落ちていないが，テストデータは全く予測できていないという結果になった．

6. まとめと今後の課題
本研究では，AP に接続する端末が複数台通信を行い，輻輳がおこるであろう場合において，輻輳発生前に制御を行うことを目標とし，その前段階として輻輳の極めて早期の検出，予兆の発見をするために深層学習を用いてトラフィックの予測を行なった．具体的には無線 LAN AP に接続した Android 端末を用いてデータ通信を行い，そのパケットをデバイスを用いてまた今後輻輳制御を行っていくことを見据え，輻輳を発見してから制御を行うための計算時間も考慮に入れて実験を行っていきたい．いくら予測精度が良くても，予測するために計算している間に結果の予測時刻を過ぎてしまっては意味がない．どの程度先の時刻まで精度よく予測できるか，また数秒先の予測の精度をあげるため実験を行なっていきたい．

謝

辞本研究は一部，JST CREST JPMJCR1503 の支援を受けたものである．

文

献[1] Cisco Visual Networking Index, https://www.cisco.com/c/
ja jp/solutions/collateral/service-provider/visual-networkingindex-vni/white paper c11-520862.html[2] Kaori Miki, Saneyasu Yamaguchi, and Masato Oguchi:“Kernel Monitor of Transport Layer Developed for Android
Working on Mobile Phone Terminals,” Proc. ICN2011,
pp.297-302, January 2011.
[3] Hiromi Hirai, Saneyasu Yamaguchi, and Masato Oguchi: ”AProposal on Cooperative Transmission Control Middleware
on a Smartphone in a WLAN Environment,”Proc. IEEE
WiMob2013, pp.710-717, October 2013.
[4] Ai Hayakawa, Saneyasu Yamaguchi, Masato Oguchi: “Reducing the TCP ACK Packet Backlog at the WLAN Access
Point,” Proc. ACM IMCOM2015, 5-4, January 2015.
[5] Ayumi Shimada and Masato Oguchi: “A Study of Android
Tables Performance,” Proc.DEIM2017,H2-3,March 2017[6] riverbed, https://www.riverbed.com[7] Chainer,Framework for Neural Networks, https://chainer.org/[8] Iperf For Android Project in Distributed Systems,
http://www.cs.technion.ac.il/ sakogan/DSL/2011/projects/
iperf/index.html