• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN SIMULAS

5.2. Saran

Beberapa saran dari penulis agar peneliti selanjutnya dapat memperhatikan hal-hal di bawah ini, guna perbaikan ke arah yang lebih baik. Adapun saran tersebut adalah:

1. Ukuranbuffer yang diuji dalam penelitian ini hanya ukuran 10, 25, 50, 75 dan 100. Sebaiknya untuk mendapatkan sampel yang lebih akurat, selisih ukuran buffer lebih rapat lagi.

2. Pengujian berikutnya diharapkan dapat menguji parameter-parameter QoS yang lain selain average delay router, packet loss router, dan throughput router yang sudah diuji dalam penelitian ini agar perbandingan manajemen antrian DT dan FQ semakin akurat.

56

DAFTAR PUSTAKA

[1] R. Jain and K. K. Ramakrishnan, “Congestion Avoidance in Computer Networks with a Connectionless Network Layer, Part I-Concepts, Goals, and

Alternatives”, DEC Technical Report TR-507, Digital Equipment Corporation, April 1987.

[2] Nurhayati, Oky Dwi. ____, Sistem komunikasi multimedia, [pdf], http://eprints.undip.ac.id/20121/1/Persyaratan_Layanan_dan_Protokol_pert9.pd f, diakses tanggal 8Juli 2012 )

[3] Hendrawan, ____, Congestion Control dan Resource Allocation, [ppt], (telecom.ee.itb.ac.id/~hend/ET5043/CongestionControl_05.ppt, diakses tanggal 4 Maret 2012 )

[4] Pratama, Randi. 2011. Analisis Perbandingan Manajemen Antrian Random

Early Detection Dan Fair Queuing Pada Ns-2. Sumber

:http://library.gunadarma.ac.id/repository/view/16131/analisis-perbandingan- manajemen-antrian-random-early-detection-dan-fair-queuing-pada-ns-2.html. Diakses : 14 Maret 2012.

[5] Agoes, Suhartati & Adi Putranto. 2007. SIMULASI KUALITAS LAYANAN VOIP MENGGUNAKAN METODE ANTRIAN PAKET CBQ DENGAN

MEKANISME LINK SHARING, [pdf]. Sumber :

http://blog.trisakti.ac.id/jetri/files/2010/01/13.4-Suhartati-SimulasiKualitas- hal41-64.pdf. Diakses : 21 Mei 2012.

[6]Wirawan, bayu & eka indarto. 2004. Mudah membangun simulasi dengan network simulator 2. Yogyakarta : Andi.

[7] Rizaldhi. 2010. KOMUNIKASI DATA dan TEORI ANTRIAN, [pdf].Sumber : http://repository.usu.ac.id/bitstream/123456789/21077/4/Chapter%20II.pdf. Diakses : 21 Mei 2012.

[8] Nagle, John. 1987. "On packet switches with infinite storage." IEEE Transactions on Communications, 35(4):435–438, April 1987.

[9] Rasmus. 2012. Round robin scheduling - a survey, [pdf]. Sumber :mat.gsia.cmu.edu/trick/survey.pdf. Diakses : 8 Juli 2012.

[10] politeknik telkom._____. KUALITAS LAYANAN PADA SISTEM

TELEKOMUNIKASI, [doc].Sumber

:ibuku.zxq.net/smster4/sistel/Bab%204%20(QOS).doc. Diakses : 21 Mei 2012. [11] Sukardi, Ardi. 2011. MAKALAH QoS ( Quality Of Service ) SISTEM

MULTIMEDIA, [docx]. Sumber : http:

smil34u.files.wordpress.com/2011/08/makalah-qos.docx. Diakses : 8 Juli 2012. [12] Fatoni. _____. ANALISIS KUALITAS LAYANAN JARINGAN INTRANET,

[pdf]. Sumber blog.binadarma.ac.id/fatoni/wp-content/uploads/.../Jurnal- QoS.pdf.Diakses : 21 Mei 2012.

[13] Zidni Ilma, Urida. 2011. RANCANG BANGUN DAN ANALISA QUALITY OF SERVICES (QoS) PADA SISTEM VOICE OVER INTERNET PROTOCOL (VoIP) MENGGUNAKAN OPEN SOURCE ELASTIX , [pdf]. Sumber http://uridadotzidni.blogdetik.com/.Diakses : 14 Juni 2012.

[14] ______. ______. BAB II LANDASAN TEORI , [pdf]. Sumber :http://library.binus.ac.id/eColls/eThesis/Bab2/2009-1-00205-

IF%20Bab%202.pdf.Diakses :8 Juli 2012.

[15] ______. _____. The Network Simulator - ns-2, [online].Sumber :www.isi.edu/nsnam/ns/. Diakses : 21 Mei 2012.

[16] ______. 2010. Transport Layer: Protocol UDP dan Protocol TCP, [online].

