• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN SIMULAS

3.4 Pengukuran Parameter Kinerja

3.4.3 Menghitung throughput

Throughput didapat dengan menghitung total paket yang keluar dari router

dibagi delay rata-rata yang terjadi pada antrian router. Satuan throughput adalah

packet per second (p/s).penghitunganthroughputmenggunakan program .awk yang akan dibuat. Flowchatthroughputdapat dilihat pada gambar 3.5.

start highest_packet_id = 0; total_duration = 0; num_received = 0; paket_1st=0; action = $1; time = $2; node_1 = $3; node_2 = $4; src = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12; start_time[packet_id ] == 0 start_time[packet_id] = time yes action != "d" action != "r" action == "r" && node_2 =="5" num_out = num_out + 1; end_time[packet_id] = time; Print : Average Delay R Total Packet out R THROUGHPUT start = start_time[packet_id];

end = end_time[packet_id]; packet_duration = end - start;

break no no end_time[packet_id] = -1; yes yes finish break no packet_id > highest_packet_id highest_packet_id = packet_id acket_id <= highest_packet_id start < end total_duration = total_duration + packet_duration; i++ num_out/(total_duration/ num_out) packet_id==0 paket_1st= start_time[packet_id] Gambar 3.5 Flowchatthroughput

35

BAB IV

PENGUJIAN DAN ANALISIS

Skenario simulasi jaringan dilakukan untuk pengujian unjuk kerja

manajemenantrian DT dan FQ.Setelah menjalankan simulasi dari setiap skenario,

trace filedidapat.Trace file tersebut diproses dengan fileawk untuk mendapat data parameter kinerja.

Potongan listingprogram dibawah ini menunjukkan parameter yang diatur pada setiap simulasi, diantaranya adalah jumlah node, jenis link, besar bandwidth,

delay, jenis antrian, dan posisi. Pengujian tersebut akan menghasilkan data yang disajikan dalam bentuk grafik dan tabel.

4.1Penjelasan Program dan Contoh Pengambilan Nilai dari Trace F ile

Program yang digunakkan dalam penelitian ini yaitu progam .awk yang berfungsi untuk mengambil data-data dari trace fileyang dibutuhkan untuk mengukur kinerja manajemen antrian yang diuji. Listing program .awk adalah sebagai berikut :

set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] $ns duplex-link $n0 $n4 1Mb 1ms DropTail / FQ $ns duplex-link $n1 $n4 1Mb 1ms DropTail / FQ $ns duplex-link $n2 $n4 1Mb 1ms DropTail / FQ $ns duplex-link $n3 $n4 1Mb 1ms DropTail / FQ $ns duplex-link $n4 $n5 2Mb 1ms DropTail / FQ $ns duplex-link-op $n0 $n4 orient down

$ns duplex-link-op $n1 $n4 orient right-down $ns duplex-link-op $n2 $n4 orient right-up $ns duplex-link-op $n3 $n4 orient up

1. Average Delay Router BEGIN { highest_packet_id = 0; total_duration = 0; num_out = 0; } { action = $1; time = $2; node_1 = $3; node_2 = $4; src = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12; if ( packet_id > highest_packet_id ) highest_packet_id = packet_id;

# mendapatkan waktu paket masuk ke antrian node 4 (router)

if ( start_time[packet_id] == 0 && action == "+" && node_2=="4"){ start_time[packet_id] = time;

}

# mendapatkan waktu ketika paket keluar dari antrian node 4 (router) # dan mengitung jumlah paket yang berhasil keluar dari node 4 tanpa drop.

if ( action != "d" || action != "r") {

if ( action == "-" && node_1=="4" && node_2=="5") { num_out = num_out + 1; end_time[packet_id] = time; } } else { end_time[packet_id] = -1; } } END {

# menghitung delay tiap paket dan total delay

# dan menampilkan paket id, start time, end time, delay untuk setiap paket. for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) {

start = start_time[packet_id]; end = end_time[packet_id]; packet_duration = end - start; if ( start < end ) {

printf("packet id ="packet_id); printf(" Start ="start);

printf(" end ="end);

printf(" delay ="end-start); printf("\n")

total_duration = total_duration + packet_duration; }

Penjelasan dari listingprogram diatas adalah:

1) Untuk mengetahui start time paket ketika masuk ke antrian router yaitu dengan melihat pada trace file dengan ketentuan start_time[packet_id] == 0, action == "+", dan node_2=="4".

2) Untuk mengetahui jumlah paket dan end time paket ketika keluar dari router

yaitu dengan melihat pada trace file dengan ketentuan action != "d" || action != "r", action == "-", node_1=="4", node_2=="5".

