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

Microsoft ha annunciato il sull'apertura del codice della libreria La signora Quic con l’implementazione del protocollo di rete QUIC. Il codice è scritto in C e distribuito da sotto licenza MIT. La libreria è multipiattaforma e può essere utilizzata non solo su Windows, ma anche su Linux Schannel o OpenSSL per TLS 1.3. In futuro, si prevede di supportare altre piattaforme.

La libreria si basa sul codice del driver msquic.sys fornito nel kernel di Windows 10 (Insider Preview) per abilitare HTTP e SMB sopra QUIC. Il codice viene utilizzato anche per implementare HTTP/3 nello stack interno di Windows e in .NET Core. Lo sviluppo della libreria MsQuic sarà condotto interamente su GitHub utilizzando peer review pubbliche, richieste pull e problemi di GitHub. È stata predisposta un'infrastruttura che controlla ogni richiesta di commit e pull in un set di oltre 4000 test. Dopo aver stabilizzato l'ambiente di sviluppo, si prevede di accettare modifiche da sviluppatori di terze parti.

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 è disponibile alcun supporto per 0-RTT, migrazione del client, rilevamento MTU del percorso o controllo dell'indirizzo preferito del server. Tra le funzionalità implementate si segnala l'ottimizzazione per ottenere il massimo throughput e ritardi minimi, il supporto per input/output asincrono, RSS (Receive Side Scaling) e la possibilità di combinare flussi UDP di input e output. È stata testata la compatibilità dell'implementazione MsQuic con le versioni sperimentali dei browser Chrome ed Edge.

Ricordiamo che HTTP/3 standardizza l'uso del protocollo QUIC come trasporto per HTTP/2. Protocollo QUIC (Quick UDP Internet Connections) è stato sviluppato da Google dal 2013 come alternativa alla combinazione TCP+TLS per il Web, risolvendo problemi legati ai lunghi tempi di setup e negoziazione delle connessioni in TCP ed eliminando i ritardi dovuti alla perdita di pacchetti durante il trasferimento dei dati. QUIC è un'estensione del protocollo UDP che supporta il multiplexing di connessioni multiple e fornisce metodi di crittografia equivalenti a TLS/SSL.

Il principale caratteristiche VELOCE:

  • Sicurezza elevata simile a TLS (sostanzialmente QUIC offre la possibilità di utilizzare TLS 1.3 su UDP);
  • Controllo dell'integrità del flusso, prevenendo la perdita di pacchetti;
  • La capacità di stabilire istantaneamente una connessione (0-RTT, in circa il 75% dei casi i dati possono essere trasmessi immediatamente dopo l'invio del pacchetto di configurazione della connessione) e di garantire ritardi minimi tra l'invio di una richiesta e la ricezione di una risposta (RTT, Round Trip Time);
    Microsoft ha aperto la sua implementazione del protocollo QUIC utilizzato in HTTP/3

  • Non utilizzare lo stesso numero di sequenza durante la ritrasmissione di un pacchetto, il che evita ambiguità nell'identificazione dei pacchetti ricevuti ed elimina i timeout;
  • La perdita di un pacchetto influisce solo sulla consegna del flusso ad esso associato e non interrompe la consegna dei dati nei flussi paralleli trasmessi attraverso la connessione corrente;
  • Funzionalità di correzione degli errori che riducono al minimo i ritardi dovuti alla ritrasmissione di 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 persi.
  • I confini dei blocchi crittografici sono allineati ai confini dei pacchetti QUIC, il che riduce l'impatto delle perdite di pacchetti sulla decodifica del contenuto dei pacchetti successivi;
  • Nessun problema con il blocco della coda TCP;
  • Supporto per l'identificatore di connessione, che riduce il tempo necessario per stabilire una riconnessione per i client mobili;
  • Possibilità di collegare meccanismi avanzati di controllo della congestione delle connessioni;
  • Utilizza tecniche di previsione del throughput per direzione per garantire che i pacchetti vengano inviati a velocità ottimali, evitando che si congestionino e causino la perdita di pacchetti;
  • Percettibile crescita prestazioni e throughput rispetto a TCP. Per i servizi video come YouTube, è stato dimostrato che QUIC riduce le operazioni di rebuffering durante la visione di video del 30%.

Fonte: opennet.ru

Aggiungi un commento