IP Multicast

Multicast IP termasuk dalam kategori sarana data yang tidak dialirkan dan sarana kontrol yang tidak dialirkan. Semua aplikasi memainkan peran daun. Saat ini, sebagian besar implementasi multicast IP menggunakan serangkaian opsi soket yang diusulkan oleh Steve Deering ke Internet Engineering Task Force (IETF). Dengan demikian, lima operasi tersedia:

  • IP_MULTICAST_TTL—Mengatur time-to-live, mengontrol cakupan sesi multicast.
  • IP_MULTICAST_IF—Menentukan antarmuka yang akan digunakan untuk multicasting.
  • IP_ADD_MEMBERSHI —Bergabung dengan sesi multicast tertentu.
  • IP_DROP_MEMBERSHIP—Keluar dari sesi multicast.
  • IP_MULTICAST_LOOP—Mengontrol loopback lalu lintas multicast.

Mengatur time-to-live untuk peta soket multicast IP secara langsung menggunakan kode perintah SIO_MULTICAST_SCOPE untuk WSAIoctl.

Metode untuk menentukan antarmuka IP yang akan digunakan untuk multicasting adalah melalui opsi soket khusus TCP/IP seperti yang dijelaskan dalam Windows Soket 2 Protocol-Specific Annex. Tiga operasi yang tersisa dicakup dengan baik dengan semantik Windows Soket 2 yang dijelaskan di sini.

Aplikasi ini akan membuka soket dengan bendera c_leaf/d_leaf di WSASocket. Ini akan menggunakan WSAJoinLeaf untuk menambahkan dirinya ke grup multicast pada antarmuka default yang ditunjuk untuk operasi multicast. Jika bendera di WSAJoinLeaf menunjukkan bahwa soket ini hanya pengirim, maka operasi gabungan pada dasarnya adalah no-op dan tidak ada pesan IGMP yang perlu dikirim. Jika tidak, paket IGMP dikirim ke router untuk menunjukkan minat dalam menerima paket yang dikirim ke alamat multicast yang ditentukan. Karena aplikasi membuat soket c_leaf/d_leaf khusus yang hanya digunakan untuk melakukan multicast, fungsi closesocket standar akan digunakan untuk keluar dari sesi multicast. Kode perintah SIO_MULTIPOINT_LOOPBACK untuk WSAIoctl menyediakan mekanisme kontrol generik untuk menentukan apakah data yang dikirim pada soket d_leaf dalam skema multipoint yang tidak dialirkan juga dapat diterima pada soket yang sama.

Catatan

Versi Winsock dari opsi IP_MULTICAST_LOOP secara semantik berbeda dari versi UNIX opsi IP_MULTICAST_LOOP:

 

  • Di Winsock, opsi IP_MULTICAST_LOOP hanya berlaku untuk jalur penerima.
  • Dalam versi UNIX, opsi IP_MULTICAST_LOOP berlaku untuk jalur pengiriman.

Misalnya, aplikasi ON dan OFF (yang lebih mudah dilacak daripada X dan Y) bergabung dengan grup yang sama pada antarmuka yang sama; aplikasi ON menetapkan opsi IP_MULTICAST_LOOP aktif, aplikasi NONAKTIF menetapkan opsi IP_MULTICAST_LOOP nonaktif. Jika ON dan OFF adalah aplikasi Winsock, OFF dapat mengirim ke ON, tetapi ON tidak dapat dikirim ke OFF. Sebaliknya, jika ON dan OFF UNIX aplikasi, ON dapat mengirim ke OFF, tetapi OFF tidak dapat mengirim ke ON.