Tecnologia

HTTP/3 y QUIC: Conoce todo sobre este protocolo para navegar rápido

Protocolos HTTP3 y QUIC

Hay muchos protocolos necesarios para poder navegar por Internet y tener conexión de red en nuestros dispositivos. Estos mismos protocolos con el paso del tiempo pueden ser distintos, más actuales y con mejoras. Por ejemplo para poder cargar una web con mayor celeridad o tener mayor seguridad al proteger un archivo. En este artículo vamos a hablar de los protocolos HTTP/3 y QUIC. Vamos a explicar en qué consisten, por qué son útiles para navegar más rápido y todo lo que debes conocer.

Qué es HTTP y quienes participaron en su creación

Este protocolo viene del inglés Hypertext Transfer Protocol, abreviado HTTP y que traducido al castellano sería Protocolo de transferencia de hipertexto. Se trata de un protocolo de comunicación que permite las transferencias de información en la World Wide Web.

World Wide Web

El protocolo HTTP fue desarrollado por dos organismos. Uno es el World Wide Web Consortium que se trata de un consorcio internacional que desarrolla las recomendaciones y estándares para mantener el crecimiento de la World Wide Web a largo plazo. La otra organización internacional implicada fue la Internet Engineering Task Force (IETF) que traducido al español sería Grupo de Trabajo de Ingeniería de Internet​. Ellos se encargan de la normalización de Internet actuando en diversos apartados, como transporte, enrutamiento y seguridad.

Gracias al HTTP se define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web de los clientes, servidores y proxies para que puedan comunicarse. Además, es un protocolo sin estado, lo cual significa que no guarda ninguna información sobre conexiones anteriores. A parte de esto, también lo usamos para la entrega de las imágenes y otros elementos de los que está formado una web, y que llegarían a nosotros a través del navegador o de las aplicaciones.

HTTP trabaja utilizando un modelo cliente-servidor. Esto significa que cuando nosotros realizamos una conexión, hacemos una serie de peticiones al servidor, para que nos muestre el contenido de esa web. Luego, esas imágenes y texto se mostrarán en el navegador usando el código HTML.

Versiones del protocolo HTTP y evolución

A lo largo del tiempo, el protocolo HTTP ha pasado por diferentes versiones. En este sentido cabe señalar que muchas de las cuales son compatibles con las anteriores, esto es posible gracias a que el cliente, cuando establece la comunicación, le dice al servidor la versión que está usando. A continuación, el servidor se encarga de utilizar en la contestación la misma versión, o en su defecto, una anterior.

Ahora llega el turno de hablar brevemente de las diferentes versiones y si en la actualidad siguen estando vigentes. Verás que ha habido cambios importantes desde los orígenes hasta nuestros días.

La primera la HTTP/0.9, data de 1991 y podemos afirmar que actualmente se considera obsoleta. En este caso hay que señalar que sólo soporta un comando, GET, y además, no especifica el número de versión HTTP. Tampoco soporta cabeceras, ni POST, por lo que el cliente no puede mandar información al servidor.

La siguiente es la HTTP/1.0, fue lanzada en mayo de 1996. Por primera vez el protocolo especifica su versión en las comunicaciones. Actualmente se usa mucho, sobre todo en los servidores proxy. También hay que destacar que admite los métodos de petición GET, HEAD y POST.

A continuación, en junio de 1999 se lanzó la HTTP/1.1, que ahora mismo es la versión más utilizada. Las conexiones persistentes las tenemos activadas por defecto. También permite al cliente enviar múltiples peticiones simultáneamente en la misma conexión (pipelining), lo que hace posible eliminar el tiempo de ida y vuelta por cada petición, lo que se traduce en una mayor rapidez a la hora de cargar las páginas webs. Un año más tarde vino HTTP/1.2, en febrero de 2000. Aquí se propuso el Protocolo de Extensión de Protocolo o abreviado PEP. En ese, sentido podemos decir que HTTP Extension Framework, incluye en gran medida a PEP.

En mayo de 2015 llega HTTP/2, se trata de una nueva versión que no modifica la semántica de aplicación de HTTP. Sus mejoras se centran en cómo se empaquetan los datos y en el transporte. Las novedades que aporta, es que añade el uso de una única conexión, la compresión de cabeceras o el servicio server push.

Por último, en octubre de 2018 llega HTTP/3 que utiliza el protocolo de la capa de transporte UDP en lugar de TCP. El soporte ya ha sido agregado por empresas como Cloudflare en sus servidores, y Google en su navegador Chrome. A continuación, hablaremos de HTTP/3 a fondo y todo lo que este protocolo conlleva.

