ANALISA DAN SIMULASI PERBANDINGAN ALGORITMA WESTWOOD DAN ALGORITMA SELECTIVE ACKNOWLEDGMENT OPTION PADA SISTEM KENDALI KONGESTI JARINGAN TCP

(1)

ANALISA DAN SIMULASI

PERBANDINGAN ALGORITMA WESTWOOD DAN

ALGORITMA SELECTIVE ACKNOWLEDGMENT

OPTION PADA SISTEM KENDALI KONGESTI

JARINGAN TCP

TUGAS AKHIR

Diajukan Untuk Memenuhi

Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang

Intan Dwi Octavianty 08560397

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG

2012


(2)

LEMBAR PERSETUJUAN

ANALISA DAN SIMULASI

PERBANDINGAN ALGORITMA WESTWOOD DAN

ALGORITMA SELECTIVE ACKNOWLEDGMENT OPTION

PADA SISTEM KENDALI KONGESTI

JARINGAN TCP

Disusun Oleh : Intan Dwi Octavianty

08560397

Diajukan Untuk Memenuhi

Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang

Diperiksa dan disetujui oleh,

Pembimbing I

Ir. M. Irfan, MT NIP. 10892030255

Pembimbing II

Setio Basuki, S.T NIP. 10809070477


(3)

LEMBAR PENGESAHAN

ANALISA DAN SIMULASI

PERBANDINGAN ALGORITMA WESTWOOD DAN

ALGORITMA SELECTIVE ACKNOWLEDGMENT OPTION

PADA SISTEM KENDALI KONGESTI

JARINGAN TCP

Diajukan Untuk Memenuhi

Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang

Disusun Oleh : Intan Dwi Octavianty

08560397

Tugas akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji tanggal 26-07-2012

Menyetujui,

Penguji I Penguji II

Agus Eko Minarno, S.Kom Mahar Faiqurrahman, S.Kom NIP. 10808110462

Mengetahui,

Ketua Jurusan Teknik Informatika

Eko Budi Cahyono, S.Kom., MT NIP. 10895040330


(4)

LEMBAR PERNYATAAN

Yang bertanda tangan dibawah ini :

NAMA : INTAN DWI OCTAVIANTY

Tempat/ Tgl Lahir : MALANG, 01 OKTOBER 1990

NIM : 08560397

FAK. / JUR. : TEKNIK / INFORMATIKA

Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “ANALISA DAN SIMULASI PERBANDINGAN ALGORITMA WESTWOOD DAN ALGORITMA SELECTIVE ACKNOWLEDGMENT OPTION PADA SISTEM KENDALI KONGESTI JARINGAN TCP “ beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.

Demikian surat pernyataan ini saya buat dengan sebenar – benarnya. Apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko / sanksi yang berlaku.

Malang, 26 Juli 2012 Yang Membuat Pertanyaan,

Intan Dwi Octavianty

Mengetahui,

Dosen Pembimbing I Dosen Pembimbing II


(5)

LEMBAR PERSEMBAHAN

Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Tugas akhir ini. Penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada :

1. Bapak Ir. M. Irfan, MT dan Setio Basuki, ST selaku pembimbing tugas akhir.

2. Bapak Agus Eko Minarno,S. Kom dan Mahar Faiqurrahman,S. Kom selaku dosen penguji.

3. Kedua Orang tua yang selalu memberikan doa dan dukungan.

4. Tomi Tandoyo yang telah mendahului saya lulus.

5. Bpk. Moch. Syafruddin dan Mbak Emil Hidayati selaku pemilik Click and Go Internet dan Game Online tempat saya bekerja selama lebih dari 3 tahun.

6. Sahabat seperjuangan Ratna Putri Cahyaning Wulan.

7. Big Family Click and Go, Fajar Waluya Nugraha, Ahmad Pariyono, Romi Hardiansyah, Moch. Arifudin, Ronny Setiawan, dan Suci Eko.

8. Teman-teman kelas H, Ayu Hadiarti, Lala Ifatuzzakia, Novega, Prita Larasati, Arif Hijayanto, Adhe Fajar, Devi, Misbah, Sanya, Nailufar, Yeny, Rezky, dan lainnya.


(6)

KATA PENGANTAR

Dengan memanjatkan puji syukur kehadirat Allah SWT. Atas limpahan rahmat dan hidayah-NYA sehngga penulis dapat menyelesaikan tugas akhir yang berjudul:

“ANALISA DAN SIMULASI

PERBANDINGAN ALGORITMA WESTWOOD DAN ALGORITMA SELECTIVE ACKNOWLEDGMENT OPTION PADA SISTEM KENDALI

KONGESTI JARINGAN TCP”

Di dalam tulisan ini disajikan pokok-pokok bahasan meliputi algoritma sistem kendali kongesti, mekanisme masing-masing algoritma dalam mengatasi kongesti, dan beberapa parameter yang akan diujikan untuk membandingkan performansi dari algoritma system kendali kongesti tersebut.

Peneliti menyadari sepenuhnya bahwa dalam penulisan tugas akhir ini masih banyak kekurangan dan keterbatasan. Oleh karena itu peneliti mengharapkan saran yang membangun agar tulisan ini bermanfaat bagi perkembagan ilmu pengentahuan kedepan.

Malang, 26 Juli 2012


(7)

DAFTAR ISI

Halaman LEMBAR JUDUL

LEMBAR PERSETUJUAN LEMBAR PENGESAHAN SURAT PERNYATAAN

ABSTRAKSI ...i

KATA PENGANTAR ...iv

DAFTAR ISI ...v

DAFTAR GAMBAR ...vi

DAFTAR TABEL ...vii

BAB I. PENDAHULUAN 1.1 Latar Belakang ...1

1.2 Rumusan Masalah ...3

1.3 Tujuan ...3

1.4 Batasan Masalah ...3

1.5 Metodologi Penyelesaian Masalah ...4

1.6 Sistematika Penulisan ...6

BAB II. DASAR TEORI 2.1 Transmission Control Protocol ...7

2.1.1 Header TCP ...8

2.1.2 Protokol TCP/IP dan OSI Layer ...10

2.1.3 Sifat Protocol TCP/IP ...11

2.1.4 Pengalamatan (Addressing) ...12

2.1.5 Prinsip Kerja TCP ...12

2.1.6 Layanan pada TCP ...14

2.2 Kontrol Kongesti ...16

2.2.1 Skema Taksonomi Kontrol Kongesti ...16

2.2.2 Mekanisme Kontrol Kongesti pada TCP3 ...18

2.3 Kontrol Kongesti ...19

2.3.1 Slow Start ...19

2.3.2 Congestion Avoidance ...21

2.4 Queue Management ...22

2.4.1 Drop Tail ...22

2.4.1 RED ...23

2.5 TCP Selective Acknowledgment Option ...24


(8)

BAB III. PERANCANGAN DAN IMPLEMENTASI

3.1 Pendahuluan ...27

3.2 Network Simulator ...27

3.2.1 Membuat Event Scheduler ...30

3.2.2 Membuat Tracing ...31

3.2.3 Membuat Node ...31

3.2.4 Membuat Link ...32

3.2.5 Memasukkan Parameter Error ...33

3.2.6 Membuat Transport Connection Dan Traffic ...34

3.2.7 Network Animator ...35

3.2.7 Interface Ns Dan Nam ...36

3.2.8 Format Trace File ...37

3.2.9 Parsing ...39

3.2.10 Pembuatan Grafik ...40

3.2.11 Instalasi ...40

3.2.12Implementasi Algoritma TCP Selective Acknowledgment Option dan TCP Westwood ...41

3.3 Perancangan dan Pembuatan Simulasi ...42

3.3.1 Efektifitas Pemanfaatan Resource ...43

3.3.2 Pengukuran Fairness ...45

3.3.3 Pengukuran Fairness pada Variasi Algoritma Kontrol Kongesti TCP yang Diimplementasikan pada Link yang Sama ...46

BAB IV. PENGUJIAN DAN PEMBAHASAN 4.1 Uraian Umum ...47

4.2 Pembuatan Topologi Jaringan ...47

4.3 Analisa Hasil ...47

Skenario 1. Pemanfaatan Bandwidth ...47

Skenario 2. Stabilitas Jaringan ...49

Skenario 3. Variasi Besar Congestion Window ...50

Skenario 4. Retransmit Rate ...52

Skenario.6 Penggunaan Queue Management yang Berbeda ...55

Skenario 5. Pengukuran Fairness pada Delay yang Berbeda ...60

