Analisis pengaruh Congestion control DCCP CCID2 terhadap TCP Tahoe.

(1)

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, n1Routern2 Bandwidth : 10 Mbps

Delay Propagation : 10 ms

Link Router n2Routern3 Bandwidth : 5 Mbps

Delay Propagation : 10 ms

Link Router n3Sink 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

TCP

TCP 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); }