Multicast

Multicast (o difusión selectiva) es un método de transmisión de datos en redes informáticas en el que un equipo emisor envía un único flujo de información simultáneamente a un grupo específico de receptores interesados, en lugar de enviarlo a todos los dispositivos de la red o realizar múltiples envíos individuales.

A diferencia del Broadcast (que envía tráfico a toda la red obligando a todos los equipos a procesarlo) y del Unicast (que establece conexiones punto a punto uno a uno), el tráfico Multicast es mucho más eficiente: el emisor solo genera un paquete y son los propios switches y routers los encargados de replicarlo únicamente hacia los segmentos de red donde existen hosts suscritos.

¿Cómo funciona el tráfico Multicast?

Para que la comunicación Multicast funcione correctamente, entran en juego tres elementos clave:

  • Direccionamiento específico: Se utilizan direcciones IP reservadas a las que se "asocian" los dispositivos interesados en recibir los datos.
  • Suscripción de hosts (IGMP/MLD): Los equipos finales utilizan protocolos como IGMP (en IPv4) o MLD (en IPv6) para avisar al router local de que desean unirse o salir de un grupo de multicast.
  • Enrutamiento inteligente (PIM): Los routers utilizan protocolos de enrutamiento como PIM para construir árboles de distribución y reenviar el tráfico solo por las interfaces necesarias.

Comparativa de tipos de transmisión

Tipo de Transmisión Emisor a... Receptores Eficiencia de Red
Unicast Un receptor (1 a 1) Solo el destino especificado Baja si hay muchos receptores repetidos
Broadcast Todos (1 a Todos) Toda la red local obligatoriamente Muy baja (genera congestión)
Multicast Un grupo (1 a Muchos) Solo los hosts suscritos al grupo Alta (optimiza ancho de banda y CPU)

Direccionamiento Multicast en IPv4 e IPv6

Protocolo Rango de Direcciones reservado Notas / Uso principal
IPv4 224.0.0.0 a 239.255.255.255 (Clase D) Requiere IGMP para la gestión de grupos.
IPv6 ff00::/8 (Comienzan por ff..) Sustituye por completo al broadcast y utiliza MLD.

Características principales:

  • Envía un único paquete desde el origen optimizando el ancho de banda.
  • Los routers replican el paquete solo en las ramas de la red donde haya suscriptores.
  • Ahorra ciclos de procesamiento (CPU) en los equipos que no forman parte del grupo.
  • Suele utilizar el protocolo UDP en la capa de transporte (ideal para streaming en tiempo real).
  • Es fundamental en IPv6 para tareas internas del sistema como el descubrimiento de vecinos (NDP).

Analogía: Piensa en un canal de televisión o una emisora de radio. El emisor emite una sola señal al aire, y únicamente quienes sintonizan ese canal específico reciben la información, sin molestar a los vecinos que tienen la tele apagada.

Actividad práctica

Objetivo:

Observar el comportamiento del tráfico Multicast local y analizar los grupos a los que está suscrito un equipo.

Tareas:

  1. Abre una terminal o símbolo del sistema en tu equipo.
  2. Ejecuta el comando netsh interface ip show joins (en Windows) o ip maddr / netstat -g (en Linux) para ver a qué grupos de multicast está unido tu adaptador de red.
  3. Apunta al menos dos direcciones IP del rango de multicast (224.0.0.0/4 en IPv4 o ff00::/8 en IPv6) que aparezcan en la lista.
  4. Investiga qué servicio del sistema operativo utiliza una de las direcciones encontradas (por ejemplo, la dirección 224.0.0.1 o 224.0.0.251).
  5. (Opcional) Abre Wireshark, aplica el filtro de visualización ip.dst >= 224.0.0.0 and ip.dst <= 239.255.255.255 y comprueba qué protocolos envían paquetes multicast en tu red.

Preguntas de reflexión:

  1. ¿Qué problema de rendimiento soluciona Multicast en comparación con Unicast cuando se emite un evento en directo a 1.000 usuarios?
  2. ¿Qué diferencia principal existe entre Broadcast y Multicast en el impacto sobre la CPU de un host no interesado?
  3. ¿Qué protocolo utilizan los equipos en IPv4 para informarle al router de que quieren unirse a un grupo Multicast?
  4. ¿En qué rango de direcciones IP se encuentran reservadas las direcciones Multicast en IPv4?
  5. ¿Por qué es común utilizar el protocolo UDP en lugar de TCP para las transmisiones Multicast?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué problema de rendimiento soluciona Multicast en comparación con Unicast cuando se emite un evento en directo a 1.000 usuarios?

Si usáramos Unicast, el servidor emisor tendría que enviar 1.000 flujos de datos individuales e idénticos, lo que colapsaría el ancho de banda de la red y la CPU del servidor. Con Multicast, el servidor envía un único flujo de datos a una dirección de grupo y los switches/routers de la red se encargan de duplicarlo solo en los puntos donde sea necesario llegar a esos 1.000 usuarios.


2. ¿Qué diferencia principal existe entre Broadcast y Multicast en el impacto sobre la CPU de un host no interesado?

En Broadcast, la tarjeta de red de todos los equipos recibe la trama y obliga a la CPU del sistema operativo a procesar el paquete para comprobar su contenido, aunque no sea para él. En Multicast, la tarjeta de red del host filtra a nivel de hardware el tráfico si el equipo no se ha suscrito a esa dirección de grupo, descartando el paquete de inmediato sin interrumpir a la CPU.


3. ¿Qué protocolo utilizan los equipos en IPv4 para informarle al router de que quieren unirse a un grupo Multicast?

Utilizan el protocolo IGMP (Internet Group Management Protocol). Mediante mensajes IGMP (como Membership Report o Leave Group), el host le comunica al router más cercano a qué grupos de multicast desea unirse o de cuáles quiere retirarse.


4. ¿En qué rango de direcciones IP se encuentran reservadas las direcciones Multicast en IPv4?

Pertenecen a la antigua Clase D, que abarca el rango desde 224.0.0.0 hasta 239.255.255.255. Por ejemplo, el rango 224.0.0.0/24 se reserva para protocolos de red locales (como mDNS o la comunicación entre routers).


5. ¿Por qué es común utilizar el protocolo UDP en lugar de TCP para las transmisiones Multicast?

El protocolo TCP requiere establecer una conexión punto a punto (orientada a conexión) con confirmación de entrega (ACKs) y retransmisión de paquetes perdidos. Hacer esto con cientos o miles de receptores simultáneos causaría una "tormenta de confirmaciones" insostenible. Por eso se utiliza UDP, que no orienta la transmisión a conexión y minimiza la sobrecarga de la red, aceptando pequeñas pérdidas de datos a cambio de fluidez en tiempo real.