Microsoft sobre como abrir o código da biblioteca com a implementação do protocolo de rede . O código é escrito em C e sob a licença MIT. A biblioteca é multiplataforma e pode ser usada não apenas em Windowsmas também em Linux envolvendo 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. Windows 10 (Prévia Insider) para garantir o funcionamento do HTTP e Além do QUIC, esse código também é usado para implementar o HTTP/3 na pilha interna. Windows e em .NET Core. O desenvolvimento da biblioteca MsQuic será conduzido inteiramente no GitHub, utilizando revisão pública, pull requests e GitHub Issues. Uma infraestrutura foi estabelecida para verificar cada commit e pull request com base em um conjunto de mais de 4000 testes. Assim que o ambiente de desenvolvimento estiver estabilizado, contribuições de desenvolvedores terceirizados serão aceitas.
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 (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 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) ;
- 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 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
