NS3安装与脚本说明文档
- 格式:doc
- 大小:450.00 KB
- 文档页数:12
一、简介1. 什么是NS-3?NS是一个离散事件驱动网络模拟器。
官方定义:(from )ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.ns-3 is intended as an eventual replacement for the popular ns-2 simulator. The project acronym “nsnam” derives historically from the concatenation of ns (network simulator) and nam (network animator).2. NS-3 vs NS-2NS-3虽然冠以一个“3”,但事实上跟它广泛流行的前任NS-2并非一脉相承,或者从使用角度上说,仅仅继承了一个名称而已。
NS-3基本上是一个新的模拟器,不支持NS-2的API。
NS-3是完全用C++编写的(也有可选的Python接口),而NS-2一部分模块使用C++而另一部分使用OTcl。
因而NS-3最大的特点就是脚本可以C++或Python语言,而在NS-2中,我们使用的是OTcl。
NS-3的功能仍旧在开发中,因此它远没有NS-2完善(当然NS-2的维护也在进行中)。
NS-3并不包含目前所有NS-2的功能,但它具有某些新的特性:正确的多网卡处理、IP寻址策略的使用、更详细的模块等等。
Latest stable release: (November 20, 2008)4. NS-3的一些名词解释POSIX:Portable Operating System Interface可移植的操作系统的接口一组操作系统API的协议/标准族,最开始为了Unix系统上的可移植性而开发的,也适用于其他操作系统。
1.Ns3 的安装:开发环境配置:sudo apt-get install gcc g++ python python-dev //C++和python安装,必装sudo apt-get install mercurial //NS3代码维护使用的源码版本控制管理系统sudo apt-get install bzr //运行python绑定ns-3-dev需要bazaar这个组件sudo apt-get install libgtk2.0-0 libgtk2.0-dev //基于GTK的配置系统sudo apt-get install gdb valgrind //调试工具sudo apt-get install doxygen graphviz imagemagick //文档生成器sudo apt-get install texlive texlive-latex-extra //文档生成器,从源代码中生成说明文档sudo apt-get install texinfo dia texlive-extra-utils texi2html //ns-3手册和tutorial编写查看工具sudo apt-get install flex bison //仿真必需的词法分析器和语法分析生成器,必装sudo apt-get install libgoocanvas-dev //部分移动场景仿真的可视化测试需要这个组件sudo apt-get install tcpdump //读取pcap的packet traces,即包嗅探器sudo apt-get install sqlite sqlite3 libsqlite3-dev //支持统计特性的数据库软件sudo apt-get install libxml2 //xml的配置存储软件sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas //Gustavo's ns-3-pyviz的可视化软件sudo apt-get install qt4-qmakesudo apt-get install qt4-dev-tools安装完成后:进入ns-allinone-3.16目录sudo ./build.py之后进入ns-allinone-3.16/ns-3.16sudo ./waf -check返回目录ns-allinone-3.16进入目录netanim-3.103sudo make cleansudo qmake NetAnim.prosudo make之后sudo ls可以看见绿色的NetAnim这个东西就成功了sudo ./NetAnim 打开仿真界面安装全部完成2.ns3仿真的运行ctrl+alt+t调出终端,进入ns-allinone-3.16目录,输入cd ns-3.16/ 进入ns-3.16文件夹输入cd examples/tutorial/ 进入examples里面的tutorial文件夹(里面有刚刚上手专用的实例,我们就用这个来调试)在tutorial目录下,输入cp ~/ns-allinone/ns-3.16/scratch/ ,将这个文件复制到ns-3.16的scratch文件夹里面. 具体位置由实际的自己的计算机的文件目录所定。
一、简介1. 什么是NS-3?NS是一个离散事件驱动网络模拟器。
官方定义:(from /)ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.ns-3 is intended as an eventual replacement for the popular ns-2 simulator. The project acronym “nsnam” derives historically from the concatenation of ns (network simulator) and nam (network animator).2. NS-3 vs NS-2NS-3虽然冠以一个“3”,但事实上跟它广泛流行的前任NS-2并非一脉相承,或者从使用角度上说,仅仅继承了一个名称而已。
NS-3基本上是一个新的模拟器,不支持NS-2的API。
NS-3是完全用C++编写的(也有可选的Python接口),而NS-2一部分模块使用C++而另一部分使用OTcl。
因而NS-3最大的特点就是脚本可以C++或Python语言,而在NS-2中,我们使用的是OTcl。
NS-3的功能仍旧在开发中,因此它远没有NS-2完善(当然NS-2的维护也在进行中)。
NS-3并不包含目前所有NS-2的功能,但它具有某些新的特性:正确的多网卡处理、IP寻址策略的使用、更详细的802.11模块等等。
Latest stable release: ns-3.2.1 (November 20, 2008)4. NS-3的一些名词解释POSIX:Portable Operating System Interface一组操作系统API的协议/标准族,最开始为了Unix系统上的可移植性而开发的,也适用于其他操作系统。
实验4---NS-3环境搭建与测试姓名:学号:一、目标任务任务一NS-3安装与使用。
通过运行“./test.py -c core”脚本进行ns-3软件包单元测试。
任务二测试运行实例程序。
分别运行 二、编程语言C++三、关键代码//头文件声明#include "ns3/core-module.h"#include "ns3/network-module.h"#include "ns3/Internet-module.h"#include "ns3/point-to-point-module.h"#include "ns3/applications-module.h"//namespace的声明using namespace ns3;//声明了一个叫FirstScriptExample的日志构件,通过引用FirstScriptExample这个名字的操作,//可以实现打开或者关闭控制台日志的输出。
NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");int main (int argc, char *argv[]){Time::SetResolution (Time::NS);//下面两行脚本是用来使两个日志组件生效的。
它们被内建在Echo Client 和Echo Server 应用中//设置日志为LOG_LEVEL_INFO级别LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);/********************网络拓扑部分************************///创建ns3节点对象,它们在仿真中代表计算机NodeContainer nodes; //声明了一个名为”nodes”的NodeContainernodes.Create (2); //调用了nodes对象的Create()方法创建了两个节点//构建一个点到点的连接//使用PointToPointHelper来配置和连接ns-3的PointToPointNetDevice和PointToPointChannel对象PointToPointHelper pointToPoint; //在栈中初始化了一个PointToPointHelper的对象PointToPointpointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps")); //创建一个PointToPointNetDevice对象时使用“5Mbps"来作为数据速率pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms")); //使用"2ms"(2毫秒)作为每一个被创建的点到点信道传输延时值//完成设备和信道的配置NetDeviceContainer devices;devices = pointToPoint.Install (nodes);//安装PointToPointHelper 对象和点到点网络设备的网络协议栈InternetStackHelper stack;stack.Install (nodes);//为节点上的设备设置IP地址//地址分配默认是从1开始并单调的增长,所以在这个基础上第一个分配的地址会是10.1.1.1,紧跟着是10.1.1.2等等Ipv4AddressHelper address; //声明了一个地址生成器对象address.SetBase ("10.1.1.0", "255.255.255.0");//使用Ipv4interface对象将一个IP地址同一个设备关联起来Ipv4InterfaceContainer interfaces = address.Assign (devices);/********************网络拓扑部分结束*********************//**********************应用程序部分*********************///在我们之前创建的节点上设置一个UDP 回显服务应用UdpEchoServerHelper echoServer (9); //声明了UdpEchoServerHelper,用来帮助创建真正应用的对象//ApplicationContainer的方法Start和Stop来设置时间点//使echo服务应用在1s时开始(生效)并在10s时停止(失效)ApplicationContainer serverApps = echoServer.Install (nodes.Get (1));serverApps.Start (Seconds (1.0));serverApps.Stop (Seconds (10.0));//使用UdpEchoClientHelper来管理UdpEchoClientApplicationecho,设置客户端的应用UdpEchoClientHelper echoClient (interfaces.GetAddress (1), 9);//创建了一个生成器并告诉它设置客户端的远端地址为服务器节点的IP地址。
一、简介1. 什么是NS-3?NS是一个离散事件驱动网络模拟器。
官方定义:(from /)ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.ns-3 is intended as an eventual replacement for the popular ns-2 simulator. The project acronym “nsnam” derives historically from the concatenation of ns (network simulator) and nam (network animator).2. NS-3 vs NS-2NS-3虽然冠以一个“3”,但事实上跟它广泛流行的前任NS-2并非一脉相承,或者从使用角度上说,仅仅继承了一个名称而已。
NS-3基本上是一个新的模拟器,不支持NS-2的API。
NS-3是完全用C++编写的(也有可选的Python接口),而NS-2一部分模块使用C++而另一部分使用 OTcl。
因而NS-3最大的特点就是脚本可以C++或Python语言,而在NS-2中,我们使用的是OTcl。
NS-3的功能仍旧在开发中,因此它远没有NS-2完善(当然NS-2的维护也在进行中)。
NS-3并不包含目前所有NS-2的功能,但它具有某些新的特性:正确的多网卡处理、IP寻址策略的使用、更详细的802.11模块等等。
Latest stable release: ns-3.2.1 (November 20, 2008)4. NS-3的一些名词解释POSIX:Portable Operating System Interface可移植的操作系统的接口一组操作系统API的协议/标准族,最开始为了Unix系统上的可移植性而开发的,也适用于其他操作系统。
1.Ns3 的安装:开发环境配置:sudo apt-get install gcc g++ python python-dev //C++和python安装,必装sudo apt-get install mercurial //NS3代码维护使用的源码版本控制管理系统sudo apt-get install bzr //运行python绑定ns-3-dev需要bazaar这个组件sudo apt-get install libgtk2.0-0 libgtk2.0-dev //基于GTK的配置系统sudo apt-get install gdb valgrind //调试工具sudo apt-get install doxygen graphviz imagemagick //文档生成器sudo apt-get install texlive texlive-latex-extra //文档生成器,从源代码中生成说明文档sudo apt-get install texinfo dia texlive-extra-utils texi2html //ns-3手册和tutorial编写查看工具sudo apt-get install flex bison //仿真必需的词法分析器和语法分析生成器,必装sudo apt-get install libgoocanvas-dev //部分移动场景仿真的可视化测试需要这个组件sudo apt-get install tcpdump //读取pcap的packet traces,即包嗅探器sudo apt-get install sqlite sqlite3 libsqlite3-dev //支持统计特性的数据库软件sudo apt-get install libxml2 //xml的配置存储软件sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas //Gustavo's ns-3-pyviz的可视化软件sudo apt-get install qt4-qmakesudo apt-get install qt4-dev-tools安装完成后:进入ns-allinone-3.16目录sudo ./build.py之后进入ns-allinone-3.16/ns-3.16sudo ./waf -check返回目录ns-allinone-3.16进入目录netanim-3.103sudo make cleansudo qmake NetAnim.prosudo make之后sudo ls可以看见绿色的NetAnim这个东西就成功了sudo ./NetAnim 打开仿真界面安装全部完成2.ns3仿真的运行ctrl+alt+t调出终端,进入ns-allinone-3.16目录,输入cd ns-3.16/ 进入ns-3.16文件夹输入 cd examples/tutorial/进入examples里面的tutorial文件夹(里面有刚刚上手专用的实例,我们就用这个来调试)在tutorial目录下,输入cp ~/ns-allinone/ns-3.16/scratch/ ,将这个文件复制到ns-3.16的scratch文件夹里面. 具体位置由实际的自己的计算机的文件目录所定。
最新GNS3-2.2.7模拟器完整安装及使用教程(关联Wireshark、xShell6和GNS3.VM.VMware.Workstation.2.2.7)-收藏一篇就够别在碰壁现阶段学习经常使用的路由交换设备主要来自于思科、华为和华三三家,当然还有中兴、锐捷、神州数码等厂商,这三家的设备操作配置大致类似,却又不尽相同。
因为实体设备通常都非常昂贵,购买设备学习也是不现实的。
所以我们通常会使用各厂商提供的模拟器来学习。
华为的模拟器是eNSP,华三的则是H3C Cloud Lib,思科则是大名鼎鼎的GNS3、Cisco Packet Tracer、WEB-IOU、EVE-NG。
今天笔者拿GNS3-2.2.7 目前最新版本来安装。
一、准备工具①GNS3-2.2.7-all-in-one.exe②GNS3.VM.VMware.Workstation.2.2.7.zip/对应版本的GNS3虚拟机③Cisco IOU-ISO.zip (L2/L3设备镜像)④IOS.rar (含从C1700 到C7200 的各种路由器bin 镜像)⑤Xshell6_wm.exe 或者SecureCRT⑥VMware-workstation-full-15.5.2-15785246.exe下载链接VMware-workstation-full-15.5.2-15785246链接:https:///s/1k3UKDc6NRbl8DtgCNxG4AA提取码:bolqGNS3链接:https:///s/1NDxi-l5i4YtP6nzzmpGebg提取码:te21二、GNS3软件介绍GNS3是一款具有图形化界面可以运行在多平台(包括Windows, Linux, and MacOS等)试的相关人士可以通过它来完成相关的实验模拟操作。
同时它也可以用于虚拟体验Cisco网三、软件安装3.1 安装GNS3-2.2.7-all-in-one.exe双击GNS3-2.2.7-all-in-one.exe(需要连网,安装需要依赖的组件,当然知道怎么安装组件的也可以不用连网)安装包含Wireshark点击I Agree点击Next选择Custom,注意Tools的选择注意:Tools:选择安装的位置安装过程中会弹出依赖的组件,点击Next点击I Agree点击Next点击Finish其他组件安装步骤一样输入邮箱点击Next选择No,下一步。
NS3之路----NS3的安装及第⼀个example例⼦NS3的安装以及第⼀个example1. 下载ns3(有多种⽅式,推荐第⼀种)l 使⽤tarball(关于tarball是什么,⾃⾏查阅),⾸先需要建⽴⼀个ns3的下载⽬录,假设为workspace。
再使⽤wget命令下载,以ns-3.23为例,如下:解压:tar xjf ns-allinone-3.23.tar.bz2⾄此,我们下载了ns-3.23,解压得到ns-allinone-3.23⽂件夹.PS:推荐使⽤tarball,使⽤bake的下载过程过于复杂。
l 使⽤Bake下载ns3,命令如下:可以对⽐看到使⽤tarball和bake的区别在于⼀个使⽤wget,另⼀个使⽤hg。
因为hg命令属于Mercurial(在预安装中所安装的),因此看到如下命令算正确。
.......45 files updated, 0 files merged, o files removed, 0 files unresoulved.这个时候下载的只是⼀个叫做bake的python脚本,在其下有bake⽂件夹。
⾥⾯有bake.py脚本。
⽽这只是⽤来下载ns3的脚本。
⾸先切换到bake⽂件夹,为其设置环境变量:export BAKE_HOME = 'pwd'export PATH = $PATH:$BAKE_HOME:$BAKE_HOME/build/binexport PYTHONPATH = $PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/bin接着就需要对bake进⾏配置(下载ns3配置)。
./bake.py configure -e ns-3.23如果上步通过,则检查相关组件是否⾜够进⾏下载⼯作,使⽤check来检查,如果缺少组件,则需要先进⾏安装。
./bake.py check如果检查通过,则会出现下列信息,否则,需要安装缺少的组件,相关安装过程使⽤apt-get install。
GNS3使用手册1.安装到上下载,点击下载页面中的:GNS3 v0.7RC1 all-in-one,此后页面将转至另一个: 。
直接点击该页面中的:direct link即可,该安装包中已包含Dynamips、Qemuwrapper、Pemu和WinPCAP 4.1.1。
安装时先自动安装WinPcap,如果之前已安装过WinPcap的早期版本,请根据提示自动删除它之后,再继续安装。
如果已知之前所安装的版本就是WinPCAP 4.1.1,可以在选择安装软件的列表中将其删除。
安装很快很容易,缺省安装目录为:C:\Program Files\GNS3,一般不必改变,桌面上会创建GNS3的图标。
2.使用前的配置使用前的配置很重要,必须清楚理解GNS3运行时使用的各种参数。
2.1 创建相关目录在运行GNS3之前,最好先创建将要使用的一系列目录。
首先,应先创建一个所有GNS3实验共享的目录,比如Mygns3NetLab。
然后在此目录下至少创建以下5个目录:➢IOS:此目录用于保存Cisco IOS镜像文件。
➢MyProject_dir:此目录用于保存你的GNS3实验文件。
➢Dynamips_Workdir:这是Dynamips的工作目录。
➢Capture_file:这是利用包捕获程序抓包时保存数据包的目录。
➢Qemuwrapper_Workdir:这是Qemu包装器的工作目录。
2.2 第一次运行时的配置第一次启动GNS3执行程序时,它会在目录C:\Documents andSettings\hero\Application Data中创建配置文件gns3.ini,并弹出一个配置向导窗口。
如图2.1所示:图2.1 GNS3的初始配置向导图中,步骤1是配置和测试Dynamips的目录,检查工作目录是否有效等。
步骤2是配置1个或更多IOS镜像文件。
在此窗口中单击按钮“1”,会出现首选项(Preferences)窗口,如图2.2所示。
切记,相关文件夹最好全部中文,要不会提示“can’t set up hyversion port 7200类似错误”GNS3 完全使用手册软件介绍:Cisco网络模拟器----GNS3 v0.6.1 all-in-one终端仿真程序-------SecureCRT V6.2.0.195GNS3 简介:GNS3是基于Dynamips的图形界面模拟器,可以为Cisco网络工程师、管理员、Cisco 证书考生提供近乎完美的实验环境。
GNS3 v0.6.1 all-in-one软件包包含了WinPCAP 4.0.2、Dynamips 0.2.8 RC2、Pemuwrapper 0.2.3、GNS3 0.6.1(注:不包含IOS)。
该软件提供了图形化的界面,用户可以之方便地搭建各种拓扑图,而且安装调试更加方便!GNS3项目是免费开源的自由的程序,适用于多种操作系统,包括Windows,Linux和MacOS X。
GNS3 v0.6.1现在发布,包括以下新功能和改善......用户可修改工作区大小;可以绘制矩形和椭圆;自动为接口名称创建标签;多重联线(不重叠);快照功能;Windows平台版提供了物理网卡列表直接绑定功能;所有工作区可以导出为图片(JPEG,PNG...);拓扑摘要面板增加“展开所有”和“缩小所有”功能(由beduev贡献);注解、矩形和椭圆可以旋转;在Windows平台下,用户可以通过命令行加载指定的gns3.ini配置文件,例如:gns3.exe --configdir新增塞尔维亚语言此外,本版本修改了之前的很多bug。
至于虚拟PC模拟功能,不能在这个版本囊括。
作者表示已经找到了在Dynamips直接整合的办法,请耐心等待。
安装过程:安装过程相当简单,直接“NEXT”就可以了,如下图所示:到此,GNS3的安装已全部完成。
设置向导:安装完成后,打开GNS3软件,第一次打开GNS3,会出现设置向导,设置具体步骤如下:1、设置“Dynamips”:在设置向导界面中,选择“STEP1”,如下图所示:此时,进入到“Perferences”设置,习惯用中文的,可在“General”----“Language”处,选上“简体中文(cn)”。
1.Ns3 的安装:开发环境配置:sudo apt-get install gcc g++ python python-dev //C++和python安装,必装sudo apt-get install mercurial //NS3代码维护使用的源码版本控制管理系统sudo apt-get install bzr //运行python绑定ns-3-dev需要bazaar这个组件sudo apt-get install libgtk2.0-0 libgtk2.0-dev //基于GTK的配置系统sudo apt-get install gdb valgrind //调试工具sudo apt-get install doxygen graphviz imagemagick //文档生成器sudo apt-get install texlive texlive-latex-extra //文档生成器,从源代码中生成说明文档sudo apt-get install texinfo dia texlive-extra-utils texi2html //ns-3手册和tutorial编写查看工具sudo apt-get install flex bison //仿真必需的词法分析器和语法分析生成器,必装sudo apt-get install libgoocanvas-dev //部分移动场景仿真的可视化测试需要这个组件sudo apt-get install tcpdump //读取pcap的packet traces,即包嗅探器sudo apt-get install sqlite sqlite3 libsqlite3-dev //支持统计特性的数据库软件sudo apt-get install libxml2 //xml的配置存储软件sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas //Gustavo's ns-3-pyviz的可视化软件sudo apt-get install qt4-qmakesudo apt-get install qt4-dev-tools安装完成后:进入ns-allinone-3.16目录sudo ./build.py之后进入ns-allinone-3.16/ns-3.16sudo ./waf -check返回目录ns-allinone-3.16进入目录netanim-3.103sudo make cleansudo qmake NetAnim.prosudo make之后sudo ls可以看见绿色的NetAnim这个东西就成功了sudo ./NetAnim 打开仿真界面安装全部完成2.ns3仿真的运行ctrl+alt+t调出终端,进入ns-allinone-3.16目录,输入cd ns-3.16/ 进入ns-3.16文件夹输入 cd examples/tutorial/进入examples里面的tutorial文件夹(里面有刚刚上手专用的实例,我们就用这个来调试)在tutorial目录下,输入cp ~/ns-allinone/ns-3.16/scratch/ ,将这个文件复制到ns-3.16的scratch文件夹里面. 具体位置由实际的自己的计算机的文件目录所定。
一、简介1. 什么是NS-3?NS是一个离散事件驱动网络模拟器。
官方定义:(from /)ns-3 is a discrete-event network simulator for Internet system s, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.ns-3 is intended as an eventual replacem ent for the popular ns-2 simulator. The project acronym “nsnam” derives historically from the concatenation of ns (network simulator) and nam (network animator).2. NS-3 vs NS-2NS-3虽然冠以一个“3”,但事实上跟它广泛流行的前任NS-2并非一脉相承,或者从使用角度上说,仅仅继承了一个名称而已。
NS-3基本上是一个新的模拟器,不支持NS-2的API。
NS-3是完全用C++编写的(也有可选的Python接口),而NS-2一部分模块使用C++而另一部分使用OTcl。
因而NS-3最大的特点就是脚本可以C++或Python语言,而在NS-2中,我们使用的是OTcl。
NS-3的功能仍旧在开发中,因此它远没有NS-2完善(当然NS-2的维护也在进行中)。
NS-3并不包含目前所有NS-2的功能,但它具有某些新的特性:正确的多网卡处理、IP寻址策略的使用、更详细的802.11模块等等。
Latest stable release: ns-3.2.1 (November 20, 2008)4. NS-3的一些名词解释POSIX:Portable Operating System Interface一组操作系统API的协议/标准族,最开始为了Unix系统上的可移植性而开发的,也适用于其他操作系统。
NS-3说明文档第一章主要内容:一、配置二、下载ns-3三、建立ns-3项目四、测试ns-3五、运行一个脚本一、配置本次的使用环境是linux/Ubuntu。
在安装ns-3之前,需要输入以下命令,进行事先的配置。
1、如果对C++组件的需求比较少,输入以下命令:sudo apt-get install gcc g++ python如果对python组件的需求比较少,输入以下命令:sudo apt-get install gcc g++ python python-dev以上命令二者选一。
之后的命令依次输入。
2、sudo apt-get install mercurial3、sudo apt-get install bzr4、sudo apt-get install gdb valgrind5、sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl6、sudo apt-get install flex bison libfl-dev7、sudo apt-get install g++-3.4 gcc-3.48、sudo apt-get install tcpdump9、sudo apt-get install sqlite sqlite3 libsqlite3-dev10、sudo apt-get install libxml2 libxml2-dev11、sudo apt-get install libgtk2.0-0 libgtk2.0-dev12、sudo apt-get install vtun lxc13、sudo apt-get install uncrustify14、sudo apt-get install doxygen graphviz imagemagick15、sudo apt-get install texlive texlive-extra-utils texlive-latex-extra16、sudo apt-get install python-sphinx dia17、sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev18、sudo apt-get install libboost-signals-dev libboost-filesystem-dev19、sudo apt-get install openmpi*二、下载ns-3最简单的下载方法是,在linux下输入以下命令:cdmkdir tarballscd tarballswget /releases/ns-allinone-3.13.tar.bz2tar xjf ns-allinone-3.13.tar.bz2如果进入虚拟机中ns-allinone-3.13文件夹中,可以看到以下文件:build.py ns-3.13/ pybindgen-0.15.0.795/ util.pyconstants.py nsc-0.5.2/ README那么ns-3已经下载成功,并解压完毕。
三、建立ns-3项目最简单的建立方法是使用build.py文件。
从根目录进入到包含有build.py文件的路径下。
输入以下命令:./build.py --enable-examples --enable-tests会经过一段时间,出现一大段安装代码,但最后会显示‘build’finished successfully(2m30.586s)。
于是就建立成功了。
四、测试ns-3从根目录下进入到ns-3.13下,运行./test.py文件。
使用如下命令:./test.py –c core这个命令通常被用来快速地验证ns-3是否被正确地安装。
如果出现以下报告,说明安装成功:92 of 92 tests passed(92 passed, 0 failed, 0 failed, 0 crashed, 0 valgrind errors)五、运行一个脚本从根目录进入到ns-3.13目录下,运行以下命令:./waf --run hello-simulator输出结果为Hello Simulator。
第二章主要内容:一、核心的概念二、点对点通信代码三、实际运行一、核心的概念1、Node 节点在ns-3中,用一个抽象的节点node来表示基本的计算设备。
在C++中,用一个类Node来定义节点的概念。
在仿真中,我们可以在节点上添加功能,例如应用、协议栈、具有驱动的外围设备等等。
2、Application应用在ns-3中,用一个抽象的概念application来仿真实际的用户进程产生的活动。
在C++中,用一个类Application来定义这个概念。
3、Channel信道在ns-3中,用一个抽象的概念channel来表示基本的通信子网,用来连接节点node。
在C++中,用一个类Channel来定义这个概念。
4、Net Device网络设备在ns-3中,net device这个抽象概念包括了硬件和它们相应的驱动程序。
在仿真中,net device 被“安装”于节点node中,通过信道channel与其它的节点node进行通信。
在C++中,用一个类NetDevice来定义这个概念。
5、Topology Helper构建一个通信网络,需要用大量的操作来完成将Net Devices连接到Nodes上,将Net Devices 与Channels连接起来,并分配IP地址等工作。
在ns-3中,可以通过Topology Helper将这些操作结合到一个统一的模块中,方便操作。
二、点对点通信代码(目的:熟悉操作流程)根据前面的安装步骤,可以在目录tarballs/ns-allinone-3.13/ns-3.13/examples/tutorial找到文件。
运行这个脚本可以仿真一个简单的点到点链路。
除去开始的声明,该程序由以下几个部分组成:1、Modules Include#include "ns3/core-module.h"#include "ns3/network-module.h"#include "ns3/internet-module.h"#include "ns3/point-to-point-module.h"#include "ns3/applications-module.h"上面每一个include files在tarballs/ns-allinone-3.13/ns-3.13/build/ns-3.13下。
对头文件不做过多的介绍。
2、NS-3 namespaceusing namespace ns3;在C++的命名空间里,ns-3的项目使用名称ns3。
在这个组中的声明在全域命名空间(global namespace)的范围之外,这样的目的是使得ns3的代码可以方便的与其它代码结合起来。
3、LoggingNS_LOG_COMPONENT_DEFINE ("FirstScriptExample");声明一个记录组件,可以调用它的名字“FirstScriptExample”来决定是否记录控制信息。
4、Main Functionintmain (int argc, char *argv[]){与C++一样,定义一个主函数。
Ns-3的脚本实际上就是一个C++ 程序。
LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO); LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);上面两行代码的目的是,建立两个记录组件分别安装在EchoClient和EchoServer应用中。
记录组件分为不同的等级,对应于记录信息的详尽程度。
这一点,在后文会提到。
在这里,记录的等级是INFO。
5、Topology HelpersNodeContainerNodeContainer nodes;nodes.Create (2);创建两个节点。
PointToPointHelperPointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));在实际中,外围的物理设备与信道有一种紧密相连的关系,例如无线网卡和无线信道。
所以,在ns-3中,使用可以利用同一个Topology Helper同时定义这两个对象,并将它们连接起来。
以上代码,将PointToPointNetDevice的属性DateRate设置为5Mbps,将PointToPointChannel 的属性Delay设置为2ms。
值得注意的是,在此时并没有真正地创建这两个对象,在这里实际上是事先的定义。
NetDeviceContainerNetDeviceContainer devices;devices = pointToPoint.Install (nodes);在上文中,我们已经定义了两个节点,并使用PointToPointHelper在两个节点之间定义了PointToPointNetDevice和PointToPointChannel。
在这里,才真正创建了以上两个对象。
PointToPointHelper中的函数Install以nodes为参数,用前文已经设置好的参数,为每个节点建立了一个PointToPointNetDevice,并且用PointToPointChannel连接起来。
InternetStackHelperInternetStackHelper stack;stack.Install (nodes);为每个节点安装互联网协议栈,例如TCP、UDP、IP等。
Ipv4AddressHelperIpv4AddressHelper address;address.SetBase ("10.1.1.0", "255.255.255.0");代码的目的是为节点里的设备分配IP地址。