Redes informáticas - Principios de los protocolos de la capa de aplicación

Tabla de contenido

1. Arquitectura de aplicaciones de red

1.1 Arquitectura Cliente/Servidor

1.2 Estructura P2P 

1.3 Estructura híbrida 

2. Proceso de comunicación

2.1 Comunicación del proceso de identificación 

2.2 enchufe (enchufe) 

3. Requisitos de servicio de las aplicaciones web

3.1 Transmisión de datos fiable

3.2 Rendimiento

3.3 Tiempo

3.4 Seguridad 

3.5 Requisitos para aplicaciones de red comunes 

4. Servicios de transmisión proporcionados por Internet 

4.1 Servicio TCP

4.2 Servicio UDP 

5. Protocolo de capa de aplicación 


Prefacio: Las aplicaciones de red son la razón de la existencia de las redes informáticas. Estas aplicaciones brindan servicios para los usuarios en la capa de aplicación, y los programas de red que satisfacen nuestras necesidades diarias están todos en la capa de aplicación.  

1. Arquitectura de aplicaciones de red

La arquitectura de la capa de aplicación es diferente de la arquitectura de la red discutida anteriormente. La arquitectura de la red es fija, mientras que la arquitectura de la aplicación ( arquitectura de la aplicación ) está diseñada por el desarrollador de la aplicación. Organizar la aplicación en

Actualmente hay tres arquitecturas de aplicaciones principales :

  • Arquitectura cliente-servidor ( cliente-servidor, C/S )
  • Estructura punto a punto ( Peer-to-peer, P2P )
  • Estructura híbrida ( Hybrid )

1.1 Arquitectura Cliente/Servidor

  • Cliente: un host que solicita servicios de un servidor
  • Servidor: un host siempre activo que atiende solicitudes de otros hosts llamados clientes 

Las aplicaciones bien conocidas del modelo cliente-servidor incluyen Web, FTP, Telnet y correo electrónico. Un ejemplo típico es una aplicación Web, donde un servidor Web siempre activo atiende las solicitudes de los navegadores (que se ejecutan en los hosts del cliente).

Las características del servidor son:

  • 7*24 horas para brindar servicio
  • Dirección de acceso permanente/nombre de dominio
  • Escalabilidad con un gran número de servidores

Las características del cliente son:

  • Comunicarse con el servidor y utilizar los servicios proporcionados por el servidor
  • Acceso intermitente a la red
  • Posiblemente use una dirección IP dinámica
  • No se comunica directamente con otros clientes 

Por lo general, un solo servidor puede verse abrumado si recibe demasiadas solicitudes. Por esta razón, los centros de datos ( centros de datos ) equipados con una gran cantidad de hosts se suelen utilizar para crear potentes servidores virtuales. Por ejemplo, Google tiene entre 30 y 50 centros de datos distribuidos por todo el mundo, y cada centro de datos puede tener cientos de miles de servidores.

1.2 Estructura P2P 

En la estructura P2P, se reduce la dependencia del servidor y, en cambio, la aplicación puede comunicarse directamente entre los hosts, que se denominan pares.

Muchas aplicaciones de uso intensivo de tráfico actualmente populares son arquitectura P2P, incluido el uso compartido de archivos (como BitTorrent), aceleradores de descarga asistidos por pares (como Thunder), telefonía por Internet y videoconferencias (como Skype) 

Las características de P2P son:

  • sin servidores siempre activos
  • Comunicación directa entre cualquier sistema/nodo final
  • Los nodos están intermitentemente conectados a la red.
  • Los nodos pueden cambiar las direcciones IP 

La ventaja de la arquitectura P2P, y una de las características más fascinantes, es su autoescalabilidad.En una aplicación de intercambio de archivos P2P, aunque cada par genera una carga de trabajo debido a la solicitud de archivos, cada par pasa a otros pares para distribuir archivos y también agrega capacidades de servicio. al sistema

La desventaja de la arquitectura P2P es que es difícil de administrar

1.3 Estructura híbrida 

Combinando las características de la estructura C/S y la estructura P2P, nació una estructura híbrida sobre la base de aprovechar al máximo sus respectivas ventajas y evitar las desventajas.

Un ejemplo típico es Napster, que es un software que puede descargar los archivos MP3 que desee en Internet. También puede convertir su propia máquina en un servidor, proporcionando descargas para otros usuarios.

Las características de Napster son:

  • La transferencia de archivos utiliza la estructura P2P
  • La búsqueda de archivos adopta una estructura C/S: centralizada (cada nodo registra su propio contenido en el servidor central y cada nodo envía una solicitud de consulta al servidor central para encontrar contenido interesante) 

2. Proceso de comunicación

2.1 Comunicación del proceso de identificación 

En términos de sistema operativo, la comunicación entre aplicaciones es en realidad comunicación entre procesos , que son programas que se ejecutan en el host.

Los procesos que se ejecutan en el mismo host pueden comunicarse entre sí a través del mecanismo de comunicación entre procesos y el sistema operativo

La comunicación de procesos entre procesos que se ejecutan en diferentes hosts se realiza principalmente a través del intercambio de mensajes.

