Quick UDP Internet Connections (QUIC) est un protocole de couche de transport à usage général conçu pour remplacer le protocole de contrôle de transmission (TCP) grâce à sa flexibilité, sa sécurité intégrée, ses problèmes de performances réduits et son taux d'adoption plus rapide. Développé à l'origine par Google, QUIC utilise le protocole UDP (User Datagram Protocol) comme mécanisme de transport de bas niveau pour déplacer des paquets entre le client et le serveur. Notamment, QUIC intègre également Transport Layer Security (TLS) en tant que composant intégral, et non en tant que couche supplémentaire comme HTTP/1.1 et HTTP/2.
HTTP/3, basé sur QUIC, est la troisième version majeure du protocole de transfert hypertexte (HTTP) et a été adopté comme norme IETF en 2022. QUIC+HTTP/3 a été créé pour résoudre les limitations inhérentes à TCP qui limitent les performances et l'expérience utilisateur.
Les API sont la « face publique » des applications, révélant les fonctions qu’elles exécutent et les informations qu’elles peuvent fournir, et définissant le format approprié des requêtes. Lorsqu'un développeur crée et expose l'API d'une application, il permet à d'autres applications de communiquer avec elle.
Dans de nombreux cas, les API permettent aux développeurs de gagner un temps précieux, car elles rendent les fonctions couramment utilisées facilement accessibles. Plutôt que de dupliquer les fonctionnalités d’une application existante, les développeurs peuvent intégrer les fonctionnalités dans leurs applications en appelant l’API de l’application existante.
Présentation générale des piles de transport HTTP
L’objectif de QUIC est de fournir un protocole de transport haute performance, haute fiabilité et haute sécurité pour HTTP/3 (bien que QUIC soit également adapté au trafic non HTTP).
Si QUIC est entièrement nouveau pour vous, nous vous recommandons de regarder la vidéo d’introduction ci-dessous.
UDP est un protocole simple et léger qui ne nécessite pas de négociation complexe à trois comme TCP pour établir la première connexion. Cette simplicité rend l'UDP rapide et sans connexion, mais cela signifie également qu'il manque les fonctionnalités essentielles pour une communication fiable et sécurisée par rapport au TCP.
QUIC est unique car il fusionne les avantages des protocoles UDP et TCP. Bien qu'il soit sans connexion et qu'il utilise UDP comme protocole de transport de bas niveau pour réduire les délais de connexion et de transport, il est orienté connexion dans les couches supérieures en raison de sa réimplémentation des fonctionnalités d'établissement de connexion et de détection de perte de TCP qui garantissent la livraison des paquets. Il gère les tâches d'identification des données perdues et d'exécution des retransmissions pour garantir une expérience utilisateur transparente.
QUIC intègre également TLS en tant que composant intégral, et non en tant que couche supplémentaire comme c'est le cas avec HTTP/1.1 et HTTP/2. Cette incorporation garantit que les messages sont cryptés par défaut.
Le diagramme ci-dessous illustre l’anatomie de base d’un réseau QUIC. Comme le montre le diagramme, les objets logiques qui contiennent des requêtes HTTP/3, des réponses ou des données d'application sont des flux QUIC. Pour la transmission entre les points de terminaison du réseau, les flux QUIC sont encapsulés dans plusieurs couches logiques.
Anatomie d'un flux QUIC
En partant de l'extérieur vers l'intérieur, les couches logiques et les objets sont :
Une négociation TLS fournit une connexion sécurisée entre le client et le serveur. Le cryptage fourni par QUIC nécessite TLS v1.3 . Comme le montre le diagramme ci-dessous, QUIC conserve la « couche de contenu » TLS qui fournit les clés cryptographiques mais remplace la « couche d’enregistrement » par son propre mécanisme de transport.
QUIC s’appuie également sur TLS pour l’authentification et la négociation des paramètres essentiels à la sécurité et aux performances. Plutôt qu’une superposition stricte, les deux protocoles coopèrent : QUIC utilise la négociation TLS pour établir une connexion sécurisée tandis que TLS utilise la fiabilité, la livraison ordonnée et la couche d'enregistrement fournies par QUIC.
À un niveau élevé, il existe deux interactions principales entre les composants TLS et QUIC :
QUIC TLS est une variante de TLS conçue spécifiquement pour le protocole QUIC. Actuellement, il existe deux options pour les utilisateurs recherchant la prise en charge HTTP/3 dans QUIC TLS :
QUIC+HTTP/3 vise à améliorer les performances des applications Web en réduisant la latence et en améliorant la diffusion des données sur des réseaux peu fiables. Parmi leurs avantages, on peut citer :
Explorez les ressources ci-dessous pour en savoir plus sur l’implémentation QUIC+HTTP/3 de NGINX et sur d’autres façons d’utiliser QUIC+HTTP/3 pour une communication plus rapide et plus efficace.