Ns (シミュレータ)
ns-2の開発開始から10年経過する過程で、CPUの進化において高クロック化からマルチコア化へのパラダイムシフトが起き、無線ネットワークの普及も急速に進み始めた。それに伴って、ns-2のソフトウェアアーキテクチャでは、開発当初想定していなかった並列化によるシミュレーション処理のスケールと無線ネットワークへの対応が難しいという問題が現れ始めてきた。その2つの問題に対処するために、アメリカ国立科学財団 (NSF)の支援の下で、Tom Henderson, George Riley, Sally Floyd, and Sumit Roy等が先導するチームにより、ソフトウェアアーキテクチャを全面的に刷新したns-3が開発された。ns-3では、開発者がOTclとC++という異なるプログラミング言語のオブジェクト間の関連性を意識しなくて済むように、シナリオ,コア共に記述言語がC++に統一された。この変更により、ns-2とns-3の間のクラスやモジュールの互換性は無くなった。また、Gustavo CarneiroによりPythonバインディングとWafビルドシステムが開発されて新たに導入された。さらに、無線ネットワークのシミュレーションコードの充実,MPIによる並列化対応が行われた。ソフトウェアアーキテクチャの刷新に伴い、ns-2まで存在したビジュアライザであるNamは廃止された。
その代わりに、シミュレーション実行終了時に出力されるトレースファイルを読み込んでトポロジ上にパケットフローを表示するオフラインビジュアライザとしてNetAnimが、シミュレーション実行中にシミュレータの内部にアタッチし、パケットの流れをトレースしてトポロジ上にパケットフローを表示するオンラインビジュアライザとしてPyVizが用意された。ns-2の時代のドキュメントの不足を反省し、各種ドキュメントが拡充され、Doxygenによりソースコードから生成されたAPIリファレンスも用意されるようになった。
以前のメジャーバージョンであるns-2では過去に開発された有線ネットワークのプロトコルのシミュレーションコードが充実していた。しかし、最新のns-3では、ns-2とのクラスやモジュールの互換性を捨てて無線ネットワークへの対応を強化したため、有線ネットワークのプロトコルのns-3ネイティブなシミュレーションコードが不足している状態である。そのため、学術界全体としてns-2からns-3への移行は難航しており、ns-2の開発停止後も長らくの間、有線ネットワークの分野ではns-2、無線ネットワークの分野ではns-3という住み分けが続いている。
依然としてns-3の開発は継続されているが、未だにns-2と比較して実装されていないアルゴリズムが多く、ネットワークの基本的な動作にもバグが多い(マルチキャスト転送で、ノードに接続されたNICの枚数倍だけ不必要にパケットを複製して送信するバグが、2016年3月24日リリースのns-3.25まで修正されていなかった)。従って、ns-2と比較してシミュレータとしての信頼性が低い模様である。
ns (network simulatorの略称に由来)とは、オープンソースで開発が進められている、インターネットを主な対象とした離散事象ネットワークシミュレータの系列(ns-1,ns-2,ns-3)の名称である。