Microsoft ha rilasciato il codice sorgente per MsQuic, un protocollo di rete utilizzato per HTTP3

Logo Microsoft

Sviluppatori Microsoft ha annunciato il rilascio del codice sorgente della libreria MsQuic con l'implementazione del protocollo di rete QUIC. La libreria è multipiattaforma e può essere utilizzato non solo su Windows ma anche su Linux utilizzando Schannel o OpenSSL per TLS 1.3Inoltre, il lavoro continua per espandere il supporto per altre piattaforme in futuro.

La libreria è basata sul codice del driver msquic.sys fornito nel kernel di Windows 10 (anteprima interna) per garantire il funzionamento dei protocolli HTTP e SMB su QUIC. L'inclusione del codice viene usata per implementare HTTP / 3 nello stack interno di Windows e in .NET Core.

Lo sviluppo della libreria MsQuic verrà eseguito interamente su GitHub utilizzando revisioni pubbliche, richieste pull e problemi di GitHub. È stata preparata un'infrastruttura che verifica ogni richiesta di commit e pull rispetto a una serie di oltre 4000 test. Dopo aver stabilizzato l'ambiente di sviluppo, si prevede di accettare le modifiche da parte di sviluppatori esterni.

A proposito di MsQuic

La signora Quic può essere utilizzato per creare server e client, ma non tutte le funzionalità definite nella specifica IETF sono attualmente disponibili. Ad esempio, non è disponibile il supporto per 0-RTT, migrazione client, Path MTU Discovery o controllo degli indirizzi preferiti del server.

Tra le funzionalità implementate, è evidenziata l'ottimizzazione per le massime prestazioni e il minimo ritardo, supporto per I/ O asincrono, RSS (Ricevi ridimensionamento laterale), la capacità di combina flussi di input e output UDP. L'implementazione di MsQuic è stata testata per la compatibilità con i rami sperimentali del browser Chrome e Edge.

Sottolinea anche il capacità di stabilire una connessione istantaneae (0-RTT, in circa il 75% dei casi, i dati possono essere trasmessi immediatamente dopo l'invio del pacchetto di configurazione della connessione) e garantiscono ritardi minimi tra l'invio di una richiesta e la ricezione di una risposta (RTT, Round trip time).

Inoltre, ha strumenti di correzione degli errori che riducono al minimo i ritardi dovuti alla ritrasmissione di pacchetti persi.

L'uso di speciali codici di correzione degli errori a livello di pacchetto per ridurre le situazioni che richiedono la ritrasmissione di dati a pacchetto persi oimparare la tecnica per prevedere la larghezza di banda in ogni direzione per garantire un'intensità di consegna del pacco ottimale, impedendogli di raggiungere uno stato di congestione in cui si osserva la perdita di pacchetti.

Delle altre caratteristiche Tasto QUIC:

  • Alta sicurezza, simile a TLS (infatti, QUIC offre la possibilità di utilizzare TLS 1.3 su UDP).
  • Controllo dell'integrità del flusso che impedisce la perdita di pacchetti.
  • Non utilizzare lo stesso numero di sequenza quando si ritrasmette un pacchetto, il che evita ambiguità nel determinare i pacchetti ricevuti ed elimina i timeout.
  • La perdita di un pacchetto influisce sulla consegna del solo flusso ad esso associato e non interrompe la consegna dei dati in flussi paralleli trasmessi sulla connessione corrente.
  • I confini dei blocchi crittografici sono allineati ai limiti dei pacchetti QUIC, riducendo l'effetto della perdita di pacchetti sulla decodifica del contenuto dei pacchetti successivi.
  • Non ci sono problemi con il blocco della coda TCP.
  • Supporto per identificatore di connessione, che riduce il tempo necessario per stabilire una riconnessione per i client mobili.
  • Ha la capacità di collegare meccanismi avanzati per controllare la congestione della connessione.
  • Vanta prestazioni notevoli e guadagni di prestazioni su TCP. Per i servizi video come YouTube, QUIC ha dimostrato una riduzione del 30% nelle operazioni di buffering durante la visione di video.

Infine per chi è interessato a saperne di più A proposito di MsQuic o vuoi dare un'occhiata al suo codice sorgente, dovresti sapere che il codice è scritto in C, è multipiattaforma, di uso generale, è distribuito con licenza MIT e il codice rilasciato è ospitato su GitHub.

fonte: https://techcommunity.microsoft.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.