Em compilações experimentais suporte ao protocolo HTTP/3, que implementa uma camada para operar HTTP sobre o protocolo QUIC. O protocolo QUIC foi adicionado ao navegador há cinco anos e desde então é utilizado para otimizar a interação com os serviços do Google. Nesse meio tempo, a versão do QUIC utilizada no Chrome diferiu em alguns detalhes da versão do IETF, mas agora as implementações estão sincronizadas.
HTTP/3 padroniza o uso do QUIC como transporte para HTTP/2. Para habilitar o HTTP/3 e a versão do QUIC do das especificações do IETF, é necessário iniciar o Chrome com as opções "—enable-quic —quic-version=h3-23", após o que, ao abrir o site de teste no modo de inspeção de rede nas ferramentas de desenvolvedor, a atividade HTTP/3 será exibida como "http/2+quic/99".
Vale lembrar que o protocolo (Quick UDP Internet Connections) tem sido desenvolvido pela Google desde 2013 como uma alternativa à combinação TCP+TLS para a Web, resolvendo problemas de alta latência ao estabelecer e negociar conexões TCP e eliminando os atrasos causados pela perda de pacotes durante a transmissão de dados. O QUIC é uma camada sobre o protocolo UDP, que suporta multiplexação de várias conexões e oferece métodos de criptografia equivalentes ao TLS/SSL. O protocolo discutido já está integrado na infraestrutura de servidores da Google, faz parte do Chrome, para ser incluído no Firefox e é amplamente utilizado para atender as solicitações dos clientes nos servidores da Google.
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.
- As fronteiras criptográficas dos blocos estão alinhadas com as fronteiras dos pacotes QUIC, o que reduz o impacto das perdas de pacotes na decodificação do conteúdo dos próximos pacotes;
- 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
