网络上有不少awk 程序是讲如何分析网络性能的(主要是时延,吞吐量,丢包率和时延抖动),但是都没有详细的说明,我在此作一些示例,添加了一些必要的说明注释
以下的内容是针对NS2 仿真的结果trace 文件进行网络性能分析,看本篇前需要先行了解的的内容有:awk 语言的基础,包括语法和结构等;在Linux 下如何使用xgraph 和gnuplot
因为只是想简单介绍如何用gwak 和xgraph/gnuplot 处理trace 文件得出分析结果,所以并没有写专门的tcl 脚本,分析用的tcl 脚本和trace 文件是一个三节点的无线网络的例子,随篇附后
本篇主要想介绍如何得到网络的数据传输延迟(delay)、丢包率(drop)、延时抖动(Jitter)和网络的吞吐量(throughtput),下文的四个awk 程序所使用的模型主要来自《網路模擬軟體 NS2 來做網路效能分析需看的文章》一文,除了第四个外程序没有做很大的改动,只是对封包的处理有所不同,同时第一个程序增加了比较详细的注释,方便初学者学习
因为只是想抛砖引玉,所以分析用的数学模型没有刻意去研究,有待大家一起讨论
一,延时分析
包的延时就是指包的接收时间与包的发送时间差
下面给出awk 程序,相关的说明看程序里面的注释
#BEGIN 表明这是程序开头执行的一段语句,且只执行一次
BEGIN { #程序初始化,设定一变量以记录目前处理的封包的最大 ID 号码
在awk 环境下变量的使用不需要声明,直接赋值
highest_uid = 0; } #下面大括号里面的内容会针对要进行处理的记录(也就是我们的trace 文件)的每一行都重复执行一次 { event = $1; #$1 表示一行的第一栏,是事件的动作
每一栏默认是以空格分隔的
time = $2; #事件发生的时间 node_nb = $3