Quick UDP Internet Connections (QUIC) est un protocole de couche 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 faibles problèmes de performances 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 les paquets entre le client et le serveur. QUIC incorpore également la sécurité de la couche transport (TLS) en tant que composant intégral, et non en tant que couche supplémentaire comme HTTP/1.1 et HTTP/2.
Basé sur le protocole QUIC, HTTP/3 est la troisième version majeure du Hypertext Transfer Protocol (HTTP) et a été adopté en tant que norme IETF en 2022. QUIC et HTTP/3 ont été créés pour résoudre les limitations inhérentes au TCP qui restreignent les performances et l’expérience de l’utilisateur.
Les API sont la « face publique » des applications, elles révèlent les fonctions qu’elles exécutent et les informations qu’elles peuvent fournir, et définissent 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 facilement accessibles les fonctions couramment utilisées. Plutôt que de reproduire la fonctionnalité d’une application existante, les développeurs peuvent intégrer cette fonctionnalité dans leurs applications en faisant appel à l’API de l’application existante.
Aperçu à haut niveau des piles de transport HTTP
L’objectif du QUIC est de fournir un protocole de transport de haute performance, de haute fiabilité et de haute sécurité pour HTTP/3 (bien que QUIC soit également adapté au trafic non HTTP).
Si vous ne connaissez pas QUIC, nous vous recommandons de regarder la vidéo d’introduction ci-dessous.
UDP est un protocole simple et léger qui n’a pas besoin d’une liaison à trois voies (three-way handshake) complexe comme le TCP pour établir la première connexion. Cette simplicité rend l’UDP rapide et sans connexion, mais elle signifie aussi qu’il manque les caractéristiques essentielles pour une communication fiable et sécurisée par rapport au TCP.
QUIC est unique parce qu’il fusionne les avantages des protocoles UDP et TCP. Bien qu’il soit sans connexion et qu’il utilise l’UDP comme protocole de transport de bas niveau afin de réduire les délais de connexion et de transport, il est orienté connexion dans les couches supérieures grâce à sa réimplémentation des fonctions d’établissement de connexion et de détection de perte de TCP qui garantissent la livraison des paquets. Il prend en charge les tâches d’identification des données perdues et les retransmissions pour garantir une expérience utilisateur transparente.
QUIC incorpore également le 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 décrit l’anatomie de base d’un réseau QUIC. Comme le montre le diagramme, les objets logiques qui contiennent les requêtes HTTP/3, les réponses ou toute autre donnée d’application sont des flux QUIC. Pour la transmission entre les points d’extrémité du réseau, les flux QUIC sont enveloppés à l’intérieur de plusieurs couches logiques.
Anatomie d’un flux QUIC
De l’extérieur vers l’intérieur, les couches et objets logiques sont les suivants :
Une liaison TLS assure 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 le TLS pour l’authentification et la négociation de paramètres essentiels à la sécurité et à la performance. Plutôt qu’une stricte superposition, les deux protocoles coopèrent : QUIC utilise la liaison TLS pour établir une connexion sécurisée, tandis que le TLS utilise la couche de fiabilité, de livraison ordonnée et d’enregistrement fournie 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. Il existe actuellement deux options pour les utilisateurs qui souhaitent que QUIC TLS prenne en charge HTTP/3 :
Le QUIC et le HTTP/3 visent à améliorer les performances des applications Web en réduisant la latence et en améliorant la transmission des données sur des réseaux peu fiables. Leurs avantages sont les suivants :
Explorez les ressources ci-dessous pour en savoir plus sur l’implémentation du QUIC et du HTTP/3 de NGINX et sur d’autres façons d’utiliser ces deux protocoles pour une communication plus rapide et plus efficace.