ns3学习笔记(一):资源汇总、可视化、调试

本文介绍了NS-3网络模拟器中的资源获取途径、可视化工具Pyviz和NetAnim的安装与使用,以及Logging日志模块和gdb调试器的使用方法,帮助用户优化开发过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、资源汇总

官方教程(包括Manual\Documents\Wiki等): ns-3 Tutorial — Tutorial
官方论坛:https://groups.google.com/g/ns-3-users
you。tube。有很多视频教程

二、可视化

2.1 Pyviz

2.1.1安装

具体过程略了,在编译界面的模块名叫: visualizer

2.1.2 使用
#在源码里面检查有无以下命令行参数代码(在建立节点之前)
CommandLine cmd
cmd.Parse (argc,argv);

#在正常的运行指令后面加上 --vis
sudo ./waf --run third --vis

#如果是运行.py文件,一般会报错: VisualSimulatorImpl not found
#在文件头加上 import
import ns.visualizer

#.py运行指令
sudo ./waf shell python scratch/demo0.py
sudo ./waf --pyrun scratch/demo0.py --vis

出现图形化界面以后,单击 Simulate 开始仿真, 再单击停止
PS.
1.Pyviz使用比较方便,指令很简单,但是因为需要python依赖,安装的时候可能会遇到很多奇怪的问题,反正我之前在远程服务器上死活配置不出来。。。
2.Pyviz还有一个问题,可视化的主要是通信交互的进程,可以查看节点的routing table,但是页面缩放不是很友好,也有可能是我还没有搞清楚怎么调整。。。

2.2 NetAnim

2.2.1 安装

一般都包含在ns3安装包里面,能看到和ns3.35并列的一个文件夹 netanim-3.108
在终端打开这个文件夹,输入以下指令构建模块:

make clean
qmake NetAnim.pro
make

全部结束就能在文件夹里面看见生成了模块 NetAnim

2.2.2 使用

需要先生成 .xml文件,在现有.cc文件上添加

#头文件
#include "ns3/netanim-module.h"  

#在仿真开始之前,
AnimationInterface anim("third.xml"); 
Simulator::Run ();

生成.xml文件之后,需要退回到netanim-3.108文件夹打开NetAnim

cd ../
cd netanim-3.108
./NetAnim

注意大小写,然后会弹出NetAnim的图形化界面,找到刚刚生成的xml文件即可,一般就在ns-3.35文件夹下

PS. NetAnim的运行感觉要麻烦一点,但是可视化部分展示的东西更详细,界面也更舒服,可惜不适用于.py文件

三、调试

3.1 Logging日志模块

以下内容均来源于Manual

  1. 可以尝试src/core/example里的例程log-example.cc,基本包含了所有的NS_LOG环境变量
  2. 运行程序的时候有两种开启log输出的方式,常用第二种
    #1.设置环境变量
    $ NS_LOG="*" ./ns3 run first
    # 或者选择某个特定的模块
    $ NS_LOG="Ipv4L3Protocol" ./ns3 run first
    
    #2. 在程序中定义
    int
    main(int argc, char *argv[])
    {
      LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
      LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);
      ...
    
  3. log输出的信息分类及等级

        每一类信息有对应的优先级顺序:

        通过在运行指令里面加入参数可以控制输出内容:

3.2 gdb

sudo ./waf --run scratch/third --command-template="gdb %s"

进入gdb环境以后,常用指令如下:
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值