A Mozilla anunciou sua intenção de iniciar a implementação gradual dos protocolos HTTP/3 e QUIC na versão 88 do Firefox, prevista para 19 de abril (originalmente, o lançamento estava previsto para 20 de abril, mas, de acordo com o cronograma, foi adiado por um dia). Inicialmente, o suporte ao HTTP/3 será ativado apenas para uma pequena porcentagem de usuários e, se não surgirem problemas imprevistos, será estendido a todos até o final de maio. Nas versões noturnas e beta, o HTTP/3 foi ativado por padrão no final de março.
É importante lembrar que a implementação do HTTP/3 no Firefox está baseada no projeto neqo, desenvolvido pela Mozilla, que fornece a implementação do cliente e servidor para o protocolo QUIC. O código dos componentes para suporte ao HTTP/3 e QUIC foi escrito na linguagem Rust. Para controlar a ativação do HTTP/3 em about:config, existe a opção "network.http.http3.enabled". Do lado do cliente, o suporte experimental ao HTTP/3 também foi adicionado ao Chrome e ao curl, e para servidores disponível no nginx, assim como na forma de um módulo nginx e um servidor de testes da empresa Cloudflare. No lado dos sites, o suporte ao HTTP/3 já é fornecido nos servidores do Google e do Facebook.
O protocolo HTTP/3 ainda está em fase de rascunho e não foi padronizado no IETF. Para o uso do HTTP/3, é necessário que tanto o cliente quanto o servidor suportem a mesma versão do rascunho do padrão QUIC e HTTP/3, que é especificada no cabeçalho Alt-Svc (o Firefox suporta rascunhos de especificação de 27 a 32).
O HTTP/3 define o uso do protocolo QUIC como transporte para o HTTP/2. O protocolo QUIC (Quick UDP Internet Connections) vem sendo desenvolvido pela Google desde 2013 como uma alternativa à combinação TCP+TLS para a Web, resolvendo problemas com longos tempos de conexão e configuração em TCP e eliminando latências causadas pela perda de pacotes durante a transmissão de dados. O QUIC representa uma camada sobre o protocolo UDP, suportando multiplexação de várias conexões e oferecendo métodos de criptografia equivalentes ao TLS/SSL. Durante o desenvolvimento do padrão no IETF, mudanças foram feitas no protocolo, resultando na criação de duas ramificações existentes paralelamente, uma para o HTTP/3 e outra suportada pela Google (o Chrome suporta ambas as versões).
Principais características do QUIC:
- Alta segurança, equivalente ao TLS (na prática, o QUIC possibilita o uso do TLS sobre UDP);
- Controle da integridade do fluxo, prevenindo a perda de pacotes;
- Capacidade de estabelecer uma conexão instantaneamente (0-RTT, aproximadamente em 75% dos casos os dados podem ser transmitidos imediatamente após o envio do pacote de instalação da conexão) e garantir latências mínimas entre o envio da solicitação e o recebimento da resposta (RTT, Round Trip Time);
- Uso de um número de sequência diferente para retransmissão de pacotes, o que permite evitar ambiguidades na determinação dos pacotes recebidos e eliminar timeouts;
- A perda de um pacote afeta apenas a entrega do fluxo relacionado e não interrompe a entrega de dados em fluxos paralelos transmitidos através da conexão atual;
- Mecanismos de correção de erros que minimizam atrasos devido à retransmissão de pacotes perdidos. Uso de códigos especiais de correção de erros em nível de pacote para reduzir situações que exigem a retransmissão de dados de pacotes perdidos.
- Os limites dos blocos criptográficos estão alinhados com os limites dos pacotes QUIC, o que diminui o impacto da perda de pacotes na decodificação do conteúdo dos pacotes subsequentes.
- Ausência de problemas de bloqueio de fila TCP.
- Suporte a identificadores de conexão, permitindo reduzir o tempo de estabelecimento de novas conexões para clientes móveis.
- Capacidade de conectar mecanismos avançados de controle de congestionamento.
- Uso de técnicas de previsão de largura de banda em cada direção para garantir a intensidade ideal de envio de pacotes, evitando um estado de sobrecarga em que ocorre a perda de pacotes.
- Um aumento significativo no desempenho e na largura de banda em comparação com o TCP. Para serviços de vídeo, como o YouTube, a aplicação do QUIC mostrou uma redução de 30% nas operações de buffering durante a reprodução de vídeos.
Fonte: opennet.ru
