190 likes | 340 Views
Trace Analyzer for NS-2 NS-2 的 Trace 分析器. 卢旭. 摘要.
E N D
摘要 • Network simulator 2 (NS-2)是一个开源离散事件仿真工具,由UC Berkeley开发的,广泛应用全世界的网络仿真中。NS-2采用TCL作为前台编译器,采用C++作为后台仿真引擎。TCL编写的网络仿真脚本程序用来创建网络场景,仿真完成之后,捕获网络事件发生的trace文件就生成出来。Trace文件捕获的信息可以用于性能分析,例如从发送源到目的地传输的数据包总量、数据包的延时以及包丢失等等。不过trace文件只是ASCII数据文件中的一块,通过一些后期处理技术来处理比较非常繁琐。 • 为了简化提取用于性能分析的数据的过程,我们提出了NS-2 Trace分析器。该软件是一个在NS-2网络仿真环境中用于提取和分析trace文件的工具。NS-2 Trace分析器分为三层。第一层是由trace文件数据构成的源码层。第二层是处理层。第三层是表示层。使用NS-2 Trace分析器用户能够通过交互式GUI来进行网络场景性能的研究。这样就使得用户可以专心于开发新算法或新系统,而不用花太多的时间在数据的后期处理上面。
Ⅰ.引言 • 在全球化的今天,国与国之间的通信的进步使得全世界越来越亲密。依赖实时Internet连接的新应用如internet协议的声音、需要的视频和视频流,使得对internet协议服务质量(IP QoS)的要求非常高。影响网络的IP QoS的主要参数有吞吐率、延时、延时抖动和包丢失。由于数据传输有不同的服务要求,因此对这些参数不能一视同仁。在数据对延时敏感时通信优先权就有需求了在反应时间上会比对延时不敏感的数据被给予更高的优先权。带宽的限制造成了数据优先权问题。 • 这样的情况吸引研究和开发工作朝向找到一个改进IP底层构造来支持必需的QoS的方法。有很多种提供优先服务的可能的方法,但最关键的是允许Internet协议提供新的应用类型,而不是使路由器增加负担。为了提供IP QoS,Internet工程特别委员会(IEIF)提出了区分服务(DiffServ)和多协议标签转换(MPSL)系统。DiffServ系统通过把通信分为不同的类型来提供QoS,用一个表示其类型的代号来标记数据包,据此来有序安排数据包。MPLS是基于标签的。
网络仿真推动了网络系统的研究,例如IP QoS的执行。NS-2就是其中之一。NS-2广泛应用于IP网络研究中。NS-2的一个可以提升的部分是后期处理能力。TCL编写的网络仿真脚本程序用来创建网络场景,仿真完成之后,捕获网络事件发生的trace文件就生成出来。Trace文件捕获的信息可以用于性能分析,例如从发送源到目的地传输的数据包总量、数据包的延时以及包丢失等等。不过trace文件只是ASCII数据文件中的一块,通过一些后期处理技术来处理比较非常繁琐。 • 本文的工作就是简化NS-2网络性能数据后期处理。第二节对NS-2仿真过程的概述,而第三节描述了NS-2 trace文件。第四节介绍NS-2 Trace 分析器。第五节是本文的结论。
Ⅱ.使用NS-2 • NS-2无疑是一个被广泛使用的功能强大的网络仿真器。不过,不幸的是它没有提供一个描述结果的工具。要仿真某个网络场景,NS-2用户必须编写并保存仿真脚本程序,再调用NS-2编译器。然后NS-2将简单地以trace文件的形式保存结果。Trace文件有两种类型。 • 这意味着NS-2用户就要停止创建他们自己的程序来处理trace文件,使它有个像样的样子呈现出来。一个流行的方法是生成两种trace文件,也就是网络动画(NAM)trace文件和普通的trace文件。NAM trace文件是用来实现网络动画的。在处理trace文件时,用户使用自己喜欢的软件来编写程序,结果可以由绘图器GNU和xgraph给出。图1表明了该方法。 • 本文中我们开发一个trace文件分析器,用于自动从trace文件中提取和呈现数据。
Ⅲ. NS-2 trace文件 • Trace的数据ASCII编码编写的,被组织成如图2所示的12块。每个trace路线都由一个事件描述符开始,接着是该事件的仿真时间(很短的时间)。线路的下一个信息是标记,如果没有标记的我们用“——”表示。然后是数据包类型和大小。下一块是用户可以为每个数据流设定的IP地址中的数据流id(fid)。即使在仿真中fid块不一定用得到,用户还是可以使用这一块用来分析。接下来的两块是源地址和目的地址,以“节点.端口”的形式给出。最后一块是网络层协议的数据包序列号,这一块显示了数据包的唯一id。
Ⅳ. 开发NS-2 Trace分析器 • NS-2 Trace分析器采用开源工具开发。采用的平台是Linux OS,所有的软件和工具都是免费开源的。一个类似的成果是软件Trace Graph,是用MATLAB开发的。NS-2 Trace分析器是采用TCL\TK开发的,TCL\TK是一个开源的软件,也是NS-2本身的平台。这形成一个无缝的整合。 • A.体系结构 • 概念上,Trace分析器如图3所示被分为三层。第一层是处理trace文件的源码层。第二层是处理层。这一层处理从源码层获得的数据并将其转换为对第三层有意义的形式。第三层是表示层。该层呈现出一些有意义的数据,以图、表和报告的形式给出,供网络性能分析,包括吞吐率、端到端的延时、包丢失和延时抖动。
各层概述: • i.源码层 • 源码层包含NS-2仿真所产生的trace文件中数据。采用TCL\TK的GUI脚本使NS-2 Trace分析器能够打开选择的trace文件。 • ii.处理层 • 由于处理层包含文本处理,Unix awk被广泛应用。awk的使用使得用户可以对数据文件进行操作。在该软件中,进行数据提取、性能参数计算以及结果数据重组,以来达到和表示层使用的工具兼容。
iii.表示层 表示层读取由处理层产生的结果数据,然后以下面三种形式表示出来: • 报告 • 表格 • 图表 • 报告 报告用来显示以单一值形式出现的重要参数。有两个有用的报告,第一个是用来显示统计学的仿真和网络节点统计表的,第二个是提供分析结果。 仿真结果报告显示延时抖动、端到端延时、吞吐量和数据丢失的统计值。它也包含了一些其他对网络仿真有意义的信息。TCL\TK标签窗口用来显示这些结果。
表格 表格用来显示DiffServ方法表。用来仿真DiffServ的执行的tcl脚本将用表格的形式处理结果。该表格是基于方法表的。表格由由DiffServ方法表定义的数据包统计值构成。在后期处理阶段,DiffServ表对研究人员使用DiffServ来评估DiffServ方法的性能非常重要。因此把它包含进软件里面是必需的。Tk表格窗口是一个扩展的TCL\TK,用来生成表格。 • 图表 Trace分析器链接到Xgraph来达到绘图的目的。Xgraph一般包含在NS-2的安装包中。 • 其他特性 Trace分析器还提供了一个过滤工具,用来显示只是某个特定通信的trace文件。
B.性能参数 • 通过NS-2 Tracer分析器可以获得的性能参数如下所示,都是些IP QoS关注的主要参数: • 吞吐量 • 包丢失 • 端到端延时 • 延时抖动
吞吐量 吞吐量是指网络发送和接收数据的比例。吞吐量Tp=Pa/Pf ,其中Pa是在某一时间段内接收到的数据包,Pf是发送出去的数据包总量。 • 包丢失 包丢失就是网络通信没有能及时到达目的地。大多数数据包在到达目的地前就被丢弃了。包丢弃/丢失Pd=Ps-Pa,其中Ps是发送的数据包总量,Pa是接收到的数据包总量。 • 延时抖动 延时抖动是指通信流中的一个数据包和下一个数据包的端到端延时的波动。波动J=∣Di+1-Di∣,其中Di+1是第i+1个数据包的延时,Di是第i个数据包的延时。 • 端到端延时 端到端延时表示网络中传输的一个数据包从源地址到目的地址所需的时间。端到端延时D=Td-Ts,其中Td是目的地接收到数据包的时间,Ts是源节点发送数据包的时间。
C.GUI界面 • NS-2 Trace分析器的界面完全是用TCL\TK设计的。界面按照这样的方法设计,即报告、图表、表格和主界面都在其本身的窗口。 • 图4所示为主窗口,包括一个打开trace文件的按钮,还有一个读取所下载的trace文件的按钮。还给出了用户查看报告、图表或表格的选项。报告窗口(图5)可以让用户查看一些基于源地址、目的地址和数据流id的每个通信流量的信息。Trace文件过滤器窗口使用户可以根据特定的研究领域来过虑通信,如图6所示。
8 结论 • NS-2 Trace分析器是一个在NS-2网络仿真之后用于减轻网络性能分析任务的软件。触发一个按钮,该软件就使得用户可以轻松使用GUI和避免人工处理的任务。这将提高用户的工作效率,因为更多的时间和精力可以放在网络研究上,而在性能分析部分将仅需很少的精力。