2015-11-21 153 views
0

我編寫了以下awk腳本來計算NS2.35中路由協議的平均吞吐量。我的示例代碼如下。使用awk腳本計算吞吐量

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包(TCP)的吞吐量並顯示它。我需要添加哪些附加的代碼到代碼中?

+0

你希望得到一個 「CBR包」 專家來幫助你與你的awk腳本還是awk專家?如果你以前是好的,如果後者你可能想要添加一些示例輸入和預期的輸出,所以awk專家不需要去閱讀「CBR數據包」來嘗試幫助你,因爲恕我直言的可能性他們這樣做很渺茫。 –

回答

0

throughput.awk

BEGIN {

recvdSize = 0 

    startTime = 400 

    stopTime = 0 

}

{

  event = $1 

     time = $2 

     node_id = $3 

     pkt_size = $8 

     level = $4 

#商店開始時間

如果(水平== 「MAC」 & &事件== 「S」 & & pkt_size> = 300){

if (time < startTime) { 

     startTime = time 

     } 

    } 

接收#更新總數據包的尺寸和存儲數據包的到達時間

如果(水平== 「MAC」 & &事件== 「R」 & & pkt_size> = 300){

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「個;

printf("\t\tThroughput[kbps]   : %.2f\n",(recvdSize/(stopTime-startTime))*(8/1000)) 

打印「\ n + ======================================= ================================ + \ n「個;

}

執行命令:

的awk -f throughput.awk out.tr(跟蹤文件名)

+0

level ==「MAC」和level ==「AGT」之間有什麼區別@ user3148454 – user5520111