Penanganan Koneksi TCP LANDASAN TEORI

Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 maka penerima tidak dapat mengirimkan konfirmasi negatif kembali kepada pengirim. Sebagai pengganti, dikonfirmasi kembali byte terakhir data yang sudah diterima. Karena pengirim sering mengirimkan jumlah segmen yang besar kembali ke belakang, jika satu segmen hilang maka akan ada banyak duplikat ACK. Jika pengirim TCP menerima tiga duplikat ACK untuk data yang sama, maka ini diambil sebagai indikasi bahwa segmen yang di-ACK tiga kali sudah hilang. Dalam kasus ini tiga ACK duplikat diterima, pengirim TCP melakukan fast retransmit retransmisi cepat, mentransmisi ulang segmen sebelum timer segmen berakhir.

3.4 Penanganan Koneksi TCP

Dalam sub bagian ini akan dibahas dari dekat bagaimana koneksi TCP dibangun dan menguraikannya. Meskipun topik ini terlihat tidak terlalu khusus, namun perlu karena pembentukan koneksi TCP ini dapat menjelaskan delay yang ada. Lebih lanjut, banyak serangan jaringan, termasuk serangan SYN dengan memanfatkan pengelolaan koneksi TCP. Pertama dibahas bagaimana koneksi TCP dibentuk. Nyatakanlah proses yang dijalankan itu dalam satu host client ingin memulai koneksi dengan proses dalam host yang lain server. Proses aplikasi client ini pertama kali memberitahukan TCP client bahwa ia mau membangun sebuah koneksi proses dalam server. TCP dalam client kemudian memulai membangun koneksi TCP dalam server dengan cara sebagai berikut:  Langkah 1. TCP sisi client mengirimkan segmen TCP khusus pada sisi server TCP. Segmen khusus ini tidak memiliki data lapisan aplikasi. Tetapi salah satu bit flag dalam header segmen, bit SYN, diset 1. Untuk alasan itu, segmen khusus ini disebut segmen SYN. Disamping itu, client secara acak memilih nomor urut awal client_isn Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 dan meletakkan nomor ini ke dalam field nomor urut sequence number dari TCP SYN awal. Segmen ini dikemas dalam datagram IP dan mengirimkannya ke server.  Langkah 2. Sekali datagram IP yang memuat segmen TCP SYN tiba pada host server, maka server akan mengeksktrak segmen TCP SYN dari datagram, mengalokasikan buffer TCP dan variabel menuju koneksi dan mengirimkan segmen yang disetujui ini kepada TCP client. Segmen yang disetujui ini juga tidak memuat data lapisan aplikasi. Begitupun, ia memuat tiga bagian informasi penting dalam header segmen. Pertama, bit SYN diset 1. Kedua, field acknowledgement dari header segmen TCP diset ke client_isn+1. Akhirnya, server memilih nomor urutan awalnya server_isn dan menempatkan nilai ini pada field nomor urut dari header segmen TCP. Segmen yang disetujui ini akan berkata,”Saya menerima paket SYN anda untuk memulai koneksi dengan nomor urut awalmu, client_isn. Saya setuju untuk membangun koneksi ini. Nomor urut awal yang saya miliki adalah server_isn”. Segmen koneksi yang disetujui ini disebut juga sebagai segmen SYNACK.  Langkah 3. Setelah menerima segmen SYNACK, client juga mengalokasikan buffer dan variabel pada koneksi. Host client mengirimkan kepada server segmen lain, Segmen terakhir ini mengkonfirmasikan segmen server client juga melakukannya dengan menempatkan nilai server_isn+1 pada field acknowledgement dari header segmen TCP. Bit SYN diset ke 0, semenjak koneksi dibangun. Setelah tiga langkah diselesaikan, client dan server dapat mengirimkan segmen yang memuat data satu sama lain. Dalam setiap segmen ini, bit SYN akan diset ke nol. Sebagai catatan untuk membangun koneksi, tiga paket dikirimkan diantara dua host yang Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 diilustrasikan pada Gambar 3.7. Dengan alasan tersebut, aturan membangun koneksi ini sering dinamakan three way handshake jabatan tangan tiga arah. Gambar 3.7 Jabatan Tangan handshake Tiga Arah TCP Sekarang akan dibahas bagaimana proses untuk mengakhiri koneksi TCP. Salah satu dari dua proses yang berpartisipasi dalam koneksi TCP dapat mengakhiri koneksi. Ketika koneksi berakhir, maka “sumber” dalam host akan dibebaskan. Anggap client memutuskan untuk menutup koneksi seperti pada Gambar 3.8. Proses aplikasi client mengeluarkan perintah untuk menutup koneksi. Hal ini menyebabkan TCP client mengirimkan segmen TCP khusus kepada proses server. Segmen khusus ini memiliki sebuah bit flag dalam header segmen, yaitu bit FIN diset ke 1. Ketika server menerima segmen ini, ia mengirimkan client sebuah segmen acknowledgement. Server kemudian mengirimkan segmen menutupnya, yang memiliki bit FIN yang diset 1. Akhirnya, client Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 mengkonfirmasikan segmen menutup shutdown server. Dalam hal ini, semua sumber daya yang ada pada kedua host diakhiri. Gambar 3.8 Penutupan Koneksi TCP Selama pemakaian koneksi TCP, protokol TCP yang berjalan pada masing- masing host melakukan peralihan melalui berbagai kondisi TCP. Gambar 3.9 mengilustrasikan urutan kondisi TCP dengan kunjungan TCP client. TCP client ini memulai kondisi CLOSED. Aplikasi pada sisi client memulai koneksi TCP yang baru. Ini meyebabkan TCP pada client mengirimkan segmen SYN pada TCP dalam server. Setelah mengirimkan segmen SYN, TCP client membuka kondisi SYN_SENT. Ketika dalam kondisi SYN_SENT, TCP client menunggu sebuah segmen dari TCP server yang memasukkan sebuah konfirmasi untuk segmen client sebelumnya dan memiliki bit SYN yang diset 1. Setelah menerima segmen, TCP client membuka kondisi ESTABLISHED. Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 Ketika dalam kondisi ESTABLISHED, client TCP dapat mengirim dan menerima segmen TCP yang berisikan data. Anggap bahwa aplikasi client memutuskan ingin menutup koneksi. Hal ini menyebabkan TCP client mengirimkan sebuah segmen TCP dengan bit FIN diset 1. Ketika dalam kondisi FIN_WAIT_1, TCP client menunggu sebuah segmen TCP dari server dengan sebuah acknowledgement. Ketika ia menerima segmen ini, TCP client membuka kondisi FIN_WAIT_2. Ketika dalam kondisi FIN_WAIT_2, client menunggu segmen yang lain dari server dengan bit FIN diset 1. Setelah menerima segmen ini, TCP client mengkonfirmasikan segmen server dan membuka kondisi TIME_WAIT. Kondisi TIME_WAIT membiarkan client TCP mengirimkan ulang acknowledgement terakhir dalam kasus ACK hilang. Waktu yang dihabiskan dalam kondisi TIME_WAIT ini adalah implementasi tanggungan, namun nilai yang khusus adalah 30 detik, 1 menit, dan 2 menit. Setelah menunggu, koneksi dengan resmi ditutup dan semua sumber daya pada sisi client dihentikan. Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 Gambar 3.9 Urutan Kondisi TCP yang Dikunjungi oleh TCP Client Gambar 3.10 mengilustrasikan rangkaian kondisi yang dikunjungi oleh TCP sisi server dengan mengasumsikan client memulai uraian koneksi. Transisi ini merupakan penjelas. Dalam dua diagram kondisi transisi ini hanya diketahui bagaimana koneksi TCP ini dibangun dan ditutup. Sehingga tidak perlu dijelaskan apa yang telah terjadi dalam skenario pathologic, sebagai contoh ketika kedua sisi dari koneksi mau memulai atau menutup pada waktu yang sama. Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 Gambar 3.10 Urutan Kondisi TCP yang Dikunjungi oleh TCP Server Sekarang dijelaskan apa yang terjadi ketika host menerima segmen TCP yang memiliki nomor port atau alamat IP sumber yang tidak sesuai dengan socket dalam host. Misalnya anggap sebuah host menerima paket TCP SYN dengan port tujuan 80, tetapi host itu tidak menerima koneksi pada port 80. Maka host akan mengirimkan segmen reset khusus pada sumber. Segmen TCP memiliki bit flag RST yang diset ke 1 [9]. Sehingga ketika host mengirimkan segmen itu, ia akan berbicara ke sumber, “Saya tidak punya socket untuk segmen itu. Tolong jangan kirim kembali segmen itu.” BAB IV Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009 PERANCANGAN PERANGKAT LUNAK SISTEM KOMUNIKASI CLIENT SERVER

4.1 Kebutuhan Sistem