在Ubuntu 14.04上安装Network Simulator 2(NS2)
1介绍
网络模拟器是用于模拟网络中离散事件的工具,有助于预测计算机网络的行为。 通常,模拟网络具有链路,交换机,集线器,应用等实体。仿真模型完成后,执行分析性能。 然后,管理员可以自定义模拟器以适应他们的需要。 网络模拟器通常支持目前最流行的协议和网络,如WLAN,UDP,TCP,IP,WAN等。
今天可用的大多数模拟器都是基于像NCTUNS这样的GUI应用程序,而其他的则包括。 NS2是基于CLI的。 模拟网络涉及配置链路,交换机,集线器,终端等状态元素,以及数据包丢弃率,传送状态等事件。 模拟的最重要的输出是跟踪文件。 跟踪文件记录每个数据包,模拟中发生的每个事件,用于分析。 网络模拟器还可以提供其他工具,以便于视觉分析趋势和潜在的故障点。 大多数模拟是在离散的时间间隔中进行的,其中在队列中的事件按顺序一个接一个地处理。
由于模拟是一项复杂的任务,我们不能保证所有的模拟器都可以为所有不同类型的信息提供准确或准确的结果。 网络模拟器的例子有:ns,NCTUNS,NetSim等
ns2是ns-1,ns-2和ns-3等离散事件网络仿真器系列的名称。 所有这些都是离散事件网络模拟器,主要用于研究和教学。 ns2是免费软件,根据GNU GPLv2许可证公开提供研究,开发和使用。
这篇文章涉及在Ubuntu 14.04中安装的“ns2”也称为“网络模拟器2”。
2下载并提取ns2
从这里下载ns2的所有包
下载的软件包将被命名为“ns-allinone-2.35.tar.gz”。 将其复制到主文件夹。 然后在终端中使用以下两个命令来提取包的内容:
cd ~/
tar -xvzf ns-allinone-2.35.tar.gz
所有文件将被提取到名为“ns-allinone-2.35”的文件夹中。
3建立依赖关系
Ns2需要预先安装几个软件包。 它还要求GCC-版本4.3正常工作。 所以使用以下命令安装它们:
sudo apt-get install build-essential autoconf automake libxmu-dev
所提到的依赖关系之一是编译器GCC-4.3,它不再可用,因此我们必须安装GCC-4.4版本。 4.4版本是我们可以获得的最老的。 为此,请使用以下命令:
sudo apt-get install gcc-4.4
下图显示了执行上述命令的输出。 如果您已经预先安装了所有依赖项,那么输出将如下图所示:
安装完成后,我们必须在“ls.h”文件中进行更改。 使用以下步骤进行更改:
导航到文件夹“linkstate”,使用以下命令。 这里假设提取的ns文件夹位于系统的主文件夹中。
cd ~/ns-allinone-2.35/ns-2.35/linkstate
现在打开名为“ls.h”的文件,滚动到第137行。 在这个变化中, “错误”一词改为“this-> error” 。 下图显示了对ls.h文件进行更改后的第137行(下图中突出显示)。要打开文件,请使用以下命令:
gedit ls.h
保存该文件并关闭它。
现在还有一个步骤必须完成。 我们必须告诉ns将使用哪个版本的GCC。 为此,请转到您的ns文件夹并键入以下命令:
Sudo gedit ns-allinone-2.34/otcl-1.13/Makefile.in
在文件中,将CC = @ CC @更改为CC = gcc-4.4,如下图所示。
4安装
现在我们准备安装ns2了。 为此,我们首先需要root权限,然后我们可以运行安装脚本。 使用以下两个命令:
sudo su cd ~/ns-allinone-2.35/./install
以下是这些命令的一点:
下图显示了成功执行的方式
在我的系统上构建和安装ns2需要花费近6分钟的时间。 但在我们运行之前,我们需要将生成路径添加到环境路径中。
5设置环境路径
最后一步是告诉系统,ns2的文件在哪里安装或存在。 为此,我们必须使用“.bashrc”文件设置环境路径。 在该文件中,我们需要在底部添加几行。 要添加的内容如下。 但是对于以下所示的路径,其中许多线路具有“/home/akshay/ns-allinone-2.35 / ....” ,但这是我提取的文件夹。 确保用您的路径替换它们。 例如,如果您已将其安装在“/ home / abc”文件夹中,请将“/home/akshay/ns-allinone-2.35/otcl-1.14”替换为“/home/abc/ns-allinone-2.35/otcl -1.14“ 。
对所有必需的行执行此操作。
sudo gedit ~/.bashrc
要添加的行:
# LD_LIBRARY_PATH OTCL_LIB=/home/akshay/ns-allinone-2.35/otcl-1.14 NS2_LIB=/home/akshay/ns-allinone-2.35/lib X11_LIB=/usr/X11R6/lib USR_LOCAL_LIB=/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB # TCL_LIBRARY TCL_LIB=/home/akshay/ns-allinone-2.35/tcl8.5.10/library USR_LIB=/usr/lib export TCL_LIBRARY=$TCL_LIB:$USR_LIB # PATH XGRAPH=/home/akshay/ns-allinone-2.35/bin:/home/akshay/ns-allinone-2.35/tcl8.5.10/unix:/home/akshay/ns-allinone-2.35/tk8.5.10/unix #the above two lines beginning from xgraph and ending with unix should come on the same line NS=/home/akshay/ns-allinone-2.35/ns-2.35/ NAM=/home/akshay/ns-allinone-2.35/nam-1.15/ PATH=$PATH:$XGRAPH:$NS:$NAM
完成更改后,保存文件并重新启动系统。
6运行ns2
一旦系统重新启动,打开终端并使用以下命令启动ns2:
ns
如果安装正确,则终端如下图所示: