Konsep Dasar TCP TCP Transmission Control Protocol

3. Protokol, TCP atau UDP. Setelah socket dibuat, socket harus diikat bindbound pada network address dan port pada sistem local atau network address dan port pada sistem remote. Setelah socket diikat, maka bisa digunakan untuk mengirim dan menerima data. Gambar 2.3 Socket Interface

2.4.1 TCP Transmission Control Protocol

2.4.1.1 Konsep Dasar TCP

Hal yang paling penting untuk diingat pada penggunaan protokol TCP adalah bahwa TCP merupakan connection-oriented protocol. Sekali koneksi terjadi antara dua device, aliran data yang reliable antara keduanya tercipta, untuk memastikan bahwa data yang dipindahkan antara satu device ke device lainnya dilakukan secara akurat. Walaupun dengan TCP aplikasi anda tidak perlu mencemaskan data yang hilang atau data yang tidak berurutan, ada satu pertimbangan tertentu jika anda menggunakan pemrograman dengan TCP: buffer. Karena TCP harus memastikan integritas data, maka data yang dikirimkan disimpan di buffer lokal sampai ada acknowlagement dari penerima data. Begitu juga sebaliknya, ketika menerima data dari jaringan, TCP harus menyimpan data yang diterima di buffer lokal untuk memastikan semua potongan data diterima dengan benar sebelum data tersebut disampaikan ke aplikasi. Dengan demikian pemrosesan data di applikasi di device lokal tidak selalu sama dengan aplikasi di remote decive. Gambar 2.4 berikut menunjukan cara kerjanya: Gambar 2.4 Transfer data TCP Pengiriman paket data yang membutuhkan acknowlagement pada setiap sesi pengiriman paket data pada protokol TCP disebut sebagai “3-way handshake”. Gambar 2.5 “3-Way Handshake” Pada Protokol TCP Subsistem TCP di sistem operasi Windows bertanggung jawab atas penerimaan data dari remote device. Data yang diterima akan ditempatkan di buffer untuk waktu tertentu baru kemudian dikirimkan ke jaringan. Sementara itu aplikasi anda mungkin mengirimkan data lagi ke remote host, yang akan menyebabkan bertambahnya data yang disimpan di buffer pada gambar diatas: data1 dan data2. Ketika subsistem TCP sudah siap mengirim data ke remote device, akan dicoba untuk mengirimkan semua data dalam satu paket, bukan potongan-potongan data, sehingga baik buffer data1 maupun data2 dikirimkan dalam satu paket. Host penerima menerima data dalam satu paket yang berisi data1 dan data2. Kemudian aplikasi akan menentukan apakah data1 dan data2 merupakan data yang terpisah atau suatu kesatuan data. Karena TCP mengirimkan data sebagai satu kesatuan aliran stream data maka batasan-batasan data tidak dapat dipertahankan. Oleh sebab itu maka perlu ditambahkan mekanisme pembacaan data tersendiri di tingkat aplikasi. Ada dua cara untuk mengatasi hal tersebut: 1. Membuat protokol yang memerlukan responsi one-for-one untuk setiap data yang dikirim dari host. 2. Merancang penanda pesan data untuk menentukan batasan-batasan diantara aliran data. Dua cara diatas membutuhkan pertimbangan dan perencanaan tertentu sebelum pembuatan aplikasi dimulai. Kebanyakan protokol internet yang menggunakan cara yang pertama untuk memilah-milah data. FTP dan protokol yang serupa mengimplementasikan sistem commandresponse dimana client mengirim satu pesan command terlebih dahulu dan menunggu respon untuk setiap command dari romote host.

2.4.1.2 Pemrograman Socket di TCP