ARQUITECTURAS
CLIENTE / SERVIDOR Sockets broadcasting y multicasting
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
4. Sockets broadcasting y multicasting
• Broadcast.
• Definición de Broadcast.
• Funcionamiento Broadcast.
• Creación del socket Broadcast.
• Multicast.
• Definición de Multicast.
• Funcionamiento Multicast (IGMP).
• Creación del socket Multicast.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Introducción
• Hasta ahora hemos revisado las conexiones punto a
punto por medio de Sockets (Unicast).
• Sin embargo hay una gran colección de aplicaciones que
requieren enviar tráfico a múltiples destinos como son:
• Difusión de vídeo
• Difusión de audio
• Difusión de noticias
• e-learning
• Entre otras
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Introducción
• Pero enviar la información a muchos destinos replicando la
misma información en la red es muy ineficiente y crea varios
retrasos especialmente si el número de receptores es muy
grande.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
D1
D2
D3
D4
S
En Unicast los routers
reenvían (encaminan)
un paquete recibido
solo a través de una
de sus interfaces
Broadcast (Difusión)
• Definición
Servicio de envío a todos los miembros de una (sub) red.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
D1
D2
D3
D4
S
Todos los receptores de la
red deben recibir una copia
del mensaje.
Utiliza UDP
Broadcast
• Existen tecnologías que soportan la difusión de información de
forma natural
• Topologías tipo bus: Ethernet
• Topologías en anillo
• Redes por satélite o cable
• Por otro lado hay tecnologías donde es costoso construir servicios
de difusión
• Conmutadores, routers, bridges…
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Ventajas y Desventajas
• Utilidad: Cuando se desconoce la red
• Buscar algún servidor que atiende terminales sin disco (BOOTP)
• Conocer los servidores activos: daytime, echo…
• Búsqueda de usuarios en la red: finger
• Desventajas
• Mucha carga a ancho de banda
• Todos los host deben recibir el paquete
• Es necesario realizar múltiples copias
• Pueden provocarse tormentas de mensajes
• Routers: deben tener una opción para inhibir la difusión de
mensajes.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Direcciones IP
• Cuatro tipos diferentes de direcciones broadcast:
• Broadcast limitado
• Dirección: 255.255.255.255
• Nunca es redirigido por un router hacia la red exterior.
• Se utiliza en el proceso de configuración de host (p. e. DHCP).
• Broadcast dirigido a red
• Dirección : Identificador de red + Identificador de host a 1.
• <id de red>.255.255.255
• Puede ser redirigido por los routers al exterior pero esta opción puede ser deshabilitada.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
• Broadcast dirigido a subred
• Dirección: Identificador de red + Identificador de subred + Identificador de host a 1
• <id de red>. <id de red>.255.255
• Broadcast dirigido a todas las subredes
• Dirección: Identificador de red + Identificador de subred y de host a 1.
• <id de red>. <id de red>.<id de red>.255
• Para la red 210.25.23.0, con máscara de subred 255.255.255.192, las direcciones broadcast para todas las subredes sería 210.25.23.255
• Si una red no tiene subnetting es lo mismo que un broadcast dirigido a red
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Direcciones Broadcast
• Red Ethernet
• Subred de clase B
• Dirección de una red de clase B: 138.4.0.0
• Dirección de subred: 0.0.23.0
• Máscara de red 255.255.255.0
• Dirección de difusión a subred: 138.4.23.255 • Dirección de difusión a todas las subredes:138.4.255.255
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Envío y Recepción de mensajes
• Envío de paquetes
• Envío a dirección de difusión y a un puerto
• Recepción de paquetes
• El paquete se recibe en la cola del puerto
• El paquete se distingue por la dirección de envío
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Ejemplo
• Envío a: dir = 138.4.23.255, puerto = 13
• Se envía el paquete UDP al servidor de echo de los ordenares de la subred
• Envío a: dir = 138.4.23.255, puerto = 79 Datos = “tfigueroa”
• Se envía el paquete UDP de búsqueda del usuario tfigueroa al servidor finger
de todos los host de la subred
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Broadcast en Internet
• En Internet no es posible hacer un envío broadcast. Si utilizamos la dirección 255.255.255.255 el envío se difunde en la red local únicamente, no pasa más allá.
• Dicho de otro modo, el paquete broadcast es tratado como si tuviera TTL=1, cualquiera que sea el valor de TTL que realmente tenga
• Esto se hace para preservar la ‘salud’ de la red. De lo contrario cualquier usuario desaprensivo o despistado podría saturar la red
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Broadcast ‘dirigido’
• En Internet cuando se define una red automáticamente se define una dirección broadcast en dicha red. Dicha dirección es la más alta existente en esa red (parte host toda a unos).
• Por ejemplo si definimos la red 130.206.4.0/23 su dirección de broadcast es 130.206.5.255
• En principio cualquier host puede hacer un envío broadcast a una red remota utilizando dicha dirección esto se conoce como ‘broadcast dirigido’
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Ataques con broadcast dirigido • A finales de los 90 se produjeron diversos ataques utilizando
broadcast dirigido. La técnica consistía en enviar un paquete a
la dirección broadcast de una red grande poniendo una
dirección de origen falsa (la del host a atacar). Cuando ese
host recibía las respuestas de los pings su consumo de CPU
crecía enormemente.
• Por tanto no se permite el broadcast dirigido. Si se recibe un
ping broadcast dirigido solo lo responde el router que da
acceso a esa red.
• En los routers cisco el broadcast dirigido se controla con el comando ‘ip directed-broadcast’ a nivel de interfaz. Por
defecto este comando está puesto a ‘no’ en todas las
interface.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Multicast
• Se utiliza en las comunicaciones uno a varios
• Con Multicast los routers pueden reenviar (encaminar) un
paquete recibido a través de más de una (varias) de sus
interfaces
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Multicast
• Servicio eficaz de comunicación en grupo • Comunicación de N a N
• Evita la multiplicación de tráfico
• Normalmente basado en el envío de datagramas
• Se puede simular con unicast • Creando una malla entre todos los miembros
• Muy ineficaz (n-plica tráfico)
• Es un caso particular de difusión • Grupo:Todos los host de una (sub) red
• El grupo es fijo
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Grupos multicast de Internet
• Grupo dinámico • Operaciones de conexión y desconexión explícitas
• Miembro del grupo = conectado al grupo
• Acceso libre: cualquiera puede conectarse
• Tamaño ilimitado • Un grupo puede abarcar toda la Internet
• Grupo de recepción • Envío sin restricciones: para enviar a un grupo no es necesario ser miembro
del grupo
• Mensajes enviados al grupo son recibidos por todos los miembros del grupo
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Direcciones clase D
• Un grupo de multicast se identifica con • dirección IP de clase D
• Formato: 1110xxxxx....xxxx • Una comunicación utiliza además una dirección de puerto
• Identifican grupos globales en Internet
• Grupos permanentes: • direcciones asignadas administrativamente por IANA
• Internet Assignment Number Authority
• ftp://ftp.isi.edu/in-notes/iana/assignments/multicast-addresses
• MBONE: • red para distribución de audio y vídeo por internet
• Direcciones reservadas: 224.2.*.*
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Ejemplos de grupos asignados
Reservados por IANA
• BASE-Address.mcast.net: 224.0.0.0: reservada
• All-Systems.mcast.net: 224.0.0.1 • Todos los sistemas en la subred (local), IGMP
• All-Routers.mcast.net: 224.0.0.2 • Todos los routers en la subred (local)
• DVRMP.mcast.net: 224.0.0.4 • Routers con “Distance Vector Multicast Routing Prot.”
• PIM-ROUTERS.mcast.net: 224.0.0.13 • 4Routers con “Protocol Indpendent Multicasting”
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Funcionamiento
• El Multicast trabaja bajo el protocolo UDP, debido a que no se envían confirmaciones (ACK) que podrían saturar la red.
• Un paquete multicast es entonces un datagrama convencional dirigido a una dirección multicast.
• El mecanismo de trabajo es básicamente el siguiente: se guardan los datos en un datagrama, se envía el datagrama, los ruteadores se encargan de todo el trabajo intermedio y se entrega una copia del datagrama a cada miembro del grupo correspondiente.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Funcionamiento
• Para recibir los datos, cada miembro del grupo debe estar escuchando en un puerto adecuado y debe estar listo para procesar el datagrama; el anfitrión reconoce el paquete porque pertenece al grupo.
• La única diferencia que se presenta en multicast respecto al manejo de datagramas en UDP se refiere a un campo de la trama IP, el byte llamado TTL (time to live).
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Funcionamiento
• En multicast el programador debe asignar este byte (que
puede tomar valores desde 0 hasta 255).
• El TTL fue diseñado para prevenir la ocurrencia de loops
infinitos entre ruteadores mal configurados y da una
estimación del número de ruteadores que un datagrama
puede atravesar antes de ser descartado.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
TTL • Por lo tanto en multicast el TTL proporciona un método ad hoc para limitar qué
tan lejos puede llegar un datagrama en un envío multicast.
• Cada vez que un datagrama pasa por un ruteador su TTL se decrementa en al menos uno y se descarta cuando su TTL es cero.
• La correspondencia entre el valor del TTL y la distancia geográfica que alcanzará un datagrama en multicast no es precisa, una TTL de 127 puede llegar a miembros de un grupo en todo el mundo, mientras que un TTL de 1 se entregará solo a anfitriones que pertenezcan al grupo y estén en la subred local.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Limitación de alcance: TTL
• El paquete IP tiene un campo TTL (Time To Live)
• Limita la vida de los paquetes IP
• Limita el máximo número de routers a cruzar
• En multicast se utiliza para limitar la alcanzabilidad
• Típicamente: campus => 4-16, pais => 32-64, ....
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
TTL
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Red de la
Universidad
Autónoma de
Aguascalientes
Red de la UNAM
Mexico America
TTL-Threshold = 16
TTL-Threshold = 48
TTL-Threshold = 0
Máximo 15 saltos
Máximo 32 saltos
Máximo 64 saltos
Ámbito TTL
LAN 1
Organización 15
País 47
Continente 63
Global 127
Mundo
TTL-Threshold = 64
Delimitación de Ámbito por dirección
(RFC 2365) • Se asigna un significado especial a determinados rangos de
direcciones multicast. • Similar a la delimitación por TTL, pero el filtro en el router se realiza
por la dirección. Devuelve al TTL su auténtico significado y suprime la restricción de número de saltos máximo.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Rango Ámbito
224.0.0.0/24
(224.0.0.0-224.0.0.255)
Nivel de enlace (LAN)
224.0.1.0-238.255.255.255 Global.
239.0.0.0 – 239.191.255.255 Reservado para usos futuros
239.192.0.0/14
(239.192.0.0-239.195.255.255)
Organización
239.196.0.0 – 239.254.255.255 Reservado para usos futuros
239.255.0.0/16
(239.255.0.0-239.255.255.255)
Nivel de enlace (LAN)
Limitación del ámbito por dirección
(RFC 2365, 7/1998)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Red de la UNAM
Mexico
239.255.0.0/16
239.192.0.0/14
224.0.1.0-238.255.255.255
Red de la UAM
America
Mundo
Filtra 239.192.0.0/14
Filtra 239.255.0.0/16
Filtrado de paquetes multicast
Cada nivel en la red filtra los paquetes que llegan de la red
• La interfaz de red acepta • Su dirección, dirección de difusión, direcciones multicast
• Algunas tarjetas aceptan un número limitado de dir. Multicast
• Modo promiscuo: acepta cualquier dirección multicast, difusión
• El nivel físico (el manejador de dispositivo) filtra • Paquetes de protocolo no soportados (IP, ARP, ...)
• Algunas direcciones multicast
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
• El nivel de red IP filtra
• Direcciones IP no conectadas (unicast y multicast)
• El nivel de transporte (UDP) filtra
• Segmentos dirigidos a puertos no atendidos
• Envía mensaje ICMP
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Multidifusión entre segmentos
• Será necesario contar con encaminadores multidifusión (mrouters) que puedan procesar estos datagramas de modo que una copia de los mismos alcance cada uno de los equipos miembros del grupo multidifusión.
• Esto se consigue mediante un árbol de entrada multicast (multicast delivery tree) que se construye a través de los encaminadores y que tiene por ramas todos los equipos que forman parte del grupo multicast.
• Este árbol de entrega es dinámico, en función de la conexión/desconexión de los miembros del grupo.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Arbol multicast
Conecta los miembros del grupo
• Ejemplo:
• Grupo = {P3, P4, P8,.., P12}
• P1, P2, P5, P6 y P7 no están en el grupo
• Routers:
• Realizan copias a los host conectados al grupo
• Se comunican con IGMP con los host
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Grupo = {P3, P4, P8,.., P12}
P1, P2, P5, P6 y P7 no están en el grupo
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
IGMP
IGMP (Internet Group Management Protocol):
Ejemplo:
• Protocolo de suscripción del host al grupo • El router sondea periódicamente a los host de su red
• Los host responden con los grupos a los que se han suscrito los
usuarios
• No respuesta implica desconexión
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Protocolo IGMP (Introducción)
• Protocolo que permite a los hosts comunicar su interés, o no, en pertenecer a grupos multicast, dinámicamente.
• Los mensajes IGMP van encapsulados dentro de datagramas IP, con número de protocolo IP = 2, TTL = 1 y con la opción IP Router Alert en la cabecera IP.
• Existen 3 versiones incrementales. La más usada es la versión 2.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Protocolo IGMP • IGMP (Internet Group Management Protocol), está descrito en los RFC 1112,
2236 y 3376 de sus versiones 1, 2 y 3, respectivamente.
• Administra la membresía de las terminales a los distintos grupos multicast.
• Proporciona a los routers multicast información acerca del estado de membresía del host de una red.
• Le permite a los mrouters saber en todo momento los grupos multicast que están activos en cada una de las interfaces.
• IGMP NO es un protocolo de encaminamiento multicast
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Mensajes IGMP
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Tipo Emitido
por
Función Dirección
de destino
Consulta General
(General Query)
Routers Preguntar a los hosts si están
interesados en algún grupo
multicast
224.0.0.1
Consulta específica de
grupo (Group-Specific
Query)
Routers Preguntar a los hosts si están
interesados en un determinado
grupo multicast
La del
grupo en
cuestión
Consulta específica de
grupo y fuente (Group-
and-Source-Specific
Query)
Routers Preguntar a los hosts si están
interesados en un determinado
grupo multicast de una serie de
fuentes determinada
La del
grupo en
cuestión
Informe de Pertenencia
(Membership Report)
Hosts Informar a los routers que el
host está interesado en un
determinado grupo multicast
(indicando una serie de fuentes
a incluir o a excluir)
224.0.0.22
Versión Acciones Tipo Mensajes
IGMP 1 •Unirse a un grupo
•Pregunta-Respuesta
•Abandonar un grupo
•Membership Query.
•Membership Report.
IGMP 2 •Unirse a un grupo
•Pregunta-Respuesta General
•Pregunta-Respuesta Específica
•Abandonar un grupo
•Elección del router multicast
•Membership Query
•General Query
•Group-Specific Query
•Membership Report versión 1
•Membership Report versión 2
•Membership Leave Group
IGMP 3 •Las propias de las versiones 1 y 2
•Unirse a un grupo. Igual que en
versiones anteriores, pero el
Report se manda a 224.0.0.22.
•Membership Query
•General Query
•Group-Specific Query
•Group-and-Source-Specific
Query
•Membership Report versión 3
•Membership Report versión 1
•Membership Report versión 2
•Membership Leave Group versión 2
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
IGMP 1 - Unión a un grupo
• El host H que se quiera a un grupo G debe mandar un Membership
Report a la dirección del grupo al que quiere unirse. Ej.: Host 2
quiere unirse al Grupo 1.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Host A : Grupos 1 y 3 Host B Host C: Grupo 2 Router Multicasting
MemberShip Report
Grupo 1
IGMP 1. Pregunta-Respuesta • Si el router no recibe ningún mensaje Report de algún grupo, entonces considera que ese grupo
ya no existe.
• Sólo un host de cada grupo responde al router. Si un host en espera de contestar a una Query escucha un Report de otro host del mismo grupo, interrumpe su temporizador y cancela la respuesta.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Host A: Grupos 1 y 3
Host B: Grupo 1
Host C: Grupo 2
Router Multicasting
MemberShip Report
Grupo 1
Timer Grupo 1 Timer Grupo 2
Timer Grupo 3
Timer Grupo 1 MemberShip Query
MemberShip Report
Grupo 3
MemberShip Report
Grupo 2
IGMP 1. Abandonar un grupo • Cuando un host quiere abandonar un grupo simplemente deja de
responder como miembro de ese grupo a los mensajes
Membership Query del router.
• Ejemplo: Host C abandona el grupo 2.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Host A: Grupos 1 y 3 Host B: Grupo 1 Host C: Grupo2 Router Multicasting
MemberShip Query
Timer Grupo 1 No responde
Timer Grupo 3
Timer Grupo 1
MemberShip Report
Grupo 1
MemberShip Report
Grupo 3
IGMP 2. Pregunta-Respuesta Específica
• El router pregunta por la existencia de miembros de un grupo
concreto. Los host responden igual que a una Query general.
Usando un tiempo de respuesta máximo menor(=1s) se reduce la
latencia de abandono de grupo. Ej.:
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Host A : Grupos 1 y 3 Host B: Grupo 1 Host C: Grupo 2 Router Multicasting
MemberShip Group
Specific Query
Grupo 1
Timer Grupo 1 Timer Grupo 1
MemberShip Report
Grupo 1
IGMP 2. Abandono de Grupo
• Ej.: Host A abandona el grupo 1.
• Si algún host contesta con un Report, entonces el router mantiene el
grupo.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Host A: Grupos 1 y 3 Host B: Grupo 1 Host C: Grupo 2 Router Multicasting
Timer Grupo 1
MemberShip Report
Grupo 1
MemberShip Group-
Specific Query Grupo
1
MemberShip Leave
Group - Grupo 1
No responde
Timer Eliminar Grupo 1
IGMP 2. Abandono de Grupo
• Ej.: Host C abandona el grupo 2.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Host A: Grupos 1 y 3 Host B: Grupo 1 Host C: Grupo 2 Router Multicasting
MemberShip Group-
Specific Query
Grupo 2
MemberShip Leave
Group - Grupo 2
No responde
Timer Eliminar Grupo 2
Grupo 2 eliminado
IGMP 3.
Acciones
• Las propias de las versiones 1 y 2
• Unirse y dejar un grupo. Igual que en versiones anteriores, pero el
mensaje de respuesta se manda a 224.0.0.22, y se pueden
especificar fuentes dentro de los grupos a las que unirse.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Aplicaciones Multicast • Todas las aplicaciones multicast utilizan UDP como
protocolo de transporte
• No hay control de congestión
• No hay control de datagramas erróneos, duplicados, descartados, etc.
• Todas estas tareas quedan a cargo de la aplicación, que recibe información de la situación a través de los protocolos RTP (RealTime Transport Protocol)y RTCP.
• La inmensa mayoría de las aplicaciones disponibles para multicast son herramientas de comunicación multimedia (vídeoconferencia, distribución de vídeo, etc.).
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Aplicaciones
• Las aplicaciones del multicast son varias, desde las convencionales (audio y video) hasta las mas especializadas, como son:
• Juegos para varios jugadores (multiplayer)
• Sistemas de Archivo Distribuidos
• Bases de Datos con Replicación
• Servicios de nombre y de directorio, en los que el cliente no necesita saber la dirección del servidor específico sino que hace una petición multicast a un grupo genérico de servidores y recibe respuesta del mas cercano o del mas adecuado para sus propósitos.
• Servicios de Cache (caching).
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Aplicaciones Multicast
• Cuando apareció la red MBone (multicast backbone) en 1992
surgieron una serie de herramientas de videoconferencia de libre
distribución que se utilizaban para transmitir reuniones del IETF.
Esas herramientas están disponibles en: http://www-
mice.cs.ucl.ac.uk/multimedia/software/ aunque actualmente son
poco utilizadas.
• Uno de los programa más utilizado en multicast actualmente sea el
VideoLAN (www.videolan.org), que es un software para vídeo
streaming y vídeo bajo demanda.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
• El catálogo de aplicaciones comerciales que soportan multicast va
creciendo, por ejemplo:
• Windows Media (Microsoft)
• Real Player (Real Video)
• Quicktime (Apple)
• IP/TV (Cisco)
• También se utiliza multicast en algunos programas de transferencia
masiva de información, como el Norton Ghost, de Symantec
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Distribución de contenidos multimedia en
una red unicast
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Red
unicast
Servidor de
vídeo
multicast
principal
Servidor de
vídeo
multicast
secundario
Servidor de
vídeo
multicast
secundario
Servidor de
vídeo
multicast
secundario
Tráfico unicast
Tráfico multicast
Clase MulticastSocket public class MulticastSocket extends DatagramSocket {
public MulticastSocket() throws IOException
public MulticastSocket(int port) throws IOException
public void setTTL(byte ttl) throws IOException
public byte getTTL() throws IOException
public void joinGroup(InetAddress mcastaddr) throws
IOException
public void leaveGroup(InetAddress mcastaddr) throws
IOException
public synchronized void send(DatagramPacket p, byte ttl)
throws IOException
}
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Ejemplo import java.net.*;
public class mcast {
public static void main (String args[]) throws java.io.IOException {
byte[] m = {'H','e','l','l','o'};
InetAddress group =
InetAddress.getByName("228.5.6.7");
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group);
DatagramPacket hi
= new DatagramPacket(m, m.length, group, 6789);
s.send(hi);
byte[] buf = new byte[1000];
DatagramPacket recv =
new DatagramPacket(buf, buf.length);
s.receive(recv);
s.leaveGroup(group); s.close();
}
}
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Protocolos para Streaming
• Existe 2 formas de realizar streaming:
• Directo (tiempo real) • Udp,rtsp
Con esta alternativa no se usa el máximo ancho de banda disponible por el cliente para descargar y visualizar el medio, sino que tan sólo se usa el ancho de banda necesario para ir reproduciendo el medio en tiempo real. Además no se produce una descarga completa del medio, sino que conforme se descarga se va descartando una vez ha sido utilizado
RTPS (Esta basado en HTTP) puede utilizar udp y tcp
• Bajo demanda • Tcp (http o ftp)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Arbol de multicast entre routers
• Existen varios protocolos de interconexión de routers
• DVMRP (Distant Vector Multicast Routing - Prot. RFC 1075, usado por MROUTED)
• PIM (Protocol Independent Multicast)
• MOSPF (Multicast Extension to Open Shortest Path First -RFC 1584)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
DVMRP – Protocolo de multienvío basado en el vector distancia
• La técnica de DVMRP es enviar tramas multicast como si fueran de broadcast (L3) usando técnicas intercambio de rutas activas hasta llegar a los routers hojas (leaf routers).
• Las rutas activas se calculan mediante el intercambio de tramas. Es un protocolo similar a RIP, con una limitación de hasta 32 saltos.
• Los Routers hoja (leaf router) si no tienen ningún participante del grupo de multicast, envía un mensaje de “poda” (prune) hacia arriba, para que no le envíen nuevos paquetes de ese grupo de multicast.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
DVMRP
• Forma un árbol de distribución intercambiando métricas
entre los routers
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
R1
Ruta de distribución
DVMRP
• La primera trama se trata como un broadcast
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
R1
Distribución de Multicast
Ruta de distribución
DVMRP
• “podado del arbol” (prune)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
R1
Distribución de Multicast
DVMRP Prune (poda)
Ruta de distribución
DVMRP
• Los Routers X e Y son quitados del árbol de distribución
(pruned)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
X
Y R1
Distribución de Multicast
Ruta de distribución
DVMRP
• Se añade un nuevo miembro
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
R1
R2
Distribución de Multicast
DVMRP Graft (injerto)
Ruta de distribución
DVMRP
• Se genera un nuevo árbol de distribución.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
X
R1
R2
Distribución de Multicast
Ruta de distribución
DVMRP
Tuneles
• Las tablas de routing de DVMRP son muy parecidas a las de RIP (usan el mismo formato para descubrir rutas – permite hasta 32 saltos).
• Por ello, DVMRP por si solo no sirve para conexión de distintas redes a través de internet (número de saltos indefinido).
• Para conectar dos redes DVMRP a través de internet se utilizan túneles de IP, de forma que la red sólo vea un salto entre un extremo y el otro.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
DVMRP
Tuneles • Lo que se hace es encapsular en los
routers de los extremos la trama multicast directamente sobre IP coº
• Source Address la del router A
• Destination address la del Router B.
• MBONE=Multicast Backbone
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
S
R M
BO
NE
MBO
NE
NO
MBO
NE
(Inte
rnet)
A
B
Otros protocolos
MOSPF (RFC 1584)
• Es una extensión del protocolo de routing unicast OSPF.
• MOSPF incluye información de multicast en las tramas de aviso de estado de enlaces que ya usa OSPF para construir sus árboles de distribución. (solo funciona sobre redes OSPF)
• Todos los routers deben de conocer la topología completa de la red en cada momento a base de intercambiarse continuamente tramas de con los estados de los enlaces.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Otros Protocolos
MOSPF - Consideraciones
• Problemas de escalabilidad • Cambios frecuentes en los estados de los enlaces provoca bajadas de
rendimiento importantes
• Hay que correr un algoritmo de Dijkstra (usado por OSPF para calcular la ruta óptima) para cada Fuente de multicast.
• No se debe de utilizar en • Redes con enlaces inestables
• Redes con muchos grupos simultáneos de multicast
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza