Capítulo 2: Capa de Aplicación Flashcards
¿Cuál es el objetivo del desarrollo de aplicaciones de red y en qué consiste?
El núcleo del desarrollo de aplicaciones de red implica escribir programas que se ejecutan en diferentes sistemas finales y se comunican entre sí a través de la red. Requiere escribir software que se ejecute en múltiples sistemas finales.
Explica el concepto de arquitectura de aplicaciones.
La arquitectura de aplicaciones está diseñada por el desarrollador de la aplicación y dicta cómo se estructura la aplicación en diversos sistemas finales. Es diferente de la arquitectura de red, que es fija y proporciona servicios específicos a las aplicaciones.
Describe las características de la Arquitectura Cliente-Servidor. Proporciona ejemplos y menciona consideraciones de escalabilidad.
La Arquitectura Cliente-Servidor implica un host (servidor) siempre activo que atiende solicitudes de múltiples hosts (clientes). Ejemplos incluyen aplicaciones web, FTP y correo electrónico. La escalabilidad puede involucrar centros de datos con múltiples hosts para manejar alta demanda.
¿Cuáles son las características y ejemplos de la Arquitectura Peer-to-Peer (P2P)?
La Arquitectura P2P implica una mínima dependencia de servidores dedicados, comunicación directa entre hosts intermitentemente conectados (pares). Ejemplos incluyen compartir archivos (BitTorrent) y telefonía e videoconferencia por internet (Skype). Algunas aplicaciones combinan elementos Cliente-Servidor y P2P.
En el contexto de sesiones de comunicación entre procesos, ¿qué define a un cliente y a un servidor?
El proceso que inicia la comunicación se denomina cliente, mientras que el proceso que espera ser contactado se llama servidor. Esta definición se aplica independientemente de la arquitectura de la aplicación de red (Cliente-Servidor o P2P).
Explica el concepto de un socket y su papel en la comunicación entre procesos.
Un socket es la interfaz entre el proceso y la red de la computadora. Sirve como la “puerta” del proceso. Los mensajes se envían y reciben a través del socket, proporcionando una interfaz de software entre la capa de aplicación y la capa de transporte.
¿Cómo se logra la dirección de procesos en una red y qué información se necesita con este fin?
Para dirigirse a un proceso, se requiere la dirección IP del host (identificando el host) y un número de puerto (identificando el proceso receptor). Las direcciones IP y los números de puerto se utilizan para identificar de manera única los procesos en diferentes hosts.
¿En qué dimensiones se pueden clasificar los servicios de la capa de transporte y por qué son importantes en el desarrollo de aplicaciones?
Los servicios de la capa de transporte se pueden clasificar en Transferencia de Datos Confiable, Ancho de Banda, Sincronización y Seguridad. Estas dimensiones son cruciales en el desarrollo de aplicaciones, ya que influyen en cómo se transmite la información, la adaptabilidad de las aplicaciones y las características de seguridad disponibles.
Explica los servicios proporcionados por TCP en Internet.
Los servicios de TCP incluyen comunicación orientada a la conexión con handshake, transferencia de datos confiable y control de congestión. Establece conexiones full-duplex, asegurando que los datos se entreguen correctamente y en su totalidad.
Contrasta los servicios proporcionados por TCP y UDP.
TCP proporciona comunicación orientada a la conexión, transferencia de datos confiable y control de congestión. UDP, por otro lado, es sin conexión, proporcionando transferencia de datos no confiable sin handshake ni control de congestión.
¿Qué es un protocolo de capa de aplicación y qué aspectos define?
Un protocolo de capa de aplicación define cómo los procesos en diferentes sistemas finales se envían mensajes. Incluye los tipos, la sintaxis y la semántica de los mensajes, y las reglas para enviar y responder a mensajes. Ejemplos incluyen HTTP, que es el protocolo para la aplicación web.
Proporciona una visión general del protocolo HTTP y sus componentes.
HTTP (Protocolo de Transferencia de Hipertexto) es el protocolo de capa de aplicación de la web. Involucra programas cliente y servidor que intercambian mensajes HTTP. Una página web consta de objetos, cada uno direccionable por una URL. HTTP utiliza TCP como su protocolo de transporte subyacente.
Explica los conceptos de conexiones no persistentes y persistentes en HTTP.
Las conexiones no persistentes utilizan conexiones TCP separadas para cada par de solicitud/respuesta, lo que lleva a una mayor sobrecarga. Las conexiones persistentes reutilizan la misma conexión TCP para múltiples solicitudes/respuestas, reduciendo la sobrecarga y mejorando potencialmente el tiempo de respuesta.
¿Cuál es el papel de las cookies en la interacción usuario-servidor y cómo se implementan en HTTP?
Las cookies se utilizan para identificar a los usuarios en las interacciones web. Consisten en una línea de encabezado de cookie en los mensajes de respuesta y solicitud HTTP, un archivo de cookie en el sistema final del usuario y una base de datos en el servidor web.
¿Qué es el almacenamiento en caché web y cómo contribuye a mejorar el rendimiento de las aplicaciones en Internet?
El almacenamiento en caché web implica el uso de una entidad de red (servidor proxy) para satisfacer las solicitudes HTTP en nombre de un servidor web de origen. Reduce el tiempo de respuesta y el tráfico en el enlace de acceso de una institución almacenando copias de objetos solicitados recientemente.