Livello QUIC: il futuro delle comunicazioni di rete

Tradotto automaticamente da Deepl

I server di produzione più importanti che funzionano con 4D accettano più di mille connessioni simultanee, e questo numero continua a crescere. Di conseguenza, le prestazioni diventano un obiettivo sempre più importante per i nostri team. Il protocollo QUIC, utilizzato dalla nuova versione dello standard HTTP, è stato costruito appositamente per aumentare la velocità e l’affidabilità. Poiché siamo sempre alla ricerca di tecnologie interessanti, stiamo lavorando per sostituire il nostro protocollo di rete di basso livello con il protocollo QUIC.

Per la versione 20, è possibile passare a questo livello di rete e verificare se le prestazioni migliorano. È ancora in fase di beta test, poiché abbiamo bisogno del vostro feedback prima di utilizzarlo come livello di rete predefinito. Pertanto, sarà possibile utilizzarlo solo sulle versioni beta di 4D.

QUIC, acronimo di Quick UDP Internet Connections, è stato lanciato da Google una decina di anni fa. È stato ufficialmente standardizzato dall’IETF nel maggio 2021 e adottato come protocollo per le connessioni HTTP/3.

Nel corso degli anni, 4D ha utilizzato un paio di livelli di rete diversi. Il primo, che generalmente chiamiamo “Legacy”, utilizzava troppa CPU quando era inattivo. Il livello ServerNet ha risolto questo problema minore e ha introdotto funzionalità come il supporto della modalità di sospensione del computer, ma richiede comunque una connessione costante, che non è l’ideale su reti instabili. Con entrambi questi livelli, abbiamo raggiunto il limite massimo; non c’è molto spazio per i miglioramenti.

A differenza dei livelli precedenti che lavorano su TCP, QUIC utilizza il protocollo UDP per trasportare i suoi pacchetti. Ciò consente un recupero più rapido in caso di perdita di pacchetti, congestione e vari problemi di rete. I nostri test preliminari dimostrano che QUIC mantiene le sue promesse: quando il ping diventa elevato, QUIC riesce a essere più veloce degli altri livelli di rete e, in caso di perdita di pacchetti, il guadagno di velocità è incredibile. Siamo rimasti positivamente sorpresi dalla stabilità complessiva del protocollo e puntiamo a rendere questo livello di rete il più stabile che abbiate mai conosciuto.

Durante il beta test della versione 20, è possibile attivare questo livello tramite la pagina Compatibilità delle Impostazioni della struttura. Non dimenticate che, poiché QUIC funziona su UDP, è necessario che i router e i firewall accettino connessioni UDP. Un secondo punto importante è che sia il server dell’applicazione che il server del database saranno ora in ascolto sulla stessa porta (19813 per impostazione predefinita), grazie al modo in cui QUIC raggruppa tutte le comunicazioni di rete su un unico socket invece di aprire un socket per processo come in precedenza. Inoltre, le comunicazioni di QUIC sono necessariamente criptate con TLS. Non esitate a testarlo sulla vostra infrastruttura. Utilizzeremo il vostro feedback per migliorarlo.

Nel frattempo, se avete domande o commenti, non esitate a farli nei forum di 4D.

Nicolas Brachfogel
- Proprietario del prodotto e sviluppatore senior - Nicolas Brachfogel è entrato in 4D nel 2017 come Senior Developer (4D Server e networking). In qualità di Product Owner per gestire il rilascio di Apple Silicon, si occupa di scrivere le storie degli utenti e di tradurle in specifiche funzionali, nonché di assicurarsi che le implementazioni delle funzionalità soddisfino le esigenze dei clienti. Diplomato all'Institut Supérieur d'Informatique Appliquée (INSIA), Nicolas ha iniziato la sua carriera come sviluppatore di software nel 2001. Dopo diversi anni di codifica in Java e C++, si è specializzato nello sviluppo di client-server per aziende di videogiochi. Come sviluppatore/architetto di server, ha lavorato con successo alle architetture server di molti giochi (Dofus Arena, Drakerz, Trivial Pursuit Go!).