ns-3环境搭建

在这里插入图片描述

1. ns3概述


1.1 ns3

​ ns-3(network simular)是一款由C++语言编写的开源项目,主要运行的平台是GUN/Linux。ns-3主要用于模拟计算机网络。它可以在一台计算机上模拟物理世界中各种类型和规模的网络结构。用户需要经过下载源代码、编译源代码、编写仿真脚本、运行模拟脚本4个基本步骤。ns-3提供各种用于网络模拟的应用程序接口,用户在模拟脚本中调用或者修改这些API构建自己的虚拟网络结构。

ns-3支持的网络协议如下:

应用层分组产生器、应用层协议(ping)
传输层TCP、UDP
网络层IPv4、IPv6、ICMPv6、路由协议
链路层及物理层无线:LTE、WiFi、车载网、水下通信网 有线:点对点网络、CSMA网络
1.2 ns3相关学习资料

ns-3 tutorial: ns-3的基本概念和使用方法。

ns-3manual: 深入讲解ns-3的架构、设计原理、和ns-3核心模块的主要技术细节。

Module library: 由各个模块的开发者编写而成的文档,分别讲解各个模块的背景知识、设计架构以及使用方法。适合在编写某一模块的脚本或二次开发时使用。

Doxygen:从源代码中生成的在线文档。用户可以在Doxygen网页中浏览源代码、查询ns-3中的C++类、函数和变量的定义,了解类与类之间的继承关系等程序细节信息。Doxygen在编写模拟脚本和进行扩展开发的过程中非常有用。

2.ns3环境搭建


  • 环境
    Ubuntu16.04以上(不同的Ubuntu版本会导致g++编译器版本不同,存在细小的差异)
    g++ 编译器(ubuntu16.04中g++版本为:g++ 5.4.0)
    git
    注:Ubuntu系统可以选择在VM虚拟机安装。g++、git是Ubuntu系统自带的无需另行安装。

  • 下载
    本项目选择ns-3版本为3.34。(ns-3.34于2021年7月14日发布。)

$ cd
$ mkdir workspace
$ cd workspace
$ wget https://www.nsnam.org/release/ns-allinone-3.34.tar.bz2

在这里插入图片描述

$ tar xjf ns-allinone-3.34.tar.bz2

在这里插入图片描述

  • 编译
$ cd ns-allinone-3.34
$ ./build.py --enable-examples --enable-tests

在这里插入图片描述

**注:**ns3中build是利用waf实现的,这里是利用自带的python脚本–build.py执行waf的。如果使用ns-3进行更高级的配置和工作通常会涉及到使用本机ns-3构建系统Waf。ns-3-allinone目录下的build.py脚本一般只在首次编译ns-3源代码时使用。后续的编译和运行脚本等操作都需要在ns-3.34目录下完成.

waf 编译过程:

$./waf configure     #对ns-3项目进行配置

waf配置选项:

选项名含义
–enable-example编译时包含如右目录中的示例脚本:ns-3.34/examples/,ns-3.34/src/<模块名>/test
–enable-test编译时包含如右目录中的测试脚本:ns-3.34/src/<模块名>/test
–enable-profile修改编译模式:debug 或者 optimized

注:

在默认情况下,"./waf"在编译时不包括示例脚本和测试脚本,采用的编译模式是debug。

debug 和 optimized 的区别

NS_LOG和NS_ASSERT只有在debug模式下才起作用。eg: hello-simulator.cc中的"NS_LOG_NUCODE(“Hello Simulator”);"语句只有在debug模式才会打印信息。

推荐的做法是在debug模式适用于调试脚本或开发新协议时使用。optimized模式适用于大量测试时开启,以节省开销。

  • 运行
$ cd ns-3.34
$ ./waf --run scratch-simulator.cc

在这里插入图片描述

  • 调试
    代码调试工具选择vscode。
    vscode 安装调试环境:
    第一步:在Ubuntu安装vscode。
    第二步:在scr同级目录下添加vscode调试配置文件–.vscode .vscode下载地址

    在这里插入图片描述

    第三步:开始调试,这里以调试first.cc为例。

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值