Las versiones nightly de Firefox ya cuentan con el soporte para HTTP/3 de forma predeterminada
Mozilla dio a conocer hace algunos días que las próximas versiones nightly de Firefox, que formarán la base del lanzamiento de Firefox 72 ya comenzarán a tener el soporte inicial para el protocolo HTTP/3. Dado que de forma predeterminada este soporte para HTTP/3 está deshabilitado y se requería de la activación por parte del usuario de la opción “network.http.http3.enabled” en “about: config“.
HTTP/3 estandariza el uso del protocolo QUIC como transporte para HTTP/2. El protocolo QUIC fue desarrollado por Google como una alternativa a TCP + TLS para la Web, los problemas de una solución con gran tiempo de instalación y los compuestos de coordinación en TCP y la eliminación de los retrasos en la pérdida de paquetes durante la transmisión de datos.
QUIC es un complemento del protocolo UDP que admite la multiplexación de múltiples conexiones y proporciona métodos de cifrado equivalentes a TLS/SSL. Dentro de las características clave de QUIC, se destacan las siguientes:
- Alta seguridad, similar a TLS (de hecho, QUIC proporciona la capacidad de usar TLS sobre UDP).
- Control de integridad de flujo que evita la pérdida de paquetes.
- La capacidad de establecer instantáneamente una conexión (0-RTT, en aproximadamente el 75% de los casos, los datos se pueden transferir inmediatamente después de enviar el paquete de configuración de la conexión) y garantizar retrasos mínimos entre el envío de una solicitud y la recepción de una respuesta (RTT, Tiempo de ida y vuelta).
- No usar el mismo número de secuencia al retransmitir un paquete, lo que evita la ambigüedad en la determinación de los paquetes recibidos y elimina los tiempos de espera.
- La pérdida de un paquete afecta la entrega de solo el flujo asociado con él y no detiene la entrega de datos en flujos transmitidos en paralelo a través de la conexión actual.
- Herramientas de corrección de errores que minimizan los retrasos debido a la retransmisión de paquetes perdidos. El uso de códigos especiales de corrección de errores a nivel de paquete para reducir situaciones que requieren la retransmisión de datos de paquetes perdidos.
- Los límites de los bloques criptográficos están alineados con los límites de los paquetes QUIC, lo que reduce el efecto de la pérdida de paquetes en la decodificación del contenido de los siguientes paquetes.
- No hay problemas con el bloqueo de la cola TCP.
- Soporte para el identificador de conexión, que reduce el tiempo para establecer una reconexión para clientes móviles;
- Capacidad para conectar mecanismos avanzados para controlar la sobrecarga de conexión.
- Usando la técnica de predecir el ancho de banda en cada dirección para asegurar una intensidad óptima de envío de paquetes, evitando que llegue a un estado de congestión en el que se observa la pérdida de paquetes.
- Rendimiento notable y ganancias de rendimiento sobre TCP. Para servicios de video como YouTube, QUIC mostró una reducción del 30% en las operaciones de re-almacenamiento en búfer al mirar videos.
El soporte HTTP/3 de Firefox se basa en el proyecto neqo de Mozilla, que proporciona una implementación de cliente y servidor para el protocolo QUIC. El código del componente para soportar HTTP/3 y QUIC está escrito en Rust.
Para probar el funcionamiento de los clientes HTTP/3, se lanzaron varios sitios de prueba, la mayoría de los cuales aún no se han abierto correctamente en Firefox pues HTTP/3 aún está en la etapa de proyecto de especificación y finalmente no estandarizado.
Esta nueva versión del protocolo ya está empezando tener pruebas y soporte añadido dentro de algunas aplicaciones, pues tal es el caso de que el soporte experimental para HTTP/3 ya se encuentra dentro de Chrome y curl y para los servidores está disponible en forma de módulo para nginx y un servidor de prueba basado en la biblioteca de quiche (implementación de QUIC y HTTP/3 en la nube de Rust de Cloudflare).
Finalmente, se espera que la próxima versión de Firefox 72 sea liberada según su calendario, pues la liberación esta programada para el 7 de enero del próximo año.