Bagikan melalui


MLD dan IGMP Menggunakan Soket Windows

Windows Sockets memungkinkan Multicast Listener Discovery (MLD) pada IPv6 dan Internet Group Management Protocol (IGMP) pada IPv4 untuk aplikasi multicast melalui penggunaan opsi soket dan IOCTL. Halaman ini menjelaskan opsi soket yang mengaktifkan pemrograman multicast, dan menjelaskan cara penggunaannya. Untuk definisi setiap opsi soket, lihat halaman Opsi Soket .

Untuk informasi tentang menggunakan IOCTL untuk pemrograman multicast, lihat Pemrograman Multicast Berbasis Status Akhir nanti di bagian ini.

Pada Windows Vista dan yang lebih baru, sekumpulan opsi soket tersedia untuk pemrograman multicast yang mendukung alamat IPv6 dan IPv4. Opsi soket ini adalah agnostik IP dan dapat digunakan pada IPv6 dan IPv4. Pada IPv6, opsi soket ini menggunakan MLDv2. Pada IPv4, opsi soket ini menggunakan IGMPv3. Opsi agnostik IP ini adalah opsi soket pilihan untuk pemrograman multicast pada Windows Vista dan yang lebih baru. Windows Sockets menggunakan opsi soket berikut:

Opsi soket Jenis Argumen
MCAST_BLOCK_SOURCE struktur GROUP_SOURCE_REQ
MCAST_JOIN_GROUP struktur GROUP_REQ
MCAST_JOIN_SOURCE_GROUP struktur GROUP_SOURCE_REQ
MCAST_LEAVE_GROUP struktur GROUP_REQ
MCAST_LEAVE_SOURCE_GROUP struktur GROUP_SOURCE_REQ
MCAST_UNBLOCK_SOURCE struktur GROUP_SOURCE_REQ

 

Sekumpulan opsi soket tersedia untuk pemrograman multicast yang hanya mendukung alamat IPv6. Opsi soket ini menggunakan MLDv1 atau MLDv2. Versi MLD yang digunakan tergantung pada versi Windows. MLDv2 didukung pada Windows Vista dan yang lebih baru. Windows Sockets menggunakan opsi soket berikut:

Opsi soket Jenis Argumen
IPV6_ADD_MEMBERSHIP struktur ipv6_mreq
IPV6_DROP_MEMBERSHIP struktur ipv6_mreq

 

Sekumpulan opsi soket tersedia untuk pemrograman multicast yang hanya mendukung alamat IPv4. Opsi soket ini menggunakan IGMPv3 atau IGMPv2. Versi IGMP yang digunakan tergantung pada versi Windows. IGMPv3 didukung pada Windows Vista dan yang lebih baru. Windows Sockets menggunakan opsi soket berikut:

Opsi soket Jenis Argumen
IP_ADD_MEMBERSHIP struktur ip_mreq
IP_ADD_SOURCE_MEMBERSHIP struktur ip_mreq_source
IP_BLOCK_SOURCE struktur ip_mreq_source
IP_DROP_MEMBERSHIP struktur ip_mreq
IP_DROP_SOURCE_MEMBERSHIP struktur ip_mreq_source
IP_UNBLOCK_SOURCE struktur ip_mreq_source

 

Ketika IGMPv3 tersedia, opsi IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP, dan IP_UNBLOCK_SOURCE ditangani lebih efisien karena router dapat menangani pemfilteran. Ketika hanya IGMPv2 yang tersedia, host harus menangani pemfilteran.

Ada dua kategori di mana sebagian besar aplikasi kemungkinan akan jatuh: sumber apa pun dan sumber terkontrol.

  • Aplikasi sumber apa pun menerima semua sumber secara default, memungkinkan sumber individual dimatikan sesuai kebutuhan. Contoh aplikasi sumber apa pun adalah panggilan konferensi video yang memungkinkan semua penerima untuk berpartisipasi.
  • Aplikasi sumber terkontrol membatasi sumber ke daftar tertentu, seperti stasiun radio Internet, atau siaran peristiwa penting. Proses penggunaan opsi soket sedikit berbeda untuk masing-masing opsi.

Pada Windows Vista dan yang lebih baru, langkah-langkah berikut berlaku untuk aplikasi sumber apa pun:

  • Gunakan MCAST_JOIN_GROUP untuk bergabung dengan grup.
  • Gunakan MCAST_BLOCK_SOURCE untuk menonaktifkan sumber tertentu, jika diperlukan.
  • Gunakan MCAST_UNBLOCK_SOURCE untuk mengizinkan kembali sumber yang diblokir, jika diperlukan.
  • Gunakan MCAST_LEAVE_GROUP untuk meninggalkan grup.

Pada Windows Vista dan yang lebih baru, langkah-langkah berikut berlaku untuk aplikasi sumber terkontrol:

  • Gunakan MCAST_JOIN_SOURCE_GROUP untuk bergabung dengan setiap pasangan grup/sumber.
  • Gunakan MCAST_LEAVE_SOURCE_GROUP untuk meninggalkan setiap grup/sumber, atau gunakan MCAST_LEAVE_GROUP untuk meninggalkan semua sumber, jika alamat grup yang sama digunakan oleh semua sumber.

Langkah-langkah berikut berlaku untuk aplikasi sumber apa pun:

  • Gunakan IP_ADD_MEMBERSHIP untuk bergabung dengan grup (IPV6_ADD_MEMBERSHIP untuk IPv6).
  • Gunakan IP_BLOCK_SOURCE untuk menonaktifkan sumber tertentu, jika diperlukan.
  • Gunakan IP_UNBLOCK_SOURCE untuk mengizinkan kembali sumber yang diblokir, jika diperlukan.
  • Gunakan IP_DROP_MEMBERSHIP untuk meninggalkan grup (IPV6_DROP_MEMBERSHIP untuk IPv6).

Langkah-langkah berikut berlaku untuk aplikasi sumber terkontrol:

  • Gunakan IP_ADD_SOURCE_MEMBERSHIP untuk menggabungkan setiap pasangan grup/sumber.
  • Gunakan IP_DROP_SOURCE_MEMBERSHIP untuk meninggalkan setiap grup/sumber, atau gunakan IP_DROP_MEMBERSHIP untuk meninggalkan semua sumber, jika alamat grup yang sama digunakan oleh semua sumber.

Urutan di mana opsi soket ini ditetapkan memiliki aturan terkait. Untuk informasi dan informasi pemecahan masalah tentang opsi soket multicast, lihat Perilaku Opsi Soket Multicast.