Aplicaciones de Red y Protocolos

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

¿En qué se diferencia fundamentalmente una aplicación de red de un protocolo de capa de aplicación, considerando la modularidad y la funcionalidad en arquitecturas telemáticas complejas?

  • Un protocolo de capa de aplicación incluye la interfaz de usuario, mientras que una aplicación de red se centra en la gestión de la infraestructura física.
  • No existe diferencia, ambos términos son intercambiables y se refieren a la gestión del intercambio de datos.
  • Una aplicación de red proporciona un servicio específico al usuario, mientras que un protocolo rige el intercambio de información entre procesos de aplicaciones. (correct)
  • Una aplicación de red define las normas de comunicación, mientras que un protocolo ofrece servicios directos al usuario.

En el contexto del paradigma cliente/servidor, ¿cómo influye la disponibilidad continua del servidor en la arquitectura general y la tolerancia a fallos del sistema?

  • La disponibilidad continua es un concepto obsoleto, reemplazado por arquitecturas distribuidas que no dependen de un único punto de fallo.
  • La disponibilidad continua del servidor garantiza que los clientes siempre tengan acceso al servicio, incrementando la fiabilidad y la necesidad de mecanismos de redundancia y balanceo de carga. (correct)
  • Solo es necesaria la disponibilidad del cliente para que el servicio sea considerado funcional.
  • La disponibilidad continua del servidor es irrelevante, ya que el cliente puede reconectarse a otro servidor en caso de fallo.

¿Cómo se manejan las peticiones simultáneas de múltiples clientes en un servidor diseñado para ofrecer un servicio telemático, considerando las limitaciones de recursos del sistema?

  • El servidor requiere que los clientes esperen en una cola hasta que sus peticiones puedan ser atendidas secuencialmente.
  • El servidor utiliza técnicas de multihilo o multiproceso para atender concurrentemente las peticiones, optimizando el uso de recursos y manteniendo la capacidad de respuesta. (correct)
  • El servidor ignora las peticiones simultáneas y atiende solo la primera en llegar, descartando las demás.
  • El servidor replica instancias del servicio para cada cliente, consumiendo recursos adicionales y aumentando la complejidad de gestión.

En el contexto de las aplicaciones Peer-to-Peer (P2P), ¿cuáles son las implicaciones de la descentralización en la escalabilidad, la seguridad y la resiliencia de la red?

<p>La descentralización de P2P mejora la escalabilidad y la resiliencia al distribuir la carga y eliminar puntos únicos de fallo, pero complica la seguridad y el descubrimiento de nodos. (B)</p> Signup and view all the answers

¿Cómo afecta la elección entre UDP y TCP al diseño de aplicaciones telemáticas en términos de fiabilidad, latencia y gestión de la congestión de la red?

<p>TCP proporciona una transmisión fiable y control de congestión, mientras que UDP ofrece baja latencia a expensas de la fiabilidad, lo que influye en la idoneidad para diferentes tipos de aplicaciones. (A)</p> Signup and view all the answers

Considerando la evolución de HTTP desde HTTP/1.1 hasta HTTP/3, ¿cómo han cambiado los mecanismos de gestión de conexiones y qué impacto tienen en la latencia y el rendimiento de las aplicaciones web modernas?

<p>HTTP/2 introdujo la multiplexación de conexiones y la priorización de peticiones, reduciendo la latencia. HTTP/3, usando QUIC sobre UDP, mejora aún más la gestión de la congestión y reduce la latencia, impactando positivamente el rendimiento. (D)</p> Signup and view all the answers

¿Cuál es la importancia de la normalización de protocolos en Internet y cómo influye el proceso de Request for Comments (RFC) en la interoperabilidad y la adopción global de nuevas tecnologías?

<p>La normalización de protocolos asegura la interoperabilidad y la adopción global de tecnologías. El proceso RFC, gestionado por IETF, facilita la revisión, el desarrollo y la implementación estandarizada de nuevos protocolos. (A)</p> Signup and view all the answers

¿Cómo impacta la elección de la arquitectura front-end (por ejemplo, el uso de HTML, CSS y JavaScript) en la escalabilidad, el rendimiento y la mantenibilidad de aplicaciones web complejas, considerando las limitaciones del navegador y el dispositivo del cliente?

<p>Una arquitectura front-end bien diseñada, que optimice el uso de recursos del navegador, reduzca la complejidad del código y separe la presentación de la lógica, mejora la escalabilidad, el rendimiento y la mantenibilidad de aplicaciones web complejas. (B)</p> Signup and view all the answers

¿Cómo se pueden aprovechar los métodos HTTP (GET, POST, PUT, DELETE, etc.) en el diseño de APIs RESTful para modelar operaciones sobre recursos de manera que se optimice la semántica, la coherencia y la seguridad de la aplicación?

