Cloudflare a implémenté un module pour prendre en charge HTTP/3 dans NGINX

Société Cloudflare préparé module pour fournir la prise en charge du protocole HTTP/3 dans NGINX. Le module est conçu comme un complément à la bibliothèque développée par Cloudflare quiche avec la mise en œuvre des protocoles de transport QUIC et HTTP/3. Le code de la quiche est écrit en Rust, mais le module NGINX lui-même est écrit en C et accède à la bibliothèque à l'aide de liaisons dynamiques. Développements ouvrir sous licence BSD.

Pour assembler, il suffit de télécharger patch à nginx 1.16 et code bibliothèques quiche, puis reconstruisez nginx avec les options « —with-http_v3_module —with-quiche=../quiche ». Lors de la construction, le support TLS doit être basé sur la bibliothèque BoringSSL (« --with-openssl=../quiche/deps/boringssl »), l'utilisation d'OpenSSL n'est pas encore supportée. Pour accepter les connexions, vous devez ajouter la directive d'écoute avec l'indicateur « quic » aux paramètres (par exemple, « écouter 443 quic réutilisation »).

Dans le logiciel client, la prise en charge HTTP/3 a déjà été ajoutée aux versions expérimentales de Chrome Canary et de l'utilitaire curl. Côté serveur, il était jusqu'à présent nécessaire d'utiliser des tester les implémentations. La possibilité de traiter HTTP/3 dans nginx simplifiera considérablement le déploiement de serveurs prenant en charge HTTP/3 et rendra la mise en œuvre des tests du nouveau protocole plus accessible. L'émergence du support standard pour HTTP/3 dans nginx est prévu dans la branche 1.17.x pendant 6 à 12 mois.

Rappelons que HTTP/3 standardise l'utilisation du protocole QUIC comme transport pour HTTP/2. Protocole QUIC (Quick UDP Internet Connections) a été développé par Google depuis 2013 comme alternative à la combinaison TCP+TLS pour le Web, résolvant les problèmes de longs temps de configuration et de négociation des connexions en TCP et éliminant les retards en cas de perte de paquets lors du transfert de données. QUIC est une extension du protocole UDP qui prend en charge le multiplexage de plusieurs connexions et fournit des méthodes de cryptage équivalentes à TLS/SSL.

principal caractéristiques RAPIDE :

  • Haute sécurité similaire à TLS (essentiellement QUIC offre la possibilité d'utiliser TLS sur UDP) ;
  • Contrôle de l'intégrité du flux, empêchant la perte de paquets ;
  • La possibilité d'établir instantanément une connexion (0-RTT, dans environ 75 % des cas, les données peuvent être transmises immédiatement après l'envoi du paquet d'établissement de connexion) et de fournir des délais minimes entre l'envoi d'une demande et la réception d'une réponse (RTT, Round Trip Time) ;
  • Ne pas utiliser le même numéro de séquence lors de la retransmission d'un paquet, ce qui évite toute ambiguïté dans l'identification des paquets reçus et supprime les délais d'attente ;
  • La perte d'un paquet affecte uniquement la livraison du flux qui lui est associé et n'arrête pas la livraison des données dans les flux parallèles transmis via la connexion en cours ;
  • Fonctionnalités de correction d'erreurs qui minimisent les retards dus à la retransmission des paquets perdus. Utilisation de codes de correction d'erreurs spéciaux au niveau des paquets pour réduire les situations nécessitant une retransmission de données par paquets perdues.
  • Les limites des blocs cryptographiques sont alignées sur les limites des paquets QUIC, ce qui réduit l'impact des pertes de paquets sur le décodage du contenu des paquets suivants ;
  • Aucun problème avec le blocage de la file d'attente TCP ;
  • Prise en charge de l'identifiant de connexion, qui réduit le temps nécessaire pour établir une reconnexion pour les clients mobiles ;
  • Possibilité de connecter des mécanismes avancés de contrôle de la congestion des connexions ;
  • Utilise des techniques de prévision du débit par direction pour garantir que les paquets sont envoyés à des débits optimaux, les empêchant ainsi d'être encombrés et de provoquer une perte de paquets ;
  • Perceptible gagner performances et débit par rapport à TCP. Pour les services vidéo tels que YouTube, il a été démontré que QUIC réduit de 30 % les opérations de rebuffering lors du visionnage de vidéos.
  • Source: opennet.ru

Ajouter un commentaire