Conociendo HTTP/3 y su implementación en los navegadores web

HTTP/3 es la próxima generación del Protocolo de Transferencia de Hipertexto que usamos para intercambiar información en la World Wide Web. Antes de tener una denominación, se le conocía con el Protocolo de Transferencia de Hipertexto sobre QUIC.

Una parte muy importante, como ya habréis podido deducir, es el protocolo de red QUIC, perteneciente a la capa de transporte. Hay que señalar que este protocolo en sus inicios fue desarrollado por Google y que usa el control de congestión del espacio de usuario sobre el Protocolo de Datagrama del Usuario (UDP).

Los navegadores se han ido preparando poco a poco para dar soporte a HTTP/3.  El primero en hacerlo fue Google Chrome (Canary build) en septiembre 2019, y a principios del año 2020 lo hizo Firefox. Aquí tenéis una tabla en la que se puede observar desde qué fecha son compatibles los navegadores con esta nueva versión del protocolo de transferencia de hipertexto.

Como podéis ver, los principales navegadores como Chrome, Firefox, Safari y Edge ya lo soportan. En este sentido, hay que señalar que, aunque tienen soporte, no siempre viene habilitado por defecto y debemos ser nosotros mismos los que lo activemos. Por ejemplo, en Mozilla Firefox tenemos que entrar en about:config en la barra de direcciones (aceptamos los riesgos). Tenemos que buscar network.http.http3.enabled. Por defecto viene marcado como «False», tenemos que marcarlo como «True», y así tendremos habilitada la función en el navegador.

En Google Chrome el procedimiento es similar. Tienes que entrar en chrome://flags/ y allí ejecutar Experimental QUIC Protocol. Verás que viene marcado como Default, pero puedes darle a habilitar o deshabilitar. Es muy sencillo.

Habilitar QUIC en Chrome

Qué es el protocolo QUIC

QUIC es un protocolo de red creado por Google. Su nombre completo es Quick UDP Internet Conections, que si lo traducimos al español podemos decir Conexiones UDP rápidas en Internet. Sirve para enviar paquetes a través de UDP. Nació como una alternativa a TCP, que es el protocolo que lleva décadas siendo indispensable para las conexiones de Internet.

Actúa de forma similar a HTTP/2 y TLS/SSL, pero en vez de utilizar TCP se basa en UDP. Comenzaron a implantarlo en el año 2012, pero fue en 2013 cuando realmente hicieron pruebas en Google Chrome para comprobar su funcionamiento y ver así las ventajas que realmente tiene.

Hoy en día QUIC ya viene implantado de serie en el navegador de Google. En otros lo podemos habilitar, como es el caso de Opera. Es de esperar que próximamente sean más los programas que lo usen. De momento ya se ejecuta en diferentes plataformas del gigante de las búsquedas, como son YouTube, Gmail o Drive.

QUIC soporta un conjunto de conexiones multiplexadas entre dos extremos sobre UDP (User Datagram Protocol). En cuanto a la seguridad, ofrece una equivalente a TLS/SSL. Además, ofrece otras ventajas como una latencia de conexión y de transporte reducidas. También es capaz de ofrecer una estimación de ancho de banda en cada dirección para evitar la congestión.

Con la implantación de este nuevo protocolo, se pretende mejorar el rendimiento percibido de aplicaciones web que usan actualmente TCP. Además, pretende proporcionar un entorno de prevención de congestión para la iteración rápida de algoritmos estableciendo control en el espacio de aplicación en ambos extremos.

Cada vez se manda más información por Internet y necesitamos un protocolo muy eficiente para que las peticiones, respuestas e interacciones tengan una menor latencia, con menores tiempos de retransmisión. Con el protocolo QUIC conseguimos mejorar esos aspectos. Una cosa que debemos tener en cuenta es que los pares de direcciones IP y los sockets son recursos limitados. Gracias a que QUIC está diseñado desde la base para operaciones de multiplexado, tiene el potencial de:

  1. Unificar el tráfico.
  2. Reducir la utilización de puertos.
  3. Unificar mensajes de reportes y respuestas.
  4. Reducir la información redundante, por ejemplo, en cabeceras.

Para qué sirve QUIC

Entonces, ¿cuál es la función real de QUIC? Podemos decir que es un protocolo que va a servir para establecer conexiones entre el emisor y el receptor. Cuando entras en una página, para poder acceder al contenido se envían una serie de datos. Esto incluye certificados y claves de intercambio.

Este tipo de protocolos es necesario para navegar, jugar por Internet, usar aplicaciones de videollamadas… Sirve para ofrecer una protección a esa conexión, algo que también podemos tener con TLS/SSL, pero en este caso mejorada. Va a ofrecer un mejor rendimiento al disminuir la latencia.

