Compartir a través de


MLD e IGMP con Windows Sockets

Windows Sockets habilita la detección del agente de escucha de multidifusión (MLD) en IPv6 y el Protocolo de administración de grupos de Internet (IGMP) en IPv4 para aplicaciones de multidifusión mediante el uso de opciones de socket e ICTLs. En esta página se describen las opciones de socket que habilitan la programación de multidifusión y se describe cómo se usan. Para ver las definiciones de cada opción de socket, consulte la página Opciones de socket .

Para obtener información sobre el uso de IOCTL para la programación de multidifusión, vea Programación de multidifusión basada en estado final más adelante en esta sección.

En Windows Vista y versiones posteriores, hay disponible un conjunto de opciones de socket para la programación de multidifusión que admite direcciones IPv6 e IPv4. Estas opciones de socket son independientes de IP y se pueden usar en IPv6 e IPv4. En IPv6, estas opciones de socket usan MLDv2. En IPv4, estas opciones de socket usan IGMPv3. Estas opciones independientes de IP son las opciones de socket preferidas para la programación de multidifusión en Windows Vista y versiones posteriores. Windows Sockets usa las siguientes opciones de socket:

Opción de socket Tipo de argumento
MCAST_BLOCK_SOURCE estructura de GROUP_SOURCE_REQ
MCAST_JOIN_GROUP estructura de GROUP_REQ
MCAST_JOIN_SOURCE_GROUP estructura de GROUP_SOURCE_REQ
MCAST_LEAVE_GROUP estructura de GROUP_REQ
MCAST_LEAVE_SOURCE_GROUP estructura de GROUP_SOURCE_REQ
MCAST_UNBLOCK_SOURCE estructura de GROUP_SOURCE_REQ

 

Hay disponible un conjunto de opciones de socket para la programación de multidifusión que admite solo direcciones IPv6. Estas opciones de socket usan MLDv1 o MLDv2. La versión de MLD usada depende de la versión de Windows. MLDv2 es compatible con Windows Vista y versiones posteriores. Windows Sockets usa las siguientes opciones de socket:

Opción de socket Tipo de argumento
IPV6_ADD_MEMBERSHIP estructura de ipv6_mreq
IPV6_DROP_MEMBERSHIP estructura de ipv6_mreq

 

Hay disponible un conjunto de opciones de socket para la programación de multidifusión que admite solo direcciones IPv4. Estas opciones de socket usan IGMPv3 o IGMPv2. La versión de IGMP usada depende de la versión de Windows. IGMPv3 es compatible con Windows Vista y versiones posteriores. Windows Sockets usa las siguientes opciones de socket:

Opción de socket Tipo de argumento
IP_ADD_MEMBERSHIP estructura de ip_mreq
IP_ADD_SOURCE_MEMBERSHIP estructura de ip_mreq_source
IP_BLOCK_SOURCE estructura de ip_mreq_source
IP_DROP_MEMBERSHIP estructura de ip_mreq
IP_DROP_SOURCE_MEMBERSHIP estructura de ip_mreq_source
IP_UNBLOCK_SOURCE estructura de ip_mreq_source

 

Cuando IGMPv3 está disponible, las opciones de IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP y IP_UNBLOCK_SOURCE se controlan de forma más eficaz, ya que el enrutador puede controlar el filtrado. Cuando solo IGMPv2 está disponible, el host debe controlar el filtrado.

Hay dos categorías en las que es probable que la mayoría de las aplicaciones se encuentren: cualquier origen y origen controlado.

  • Las aplicaciones de origen aceptan todos los orígenes de forma predeterminada, lo que permite desactivar los orígenes individuales según sea necesario. Un ejemplo de una aplicación de cualquier origen es una llamada de videoconferencia que permite a todos los destinatarios participar.
  • Las aplicaciones de origen controlado limitan los orígenes a una lista determinada, como una estación de radio de Internet o la difusión de un evento notable. El proceso de uso de opciones de socket es ligeramente diferente para cada una.

En Windows Vista y versiones posteriores, se aplican los pasos siguientes para las aplicaciones de origen:

  • Use MCAST_JOIN_GROUP para unirse a un grupo.
  • Use MCAST_BLOCK_SOURCE para desactivar un origen determinado, si es necesario.
  • Use MCAST_UNBLOCK_SOURCE para volver a permitir un origen bloqueado, si es necesario.
  • Use MCAST_LEAVE_GROUP para salir del grupo.

En Windows Vista y versiones posteriores, se aplican los pasos siguientes para las aplicaciones de origen controlada:

  • Use MCAST_JOIN_SOURCE_GROUP para unir cada par de grupo o origen.
  • Use MCAST_LEAVE_SOURCE_GROUP para dejar cada grupo o origen, o use MCAST_LEAVE_GROUP para dejar todos los orígenes, si todos los orígenes usan la misma dirección de grupo.

Los pasos siguientes se aplican a las aplicaciones de cualquier origen:

  • Use IP_ADD_MEMBERSHIP para unirse a un grupo (IPV6_ADD_MEMBERSHIP para IPv6).
  • Use IP_BLOCK_SOURCE para desactivar un origen determinado, si es necesario.
  • Use IP_UNBLOCK_SOURCE para volver a permitir un origen bloqueado, si es necesario.
  • Use IP_DROP_MEMBERSHIP para dejar el grupo (IPV6_DROP_MEMBERSHIP para IPv6).

Los pasos siguientes se aplican a las aplicaciones de origen controlada:

  • Use IP_ADD_SOURCE_MEMBERSHIP para unir cada par de grupo o origen.
  • Use IP_DROP_SOURCE_MEMBERSHIP para dejar cada grupo o origen, o use IP_DROP_MEMBERSHIP para dejar todos los orígenes, si todos los orígenes usan la misma dirección de grupo.

El orden en que se establecen estas opciones de socket tiene reglas asociadas. Para obtener información y solucionar problemas sobre las opciones de socket de multidifusión, consulte Comportamiento de la opción de socket de multidifusión.