<p>La elección adecuada de métodos HTTP, respetando su semántica y coherencia, permite modelar operaciones de manera eficiente y mejorar la seguridad, aprovechando las características implícitas del protocolo. (A)</p> Signup and view all the answers

¿Qué ventajas y desventajas presenta el uso de arquitecturas basadas en microservicios en el contexto de aplicaciones IoT complejas, considerando la gestión de la comunicación, la escalabilidad y la monitorización de los dispositivos?

<p>Aunque complican la gestión y monitorización, los microservicios en IoT, permiten escalar componentes independientemente, aislar fallos y adaptarse a las limitaciones de dispositivos. (D)</p> Signup and view all the answers

¿Cómo afecta la elección de un protocolo de comunicación para IoT (como MQTT, CoAP o AMQP) a la eficiencia energética, la fiabilidad y la seguridad de la comunicación en entornos con recursos limitados y alta variabilidad de la conectividad?

<p>Un protocolo ligero como CoAP puede ser más eficiente energéticamente y adecuado para entornos con baja conectividad, mientras que MQTT puede ofrecer mayor fiabilidad; ambos protocolos tienen implicaciones importantes para la seguridad. (A)</p> Signup and view all the answers

En relación con los protocolos de transporte en Internet, ¿qué diferencias sustanciales existen entre la gestión de la transmisión fiable de datos en TCP y la no garantizada en UDP?

<p>TCP utiliza mecanismos complejos como el establecimiento de conexión, secuenciación, confirmación y retransmisión para garantizar la entrega fiable, mientras que UDP simplemente envía los datos sin confirmación, optimizando la velocidad a expensas de la fiabilidad. (D)</p> Signup and view all the answers

¿Cómo influyen los algoritmos de control de congestión en TCP, como Reno, Cubic o BBR, en la equidad, la eficiencia y la capacidad de adaptación de la red ante variaciones en el tráfico y la disponibilidad de ancho de banda?

<p>Estos algoritmos modulan la tasa de envío en función de la congestión detectada, afectando la equidad (distribución justa del ancho de banda), la eficiencia (utilización óptima) y la adaptación a cambios en el tráfico y la disponibilidad. (C)</p> Signup and view all the answers

¿Qué implicaciones tiene el uso de TLS (Transport Layer Security) en la sobrecarga computacional y la latencia en aplicaciones web de alto rendimiento, y cómo se pueden mitigar estos efectos?

<p>TLS, aunque mejora la seguridad, aumenta la sobrecarga computacional y la latencia debido al cifrado y la gestión de claves, lo que puede mitigarse con optimizaciones como la reutilización de sesiones, el uso de hardware criptográfico y algoritmos de cifrado eficientes. (C)</p> Signup and view all the answers

¿Cómo influyen los mecanismos de calidad de servicio (QoS) en redes IP, como DiffServ o IntServ, en la priorización del tráfico y la garantía de ancho de banda para aplicaciones en tiempo real, como VoIP o videoconferencia?

<p>DiffServ y IntServ son mecanismos que permiten priorizar el tráfico y reservar ancho de banda para aplicaciones en tiempo real, mejorando la calidad de la experiencia del usuario a expensas de la complejidad en la configuración de la red. (C)</p> Signup and view all the answers

¿De qué manera los protocolos de enrutamiento, como BGP (Border Gateway Protocol), influyen en la estabilidad, la escalabilidad y la seguridad del Internet, y qué desafíos específicos presentan en la gestión de políticas de enrutamiento y la mitigación de ataques?

<p>BGP facilita la interconexión autónoma de redes, impactando seguridad, con desafíos asociados en la seguridad y mitigación de ataques como el secuestro de rutas. (B)</p> Signup and view all the answers

¿Qué implicaciones tiene el uso de WebSockets en términos de eficiencia, escalabilidad y compatibilidad con firewalls y proxies en comparación con las técnicas tradicionales de polling y long polling para aplicaciones web en tiempo real?

<p>WebSockets, al mantener una conexión persistente full-dúplex, reducen la latencia y la sobrecarga en comparación con la emulación en el polling y el long polling, aunque podrían tener problemas con firewalls y proxies. (A)</p> Signup and view all the answers

¿Cuáles son los desafíos clave en la gestión de la seguridad en redes inalámbricas, como la protección contra ataques de denegación de servicio (DoS), la detección de intrusos y el aseguramiento de la confidencialidad de la información transmitida?

<p>La gestión de la seguridad en redes inalámbricas requiere una combinación de medidas técnicas y políticas, incluyendo la encriptación robusta, la detección de intrusos, la autenticación fuerte y la mitigación de ataques DoS. (A)</p> Signup and view all the answers

¿Cómo se pueden utilizar las técnicas de virtualización y contenerización para mejorar la eficiencia, la flexibilidad y la portabilidad de las aplicaciones en la nube, considerando las implicaciones en el aislamiento, la seguridad y la gestión de recursos?

