Lanzamiento preliminar de nginx con soporte para QUIC y HTTP/3.

Empresa NGINX anunció sobre el comienzo de las pruebas implementación de los protocolos QUIC y HTTP/3 en el servidor HTTP y proxy nginx. La implementación se basa en el borrador 27 de la especificación IETF-QUIC y está disponible a través de un repositorio separado, ramificado de la versión 1.19.0. El código se distribuye bajo la licencia BSD y no se cruza con la implementación propuesta anteriormente de HTTP/3 para nginx por parte de Cloudflare, que es un proyecto separado.

El soporte para HTTP/3 en nginx se marca como experimental, ya que no todas las funcionalidades del protocolo están implementadas. Sin embargo, nginx ya se puede utilizar para enviar respuestas a solicitudes simples de HTTP/3 a través de QUIC y cargar/entregar archivos grandes. De las funcionalidades aún no disponibles en el protocolo se destacan los medios de negociación de la versión del protocolo, ECN y control de congestión, registros estructurados, modo de recuperación (QUIC recovery, gestión de flujo y congestión), NAT Rebinding, direcciones móviles, Server push, y la adición de datos (trailer). También se ha propuesto solo un soporte básico para el procesamiento de paquetes ACK y gestión de flujo, que requiere mejoras. No se han tenido en cuenta todos los requisitos del estándar.

Para activar HTTP/3 es necesario compilar nginx con el módulo http_v3_module y agregar la directiva adicional
«listen» con el flag «http3» para crear un socket UDP de escucha. Por ejemplo:

server {
listen 443 ssl; # socket TCP para HTTP/1.1
listen 443 http3 reuseport; # socket UDP para QUIC+HTTP/3

ssl_protocols TLSv1.3; # en QUIC, TLS 1.3 es obligatorio
ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;

add_header Alt-Svc ‘quic=»:443‘; # indicador de disponibilidad de QUIC
add_header QUIC-Status $quic; # Cabecera con el estado de uso de QUIC
}

Recordemos que HTTP/3 normaliza el uso del protocolo QUIC como transporte para HTTP/2. El protocolo QUIC (Quick UDP Internet Connections) ha sido desarrollado por Google desde 2013 como una alternativa a la combinación TCP+TLS para la Web, que resuelve problemas de alto tiempo de establecimiento y negociación de conexiones en TCP y elimina retrasos al perder paquetes durante la transmisión de datos. QUIC es una capa sobre el protocolo UDP, que soporta la multiplexación de múltiples conexiones y proporciona métodos de cifrado equivalentes a TLS/SSL. En el lado del cliente, el soporte experimental para HTTP/3 ya se ha añadido en Curl, Firefox y Chromium.

Lanzamiento preliminar de nginx con soporte para QUIC y HTTP/3.

Principales características QUIC:

  • Alta seguridad, similar a TLS (en esencia, QUIC proporciona la capacidad de usar TLS 1.3 sobre UDP);
  • Control de integridad del flujo, previniendo la pérdida de paquetes;
  • La posibilidad de establecer una conexión de inmediato (0-RTT, en aproximadamente el 75% de los casos los datos se pueden transmitir inmediatamente después del envío del paquete de establecimiento de conexión) y asegurar una latencia mínima entre el envío de la solicitud y la recepción de la respuesta (RTT, Round Trip Time);
    Lanzamiento preliminar de nginx con soporte para QUIC y HTTP/3.
  • No utilizar el mismo número de secuencia para la retransmisión del paquete, lo que permite evitar ambigüedades al determinar los paquetes recibidos y eliminar los tiempos de espera;
  • La pérdida de paquetes afecta solo a la entrega de la corriente asociada y no detiene la entrega de datos en las corrientes que se transmiten en paralelo a través de la conexión actual;
  • Mecanismos de corrección de errores que minimizan la latencia debido a la retransmisión de paquetes perdidos. 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 un paquete perdido.
  • Los límites de los bloques criptográficos están alineados con los límites de los paquetes QUIC, lo que reduce el impacto de la pérdida de paquetes en la decodificación del contenido de los siguientes paquetes;
  • Ausencia de problemas de bloqueo de la cola TCP;
  • Soporte para un identificador de conexión que permite reducir el tiempo de establecimiento de una nueva conexión para clientes móviles;
  • Capacidad de conectar mecanismos avanzados de control de congestión de la conexión;
  • Uso de técnicas de predicción de ancho de banda en cada dirección para asegurar la intensidad óptima de envío de paquetes, evitando caer en un estado de congestión donde se observa la pérdida de paquetes;
  • Notable aumento rendimiento y capacidad de transporte en comparación con TCP. Para servicios de video como YouTube, la aplicación de QUIC ha demostrado reducir las operaciones de repetición de búfer al ver videos en un 30%.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster