ns中模拟出来的时间最终会以trace文件的形式告诉我们,虽然说一般都是用awk等工具分析trace文件,但是了解trace文件的格式也是必不可少的。下面就介绍一下无线网络模拟中trace文件的格式。

trace文件的最开始时一段形如

M 0.0 nn  x  y  rp DSDV
M 0.0 sc cp seed 0.0
M 0.0 prop Propagation/TwoRayGround ant Antenna/OmniAntenna

这段代码主要是一些环境介绍性性的文字。通过查阅官方手册我自己理解,大概猜了一下

首先的那个字母有五种选择

  • N: Node Property
  • I: IP Level Packet Information
  • H: Next Hop Information
  • M: MAC Level Packet Information
  • P: Packet Specific Information

代表的是trace文件所描述信息的类型,然后跟的就是一些tcl中的配置信息,像是范围什么之类的。

  再给出一段我们要重点分析的例子:

动作 时间 节点 层次 ---分组UID 分组类型 分组大小 【mac层信息】 ----【ip层信息】
r 0.033271645 _1_ MAC --- CTS [ 18f840e1 d23f5e16 ]
s 0.033281645 _1_ MAC --- UNKN [ 18f840e1 d23f5414 ]
s 0.033803645 _1_ MAC --- cbr [ 18f840e1 d23f8a01 ] ------- [: : ] []
r 0.038604145 _0_ MAC --- cbr [ 18f840e1 d23f8a01 ] ------- [: : ] []
s 0.038614145 _0_ MAC --- ACK [ 18f840e1 d23f0000 ]
r 0.038998645 _1_ MAC --- ACK [ 18f840e1 d23f0000 ]
s 0.039308645 _2_ MAC --- message [ 80e6de89 933f0000 ] ------- [: -: ]
r 0.040108978 _3_ MAC --- message [ 80e6de89 933f0000 ] ------- [: -: ]
r 0.040109145 _0_ MAC --- message [ 80e6de89 933f0000 ] ------- [: -: ]
D 0.040244414 _2_ RTR IFQ cbr [ ] ------- [: : ] []
s 0.041607590 _1_ MAC --- RTS [ 18f840e1 d23f6818 ]
r 0.042056090 _0_ MAC --- RTS [ 18f840e1 d23f6818 ]
s 0.042066090 _0_ MAC --- CTS [ 18f840e1 d23f5e16 ]
r 0.042578590 _1_ MAC --- CTS [ 18f840e1 d23f5e16 ]

可以看出文件的开始形式基本相同

首先

第一列代表的是事件类型,其中:

s代表分组的发送事件;

r代表分组的接收事件;

d代表分组的丢弃事件;

f代表分组的转发事件;

第二列是时间的发生时间

第三列(形如“——1——”)代表节点编号

第四列是trace种类,种类有:

    RTR:路由器Trace;

  AGT:代理Trace;

  MAC:MAC层Trace;

接下来的部分略有不同。首先我们看事件类型为发送和接收的:

第五列(形如“---”)是分隔符

第六列是分组id

第七列是分组类型(像是RTS、CTS、ACK等)

第八列是分组大小(单位字节)

第九列(接下来那个中括号括的)表示mac层的详细信息

然后有的还有

第十列(中括号中的四个值)分别表示:

  分组发送的源IP地址:节点号.端口号

  分组发送的目的IP地址:节点号.端口号

  分组的TTL值。

  源节点到目的节点的跳数。

这是些比较通用的字段,其他的部分主要就是和自己的定义有一定关系了。

NS2中trace文件分析的更多相关文章

  1. [Android Pro] 通过Android trace文件分析死锁ANR

    转载自: http://blog.csdn.net/oujunli/article/details/9102101#reply 对于从事Android开发的人来说,遇到ANR(Application ...

  2. 转【Oracle】一款非常好用的trace文件分析工具

    [Oracle]一款非常好用的trace文件分析工具之一   北在南方 2016-04-14 11:23:58 浏览547 评论0 摘要: 介绍一款非常好用的10046分析工具--trca(Trace ...

  3. Omapl138中AIS文件分析(参照Using the OMAP-L138 Bootloader)(转)

    Omapl138中AIS文件分析(参照Using the OMAP-L138 Bootloader) 转载链接:https://blog.csdn.net/qq_40788950/article/de ...

  4. 使用trace文件分析ANR

    2017年02月07日 12:32:45 不死鸟JGC 阅读数 13886更多 分类专栏: Android   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链 ...

  5. Oracle 10046 trace文件分析

    生成10046 trace文件: SQL> create table t10046 as select * from dba_objects; Table created. SQL> se ...

  6. anr trace文件分析

    测试给的trace文件好几万行,怎么看? 1.搜索 你的包名,看它报错误报在你代码的哪里 2.在你代码里面分析 还有,synchronized 就是用来防止多线程调用的,没有那么神奇.

  7. Caffe源码中common文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中的一些重要头文件如caffe.hpp.blob.hpp等或者外部调用Caffe库使用时,一般都会in ...

  8. JVM中 Class 文件分析

    Java 虚拟机中定义的 Class 文件格式.每一个 Class 文件都对应着唯一一个类 或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过 类加载器直接生成). ...

  9. Maven项目中pom文件分析

    pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...

随机推荐

  1. Tomcat配置文件server.xml详解

    <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOW ...

  2. MySQL客户端Workbench

    MySQL客户端除了Navicat之外,还有官方推出的MySQL Workbench,能看到数据库包含的存储过程,而Navicate不能. 下载链接: 32位:http://cdn.mysql.com ...

  3. 常见的MYSQL高可用解决方案

    MySQL 是一种关系数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL 软件采用了双授权政策(本词条"授权政策& ...

  4. C#中 int.TryParse 的用法

    int i = -1;bool b = int.TryParse(null, out i);执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1;bool b = in ...

  5. 利用闪回查看Oracle表历史时刻数据

    利用闪回查看Oracle表历史时刻数据 1.查看表历史时刻数据 select * from tab_test AS OF TIMESTAMP to_timestamp('20140917 10:00: ...

  6. oracle,mybatis主键自增长

    <insert id="insert" parameterType="resource"> <selectKey resultType=&qu ...

  7. 使用Java的多线程和IO流写一个文件复制功能类

    创建一个复制功能类,继承Thread类,重写run()方法,把FileInputStream和FileOutputStream输入输出流写在run()方法内.示例代码如下: import java.i ...

  8. Unity3d 防止内存修改工具的小方法

    一个非常简单的方法,直接上代码. private int curATK; private int curAtkKey; public int CurATK { get { return curATK ...

  9. ios NSNotificationCenter 收到通知后的执行线程

    https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Notifications/Articles/Thread ...

  10. zpf 获取表单等数据的用法

    2015年4月12日 12:25:35 星期日 zpf框架中获取表单数据的方法 //获得get,post,url中的数据 private function setData() { $this-> ...