PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ANALISIS PERBANDINGAN UNJUK KERJA DCCP CCID 2 DAN CCID 3 DI JARINGAN KABEL SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Mario Christanto 135314051
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ANALISIS PERBANDINGAN UNJUK KERJA DCCP CCID 2 DAN CCID 3 DI JARINGAN KABEL SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Mario Christanto 135314051
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017 i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
COMPARATIVE ANALYSIS OF THE PERFORMANCE OF DCCP CCID2 AND CCID3 ON CABLE NETWORKS A THESIS Presented as Partial Fullfillment of the Requirements To Obtain Sarjana Komputer Degree In Informatics Engineering Study Program
Mario Christanto 135314051
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN MOTO βOrang-orang yang sukses telah belajar membuat diri mereka melakukan hal yang harus dikerjakan ketika hal itu memang harus dikerjakan, entah mereka menyukainya atau tidak.β (Aldus Huxley).
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK Protokol yang sering digunakan umumnya adalah TCP dan UDP. Tetapi UDP akan menghasilkan trafik yang unfairness bagi TCP. Datagram Congestion Control Protocol (DCCP) merupakan salah satu protokol alternatif pengganti UDP yang memiliki tambahan congestion control mirip dengan TCP tetapi tidak mengirim ulang data yang hilang atau rusak ketika ditransmisikan. DCCP memiliki beberapa jenis algoritma congestion control yaitu CCID2, CCID3, dan CCID4. DCCP diharapkan menjadi protokol yang lebih fairness daripada UDP. Pada penelitian tugas akhir ini akan melakukan penelitian mengamati dan menganalisis kinerja dan tingkat fairness dari protokol DCCP CCID2 dan CCID3 ketika bertemu trafik yang menggunakan protokol TCP New Reno di jaringan kabel. Untuk menguji kinerja dari dua protokol DCCP tersebut akan dilakukan beberapa simulasi dengan merubah beberapa parameter seperti jumlah buffer dan model antrian (Drop Tail dan Random Early Detection). Sedangkan untuk parameter uji yang digunakan pada penelitian tugas akhir ini yaitu : throughput, jitter, rata-rata End-to-End delay, congestion window, packet loss rate dan RTT variance. Hasil dari penelitian menunjukkan bahwa kinerja CCID3 dengan seiring bertambahnya buffer pada jenis antrian drop tail mengalami penurunan. Sedangkan CCID2 pada antrian drop tail dengan bertambahnya buffer kinerjanya lebih baik dari CCID3. Pada antrian RED kedua protokol DCCP (CCID2 dan CCID3) samasama mengalami penurunan, tetapi CCID3 mengalami penurunan yang tinggi pada antrian ini.
Kata kunci: DCCP, CCID2, CCID3, TCP, UDP.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT The most commonly used protocols are TCP and UDP. However, UDP will generate unfairness traffic for TCP. The Datagram Congestion Control Protocol (DCCP) is one of the alternative UDP replacement protocols that have an additional congestion control similar to TCP but does not retransmission the lost or corrupted data when it is transmitted. DCCP has several types of congestion control algorithms: CCID2, CCID3, and CCID4. DCCP is expected to be a more fairness protocol than UDP. In this thesis, the writer will do a research to observe and analyze performance and fairness level of DCCP CCID2 and CCID3 protocol when meeting traffic using TCP New Reno protocol on cable network. To test the performance from the two DCCP protocols, the writer will perform some simulations by changing some parameters such as number of buffers and queuing models (Drop Tail and RED). As for the test parameters used to determine the results of this thesis
are:
throughput, jitter, the average of End-to-End delay, congestion window, packet loss rate and RTT variance. The results of this research show that CCID3 performance with the increasing buffer in the Drop Tail queue type has decreased throughput. While the performanceβs of CCID2 in the drop tail queue with increasing buffer is better than CCID3. In the RED queue type both of DCCP protocols (CCID2 and CCID3) performance have decreased, but CCID3 experienced a high.
Keywords: DCCP, CCID2, CCID3, TCP, UDP
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa atas segala berkat, karunia dan rahmat yang telah diberikan dalam penyelesaian tugas akhir βAnalisis Perbandingan Unjuk Kerja DCCP CCID2 dan CCID3 di Jaringan Kabel Dalam menyelesaikan tugas akhir ini penulis telah melalui berbagai tahapan yang telah dilalui sampai dengan penyusunan penulisan tugas akhir ini dan melibatkan banyak pihak yang memberikan bantuan seperti bimbingan, saran, semangat, kritik dan dukungan, oleh sebab itu penulis mengucapkan terimakasih kepada : 1. Tuhan Yang Maha Esa, yang selalu memberikan berkat dan karunia selama pengerjaan tugas akhir ini. 2. Ayah dan ibu yang selalu memberikan semangat, motivasi, dukungan moral dan spiritual selama menyelesaikan tugas akhir ini. 3. Bapak Bambang Soelistijanto, S.T., M.Sc., Ph.D., selaku dosen pembimbing yang dengan sabar membimbing, memberi saran dan memotivasi penulis selama proses pengerjaan tugas akhir. 4. Teman-teman pejuang skripsi laboratorium jaringan komputer 2013 (Hotman, Raymond, Andre, Feliks, Vinsen, Adrian, Benny, Heri dan temanteman jaringan angkatan 2013 lainnya), Barry, Pentor serta teman-teman Teknik Informatika angkatan 2013 yang telah memberikan semangat serta berbagai suka duka dalam proses pengerjaan tugas akhir. 5. Enrico Wellington yang telah banyak membantu menyelesaikan abstrak bahasa inggris. 6. Semua dosen program studi Teknik Informatika. Terima kasih telah memberikan ilmu yang sangat bermanfaat bagi saya selama perkuliahan dan semoga ilmu yang telah diberikan dapat bermanfaat dikemudian hari. 7. Semua pihak yang tidak bisa disebutkan satu persatu yang telah membantu dalam penyelesaian tugas akhir ini.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL.................................................................................................i TITLE PAGE .......................................................................................................... ii HALAMAN PERSETUJUAN ............................................................................... iii HALAMAN PENGESAHAN.................................................................................iv PERNYATAAN KEASLIAN KARYA ..................................................................v HALAMAN MOTO ...............................................................................................vi LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ............................................................................ vii ABSTRAK ........................................................................................................... viii ABSTRACT ............................................................................................................ix KATA PENGANTAR .............................................................................................x DAFTAR ISI ......................................................................................................... xii DAFTAR GAMBAR .............................................................................................xv DAFTAR GRAFIK ...............................................................................................xvi DAFTAR TABEL ............................................................................................... xvii BAB I PENDAHULUAN .......................................................................................1 1.1.
Latar Belakang .........................................................................................1
1.2.
Rumusan Masalah ....................................................................................2
1.3.
Tujuan ......................................................................................................2
1.4.
Batasan Masalah.......................................................................................3
1.5.
Metodologi Penelitian ..............................................................................3
1.5.1. Studi Literatur ........................................................................................3 1.5.2. Analisis Kebutuhan ................................................................................3 1.5.3. Perancangan Dan Pembangunan Simulasi .............................................3 1.5.4. Pengujian ...............................................................................................4 1.5.5. Analisis Data Dan Pembahasan .............................................................4 1.6.
Sistematika Penulisan ..............................................................................4
BAB II LANDASAN TEORI ..................................................................................5 2.1.
Datagram Congestion Control Protocol (DCCP) .......................................5
2.1.1. Congestion Control ID 2 (CCID 2)........................................................5 2.1.1.1.
Fase Slow-Start ...........................................................................6
2.1.1.2.
Congestion Avoidance ................................................................6
2.1.2. Congestion Control ID 3 (CCID 3)........................................................7 2.1.2.1.
Fase Slow-Start ...........................................................................7 xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.1.2.2. 2.2.
Setelah Fase Slow-Start ..............................................................7
User Datagram Protocol (UDP) ...............................................................8
2.2.1. Connectionless .......................................................................................8 2.2.2. Best Effort ..............................................................................................8 2.3.
Transmission Control Protocol (TCP) .....................................................8
2.3.1. TCP New Reno ....................................................................................11
2.4.
2.3.1.1.
Slow Start..................................................................................11
2.3.1.2.
Congestion Avoidance ..............................................................12
2.3.1.3.
Fast Retransmit dan Fast Recovery ..........................................13
Manajemen Antrian di Router ................................................................16
2.4.1. Passive Queue Management (PQM) ....................................................16 2.4.1.1.
Drop Tail ...................................................................................16
2.4.2. Active Queue Management (AQM) ....................................................17 2.4.2.1. 2.5.
Random Early Detection (RED) ...............................................17
Network Simulator 2 (NS2) ...................................................................19
BAB III PERANCANGAN SIMULASI JARINGAN .........................................22 3.1.
Flowchart Penelitian dan Perancangan Simulasi ...................................22
3.2.
Topologi .................................................................................................23
3.3.
Parameter Simulasi.................................................................................24
3.4.
Skenario Simulasi Pengujian..................................................................25
3.4.1. Matriks Skenario Pengujian .................................................................25 3.4.2. Topologi Skenario Pengujian TCP New Reno vs DCCP ....................25 3.4.3. Topologi Skenario Pengujian TCP New Reno vs UDP .......................26 3.5.
Parameter Kinerja atau Performance Metrics ........................................27
3.5.1. Throughput ..........................................................................................27 3.5.2. Rata-rata End-to-End Delay ................................................................27 3.5.3. Jitter .....................................................................................................28 3.5.4. Paket Hilang (Packet Loss Rate) .........................................................28 3.5.5. Variasi RTT (RTT Variance) ..............................................................28 3.5.6. Congestion Window (cwnd) ................................................................29 BAB IV ANALISIS DATA ..................................................................................30 4.1.
Hasil Simulasi ........................................................................................30
4.1.1. Skenario 1 TCP newReno vs DCCP (Buffer : 50, Drop Tail) .............30 4.1.2. Skenario 2 TCP newReno vs DCCP (Buffer : 100, Drop Tail) ...........30 4.1.3. Skenario 3 TCP newReno vs DCCP (Buffer : 150, Drop Tail) ...........31 4.1.4. Skenario 4 TCP newReno vs DCCP (Buffer : 200, Drop Tail) ...........31 xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.1.5. Skenario 5 TCP newReno vs DCCP (Buffer : 50, RED) ....................31 4.1.6. Skenario 6 TCP newReno vs DCCP (Buffer : 100, RED) ..................31 4.1.7. Skenario 7 TCP newReno vs DCCP (Buffer : 150, RED) ..................31 4.1.8. Skenario 8 TCP newReno vs DCCP (Buffer : 200, RED) ..................32 4.1.9. Skenario 9 TCP newReno vs UDP ......................................................32 4.2.
Analisis Hasil .........................................................................................32
4.2.1. Throughput ..........................................................................................32 4.2.2. Rata-rata End-to-End Delay ................................................................41 4.2.3. Jitter .....................................................................................................42 4.2.4. Packet Los Rate ...................................................................................44 4.2.5. RTT Variance ......................................................................................46 4.2.6. Congestion Window ............................................................................48 BAB V KESIMPULAN DAN SARAN ................................................................61 5.1.
Kesimpulan ............................................................................................61
5.2.
Saran.......................................................................................................61
DAFTAR PUSTAKA ............................................................................................63 LAMPIRAN ...........................................................................................................64
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2.1 Mekanisme Congestion Control CCID2 ............................................. 6 Gambar 2.2 Menutup Koneksi TCP ........................................................................ 9 Gambar 2.3 Menutup Koneksi TCP ...................................................................... 10 Gambar 2.4 Gambar Slow start TCP..................................................................... 12 Gambar 2.5 Congestion Avoidance TCP .............................................................. 13 Gambar 2.6 Fast Retransmit dan Fast Recovery TCP new reno ........................... 15 Gambar 2.7 Diagram State TCP new reno ............................................................ 16 Gambar 2.8 Fungsi Drop Tail dan RED................................................................ 18 Gambar 2.9 Arsitektur NS 2.................................................................................. 19 Gambar 3.1 Diagram Flowchart Penelitian dan Perancangan Simulasi ............... 22 Gambar 3.2 Topologi Dumb-bell .......................................................................... 23 Gambar 3.3 Topologi Skenario TCP new reno vs DCCP CCID2 dan CCID3 ..... 26 Gambar 3.4 Topologi Skenario 9 TCP new reno vs UDP .................................... 27
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GRAFIK Grafik 4.1 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP ............................................................................................... 32 Grafik 4.2 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP ............................................................................................... 33 Grafik 4.3 Throughput TCP vs DCCP Buffer 50 Antrian Drop Tail .................... 35 Grafik 4.4 Throughput TCP vs DCCP Buffer 100 Antrian Drop Tail .................. 36 Grafik 4.5 Throughput TCP vs DCCP Buffer 150 Antrian Drop Tail .................. 37 Grafik 4.6 Throughput TCP vs DCCP Buffer 200 Antrian Drop Tail .................. 38 Grafik 4.7 Throughput TCP vs DCCP Buffer 50 Antrian RED ........................... 39 Grafik 4.8 Throughput TCP vs DCCP Buffer 100 Antrian RED ......................... 39 Grafik 4.9 Throughput TCP vs DCCP Buffer 150 Antrian RED ......................... 40 Grafik 4.10 Throughput TCP vs DCCP Buffer 200 Antrian RED ....................... 40 Grafik 4.11 Pengaruh Buffer dan Jenis Antrian Terhadap Rata-rata E2E Delay DCCP ............................................................................................... 41 Grafik 4.12 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Jitter DCCP ... 43 Grafik 4.13 Pengaruh Buffer dan Jenis Antrian Terhadap Packet Loss Rate DCCP ......................................................................................................... 44 Grafik 4.14 Pengaruh Buffer dan Jenis Antrian Terhadap Rata-Rata RTT Variance CCID3 .............................................................................................. 46 Grafik 4.15 RTT variance CCID3 ......................................................................... 47 Grafik 4.16 Congestion Window TCP New Reno dan CCID2 Buffer 50 Drop Tail ......................................................................................................... 48 Grafik 4.17 Congestion Window TCP New Reno vs CCID3 Buffer 50 Drop Tail ......................................................................................................... 49 Grafik 4.18 Congestion Window TCP New Reno dan CCID2 Buffer 100 Drop Tail ................................................................................................... 50 Grafik 4.19 Congestion Window TCP New Reno vs CCID3 Buffer 100 Drop Tail ......................................................................................................... 51 Grafik 4.20 Congestion Window TCP New Reno dan CCID2 Buffer 150 Drop Tail ................................................................................................... 52 Grafik 4.21 Congestion Window TCP New Reno vs CCID3 Buffer 150 Drop Tail ......................................................................................................... 53 Grafik 4.22 Congestion Window TCP New Reno dan CCID2 Buffer 200 Drop Tail ................................................................................................... 54 Grafik 4.23 Congestion Window TCP New Reno vs CCID3 Buffer 200 Drop Tail ......................................................................................................... 55 Grafik 4.24 Congestion Window TCP New Reno dan CCID2 Buffer 50 RED ... 56 Grafik 4.25 Congestion Window TCP New Reno vs CCID3 Buffer 50 RED ..... 56 Grafik 4.26 Congestion Window TCP New Reno dan CCID2 Buffer 100 RED . 57 Grafik 4.27 Congestion Window TCP New Reno vs CCID3 Buffer 100 RED ... 57 Grafik 4.28 Congestion Window TCP New Reno dan CCID2 Buffer 150 RED . 58 Grafik 4.29 Congestion Window TCP New Reno vs CCID3 Buffer 150 RED ... 58 Grafik 4.30 Congestion Window TCP New Reno dan CCID2 Buffer 200 RED . 59 Grafik 4.31 Congestion Window TCP New Reno vs CCID3 Buffer 200 RED ... 59
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL Tabel 3.1 Parameter Simulasi ............................................................................... 24 Tabel 3.2 Skenario ................................................................................................ 25 Tabel 4.1 Hasil Skenario 1 TCP newReno vs DCCP............................................ 30 Tabel 4.2 Hasil Skenario 2 TCP newReno vs DCCP............................................ 30 Tabel 4.3 Hasil Skenario 3 TCP newReno vs DCCP............................................ 31 Tabel 4.4 Hasil Skenario 4 TCP newReno vs DCCP............................................ 31 Tabel 4.5 Hasil Skenario 5 TCP newReno vs DCCP............................................ 31 Tabel 4.6 Hasil Skenario 6 TCP newReno vs DCCP............................................ 31 Tabel 4.7 Hasil Skenario 7 TCP newReno vs DCCP............................................ 31 Tabel 4.8 Hasil Skenario 8 TCP newReno vs DCCP............................................ 32 Tabel 4.9 Hasil Skenario 9 TCP newReno vs UDP .............................................. 32 Tabel 4.10 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP ............................................................................................... 33 Tabel 4.11 Pengaruh Buffer dan Jenis Antrian Terhadap Rata-rata E2E Delay DCCP ............................................................................................... 41 Tabel 4.12 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Jitter DCCP .... 42 Tabel 4.13 Pengaruh Buffer dan Jenis Antrian Terhadap Packet Loss Rate DCCP ......................................................................................................... 44 Tabel 4.14 Pengaruh Buffer dan Jenis Antrian Terhadap Rata-Rata RTT Variance CCID3 .............................................................................................. 46
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN 1.1. Latar Belakang Ada berbagai jenis protokol internet yang digunakan untuk mengirim data. Adapun protokol yang sering digunakan adalah Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). Kedua protokol tersebut bekerja pada layer transport yang sama-sama bertugas mengirim data. Akantetapi TCP dan UDP memiliki karakteristik yang berbeda dalam melakukan pengiriman data. Transmission Control Protocol (TCP) merupakan protokol yang reliable atau handal, connection oriented atau berorientasi koneksi (dalam pertukaran data diharuskan membangun sebuah koneksi terlebih dahulu antara sender dengan receiver), flow control (mengatur banyak data yang dikirim), fullduplex (setiap host dapat menerima atau mengirim data), byte stream dan memiliki congestion control. TCP digunakan pada aplikasi yang tidak membutuhkan fitur real-time seperti aplikasi yang menggunakan protokol HTTP, HTTPs, FTP, SMTP, SSH, dan Telnet. TCP memiliki beberapa algoritma congestion control. contohnya TCP Tahoe, Reno, New Reno, SACK, dan Vegas. User Datagram Protocol (UDP) merupakan protokol yang unreliable (tidak handal), tidak berorientasi koneksi (connectionless), half duplex, memiliki resource yang ringan dan tidak memiliki congestion control. UDP digunakan pada aplikasi yang membutuhkan fitur real-time seperti aplikasi yang menggunakan protokol Voice over IP (VoIP), Trivial File Transfer Protocol (TFTP), NTP, DHCP, SNMP dan online multiplayer games. Dari karakteristik UDP tersebut membuat protokol ini cenderung tidak fairness ketika kedua protokol TCP dan UDP mengirim data ke dalam satu jalur dengan bandwidth yang terbatas dan UDP akan menggunakan seluruh kapasistas bandwidth yang disediakan maka kinerja TCP akan semakin menurun karena karakteristik TCP yang friendly protocol dan memungkinkan TCP mengalami congestion collaps. Oleh karena itu diperlukan sebuah pengembangan protokol UDP atau protokol baru yang lebih fairness
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
terhadap TCP. Internet Engineering Task Force (IETF) mengajukan Datagram Congestion Control Protocol kemudian pada maret 2006 DCCP telah distandarkan dan diharapkan bisa menjadi alternatif pengganti protokol UDP karena lebih fairness. Datagram Congestion Control Protocol (DCCP) merupakan protokol alternatif pengganti UDP yang bekerja pada lapisan transport untuk transmisi streaming multimedia yang memiliki tambahan congestion control yang mirip dengan TCP, akantetapi DCCP tidak mengirim ulang data
(retransmission
data)
yang
hilang
atau
dibuang
ketika
ditransmisikan. DCCP memiliki beberapa jenis algoritma congestion control yaitu CCID2, CCID3, dan CCID4 (masih dalam pengembangan). CCID2 (TCP-like congestion control), CCID3(TCP-Friendly Rate Control/TFRC),
CCID4(TCP-Friendly
Rate
Control
for
Small
Packet/TFRC-SP) [8]. Pada tugas akhir ini penulis akan melakukan penelitian mengenai kinerja dan tingkat fairness dari protokol DCCP CCID2 dan CCID3 ketika bertemu trafik yang menggunakan protokol TCP New Reno. Pada penelitian ini penulis akan melakukan beberapa simulasi dengan merubah beberapa parameter seperti jumlah buffer dan model antrian (Drop Tail dan RED). Sedangkan untuk parameter uji yang digunakan untuk mengetahui hasil dari penelitian tigas akhir ini yaitu : throughput, jitter, rata-rata End-to-End delay, congestion window, packet loss rate dan RTT variance. 1.2. Rumusan Masalah Berdasarkan latar belakang di atas, maka didapatkan rumusan masalah yaitu membandingkan kinerja algoritma congestion control yang terdapat pada protokol DCCP CCID 2 dan CCID 3 serta tingkat fairness terhadap protokol TCP New Reno. 1.3. Tujuan Tujuan dari tugas akhir ini adalah untuk mengetahui perbandingan kinerja dan tingkat fairness dari penggunaan protokol DCCP yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
memiliki mekanisme congestion control CCID 2 dan CCID 3 terhadap protokol TCP New Reno. 1.4. Batasan Masalah a) Menggunakan protokol TCP New Reno. b) Menggunakan Network Simulator 2. c) Menggunakan dua jenis trafik yaitu trafik FTP dan CBR. d) Menggunakan topologi dumb-bell. e) Menggunakan jaringan berbasis wired. f) Performance metric yang digunakan adalah throughput, rata-rata end-to-end delay, jitter, packet loss rate, RTT variance dan congestion window (cwnd). 1.5. Metodologi Penelitian Metodologi dan langkah-langkah yang digunakan dalam pelaksanaan pengerjaan tugas akhir ini sebagai berikut : 1.5.1. Studi Literatur a)
Teori TCP
b) Teori TCP New Reno c)
Teori UDP
d) Teori DCCP e)
Teori Queue Management Policy
f)
Teori Network Simulator 2
1.5.2. Analisis Kebutuhan Pada tahap ini penulis akan menganalisis kebutuhan yang berguna dalam pelaksanaan penelitian tugas akhir ini. 1.5.3. Perancangan Dan Pembangunan Simulasi Pada tahap ini penulis akan menentukan dan merancang simulasi agar data yang dihasilkan tepat. Seperti menentukan topologi, model jaringan berbasis kabel (wired) atau nirkabel (wireless).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
1.5.4. Pengujian Pada tahap ini penulis akan menjalankan hasil rancangan simulasi pada tahap sebelumnya. Penulis menggunakan Network Simulator 2 sebagai alat untuk menjalankan simulasi. 1.5.5. Analisis Data Dan Pembahasan Pada tahap ini penulis sudah mendapatkan data dari hasil simulasi. Kemudian penulis akan menganalisis data tersebut untuk menarik sebuah kesimpulan. 1.6. Sistematika Penulisan Sistematika penulisan yang digunakan dalam penyusunan tugas akhir ini adalah sebagai berikut : BAB I PENDAHULUAN Bab ini berisi latar belakang, rumusan masalah, metode penelitian dan sistematika penulisan. BAB II LANDASAN TEORI Bab ini berisi tentang teori-teori yang berkaitan dengan topik pada tugas akhir ini. BAB III PERANCANGAN SIMULASI JARINGAN Bab ini berisi perencanaan simulasi jaringan yang meliputi topologi jaringan, parameter, dan skenario pengujian. BAB IV ANALISIS DATA Bab ini berisi tentang pelaksanaan simulasi dan analisa hasil dari simulasi. BAB V KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dan saran yang diperoleh setelah pelaksanaan simulasi dan analisis hasil dari simulasi selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI 2.1. Datagram Congestion Control Protocol (DCCP) Datagram Congestion Control Protocol (DCCP) merupakan protokol lapisan transport yang berorientasi koneksi. Protokol ini berbeda dari UDP karena memiliki mekanisme congestion control dan berbeda dengan TCP karena DCCP tidak memberikan kehandalan yang terjamin [11]. DCCP memiliki tiga mekanisme congestion control yaitu Congestion Control ID 2 yang mengimplementasi TCP-Like Congestion Control, Congestion Control ID 3 yang mengimplementasi TCPFriendly Rate Control dan Congestion Control ID
4
yang
mengimplementasi TCP-Friendly Rate Control for Small Packet. Tetapi yang telah distandarisasi oleh IETF adalah CCID 2 dan CCID3, sedangkan CCID 4 masih tahap percobaan. 2.1.1. Congestion Control ID 2 (CCID 2) CCID 2 menggunakan algortima TCP-like congestion control yang menerapkan Additive Increase Multiplicative Decrease (AIMD) congestion control yang memiliki congestion window (cwnd), slow start, timeout, dll. CCID 2 mengelolah 3 parameter seperti cwnd (congestion window), pipe dan ssthresh (slow-start threshold). Jika cwnd lebih kecil dari ssthresh berarti sedang dalam fase slow-start, sebaliknya jika cwnd lebih dari ssthresh maka sedang dalam fase congestion avoidance. Proses tersebut sama dengan TCP tetapi yang membedakan adalah CCID 2 tidak mengirim ulang paket yang hilang. Algoritma ini juga menggunakan duplicate acknowledgement (3 ACK) dan timeout yang mengindikasikan bahwa ada paket hilang sehingga menyimpulkan terjadi congestion. Jika congestion karena packet loss (duplicate acknowledgement) maka sstresh = cwnd/2 dan cwnd = sstresh. Sedangkan jika congestion karena packet loss (timeout) maka sstresh=cwnd/2 dan cwnd = 1 MSS.
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
2.1.1.1.
Fase Slow-Start Pada tahap ini sebelum pengiriman paket, CCID2 (pengirim)
akan
menginisialisasikan
nilai
awal
congestion window (cwnd = 1 MSS). Kemudian dengan asumsi tidak ada gangguan pada pengiriman paket, jika setiap CCID2 (pengirim) menerima ACK dari CCID2 (penerima) maka nilai dari congestion window akan ditambah satu (cwnd = cwnd + 1 MSS). Nilai dari congestion window akan terus bertambah secara exponensial setiap RTT. 2.1.1.2.
Congestion Avoidance Fase congestion avoidance merupakan tahap ketika congestion window (cwnd) lebih dari atau sama dengan slow start treshold (sstresh). Tahap ini merupakan tahap ketika CCID2 meninggalkan tahap slow start atau ketika terjadi duplikat ACK. Pada tahap ini nilai dari slow start treshold (sstresh = cwnd/2) dan nilai congestion window (cwnd = sstresh). Tahap congestion avoidance merupakan tahap ketika nilai congestion window bertambah 1 MSS secara linier sampai terjadi duplikat ACK atau timeout.
Gambar 2.1 Mekanisme Congestion Control CCID2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
2.1.2. Congestion Control ID 3 (CCID 3) CCID 3 menggunakan algoritma TCP-Friendly Rate Control yang berupaya mengurangi perubahan secara tiba-tiba yang sering terjadi di TCP atau TCP like congestion control. 2.1.2.1.
Fase Slow-Start Pada tahap awal CCID 3 akan menaikan transmission rate atau sending rate sebanyak dua kali lipat setiap menerima ACK per Round Trip Time (RTT) dengan syarat tidak terjadi packet loss. Ketika ada feedback dari penerima bahwa event loss rate terbaru lebih besar dari event loss rate terkecil sebelumnya maka akan masuk ke fase setelah slow start.
2.1.2.2.
Setelah Fase Slow-Start Ketika pengirim menerima laporan packet loss yang lebih besar dari sebelumnya atau ECN dari pihak penerima,
maka
pengirim
akan
menghitung
transmission rate atau sending rate untuk pengiriman berikutnya berdasarkan dua parameter yaitu loss event rate yang dikirim oleh penerima dan Round Trip Time (RTT) hasil kalkulasi pengirim [2]. π=
π 2ππ 2ππ π
β 3 + π‘π
ππ (3β 8 ) π(1 + 32π2 ) ο· T ο· s ο· R ο· b
ο· p ο· tRTO
= transmission rate in bytes/second = packet size in bytes = round trip time in seconds = number of packets acknowledged by a single acknowledgement = loss event rate = Retransmission time out value in seconds
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
2.2. User Datagram Protocol (UDP) User Datagram Protocol atau UDP merupakan salah satu protokol yang bekerja di lapisan transport yang memiliki karakteristik end-to-end, connectionless, halfduplex dan best effort. UDP sering digunakan untuk mengirim informasi atau pesan dengan cepat. Adapun penggunaannya seperti : Network Time Protokol (NTP), Domain Name Service (DNS), dll. 2.2.1. Connectionless UDP adalah protokol yang connectionless yaitu ketika pesan dikirim dari pihak pengirim kepada pihak penerima dengan tidak perlu pembentukan koneksi atau pemutusan koneksi ketika selesai melakukan pengiriman pesan [1]. 2.2.2. Best Effort Protokol UDP merupakan protokol yang cukup simpel karena tidak memiliki flow control dan merupakan protokol transport yang tidak handal (unreliable) karena tidak menggunakan mekasnisme window [1]. UDP juga tidak memiliki mekanisme error control kecuali untuk checksum. Ini berarti pengirim tidak tahu pesan yang telah dikirim hilang atau mengalami duplikasi. Ketika penerima pesan mendeteksi adanya kesalahan melalui checksum maka pesan tersebut akan dibuang. Pesan yang dikirim tidak dijamin dengan kata lain ketika pesan telah dikirim dan diterima dalam keadaan rusak atau hilang maka UDP tidak akan melakukan pengiriman ulang paket. 2.3. Transmission Control Protocol (TCP) Transmission Control Protocol atau TCP merupakan protokol pada lapisan transport yang berorientasi koneksi (connection-oriented) yang membentuk jalur virtual antara source dan destination (End-to-End), handal (reliable), byte-stream, multiplexing, memiliki congestion control, flow control dan error control. Adapun penggunaan dari protokol TCP yaitu HTTP, HTTPs, FTP, SMTP, SSH, dll. TCP memiliki
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
banyak variasi anatara lain TCP Tahoe, Reno, New Reno, Cubic, Westwood, SACK,Vegas, dll yang memiliki perbedaan pada cara penanganan ketika terjadi congestion. Karakteristik dari TCP : a)
Connection-Oriented TCP merupakan protokol Connection Oriented atau berorientasi koneksi yang mengharuskan dua aplikasi yang menggunakan TCP harus membangun koneksi TCP dengan menghubungi satu sama lain sebelum mereka dapat bertukar data.TCP akan membangun sebuah koneksi sebelum mengirim data dan menutup koneksi ketika data selesai dikirim atau salah satu pihak mengakhiri koneksi dengan mengirim paket bertanda FIN. Dengan menggunakan teknik threeway handshaking untuk membangun atau menutup koneksi antar host.
Gambar 2.2 Menutup Koneksi TCP
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Gambar 2.3 Menutup Koneksi TCP b) Reliable Data yang dikirim oleh TCP akan terlebih dahulu diurutkan dengan sebuah nomor urut paket (sequence number) dan akan menerima acknowledgment (ACK) dari penerima. Jika ada paket yang tidak mendapatkan acknowledgment dari penerima, maka segmen TCP akan ditransmisikan ulang. Pada pihak penerima, segmen-segmen yang duplikat akan diabaikan dan segmen-segmen yang datang tidak sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan segmen-segmen TCP. c)
Byte Stream TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan
(kontinyu).
Nomor
urut
TCP
dan
nomor
acknowledgment dalam setiap header TCP didefinisikan juga dalam bentuk byte. d) Congestion Control TCP memiliki mekanisme congestion control untuk mencegah atau mengatasi kemacetan yang terjadi di jaringan seperti penerapan slow start
dan
congestion
avoidance.
Congestion
control
juga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
berhubungan dengan flow control yaitu untuk menangani kemacetan dengan menggunakan flow control. e)
Flow Control Setiap host yang menggunakan TCP baik pengirim atau penerima memiliki tempat penyimpanan data sementara (buffer) yang terbatas, oleh karena itu diperlukan mekanisme flow control yang mengatur jumlah data yang dikirim agar dapat ditampung di buffer penerima. TCP di pihak penerima juga menggunakan flow control untuk memberitahu jumlah buffer yang tersedia ke TCP pengirim.
f)
Error Control Ada dua jenis error pada saat mengirim data yaitu paket hilang (lost packet) dan paket rusak (damaged packet). Untuk mengatasi masalah tersebut TCP mengimplementasi mekanisme error control. Error control pada TCP memiliki hubungan dengan karakteristik reliable. Untuk masalah paket rusak TCP menjamin integritas setiap segmen TCP, TCP mengimplementasikan penghitungan TCP checksum. Jika hasil perhitungan checksum data yang diterima oleh pihak penerima menghasilkan bahwa data yang ada kerusakan maka TCP penerima akan melakukan permintaan pengiriman ulang paket tersebut. Sama halnya dengan paket hilang, TCP penerima akan melakukan permintaan pengiriman ulang paket.
2.3.1. TCP New Reno TCP New Reno adalah salah satu jenis dari TCP yang merupakan modifikasi atau perbaikan dari TCP Reno. Pada TCP Reno tidak bisa menangani ketika terjadi packet loss atau error yang berurutan dalam satu congestion window. TCP New Reno memiliki fitur yang sama dengan TCP Reno tetapi yang membedakan keduanya adalah pada mekanisme fast recovery. 2.3.1.1.
Slow Start Sama halnya dengan TCP Tahoe atau Reno, slow start pada new reno merupakan algoritma tahap awal ketika
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
TCP membangun koneksi antara TCP (pengirim) dengan TCP (penerima) sampai mengirim paket selama congestion window belum mencapai sstresh atau tidak ada terjadi packet loss. Pada tahap ini sebelum pengiriman paket, TCP (pengirim) akan menginisialisasikan nilai awal congestion window (cwnd = 1 MSS). Kemudian dengan asumsi tidak ada gangguan pada pengiriman paket, jika setiap TCP (pengirim) menerima ACK dari TCP (penerima) maka nilai dari congestion window akan ditambah satu (cwnd = cwnd + 1 MSS). Nilai dari congestion window akan terus bertambah secara exponensial setiap RTT.
Gambar 2.4 Gambar Slow start TCP 2.3.1.2.
Congestion Avoidance Congestion
avoidance
merupakan
tahap
ketika
congestion window (cwnd) lebih dari atau sama dengan slow start treshold (sstresh). Tahap ini merupakan tahap ketika TCP meninggalkan tahap slow start atau ketika terjadi duplikat ACK. Pada tahap ini nilai dari slow start treshold (sstresh = cwnd/2) dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
nilai congestion window (cwnd = sstresh). Tahap congestion avoidance merupakan tahap ketika nilai congestion window bertambah 1 MSS secara linier sampai terjadi duplikat ACK atau timeout.
Gambar 2.5 Congestion Avoidance TCP
2.3.1.3.
Fast Retransmit dan Fast Recovery Pada TCP Reno ketika pengirim menerima duplikat ACK sebanyak tiga atau waktu retransmission habis maka TCP Reno akan mengirim ulang hanya paket yang dilaporkan hilang, ini merupakan tahap fast retransmit. Fast retransmit dipicu oleh dua kondisi yaitu ketika ada laporan duplikat ACK sebanyak tiga dengan asumsi hanya terdapat satu packet loss dalam satu congestion window yang sama, kemudian masuk ke tahap fast recovery dan ketika timeout akan melakukan slow start. TCP Reno memiliki kelemahan yakni tidak bisa menangani ketika terjadi multiple packet loss yang beruntun pada satu congestion
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
window yang sama. TCP reno akan terus mengurangi ukuran window beberapa kali dalam kasus multiple packet loss tersebut. Hal tersebut akan berdampak buruk pada kinerja dari TCP reno. Oleh karena itu pada pengembangan berikutnya yaitu TCP new reno dibuat dengan memodifikasi algoritma fast recovery agar mampu menangani multiple packet loss. Pada TCP new reno ketika pada tahap fast recovery dan menerima duplikat ACK sebanyak tiga maka TCP new reno akan menunggu dalam waktu tertentu untuk mendeteksi packet loss lainnya kemudian mencatat nomor urut atau sequence number tertinggi dari segmen yang dikirim pada tahap fast recovery ke sebuah variabel recover. Selanjutnya ketika pengirim menerima ACK parsial (ACK parsial adalah ACK dengan nomor urut kurang dari recover) maka pengirim akan mengirim segmen yang hilang tersebut, proses ini akan dilakukan sebanyak segmen yang hilang tanpa meninggalkan tahap fast recovery. Setelah semua ACK diterima pengirim ketika berada di tahap fast recovery, TCP new reno akan keluar dari tahap fast recovery menuju tahap congestion avoidance. Jika pengirim menerima ACK baru (ACK baru adalah ACK dengan nomor urut lebih dari sama dengan nilai recover) maka akan masuk ke tahap congestion avoidance dan congestion window menjadi cwnd = ssthresh.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
TCP Sender
TCP Receiver EffectiveWindow
#1
#2
#3
#4
#5
NextByteExpected = LastByteRecvd + 1 #6 LastByteRecvd
LastByteAcked = LastByteSent
Receive buffer
(loss) (loss) (loss)
Time #2
#6
NextByteExpected
FlightSize
LastByteAcked
#4
LastByteRecvd te) ) te) lica ate p u lica plic d p ( u u d ( (d k#1 k #1 Ac k #1 Ac Ac
LastByteSent
LOSS DETECTED (3ο΄ dupACKs) Seg#1 (retransmission) #1
LOSS DETECTED (partial ACK)
#2
#4
#6 LastByteRecvd
Ack#3 (partial) NextByteExpected
Seg#3 (retransmission)
Gambar 2.6 Fast Retransmit dan Fast Recovery TCP new reno
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
Gambar 2.7 Diagram State TCP new reno 2.4. Manajemen Antrian di Router Manajemen antrian merupakan sebuah algoritma yang digunakan untuk memantau isi antrian seperti paket masuk, keluar atau membuang paket jika diperlukan [16]. Manajemen antrian memiliki beberapa algoritma yaitu : PQM (Passive Queue Management) dan AQM (Active Queue Management). 2.4.1. Passive Queue Management (PQM) PQM (Passive Queue Management) merupakan salah satu algoritma manajemen antrian yang cukup sederhana dan mudah dalam penerapannya. Dalam teknik Passive Queue Management, router biasanya memelihara satu set antrian per satu interface, menampung paket yang telah dijadwalkan keluar dari router melalui interface tersebut[16]. Contoh teknik manajemen antrian dari algoritma ini adalah drop tail dan SFQ (Stochastic Fairness Queuing). 2.4.1.1.
Drop Tail Teknik antrian droptail merupakan teknik antrian sederhana. Teknik antrian ini bekerja dengan cara menentukan panjang antrian dan memantau atau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
memelihara antrian, jika antrian masih ada ruang maka paket yang datang dapat masuk ke buffer. Sedangkan jika antrian penuh maka paket yang akan masuk ke antrian dibuang. 2.4.2. Active Queue Management (AQM) AQM (Active Queue Management) merupakan salah satu algoritma manajemen antrian yang terdiri dari dropping atau ECN-marking packets sebelum antrian penuh. Biasanya AQM bekerja dengan memelihara satu atau beberapa paket yang memiliki probabilitas drop atau ditandai, dan secara probabilistik membuang atau menandai paket ketika antrian masih sedikit[15]. Contoh dari teknik manajemen antrian algoritma ini adalah RED (Random Early Detection). 2.4.2.1.
Random Early Detection (RED) Random
Early
Detection
merupakan
teknik
manajemen antrian yang digunakan untuk menghindari kemacetan. RED memonitor ukuran rata-rata antrian dan drop (atau tanda bila digunakan bersama dengan ECN) paket berdasarkan probabilitas statistik. Jika buffer hampir kosong, semua paket masuk diterima. Seiring bertambahnya antrian, probabilitas untuk membuang paket masuk juga terus tumbuh. Bila buffer hampir penuh, probabilitas membuang paket sudah mencapai satu dan semua paket masuk dijatuhkan. RED lebih adil daripada drop tail, dalam artian tidak memiliki bias terhadap trafik yang membeludak. Semakin banyak host mentransmisikan, semakin besar kemungkinan paketnya dijatuhkan [16]. Jika avg kurang dari ππππ‘β maka paketnya dimasukkan ke antrian. Jika avg lebih dari πππ₯π‘β maka semua paket yang masuk dijatuhkan. Jika avg berada di antara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
ππππ‘β dan πππ₯π‘β , maka paket dijatuhkan dengan probabilitas pa. Fungsi drop untuk Drop Tail dan RED [17]. ππ£π = (1 β π€π ) β Μ
Μ
Μ
Μ
Μ
ππ£π + π€π β π Ket:
- avg = rata-rata antrian - π€π = bobot antrian - Μ
Μ
Μ
Μ
Μ
ππ£π = rata-rata antrian sebelumnya - q = instantaneous queue size
Gambar 2.8 Fungsi Drop Tail dan RED
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
2.5. Network Simulator 2 (NS2) Network Simulator (Version 2) yang dikenal sebagai NS2, merupakan software atau perangkat lunak simulasi jaringan yang berguna dalam mempelajari sifat dinamis dari jaringan komunikasi. Simulasi jaringan kabel serta fungsi jaringan nirkabel dan protokol (misalnya, algoritma routing, TCP, UDP,dll) dapat dilakukan dengan menggunakan NS2. Secara umum, NS2 menyediakan pengguna untuk menentukan protokol jaringan yang dibutuhkan dan skenario simulasi yang dapat disesuaikan. Network Simulator 2 (NS2) menggunakan dua bahasa pemrograman yaitu C++ dan Object-oriented Tool Command Language (OTcl). C++ digunakan sebagai mekanisme internal (backend) simulator sedangkan OTcl untuk mengatur simulasi dengan menyusun dan mengkonfigurasi objek serta penjadwalan peristiwa secara diskrit (frontend). C++ dan OTcl dihubungkan oleh TclCL [3].
Gambar 2.9 Arsitektur NS 2 Untuk menjalankan script simulasi menggunakan perintah ns kemudian diikuti nama file script.tcl. Setelah simulasi selesai dijalankan maka akan menghasilkan output berupa file trace berekstensi β.trβ dan β.namβ . File yang berekstensi .tr merupakan file trace kejadian selama simulasi berlangsung dan dapat dianalisa dengan menggunakan tools bantuan awk script. Sedangkan file berekstensi .nam digunakan untuk menjalankan animasi dari simulasi yang telah dijalankan sebelumnya. Untuk membuat suatu script awk, terlebih dahulu harus mengetahui struktur output dari simulasi NS2 yaitu file yang berekstensi β.trβ .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
Event Time
From To Packet Packet Flow Source Dest Seq. Packet Flags Node Node Type Size ID Addr. Addr. Number ID
a) Event Event merupakan proses atau kejadian yang terjadi selama simulasi dijalankan. Ada beberapa jenis event seperti : ο·
+ : enqueue (kejadian paket masuk antrian)
ο·
- : dequeue (kejadian paket keluar dari antrian)
ο·
r : receive (kejadian ketika paket diterima di node tujuan)
ο·
d : drop (kejadian ketika paket dibuang)
ο·
c : collision (kejadian ketika terjadi tabrakan di level MAC)
b) Time Waktu ketika event terjadi dicatat dalam satuan detik c) From Node Nomor unik pengirim paket d) To Node Nomor unik penerima paket e) Packet Type Tipe paket yang dikirim seperti : TCP, DCCP, UDP, ack,cbr,dll f) Packet Size Ukuran paket yang dikirim dalam satuan byte g) Flags Flags merupakan suatu penanda dari sebuah paket yang dikirim. Ada tujuh flags : 1. E : penanda jika Explicit Congestion Notification (ECN) echo aktif. 2. P : penanda jika prioritas di header IP aktif. 3. Tidak digunakan 4. A : Aksi ketika terjadi congestion 5. E : penanda jika kemacetan terjadi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
6. F : penanda jika TCP fast start sedang digunakan 7. N : penanda ketika lapisan transport dapat menggunakan Explicit Congestion Notification (ECN) h) Flow ID ID aliran data i) Source Address Berisi informasi alamat asal paket dan memiliki format βa.bβ. βaβ adalah alamat atau node sedangkan b adalah port. Contoh : 4.0 ο 4 adalah alamat atau node sedangkan 0 adalah port. j) Destination Address Berisi informasi alamat tujuan paket dan memiliki format βa.bβ. βaβ adalah alamat atau node sedangkan b adalah port. Contoh : 4.0 ο 4 adalah alamat atau node sedangkan 0 adalah port k) Sequence Number Nomor urut setiap paket. l) Packet ID Nomor unik paket.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III PERANCANGAN SIMULASI JARINGAN 3.1. Flowchart Penelitian dan Perancangan Simulasi
Gambar 3.1 Diagram Flowchart Penelitian dan Perancangan Simulasi
22
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
3.2. Topologi Pada penelitian ini akan menggunakan topologi dumb-bell. Topologi ini dipilih karena topologi dumb-bell merupakan topologi yang sederhana untuk dapat menghasilkan efek bottleneck. Efek bottleneck terjadi karena adanya perbedaan antara data yang masuk terlampau besar daripada kapasitas yang dapat ditampung pada node. Dalam kasus ini dan berdasarkan topologi di bawah yang mengalami efek bottleneck ada di node 2 (R1).
S1
D1
R1
S2
R2
D2
Gambar 3.2 Topologi Dumb-bell S1 dan S2 : node pengirim. R1 dan R2 : router D1 dan D2 : node penerima Data dari S1 akan dikirim ke D1 melalui R1 dan R2 ( S1--- R1-----R2---D1 ). Data dari S2 akan dikirim ke D2 melalui R1 dan R2 ( S2--- R1-----R2---D2 ).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
3.3. Parameter Simulasi Pada penelitian ini, penulis menentukan parameter-parameter yang akan dipakai ketika simulasi dijalankan. Parameter untuk melakukan simulasi ini bersifat konstan dan merupakan parameter yang digunakan pada NS2. Parameter tersebut dapat dilihat pada tabel di bawah ini : No
Parameter Simulasi
Nilai
1
Link S1 -- R1, S2 -- R1
Bandwidth : 10 Mbps
2
Link R1 β R2
Bandwidth : 1 Mbps
3
Link R2 β D1, R2 β D2
Bandwidth : 10 Mbps
4
Model Antrian
Drop Tail dan RED
5
Buffer
50, 100, 150 dan 200
6
Protokol Transport
UDP, TCP, DCCP CCID 2 dan DCCP CCID 3 TCP ο FTP - size : 1000
7
UDP,DCCP ο CBR
Trafik
- size : 1000 - rate : 5 Mbps 8
Simulation Time
600 s
Tabel 3.1 Parameter Simulasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
3.4. Skenario Simulasi Pengujian Pada penelitian ini menggunakan sembilan skenario untuk mengukur kinerja dari DCCP dan tingkat fairness terhadap TCP new reno. 3.4.1. Matriks Skenario Pengujian Skenario
Protokol
Antrian
Buffer
1
TCP New Reno vs DCCP
Drop Tail
50
2
TCP New Reno vs DCCP
Drop Tail
100
3
TCP New Reno vs DCCP
Drop Tail
150
4
TCP New Reno vs DCCP
Drop Tail
200
5
TCP New Reno vs DCCP
RED
50
6
TCP New Reno vs DCCP
RED
100
7
TCP New Reno vs DCCP
RED
150
8
TCP New Reno vs DCCP
RED
200
9
TCP New Reno vs UDP Drop Tail Tabel 3.2 Skenario
50
3.4.2. Topologi Skenario Pengujian TCP New Reno vs DCCP Topologi ini digunakan untuk membandingkan kinerja dari CCID2 dengan CCID3 ketika menggunakan buffer (50, 100, 150 dan 200) dan jenis antrian (drop tail dan RED) ketika dihadapkan dengan TCP New Reno. TCP new reno akan dihadapkan dengan kedua protokol DCCP (CCID2, CCID3) dan dijalankan selama 600 detik. Sebuah trafik FTP yang menggunakan protokol TCP new reno akan dialirkan dari node S1 sebagai pengirim (TCP source) menuju ke node D1 sebagai penerima (TCP sink). Sebuah trafik CBR yang menggunakan protokol CCID2 atau CCID3 dialirkan dari node S2 sebagai pengirim (DCCP source) menuju node D2 sebagai penerima (DCCP sink). Kedua trafik dari S1 dan S2 dialirkan menuju node R1 kemudian diteruskan ke R2, selanjutkan trafik dari R2 akan diteruskan ke node D1 atau D2. Pada node R1 dan R2 menggunakan model antrian droptail atau RED dan buffer 50,100, 150, atau 200.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
S1
D1
TCP source
TCP sink
Drop Tail / RED
Drop Tail / RED
R1
R2 Buffer : 50, 100, 150 atau 200
Buffer : 50, 100, 150 atau 200
S2
D2
DCCP source
DCCP sink
Gambar 3.3 Topologi Skenario TCP new reno vs DCCP CCID2 dan CCID3 3.4.3. Topologi Skenario Pengujian TCP New Reno vs UDP Pada skenario kesembilan ini, akan membandingkan kinerja dari TCP newReno ketika dihadapkan dengan UDP. Pada skenario ini penulis mengamati pengaruh UDP terhadap TCP dari sisi fairness. TCP new reno akan dihadapkan dengan UDP dan dijalankan selama 600 detik. Sebuah trafik FTP yang menggunakan protokol TCP new reno akan dialirkan dari node S1 sebagai pengirim (TCP source) menuju ke node D1 sebagai penerima (TCP sink). Sebuah trafik CBR yang menggunakan protokol UDP dialirkan dari node S2 sebagai pengirim (UDP source) menuju node D2 sebagai penerima. Kedua trafik dari S1 dan S2 dialirkan menuju node R1 kemudian diteruskan ke R2, selanjutkan trafik dari R2 akan diteruskan ke node D1 atau D2. Pada node R1 dan R2 menggunakan model antrian Drop Tail dan buffer 50. Skenario pertama ini merupakan skenario yang akan dijadikan tolak ukur dengan skenario lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
S1
D1
TCP source
TCP sink
R1
R2
Droptail Buffer : 50
Droptail Buffer : 50
S2
D2
UDP source
null
Gambar 3.4 Topologi Skenario 9 TCP new reno vs UDP
3.5. Parameter Kinerja atau Performance Metrics Parameter pengujian atau performance metrics yang digunakan pada penelitian ini akan diuraikan sebagai berikut : 3.5.1. Throughput Bandwidth sebenarnya atau aktual yang diukur dalam satuan waktu tertentu dan pada kondisi jaringan tertentu yang digunakan untuk melakukan pengiriman data dari pengirim sampai data diterima oleh penerima. Semakin besar nilai throughput maka semakin baik. Throughput memiliki satuan yang dinyatakan dalam kilo byte persecond (kBps). πβπππ’πβππ’π‘(ππ΅ππ ) =
π½π’πππβ πππ‘π π¦πππ πππππππ (ππ΅) π€πππ‘π’ ππππππππππ πππ‘π (π )
3.5.2. Rata-rata End-to-End Delay Nilai Rata-rata end-to-end delay merupakan selisih dari waktu source mengirim paket
dengan waktu penerimaan paket di
tujuan. Nilai tersebut didapatkan dari total waktu pengiriman sampai paket diterima dibagi jumlah paket yang sampai di tujuan. Rata-rata end-to-end delay memiliki satuan waktu yaitu detik (s) atau mili detik (ms).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
π
ππ‘π β πππ‘π πΈπππ‘ππΈππ π·ππππ¦(π ) = Ket :
Ξ£ (ππ· β ππ ) π
ππ· = π€πππ‘π’ πππππ‘ πππ‘πππππ (π ) ππ = π€πππ‘π’ πππππ‘ πππππππ (π ) π = ππ’πππβ πππππ‘ π¦πππ πππ‘πππππ
3.5.3. Jitter Jitter atau variasi delay merupakan variasi delay antar paket yang terjadi pada jaringan. Besarnya nilai jitter akan sangat dipengaruhi oleh variasi beban trafik dan seringnya terjadi congestion yang ada dalam jaringan. Semakin besar beban trafik di dalam jaringan akan menyebabkan semakin besar pula peluang terjadinya congestion dengan demikian nilai jitter-nya akan semakin besar. Semakin besar nilai jitter akan mengakibatkan nilai QoS akan semakin turun. Untuk mendapatkan nilai QoS jaringan yang baik, nilai jitter harus seminimum mungkin. Jitter = delay i - delay (i-1) π½ππ‘π‘ππ = π£πππππ π πππππ¦ (π ) πππππ¦π = πππππ¦ π πππππππ (π ) πππππ¦(πβ1) = πππππ¦ π πππππ’π (π ) 3.5.4. Paket Hilang (Packet Loss Rate) Packet loss rate merupakan jumlah paket yang hilang ketika sedang ditransmisikan dalam jaringan. Packet loss rate dapat terjadi karena buffer penuh, bit error atau timeout. ππππππ‘ πΏππ π π
ππ‘π =
πππ‘ππ ππππππ‘ π·πππ Γ 100% πππ‘ππ πππππ‘ π·ππππππ
3.5.5. Variasi RTT (RTT Variance) Round Trip Time merupakan waktu yang dihitung dari paket dikirim dari node asal sampai node pengirim menerima ack dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
paket yang dikirim (ack dari node tujuan). Pada beberapa jenis congestion control di TCP atau di protokol lainnya yang menggunakan RTT untuk menghitung nilai transmisi akan terpengaruh jika RTT sering mengalami fluktuasi. Jika RTT besar, maka kemungkinan jaringan mengalami kemacetan. Jika RTT kecil berarti jaringan dalam keadaan normal. Ketika RTT mengalami fluktuasi terus menerus maka RTT variance akan membesar. ππ
ππ = ((1 β πΌ) Γ ππ
ππ) + (πΌ Γ π
β² ) π
πππ£ππ = ((1 β π½) Γ π
πππ£ππ ) + (π½ Γ |ππ
ππ β π
β² ) Ket:
- SRTT = Sample RTT (s) - Rβ= Estimate RTT (s) - RTTvar = RTT variance (s) - Ξ± = 0.125 - Ξ² = 0.25
3.5.6. Congestion Window (cwnd) Congestion window (cwnd) adalah salah satu variabel pada TCP yang digunakan untuk mengontrol atau membatasi jumlah data TCP yang dapat dikirim ke jaringan sebelum menerima ACK. Nilai dari congestion window akan terus bertambah setiap menerima ACK. Selain congestion window ada juga receiver window (rwnd) merupakan variabel yang memberitahu jumlah data yang dapat diterima di sisi tujuan. Kedua variabel tersebut digunakan untuk mengatur aliran data dalam koneksi TCP, untuk meminimalkan kemacetan, dan meningkatkan kinerja jaringan. Congestion window yang stabil akan terlihat seperti gigi gergaji, tapi jika pada jaringan seriang terjadi congestion maka congestion window akan terlihat tidak beraturan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV ANALISIS DATA Untuk mengetahui kinerja dari protokol DCCP CCID2 dan CCID3 maka semua skenario yang telah dibuat dan dijelaskan pada bab tiga dijalankan menggunakan Network Simulator 2 (NS2). Jika semua skenario sudah dijalankan maka akan menghasilkan file seperti file trace β.trβ, Network AniMator β.namβ, dan xgraph β.xgβ. Untuk mengolah semua file tersebut agar bisa dianalisis penulis menggunakan awk untuk mengolah file β.trβ sehingga menghasilkan throughput, jitter, rata-rata end-to-end delay dan packet loss rate. File β.xgβ dapat diolah menggunakan aplikasi xgraph, libre calc, atau microsoft excel. Pada penelitian ini penulis hanya menggunakan awk dan microsoft excel untuk mengolah data keluaran dari simulasi semua skenario yang telah dibuat. 4.1. Hasil Simulasi 4.1.1. Skenario 1 TCP newReno vs DCCP (Buffer : 50, Drop Tail) TCP Throughput Packet Loss Average E2E
CCID2
180.602 151.868 0.44%
0.75%
354.965 351.933
TCP
CCID3
109.593 215.038 1.00%
0.31%
379.259 386.382
1.35068 8.26018 3.68472 3.51372 Jitter Tabel 4.1 Hasil Skenario 1 TCP newReno vs DCCP
4.1.2. Skenario 2 TCP newReno vs DCCP (Buffer : 100, Drop Tail) TCP Throughput Packet Loss Average E2E
CCID2
197.338 140.436 0.38%
0.49%
690.644 682.647
TCP
CCID3
162.274 171.246 0.52%
0.38%
719.736 738.335
Jitter 0.852115 8.26744 2.51051 3.81663 Tabel 4.2 Hasil Skenario 2 TCP newReno vs DCCP
30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
4.1.3. Skenario 3 TCP newReno vs DCCP (Buffer : 150, Drop Tail) TCP Throughput
CCID2
217.288 124.212
Packet Loss
0.41%
0.57%
Average E2E
1037.8
1029.1
TCP
CCID3
226.856 115.728 0.44%
0.70%
1035.59 1052.67
Jitter 0.636317 8.23266 2.45426 3.11967 Tabel 4.3 Hasil Skenario 3 TCP newReno vs DCCP 4.1.4. Skenario 4 TCP newReno vs DCCP (Buffer : 200, Drop Tail) TCP Throughput Packet Loss Average E2E
CCID2
180.383 157.327 0.54%
0.43%
1330.86 1313.32
TCP
CCID3
256.274 90.5695 0.63%
0.99%
1337.76 1335.15
0.705028 8.31679 2.84136 3.46171 Jitter Tabel 4.4 Hasil Skenario 4 TCP newReno vs DCCP
4.1.5. Skenario 5 TCP newReno vs DCCP (Buffer : 50, RED) TCP Throughput Packet Loss Average E2E
CCID2
175.223 146.551 1.70%
1.75%
109.046 108.985
TCP
CCID3
167.976 150.393 2.00%
1.75%
111.619 108.374
Jitter 2.76522 8.20725 3.96515 4.81019 Tabel 4.5 Hasil Skenario 5 TCP newReno vs DCCP 4.1.6. Skenario 6 TCP newReno vs DCCP (Buffer : 100, RED) TCP
CCID2
Throughput
174.29 151.382
Packet Loss
1.09%
Average E2E
1.08%
159.193 159.286
TCP
CCID3
169.367 153.945 1.34%
1.09%
162.215 157.233
Jitter 2.27911 8.23246 3.48448 4.45803 Tabel 4.6 Hasil Skenario 6 TCP newReno vs DCCP 4.1.7. Skenario 7 TCP newReno vs DCCP (Buffer : 150, RED) TCP Throughput Packet Loss Average E2E
CCID2
173.864 154.243 0.82%
0.79%
211.249 210.837
TCP
CCID3
168.09 158.354 1.00%
0.80%
213.719 208.516
Jitter 1.93228 8.26297 3.12396 4.18183 Tabel 4.7 Hasil Skenario 7 TCP newReno vs DCCP
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
4.1.8. Skenario 8 TCP newReno vs DCCP (Buffer : 200, RED) TCP Throughput
CCID2
174.162 155.632
Packet Loss Average E2E
0.69%
0.67%
259.058
257.94
TCP
CCID3
165.431 162.114 0.90%
0.66%
260.022 252.689
Jitter 1.73609 8.29122 2.9873 4.05501 Tabel 4.8 Hasil Skenario 8 TCP newReno vs DCCP 4.1.9. Skenario 9 TCP newReno vs UDP TCP
UDP
Throughput 0.0446427 820.285 Packet Loss 91.30% 80.00% Average E2E 295.344 430.483 Jitter 145.592 0.00574332 Tabel 4.9 Hasil Skenario 9 TCP newReno vs UDP
4.2. Analisis Hasil 4.2.1. Throughput
Thoughput TCP newReno vs UDP
kBps
TCP
UDP
900 800 700 600 500 400 300 200 100 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.1 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP Pada grafik 4.1 menunjukkan bahwa throughput TCP New Reno tidak naik sedikitpun. Hal tersebut terjadi karena throughput UDP menggunakan hampir seluruh bandwidth yang ada, sedangkan TCP New Reno sama sekali tidak bisa mengirim paket karena
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
terganggu oleh UDP yang secara terus menerus mengirim paket tanpa mempedulikan TCP newReno yang sama-sama sedang mengirim paket karena tidak memiliki congestion control. Sehingga throughput yang dihasilkan TCP New Reno sangat kecil. Hal ini menunjukkan bahwa UDP tidak fairness terhadap TCP New Reno. Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP Drop Tail CCID2 CCID3 151.868 215.038 140.436 171.246 124.212 115.728 157.327 90.5695
Buffer 50 100 150 200
RED CCID2 146.551 151.382 154.243 155.632
CCID3 150.393 153.945 158.354 162.114
Tabel 4.10 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP
Pengaruh Buffer & Jenis Antrian Terhadap Throughput DCCP 250
kBps
200 150
CCID2 (Drop Tail)
100
CCID3 (Drop Tail) CCID2 (RED)
50
CCID3 (RED)
0 0
50
100
150
200
250
Buffer
Grafik 4.2 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Throughput DCCP Pada grafik 4.2 menunjukkan pengaruh peningkatan buffer dan penggunaan jenis antrian
Drop Tail dan RED terhadap
throughput CCID2 dan CCID3. Throughput yang dihasilkan oleh CCID2 pada jenis antrian drop tail mengalami penurunan pada buffer 100 dan 150. Ketika buffer 200 thoughput CCID2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
mengalami kenaikan yang sangat tinggi. Sedangkan pada jenis antrian RED, throughput CCID2 mengalami peningkatan tetapi tidak terlalu signifikan seiring dengan ditambahnya jumlah buffer. Throughput yang dihasilkan CCID3 pada jenis antrian drop tail mengalami penurunan seiring dengan bertambahnya buffer, hal ini dikarenakan seiring bertambahnya buffer maka RTT akan semakin
membesar. RTT
yang besar berdampak pada
menurunnya throughput yang dihasilkan CCID3 karena pada CCID3 menggunakan RTT untuk menghitung seberapa besar data yang bisa dikirimkan pada pengiriman selanjutnya dan juga penanda terjadi congestion. Sedangkan pada jenis antrian RED, throughput yang dihasilkan CCID3 mengalami peningkatan yang tidak terlalu signifikan. Hal ini terjadi karena pada jenis antrian RED, buffer tidak digunakan sampai penuh sehingga RTT yang dihasilkan tidak lebih besar dari RTT ketika menggunakan antrian drop tail. Pada grafik 4.2 terlihat bahwa pada antrian drop tail dan ketika buffer kecil (50 sampai 100), throughput CCID3 lebih unggul dari CCID2. Tetapi sebaliknya ketika buffer membesar (150 sampai 200), throughput CCID2 mengungguli CCID3. Hal tersebut dikarenakan perbedaan mekanisme kedua protokol dan jenis antrian drop tail yang selalu menggunakan seluruh ruang buffer. CCID2 tidak menerima dampak yang terlalu besar dengan bertambahnya buffer sedangkan CCID3 terpengaruh dengan bertambahnya buffer karena pada protokol ini menggunakan RTT sebagai penanda terjadinya congestion dan sebagai parameter perhitungan besaran data yang dapat dikirim pada periode selanjutnya. Karena menggunakan jenis antrian drop tail maka RTT yang dihasilkan akan semakin membesar seiring dengan bertambahnya buffer sehingga throughput yang dihasilkan CCID3 semakin menurun.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
Throughput CCID2 dan CCID3 pada jenis antrian RED samasama mengalami kenaikan seiring dengan bertambahnya buffer, tetapi tidak terlalu besar. TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
Time (s)
600
800
CCID3
400 350 300 250 200 150 100 50 0 0
200
400
600
800
Time (s)
(a) (b) Grafik 4.3 Throughput TCP vs DCCP Buffer 50 Antrian Drop Tail
Pada grafik 4.3(a) terlihat bahwa throughput CCID2 tidak mendominasi TCP New Reno, hal ini dikarenakan mekanisme congestion control pada CCID2 yang tidak sebaik yang dimiliki oleh TCP New Reno yang memiliki fase fast recovery. Pada grafik 4.3(a) menunjukkan bahwa CCID2 fairness ketika bekerja secara bersamaan dengan protokol TCP New Reno pada buffer kecil dan menggunakan jenis antrian drop tail. Sedangkan pada grafik 4.2(b) throughput CCID3 terus naik dan cenderung stabil antara 200-250 kBps, sedangkan throughput TCP New Reno mengalami penurunan seiring dengan kenaikan throughput CCID3. Dari grafik 4.3(b) tersebut terlihat bahwa pada buffer kecil dan menggunakan antrian drop tail CCID3 menghasilkan throughput yang tinggi sehingga tidak fairness terhadap TCP New Reno. Sedangkan CCID2 menghasilkan throughput yang lebih rendah dari TCP New Reno, lebih fairness dari CCID3 tetapi kinerja yang dihasilkan lebih rendah dari CCID3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
600
800
400 350 300 250 200 150 100 50 0 0
Time (s)
CCID3
200
400
600
800
Time (s)
(a) (b) Grafik 4.4 Throughput TCP vs DCCP Buffer 100 Antrian Drop Tail
Hampir sama dengan hasil pada grafik 4.3(a), hasil dari grafik 4.4(a) juga terlihat bahwa throughput CCID2 tidak mendominasi TCP new reno, hal ini dikarenakan mekanisme congestion control pada CCID2 yang tidak sebaik yang dimiliki oleh TCP new reno yang memiliki fase
fast recovery. Pada grafik 4.4(a)
menunjukkan bahwa CCID2 fairness ketika bekerja secara bersamaan dengan protokol TCP new reno pada buffer 100 dan menggunakan jenis antrian drop tail. Sedangkan pada grafik 4.4(b) throughput CCID3 terus naik tetapi tidak mendominasi throughput TCP new reno. Sedangkan throughput TCP new reno mengalami penurunan seiring dengan kenaikan throughput CCID3. Dari grafik 4.4(b) tersebut terlihat bahwa pada buffer 100 dan menggunakan antrian drop tail, CCID3 cukup fairness terhadap TCP New Reno.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
Time (s)
(a)
600
800
CCID3
400 350 300 250 200 150 100 50 0 0
200
400
600
800
Time (s)
(b)
Grafik 4.5 Throughput TCP vs DCCP Buffer 150 Antrian Drop Tail
Hampir sama dengan hasil pada grafik 4.3(a) dan 4.4(a), hasil dari grafik 4.5(a) juga terlihat bahwa throughput CCID2 tidak mendominasi TCP New Reno bahkan throughput yang dihasilkan lebih menurun. Pada grafik 4.5(a) menunjukkan bahwa CCID2 fairness ketika bekerja secara bersamaan dengan protokol TCP new reno pada buffer 150 dan menggunakan jenis antrian drop tail tetapi kinerjanya semakin menurun karena mekanisme congestion control pada CCID2 kalah dibandingkan dengan congestion control yang dimiliki oleh TCP New Reno. Sedangkan pada grafik 4.5(b) throughput CCID3 tidak mendominasi throughput TCP New Reno dan lebih kecil dibanding dengan throughput yang dihasilkan CCID3 pada grafik 4.3(b) dan 4.4(b). Sedangkan throughput TCP New Reno tetap mengalami penurunan seiring dengan kenaikan throughput CCID3. Dari grafik 4.5(b) tersebut terlihat bahwa pada buffer 150 dan menggunakan antrian drop tail, CCID3 fairness terhadap TCP New Reno tetapi kinerja CCID3 menurun karena pengaruh buffer yang cukup besar, hal ini memperngaruhi throughput yang dihasilkan karena throughput yang dihasilkan CCID3 sangat dipengaruhi oleh RTT. Semakin besar buffer berarti semakin
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
besar juga RTT sehingga mengakibatkan throughput yang dihasilkan CCID3 lebih kecil. TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
Time (s)
600
800
CCID3
400 350 300 250 200 150 100 50 0 0
200
400
600
800
Time (s)
(a) (b) Grafik 4.6 Throughput TCP vs DCCP Buffer 200 Antrian Drop Tail
Pada grafik 4.6(a) juga terlihat bahwa throughput CCID2 pada awalnya mendominasi TCP New Reno tetapi pada waktu antara 300-400 detik throughput yang dihasilkan CCID2 menurun sedangkan throughput TCP New Reno naik. Pada grafik 4.6(a) menunjukkan bahwa CCID2 fairness ketika bekerja secara bersamaan dengan protokol TCP New Reno pada buffer 200 dan menggunakan jenis antrian drop. Sedangkan pada grafik 4.6(b) throughput CCID3 tidak mendominasi throughput TCP New Reno dan lebih kecil dibanding dengan throughput yang dihasilkan CCID3 pada grafik 4.3(b), 4.4(b) dan 4.5(b). Sedangkan throughput TCP New Reno tetap mengalami penurunan seiring dengan kenaikan throughput CCID3. Dari grafik 4.6(b) tersebut terlihat bahwa pada buffer 200 dan menggunakan antrian drop tail CCID3 fairness terhadap TCP New Reno tetapi kinerja CCID3 menurun sangat jauh jika dibandingkan ketika menggunakan buffer kecil, hal ini dikarenakan pengaruh buffer yang cukup besar sehingga memperngaruhi throughput yang dihasilkan karena throughput
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
yang dihasilkan CCID3 sangat dipengaruhi oleh RTT. Semakin besar buffer berarti semakin besar juga RTT sehingga mengakibatkan throughput yang dihasilkan CCID3 kecil.
TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
600
CCID3
400 350 300 250 200 150 100 50 0
800
0
200
400
Time (s)
600
800
Time (s)
(a)
(b)
Grafik 4.7 Throughput TCP vs DCCP Buffer 50 Antrian RED
TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
Time (s)
(a)
600
800
CCID3
400 350 300 250 200 150 100 50 0 0
200
400
600
Time (s)
(b)
Grafik 4.8 Throughput TCP vs DCCP Buffer 100 Antrian RED
800
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
TCP newReno vs CCID3
TCP newReno vs CCID2
TCP
CCID2
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
0
200
400
600
CCID3
400 350 300 250 200 150 100 50 0 0
800
200
400
600
800
Time (s)
Time (s)
(a)
(b)
Grafik 4.9 Throughput TCP vs DCCP Buffer 150 Antrian RED
TCP newReno vs CCID2 CCID2
TCP
400 350 300 250 200 150 100 50 0
kBps
kBps
TCP
TCP newReno vs CCID3
0
200
400
Time (s)
(a)
600
800
CCID3
400 350 300 250 200 150 100 50 0 0
200
400
600
800
Time (s)
(b)
Grafik 4.10 Throughput TCP vs DCCP Buffer 200 Antrian RED
Pada jenis antrian RED dengan buffer 50 CCID3 tidak menghasilkan throughput yang tinggi seperti di jenis antrian drop tail tetapi lebih fariness. Pada grafik 4.3(b) CCID3 menghasilkan throughput yang tinggi sedangkan pada grafik 4.7(b) throughput yang dihasilkan CCID3 lebih rendah karena CCID3 tidak mendominasi TCP new reno dan pengaruh dari jenis antrian RED serta packet loss rate yang tinggi. Dari keseluruhan hasil yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
didapatkan yaitu grafik 4.7, 4.8, 4.9 dan 4.10 menunjukkan bahwa throughput yang dihasilkan CCID2 dan CCID3 tidak sebaik ketika menggunakan antrian drop tail. Hal ini juga didukung dengan tingginya packet loss rate yang dihasilkan kedua protokol pada jenis antrian RED. 4.2.2. Rata-rata End-to-End Delay Pengaruh Buffer dan Jenis Antrian Terhadap Average End-toEnd Delay DCCP Drop Tail CCID2 CCID3 351.933 386.382 682.647 738.335 1029.1 1052.67 1313.32 1335.15
Buffer 50 100 150 200
RED CCID2 108.985 159.286 210.837 257.94
CCID3 108.374 157.233 208.516 252.689
Tabel 4.11 Pengaruh Buffer dan Jenis Antrian Terhadap Ratarata E2E Delay DCCP
Pengaruh Buffer & Jenis Antrian Terhadap Average End-to-End Delay DCCP 1600 1400 1200
ms
1000
CCID2 (Drop Tail)
800
CCID3 (Drop Tail)
600
CCID2 (RED)
400
CCID3 (RED)
200 0 0
50
100
150
200
250
Buffer
Grafik 4.11 Pengaruh Buffer dan Jenis Antrian Terhadap Ratarata E2E Delay DCCP Pada grafik 4.11 menunjukkan pengaruh buffer dan jenis antrian Drop Tail dan RED terhadap rata-rata end to end delay CCID2 dan CCID3. Rata-rata end to end delay yang dihasilkan CCID2 pada jenis antrian drop tail lebih tinggi dibandingkan ketika menggunakan jenis antrian RED. Seiring dengan bertambahnya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
buffer maka rata-rata end to end delay yang dihasilkan semakin besar. Pada jenis antrian RED rata-rata end to end delay CCID2 juga mengalami kenaikan tetapi tidak setinggi pada antrian drop tail. Hal tersebut dikarenakan semakin besar buffer maka paket yang dapat ditampung semakin banyak dan menyebabkan delay semakin tinggi karena waktu masuk dan keluar paket akan semakin lama dan menghasilkan rata-rata end to end delay yang tinggi. Rata-rata end to end delay yang dihasilkan CCID3 pada dua jenis antrian hampir sama dengan CCID2. Pada antrian RED rata-rata end to end delay CCID2 dan CCID3 tidak mengalami kenaikan yang tidak setinggi antrian drop tail. Hal tersebut bisa terjadi karena mekanisme dari algoritma pada jenis antrian RED yang selalu memelihara buffer agar tidak penuh. Hal tersebut menghasilkan delay dari paket masuk buffer sampai paket diproses keluar dari buffer menjadi lebih kecil jika dibanding dengan drop tail.
4.2.3. Jitter Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Jitter DCCP Buffer 50 100 150 200
Drop Tail CCID2 CCID3 8.26018 3.51372 8.26744 3.81663 8.23266 3.11967 8.31679 3.46171
RED CCID2 8.20725 8.23246 8.26297 8.29122
CCID3 4.81019 4.45803 4.18183 4.05501
Tabel 4.12 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Jitter DCCP
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
Pengaruh Buffer & Jenis Antrian Terhadap Jitter DCCP 10
ms
8 6
CCID2 (Drop Tail)
4
CCID3 (Drop Tail) CCID2 (RED)
2
CCID3 (RED)
0 0
50
100
150
200
250
Buffer
Grafik 4.12 Pengaruh Jumlah Buffer dan Jenis Antrian Terhadap Jitter DCCP Pada grafik 4.12 terlihat bahwa jitter yang dihasilkan CCID2 pada jenis antrian drop tail dan RED sangat tinggi, sedangkan jitter yang dihasilkan CCID3 lebih rendah. Hasil jitter yang didapatkan kedua protokol sangat berbeda jauh dikarenakan perbedaan congestion control kedua protokol. CCID2 menggunakan congestion
control
berbasis
drop
sedangkan
CCID3
menggunakan congestion control berbasis RTT. Keuntungan dari congestion control berbasis RTT adalah jitter yang kecil karena telah didesain untuk menghasilkan jitter yang lebih kecil dibanding dengan congestion berbasis drop. Meskipun jitter yang dihasilkan CCID3 lebih kecil dari CCID2 di jenis antrian drop tail tetapi ketika dijalankan di antrian RED jitter yang dihasilkan CCID3 tinggi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
4.2.4. Packet Los Rate Pengaruh Buffer dan Jenis Antrian Terhadap Packetl Loss DCCP Buffer 50 100 150 200
Drop Tail CCID2 CCID3 0.75% 0.31% 0.49% 0.38% 0.57% 0.70% 0.43% 0.99%
RED CCID2 CCID3 1.75% 1.75% 1.08% 1.09% 0.79% 0.80% 0.67% 0.66%
Tabel 4.13 Pengaruh Buffer dan Jenis Antrian Terhadap Packet Loss Rate DCCP
Packet Loss Rate
Pengaruh Jumlah Buffer & Jenis Antrian Terhadap Packet Loss Rate DCCP 2.00% 1.80% 1.60% 1.40% 1.20% 1.00% 0.80% 0.60% 0.40% 0.20% 0.00%
CCID2 (Drop Tail) CCID3 (Drop Tail) CCID2 (RED) CCID3 (RED)
0
100
200
300
Buffer
Grafik 4.13 Pengaruh Buffer dan Jenis Antrian Terhadap Packet Loss Rate DCCP Pada grafik 4.13 menunjukkan pengaruh buffer dan jenis antrian drop tail dan RED terhadap packet loss rate CCID2 dan CCID3. Packet loss rate yang dihasilkan CCID2 pada antrian drop tail lebih rendah dibanding ketika CCID2 pada antrian RED. Seiring dengan bertambahnya buffer, packet loss rate yang dihasilkan CCID2 di kedua jenis antrian semakin menurun. Pada CCID3, packet loss rate yang dihasilkan ketika menggunakan antrian droptail dan buffer 50 lebih kecil dibanding ketika menggunakan antrian RED. Hal ini dikarenakan buffer yang kecil dan pada antrian RED akan memelihara buffer agar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
tidak penuh. Sehingga kemungkinan paket dibuang akan semakin besar karena pada jenis antrian ini akan membuang semua paket yang datang jika nilai dari rata-rata antrian melebihi atau sama dengan nilai dari πππ₯π‘β dan membuang paket yang telah tertandai (paket yang masuk melebihi nilai rata-rata antrian dan kurang dari nilai πππ₯π‘β ) secara random. Hal tersebut yang menyebabkan nilai dari packet loss rate pada jenis antrian RED lebih besar dari drop tail. Tetapi pada antrian drop tail, packet loss rate CCID3 semakin naik seiring dengan bertambahnya buffer. Hal ini menyebabkan throughput dari CCID3 semakin menurun ketika buffer bertambah besar. Hal tersebut terjadi karena kinerja dari TCP New Reno ketika berhadapan dengan CCID3 semakin membaik dengan bertambahnya buffer. TCP New Reno mulai mendominasi CCID3 jika dilihat dari sisi throughput (lihat tabel 4.7, 4.8, 4.9 dan 4.10) dan congestion window (lihat grafik 4.19, 4.21 dan 4.23) yang semakin setimbang dengan bertambahnya buffer. Dengan adanya dominasi dari TCP New Reno membuat kinerja dari CCID3 semakin menurun. Faktor lainnya adalah pengaruh RTT variance CCID3 yang semakin membesar. Sedangkan pada antrian RED packet loss rate yang dihasilkan pada awalnya lebih besar dari antrian drop tail. Tetapi semakin menurun seiring dengan bertambahnya buffer dan lebih rendah ketika buffer 200. Pada jenis antrian drop tail, packet loss rate yang dihasilkan CCID2 lebih baik dibandingkan dengan CCID3 ketika adanya penambahan buffer. Sedangkan pada jenis antrian RED kedua protokol sama-sama menghasilkan packet loss rate yang semakin menurun dengan adanya penambahan buffer.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
4.2.5. RTT Variance Drop Tail 3.557738401 6.516849125 8.75808906 9.919384819
Buffer
50 100 150 200
RED 2.407523418 3.018141771 3.486756249 4.043758964
Tabel 4.14 Pengaruh Buffer dan Jenis Antrian Terhadap RataRata RTT Variance CCID3
RTT Variance CCID3 Drop Tail
RED
12
Variance (ms)
10 8 6 4 2 0 0
50
100
150
200
250
Buffer (packets)
Grafik 4.14 Pengaruh Buffer dan Jenis Antrian Terhadap RataRata RTT Variance CCID3 Pada
grafik
4.14
menunjukkan
bahwa
pengaruh
dari
bertambahnya jumlah buffer akan mempengaruhi variasi dari RTT. Terlihat bahwa dengan bertambahnya buffer, rata-rata RTT variance CCID3 semakin naik dikedua jenis antrian. Bertambah besarnya variasi setiap penambahan buffer terjadi karena paket yang masuk dan keluar dari router memerlukan waktu yang lebih lama dibandingkan ketika buffer kecil waktu yang diperlukan untuk memproses masuk dan keluar paket lebih singkat. Hal tersebut sangat tidak menguntungkan CCID3 karena pada dasarnya CCID3 menggunakan RTT sebagai perhitungan besar data yang dapat dikirim pada pengiriman selanjutnya dan menyebabkan throughput CCID3 menurun.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
Pada grafik 4.14 menunjukkan pada jenis antrian RED variansi dari RTT tidak sebesar dari jenis antrian drop tail. Hal tersebut terjadi karena jumlah paket yang dapat ditampung pada router yang menggunakan jenis antrian RED lebih kecil dari drop tail. Sebagai pembanding, jika pada drop tail buffer dapat menampung paket sebanyak panjang antrian yang telah ditentukan, sedangkan pada RED kemungkinan paket yang dapat ditampung pada antrian adalah setengah sampai tiga perempat dari panjang antrian. Hal ini menghasilkan variansi RTT setiap paket yang dikirimkan lebih kecil dibanding pada jenis antrian drop tail.
RTT Variance CCID3 60 Drop Tail, Q=50
50
Drop Tail, Q=100
ms
40
Drop Tail, Q=150
30
Drop Tail, Q=200
20
RED, Q=50
10
RED, Q=100
0
RED, Q=150 0
200
400
600
Time (s)
RED, Q=200
Grafik 4.15 RTT variance CCID3 Pada grafik 4.15 RTT variance CCID3 pada antrian drop tail menunjukkan bahwa dengan bertambahnya buffer maka variansi RTT akan semakin besar dan sering berfluktuasi cukup tinggi. Sedangkan pada antrian RED, RTT variance yang dihasilkan setiap penambahan jumlah buffer lebih kecil dari drop tail.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
4.2.6. Congestion Window Skenario 1
CWND TCP newReno vs CCID2 TCP
CCID2
100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.16 Congestion Window TCP New Reno dan CCID2 Buffer 50 Drop Tail Pada grafik 4.16 terlihat bahwa pada awalnya 0 detik sampai 200 detik congestion window CCID2 kalah dari congestion window TCP New Reno yang mendominasi. Hal ini dikarenakan perbedaan dari congestion control yang dimiliki kedua protokol tersebut. TCP New Reno memiliki keunggulan dari CCID2 yaitu TCP New Reno memiliki fase fast recovery. Tetapi setelah 200 detik,
congestion
window
kedua
protokol
mencapai
kesetimbangan yang ditandai dengan congestion window kedua protokol terlihat seperti gigi gergaji. Dengan hasil seperti itu dapat diketahui bahwa kedua protokol saling berbagi dalam jaringan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
CWND TCP newReno vs CCID3 100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.17 Congestion Window TCP New Reno vs CCID3 Buffer 50 Drop Tail Pada grafik 4.17 terlihat bahwa congestion window TCP New Reno ketika dihadapkan dengan CCID3 tidak mencapai kesetimbangan seperti yang dihasilkan TCP New Reno vs CCID2. Pada grafik 4.17 juga terlihat congestion window TCP new reno dua kali jatuh akibat pengaruh CCID3 yang mendominasi pada skenario ini. Dominasi CCID3 terjadi karena pengaruh buffer yang kecil sehingga RTT yang dihasilkan juga kecil. Hal ini menunjukkan bahwa CCID3 dengan buffer yang kecil menghasilkan throughput yang tinggi tetapi juga menghasilkan trafik yang tidak fairness bagi TCP.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
Skenario 8
CWND TCP vs CCID2 Skenario 8 TCP
CCID2
300 250
MSS
200 150 100 50 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.18 Congestion Window TCP New Reno dan CCID2 Buffer 100 Drop Tail
Pada grafik 4.18 menunjukkan bahwa congestion window CCID2 tetap kalah dari congestion window TCP New Reno. Seperti yang telah dijelaskan pada analisis grafik 4.16 yang menjelaskan bahwa TCP New Reno memiliki keunggulan karena memiliki fast recovery. Terlihat pada grafik 4.18 yang dilingkari merah menunjukkan bahwa TCP new reno masuk ke fase fast recovery dan fast retransmit ketika ada duplikat 3 ACK. Setelah TCP New Reno masuk fase fast recovery dan fast retransmit kemudian menerima ACK dari paket yang dikirim, maka new reno akan tetap berada di fase congestion avoidance. Berbeda halnya dengan CCID2, pada protokol ini ketika ada duplikat 3 ACK maka CCID2 langsung mengurangi congestion window menjadi setengah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
CWND TCP newReno vs CCID3 300 250
MSS
200 150 100 50 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.19 Congestion Window TCP New Reno vs CCID3 Buffer 100 Drop Tail Pada grafik 4.19 terlihat bahwa congestion window TCP New Reno ketika dihadapkan dengan CCID3 tidak mencapai kesetimbangan seperti yang dihasilkan TCP New Reno vs CCID2 (grafik 4.16). Sebelumnya pada grafik 4.17 terlihat bahwa cwnd TCP New Reno dua kali jatuh (timeout). Tetapi pada grafik 4.19 congestion window TCP tidak ada yang jatuh (timeout) akibat pengaruh CCID3 yang mendominasi pada skenario ini. Dominasi CCID3 terjadi karena pengaruh buffer yang cukup kecil yaitu 100 sehingga RTT yang dihasilkan juga cukup kecil. Hal ini menunjukkan bahwa CCID3 dengan buffer 100 menghasilkan throughput cukup tinggi tetapi lebih rendah dari throughput yang dihasilkan CCID3 ketika menggunakan buffer 50 dan pada sekanrio ini CCID tetap menghasilkan trafik yang tidak fairness bagi TCP.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
Skenario 9
CWND TCP newReno vs CCID2 TCP
CCID2
300 250
MSS
200 150 100 50 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.20 Congestion Window TCP New Reno dan CCID2 Buffer 150 Drop Tail
Pada grafik 4.20 menunjukkan bahwa congestion window CCID2 tetap kalah dari congestion window TCP new reno bahkan semakin menurun jika dibandingkan dengan grafik 4.16 dan 4.18. Seperti yang telah dijelaskan pada analisis grafik 4.18 yang menjelaskan bahwa TCP new reno memiliki keunggulan karena memiliki fast recovery. Terlihat pada grafik 4.20 congestion window yang dilingkari merah menunjuk-kan bahwa TCP new reno masuk ke fase fast retransmit fast recovery ketika ada duplikat 3 ACK. Setelah TCP new reno masuk fase fast retransmit dan fast recovery kemudian menerima ACK dari paket yang dikirim, maka new reno akan tetap berada di fase congestion avoidance. Berbeda halnya dengan CCID2, pada protokol ini ketika ada duplikat 3 ACK maka CCID2 langsung mengurangi congestion window menjadi setengah. Dari grafik 4.20 tersebut terlihat bahwa CCID2 fairness terhadap TCP new reno dan cenderung kalah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
CWND TCP newReno vs CCID3 300 250
MSS
200 150 100 50 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.21 Congestion Window TCP New Reno vs CCID3 Buffer 150 Drop Tail
Pada grafik 4.21 terlihat bahwa congestion window TCP new reno ketika dihadapkan dengan CCID3 hampir mencapai kesetimbangan seperti yang dihasilkan TCP new reno vs CCID2 (grafik 4.16). Sama halnya dengan grafik 4.19 congestion window TCP new reno pada grafik 4.21 tidak ada yang jatuh (timeout) akibat pengaruh dari CCID3. Dominasi CCID3 tidak terjadi karena pengaruh buffer yang bertambah besar yaitu 150 sehingga RTT yang dihasilkan cukup besar. RTT yang bertambah besar mempengaruhi sending rate yang dihasilkan CCID3 semakin menurun, sehingga throughput CCID3 akan menurun dan menguntungkan TCP new reno. Hal ini menunjukkan bahwa CCID3 dengan buffer 150 menghasilkan throughput yang lebih rendah dari throughput yang dihasilkan CCID3 ketika menggunakan buffer 50 dan 100. Pada sekanrio ini CCID3 menghasilkan trafik fairness bagi TCP. Tetapi kinerja dari CCID3 semakin menurun.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
Skenario3
CWND TCP newReno vs CCID2 TCP
CCID2
300 250
MSS
200 150 100 50 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.22 Congestion Window TCP New Reno dan CCID2 Buffer 200 Drop Tail
Pada grafik 4.22 menunjukkan bahwa pada awal simulasi congestion window CCID2 mengungguli congestion window TCP new reno. Hal tersebut terjadi karena pengaruh buffer yang besar. Seperti yang telah dijelaskan pada analisis grafik 4.20 yang menjelaskan bahwa TCP new reno memiliki keunggulan karena memiliki fast recovery. Terlihat pada grafik 4.20 congestion window yang dilingkari merah menunjuk-kan bahwa TCP new reno masuk ke fase fast retransmit fast recovery ketika ada duplikat 3 ACK. Setelah TCP new reno masuk fase fast retransmit dan fast recovery kemudian menerima ACK dari paket yang dikirim, maka new reno akan tetap berada di fase congestion avoidance. Berbeda halnya dengan CCID2, pada protokol ini ketika ada duplikat 3 ACK maka CCID2 langsung mengurangi congestion window menjadi setengah. Dari grafik 4.22 tersebut terlihat bahwa CCID2 fairness terhadap TCP new reno.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
CWND TCP newReno vs CCID3 300 250
MSS
200 150 100 50 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.23 Congestion Window TCP New Reno vs CCID3 Buffer 200 Drop Tail
Pada grafik 4.23 terlihat bahwa congestion window TCP new reno ketika dihadapkan dengan CCID3 sudah cukup mencapai kesetimbangan seperti yang dihasilkan TCP new reno vs CCID2 (grafik 4.16). Sama halnya dengan grafik 4.21 congestion window TCP new reno pada grafik 4.23 tidak ada yang jatuh (timeout) akibat pengaruh dari CCID3 dan kinerja CCID3 semakin menurun sehingga congestion window yang dihasilkan TCP new reno semakin membaik. Menurunnya knierja dari CCID3 terjadi karena pengaruh buffer yang besar yaitu 200 sehingga RTT yang dihasilkan sangat besar jika dibandingkan dengan hasil dari buffer 50,100 dan 150. RTT yang bertambah besar mempengaruhi sending rate yang dihasilkan CCID3 semakin menurun, sehingga throughput CCID3 akan menurun dan ini sangat menguntungkan TCP new reno. Hal ini menunjukkan bahwa CCID3 dengan buffer 200 menghasilkan throughput yang sangat rendah dari throughput yang dihasilkan CCID3 ketika menggunakan buffer 50, 100 dan 150. Pada sekanrio ini CCID3 menghasilkan trafik fairness bagi TCP. Tetapi kinerja dari CCID3 semakin menurun. Skenario 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
CWND TCP New Reno vs CCID2 TCP
CCID2
100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.24 Congestion Window TCP New Reno dan CCID2 Buffer 50 RED
CWND TCP New Reno vs CCID3 100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.25 Congestion Window TCP New Reno vs CCID3 Buffer 50 RED
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
Skenario 6
CWND TCP newReno vs CCID2 TCP
CCID2
100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.26 Congestion Window TCP New Reno dan CCID2 Buffer 100 RED
CWND TCP newReno vs CCID3 100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.27 Congestion Window TCP New Reno vs CCID3 Buffer 100 RED
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
Skenario 7
CWND TCP New Reno dan CCID2 TCP
CCID2
100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.28 Congestion Window TCP New Reno dan CCID2 Buffer 150 RED
CWND TCP newReno vs CCID3 100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.29 Congestion Window TCP New Reno vs CCID3 Buffer 150 RED
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
Skenario 8
CWND TCP New Reno vs CCID2 TCP
CCID2
100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.30 Congestion Window TCP New Reno dan CCID2 Buffer 200 RED
CWND TCP New Reno vs CCID3 100
MSS
80 60 40 20 0 0
100
200
300
400
500
600
Time (s)
Grafik 4.31 Congestion Window TCP New Reno vs CCID3 Buffer 200 RED Di semua congestion window yang dihasilkan TCP new reno dan CCID2 pada jenis antrian RED, congestion window kedua protokol tersebut sering jatuh dan tidak mencapai kesetimbangan seperti yang dihasilkan TCP new reno dan CCID2 pada jenis antrian drop tail. Hal ini disebabkan karena pada antrian RED ruang antrian pada buffer menjadi lebih kecil dibanding dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
penggunaan drop tail dan tingginya packet loss rate yang dihasilkan pada semua simulasi pada antrian RED menjadi salah satu penyebab congestion window CCID2 dan TCP new reno tidak stabil. Meskipun pada jenis antrian RED menghasilkan congestion window yang tidak stabil, tetapi throughput yang dihasilkan menjadi lebih fairness.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Dari hasil simulasi, pengujian dan analisis data yang telah dilakukan, dapat disimpulkan beberapa hal :
Kinerja
CCID2
CCID3
- Kinerja meningkat yang dilihat dari throughput yang meningkat ketika buffer besar pada jenis antrian drop tail dan RED.
- Kinerja meningkat yang dilihat dari throughput yang meningkat ketika buffer kecil pada jenis antrian drop tail - Menurun ketika menggunakan jenis antrian RED - Menurun ketika buffer semakin besar - Unfairness terhadap TCP New Reno ketika buffer kecil pada antrian drop tail. - Jitter kecil - Throughput besar ketika buffer kecil pada antrian drop tail - Kinerja sangat dipengaruhi dengan adanya penambahan buffer
- Fairness terhadap TCP New Reno di Tingkat Fairness seluruh simulasi penelitian ini. - Kinerja tidak menurun ketika Kelebihan adanya penambahan buffer - Jitter besar Kekurangan 5.2. Saran
Untuk pengembangan lebih lanjut, ada beberapa saran yang dapat diberikan antara lain : 1. Membandingkan DCCP dengan varian TCP lainnya seperti TCP SACK,vegas, CUBIC, dll. 2. Menggunakan trafik multimedia untuk menguji kinerja dari DCCP. 3. Melakukan pengujian menggunakan topologi selain dumb-bell. 4. Melakukan pengujian menggunakan antrian SFQ, ARED atau DRED.
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA [1] [2]
[3] [4]
[5] [6]
[7]
[8]
[9]
[10]
[11] [12]
[13]
[14]
Forouzan, Behrouz A.(2007). Data Communications and Networking 4th Edition. New York: McGraw-hill. Azad, Muhammad A.,Mahmood, R., & Mehmood, T.(2009).A Comparative Analysis Of DCCP Variants (CCID2,CCID3), TCP and UDP for MPEG4 Video Applications. International Islamic University Islamabad. Issariyakul, T., Hossain, E.2012. Introduction-to-Network-Simulator-NS22012. New York: Springer. Nosheen, S., Malik, Shahzad A., Zikria, Yousaf B., & Afzal, M. K.(2007). Performance Evaluation of DCCP and SCTP for MPEG4 Video over Wireless Networks.Pakistan:Computer Science Department CIIT Wah Cantt. Kerkar, S, . (2004).Performance analysis of TCP/IP over high bandwidth delay product networks.Graduate Theses and Dissertations. Fall , K. & Floyd, A.Simulation-based Comparisons of Tahoe, Reno, and SACK TCP.[online] diakses 20 November 2016 di : http://www.icir.org/floyd/papers/sacks.pdf Kohler, E., & Floyd, S.(2006).Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control. [online] diakses tanggal 18 Oktober 2016 di : https://tools.ietf.org/html/rfc4341 Kohler, E., Handley, M., & Floyd, S.(2006).Datagram Congestion Control Protocol (DCCP). [online] diakses tanggal 18 Oktober 2016 di : https://tools.ietf.org/html/rfc4340 Kohler, E., Floyd, S., & Padhey J.(2006).Profile for Datagram Congestion Control Protocol (DCCP).[online] diakses 18 Oktober 2016 di : https://tools.ietf.org/html/rfc4342 Li, Ke. (2007).Datagram Congestion Control Protocol (DCCP).[online] Diakses 24 September 2016 di : https://www.eecis.udel.edu/~amer/856/dccp.07f.ppt Chowdhury, I. S., Lahiry, J., & Hasan, S. F.(2009).Performance Analysis of Datagram Congestion Control Protocol (DCCP). Bangladesh : ICCIT. Kohler, E., & Floyd, S.(2003).Datagram Congestion Control Protocol (DCCP) Overview. [online] diakses 1 Oktober 2016 di : www.read.cs.ucla.edu/dccp/summary.pdf Tong, Q. T., Koga, H., Iida, K., & Sakai, Y.(2006).TCP Fairness Improvement of DCCP Flow Control for Bursty Real-Time Applications. Tokyo:GSIC Marsic, I. Computer Networks:Transmission Control Protocol (TCP).[online] diakses 14 November 2016 di : www.ece.rutgers.edu/~marsic/books/CN/.../chapter-2.ppt 63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
[15]
[16]
[17]
Chung, J. & Claypool, M.(2003).Analysis of Active Queue Management.USA: Computer Science Department Worcester Polytechnic Institute Mahida, P. T., Patel, K., Vanza, N., & Patel, S.(2013).A Comparative Analysis of Queue Management Techniques using NS-2 Simulator.IJCA 2013 S. Floyd and V. Jacobson,.1993.Random early detection gateways for congestion avoidance. IEEE/ACM Trans. online, Vol.1, No. 4, pp. 397β 413, 1993.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN File tcl simulasi CCID2 untuk Skenario 1,2,3,4,5,6,7 dan 8 DCCP-CCID2-vs-TCP-newReno.tcl ################################################## # ____________________________________________ # # |---DCCP CCID 2 VS TCP new Reno Simulasi 1---| # # |____________________________________________| # #Buffer : 50/100/150/200 #Buffer Policy : DropTail/RED #Bottleneck : 1Mb #Delay Link : 10ms #TCP start/finish : 0.1s / 600s #DCCP start/finish : 0.1s / 600s ################################################## #Declare New Simulator set ns [new Simulator] #Setting Procedure Finish proc finish {} { global ns tr nf $ns flush-trace close $nf close $tr exit 0 } #Setting output file set tr [open CCID2vsTCPnewReno.tr w] $ns trace-all $tr set nf [open CCID2vsTCPnewReno.nam w] $ns namtrace-all $nf #Node Sender set S1 [$ns node] set S2 [$ns node] #router set R1 [$ns node] set R2 [$ns node] #Node Receiver set D1 [$ns node] set D2 [$ns node]
64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
#set RED queue Queue/RED set q_weight 0.002 Queue/RED set linterm 30 Queue/RED set thresh_ 13 #----------------------->25% dari queue-limit Queue/RED set maxthresh_ 38 # ----------------->75% dari queue-limit Queue/RED set mean_pktsize 500 Queue/RED set dropmech random-drop Hanya untuk jenis antrian RED!! Queue/RED set queue-size 50 # ----------------> queue-limit Queue/RED set plot-file none Queue/RED set bytes false Queue/RED set doubleq false Queue/RED set dqthresh 50 Queue/RED set wait true # Link Node Sender 1 & 2 ke Router 1 $ns duplex-link $S1 $R1 10Mb 10ms DropTail #parameter antrian (DropTail/RED) $ns duplex-link $S2 $R1 10Mb 10ms DropTail #parameter antrian (DropTail/RED) # Link Antar Router $ns duplex-link $R1 $R2 1Mb 10ms DropTail #parameter antrian (DropTail/RED) # Link Router 2 ke Node Receiver 1 & 2 $ns duplex-link $R2 $D1 10Mb 10ms DropTail #parameter antrian (DropTail/RED) $ns duplex-link $R2 $D2 10Mb 10ms DropTail #parameter antrian (DropTail/RED) # Setting Node Position $ns duplex-link-op $S1 $R1 orient right-down $ns duplex-link-op $S2 $R1 orient right-up $ns duplex-link-op $R1 $R2 orient right $ns duplex-link-op $R2 $D1 orient right-up $ns duplex-link-op $R2 $D2 orient right-down # Setting Queue Length $ns queue-limit $R1 $R2 50 #parameter buffer yang diubahubah(50/100/150/200) # Setting TCP Agent set tcp1 [new Agent/TCP/Newreno] set tcpsink1 [new Agent/TCPSink]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
$ns attach-agent $S1 $tcp1 $ns attach-agent $D1 $tcpsink1 $ns connect $tcp1 $tcpsink1 $tcp1 set window_ 1000 $tcp1 set fid_ 1 $ns color 1 Red # Setting DCCP Agent set dccp1 [new Agent/DCCP/TCPlike] set dccpsink1 [new Agent/DCCP/TCPlike] $ns attach-agent $S2 $dccp1 $ns attach-agent $D2 $dccpsink1 $ns connect $dccp1 $dccpsink1 $dccp1 set window_ 1000 $dccp1 set fid_ 2 $ns color 2 Blue # CBR #1 (DCCP1) set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $dccp1 $cbr1 set type_ CBR $cbr1 set packet_size_ 1000 $cbr1 set rate_ 5Mb $cbr1 set random_ false #FTP set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1 $ftp1 set type_ FTP #tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_ $tcp1 tracevar t_rttvar_ $tcp1 tracevar t_rtt_ # Setting Time Schedule of Simulation $ns at 0.0 "$dccpsink1 listen" $ns at 0.1 "$ftp1 start" $ns at 0.1 "$cbr1 start" $ns at 600.0 "$cbr1 stop" $ns at 600.0 "$ftp1 stop" $ns at 600.0 "finish" # Plot Congestion Window proc plotWindow {tcpSource dccpSource outfile} { global ns dccp1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67
set cwnd [$tcpSource set cwnd_ ] set cwnd1 [$dccpSource set cwnd_ ] set now [$ns now] puts $outfile "$now $cwnd $cwnd1" $ns at [expr $now+0.1] "plotWindow $tcpSource $dccpSource $outfile" } set outfile [open "cwnd_TCP_CCID2.xg" w] $ns at 0.0 "plotWindow $tcp1 $dccp1 $outfile" # Plot RTT sample DCCP CCID 2 proc plotCCID2rttSample {dccpSource output} { global ns dccp1 set rttSample [$dccpSource set rtt_sample_ ] set now [$ns now] puts $output "$now $rttSample" $ns at [expr $now+1] "plotCCID2rttSample $dccpSource $output" } set output [open "RTTsample_CCID2.xg" w] $ns at 0.0 "plotCCID2rttSample $dccp1 $output" # Plot ssthresh DCCP CCID 2 proc plotDCCPssthresh {dccpSource output} { global ns dccp1 set sst [$dccpSource set ssthresh_ ] set now [$ns now] puts $output "$now $sst" $ns at [expr $now+0.1] "plotDCCPssthresh $dccpSource $output" } set output [open "ssthresh_CCID2.xg" w] $ns at 0.0 "plotDCCPssthresh $dccp1 $output" # Plot rttvar DCCP CCID 2 proc plotDCCPrttvar {dccpSource output} { global ns dccp1 set rttvar [$dccpSource set rttvar_ ] set now [$ns now] puts $output "$now $rttvar" $ns at [expr $now+1] "plotDCCPrttvar $dccpSource $output" } set output [open "rttvar_CCID2.xg" w] $ns at 0.0 "plotDCCPrttvar $dccp1 $output" # Plot srtt DCCP CCID 2 proc plotDCCPsrtt {dccpSource output} { global ns dccp1 set srtt [$dccpSource set srtt_ ] set now [$ns now] puts $output "$now $srtt"
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
$ns at [expr $now+1] "plotDCCPsrtt $dccpSource $output" } set output [open "srtt_CCID2.xg" w] $ns at 0.0 "plotDCCPsrtt $dccp1 $output" # tampil di konsol proc probe {} { global ns dccp1 #set now [$ns now] #set cwnd [$dccp1 set cwnd_] puts "Tunggu Aje" #$ns at [expr $now+1] "probe" } $ns at 0.0 "probe" #run simulasi $ns run File tcl simulasi CCID3 untuk Skenario 1,2,3,4,5,6,7 dan 8 DCCP-CCID3-vs-TCP-newReno.tcl ################################################## # ____________________________________________ # # |---DCCP CCID 3 VS TCP new Reno Simulasi 1---| # # |____________________________________________| # #Buffer : 50/100/150/200 #Buffer Policy : DropTail/RED #Bottleneck : 1Mb #Delay Link : 10ms #TCP start/finish : 0.1s / 600s #DCCP start/finish : 0.1s / 600s ################################################## #Declare New Simulator set ns [new Simulator] #Setting Procedure Finish proc finish {} { global ns tr nf $ns flush-trace close $nf close $tr exit 0 } #Setting output file set tr [open CCID3vsTCPnewReno.tr w] $ns trace-all $tr set nf [open CCID3vsTCPnewReno.nam w] $ns namtrace-all $nf
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
#Node Sender set S1 [$ns node] set S2 [$ns node] #router set R1 [$ns node] set R2 [$ns node] #Node Receiver set D1 [$ns node] set D2 [$ns node] #set RED queue Queue/RED set q_weight 0.002 Queue/RED set linterm 30 Queue/RED set thresh_ 13 #----------------------->25% dari queue-limit Queue/RED set maxthresh_ 38 # ----------------->75% dari queue-limit Queue/RED set mean_pktsize 500 Queue/RED set dropmech random-drop Hanya untuk jenis antrian RED!! Queue/RED set queue-size 50 # ------------------> queue-limit Queue/RED set plot-file none Queue/RED set bytes false Queue/RED set doubleq false Queue/RED set dqthresh 50 Queue/RED set wait true # Link Node Sender 1 & 2 ke Router 1 $ns duplex-link $S1 $R1 10Mb 10ms DropTail #parameter antrian (DropTail/RED) $ns duplex-link $S2 $R1 10Mb 10ms DropTail #parameter antrian (DropTail/RED) # Link Antar Router $ns duplex-link $R1 $R2 1Mb 10ms DropTail #parameter antrian (DropTail/RED) # Link Router 2 ke Node Receiver 1 & 2 $ns duplex-link $R2 $D1 10Mb 10ms DropTail #parameter antrian (DropTail/RED) $ns duplex-link $R2 $D2 10Mb 10ms DropTail #parameter antrian (DropTail/RED) # Setting Node Position $ns duplex-link-op $S1 $R1 orient right-down $ns duplex-link-op $S2 $R1 orient right-up $ns duplex-link-op $R1 $R2 orient right $ns duplex-link-op $R2 $D1 orient right-up $ns duplex-link-op $R2 $D2 orient right-down
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
# Setting Queue Length $ns queue-limit $R1 $R2 50 #parameter buffer yang diubahubah(50/100/150/200) # Setting TCP Agent set tcp1 [new Agent/TCP/Newreno] set tcpsink1 [new Agent/TCPSink] $ns attach-agent $S1 $tcp1 $ns attach-agent $D1 $tcpsink1 $ns connect $tcp1 $tcpsink1 $tcp1 set window_ 1000 $tcp1 set fid_ 1 $ns color 1 Red # Setting DCCP Agent set dccp1 [new Agent/DCCP/TFRC] set dccpsink1 [new Agent/DCCP/TFRC] $ns attach-agent $S2 $dccp1 $ns attach-agent $D2 $dccpsink1 $ns connect $dccp1 $dccpsink1 $dccp1 set fid_ 2 $ns color 2 Blue # CBR #1 (DCCP1) set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $dccp1 $cbr1 set type_ CBR $cbr1 set packet_size_ 1000 $cbr1 set rate_ 5Mb $cbr1 set random_ false #FTP set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1 $ftp1 set type_ FTP #tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_ $dccp1 attach $tr $dccp1 tracevar cwnd_ # $tcp tracing its own variable cwnd_ $dccp1 trace cwnd_ # Setting Time Schedule of Simulation
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
$ns at 0.0 "$dccpsink1 listen" $ns at 0.1 "$ftp1 start" $ns at 0.1 "$cbr1 start" $ns at 600.0 "$cbr1 stop" $ns at 600.0 "$ftp1 stop" $ns at 600.0 "finish" # Plot Congestion Window proc plotWindow {tcpSource output} { global ns tcp1 set cwnd [$tcpSource set cwnd_ ] set now [$ns now] puts $output "$now $cwnd" $ns at [expr $now+0.1] "plotWindow $tcpSource $output" } set output [open "cwnd_TCP.xg" w] $ns at 0.0 "plotWindow $tcp1 $output" # Plot Sending Rate DCCP CCID 3 proc plotSendingRate {dccpSource output} { global ns dccp1 set tx [$dccpSource set s_x_ ] set now [$ns now] puts $output "$now $tx" $ns at [expr $now+1] "plotSendingRate $dccpSource $output" } set output [open "SendingRate_CCID3.xg" w] $ns at 0.0 "plotSendingRate $dccp1 $output" #-----------------------------------------------------------------------------------------------# Plot sample RTT DCCP CCID 3 proc plotDCCPrtt {dccpSource output} { global ns dccp1 set rtt [$dccpSource set s_r_sample_ ] set now [$ns now] puts $output "$now $rtt" $ns at [expr $now+1] "plotDCCPrtt $dccpSource $output" } set output [open "sampleRTT_CCID3.xg" w] $ns at 0.0 "plotDCCPrtt $dccp1 $output" #----------------------------------------------------------------------------------------------# Plot srtt DCCP CCID 3 proc plotDCCPsrtt {dccpSource output} { global ns dccp1 set srtt [$dccpSource set s_rtt_ ] set now [$ns now]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
puts $output "$now $srtt" $ns at [expr $now+1] "plotDCCPsrtt $dccpSource $output" } set output [open "srtt_CCID3.xg" w] $ns at 0.0 "plotDCCPsrtt $dccp1 $output" #----------------------------------------------------------------------------------------------# Plot loss event rate DCCP CCID 3 proc plotDCCPloss {dccpSource output} { global ns dccp1 set loss [$dccpSource set s_p_ ] set now [$ns now] puts $output "$now $loss" $ns at [expr $now+1] "plotDCCPloss $dccpSource $output" } set output [open "loss_CCID3.xg" w] $ns at 0.0 "plotDCCPloss $dccp1 $output" # tampil di konsol proc probe {} { global ns dccp1 set now [$ns now] $ns at [expr $now+1] "probe" } $ns at 0.0 "probe" #run simulasi $ns run
TCP-newReno-vs-UDP.tcl ################################################## # ____________________________________________ # # |---UDP VS TCP new Reno Simulasi x--|# # |____________________________________________| # # # ################################################## #Buffer : 50 #Buffer Policy : DropTail #Bottleneck : 1Mb #Delay Link : 10ms #TCP start/finish : 0.1s / 600s #DCCP start/finish : 0.1s / 600s #Error Rate :#-----------------------------------------------------------------------------------------------#Declare New Simulator set ns [new Simulator]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73
#Setting Procedure Finish proc finish {} { global ns tr nf $ns flush-trace close $nf close $tr exit 0 } #Setting output file set tr [open UDPvsTCPnewReno.tr w] $ns trace-all $tr set nf [open UDPvsTCPnewReno.nam w] $ns namtrace-all $nf #Node Sender set S1 [$ns node] set S2 [$ns node] #router set R1 [$ns node] set R2 [$ns node] #Node Receiver set D1 [$ns node] set D2 [$ns node] # Link Node Sender 1 & 2 ke Router 1 $ns duplex-link $S1 $R1 10Mb 10ms DropTail $ns duplex-link $S2 $R1 10Mb 10ms DropTail # Link Antar Router $ns duplex-link $R1 $R2 1Mb 10ms DropTail # Link Router 2 ke Node Receiver 1 & 2 $ns duplex-link $R2 $D1 10Mb 10ms DropTail $ns duplex-link $R2 $D2 10Mb 10ms DropTail # Setting Node Position $ns duplex-link-op $S1 $R1 orient right-down $ns duplex-link-op $S2 $R1 orient right-up $ns duplex-link-op $R1 $R2 orient right $ns duplex-link-op $R2 $D1 orient right-up $ns duplex-link-op $R2 $D2 orient right-down
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
# Setting Queue Length $ns queue-limit $R1 $R2 50 # Setting TCP Agent set tcp1 [new Agent/TCP/Newreno] set tcpsink1 [new Agent/TCPSink] $ns attach-agent $S1 $tcp1 $ns attach-agent $D1 $tcpsink1 $ns connect $tcp1 $tcpsink1 $tcp1 set window_ 1000 $tcp1 set fid_ 1 $ns color 1 Red
#Setting UDP Agent set udp1 [new Agent/UDP] set udpSink1 [new Agent/Null] $ns attach-agent $S2 $udp1 $ns attach-agent $D2 $udpSink1 $ns connect $udp1 $udpSink1 $udp1 set fid_ 2 $ns color 2 Blue # CBR #1 (DCCP1) set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $udp1 $cbr1 set type_ CBR $cbr1 set packet_size_ 1000 $cbr1 set rate_ 5Mb $cbr1 set random_ false #$cbr1 set interval_ 0.005 #FTP set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1 $ftp1 set type_ FTP #$ftp1 set rate_ 5Mb #tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
# Setting Time Schedule of Simulation $ns at 0.1 "$ftp1 start" $ns at 0.1 "$cbr1 start" $ns at 600.0 "$cbr1 stop" $ns at 600.0 "$ftp1 stop" $ns at 600.0 "finish" # Plot Congestion Window proc plotWindow {tcpSource output} { global ns tcp1 set cwnd [$tcpSource set cwnd_ ] set now [$ns now] puts $output "$now $cwnd" $ns at [expr $now+0.1] "plotWindow $tcpSource $output" } set output [open "cwnd_TCP.xg" w] $ns at 0.0 "plotWindow $tcp1 $output" # Plot RTT sample TCP proc plotrtt {tcpSource output} { global ns tcp1 set rttSample [$tcpSource set rtt_ ] set now [$ns now] puts $output "$now $rttSample" $ns at [expr $now+1] "plotrtt $tcpSource $output" } set output [open "RTTsample.xg" w] $ns at 0.0 "plotrtt $tcp1 $output" # tampil di konsol proc probe {} { #global ns dccp1 #set now [$ns now] #set cwnd [$dccp1 set cwnd_] puts "Tunggu Aje" #$ns at [expr $now+1] "probe" } $ns at 0.0 "probe" #run simulasi $ns run
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
Hasil_DCCP.awk # AWK untuk cari throughput, packetloss, average E2E Delay, jitter DCCP BEGIN { recvdSize = 0; startTime = 1e6; stopTime = 0; recvdNum = 0; recvdPkt = 0; highest_pkt_id = 0; countS = 0; countR = 0; count = 0; } { # Trace line format: normal if ($2 != "-t") { event = $1; time = $2; from = $3; to = $4; if (event == "+" || event == "-"){ node_id = $3; } if (event == "r" || event == "d"){ node_id = $4; } flow_t = $5; pkt_size = $6; flow_id = $8; #flow DCCP src = $9; dst = $10; seq_no = $11; pkt_id = $12; } if ( pkt_id > highest_packet_id && flow_t == "DCCP_Data"){ highest_packet_id = pkt_id; this_flow = flow_t; } if (flow_id == 2 && from == 1 && src == 1 && dst == 5 && start_time[pkt_id] == 0 && (event == "+" || event == "s") && flow_t=="DCCP_Data") { if (time < startTime) { startTime = time; } start_time[pkt_id] = time;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
countS++; } if (flow_id == 2 && event == "r" && flow_t=="DCCP_Data" && pkt_size > 448) { if (time > stopTime) { stopTime = time; } if(to == 5){ end_time[pkt_id] = time; recvdPkt++; count++; delay=end_time[pkt_id]-start_time[pkt_id]; sum+=delay; delayJit[count]=delay; } recvdSize += pkt_size; recvTime[pkt_id] = time; recvdNum ++; } } END { TotalJit=0; for (i = 0; i < count; i++ ) { if(i==0){ prevDelay = 0; }else{ prevDelay = delayJit[i-1]; } curDelay = delayJit[i]; jitter=curDelay-prevDelay; #if(jitter<0){ # jitter=0; #} TotalJit+=abs(jitter); #TotalJit+=jitter; } if (recvdNum == 0) { printf("Warning: no packets were received, simulation may be too short \n"); } avge2eDelay=sum/count; avgJitter=TotalJit/count; #Throughput = received data*8/data transmission period
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
printf("\n"); print(" ======================================================= "); print("+ Flow Type : DCCP +"); print("+ Simulasi : x +"); print("+ Hasil : Throughput,Packet Drop, Packet Loss +"); print("+ Average E2E Delay, Jitter +"); print(" ======================================================= "); printf("\n"); printf(" %30s: %s\n", "Flow Type", this_flow); printf(" %30s: %d%s\n", "Start", startTime,"s"); printf(" %30s: %d%s\n", "Stop", stopTime,"s"); printf(" %30s: %d%s\n", "Received Size", recvdSize," B"); printf(" %30s: %g%s\n", "Received Packets", recvdNum," paket"); printf(" %30s: %g%s\n", "Average Throughput[bps]", (recvdSize*8/(stopTime-startTime))," bps"); printf(" %30s: %g%s\n", "Average Throughput[kbps]", (recvdSize/(stopTime-startTime))*(8/1024)," kbps"); printf(" %30s: %g%s\n", "Average Throughput[kBps]", (recvdSize/1024)/(stopTime-startTime)," kBps"); printf(" %30s: %d%s\n", "Jumlah Paket yang Dikirim", countS," paket"); printf(" %30s: %d%s\n", "Paket Drop", countS-recvdPkt," paket"); printf(" %30s: %d%s\n", "Paket Diterima", recvdPkt," paket"); printf(" %30s: %g%s\n", "Pkt_loss", ((countSrecvdPkt)/countS)*100,"%"); printf(" %30s: %g%s\n", "average E2E delay", avge2eDelay*1000," ms"); printf(" %30s: %g%s\n", "average jitter", avgJitter*1000," ms"); printf("\n") } function abs(value) { if (value < 0) value = 0-value return value }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
Hasil_TCP.awk # AWK untuk cari throughput, packetloss, average E2E Delay, jitter DCCP BEGIN { recvdSize = 0; startTime = 1e6; stopTime = 0; recvdNum = 0; recvdPkt = 0; highest_pkt_id = 0; countS = 0; countR = 0; count = 0; } { # Trace line format: normal if ($2 != "-t") { event = $1; time = $2; from = $3; to = $4; if (event == "+" || event == "-"){ node_id = $3; } if (event == "r" || event == "d"){ node_id = $4; } flow_t = $5; pkt_size = $6; flow_id = $8; #flow TCP src = $9; dst = $10; seq_no = $11; pkt_id = $12; } if ( pkt_id > highest_packet_id && flow_t == "tcp"){ highest_packet_id = pkt_id; this_flow = flow_t; } if (flow_id == 1 && from == 0 && src == 0 && dst == 4 && start_time[pkt_id] == 0 && (event == "+" || event == "s") && flow_t=="tcp") { if (time < startTime) { startTime = time; } start_time[pkt_id] = time; countS++; }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
if (flow_id == 1 && event == "r" && flow_t=="tcp" && pkt_size > 512) { if (time > stopTime) { stopTime = time; } if(to == 4){ end_time[pkt_id] = time; recvdPkt++; count++; delay=end_time[pkt_id]-start_time[pkt_id]; sum+=delay; delayJit[count]=delay; } recvdSize += pkt_size; recvTime[pkt_id] = time; recvdNum ++; } } END { TotalJit=0; for (i = 0; i < count; i++ ) { if(i==0){ prevDelay = 0; }else{ prevDelay = delayJit[i-1]; } curDelay = delayJit[i]; jitter=curDelay-prevDelay; #if(jitter<0){ # jitter=0; #} TotalJit+=abs(jitter); #TotalJit+=jitter; } if (recvdNum == 0) { printf("Warning: no packets were received, simulation may be too short \n"); } avge2eDelay=sum/count; avgJitter=TotalJit/count; #Throughput = received data*8/data transmission period printf("\n"); print(" ======================================================= "); print("+ Flow Type : TCP newReno +");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
print("+ Simulasi : x +"); print("+ Hasil : Throughput,Packet Drop, Packet Loss +"); print("+ Average E2E Delay, Jitter +"); print(" ======================================================= "); printf("\n"); printf(" %30s: %s\n", "Flow Type", this_flow); printf(" %30s: %d%s\n", "Start", startTime,"s"); printf(" %30s: %d%s\n", "Stop", stopTime,"s"); printf(" %30s: %d%s\n", "Received Size", recvdSize," B"); printf(" %30s: %g%s\n", "Received Packets", recvdNum," paket"); printf(" %30s: %g%s\n", "Average Throughput[bps]", (recvdSize*8/(stopTime-startTime))," bps"); printf(" %30s: %g%s\n", "Average Throughput[kbps]", (recvdSize/(stopTime-startTime))*(8/1024)," kbps"); printf(" %30s: %g%s\n", "Average Throughput[kBps]", (recvdSize/1024)/(stopTime-startTime)," kBps"); printf(" %30s: %d%s\n", "Jumlah Paket yang Dikirim", countS," paket"); printf(" %30s: %d%s\n", "Paket Drop", countS-recvdPkt," paket"); printf(" %30s: %d%s\n", "Paket Diterima", recvdPkt," paket"); printf(" %30s: %g%s\n", "Pkt_loss", ((countSrecvdPkt)/countS)*100,"%"); printf(" %30s: %g%s\n", "average E2E delay", avge2eDelay*1000," ms"); printf(" %30s: %g%s\n", "average jitter", avgJitter*1000," ms"); printf("\n") } function abs(value) { if (value < 0) value = 0-value return value }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
throughputPerWaktu.awk BEGIN { print("Throughput / time TCP x CCID 3"); print("Time TCP CCID3"); bytes_recvdTCP = 0; bytes_recvdDCCP = 0; throughputTCP = 0; throughputDCCP = 0; interval = 1; curr_time = 0; nxt_time = curr_time + interval; } { action = $1; time = $2; from = $3; to = $4; type = $5; pkt_size = $6; flow_id = $8; src = $9; dst = $10; seq_no = $11; pkt_id = $12; if (time < nxt_time){ if (action == "r" && flow_id == 1 && type == "tcp"){ bytes_recvdTCP += pkt_size; } if (action == "r" && flow_id == 2 && type == "DCCP_Data"){ bytes_recvdDCCP += pkt_size; } }else{ curr_time = nxt_time; nxt_time += interval; throughputTCP = bytes_recvdTCP / curr_time; throughputDCCP = bytes_recvdDCCP / curr_time; printf("%d %d %d \n",curr_time, throughputTCP/1024,throughputDCCP/1024); } } END { }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83
Hasil_UDP.awk BEGIN { recvdSize = 0; startTime = 1e6; stopTime = 0; recvdNum = 0; recvdPkt = 0; highest_pkt_id = 0; countS = 0; countR = 0; count = 0; } { # Trace line format: normal if ($2 != "-t") { event = $1; time = $2; from = $3; to = $4; if (event == "+" || event == "-"){ node_id = $3; } if (event == "r" || event == "d"){ node_id = $4; } flow_t = $5; pkt_size = $6; flow_id = $8; #flow UDP src = $9; dst = $10; seq_no = $11; pkt_id = $12; } if ( pkt_id > highest_packet_id && flow_t == "cbr"){ highest_packet_id = pkt_id; this_flow = flow_t; } if (flow_id == 2 && from == 1 && src == 1 && dst == 5 && start_time[pkt_id] == 0 && (event == "+" || event == "s") && flow_t=="cbr") { if (time < startTime) { startTime = time; } start_time[pkt_id] = time; countS++; }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
if (flow_id == 2 && event == "r" && flow_t=="cbr" && pkt_size > 64) { if (time > stopTime) { stopTime = time; } if(to == 5){ end_time[pkt_id] = time; recvdPkt++; count++; delay=end_time[pkt_id]-start_time[pkt_id]; sum+=delay; delayJit[count]=delay; } recvdSize += pkt_size; recvTime[pkt_id] = time; recvdNum ++; } } END { TotalJit=0; for (i = 0; i < count; i++ ) { if(i==0){ prevDelay = 0; }else{ prevDelay = delayJit[i-1]; } curDelay = delayJit[i]; jitter=curDelay-prevDelay; #if(jitter<0){ # jitter=0; #} TotalJit+=abs(jitter); #TotalJit+=jitter; } if (recvdNum == 0) { printf("Warning: no packets were received, simulation may be too short \n"); } avge2eDelay=sum/count; avgJitter=TotalJit/count; #Throughput = received data*8/data transmission period printf("\n"); print(" ======================================================= "); print("+ Flow Type : UDP +");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85
print("+ Simulasi : x +"); print("+ Hasil : Throughput,Packet Drop, Packet Loss +"); print("+ Average E2E Delay, Jitter +"); print(" ======================================================= "); printf("\n"); printf(" %30s: %s\n", "Flow Type", this_flow); printf(" %30s: %d%s\n", "Start", startTime,"s"); printf(" %30s: %d%s\n", "Stop", stopTime,"s"); printf(" %30s: %d%s\n", "Received Size", recvdSize," B"); printf(" %30s: %g%s\n", "Received Packets", recvdNum," paket"); printf(" %30s: %g%s\n", "Average Throughput[bps]", (recvdSize*8/(stopTime-startTime))," bps"); printf(" %30s: %g%s\n", "Average Throughput[kbps]", (recvdSize/(stopTime-startTime))*(8/1024)," kbps"); printf(" %30s: %g%s\n", "Average Throughput[kBps]", (recvdSize/1024)/(stopTime-startTime)," kBps"); printf(" %30s: %d%s\n", "Jumlah Paket yang Dikirim", countS," paket"); printf(" %30s: %d%s\n", "Paket Drop", countS-recvdPkt," paket"); printf(" %30s: %d%s\n", "Paket Diterima", recvdPkt," paket"); printf(" %30s: %g%s\n", "Pkt_loss", ((countSrecvdPkt)/countS)*100,"%"); printf(" %30s: %g%s\n", "average E2E delay", avge2eDelay*1000," ms"); printf(" %30s: %g%s\n", "average jitter", avgJitter*1000," ms"); printf("\n") } function abs(value) { if (value < 0) value = 0-value return value }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
ThroughputPerWaktuTCPxUDP.awk BEGIN { print("Throughput / time TCP x UDP"); print("Time TCP UDP"); bytes_recvdTCP = 0; bytes_recvdDCCP = 0; throughputTCP = 0; throughputDCCP = 0; interval = 1; curr_time = 0; nxt_time = curr_time + interval; } { action time from to type pkt_size flow_id src dst seq_no pkt_id
= $1; = $2; = $3; = $4; = $5; = $6; = $8; = $9; = $10; = $11; = $12;
if (time < nxt_time){ if (action == "r" && flow_id == 1 && type == "tcp" && pkt_size > 512){ # Store received packet's size #recvdSize += pkt_size; bytes_recvdTCP += pkt_size; } if (action == "r" && flow_id == 2 && type == "cbr" && pkt_size > 64){ bytes_recvdUDP += pkt_size; } }else{ curr_time = nxt_time; nxt_time += interval; throughputTCP = bytes_recvdTCP / curr_time; throughputUDP = bytes_recvdUDP / curr_time; printf("%d %d %d \n",curr_time, throughputTCP/1024,throughputUDP/1024); } } END {}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
Tugas Tambahan Queue Monitoring Pada Router Pada file .tcl tambahkan : set qm [$ns monitor-queue $R1 $R2 [open qm.tr w]]; [$ns link $R1 $R2] queue-sample-timeout; Ket : R1 dan R2 adalah link antar router # AWK untuk Queue Monitor BEGIN { print("Time Queue Node R1"); } { # Trace line format: normal if ($1 != "-t") { time = $1; src = $2; dst = $3; CurQinP = $5; } if(dst==3){ print(time" "CurQinP); } } END {}