Sumber :http://www.slideshare.net/materikuliah/transport-layer-protocol-udp-

dan-protocol-tcp.Diakses : 15 Juli 2012.

[17] J. Postel. 1980. RFC 768 User Datagram Protocol, [online]. Sumber :http://tools.ietf.org/html/rfc768. Diakses : 15 Juli 2012.

[18] J. Postel. 1981. RFC 793 TRANSMISSION CONTROL PROTOCOL, [online]. Sumber :http://tools.ietf.org/html/rfc793. Diakses : 15 Juli 2012.

[19] ______. ______. Chapter II.pdf, [pdf]. Sumber

:repository.usu.ac.id%2Fbitstream%2F123456789%2F27978%2F3%2FChapter %2520II.pdf Diakses : 13Februari2013.

58

LAMPIRAN

CONTOH LISTING PROGRAM

1. DT_TCP_max_10.tcl

# Create a simulator object set ns [new Simulator]

# Define different colors for data flows $ns color 1 Blue

$ns color 2 Red $ns color 3 Black $ns color 4 Green # Open the nam trace file set nf [open out.nam w]

set tf [open Trace_DT_TCP_max_10.tr w] $ns namtrace-all $nf

$ns trace-all $tf

#Define a 'finish' procedure proc finish {} {

global ns nf tf $ns flush-trace

#Close the trace file close $nf

close $tf

#Execute nam on the trace file exec nam out.nam & exit 0 } $ns at 5.0 "finish" #Create 6 nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node]

#Create links between the nodes

$ns duplex-link $n0 $n4 1Mb 1ms DropTail $ns duplex-link $n1 $n4 1Mb 1ms DropTail $ns duplex-link $n2 $n4 1Mb 1ms DropTail $ns duplex-link $n3 $n4 1Mb 1ms DropTail

$ns duplex-link $n4 $n5 2Mb 1ms DropTail $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 $ns duplex-link-op $n4 $n5 orient right

#Monitor the queue for the link between node 4 and node 5 $ns duplex-link-op $n4 $n5 queuePos 0.5

$ns queue-limit $n4 $n5 10 #NODE 0

#Create a TCP agent and attach it to node n0 set tcp0 [new Agent/TCP]

$tcp0 set class_ 1

$ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n5 $sink0 $ns connect $tcp0 $sink0

# Create a FTP traffic source and attach it to tcp0 set ftp0 [new Application/FTP]

$ftp0 set packetSize_ 65495 $ftp0 set interval_ 0.05 $ftp0 attach-agent $tcp0 #node 1

#Create a TCP agent and attach it to node n1 set tcp1 [new Agent/TCP]

$tcp1 set class_ 2

$ns attach-agent $n1 $tcp1 set sink1 [new Agent/TCPSink] $ns attach-agent $n5 $sink1 $ns connect $tcp1 $sink1

# Create a FTP traffic source and attach it to tcp1 set ftp1 [new Application/FTP]

$ftp1 set packetSize_ 65495 $ftp1 set interval_ 0.05 $ftp1 attach-agent $tcp1 #node 2

#Create a TCP agent and attach it to node n2 set tcp2 [new Agent/TCP]

$tcp2 set class_ 3

set sink2 [new Agent/TCPSink] $ns attach-agent $n5 $sink2 $ns connect $tcp2 $sink2

# Create a FTP traffic source and attach it to tcp2 set ftp2 [new Application/FTP]

$ftp2 set packetSize_ 65495 $ftp2 set interval_ 0.05 $ftp2 attach-agent $tcp2 #node 3

#Create a TCP agent and attach it to node n3 set tcp3 [new Agent/TCP]

$tcp3 set class_ 4

$ns attach-agent $n3 $tcp3 set sink3 [new Agent/TCPSink] $ns attach-agent $n5 $sink3 $ns connect $tcp3 $sink3

# Create a FTP traffic source and attach it to tcp3 set ftp3 [new Application/FTP]

$ftp3 set packetSize_ 65495 $ftp3 set interval_ 0.05 $ftp3 attach-agent $tcp3

#Schedule events for the FTP agents $ns at 0.2 "$ftp0 start" $ns at 0.3 "$ftp1 start" $ns at 0.4 "$ftp2 start" $ns at 0.5 "$ftp3 start" $ns at 4.0 "$ftp0 stop" $ns at 4.0 "$ftp1 stop" $ns at 4.0 "$ftp2 stop" $ns at 4.0 "$ftp3 stop" #Run the simulation $ns run

2. Program average_delay_antrian.awk 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(" delay ="end-start); printf("\n")

total_duration = total_duration + packet_duration; }

}

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"); } 3. Program packet_loss_router.awk 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"); } 4. Program throughput_router.awk 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;

} } else { end_time[packet_id] = -1; } } 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