• 検索結果がありません。

各実験実行環境のアプローチ

ドキュメント内 博 士 論 文 (ページ 35-40)

トウェアが動作し、アプリケーションソフトウェアが相互に通信を行いトラフィッ クを生成するモデルは、実環境と同一である。

実験駆動単位に多様性を持たせるためには、ハードウェアやアプリケーション ソフトウェアの種類を増やすことが必要であるが、コストの問題から困難である。

規模に関しても同様のことがいえる。したがって、ノード自体は実装そのもので あるが、トポロジやサービスモデルなどはある程度、モデル化・抽象化すること で、コストを削減することもできる。

2.4.3 大規模実証環境

大規模実証環境は、実環境と同様に実環境向けの多数のノードを実際に動作させ ることで、実環境と同様の複雑な実験駆動単位を実現することを目的としている。

実証環境よりも多数のノードを容易に利用でき、既存の多くの種類の実環境向 け実装をそのまま利用できるため、多様性を持たせることはそう難しくない。た だし、ハードウェアに関しては用意されている実験設備の多様性に依存する。規 模に関しては、実証環境よりも多数のノードを容易に利用できるが、対象とする 環境によっては規模は不十分であるため、やはりトポロジなどについてはモデル 化・抽象化が必要となる。

実証環境、大規模実証環境とも、バックグラウンドトラフィックを実ノードか ら生成することもできるが、1ノードから大量のトラフィックを生成する手法や アルゴリズムについては、さまざまな研究がなされている。単純な方法として、

iperf[13]やnetperf[14]といった、帯域などのネットワーク特性のベンチマーク用 アプリケーションソフトウェアや、FTPを利用したファイル転送を用いて、バッ クグラウンドトラフィックを生成する方法が頻繁に利用されている。しかし、こ のような手法では実環境上に流れる雑多なトラフィックを模倣することはできな い。一方、Harpoon[15]のように、実環境上で採取されたトラフィック情報を元にト ラフィックを生成するソフトウェアや、Spirent Communications[16]のSmartbits、

Agilent TechnologiesのN2X[17]1といった同様の手法をハードウェアで実現する製 品も発表されている。このような手法を用いればある程度現実的なトラフィックの

1旧称Router Tester

生成が可能である。

大規模実証環境は、基本的に多数の計算機を集め、1計算機を実験トポロジ上の 1ノードとして動作させることで大規模な実験トポロジを構築する。しかし、存 在する計算機では実現できない規模の実験トポロジを構築するために、その都度、

新たにノードを用意することは、経済的費用、設置するための空間、そして計算 機の保守費用などさまざまなコストが必要となるため現実的ではない。この解決 策として、1台の計算機を仮想的に多重化することで、さらに大規模な実験トポロ ジを構築する手法がある。すでに用意されている実ノードを仮想的に多重化すれ ば、新たな実ノードを用意するためのコストおよび、保守費用も増加しないため、

新たな実ノードを用意する場合よりもコストが小さい。

大規模実証環境の目的は実環境向け実装を大規模な実験トポロジ上で対象技術 を検証することであり、仮想ノード上で、実験実行者が要求するソフトウェアが 変更を加えることなく動作することが非常に重要である。汎用的なOSが動作し ない場合は、実験実行者が意図するアプリケーションソフトウェアの動作に支障 をきたす場合や、実験実行者が変更を加えたOSを利用できないといった問題が生 じる場合がある。仮想ノード実現技術の一つである仮想機械は、ハードウェアレ ベルで計算機を模倣する。したがって、汎用的なOSが変更なしに動作し、ソフト ウェアレベルでは実環境と同一の挙動を示す仮想ノードを利用できる。一般的に、

仮想機械より高い抽象度で仮想ノードを実現する技術では、専用のOSを利用し仮 想ノードの動作速度を向上させているか、OSの模倣を行わずプロセス等のレベル での多重化を可能にする。このような技術を利用すれば、更に大規模な実験トポ ロジを構築できるが、実環境との同一性は低下するため、実験実行者は実験の性 質を十分に吟味し、仮想ノードを利用できるかどうかを決定する必要がある。

