QUIC es un protocolo de transporte seguro y de propósito general, definido por la IETF en el RFC 9000, que se ejecuta sobre UDP y construye el apretón de manos TLS dentro de la conexión. HTTP/3 utiliza QUIC como su transporte. Esto es importante para los proxies: el método HTTP CONNECT crea túneles TCP, por lo que el tráfico QUIC necesita un camino de proxy que pueda retransmitir UDP.

QUIC utiliza TLS 1.3 para proteger sus conexiones. Un servidor puede informar a los clientes que HTTP/3 está disponible enviando un encabezado Alt-Svc que nombra el protocolo "h3".

Características clave de QUIC

  • Flujos: Los datos viajan a través de flujos independientes. Con HTTP/2 sobre TCP, un paquete perdido detiene cada solicitud activa, mientras que HTTP/3 sobre QUIC evita que una pérdida en un flujo retrase a los demás.
  • Cifrado integrado: El apretón de manos TLS es parte de QUIC en lugar de ser una capa separada encima.
  • Migración de conexión: Los IDs de conexión permiten que una conexión se mueva a un nuevo camino de red, como cuando un dispositivo cambia de red.
  • 0-RTT: Un cliente que se ha conectado antes puede enviar datos inmediatamente en una nueva conexión.

QUIC y Proxies

  • UDP sobre SOCKS5: SOCKS5 admite UDP a través de su comando UDP ASSOCIATE.
  • UDP sobre HTTP: El RFC 9298 define CONNECT-UDP, que proxy UDP en HTTP de la misma manera que CONNECT proxy TCP. El UDP tunelado a menudo transporta QUIC.
  • Transporte recomendado: El RFC 9298 dice que el proxy UDP debe ejecutarse sobre HTTP/3, para evitar la recuperación de pérdidas duplicadas cuando la conexión externa utiliza TCP.

Origen y estandarización

  • 2012: Google comenzó a trabajar en QUIC como una alternativa a TCP+TLS+HTTP/2, con el objetivo de cargas de página más rápidas.
  • 2013-2014: Chrome realizó pequeños experimentos con versiones tempranas, ahora llamadas Google QUIC, y luego las implementó ampliamente.
  • 2015: Google llevó QUIC a la IETF. A partir de 2017, las versiones de la IETF divergieron de Google QUIC.
  • 2021: La IETF publicó QUIC como RFC 9000. Chrome lo activó por defecto para todos los usuarios en Chrome 93.

Limitaciones

  • UDP bloqueado: Algunas redes bloquean todo el tráfico UDP. Estudios citados por la IETF estiman que esto ocurre en aproximadamente el 3% al 5% de las redes.
  • Retroceso: En esas redes, las aplicaciones deben aceptar la falla o retroceder a otro transporte. Para HTTP, el retroceso es TLS sobre TCP.
  • Menos visible para las redes: QUIC cifra todos los datos de carga y la mayor parte de la información de control. Solo una parte del encabezado está expuesta a la red.

Términos relacionados