![Page 1: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/1.jpg)
Temario• Introducción• Clientes TCP • Servidores Iterativos TCP • Servidores Concurrentes • UDP• Multicasting • Sincronización de procesos distr.• Objetos remotos• Middleware para sist distr. • Programacion en la Web
![Page 2: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/2.jpg)
Evaluación• 2 controles 1 exámen
– control 1 después de Servidores concurrentes – control 2 después de Middleware para ...– Examen entra todo
• 4 Tareas obligatorias + 1 recuperativa
• Un trabajo de investigación (grupo de 2-3 personas)
![Page 3: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/3.jpg)
Introducción
Cc50h otoño 2003
![Page 4: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/4.jpg)
Por qué sistemas distribuidos
- Compartir recursos- Comunicar personas- Performance, escalabilidad- sistemas tolerantes a fallas
![Page 5: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/5.jpg)
Ya sabemos cómo se comunican los computadores pero...
![Page 6: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/6.jpg)
... Cómo se comunican los programas ?
PROG1 PROG2
Necesitan establecer un protocolo !
- Quién manda los datos primero- Qué tipo de datos- Cómo reaccionar a los datos
![Page 7: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/7.jpg)
Cada capa tiene la ilusión de estar comunicándose con la correspondiente
A SERVER
A CLIENT
A CLIENT
A CLIENT
4444
The UDP: User Defined Package: like writing a letterSecuencias lectura/escritura
comunicación UDP o TCP
Tramas y direcciones IP
electricpulses
![Page 8: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/8.jpg)
Decisiones al Desarrollar un Sistema Distribuido
• Qué servicio de la capa de transporte vamos a usar (TCP, UDP, o un middleware)
• Arquitectura del Software : replicada, centralizada• Arquitectura de las comunicaciones : centralizada,
en red• Diseño de los servidores : concurrentes, iterativos,
con/sin estado• Etc…
![Page 9: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/9.jpg)
Internet : Dos maneras básicas para transmitir mensajes (desde el punto de
vista del programador)
The UDP: User Defined Package: like writing a letter
TCP or UDP
![Page 10: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/10.jpg)
Hoy día hay una gran oferta de middleware que hace la programación
de sistemas distribuidos más fácil
Bibliotecas y servicios para el desarrollo (middleware)
RPC, CORBA, RMI
![Page 11: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/11.jpg)
Arquitecturas Cliente-Servidor
• ¿ Qué son las arquitecturas cliente/servidor ? – El modelo cliente/servidor (oidor/llamador)
• Porque TCP/IP no provee ningun mecanismo que automáticamente cree un programa que empeice a ejecutarse cuando llega un mensaje, un programa debe esperar a aceptar una comunicación ANTES que el requerimiento llegue.
• ¿ Existe otra forma de comunicarse ?– Multicasting (el servidor no tiene idea de los clientes)
• ¿ Qué son los ports de protocolo de una máquina ?– Es una dirección dentro de la máquina en la cual hay un programa
servidor escuchando si hay algun cliente que quiere solicitar algún servicio que él presta. En máquinas UNIX hay “ports bien conocidos” para ciertos servicios. Para acceder a los servicios se debe seguir un cierto protocolo. Tanto el port como el protocolo deben ser publicados (conocidos).
![Page 12: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/12.jpg)
El paradigma cliente-servirdor (Por ej. la Web)
Programa servidor web
Webrecursos
requerimiento
respuesta
THE INTERNET
requerimientorespuesta
Programa cliente web
![Page 13: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/13.jpg)
1- El servidor abre un canal por el cual comienza a “oir” peticiones.
SERVIDOR
Webrecursos
INTERNET
CLIENTE
1 ?
![Page 14: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/14.jpg)
2- Un cliente que conoce esto, manda un mensaje y espera una respuesta
SERVIDOR
Webrecursos
INTERNET
CLIENTE
2
2
![Page 15: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/15.jpg)
3- El servidor analiza el request y manda una respuesta de acuerdo al
protocolo preestablecido
SERVIDOR
Webresources
THE INTERNET
CLIENTE
3
3
Esto pasa a todo nivel !!!
![Page 16: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/16.jpg)
El Modelo Cliente-servidor
Cliente
Cliente
Servidor1
Servidor2
Servidor3
invocación
resultado
![Page 17: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/17.jpg)
Servicios provistos por múltiples servidores
Cliente
Cliente
Servidor1
Servidor2
Servidor1
![Page 18: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/18.jpg)
Proxy servers y caches
Cliente
Cliente
Proxy/cache
Servidor2
Servidor1
![Page 19: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/19.jpg)
Aplicaciones “pares”
Aplicacón+
Coordinación
Aplicacón+
Coordinación
Aplicacón+
Coordinación
![Page 20: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/20.jpg)
Arquitecturas de comunicaciones para Aplicaciones Distribuidas
• Servidores como Clientes– Los programas no siempre se comportan definitivamente como
servidores puros o como clientes puros. Ej: un servidor de archivos que necesita un timestamp para registrar el último cambio.
– Cuando todas las aplicaciones deben comportarse simultáneamente como servidores y clientes: ¿ cómo organizar las comunicaciones ?
• Cada aplicación abre un canal con otra aplicación (configuración red)
• Hay un servidor de comunicaciones y todoas las aplicaciones se comunican con él (configuración estrella).
![Page 21: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/21.jpg)
Arquitectura de comunicación en red
• Cada par de aplicaciones que necesitan comunicarse abren un canal exclusivo
• Se abren a lo más n*(n-1)/2 canales para n aplicaciones
• Ventajas: – un canal exclusivo, no hay cuellos de botella
• Desventajas: – todas las aplicaciones deben saber cómo comunicarse con las demás. – La dinámica se vuelve más complicada (entrada/salida de aplicaciones)
![Page 22: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/22.jpg)
Arquitectura de comunicación en estrella
• Las aplicaciones envían sus requerimientos de comunicación a un servidor y éste se encarga de mandarlas a su punto de destino final.
• Se abren a lo más n canales para n aplicaciones
• Ventajas: – Es más fácil manejar los parámetros de la comunicación
• Desventajas: – se puede saturar el servidor o las líneas.
![Page 23: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/23.jpg)
Arquitecturas Replicadas
• Cada computador tiene una copia de la aplicación y los datos
• Modificaciones locales se “distribuyen” a todos los participantes
• sincronización normalmente por eventos, no por estados
• Qué pasa con los que llegan más tarde ?
• La aplicación es normalmente la misma para todos
• la arquitectura de las comunicaciones puede ser centralizada o en red
![Page 24: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/24.jpg)
Arquitectura replicada
Datos
DatosDatos
vista
datos
Comp
![Page 25: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/25.jpg)
Arquitecturas Semi Replicadas
• Los datos se mantienen centralizados en un servidor
• Cada cliente mantiene su propia “vista” actualizada de los datos
• modelo único, varias vistas y controlador replicados
• Uso de interfaces distintas frecuente
• Sincronizacion por estado y eventos igualmente posible
• Arquitectura de las comunicaciones normalmente centralizada (servidor de comunicaciones donde esta el modelo)
![Page 26: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/26.jpg)
Arquitectura parcialmente replicada
Datos
Datos
Datos
![Page 27: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/27.jpg)
Arquitecturas Centralizadas
• Los datos y la vista se mantienen centralizados en un servidor
• Cada cliente aporta un servidor gráfico para desplegar la vista
• Todos comparten los mismos datos y las vistas
• Sincronización por nedio de estado (de la vista)
• Arquitectura de las comunicaciones simpre centralizada
• Necesidad de implementar filtros
• Provoca gran tráfico de datos (ya que se refresca la vista)
• De uso general
![Page 28: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/28.jpg)
Arquitectura totalmente centralizada
Vista / comandos
Vista / comandos
![Page 29: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/29.jpg)
Implementación de Comunicaciones en red TCP/IP
• A “bajo” nivel (¿futuro “assembler de las comunicaciones”?)
- Basado en la abstracción “sockets” y “ports”- Originalmente desarrollado para BSD UNIX pero presentes ahora en casi todos los sistemas (UNIX, LINUX, Macintosh OS, Windows NT)- El destino de un mensaje se establece por dirección de máquina y número de port (esto es verdad también en comunicaciones a más “alto nivel”) cada máquina tiene 2**16 ports- El origen del mensaje es a través de un socket en el cual “pocas” veces importa el port al cual está amarrado- Ports se asocian a servicios (también de comunicación)- Otros sistemas usan IP address y número de proceso (ventajas, desventajas ???)
![Page 30: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/30.jpg)
Las 3 formas básicas• UDP lo más parecido a lo que realmente pasa en la internet El cliente manda un paquete a través de un socket (amarrado a cualquier) dirigido a un ip-address y a un port. El servidor espera recibir paquetes en un port acordado• TCP Simula un flujo de datosEl cliente debe establecer primero una comunicación con el servidor, luego escribe. El servidor debe estar “esperando” la comunicación en un port acordado para luego leer y/o escribir en el flujo de datos abierto • Multicast especial para comunicación en grupos cuando el grupo no está definido desde un principio (sponaneous networking) ya que es igual a UDP pero puede ser recibido por cualquier host que se interese (usa direcciones ip “generales”). Comunicaciones sin servidor central
![Page 31: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/31.jpg)
Protocolos para la comunicación• Cada servicio utiliza un protocolo de
comunicación– Web: HTTP (port 80)– Mail: SMTP– Archivos remotos: FTP– Archivos en red: NFS
• Servidores con/sin Conexión– Las modalidades connectionless style y connection-
oriented style dependen del tipo de protocolo que usemos para conectarnos con una máquina. En el mundo TCP/IP tenemos protocolos TCP (con conexion) y UDP (sin conexión)
![Page 32: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/32.jpg)
El canal usado por las aplicaciones para enviar mensajes (TCP o UDP) se
llama SOCKET
SERVER 1
Cuando un servidor quiere empezar a recibir requerimientos de abre un socket y lo amarra a un port, el cual se identifica con un número
SERVER 2
SERVER 3
www.thisserver.jp
4444
3333
5555
Si un cliente quiere usar los servicios del server 1 debe contactar al host www.thisserver.jp por el port 4444
![Page 33: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/33.jpg)
UDP: Comunicación con datagramasDATAGRAMA: “an independent, self-contained message sent over the internet whose arrival, arrival time and content are not guaranteed” (como el correo en Chile ???....)
A SERVER A CLIENT
4444
www.waseda1.jp
www.waseda1.jp
mensaje
4444
Una vez que el servidor está corriendo, el cliente debe armar undatagrama con la dirección del servidor, número de port y losdatos (mensaje)
www.waseda2.jp
?
![Page 34: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/34.jpg)
Luego debe abrir un socket y enviar el datagrama a la internet. El “routing algorithm” encontrará el camino al computador de destino
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
?
Enviando datagramas con el protocolo UDP
![Page 35: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/35.jpg)
Antes de salir del computador el sistema le coloca al datagrama los datos del remitente
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
!
Enviando datagramas con el protocolo UDP
![Page 36: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/36.jpg)
Si el cleinte espera respuesta del servidor (dependiendo del protocolo de la aplicación) puede empezar a esperar datagramas por el mismo port
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
?
Enviando datagramas con el protocolo UDP
![Page 37: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/37.jpg)
El servidor extrae los datos del remitente, los cuales usa para armar el datagrama de respuesta
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
answer
?
Enviando datagramas con el protocolo UDP
![Page 38: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/38.jpg)
Enviando datagramas con el protocolo UDP
Finalmente el servidor envía la respuesta al cliente (que desde el punto de vista de la programación está convertido en un servidor). El mensaje puede llegar o no, o incluso llegar duplicado. Si se quiere tener seguridad se debe implementala “a mano” o usar. . . . .
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
?
![Page 39: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/39.jpg)
TCP: comunicación con flujo de datos
Con TCP se construye primero un canal (virtual) entre las dos aplicaciones por medio de un rendezvous que el cliente intenta a un servidor que está escuchando.
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
?
![Page 40: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/40.jpg)
TCP: comunicación con flujo de datos
Luego que el cliente contacta al servidor se establece un canal “seguro” de flujo de datos. Por este, el cliente y el servidor pueden enviarse datos. Deben ponerse de acuerdo quién manda que y cómo se reacciona con anterioridad.
A SERVER A CLIENT
4444
www.waseda1.jp
3333
www.waseda2.jp
bla bla bla bla
![Page 41: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/41.jpg)
TCP: cómo se logra la seguridad ?La internet misma funciona con el paradigma de los datagramas “best efort”. Por lo tanto se requiere por parte del enviador recibir una señal de acuso de recibo
Sending bla bla bla
Sending 1st bla
Ack 1st bla
Sending 2nd bla
Ack 2nd bla
Sending 3rd bla
Ack 3rd bla
![Page 42: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/42.jpg)
¿ Si se pierde el mensaje ?El enviador espera un tiempo “razonable” para recibir la confirmación. En caso que esto no ocurra lo manda de nuevo
Sending bla bla bla
Sending 1st bla
Ack 1st bla
Sending 2nd bla
Sending 2nd bla again
Ack 2nd bla
No hay confirmación !!!
LOST !!!
![Page 43: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/43.jpg)
Eficiencia en el procesoEl enviador va a manejar un paquete de mensajes no confirmados
Sending 1st bla
Ack 1st bla
Sending 2nd bla
Ack 2nd bla
Sending 3rd bla
Ack 3rd bla
![Page 44: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/44.jpg)
Protocolos TCP y UDP (I)
• Importancia para el programador: – Al elegir un protocolo con el cual conectarse con otra máquina
determina el nivel de confiabilidad de la transmisión de datos, lo cual repercute en la forma de programar las aplicaciones.
• TCP provee alta confiabilidad: los datos mandados serán recibidos si una conexión entre los 2 computadores se pudo establecer. Hay un protocolo subyacente que se preocupa de retransmitir, ordenar....
• Con UDP el programador debe proveer el protocolo para el caso que se pierdan datos o lleguen en otro orden.
– La forma de programar el envío recibo de datos con ditintos protocolos es también distinta:
• En TCP la forma de transmitir datos es normalmente como un flujo de datos por la conexión establecida.
• Con UDP se deben armar paquetes de datos que son pasados a la internet para ser transmitidos “con el mejor esfuerzo”.
![Page 45: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/45.jpg)
Protocolos TCP y UDP (II)• ¿ Cuándo usar uno u otro ?
– TCP impone una carga bastante mayor a la red que UDP, por lo cual se debe evitar si es “razonablemente posible”
• ¿ Cuándo es “razonablemente posible” ?– Podemos esperar pérdidas cuando los datos tienen que viajar a traves de varias
redes por la internet.– Dentro de una LAN las comunicaciones UDP son relativamente confiables– Algunas veces la información que no llegó a tiempo no tiene sentido
retransmitirla porque ya está obsoleta (¿cuándo?).
• En general se recomienda, especialmente a principiantes, usar sólo TCP en sus aplicaciones. El estilo de programación es más secillo. Los programadores sólo usan UDP si el protocolo de la aplicación misma maneja la confiabilidad, si la aplicación requere usar broadcast o multicast de hardware o la aplicación no puede tolerar el overhead de un circuito virtual.
![Page 46: Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos](https://reader036.vdocuments.mx/reader036/viewer/2022081515/5665b4971a28abb57c9272fd/html5/thumbnails/46.jpg)
Marcar con + las aplicaciones donde se deba usar TCP y con - las que se puede
usar UDP
E-Mail Videoconferencia
Temperatura cada segundo
Servidor y cliente Web
Valores de las acciones cada 5 segundos