从0开始搭建ns3环境以及NetAnim简单使用

news2025/1/9 19:56:06

一、环境准备

ns3是基于GNU/Linux平台使用C++开发的工具软件,在windows系统中安装使用ns3环境,可以使用虚拟机VMware并安装ubuntu系统来实现,现将本教程所用到的虚拟机和系统镜像放到网盘提供下载

名称链接提取码
VMware Workstation 17 Prohttps://pan.baidu.com/s/1IEPZdvGGUYJ4-oHW5AHaKwm3gm
ubuntu-18.04.6-desktop-amd64https://pan.baidu.com/s/1UEueh6bXdQ9LXRTZdMEEBAaopg

虚拟机以及Ubuntu系统安装过程请参考以下文章:

还没写,可以先看别人的

进入系统后,先将系统的源改为清华源或者是阿里,方便后续下载各种依赖

Ubuntu系统菜单→软件和更新→下载自

在这里插入图片描述

二、安装依赖

在Ubuntu系统桌面右键,选择打开终端

1、更新源

sudo apt-get update

2、安装软件包

  • 注意:下面的指令有两种方式来执行,软件包安装需要花大量的时间,你可以一条一条的在终端中执行,或者是将安装命令写入shell脚本,并加入自动确认参数(-y),然后执行脚本文件,不用一直守在那里
sudo apt-get install gcc g++ python python-dev
sudo apt-get install mercurial
sudo apt-get install bzr
sudo apt-get install gdb valgrind
sudo apt-get install gsl-bin libgsl-dev libgsl23
sudo apt-get install flex bison libfl-dev
sudo apt-get install g++-3.4 gcc-3.4
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install vtun lxc
sudo apt-get install uncrustify
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
apt-get install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3
sudo apt-get install libboost-signals-dev libboost-filesystem-dev
sudo apt-get install openmpi*

三、安装ns3

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

有关ubuntu下常见软件安装方法可参考文章:https://blog.csdn.net/java211/article/details/3044103

在Ubuntu桌面右键打开终端,然后按顺序执行以下指令

1、创建Tarballs目录
mkdir tarballs

2、进入目录
cd tarballs

3、下载压缩包
wget http://www.nsnam.org/release/ns-allinone-3.28.tar.bz2

4、解压
tar xjf ns-allinone-3.28.tar.bz2

四、编译ns3

安装完成后,在系统的主文件夹里会有刚才创建的名为tarballs的文件夹,我们的ns3就是安装在这里面,进入到解压后的ns3主文件夹,我们来到这里是因为需要使用build.py来编译ns3
在这里插入图片描述
在空白处右键,打开终端,然后执行以下命令

./build.py 

编译成功后会显示如下,这里耗费的时间会长一点,感觉时间长的话不用担心是不是出了问题
在这里插入图片描述
编译完成后我们再使用waf重新配置和编译ns3系统,虽然这不是必须的,但是一旦工程已经编译过,就不能再使用build.py脚本了,这时如果想改变原有ns3的配置就需要使用交互式waf命令进行重新配置和编译,步骤如下

1、进入到ns-3.28文件夹
cd ns-3.28

2、清除先前配置编译
./waf distclean

3、重新配置ns3,优化编译包括例子和测试(默认的例子和测试是不编译的),然后系统会重新配置,编译系统会检查ns3以来的软件包是否安装
./waf configure --build-profile=debug --enable-examples --enable-tests

4、以上仅是配置ns3,正式编译使用下面的命令
./waf build

至此,ns3编译完成,接下来进行测试

五、测试

还是在ns-3.28这个文件夹下打开终端(或者从终端使用cd指令直接进入)
执行如下指令

test.py是Python编写的测试脚本,下面的命令是测试ns3是否编译正确的典型方法
测试结果最后一行现实的是总共测试和通过测试的脚本数目

./test.py -c core

在这里插入图片描述

六、运行脚本测试

下面通过运行ns3提供的示例,再次验证ns3是否正常安装,首先执行如下命令

./waf --run hello-simulator

显示如下则测试通过
在这里插入图片描述
至此,ns3环境安装成功,后续会更新Netanim的简单使用

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

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

相关文章

Docker镜像查看下载删除镜像文件的相关命令

1.镜像相关命令 本地查看有哪些镜像文件: docker images镜像的名称就是我们常见的一些软件,镜像相当于把软件和软件所需要的运行环境打包到一个镜像文件里面,将来在通过这个镜像文件创建出对应的容器,容器有了以后这些软件自动的…

system函数

函数作用 执行一个shell的命令 其实通过查看system函数的源码就会发现,system函数调用后会进行一次fork,然后就会在子进程中运行“execl("/bin/sh", "sh", "-c", command, (char *) 0);” 而“sh -c XXX” 这个命令&…

IC设计仿真云架构

对于IC仿真来说,最重要的是要安全、可维护、高性能的的HPC环境环境。 那么云上如何搭建起一套完整的IC仿真云环境呢? 这种架构应该长什么样子? 桌面虚拟化基础架构 将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够…

学习笔记整理-JS-04-流程控制语句

文章目录 一、条件语句1. if语句的基本使用2. if else if多条件分支3. if语句算法题4. switch语句5. 三元运算符 二、循环语句1. for循环语句2. for循环算法题3. while循环语句4. break和continue5. do while语句 三、初识算法1. 什么是算法2. 累加器和累乘器3. 穷举法4. 综合算…

python根据已有列计算其他列

