日本ソフトウェア科学会第 33 回大会 (2016 年度) 講演論文集

汎用学習管理システムと連動する IP 技術自己学習機能の提案
河野歩磨

鈴木大雅

永濱裕太

藤本衡

ネットワーク技術を効果的に学習するため，講義資料や演習問題などに加えて仮想ネットワークの構築演習を実現するためのシステムを提案する．講義資料等の提供は汎用のオンライン学習管理システム Moodle を用い，仮想ネッ
トワークの構築と動作確認はネットワークシミュレータ ns-3 を元に改良を行う．この学習システムが多数の学習者の同時アクセスに耐えうるものかを検証するため，同時リクエスト数およびシミュレータの並行実行数を変化させて性能評価実験を行う．並行実行数がコア数とほぼ比例したことがわかった．

提案されているが，その多くは演習環境のみの実装に1 はじめにとどまっている．そこで本研究では，講義資料や演習インターネットの普及に伴い，情報技術者にとって問題などと一体となった学習を可能にするため，汎用TCP/IP を中心としたネットワーク技術の理解は必のオンライン学習管理システムに組み込む形で演習須となっている．ネットワーク技術の知識を定着させ環境を実装する．

るためには座学や筆記演習だけではなく，実際にネッ

また，既存の演習環境は仮想マシンおよび仮想ネッ

トワーク環境を構築・設定し動作を確認させる演習をトワークを利用したシステムを前提としており，多数組み合わせることが効果的であると考えられる．しの学習者が学習管理システムに同時アクセスした場

かし，演習に必要なネットワーク機器を学習者自身が合，スケーラビリティの面で課題が残る．本研究で準備することは困難であり，また専門教育機関においは，仮想マシンではなくオープンソースのシミュレーても演習環境を学習者ひとりずつに提供することはタソフトウェアを利用することで，スケーラビリティ（コストや設置場所・時間などの問題から）難しいのを確保する．

が現状である．
一方でコンピューティング資源の増大により，シミュレータソフトウェアや仮想ネットワーク技術による演習環境は，比較的低コストで利用可能となってい2 関連研究2000 年代以降，IP ネットワークの構築演習支援シ
ステムについての研究が複数行われている．

る．これらの演習環境を学習者に分かりやすい形で北澤ら [1] は，User Mode Linux を用いてサーバ上提供することにより，学習者それぞれが必要な規模のに複数の仮想マシンを生成し，ネットワークシミュネットワーク構築演習を実施し，知識の定着を促進すレーションを行うシステムを開発した．このシステることが期待される．

ムは Web アプリケーションとして動作し，学習者はこうした自己学習用のシステムは実験的なものがアプリケーションを操作することによって仮想ネット

Online self-learning system in conjunction with thegeneral-purpose learning management system.
Ayuma Kono, Daiga Suzuki, Yuta Nagahama, KouFujimoto, 東京電機大学理工学部, School of Scienceand Engineering, Tokyo Denki University.

ワークを構築する．仮想マシンを多数生成しメモリ消費量を確認する実験においては，おおよそ 1 台あたり 27MB 程度を消費し，台数に対して線形に増加することが示された．このことから，多くの学習者が同時にアクセスし複雑なネットワークを構築する場合に，スケーラビリティの問題が生じるおそれがある．
さらに，利用にはある程度の知識が必要との記述がみられ，ネットワークの学習途上にある学習者には必ずしも適切とは言えない．
舛賀ら [2] は [1] に加えて操作履歴の共有機能および疑似学習者の機能を追加した．
また孫ら [3] は，ネットワーク構成を図示することが学習者の助けになると論じ，実際に機器の設定情報などを収集し自動的に図示するシステムを提案した．
こうした議論からも，ネットワークを視覚的に表現し

図1

基本設計

たハンズオン学習環境を構築することは，ネットワー
ク技術の習得に重要な意味を持つことがわかる．

で生成された仮想ネットワークにおける通信の可否などを確認する．ns-3 の出力結果はこの独自プラグ

3 システム概要

インを介して，クライアントに送信される．これに本研究で提案するシステムは，クライアント（汎より，ネットワークシミュレーションが実現できる．

用 Web ブラウザ），フロントエンド（汎用学習管理

Moodle および独自プラグインについては，3. 2 節でシステム+独自プラグイン），バックエンド（ネット述べる．

ワークシミュレータソフトウェア）からなる．本シス
テムの基本設計を図 1 に示す．

3. 1 UI の構成

クライアントはネットワークシミュレータを操作

本節では提案するシステムの UI の概要を説明すするためのユーザインタフェース (UI) を学習者に提る．UI のデザインは HTML と CSS で記述され，供する．UI 上で構築されたネットワークを表現する

JavaScript のライブラリである jQuery で UI の動的データは JSON 形式 [6] で記述され，フロントエンドな機能を表現する．UI のデザインを図 2 に示す．に送信される．UI 部分の設計については，3. 1 節で詳しく述べる．
本研究では汎用学習システムとして Moodle 3.0 [4]

