Kata - kata yang ada di judul postingan ini pasti kerap kita temukan di dunia jaringan komputer. Client -server dan P2P merupakan paradigma cara berkomunikasi dalam jaringan. Socket adalah suatu komponen yang terdapat dalam jaringan. Bagaimanakah sistem dari client-server dan P2P dalam berkomunikasi? Apa itu socket?
Tipe jaringan client server terdiri dari dua komponen utama yaitu client dan server. Server merupakan komputer yang berfungsi untuk untuk menjalankan proses komunikasi dengan menerima permintaan (request) dari client. Client merupakan komputer yang menjalankan proses komunikasi dengan memberikan request. Bentuk jaringan client server terlihat seperti gambar berikut :
Sumber : http://optionmatrix.com/services/client-server
Berdasarkan ilustrasi di atas terlihat bahwa semua client terhubung dengan server dan tidak ada koneksi dari suatu client dengan client lainnnya secara langsung. Untuk dapat melakukan komunikasi dengan client lain, suatu client harus mengirimkan request pada server terlebih dahulu untuk kemudian diteruskan pada client yang dituju. Server tidak hanya dapat menerima request dari client namun juga dapat terhubung dengan device yang dapat digunakan bersama. Server juga dapat digunakan untuk file sharing. Tipe jaringan ini memiliki keamanan yang lebih baik di sisi client. Namun akses yang dilakukan lebih lambat karena komunikasi harus melalui server terlebih dahulu.
P2P (Peer-to-peer)
Berbeda dengan tipe jaringan client-server, tipe jaringan p2p tidak menggunakan server. Pada tipe jaringan ini, setiap client terhubung dengan client lainnya. Komunikasi antar client dapat dilakukan secara langsung jika client yang sedang berkomunikasi terhubung langsung satu sama lain. Berikut ini ilustrasi model p2p :
Sumber : http://yadhutony.blogspot.com/2012/11/how-to-block-p2p-traffic-on-cisco-router.html
Dalam ilustrasi terlihat bahwa client terhubung langsung dengan client lainnya. Client yang mengirimkan request pada client lainnya secara langsung. Tipe jaringan ini memiliki kecepatan akses yang lebih cepat. Namun keamanan jaringannya kurang. Koneksi antar client yang dilakukan secara langsung dapat menjadi media penyebaran virus atau malware lainnya.
Socket
Socket adalah suatu titik akhir dari hubungan komunikasi dua arah antara dua program yang berjalan di jaringan. Socket terikat dengan port number sehingga TCP layer dapat mengidentifikasi aplikasi yang mana datanya akan dikirimkan. Contohnya pada client server, ketika client akan bekomunikasi dengan server, client akan diberikan port number yang dapat digunakan untuk berkomunikasi dengan server. Socket berada dalam port number tersebut. Client menuliskan requestnya pada socket, begitu pula saat membaca informasi yang diberikan oleh server. Ada dua jenis socket yaitu Socket local dan socket networking.
Socket local
Socket ini berfungsi untuk melakukan komunikasi dengan perantaraan sebuah file. Socket ini digunakan untuk komunikasi aplikasi - aplikasi dalam satu mesin.
Socket Networking
Socket ini digunakan untuk komunikasi antar aplikasi antar mesin yang berada dalam jaringan TCP/IP Identifikasi socket dilakukan menggunakan service identifier yang terdiri atas IP dan Port. Berikut ini jenis - jenis socket networking yang biasa digunakan :
Stream Socket merupakan aliran komunikasi dua arah yang reliable menggunakan TCP. Data yang dikirimkan pada stream socket berada dalam urutan yang sama. Misal kita mengirim data "A", lalu "B", lalu "C", data yang diterima adalah "A","B,"kemudian "C" sesuai dengan urutannya.
Datagram socket adalah komunikasi yang menggunakan UDP (User Datagram Protocol). Socket ini sering dikatakan sebagai connectionless. Untuk pengiriman data, socket hanya perlu membuat suatu paket yang tertera sebuah IP header dengan informasi tujuan dan mengirimkannya.
Referensi :
Modul Kuliah Jaringan Komputer Sistem dan Teknologi Informasi STEI ITB
http://www.teach-ict.com/as_a2_ict_new/ocr/AS_G061/317_role_impact_ict/networks/miniweb/pg7.htm#
http://docs.oracle.com/javase/tutorial/networking/sockets/definition.html
http://journals.ecs.soton.ac.uk/java/tutorial/networking/sockets/definition.html
http://artofwong.wordpress.com/2011/03/08/socket/