12 points par GN⁺ 2025-08-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le premier patch intégrant officiellement le protocole QUIC au noyau Linux a été soumis
  • L’objectif est d’améliorer plusieurs limites de TCP (latence, head-of-line blocking, ossification du protocole due aux équipements intermédiaires, etc.)
  • QUIC, basé sur UDP, prend en charge le multistream et le chiffrement de bout en bout, et son intégration au noyau pourrait élargir son usage sur davantage de plateformes et de matériels
  • Les performances de l’implémentation initiale dans le noyau ont été mesurées comme inférieures à celles de TCP existant et de kernel TLS, mais des gains sont attendus avec le hardware offloading et les optimisations à venir
  • Le support est actuellement activement discuté dans Samba, SMB/NFS basés sur le noyau, curl et d’autres projets, mais l’intégration dans la branche principale devrait encore prendre du temps

Contexte de l’émergence de QUIC et limites de TCP

  • QUIC a été conçu pour résoudre divers problèmes de TCP sur l’Internet actuel
  • L’expérience web se dégrade à cause de la latence induite par le 3-way handshake de TCP, de l’absence de bon support du multistream et du phénomène de head-of-line blocking en cas de perte de paquets
  • Les métadonnées de TCP sont transmises sans chiffrement, ce qui crée un risque de fuite d’informations, et les middleboxes de l’Internet filtrent le trafic à partir des informations de connexion, ce qui a conduit à l’ossification du protocole
  • Les tentatives d’amélioration de TCP (par exemple Multipath TCP) ne fonctionnent correctement que si elles se font passer pour du TCP classique

Caractéristiques de QUIC et avantages techniques

  • QUIC fonctionne au-dessus de UDP et peut établir une connexion rapidement, sans 3-way handshake séparé lors du processus de connexion
  • Son architecture de transmission multistream évite qu’une perte de paquets n’affecte l’ensemble des flux
  • Les données de transport liées à QUIC sont toujours chiffrées de bout en bout (sur la base de TLS), empêchant les équipements intermédiaires d’accéder aux messages internes
  • Dans tout environnement réseau où les paquets UDP peuvent circuler, QUIC peut lui aussi fonctionner normalement

Aperçu du patch d’intégration de QUIC dans le noyau Linux

  • Le patch soumis introduit un nouveau type de protocole, IPPROTO_QUIC, permettant d’utiliser l’appel système socket() existant
  • Comme avec TCP, on peut utiliser les appels bind(), connect(), listen() et accept(), mais le traitement ultérieur présente des différences
  • La gestion de session TLS ainsi que les processus d’authentification et de chiffrement sont pris en charge dans l’espace utilisateur, et l’handshake TLS doit être terminé à chaque extrémité après l’établissement de la connexion avant de pouvoir échanger des données
  • Après la connexion initiale, le résultat de la négociation TLS peut être mis en cache, ce qui accélère fortement les reconnexions entre deux systèmes

Défis de performances et perspectives

  • L’implémentation de QUIC dans le noyau qui a été soumise reste pour l’instant en retrait, en termes de performances, par rapport à kernel TLS et TCP
    • Un débit inférieur d’un facteur pouvant aller jusqu’à 3 par rapport à l’in-kernel TLS, et jusqu’à 4 fois inférieur à TCP même quand le chiffrement est désactivé
  • Parmi les causes avancées figurent l’absence de prise en charge du segmentation offloading, des copies de données supplémentaires dans le chemin d’émission et le processus de chiffrement des en-têtes
  • On s’attend à une amélioration des performances à mesure que le support du hardware offloading sera ajouté et que l’implémentation in-kernel sera optimisée

Adoption actuelle et perspectives

  • Les discussions autour du support in-kernel de QUIC sont actives dans de nombreux projets, notamment les serveurs/clients Samba, les systèmes de fichiers SMB et NFS du noyau, ainsi que curl
  • Le patch représente environ 9 000 lignes et ne contient pour l’instant que du code de support bas niveau. L’implémentation complète est annoncée dans des patchs supplémentaires
  • Les discussions de revue de code et d’intégration viennent tout juste de commencer, et son usage réel demandera encore du temps
    • Sachant que l’intégration du protocole Homa dans le noyau a récemment nécessité 11 soumissions sur 9 mois, l’entrée de QUIC dans la branche principale n’est pas attendue avant 2026 au plus tôt

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.