2015-11-21 5 views
0

Я написал следующий awk-скрипт для вычисления средней пропускной способности протокола маршрутизации в NS2.35. Ниже приведен пример кода MY.Расчет пропускной способности с использованием 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-пакеты», чтобы попытаться помочь вам, потому что ИМХО шансы из них это очень мало. –

ответ

1

Вы можете попробовать читать другие сценарии пропускной способности по умолчанию для ns2: Есть около 22 Thr * .awk файлы в awk#perl#python__scripts-10.2015.tar.gz, а некоторые Perl скрипты Чет * .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.


0

throughput.awk

BEGIN {

recvdSize = 0 

    startTime = 400 

    stopTime = 0 

}

{

  event = $1 

     time = $2 

     node_id = $3 

     pkt_size = $8 

     level = $4 

# магазин время начала

, если (уровень == "MAC" & & событие == "с" & & pkt_size> = 300) {

времени
if (time < startTime) { 

     startTime = time 

     } 

    } 

# Обновление общего числа принятых пакетов размер и хранить пакеты прибытия

, если (уровень == "MAC" & & событие == "г" & & 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 { печать «+ ===================================== ================================== + \ п ";

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

печати «\ п + ======================================= ================================ + \ п ";

}

выполнить команду:

AWK -f throughput.awk out.tr (имя файлом_трассировки)

+0

В чем разница между уровнем == «MAC» и уровнем == «AGT» @ user3148454 – user5520111