3) Untuk menghitung delay adalah dengan end time start time untuk setiap paket. Untuk menghitung total delay adalah dengan total_duration = total_duration + packet_duration.

4) Menghitung total delay dalam ms yaitu dengan total_duration*1000 ms.

5) Menghitung average delay router dalam ms yaitu dengan

(total_duration*1000 ms)/num_out.

printf("\n--- \n");

# Menghitung dan menampilkan total delay, total paket keluar dari R, dan rata2 delay

printf("Total Delay = %.6f \n", (total_duration*1000)); printf("Total Packet out R = %f \n\n", num_out);

printf("AVERAGE DELAY = %.6f ms \n", (total_duration*1000)/num_out);

printf("==================================== \n"); }

2. Packet Loss Router

Penjelasan dari listingprogram diatas adalah:

1) Untuk menghitung jumlah paket drop pada antrian router yaitu dengan melihat pada trace file dengan ketentuan action =="d", node_1 == "4", node_2 == "5", dan menghitung denganjml_drop = jml_drop + 1.

BEGIN { jml_drop = 0 jml_terima = 0 } { action = $1; time = $2; node_1 = $3; node_2 = $4; src = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12;

# menghitung jumlah paket drop yang ada di antrian node 4 (router) if (action =="d" && node_1 == "4" && node_2 == "5") {

jml_drop = jml_drop + 1; }

# menghitung jumlah paket; kecuali ack yang diterima oleh node 4 (router) if ( action != "d") {

if (action == "r" && node_2 == "4" && src != "ack") { jml_terima = jml_terima + 1;

} }

}

END {

# menghitung paket loss pada router dalam satuan %

# dan menampilkan total paket drop, paket diterima, paket loss di router. printf("\n--- \n"); printf("Total Paket Drop di Router = %f ", jml_drop);

printf("\n");

printf("Total Paket Diterima Router = %f ", jml_terima); printf("\n\n");

printf("PAKET LOSS ANTRIAN = %f %", jml_drop/jml_terima*100); printf("\n");

printf("============================================== \n"); }

2) Untuk menghitung jumlah paket yang diterima router kecuali ack yaitu dengan melihat pada trace file dengan ketentuan action != "d", action == "r", node_2 == "4", src != "ack", dan menghitung dengan jml_terima = jml_terima + 1.

3) Untuk menghitung paket loss antrian router yaitu dengan

jml_drop/jml_terima*100 %. 3. Throughput Router BEGIN { highest_packet_id = 0; total_duration = 0; num_out = 0; } { action = $1; time = $2; node_1 = $3; node_2 = $4; src = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12;

if ( packet_id > highest_packet_id ) highest_packet_id = packet_id;

# mendapatkan waktu paket masuk ke antrian node 4 (router)

if ( start_time[packet_id] == 0 && action == "+" && node_2=="4"){ start_time[packet_id] = time;

}

# mendapatkan waktu ketika paket keluar dari antrian node 4 (router) # dan mengitung jumlah paket yang berhasil keluar dari node 4 tanpa drop.

if ( action != "d" || action != "r") { #ketika aktion d dan r tidak di hitung

if ( action == "-" && node_1=="4" && node_2=="5") { num_out = num_out + 1; end_time[packet_id] = time; } } else { end_time[packet_id] = -1; } }

Penjelasan dari listingprogram diatas adalah:

1) Untuk mengetahui start time paket ketika masuk ke antrian router yaitu dengan melihat pada trace file dengan ketentuan start_time[packet_id] == 0, action == "+", dan node_2=="4".

2) Untuk mengetahui jumlah paket dan end time paket ketika keluar dari router

yaitu dengan melihat pada trace file dengan ketentuan action != "d" || action != "r", action == "-", node_1=="4", node_2=="5".

3) Untuk menghitung delay adalah dengan end time start time untuk setiap paket. Dan untuk menghitung totaldelay adalah dengan total_duration = total_duration + packet_duration.

4) Menghitung average delay router dalam ms yaitu dengan

total_duration*/num_out.

5) Untuk menghitung throughput yaitu dengan

num_out/(total_duration/num_out). END {

# Menghitung paket durasi / delay untuk setiap paket dan menghitung total delay for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) {

start = start_time[packet_id]; end = end_time[packet_id]; packet_duration = end - start; if ( start < end ) {

total_duration = total_duration + packet_duration; }

}

printf("\n--- \n");

# Menghitung dan menampilkan delay rata2 R, total paket keluar dari R dan throughput

printf("Average Delay R = %.6f s\n", total_duration/num_out); printf("Total Packet out R = %f \n\n", num_out);

printf("THROUGHPUT = %.6f p/s \n", num_out/(total_duration/num_out));

printf("==================================== \n"); }

Dokumen terkait