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..
- 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....!!!