Em do Firefox, que servirão de base para o lançamento do Firefox 72, agendado para 7 de janeiro, suporte ao protocolo HTTP/3. Por padrão, o HTTP/3 está desativado e requer a ativação da opção "network.http.http3.enabled" em about:config.
O suporte ao HTTP/3 no Firefox é baseado em um projeto desenvolvido pela Mozilla , que fornece a implementação de cliente e servidor para o protocolo QUIC. O código dos componentes para suporte ao HTTP/3 e QUIC foi escrito na linguagem Rust.
Do lado do cliente, o suporte experimental ao HTTP/3 já está no Chrome e curl, e para servidores está disponível na forma de para nginx e baseado na biblioteca ( QUIC e HTTP/3 na linguagem Rust da Cloudflare). Para verificar o funcionamento dos clientes HTTP/3 vários sites de testes, a maior parte dos quais ainda não abre corretamente no Firefox (HTTP/3 está em uma fase e ainda não está padronizado).
Vale lembrar que o HTTP/3 padroniza o uso do protocolo QUIC como transporte para o HTTP/2. O protocolo (Quick UDP Internet Connections) vem sendo desenvolvido pela Google desde 2013 como uma alternativa à combinação TCP+TLS para a Web, abordando problemas de latência elevada na configuração e negociação de conexões TCP e eliminando atrasos em caso de perda de pacotes durante a transmissão de dados. O QUIC é uma camada sobre o protocolo UDP, suportando multiplexação de várias conexões e fornecendo métodos de criptografia equivalentes ao TLS/SSL.
Principais 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, em cerca de 75% dos casos, os dados podem ser transmitidos imediatamente após o envio do pacote de configuraçã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);
- Não reutilizar o mesmo número de sequência ao retransmitir um pacote, o que ajuda a evitar ambiguidades na identificação dos pacotes recebidos e elimina 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.
- Notável de desempenho e capacidade em comparação ao TCP. Para serviços de vídeo, como o YouTube, a aplicação do QUIC demonstrou uma redução de 30% nas operações de buffering durante a reprodução de vídeos.
Fonte: opennet.ru
