Protocolo de Gestión de Grupos de Internet (IGMP)

IGMP es un protocolo estándar con número de STD 5 que también incluye IP e ICMP. Su status es recomendado y se describe en el RFC 1112.

Nota: Se requieren IP e ICMP.

IGMP es vagamente análogo a ICMP y ocupa el mismo lugar en la pila de protocolos IP.

Mensajes IGMP

Los mensajes ICMP se envían en datagramas IP. La cabecera IP tendrá siempre un número de protocolo de 2, indicando IGMP y un tipo de servicio de cero (rutina). El campo de datos IP contendrá mensaje IGMP de 8 bytes con el formato mostrado en la figura que se muestra a continuación.

Figura: Formato de Mensaje IGMP

donde:

Vers
Versión IP de 4 bits. Siempre 1.
Tipo
Especifica una recuperación o un informe.
1
Especifica una recuperación que envía un router multicast.
2
Especifica un informe que envía un host.
Checksum
Una suma de comprobación de 16 bits calculada como para ICMP.
Dirección de clase D
Esta es cero para una petición y es una dirección de grupo multicast válida para un informe.

Operación IGMP

Los sistemas que participan en IGMP son de dos tipos: hosts y routers multicast.

Como se describió en Multicasting, con objeto de recibir datagramas multicast, un host debe unirse a un grupo de host. Cuando un host es multi-homed, puede unirse a cualquier grupo en uno o más de sus interfaces (subredes conectadas). Los mensajes multicast que el host recibe del mismo grupo de dos subredes diferentes pueden ser diferentes. Por ejemplo 244.0.0.1 es el grupo para "todos los hosts de esta subred", así que los mensajes recibidos en una subred siempre serán distintos para este grupo de esos en otros. Pueden escucharse múltiples procesos en un único host para mensajes por un grupo multicast de una subred. Si se da el caso, el host une el grupo sólo una vez y mantiene una pista internamente de qué procesos están interesados en ese grupo.

Para unir un grupo, el host envía un informe por una interfaz. El informe se direcciona al grupo multicast de interés. Los routers multicast de la misma subred reciben el informe y ponen una bandera indicando que al menos un host de esa subred es un miembro de ese grupo. Ningún host tiene que unir a todo el grupo de hosts (224.0.0.1); la agrupación es automática. Los routers multicast tienen que escuchar todas las direcciones multicast (esto es, todos los grupos) para detectar tales informes. Las alternativas podrían ser que routers multicast usaran broadcast para los informes o para configurar hosts con direcciones unicast.

Los routers multicast regularmente, pero infrecuentemente (el RFC 1112 menciona intervalos de un minuto), mandan una pregunta a las direcciones multicast de todos los hosts. Todos los host que todavía deseen ser miembro de uno o más grupos responderán una vez para cada grupo de interés (pero nunca a todo el grupo de hosts, dado que la agrupación es automática). Cada respuesta se envía después de un retardo aleatorio para asegurar que IGMP no causa despliegue violento de tráfico en la subred. Puesto que los routers no se preocupan de cómo muchos hosts son miembros de un grupo y dado que todos los hosts que son miembros de ese grupo pueden oir la respuesta de los otros, cualquier host que oiga otra demanda agrupación de un grupo cancelará cualquier respuesta que se debe enviar para evitar malgastar recursos. Si ningún host demanda agrupación de un grupo con un intervalo especifico, el router multicast decide que ningún host es un miembro del grupo. Cuando un host o un router multicast recibe un datagrama multicast, su acción depende del valor TTL y de la dirección IP de destino.

0
Un datagrama enviado con un TTL a cero es privado para el host origen.
1
Un datagrama con un TTL de uno alcanza a todos los hosts de la subred quesean miembros del grupo. pero distintos datagramas unicast, no informan esto con un mensaje ICMP de tiempo excedido. Expiration de un datagrama multicast es una ocurrencia normal.
2+
Todos los hosts que sean miembros del grupo y todos los routers multicast reciben el datagrama. La acción de los routers depende de la dirección de grupo multicast.
224.0.0.0 - 224.0.0.255
Este rango se propone sólo para aplicaciones multicasting de un salto. Los routers multicast no enviarán datagramas con dirección IP de destino en este rango.

Puede parecer en un principio como si un host no necesitara molestar informando a su agrupación de un grupo en este rango ya que los routers multicast no mandarán datagramas de otras subredes. Sin embargo, el informe también comunica a otros hosts de la subred que el reporting host es un miembro del grupo. Al único grupo que nunca se le informa es el 224.0.0.1 porque todos los hosts saben que el grupo consiste en todos los hosts de esa subred.

otro
Los datagramas con otros valores para la dirección de destino los envía el router multicast como normales: decrementa el valor de TTL al menos un segundo como siempre.

Esto permite que un host localice el servidor más cercano que se escucha en una dirección multicast usando lo que se llama un buscador en anillo expandido. El host manda un datagrama con valor de TTL 1 (misma subred) y espera por respuesta. Si no se recibe nada, intenta un valor de TTL de 2, luego de 3, y así sucesivamente. A la larga encontrará el servidor más cercano,

Traceroute  |  Tabla de Contenidos  |  Protocolo ARP