linux ns3配置环境,Ubuntu下的NS3安装与入门

NS3的开发旨在为网络研究和教育提供开放,可扩展的网络仿真平台。简而言之,NS3提供了分组数据网络如何工作和执行的模型,并为用户提供了进行模拟实验的模拟引擎。使用ns-3的一些原因包括进行更难或不可能用真实系统执行的研究,在高度可控的,可重现的环境中研究系统行为,以及了解网络如何工作。用户将注意到NS3中的可用模型集侧重于建模Internet协议和网络的工作方式,但NS3不仅限于Internet系统;一些用户正在使用ns-3来建模非基于互联网的系统。

官方提供了相应的文档https://www.nsnam.org/ns-3-28/documentation/

7aa7f3955233

官方文档

安装NS3

1、安装依赖库

在安装NS3前需要安装一些依赖库,在安装库之前可以先更新一下apt

sudo apt-get update

安装依赖库

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 gdb valgrind   调试工具

sudo apt-get install gsl-bin libgsl-dev libgsl23   支持更多精确WIFI模块的GNU Scientific Library (GSL)

sudo apt-get install flex bison libfl-dev  仿真必需的词法分析器和语法分析生成器

sudo apt-get install g++-3.4 gcc-3.4  Network Simulation Cradle (nsc) stacks需要gcc-3.4

sudo apt-get install tcpdump   读取pcap的packet traces

sudo apt-get install sqlite sqlite3 libsqlite3-dev   支持统计特性的数据库软件

sudo apt-get install libxml2 libxml2-dev   xml的配置存储软件

sudo apt-get install libgtk2.0-0 libgtk2.0-dev   基于GTK的配置系统

sudo apt-get install vtun lxc   在虚拟机and ns-3上测试

sudo apt-get install uncrustify   支持utils/check-style.py 代码风格检查程序

sudo apt-get install doxygen graphviz imagemagick   文档生成器

sudo apt-get install texlive texlive-extra-utils texlive-latex-extra

sudo apt-get install python-sphinx dia

sudo apt-get install python-pygraphviz python-kiwi python- - pygoocanvas libgoocanvas-dev   Gustavo’s ns-3-pyviz的可视化软件

sudo apt-get install libboost-signals-dev libboost-filesystem-dev   支持openflow 模块

sudo apt-get install openmpi*   支持基于 MPI的分布式仿真

2、安装NS3

NS3可通过Tarballs和Bake两种方式进行安装,以下将以Tarballs为例:创建Tarballs目录、进入目录、下载压缩包、解压

mkdir tarballs

cd tarballs

wget http://www.nsnam.org/release/ns-allinone-3.28.tar.bz2

tar xjf ns-allinone-3.28.tar.bz2

解压完成以后目录如图所示:

7aa7f3955233

NS3目录

3、编译NS3

cd ns-allinone-3.28

./build.py

cd ns-3.28

./waf distclean (清除整个build目录)

./waf configure --build-profile=debug --enable-examples --enable-tests(打开debug并开启例子及帮助)

./waf build

7aa7f3955233

编译

4、测试

可通过运行./test.py -c core来进行测试

7aa7f3955233

测试

7aa7f3955233

测试

5、运行hello-simulator

hello-simulator相当于hello world程序

通过输入./waf --run hello-simulator运行

7aa7f3955233

运行结果

6、ERROR

6.1如果看不到输出

如果看到Waf消息指示构建已成功完成,但未看到“Hello Simulator”输出,则可能是在Building with Waf部分中将构建模式切换为优化,但错过了更改回调试模式。 如果未看到“Hello Simulator”输出,请键入以下内容:

$ ./waf configure --build-profile=debug --enable-examples --enable-tests

6.2如果遇见program 'hello-simulator' not found的错误

7aa7f3955233

错误截图

原因可能是没有启用示例,运行命令./waf configure --enable-examples --enable-tests

7aa7f3955233

启用示例

再次运行hello-simulator时会进行build,并输出结果。

7aa7f3955233

运行时需要build的情况

在接下来的章节中需要进行代码的编写,在此推荐使用VS Code来作为编写代码的IDE。具体的在Ubuntu上的安装方法,请参见VS Code安装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龙芯3A5000完成流片 同主频性能追平AMD Zen1

前不久,龙芯3A5000完成流片,该CPU基于龙芯自主定义指令集LoongArch。据小道消息,SPEC06测试定点26分(base 2.5Ghz)。这个成绩已经达到预期指标,而且经过进一步优化,SPEC06成绩还有进一步优化的…

Funambol DM 安装过程

Funambol DM 安装过程 Funambol安装过程包括了 Java环境安装 ,Mysql安装 ,Jboss安装和 Funambol DM的安装 .一 : Java环境安装 1: Java现在使用的版本是 :jdk-1_5_0-windows-i586.exe . 2: 安装完毕 ,请在 windows系统下设置环境变量 JAVA_HOME{jdk的安装目录 } 如 : J…

熬夜族又一噩耗:“早死”风险更高!

根据美国西北大学范伯格医学院和英国萨里大学最近的一项研究,相比于早睡早起的人(百灵鸟一般),晚上不睡、早晨不起,或起床困难的“夜猫子”们,“早死”的风险更高。这项基于英国生物库中将近50万人样本的研…

