コンピュータネットワークの研究において、ネットワークシミュレーションとは、ソフトウェアプログラムが実際のネットワークの動作を再現する技術です。これは、ルータ、スイッチ、ノード、アクセスポイント、リンクなどのさまざまなネットワークエンティティ間の相互作用を計算することによって実現されます。[ 1 ]ほとんどのシミュレータは、離散イベントシミュレーションを使用します。これは、状態変数が離散的な時点で変化するシステムのモデリングです。ネットワークの動作と、ネットワークがサポートするさまざまなアプリケーションやサービスは、テストラボで観察できます。また、環境のさまざまな属性を制御された方法で変更して、ネットワーク/プロトコルがさまざまな条件下でどのように動作するかを評価することもできます。
ネットワークシミュレータは、コンピュータネットワークまたは無線通信ネットワークのパフォーマンスを予測できるソフトウェアプログラムです。通信ネットワークは複雑になりすぎて、従来の分析方法ではシステムの動作を正確に理解することができなくなったため、ネットワークシミュレータが使用されています。シミュレータでは、コンピュータネットワークはデバイス、リンク、アプリケーションなどでモデル化され、ネットワークのパフォーマンスが報告されます。シミュレータは、5G /6G、衛星ネットワーク、モノのインターネット(IoT)、無線LAN、モバイルアドホックネットワーク、無線センサーネットワーク、車載アドホックネットワークなど、今日使用されている最も一般的なテクノロジーとネットワークをサポートしています。
ほとんどの商用シミュレータはGUI駆動ですが、オープンソースのネットワークシミュレータはCLI駆動です。ネットワークモデル/構成は、ネットワーク(ノード、ルーター、スイッチ、リンク)とイベント(データ送信、パケットエラーなど)を記述します。出力結果には、ネットワークレベルのメトリック、リンクメトリック、デバイスメトリックなどが含まれます。さらに、シミュレーションのトレースファイルに関してドリルダウンすることもできます。トレースファイルには、シミュレーションで発生したすべてのパケットとすべてのイベントがログに記録され、分析に使用されます。ほとんどのネットワークシミュレータは離散イベントシミュレーションを使用します。これは、保留中の「イベント」のリストが保存され、それらのイベントが順番に処理され、一部のイベントが将来のイベントをトリガーします。たとえば、あるノードへのパケットの到着イベントが、下流ノードへのそのパケットの到着イベントをトリガーします。
ネットワークエミュレーションを使用すると、実際のデバイスやアプリケーションをテストネットワーク(シミュレーション)に導入し、パケットフローを変更することで、実際のネットワークの動作を模倣できます。実際のトラフィックはシミュレーターを通過し、シミュレーション内のオブジェクトの影響を受ける可能性があります。
一般的な手法としては、実際のアプリケーションから送信されたパケットがエミュレーションサーバー(仮想ネットワークがシミュレートされるサーバー)に送られます。実際のパケットは「変調」されてシミュレーションパケットに変換されます。シミュレーションパケットは、損失、エラー、遅延、ジッターなどの影響を受けた後、復調されて実際のパケットに変換されます。これにより、これらのネットワーク効果が実際のパケットに反映されます。つまり、実際のパケットが実際のネットワークを流れたように見えますが、実際にはシミュレートされたネットワークを流れているのです。
エミュレーションは、通信ネットワークを実運用する前に検証するために、設計段階で広く用いられている。
フリー/オープンソースのネットワークシミュレータとプロプライエタリなネットワークシミュレータの両方が利用可能です。注目すべきオープンソースのネットワークシミュレータ/エミュレータの例としては、以下のようなものがあります。
OPNETやNetSimといった、注目すべき商用ネットワークシミュレータもいくつか存在する。
ネットワークシミュレータは、コスト効率の良い方法を提供します。
ネットワークシミュレータには、非常にシンプルなものから非常に複雑なものまで、さまざまな種類があります。最低限、ネットワークシミュレータはユーザーが