Protocolo de manejo de grupos de Internet (IGMP)
El Protocolo de manejo de grupos de Internet (IGMP) es un protocolo de comunicaciones utilizado por hosts y enrutadores adyacentes en redes IPv4 para establecer membresías de grupos de multidifusión. IGMP es una parte integral de la multidifusión IP y permite que la red dirija las transmisiones de multidifusión solo a los hosts que las hayan solicitado.
IGMP se puede usar para aplicaciones de red de uno a muchos, como la transmisión de video y juegos en línea, y permite un uso más eficiente de los recursos cuando admite este tipo de aplicaciones.
IGMP se utiliza en redes IPv4. La gestión de multidifusión en redes IPv6 está a cargo de Multicast Listener Discovery (MLD), que forma parte de ICMPv6 en contraste con la encapsulación de IP simple de IGMP.
Arquitectura
Una red diseñada para entregar un servicio de multidifusión usando IGMP podría usar esta arquitectura básica:
IGMP opera entre un host y un enrutador de multidifusión local. Los conmutadores que cuentan con indagación de IGMP también obtienen información útil al observar estas transacciones de IGMP. La multidifusión independiente del protocolo (PIM) se usa luego entre los enrutadores de multidifusión locales y remotos para dirigir el tráfico de multidifusión desde los hosts que envían multidifusión a los hosts que se han registrado a través de IGMP para recibirlos.
IGMP opera en la capa de red (capa 3), al igual que otros protocolos de administración de red como ICMP.
El protocolo IGMP se implementa en hosts y dentro de enrutadores. Un host solicita la pertenencia a un grupo a través de su enrutador local, mientras que un enrutador escucha estas solicitudes y periódicamente envía consultas de suscripción. Se elige un solo enrutador por subred para realizar esta función de consulta. Algunos conmutadores multicapa incluyen una capacidad de consulta de IGMP para permitir que sus funciones de indagación de IGMP funcionen en ausencia de un enrutador compatible con IGMP en la red de capa 2.
IGMP es vulnerable a algunos ataques, y los cortafuegos comúnmente permiten que el usuario lo deshabilite si no es necesario.
Versiones
Hay tres versiones de IGMP. IGMPv1 está definido por RFC 1112, IGMPv2 está definido por RFC 2236 e IGMPv3 fue definido inicialmente por RFC 3376. RFC 4604 actualiza tanto IGMPv3 como MLDv2 para admitir mejor la multidifusión específica de la fuente. IGMPv2 mejora IGMPv1 al agregar la capacidad de que un host señale el deseo de abandonar un grupo de multidifusión. IGMPv3 mejora IGMPv2 al admitir multidifusión de fuente específica e introduce la agregación de informes de membresía.
Estas versiones son compatibles con versiones anteriores. Un enrutador compatible con IGMPv3 puede admitir clientes que ejecutan IGMPv1, IGMPv2 e IGMPv3. IGMPv1 utiliza un modelo de consulta-respuesta. Las consultas se envían al 224.0.0.1. Los informes de membresía se envían a la dirección de multidifusión del grupo. IGMPv2 acelera el proceso de abandono de un grupo y ajusta otros tiempos de espera. Los mensajes de abandono del grupo se envían a 224.0.0.2. Se introduce una consulta específica del grupo. Las consultas específicas del grupo se envían a la dirección de multidifusión del grupo. Se presenta un medio para que los enrutadores seleccionen un interrogador IGMP para la red. IGMPv3 introduce la capacidad de multidifusión específica de la fuente. Los informes de membresía se envían a 224.0.0.22.
Mensajes
Hay varios tipos de mensajes IGMP:Consultas generales de membresíaEnviado por enrutadores de multidifusión para determinar qué direcciones de multidifusión son de interés para los sistemas conectados a las redes a las que sirven para actualizar el estado de membresía del grupo para todos los sistemas en su red.Consultas de membresía específicas del grupoSe utiliza para determinar el estado de recepción de una dirección de multidifusión en particularConsultas específicas de grupo y fuentePermita que el enrutador determine si algún sistema desea recibir mensajes enviados a un grupo de multidifusión desde una dirección de origen especificada en una lista de direcciones de unidifusión.Informes de membresíaEnviado por receptores de multidifusión en respuesta a una consulta de membresía o de forma asíncrona cuando se registra por primera vez en un grupo de multidifusiónDejar mensajes de grupoEnviado por receptores de multidifusión cuando las transmisiones de multidifusión especificadas ya no son necesarias en el receptor
Los mensajes IGMP se transportan en paquetes IP desnudos con el protocolo IP número 2. Al igual que el Protocolo de mensajes de control de Internet, no se usa una capa de transporte con la mensajería IGMP.
Mensajes IGMPv2
compensación de bits | 0–7 | 8–15 | 16–31 |
---|---|---|---|
0 | Escribe | Tiempo máximo de respiración | Suma de verificación |
32 | Dirección de grupo |
Dónde:EscribeIndica el tipo de mensaje de la siguiente manera
Mensaje | Escriba el valor |
---|---|
Consulta de membresía | 0x11 |
Informe de membresía IGMPv1 | 0x12 |
Informe de membresía IGMPv2 | 0x16 |
Informe de membresía IGMPv3 | 0x22 |
Abandonar grupo | 0x17 |
Tiempo máximo de respiraciónEspecifica la capacidad de respuesta requerida de las respuestas a una consulta de membresía (0x11). Este campo es significativo solo en Consulta de membresía; en otros mensajes se establece en 0 y el receptor lo ignora. El campo especifica el tiempo en unidades de 0,1 segundos (un valor de campo de 10 especifica 1 segundo). Los valores más grandes reducen la ráfaga de tráfico IGMP y los valores más pequeños mejoran la capacidad de respuesta del protocolo cuando el último host abandona un grupo.Dirección de grupoEsta es la dirección de multidifusión que se consulta al enviar una consulta específica de grupo o específica de grupo y fuente. El campo se pone a cero al enviar una Consulta General.
El mensaje se envía utilizando las siguientes direcciones IP de destino:
Tipo de mensaje | Dirección de multidifusión |
---|---|
Consulta general | Todos los anfitriones (224.0.0.1) |
Consulta específica del grupo | El grupo consultado |
Informe de membresía (todas las versiones de IGMP) | El grupo informado |
Abandonar grupo | Todos los enrutadores (224.0.0.2) |
Consulta de membresía IGMPv3
compensación de bits | 0-3 | 4 | 5–7 | 8–15 | 16–31 |
---|---|---|---|---|---|
0 | Tipo = 0x11 | Código máximo de resp. | Suma de verificación | ||
32 | Dirección de grupo | ||||
64 | Res. | S | QRV | QQIC | Número de fuentes (N) |
96 | Dirección de origen [1] | ||||
128 | Dirección de origen [2] | ||||
... | |||||
Dirección de origen [N] |
Dónde:Código máximo de resp.Este campo especifica el tiempo máximo (en incrementos de 1/10 de segundo) permitido antes de enviar un informe de respuesta. Si el número está por debajo de 128, el valor se usa directamente. Si el valor es 128 o más, se interpreta como exponente y mantisa.Suma de verificaciónEste es el complemento a uno de 16 bits de la suma del complemento a uno del mensaje IGMP completo.Dirección de grupoEsta es la dirección de multidifusión que se consulta al enviar una consulta específica de grupo o específica de grupo y fuente. El campo se pone a cero al enviar una Consulta General.Res.Este campo está reservado. Debe ponerse a cero cuando se envía e ignorarse cuando se recibe.Indicador S (suprimir procesamiento del lado del enrutador)Cuando se establece este indicador, indica a los enrutadores receptores que deben suprimir las actualizaciones normales del temporizador.QRV (Variable de robustez de Querier)Si es distinto de cero, contiene el valor de la variable de robustez utilizada por el remitente de la consulta. Los enrutadores deben actualizar su variable de robustez para que coincida con la consulta recibida más recientemente, a menos que el valor sea cero.QQIC (código de intervalo de consulta del interrogador)Este código se utiliza para especificar el valor del Intervalo de consulta (en segundos) utilizado por el interrogador. Si el número está por debajo de 128, el valor se usa directamente. Si el valor es 128 o más, se interpreta como exponente y mantisa.Número de fuentes (N)Este campo especifica el número de direcciones de origen presentes en la consulta. Para consultas generales y específicas de grupo, este valor es cero. Para consultas específicas de grupo y origen, este valor no es cero, pero está limitado por la MTU de la red.Dirección de origen [i]Los campos Dirección de origen [i] son un vector de n direcciones de unidifusión IP, donde n es el valor del campo Número de fuentes (N).
Implementaciones
Los sistemas operativos FreeBSD, Linux y Windows admiten IGMP en el lado del host.
Contenido relacionado
Protocolo de transferencia de noticias en red (NNTP)
Grupo de Trabajo de Ingeniería de Internet (IETF)
Televisión por Internet