Linux中append函数的用法,linux C代码 open函数参数:O_APPEND问题求助

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼没有截图,直接上代码吧。原代码是这样的:#include#include#include#include#includeint main(){int fd-1;ssize_t size-1;off_t offset-1;char buf1[]"0124553";char buf2[]"dsfafads";…

iNeuOS工业互联平台,生产过程业务联动控制

1. 概述工业物联网也好、工业互联网也好或是其他生产系统,反向控制始终无法回避。搞工业最直接、最体现效果的两个方面是采集各种数据和生产过程业务控制,所谓大数据预测和分析,那是仁者见仁、智者见智,下一篇文章我们会专业来讨…

t-sql里Linked server跨数据库查询

set ANSI_NULLS ON set QUOTED_IDENTIFIER ONgoALTER procedure [dbo].[updateData] as/*--必须先创建一个LinkedServerEXEC sp_addlinkedserverserverlyg,--被访问的服务器别名 srvproduct,providerSQLOLEDB,datasrclyg --要访问的服务器*/--登录上一步建好的服务器&#x…

linux防火墙开放所有端口命令,linux centos7 防火墙及端口开放相关命令

一、防火墙相关命令1、查看防火墙状态 : systemctl status firewalld.service注:active是绿的running表示防火墙开启2、关闭防火墙 :systemctl stop firewalld.service3、开机禁用防火墙自启命令 :systemctl disable firewalld.se…

如何使用 BenchmarkDotNet 对 C# 代码进行基准测试

BenchmarkDotNet 是一个轻量级,开源的,强大的 .NET 工具包,它可以将你的方法转化为基准并跟踪这些方法,最后对这些方法的性能提供一些测试报告,使用 BenchmarkDotNet 玩 基准测试 是非常容易的。你可以利用 BenchmarkD…

MSSQL 2008 企业管理器打开命令

MSSQL 2008 Server做了一些调整,取数据是按照200或者1000条查看,对权限控制的更加严格,已经去掉可以添加用户的那个存储过程。同时在启动实例时也加强权限的限制,如果没有权限那么将无法打开。 在MSSQL 2008 Server中如果想通过命…

笑说设计模式-小白逃课被点名

简介 工厂模式(Factory Pattern)是最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,而是通过使用一个共同的接口来…

原来论文排版还有这样的学问

论文的重要加分点除了内容,还有它小天最近经常遇到小伙伴的诉苦:“我的毕业论文提交一次就被导师批评一次,内容不行就算了,格式也有问题!改论文改到绝望”“期刊的版式要求不是统一的,为了多投几家&#xf…

红帽linux5安装Oracle 9i enterprise

红帽linux5安装Oracle 9i enterprise 本文转自:http://database.51cto.com/art/201004/194082.htm摘要:如果你在红帽Linux5上安装Oracle 9i enterprise遇到了问题,不防看一看下面的文章,希望能帮你解决有关Oracle9i实际应用的问题…

powerpc-linux-gcc,关于powerpc-linux-uclibc-gcc的使用

做了点东西需要使用linux下ldap库,我装的linux上已经有ldap库,在程序中#include 了。用gcc编译时:gcc filename.c,会报找不到ldap.h文件以及ldap.h文件中相关函数的错误但是使用gcc filename.c -lldap,就能够编译通过了。后来要求…

神经网络告诉我,谁是世界上最「美」的人?

「魔镜魔镜告诉我,谁是世界上最美的女人?」这句伴随童年的话也有现实版哦~神经网络可以预测人脸颜值,这方面也出现了不少研究。今年年初华南理工大学的研究者发布论文,并公开了数据集 SCUT-FBP5500。本文作者 Dima Shu…

开源推荐:.Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统

ASP.NET Core是一个由微软创建的,用于构建Web应用程序,API,微服务的Web框架。它使用常见的模式,例如MVC(模型-视图-控制器),依赖注入,和一个由中间件构成它基于Apache 2.0许可开放源…

android中文api(85)——HorizontalScrollView

前言 本章内容是android.widget.HorizontalScrollView,译为"横向滚动条",版本为Android 2.3 r1,翻译来自"Tina",感谢"Tina"为大家带来精彩的翻译稿 !期待你加入Android API 中文的翻译&…

linux 连接wifi wpa2,RHEL等Linux系统使用wpa_supplicant以WPA-PSK/WPA2-PSK连接WIFI

以RHEL6.4为实验对象:1、安装 wpa_supplicant.yum install wpa_supplicant2、编辑 wpa_supplicant 配置文件vim /etc/sysconfig/wpa_supplicant以下格式:# Use the flag "-i" before each of your interfaces, like so:# INTERFACES"-ie…

如何在 C# 中使用只读的 Collections

集合 表示一组可用于获取和存储的对象,在 C# 中提供了两种类型的集合。普通集合泛型集合前者存在于 System.Collections 命名空间下,属类型不安全的,后者存在于 System.Collections.Generic 命名空间下,属类型安全的。不可变对象 …

操作系统和数据库的知识梳理(思维导图)

使用思维导图工具 freemind 提供下载 源码文件和 Java网页版 http://files.cnblogs.com/facingwaller/osanddb.rar

令人难以理解的软件工程师:几千行代码能搞定的为什么要写几万行?

一我们公司的 Windows 版软体已经有十多年的历史,经过历代工程师的整治之后,内容已经凌乱不堪。过去三个月,我找时间自己重写了整个主程序。原本数万行的程序,被我重写的只剩下数千行,功能不变,效能更好&am…