Área de Ingeniería Telemática
Grado en Ingeniería en Tecnologías de Telecomunicación, 3º
Tecnologías Avanzadas de Red
Servicio Multicast
Multicast permite enviar paquetes a un subconjunto de hosts de la red. En unicast, se requeriría enviar un paquete a cada destino y conocer las direcciones de todos ellos. En cambio, en multicast, el origen envía un solo paquete y la red se encarga de replicarlo y hacerlo llegar a todos los interesados.
Dr. Steve Deering
Funcionamiento de Multicast
¿Qué tiene que hacer la aplicación del host origen?
Nada especial, solo lo que requiera el API para enviar a destinos multicast.
¿Sabe el origen quiénes van a recibirlo?
No necesariamente.
¿Cómo sabe la red que el paquete puede tener que ir a varios hosts?
- Se utiliza el bloque de direcciones 224.0.0.0/4.
- Se habla de «grupo multicast», ya que la dirección hace referencia a un grupo de hosts.
bit 31 Grupo Multicast bit 0 1110
¿Cómo sabe la red a qué hosts debe hacerlo llegar?
- La aplicación receptora indica al S.O. que quiere recibir los paquetes de un grupo multicast.
- El host indica a la red que quiere recibir los paquetes que van a ese grupo multicast mediante IGMP (se «une al grupo»).
- Los mensajes IGMP se intercambian entre el host y el router adyacente.
- El emisor del tráfico multicast no necesita unirse al grupo.
¿Cómo sabe la red cómo hacer llegar esos paquetes?
- Mediante un protocolo de encaminamiento multicast.
- Calcula árboles para comunicar orígenes con destinos.
- Se puede controlar el «alcance» de los paquetes con el TTL.
Grupos Multicast
- Los grupos pueden ser permanentes o transitorios.
- Lo que es permanente es la dirección del grupo.
- La pertenencia al grupo es dinámica.
- No hay límites de localización o número de miembros.
- Un interfaz puede pertenecer a varios grupos.
- No hace falta ser miembro para enviar datagramas al grupo.
- Routers → Mrouter (Multicast Router).
Direcciones Multicast
Direcciones controladas por IANA (RFC 5771, BCP 51): http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml
- Local Network Control Block (224.0.0.0/24): Para tráfico de control que no sale del enlace. No se usa IGMP, ya que no va a atravesar routers.
- Internetwork Control Block (224.0.1.0/24): Tráfico de control que puede ser reenviado por Internet.
- Ad-hoc Blocks (I, II y III): Pueden llegar a Internet. Para aplicaciones que necesitan bloques pequeños de direcciones.
- SDP/SAP Block (224.2.0.0/16)
- Source-Specific Multicast Block (232.0.0.0/8): RFC 4607
- GLOP Block (233.0.0.0/8): 233.[ASN16bits].0/24 (RFC 3180). ASs que tengan un ASN de 32 bits pueden pedir un bloque dentro del Ad-hock Block III. EGLOP (RFC 3138) es el bloque de direcciones con los ASN privados de 16 bits. EGLOP asignado a RIRs y pueden asignar en caso de necesidad.
- Administratively Scoped Block (239.0.0.0/8): RFC 2365. No sale del dominio y su asignación es gestionada por el mismo (pueden duplicarse de un dominio a otro). IPv4 Local Scope (239.255.0.0/16). IPv4 Organización Local Scope (239.192.0.0/14).
Ejemplos de Direcciones en Local Network Control Block
- 224.0.0.1 All Systems on this Subnet
- 224.0.0.2 All Routers on this Subnet
- 224.0.0.4 All DVMRP Routers
- 224.0.0.5 OSPFIGP All Routers
- 224.0.0.6 OSPFIGP Designated Routers
- 224.0.0.9 RIP2 Routers
- 224.0.0.13 All PIM routers
- 224.0.0.18 VRRP
- 224.0.0.22 IGMP
- 224.0.0.102 HSRP
Ejemplos de Direcciones en Internet Control Block
- 224.0.1.1 NTP Network Time Protocol
Aplicaciones de Multicast
- IPTV
- Monitorización: bolsa, sensores, seguridad, etc.
- Anuncios: noticias, hora, horarios, etc.
- Distribución de ficheros y cachés
- Sincronización de bases de datos
- Teleconferencia, aprendizaje a distancia (distance learning), difusión de eventos en vivo (deportes, conciertos…)
- Edición compartida, colaboración
- Juegos online multijugador
- Chats de grupo
- Descubrimiento de servicios
- Protocolos de encaminamiento
- etc.
Problemas de Multicast
- Adaptarse al receptor o al camino: En unicast, el flujo puede adaptarse a los requisitos de un receptor. En multicast, es común a todos. Ejemplos: bitrate de un vídeo, tiempos de respuesta por retardo en la red, recuperación ante errores, control de flujo, control de errores (confirmaciones y retransmisiones).
- Introduce gran cantidad de tráfico en la red: Un solo host con un flujo puede utilizar gran cantidad de enlaces. Si le forzáramos a enviar en unicast a cada destino, estaría limitado por su enlace de acceso el agregado que introduce en la red.
- UDP: No reacciona ante congestión en la red. La alternativa es un unicast a cada destino… de flujos también UDP.
- Seguridad: Es más complicado que en unicast la distribución de claves, la autentificación del otro extremo, etc.
Reverse Path Forwarding (RPF)
Reverse Path Forwarding, o Reverse Path Broadcast, examina la dirección origen del paquete multicast. Reenvía si ha llegado por el interfaz de la ruta hacia el origen.
El paquete llega a través de un árbol, que podría ser la ruta unicast u otro árbol específico para este cálculo. Con esto, llega a todos los hosts. Así es broadcast, más que un multicast.
Tipos de Árboles para Multicast
Shortest Paths
Encontrar un árbol de enlaces que conecte con el origen a todos los routers que sirven a hosts del grupo. Son árboles de expansión (spanning trees) mínimos respecto a una métrica (shortest path spanning trees). Puede implicar a otros routers. Dos formas:
- Source-Based Trees
- Group-Shared Trees
Source-Based Trees (SBT)
Un árbol en el que la raíz es el router de la fuente del flujo. Un árbol para cada fuente S en cada grupo G, árbol (S,G). Número de árboles = Grupos x Fuentes. Los emplean protocolos en modo denso (dense mode), cuando en todas las subredes hay receptor.
Pruning (poda)
Un Mrouter sin hosts adyacentes ni MRouters downstream en el grupo manda un mensaje prune upstream. Caduca el estar pruned, se tiene que renovar.
Grafting (injerto)
Un Mrouter en estado pruned descubre un nuevo cliente interesado en el grupo y manda un mensaje para reunirse al árbol.
Protocolos con SBT: DVMRP, PIM-DM
Group-Shared Tree (GST)
Construir un solo árbol para cada grupo (*,G). Incluye a todos los routers adyacentes a hosts en el grupo. Los emplean protocolos en modo disperso (sparse mode). Supone que el flujo no es deseado a menos que se indique explícitamente.
Se suele construir el árbol empleando un Rendezvous-Point Tree: Se escoge un nodo central que será la raíz. Los demás envían mensajes unicast a él para unirse al árbol. El mensaje es reenviado hasta que llega a él o a uno en el árbol. Suele tener que refrescarse la rama.
Suelen soportar pruning. Algunos protocolos lo combinan con árboles hasta la raíz.
Protocolos con GST: CBT, PIM-SM