<p>Las técnicas de virtualización y contenerización mejoran eficiencia, flexibilidad y portabilidad, aunque requieren consideraciones sobre aislamiento, seguridad y recursos. (A)</p> Signup and view all the answers

¿Qué papel juegan los protocolos de descubrimiento de servicios, como mDNS (Multicast DNS) o UPnP (Universal Plug and Play), en la configuración automática y la interoperabilidad de dispositivos en redes domésticas y empresariales?

<p>mDNS y UPnP facilitan la configuración y la interoperabilidad. Facilitan la configuración automática y la detección entre dispositivos. (C)</p> Signup and view all the answers

¿Cómo se pueden utilizar las técnicas de aprendizaje automático (machine learning) para mejorar el rendimiento, la seguridad y la eficiencia energética de las redes inalámbricas, mediante la optimización de la asignación de recursos, la detección de anomalías y la predicción del tráfico?

<p>Machine learning agiliza la asignación de recursos, facilita detección de anomalías y predice el tráfico. Permite mejorar significativamente rendimiento, seguridad y eficiencia energética. (D)</p> Signup and view all the answers

¿Qué desafíos plantea el diseño de redes vehiculares ad hoc (VANETs) en términos de movilidad, densidad de nodos y seguridad, y cómo se pueden adaptar los protocolos de enrutamiento y comunicación para garantizar la conectividad y la fiabilidad en entornos dinámicos?

<p>El diseño de VANETs debe tener en cuenta la elevada movilidad y la seguridad; los protocolos de enrutamiento y comunicación deben ser por lo tanto adaptativos y robustos. (B)</p> Signup and view all the answers

¿Cómo impacta la adopción de IPv6 en la escalabilidad, la seguridad y la gestión de redes, y qué estrategias de transición se pueden emplear para facilitar la coexistencia de IPv4 e IPv6 en la infraestructura de Internet existente?

<p>La transición a IPv6 precisa de una coexistencia con IPv4 con estrategias de transición como el dual stack, la seguridad no se ve alterada y aumenta la escalabilidad. (A)</p> Signup and view all the answers

¿Qué funciones cumplen el direccionamiento jerárquico y el Domain Name System (DNS) en el enrutamiento y la resolución de nombres en Internet, y qué vulnerabilidades de seguridad específicas presentan estos sistemas?

<p>El direccionamiento jerárquico y el DNS, importantes en el enrutamiento y la resolución de nombres, presentan vulnerabilidades como el envenenamiento de caché y ataques DDoS. (C)</p> Signup and view all the answers

¿Cómo se pueden emplear las tecnologías de virtualización de funciones de red (NFV) y las redes definidas por software (SDN) para mejorar la flexibilidad, la eficiencia y la programabilidad de las redes, y qué desafíos presentan en la gestión, la seguridad y la interoperabilidad?

<p>NFV y SDN, mejoran la flexibilidad y programabilidad presentando retos en gestión, seguridad e interoperabilidad. (A)</p> Signup and view all the answers

Flashcards

¿Qué es una aplicación de red?

Aplicación que proporciona un servicio a usuarios, máquinas u otras aplicaciones en una red.

¿Qué es un protocolo de capa de aplicación?

Normas que gestionan cómo los procesos de aplicaciones intercambian información.

¿Qué es un servidor?

Aplicación que proporciona un servicio.

¿Qué es un cliente?

Aplicación que solicita servicios a un servidor.

Signup and view all the flashcards

¿Qué es una aplicación servidora?

Programa que se ejecuta en una máquina remota y da un servicio.

Signup and view all the flashcards

¿Qué es un cliente en el modelo Cliente/Servidor?

Programa ejecutado localmente para solicitar un servicio remoto.

Signup and view all the flashcards

¿Cómo se comunica un cliente con un servidor?

Un cliente se comunica con un servidor a través de una dirección IP y un puerto.

Signup and view all the flashcards

¿Qué son las aplicaciones P2P?

Aplicaciones que actúan como cliente y servidor a la vez.

Signup and view all the flashcards

¿Cuáles son los protocolos de transporte en Internet?

UDP y TCP.

Signup and view all the flashcards

¿Qué es HTTP?

Protocolo para intercambiar información en la web.

Signup and view all the flashcards

¿Qué es TLS?

Capa de seguridad entre transporte y aplicación (HTTPS).

Signup and view all the flashcards

¿Dónde se implementan los protocolos extremo a extremo?

Software en el núcleo del sistema operativo.

Signup and view all the flashcards

¿Qué define un protocolo de la capa de aplicación?

Permite que los procesos intercambien mensajes.

Signup and view all the flashcards

¿Qué aspectos define un protocolo de la capa de aplicación?

Tipos de mensajes, sintaxis y semántica de los campos, y reglas de comunicación.

Signup and view all the flashcards

¿Qué protocolos se usan en el correo electrónico?

