Ce n'est pas parce que TCP est parfait ou que les informaticiens ont eu du mal à trouver des alternatives ; c'est parce que ces alternatives sont trop difficiles à tester. Les routeurs des réseaux de centres de données intègrent leurs protocoles de gestion du trafic. Tester un nouveau protocole implique de remplacer le matériel réseau existant par des puces reconfigurables, ce qui nécessite un travail de programmation considérable, ou par des routeurs logiciels, si lents qu'il est impossible de réaliser des tests à grande échelle.
Des chercheurs du Laboratoire d'informatique et d'intelligence artificielle du MIT ont dévoilé un système de test de nouveaux protocoles de gestion du trafic qui ne nécessite aucune modification du matériel réseau.
Ce système fonctionne à des vitesses réalistes, environ 20 fois supérieures à celles des réseaux à routeurs gérés par logiciel. Il maintient un modèle informatique compact et efficace d'un réseau exécutant le nouveau protocole, avec des paquets de données virtuels transitant entre des routeurs virtuels. À partir de ce modèle, les chercheurs planifient les transmissions sur le réseau réel afin de reproduire les mêmes schémas de trafic. Ils peuvent ainsi exécuter de véritables applications web sur les serveurs du réseau et évaluer précisément l'impact du nouveau protocole sur leurs performances.
« Le principe est le suivant : lorsqu'une extrémité souhaite envoyer un paquet de données, elle adresse d'abord une requête à cet émulateur centralisé », explique Amy Ousterhout, doctorante en génie électrique et informatique et première auteure de l'article. « L'émulateur simule par logiciel le protocole que vous souhaitez tester sur votre réseau. Il indique ensuite à l'extrémité quand envoyer le paquet afin qu'il atteigne sa destination en traversant un réseau exécutant le protocole programmé. » Amy
Ousterhout a rédigé cet article avec l'aide de son directeur de thèse, Hari Balakrishnan, professeur de génie électrique et informatique à l'université Fujitsu ; de Jonathan Perry, doctorant en génie électrique et informatique ; et de Petr Lapukhov de Facebook.
Gestion du trafic :
Chaque paquet de données transmis sur un réseau informatique comporte deux parties : l’en-tête et la charge utile. La charge utile contient les données qui intéressent le destinataire : images, fichiers audio, texte, etc. L’en-tête contient l’adresse de l’expéditeur, l’adresse du destinataire et d’autres informations permettant aux routeurs et aux utilisateurs finaux de gérer les transmissions.
Lorsque plusieurs paquets arrivent simultanément à un routeur, ils sont placés dans une file d'attente et traités séquentiellement. Avec TCP, si la file d'attente devient trop longue, les paquets suivants sont tout simplement abandonnés et n'atteignent jamais leur destination. Lorsqu'un ordinateur émetteur constate la perte de ses paquets, il réduit de moitié son débit de transmission, puis l'augmente progressivement.
Un protocole plus performant pourrait permettre à un routeur de modifier l'en-tête des paquets pour alerter les utilisateurs finaux de la congestion du réseau, afin qu'ils puissent augmenter leur débit avant la perte de paquets. Il pourrait également attribuer des priorités différentes aux différents types de paquets et maintenir les débits de transmission tant que le trafic prioritaire est en cours d'envoi. Ce sont ces types de stratégies que les informaticiens souhaitent tester sur des réseaux réels.
Simulation rapide :
Grâce au nouveau système Flexplane, développé par des chercheurs du MIT, le routeur qui modélise un réseau exécutant le nouveau protocole utilise uniquement les données d'en-tête des paquets, réduisant ainsi sa charge de calcul. En réalité, il n'utilise pas nécessairement toutes les données d'en-tête, mais seulement les champs pertinents pour la mise en œuvre du nouveau protocole.
Lorsqu'un serveur du réseau réel souhaite transmettre des données, il envoie une requête à l'émulateur, qui transmet un paquet factice via un réseau virtuel régi par le nouveau protocole. Une fois le paquet factice arrivé à destination, l'émulateur indique au serveur réel qu'il peut procéder à l'envoi de son paquet réel.
Si, lors de la traversée du réseau virtuel, un paquet factice présente des bits d'en-tête inversés, le serveur réel inverse les bits correspondants dans le paquet réel avant de l'envoyer. Si un routeur du réseau virtuel est saturé et abandonne un paquet factice, le paquet réel correspondant n'est jamais envoyé. Enfin, si, dans le réseau virtuel, un paquet factice de priorité supérieure atteint un routeur après un paquet de priorité inférieure, mais le devance dans la file d'attente, alors, dans le réseau réel, le paquet de priorité supérieure est envoyé en premier.
Les serveurs du réseau reçoivent donc les mêmes paquets dans le même ordre que si les routeurs physiques exécutaient le nouveau protocole. Il existe un léger délai entre la première requête émise par le premier serveur et la première instruction de transmission émise par l'émulateur. Ensuite, les serveurs envoient les paquets à la vitesse normale du réseau.
La possibilité d'utiliser de vrais serveurs exécutant de vraies applications web offre un avantage significatif par rapport à une autre technique populaire de test de nouveaux schémas de gestion de réseau : la simulation logicielle, qui utilise généralement des modèles statistiques pour caractériser le comportement des applications de manière efficace sur le plan du calcul.
Auteur : Larry Hardesty, service de presse du MIT
Le protocole de contrôle de transmission, ou TCP, qui gère le trafic sur Internet, a été proposé pour la première fois en 1974. Une version ou une autre de TCP régit encore le transfert de données dans la plupart des grands centres de données, ces vastes entrepôts de serveurs gérés par les sites web les plus connus.
