Quick UDP Internet Connections (QUIC) é um protocolo de camada de transporte de uso geral projetado para substituir o Transmission Control Protocol (TCP) por meio de sua flexibilidade, segurança integrada, menos problemas de desempenho e taxa de adoção mais rápida. Originalmente desenvolvido pelo Google, o QUIC usa o User Datagram Protocol (UDP) como mecanismo de transporte de baixo nível para mover pacotes entre cliente e servidor. Notavelmente, o QUIC também incorpora o Transport Layer Security (TLS) como um componente integral, não como uma camada adicional como HTTP/1.1 e HTTP/2.
HTTP/3, baseado no QUIC, é a terceira versão principal do Hypertext Transfer Protocol (HTTP) e foi adotado como um padrão IETF em 2022. QUIC+HTTP/3 foram criados para resolver limitações inerentes ao TCP que limitam o desempenho e a experiência do usuário.
As APIs são a “face pública” dos aplicativos, revelando as funções que eles desempenham e as informações que podem fornecer, além de definir o formato adequado das solicitações. Quando um desenvolvedor cria e expõe a API de um aplicativo, ele permite que outros aplicativos se comuniquem com ele.
Em muitos casos, as APIs economizam um tempo valioso do desenvolvedor porque tornam funções comumente usadas prontamente disponíveis. Em vez de duplicar a funcionalidade de um aplicativo existente, os desenvolvedores podem integrar a funcionalidade em seus aplicativos fazendo chamadas para a API do aplicativo existente.
Visão geral de alto nível das pilhas de transporte HTTP
O objetivo do QUIC é fornecer um protocolo de transporte de alto desempenho, alta confiabilidade e alta segurança para HTTP/3 (embora o QUIC também seja adequado para tráfego não HTTP).
Se o QUIC é uma novidade para você, recomendamos assistir ao vídeo introdutório abaixo.
UDP é um protocolo simples e leve que não precisa de um handshake triplo complexo como o TCP para estabelecer a primeira conexão. Essa simplicidade torna o UDP rápido e sem conexão, mas também significa que ele não possui os recursos essenciais para uma comunicação confiável e segura quando comparado ao TCP.
O QUIC é único porque combina os benefícios dos protocolos UDP e TCP. Embora seja sem conexão e aproveite o UDP para o protocolo de transporte de baixo nível para reduzir os atrasos de conexão e transporte, ele é orientado à conexão nas camadas superiores devido à sua reimplementação dos recursos de estabelecimento de conexão e detecção de perda do TCP, que garantem a entrega de pacotes. Ele lida com as tarefas de identificar dados perdidos e concluir retransmissões para garantir uma experiência perfeita ao usuário.
O QUIC também incorpora o TLS como um componente integral, não como uma camada adicional, como é o caso do HTTP/1.1 e HTTP/2. Essa incorporação garante que as mensagens sejam criptografadas por padrão.
O diagrama abaixo descreve a anatomia básica de uma rede QUIC. Conforme visto no diagrama, os objetos lógicos que contêm solicitações HTTP/3, respostas ou quaisquer dados de aplicativo são fluxos QUIC. Para transmissão entre pontos de extremidade da rede, os fluxos QUIC são encapsulados dentro de várias camadas lógicas.
Anatomia de um fluxo QUIC
Começando de fora para dentro, as camadas e objetos lógicos são:
Um handshake TLS fornece uma conexão segura entre cliente e servidor. A criptografia fornecida pelo QUIC requer TLS v1.3 . Conforme visto no diagrama abaixo, o QUIC mantém a “Camada de Conteúdo” TLS que fornece as chaves criptográficas, mas substitui a “Camada de Registro” por seu próprio mecanismo de transporte.
O QUIC também depende do TLS para autenticação e negociação de parâmetros essenciais para segurança e desempenho. Em vez de uma estratificação estrita, os dois protocolos cooperam: O QUIC usa o handshake TLS para estabelecer uma conexão segura, enquanto o TLS usa a confiabilidade, a entrega ordenada e a camada de registro fornecidas pelo QUIC.
Em um nível alto, há duas interações principais entre os componentes TLS e QUIC:
QUIC TLS é uma variante do TLS projetada especificamente para o protocolo QUIC. Atualmente, há duas opções para usuários que buscam suporte a HTTP/3 no QUIC TLS:
QUIC+HTTP/3 visa melhorar o desempenho de aplicativos web reduzindo a latência e melhorando a entrega de dados em redes não confiáveis. Suas vantagens incluem:
Explore os recursos abaixo para saber mais sobre a implementação QUIC+HTTP/3 do NGINX e outras maneiras de usar QUIC+HTTP/3 para uma comunicação mais rápida e eficiente.