SMTP, POP3 e IMAP.

Signup and view all the flashcards

¿Qué protocolos se usan para transferencia de ficheros?

FTP y TFTP.

Signup and view all the flashcards

¿Qué es DNS?

Domain Name System. Proporciona nombres de dominio.

Signup and view all the flashcards

¿Qué son las RFC?

Request for Comments. Documentos que describen Internet.

Signup and view all the flashcards

¿Qué proporciona UDP?

Proporciona un servicio sin garantías de entrega o secuenciación.

Signup and view all the flashcards

¿Qué proporciona TCP?

Proporciona un servicio confiable, orientado a conexión, para aplicaciones.

Signup and view all the flashcards

¿Qué hace TCP?

Establece conexiones de transporte entre puertos de diferentes sistemas.

Signup and view all the flashcards

¿Qué es HTTP?

HyperText Transfer Protocol. Protocolo para la World Wide Web.

Signup and view all the flashcards

¿Qué es un URI?

Uniform Resource Identifier. Identifica un recurso en la web.

Signup and view all the flashcards

¿Qué es un URL?

Uniform Resource Locator. Un tipo de URI para el servicio web.

Signup and view all the flashcards

¿Cuáles son los componentes principales de HTTP?

Cliente: Agente de usuario (navegador). Servidor: Servidor web.

Signup and view all the flashcards

¿Qué incluye un mensaje de petición HTTP?

Método de petición, Cabeceras, Recurso o entidad (en peticiones POST).

Signup and view all the flashcards

¿Qué contiene un mensaje de respuesta HTTP?

Código de estado, Nuevos campos y/o el recurso incluido.

Signup and view all the flashcards

¿Cuáles son las versiones actuales de HTTP?

HTTP/1.1, HTTP/2, HTTP/3.

Signup and view all the flashcards

¿Qué son las tecnologías front-end?

Tecnologías que se ejecutan en el navegador del usuario.

Signup and view all the flashcards

¿Cuáles son los tres pilares fundamentales del desarrollo front-end?

HTML, CSS, JavaScript.

Signup and view all the flashcards

¿Qué es HTML?

Lenguaje de marcas para crear páginas web con estructura y contenido.

Signup and view all the flashcards

¿Qué es XML?

Lenguaje de marcas para definir cualquier tipo de información, más estricto que HTML.

Signup and view all the flashcards

¿Qué son los vocabularios XML?

Documentos de especificación que permiten definir marcas, jerarquía y atributos en XML.

Signup and view all the flashcards

¿Qué es JSON?

Formato de datos para representar objetos.

Signup and view all the flashcards

¿Qué son las tecnologías ORM?

Proporcionan persistencia y acceso a datos. Mapean datos abstractos a bases de datos.

Signup and view all the flashcards

¿Qué hace el controlador en la arquitectura MVC?

Recibe peticiones del usuario, las procesa y envía la salida a la vista.

Signup and view all the flashcards

¿Qué permite el método HTTP PUT?

Permite enviar un fichero al servidor especificado en la URI.

Signup and view all the flashcards

¿Qué permite el método HTTP TRACE?

Permite solicitar una copia de la petición enviada al servidor.

Signup and view all the flashcards

¿Qué permite el protocolo WebSocket?

Permite la comunicación bidireccional asíncrona sobre una sola conexión TCP.

Signup and view all the flashcards

Study Notes

Aplicaciones de Red vs. Protocolos de Capa de Aplicación

  • Una aplicación de red proporciona un servicio específico a usuarios, máquinas u otras aplicaciones.
  • Los protocolos de la capa de aplicación son normas que rigen el intercambio de información entre procesos de la aplicación.
  • Una aplicación puede usar diferentes protocolos de capa de aplicación, incluso en diferentes procesos.

Modelo Cliente/Servidor

  • Para dar un servicio, se necesita una aplicación:
    • Servidor: proporciona el servicio.
    • Cliente: solicita el servicio.
  • Normalmente se da la relación:
    • Un servidor.
    • Muchos clientes.
  • El servidor debe estar en ejecución continua en una red para que los clientes accedan al servicio cuando lo necesiten.
  • Una aplicación servidora puede ofrecer varios servicios.
  • Varios dispositivos servidores pueden ser necesarios para dar un servicio de forma adecuada.
  • El Servidor es un programa que se ejecuta en una máquina remota, proporcionando un servicio a los clientes.
  • Al iniciarse el servidor, establece un mecanismo para recibir y atender peticiones de los clientes.
  • El servidor no suele iniciarse hasta que es requerido.
  • El Cliente es un programa ejecutado localmente que solicita un servicio específico a un servidor remoto.
  • El Cliente es un programa finito que está activo hasta que el servicio se completa o se apaga.

