01 Sep
Tema 2: Capa de Aplicación
Principios de los protocolos de la capa de aplicación
Un proceso puede ser visto como un programa ejecutándose en un sistema final. Cuando los procesos se ejecutan en el mismo sistema, se comunican entre sí. Procesos que se ejecutan en sistemas finales distintos se comunican entre sí intercambiando mensajes a través de una red de computadores. Las aplicaciones de red constan de protocolos de la capa de aplicación que definen el orden y formato en que los procesos intercambian mensajes.
Protocolos de la capa de aplicación
Un protocolo de la capa de aplicación es únicamente una parte de una aplicación de red. Un protocolo de la capa de aplicación define:
· El tipo de mensajes intercambiados
· La sintaxis de los distintos tipos de mensajes.
· La semántica de los campos
· Las reglas que determinan cuándo y cómo un proceso envía y responde mensajes.
Partes Cliente-Servidor: Una aplicación típicamente tiene dos partes: Cliente y Servidor. El lado cliente se comunica con el lado servidor en los sistemas finales de ambos. Para casi todas las aplicaciones de red, el host que inicia la sesión es etiquetado como cliente.
Un socket es la interfaz entre la capa de aplicación y la capa de transporte en un host. También se le denomina API (Interfaz de Programación de Aplicaciones) entre la aplicación y la red, dado que el socket es la interfaz de programación con la que se construyen en Internet las aplicaciones de red
¿Qué servicios necesita una aplicación?
Transferencia Fiable de Datos: Necesitamos que algunas aplicaciones (mensajería, transferencia de archivos) requieran una transferencia completamente fiable, es decir, sin pérdidas. Otras aplicaciones tolerantes a pérdidas, como multimedia.
Ancho de banda
Algunas aplicaciones, deben ser capaces de transmitir datos a una cierta tasa de transferencia. Si ese ancho de banda no está disponible, la aplicación debería codificar a una tasa diferente o abandonar, ya que recibir la mitad del ancho de banda requerido no es de ninguna utilidad para esta aplicación sensible al ancho de banda. La transferencia de archivos y las transferencias web son todas aplicaciones flexibles.
Temporización
Muchas aplicaciones requieren, para ser efectivas, de estrictas restricciones de temporización sobre el envío de datos.
Servicios TCP
Servicio orientado a la conexión y un servicio fiable de transferencia de datos.
· Servicio orientado a la conexión: TCP hace que el cliente y servidor intercambien entre sí información de control de la capa de transporte. Se dice que existe una conexión TCP entre los sockets cuando el proceso handshaking alerta al cliente y al servidor, permitiendo que se preparen para una acometida de paquetes.
· Servicio fiable de transporte: Los procesos de comunicación se basan en
TCP para enviar todos los datos sin errores y en el orden apropiado.
Servicios UDP
UDP es un protocolo de transporte ligero, sin adornos, con un modelo de servicio minimalista. UDP funciona sin conexión, en el sentido de que no hay acuerdo antes
de que los dos procesos comiencen a comunicarse.
La web y HTTP
Introducción a HTTP
El protocolo de transferencia de hipertexto, capa de aplicación web.
HTTP define cómo los clientes web demandan páginas web, y cómo los servidores transfieren estas páginas web a los clientes. HTTP no necesita preocuparse de la pérdida de datos o de detalles de cómo TCP recupera la pérdida o reordena los datos en la red. Se dice que HTTP es un protocolo sin estado, porque el servidor HTTP no guarda información sobre los clientes.
Conexiones no persistentes y persistentes
Conexión no persistente.
· Cada conexión TCP transporta un mensaje de solicitud y uno de respuesta
· Se envía como máximo un objeto por cada conexión TCP
Cálculo estimado del tiempo que transcurre desde que el cliente pide el archivo base hasta que es recibido completamente por el cliente, se define el tiempo de ida y vuelta (RTT). Tiempo que tarda un pequeño paquete en ir desde el cliente hasta el servidor y después de vuelta al cliente.
Conexiones persistentes
Con las conexiones persistentes, el servidor deja abierta la conexión TCP después de enviar una respuesta. Existen dos versiones de conexiones persistentes: con entubamiento y sin entubamiento.
· Sin entubamiento, el cliente solo emite una nueva petición cuando la respuesta previa ha sido recibida. Otra ventaja es que después de que el servidor envía un objeto sobre la conexión TCP persistente, la conexión no hace nada aparte de esperar a que llegue otra conexión Form
FTP
Transferencia de ficheros hacia/desde un host, es un protocolo de modelo cliente/servidor. El cliente FTP establece una conexión TCP de control (usuario y contraseña). Cuando el servidor recibe la orden de transferir ficheros, 2ª conexión TCP de datos.
Correo Electrónico
Tres elementos principales para el correo electrónico
· Cliente de correo: Sirve para editar, leer, enviar mensajes.
· Servidor de Correo: Contiene todos los mensajes entrantes de un usuario.
Posee una cola de mensajes salientes que tienen que ser enviados.
· Protocolo SMTP: Utiliza TCP para enviar los emails.
SMTP
Es un protocolo, que usa TCP para transferencia fiable de correo desde el cliente al servidor. Usa transferencia directa de emisor receptor. La transferencia se divide en tres fases:
1. El cliente especifica el correo del emisor y destinatario
2. Una vez reconocido, el servidor envía el mensaje
3. El cliente repite este proceso para el resto de mensajes. En caso contrario cierra la conexión.
DNS
El DNS puede referirse a:
1. Base de datos distribuida implementada de forma jerárquica con varios servidores de nombres
2. Protocolo de la capa de aplicación que permite a los host consultar esa BD
distribuida.
Los servicios con los que cuenta la DNS son entre ellos la traducción del nombre del host a una dirección IP, les da un alias a los host (nombre canónico y alias), distribuye la carga y es un servicio que es transparente para el usuario.
Programación Sockets
El objetivo es construir aplicaciones cliente/servidor que se comuniquen mediante sockets. Un sockets es una interfaz por la que un proceso puede enviar o recibir mensajes de/a otro proceso.
Para utilizar estos sockets debemos tener en cuenta algunas cosas como:
· El servidor debe estar ejecutando el proceso antes de que el cliente le envíe algo.
· El servidor debe tener un socket a través del cual recibe o envía segmentos.
· El socket se identifica localmente con un puerto
· El cliente necesita conocer la IP y el puerto del servidor.
Programación Sockets UDP
Al ser UDP, no contamos con una “conexión” entre el cliente y el servidor. La fase inicial de negociación no esta disponible, el emisor asocia la ip y el puerto al paquete destino, el modelo de servicio no es fiable, hace el máximo esfuerzo para suministrar los bits al destino. Finalmente el servidor extra la IP y el puerto del emisario al paquete (datagrama) recibido.
UDP proporciona transferencia no fiable de grupos de bytes entre cliente y servidor.
Programación Sockets TCP
A diferencia de los Sockets UDP, este es un servicio de transferencia fiable de bytes de un proceso a otro. El funcionamiento debe ser de la siguiente forma:
El cliente debe iniciar el contacto: El proceso servidor debe estar ejecutándose y el servidor debe tener un socket que le permita interactuar.
El cliente contacta con el servidor: Crea el socket TCP, especifica la IP y puerto. Una vez contactado con el servidor: creamos el socket que permite al servidor
comunicarse con varios clientes.
TCP proporciona de bytes (“pipe”) transferencia fiable y en orden entre cliente y
servidor.
Deja un comentario