Arquitecturas Cliente / Servidor - Páginas Personalesprofesores.fi-b.unam.mx/yasmine/tema4.pdf ·...

67
ARQUITECTURAS CLIENTE / SERVIDOR Sockets broadcasting y multicasting Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza

Transcript of Arquitecturas Cliente / Servidor - Páginas Personalesprofesores.fi-b.unam.mx/yasmine/tema4.pdf ·...

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 IGMP

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

ROUTING

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