Microsoft ha obert la seva implementació del protocol QUIC utilitzat a HTTP/3

Microsoft va anunciar sobre l'obertura del codi de la biblioteca MsQuic amb la implementació del protocol de xarxa QUIC. El codi està escrit en C i Distribuït per sota llicència MIT. La biblioteca és multiplataforma i es pot utilitzar no només a Windows, sinó també a Linux Schannel o OpenSSL per a TLS 1.3. En el futur, està previst donar suport a altres plataformes.

La biblioteca es basa en el codi del controlador msquic.sys proporcionat al nucli de Windows 10 (Insider Preview) per habilitar HTTP i SMB a sobre de QUIC. El codi també s'utilitza per implementar HTTP/3 a la pila interna de Windows i a .NET Core. El desenvolupament de la biblioteca MsQuic es realitzarà íntegrament a GitHub mitjançant la revisió pública per iguals, les sol·licituds d'extracció i els problemes de GitHub. S'ha preparat una infraestructura que verifica cada commit i pull request en un conjunt de més de 4000 proves. Després d'estabilitzar l'entorn de desenvolupament, es preveu acceptar canvis de desenvolupadors de tercers.

MsQuic ja es pot utilitzar per crear servidors i clients, però actualment no està disponible tota la funcionalitat definida a l'especificació IETF. Per exemple, no hi ha suport per a 0-RTT, migració de client, Path MTU Discovery o control d'adreces preferides del servidor. Entre les característiques implementades, es destaca l'optimització per aconseguir el màxim rendiment i els retards mínims, suport per a entrada/sortida asíncrona, RSS (Receive Side Scaling) i la capacitat de combinar fluxos UDP d'entrada i sortida. S'ha provat la compatibilitat de la implementació de MsQuic amb versions experimentals dels navegadors Chrome i Edge.

Recordem que HTTP/3 estandarditza l'ús del protocol QUIC com a transport per a HTTP/2. Protocol QUIC (Quick UDP Internet Connections) ha estat desenvolupat per Google des del 2013 com a alternativa a TCP + TLS per a la Web, solucionant problemes amb llargs temps de configuració i negociació de connexions en TCP i eliminant els retards en cas de pèrdua de paquets durant la transferència de dades. QUIC és un complement del protocol UDP que admet la multiplexació de múltiples connexions i proporciona mètodes de xifratge equivalents a TLS/SSL.

El principal Característiques QUIC:

  • Alta seguretat similar a TLS (essencialment QUIC ofereix la possibilitat d'utilitzar TLS 1.3 sobre UDP);
  • Control de la integritat del flux per evitar la pèrdua de paquets;
  • La capacitat d'establir una connexió a l'instant (0-RTT, en aproximadament el 75% dels casos, les dades es poden transmetre immediatament després d'enviar un paquet de configuració de connexió) i garantir uns retards mínims entre l'enviament d'una sol·licitud i la recepció d'una resposta (RTT, temps d'anada i tornada) ;
    Microsoft ha obert la seva implementació del protocol QUIC utilitzat a HTTP/3

  • No utilitzeu el mateix número de seqüència en retransmetre un paquet, la qual cosa us permet evitar l'ambigüitat a l'hora de determinar els paquets rebuts i eliminar els temps d'espera;
  • La pèrdua de paquets només afecta el lliurament del flux associat i no atura el lliurament de dades en fluxos transmesos en paral·lel a la connexió actual;
  • Eines de correcció d'errors que minimitzen els retards a causa de la retransmissió de paquets perduts. Ús de codis especials de correcció d'errors a nivell de paquet per reduir les situacions que requereixen la retransmissió de dades de paquet perduts.
  • Els límits dels blocs criptogràfics estan alineats amb els límits dels paquets QUIC, la qual cosa redueix l'impacte de la pèrdua de paquets en la descodificació del contingut dels paquets següents;
  • No hi ha problemes per bloquejar la cua TCP;
  • Suport d'identificació de connexió per reduir el temps de reconnexió dels clients mòbils;
  • Possibilitat de connectar mecanismes avançats de control de sobrecàrrega de connexió;
  • Ús de tècniques de predicció d'ample de banda en cada direcció per garantir la velocitat òptima d'enviament de paquets, evitant el rodatge a un estat de congestió, en què hi ha una pèrdua de paquets;
  • Perceptible creixement rendiment i rendiment en comparació amb TCP. Per a serveis de vídeo com YouTube, s'ha demostrat que QUIC redueix les operacions de rebuffer de vídeo en un 30%.

Font: opennet.ru

Afegeix comentari