NS3入门与安装

可以参考的资料

网络仿真软件的比较
http://yangfei1.blog.51cto.com/1471532/295103

ns2,ns3 快速入门,有什么网站资料?
https://www.zhihu.com/question/21124989
http://blog.csdn.net/barcodegun/article/details/6899106

NS3_Tutorial 中文版
第一、二章 http://yangfei1.blog.51cto.com/1471532/368585
第三章 http://yangfei1.blog.51cto.com/1471532/368586
第三章(续) http://yangfei1.blog.51cto.com/1471532/368587
第四章 http://yangfei1.blog.51cto.com/1471532/368589
第五章 http://yangfei1.blog.51cto.com/1471532/368594

NS3仿真Bitcoin
https://github.com/arthurgervais/Bitcoin-Simulator

NS3学习视频 (英文)
https://www.youtube.com/watch?v=T8NwCPROYYA&list=PLRAV69dS1uWQEbcHnKbLldvzrjdOcOIdY

学习NS3的基础

  • Linux基础:可以在虚拟机里搭建Ubuntu
  • 编程基础
  • 网络基础

安装NS3

1 安装库

  • 首先更新源,很重要,不进行这一步可能会导致后面没办法安装所有的库
sudo apt-get update

然后开始安装,大概1个G要下载不少时间

sudo apt-get install gcc g++ python python-dev mercurial bzr gdb valgrind gsl-bin libgsl0-dev libgsl0ldbl flex bison libfl-dev tcpdump sqlite sqlite3 libsqlite3-dev libxml2 libxml2-dev libgtk2.0-0 libgtk2.0-dev vtun lxc uncrustify doxygen graphviz imagemagick texlive texlive-extra-utils texlive-latex-extra texlive-generic-extra texlive-generic-recommended texi2html python-sphinx dia python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev python-pygccxml libboost-signals-dev libboost-filesystem-dev openmpi-bin openmpi-doc libopenmpi-dev

对上面插件的解释

  • C++和python安装,必装
    sudo apt-get install gcc g++ python
    sudo apt-get install gcc g++ python python-dev
  • NS3代码维护使用的源码版本控制管理系统
    sudo apt-get install mercurial
  • 运行python绑定ns-3-dev需要bazaar这个组件
    sudo apt-get install bzr
  • 调试工具
    sudo apt-get install gdb valgrind
  • 支持更多精确WIFI模块的GNU Scientific Library (GSL)
    sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl
  • 仿真必需的词法分析器和语法分析生成器,必装
    sudo apt-get install flex bison libfl-dev
  • 一些Network Simulation Cradle (nsc) stacks需要gcc-3.4
    sudo apt-get install g++-3.4 gcc-3.4
  • 读取pcap的packet traces,即包嗅探器
    sudo apt-get install tcpdump
  • 支持统计特性的数据库软件
    sudo apt-get install sqlite sqlite3 libsqlite3-dev
  • xml的配置存储软件(requires libxml2 >= version 2.7)
    sudo apt-get install libxml2 libxml2-dev
  • 基于GTK的配置系统
    sudo apt-get install libgtk2.0-0 libgtk2.0-dev
  • 在虚拟机and ns-3上测试
    sudo apt-get install vtun lxc
  • 支持utils/check-style.py 代码风格检查程序
    sudo apt-get install uncrustify
  • 文档生成器,从源代码中生成说明文档(很大,我没有装)
    sudo apt-get install doxygen graphviz imagemagick
    sudo apt-get install texlive texlive-extra-utils texlive-latex-extra
  • The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia:
    sudo apt-get install python-sphinx dia
  • Note: Sphinx version >= 1.12 required for ns-3.15. To check your version, type “sphinx-build”. To fetch this package alone, outside of the Ubuntu package system, try “sudo easy_install -U Sphinx”.
  • Gustavo’s ns-3-pyviz的可视化软件(没装)
    sudo apt-get install python-pygraphviz python-kiwi python- - pygoocanvas libgoocanvas-dev
  • 支持openflow 模块(requires some boost libraries)
    sudo apt-get install libboost-signals-dev libboost-filesystem-dev
  • 支持基于 MPI的分布式仿真
    sudo apt-get install openmpi*

2 安装NS3

使用tarball下载ns-3比使用Mercurail下载ns-3要简单一些,因为需要下载的各个部分都已经预先被打包在一个压缩包中了,一开始用xzvf解压出错,就用了xjf

mkdir tarballs
cd tarballs
wget http://www.nsnam.org/release/ns-allinone-3.17.tar.bz2
tar xjf ns-allinone-3.17.tar.bz2

3 编译NS3

  • 用build.py编译
cd ns-allinone-3.17
./build.py  (会很久)
cd ns-3.17
./waf distclean (清除整个build目录)
./waf configure --enable-examples --enable-tests  (开启例子及帮助)
./waf build   (会很久)

4 测试

./test.py

或者通过运行“./test.py -c core”脚本进行ns-3软件包单元测试,

./test.py -c core

如果看到最后面有类似这样的信息,说明ns-3软件包正确编译了。

47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)

5 运行程序

  • 如果要运行程序的话,必须在 /scratch 目录中 (example ../scratch/test.cc)
./waf --run scratch/test

6 安装完成

安装synaptic

  • Ubuntn下用来管理安装软件的软件,Ubuntu已经默认安装了
sudo apt-get install synaptic
  • 安装完成后,就可以通过下列命令来运行synaptic
sudo synaptic
  • 操作
按“重新加载”(Reload)更新最新的软件资料。
按“搜寻”(Search) 搜寻软件。
选择想安装的套件,按鼠标右键选择“标记为安装”(Mark for Installation)。
按“套用”(Apply)安装/升级选择好的套件。
安装完成

你可能感兴趣的:(网络)