根据已有列计算其他列 1、根据已有列新增列2、根据已有列修改其他列 读取数据源 import pandas as pd # 读取智能大师号码信息 path1 r../excelFile-j/flower.csv df_data pd.read_csv(path1) # df_data 内容1、根据已有列新增列 方式一:根据单列 df_data["…

Python遥感开发之分段读取和保存遥感数据

Python遥感开发之分段读取和保存遥感数据 1 分段读取数据2 实现分批读取数据以及进行计算3 实现分批保存成TIF文件(所有完整代码)4 分段TIF整合到一个TIF5 生成一个空白TIF(每个像元值为0的TIF) 前言:当遇到批量读取大…

DIP: Spectral Bias of DIP 频谱偏置解释DIP

On Measuring and Controlling the Spectral Bias of the Deep Image Prior 文章目录 On Measuring and Controlling the Spectral Bias of the Deep Image Prior1. 方法原理1.1 动机1.2 相关概念1.3 方法原理频带一致度量与网络退化谱偏移和网络结构的关系Lipschitz-controlle…

DCMM数据管理成熟度之数据治理-数据治理沟通

​01 标准原文 1 概述 数据治理沟通旨在确保组织内全部利益相关者都能及时了解相关政策、标准、流程、角色、职责、计划的最新情况,开展数据管理和应用相关的培训,掌握数据管理相关的知识和技能。数据治理沟通旨在建立与提升跨部门及部门内部数据管理能力,提升数据资产意识,…

读发布!设计与部署稳定的分布式系统(第2版)笔记31_版本问题

1. 在软件与外部环境之间的许多交汇点上,版本控制基本上处于混乱状态 1.1. 不应该为了更新自身系统的API,而让服务消费者被迫与你同时发布新版本 1.2. 多数服务新版本的发布应该具有兼容性 2. 分层的“约定”栈 2.1. 连接握手和持续时间 2.2. 请求组…

华为在ospf area 0单区域的情况下结合pbr对数据包的来回路径进行控制

配置思路: 两边去的包在R1上用mqc进行下一跳重定向 两边回程包在R4上用mqc进行下一跳重定向 最终让内网 192.168.10.0出去的数据包来回全走上面R-1-2-4 192.168.20.0出去的数据包来回全走 下面R1-3-4 R2和R3就是简单ospf配置和宣告,其它没有配置&#…

Python爬虫(十一)_案例:使用正则表达式的爬虫

本章将结合先前所学的爬虫和正则表达式知识,做一个简单的爬虫案例,更多内容请参考:Python学习指南 现在拥有了正则表达式这把神兵利器,我们就可以进行对爬取到的全部网页源代码进行筛选了。 下面我们一起尝试一下爬取内涵段子网站&#xff1…

《C语言深度解剖》.pdf

🐇 🔥博客主页: 云曦 📋系列专栏:深入理解C语言 💨吾生也有涯,而知也无涯 💛 感谢大家👍点赞 😋关注📝评论 C语言深度解剖.pdf 提取码:yunx

使用cloud-int部署nginx

参考 azure创建虚拟机,创建虚拟机注意入站端口规则开放80端口,高级中使用自定义数据,初始化虚拟机,安装nginx 连接CLI,验证是否安装成功 访问虚拟机IP查看是否部署成功 参考文档: https://learn.microsoft.com/zh-cn…

代码随想录算法训练营之JAVA|第二十八天|122. 买卖股票的最佳时机 II

今天是第28天刷leetcode,立个flag,打卡60天。 算法挑战链接 122. 买卖股票的最佳时机 IIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/ 第一想法 题目理解:找到一个升序的段,然后累加每一个升序的段头尾的…

ORCA优化器浅析——CXform base class for all transformations

CXform CXforml类作为所有transformation的基础类,其包含了pattern成员m_pexpr。主要是在exploration和implementation expression流程中使用,主要调用Transform函数。其还包含返回相关xforms的集合函数,比如PbsIndexJoinXforms等。 class …

Centos7多台服务器免密登录

准备四台服务器: docker0 docker1 docker2 docker3 在docker0服务器上生成公钥和私钥 [rootwww ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory /root/.ssh. Enter passp…

2023年03月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:字符长方形 给定一个字符,用它构造一个长为4个字符,宽为3个字符的长方形,可以参考样例输出。 时间限制:1000 内存限制:65536 输入 输入只有一行, 包含一个字符。 输出 该字符构成的长方形…

Mysql主从分离

一、前言 某个应用场景中,在操作数据库这部分,往往是数据库的读取往往大于数据库的写入,当读取数据达到数据库的瓶颈时,性能下滑,影响数据的写入,导致整个应用的不可用。为了解决这个问题,这时&…

java热插拔组件 SPI机制

文章目录 前言一、热插拔(spi机制)是什么?二、使用步骤1.利用java META-INF2.利用google spi3. 测试效果 总结 前言 在项目中,如果想要增加项目的灵活性,健壮性, 高逼格,那么你要对于java中的一些机制有了解; 例如: java中的spi机制spring中的spring.factories 等…

QtCreator ui设置界面 Layout 的属性 layoutStretch

layoutStretch 用于控制Layout在被用户进行缩放时。里面控件的缩放比例。如一个水平布局里面有两个控件 一个 QLineEdit 和 QPushButton。首先将两个控件的尺寸策列的水平策略都设置为Expanding。此时在将包含这两个控件的水平布局的 layoutStretch 进行如下设置。 运行程序就…