Tabla de contenidos
Traceroute
IGMP es un protocolo estándar con un número STD de 5 que incluye además a IP(ver IP("Internet Protocol")) e ICMP (ver ICMP("Internet Control Message Protocol")). Su status es recomendado y el RFC 1112 lo describe.
Note: IP e ICMP son requeridos.
IGMP se considera más bien como una extensión de ICMP y ocupa el mismo lugar en la pila de protocolos IP. (3)
Ver Multicasting para una introducción al multicasting.
Los mensajes ICMP se envían en datagramas IP. La cabecera IP siempre tendrá un número de protocolo igual a 2, indicando IGMP y un tipo de servicio cero(rutina). El campo de datos IP contendrá el mensaje IGMP de ocho bytes mostrado en Figura - Formato del mensaje ICMP.
Figura: Formato del mensaje ICMP
Donde:
Los sistemas que participan en IGMP se clasifican en dos tipos: host y "routers" multicast.
Como se describió en Multicasting, con el fin de recibir datagramas de multicast, un host se debe unir a un grupo. Cuando un host es "multi-homed"(multipuerto), puede unirse a cualquier grupo por una o más de sus interfaces(redes a las que está conectado). Los mensajes multicast que recibe el host del mismo grupo en dos subredes distintas pueden ser distintos también. Por ejemplo, 244.0.0.1 es el grupo para "todos los host de esta subred", por lo que los mensajes recibidos en una subred siempre serán diferentes para este grupo que para los de otra subred. Puede haber múltiples procesos en un host a la escucha de mensajes para un grupo de multicast. Si es este el caso, los host se unen sólo una vez al grupo, y llevan la cuenta internamente de qué procesos están interesados en ese grupo.
Para unirse a un grupo, el host envía un informe acerca de una interfaz. El informe se dirige al grupo multicast interesado. Los "routers" multicast de la misma red reciben el informe y activan un flag para indicar que al menos un host de esa red es miembro de ese grupo. Todo host pertenece al grupo 224.0.0.1 de forma automática. Los "routers" multicast tienen que escuchar a todas las direcciones de multicast(todos los grupos) con el fin de detectar tales informes. Las alternativas serían el uso del broadcast para los informes o para configurar host con direcciones unicast para "routers" multicast.
Los "routers" multicast envían regularmente(el RFC 1112 menciona intervalos de 1 minuto) una consulta a la dirección de multicast "todos los hosts". Cada host que aún desee ser miembro de uno o más grupo replica una vez por cada grupo en el que esté interesado(nunca al grupo "todos los hosts", al que pertenece de modo automático). Cada respuesta se envía tras un intervalo de tiempo aleatorio para evitar aglomeraciones en el tráfico. Como a los "routers" no les importa cuántos hosts son miembro de un grupo y como todos los miembros de ese grupo pueden oír las respuestas de cada uno de los demás hosts, cualquier host que escuche a otro host proclamar su pertenencia a mismo grupo cancelará su respuesta para ahorrar recursos. Si ningún host responde dentro de un intervalo de tiempo dado, el "router" multicast decide que ningún host pertenece a ese 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.