図 2 の画面は大きく分けて 5 つに分かれており，それぞれ，ナビゲーション部・機器部・ネットワーク部・詳細設定部・コンソール部を表示する．

を，またネットワークシミュレータソフトウェアとして ns-3 [5] を使用する．Moodle は PHP で記述された Web アプリケーションであり，プラグインと呼ばれる PHP スクリプトを追加することで機能拡張を実現する．ns-3 は C++で記述されたネットワークシミュレータで，シミュレーション環境および動作を表現するシナリオファイルもまた C++で記述される．
本研究で実装する独自プラグインは，おもに 2 つの機能を持つ．第 1 に，クライアントに対して UI 用のHTML5+JavaScript コードを提供する．第 2 に，クライアントから送信された JSON 形式を ns-3 が解釈可能な C++形式のシナリオファイルに変換する．そして，このシナリオファイルを ns-3 に処理させ，UI

図2

ネットワークシミュレータ UI

機器部では，上から「Host」「Router」「LINK」のアイコンを表示している．
「Host」と「Router」は，ネットワーク部にドラッグ&ドロップすることで配置することができる．
「LINK」はクリックすることでON と OFF を切り替えることができ，ON の状態でネットワーク部に配置された機器の間にリンクを生成することができる．その他に「LINK」の設定を変更するボタンがあり，リンクの属性を変えることができる．
詳細設定部では，各機器の名称と設定内容が表示される．設定内容は各機器に対する IP アドレスとサブ

図3機器のコンテキストメニューネットマスクを表示する．本システムでは IP アドレ
スとサブネットマスクは CIDR 表記で表示する．詳

習以外の座学や筆記演習を実現することが可能であ細設定を変更するには，設置した機器を右クリック

り，本研究で提案する構築演習システムと組み合わせすることで図 3 のコンテキストメニューを表示する．

ることで一貫したネットワーク学習課程を実施できる

そして，IP アドレスとサブネットマスクを設定する．と期待される．

ナビゲーション部では，左から「全削除」「実行」

Moodle は PHP で記述したプラグインによって機「受信パケット付与」「送信パケット付与」「パケット能拡張が可能であることから，本研究で提案するシ削除」のアイコンを表示している．
「受信パケット付ステムを PHP で記述し，Moodle のプラグインの一与」はネットワーク部に配置されたホストをクリック種である活動モジュールとして実装することとした．

することで，そのホストを宛先として設定する．宛先活動モジュールとして実装された構築演習システム

ホストには青色の枠が付加される．同様に「送信パのスクリーンショットを図 4 に示す．これによって，ケット付与」は送信元を設定し，送信元ホストには赤

Moodle 上でネットワークシミュレータを用いて仮想色の枠が付加される．それらの設定を解除したい場的にネットワークを構築できるようにした．

合は「パケット削除」を選択して当該ホストをクリッ

独自プラグイン内部では，クライアントから JSONクする．実行アイコンをクリックすることで，ネット形式で記述された仮想ネットワークの情報を受け取ワーク部に構築されたネットワークを表す JSON 形

る．これを ns-3 が解釈可能な C++形式のシナリオ式のデータが生成され，サーバ側の独自プラグインにファイルに変換する．このファイルを ns-3 に受け渡送信される．
コンソール部では，UI 上で起こったエラーや ns-3から独自プラグインを介して受信したデータを表示する．

3. 2 Moodle と独自プラグイン
本システムでは e ラーニングプラットフォームである Moodle を採用した．Moodle [4] は学習管理シス
テム (Learning Management System) であり，GNUGPL (General Public License) の下で配布されているオープンソースソフトウェア (OSS) である．
標準機能の活動モジュールを用いることで，構築演

図4

Moodle のプラグイン

し，ns-3 を子プロセスとして実行する．このとき，ルパークラスである Ipv4AddressHelper では自動でns-3 は元々複数のプロセスとして並行実行されるこ

同セグメント内の IP 割り当てを行ってしまうため，とを想定していないが，独自プラグインはクライアン

そのままでは学習者に IP の設定を問うような問題がトからのリクエストに応じて個別のプロセスとして作成できない．そこで，個々の機器に IP を静的に割実行される．このため複数の ns-3 プロセスが実行可り当てられるヘルパークラスを新たに作成した．

能なように改変を加えた．具体的には ns-3 ではシナリオファイルを置くディレクトリが固定であるため，4 性能評価実験

プロセスごとに異なるディレクトリを参照するように3 節で提案したシステムが，多数の学習者が同時変更した．

接続した場合においても十分に機能するかどうかをまた，ns-3 はシナリオファイルに対してコンパイ検証するため，以下の実験を行った．提案システム

ルを実行するため，あまりに多くの ns-3 プロセスがを実装するサーバのスペックは，CPU が Intel Core同時に実行されると，著しい性能劣化を引き起こす恐i7-2600(クロック 3.40GHz, 4core)，16GByte メモリれがある．そこでセマフォを用いて ns-3 の並行実行を搭載している．OS は Ubuntu 16.04 LTS (64bit)数に制限を加える機能を付与した．

を，Web サーバは Apache2.4.18 を用いた．PHP ス
クリプトはバージョン 7.0 を前提に記述された．

