Apa itu client-server?
Client-server adalah hubungan di mana satu program, yaitu client, meminta layanan atau sumber daya dari program lain, yaitu server. Istilah client-server sebelumnya digunakan untuk membedakan komputasi terdistribusi oleh PC dari model komputasi monolitik dan terpusat yang digunakan oleh mainframe.
Saat ini, transaksi komputer di mana server memenuhi permintaan yang dibuat oleh client sangat umum terjadi. Model client-server telah menjadi salah satu konsep utama dalam komputasi jaringan. Dalam konteks ini, client membuat koneksi ke server melalui LAN atau WAN, seperti internet.
Setelah server memenuhi permintaan client, koneksi akan terputus. Karena banyak program client berbagi layanan dari program server yang sama, server khusus yang disebut daemon mungkin diaktifkan untuk menunggu permintaan client.
Pada awal internet, sebagian besar lalu lintas jaringan bergerak melalui apa yang dikenal sebagai lalu lintas utara-selatan (north-south traffic). Ini terjadi ketika data bergerak antara client jarak jauh yang meminta konten web dan server pusat data yang menyediakannya. Saat ini, dengan berkembangnya virtualisasi dan komputasi awan, lalu lintas jaringan lebih cenderung mengalir antar-server, yang dikenal sebagai lalu lintas timur-barat (east-west traffic).
Perubahan ini telah menggeser fokus administrasi jaringan dari model keamanan terpusat yang dirancang untuk melindungi perimeter jaringan ke model keamanan terdesentralisasi yang mengontrol akses individu ke layanan dan data. Profesional jaringan juga melakukan audit perilaku jaringan untuk memastikan kepatuhan terhadap kebijakan dan regulasi.
Kelebihan dan kekurangan model client-server
Salah satu kelebihan penting dari model client-server adalah arsitektur terpusatnya yang memudahkan perlindungan data dengan kontrol akses yang ditegakkan oleh kebijakan keamanan. Selain itu, tidak masalah jika client dan server menggunakan sistem operasi yang berbeda karena data ditransfer melalui protokol client-server yang tidak bergantung pada platform tertentu.
Namun, salah satu kekurangan dari model client-server adalah jika terlalu banyak client secara bersamaan meminta data, server dapat menjadi kelebihan beban. Ini dapat menyebabkan kemacetan jaringan atau bahkan penolakan layanan (denial of service).
Protokol client-server
Client biasanya berkomunikasi dengan server menggunakan protokol TCP/IP. TCP adalah protokol yang berorientasi koneksi, yang berarti protokol ini menetapkan dan mempertahankan koneksi hingga program aplikasi di masing-masing ujung selesai bertukar pesan. Protokol TCP membantu dalam:
- Menentukan cara membagi data aplikasi menjadi paket.
- Mengirim dan menerima paket dari lapisan jaringan.
- Mengelola kontrol aliran lalu lintas.
- Menangani retransmisi paket yang hilang atau rusak.
- Mengakui semua paket yang diterima dalam jaringan.
Dalam model komunikasi Open Systems Interconnection (OSI), TCP mencakup bagian dari Layer 4 (transport layer) dan bagian dari Layer 5 (session layer).
Sebaliknya, IP adalah protokol tanpa koneksi (connectionless), yang berarti komunikasi antara titik akhir tidak berlanjut setelah transmisi awal karena tidak ada koneksi. Internet memperlakukan setiap paket data yang melewati jaringan sebagai unit data independen tanpa kaitan dengan unit lain, sementara TCP mengatur paket dalam urutan yang benar. Dalam model komunikasi OSI, IP berada di Layer 3 (network layer).
Model hubungan program lainnya
Model hubungan program lainnya termasuk peer-to-peer (P2P) dan primary/secondary. Dalam model P2P, setiap node dalam jaringan dapat berfungsi sebagai client maupun server. Dalam model primary/secondary, perangkat atau proses utama mengontrol satu atau lebih perangkat atau proses sekunder. Setelah hubungan primary/secondary terbentuk, arah kontrol selalu dari utama ke sekunder.