【NS-3】仿真实现Tracing系统

跟学NS3仿真实现Tracing系统 记录。

一. NS3 Tracing System

NS3提供两种tracing机制:ASCII码tracing和pcap级别的tracing。

  1. ASCII码Tracing
    NS3提供了封装底层tracing系统的helper功能,用来提供配置简单数据包的更多细节。如果你使用了这个功能,将在ASCII文件中输出结果。

比如在myfirst.cc脚本中添加ASCIItracing输出。

(1) 首先,在Simulator::Run()前,添加下面的代码:

AsciiTraceHelperascii ascii;      //创建一个ASCIItrace对象

pointToPoint.EnalbeAsciiAll(ascii.CreateFileStream("myfirst.tr"));   //包含两个方法调用。

//CreateFileStream()用未命名的对象在协议栈中创建了一个文件流,并把这个文件流传递给了调用方法,即创建了一个对象代表着一个名为“myfirst.tr”的文件,并传递给了NS3。

//EnableAsciiAll()告诉helper你想要将ASCIItracing安装在仿真中的点到点设备上,并且你想要接收端以ASCII格式写出数据包移动信息。

在这里插入图片描述
这两行代码用来打开一个将被写入名为“first.tr”文件中的数据流。代码段中的第二行告诉NS3在仿真中为所有点到底设备启用ASCIItracing功能,并且你想要用ASCII格式来写出数据流中数据包的移动信息。

(2)使用waf来执行脚本
在这里插入图片描述
(3)运行该脚本

sudo ./waf --run scratch/myfirst

在这里插入图片描述

(4)编译成功以后,在ns-allinone-3.31/ns-3.31目录中多了一个myfirst.tr文件
在这里插入图片描述
(5)打开myfirst.tr文件

sudo vim myfirst.tr
  1. PCAPTracing

NS3-helper还可以生成以.pcap为后缀的格式文件,缩写pcap表示packetcapture,事实上是包含有定义一个.pcap文件格式的API。这个文件可以使用Wireshark工具打开并分析。

(1)采用myfirst.cc的脚本为例子,首先在脚本程序的Simulator::Run()代码前添加如下代码

pointToPoint.EnablePcapAll ("myfirst");

在这里插入图片描述
(2)如上例,编译
(3)如上例,执行
在这里插入图片描述
(4)运行成功以后,可以在ns-3.31目录中看到myfirst后缀为.pcap文件。
在这里插入图片描述
(5)Wireshark打开.pcap文件
将myfirst-0-0.pcap和myfirst-1-0.pcap文件从虚拟机中复制过来,打开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值