A Microsoft abriu sua implementação do protocolo QUIC usado em HTTP/3

Microsoft anunciou o sobre como abrir o código da biblioteca MsQuicName com a implementação do protocolo de rede QUIC. O código é escrito em C e distribuído por sob licença do MIT. A biblioteca é multiplataforma e pode ser usada não apenas no Windows, mas também no Linux usando Schannel ou OpenSSL para TLS 1.3. No futuro, está previsto o suporte a outras plataformas.

A biblioteca é baseada no código do driver msquic.sys fornecido no kernel do Windows 10 (Insider Preview) para habilitar o HTTP e SMB em cima do QUIC. O código também é usado para implementar HTTP/3 na pilha interna do Windows e no .NET Core. O desenvolvimento da biblioteca MsQuic será conduzido inteiramente no GitHub usando revisão pública por pares, solicitações pull e problemas do GitHub. Foi preparada uma infraestrutura que verifica cada commit e pull request em um conjunto de mais de 4000 testes. Após estabilizar o ambiente de desenvolvimento, está planejado aceitar alterações de desenvolvedores terceiros.

O MsQuic já pode ser usado para criar servidores e clientes, mas nem todas as funcionalidades definidas na especificação IETF estão disponíveis atualmente. Por exemplo, não há suporte para 0-RTT, migração de cliente, Path MTU Discovery ou controle de endereço preferencial do servidor. Entre os recursos implementados, destaca-se a otimização para atingir rendimento máximo e atrasos mínimos, suporte para entrada/saída assíncrona, RSS (Receive Side Scaling) e a capacidade de combinar fluxos UDP de entrada e saída. A implementação do MsQuic foi testada quanto à compatibilidade com versões experimentais dos navegadores Chrome e Edge.

Lembre-se de que HTTP/3 padroniza o uso do protocolo QUIC como transporte para HTTP/2. Protocolo QUIC (Quick UDP Internet Connections) é desenvolvido pelo Google desde 2013 como uma alternativa à combinação TCP+TLS para a Web, resolvendo problemas com longos tempos de configuração e negociação de conexões em TCP e eliminando atrasos quando pacotes são perdidos durante a transferência de dados. QUIC é uma extensão do protocolo UDP que suporta multiplexação de múltiplas conexões e fornece métodos de criptografia equivalentes a TLS/SSL.

O principal características RÁPIDO:

  • Alta segurança semelhante ao TLS (essencialmente o QUIC fornece a capacidade de usar TLS 1.3 sobre UDP);
  • Controle de integridade de fluxo para evitar perda de pacotes;
  • A capacidade de estabelecer instantaneamente uma conexão (0-RTT, em cerca de 75% dos casos, os dados podem ser transmitidos imediatamente após o envio de um pacote de configuração de conexão) e garantir atrasos mínimos entre o envio de uma solicitação e o recebimento de uma resposta (RTT, Round Trip Time) ;
    A Microsoft abriu sua implementação do protocolo QUIC usado em HTTP/3

  • Não use o mesmo número de sequência ao retransmitir um pacote, o que permite evitar ambigüidades na determinação dos pacotes recebidos e eliminar os tempos limite;
  • A perda de pacotes afeta apenas a entrega do stream associado a ele e não interrompe a entrega de dados em streams transmitidos em paralelo na conexão atual;
  • Ferramentas de correção de erros que minimizam atrasos devido à retransmissão de pacotes perdidos. Uso de códigos especiais de correção de erros no nível do pacote para reduzir situações que requerem retransmissão de dados perdidos do pacote.
  • Os limites dos blocos criptográficos estão alinhados com os limites dos pacotes QUIC, o que reduz o impacto das perdas de pacotes na decodificação do conteúdo dos pacotes subsequentes;
  • Sem problemas com o bloqueio da fila TCP;
  • Suporte de ID de conexão para reduzir o tempo de reconexão para clientes móveis;
  • Possibilidade de conectar mecanismos avançados para controle de sobrecarga de conexão;
  • Utilizar técnicas de previsão de largura de banda em cada direção para garantir a intensidade ótima de envio de pacotes, evitando rolar para um estado de congestionamento, no qual há perda de pacotes;
  • Perceptível crescimento desempenho e taxa de transferência em comparação com o TCP. Para serviços de vídeo como o YouTube, o QUIC demonstrou reduzir as operações de rebuffering de vídeo em 30%.

Fonte: opennet.ru

Adicionar um comentário