- IP Multicast
-
IP Multicast es un método para transmitir datagramas IP a un grupo de receptores interesados. Puedes ver el artículo de multidifusión para ver una discusión general del asunto. En este artículo se trata específicamente la multidifusión IP.
Implementaciones de multidifusión IP
Los operadores de Pay-TV y algunas instituciones educativas con grandes redes de ordenadores han usado la multidifusión IP para ofrecer streaming de vídeo y audio a alta velocidad a un gran grupo de receptores. También hay algunos casos en que se ha utilizado para transmitir videoconferencias. De todas formas se ha relegado a ámbitos de investigación y educación que tienen más posibilidades de ofrecer las grandes necesidades de redes que precisa este método.
Otro uso que se le ha dado, también a nivel comercial, es el de distribuir archivos. Particularmente para ofrecer imágenes de arranque de sistemas operativos. Respecto a los sistemas tradicionales permite un menor uso del ancho de banda de la red.
Fuera de esas áreas no ha tenido mucho éxito. Fundamentalmente por dos factores, cada uno referido al otro. Por una parte el tráfico generado por la multidifusión IP es realmente complejo, sobre todo cuando tiene que ver con la comunicación a dos vías. Además este método tiene la desventaja de que su implementación a gran escala puede venir acompañado de puntos adicionales de fallo. Particularmente de ataques de denegación de servicio.
Historia
En 1992 se hizo un intento experimental llamado MBONE de crear una red multicast a través de Internet usando túneles. De esta forma se conseguiría un ahorro importante de ancho de banda para las aplicaciones multimedia. El experimento quedó solo en eso. Motivado, entre otras cosas, por las dificultades que representaba para los ISPs ofertar redes con soporte de multidifusión IP.
Direccionamiento
Existen cuatro formas de direccionamiento IP. Cada una de ellas con sus propiedades únicas.
- Unicast: El concepto más común de una dirección IP es una dirección unicast. Se refiere normalmente a un único emisor o receptor y puede ser usada tanto para enviar como para recibir. Este tipo de dirección suele estar asociada a un único dispositivo u ordenador pero no implica una correspondencia uno a uno. Algunos PC individuales tienen varias direcciones unicast cada una para un propósito diferente. Para enviar la misma información a diferentes direcciones unicast el emisor debe enviar dichos datos una vez por cada receptor.
- Broadcast: Enviar los datos a todos los destinos posibles (un "broadcast a todos los hosts") permite al emisor enviar los datos una única vez a todos los receptores. En el protocolo IP, la dirección 255.255.255.255 representa un broadcast limitado localmente. También se puede hacer un broadcast directo (y limitado) combinando el prefijo de red con el sufijo de hosts compuesto únicamente de 1 binarios. Por ejemplo para una red con el prefijo 192.0.2 la dirección IP a usar será la 192.0.2.255 (asumiendo que la máscara de red es la 255.255.255.0).
- Multicast: Una dirección multicast está asociada con un grupo de receptores interesados. De acuerdo al RFC 3171 las direcciones desde la 224.0.0.0 a la 239.255.255.255 están destinadas para ser direcciones de multicast. Este rango se llama formalmente "Clase D". El emisor envía un único datagrama (desde la dirección unicast del emisor) a la dirección multicast y el router se encargará de hacer copias y enviarlas a todos los receptores que hayan informado de su interés por los datos de ese emisor.
- Anycast: Como el broadcast y el multicast, con anycast se representa una topología de uno a muchos. Sin embargo el flujo de datos no es transmitido a todos los receptores. El router lo enviará únicamente al que considere que esté más cerca en la red. Este método es muy útil para conseguir balancear las cargas de datos. Es el método usado por los sistemas DNS.
Protocolos y aplicaciones
Dado que las transmisiones multicast y unicast son diferentes, sólo los protocolos diseñados para multicast pueden ser usados efectivamente con este.
La mayoría de los protocolos de aplicaciones existentes que usan multicast lo hacen sobre UDP. Otras aplicaciones, sobre todo aquellas que tienen que transmitir contenidos multimedia, lo hacen usando el protocolo RTP; además del protocolo RSVP para reservar el ancho de banda necesario para la distribución del contenido.
La distribución en una red local está controlada por el protocolo IGMP (en una red IPv4) y por MLD (en una red IPv6). Dentro de un dominio de enrutamiento se usa el protocolo PIM y entre dominios se debe usar algún protocolo de enrutamiento multicast entre dominios como el MBGP.
Se pueden encontrar muchos errores si un paquete destinado a una dirección unicast es encaminado accidentalmente a una dirección multicast. Concretamente se ha usado el envío de paquetes ICMP a una dirección multicast como una forma de conseguir la amplificación de paquetes a través de un Ataque de denegación de servicio.
Asignaciones de direcciones IPv4 multicast
El rango de direcciones de clase D, que está asociado aún con direcciones de multicast, no se asignan a direcciones unicast tradicionales. De hecho la reserva de grupos de direcciones de multicast ha solido ser una fuente de problemas y puede llevar a múltiples e insatisfactorias soluciones.
Existen varias estrategias para lograr solventar el problema. Estas son solo algunas de ellas. Para más información deberá leer el documento RFC 3171.
El bloque 224.0.0.0/24 es solo para enlaces multicast locales. Aquí solo pueden encontrar cosas como protocolos de enrutado. Los datagramas a estas direcciones no deberían ser reenviadas por los routers.
Gran parte del resto del espacio de direcciones entre 224/8 ha sido asignado y usado por diversidad de aplicaciones a lo largo de los años o, simplemente, ha sido reservado por la IANA. Este bloque ha sido denominado despectivamente como el pantano multicast.
El bloque 232.0.0.0/8 está reservado para usarse por el protocolo de SSM.
239.0.0.0/8 es actualmente un espacio para uso administrativo. El uso de este bloque se especifica en el documento RFC 1918. Sin embargo en otro, el RFC 2365, indica que parte de este segmento tiene un uso parecido a un espacio de direcciones unicast privadas. Sin embargo la mayoría de operadores lo tratan como dice el primer documento.
El resto de la Clase D está marcado actualmente como reservado por la IANA.
Asignaciones de direcciones IPv6 multicast
Véase también: Dirección IPv6Según la RFC4291 en su sección 2.7, una dirección multicast en IPV6 es un identificador para un grupo de interfaces, (Típicamente en diferentes nodos). Una interfaz puede pertenecer a varios grupos multicast. A continuación se muestra el formato de direccionamiento multicast para IPV6:
| 8 | 4 | 4 | 112 bits | +------ -+----+----+---------------------------------------------+ |11111111|flgs|scop| group ID | +--------+----+----+---------------------------------------------+
Los primeros dos dígitos hexadecimales son FF, esto es lo que caracteriza a las direcciones multicast en IPV6.
flgs es una serie de 4 flags:
|0|R|P|T|
El primero bit siempre es 0. Si T=0, quiere decir que la dirección es permanente, y es asignada por IANA. Si T=1, es una dirección dinámica.
El bit P es definido en la RFC3306, el cual está orientado a redes multicast IPV6 basadas en prefijos unicast el nuevo formato es el siguiente:
| 8 | 4 | 4 | 8 | 8 | 64 | 32 | +--------+----+----+--------+--------+----------------+----------+ |11111111|flgs|scop|reserved| plen | network prefix | group ID | +--------+----+----+--------+--------+----------------+----------+
Si P=0 indica que significa que la dirección asignada no está basada en un prefijo de red. Si P=1 indica una dirección multicast asignada bajo un prefijo de red. Si P=1, T debe ser 1.La función de R esta descrita en el RFC3956, y enuncia redes multicast IPV6 basadas en prefijos unicast modificada, el diagrama es el siguiente:
| 8 | 4 | 4 | 4 | 4 | 8 | 64 | 32 | +--------+----+----+----+----+----+----------------+----------+ |11111111|flgs|scop|rsvd|RIID|plen| network prefix | group ID | +--------+----+----+----+----+----+----------------+----------+
Si R=1 indica una dirección multicast que incluya la dirección en la RP. Si R=1 P y T tienen que ser igual a 1. Si R=0, significa que el RP no está incluido en la dirección.Scop es una serie de 4 bits que se utilizan para limitar el alcance en las redes multicast IPV6, los valores son los siguientes:
0-Reservado. 1-Interfaz de ámbito local. 2-Ámbito de enlace local. 3-Reservado. 4-Ámbito de administración local. 5-Ámbito de sitio local. 6-(sin asignar). 7-(sin asignar). 8-Ámbito de organización local. 9-(sin asignar). A-(sin asignar). B-(sin asignar). C-(sin asignar). D-(sin asignar). E-Ámbito global. F-Reservado.
Distribución en la capa 2
Multicast fiable
Protocolos IP multicast
- Internet Group Management Protocol (IGMP)
- Protocol Independent Multicast (PIM)
- Distance Vector Multicast Routing Protocol (DVMRP)
- Multicast Open Shortest Path First (MOSPF)
- Multicast BGP (MBGP)
- Multicast Source Discovery Protocol (MSDP)
- Multicast Listener Discovery (MLD)
- GARP Multicast Registration Protocol (GMRP)
- mDNS (mDNS)
Software IP multicast
- Media Tools Repository - colección de herramientas para MBone
- VideoLAN - Aplicación de Software libre para realizar streaming de vídeo usando multicast
- Xorp - Router por software que tiene soporte para multicast (IGMP, PIM)
- Smcroute - utilidad simple para manipular rutas multicast en el núcleo Linux
- SSM-ping - herramienta para comprobar la conectividad multicast
- [http://www.kloosterhof.com/~wilbert/igmpv3.html Implementación de IGMPv3 en FreeBSD
- [ftp://parcftp.xerox.com/pub/net-research/ipmulti/ Software de IP multicast de Xerox
- Java Reliable Multicast Service
- PIM implementation - una implementación, ahora obsoleta, del protocolo PIM
- GateD - implementación UNIX de protocolos de enrutamiento, incluyendo el multicast
- PIM-DM code for GateD
- NORM - implementación en C++ de un multicast fiable orientado a NACK realizado por el laboratorio de investigación naval U.S.
- iptvprobe - software de código abierto para monitoreo de flujos IPTV multicast
Enlaces externos
- RFC3170 - IP Multicast Applications: Challenges & Solutions
- Multicast over TCP/IP HOWTO, describe cómo hace Multicast el kernel Linux aunque algunas secciones (especialmente los programas de multicast) están desfasados y no cubren los programas actuales.
- IETF Reliable Multicast Transport (rmt) Working Group
- IETF Multicast & Anycast Group Membership (magma) Working Group
- IETF Protocol Independent Multicast (pim) Working Group
- IETF Source-Specific Multicast (ssm) Working Group
- IETF Multicast Security (msec) Working Group
- Multicast IP details at sockets.com
- IP-Ethernet multicast tutorial.
- Good illustrative video about IP Multicast en Cisco.
- Overview of Reliable Multicast methods, ACM SIGCOMM Multicast Workshop, August 27, 1996
- A Reliable Multicast Framework for Light-weight Sessions and Application Level Framing (the paper defining Scalable Reliable Multicast)
Wikimedia foundation. 2010.