Simple Science

La science de pointe expliquée simplement

# Informatique# Architecture des réseaux et de l'Internet

Core QUIC : Une nouvelle approche de l'évolution des protocoles

Core QUIC propose une solution flexible pour les protocoles Internet en évolution comme QUIC.

― 7 min lire


Core QUIC : Évolution desCore QUIC : Évolution desProtocoles Réseauaméliore la fonctionnalité QUIC.L'intégration simplifiée des plugins
Table des matières

Alors que les apps se développent à toute vitesse, les protocoles Internet prennent du retard. Ça pose un vrai défi pour les développeurs qui veulent ajouter de nouvelles fonctionnalités à ces protocoles. Les deux principaux soucis sont les interférences des appareils réseau, comme les pare-feux, et le fait que tous les systèmes concernés doivent supporter une nouvelle fonctionnalité. Cela peut entraîner des problèmes quand les différents systèmes utilisent des versions variées du même protocole.

QUIC est un protocole Internet moderne qui vise à résoudre certains de ces problèmes. Il est conçu pour permettre une communication sécurisée et efficace sur Internet. Cependant, le nombre croissant de versions différentes de QUIC a causé un nouveau problème lié à la compatibilité. Pour aider à résoudre ces défis, on présente un nouveau concept appelé Core QUIC.

Contexte

QUIC est un protocole qui fonctionne par-dessus UDP, offrant une communication sécurisée et fiable. Il repose sur TLS 1.3 pour le chiffrement lors de l'établissement de la connexion. Les paquets QUIC sont principalement chiffrés, ce qui complique la tâche des appareils intermédiaires pour modifier les données envoyées. Ce chiffrement est l'une des raisons de la popularité croissante de QUIC. Cependant, avec tant de versions différentes en circulation, garantir que tout le monde puisse utiliser le même ensemble de fonctionnalités est devenu un vrai casse-tête.

Le Problème

Déployer de nouvelles fonctionnalités dans les protocoles Internet est souvent un processus lent et compliqué. L'implication des appareils intermédiaires complique les choses puisqu'ils peuvent bloquer ou altérer la communication en fonction de ce qu'ils perçoivent. Ça a rendu difficile l'introduction d'extensions aux protocoles comme TCP dans le passé. Les variations entre les systèmes rendent encore plus compliqué le fait de mettre en œuvre et de supporter de nouvelles fonctionnalités. Obtenir un accord et le soutien à l'implémentation parmi les différents fournisseurs peut prendre beaucoup de temps.

Qu'est-ce que Core QUIC ?

Core QUIC est une proposition qui soutient l'évolution continue de QUIC tout en s'attaquant à ces défis de déploiement. Il garantit la conformité avec le protocole QUIC standard tout en permettant aux différents systèmes d'être étendus en utilisant le même bytecode. Avec Core QUIC, de nouvelles fonctionnalités peuvent être ajoutées sans nécessiter de grands changements dans les systèmes existants.

L'idée est simple : les développeurs peuvent créer des Plugins qui fonctionnent à travers diverses implémentations de QUIC, rendant plus facile pour les systèmes d'ajouter de nouvelles fonctionnalités sans que toutes les parties doivent d'accord au départ sur ce que ces nouvelles fonctionnalités devraient être.

Caractéristiques Clés de Core QUIC

  1. Chargement Dynamique des Fonctionnalités : Core QUIC permet à chaque système de charger de nouvelles fonctionnalités selon les besoins, en fonction de la connexion spécifique. Ça signifie qu'il peut adapter ses capacités en fonction des besoins de cette session particulière.

  2. Changements minimes : Pour adopter Core QUIC, les implémentations existantes auront juste besoin de faire de petits ajustements. Ça allège la charge des développeurs et favorise une adoption plus rapide.

  3. Interaction des Plugins : Plusieurs plugins peuvent être activés en même temps, permettant à diverses fonctionnalités de fonctionner ensemble sans à-coups. Ça veut dire que différentes fonctionnalités peuvent être combinées sans interférences.

  4. Environnement Sûr : Les plugins fonctionnent dans un environnement contrôlé, donc ils ne peuvent pas nuire au système sous-jacent ou accéder à des informations non nécessaires. Ça ajoute une couche de sécurité pour les développeurs et les utilisateurs.

Comment Fonctionne Core QUIC

Pour activer ces fonctionnalités, Core QUIC doit être intégré dans les implémentations QUIC existantes. Cela implique quelques étapes :

  1. Conversion des Fonctions Internes : Chaque implémentation QUIC doit marquer certaines fonctions internes pour qu'elles puissent interagir avec les plugins.

  2. Conversion des Structures de Données : Les développeurs doivent s'assurer que les structures de données utilisées par les plugins peuvent être comprises par le système hôte. C'est nécessaire pour la communication entre le plugin et l'implémentation sous-jacente.

  3. Intégration du Runtime du Plugin : Core QUIC ajoute un environnement d'exécution pour les plugins, leur permettant d'exécuter leur code de manière sécurisée et efficace.

En simplifiant les étapes requises pour que les implémentations QUIC existantes supportent les plugins, Core QUIC facilite la tâche des développeurs pour ajouter de nouvelles fonctionnalités sans créer de perturbations significatives dans leur infrastructure existante.

