本次实验为计网课程第三次实验
在做实验的过程中参考了网上的教程(本文内容不全,主要是自己踩过的一些坑,算是原文的一个补充吧,请搭配食用(●’◡’●))
原文链接 https://blog.csdn.net/do_best_/article/details/80000843
在实验过程中有层出不穷的小错误,断断续续弄了四五天才完成实验
故将所遇到的问题列出,以便参考,最后附上实验报告和修改后的实验代码
附:详细的实验过程及错误纠正,实验报告
更改后的实验代码(能够正常运行)
安装部分
在虚拟机上安装ns2
首先需要更新系统的安装包(这一步可以视情况选择性跳过)
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已经安装的包
sudo apt-get dist-upgrade #更新软件,升级系统
然后需要安装ns2运行时所需要的三个依赖包(这里需要注意的是第二条指令,有四个。在安装过程中可能会出现报错情况 ,可以选择性忽略)
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev
sudo apt-get install libxmu-dev libxmu-headers
由于ns下载的安装包存在错误,所以我们需要下载安装包并修改后才能进行编译安装
从网上下载好ns安装包
使用
tar xvfz ns-allinone-2.35.tar.gz
解压安装包(我在实验过程中先解压再放入虚拟机,结果不能够正常安装,没有过多地去寻找原因,尽量在ubantu里面解压吧)
需要修改ls文件,位置是:ns-2.35/linkstate/ls.h
第137行
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改为:void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
然后进入到ns的解压文件夹内执行 ./install
这里需要注意的是区分大小写,install并不是我们打开后所看到的INSTALL文件
如果提示权限不够,可以使用chmod 777来获取权限
具体方法
Chmod 777
./install
安装好之后需要记录一些信息以便于环境变量的配置(记得保存,后面会有用)
接下来便是环境变量的配置(最容易出错的地方)
首先需要退出当前目录,回到主文件夹下
然后打开bashrc文件配置环境变量(gedit或者是ctrl+H皆可,环境变量配错导致无法使用gedit时可以使用ctrl+H来修改文件)
最好是重新打开一个终端,不要再root下执行
首先尝试一下上面安装完成时所给出的信息
PATH="/home/lzx/ns-allinone-2.35/bin:/home/lzx/ns-allinone-2.35/tcl8.5.10/unix:/home/lzx/ns-allinone-2.35/tk8.5.10/unix"
LD_LIBRARY_PATH="/home/lzx/ns-allinone-2.35/otcl-1.14, /home/lzx/ns-allinone-2.35/lib"
TCL_LIBRARY="$TCL_LIBRARY:/home/lzx/ns-allinone-2.35/tcl8.5.10/library"
完成之后发现ns能够运行,但是无法使用基本的sudo gedit等权限
出现报错
命令 ‘sudo’ 可在 ‘/usr/bin/sudo’ 处找到 由于/usr/bin 不在PATH 环境变量中
出现这个错误可以在前面加上/usr/bin来解决
例如 /usr/bin sudo apt-get
然后改了一下
export NS_HOME=/home/lzx/ns-allinone-2.35
export PATH=$NS_HOME/bin:$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix:$PATH
export LD_LIBRARY_PATH=$NS_HOME/otcl-1.14:$NS_HOME/lib
export TCL_LIBRARY=$NS_HOME/tcl8.5.10/library:$NS_HOME/tk8.5.10/library
能够正常使用
至此ns已经安装好了
下面是安装gnuplot工具(绘图工具)
先按照实验指导书上输入命令会出现一下页面
我选择的是第一个,进行安装
接下来便是按照实验指导书进行实验
实验代码有点问题,改了之后的代码会上传到我的资源里面
其中在gnuplot> plot “cwnd-Reno.tr”with linespoints 1会报错
将1删掉即可
修改后的代码
https://download.csdn.net/download/lzxorls/10423313
实验报告
https://download.csdn.net/download/lzxorls/10423310