ns-3中的数据跟踪与采集——Tracing系统综述及fourth脚本
ns-3的跟踪与采集技术除了直接将执行过程显示在命令行中的Logging系统,还有一种更为常用的将采集到的数据直接存放在一个文件中以便后期处理与分析的Tracing系统。
ns-3的Tracing系统大体分为3个部分:Tracing Sources,Tracing Sinks,以及将Tracing Sources和Tracing Sinks关联起来的方法。
Tracing Sources是一个实体,它可以用来标记仿真中发生的时间,也可以提供一个访问底层数据的方法。例如,当一个网络设备或者网卡收到一个网络分组时,Tracing Sources可以指示并提供一个途经将分组的内容传递给对该分组感兴趣的Tracing Sinks。此外,Tracing Sources还可以在感兴趣的状态发生变化时给出相应的指示。例如,TCP 网络协议模块中的拥塞窗口发生改变时,Tracing Sources会给出指示。
Tracing Sources提供信息,而Tracing Sinks消费信息。Tracing Sources本身不起任何作用,只有当它和一段有实际功能的代码相关联时才有意义,这段代码就是使用Tracing Sources提供的信息来做相关事物的。使用(或消费)Tracing Sources提供信息的实体称为Tracing Sink。
一个Tracing Sources产生的信息可以没有Tracing Sink消费,也可以有一个或者多个Tracing Sink消费。它们之间是一对多的关系。
下面通过最简单的跟踪示例 fourth.cc 来说明Traci