一. 所使用的软件
VMware Workstation Pro和Ubuntu 20.04的镜像 :
VMware Workstation Pro自己去官网下载,一搜就有。
Ubuntu的镜像:链接:link
Xshell和XFTP软件包官网可以下链接:link
Xshell和XFTP选择家庭/学校免费版,富哥的话当然可以去买咯。主要是为了方便linux和windows之间文件传输。
二. 安装步骤
1. VM安装和ubuntu安装。
20.04版本安装步骤基本和别的版本差不多。
2. xshell和xftp与linux连接并向linux传输文件
2.1 linux上的准备工作
(1)安装网络工具:
sudoapt install net-tools
(2)检查是否开启ssh server:
dpkg-l|grepssh
(3)安装server服务软件包:
sudoapt update
sudoapt install openssh-server
(4)打开ssh服务:
sudosystemctl enablessh
(5) 检查ssh服务运行状态(默认端口22)
sudosystemctl statusssh
(6)确保防火墙允许服务端口:
sudoufw allowssh
(7)查看IP地址:
ifconfig
2.2 windows上xshell和xftp
1,打开xshell,选择后来,选择新建会话。
在名称处输入查到的ip,点击确定,然后选中自己新建的,点击连接。
然后输入虚拟机的用户名-->确定--->输入虚拟机密码--->确定 (想以后方便可以把记住用户名、密码勾上)连接成功基本如图:
2,打开xftp,选择后来,然后新建会话,也是输入查到的ip
然后在windows那一侧找到自己所要传的文件,右键选择传输即可。
3. 安装ns3 3.37
3.1 安装所需的依赖
命令如下,亲测有效,照着输,安装ns3时基本没报错:
sudoapt installgit
sudoapt-get install g++python3 python3-dev pkg-config sqlite3 cmake
sudoapt-get install mercurial
sudoapt-get install qt5-default
sudoapt-get install autoconf cvs bzr unrar
sudoapt-get install gdb valgrind
sudoapt-get install gsl-bin libgsl-dev libgslcblas0
sudoapt-get install flex bison libfl-dev
sudoapt-get install g++-3.4 gcc-3.4
sudoapt-get install tcpdump
sudoapt-get install sqlite sqlite3 libsqlite3-dev
sudoapt-get install libgtk2.0-0 libgtk2.0-dev
sudoapt-get install libgtk-3-dev
sudoapt-get install libxml2 libxml2-dev
sudoapt-get install vtun lxc uml-utilities
sudoapt-get install uncrustify
sudoapt-get install doxygen graphviz imagemagick
sudoapt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
sudoapt-get install python3-sphinx dia
sudoapt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
sudoapt-get install libxml2 libxml2-dev libboost-all-dev
sudoapt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
3.2 ns 3.37
(1)关于安装包:
去官网下,下载链接如下:链接:link可在windows下(比较快),然后通过xshell和xftp传到linux。也可以直接在linux里下,可能会比较慢。
直接git。在ubuntu的终端里 git clone https://gitlab.com/nsnam/ns-3-dev.git ns-3.37
(2)安装:
mkdirtarballs
cdtarballs
cdns-allinone-3.37/ns-3.37
./ns3 configure--enable-examples--enable-tests
(注)从3.36版本开始要使用./ns3,3.35及以前的版本是使用./waf
[GalaxyerKw注:我使用ubuntu18.04版本,尝试配置安装3.35版本时问题百出,建议初次直接随教程尝试3.37版本。]
上面那条configure命令执行完正常应该是:
./ns3 build
./test.py
出现的所有都pass过了基本就安装成功了。可以运行一个脚本测试一下:
./ns3 run first
4. 加入sns3模块
(1)加入satellite module
$ cdns-3.37/contrib
$ gitclone https://github.com/sns3/sns3-satellite.git satellite
(2)traffic 和 magister-stats modules (也是在contrib目录下)
$ gitclone https://github.com/sns3/traffic.git traffic
$ gitclone https://github.com/sns3/stats.git magister-stats
(3)再次build:
$ cdns-3.37
$ ./ns3 clean
$ ./ns3 configure--build-profile=optimized--enable-examples--enable-tests
$ ./ns3 build
(4)下载定义模拟参考场景的数据:在ns-3.37/contrib/satellite下打开终端
$ gitsubmodule update--init--recursive
这个下载真的超级慢(最好科学一下)(5)
$ ./test.py--no-build
由ns3运行一些并行测试,基本都能pass
三. 可能会出现的问题及解决办法:
cmake: command not found
解决办法:先下载合适的cmake包,然后切换到相应目录下,比如cd cmake-版本然后进行编译安装:
./bootstrap--prefix=/usr--datadir=share/cmake--docdir=doc/cmake &&make
sudomakeinstall
检查是否正确:
cmake--version
C++: fatal error: Killed signal terminated program....
解决办法:创建swap分区最好切换到home目录下,我第一次时在ns3目录下直接弄还是会报错。①创建分区路径
sudomkdir-p/var/cache/swap/
②设置分区的大小bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB
sudoddif=/dev/zeroof=/var/cache/swap/swap0bs=64Mcount=64
③设置该目录权限
sudochmod0600/var/cache/swap/swap0
④创建SWAP文件
sudomkswap /var/cache/swap/swap0
⑤激活SWAP文件
sudoswapon /var/cache/swap/swap0
⑥ 查看SWAP信息是否正确
sudoswapon-s
虚拟机提醒空间不足:
(1)定期清理drag_and_drop目录(文件如果可以从windows直接拖拽到linux)(2)查找大文件并删除
du-h--max-depth=目录级别
(3)扩展硬盘空间,并将多个合并。但是在扩展完硬盘空间后,增加硬盘空间后,系统会提示还需要进入系统进行相应的扩展设置,进入Ubuntu中的Disks,会显示未分配的空间,将其分配给相邻的磁盘即可.
其他
C++ 中浮点数类型与整数类型之间可以进行比较操作。如果你在比较过程中遇到问题,可能是因为一些警告或隐式类型转换引起的。新的 C++ 标准可能会引入更严格的类型检查,从而导致一些警告或错误。解决:显式的类型转换,将浮点数转换为整数,然后再进行比较,这样可以避免潜在的警告或错误。
有关3.35版本的ns3——加入sns3模块(satellite,traffic,magister-states)时,不要像3.37版本一样放入contrib目录下,而是直接零散放在ns-3.35目录下。
在3.36及以后的版本里,运行程序都是./ns3 run <ns3-program>,在3.35及之前的版本里是./waf --run <ns3-program>
总结
鄙人水平有限,接触到的资源和查到的资料也有限,是基于自己的安装经历和查到的别人分享的方法所写,不可能涉及所有可能出现的error,因此只接受批评指正,不接受因错误解决方法不全而带来的不良言论,谢谢阅读。