Partager via


MLD et IGMP à l’aide de sockets Windows

Les sockets Windows activent la découverte de l’écouteur multidiffusion (MLD) sur IPv6 et le protocole IGMP (Internet Group Management Protocol) sur IPv4 pour les applications de multidiffusion via l’utilisation d’options de socket et d’IOCTL. Cette page décrit les options de socket qui activent la programmation multidiffusion et décrit leur utilisation. Pour obtenir les définitions de chaque option de socket, consultez la page Options de socket .

Pour plus d’informations sur l’utilisation de IOCTL pour la programmation multidiffusion, consultez Programmation multidiffusion basée sur l’état final plus loin dans cette section.

Sur Windows Vista et versions ultérieures, un ensemble d’options de socket sont disponibles pour la programmation multidiffusion qui prend en charge les adresses IPv6 et IPv4. Ces options de socket sont indépendantes des adresses IP et peuvent être utilisées sur IPv6 et IPv4. Sur IPv6, ces options de socket utilisent MLDv2. Sur IPv4, ces options de socket utilisent IGMPv3. Ces options indépendantes de l’adresse IP sont les options de socket préférées pour la programmation multidiffusion sur Windows Vista et versions ultérieures. Les sockets Windows utilisent les options de socket suivantes :

Option Socket Type d’argument
MCAST_BLOCK_SOURCE structure GROUP_SOURCE_REQ
MCAST_JOIN_GROUP structure GROUP_REQ
MCAST_JOIN_SOURCE_GROUP structure GROUP_SOURCE_REQ
MCAST_LEAVE_GROUP structure GROUP_REQ
MCAST_LEAVE_SOURCE_GROUP structure GROUP_SOURCE_REQ
MCAST_UNBLOCK_SOURCE structure GROUP_SOURCE_REQ

 

Un ensemble d’options de socket est disponible pour la programmation multidiffusion qui prend en charge uniquement les adresses IPv6. Ces options de socket utilisent MLDv1 ou MLDv2. La version de MLD utilisée dépend de la version de Windows. MLDv2 est pris en charge sur Windows Vista et versions ultérieures. Les sockets Windows utilisent les options de socket suivantes :

Option Socket Type d’argument
IPV6_ADD_MEMBERSHIP structure ipv6_mreq
IPV6_DROP_MEMBERSHIP structure ipv6_mreq

 

Un ensemble d’options de socket est disponible pour la programmation multidiffusion qui prend en charge les adresses IPv4 uniquement. Ces options de socket utilisent IGMPv3 ou IGMPv2. La version d’IGMP utilisée dépend de la version de Windows. IGMPv3 est pris en charge sur Windows Vista et versions ultérieures. Les sockets Windows utilisent les options de socket suivantes :

Option Socket Type d’argument
IP_ADD_MEMBERSHIP structure ip_mreq
IP_ADD_SOURCE_MEMBERSHIP structure ip_mreq_source
IP_BLOCK_SOURCE structure ip_mreq_source
IP_DROP_MEMBERSHIP structure ip_mreq
IP_DROP_SOURCE_MEMBERSHIP structure ip_mreq_source
IP_UNBLOCK_SOURCE structure ip_mreq_source

 

Quand IGMPv3 est disponible, les options IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP et IP_UNBLOCK_SOURCE sont gérées plus efficacement, car le routeur peut gérer le filtrage. Quand seul IGMPv2 est disponible, l’hôte doit gérer le filtrage.

Il existe deux catégories dans lesquelles la plupart des applications sont susceptibles de tomber : toute source et source contrôlée.

  • Les applications n’importe quelle source acceptent toutes les sources par défaut, ce qui permet à des sources individuelles d’être désactivées en fonction des besoins. Un exemple d’application n’importe quelle source est une téléconférence vidéo qui permet à tous les destinataires de participer.
  • Les applications à source contrôlée limitent les sources à une liste donnée, comme une station de radio Internet, ou la diffusion d’un événement notable. Le processus d’utilisation des options de socket est légèrement différent pour chacune d’elles.

Sur Windows Vista et versions ultérieures, les étapes suivantes s’appliquent aux applications n’importe quelle source :

  • Utilisez MCAST_JOIN_GROUP pour rejoindre un groupe.
  • Utilisez MCAST_BLOCK_SOURCE pour désactiver une source donnée, si nécessaire.
  • Utilisez MCAST_UNBLOCK_SOURCE pour autoriser à nouveau une source bloquée, si nécessaire.
  • Utilisez MCAST_LEAVE_GROUP pour quitter le groupe.

Sur Windows Vista et versions ultérieures, les étapes suivantes s’appliquent aux applications à source contrôlée :

  • Utilisez MCAST_JOIN_SOURCE_GROUP pour joindre chaque paire groupe/source.
  • Utilisez MCAST_LEAVE_SOURCE_GROUP pour quitter chaque groupe/source, ou utilisez MCAST_LEAVE_GROUP pour quitter toutes les sources, si la même adresse de groupe est utilisée par toutes les sources.

Les étapes suivantes s’appliquent aux applications n’importe quelle source :

  • Utilisez IP_ADD_MEMBERSHIP pour rejoindre un groupe (IPV6_ADD_MEMBERSHIP pour IPv6).
  • Utilisez IP_BLOCK_SOURCE pour désactiver une source donnée, si nécessaire.
  • Utilisez IP_UNBLOCK_SOURCE pour autoriser à nouveau une source bloquée, si nécessaire.
  • Utilisez IP_DROP_MEMBERSHIP pour quitter le groupe (IPV6_DROP_MEMBERSHIP pour IPv6).

Les étapes suivantes s’appliquent aux applications à source contrôlée :

  • Utilisez IP_ADD_SOURCE_MEMBERSHIP pour joindre chaque paire groupe/source.
  • Utilisez IP_DROP_SOURCE_MEMBERSHIP pour quitter chaque groupe/source, ou utilisez IP_DROP_MEMBERSHIP pour quitter toutes les sources, si la même adresse de groupe est utilisée par toutes les sources.

L’ordre dans lequel ces options de socket sont définies a des règles associées. Pour plus d’informations et de résolution des problèmes sur les options de socket multidiffusion, consultez Comportement de l’option de socket multidiffusion.