Reading Notes on NS2(10)

来源:互联网 发布:数据分析采用方法 编辑:程序博客网 时间:2024/05/01 21:26

数据的记录与动画演示

 

在模拟过程中,数据跟踪和采集的方法有多种,大体可以分为两大类:
(1)模拟的执行过程中直接显示跟踪数据
(2)将采集到的数据直接存放到一个文件中,以便后期的处理和分析(常用)

在NS2中有两种主要不同的数据监视器对象
(1)Trace
该对象详细地记录了模拟的整个过程,包括每一个数据分组到达、离开链路或队列,以及分组被丢弃等信息,并存储于Trace文件中。
(2)Monitor
用来记录各种有用的数值,比如到达、离开链路或队列的数据分组数、字节数等。

 

[1] Trace的使用
Trace的功能是能够详细地记录模拟过程,同时,用户也可以根据自己的需要记录模拟过程中的任何一个细节。
注意:
(1)NS2提供了各种不同的Trace类型,且都继承于OTcl的Trace类,实现不同的功能。
(2)可以通过Tcl代码查看NS2支持的各种Trace类(P.66)

在Tcl中使用Trace,分为两种情况:
(1)记录整个模拟过程的事件,将所有模拟细节都记录下来。
(2)根据需要记录模拟过程中的某些细节,记录一部分事件。

NS2的Simulator类内部定义了各种过程来支持Trace的使用,具体如下:
(1) $ns trace-all <tracefile>
记录整个模拟过程,将模拟过程的所有数据写入Trace文件中,<tracefile>为Trace文件的文件句柄。
(2) $ns trace-queue <n1> <n2> <optional:file>
记录节点n1和n2间链路的事件,并将相关数据写入名为<file>的Trace文件中,其中<file>为可选项。
(3) $ns flush-trace
清空模拟过程中所有Trace对象的缓冲区。

 

[2] Trace文件格式
在模拟有线网络时,得到默认的Trace文件的每条记录包含了以下12项:

Event|Time|From node|To node|Pkt Type|Pkt size|Flags|Fid|Src addr|Dst addr|Seq num|Pkt id

(1)Event:发生事件的类型(四种)
+ :分组enqueue事件
- :分组dequeue事件
r :目的节点receive事件
d :队列drop事件
(2)Time:事件发生的时间
(3)From node:发送分组节点的id
(4)To node:接收分组节点的id
(5)Pkt Type:分组类型
(6)Pkt size:分组大小
(7)Flags:标志项
(8)Fid:流标识符
(9)Src addr:源地址,格式为node.port
(10)Dst addr:目的地址,格式为node.port
(11)Seq num:分组的序列号
(12)Pkt id:分组的唯一标识符

 

[3] Monitor的使用
在NS2中,监测有两种:
(1)队列监测(Queue Monitoring)
(2)流监测(Per-Flow Monitoring)
详见P.69

 

[4] 动画演示
NS2可以使用Nam工具对整个模拟过程进行动画演示。Nam是基于Tcl/TK的动画演示工具,用来把模拟的过程用可视化的方式呈现出来,从而可以让使用者用“看”的方式去了解封包传送是如何从源端送到接收端。
注意:
(1)使用Nam的第一步是产生一个Nam跟踪文件。

(2)Nam提供3种通用的布局方法

方法1:
在有线网络中,用户可以通过链路的方位确定布局,链路的方位一般用链路和水平线之间的夹角来表示。
这种布局方式适用于小型和手工生成的拓扑。

方法2:
自动布局的方法。
这种方法适用于网络节点较多的情况。

方法3:
x、y坐标方式布局。
这种方式用来进行无线环境的拓扑构造。

(3)设置与节点相关的显示属性

(4)设置与链路相关的显示属性

(5)设置数据流的颜色

(6)在脚本中运行Nam的方法

 

[5] 相关命令总结

原创粉丝点击