ただし、仮想ノード技術を利用した場合は、仮想ノードの性質や性能に影響を 受けるため、当該ノードで動作する技術の性能検証や、実ノードのデバイスドラ イバなどといった計算機自体の機能に関する検証には適さない。

3 実験支援

2章で、ネットワーク技術の開発段階および実現方法についてまとめた。本章で はネットワーク実験の手順を整理し、支援の可能性について議論する。

3.1 ネットワーク実験実行の問題点

まず、図3.1に、ネットワーク実験の実行段階と、それぞれの段階の問題点を図 示する。本節ではそれぞれの手順での問題点の詳細について述べる。

3.1.1 実験内容の検討・決定

ネットワーク実験を行うためには、まず実験の内容を決定する必要がある。現 状では実験内容の決定は実験実行者に委ねられているため、同様の技術に対する 検証実験であっても、その内容は異なる。したがって、実験結果の質は実験実行 者によってまちまちであり、また、複数の技術を比較したい場合でも、既存の実 験結果の利用が困難であり、新たに比較実験を行う必要がある。

この手順では、どのように適切な実験内容を決定するかと、決定された実験内 容の正当性をどう保証するかという問題がある。

実験の実行コスト 問題・課題 実験内容の正当性の保証

実験内容決定

問題・課題 実験駆動単位の現実性

実験の実行精度 問題・課題

実験結果の正当性の確認 実験データの解析

実験内容の検討・決定

実験駆動単位の構築 実験実行

図 3.1: 実験の実行手順と問題

巨視的に見ると、ネットワーク実験の手順には、実験内容の検討・決 定と実験駆動単位の構築と実験実行、そして実験データの解析があ る。それぞれの手順に問題が存在し、これらを解決することで、より 適切で精度が高い実験を行える。

3.1.2 実験駆動単位の構築・実験実行

実験内容の決定後、その内容にしたがい実験を実行する。このために実験実行 環境上に実験駆動単位を構築し、実験シナリオを実行する。

利用する実験実行環境を利用可能にすることがまず必要である。ソフトウェア シミュレータでは、必要な機能の実装や基本部分の検証などが必要になる。実証 環境や大規模実証環境では、実環境向け実装を用意する必要があるが、最終的に 実環境に導入することを考慮すれば、実験のために必要になるわけではないため 実験のコストとはいえない。また、実証環境では実験専用の資源を収集する必要 がある。大規模実証環境では、実験設備の予約など利用までに処理が必要となる 場合が多い。

次に、実験駆動単位を構築し、シナリオの実行を行う。この時の問題として、実 験実行者が実験実行に拘束される時間の問題と、実験駆動単位の構築およびシナ リオ実行の精度の問題がある。また、実証環境以外の実験実行環境では、実験の 設定記述が必要となる。

ここでの課題は、実験実行のコスト削減と、実験実行の精度向上、そして構築

した実験駆動単位と実環境との乖離がないことをどのように保証するかなどが挙 げられる。

3.1.3 実験データの解析

実験の実行後には実験データの解析が行われる。実験の結果自体は一つの客観 的なデータであるが、このデータを実験実行者の視点から分析し、傾向などを分 析する。したがって、実験の内容や実験実行の際の精度が十分であっても、分析 方法が適切でない場合は、導かれる結論も適切でなくなる。また、他の実験実行 者が行った同種の技術の実験結果を比較するためには、実験内容だけでなく、実 験データの解析方法も同一でなければならない。さらに、実験自体が正しかった のか、構築した実験駆動単位が対象とする実環境と十分に近い挙動を示す環境で あったのかといった部分も検証をする必要がある。

本論文では、実験により観測された各種数値などを実験データと呼ぶ、それら を解析し、最終的に実験の目的を満足する形に加工したものを実験結果と呼ぶ。

ドキュメント内 博 士 論 文 (ページ 35-40)