Proceso de Solicitud de Servicio en Internet

  • Paso 1: El cliente establece un canal de comunicación con el servidor usando su dirección IP y un puerto "bien conocido".
  • Paso 2: El cliente envía su petición a través de ese canal.
  • Paso 3: Normalmente, el cliente recibe una respuesta, repitiendo esto hasta completar el servicio.
  • Este proceso está normalmente acotado en tiempo y tiene un final establecido.

Aplicaciones Peer-to-Peer (P2P)

  • Algunas aplicaciones no son solo clientes o servidores, sino ambos a la vez debido a su naturaleza distribuida.
  • Todos los participantes actúan como proveedores y consumidores del servicio.
  • Ejemplos de funcionalidades: Compartición de archivos e impresoras y multi-conferencias.
  • Algunos ejemplos: BitTorrent, uTorrent, Shareaza y el protocolo Gnutella.
  • Formando una nueva red que solo da servicios a sus miembros.
  • El mayor problema es descubrir a los otros miembros, a menudo apoyándose en servidores o listas iniciales.

Protocolos de Transporte en Internet

  • Los niveles de transporte y aplicación son los más cercanos para el diseño de servicios en IoT.
  • Protocolos de transporte comunes: UDP y TCP.
  • Protocolo de aplicación típico: HTTP (Hyper-Text Transfer Protocol).
  • El uso de TLS (Transport Layer Security) entre transporte y aplicación da más seguridad, creando HTTPS.

Protocolos Extremo a Extremo

  • Implementados normalmente en el núcleo del sistema operativo.
  • El rendimiento afecta de manera importante a las comunicaciones.
  • Son muy complejos de modificar o estandarizar.
  • Algunos protocolos recientes usan UDP como base: RTP o QUIC.

Protocolos de la Capa de Aplicación

  • Definen cómo los procesos de una aplicación específica intercambian mensajes.
  • Usan servicios de una capa de transporte subyacente, normalmente un solo tipo.
  • El protocolo DNS suele usar UDP, pero a veces usa TCP.
  • Se pueden definir protocolos propietarios para servicios concretos.

Definición de un Protocolo de la Capa de Aplicación

  • El tipo de mensajes intercambiados (petición, respuesta, error, etc.).
  • Sintaxis de los mensajes (campos, longitud, etc.).
  • La semántica de los campos (significado de la información).
  • Reglas sobre cuándo enviar/responder mensajes y cómo tratarlos.

Ejemplos de Protocolos y Aplicaciones en Internet

  • Correo Electrónico: SMTP (envío), POP3/IMAP (lectura), todos sobre TCP.
  • Transferencia de Ficheros: FTP (sobre TCP) y TFTP (sobre UDP o TCP según el tamaño).
  • Nombres de Dominio: DNS (sobre UDP y TCP).
  • World Wide Web: HTTP (sobre TCP, HTTP/3 va sobre QUIC).

Normalización de Protocolos en Internet

  • La mayoría de los protocolos de aplicación se desarrollan dentro del IETF.
  • Los documentos que describen Internet son los "Request for Comments" (RFC).
  • Se puede consultar el estado de cualquier documento en: https://www.rfc-editor.org/.
  • UDP permite una conexión con una sobrecarga baja para protocolos que no necesitan TCP.
  • UDP se usa en aplicaciones de difusión y multidifusión y requiere tiempos cortos para obtener información.
  • Su identificador de protocolo es 17.
  • El protocolo UDP está definido en el RFC 768.

Protocolo de Datagrama de Usuario (UDP)

  • El usuario transmite mensajes sin conexión y con baja sobrecarga (8 bytes), sin garantía de entrega ni secuenciación.
  • Otras RFCs relevantes para UDP incluye la 1122 (Host Network Requirements)
  • Transporta unidades de datos entre PUERTOS de sistemas.
  • Adecuado para aplicaciones que implementan sus propios controles de errores (DNS, streaming, multimedia, multicast).
  • UDP agrupa los datos en un solo datagrama, con un tamaño de 8 a 64.000 bytes.
  • Si el datagrama UDP es leído por el destinatario, éste está seguro que el datagrama está completo.
  • Si un datagrama UDP es fragmentado en IP y uno de estos fragmentos se pierde, todo el datagrama será descartado.
  • Normalmente, para depurar efectivamente los problemas con la transmisión de paquetes UDP, es necesario delegar en otros protocolos como ICMP (Internet Control Message Protocol).
  • Si se desea implementar corrección de errores, ésta debe relegarse a la aplicación.
  • Las aplicaciones que usen UDP comenzarán a notar problemas antes que aquellas que usen protocolos como TCP, en entornos de red con altas tasas de pérdidas de paquetes.
  • El tráfico UDP suele estar bloqueado por muchos firewalls, salvo aquellos servicios más importantes, como DNS.

