ns3学习记录(三):LOG&命令行操作&Tracing

一、Logging Module

ns3的日志记录可以完全禁用,逐个组件启用,或全局启用,日志记录按照详细程度分为以下几个级别 :

  • LOG_ERROR—记录错误消息
  • LOG_WARN—记录警告消息
  • LOG_DEBUG—记录相对罕见、特别调试消息
  • LOG_INFO—记录关于程序进程的信息消息
  • LOG_FUNCTION—记录调用的每个函数
  • LOG_LOGIC—记录描述函数内逻辑流的消息
  • LOG_ALL—记录上面提到的所有内容

对于每个LOG_TYPE,还有一个LOG_LEVEL_TYPE,如果使用它,日志除了记录当前其级别之外,还记录它上面的所有级别。(因此,LOG_ERROR和LOG_LEVEL_ERROR以及LOG_ALL和LOG_LEVEL_ALL在功能上是等价的。)例如,启用LOG_INFO将只启用NS_LOG_INFO提供的消息,而启用LOG_LEVEL_INFO也将启用NS_LOG_DEBUG、NS_LOG_WARN和NS_LOG_ERROR宏提供的消息。

此外还提供了一个总是无条件显示的日志记录宏NS_LOG_UNCOND,无条件地记录关联的消息

可以使用 shell环境变量(NS_LOG) 或通过日志记录 系统函数调用 来设置日志记录。

以first.cc为例:

初始代码下打印如下图

	LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
    LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);

在这里插入图片描述
在终端输入命令修改LOG级别:

export NS_LOG=UdpEchoClientApplication=level_all

再次运行first.cc:
在这里插入图片描述
通过命令行输入 export NS_LOG=""关闭之前配置的level_all属性,此时任何LOG信息都不再打印。

在first.cc中加入一行打印输出信息NS_LOG_INFO("Creating Topology");

运行first.cc,终端中并没有打印:
在这里插入图片描述
为了查看新增的打印信息,必须启用级别大于等于NS_LOG_INFO的日志记录组件,在终端输入:

export NS_LOG=FirstScriptExample=info

运行first.cc,此时可以看到新增的信息“Creating Topology”被打印出来:

在这里插入图片描述

二、从命令行修改脚本参数

2.1 声明命令行解析器

在主函数main开始部分输入:

CommandLine cmd;
cmd.Parse(argc, argv);

2.2 命令行语句

见官方tutorial

如果删去first.cc中配置传输速率、信道时延的两行代码,点到点网络设备的数据速率将从5Mbps降低到默认的32768bps

三、Tracing system

通过在脚本文件中加入如下代码来获取打印输出

#include <iostream>

int main(){

    std::cout << "The value of x is " << 1 << std::endl;

}

3.1 ASCII Tracing

Simulator::Run();前加入后运行

AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll(ascii.CreateFileStream("myfirst.tr"));

在ns-3.39目录下输出一个文件myfirst.tr:
在这里插入图片描述
每行的开头有一个符号,这些符号的意义分别是:

+:在设备队列上发生了排队操作;
-:在设备队列上发生了退出队列操作;
d:删除了一个数据包,通常是因为队列已满;
r:网络设备接收到一个数据包。

通过上面的文件可以看到udp头8B,Ipv4头20B,ttl为64等等信息。

3.2 PCAP Tracing

ns-3设备助手也可用于创建.pcap格式的跟踪文件。首字母缩写词pcap(通常用小写字母)表示数据包捕获(packet capture),实际上是一个包含.pcap文件格式定义的API。

用于启用pcap跟踪的代码:pointToPoint.EnablePcapAll("myfirst");
加入此行代码并运行,将在ns-3.39目录下看到名为“myfirst-0-0.pcap”和“myfirst-1-0.pcap”的文件,它们分别是Node0-device0和Node1-device0的pcap跟踪记录。

使用tcpdump查看生成的两个文件,在命令行输入:

 tcpdump -nn -tt -r myfirst-0-0.pcap

在这里插入图片描述

也可以在Wireshark中打开.pcap文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值