Lo que hace básicamente es transportar paquetes en la red. Pero tiene una diferencia importante al basarse en UDP, y es que el servidor que envía la información no tiene que estar en constante comunicación con el servidor que la recibe. Esto es lo que ayuda notablemente a disminuir la latencia. No necesita tiempo para comprobar si esa información ha llegado correctamente.

Protocolo QUIC en Internet

Ventajas de usar QUIC en HTTP/3

Después de explicar qué es y para qué sirve el protocolo QUIC creado por Google, vamos a ver cuáles son sus principales ventajas. Estos puntos van a ayudar a que naveguemos más rápido por Internet y mantener la seguridad en todo momento. Son dos factores importantes y que, gracias a protocolos más recientes como este, han mejorado. HTTP/3 y QUIC suponen un avance importante para lo que será Internet y sus aplicaciones.

Velocidad

Una de las ventajas es la mayor velocidad. Esto va a permitir cargar una web en menor tiempo o utilizar diferentes aplicaciones. El protocolo HTTPS tiene un punto negativo a tener en cuenta, y es que utiliza TLS para el intercambio o handshake. QUIC hace que esto sea más rápido.

Ese intercambio es necesario para establecer el cifrado TLS e intercambiar las claves. Acorta los pasos necesarios para llegar al mismo objetivo. En este caso inicia la conexión con un único paquete o dos si se trata de la primera vez. Viene bien de cara a optimizar la carga de sitios web, lo cual ayudará a que se posicionen mejor también en buscadores.

Menos problemas al cambiar de red

Algo importante que también mejora el protocolo QUIC es la estabilidad cuando cambiamos de red. ¿Cuándo ocurre esto? Si estás conectado a un servidor con datos móviles a una red 4G o 5G y de repente cambias al Wi-Fi a través de TCP, se va a cortar y va a tener que restablecerse nuevamente.

En cambio, gracias a QUIC este cambio de red es mucho más fluido y evita que haya problemas. Simplemente va a tener que enviar un paquete para establecer la conexión y no tener que restablecerla de nuevo. Esto es muy útil si por ejemplo estamos compartiendo red de datos en un ordenador y en un momento dado nos interesa conectarnos a la red Wi-Fi.

No afecta tanto la pérdida de paquetes

En el caso de que haya una pérdida de paquetes en HTTP/2 a través de TCP, esto puede generar un problema de rendimiento importante. Cuando se pierde un paquete, el destinatario debe esperar a que se recupere.

Lo que hace el protocolo QUIC para resolver esto es que permite que los flujos de datos lleguen al destinatario de forma independiente. No es necesario tener que esperar a que se recuperen esos paquetes de datos perdidos y, por tanto, no afecta tanto que esto ocurra.

Seguridad

Uno de los factores más importantes para la implementación de QUIC es la seguridad. En este sentido, los desarrolladores de Google han corregido uno de los fallos más importantes de TCP, que es el hecho de que el encabezado de los paquetes enviados esté en texto plano y pueda leerse sin autenticación.

Esto que mencionamos podría dar lugar a un ataque Man in the Middle, que consiste básicamente en interceptar lo que se envía. Pero el protocolo QUIC mejora esto y los paquetes que se envían siempre van cifrados y es necesaria la autenticación por parte del destinatario.

Permite conexiones multiplexadas

Las conexiones multiplexadas son las que utilizan dos o más señales y las combinan para transmitir a través de un único medio. Esto va a permitir varias comunicaciones al mismo tiempo. Esto va a agilizar las conexiones de las aplicaciones web.

Hay que tener en cuenta que HTTP/2 multiplexa la información a través de un único flujo TCP y esto hace que, en caso de que se pierda algún segmento TCP, haya un bloqueo. QUIC mejora este punto y va a permitir conexiones multiplexadas. HTTP/3 va a poder enviar diferentes archivos multiplexados a través de QUIC.

En definitiva, el protocolo QUIC llega para mejorar ciertos aspectos y optimizar la navegación en Internet. Es algo que cada vez estará más presente y que ya utilizan algunos navegadores. Poco a poco veremos más aplicaciones y sitios web que lo utilizan. Podemos resumir en que este protocolo llega para mejorar el rendimiento de cualquier conexión que utilice TCP.

Actual implementación de HTTP/3 en navegadores y webs

