Microsoft ha aperto la propria implementazione del protocollo QUIC, utilizzato in HTTP/3

Azienda Microsoft ha annunciato sull'apertura del codice della libreria MsQuic con implementazione del protocollo di rete QUIC. Il codice è scritto in linguaggio C e è distribuito sotto licenza MIT. La libreria è multipiattaforma e può essere utilizzata non solo in Windows, ma anche in Linux, sfruttando Schannel o OpenSSL per TLS 1.3. In futuro è prevista l'aggiunta di supporto per altre piattaforme.

La libreria si basa sul codice del driver msquic.sys, fornito nel kernel di Windows 10 (Insider Preview) per garantire il funzionamento dei protocolli HTTP e SMB sopra QUIC. Compreso il codice, è utilizzato per implementare HTTP/3 nel stack interno di Windows e in .NET Core. Lo sviluppo della libreria MsQuic sarà completamente gestito su GitHub con revisione pubblica, pull request e GitHub Issues. È stata preparata un'infrastruttura che verifica ogni commit e pull request in un insieme di oltre 4000 test. Dopo la stabilizzazione dell'ambiente di sviluppo, si prevede di accettare modifiche da sviluppatori esterni.

MsQuic può già essere utilizzato per creare server e client, ma non tutte le funzionalità definite nelle specifiche IETF sono attualmente disponibili. Ad esempio, non è ancora supportato 0-RTT, la migrazione dei clienti, il Path MTU Discovery e la gestione della preferenza degli indirizzi per il server (Server Preferred Address). Tra le caratteristiche implementate si segnala l'ottimizzazione per massimizzare la larghezza di banda e minimizzare i ritardi, il supporto per l'input/output asincrono, RSS (Receive Side Scaling), la possibilità di unire flussi UDP in entrata e in uscita. L'implementazione di MsQuic è stata testata per la compatibilità con i rami sperimentali dei browser Chrome ed Edge.

Ricordiamo che HTTP/3 standardizza l'uso del protocollo QUIC come trasporto per HTTP/2. Il protocollo QUIC (Quick UDP Internet Connections) è stato sviluppato da Google dal 2013 come alternativa alla combinazione TCP+TLS per il Web, affrontando problemi di elevato tempo di installazione e di negoziazione delle connessioni in TCP e eliminando i ritardi causati dalla perdita di pacchetti durante il trasferimento dei dati. QUIC è un'estensione del protocollo UDP, che supporta la multiplexing di diverse connessioni e fornisce metodi di crittografia equivalenti a TLS/SSL.

Principali di rendering tramite WebGL e Canvas, QUIC:

  • Elevata sicurezza, simile a TLS (in sostanza QUIC offre la possibilità di utilizzare TLS 1.3 su UDP);
  • Controllo dell'integrità del flusso, che previene la perdita di pacchetti;
  • Possibilità di stabilire immediatamente una connessione (0-RTT, in circa il 75% dei casi i dati possono essere trasferiti subito dopo l'invio del pacchetto di apertura connessione) e garantire latenze minime tra l'invio della richiesta e la ricezione della risposta (RTT, Round Trip Time);
    Microsoft ha aperto la propria implementazione del protocollo QUIC, utilizzato in HTTP/3
  • Non utilizzo, durante la ritrasmissione, dello stesso numero di sequenza del pacchetto, il che consente di evitare ambiguità nella determinazione dei pacchetti ricevuti e di eliminare i timeout;
  • La perdita di pacchetti influisce solo sulla consegna del flusso a essi associato e non interrompe la consegna dei dati nei flussi trasmessi parallelamente attraverso l'attuale connessione;
  • Strumenti di correzione degli errori, che minimizzano i ritardi dovuti alla ritrasmissione dei pacchetti persi. Utilizzo di codici speciali di correzione degli errori a livello di pacchetto per ridurre le situazioni che richiedono la ritrasmissione dei dati del pacchetto perso.
  • I confini dei blocchi crittografici sono allineati con i confini dei pacchetti QUIC, riducendo l'impatto delle perdite di pacchetti sulla decodifica del contenuto dei pacchetti successivi;
  • Assenza di problemi di blocco della coda TCP;
  • Supporto per l'identificatore di connessione, che consente di ridurre i tempi per stabilire una nuova connessione per i clienti mobili;
  • Possibilità di connettere meccanismi avanzati di controllo del sovraccarico della connessione;
  • Utilizzo di tecniche di previsione della larghezza di banda in entrambe le direzioni per garantire un'intensità ottimale di invio dei pacchetti, evitando di scivolare in uno stato di sovraccarico, caratterizzato dalla perdita di pacchetti;
  • Notevole incremento della performance e della capacità, rispetto a TCP. Per i servizi video, come YouTube, l'applicazione di QUIC ha mostrato una riduzione delle operazioni di ri-buffering durante la visione dei video del 30%.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster