首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用awk脚本计算吞吐量

使用awk脚本计算吞吐量
EN

Stack Overflow用户
提问于 2015-11-21 17:31:08
回答 2查看 2.5K关注 0票数 0

我编写了以下awk脚本来计算NS2.35中路由协议的平均吞吐量。下面给出了我的示例代码。

代码语言:javascript
运行
复制
BEGIN {
   recvdSize = 0
   startTime = 400
   stopTime = 0
}

{
         event = $1
         time = $2
         node_id = $3
         pkt_size = $8
         level = $4

# Store start time
if (level == "AGT" && event == "s" && pkt_size >= 512) {
if (time < startTime) {
         startTime = time
         }
   }

# Update total received packets' size and store packets arrival time
if (level == "AGT" && event == "r" && pkt_size >= 512) {
   if (time > stopTime) {
         stopTime = time
         }
   # Rip off the header
   #hdr_size = pkt_size % 512
   #pkt_size -= hdr_size
   # Store received packet's size
   recvdSize += pkt_size
   }
}

END {
   printf("Average Throughput[kbps] = %.2f\t\t  StartTime=%.2f\tStopTime=%.2f\n",(recvdSize/(stopTime-startTime))*(8/1000),startTime,stopTime)
}

现在,我只想计算CBR数据包()的吞吐量以及平均吞吐量,并显示它。我需要添加到代码中的其他东西是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-11-21 18:51:40

您可以尝试读取ns2的其他默认吞吐量脚本:awk#perl#python__scripts-10.2015.tar.gz中大约有22个thr*.awk文件,还有一些perl脚本thr*.pl:$ ls | grep -i thr

链接https://drive.google.com/file/d/0B7S255p3kFXNOUIteTVSWjdzQU0/view?usp=sharing

包中的专用tcp脚本是calc_tcp_goodput.awk、show_tcp_con、show_tcp_con.awk。

票数 1
EN

Stack Overflow用户

发布于 2015-11-23 07:06:46

throughput.awk

开始{

代码语言:javascript
运行
复制
   recvdSize = 0

   startTime = 400

   stopTime = 0

}

{

代码语言:javascript
运行
复制
         event = $1

         time = $2

         node_id = $3

         pkt_size = $8

         level = $4

存储启动时间

if (级别为"MAC“& == == "s”& pkt_size >= 300) {

代码语言:javascript
运行
复制
if (time < startTime) {

         startTime = time

         }

   }

更新接收到的数据包的大小和存储数据包到达时间

if ( ==级"MAC“& ==事件"r”& pkt_size >= 300) {

代码语言:javascript
运行
复制
   if (time > stopTime) {

         stopTime = time

         }

   # Rip off the header

   hdr_size = pkt_size % 512

   pkt_size -= hdr_size

   # Store received packet's size

   recvdSize += pkt_size

   }

}

END { print "+=======================================================================+\n";

代码语言:javascript
运行
复制
   printf("\t\tThroughput[kbps]         : %.2f\n",(recvdSize/(stopTime-startTime))*(8/1000))

打印"\n+=======================================================================+\n";

}

执行命令:

-f throughput.awk out.tr (示踪文件名)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33846435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档