Gambaran Umum Pemrograman Socket untuk Jaringan Komputer

Soket adalah salah satu teknologi paling mendasar dari pemrograman jaringan komputer. Soket memungkinkan aplikasi perangkat lunak jaringan untuk berkomunikasi menggunakan mekanisme standar yang dibangun ke perangkat keras jaringan dan sistem operasi.

Meskipun mungkin terdengar seperti hanya fitur lain dari pengembangan perangkat lunak Internet, teknologi socket sudah ada jauh sebelum Web. Dan, banyak dari aplikasi perangkat lunak jaringan yang paling populer saat ini bergantung pada soket.

Apa yang Dapat Dilakukan Soket Untuk Jaringan Anda

Soket mewakili koneksi tunggal antara dua perangkat lunak (yang disebut koneksi point-to-point ). Lebih dari dua perangkat lunak dapat berkomunikasi dengan klien / server atau sistem terdistribusi dengan menggunakan beberapa soket. Misalnya, banyak browser Web dapat berkomunikasi secara bersamaan dengan server Web tunggal melalui sekelompok soket yang dibuat di server.

Perangkat lunak berbasis soket biasanya berjalan pada dua komputer terpisah di jaringan, tetapi soket juga dapat digunakan untuk berkomunikasi secara lokal ( interprocess ) pada satu komputer. Soket adalah dua arah , yang berarti bahwa salah satu sisi koneksi mampu mengirim dan menerima data. Kadang-kadang satu aplikasi yang memulai komunikasi disebut "klien" dan aplikasi lain "server," tetapi terminologi ini menyebabkan kebingungan dalam jaringan peer to peer dan umumnya harus dihindari.

Socket API dan Perpustakaan

Beberapa pustaka yang menerapkan antarmuka pemrograman aplikasi standar (API) ada di Internet. Paket utama pertama - Perpustakaan Socket Berkeley masih banyak digunakan pada sistem UNIX. API lain yang sangat umum adalah pustaka Windows Socket (WinSock) untuk sistem operasi Microsoft. Sehubungan dengan teknologi komputer lainnya, soket API cukup matang: WinSock telah digunakan sejak tahun 1993 dan soket Berkeley sejak tahun 1982.

API socket relatif kecil dan sederhana. Banyak fungsi yang serupa dengan yang digunakan dalam rutinitas input / output file seperti read () , write () , dan close () . Panggilan fungsi yang sebenarnya untuk digunakan tergantung pada bahasa pemrograman dan pustaka soket yang dipilih.

Tipe Antarmuka Soket

Antarmuka soket dapat dibagi menjadi tiga kategori:

  • Soket arus , jenis yang paling umum, mengharuskan kedua pihak yang berkomunikasi pertama-tama membuat sambungan soket, setelah itu setiap data yang dilewatkan melalui koneksi itu akan dijamin tiba dalam urutan yang sama dengan pengirimannya - yang disebut pemrograman berorientasi koneksi model.
  • Soket Datagram menawarkan semantik "tanpa koneksi". Dengan datagrams, koneksi bersifat implisit daripada eksplisit seperti dengan aliran. Masing-masing pihak hanya mengirim datagram sesuai kebutuhan dan menunggu pihak lain untuk merespons; pesan dapat hilang dalam transmisi atau diterima di luar pesanan, tetapi itu adalah tanggung jawab aplikasi dan bukan soket untuk mengatasi masalah ini. Menerapkan soket datagram dapat memberikan beberapa aplikasi dorongan kinerja dan fleksibilitas tambahan dibandingkan dengan menggunakan soket aliran, membenarkan penggunaannya dalam beberapa situasi.
  • Jenis soket ketiga - soket mentah - melewati dukungan built-in perpustakaan untuk protokol standar seperti TCP dan UDP . Soket mentah digunakan untuk pengembangan protokol tingkat rendah khusus.

Dukungan Socket dalam Protokol Jaringan

Soket jaringan modern biasanya digunakan bersama dengan protokol Internet - IP, TCP, dan UDP. Perpustakaan yang menerapkan soket untuk Protokol Internet menggunakan TCP untuk streaming, UDP untuk datagrams, dan IP itu sendiri untuk soket mentah.

Untuk berkomunikasi melalui Internet, perpustakaan soket IP menggunakan alamat IP untuk mengidentifikasi komputer tertentu. Banyak bagian dari Internet bekerja dengan layanan penamaan, sehingga pengguna dan pemrogram socket dapat bekerja dengan komputer berdasarkan nama ( misalnya , "thiscomputer.wireless.about.com") sebagai ganti alamat ( misalnya , 208.185.127.40). Soket streaming dan datagram juga menggunakan nomor port IP untuk membedakan beberapa aplikasi dari satu sama lain. Sebagai contoh, browser Web di Internet tahu untuk menggunakan port 80 sebagai default untuk komunikasi socket dengan server Web.