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