Analisis pengaruh Congestion control DCCP CCID2 terhadap TCP Tahoe.
ABSTRAK
Pada umumnya, internet menggunakan Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP) sebagai protokol transport untuk mengirimkan data. Ketika penggunaan trafik UDP menjadi lebih banyak dibandingkan dengan trafik TCP, terjadi masalah fairness karena trafik TCP tidak memperoleh bandwidth yang cukup. Oleh karena itu, Internet Engineering Task Force (IETF) mengajukan Datagram Congestion Control (DCCP) sebagai protokol alternatif untuk menggantikan UDP.
Pada penelitian ini, akan diamati pengaruh congestion control DCCP CCID 2 terhadap trafik TCP Tahoe menggunakan simulator NS 2. Hasil penelitian menunjukan bahwa DCCP CCID 2 lebih bersahabat terhadap TCP Tahoe (TCP-Friendly) dibandingkan UDP terhadap TCP Tahoe. Namun, DCCP CCID 2 lebih banyak menggunakan resource yang ada meskipun DCCP CCID 2 dan TCP Tahoe sama-sama memiliki congestion control.
Kata kunci : DCCP, CCID2, TCP Tahoe, Congestion control, TCP Friendly, Fairness.
(2)
ABSTRACT
In general, the internet uses Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) as the transport protocol for sending data. When using UDP traffic becomes more than the TCP traffic, fairness problem occurs because TCP traffic does not obtain sufficient bandwidth. Therefore, the Internet Engineering Task Force (IETF) proposed Datagram Congestion Control (DCCP) as an alternative to replace the UDP protocol.
In this study, we will be observed the effect of DCCP CCID 2 congestion control towards TCP Tahoe traffic using NS 2 simulator. The results showed that the DCCP CCID 2 is more friendly to the Tahoe TCP (TCP-Friendly) than UDP to TCP Tahoe. However, DCCP CCID 2 use more resources although DCCP CCID 2 and TCP Tahoe have the same congestion control.
Keywords : DCCP, CCID2, TCP Tahoe, Congestion control, TCP Friendly, Fairness.
(3)
i
ANALISIS PENGARSH
CONGESTION CONTROL
DCCP
CCID2 TERHADAP TCP TAHOE
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
R.B. Ignasius Satryo Husodo Fahik Moruk Hale 105314070
PROGRAM STSDI TEKNIK INFORMATIKA FAKSLTAS SAINS DAN TEKNOLOGI
SNIVERSITAS SANATA DHARMA YOGYAKARTA
(4)
ii
ANALYSIS OF EFFECT OF DCCP CCID2 CONGESTION
CONTROL TOWARDS TCP TAHOE
A THESIS
Presented as Partial fullfillment of the Requirements to Obtain the Sarjana Komputer Degree
in Informatics Engineering Study Program
R.B. Ignasius Satryo Husodo Fahik Moruk Hale 105314070
INFORMATICS ENGINERRING STSDY PROGRAM FACSLTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA SNIVERSITY YOGYAKARTA
(5)
(6)
(7)
(8)
vi
HALAMAN MOTTO
“Kesuksesan hanya dapat diraih dengan segala
upaya dan usaha yang disertai doa”
(9)
vii
PERNYATAAN PERSETSJSAN PSBLIKASI KARYA ILMIAH
SNTSK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : R.B. Ignasius Satryo Husodo Fahik Moruk Hale
NIM : 105314070
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
“Analisis Pengaruh Congestion Control DCCP CCID 2 Terhadap TCP
Tahoe”
Bersama perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, ... Penulis,
(10)
viii
ABSTRAK
Pada umumnya, internet menggunakan Transmission Control Protocol
(TCP) dan User Datagram Protocol (UDP) sebagai protokol transport untuk mengirimkan data. Ketika penggunaan trafik UDP menjadi lebih banyak dibandingkan dengan trafik TCP, terjadi masalah fairness karena trafik TCP tidak memperoleh bandwidth yang cukup. Oleh karena itu, Internet Engineering Task Force (IETF) mengajukan Datagram Congestion Control (DCCP) sebagai protokol alternatif untuk menggantikan UDP.
Pada penelitian ini, akan diamati pengaruh congestion control DCCP CCID 2 terhadap trafik TCP Tahoe menggunakan simulator NS 2. Hasil penelitian menunjukan bahwa DCCP CCID 2 lebih bersahabat terhadap TCP Tahoe ( TCP-Friendly) dibandingkan UDP terhadap TCP Tahoe. Namun, DCCP CCID 2 lebih banyak menggunakan resource yang ada meskipun DCCP CCID 2 dan TCP Tahoe sama-sama memiliki congestion control.
Kata kunci : DCCP, CCID2, TCP Tahoe, Congestion control, TCP Friendly,
(11)
ix
ABSTRACT
In general, the internet uses Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) as the transport protocol for sending data. When using UDP traffic becomes more than the TCP traffic, fairness problem occurs because TCP traffic does not obtain sufficient bandwidth. Therefore, the Internet Engineering Task Force (IETF) proposed Datagram Congestion Control (DCCP) as an alternative to replace the UDP protocol.
In this study, we will be observed the effect of DCCP CCID 2 congestion control towards TCP Tahoe traffic using NS 2 simulator. The results showed that the DCCP CCID 2 is more friendly to the Tahoe TCP (TCP-Friendly) than UDP to TCP Tahoe. However, DCCP CCID 2 use more resources although DCCP CCID 2 and TCP Tahoe have the same congestion control.
Keywords : DCCP, CCID2, TCP Tahoe, Congestion control, TCP Friendly,
(12)
x
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa atas segala karunia, rahmat dan bimbingan yang diberikan sehingga penulis dapat menyelesaikan skripsi “Analisis
Pengaruh Congestion Control DCCP CCID 2 Terhadap TCP Tahoe”.
Dalam menyelesaikan skripsi ini, bantuan banyak diberikan dari sejumlah pihak, oleh sebab itu penulis ingin mengucapkan terima kasih kepada :
1. Allah Bapa yang Maha Kuasa, yang telah menjawab doa, memberi bimbingan dan mencurahkan rahmat dengan perantaraan Yesus Kristus dan Bunda Maria sehingga penulis dapat menyelesaikan skripsi ini.
2. Bapak Henricus Agung Hernawan, S.T., M.Kom., selaku dosen pembimbing yang telah membantu dalam proses pengerjaan skripsi ini. 3. Bapak Bambang Soelistijanto, Ph.D., dan Bapak Puspaningtyas Sanjoyo
Adi, S.T., M.T., selaku panitia penguji yang telah memberikan saran dan masukan yang berguna dalam skripsi ini.
4. Kedua orang tua serta adik-adikku yang telah banyak memberikan bantuan baik dalam bentuk materi maupun dukungan dan doa.
5. Helena Christi Widiasrumana, yang telah menyemangati penulis ketika rasa malas dan jenuh datang dalam proses pengerjaan skripsi ini.
6. Teman – teman seperjuangan TI angkatan 2010 yang telah berbagi cerita hidup selama menimba ilmu di Program Studi Teknik Informatika
(13)
xi
Universitas Sanata Dharma. Terima kasih untuk cerita yang telah kita lakukan bersama.
7. Untuk pihak – pihak yang tidak saya sebutkan satu persatu. Penulis mengucapkan terima kasih atas bantuannya sehingga penulis dapat menyelesaikan skripsi ini.
Penulis menyadari masih banyak kekurangan dalam penyusunan tugas akhir ini. Saran dan kritik sangat diharapkan untuk perbaikan yang akan datang. Akhir kata, penulis berharap tugas akhir ini dapat bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan.
Yogyakarta, ...
Penulis,
(14)
xii
DAFTAR ISI
ANALISIS PENGARUH CONGESTION CONTROL DCCP CCID2
TERHADAP TCP TAHOE... i
ANALYSIS OF EFFECT OF DCCP CCID2 CONGESTION CONTROL TOWARDS TCP TAHOE ... ii
HALAMAN PERSETUJUAN ... Error! Bookmark not defined. HALAMAN PENGESAHAN ... Error! Bookmark not defined. PERNYATAAN KEASLIAN KARYA ... Error! Bookmark not defined. HALAMAN MOTTO ... vi
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii
ABSTRAK ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
DAFTAR GAMBAR ... xv
DAFTAR TABEL ... xvii
(15)
xiii
PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Rumusan Masalah ... 3
1.3. Tujuan Penelitian ... 3
1.4. Batasan Masalah... 3
1.5. Metode Penelitian... 4
1.6. Sistematika Penulisan ... 4
BAB II ... 6
LANDASAN TEORI ... 6
2.1. Transmission Control Protocol (TCP) ... 6
2.2. Datagram Congestion Control Protocol (DCCP)... 10
2.3. Network Simulator 2 ... 14
BAB III ... 17
PERANCANGAN SIMULASI JARINGAN ... 17
3.1. Diagram Alur Penelitian ... 17
3.2. Topologi Simulasi ... 19
3.3. Parameter Simulasi... 20
3.4. Skenario Pengujian... 21
3.5. Parameter Pengujian... 26
BAB IV ... 27
(16)
xiv
4.1. Pengambilan Data ... 27
4.2. Analisis Data Hasil Simulasi ... 29
BAB V ... 37
KESIMPULAN DAN SARAN ... 37
5.1. Kesimpulan ... 37
5.2. Saran ... 38
(17)
xv
DAFTAR GAMBAR
Gambar 2.1.1 Fase Slow starts ... 7
Gambar 2.1.2 Fase Congestion Avoidance ... 8
Gambar 2.1.3 Aturan Congestion TCP Tahoe ... 9
Gambar 2.1.4 Grafik cwnd TCP Tahoe ... 10
Gambar 2.2.1 Aturan DCCP congestion ... 13
Gambar 2.2.2 Grafik cwnd DCCP CCID 2 ... 13
Gambar 2.3.1 Format file trace ... 14
Gambar 3.1.1 Diagram Alur penelitian ... 18
Gambar 3.2.1 Topologi simulasi ... 19
Gambar 3.4.1 Topologi skenario TCP tanpa gangguan ... 22
Gambar 3.4.2 Topologi skenario TCP1 vs TCP2 ... 23
Gambar 3.4.3 Topologi Skenario TCP vs UDP ... 24
Gambar 3.4.4 Topologi skenario TCP vs DCCP CCID 2 ... 25
Gambar 4.1.1 Grafik CWND pada skenario TCP1 vs TCP2 ... 28
Gambar 4.1.2 Grafik CWND TCP pada skenario TCP vs UDP ... 28
Gambar 4.1.3 Grafik CWND TCP pada skenario TCP vs DCCP ... 28
Gambar 4.2.1 Grafik CWND skenario TCP1 vs TCP2 ... 29
Gambar 4.2.2 Grafik CWND skenario TCP vs UDP ... 30
Gambar 4.2.3 Grafik CWND skenario TCP vs DCCP ... 31
Gambar 4.2.4 Grafik perbandingan rata-rata byte transfer/cwnd ... 32
(18)
xvi
Gambar 4.2.6 Grafik rata-rata end-to-end delay ... 34 Gambar 4.2.7 Grafik jumlah packet drop ... 36
(19)
xvii
DAFTAR TABEL
Tabel 3.3.1 Parameter simulasi ... 20 Tabel 4.1.1 Data Hasil Simulasi ... 27
(20)
1
BAB I
PENDAHSLSAN
1.1. Latar Belakang
Pada umumnya, internet menggunakan Transmission Control Protocol
(TCP) dan User Datagram Protocol (UDP) sebagai protokol transport untuk mengirimkan data. TCP biasanya digunakan aplikasi-aplikasi non real-time
seperti HTTP, SMTP, atau FTP. Sedangkan UDP adalah protokol transport yang paling banyak digunakan untuk aplikasi real-time seperti game online, video conference, streaming video dan audio [1].
TCP merupakan protokol yang berorientasi koneksi (connection-oriented), mendukung full-duplex, multiplexing, handal (reliable), byte stream, memiliki
flow control dan congestion control. UDP merupakan protokol yang tidak berorientasi koneksi (connectionless), tidak handal (unreliable), half duplex. Keunggulan UDP adalah protokol ini memiliki mekanisme yang sederhana, tidak memiliki mekanisme yang rumit seperti congestion control. Akan tetapi, tidak memiliki mekanisme congestion control menyebabkan masalah fairness terhadap TCP. Ketika penggunaan trafik UDP menjadi lebih banyak dibandingkan dengan trafik TCP, masalah fairness menjadi parah karena trafik TCP tidak memperoleh
bandwidth yang cukup. Bahkan trafik UDP dapat menggunakan hampir seluruh
bandwidth yang ada sehingga trafik TCP tidak memperoleh bandwidth sama sekali yang berakibat pada congestion collaps. Oleh karena itu, Internet
(21)
2
Engineering Task Force (IETF) mengajukan Datagram Congestion Control
(DCCP) sebagai protokol alternatif untuk menggantikan UDP [4].
DCCP merupakan protokol transport untuk komunikasi real-time yang mengimplementasi mekanisme congestion control agar lebih TCP-friendly karena trafik TCP masih dominan di internet saat ini. Mekanisme congestion control
DCCP menyerupai congestion control pada TCP. Akan tetapi, DCCP tidak menjamin data yang terkirim sampai tujuan (unreliable data delivery). Keunggulan DCCP adalah protokol ini memiliki beberapa pilihan algoritma
congestion control yang dilambangkan dengan Congestion Control ID (CCID). Saat ini, 3 CCID yang telah distandarisasi oleh IETF. CCID 2 [6] menggunakan algoritma TCP-like congestion control, CCID 3 [7] menggunakan algoritma
TCP-Friendly Rate Control (TFRC), dan CCID 4 [8] menggunakan algoritma
TCP-Friendly Rate Control for Small Packet (TFRC-SP).
Berdasarkan uraian diatas, penulis akan melakukan penelitian dengan fokus mengamati pengaruh congestion control DCCP CCID 2 terhadap trafik TCP menggunakan simulator NS 2. Varian TCP yang digunakan dalam penelitian ini adalah TCP Tahoe. Parameter-parameter yang diamati yaitu congestion window, rata-rata throughput, rata-rata end-to-end delay dan packet drop. Hasil penelitian ini diharapkan dapat bermanfaat sebagai referensi penelitian dan pengembangan terkait mekanisme congestion control DCCP dan mekanisme congestion control
(22)
3
1.2. Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan, rumusan masalah yang didapat adalah:
Bagaimana pengaruh congestion control DCCP CCID 2 terhadap TCP berdasarkan parameter Congestion Window (CWND), rata-rata Throughput, rata-rata End-to-End Delay dan Packet Drop ?
1.3. Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mengetahui pengaruh mekanisme
congestion control DCCP CCID 2 terhadap TCP berdasarkan parameter
Congestion Window (CWND), rata-rata Throughput, rata-rata End-to-End Delay
dan Packet Drop.
1.4. Batasan Masalah
Batasan masalah dalam tugas akhir ini adalah sebagai berikut:
1. Pengujian dilakukan menggunakan simulator Network Simulator 2 versi 2.35-allinone yang diinstal pada Linux Ubuntu 14.02.
2. Varian TCP yang digunakan pada penelitian ini adalah TCP Tahoe. 3. Protokol DCCP yang digunakan adalah DCCP CCID 2.
4. Jenis antrian yang digunakan adalah Drop Tail dengan ukuran buffer
pada router adalah 30.
5. Jumlah node yang digunakan adalah 6 node, 2 node sebagai node
(23)
4 6. Parameter pengujian adalah Congestion Window (CWND), rata-rata
Throughput, rata-rata End to End Delay dan PacketDrop.
1.5. Metode Penelitian
Metode-metode penelitian yang dilakukan pada penelitian ini adalah sebagai berikut:
1. Studi Literatur. a. Teori TCP b. Teori TCP Tahoe c. Teori DCCP
d. Teori DCCP CCID 2 e. Teori NS 2
2. Perancangan dan pembangunan simulasi pengujian. 3. Pengukuran dan pengumpulan data.
4. Analisis data dan pembahasan.
1.6. Sistematika Penulisan
Sistematika penulisan yang digunakan dalam penyusunan Tugas Akhir ini adalah sebagai berikut :
BAB I PENDAHSLSAN
Bab ini berisi latar belakang, rumusan masalah, metode penelitian dan sistematika penulisan.
(24)
5 Bab ini berisi tentang landasan teori yang berkaitan dengan penelitian.
BAB III PERANCANGAN SIMSLASI JARINGAN
Bab ini berisi perencanaan simulasi jaringan yang berkaitan dengan topologi simulasi, parameter simulasi dan skenario pengujian.
BAB IV ANALISIS DATA SIMSLASI
Bab ini berisi pelaksanaan dan hasil analisis data simulasi.
BAB V KESIMPSLAN DAN SARAN
Bab ini berisi kesimpulan yang didapat dan saran-saran berdasarkan hasil analisis yang telah dilakukan.
(25)
6
BAB II
LANDASAN TEORI
2.1. Transmission Control Protocol (TCP)
Transmission Control Protocol adalah suatu protokol yang berada di lapisan
transport (baik dalam model OSI maupun DARPA) yang berorientasi sambungan (connection-oriented) karena sebelum mentransmisikan data antara dua host, keduanya harus melakukan negosiasi untuk membuat sesi koneksi.
Simulasi koneksi pada one way TCP dilakukan dengan menggunakan 2
agents yang berpasangan, yaitu TCP source dan TCP sink, TCP source berfungsi sebagai pengirim dan TCP sink bertugas mengirim ACK per paket yang diterima dari TCP source pasangannya. Aplikasi yang dipakai pada TCP adalah FTP yang biasanya digunakan untuk mewakili aplikasi yang berbasis nrt-VBR (non real-time Variable Bit Rate) yang bersifat bursty dan tidak sensitif terhadap delay.
2.1.1. TCP Tahoe
TCP Tahoe adalah algoritma yang paling sederhana dari TCP varian lainnya. TCP Tahoe didasarkan pada tiga algoritma, yaitu Slow Start (SS),
Congestion Avoidance (CA), dan fast retransmit.
2.1.1.1. Slow start
Pada fase slow start, TCP pengirim menginisialisasi congestion window
(cwnd) = 1 MSS (Maximum Segmen Size). Ini artinya, TCP pengirim hanya dapat mengirim 1 paket saja sampai pengirim menerima ACK. Ketika TCP pengirim
(26)
7 menerima ACK, ukuran cwnd akan bertambah 1 MSS, yang berarti cwnd saat ini = 2 MSS. Sekarang TCP pengirim dapat mengirim 2 paket. Ketika setiap pesan ACK diterima, cwnd akan bertambah 1 MSS. Jadi, saat ini ukuran cwnd akan bertambah menjadi 4. Dan seterusnya sampai cwnd mencapai batas ssthresh. Pada fase slow start, cwnd akan meningkat secara exponensial.
(27)
8 2.1.1.2.Congestion Avoidance
Ketika ukuran cwnd mencapai ssthresh, fase slow start berhenti dan memasuki fase congestion avoidance. Pada fase congestion avoidance, setiap seluruh paket pada cwnd di ACK, cwnd bertambah 1. Pada fase ini, cwnd akan meningkat secara linier.
(28)
9 TCP pengirim menetapkan timer untuk setiap paket yang dikirim ke tujuan. Jika TCP pengirim tidak menerima ACK sebelum timer habis, TCP mengasumsi bahwa telah terjadi paket hilang. Kemudian TCP melakukan hal berikut ketika timer habis :
Gambar 2.1.3 Aturan Congestion TCP Tahoe
1. Nilai dari ssthresh diturunkan menjadi ½ dari besarnya cwnd, ssthresh = cwnd/2.
2. Paket yang hilang dikirim ulang. 3. Cwnd diturunkan menjadi = 1. 4. Mengulang slow start.
(29)
10
Gambar 2.1.4 Grafik cwnd TCP Tahoe
2.2. Datagram Congestion Control Protocol (DCCP)
DCCP merupakan protokol transport yang memiliki congestion control, tapi tidak menjamin pengiriman data yang reliable pada komunikasi real-time [3][4]. DCCP memiliki beberapa pilihan algoritma congestion control yang sudah distandarisasi yaitu CCID 2 [6] menggunakan algoritma TCP-like congestion control, CCID 3 [7] menggunakan algoritma TCP-Friendly Rate Control (TFRC), dan CCID 4 [8] menggunakan algoritma TCP-Friendly Rate Control for Small Packet (TFRC-SP). Pada penelitian ini akan menggunakan DCCP CCID 2.
Simulasi koneksi pada DCCP CCID2 dilakukan dengan menggunakan 2
agents yang berpasangan, yaitu DCCP source dan DCCP sink, DCCP source
(30)
11 diterima dari DCCP source pasangannya. Aplikasi yang dipakai pada DCCP adalah CBR yang mewakili trafik real-time dengan bit-rate yang tetap.
2.2.1.Perbedaan antara DCCP dengan TCP
Berikut adalah perbedaan-perbedaan antara DCCP dan TCP [5].
Packet stream. DCCP adalah packet stream protocol, bukan byte-stream protocol.
Unreliability. DCCP tidak mengirim ulang paket.
Packet sequence number. Pada DCCP, sequence number merujuk pada paket, bukan byte.
Pilihan pada congestion control. Salah satu fitur DCCP adalah mekanisme congestion control yang digunakan untuk koneksi. Pada DCCP, 2 endpoint dapat menggunakan mekanisme congestion control yang berbeda. Contohnya : pada koneksi A<-> B, data dikirim dari A -> B menggunakan CCID 2, dan data yang dikirim dari B -> A dapat menggunakan CCID 3.
Format acknowledgement yang berbeda. CCID untuk setiap koneksi menentukan berapa banyak informasi ACK yang dibutuhkan untuk dikirim. Pada CCID 2, 1 ACK per 2 paket, dan setiap ACK harus mendeklarasikan paket mana yang diterima. Sedangkan pada DCCP CCID 3, 1 ACK per RTT.
Tidak memiliki receive window. DCCP adalah congestion control protocol, bukan flow control protocol.
(31)
12
2.2.2.Congestion Control ID 2 (CCID 2): TCP-like Congestion Control
Algoritma congestion control CCID2 menyerupai TCP congestion control
[6][11]. Ketika penerima menerima paket DCCP, penerima mengirim kembali pesan Ack kepada pengirim. Setelah menerima paket Ack, penerima menambah ukuran window-nya. Perbedaan utama antara TCP dan DCCP CCID2 adalah TCP mengirim ulang paket yang hilang sedangkan DCCP CCID 2 tidak mengirim ulang.
Algoritma CCID 2 berdasarkan algoritma AIMD untuk mengontrol window -nya. Sama seperti TCP, DCCP CCID 2 juga memiliki parameter congestion window (cwnd) yaitu maksimum jumlah paket yang diperbolehkan pada jaringan. Sama seperti TCP, DCCP pengirim mulai dengan fase slow start, dimana cwnd bertambah 1 untuk setiap ACK yang diterima oleh DCCP pengirim. Cwnd DCCP meningkat secara eksponensial hingga mencapai ssthresh atau dideteksi adanya paket hilang. Pengirim kemudian memasuki fase congestion avoidance dimana cwnd akan meningkat secara linier sampai adanya paket hilang. Ketika paket hilang dideteksi karena timeout, cwnd diturunkan menjadi 1 dan mengulang slow start. Sedangkan jika paket hilang dideteksi melalui 3 duplikat ACK, cwnd diturunkan menjadi sama dengan nilai ssthresh, dimana ssthresh = cwnd/2.
(32)
13
Gambar 2.2.1 Aturan DCCP congestion
(33)
14
2.3. Network Simulator 2
Network simulator 2 (NS2) merupakan perangkat lunak yang dibangun untuk kepentingan riset. NS2 bersifat open-source dibawah GPL (Gnu Public License), sehingga dapat di-download secara gratis melalui web NS2 [9].
NS2 di bangun dari 2 bahasa pemrograman. Pertama yaitu C++, sebagai
library yang berisi event scheduler, protokol, dan network component yang diimplementasikan pada simulasi oleh user. Kedua yaitu Tcl/Otcl yang digunakan pada script simulasi yang ditulis oleh NS user.
Setelah simulasi dijalankan, keluaran dari hasil NS2 berupa file trace
berekstensi “.tr”. file trace ini dapat diolah ataupun dianalisa menggunakan cara manual maupun dengan bantuan tools lain seperti Awk script dan perl.
File trace tersebut terdiri dari kolom-kolom hasil record yang dijelaskan berikut :
Event Time From
Node Node To Packet Type Packet Size Flags Flow ID Source Addr Addr Dest. Number Seq. Packet ID
Gambar 2.3.1 Format file trace
1. Event
Kejadian yang dicatat oleh NS, yaitu
r : receive (paket yang diterima node tujuan) + : enqueue (paket masuk antrian)
- : dequeue (paket keluar antrian) d : drop (paket dibuang di antrian)
(34)
15 Mengindikasikan waktu terjadinya suatu kejadian dalam hitungan detik setelah start.
3. From Node dan To Node
Menyatakan keberadaan paket saat suatu kejadian dicatat.
4. Packet Type
Menginformasikan tipe paket yang dikirim. Contohnya seperti cbr, TCP, ack.
5. Packet Size
Ukuran paket dalam byte.
6. Flags
Flag digunakan sebagai penanda. Macam-macam flag yang digunakan yaitu :
E : mengindikasikan terjadi congestion (Congestion Experienced
(CE)).
N : mengindikasikan ECN-Capable-Transport pada header IP. C : mengindikasikan ECN-Echo.
A : mengindikasikan pengurangan cwnd pada header TCP. P : mengindikasikan prioritas.
F : mengindikasikan TCP faststart.
7. Flow ID
Memberi nomor unik untuk mengidentifikasikan tiap aliran data.
(35)
16 Alamat asal paket dengan format node.port. Contohnya : 2.0 artinya
node ke 2 port 0.
9. Dest. Addr
Alamat tujuan paket dengan format node.port. Contohnya : 2.0 artinya
node ke 2 port 0
10.Sequence Number
Nomor urut paket
11.Packet ID
(36)
17
BAB III
PERANCANGAN SIMSLASI JARINGAN
3.1. Diagram Alur Penelitian
Dalam merancang suatu simulasi, ada beberapa langkah yang dilakukan agar hasil simulasi yang didapat sesuai dengan yang diharapkan. Pertama, menentukan topologi jaringan yang akan digunakan. Faktor-faktor yang menjadi pertimbangan antara lain model jaringan wired atau wireless, jumlah node, posisi
node sumber dan node tujuan. Topologi simulasi akan dibahas pada subbab 3.2.
Kedua, menentukan parameter-parameter simulasi. Parameter-parameter simulasi antara lain bandwidth dan delay link, jenis dan ukuran antrian, jenis aplikasi, protokol transport, serta waktu simulasi. Parameter-parameter simulasi yang digunakan pada penelitian ini akan dibahas pada subbab 3.3.
Ketiga, menentukan skenario pengujian. Skenario pengujian merupakan gambaran secara keseluruhan tentang penelitian yang akan dilakukan agar memperoleh hasil yang sesuai dengan tujuan penelitian. Rancangan skenario simulasi pada penelitian ini akan dibahas pada subbab 3.4.
Keempat, membuat script simulasi dan menjalankan simulasi. Script *.tcl dibangun berdasarkan topologi, parameter-parameter dan skenario pengujian yang telah direncanakan. Jika simulasi berhasil, maka akan dihasilkan file trace. . File trace kemudian diolah menggunakan script *.awk untuk mendapatkan nilai parameter pengujian. Parameter pengujian dibahas pada subbab 3.5. Jika simulasi
(37)
18 gagal, maka harus dilakukan troubleshooting terhadap script *.tcl yang telah dibuat dan kemudian memperbaikinya. Setelah itu simulasi dijalankan kembali. Contoh script *.tcl dan *.awk tersedia pada Halaman Lampiran
Start
Menentukan Topologi Simulasi
Menentukan Parameter Simulasi
Menentukan Skenario Pengujian
Pemkuatan Script Simulasi & Menjalankan Simulasi
Output/File Trace, NAM
Pemkuatan Script awk
Berhasil
Analisis & iesimpulan
End Data Hasil Simulasi
(nilai cwnd, throughput, endtoend delay &
packet drop) Tidak Ya Berhasil Ya Tidak
(38)
19
3.2. Topologi Simulasi
Topologi simulasi menggunakan model topologi yang sederhana yaitu topologi dumb-bell. Topologi ini umumnya digunakan untuk mempelajari efek jalur bottleneck yang dilewati oleh banyak node pengirim. Berikut desain topologi yang digunakan:
Gambar 3.2.1 Topologi simulasi
Topologi ini menggunakan 6 node yang disimbolkan dengan n0, n1, n2, n3,
n4 dan n5. Node n0 dan n1 bertindak sebagai node pengirim, node n2 dan n3
bertindak sebagai node router sedangkan node n4 dan n5 bertindak sebagai penerima. Node n0 akan dipasangkan dengan node n4 dan node n1 akan dipasangkan dengan noden5.
(39)
20
3.3. Parameter Simulasi
Pada penelitian ini, parameter simulasi dikondisikan agar terjadi congestion
disisi router. Parameter- parameter ini bersifat konstan dan digunakan sesuai dengan skenario pengujian yang ditentukan. Parameter simulasi yang digunakan pada penelitian ini dapat dilihat pada tabel 3.3.1.
Tabel 3.3.1 Parameter simulasi
Parameter Simulasi Nilai
Link Source n0, n1– Routern2 Bandwidth : 10 Mbps
Delay Propagation : 10 ms
Link Router n2 – Routern3 Bandwidth : 5 Mbps
Delay Propagation : 10 ms
Link Router n3 – Sink n4, n5 Bandwidth : 10 Mbps
Delay Propagation : 10 ms
Protokol Transport TCP, UDP, DCCP CCID 2
Model Antrian Drop Tail
Skuran Buffer pada Router 30
Aplikasi/Sumber Trafik
FTP :
- Ukuran : 1000 byte CBR :
- Ukuran : 1000 byte - Rate : 5 Mbps
(40)
21 Aplikasi yang digunakan TCP adalah FTP yang mewakili aplikasi yang berbasis nrt-VBR (non real-time Variable Bit Rate) yang bersifat bursty dan tidak sensitif terhadap delay. Sedangkan UDP dan DCCP menggunakan trafik CBR (Constant Bit Rate) yang mewakili trafik real-time dengan bit-rate yang tetap.
3.4. Skenario Pengujian
Pada penelitian ini, untuk mengamati congestion window (cwnd), rata-rata throughput, rata-rata end-to-end delay dan packet drop pada TCP dibagi menjadi 4 skenario. Skenario pertama TCP akan berjalan sendiri tanpa adanya gangguan, skenario kedua menggunakan 2 protokol TCP dimana TCP1 akan diganggu oleh TCP2, skenario ketiga menggunakan protokol TCP dan UDP dimana TCP akan diganggu oleh UDP, sedangkan skenario keempat menggunakan protokol TCP dan DCCP CCID 2 dimana TCP akan diganggu oleh DCCP.
(41)
22
3.4.1.Skenario TCP tanpa gangguan
Gambar 3.4.1 Topologi skenario TCP tanpa gangguan
Pada skenario pertama, trafik TCP akan berjalan sendiri tanpa gangguan trafik lain selama 500 detik. Skenario 1 bertujuan untuk mengamati TCP memaksimalkan penggunaan resource yang ada. Hasil dari skenario pertama akan menjadi benchmark.
(42)
23
3.4.2.Skenario TCP1 vs TCP2
Gambar 3.4.2 Topologi skenario TCP1 vs TCP2
Pada skenario kedua, trafik TCP1 akan diganggu oleh trafik TCP2. Trafik TCP1 akan mulai lebih dahulu yaitu pada detik ke 0.1 kemudian diikuti oleh trafik TCP2 yang mulai pada detik ke 100.1 sampai waktu simulasi berakhir pada detik 500. Skenario ini bertujuan untuk mengamati pengaruh trafik TCP2 terhadap trafik TCP1. Rancangan topologi skenario kedua dapat dilihat pada gambar 3.4.2.
(43)
24
3.4.3.Skenario TCP vs SDP
Gambar 3.4.3 Topologi Skenario TCP vs SDP
Pada skenario ketiga, trafik TCP akan diganggu oleh trafik UDP. trafik TCP akan mulai lebih dahulu yaitu pada detik ke 0.1 kemudian diikuti oleh trafik UDP yang mulai pada detik ke 100.1 sampai waktu simulasi berakhir pada detik 500. Skenario ini bertujuan untuk mengamati pengaruh trafik UDP terhadap trafik TCP. Rancangan topologi skenario ketiga dapat dilihat pada gambar 3.4.3.
(44)
25
3.4.4.Skenario TCP vs DCCP
Gambar 3.4.4 Topologi skenario TCP vs DCCP CCID 2
Pada skenario keempat, Trafik TCP akan diganggu oleh trafik DCCP. Trafik TCP akan mulai lebih dahulu yaitu pada detik ke 0.1 kemudian diikuti oleh trafik DCCP yang mulai pada detik ke 100.1 sampai waktu simulasi berakhir pada detik 500. Skenario ini bertujuan untuk mengamati pengaruh trafik DCCP terhadap trafik TCP. Topologi skenario keempat dapat dilihat pada gambar 3.4.4.
(45)
26
3.5. Parameter Pengujian
Parameter pengujian yang diamati dalam penelitian ini yaitu:
3.5.1.Congestion Window (CWND).
Cwnd merupakan variabel yang digunakan dalam membatasi jumlah data yang dapat dikirim oleh Transport Protocol. Nilai cwnd ditentukan oleh ACK yang diterima oleh pengirim. Analisis cwnd akan di lakukan dengan mengamati perubahan cwnd TCP ketika trafik lain mulai berjalan. Selain itu, akan dihitung rata-rata bytetransfer per cwnd.
3.5.2.Rata-rata Throughput
Rata-rata throughput adalah jumlah data yang diterima oleh node tujuan per satuan waktu dalam suatu jaringan. Satuan yang digunakan rata-rata throughput
jaringan pada penelitian ini yaitu KBps (Kilobyte per second). Nilai dari rata-rata
throughput akan semakin baik jika nilainya semakin besar.
3.5.3.Rata-rata End-to-end Delay
Rata-rata End-to-end Delay adalah rata-rata selisih waktu pengiriman paket saat dikirimkan dengan saat paket tersebut diterima oleh node tujuan. Nilai End-to-end delay akan semakin baik jika nilainya semakin kecil.
3.5.4.Packet Drop
Packet drop adalah paket yang dibuang saat melewati router dikarenakan
buffer antrian penuh. Jumlah total paket yang dibuang selama simulasi berlangsung akan dihitung.
(46)
27
BAB IV
DATA DAN ANALISIS HASIL SIMSLASI
Simulator yang digunakan pada simulasi ini adalah Network Simulator 2 versi 2.35-allinone. Modul protokol TCP, UDP maupun DCCP sudah tersedia di dalam ns2. Setelah simulasi dijalankan, output dari simulasi penelitian ini berupa file trace berekstensi “.tr, .xg, dan .nam”. file trace ini dapat diolah atau dianalisis menggunakan tools awk script untuk menghitung nilai rata-rata byte/cwnd, rata-rata throughput, rata-rata end-to-end delay dan packet drop.
4.1. Pengambilan Data
Pengambilan data akan dilakukan sesuai dengan skenario simulasi yang telah dirancang pada BAB III. Berikut ditampilkan data hasil simulasi yang diambil dari 1 kali pengujian per skenario.
Tabel 4.1.1 Data Hasil Simulasi
Skenario
Parameter TCP TCP vs TCP TCP vs UDP TCP vs DCCP
Avg Byte transferred /
cwnd (KB/cwnd) 1.991,070 559,772 91,520 412,448
Avg Throughput (KBps) 572,218 282,220 0,192 230,438
Avg End-to-end Delay (s) 0,0687888 0,0805617 32,5194000 0,0870757
(47)
28 Snapshot cwnd pada skenario TCP1 vs TCP2.
Gambar 4.1.1 Grafik CWND pada skenario TCP1 vs TCP2
Snapshot cwnd pada skenario TCP vs UDP.
Gambar 4.1.2 Grafik CWND TCP pada skenario TCP vs SDP
Snapshot cwnd pada skenario TCP vs DCCP.
(48)
29
4.2. Analisis Data Hasil Simulasi
4.2.1. Analisis Congestion Window (CWND)
Pada simulasi penelitian ini, model antrian yang digunakan adalah Drop Tail. Pada drop tail, ketika antrian penuh, paket baru yang datang akan dibuang sampai antrian memiliki ruang untuk menampung paket yang datang. Pada TCP tahoe, adanya paket yang dibuang menyebabkan timeout yang mengindikasikan adanya congestion sehingga TCP menurunkan cwnd = 1 dan memulai kembali
slow start.
Gambar 4.2.1 Grafik CWND skenario TCP1 vs TCP2
Pada simulasi skenario TCP1 vs TCP2, trafik TCP1 diganggu oleh trafik TCP2. Setiap paket TCP1 dan TCP2 akan melewati router yang sama dan ditampung dalam buffer antrian. Paket-paket TCP1 dan TCP2 datang secara berurutan hingga buffer antrian penuh. Ketika buffer antrian penuh, paket TCP1 dan TCP2 dibuang bersamaan. Akibatnya TCP1 dan TCP2 menurunkan cwnd
(49)
30 menjadi 1 dan memulai kembali slow start pada waktu yang sama. Hal ini akan terjadi berulang-ulang sehingga ukuran cwnd TCP1 dan TCP2 sama besar.
Gambar 4.2.2 Grafik CWND skenario TCP vs SDP
Sedangkan pada skenario TCP vs UDP, ketika trafik TCP diganggu oleh trafik UDP, paket-paket UDP akan mendominasi penggunaan buffer antrian sehingga tidak ada ruang buffer yang tersedia untuk paket TCP dan akhirnya paket TCP dibuang. UDP tidak memiliki congestion control sehingga tidak mempedulikan adanya paket yang dibuang dan terus mengirim dengan kecepatan yang konstan. Sedangkan pada TCP, adanya paket yang didrop menyebabkan
timeout. Hal ini mengindikasikan adanya congestion sehingga TCP menurunkan cwnd menjadi 1 dan memulai kembali slow start dan melakukan retransmit. Akan tetapi, paket yang di-retransmit juga dibuang karena tidak ada ruang buffer yang tersedia sehingga TCP berhenti mengirim.
(50)
31
Gambar 4.2.3 Grafik CWND skenario TCP vs DCCP
Pada skenario TCP vs DCCP, ketika trafik TCP diganggu dengan trafik DCCP, terlihat bahwa cwnd DCCP lebih besar dibandingkan cwnd TCP. Hal ini karena pada TCP tahoe, congestion hanya dideteksi dari timeout dan kemudian menurunkan cwnd menjadi 1 dan memulai kembali slow start. Sedangkan pada DCCP CCID2, jika congestion dideteksi karena timeout, DCCP akan memulai kembali fase slow start sama seperti TCP tahoe. Tetapi jika congestion dideteksi karena duplikat 3 ack, DCCP langsung memasuki fase congestion avoidance. Hal ini menyebabkan DCCP mengirim paket lebih banyak daripada TCP sehingga
(51)
32
Gambar 4.2.4 Grafik perbandingan rata-rata byte transfer/cwnd
Grafik pada gambar 4.2.4 menunjukan bahwa rata-rata byte transfer per
cwnd pada TCP mengalami penurunan karena adanya trafik pengganggu. Penurunan yang besar terjadi ketika TCP diganggu oleh UDP. Hal ini karena UDP tidak memiliki congestion control sehingga UDP terus mengirimkan paket dan tidak mempedulikan adanya paket yang hilang. Akibatnya UDP menggunakan seluruh buffer yang ada sehingga paket TCP selalu dibuang yang menyebabkan cwnd TCP jatuh dan tidak berubah.
Sedangkan ketika TCP diganggu dengan TCP2 maupun DCCP, TCP masih dapat mengirimkan paket karena baik TCP2 maupun DCCP memiliki mekanisme
congestion control sehingga mampu mendeteksi adanya congestion. Ketika TCP dan DCCP mendeteksi terjadi congestion, keduanya merespon dengan menurunkan cwnd-nya. TCP mengulang fase slow start sedangkan DCCP
1.991,070 559,772 91,520 412,448 0,000 500,000 1.000,000 1.500,000 2.000,000 kB / c w nd
Perbandingan rata-rata
Byte Transfer /
CWND
TCP
TCP vs TCP TCP vs UDP TCP vs DCCP
(52)
33 langsung memasuki fase congestion avoidance menyebabkan DCCP mengirimkan paket lebih banyak sehingga ruang buffer lebih banyak terpakai oleh DCCP. Inilah yang menyebabkan rata-rata byte transfer per cwnd TCP ketika TCP diganggu oleh DCCP mengalami penurunan dibandingkan ketika TCP diganggu TCP2.
4.2.2.Rata-rata Throughput
Gambar 4.2.5 Grafik rata-rata throughput
Grafik pada gambar 4.2.5 menunjukan bahwa rata-rata throughput pada TCP mengalami penurunan karena adanya trafik pengganggu. Penurunan yang sangat besar terjadi ketika TCP diganggu oleh UDP. Nilai throughput TCP menjadi kecil karena seluruh bandwidth terpakai oleh UDP. Hal ini karena UDP tidak memiliki congestion control sehingga UDP terus mengirimkan paket dan tidak mempedulikan adanya paket yang hilang. Akibatnya UDP menggunakan
572,218 282,220 0,192 230,438 0,000 100,000 200,000 300,000 400,000 500,000 600,000 700,000 kB ps
Perbandingan Rata-rata
Throughput
TCP
TCP vs TCP TCP vs UDP TCP vs DCCP
(53)
34 seluruh buffer yang ada sehingga paket TCP selalu dibuang yang menyebabkan tidak ada paket TCP yang terkirim.
Sedangkan ketika TCP diganggu oleh TCP2 maupun DCCP, rata-rata
throughput TCP lebih baik dibandingkan ketika diganggu oleh UDP. Hal ini karena baik TCP2 maupun DCCP memiliki congestion control sehingga ketika buffer antrian penuh dan terjadi paket drop, keduanya mampu mendeteksi adanya congestion dan menurunkan cwnd. Akan tetapi, DCCP recovery dari congestion
lebih cepat dibandingkan TCP sehingga DCCP mengirim lebih banyak paket dari pada TCP. Bandwidth yang ada lebih banyak terpakai oleh DCCP dari pada TCP. Inilah yang menyebabkan rata-rata throughput TCP ketika TCP diganggu oleh DCCP mengalami penurunan dibandingkan ketika TCP diganggu oleh TCP2.
4.2.3.Rata-rata End-to-end Delay
Gambar 4.2.6 Grafik rata-rata end-to-end delay 0,069 0,081 32,520 0,088 0,000 5,000 10,000 15,000 20,000 25,000 30,000 35,000 E nd- to-en d D el ay (s )
Perbandingan Rata-rata
End-to-end
Delay
TCP
TCP vs TCP TCP vs UDP TCP vs DCCP
(54)
35 Grafik pada gambar 4.2.6 menunjukan bahwa rata-rata end-to-end delay
meningkat karena adanya trafik pengganggu. Sebagai catatan, delay paket yang dihitung adalah delay paket yang sampai node tujuan. Besarnya nilai end-to-end delay dipengaruhi oleh delay antrian karena paket harus menunggu untuk ditransmisikan. Jumlah paket yang dikirim juga mempengaruhi lamanya proses diantrian. Setiap paket memiliki variasi delay. Jika paket datang ketika buffer
antrian kosong maka tidak ada delay yang terjadi. Tetapi jika paket datang ketika masih ada paket yang mengantri maka delay akan bertambah besar karena paket akan menunggu lebih lama. Hal ini dapat dilihat pada skenario TCP diganggu dengan UDP, nilai end-to-end delay TCP meningkat sangat drastis karena paket TCP datang ketika banyak paket-paket UDP yang sedang menunggu untuk ditransmisikan. UDP tidak memiliki congestion control sehingga kecepatan pengiriman paket UDP tidak dapat dikontrol mengakibatkan buffer antrian selalu penuh.
Sedangkan ketika TCP diganggu dengan TCP2 dan DCCP, nilai end-to-end delay TCP kedua skenario relatif sama. Hal karena TCP2 dan DCCP memiliki
congestion control yang mengatur jumlah paket yang dapat dikirim sehingga buffer antrian tidak penuh setiap saat.
(55)
36 4.2.4.Packet Drop
Gambar 4.2.7 Grafik jumlah packet drop
Grafik pada gambar 4.2.7 menunjukan bahwa jumlah total packet drop
pada TCP meningkat ketika TCP diganggu oleh TCP2 maupun DCCP. Hal ini karena semakin banyak paket yang dikirim, buffer antrian akan semakin cepat penuh dan paket drop akan sering terjadi. DCCP recovery dari congestion lebih cepat daripada TCP sehingga cwnd DCCP lebih besar dari pada cwnd TCP. Artinya paket DCCP yang dikirim akan lebih banyak menyebabkan buffer antrian akan dipenuhi oleh paket-paket DCCP dan paket drop akan sering terjadi. Sehingga total paket drop TCP ketika TCP diganggu oleh DCCP menjadi lebih banyak dibandingkan ketika TCP diganggu oleh TCP2.
Ketika TCP diganggu oleh UDP yang tidak memiliki congestion control, paket drop TCP menurun. Hal ini disebabkan karena TCP berhenti mengirim untuk beberapa saat sehingga jumlah paket TCP yang dikirim menjadi sedikit dan paket drop pun menjadi lebih kecil.
115 203 38 224 0 50 100 150 200 250 Tot al Pac ke t D rop
Perbandingan Total Packet Drop
TCPTCP vs TCP TCP vs UDP TCP vs DCCP
(56)
37
BAB V
KESIMPSLAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil simulasi dan analisis yang telah dilakukan, dapat diambil kesimpulan bahwa:
1. DCCP CCID 2 lebih bersahabat terhadap TCP (TCP-Friendly) dibandingkan UDP terhadap TCP. Hal ini karena DCCP mengimplementasikan algoritma congestion control.
2. DCCP CCID 2 dan TCP tahoe sama-sama memiliki congestion control. Namun, ketika keduanya berbagi jalur yang sama, DCCP CCID 2 lebih banyak menggunakan resources yang ada karena algoritma congestion control CCID 2 lebih advance.
(57)
38
5.2. Saran
Adapun saran-saran yang dapat diberikan untuk pengembangan penelitian ini berikutnya adalah :
1. Membandingkan DCCP CCID 2 dengan varian TCP Reno yang memiliki algoritma congestion control yang sama.
2. Melakukan pengujian lebih lanjut pada varian DCCP lain yaitu CCID 3 yang memiliki algoritma congestion control yang berbeda dengan CCID 2.
3. Pengujian menggunakan pola distribusi paket yang berbeda. Contoh: pola distribusi paket random.
(58)
39
DAFTAR PSSTAKA
[1] Stalling, W. (2003). Data and Computer Communication, 5th Edition, hal 585. Prentice-Hall
[2] Forouzan, B. A. (2007). Data communications and Networking, 4thEdition. McGraw-hill
[3] Kohler, E., Handley M., & Floyd S. (2006). Designing: Congestion Control Without Reliablility. SIGCOMM ’06, September 11-15. Pisa, Italy.
[4] Kohler, E., Handley M., & Floyd S. (2006). Datagram Congestion Control Protocol (DCCP). [online].
Tersedia: http://tools.ietf.org/html/rfc4340 [18 juni 2015]
[5] Kohler, E., & Floyd, S. Datagram Congestion Control Protocol (DCCP) Overview. ICIR 9 July 2003
[6] Floyd, S., & Kohler, E. (2006). Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2 : TCP-Like Congestion Control”. [online].
Tersedia: http://tools.ietf.org/html/rfc4341 [18 juni 2015] [7] Floyd, S., & Kohler, E. (2006). Profile for Datagram
Congestion Control Protocol (DCCP) Congestion Control ID 3: TCP-Friendly Rate Control (TFRC). [online].
(59)
40 [8] Floyd, S., & Kohler, E. (2007). Profile for Datagram Congestion Control Protocol (DCCP) Congestion ID 4: TCP-Friendly Rate Control for Small Packet (TFRC-SP).
[online].
Tersedia:
https://tools.ietf.org/html/draft-ietf-DCCP-CCID4-05 [18 juni 2015]
[9] Network Simulator 2. [online].
Tersedia: http://www.isi.edu/nsnam/ns/ [18 juni 2015] [10] DCCP Agents. [online].
Tersedia: http://www.isi.edu/nsnam/ns/doc/node496.html
[11] Mattsson, Nils-Erik. 2004. A DCCP modul for ns-2, Sweden
[12] Comer, Douglas E. (2000). Vol I : Internetworking with TCP/IP Principles, Protocols, and Architectures, 4thEdition. Prentice-Hall, Inc
[13] Takeuchi, S., Koga, H., Kadobayashi Y., Yamaghuchi S. (2005). Performance Evaluations of DCCP for Bursty Traffic in Real-time Applications. SAINT 2005, Italy. [14] Bhatti, S., Bateman M., & Miras D. (2008). A Comparative
(60)
41
LAMPIRAN
1. Skenario1.tcl
#Skenario percobaan 1 : TCP tanpa gangguan #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 skenario1.tr w] $ns trace-all $tr
set nf [open skenario1.nam w] $ns namtrace-all $nf
#Setting Node set n0 [$ns node] set n1 [$ns node] set n2 [$ns node]
(61)
42 set n3 [$ns node]
set n4 [$ns node] set n5 [$ns node]
# Setting Link
$ns duplex-link $n0 $n2 10Mb 10ms DropTail $ns duplex-link $n1 $n2 10Mb 10ms DropTail $ns duplex-link $n2 $n3 5Mb 10ms DropTail $ns duplex-link $n3 $n4 10Mb 10ms DropTail $ns duplex-link $n3 $n5 10Mb 10ms DropTail
# Setting Node Position
$ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down
# Setting Queue Length $ns queue-limit $n2 $n3 30
# Setting TCP1 & TCP2 Agent set tcp1 [new Agent/TCP] $ns attach-agent $n0 $tcp1
(62)
43 $ns attach-agent $n4 $tcpsink1
$ns connect $tcp1 $tcpsink1 $tcp1 set window_ 1000 $tcp1 set fid_ 1
$ns color 1 Red
#Setting FTP Application set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1
#tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_
# Setting Time Schedule of Simulation $ns at 0.1 "$ftp1 start"
$ns at 500.0 "$ftp1 stop" $ns at 500.0 "finish"
# Plot Congestion Window
proc plotWindow {tcpSource outfile} { global ns
set cwnd [$tcpSource set cwnd_ ] set now [$ns now]
(63)
44 $ns at [expr $now+0.1] "plotWindow $tcpSource $outfile"
}
set outfile [open "cwndTCPS1.xg" w] $ns at 0.0 "plotWindow $tcp1 $outfile"
#run simulasi $ns run
2. Skenario2.tcl
#Skenario percobaan 2 : TCP vs TCP #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
(64)
45 $ns trace-all $tr
set nf [open skenario2.nam w] $ns namtrace-all $nf
#Setting Node set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node]
# Setting Link
$ns duplex-link $n0 $n2 10Mb 10ms DropTail $ns duplex-link $n1 $n2 10Mb 10ms DropTail $ns duplex-link $n2 $n3 5Mb 10ms DropTail $ns duplex-link $n3 $n4 10Mb 10ms DropTail $ns duplex-link $n3 $n5 10Mb 10ms DropTail
# Setting Node Position
$ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down
(65)
46 # Setting Queue Length
$ns queue-limit $n2 $n3 30
# Setting TCP1 & TCP2 Agent set tcp1 [new Agent/TCP] $ns attach-agent $n0 $tcp1
set tcpsink1 [new Agent/TCPSink] $ns attach-agent $n4 $tcpsink1 $ns connect $tcp1 $tcpsink1 $tcp1 set window_ 1000 $tcp1 set fid_ 1
$ns color 1 Red
set tcp2 [new Agent/TCP] $ns attach-agent $n1 $tcp2
set tcpsink2 [new Agent/TCPSink] $ns attach-agent $n5 $tcpsink2 $ns connect $tcp2 $tcpsink2 $tcp2 set window_ 1000 $tcp2 set fid_ 2
$ns color 2 Blue
#Setting FTP Application set ftp1 [new Application/FTP]
(66)
47 $ftp1 attach-agent $tcp1
set ftp2 [new Application/FTP] $ftp2 attach-agent $tcp2
#tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_
# Setting Time Schedule of Simulation $ns at 0.1 "$ftp1 start"
$ns at 100.1 "$ftp2 start" $ns at 500.0 "$ftp1 stop" $ns at 500.0 "$ftp2 stop" $ns at 500.0 "finish"
# Plot Congestion Window
proc plotWindow {tcpSource outfile} { global ns
set cwnd [$tcpSource set cwnd_ ] set now [$ns now]
puts $outfile "$now $cwnd"
$ns at [expr $now+0.1] "plotWindow $tcpSource $outfile" }
(67)
48 set outfile2 [open "cwndTCP2S2.xg" w]
$ns at 0.0 "plotWindow $tcp1 $outfile" $ns at 100.0 "plotWindow $tcp2 $outfile2"
#run simulasi $ns run
3. Skenario3.tcl
#Skenario percobaan 3 : TCP vs UDP #Declare New Simulator
set ns [new Simulator]
#Setting Finish Procedure proc finish {} {
global ns tr nf $ns flush-trace close $nf close $tr exit 0 }
#Setting output file
set tr [open skenario3.tr w] $ns trace-all $tr
(68)
49 $ns namtrace-all $nf
#Setting Node set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node]
# Setting Link
$ns duplex-link $n0 $n2 10Mb 10ms DropTail $ns duplex-link $n1 $n2 10Mb 10ms DropTail $ns duplex-link $n2 $n3 5Mb 10ms DropTail $ns duplex-link $n3 $n4 10Mb 10ms DropTail $ns duplex-link $n3 $n5 10Mb 10ms DropTail
# Setting Node Position
$ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down
(69)
50 $ns queue-limit $n2 $n3 30
# Setting TCP Agent set tcp1 [new Agent/TCP] $ns attach-agent $n0 $tcp1
set tcpsink1 [new Agent/TCPSink] $ns attach-agent $n4 $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] $ns attach-agent $n1 $udp1 set udpsink1 [new Agent/Null] $ns attach-agent $n5 $udpsink1 $ns connect $udp1 $udpsink1 $udp1 set fid_ 2
$ns color 2 Blue
#Setting FTP Application set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1
(70)
51 #Setting CBR Application
set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $udp1
$cbr1 set packet_size_ 1000 $cbr1 set rate_ 5Mb
#tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_
# Setting Time Schedule of Simulation $ns at 0.1 "$ftp1 start"
$ns at 100.1 "$cbr1 start" $ns at 500.0 "$ftp1 stop" $ns at 500.0 "$cbr1 stop" $ns at 500.0 "finish"
# Plot Congestion Window
proc plotWindow {tcpSource outfile} { global ns
set cwnd [$tcpSource set cwnd_ ] set now [$ns now]
puts $outfile "$now $cwnd"
$ns at [expr $now+0.1] "plotWindow $tcpSource $outfile" }
(71)
52 set outfile [open "cwndTCP1S3.xg" w]
$ns at 0.0 "plotWindow $tcp1 $outfile"
#run simulasi $ns run
4. Skenario4.tcl
#Skenario percobaan 4 : TCP vs DCCP #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 skenario4.tr w] $ns trace-all $tr
set nf [open skenario4.nam w] $ns namtrace-all $nf
(72)
53 #Setting Node
set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node]
# Setting Link
$ns duplex-link $n0 $n2 10Mb 10ms DropTail $ns duplex-link $n1 $n2 10Mb 10ms DropTail $ns duplex-link $n2 $n3 5Mb 10ms DropTail $ns duplex-link $n3 $n4 10Mb 10ms DropTail $ns duplex-link $n3 $n5 10Mb 10ms DropTail
# Setting Node Position
$ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down
# Setting Queue Length $ns queue-limit $n2 $n3 30
(73)
54 # Setting TCP Agent
set tcp1 [new Agent/TCP] $ns attach-agent $n0 $tcp1
set tcpsink1 [new Agent/TCPSink] $ns attach-agent $n4 $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] $ns attach-agent $n1 $dccp1
set dccpsink1 [new Agent/DCCP/TCPlike] $ns attach-agent $n5 $dccpsink1
$ns connect $dccp1 $dccpsink1 $dccp1 set window_ 1000 $dccp1 set fid_ 2
$ns color 2 Blue
#Setting FTP Application set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1
(74)
55 #Setting CBR Application
set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $dccp1
$cbr1 set packet_size_ 1000 $cbr1 set rate_ 5Mb
#tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_
# Setting Time Schedule of Simulation $ns at 0.1 "$ftp1 start"
$ns at 100.0 "$dccpsink1 listen" $ns at 100.1 "$cbr1 start" $ns at 500.0 "$ftp1 stop" $ns at 500.0 "$cbr1 stop" $ns at 500.0 "finish"
# Plot Congestion Window
proc plotWindow {tcpSource outfile} { global ns
set cwnd [$tcpSource set cwnd_ ] set now [$ns now]
puts $outfile "$now $cwnd"
(75)
56 }
set outfile [open "cwndTCP1S4.xg" w] $ns at 0.0 "plotWindow $tcp1 $outfile" set outfile2 [open "cwndDCCP1S4.xg" w] $ns at 100.0 "plotWindow $dccp1 $outfile2"
#run simulasi $ns run
5. Avgbpc.awk
BEGIN { countcwnd = 0 sendsize = 0 }
{
event = $1 time = $2 timecwnd=$1 fromNode = $3 toNode = $4 pkt_type = $5 pkt_size = $6 cwnd = $6
(76)
57 cwndvalue = $7
if (timecwnd >= 100.1 && cwndvalue == 1.000 && cwnd == "cwnd_" && toNode == 4) {
countcwnd++ }
if (time >= 100.1 && pkt_type == "tcp" && event == "+" && fromNode == 0) {
sendsize += pkt_size }
} END {
print" Total cwnd = " (countcwnd)
print" Avg Byte transferred/cwnd = " (sendsize/countcwnd)/1000 "KB/cwnd"
}
6. Avgthroughput.awk
BEGIN {
recvdSize = 0 startTime = 100.1 stopTime = 500.0 }
(77)
58 event = $1
time = $2 fromNode = $3 toNode = $4 pkt_type = $5 pkt_size = $6
if (event == "r" && time >= 100.1 && pkt_type == "tcp" && toNode==4) {
recvdSize += pkt_size }
} END {
print"Average TCP Throughput = " (recvdSize/1000)/(stopTime-startTime) "kBps"
}
7. Avge2edelay.awk
BEGIN {
num_sample = 0; total_delay = 0; }
{
event = $1 time = $2
(78)
59 fromNode = $3
toNode = $4 pkt_type = $5 f_id = $8
if (event == "+" && time >=100.1 && fromNode == 0 && pkt_type == "tcp" && f_id==1){
p_id==$12
t_dep[$12] = time }
if (event == "r" && time >=100.1 && toNode == 4 && pkt_type == "tcp" && f_id==1){
if (p_id = $12){ t_arr[$12] = time num_sample++
delay = t_arr[$12] - t_dep[$12] total_delay += delay
} }
} END{
avg_delay = total_delay/num_sample;
print "Average end to end delay = " avg_delay " s"; }
(79)
60
8. Avgpacketdrop.awk
BEGIN {
pkt_drops_tcp1 = 0 }
{
event = $1 time = $2 pkt_type = $5 pkt_fid = $8
if (event == "d" && time >= 100.1 && pkt_type=="tcp" && pkt_fid==1)
pkt_drops_tcp1++ }
END {
printf("Paket Drop TCP1 =%d\n", pkt_drops_tcp1); }
(1)
55 #Setting CBR Application
set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $dccp1
$cbr1 set packet_size_ 1000 $cbr1 set rate_ 5Mb
#tcp trace $tcp1 attach $tr $tcp1 tracevar cwnd_
# Setting Time Schedule of Simulation $ns at 0.1 "$ftp1 start"
$ns at 100.0 "$dccpsink1 listen" $ns at 100.1 "$cbr1 start" $ns at 500.0 "$ftp1 stop" $ns at 500.0 "$cbr1 stop" $ns at 500.0 "finish" # Plot Congestion Window
proc plotWindow {tcpSource outfile} { global ns
set cwnd [$tcpSource set cwnd_ ] set now [$ns now]
puts $outfile "$now $cwnd"
(2)
56 }
set outfile [open "cwndTCP1S4.xg" w] $ns at 0.0 "plotWindow $tcp1 $outfile" set outfile2 [open "cwndDCCP1S4.xg" w] $ns at 100.0 "plotWindow $dccp1 $outfile2" #run simulasi
$ns run
5. Avgbpc.awk BEGIN {
countcwnd = 0 sendsize = 0 }
{
event = $1 time = $2 timecwnd=$1 fromNode = $3 toNode = $4 pkt_type = $5 pkt_size = $6 cwnd = $6
(3)
57 cwndvalue = $7
if (timecwnd >= 100.1 && cwndvalue == 1.000 && cwnd == "cwnd_" && toNode == 4) {
countcwnd++ }
if (time >= 100.1 && pkt_type == "tcp" && event == "+" && fromNode == 0) {
sendsize += pkt_size }
} END {
print" Total cwnd = " (countcwnd)
print" Avg Byte transferred/cwnd = " (sendsize/countcwnd)/1000 "KB/cwnd"
}
6. Avgthroughput.awk BEGIN {
recvdSize = 0 startTime = 100.1 stopTime = 500.0 }
(4)
58 event = $1
time = $2 fromNode = $3 toNode = $4 pkt_type = $5 pkt_size = $6
if (event == "r" && time >= 100.1 && pkt_type == "tcp" && toNode==4) {
recvdSize += pkt_size }
} END {
print"Average TCP Throughput = " (recvdSize/1000)/(stopTime-startTime) "kBps"
}
7. Avge2edelay.awk BEGIN {
num_sample = 0; total_delay = 0; }
{
event = $1 time = $2
(5)
59 fromNode = $3
toNode = $4 pkt_type = $5 f_id = $8
if (event == "+" && time >=100.1 && fromNode == 0 && pkt_type == "tcp" && f_id==1){
p_id==$12
t_dep[$12] = time }
if (event == "r" && time >=100.1 && toNode == 4 && pkt_type == "tcp" && f_id==1){
if (p_id = $12){ t_arr[$12] = time num_sample++
delay = t_arr[$12] - t_dep[$12] total_delay += delay
} }
} END{
avg_delay = total_delay/num_sample;
print "Average end to end delay = " avg_delay " s"; }
(6)
60 8. Avgpacketdrop.awk
BEGIN {
pkt_drops_tcp1 = 0 }
{
event = $1 time = $2 pkt_type = $5 pkt_fid = $8
if (event == "d" && time >= 100.1 && pkt_type=="tcp" && pkt_fid==1)
pkt_drops_tcp1++ }
END {
printf("Paket Drop TCP1 =%d\n", pkt_drops_tcp1); }