NS2 trace文件分析脚本(适合无线trace).docx

NS2 trace文件分析脚本(适合无线trace).docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NS2 trace文件分析脚本(适合无线trace)

分类:? HYPERLINK /leo115/article/category/1077335 ns2仿真? HYPERLINK /leo115/article/category/1197538 gnuplot绘图? HYPERLINK /leo115/article/category/1197079 Shell 编程2012-07-28 19:42?1747人阅读? HYPERLINK /leo115/article/details/7797431 \l comments 评论(0)? HYPERLINK javascript:void(0); \o 收藏 收藏? HYPERLINK /leo115/article/details/7797431 \l report \o 举报 举报  HYPERLINK /tag/%e8%84%9a%e6%9c%ac \t _blank 脚本 HYPERLINK /tag/delay \t _blank delay HYPERLINK /tag/plot \t _blank plot HYPERLINK /tag/%e7%bd%91%e7%bb%9c \t _blank 网络 HYPERLINK /tag/%e6%96%87%e6%a1%a3 \t _blank 文档 HYPERLINK /tag/byte \t _blank byte 网络上有不少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; #发生事件的节点号(但是两边夹着“_”,下面一句代码将“_”处理掉) node_nb=substr(node_nb,2,1); #第三栏的内容是形如_0_的节点号码,我只要得出中间的节点号码0,所以要对字符串_0_进行处理。 trace_type = $4; #trace文件跟踪事件的层次(指在路由层或mac层等等) flag = $5; # uid = $6; #包的uid号码(普通包头的uid) pkt_type = $7; #包的类型(是信令或是数据) pkt_size = $8; #包的大小(byte) #下面的代码记录目前最高的CBR流的packet ID,本来的延迟分析是针对所有的包的(包括信令),这里作了简化,只针对CBR封包,以后大家做延时分析可以做相应的改动即可。 if ( event==s node_nb==0 pkt_type==cbr uid highest_uid ) {#if判断句的前三个判断条件就不说了,第四个是说每个包的记录次数不超过1 highest_uid = uid; } #记录封包的传送时间 if ( event==s node_nb==0 pkt_type==cbr uid==highest_uid ) start_time[uid] = time; # start_time[]表明这是一个数组 #记

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档