3. 3 ns-3
ns-3 [5] とは，離散イベント駆動型のネットワークシミュレータであり，主に研究や教育向けに開発された OSS である．
本研究では，構築された仮想ネットワークのシミュレーションを ns-3 が担当する．

ns-3 におけるネットワークシミュレーションでは，シナリオファイルを記述してモジュールファイルとリンクしてネットワークシミュレーションを行う．

4. 1 実験手順
シミュレーションの対象となる仮想ネットワークの構成を図 5 に示す．図 5 は，パソコン 6 台とルータ1 台で構成されたネットワークである．各ノードにはIP アドレスとサブネットマスクを設定して，P0 を宛先，P4 を送信元に設定する．この仮想ネットワークは通信に成功する前提で構成されている．
多数の同時接続を行うため，汎用のブラウザの代わ

モジュールファイルではプロトコルやネットワーク機器などのネットワーク機能を構成する要素が定義されている．各モジュールはヘルパークラスと呼ばれるクラスを用いて設定できる．
シナリオファイルは，これらのモジュールを組み合わせてネットワーク構成を記述する部分である．ns-3のシナリオファイルは，ノード，チャネル，ネットワークデバイス，アプリケーションの 4 つに分けて構成されている．ノードは ns-3 における基本的なコンピューティングデバイスを指し，このノードにネットワークデバイス機能，プロトコルスタックやアプリケーションを乗せることによって，ネットワーク上のルータやスイッチ，コンピュータなどの振る舞いを分けることが可能になる．
本研究ではネットワーク層の学習も目的の 1 つとしているが，ns-3 のデフォルトの IP 割り当て用のヘ

図5

実験で用いたトポロジー図

C の増加に対して T total がどのように変化するかを図 6 に示す．T total は実質的に最も長く応答を待つ学習者の待ち時間を表しており，リクエスト数が増えると場合によっては 1 分近く待つ必要があることがわかる．このことから，待機状態であることを UI上で表すことが必要と考えられる．

C の増加に対して T P がどのように変化するかを図7 に示す．C = 1, 2, 3 においては，ほぼ C の増加に対して線形に性能が向上していることがわかる．これはCPU のコア数が 4 であるため，並行実行の効果が高いためと考えられる．C = 4 のときには C = 1 の 3.5
図6

経過時間倍程度の性能であり，ns-3 以外のプロセスがあることから線形には性能向上していない．さらに，C ≥ 5
ではほとんど性能向上が見られず，ns-3 の CPU 利用率が極めて高いことを示唆している．以上のことから，本システムの性能向上にはコア数の増加が大きく寄与すると考えられる．

5 まとめと今後の課題
本研究では，Web ブラウザ上で動作する IP 技術自己学習機能を提案した．また，この機能を汎用の学習管理システムである Moodle のプラグインとして実装した．このシステムに対して同時リクエスト数を変化させて性能実験を行い，CPU コア数を増加させる
図7

一秒間に処理したリクエスト数の平均値ことで性能向上を見込めることがわかった．
現状では ns-3 の機能上の制約により，ルーティンりに Web ベンチマークツールである ApacheBench

グテーブルを静的に設定するといった機能が実現できを用いた．ApacheBench では，複数のリクエストをていない．この点は，3. 3 節で説明した IP アドレス

1 つもしくは複数のコネクションでサーバに送信するの静的割り振りと同様に，ヘルパーを新たに定義することが可能であるが，本節の実験では各学習者が一斉ことで対応可能と考えられる．また現在はネットワーにサーバにアクセスすることを想定し，リクエスト数ク層の部分に関する構築演習しか実装していない．今とコネクション数を同じ値に設定する．

後，データリンク層やアプリケーション層の機能追加などを行うことが期待される．

4. 2 実験結果
リクエスト数 R は 20・40・60 の 3 種類を想定する．また，ns-3 の同時実行数 C は 1〜10 まで 1 ずつ増加させ，さらに C = 15, 20 も実験した．以上のパラメータについて，リクエストを開始してから最後の応答が返るまでの時間 T total，および 1 秒あたりに処理したリクエスト数 T P を計測した．

参 考 文 献[1] 北澤友基, 井口信和, “クラウド環境を利用した IP ネッ
トワーク構築演習支援システムの開発”, 情報処理学会
第 74 回全国大会講演論文集, pp.891–892, Mar. 2012.
[2] 舛賀計彦, 早川諒, 井口 信和, “IP ネットワーク構築演習支援システムにおける擬似学習者機能の開発”, 2015
年度情報処理学会関西支部 支部大会.
[3] 孫一, 清光英成, 柏木治美, 康敏, 大月一弘, “ネット

ワーク技術学習のためのネットワーク図自動作成機構の試作”, pp.79–83, Jan.2014.
[4] “Moodle — Open-source learning platform”,
https://moodle.org/, 2016-Aug-18.

[5] “ns-3”, https://www.nsnam.org/, 2016-Aug-18.
[6] D. Crockford, “The application/json Media Typefor JavaScript Object Notation (JSON)”, RFC
4627, 2006.