Tras la aprobación del protocolo HTTP/3 en octubre de 2018, se empezaron a dar los primeros pasos para su utilización a gran escala. Uno de ellos fue la adaptación del software para nuestros ordenadores y móviles. Así, como ya hemos mencionado antes, empezaron a dar soporte a los navegadores web que utilizamos habitualmente. De este modo, Chrome, Safari, Firefox y Edge están preparados para utilizarlo.

En cuanto Cloudflare, una de las empresas más importantes dentro de los servicios de seguridad de Internet, y de servicios de servidores de nombres de dominio (DNS) distribuidos por todo el mundo. Entre los servicios que oferta tiene:

  • Protección frente a ataques DDoS.
  • Firewall de aplicaciones web.
  • Servidores DNS.
  • Red de entrega de contenido. Gracia a ella, Cloudflare almacena contenido en caché en sus ubicaciones de perímetro para actuar como red de entrega de contenido a través de sus servidores CDN.

Cloudflare va a ser una de las empresas que empiece a trabajar con HTTP/3. Esto no va a afectar a la forma en que se ve la página web ese cliente. Recordemos que, gracias a este nuevo protocolo, tendremos conexiones más rápidas y seguras ya que van siempre cifradas. En principio, no va a suponer ningún problema, ya que es compatible con versiones anteriores de HTTP. Por lo tanto, el resto de personas podría seguir utilizándolo.

En Cloudflare han comentado que no prevén que afecte al rendimiento de sus sitios web. Sin embargo, si por alguna razón, deseamos deshabilitarlo después de que se habilite automáticamente, podemos quitarlo para no tener problemas. Para hacerlo, tendríamos que ir a la pestaña «Red» en el panel de Cloudflare y desactivarlo.

Por último, en el Blog de Google hay un estudio en el que se analizaron los tiempos de carga de una web utilizado el protocolo QUIC de HTTP/3. Las conclusiones que sacaron, es que reducía el tiempo medio de carga de una web en un 8% a nivel mundial y de un 13% en las regiones con mayor latencia.

Cómo saber si una web utiliza HTTP/3

Ahora bien, si volvemos al objetivo de este artículo vamos a explicar cómo podemos saber si una web está utilizando el protocolo HTTP/3. Como hemos indicado no son muchas las webs que hoy en día usan este protocolo, aunque esa cifra aumentará en los próximos tiempos de forma considerable.

Para conocer qué protocolo utiliza una página web podemos hacer uso de diferentes herramientas. Vamos a mostrar algunas plataformas gratuitas que nos dan esta información de una forma sencilla y rápida.

HTTP/3 Test de GeekFlare

Una de las opciones que tenemos es la herramienta gratuita de GeekFlare denominada HTTP/3. Es una página web donde podemos poner cualquier dominio y comprobar si está usando o no este protocolo. Lo veremos de una manera sencilla y rápida.

Si introducimos una web que no cuenta con este protocolo nos lo mostrará de forma visual con una cruz, así como información ampliada debajo.

En cambio, si ese sitio web está utilizando el protocolo HTTP/3 nos mostrará una imagen como vemos debajo. También nos dará información más detallada al respecto.

Ver si una página web usa HTTP/3

Para utilizar esta herramienta gratuita de GeekFlare simplemente tenemos que entrar en su página web. Es un proceso rápido y sencillo. Simplemente hay que pulsar en comprobar y esperar unos segundos. Nos dará automáticamente la información.

HTTP/3 Check

Otra herramienta muy similar es la de HTTP/3 Check. Su funcionamiento es igual, ya que simplemente hay que poner la URL del dominio que queremos comprobar y darle a Check. Tenemos que esperar unos segundos y nos dará la información esperada.

Si ese sitio web utiliza el protocolo HTTP/3 nos lo indicará con un mensaje en verde. En caso de que no cuente con esa posibilidad nos aparecerá un mensaje en rojo donde nos lo indica.

Una vez más para poder utilizar esta herramienta solo tenemos que entrar en su página web. Allí tendremos que introducir la dirección que nos interesa y darle a comprobar. Es muy rápido y sencillo.

En definitiva, con estas dos herramientas sencillas que hemos visto podemos comprobar si una página web utiliza el protocolo HTTP/3. Como vemos resulta muy sencillo y rápido saber si un sitio lo utiliza o no.

Con el paso del tiempo son más y más las páginas que utilizan este protocolo. Se espera que la cifra se cada vez mayor debido a sus ventajas. La seguridad es un factor muy importante para los usuarios y los sitios web deben actualizarse para contar siempre con las herramientas y funciones más novedosas y de esta forma no comprometer nunca la información de los visitantes.

El artículo HTTP/3 y QUIC: Conoce todo sobre este protocolo para navegar rápido se publicó en RedesZone.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.