1 / 19

IGMP

IGMP. “Host Extensions for IP Multicasting”, RFC 1112, Agosto 1989. Define: Modificaciones en los hosts. Niveles de conformance. IGMPv1. “Internet Group Management Protocol, Version 2”, RFC 2236, Noviembre 1997. Agrega: Mecanismos para mejorar la eficiencia:

brady-logan
Download Presentation

IGMP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IGMP • “Host Extensions for IP Multicasting”, RFC 1112, Agosto 1989. Define: • Modificaciones en los hosts. • Niveles de conformance. • IGMPv1. • “Internet Group Management Protocol, Version 2”, RFC 2236, Noviembre 1997. Agrega: • Mecanismos para mejorar la eficiencia: • Control de la información de control emitida por los hosts. • Reacción más rápida de un router al quedar sin hosts interesados en recibir info para un grupo. • Mecanismo de elección de querier en redes multiacceso. • “Internet Group Management Protocol, Version 3”, draft-ietf-idmr-igmp-v3-00.txt, Noviembre 1997. Agrega: • Capacidad para que las aplicaciones incluyan o excluyan S de los grupos. • Un API correspondiente. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  2. NIVELES SUPERIORES (TCP,ETC) INTERFACE DE SERVICIO IP ICMP IGMP MODULO IP INTERFACE DE SERVICIO MODULO DE RED LOCAL ARP MODULO DE RED LOCAL Multicast: requerimientos en los hosts • Tipos de compatibilidad de los hosts: • Conformance a nivel 0: no soporta multicast • Conformance a nivel 1: soporta envío multicast • Conformance a nivel 2: soporta envío y recepción multicast • Extensiones necesarias • Interface de servicio IP • Módulo IP • Interface servicio módulo de red local • Módulo de red local IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  3. Multicast:requerimientos en los hosts • Extensiones para envío • Interface del servicio IP • Se utiliza el “send” normal con dirección multicast (niveles 1 y 2) • Debe permitir especificar TTL (niveles 1 y 2) • Para hosts multihomed debe poder especificarse la interface (niveles 1 y 2) • Debe poder especificarse si se desea loopback de multicasts (en caso de que el host sea miembro de un grupo al que envía) (sólo nivel 2) • Módulo IP • Debe reconocer direcciones multicast • En función de lo especificado vía interface, no realizar loopbacks • Interface del Módulo de red: sin cambios • Módulo de red • Mapeo de direcciones multicast IP a direcciones multicast de la red (en caso de Ethernet, dir Eth multicast con los 23 últimos bits iguales a dirección IP) Algoritmo de envío no multicast if dir_IP_destino es local enviar local a dir_IP_destino else enviar local a RouterTo(dir_IP_destin0) Algoritmo de envío multicast if (dir_IP_destino es local o dir_IP_destino es multicast) enviar local a dir_IP_destino else enviar local a RouterTo(dir_IP_destino) IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  4. Multicast: requerimientos en los hosts • Extensiones para recepción • Interface del servicio IP • Uso de receive normal • JoinHostGrp(group_addr, interf) y LeaveHostGrp(group_addr, interf) • Módulo IP • Lista de grupos por interface, cuenta de miembros de cada grupo • Notificación al Módulo de red de altas y bajas de grupos • Implementación de IGMP • Interface del Módulo de red • JoinLocalGroup(IP_group_addr) y LeaveLocalGroup(IP_group_addr) • Módulo de red • Filtro de datagrams (no pasa a nivel superior lo que envíz); el loopback se realiza a niveles IP o superior IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  5. VERS (4) TIPO (4) NO USADO (8) CHECKSUM (16) DIRECCION DE GRUPO (0 EN QUERY) (32) IGMPv1 • IGMP (Internet Group Managment Protocol, RFC 1112, Ago 1989): Protocolo utilizado para propagar información de pertenencia a grupos entre hosts y routers y routers entre sí • Encapsulado en IP (protocolo = 2), pero parte integral de IP • Formato de frame: VERS: Versión del protocolo: en este caso, 1. TIPO: query (1) enviada por un router response (0) enviada por un host CHECKSUM: cubre todo el IGMP. Calculado como el de IP DIR. DE GRUPO: Dirección del grupo multicast. Cero en queries IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  6. IGMPv1: operación • Todos los hosts pertenecen al grupo 224.0.0.1; los queries IGMP se envían con esta dirección; los reports a la dirección de grupo anunciada. • Un host que se incorpora a un grupo, lo anuncia inmediatamente (report) • Los routers polean periódicamente (1 minuto) a los hosts (query) • Un host que recibe un query • Para cada grupo al que pertenece, genera un tiempo al azar (promedio 10 seg) • Cuando el tiempo se cumple, envía el report correspondiente al grupo • Si antes que se cumpla el tiempo recibe un report de otro host para el grupo, no envía el suyo. • Un host no anuncia su pertenencia al grupo 224.0.0.1 • Si un host recibe un query y tiene un timer corriendo para algún grupo, no lo resetea • Los routers sólo necesitan conocer los grupos que están activos en la red, pero no qué hosts pertenecen a cada grupo • Si luego de varios queries un router no recibe response para un grupo, lo elimina de su tabla • Los rotures intercambian información de grupos entre sí (pueden usar IGMP) IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  7. E: join_group A: enviar report A: arrancar timer_rep E: leave_group Non member Idle member E: leave_group A: parar timer_rep E: recepción query A: arrancar timer_rep Delaying member E: recepción report A: cancelar timer_rep E: timeout timer_rep A: enviar report IGMPv1- Diagrama de estados (host) Estados - Non member:Estado inicial. Host no miembro. - Delaying member:Host miembro del grupo. Tiene un timer para envío de report - Idle member: Host miembro del grupo. Sin timer corriendo para report. • Un host mantiene una tabla con una entrada por grupo Timers - timer_rep: timer para envío de report. Eventos join group: el host comienza a escuchar en la dirección de grupo (sólo para el primer proceso) leave group:el host abandona el grupo (no queda ningún proceso en el grupo) recepción_report: de otro host, para el mismo grupo recepción_query: query del router (general para cualquier grupo) timeout timer_rep: para el grupo Acciones enviar report: envío de report IGMP con dirección de grupo (a dirección del grupo). arrancar timer_rep: con un número al azar, para el grupo en al interfaz. cancelar timer_rep. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  8. Destinos de PDUS Tipo Dirección multicast Query general ALL-SYSTEMS (01) Query específico a grupo específico Report a grupo específico Leave ALL-ROUTERS(02) Tipo (8) MRT (8) Checksum (16) Dirección de grupo (32) IGMPv2 Frame IGMPv2 • Encapsulado en IP, tipo de protocolo 2 • Enviados con TTL=1 • Enviados con opción Router Alert • Formato: Tipo: Incluye versión y tipo de IGMPv1 0X11: Query 0X12: Report v1 0X16: Report v2 0X17: Leave Group MRT: Tiempo máximo de respuesta para que los hosts respondan con report Utilizado sólo en Queries Checksum: igual que v1 Dirección de grupo: Grupo al que va dirigido el mensaje IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  9. 10010100 00000100 Valor opción (16) Opción Route Alert • Opción IP definida en “IP Route Alert Option”, RFC 2113, febrero 1997. • Indica a un router examinar un datagram con más detalle. • El router podrá ejecutar sobre el datagram, funcionalidad adicional a la normal. • Permite incorporar nueva funcionalidad de ruteo: • Gradualmente. • Sin cambios en los protocolos. • Formato: Copied flag: 1 (todos los fragmentos) Option class: 00 (control) Núm. Opción: 20 (decimal) Longitud: 4 Valor opción: 0 Router debe examinar el datagram 1 a 65535 Reservado IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  10. IGMPv2: Operación de hosts • Inicialmente, al unirse a un grupo • emisión de report no solicitado si es primer miembro del grupo (varios). • Recepción de un Query (general) • planificar envío de report en tiempo al azar para cada grupo (0,MRT) • Recepción de un Query específico • planificar envío de report para el grupo en tiempo al azar (0, MRT). • Recepción de un report para un grupo • cancelar envío si hay report por enviar para el grupo • Al salir de un grupo • Si supone ser el último host en el grupo, enviar un leave IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  11. E: join_group A: enviar report A: arrancar timer_r A: flag = 1 E: leave_group A: envia leave (si flag = 1) E: leave_group A: parar timer_r A: enviar leave (si flag = 1) Non member Idle member E: recepción query A: arrancar timer_r Delaying member E: recepción report A: cancelar timer_r A: flag = 0 E: recepción query A: reset timer_r (si MRT < tiempo restante) E: timeout timer_r A: enviar report A: flag = 1 IGMPv2- Operación de hosts. Detalle Estados - Non member:Estado inicial. Host no miembro. - Delaying member:Host miembro del grupo. Tiene un timer para envío de report - Idle member: Host miembro del grupo. Sin timer corriendo para report. • Un host mantiene una tabla con una entrada por grupo Timers - timer_r: timer para envío de report p/el grupo, al recibir un query Acciones - enviar report: envío de report IGMP con dirección de grupo (a dirección del grupo). V1 o v2 según estado interfaz. - enviar leave: - flag=1 : si el host es el último que envió report p/el grupo. - flag=0 : si no lo es. - arrancar timer_r: con un número al azar, para el grupo en la interfaz.(0,MRT) o (0,URT). - reset timer_r: rearrancar timer con nuevo valor. (0,MRT) - cancelar timer_r . Eventos - join group: el host comienza a escuchar en la dirección de grupo (sólo para el primer proceso) - leave group:el host abandona el grupo (no queda ningún proceso en el grupo) - recepción_report: de otro host, para el mismo grupo (v1 o v2) - recepción_query: query del router general para cualquier grupo específico para un grupo - timeout: para el grupo IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  12. A: enviar gen-query A: arrancar timer gen-query E: timeout gen_query A: enviar gen_query A: arrancar timer gen_query Querier Estado inicial E: recepción query de router con menor dir. IP A: arrancar timer otro_querier_presente E: timeout otro_querier_presente A: enviar gen_query A: arrancar timer gen_query No Querier E: recepción query de router con menor dir. IP A: arrancar timer otro_querier_presente IGMPv2- Elección de Querier. Detalle Timers gen-query: indica cuándo transmitir el próximo query otro-querier-presente: indica cuando considerar que el querier anterior dejó de funcionar. Estados - Querier: El router transmite Queries en la red - No-Querier: No los transmite Eventos - timeout gen-query: vence tiempo de envío de query - recibir query de router <ip: se recibe un query de un router con prioridad para ser querier. - timeout otro_querier_presente:vence el tiempo para mantener la información de otro router actuando como querier Acciones - arrancar timer gen_query - arrancar timer otro_querier_presente - enviar gen-query (a dirección todos los sistemas, 224.0.0.1) IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  13. IGMPv2: Operación del router querier (no querier). • (Q) Vencimiento de timer para envío de Query general • Envío de Query • Arranque de timer • (Q/NQ) Recepción de un report para un grupo • Nueva entrada en tabla si el grupo no registrado • Arranque de timer para invalidar entrada (si no recibe reports) • (Q) Recepción de Leave Group • Envío de varios queries específicos regularmente • Inhibir transición de Querier a no querier para el router • Eliminar la entrada si al fin del período no recibe report • (NQ) Recepción de un Query específico para un grupo • Si el tiempo restante para la entrada es mayor que el que esperará el querier • Actualizar tiempo de vida (Last_Member_Quer_Count * MRT) IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  14. IGMPv2: Operación del router querier. Detalle. Timers • rexmt: timer para retransmisión de queries específicos para un grupo. • host v1:indica el tiempo de validez para considerar que aún (desde el último report v1) hay routers v1 operando en la red • timer_g: indica el tiempo de validez de la entrada para un grupo. (g*: indica el tiempo de validez de la entrada para un grupo luego de recibir un leave) Estados • Sin miembros: estado inicial, no hay aun hosts que hayan enviado reports. • Con miembros: Existe por lo menos un host que ha enviado un report para un grupo. • Con miembros v1: Algún host corre v1 y ha enviado un report de esta versión. • Chequeando miembos: El router ha recibido un leave-group y aún no ha escuchado un report para el grupo. Eventos • Recepción de reporte v2: emitido para un grupo, por un host operando en v2 • Recepción de reporte v1: igual al anterior, pero host v1. • Recepción de leave: recepción de leave group por parte de un host v2. • Timeout de timer_g (o g*): invalida la entrada para un grupo al no recibir reports. • Timeout de rexmt timer: indica realizar retransmisión de un query específico para un grupo. • Timeout host v1: indica ausencia de hosts v1 operando en la red como miembros del grupo IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  15. IGMPv2: Operación del router querier. Detalle. Acciones • Arrancar timer_g: Se arranca (o resetea) el timer que indica el tiempo de validez de la entrada para un grupo. Valor: [Group Membership Interval]. • Arrancar timer_g*: Se arranca (o resetea) el timer que indica el tiempo de validez de la entrada para un grupo. Este timer se utiliza en caso de recibir un leave (querier) o un query específico (no querier). Valor para querier: [Last Member Query Interval] * [Last Member Query Count] Valor no querier: [Max Response Time] (del paquete) * [Last Member Query Count] • Arrancar rexmt timer:arranque del timer para retransmitir un Query específico para un grupo. • Arrancar timer host v1: arranca (y resetea) timer para hosts v1. Valor [Group Membership Interval]. • Send Group-specific Query: envío de un query para un grupo específico (al recibir un leave para el grupo). El MRT del paquete es [Last Member Query Interval]. • Notify routing+: indica al protocolo de ruteo que hay miembros del grupo en la red • Notify-routing-: notifica que no hay más miembros del grupo. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  16. Chequeo miembros Con miembros Sin miembros Con miembros v1 IGMPv2- Operación del router querier. Detalle. E: recepción report v1 A: arrancar timer_g A: arrancar timer host v1 A: notify routing + E: timeout timer_g* A: notify routing - A: clear timer rexmt E: timeout timer_g A: notify routing - E: recepción leave A: arrancar timer_g* A: arrancar timer rexmt A: enviar query GS E: recepción report v2 A: arrancar timer_g A: notify routing + E: recepción report v2 A: arrancar timer_g E: recepción report v1 A: arrancar timer_g A: arrancar timer host v1 E: recepción report v2 A: arrancar timer_g E: timeout timer rexmt A: enviar query específico A: arrancar timer rexmt E: recepción report v1 A: arrancar timer_g A: arrancar timer host v1 E: timeout host v1 E: timeout timer_g A: notify routing - E: recepción report v1 A: arrancar timer_g A: arrancar timer host v1 E: recepción report v2 A: arrancar timer_g IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  17. E: timeout timer_g* A: notify routing - E: timeout timer_g A: notify routing - Chequeo miembros E: recepción report A: arrancar timer_g A: notify routing + E: recepción query GS A: arrancar timer_g* Con miembros Sin miembros E: recepción report A: arrancar timer_g E: recepción report A: arrancar timer_g IGMPv2- Operación de router no Querier. Detalle IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  18. Compatibilidad v1/v2 • Host v2 operando en red con querier v1: • Host detecta querier v1 por Queries con MRT = 0 (toma valor 100, 10 segs). • Vence por timer, no por último Query. • Host envía reports v1, puede no enviar leave. • Router v2 con router v1: • Los routers v2 deben ser explícitamente configurados para funcionar como v1. • Router v2 con host v1: • El router debe detectar miembros v1 en un grupo. • Debe ignorar leave group mientras haya hosts v1. • Host v2 con host v1: • El host v2 suprime reports debido tanto a reports v2 como v1. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  19. IGMPv2: Tiempos y valores por defecto • [Robustness Variable]:2. Cantidad de reintentos menos 1. • [Query Interval]: 125 segs. Intervalo entre dos queries generales emitidos por el querier. • [Query Response Interval]: 10 segs. Tiempo máximo de espera en queries generales por reports. • [Group Membership Interval]: [Robustness Variable] * [Query Interval] + [Query Response Interval]. Tiempo luego del cual, al no recibir reports, el querier decide que no hay mimembros del grupo. • [Other Querier Present Interval]: [Robustness Variable] * [Query Interval] + [Query Response Interval] / 2. Tiempo transcurrido sin ecscuchar queries luego del cual un router supone que no hay querier. • [Startup Query Interval]: [Query Interval] / 4. Tiempo entre queries generales enviados por un router en el inicio. • [Startup Query Count]: Robustness Variable. Número de queries enviados en el inicio. • [Last Member Query Interval]: 1 seg. MRT colocado en los queries específicos. Tiempo entre sucesivos queries específicos. • [Last Member Query Count]: Robustness Variable. Número de queries específicos enviados al recibir un leave. • [Unsolicited Report Interval]: 10 seg. Tiempo entre envíos sucesivos de un report inicial por parte de un host. • [Verion 1 Router Present Timeout]: 400 seg. Tiempo que debe esperar un host, desde el último query v1, para funcionar como v2. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

More Related