从零开始的ns3笔记(二):LOG功能和基础工具的学习

一、log功能

ns3的日志功能可以分为多个级别,全部禁用、逐个组件启用,或全局启用。按照详细程度从低到高分为:

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

对于每个LOG_TYPE,还有一个LOG_LEVEL_TYPE,如果使用它,日志除了记录当前其级别之外,还记录它上面的所有级别。此外还提供了NS_LOG_UNCOND,无条件地记录关联的消息

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

以first.cc为例,初始代码如下:(原始情况设置指令为info等级)

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

在命令行中修改日志等级指令为:(这里是修改为最高等级all)

export NS_LOG=UdpEchoClientApplication=level_all

打印结果如下:可以看到相比于之前多了许多条消息

 通过命令行输入 export NS_LOG=""关闭之前配置的level_all属性,此时任何LOG信息都不再打印。

二、跟踪系统Tracing system

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

#include <iostream>

int main(){

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

}

2.1 ASCII追踪

Simulator::Run();前加入下面的代码,创建myfirst文件。

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

在ns-3-dev目录下输出一个文件myfirst.tr:

 开头符号的意义分别是:

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

 2.2 PCAP 追踪

pcap是数据包捕获的缩写(packet capture),实际上是一个包含.pcap文件格式定义的API。

启用pcap跟踪的代码:

pointToPoint.EnablePcapAll("myfirst");

在文件中加入此行代码并运行,将在ns-3-dev目录下看到名为“myfirst-0-0.pcap”和“myfirst-1-0.pcap”的文件,它们分别是Node0-device0和Node1-device0的pcap跟踪记录。

2.2.1 TcpDump

TcpDump是对网络上的数据分组进行截获的分组分析工具。TcpDump可以将网络中传送的数据分组的”头“完全截获下来提供分析。它支持针对网络层,协议,主机,网络或端口的过滤,并提供and,or,not等逻辑语句来帮助去掉无用的信息。

使用tcpdump查看上述生成的文件里的myfirst-0-0,在命令行输入:

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

结果图为:

2.2.2 Wireshark

与TcpDump相比,Wireshark界面比较友好,功能也很强大。Wireshark是一个图形用户界面的网络分组封装分析软件,可以获取网络分组封装,并尽可能地显示最为详细的网络分组封装资料。

wireshark安装:

$ sudo apt-get install wireshark

wireshark使用: 

sudo wireshark

打开后选择 myfirst-0-0.psap文件,读取信息如下。工作区的上部分是数据分组的简单信息,中间是详细信息,包括各个协议的头格式,下部分是二进制显示。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值