O Comitê IETF (Internet Engineering Task Force), responsável pelo desenvolvimento de protocolos e arquitetura da internet, concluiu a elaboração do RFC para o protocolo QUIC e publicou as especificações relacionadas com os identificadores RFC 8999 (propriedades do protocolo independentes de versão), RFC 9000 (transporte sobre UDP), RFC 9001 (criptação TLS do canal de comunicação QUIC) e RFC 9002 (gerenciamento de congestionamento e definição de perda de pacotes durante a transmissão de dados).
Os RFCs receberam o status de 'Padrão Proposto', após o que começará o trabalho para atribuir ao RFC o status de padrão de rascunho (Draft Standard), o que significa, na prática, a estabilização completa do protocolo e a consideração de todos os comentários recebidos. O protocolo HTTP/3, que define o uso do protocolo QUIC como transporte para HTTP/2, ainda está na fase de especificação preliminar, mas em breve também será finalmente padronizado pelo IETF.
Espera-se que a padronização do QUIC impulsione uma adoção mais ampla deste protocolo, assim como o desenvolvimento de extensões baseadas nele, como WebTransport (tecnologia para enviar e receber dados entre o navegador e servidor) e MASQUE (tecnologia de proxy de conexões que expande as capacidades do SOCKS e HTTP CONNECT, utilizando HTTPS sobre QUIC como transporte).
Lembramos que 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 o longo tempo de estabelecimento e negociação de conexões no TCP e eliminando a latência causada pela perda de pacotes durante a transmissão de dados. O QUIC é uma camada sobre o protocolo UDP que suporta a multiplexação de várias conexões e fornece métodos de criptografia equivalentes ao TLS/SSL. Durante o processo de desenvolvimento do padrão no IETF, o protocolo foi alterado, resultando em duas ramificações coexistentes paralelamente, uma para HTTP/3 e a outra mantida pela Google (Chrome suporta ambas as opções, enquanto o Firefox suporta a opção do IETF).
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