Ejemplos de Puertos UDP

  • Puerto 53: DNS (sencillo sistema de preguntas y respuestas).
  • Puertos 67 y 68: BOOTP/DHCP (protocolos de configuración de host).
  • Puerto 69: TFTP (envío rápido de ficheros pequeños).
  • Puerto 137: NetBIOS (interfaz de IBM para PCs conectados en red).
  • Puertos 161 y 162: SNMP/SNMP trap (gestión de red con mensajes cortos).

Protocolo de Control de Transmisión (TCP)

  • Proporciona un servicio fiable, orientado a conexión.
  • TCP es usado prácticamente por todos los protocolos de aplicación que existen hoy en día en Internet.
  • Identificador de protocolo: 6.
  • Estándar: 7 (RFC 9293 de 2022).
  • Establece conexiones de transporte entre puertos de diferentes sistemas mediante el protocolo “Ida - vuelta - ida” o “a tres vías”.
  • Control de flujo mediante ventana deslizante y control de congestión.
  • Separa los datos de capas superiores y los fragmenta en unidades de 64 KBytes como máximo, denominadas segmentos.
  • Utiliza temporizadores y retransmisiones para la recuperación de segmentos perdidos o dañados.
  • Secuenciado de la información: numeración de bytes por su índice en la comunicación.
  • Posibilidad de incluir comportamientos opcionales.
  • Todos los servicios hacen a TCP un protocolo de transporte muy robusto y proporciona circuitos virtuales.
  • También la gestión de entrada/salida a la aplicación o a la red y Confiabilidad.

Protocolo de Transferencia de Hipertexto (HTTP)

  • HTTP comenzó como un protocolo muy simple para enviar sólo documentos HTML.
  • HTTP es el protocolo de aplicación sobre TCP/IP para la World Wide Web.
  • Ahora posibilita transferencia de todo tipo de ficheros, streaming y uso de proxy, entre otras funciones sofisticadas.
  • Los URIs (Identificadores Uniformes de Recursos) se usan para acceder a un recurso en el servicio web.

Sintaxis Genérica de los URIs

  • Esquema (scheme).
  • Autoridad (authority).
  • Ruta (path).
  • Petición (query).
  • Fragmento (fragment).

Formato de una URL

HTTP: Protocolo Cliente/Servidor

  • Está basado en peticiones y respuestas.
  • El cliente HTTP es llamado agente de usuario (ej: navegador).
  • El servidor HTTP o servidor web es el que responde.
  • El principal objetivo es intercambiar recursos con un URI.
  • Las peticiones que son formateadas según la especificación HTTP, incluyen:
  • Un método (GET, HEAD, POST, etc.).
  • Información para procesar la petición (cabeceras).
  • En peticiones POST, incluye un recurso o entidad.
  • El servidor interpreta la petición del cliente toma acciones relevantes y elabora un mensaje de respuesta.
  • La respuesta contiene:
  • Un código de estado (éxito o fallo).
  • Nuevos campos para completar la respuesta y/o el recurso incluido.
  • Generalmente un recurso.

HTTP: Funcionamiento y Versiones

  • Versiones actuales:
  • HTTP/1.1 (1999): Mensajes en texto plano, evoluciona el rendimiento pero manteniendo la compatibilidad.
  • HTTP/2 (2015): Cambio radical al intercambiar mensajes, rompiendo compatibilidad pero manteniendo funcionalidades.
  • HTTP/3 (2022): Usa el protocolo QUIC (sobre UDP), cambio más significativo con respecto a HTTP/2.
  • Una aplicación sobre HTTP puede usar cualquier versión de manera transparente.

HTTP: Evolución, Acutalizaciones y RFCs

  • En 2022, la estandarización de HTTP/3 unifica muchas RFCs en la RFC 9110 HTTP Semantics.
  • La RFC 9110 HTTP Semantics deja obsoletas: las RFC 2818, 7230, 7231, 7232, 7233, 7235 y 7238.
  • Tres versiones siguen estando vigentes y cuál usar dependerá de la propia evolución de Internet.

HTTP/2: Mejoras de Rendimiento

  • Era mejorar el rendimiento del protocolo HTTP/1.1 en el entorno del servicio web de la época:
  • Las peticiones se tienen que resolver en orden.
  • Cabeceras repetitivas y demasiado largas.
  • Algunas funcionalidades aportadas son:
  • Mezcla de mensajes de petición y respuesta en forma de streams.
  • Codificación eficiente de los cabeceras.
  • Priorización de peticiones se realiza antes.
  • Se usará una sola conexión TCP.

HTTP/3: Motivaciones

  • Surge de la necesidad de conseguir una menor latencia en las comunicaciones y solventar algunos problemas que presenta TCP.
  • HTTP/3 comienza como HTTP-over-QUIC y el primer borrador data de noviembre de 2016.
  • Actualmente ya es soportado en la mayoría de navegadores.
  • Permite un mayor número de streams. La concurrencia de streams la aporta QUIC, que considera cerrado un stream cuando todos los datos han sido recibidos y asentidos por el par.