En una estructura cliente-servidor

Proceso cliente : el proceso que inicia la comunicación
Proceso servidor : el proceso que espera la solicitud de comunicación 

En una estructura de intercambio de archivos P2P

El compañero que descargó el archivo se identifica como cliente

El par que cargó el archivo se identifica como el servidor

2.2 enchufe (enchufe) 

La mayoría de las aplicaciones consisten en pares de procesos de comunicación, con dos procesos en cada equipo que se envían mensajes entre sí. Los procesos envían y reciben mensajes hacia y desde la red a través de una interfaz de software llamada socket.

La comunicación entre procesos se realiza mediante el uso de socket para enviar/recibir mensajes, que es similar a enviar una carta

  1. El remitente envía el mensaje al buzón fuera de la puerta (la puerta aquí es equivalente a un enchufe)
  2. El remitente confía en la infraestructura de transmisión (fuera de la puerta) para entregar el mensaje al host donde se encuentra el receptor, y lo envía fuera de la puerta del receptor.
  3. El receptor recibe el mensaje desde afuera de la puerta.

Para lograr la comunicación entre procesos en diferentes hosts, cada proceso debe tener un identificador y cada host tiene una dirección IP única, pero esto no es suficiente para identificar un proceso de manera única (puede haber múltiples procesos en un host que necesitan comunicarse), asignamos un número de puerto a cada proceso en el host que necesita comunicarse , y usamos la dirección IP + el número de puerto para identificar un proceso

Dirección IP : la identificación del host, una dirección IP puede identificar de forma única un host 

Número de puerto : la identificación del proceso en el host, un número de puerto puede identificar de forma única un proceso en el host, los ejemplos típicos son:

Servidor HTTP: 80

Servidor de correo: 25

3. Requisitos de servicio de las aplicaciones web

La red informática es una estructura jerárquica, la capa inferior proporciona servicios a la capa superior, y este servicio se realiza a través de la interfaz.

En el modelo de referencia de cinco capas que adoptamos, la capa inferior de la capa de aplicación es la capa de transporte, y el zócalo es la interfaz entre el programa de aplicación y el protocolo de la capa de transporte Por lo tanto, al diseñar un programa de aplicación, a menudo se selecciona de acuerdo con los requisitos del programa de aplicación protocolo de capa de transporte

Clasifique los requisitos de servicio de una aplicación en cuatro áreas: transferencia de datos confiable , rendimiento , tiempo y seguridad

3.1 Transmisión de datos fiable

Como se discutió anteriormente, los paquetes se pueden perder en las redes informáticas: los búferes del enrutador se desbordan, los paquetes se corrompen y se descartan. Y algunas aplicaciones son intolerables a la pérdida de datos, como correo electrónico, transferencia de archivos, acceso a host remoto, transferencia de documentos web y aplicaciones financieras, etc.

Para admitir estas aplicaciones, se debe trabajar para garantizar que los datos enviados por un lado de la aplicación se entreguen correcta y completamente al otro lado de la aplicación.

Se dice que un protocolo proporciona un mecanismo de transporte fiable si proporciona un servicio para garantizar la entrega de datos.

Cuando un protocolo de capa de transporte proporciona una transmisión de datos confiable, el proceso de envío puede confiar plenamente en que los datos llegarán al proceso de recepción sin errores, siempre que pase sus datos al socket.

Algunas aplicaciones no son sensibles a la pérdida de datos. Estas aplicaciones se denominan aplicaciones tolerantes a la pérdida . Las más comunes son las aplicaciones multimedia, como audio/video conversacional, que pueden tolerar una cierta cantidad de pérdida de datos .

3.2 Rendimiento

El rendimiento disponible es la velocidad a la que el proceso de envío puede entregar bits al proceso de recepción.

La comunicación entre dos procesos a menudo depende de una determinada ruta de red, y el ancho de banda de esta ruta será compartido por otras sesiones. A medida que la sesión llega y se va, el rendimiento disponible fluctuará.

Para algunas aplicaciones, el protocolo de la capa de transporte debe garantizar que puede proporcionar un rendimiento disponible garantizado a una velocidad determinada.

Por ejemplo, si una aplicación de telefonía por Internet codifica voz a 32 kbps, necesita enviar datos a la red a esa velocidad y entregar datos a esa velocidad a la aplicación receptora. Si el protocolo no puede proporcionar este rendimiento, la aplicación debe codificar a una velocidad más baja. velocidad o dejar de enviar. Tales aplicaciones con requisitos de rendimiento se denominan aplicaciones sensibles al ancho de banda ( aplicaciones sensibles al ancho de banda )

Las aplicaciones como el correo electrónico, la transferencia de archivos y la entrega web que utilizan más o menos el rendimiento disponible según el ancho de banda disponible se denominan  aplicaciones elásticas.

3.3 Tiempo

El protocolo de la capa de transporte también puede proporcionar garantías de temporización, por ejemplo: cada bit inyectado en el zócalo por el remitente llega al zócalo del receptor a más tardar 100 ms.

