新的trace格式形如下:
s -t 0.267662078 -Hs 0 -Hd -1 -Ni 0 -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw --- -Ma 0 -Md 0 -Ms 0 -Mt 0 -Is 0.255 -Id -1.255 -It message -Il 32 -If 0 -Ii 0 -Iv 32
事件类型
在上述trace记录中,第一列描述了发生在节点上的事件类型,有四种:
s 发送
r 接收
d 丢弃
f 转发
通用标识
第二列以“-t”开始,表示的是时间或者全局设置
-t 时间
-t * (全局设置)
节点属性标识
这一列描述了节点诸如node-id等属性,tracing的层级可能是agent、router或者MAC。这些标识以“-N”开始并如下所示:
-Ni: 节点id
-Nx: 节点的x坐标
-Ny: 节点的y坐标
-Nz: 节点的z坐标
-Ne: 节点能量级别
-Nl: 节点trace层级,比如AGT,RTR,MAC
-Nw: 事件原因。丢包的不同原因如下:
"END" DROP_END_OF_SIMULATION
"COL" DROP_MAC_COLLISION
"DUP" DROP_MAC_DUPLICATE
"ERR" DROP_MAC_PACKET_ERROR
"RET" DROP_MAC_RETRY_COUNT_EXCEEDED
"STA" DROP_MAC_INVALID_STATE
"BSY" DROP_MAC_BUSY
"NRTE" DROP_RTR_NO_ROUTE 即无可用路由
"LOOP" DROP_RTR_ROUTE_LOOP 即存在路由环
"TTL" DROP_RTR_TTL 即TTL已达0
"TOUT" DROP_RTR_QTIMEOUT 即分组过期了
"CBK" DROP_RTR_MAC_CALLBACK
"IFQ" DROP_IFQ_QFULL 即在IFQ已经没有缓存空间。
"ARP" DROP_IFQ_ARP_FULL 即被ARP丢弃
"OUT" DROP_OUTSIDE_SUBNET 也就是说,从域外节点接收到路由更新时被基站丢弃
IP层分组信息
该列标识以“-I”开始,其解释如下:
-Is: 源地址。源端口号。
-Id: 目的地址。目的端口号
-It: 分组类型
-Il: 分组大小
-If: 流id
-Ii: 唯一id
-Iv: ttl值
下一跳信息
该列给出了下一跳信息,标识以“-H”开始。
-Hs: 该节点id
-Hd: 指向目的的下一跳id
MAC层分组信息
该列给出了MAC层信息,标识以“-M”开始
-Ma: 持续时间
-Md: 目的以太网址
-Ms: 源以太网址
-Mt: 以太网类型
“应用层”分组信息
应用层分组信息由应用层类型,如ARP,TCP、adhoc路由协议类型,如DSDV,DSR,AODV等构成。该列由一个前导符号“-P”以及如下所示的不同应用标识:
-P arp
地址解析协议。ARP的细节如下:
-Po: ARP请求/应答
-Pm: 源mac地址
-Ps: 源地址
-Pa: 目的mac地址
-Pd: 目的地址
-P dsr
指明了使用的adhoc路由协议是DSR。有关DSR的信息由下列标识表示:
-Pn: 经过了多少节点
-Pq: 路由请求标志
-Pi: 路由请求序列号
-Pp: 路由应答标志
-Pl: 应答长度
-Pe: src of srcrouting->dst of the source routing
-Pw: 错误报告标志?
-Pm: 错误数量
-Pc: 向谁汇报
-Pb: 来自linka->linkb的链路错误
-P cbr
恒定速率。有关CBR应用的信息标识如下:
-Pi: 序列号
-Pf: 该表被转发了多少次
-Po: 转发最优次数
-P tcp
TCP流信息表示如下:
-Ps: 序列号
-Pa: ack号
-Pf: 该分组被转发了多少次
-Po: 转发最优次数
该列仍在开发之中,新的标识将被添加进来用于其他应用。
首先给出一些tr文件里的记录(有些记录可能会有其他数据)。
1 2 3 4 5:6 7 8 9 [10/11/12/13] 14:16 [ 17 - 18 19 20]
s 3.000000000 _0_ RTR --- 0 AODV 48 [0 0 0 0] ------- [0:255 -1:255 30 0]
s 10.00000000 _0_ AGT --- 2 tcp 40 [0 0 0 0] ------- [ 0:0 1:0 32 0]
r 10.00000000 _0_ RTR --- 2 tcp 40 [0 0 0 0] ------- [0:0 1:0 32 0]
s 12.50000000 _0_ RTR --- 0 AODV 48 [0 0 0 0] ------- [0:255 -1:255 30 0]
橙色的部分是对这个无线Trace的标注,每条记录共有20栏,下面对各栏表示的意义进行说明:
(1)事件类型:
(2)事件产生的时间。
(3)处理该事件的节点ID。
(4)Trace种类:
(5)分隔符。
(6)分组ID。
(7)分组类型。
(8)分组大小(字节)。
[9:12]有关MAC层的详细信息
(9)发送节点在无线信道上发送该分组所期望的时间值,用16进制表示。
(10)接收节点的MAC地址。
(11)发送节点的MAC地址。
(12)MAC层封装的分组类型。 0x800:IP分组,0x806:ARP分组
(13:15)分隔符。
(16)分组发送的源IP地址。节点号.端口号
(17)分组发送的目的IP地址。节点号.端口号
(18)分组的TTL值。
(19)源节点到目的节点的跳数。
第二部分
ACTION: [s|r|D]: s -- sent, r -- received, D -- dropped
WHEN: the time when the action happened
WHERE: the node where the action happened
LAYER:
AGT -- application, RTR -- routing, LL -- link layer (ARP is done here)
IFQ -- outgoing packet queue (between link and mac layer)
MAC -- mac, PHY -- physical flags:
SEQNO: the sequence number of the packet
TYPE: the packet type
cbr -- CBR data stream packet
DSR -- DSR routing packet (control packet generated by routing)
RTS -- RTS packet generated by MAC 802.11
ARP -- link layer ARP
packet SIZE: the size of packet at current layer, when packet goes down, size increases, goes up size decreases
[a b c d]: a -- the packet duration in mac layer header
b -- the mac address of destination
c -- the mac address of source
d -- the mac type of the packet body
flags: [......]: [ source node ip : port_number destination node ip (-1 means broadcast) : port_number ip header ttl ip of next hop (0 means node 0 or broadcast) ]
举例:Mflood协议仿真的trace文件。
s 10.000000000 _0_ AGT --- 0 cbr 512 [0 0 0 0] ------- [0:0 2:0 32 0] [0] 0 0
r 10.000000000 _0_ RTR --- 0 cbr 512 [0 0 0 0] ------- [0:0 2:0 32 0] [0] 0 0
s 10.000000000 _0_ RTR --- 0 cbr 532 [0 0 0 0] ------- [0:0 2:0 30 0] [0] 0 0
r 10.004812500 _1_ RTR --- 0 cbr 532 [0 ffffffff 0 800] ------- [0:0 2:0 30 0] [0] 1 0
f 10.020795609 _1_ RTR --- 0 cbr 532 [0 ffffffff 0 800] ------- [0:0 2:0 29 0] [0] 1 0
r 10.025728109 _0_ RTR --- 0 cbr 532 [0 ffffffff 1 800] ------- [0:0 2:0 29 0] [0] 2 0
D 10.025728109 _0_ RTR LOOP 0 cbr 532 [0 ffffffff 1 800] ------- [0:0 2:0 29 0] [0] 2 0
r 10.025728109 _2_ AGT --- 0 cbr 532 [0 ffffffff 1 800] ------- [0:0 2:0 29 0] [0] 2 0
1. 在第10S时 一个ID为0的节点 应用层发出了一个CBR分组,这个分组的UID为0长度为512,源地址0:0,目标地址2:0,分组生存周期32
2. 在第10S时 一个ID为0的节点 路由层接收了一个CBR分组,这个分组的UID为0长度为512,源地址0:0,目标地址2:0,分组生存周期32
3. 在第10S时 一个ID为0的节点 路由层发送了一个CBR分组,这个分组的UID为0长度为532,源地址0:0,目标地址2:0,分组生存周期30
4. 在第10.004812500S时 一个ID为1的节点 路由层接收了一个CBR分组,这个分组的UID为0长度为532,源地址0:0,目标地址2:0,分组生存周期30
5. 在第10.020795609S时 一个ID为1的节点 路由层转发收了一个CBR分组,这个分组的UID为0长度为532,源地址0:0,目标地址2:0,分组生存周期29
6. 在第10.025728109S时 一个ID为0的节点 路由层接收了一个CBR分组,这个分组的UID为0长度为532,源地址0:0,目标地址2:0,分组生存周期20
7. 在第10.025728109S时 一个ID为0的节点 路由层丢掉了一个分组,原因是路由环回。
8. 在第10.025728109S时 一个ID为2的节点 应用层接收了一个CBR分组,这个分组的UID为0长度为532,源地址0:0,目标地址2:0,分组生存周期30