Métodos HTTP

  • Existen 8 métodos definidos que siempre debes escribirse en mayúsculas:
  • Los más usados: GET, POST y HEAD.
  • Los otros cinco: OPTIONS, PUT, DELETE, TRACE y CONNECT.
  • También existen los metodos PATCH y los métodos de WebDav, pero no son parte de la definición estándar de HTTP.

Métodos HTTP: Acciones

  • GET: Obtiene el recurso especificado en la URL del servidor web.
  • HEAD: Como GET, sin enviar el recurso, sino solo las cabeceras, para verificar la existencia, estado o tamaño de un recurso.
  • POST: Envía información al servidor para que sea procesada por el recurso en la URL.

Métodos HTTP: Acciones Adicionales

  • OPTIONS: Obtiene información sobre las capacidades de comunicación del servidor.
  • PUT: Envía un fichero al servidor especificado en la URI (no suele estar permitido).
  • DELETE: Borra un recurso en el servidor (tampoco suele estar permitido).
  • TRACE: Para que el cliente solicite los datos de la petición enviada al servidor, usualmente se usa para diagnostico
  • CONNECT: Para que el uso del servidor con un proxy se transforme dinámicamente a modo túnel.

Códigos de Estado HTTP

  • 1yy: Mensaje de información.
  • 2yy: Éxito.
  • 3yy: Redirección.
  • 4yy: Error del cliente.
  • 5yy: Error del servidor.

Protocolo Websocket

  • Permite comunicación bidireccional asíncrona sobre una sola conexión TCP.
  • Utiliza los puertos 80 y 443 y facilita la creación de aplicaciones cliente interactivas.
  • Se negocia su activación como una petición HTTP con la cabecera UPGRADE.

Tecnologías Front-End

  • Ejecutan aplicaciones en un navegador, a través de la información que este proporciona.
  • Usualmente requieren aplicaciones back-end.
  • 3 pilares fundamentales:
  • HTML: Lenguaje de marcas que configura el contenido y estructura del documento.
  • CSS: Lenguaje para personalizar los elementos visualizados.
  • JavaScript: Lenguaje para añadir comportamientos complejos en el lado cliente.

HTML

  • Lenguaje de marcas para crear páginas web y proporciona la estructura y el contenido.
  • La versión 5 aporta nuevos elementos para esta estructura además de soporte a mejores aplicaciones gráficas (Canvas) y permite separar el contenido de la presentación (CSS).

XML

  • Un lenguaje de marcas para la definición de cualquier tipo de información, creando nuevos tipos de documentos.
  • Es más estricto que HTML y debe seguir una sintaxis concreta.
  • Tiene un elemento raiz que abarca a los demás elementos, con marcas de apertura y cierre.
  • Los elementos pueden tener otros elementos, atributo y texto, sintaxis de la información XML.
  • Puede contar con documentos de especificación o VOCABULARIOS que permiten definir las marcas, jerarquía y atributos para construir el XML.
  • Si respeta lo especificado en un vocabulario se dice que el XML es válido.

Lenguajes De Definición De Vocabularios Son

  • DTD
  • Schema

Ventajas de XML

  • Facilidad de procesamiento, tanto por máquinas como por humanos.
  • Separa la información (contenido) de su presentación (formato).
  • Un documento puede tener varias formas de presentación.

JSON

  • Es un formato de datos para representar objetos y se utiliza para serializar y transmitir estructuras de datos.
  • Generalmente, es empleado en el intercambio de datos entre aplicaciones web y posee una sintaxis ligera y compacta.
  • Con JSON se especifican datos simples, objetos y Arrays y Validador de sintaxis.

JavaScript

  • Lenguaje para crear aplicaciones cliente, interpretado y sin requerir compilación.
  • Sintaxis similar a Java y C que mejora la apariencia, con gráficos e interacción para el usuario.
  • Se pueden implementar cálculo de funciones, utilizado principalmente en páginas web.
  • Es posible insertar en páginas HTML y también agregar como referencia a un archivo externo para validación de datos de entrada.

JavaScript en la Actualidad

  • JavaScript cuenta con múltiples APIs y frameworks (Vue.js, REACT, Angular, jQuery) que permiten aumentar la productividad y la calidad de las aplicaciones de cliente.

Back-End

  • Back-end también se puede definir como la aplicación del lado del servidor que recibe los datos del agente de usuario y proporciona una salida a éste.
  • El comportamiento debe se modela por arquitectura MVC.

Arquitectura MVC

  • El modelo define la información que se gestiona en la aplicación.
  • La vista define cómo se representa.
  • El controlador gestiona las peticiones del usuario y la interacciones entre el modelo y la vista.
  • Hoy en día, se utilizan tecnologías de persistencia para el ORM que permite adaptar los datos abstractos al controlador o base de datos. Algunos ejemplos son: Hibernate, Spring, Laravel, Django.

