arquitecturas+cliente+/+servidor+ - páginas...

67
Arquitecturas Cliente / Servidor Sockets broadcas6ng y mul6cas6ng Arquitecturas Cliente/Servidor, Sem 20151 M.I.Yasmine Macedo Reza

Upload: buidiep

Post on 21-Sep-2018

216 views

Category:

Documents


0 download

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  

IGMP  

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      

Rou6ng  

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