Cas d'Utilisation pour Core QUIC

Core QUIC ouvre la voie à plusieurs usages pratiques qui peuvent bénéficier à la fois aux développeurs et aux utilisateurs finaux. Voici quelques applications potentielles :

1. Outils de Monitoring Améliorés

Avec Core QUIC, les développeurs peuvent créer des plugins pour surveiller les sessions QUIC plus efficacement. Ces outils peuvent enregistrer des événements comme les accusés de réception de paquets en temps réel, offrant aux développeurs des insights sur les performances de leurs applications sur le réseau.

2. Améliorations de la Vie Privée

Core QUIC peut être utilisé pour aborder les préoccupations relatives à la vie privée liées au fonctionnement de QUIC. Par exemple, des plugins peuvent être développés pour ajouter du remplissage aux paquets et introduire des délais aléatoires pour obscurcir les modèles de communication, rendant plus difficile l’extraction d’informations sensibles par des attaquants.

3. Tests de Réseau

Les applications peuvent bénéficier de plugins qui sondent le réseau. Cela permettrait aux développeurs de tester comment leurs applications s'adaptent aux conditions de réseau changeantes sans avoir besoin d'un support intégré de l'implémentation QUIC elle-même.

4. Amélioration des Performances dans des Environnements à Forte Latence

QUIC est souvent utilisé dans des environnements difficiles comme les communications par satellite, où la latence peut être un problème. Core QUIC permet l'introduction de fonctionnalités qui facilitent le maintien des niveaux de performance dans ces cas. Par exemple, des plugins pourraient être introduits pour permettre aux serveurs de communiquer leur état aux clients afin de mieux optimiser le flux de données.

5. Combinaison d'Extensions

Core QUIC soutient l'idée d'utiliser plusieurs plugins ensemble. Par exemple, des plugins pourraient fonctionner en conjonction les uns avec les autres pour surveiller le trafic tout en appliquant des mesures de confidentialité. Cette approche coopérative maximise la fonctionnalité disponible pour les développeurs.

Mise en Œuvre de Core QUIC

Pour intégrer Core QUIC dans les implémentations existantes, les développeurs doivent suivre un processus simple :

  1. Enveloppement de Fonctions Internes : Les fonctions internes existantes dans l'implémentation QUIC sont enveloppées pour permettre aux plugins de s'y connecter.

  2. Routines de Protocole Standard : Les développeurs définissent des routines communes que les plugins peuvent appeler pour interagir avec l'implémentation sous-jacente. Cela crée une interface stable qui améliore la compatibilité entre les différentes versions de QUIC.

  3. Tests et Validation : Après intégration, l'implémentation doit être testée avec divers plugins pour garantir qu'ils fonctionnent comme prévu et n'introduisent pas de nouveaux problèmes.

Conclusion

Core QUIC est une avancée significative pour répondre aux défis posés par le développement rapide des applications et le rythme plus lent d'avancement des protocoles Internet. En permettant des extensions dynamiques et standardisées à QUIC, Core QUIC favorise un environnement plus adaptable et flexible pour les développeurs. Ça pave la voie à un déploiement plus rapide de nouvelles fonctionnalités tout en maintenant la compatibilité entre les différentes implémentations de QUIC.

Alors que les développeurs adoptent cette nouvelle approche, le potentiel d'innovation dans les protocoles de couche de transport ouvre de nombreuses possibilités excitantes. Avec Core QUIC, l'avenir des protocoles réseau peut être plus collaboratif, sécurisé et efficace. Ça bénéficie non seulement aux développeurs mais mène aussi à de meilleures expériences pour les utilisateurs finaux à mesure que les applications deviennent plus réactives à leurs besoins.

Source originale

Titre: Core QUIC: Enabling Dynamic, Implementation-Agnostic Protocol Extensions

Résumé: While applications quickly evolve, Internet protocols do not follow the same pace. There are two root causes for this. First, extending protocol with cleartext control plane is usually hindered by various network devices such as middleboxes. Second, such extensions usually require support from all participating entities, but often these run different implementations, leading to the chicken-and-egg deployment issue. The recently standardized QUIC protocol paved the way for dealing with the first concern by embedding encryption by design. However, it attracted so much interest that there is now a large heterogeneity in QUIC implementations, hence amplifying the second problem. To get rid of these deployment issues and to enable inter-operable, implementation-independent innovation at transport layer, we propose a paradigm shift called Core QUIC. While Core QUIC keeps compliant with the standardized QUIC protocol, it enforces implementation architecture such that any Core QUIC-supporting participant can be extended with the same, generic bytecode. To achieve this, Core QUIC defines a standardized representation format of common QUIC structures on which plugins running in a controlled environment can operate to extend the underlying host implementation. We demonstrate the feasibility of our approach by making two implementations Core QUIC-compliant. Then, we show that we can extend both with the same plugin code over several use cases.

Auteurs: Quentin De Coninck

Dernière mise à jour: 2024-05-02 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2405.01279

Source PDF: https://arxiv.org/pdf/2405.01279

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Articles similaires