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

       
赞赏

微信赞赏支付宝赞赏

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

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

  • 2014年11月01日 星期六 at 01:02上午
    Permalink

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

    Reply