• Tidak ada hasil yang ditemukan

21 FTP Control

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.

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.

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 Persistent Responsive

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

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.

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.

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

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.

Dokumen terkait