About Lidia

Foto saya
buat aq penampilan itu no.1,,,ga t'lalu ribet,,,simple aja!! yg penting "good looking"...

Rabu, 07 Januari 2009

Perumpamaan Socket

Bayangkan socket seperti sebuah alat komunikasi , telpon. Sedangkan kita , manusia , sebagai aplikasi . Untuk berhubungan dengan aplikasi lain , socket perlu membuka koneksi terlebih dahulu . Sama halnya dengan telpon , kita memutar nomor seseorang untuk membentuk koneksi terlebih dahulu . Setelah terbentuk koneksi barulah kita saling bertukar data alias ngobrol . Jono sebagai orang yang menginisialisasi koneksi disebut client , sedangkan teman Jono , Jini , yang dihubungi diibaratkan server.

Kronologisnya seperti ini :

Jono : tit tut tot tut tet ... ( ketik nomor telpon -> alamat server IP + Port )

IP itu seperti nomor telpon , sedangkan port ibarat nama teman . Dalam satu komputer ada beberapa aplikasi kan..?? nah aplikasi2 ini dibedakan berdasarkan portnya . Berarti .. tidak mungkin ada dua aplikasi menggunakan port yang sama dalam satu komputer. ... jika teman kita ada , maka berbahagialah kita jika dia mengangkat telpon .. :) dan terbentuklah koneksi ..

Jono : halo Jini
Jini : halo jg...

nah .. ini namanya bertukar data . Pertukaran data ini harus mengikuti kesepakatan format terlebih dahulu . Ini dikenal juga sebagai protokol . Kalau di dunia internet banyak contohnya : http , ftp , irc dsb . Kalau misalnya formatnya salah , akan ditolak oleh server..misalnya mengirimkan data ftp ke server http . Biasanya tuh.. yang namanya server melayani request dari client .

Jono : minta alamat Rio

Rini akan memproses permintaan tersebut , mencari alamat Rio , mencatatnya . Seperti itulah tipikal aplikasi socket , ada request .. diproses kemudian dikirim responnya.

Rini : jl. Sarijadi 169 Bandung

Terkadang..server juga bisa proaktif mengirimkan data terlebih dahulu..
Kalau sudah selesai ngobrolnya.. maka salah satu bisa memutuskan koneksi . .misalnya Jini menutup duluan ( ga sopan banget :p ) , telepon di Jono berbunyi tiiiitt.. mengindikasikan koneksi putus. Jono-pun menutup telpon alias menutup socket .selesailah satu proses dasar pengiriman data dengan telpon/socket .

Karakteristik :

Proses diatas merupakan salah satu karakteristik dari socket TCP . Ada dua jenis socket yang umum yaitu TCP dan UDP .

- untuk bertukar data harus membentuk koneksi dulu..Socket UDP tidak perlu membentuk koneksi dahulu langsung aja jrot jrot..kirim data . Mungkin ibaratnya seperti interkom , tidak peduli ada orang yang jawab langsung aja ngomong .

- data TCP berupa stream Misalkan telpon yang digunakan menggunakan fasilitas VOIP , dilewatkan jaringan internet . VOIP karena lewat internet , pas lagi trafik gede sangat lambat sekali . Suaranya akan terdengar patah2 . Misalnya Jini memberikan informasi alamat2 warung tegal di bandung :Jalan Dipatiukur 56 . Jalan dayeuhkolot 201.

Keduanya sepakat menggunakan . ( titik ) sebagai pembatas . Menggunakan socket TCP bisa terjadi beberapa kemungkinan sbb :
1. Jono menerima data lengkap : Jalan Dipatiukur 56 . Jalan dayeuhkolot 201.
2. Jono menerima data parsial :
data1 : Jalan Dipatiukur 56. Jal
data2 : an dayeuhkolot 201.

Tapi karena sepakat bahwa tanda . ( titik ) sebagai pembeda alamat , Jono dengan mudah mendapatkan alamat2 tersebut. Di jaringan pun demikian , TCP adalah stream oriented . Data yang diterima dapat utuh , terpecah2 menjadi beberapa bagian . Oleh karena itu , sangat amat penting bagi aplikasi untuk menghadapi masalah seperti ini dengan membuat metoda untuk membedakan message . Diantaranya :
- Tambahkan trailing di belakang message : pada contoh diatas digunakan . ( titik )
- Tambahkan indikator panjang message di depan :

misalnya kalau message diatas diformat akan menjadi :
24Jalan Dipatiukur5628Jalan dayeuhkolot 201
-24 adalah panjang message 1 (termasuk 24)
-28 adalah panjang message 2 (termasuk 28)
Meskipun Jono akan pusing mbacanya.. tapi kalau dia tekun pasti bisa...

UDP adalah data oriented . Tidak senjelimet TCP , UDP bisa mengirimkan data secara terpisah . Jadi penerimaan datanya seperti ini :
message1 : Jalan Dipatiukur 56
message 2 : Jalan dayeuhkolot 201

- TCP menjamin urutan message
Lihat contoh sebelumnya .. message diterima sesuai urutannya . Message 2 akan selalu diterima setelah message 1 .Tidak demikian dengan UDP , tidak menjamin urutan message . Message 2 bisa saja datang duluan sebelum message 1. UDP memungkinkan hal ini .

- TCP menjamin data sampai di tujuan
Data yang dikirimkan dijamin sampai ke tujuannya sesuai dengan urutannya . Jika ditengah jalan ada masalah , TCP cukup pintar untuk mengirimkan kembali message sesuai dengan urutannya . Jadi penerima menerima datanya dengan utuh. Tapi.. inga inga !! jika terjadi error permanen ditengah jalan seperti server mati , link putus , listrik mati , TCP tidak bisa menjamin . UDP lain lagi , tidak menjamin data sampai ditujuan . Message bisa hilang ditengah jalan . Server maupun client gak akan tahu kenapa message itu pergi . Namun , dengan menggunakan aplikasi masalah ini bisa dipecahkan . Misalnya dengan memberi nomor urut di dalam data yang kita kirimkan , dengan demikian penerima bisa mengetahui urutan messagenya . Jika ada message yang hilang , penerima bisa merequest kembali pengirim untuk mengirimkan lagi message tersebut.

Keliatan gak ?? bagian yang menerangkan TCP itu lebih banyak dibandingkan UDP . Memang , TCP lebih kompleks proses algoritmanya dibanding UDP . Oleh karena itu , keduanya digunakan sesuai karakteristiknya :
TCP -> Transaksi bank , Transfer file , dsb...
UDP -> Multiplayer game , network monitoring

Udah dulu yach...artikel ni lid ambil dr bayufa di Benpinter.net .... s'moga berguna bwt temen2 smuanya....!!!