Introducción a HTTP: exploración de las telecomunicaciones en sistemas informáticos

Conozca el modelo de interconexión de sistemas abiertos

Visión general

A lo largo de esta serie, abordaremos los conceptos básicos como:

(Parte 1) ¿Cómo funciona el DNS?

(Parte 2) Pila de red, modelo OSI [¡Usted está aquí!]

(Parte 3) Métodos y formatos HTTP

(Parte 4) Identificación del cliente

(Parte 5) Autenticación básica / implícita

(Parte 6) HTTPS trabajando con SSL / TLS

Modelo OSI

El modelo de interconexión de sistemas abiertos (OSI) es un modelo estandarizado para telecomunicaciones en sistemas informáticos. No tiene en cuenta la tecnología subyacente, sino las capas involucradas en la comunicación. Exploremos las diferentes capas dentro del modelo OSI:

1. Capa de aplicación

Esta capa permite que las aplicaciones se comuniquen a través de la red una vez que se ha establecido la conexión, como desde el navegador web (aplicación) al servidor. Ejemplos de protocolos en esta capa incluyen HTTP y TELNET.

Protocolo de transferencia de hipertexto (HTTP)

Un conjunto de reglas para transferir archivos a través de Internet. Por ejemplo, cuando ingresa la URL en el navegador, el navegador envía una solicitud HTTP para la página web. Luego, el anfitrión devolvería la página web, junto con todos los elementos que se encuentran dentro, como imágenes, texto, videos, fuentes de estilo, etc.

2. Capa de transporte

Esta capa es responsable de la comunicación de mensajes de host a host. Los ejemplos de protocolos en esta capa incluyen TCP y UDP.

Protocolo de control de transmisión (TCP)

El protocolo orientado a la conexión más común. Define cómo establecer y mantener una conversación en red. Es responsable de establecer una conexión (llamada socket ) entre el cliente y el host en un protocolo de enlace de 3 vías.

El usuario que solicita los datos enviará un paquete de datos SYN al servidor, solicitando sincronización . Luego, el servidor responderá con un SYN-ACK al usuario, indicando que ha reconocido el paquete de datos y que también le gustaría conectarse. Por tanto, la conexión se establece cuando el usuario envía el último ACK al servidor.

TCP es el más común por su elegancia, en el que es capaz de ofrecer lo siguiente:

Comunicación orientada a la conexión

Establezca un protocolo de protocolo de enlace entre los puntos finales para garantizar la conexión antes de que se intercambien los datos y transmita como un flujo de datos (paquetes de datos).

Fiabilidad

Usando sumas de verificación, asegura que los paquetes de datos transmitidos y recibidos sean los mismos. Si hay paquetes faltantes / corruptos, solicitará la retransmisión de los paquetes de datos enviando un mensaje NACK al remitente.

Orden

Los paquetes de datos se numeran y se transmiten. Como tal, TCP garantizará que los paquetes recibidos se vuelvan a ordenar antes de entregar la aplicación.

Control de flujo

La velocidad de transmisión de datos está regulada para mejorar la eficiencia y, al mismo tiempo, evitar los excesos / insuficiencias del búfer, donde los datos se envían más rápido de lo que el receptor puede procesarlos, y viceversa.

La mecánica detrás de esto se explica a continuación en la sección Inicio lento de TCP.

Multiplexación

Básicamente, puede enviar múltiples flujos de información al mismo tiempo sobre el mismo socket. Estos se realizan a través de diferentes puertos en el zócalo. Discutiremos las diferencias entre multiplexación y canalización más adelante en el artículo.

Protocolo de datagramas de usuario (UDP)

Si bien es similar a TCP, es un protocolo sin conexión. Es todo lo contrario de TCP, lo que lo hace poco confiable y desordenado. Los paquetes descartados no se volverán a transmitir, lo que provocará lagunas en los datos.

Sin embargo, eso lo hace mejor para aplicaciones urgentes, como llamadas de voz a través de Internet (VoIP). Esto se debe a que no requiere el protocolo de enlace de 3 vías antes de transmitir, lo que lo hace rápido. Además, los paquetes de datos descartados no son un problema en VoIP, ya que el oído humano es muy bueno para manejar los breves espacios que son típicos de los paquetes descartados.

3. Capa de red

Esta capa es responsable de proporcionar rutas de enrutamiento de datos para conexiones de red. Básicamente, mueve paquetes de datos a través de la red con la ruta más lógica.

Protocolo de Internet (IP)

Define la estructura de los paquetes de datos, además de etiquetarlos con la información de origen y destino.

La información de origen y destino está en forma de direcciones IP, que pueden tener el formato 104.16.121.127(IPv4) o 2001:db8:0:1234:0:567:8:1(IPv6).

4. Enlace / Capa física

Esta capa es la raíz del modelo OSI, donde la información se transmite en la red de área local (LAN) para la capa de enlace y una señal física, como un medio eléctrico o mecánico en forma de palabras de código o símbolos en la capa física. .

Visualización de rutas

Con tracert google.com, la ruta se puede rastrear desde el lado del cliente (su computadora) hasta el host (google.com).

