ns3跟踪文件tr文件格式分析

ns3可以产生多种跟踪文件,非常有利于仿真结果的分析。本文讲解跟踪文件tr各个字段含义,以便写脚本分析结果。

1. ns3跟踪文件示例

ns2产生的跟踪文件tr比ns3要简单得多,举例如下:

+ 0.005032 2 3 cbr 40 ------- 1 0.0 3.0 0 0 
- 0.005032 2 3 cbr 40 ------- 1 0.0 3.0 0 0 
+ 0.0058 2 3 cbr 1000 ------- 2 1.0 3.1 0 1

而ns3明显要复杂得多,每一行都是一个跟踪事件(trace file),tr文件由许多这样的行组成。以下是其中的一行,即一个跟踪事件:

+ 0.508 /NodeList/0/DeviceList/1/$ns3::CsmaNetDevice/TxQueue/Enqueue ns3::EthernetHeader ( length/type=0x806, source=00:00:00:00:00:01, destination=ff:ff:ff:ff:ff:ff) ns3::ArpHeader (request source mac: 00-06-00:00:00:00:00:01 source ipv4: 10.1.1.1 dest ipv4: 10.1.1.2) Payload (size=18) ns3::EthernetTrailer (fcs=0)

事实上,每个跟踪事件由多个字段组成,为了便于分析,将每个字段作为一行,如下:

+ 
0.508 
/NodeList/0/DeviceList/1/$ns3::CsmaNetDevice/TxQueue/Enqueue 
ns3::EthernetHeader ( length/type=0x806, source=00:00:00:00:00:01, destination=ff:ff:ff:ff:ff:ff) 
ns3::ArpHeader (request source mac: 00-06-00:00:00:00:00:01 source ipv4: 10.1.1.1 dest ipv4: 10.1.1.2) 
Payload (size=18) 
ns3::EthernetTrailer (fcs=0)

2. 各个字段含义

第1行 +

表示操作,共有4种,即+, -, d, r,分别表示入队,出队,丢包,接收。

第2行 0.508

表示仿真时间(我的理解是事件被触发的时间),单位是秒。

第3行 /NodeList/0/…

表示触发该事件的跟踪源,即谁触发了该事件。NodeList是跟踪命令空间(trace namespace)的根,类似于文件系统的根“/”,/NodeList/0表示第一个节点,DeviceList/1表示第二个网络设备(让我迷惑的是,我程序只给每个节点安装一个NetDevice,这里应该是DeviceList/0才对,谁能帮忙解释下?)。$ns3::CsmaNetDevice表示网络设备(NetDevice)的类型。TxQueue/Enqueue表示跟踪路径(第一行的”+”与这里对应)。

+ TxQueue/Enqueue
– TxQueue/Dequeue
d 暂时不知(所产生tr文件,没有这项)
r MacRx

第4行 ns3::EthernetHeader

描述以太网头部,类型0x0806是ARP协议,目标地址为ff:ff:ff:ff:ff:ff,是一个广播包。

第5行 ns3::ArpHeader

ns3::ArpHeader (request source mac: 00-06-00:00:00:00:00:01 source ipv4: 10.1.1.1 dest ipv4: 10.1.1.2) 描述ARP协议头部。

第6行 Payload(size=18)

有效负荷,18字节实为以太网帧头部的大小(目标MAC地址6字节 + 源MAC地址6字节 + 类型2字节 + FCS4字节)。

第7行 ns3::EthernetTrailer(fcs=0)

帧校验序列(Frame Check Sequence,FCS)采用32位CRC循环冗余校验,旨在检测帧是否引入了错误(即比特是否发生翻转),差错的原因包括信号强度衰减和电磁能量泄露。传输该帧的适配器构造以太网帧时,计算CRC填入FCS字段,目的适配器接收到帧后,对帧执行同样的映射,比较两者的值。

理解了这些,接下来就是写脚本分析了。如果有更好的分析仿真产生数据的方法,希望您能与我分享Jelline@126.com

参考资料:
[1] ns-3-tutorial.pdf

 

附:以太网帧所携带的网络层数据类型

表1 Ethernet II帧格式常用类型字段

类型

类型

类型

Netware

8137

RARP

8035

LAT

6004

XNS

0600,0807

IP(Wines)

0BAD,80C4

LAVC

6007

IP

0800

DRP

6003

ARP(AppleTalk)

80F3

ARP

0806

       

Leave a Reply

Your email address will not be published. Required fields are marked *

One thought on “ns3跟踪文件tr文件格式分析

  • Friday October 31st, 2014 at 05:02 PM
    Permalink

    关于ns2跟踪文件分析可参考《Trace Analysis Example》http://nile.wpi.edu/NS/analysis.html

    Reply