Skenario 7. Pengaruh Penggunaan 2 Algoritma Pada Jalur yang Sama ...62

BAB V. KESIMPULAN DAN SARAN 5.1 Kesimpulan ...64

5.2 Saran ...65


(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 TCP Header ...8

Gambar 2.2 Hubungan TCP/IP dengan OSI Layer ...10

Gambar 2.3 Skema Taksonomi Kontrol Kongesti ...17

Gambar 2.4 Mekanisme slowstart ...20

Gambar 2.5 2 Byte TCP SACK Permitted Option ...24

Gambar 2.6 SACK Option Header ...25

Gambar 2.7 Mekanisme TCP Westwood ...26

Gambar 3.1 Proses kerja NS ...28

Gambar 3.2 Struktur Direktori NS ...28

Gambar 3.3 Tcl dan OTcl ...29

Gambar 3.4 Arsitektur NS 29 Gambar 3.5 Trace Object ...31

Gambar 3.6 Struktur Node ...31

Gambar 3.7 Link ...32

Gambar 3.8 Trace File ...38

Gambar 3.9 Topologi Simulasi 1 ...43

Gambar 3.10 Topologi Simulasi 2 ...44

Gambar 3.11 Topologi Simulasi 3 ...45

Gambar 4.1 Topologi Simulasi 1 ...47

Gambar 4.2 Bandwidth Utilization ...48

Gambar 4.3 Pengaruh Jumlah Koneksi pada Throughput ...49

Gambar 4.4 Besar Congestion Window TCP Reno ...50

Gambar 4.5 Congestion Windows TCP SACK ...51

Gambar 4.6 Perubahan Nilai Congestion Window TCP SACK ...52

Gambar 4.7 Pengaruh Kapasitas Buffer pada Jumlah Paket Loss ...52

Gambar 4.8 Topologi Simulasi 2 ...53

Gambar 4.9 Topologi Simulasi 3 ...55

Gambar 4.10 (a) Bandwidth TCP Reno (1ms) ...56

Gambar 4.10(b) Bandwidth TCP Reno (22ms) ...56

Gambar 4.11 (a) Bandwidth TCP SACK (1ms) ...57

Gambar 4.11(b) Bandwidth TCP SACK (22ms) ...57

Gambar 4.12(a) Bandwidth TCP Westwood (1ms) ...58

Gambar 4.12(b) Bandwidth TCP Westwood (22ms) ...58

Gambar 4.13 Pembagian Bandwidth pada Delay yang Berbeda ...59

Gambar 4.14 Pengaruh DropTail pada Koneksi dengan Delay Berbeda ...60

Gambar 4.15 Pengaruh RED pada Koneksi dengan Delay Berbeda ...61

Gambar 4.16 Bandwidth Share TCP Reno dan TCP SACK 62 Gambar 4.17 Bandwidth Share TCP Westwood dan TCP Reno ...63


(10)

DAFTAR TABEL

Halaman

Tabel 1.1. Paket Loss ...5

Tabel 2.1 Port well-known yang digunakan pada TCP ...13

Tabel 4.1 Efektifitas Penggunaan Bandwith ...48

Tabel 4.2 Retransmission Rate ...54


(11)

DAFTAR PUSTAKA

[1] Pranoto HR., Charmadi Machbub., Agung Harsoyo., Hendrawan., Sistem Kendali Kongesti di Internet. 2007

[2] Wydrowski, Bartek. Techniques in Internet Congestion Control. 2003 [3] Casseti, Claudio., Mario Gerla., Saverio Mascolo., TCP Westwood :

End-to-End Congestion Control for Wired/Wireless Network. 2002

[4] Sanadidi, M., S. S. Lee., M. Gerla., TCP Westwood : Congestion Control with Faster Recovery. 2005

[5] Mathis, M., J. Mahdavi., S. Floyd., A. Romanow., TCP Selective Acknowledgment Options. 1996

[6] Kelompok 7 QoS. Skema QoS dan Protokol Pendukung. ITTELKOM,

Bandung. Diambil dari

http://www.ittelkom.ac.id/pinguin/kuliah/NGN/Kelompok%207%20QoS.p df Diakses tanggal 10 Maret 2012.

[7] Tanmebaum, Andrew. S. Computer Network Fourth Edition. 2003

[8] Dhobal, Dhines. C., Rakhes Sharma. Simulation Base Analysis of TCP Reno and TCP Westwood Over IEEE 802.11 Wireless Ad hoc Networks. 2010

[9] Floyd, S., V. Jacobson. Random Early Detection Gateways for Congestion Avoidance. IEEE/ACM Transactions on Networking. 1993


(12)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Pengiriman data melalui jaringan TCP/IP dapat diibaratkan sebagai mobil-mobil yang ingin melewati sebuah jalan raya. Jika suatu saat, jumlah mobil yang lewat semakin banyak, tetapi frekuensi mobil yang masuk tidak diatur dengan baik, maka akan terjadi kemacetan jalan dan mobil tidak akan sampai di tempat tujuan dengan tepat waktu. Begitu pula dengan jaringan komputer, jika banyak pengguna yang ingin mengirimkan suatu paket data secara bersamaan dengan bandwidth yang telah ditentukan, sedangkan paket data yang akan dikirimkan melebihi kapasitas bandwidth dan tidak adanya sistem pengaturan data yang masuk, maka akan terjadi suatu kemacetan. Fenomena ini disebut kongesti.

Kongesti sering terjadi pada jaringan bottleneck. Menurut Stevens (1994,p291), kongesti dapat terjadi ketika data tiba pada saluran berkapasitas besar dan dikirimkan melalui saluran yang lebih kecil. Terjadinya suatu kongesti ditandai dengan adanya packet loss atau hilangnya suatu paket akibat adanya buffer over flow karena antrian yang panjang pada saluran bottleneck. Packet loss terdeteksi dari adanya 3 Duplicate ACK (DUPACK) yang dikirimkan oleh receiver.

Algoritma standar kontrol kongesti yang sering dipakai saat ini adalah TCP Reno. Saat terjadi kongesti yang ditandai dengan diterimanya 3 DUPACK, TCP Reno menjalankan mekanisme Fast Retransmit dan Recovery dengan cara meretransmisi paket yang hilang sesuai dengan sequence number yang dibawa oleh DUPACK, selanjutnya algoritma Fast Recovery akan membagi besar cwnd menjadi 2 dan menyimpannya pada variable sstresh. Ketika ACK dari paket yang baru diterima, cwnd akan kembali diatur pada nilai yang telah disimpan tersebut. Penelitian sebelumnya [7] yang dilakukan pada tahun 2010 menyimpulkan bahwa pada kasus recovery single packet loss, mekanisme Fast Retransmit dan Recovery yang dimilki oleh TCP Reno dapat menjaga kestabilan jaringan. Tetapi pada


(13)

2

saat terjadi multiple packet loss, TCP Reno tidak melakukan recovery data secara full. TCP Reno akan melakukan transmisi ulang hanya 1 paket data per Round Trip-Time (RTT). Hal ini akan menyebabkan long idle, dan juga menyebabkan penurunan throughput dan kestabilan jaringan.

Perkembangan selanjutnya memberi masukan modifikasi terhadap TCP standart tersebut. Algoritma modifikasi dari TCP Reno yang pertama adalah TCP Selective Acknowledgment Option. TCP SACK memiliki Selective ACK yang membawa informasi kepada sender mengenai paket-paket yang benar-benar hilang selama transmisi. Keuntungan pertama yang dimilki oleh Selective ACK adalah bahwa sender dapat melakukan transmisi ulang pada paket yang benar-benar hilang dan tidak membuang waktu sia-sia dengan melakukan retransmisi paket yang telah diterima. Keuntungan kedua dari TCP SACK adalah kemampuannya dalam hal melakukan recovery multiple packet per RTT.

Algoritma kedua adalah TCP Westwood yang menggunakan prinsip end-to-end congestion control. TCP Westwood merupakan modifikasi dari TCP Reno pada bagian pengirim yaitu mengganti AIMD dengan AIAD. AIAD akan melakukan monitoring ACK yang diterima dari receiver secara terus menerus dan melakukan perhitungan Rate Estimation. Dengan metode tersebut, TCP Westwood dapat membuat keputusan yang lebih terinformasi.

Dengan demikian, pada Tugas Akhir ini dilakukan pengujian pada algoritma kontrol kongesti antara TCP SACK dan TCP Westwood, juga akan dibandingkan dengan algoritma standar kontrol kongesti yaitu TCP Reno. Beberapa aspek yang akan diteliti yaitu dari performansi masing-masing algoritma antara lain kefektifan dalam pemanfaatan bandwidth, stabilitas jaringan, frekuensi retransmisi paket yang hilang dari masing-masing algoritma, bagaimana masing-masing-masing-masing algoritma mengatur besar congestion window setelah terjadi kongesti, dan beberapa aspek lain yang akan dibahas lebih lanjut.


(14)

3

1.2 Rumusan Masalah

Peneliti merumuskan beberapa rumusan masalah yaitu :

1. Bagaimana merancang dan membuat topologi simulasi jaringan dengan menggunakan Network Simulator yang dalam pengerjaan tugas akhir ini menggunakan Network Simulator 2 versi 2.29

2. Bagaimana mengatur konfigurasi jaringan yaitu mengimplementasikan TCP TCP SACK dan TCP Westwood pada topologi yang telah dibuat. 3. Bagaimana menjalankan skenario simulasi untuk mendapatkan hasil dari

implementasi masing-masing algoritma.

4. Bagaimana membandingkan hasil simulasi dari algoritma TCP Westwood dan TCP SACK untuk mendapatkan performansi paling baik diantara kedua algoritma tersebut.

1.3 Tujuan

1. Merancang dan membuat topologi simulasi jaringan dengan menggunakan Network Simulator.

2. Mengatur konfigurasi jaringan yaitu mengimplementasikan TCP SACK dan TCP Westwood pada topologi yang telah dibuat.

3. Menjalankan scenario simulasi untuk mendapatkan hasil dari implementasi masing-masing algoritma.

4. Membandingkan hasil simulasi dari algoritma TCP Westwood dan TCP SACK.

1.4 Batasan Masalah

Batasan pengerjaan Tugas Akhir ini mencakup :

1. Pembuatan tugas akhir hanya pada simulasi untuk menggambarkan kontrol kongesti dan menganalisa hasil simulasi dengan memanfaatkan Network Simulator 2.

2. Penggunaan bahasa pemrograman C++ pada seluruh program yang dibuat.

3. Topologi simulasi pada tugas akhir ini hanya pada jaringan kabel atau wired.


(15)

4

1.5 Metode Penyelesaian Masalah

Adapun metode yang digunakan dalam tugas akhir ini adalah: Studi Literatur

Mengumpulkan semua referensi mengenai Transmission Control Protocol, kontrol kongesti, algoritma TCP Westwood, TCP SACK, dan Network Simulator yang dalam pengerjaan tugas akhir ini digunakan Network Simulator 2.

Desain sistem

Melakukan perancangan topologi yang akan dibuat simulasi untuk mebandingkan ketiga algoritma kontrol kongesti yaitu algoritma TCP Westwood, TCP SACK, dan TCP Reno.

Pembuatan Simulasi

Simulasi yang bertujuan untuk mengevaluasi kinerja TCP Reno, TCP SACK dan TCP Westwood dalam mengatasi kongesti ini dilakukan dengan menggunakan Network Simulator versi 2.35 RC-7 dengan topologi yang telah ditetapkan sebelumnya.

Skenario Simulasi

Skenario simulasi berfungsi untuk menentukan alur paket data yang akan dikirimkan pada topologi yang telah dirancang. Terdapat 7 skenario yang akan dijalankan untuk menganalisa masing-masing parameter yang didapatkan dari hasil skenario simulasi yang telah dijalankan.

Pengumpulan Data Awal

Setelah perancangan simulasi, maka akan didapatkan data NAM (Network Animator) yang berupa trace record. Dari data visual dan data NAM maka dapat dilakukan analisa apakah sistem memiliki performansi yang baik.

Analisa Data dan Pembahasan

Pada langkah ini akan dilakukan analisa dan perbandingan pada hasil simulasi pada masing-masing algoritma. Analisa akan dilakukan pada QoS dan parameter lain dari system jaringan tersebut. Parameter yang akan dianalisa terdiri dari :


(16)

5

1. Window size, yaitu besar windows yang digunakan saat pengirim paket data.

2. Throughput, yaitu jumlah bandwidth aktual yang digunakan saat pengiriman paket data. Menurut referensi [6], Throughput dapat dihitung menggunakan rumus dibawah ini

3. Packet loss, yaitu jumlah paket yang hilang saat pengiriman data berlangsung. Salah satu penyebab packet loss adalah antrian yang melebihi kapasitas buffer. Menurut referensi [6] Packet loss dihitung menggunakan rumus

. Tabel 1.1. Paket Loss [6]

Kategori Degredasi Packet Loss

Sangat Bagus 0%

Bagus 3%

Sedang 15%

Jelek 25%

4. Retransmisson Rate, yaitu jumlah paket yang ditransmisi ulang karena adanya paket lost saat proses transmisi data. Retransmission rate didapatkan dari perhitungan packet loss dikurangi dengan packet loss terakhir yang belum diretransmisikan karena waktu simulasi telah habis.

Kemudian akan dilakukan pembahasan dan perbandingan dari hasil analisa dari algoritma TCP Westwood dan TCP SACK.

Jumlah data yang dikirim – Jumlah paket yang diterima Paket yang dikirim

_____________________________________________________

Packet loss = X 100%

Jumlah data yang dikirim

Waktu pengiriman _________________________ Throughput =


(17)

6

Penulisan Laporan

Tahapan akhir dalam penelitian tugas akhir ini adalah penarikan kesimpulan atas keseluruhan hasil yang diperoleh dari langkah-langkah yang telah dilakukan. Penarikan kesimpulan ini merupakan jawaban dari permasalahan yang ada. Selanjutnya akan diberikan saran sebagai masukan yang berkaitan dengan pengembangan lebih lanjut.

1.6 Sistematika Penulisan

Untuk memudahkan pembahasan maka tugas akhir ini akan dibagi menjadi lima bab dengan sistematika sebagai berikut:

Bab I : Pendahuluan

Bab ini meliputi latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.

Bab II : Dasar Teori

Pada bab ini akan dibahas mengenai TCP/IP, konsep control kongesti, Queue Management, Algoritma kendali kongesti TCP Selective Acknowledgment dan TCP Westwood.

Bab III: Perancangan dan Pembuatan Simulasi

Pada bab ini akan dibahas tentang perancangan dan Pembuatan simulasi control kongesti dengan algoritma TCP Selective Acknowlegment dan TCP Westwwod

Bab IV : Analisa Data dan Pembahasan

Dalam bab ini akan dianalisa data yang didapatkan dalam simulasi dan kemudian dibahas.

Bab V : Penutup

Bab ini berisi tentang kesimpulan dan saran yang diperoleh dari hasil implementasi dalam tugas akhir ini.


(18)

BAB II

DASAR TEORI

2.1 Transmission Control Protocol

Protokol merupakan sekumpulan aturan yang mengatur dua atau lebih mesin dalam suatu jaringan dalam melakukan interaksi pertukaran format data. TCP (Transmission Control Protocol) merupakan suatu protokol yang berada di lapisan transport yang bersifat connection-oriented dan reliable. TCP/IP dikembangkan untuk mengijinkan komputer-komputer agar dapat saling membagi sumber daya yang dimiliki masing-masing melalui media jaringan.

Protokol-protokol TCP/IP dikembangkan sebagai bagian dari riset yang dikembangkan oleh Defense Adfanced Research Project Agency (DARPA). Pertama kalinya TCP/IP dikembangkan untuk komunikasi antar jaringan yang tedapat pada DARPA. Sekarang TCP/IP telah digunakan sebagi standart komunikasi internetwork dan telah menjadi protokol transport bagi internet, sehingga memungkinkan jutaan komputer berkomunikasi secara global.

TCP/IP memungkinkan komunikasi diantara sekumpulan interkoneksi jaringan dan dapat diterapkan pada jaringan LAN ataupun WAN. Tidak seperti namanya, TCP/IP tidaklah hanya memuat protokol delayer 3 dan 4 dari OSI Layer (seperti IP dan TCP), tetapi juga memuat protokol-protokol aplikasi lainnya seperti email, remote login, ftp, http, dan sebagainya.

TCP/IP dapat diterima oleh masyarakat dunia karena memiliki karakteristik sebagai berikut:

Protocol TCP/IP dikembangkan menggunaka standar protokol yang terbuka sehingga tersedia secara luas.

Standar protokol TCP/IP dalam bentuk Request For Comment (RFC) sehingga dapat diambil oleh siapapun tanpa biaya.


(19)

TCP/IP dikembangkan dengan tidak tergantung pada sistem operasi atau perangkat keras tertentu.

Cara pengalamatan bersifat unik dalam skala global, memungkinkan komputer dapat mengidentifikasi secara unik komputer yang lain dalam seluruh jaringan, walaupun jaringan sebesar jaringan worldwide internet. Setiap komputer yang tersambung dengan jaringan TCP/IP (Internet) akan memiliki alamat yang berbeda.

TCP/IP independen terhadap perangkat keras jaringan dan a=dapat dijalankan di jaringan Ethernet, Token Ring, jalur telepon dial-up, jaringan X.25, dan praktis jenis media transmisi apapun.

TCP/IP memiliki fasilitas routing dan jenis-jenis layanan lainnya sehingga dapat diterapkan pada internetwork.

2.1.1 Header TCP

Header TCP terdiri dari beberapa field yang memiliki fungsi yang berbeda. TCP menggunakan header untuk manajemen koneksi, pemutusan koneksi, dan transfer data. Ukuran dari header TCP bervariasi. Ukuran terkecilnya adalah 20 Bytes jika tidak ada tambahan opsi lain dari TCP. Susunan header TCP akan dijelaskan pada gambar 2.1 dibawah ini.


(20)

1. SrcPort dan DstPort yang menduduki header paling atas dan berfungsi untuk mengidentifikasi prot source dan port tujuan. Field ini ditambahkan dengan alamat IP dari source dan tujuan. Kombinasi antara port number dan IP sering disebut dengan nama socket.

2. Sequence number merupakan nomor urut dari segmen yang dikirimkan. 3. Acknowledgment merupakan nomor urut selanjutnya yang diharapkan untuk

segera dikirim oleh sender. Maka nilai ACK sama dengan nilai sequence number yang terahir diterima ditambah dengan 1.

4. Header length memberikan informasi mengenai berapa panjang header. Panjang header tergantung dari penggunaan option field.

Terdapat 6 bit flags pada header TCP yang digunakan untuk memberikan informasi tentang kontrol relay antar koneksi TCP. 6 flags tersebut antara lain

URG(Urgent) mengindikasikan bahwa terdapat data yang penting pada bagian segmen, URG akan menentukan lokasi letak data penting tersebut.

ACK (Acknowledgment) mengindikasi sequence number berikutnya yang diharapkan untuk segera dikirimkan.

PHS (PUSH) melakukan pendorongan segmen pada buffer untuk segera ke aplikasi penerima.

RST (Reset) mengindikasi bahwa koneksi yang dibuat akan digagalkan.

SYN dan FIN digunakan saat membuat dan mengakhiri suatu koneksi TCP.

5. Window size berisi jumlah byte yang dapat diakomodasi host penerima pada pengirim berikutnya.

6. TCP checksum berfungsi untuk mendeteksi bit error pada segmen yang dikirimkan. Bagian yang dideteksi meliputi TCP header dan TCP data. Bagian ini dihitung dan disimpan oleh pengirim yang kemudian diverifikasi oleh penerima.


(21)

7. Urgent pointer berfungsi bila flag URG diaktifkan. Bila flag URG aktif, pengirim dapat mengirimkan emergency data kepada penerima.

8. Option adalah fungsi tambahan yang dapat digunakan pada TCP. Fungsi yang umum digunakan contohnya adalah maximum segment size (MSS). 9. Data merupakan data yang akan dipertukarkan.

2.1.2 Protokol TCP/IP dan OSI Layer

TCP/IP merupakan protokol jaringan komputer terbuka dan bisa terhubung dengan berbagai jenis perangkat keras dan lunak. TCP/IP terdiri dari beberapa layer atau lapisan yang memiliki fungsi tertentu dalam komunikasi data. Setiap fungsi dari layer selain dapat bekerja sama dengan layer pada tingkat lebih rendah atau lebih tinggi, juga bisa berkomunikasi dengan layer sejenis pada remote host. IP adalah jantung TCP/IP yang memiliki peran sebagai pembawa data yang independen.

TCP/IP dikembangkan sebelum model OSI ada. Namun demikian, lapisan-lapisan pada TCP/IP tidaklah cocok seluruhnya dengan lapisan-lapisan OSI. Protokol TCP/IP hanya dibuat atas empat lapisan saja, yaitu network access (physical dan data link), network, transport dan application.

Gambar 2.2 Hubungan TCP/IP dengan OSI Layer1

1


(22)

1. Layer 4 : Application Layer

Application layer dalam TCP/IP adalah kombinasi lapisan-lapisan session, presentation, dan application pada OSI. Application layer berfungsi untuk mengirim dan menerima informasi dari port TCP dan UDP. Beberapa komponen pada application layer berfungsi sebagai alat untuk mengumpulkan informasi konfigurasi jaringan dan beberapa lainnya boleh jadi sebuah antar muka atau application program interface (API) yang mendukung desktop operating environment.

2. Layer 3: Transport Layer

UDP (User Datagram Protocol)

UDP adalah protokol process-to-process yang hanya menambahkan alamat port, check-sum error control, dan panjang informasi data dari lapisan di atasnya.

TCP (Transmission Control Protocol)

TCP menyediakan layanan penuh lapisan transport untuk aplikasi. TCP juga dikatakan protokol transport untuk stream yang reliable. Dalam konteks ini artinya TCP bermakna connection oriented, dengan kata lain koneksi end-to-end harus dibangun dulu di kedua ujung terminal sebelum kedua ujung terminal mengirimkan data. Mekanisme ini disebut dengan three-way-handshake.

3. Layer 2: Network Layer/IP

Pada lapisan ini TCP/IP mendukung IP dan didukung oleh protokol lain yaitu RARP, ICMP, ARP, dan IGMP.

4. Layer 1 : Network Layer : Network Access (Physical dan Data Link)

Pada lapisan ini TCP/IP tidak mendefinisikan protokol yang spesifik. Artinya TCP/IP mendukung semua standar protokol lain. Lapisan ini merupakan lapisan terendah dalam protokol TCP/IP. Protokol dalam lapisan ini


(23)

memungkinkan sistem untuk melakukan pengiriman atau penerimaan (delivery) data ke atau dari perangkat lainnya yang tersambung ke jaringan komputer.

2.1.3 Sifat Protocol TCP/IP

TCP singkatan dari Transmission Control Protocol dan IP singkatan dari Internet Protocol. TCP/IP menjadi satu nama karena fungsinya selalu bergandengan satu sama lain dalam komunikasi data. TCP/IP saat ini dipergunakan dalam banyak jaringan komputer local (LAN) yang terhubung ke internet, karena memiliki sifat :

1. Merupakan protokol standar terbuka, gratis, dan dikembangkan terpisah dari perangkat keras komputer tertentu.

2. Berdiri sendiri dari perangkat keras jaringan apapun. Sifat ini memungkinkan TCP/IP bergabung dengan banyak jaringan komputer. 3. Bisa dijadikan alamat umum sehingga tiap perangkat yang memakai

TCP/IP akan memiliki sebuah alamat unik dalam sebuah jaringan komputer local, atau dalam jaringan global seperti internet.

4. Protokol ini distandarisasi dengan skala tinggi secara konsisten, dan bisa memberikan servis kepada user-user didunia.

2.1.4 Pengalamatan (Addressing)

Dalam TCP/IP dikenal dengan 3 pengalamatan yaitu : 1. Physical Address

Physical address kerap disebut sebagai link address. Ukuran alamat fisik ini tergantung jenis hardwarenya. Alamat fisik dapat berupa unicast, multicast, atau broadcast.

2. IP Address

Internet address perlu untuk layanan komunikasi yang aspeknya universal. Saat ini besarnya internet address adalah 32 bit.

3. Port Address

Port address sangat diperlukan untuk komunikasi yang berorientasi terhadap proses aplikasi.


(24)

2.1.5 Prinsip Kerja TCP

Fungsi utama TCP adalah untuk mengirimkan data dari satu host ke host lain dengan keandalan tinggi. Dalam hal ini TCP juga yang mendeteksi dan mengoreksi jika ada kesalahan data. Di samping itu, TCP mengatur seluruh proses koneksi antara satu host dengan host yang lain dalam sebuah jaringan komputer.

Berbeda dengan IP yang mengandalkan mekanisme connectionless, pada TCP mekanisme hubungan adalah connection oriented. Dalam hal ini, hubungan secara logik akan dibangun oleh TCP anatara satu host dengan host yang lain. Dalam waktu yang ditentukan host yang sedang berhubungan harus mengirimkan data atau acknowledge agar hubungan tetap berlangsung. Jika hal ini tidak sanggup dilakukan maka dapat diasumsikan bahwa host yang sedang berhubungan dengan kita mengalami gangguan dan hubungan secara logik dapat terputus.

Prinsip kerja TCP berdasarkan prinsip client-server. Server adalah program pada komputer yang secara pasif akan mendengarkan port number yang telah ditentukan pada TCP. Sedang client adalah program yang secara aktif akan membuka hubungan TCP ke komputer server untuk meminta servis yang dibutuhkan.

Tabel 2.1 Port well-known yang digunakan pada TCP2

Perl Protokol Penjelasan

7 Echo Datagram echo yang diterima kembali ke pengirim

9 Discard Abaikan sembarang datagram yang diterima

11 Users User aktif


(25)

17 Quote Return kutipan hari

19 Chargen Return sebuah string karakter

20 FTP Data File Transfer Protocol (koneksi Data)

21 FTP Control

File Tranfer Protocol (koneksi kontrol)

23 TELNET Terminal Network

25 SMTP Simple Mail Transfer Protokol

53 DNS Domain Name Server

67 BOOTP Bootstrap Protokol

79 Finger Finger

80 HTTP Hypertext Transfer Protocol

111 RPC Remote Procedure Call

Hal yang cukup penting untuk dipahami pada TCP adalah port number yang menentukan layanan apa yang dilakukan oleh lapisan diatas TCP. Nomor-nomor ini telah ditentukan oleh Network Information Center dalam Request For Comment (RFC) 1010. Contohnya untuk aplikasi File Transfer Protocol (FTP) diatas transport layer, TCP menggunakan port number 20.

2.1.6 Layanan pada TCP

TCP merupakan protokol yang terletak di transport layer. Protokol ini menyediakan layanan-layanan dalam pengiriman data, diantara layanan tersebut adalah :

2


(26)

Stream data transfer

TCP melakukan layanan stream data pada lapisan transport. Untuk pengiriman stream, pengirim dan penerima TCP menggunakan buffer. Data yang ditransmisikan secara streaming itu berupa segmen-segmen, paket dikirim dan sampai ke tujuan secara berurutan.

Reliable

TCP menerapkan proses deteksi kesalahan paket dan retransmisi dengan adanya acknowledge.

Flow control

Pihak receiver akan memberikan informasi kepada sender mengenai kapasitas yang dapat dia tampung, tanpa menyebabkan overflow pada buffer. Informasi ini akan dikaitkan pada ACK dari sequence number tertinggi yang diterimanya tanpa ada masalah.

Logical connection

Flow control dan reliable merupakan mekanisme yang menginialisasi dan memaintain informasi status dari masing-masing data stream. Sedangkan kombinasi dari status ini, termasuk socket, sequence number, dan window size, disebut dengan logical connection. Masing-masing koneksi diidentifikasi secara unik dengan menggunakan masing-masing socket yang digunakan untuk mengirimkan dan menerima data.

Connection oriented

Maksud dari connection oriented adalah sebelum melakukan pertukaran data, dua aplikasi pengguna TCP harus melakukan pembentukan hubungan (handshake) terlebih dahulu.

Multiplexing

TCP mengijinkan beberapa user untuk melakukan pengiriman data secara bersama-sama. Paket data tersebut akan dikemas menjadi satu, dikirimkan


(27)

melalui jaringan TCP, lalu diuraikan lagi dan dikirimkan ke masing-masing alamat tujuan.

Layanan full-duplex

TCP memberikan juga layanan full-duplex, dimana data dapat berpindah dalam dua arah pada saat bersamaan.

2.2 Kontrol Kongesti

Secara definisi, suatu jaringan dikatakan mengalami kongesti apabila kualitas layanan yang dirasakan oleh end-host mengalami penurunan akibat dari beban jaringan meningkat[1]. Pada contoh sebelumnya penurunan kualitas terjadi pada saat pembatalan paket data pada router node 2 akibat adanya node dengan kapasitas link yang sangat besar terhadap kapasitas link node lainnya yang menyebabkan perebutan kapasitas yang ada.

Fenomena kongesti yang terjadi dapat diatasi dengan beberapa cara. Hanya saja perlu diperhatikan beberapa hal berikut yang bagi sebagian orang merupakan solusi untuk mengatasi kongesti tetapi pada kenyataannya hal tersebut tidak memberikan efek positif pada pencegahan terjadinya kongesti, bahkan kemungkinan terjadinya kongesti semakin besar.

1. Kongesti disebabkan jumlah penyimpanan data yang sedikit.

Asumsi : Masalah kongesti dapat diselesaikan ketika harga memory cukup murah, memungkinkan penggunaan memory dalam jumlah besar.

Fakta : Penggunaan memory yang besar hanya bermanfaat mengatasi kongesti dalam waktu singkat dan menimbulkan waktu tunda yang lebih besar. Antrian panjang dan waktu tunda yan besar sangat dihindari oleh banyak aplikasi.

2. Kongesti disebabkan oleh kapasitas link yang rendah.

Asumsi : Masalah ini akan dapat diselesaikan ketika terdapat link dengan kapasitas tinggi.


(28)

Fakta : Kapasitas link yang tinggi dapat mengakibatkan kongesti semakin parah di router/switch.

3. Kongesti disebabkan oleh kecepatan prosesor yang rendah.

Asumsi : Ketika keceatan prosesor dapat ditingkatkan, kongesti akan dapat diatasi.

Fakta : Ketika beberapa router dengan kecepatan prosesor lebih tinggi mentransmisikan data ke suatu tujuan, akan mengakibatkan tujuan kelebihan beban.

Kontrol kongesti merupakan komponen utama untuk menciptakan kondisi jaringan yang stabil. Mekanisme kontrol kongesti yang digunakan pada TCP sudah terbukti dapat menciptakan kondisi stabil pada suatu jaringan.

2.2.1 Skema Taksonomi Kontrol Kongesti

Prinsip taksonomi kontrol kongesti membedakan skema yang bervariasi tersebut untuk mengelompokkan berdasarkan pada karakteristik umum dan perbedaan yang nyata untuk masing-masing kontrol kongesti. Taksonomi tersebut juga menghasilkan gambaran luas dari berbagai mekanisme control kongesti.

Menurut Andrew S. Tanembaum pada bukunya [7], taksonomi kontrol kongesti modern membagi kontrol kongesti menjadi open-loop dan closed-loop. Teori kontrol ini menganggap bahwa jaringan adalah suatu sistem kontrol yang kompleks, dimana fungsi kontrol diperlukan untuk menjaga stabilitas jaringan.


(29)

Gambar 2.2 Skema Taksonomi Kontrol Kongesti

Secara analogi, skema kontrol kongesti adalah fungsi kontrolnya, dan dibedakan menjadi closed-loop dan open-loop berdasarkan pada penggunaan paket feedback. Masing-masing kategori tersebut dibedakan menjadi dua sub kategori. Control kongeesti open-loop tidak menggunakan fungsi feedback, sehingga pengaturannya berdasarkan pada kondisi jaringan lokal. Skema open-loop sering menggunakan distribusi ruang buffer dan bandwidth untuk kedatangan paket, berapa banyak paket yang seharusanya diberikan pada jaringan, dan bagaimana membuang paket ketika buffer penuh.

Skema kontrol kongesti closed-loop mengunakan implicit atau explicit feedback dan mengatur transmisi secara dinamis. Untuk implicit feedback menggunakan pengamatan pada jaringan. Biasanya, ketiadaan even tertentu menjadi pemicu dari tindakan yang akan dilakukan. Sedangkan explicit feedback menerima informasi, dan mengunakan paket feedback untuk menginformasikan kondisi jaringan. Jadi, fungsi kontrol ini lebih pro-aktif akibat perubahan trafik jaringan. Kemudian, explicit feedback ini dibagi menjadi persistent feedback, dimana paket feedback dihasilkan dan dikirimkan

Implicit Explicit Closed Loop

Congestion Control

Open Loop

Source Destinatio


(30)

secara periodik, serta responsive feedback, dimana paket feedback dikirim hanya jika dipicu oleh kondisi jaringan tertentu.

Open-loop biasanya kurang tahan dengan banyaknya pola trafik dari jaringan. Hal tersebut kurang begitu berpengaruh jika open-loop digunakan pada jaringan yang relative kecil dengan performansi yang dapat diprediksikan, dimana jaringan tersebut memiliki variasi yang kecil dengan pola trafiknya. Bahkan skema open-loop lebih efisien digunakan jika telah terkumpul informasi tentang jaringan baik eksperimen maupun analisa statistik, sehingga tidak diperlukan pembangkitan trafik feedback. Sedangkan untuk kondisi jaringan yang selalu berubah-ubah, skema closed-loop harus digunakan untuk mengatasi kongesti.

2.2.2 Mekanisme control kongesti pada TCP3

Kongesti adalah masalah yang terjadi pada share network ketika beberapa user menggunakan resources yang sama seperti bandwidth, buffer dan antrian. Dalam jaringan packet-switched, paket masuk dan keluar pada buffer dan melakukan antrian pada switching devices. Kenyataannya, jaringan packet-switched seringkali diartikan sebagai “network of queues”. Karakteristik dari jaringan packet-switched adalah paket-paket yang datang seringkali memenuhi bandwidth baik dari satu sender maupun lebih. Buffer membantu router untuk mengatasi hal tersebut sampai kapasitas buffer penuh. Jika ada paket masuk, maka paket tersebuat akan didrop. Penambahan kapasitas buffer tidak menyelesaikan masalah karena buffer yang terlalu besar akan meningkatkan delay karena antrian.

Kongesti sering kali terjadi dimana beberapa link masuk ke dalamm single link seperti internal LAN yang dihubungkan dengan jaringan WAN. Kongesti juga dapat terjadi pada router pada jaringan inti dimana trafik yang terjadi lebih besar daripada kemampuan yang mampu ditangani router tersebut.

Beberapa teknik berikut dapat digunakan untuk mengatasi kongesti :

3


(31)

End System Flow Control

Teknik ini bukan skema control kongesti tetapi cara untuk menjaga agar sender tidak mengirimkan paket secara berlebihan kepada sender.

Network congestion control

Mekanisme ini hamper sama dengan en to end flow control tetapi difokuskan untuk mengurangi kongesti pada jaringan, bukan pada receiver.

Network-Based Congestion Avoidance

Pada skema ini, router mendeteksi kemungkinan terjadinya kongesti sehingga router memperkecil paket yang dikirim sebeluma antrian menjadi penuh.

Setiap diskusi mengenai kongesti pasti membahas mengenai antrian. Buffer pada pada jaringan dibentuk dengan beberapa macam teknik. Dengan mengatur buffer akan meminimalisasi terjadinya kongesti dan paket yang didrop sehingga akan meningkatkan performansi jaringan.

Teknik paling dasar adalah FIFO (First In First Out) dimana paket diproses sesuai dengan kedatangannya. Sehingga paket yang dating pertama adalah paket yang terlebih dahulu diproses.

2.3 Kontrol Kongesti

Kontrol kongesti pertama kali diperkenalkan oleh Van Jacobson dan Michael J. Karerls yang kemudian diadopsi oleh RFC 2001. Kontrol kongesti pada TCP tersebut memiliki 4 phase yaitu slow start, congestion avoidance, fast retransmit, dan fast recovery.

2.3.1 Slow Start

TCP yang lama memulai suatu koneksi dengan pengiriman beberapa paket oleh sender ke jaringan, sesuai ukuran windows yang telah ditetapkan oleh receiver. Akan terjadi masalah jika dalam hubungan antara sender dan receiver terdapat link ataupun router yang mempunyai kapasitas kecil.


(32)

Beberapa paket akan masuk ke dalam antrian pada router dan dimungkinkan bahwa paket yang ada melebihi kapasitas antrian/buffer pada router. Hal ini akan sangat mengurangi throughput dari koneksi TCP.

Suatu algoritma untuk mengatasi hal ini adalah slow start. Ini diljalankan dengan mengamati dimana sebuah paket seharusnya dimasukkan ke dalam jaringan setelah sebuah sinyal ACK kembali dikirimkan oleh receiver setelah data yang dikirimkan diterima oleh receiver.

Slow start menambahkan windows yang lain pada TCP sender, congestion windows atau yang disebut cwnd. Ketika sebuah koneksi baru dibangun dengan sebuah host pada network yang lain, congestion windows diinialisasikan menjadi satu segmen (biasanya 536 atau 512). Setiap kali ACK diterima, cwnd ditingkatkan satu segmen. Cwnd adalah flow control yang dibebankan kepada sender, sedangkan advertised window adalah flow control yang dibebankan pada receiver.

Sender memulai mengirim satu segmen paket dan menunggu ACK yang dikirimkan oleh receiver. Ketika ACK diterima, cwnd dinaikkan dari satu ke dua dan dua segmen dikirimkan. Ketika setiap dari segmen yang dikirimkan mendapatkan ACK, maka cwnd dinaikkan menjadi empat. Ini membuat peningkatan eksponensial meskipun bukan benar-benar eksponensial karena mungkin receiver memberikan delay pada ACK-nya khususnya mengirim sebuah ACK untuk setiap dua segmen yang diterimanya.


(33)

Pada suatu waktu antrian pada buffer telah terpenuhi, router akan mulai membuang paket. Ini memberitahu sender bahwa congestion window sudah terlalu besar. Maka, algoritma control kongesti mulai menjalankan mekanisme menurunkan cwnd.

2.3.2 Congestion Avoidance

Kongesti dapat terjadi jika data yang datang pada suatu jalur besar dikirimkan ke jalur yang kecil. Kongesti dapat juga terjadi ketika aliran data beberapa input datang pada suatu router dimana kapasitas output dari router tersebut lebih kecil dari kapasitas data ipnut. Congestion avoidance adalah bagaimana menyiasati paket yang hilang tersebut.

Asumsi dari algoritma ini adalah bahwa paket yang hilang yang diakibatkan oleh kerusakan adalah sangat kecil yaitu kurang dari 1 %, oleh karena itu terjadnya paket yang hilang adalah karena terjadinya kemacetan antara sender dan receiver. Ada dua indikasi utama terjadinya packet loss yaitu terjadinya timeout dan diterimanya duplicate ACK.

Congestion avoidance dan slowstart adalah algoritma yang tidak saling berhubungan dan memiliki tujuan yang berbeda. Akan tetapi ketika kongesti menyebabkan TCP harus menurunkan rate transmisi paket ke jaringan dan melakukan slowstart agar dapat berjalan kembali. Sehingga dalam prakteknya slowstart dan congestion avoidance dijalankan bersama.

Congestion avoidance dan slowstart membutuhkan dua variable yaitu cwnd, dan slow start threshold size atau biasa disebut dengan sstresh. Operasi dari kombinasi dua algoritma ini adalah sebagai berikut:

1. Inialisasi untuk awal koneksi yaitu set cwnd menjadi satu segment dan sstresh menjadi 65535 bytes.

2. TCP output rotine tidak akan pernah mengirim lebih datri min cwd dan


(34)

3. Ketika kongesti terjadi, yang diindikasikan terjadinya timeout, satu setengah dari ukuran window sekarang (minimal cwnd dan receiver’s advertised window, setidaknya dua segmen) disimpan dalam sstersh. Sebagai tambahan, jika kongesti diindikasikan oleh timeout, cwnd diset menjadi satu segmen atau dengan kata lain dilakukan reset menjadi slowstart.

4. Ketika data baru menerima sinyal ACK, maka cwnd akan dinaikkan tetapi kenaikan tersebut tergantung dari apakah TCP melakukan slowstart atau congestion avoidance. Dapat dituliskan dalam pseudocode seperti di bawah ini.

Jika cwnd lebih kecil atau sama dengan dari sstresh, TCP melakukan slowstart dalam keadaan yang lain melakukan congestion avoidance. Slow start dilakukan sampai TCP hampir mendekati terjadinya kongesti dan kemudian congestion avoidance menggantikannya.

Slow start mempunyai cwnd sebesar satu segment pada awal operasi TCP dan dinaikkan satu segmen ketika paket berhasil dikirim dengan adanya ACK yang diterima oleh sender. Atau dengan kata lain, ukuran window berubah secara eksponensial, mengirim satu segmen, kemudian dua, empat dan seterusnya. Congestion avoidance dapat dikatakan bahwa cwnd dinaikkan dengan segsize*segsize/cwnd setiap kali sinyal ACK diterima dimana segsize adalah segment size dan cwnd dalam ukuran bytes. Ini adalah peningkatan yang linier bagi cwnd yang dibandingkan dengan peningkatan eksponensial dai slowstart.


(35)

2.4 Queue Management

Queue management merupakan mekanisme pengaturan yang digunakan dalam melewatkan suatu paket dalam suatu link. Adapun jenis Queue Management ini adalah sebagai berikut :

2.4.1 Drop Tail

Drop tail menggunakan mekanisme FIFO (First In First Out) atau FCFS (First Come First Serve) dalam aliran paket di dalam suatu antrian. Dimana paket pertama yang dating, maka paket tersebut yang pertama akan kluar dari antrian. Parameter yang berpengaruh adalah besarnya maximum buffer size. Apabila nilai queue size kurang dari maximum buffer size, maka tidak akan ada paket yang di drop. Begitu pula sebaliknya, apabila queue size melebihi maximum buffer size, maka paket tersebut akan di drop.

2.4.1 RED

RED (Random Early Detection) pertama kali dikembangkan oleh Sally Floyd dan Van Jacobson pada awal 1990 untuk Active Queue Management (AQM) dan kemudian distandarisasikan sebagai rekomendasi dari IETF. RED merupakan salah satu dari mekanisme untuk penghindaran kemacetan (congestion avoidance mechanism), yang ditempatkan pada gateways (router). Setiap router diprogram untuk memonitor panjang antriannya. Ketika dideteksi akan terjadi kemacetan dalam waktu dekat, router akan member peringatan pada sumber terhadap paket yang akan menyebabkan kemacetan akan dibuang salah satunya.

Menurut Referensi [9], RED sudah digunakan secara luas untuk memonitor ukuran antrian rata-rata yang bertujuan untuk membuang paket yang dating ketika antrian mulai melebihi beban (overload). Lebih spesifik, untuk setiap paket yang tiba di router, RED akan menghitung panjang antrian rata-rata yang mana akan dibandingkan dengan minimum threshold(minTh) dan maximum threshold (maxTh). Jika panjang antrian rata-rata lebih besar daripada


(36)

yang dapat dicapai oleh maximum threshold maka setiap paket yang datang akan dibuang (dropped), menunjukkan bahwa jalur mengalami kemacetan. Panjang antrian rata-rata adalah antara dua thresholds kemudian RED membuang atau memberi tanda setiap paket dengan probabilitas sebanding dengan average queue size. Ini menunjukkan bahwa saat antrian meningkat maka probabilitas paket yag dibuang (dropping probability) untuk setiap paket juga akan meningkat. Ketika probabilitas mencapai batas maksimumnya mengindikasikan bahwa antrian sudah penuh dan oleh karena itu semua paket yang datang akan dibuang. Paket yang dibuang akan menghalangi sender mendapatkan tanda balasan (acknowledgment) yang dibutuhkan, memaksa sumber untuk melakukan transmisi dengan lebih lambat dengan mengurangi ukuran window-nya (window size).

2.5 TCP Selective Acknowledgment Option

Multiple packet loss merupakan keadaaan yang dapat memberikan efek yang serius terhadap TCP throughput. TCP menggunakan cumulative ACK untuk mengetahui paket mana yang telah diterima oleh receiver tetapi belum di-ACK. Hal ini membuat sender menunggu Round Trip Time untuk mengetahui paket mana saja yang hilang dan untuk menghindari transmisi ulang paket-paket yang telah diterima oleh receiver. Dengan menggunakan skema cumulative ACK, multiple dropped segmen secara umum akan menyebabkan penurunan throughput akibat ACK-based lock.

Algoritma TCP Selective Acknowledgment Option merupakan strategi yang tepat untuk mengatasi multiple packet loss. Dengan TCP SACK, sender mendapatkan informasi secara lengkap mengenai paket-paket yang hilang dan paket-paket yang telah diterima. Dengan mekanisme ini, maka sender tidak perlu membuang waktu dengan metransmisi ulang paket yang telah sampai, sender hanya akan meretransmisi paket yang benar-benar hilang saja.

TCP SACK memiliki 2 TCP option. Yang pertama adalah SACK permitted yang dikirimkan pada SYN segmen oleh sender. SACK permitted


(37)

dikirim untuk memberitahukan pada receiver bahwa akan digunakan SACK option pada koneksi tersebut. TCP option yang kedua adalah SACK option itu sendiri. SACK option tidak akan dikirimkan pada jaringan yang sebelumnya tidak dilalui terlebih dahulu oleh SACK permitted.

Gambar 2.4 2 Byte TCP SACK Permitted Option

SACK option yang dikirimkan bersamaan dengan ACK oleh receiver yang akan membawa informasi mengenai block dari data yang tidak berurutan yang telah diterima oleh receiver. Receiver kemudian akan menunggu sender mengirimkan paket-paket yang tidak berurutan tersebut, setalah paket lengkap maka receiver akan mengirimkan ACK yang berupa sequence number yang pertama pada Acknowledgment Number Field.


(38)

Gambar diatas merupakan SACK option header yang merupakan daftar dari block yang berisi data berurutan yang telah diterima oleh received. Masing-masing dari block data akan didefinisikan oleh 32 bit unsigned integer yang terdiri dari:

Left Edge of Block : sequence number pertama dari block tersebut.

Right Edge of Block : sequence number yang mengikuti sequence number terakhir dari block tersebut.

Masing-masing block menunjukkan data yang benar-benar telah diterimanya. Jadi byte data sebelum block (Left Edge of Block-1), dan data setelah block (Right Edge of Block) tidak diterima oleh received.

Maka, SACK option akan membantu menginformasikan kepada sender mengenai segmen-segmen yang telah diterima oleh receiver sehingga sender diijinkan untuk menghapus segmen yang telah direport dalam SACK Option.

2.6 TCP Westwood

TCP westwood didesaign menggunakan prinsip end-to-end congestion control. Kunci dari algoritma ini adalah estimasi bandwidth dari ACK yang kembali untuk mengatur nilai congestion windows (cwnd) dan sstresh saat kongesti terjadi. TCP Weswood merupakan perbaikan dari TCP Reno yang memperbaiki dari sisi sender dimana pada TCP Reno menggunakan algoritma Additive Increase Multiplicative Decrease (AIMD) yaitu menaikkan nilai cwnd secara bertahap, dan akan membagi nilai cwnd menjadi setengah jika terjadi kongesti pada jaringan, sedangkan pada TCP westwood menggunakan algoritma Additive Increase Additive Decrease AIAD yaitu menaikkan nilai cwnd, dan mengatur nilai cwnd dan sstresh sesuai dengan estimasi yang telah dilakukan sebelumnya.


(39)

Gambar 2.6 Mekanisme TCP Westwood5

Pada kasus single packet loss, algoritma Fast Retransmit dan Fast Recovery pada TCP Reno dapat menjaga jaringan dari self-clock dan juga dapat menjaga kestabilan dari suatu jaringan, tetapi pada kasus multiple packet loss, TCP Reno tidak dapat merecovery data secara full, mengakibatkan timeout, dan menurunkan performansi jaringan dengan kembali memasuki phase slowstart.

Pada TCP Westwood, sender akan terus menerus memantau ACK yang kembali dari receiver dan menghitung nilai Rate Estimate (RE). nilai RE merupakan perhitungan dari jumah data yang telah diterima dan di ACK oleh receiver dalam jangka waktu tertentu. Duplicate dan delayed ACK juga diperhitungkan dalam dalam penentuan RE, sehingga akan menghasilkan feasible rate yang telah dihitung dalam RE tersebut.

Selanjutnya TCP Westwood akan menggunakan rate estimate tersebut untuk pengaturan besar nilai dari congestion windows dan sstresh saat sender menerima 3 duplicate ACK yang mengindikasikan telah terjadinya kongesti

dalam jaringan tersebut.


(1)

3. Ketika kongesti terjadi, yang diindikasikan terjadinya timeout, satu setengah dari ukuran window sekarang (minimal cwnd dan receiver’s advertised window, setidaknya dua segmen) disimpan dalam sstersh. Sebagai tambahan, jika kongesti diindikasikan oleh timeout, cwnd diset menjadi satu segmen atau dengan kata lain dilakukan reset menjadi slowstart.

4. Ketika data baru menerima sinyal ACK, maka cwnd akan dinaikkan tetapi kenaikan tersebut tergantung dari apakah TCP melakukan slowstart atau congestion avoidance. Dapat dituliskan dalam pseudocode seperti di bawah ini.

Jika cwnd lebih kecil atau sama dengan dari sstresh, TCP melakukan slowstart dalam keadaan yang lain melakukan congestion avoidance. Slow start dilakukan sampai TCP hampir mendekati terjadinya kongesti dan kemudian congestion avoidance menggantikannya.

Slow start mempunyai cwnd sebesar satu segment pada awal operasi TCP dan dinaikkan satu segmen ketika paket berhasil dikirim dengan adanya ACK yang diterima oleh sender. Atau dengan kata lain, ukuran window berubah secara eksponensial, mengirim satu segmen, kemudian dua, empat dan seterusnya. Congestion avoidance dapat dikatakan bahwa cwnd dinaikkan dengan segsize*segsize/cwnd setiap kali sinyal ACK diterima dimana segsize adalah segment size dan cwnd dalam ukuran bytes. Ini adalah peningkatan yang linier bagi cwnd yang dibandingkan dengan peningkatan eksponensial dai slowstart.


(2)

2.4 Queue Management

Queue management merupakan mekanisme pengaturan yang digunakan dalam melewatkan suatu paket dalam suatu link. Adapun jenis Queue Management ini adalah sebagai berikut :

2.4.1 Drop Tail

Drop tail menggunakan mekanisme FIFO (First In First Out) atau FCFS (First Come First Serve) dalam aliran paket di dalam suatu antrian. Dimana paket pertama yang dating, maka paket tersebut yang pertama akan kluar dari antrian. Parameter yang berpengaruh adalah besarnya maximum buffer size. Apabila nilai queue size kurang dari maximum buffer size, maka tidak akan ada paket yang di drop. Begitu pula sebaliknya, apabila queue size melebihi maximum buffer size, maka paket tersebut akan di drop.

2.4.1 RED

RED (Random Early Detection) pertama kali dikembangkan oleh Sally Floyd dan Van Jacobson pada awal 1990 untuk Active Queue Management (AQM) dan kemudian distandarisasikan sebagai rekomendasi dari IETF. RED merupakan salah satu dari mekanisme untuk penghindaran kemacetan (congestion avoidance mechanism), yang ditempatkan pada gateways (router). Setiap router diprogram untuk memonitor panjang antriannya. Ketika dideteksi akan terjadi kemacetan dalam waktu dekat, router akan member peringatan pada sumber terhadap paket yang akan menyebabkan kemacetan akan dibuang salah satunya.

Menurut Referensi [9], RED sudah digunakan secara luas untuk memonitor ukuran antrian rata-rata yang bertujuan untuk membuang paket yang dating ketika antrian mulai melebihi beban (overload). Lebih spesifik, untuk setiap paket yang tiba di router, RED akan menghitung panjang antrian rata-rata yang mana akan dibandingkan dengan minimum threshold(minTh) dan maximum threshold (maxTh). Jika panjang antrian rata-rata lebih besar daripada


(3)

yang dapat dicapai oleh maximum threshold maka setiap paket yang datang akan dibuang (dropped), menunjukkan bahwa jalur mengalami kemacetan. Panjang antrian rata-rata adalah antara dua thresholds kemudian RED membuang atau memberi tanda setiap paket dengan probabilitas sebanding dengan average queue size. Ini menunjukkan bahwa saat antrian meningkat maka probabilitas paket yag dibuang (dropping probability) untuk setiap paket juga akan meningkat. Ketika probabilitas mencapai batas maksimumnya mengindikasikan bahwa antrian sudah penuh dan oleh karena itu semua paket yang datang akan dibuang. Paket yang dibuang akan menghalangi sender mendapatkan tanda balasan (acknowledgment) yang dibutuhkan, memaksa sumber untuk melakukan transmisi dengan lebih lambat dengan mengurangi ukuran window-nya (window size).

2.5 TCP Selective Acknowledgment Option

Multiple packet loss merupakan keadaaan yang dapat memberikan efek yang serius terhadap TCP throughput. TCP menggunakan cumulative ACK untuk mengetahui paket mana yang telah diterima oleh receiver tetapi belum di-ACK. Hal ini membuat sender menunggu Round Trip Time untuk mengetahui paket mana saja yang hilang dan untuk menghindari transmisi ulang paket-paket yang telah diterima oleh receiver. Dengan menggunakan skema cumulative ACK, multiple dropped segmen secara umum akan menyebabkan penurunan throughput akibat ACK-based lock.

Algoritma TCP Selective Acknowledgment Option merupakan strategi yang tepat untuk mengatasi multiple packet loss. Dengan TCP SACK, sender mendapatkan informasi secara lengkap mengenai paket-paket yang hilang dan paket-paket yang telah diterima. Dengan mekanisme ini, maka sender tidak perlu membuang waktu dengan metransmisi ulang paket yang telah sampai, sender hanya akan meretransmisi paket yang benar-benar hilang saja.

TCP SACK memiliki 2 TCP option. Yang pertama adalah SACK permitted yang dikirimkan pada SYN segmen oleh sender. SACK permitted


(4)

dikirim untuk memberitahukan pada receiver bahwa akan digunakan SACK option pada koneksi tersebut. TCP option yang kedua adalah SACK option itu sendiri. SACK option tidak akan dikirimkan pada jaringan yang sebelumnya tidak dilalui terlebih dahulu oleh SACK permitted.

Gambar 2.4 2 Byte TCP SACK Permitted Option

SACK option yang dikirimkan bersamaan dengan ACK oleh receiver yang akan membawa informasi mengenai block dari data yang tidak berurutan yang telah diterima oleh receiver. Receiver kemudian akan menunggu sender mengirimkan paket-paket yang tidak berurutan tersebut, setalah paket lengkap maka receiver akan mengirimkan ACK yang berupa sequence number yang pertama pada Acknowledgment Number Field.


(5)

Gambar diatas merupakan SACK option header yang merupakan daftar dari block yang berisi data berurutan yang telah diterima oleh received. Masing-masing dari block data akan didefinisikan oleh 32 bit unsigned integer yang terdiri dari:

Left Edge of Block : sequence number pertama dari block tersebut. Right Edge of Block : sequence number yang mengikuti sequence number

terakhir dari block tersebut.

Masing-masing block menunjukkan data yang benar-benar telah diterimanya. Jadi byte data sebelum block (Left Edge of Block-1), dan data setelah block (Right Edge of Block) tidak diterima oleh received.

Maka, SACK option akan membantu menginformasikan kepada sender mengenai segmen-segmen yang telah diterima oleh receiver sehingga sender diijinkan untuk menghapus segmen yang telah direport dalam SACK Option.

2.6 TCP Westwood

TCP westwood didesaign menggunakan prinsip end-to-end congestion control. Kunci dari algoritma ini adalah estimasi bandwidth dari ACK yang kembali untuk mengatur nilai congestion windows (cwnd) dan sstresh saat kongesti terjadi. TCP Weswood merupakan perbaikan dari TCP Reno yang memperbaiki dari sisi sender dimana pada TCP Reno menggunakan algoritma Additive Increase Multiplicative Decrease (AIMD) yaitu menaikkan nilai cwnd secara bertahap, dan akan membagi nilai cwnd menjadi setengah jika terjadi kongesti pada jaringan, sedangkan pada TCP westwood menggunakan algoritma Additive Increase Additive Decrease AIAD yaitu menaikkan nilai cwnd, dan mengatur nilai cwnd dan sstresh sesuai dengan estimasi yang telah dilakukan sebelumnya.


(6)

Gambar 2.6 Mekanisme TCP Westwood5

Pada kasus single packet loss, algoritma Fast Retransmit dan Fast Recovery pada TCP Reno dapat menjaga jaringan dari self-clock dan juga dapat menjaga kestabilan dari suatu jaringan, tetapi pada kasus multiple packet loss, TCP Reno tidak dapat merecovery data secara full, mengakibatkan timeout, dan menurunkan performansi jaringan dengan kembali memasuki phase slowstart.

Pada TCP Westwood, sender akan terus menerus memantau ACK yang kembali dari receiver dan menghitung nilai Rate Estimate (RE). nilai RE merupakan perhitungan dari jumah data yang telah diterima dan di ACK oleh receiver dalam jangka waktu tertentu. Duplicate dan delayed ACK juga diperhitungkan dalam dalam penentuan RE, sehingga akan menghasilkan feasible rate yang telah dihitung dalam RE tersebut.

Selanjutnya TCP Westwood akan menggunakan rate estimate tersebut untuk pengaturan besar nilai dari congestion windows dan sstresh saat sender menerima 3 duplicate ACK yang mengindikasikan telah terjadinya kongesti

dalam jaringan tersebut.