Desde arriba, puede ver la ruta desde mi dispositivo 192.168.1.254hasta el enrutador 10.243.128.1, antes de pasar por el proveedor de servicios de Internet (ISP) ubicado en Portugal, y así sucesivamente.

Capas complementarias

Modelo TCP / IP

IP solo es responsable de la estructura del paquete de datos. Como tal, no se compensará si el paquete de datos se corrompe o se cae. Aquí es donde entra en juego TCP, numerando los paquetes de datos antes de enviarlos al cliente. En el lado del cliente, TCP solicitará la retransmisión de paquetes perdidos / corruptos y luego reorganizará los paquetes de datos.

Modelo HTTP / TCP

Como mencionamos anteriormente, HTTP ahora puede realizar solicitudes a través de la conexión realizada por TCP Handshake. Pero, ¿cómo se complementan?

Conexiones persistentes HTTP

Esto permitiría múltiples solicitudes / respuestas HTTP en una sola conexión TCP, en lugar de abrir una nueva conexión en cada solicitud / respuesta.

Esto se hace a través del encabezado HTTP, donde Connection: Keep-Alive. De forma predeterminada, la conexión solo se cerrará con otra respuesta que Connection: Closese envíe después de 30 segundos de inactividad.

Inicio lento de TCP

Como se mencionó anteriormente, TCP admite el control de flujo. Esto se realiza mediante TCP Slow Start, que es una forma de prevención de la congestión de la red.

El remitente tiene una ventana de congestión (CWND) y el receptor tiene una ventana de receptor (RWND). Si los datos son más grandes que la ventana de congestión / receptor, habría un búfer insuficiente / desbordado respectivamente.

Para evitar eso, el remitente comenzará enviando un paquete de datos con una pequeña ventana de congestión (CWND = 1), para sondear lentamente el receptor en busca de su ventana de receptor.

El receptor responderá con un acuse de recibo, solicitando al remitente que duplique los paquetes de datos cada vez hasta que no se reciba ningún acuse de recibo. En este punto, se ha descubierto el número óptimo de paquetes de datos, lo que permite que otros algoritmos de control de congestión mantengan la conexión a esta velocidad.

Trabajando juntos

Por lo tanto, TCP Slow Start puede calcular el número óptimo de paquetes de datos para enviar antes de que se cierre la conexión. Esto permitirá optimizar la cantidad de datos enviados desde el host al cliente sin el riesgo de saturación del búfer (los datos se envían más rápido de lo que se pueden recibir).

Otras funciones HTTP

Canalización HTTP

Esta característica en la versión HTTP / 1.1 permite que se envíen múltiples solicitudes a la vez en el mismo socket, sin esperar una respuesta. Sin embargo, ha sido reemplazado por TCP Multiplexing en la versión más reciente de HTTP / 2.

La diferencia clave es que, aunque ambos permiten múltiples solicitudes a la vez en el mismo socket, la canalización aún requeriría que las respuestas se envíen en orden. Significa que si los artículos solicitados están en el pedido (A, B, C), el cliente no recibirá el artículo C si el artículo B no se ha entregado correctamente.

En multiplexación, el orden no importa. Esto permitiría un tiempo de entrega más rápido.

Estos métodos se utilizan mejor para el método idempotente, que son métodos que responden independientemente de la cantidad de veces que se solicite; por ejemplo, solicitar una página web varias veces responderá a la misma página web.

Conexiones paralelas

¿Alguna vez abrió una página web y vio varios componentes de la página web (barra de video, miniaturas, botones) cargar simultáneamente?

Esto es posible con las conexiones paralelas, donde hay más de una conexión TCP establecida al mismo tiempo, lo que permite que estos componentes se carguen simultáneamente en lugar de uno tras otro.

Sin embargo, aunque parezca que se carga más rápido, es posible que el ancho de banda limitado del cliente lo frene. Si todas las conexiones paralelas compiten por el ancho de banda limitado, cada componente se cargará proporcionalmente más lento, lo que dará como resultado una ventaja cero en la velocidad de carga total.

Conclusión

Con el modelo OSI, podemos comprender fácilmente el panorama general de las redes y cómo interactúan entre sí desde el hardware hasta el software.

En general, es una excelente herramienta de enseñanza y una referencia para la resolución de problemas. El modelo también es útil para el diseño, ya que investiga las funciones en cada capa, lo que obliga a reflexionar sobre el diseño capa por capa.

Lo que he pasado hasta ahora es el modelo OSI de 5 capas, mientras que también existe el modelo OSI de 7 capas que también se ocupa de la identificación, autenticación y cifrado de datos.

Esta es la Parte 2 de la serie de presentaciones HTTP. Puede leer el primer artículo sobre la importancia de los servidores DNS en la Parte 1. ¡Exploremos la estructura de las solicitudes HTTP a continuación en la Parte 3!

¡Hola! Soy Cher Don, actualmente cursando una especialización en ciencia de datos. Soy el director de tecnología de Paralegal Bot, y puede encontrar mi sitio web a continuación. ¡Gracias por leer!

Piqué;

Contenido de calidad Ofrecemos el mejor contenido para conceptos difíciles de comprender. Nosotros estuvimos allí y sentimos lo mismo que tú… www.piqued.co