Pemrograman Multicast
Pemrograman multicast diaktifkan melalui Windows Sockets. Windows Sockets memungkinkan Multicast Listener Discovery (MLD) versi 1 (MLDv1) dan 2 (MLDv2) pada IPv6 dan Internet Group Management Protocol versi 2 (IGMPv2) dan 3 (IGMPv3) melalui penggunaan opsi soket atau IOCTL. Bagian ini menjelaskan implementasi Windows, menjelaskan cara mengaktifkan pemrograman multicast menggunakan Windows Sockets, dan menyediakan sampel pemrograman untuk mengilustrasikan penggunaannya.
Versi kedua IGMP, selanjutnya disebut sebagai IGMPv2, memungkinkan host untuk bergabung dan meninggalkan grup multicast yang diidentifikasi oleh alamat multicast IPv4 pada antarmuka jaringan tertentu. Windows Sockets memungkinkan aplikasi untuk bergabung dan meninggalkan grup tersebut pada soket tertentu. Kelemahan IGMPv2, bagaimanapun, adalah bahwa setiap alamat sumber IPv4 yang bergabung ke grup IGMPv2 dapat mentransmisikan ke semua anggota, berpotensi membanjiri grup dan membuatnya tidak dapat digunakan untuk transmisi yang memerlukan sumber utama, seperti stasiun radio Internet. Masalah dengan IGMPv2 adalah ketidakmampuannya untuk memilih satu alamat sumber IPv4 secara selektif (atau bahkan beberapa sumber), dan ketidakmampuannya untuk memblokir pengirim (seperti penyiar nakal atau pelaku penolakan layanan) untuk grup multicast tertentu. IGMPv3 mengatasi kekurangan tersebut.
Dengan Windows Sockets dan IGMPv3, aplikasi dapat memilih alamat sumber IPv4 multicast tertentu dan pasangan grup multicast. Selain itu, Windows Sockets memungkinkan pengembang untuk secara selektif mengizinkan penyiar tambahan dalam pasangan sumber/grup tertentu, atau memungkinkan aplikasi untuk memblokir penyiar tertentu. IGMPv3 didukung pada Windows Vista dan yang lebih baru.
Versi pertama MLD pada IPv6, disebut sebagai MLDv1, sangat mirip dengan IGMPv2 dan menderita keterbatasan yang sama. MLDv1 memungkinkan host untuk bergabung dan meninggalkan grup multicast yang diidentifikasi oleh alamat multicast IPv6 pada antarmuka jaringan tertentu. Windows Sockets memungkinkan aplikasi untuk bergabung dan meninggalkan grup tersebut pada soket tertentu. Namun, setiap alamat sumber IPv6 yang bergabung ke grup MLDv1 dapat dikirimkan ke semua anggota, berpotensi membanjiri grup dan membuatnya tidak dapat digunakan untuk transmisi yang memerlukan sumber utama. Masalah dengan MLDv1 adalah ketidakmampuannya untuk memilih satu alamat sumber IPv6 secara selektif (atau bahkan beberapa sumber), dan ketidakmampuannya untuk memblokir pengirim (seperti penyiar nakal atau pelaku penolakan layanan) untuk grup multicast tertentu. MLDv2 mengatasi kekurangan tersebut.
Dengan Windows Sockets dan MLDv2, aplikasi dapat memilih alamat sumber IPv6 multicast tertentu dan pasangan grup multicast. Selain itu, Windows Sockets memungkinkan pengembang untuk secara selektif mengizinkan penyiar tambahan dalam pasangan sumber/grup tertentu, atau memungkinkan aplikasi untuk memblokir penyiar tertentu. MLDv2 didukung pada Windows Vista dan yang lebih baru.
Ada dua pendekatan yang dapat dilakukan programmer aplikasi saat mengembangkan aplikasi multicast di Windows. Pendekatan pertama adalah berbasis perubahan; sumber multicast ditambahkan atau dihapus menggunakan opsi soket, bahkan selama transmisi, sesuai kebutuhan. Pendekatan kedua berbasis status akhir; alamat sumber dan alamat yang disertakan/dikecualikan ditentukan dengan IOCTL. Setiap pendekatan adalah praktik multicasting yang valid, tetapi pengembang mungkin menemukan menggunakan opsi soket dan pendekatan berbasis perubahan yang lebih intuitif dan fleksibel.
Bagian ini memiliki halaman berikut:
Judul halaman | Deskripsi |
---|---|
MLD dan IGMP Menggunakan Soket Windows | Menghitung opsi soket multicast yang tersedia untuk digunakan dalam pemrograman Windows Sockets, menggunakan pendekatan pemrograman berbasis perubahan. Menentukan dua kategori aplikasi multicast. |
Perilaku Opsi Soket Multicast | Menyediakan tabel yang luas untuk menjelaskan implikasi dan persyaratan panggilan opsi soket multicast dalam urutan tertentu. |
Sampel Pemrograman Multicast | Cuplikan pemrograman yang menggambarkan cara menggunakan opsi soket untuk mengaktifkan aplikasi multicast di Windows. |
Pemrograman Multicast berbasis Status Akhir | Menjelaskan pendekatan status akhir, dan cara menggunakan IOCTL untuk pemrograman multicast dengan Windows Sockets. |
Porting Aplikasi Siaran ke IPv6 | Menyediakan panduan untuk memindahkan aplikasi siaran IPv4 ke multicast IPv6. |