arquitecturas+cliente+/+servidor+ - páginas...
TRANSCRIPT
Arquitecturas Cliente / Servidor
Sockets broadcas6ng y mul6cas6ng
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
4. Sockets broadcas6ng y mul6cas6ng
• Broadcast. – Definición de Broadcast. – Funcionamiento Broadcast. – Creación del socket Broadcast.
• Mul8cast. – Definición de Mul8cast. – Funcionamiento Mul8cast (IGMP). – Creación del socket Mul8cast.
Arquitecturas Cliente/Servidor, Sem 2015-‐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úl6ples des6nos como son:
– Difusión de vídeo – Difusión de audio – Difusión de no6cias – e-‐learning – Entre otras
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Introducción • Pero enviar la información a muchos des8nos 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.
D1
D2
D3
D4
S
En Unicast los routers reenvían (encaminan) un paquete recibido solo a través de una de sus interfaces
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Broadcast (Difusión)
• Definición Servicio de envío a todos los miembros de una (sub) red.
D1
D2
D3
D4
S
Todos los receptores de la red deben recibir una copia del mensaje. U6liza UDP
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Broadcast
– Existen tecnologías que soportan la difusión de información de forma natural
• Topologías 6po 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 2015-‐1 M.I.Yasmine Macedo Reza
Ventajas y Desventajas
• U6lidad: Cuando se desconoce la red – Buscar algún servidor que a6ende terminales sin disco (BOOTP) – Conocer los servidores ac6vos: day6me, 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úl6ples copias – Pueden provocarse tormentas de mensajes – Routers: deben tener una opción para inhibir la difusión de mensajes.
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Direcciones IP • Cuatro 6pos diferentes de direcciones broadcast:
– Broadcast limitado
• Dirección: 255.255.255.255 • Nunca es redirigido por un router hacia la red exterior. • Se u6liza en el proceso de configuración de host (p. e. DHCP).
– Broadcast dirigido a red
• Dirección : Iden6ficador de red + Iden6ficador 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 2015-‐1 M.I.Yasmine Macedo Reza
– Broadcast dirigido a subred
• Dirección: Iden6ficador de red + Iden6ficador de subred + Iden6ficador de host a 1
– <id de red>. <id de red>.255.255 – Broadcast dirigido a todas las subredes
• Dirección: Iden6ficador de red + Iden6ficador 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 6ene subneeng es lo mismo que un broadcast dirigido a red
Arquitecturas Cliente/Servidor, Sem 2015-‐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 2015-‐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 dis6ngue por la dirección de envío
Arquitecturas Cliente/Servidor, Sem 2015-‐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 = “jigueroa”
– Se envía el paquete UDP de búsqueda del usuario jigueroa al servidor finger de todos los host de la subred
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Broadcast en Internet • En Internet no es posible hacer un envío broadcast. Si
u6lizamos 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 2015-‐1 M.I.Yasmine Macedo Reza
Broadcast ‘dirigido’ • En Internet cuando se define una red automá6camente 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 u6lizando dicha dirección esto se conoce como ‘broadcast dirigido’
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Ataques con broadcast dirigido • A finales de los 90 se produjeron diversos ataques u6lizando
broadcast dirigido. La técnica consispa 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 2015-‐1 M.I.Yasmine Macedo Reza
Mul6cast
• Se u6liza en las comunicaciones uno a varios
• Con Mul6cast los routers pueden reenviar (encaminar) un paquete recibido a través de más de una (varias) de sus interfaces
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Mul6cast • Servicio eficaz de comunicación en grupo
– Comunicación de N a N • Evita la mul6plicació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 par6cular de difusión – Grupo:Todos los host de una (sub) red
• El grupo es fijo
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Grupos mul6cast 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 2015-‐1 M.I.Yasmine Macedo Reza
Direcciones clase D • Un grupo de mul6cast se iden6fica con
– dirección IP de clase D • Formato: 1110xxxxx....xxxx
– Una comunicación u6liza además una dirección de puerto • Iden6fican grupos globales en Internet
• Grupos permanentes: – direcciones asignadas administra6vamente por IANA
• Internet Assignment Number Authority • tp://tp.isi.edu/in-‐notes/iana/assignments/mul6cast-‐addresses
• MBONE: – red para distribución de audio y vídeo por internet
• Direcciones reservadas: 224.2.*.*
Arquitecturas Cliente/Servidor, Sem 2015-‐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 Mul6cast Rou6ng Prot.” • PIM-‐ROUTERS.mcast.net: 224.0.0.13
– 4Routers con “Protocol Indpendent Mul6cas6ng”
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Funcionamiento • El Mul6cast trabaja bajo el protocolo UDP, debido a que
no se envían confirmaciones (ACK) que podrían saturar la red.
• Un paquete mul6cast es entonces un datagrama
convencional dirigido a una dirección mul6cast.
• 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 2015-‐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 mul6cast respecto al manejo de datagramas en UDP se refiere a un campo de la trama IP, el byte llamado TTL (6me to live).
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Funcionamiento
• En mul6cast 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 es6mación del número de ruteadores que un datagrama puede atravesar antes de ser descartado.
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
TTL • Por lo tanto en mul6cast el TTL proporciona un método ad hoc para
limitar qué tan lejos puede llegar un datagrama en un envío mul6cast.
• 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 mul6cast 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 2015-‐1 M.I.Yasmine Macedo Reza
Limitación de alcance: TTL
• El paquete IP 6ene un campo TTL (Time To Live) – Limita la vida de los paquetes IP – Limita el máximo número de routers a cruzar
• En mul6cast se u6liza para limitar la alcanzabilidad – Típicamente: campus => 4-‐16, pais => 32-‐64, ....
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
TTL
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Delimitación de Ámbito por dirección (RFC 2365)
• Se asigna un significado especial a determinados rangos de direcciones mul6cast.
• Similar a la delimitación por TTL, pero el filtro en el router se realiza por la
dirección. Devuelve al TTL su autén6co significado y suprime la restricción de número de saltos máximo.
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)
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Limitación del ámbito por dirección (RFC 2365, 7/1998)
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Filtrado de paquetes mul6cast
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 mul6cast • Algunas tarjetas aceptan un número limitado de dir. Mul6cast • Modo promiscuo: acepta cualquier dirección mul6cast, difusión
• El nivel ysico (el manejador de disposi6vo) filtra – Paquetes de protocolo no soportados (IP, ARP, ...) – Algunas direcciones mul6cast
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
• El nivel de red IP filtra – Direcciones IP no conectadas (unicast y mul6cast)
• El nivel de transporte (UDP) filtra – Segmentos dirigidos a puertos no atendidos
• Envía mensaje ICMP
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Mul6difusión entre segmentos • Será necesario contar con encaminadores mul6difusión
(mrouters) que puedan procesar estos datagramas de modo que una copia de los mismos alcance cada uno de los equipos miembros del grupo mul6difusión.
• Esto se consigue mediante un árbol de entrada mul6cast
(mul6cast delivery tree) que se construye a través de los encaminadores y que 6ene por ramas todos los equipos que forman parte del grupo mul6cast.
• 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 2015-‐1 M.I.Yasmine Macedo Reza
Arbol mul6cast
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 2015-‐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 2015-‐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 2015-‐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 mul(cast, 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 2015-‐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, respec6vamente. • Ges6ona la membrecía de las terminales a los dis6ntos grupos
mul6cast.
• Proporciona a los routers mul6cast información acerca del estado de membrecía del host de una red.
• Le permite a los mrouters saber en todo momento los grupos mul6cast que están ac6vos en cada una de las interfaces.
• IGMP NO es un protocolo de encaminamiento mul6cast
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Mensajes IGMP 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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
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 mul6cast
• 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 2015-‐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.
Host A : Grupos 1 y 3 Host B Host C: Grupo 2 Router Multicasting
MemberShip Report Grupo 1
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
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.
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
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. 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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
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 6empo de respuesta máximo menor(=1s) se reduce la latencia de abandono de grupo. Ej.:
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
IGMP 2. Abandono de Grupo
– Ej.: Host A abandona el grupo 1. • Si algún host contesta con un Report, entonces el router man8ene el grupo.
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
IGMP 2. Abandono de Grupo
– Ej.: Host C abandona el grupo 2.
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
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 2015-‐1 M.I.Yasmine Macedo Reza
Arbol de mul6cast entre routers
– Existen varios protocolos de interconexión de routers
• DVMRP (Distant Vector Mul8cast Rou8ng -‐ Prot. RFC 1075, usado por MROUTED)
• PIM (Protocol Independent Mul8cast)
• MOSPF (Mul8cast Extension to Open Shortest Path First -‐RFC 1584)
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP – Protocolo de mul6envío basado en el vector distancia
• La técnica de DVMRP es enviar tramas mul6cast como si fueran de broadcast (L3) usando técnicas intercambio de rutas ac6vas hasta llegar a los routers hojas (leaf routers).
• Las rutas ac6vas 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 6enen ningún par6cipante del grupo de mul6cast, envía un mensaje de “poda” (prune) hacia arriba, para que no le envíen nuevos paquetes de ese grupo de mul6cast.
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP
• Forma un árbol de distribución intercambiando métricas entre los routers
S
R1
Ruta de distribución
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP
• La primera trama se trata como un broadcast
S
R1
Distribución de Multicast
Ruta de distribución
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP
• “podado del arbol” (prune)
S
R1
Distribución de Multicast
DVMRP Prune (poda)
Ruta de distribución
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP
• Los Routers X e Y son quitados del árbol de distribución (pruned)
S
X
Y R1
Distribución de Multicast
Ruta de distribución
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP
• Se añade un nuevo miembro
S
R1 R2
Distribución de Multicast
DVMRP Graft (injerto)
Ruta de distribución
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP
• Se genera un nuevo árbol de distribución.
S
X
R1 R2
Distribución de Multicast
Ruta de distribución
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP Tuneles
• Las tablas de rou6ng 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 dis6ntas redes a través de internet (número de saltos indefinido).
• Para conectar dos redes DVMRP a través de internet se u6lizan túneles de IP, de forma que la red sólo vea un salto entre un extremo y el otro.
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
DVMRP Tuneles
• Lo que se hace es encapsular en los routers de los extremos la trama mul6cast directamente sobre IP con
– Source Address la del router A – Des(na(on address la del Router B.
• MBONE=Mul6cast Backbone
S
R M
BO
NE
MBO
NE
NO
MBO
NE
(Int
erne
t)
A
B
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Otros protocolos MOSPF (RFC 1584)
• Es una extensión del protocolo de rou6ng unicast OSPF.
• MOSPF incluye información de mul6cast 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 con6nuamente tramas de con los estados de los enlaces.
Arquitecturas Cliente/Servidor, Sem 2015-‐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 óp6ma) para cada Fuente de mul6cast.
• No se debe de u6lizar en – Redes con enlaces inestables – Redes con muchos grupos simultáneos de mul6cast
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Aplicaciones Mul6cast • Todas las aplicaciones mul6cast u6lizan UDP como protocolo
de transporte – No hay control de conges6ó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 mul6cast son herramientas de comunicación mul6media (vídeoconferencia, distribución de vídeo, etc.).
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Aplicaciones • Las aplicaciones del mul6cast son varias, desde las convencionales (audio y video) hasta las mas especializadas, como son:
– Juegos para varios jugadores (mul6player) – 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 pe6ción mul6cast 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 2015-‐1
M.I.Yasmine Macedo Reza
Aplicaciones Mul6cast
• Cuando apareció la red MBone (mul6cast backbone) en 1992 surgieron
una serie de herramientas de videoconferencia de libre distribución que
se u6lizaban para transmi6r reuniones del IETF. Esas herramientas están
disponibles en: h�p://www-‐mice.cs.ucl.ac.uk/mul6media/sotware/
aunque actualmente son poco u6lizadas.
• Uno de los programa más u6lizado en mul6cast actualmente sea el
VideoLAN (www.videolan.org), que es un sotware para vídeo streaming y
vídeo bajo demanda.
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
• El catálogo de aplicaciones comerciales que soportan mul6cast va creciendo,
por ejemplo:
– Windows Media (Microsot)
– Real Player (Real Video)
– Quick6me (Apple)
– IP/TV (Cisco)
• También se u6liza mul6cast en algunos programas de transferencia masiva de
información, como el Norton Ghost, de Symantec
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Distribución de contenidos mul6media en una red unicast
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
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Clase Mul6castSocket public class Mul8castSocket extends DatagramSocket {
public Mul8castSocket() throws IOExcep8on public Mul8castSocket(int port) throws IOExcep8on public void setTTL(byte al) throws IOExcep8on public byte getTTL() throws IOExcep8on public void joinGroup(InetAddress mcastaddr) throws IOExcep8on public void leaveGroup(InetAddress mcastaddr) throws IOExcep8on public synchronized void send(DatagramPacket p, byte al) throws IOExcep8on
}
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza
Ejemplo import java.net.*; public class mcast {
public sta6c void main (String args[]) throws java.io.IOExcep6on { byte[] m = {'H','e','l','l','o'}; InetAddress group = InetAddress.getByName("228.5.6.7"); Mul8castSocket s = new Mul8castSocket(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 2015-‐1 M.I.Yasmine Macedo Reza
Protocolos para Streaming
• Existe 2 formas de realizar streaming: – Directo (6empo real)
• Udp,rtsp Con esta alterna6va 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 6empo real. Además no se produce una descarga completa del medio, sino que conforme se descarga se va descartando una vez ha sido u6lizado RTPS (Esta basado en HTTP) puede u6lizar udp y tcp
– Bajo demanda
• Tcp (h�p o tp)
Arquitecturas Cliente/Servidor, Sem 2015-‐1 M.I.Yasmine Macedo Reza