Bases de datos

  • Existen multitud de motores de base de datos, fundamentalmente de dos tipos:
    • Bases de datos relacionales : Oracle, MySQL, PostgreSQL, Ms SQL Server.
    • Bases de datos no SQL: Redis, Amazon DynamoDB, Couchbase, Google Cloud Datastore, MongoDB, e IBM Cloudant.
  • Suelen emplear tecnología basada en plantillas para una generación que mezcle partes fijas con partes dependientes del modelo, entre ellos tenemos: "Java Server Pages (JSP), Jade, PUG, JSX (empleado por Vue o REACT) ο Mustache".
  • El controlador se encarga de recibir las peticiones de los usuarios y las envía a la vista para generar la salida al agente del usuario. Algunos son

Tecnologías Empleadas

  • Java EE
  • PHP
  • ASP.NET
  • Node JS
  • Python
  • Ruby
  • Perl
  • Los servicios de una aplicación servidora o back-end debe ser mediante HTTP.

SOAP

  • Define un protocolo basando en XML para el intercambio de mensajes que permitan la ejecución remota de métodos.
  • Está basado en XML.
  • La última versión es SOAP Version 1.2.

REST

  • Ejemplo SOAP vs REST con REST las operaciones y los objetos sobre los que operar no tienen por qué estar predefinidos.
  • Manipular los objectos a partir de la URI.
  • Aplicar acciones concretas sobre los recursos, siempre y cuando estén identificados con una URI:
    • POST (crear/actualizar)
    • GET (leer y consultar), PUT (actualizar/crear),
    • DELETE (eliminar)
    • PATCH* (actualizar parcialmente)
  • Con todo ello podemos utilizar los códigos de estados.
  • Además incluye la arquitectura jerárquica con diferentes capas entre los componentes.

Ejemplos de Petciones en REST

  • Obtener el usuario con ID 1 GET /users/1
  • Crear un nuevo usuario POST /users
  • Modifica el usuario con ID 1 PUT/users/1
  • Actualizar datos del usuario con ID 1 PATCH /users/1
  • Borra el usuario con ID 1 DELETE /users/1

IoT Introducción

  • Es importante tener en cuenta la comunicación M2M, la variedad para acceso a la red y la interacción con el entorno.

Contexto del IoT

  • Falta de inter-operabilidad, necesidad de APIs independientes con tecnologías existentes, web semántica o Efficient XML Ingerchange que se definen con recomendaciones.

Organismos del IoT

  • Web of Things Working Group
  • Open Mobile Alliance.
  • OneM2M Objetivo
    • Construir especificaciones técnicas que aborden la necesidad de una capa unificada de servicio M2M entre hardware y software.
    • Atraer a organizaciones relacionadas con telemáticas, transporte inteligente, atención médica, automatización, hogares inteligentes, etc.

CoAP

  • Es un protocolo software a nivel de aplicación pensado para ser usado en dispositvos más simple con un modelo de uso REST de HTTP

Smart Energy

  • Protocolo estándar e interoperable que conecta los diferentes dispositivos de energía inteligente en el hogar con la red inteligente, además utiliza la red WiFi.

LwM2M

  • Protocolo de administración de dispositivos diseñados para redes de sensores y las demandas de un entorno de máquina a máquina.
  • La versión 1.2 permite también ir sobre MQTT y HTTP y se basa en los estándares de protocolo y seguridad del IETF

XMPP

  • Tecnologías abiertas para mensajería instantánea, charla multiusuario, llamadas de voz, colaboración, enrutado generalizado de datos.
  • Lo principales es intercambiar la información entre las streams formateadas en XML, con servicios similares al correo electrónico mejorado y con comportamientos en tiempo real.

AMQP Eficaz Confiable Flexible

  • Codifican los mensajes para tener una mayor garantía que sea compatible con los diferentes tipos intercambiables.
  • Usa una codificación binaria con estructura con componentes, capas independientes y se pueden agregar fácilmente nuevos a agentes de mensajes existentes.

DDS

  • El primer estándar internacional abierto de middleware que aborda directamente las comunicaciones de publicación y suscripción para sistemas en tiempo real e integrados.
  • Permite la comunicación a través de un nuevo procolo, el IPv6, que construye nuevos aparatos y conecta de manera confiable.

Otros

  • También tenemos el
  • Thread, solución de IBM
  • Servicios de la nube con ThingsBoard
  • MQTT, HTTPs, AMQP y MQTT.
  • Emplea un API REST O MQTT
  • NodeRED que tiene integración con AWS y Azure

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Network Applications: 3yad
32 questions
Application Layer Architecture Quiz
27 questions
Network Applications and Architectures
41 questions
Application Layer: Chapter 2
45 questions

Application Layer: Chapter 2

AdjustableMossAgate8391 avatar
AdjustableMossAgate8391
Use Quizgecko on...
Browser
Browser