Pengantar Winsock Termasuk Latar Belakang & Teknologi
Introduction Winsock Including Background Technology
Posting ini terutama berbicara tentang Windows Sockets API, yang dapat disingkat menjadi WSA dan Winsock. Setelah membaca postingan ini, Anda dapat mengetahui definisi, latar belakang, teknologi, serta implementasinya.
Di halaman ini :Definisi untuk Winsock
Apa itu Winsock? Dalam komputasi, Winsock adalah spesifikasi teknis yang digunakan untuk menentukan bagaimana perangkat lunak jaringan Windows harus mengakses layanan jaringan, khususnya TCP /IP. Disebut Winsock karena merupakan adaptasi antarmuka soket Berkeley UNIX ke Windows. Soket adalah perjanjian khusus yang digunakan untuk menghubungkan dan bertukar data antara dua proses program pada komputer atau jaringan yang sama.
Tip: Jika Anda ingin mengetahui informasi lebih lanjut tentang protokol Internet lainnya, disarankan untuk mengunjungi situs web MiniTool.
Winsock adalah singkatan dari Windows Sockets API (WSA). Ini mendefinisikan antarmuka standar antara aplikasi klien TCP/IP Windows (seperti klien FTP atau browser Web) dan tumpukan protokol TCP/IP dasar.
Posting terkait: Gunakan Perintah Reset Netsh Winsock untuk Memperbaiki Masalah Jaringan Windows 10
Latar Belakang Winsock
Windows Sockets API diusulkan oleh Martin Hall dari JSB Software (kemudian Stardust Technologies) dalam diskusi BoF (Bird of a Feather) di jaringan CompuServe BBS pada bulan Oktober 1991.
Versi pertama dari spesifikasi ini ditulis oleh Martin Hall, Mark Towfiq dari Microdyne (kemudian Sun Microsystems), Geoff Arnold dari Sun Microsystems, dan Henry Sanders dan J Allard dari Microsoft dengan bantuan banyak orang lainnya.
Ada beberapa diskusi tentang cara terbaik menyelesaikan masalah hak cipta, kekayaan intelektual, dan potensi antimonopoli, serta pertimbangan pekerjaan melalui IETF atau pendirian yayasan nirlaba. Pada akhirnya diputuskan bahwa spesifikasi tersebut hanya boleh dilindungi hak cipta oleh lima penulis (tidak terafiliasi).
Semua pengembang yang berpartisipasi menolak untuk menyingkat nama menjadi Winsock untuk waktu yang lama karena ada banyak kebingungan antara API dan file perpustakaan DLL (winsock.dll), yang hanya mengekspos antarmuka WSA umum ke aplikasi di atasnya. Secara umum diyakini bahwa hanya memastikan bahwa file DLL ada di sistem dapat memberikan dukungan lengkap protokol TCP/IP.
Teknologi Winsock
Spesifikasi Windows Socket API mendefinisikan dua antarmuka: API yang digunakan oleh pengembang aplikasi, dan SPI yang menyediakan metode bagi pengembang perangkat lunak jaringan untuk menambahkan modul protokol baru ke sistem. Setiap antarmuka mewakili kontrak.
API menjamin bahwa aplikasi yang sesuai dapat berjalan normal dengan implementasi protokol yang sesuai dari vendor perangkat lunak jaringan mana pun. Kontrak SPI menjamin bahwa modul protokol yang sesuai dapat ditambahkan ke Windows sehingga dapat digunakan oleh aplikasi yang mendukung API.
Meskipun kontrak ini penting ketika Windows Sockets pertama kali dirilis, kontrak tersebut hanya memiliki arti akademis sekarang karena lingkungan jaringan memerlukan dukungan multi-protokol. Windows Sockets API versi 2.0 menyertakan fungsi penggunaan IPX/SPX, meskipun protokol ini hampir usang ketika WSA 2.0 keluar dari pabrik.
Kode dan desain Windows Sockets didasarkan pada soket BSD, namun fitur tambahan disediakan untuk memungkinkan API menyesuaikan dengan model pemrograman Windows konvensional.
Windows Sockets API hampir mencakup semua fitur API soket BSD, namun ada beberapa kendala yang tidak dapat dihindari, yang terutama disebabkan oleh perbedaan mendasar antara Windows dan Unix (walaupun perbedaan antara soket Windows Sockets dan BSD kurang dari perbedaan antara yang terakhir dan STREAM).
Namun, tujuan desain soket Windows adalah untuk memudahkan pengembang untuk mem-porting aplikasi berbasis soket dari Unix ke Windows. Membuat API yang hanya berguna untuk program Windows yang baru ditulis saja tidak cukup.
Oleh karena itu, Windows Sockets berisi banyak elemen yang dirancang untuk memfasilitasi porting. Misalnya, aplikasi Unix dapat menggunakan variabel errno yang sama untuk mencatat kesalahan jaringan dan kesalahan yang terdeteksi dalam fungsi perpustakaan C standar.
Karena tidak dapat diterapkan di Windows, Windows Sockets memperkenalkan fungsi khusus, WSAGetLastError(), untuk mengambil informasi kesalahan. Mekanisme seperti itu sangat membantu, namun porting aplikasi masih sangat rumit.
Banyak aplikasi TCP/IP primitif telah diimplementasikan dengan menggunakan fitur sistem khusus untuk Unix (seperti terminal semu dan panggilan sistem fork), dan sulit untuk mereproduksi fungsi ini di Windows. Dalam waktu yang relatif singkat, porting memberi jalan bagi pengembangan aplikasi Windows khusus.
Implementasi Winsock
- Microsoft tidak menyediakan implementasi Winsock 1.0.
- Winsock versi 1.1 disediakan dalam paket tambahan (disebut Wolverine) untuk Windows for Workgroups (kode bernama Snowball).
- Winsock versi 2.1 disediakan dalam paket add-on untuk Windows 95.
- Versi terbaru Winsock 2.x telah disediakan dengan versi Windows baru atau sebagai bagian dari paket layanan.
- Winsock 2 dapat diperluas melalui mekanisme yang disebut Layered Service Provider (LSP).