Citrix ADC

protocolo HTTP3 sobre QUIC

HTTP/2 a través de TCP es el estándar preferido para enviar múltiples secuencias de solicitudes HTTP a través de una única conexión. Sin embargo, en el mecanismo de transporte TCP existen ciertas limitaciones y problemas de latencia al acceder a sitios web y aplicaciones web. Cuando multiplex varias solicitudes a través de la misma conexión, están sujetas a la fiabilidad de la misma conexión. Si se pierde el paquete de una solicitud, todas las demás solicitudes multiplexadas se retrasan hasta que se detecta y se vuelve a transmitir el paquete perdido. Esto provoca retrasos en el bloqueo de cabecera de línea y problemas de latencia.

Para retrasos en la conexión y el transporte, HTTP/3 utiliza QUIC en lugar del protocolo TCP. El QUIC es un protocolo emergente que utiliza UDP en lugar de TCP como transporte base. En HTTP sobre quic, puede multiplexar varias solicitudes independientes sin depender de una sola conexión TCP. QUIC implementa una conexión fiable en la que puede transmitir varias solicitudes HTTP. QUIC también incorpora TLS como componente integrado y no como capa adicional como en HTTP/1.1 o HTTP/2.

Ventaja de utilizar el protocolo HTTP/3

A continuación se presentan algunas de las ventajas importantes de utilizar el protocolo QUIC para el transporte de datos HTTP/3:

• Multiplexación de flujos • Control de flujo a nivel de corriente y conexión • Establecimiento de conexiones de baja latencia • Migración de conexiones y resiliencia a la revinculación de NAT • Encabezado y carga útil autenticados y cifrados

Pila de transporte en protocolos HTTP

La ilustración siguiente muestra la pila de transporte en los protocolos HTTP/1.1, HTTP/2 y HTTP/3.

Pila de transporte en protocolos HTTP

Cómo funciona la administración de conexiones QUIC y HTTP/3 en Citrix ADC

En la siguiente ilustración se muestra cómo la administración de conexiones QUIC y HTTP/3 en un dispositivo Citrix ADC y cómo los componentes interactúan entre sí.

Cómo funciona la administración de conexiones QUIC y HTTP/3

Paso 1: Solicitud HTTP/3 del lado del cliente a través del protocolo QUIC al dispositivo Citrix ADC. Paso 2: Solicitud reenviada por Citrix ADC AS HTTP/1.1 o HTTP/2 según el soporte del servidor back-end. Paso 3: Respuesta a través de HTTP/2 o HTTP/1.1 desde el servidor back-end a Citrix ADC. Paso 4: ADC reenvía la respuesta como respuesta HTTP/3 al cliente.

Cómo funciona el protocolo HTTP/3

En HTTP/3, cuando un cliente sabe que existe un servidor HTTP/3 en un punto final determinado, abre una conexión QUIC. El protocolo QUIC proporciona multiplexación y control de flujo. Dentro de cada secuencia, la unidad básica de comunicación HTTP/3 es un marco. Cada tipo de marco tiene un propósito diferente. Por ejemplo, los marcos HEADERS y DATA forman la base de las solicitudes y respuestas HTTP.

La multiplexación de solicitudes se realiza mediante la abstracción de flujo QUIC. Cada par de solicitudes de respuesta consume un único flujo QUIC. Las transmisiones son independientes entre sí, por lo que una transmisión que está bloqueada o sufre pérdida de paquetes no impide el progreso en otros flujos. La inserción del servidor es un modo de interacción introducido en HTTP/2 que permite a un servidor enviar un intercambio de solicitudes y respuestas a un cliente en previsión de que el cliente realicen la solicitud indicada. Esto cambia el uso de la red frente a una posible ganancia de latencia. Se utilizan varias tramas HTTP/3 para administrar la inserción del servidor, como PUSH_PROMISE, MAX_PUSH_ID y CANCEL_PUSH. Al igual que en HTTP/2, los campos de solicitud y respuesta se comprimen para su transmisión. Dado que HPACK se basa en la transmisión en orden de las secciones de campo comprimido (garantía no proporcionada por QUIC), HTTP/3 reemplaza a HPACK por QPACK. QPACK utiliza flujos unidireccionales independientes para modificar y rastrear el estado de la tabla de campos, mientras que las secciones de campo codificadas hacen referencia al estado de la tabla sin modificarla.

Cómo funciona el protocolo HTTP/3

protocolo HTTP3 sobre QUIC