Dicho servicio sería atractivo para aplicaciones interactivas en tiempo real, como telefonía por Internet, entornos virtuales, teleconferencias y juegos multipartidistas, todos los cuales requieren la entrega de datos con estrictas limitaciones de tiempo para ser efectivos. 

Al realizar llamadas y juegos multijugador, este servicio puede garantizar que la demora esté dentro de un cierto rango para cumplir con la naturaleza en tiempo real de las llamadas o juegos.

3.4 Seguridad 

Los protocolos de la capa de transporte también pueden proporcionar uno o más servicios de seguridad a las aplicaciones. Un servicio que brinda confidencialidad entre el proceso de envío y recepción , evitando que los datos sean observados de alguna manera entre los dos procesos

Por ejemplo: en el host de envío, el protocolo de la capa de transporte puede cifrar todos los datos transmitidos por el proceso de envío, y en el host de recepción, el protocolo de la capa de transporte puede descifrar los datos antes de que se entreguen al proceso de recepción.

3.5 Requisitos para aplicaciones de red comunes 

solicitud pérdida de datos banda ancha tiempo sensible
transferencia de archivos no se puede perder elasticidad No
correo electrónico no se puede perder elasticidad No
documentos web no se puede perder Elasticidad (varios kbps) No
Telefonía por Internet/videoconferencia pérdida de tolerancia

Audio (varios kbps~1Mbps)

Vídeo (10kbps~5Mbps)

Sí, 100 ms
Transmitir audio/video pérdida de tolerancia ídem si, segundos
juego interactivo pérdida de tolerancia Varios kbps~10kbps Sí, 100 ms
mensaje de teléfono inteligente no se puede perder elasticidad si y no

4. Servicios de transmisión proporcionados por Internet 

Internet (más generalmente, la red TCP/IP) proporciona dos protocolos de capa de transporte para aplicaciones: TCP y UDP. Como desarrollador de software, al crear una nueva aplicación para Internet, la primera decisión que debe tomar es elegir UDP o TCP.

4.1 Servicio TCP

El modelo de servicio TCP incluye servicios orientados a la conexión y servicios confiables de transmisión de datos.

orientado a la conexión

  • Antes de que los paquetes de datos de la capa de aplicación comiencen a fluir, TCP permite que el cliente y el servidor intercambien información de control de la capa de transporte entre sí, lo que se denomina "apretón de manos".
  • Después del "apretón de manos", se establece una conexión TCP entre los sockets de los dos procesos, y esta conexión es full - duplex
  • La aplicación ha terminado de enviar el mensaje y la conexión debe ser eliminada

transmisión de datos confiable

  • Los procesos de comunicación pueden confiar en TCP para entregar los datos enviados sin errores y en el orden correcto
  • La entrega de datos TCP se basa en el flujo de bytes

Además, ni TCP ni UDP proporcionan ningún mecanismo de encriptación.Para garantizar la seguridad, la comunidad de Internet ha desarrollado una versión mejorada de TCP— Secure Sockets LayerSecure Sockets Layer, SSL  ), que proporciona servicios de seguridad de proceso a proceso, incluido el cifrado, la integridad de los datos y la autenticación de punto final

4.2 Servicio UDP

UDP no tiene conexión , proporciona servicios de transmisión de datos poco confiables y es un protocolo que hace todo lo posible para entregar datos a la capa superior (lo que implica que no se puede garantizar la precisión de la entrega de datos)

Cuando un proceso envía un mensaje a un socket UDP, el protocolo UDP no garantiza que el mensaje llegue al proceso receptor. No solo eso, los paquetes que llegan al proceso de recepción también pueden llegar desordenados. 

Introduciremos el conocimiento relevante de TCP y UDP en detalle en la capa de transporte.

5. Protocolo de capa de aplicación 

Ahora que sabemos cómo la aplicación envía mensajes al socket y realiza la comunicación del proceso de red, el siguiente problema al que nos enfrentamos es cómo especificar el protocolo de la capa de aplicación.

Las aplicaciones de red deben seguir el protocolo de capa de aplicación, que define cómo los procesos de aplicación que se ejecutan en diferentes sistemas finales pueden transmitirse mensajes entre sí. Algunos protocolos de la capa de aplicación son públicos, estos protocolos

  • Definido por RFC ( Solicitud de comentarios
  •  permitir la interoperabilidad
  • HTTP, SMTP, ……

Hay algunos protocolos de capa de aplicación que son propietarios,

  • La mayoría de las aplicaciones para compartir archivos P2P 

El contenido del protocolo de la capa de aplicación incluye principalmente

  • Tipo de mensaje (tipo) - mensaje de solicitud, mensaje de respuesta
  • La sintaxis/formato del mensaje: qué campos hay en el mensaje y cómo se describe cada campo
  • Semántica del campo - el significado de la información en el campo
  • reglas - cuando un proceso envía/responde a un mensaje, cómo un proceso envía/responde un mensaje
El formato del mensaje de solicitud HTTP

Supongo que te gusta

Origin blog.csdn.net/weixin_58165485/article/details/128599605
Recomendado
Clasificación