Comme tous les réseaux de données, les grands réseaux privés disposent d'algorithmes de contrôle pour gérer le trafic réseau en période de congestion. Cependant, les routeurs acheminant le trafic dans une ferme de serveurs devant être extrêmement rapides, ces algorithmes sont intégrés à leur architecture. Par conséquent, si un algorithme plus performant est développé, les opérateurs réseau doivent attendre la sortie d'une nouvelle génération de matériel avant de pouvoir l'intégrer.
Des chercheurs du Laboratoire d'informatique et d'intelligence artificielle (CSAIL) du MIT et de cinq autres organisations espèrent changer cela grâce à des routeurs programmables capables de suivre le rythme effréné des réseaux de données modernes.
« Ces travaux démontrent qu'il est possible d'atteindre de nombreux objectifs de gestion du trafic de manière flexible tout en préservant les hautes performances des routeurs traditionnels », explique Hari Balakrishnan, professeur Fujitsu au département de génie électrique et d'informatique du MIT. « Auparavant, la programmabilité était possible, mais personne ne l'utilisait en production car elle entraînait une lenteur 10 à 100 fois supérieure. »
« Il faut que les chercheurs et les ingénieurs soient capables de tester des milliers d'idées », ajoute-t-il. « Avec cette plateforme, la seule limite n'est plus matérielle ou technologique, mais la créativité. On peut innover beaucoup plus rapidement. »
Le premier auteur de l'article est Anirudh Sivaraman, doctorant en génie électrique et sciences des équipements au MIT, sous la direction de Hari Balakrishnan et de Mohammad Alizadeh, professeur adjoint TIBCO de développement de carrière en génie électrique et informatique au MIT, qui sont co-auteurs des articles relatifs à ces travaux. Ils sont rejoints par des collaborateurs du MIT, de l'Université de Washington, de Barefoot Networks, de Microsoft Research, de l'Université de Stanford et de Cisco Systems.
Impacts différents :
La gestion du trafic peut s'avérer complexe en raison des différents types de données transitant sur un réseau et des garanties de performance variables offertes par les différents services. Par exemple, lors d'appels téléphoniques par Internet, les délais sont gênants, mais la perte occasionnelle de paquets (pouvant se traduire par un mot manquant dans une phrase) est généralement tolérable. En revanche, avec un fichier de données volumineux, un léger délai est acceptable, mais la perte de données est inacceptable.
De même, un réseau peut garantir une répartition équitable de la bande passante entre ses utilisateurs. Chaque routeur d'un réseau de données dispose de sa propre mémoire tampon, où les paquets peuvent être mis en file d'attente. Si un utilisateur a saturé la mémoire tampon d'un routeur avec les paquets d'une vidéo haute définition, et qu'un autre tente de télécharger un document texte relativement court, le réseau peut décider de privilégier le texte au détriment de certains paquets vidéo afin de garantir un débit minimal aux utilisateurs.
Un routeur peut également modifier un paquet pour transmettre des informations sur l'état du réseau, comme la présence ou non de congestion, son emplacement et sa durée ; il peut même suggérer de nouvelles vitesses de transmission aux expéditeurs.
Les informaticiens ont proposé des centaines de schémas de gestion du trafic, dotés de règles complexes déterminant quels paquets un routeur doit accepter et lesquels doit rejeter, dans quel ordre les paquets doivent être mis en file d'attente et quelles informations supplémentaires doivent être ajoutées – et ce, dans diverses circonstances. Si les simulations de nombreux de ces schémas promettent d'améliorer les performances du réseau, certains n'ont pas été déployés en raison des limitations matérielles des routeurs.
Des chercheurs du MIT et leurs collaborateurs se sont attelés à la tâche de trouver un ensemble d'éléments de calcul simples pouvant être agencés pour implémenter divers schémas de gestion du trafic sans compromettre les vitesses de fonctionnement des meilleurs routeurs actuels et sans occuper trop d'espace sur la puce.
Pour tester leurs conceptions, ils ont développé un compilateur – un programme qui traduit les instructions de haut niveau en instructions matérielles de bas niveau – qu'ils ont utilisé pour compiler sept algorithmes expérimentaux de gestion du trafic en leurs éléments de circuit proposés. Si un algorithme ne parvenait pas à compiler, ou s'il nécessitait un nombre de circuits irréaliste, ils ajoutaient à sa palette d'éléments de circuit plus sophistiqués.
Outre
Dans l'un des deux nouveaux articles, les chercheurs fournissent les spécifications de sept types de circuits, chacun légèrement plus complexe que le précédent. Certains algorithmes simples de gestion du trafic ne nécessitent qu'un seul type de circuit, tandis que d'autres requièrent des circuits plus complexes. Cependant, même un ensemble des circuits les plus complexes n'occuperait que 4 % de la surface d'une puce de routeur ; un ensemble des circuits les moins complexes, quant à lui, n'en occuperait que 0,16 %.
les sept algorithmes utilisés pour concevoir leurs éléments de circuit, les chercheurs ont testé plusieurs algorithmes avec leur compilateur et ont constaté qu'ils se compilaient en une combinaison de leurs éléments de circuit simples.
« Nous pensons qu'ils peuvent être généralisés à bien d'autres éléments », explique Sivaraman. « Par exemple, l'un des circuits permet à un programmeur de suivre une somme cumulée, utilisée par de nombreux algorithmes. »
Dans le second article, ils décrivent la conception de leur planificateur, un élément de circuit qui trie les paquets dans la file d'attente du routeur et les extrait pour les transmettre. En plus de mettre les paquets en file d'attente selon leur priorité, le planificateur peut également les marquer avec des durées de transmission spécifiques et les transmettre en conséquence. Parfois, par exemple, il peut être utile qu'un routeur ralentisse son débit de transmission afin d'éviter les goulots d'étranglement du réseau ou de contribuer à une répartition équitable de la bande passante.
Enfin, les chercheurs ont développé les spécifications de leurs circuits en Verilog, le langage souvent utilisé par les ingénieurs en électronique pour concevoir des puces commerciales. L'intégration de Verilog dans les outils d'analyse a permis de vérifier qu'un routeur utilisant les circuits des chercheurs serait suffisamment rapide pour supporter les débits de paquets courants dans les réseaux haut débit actuels, soit la transmission d'un paquet de données par nanoseconde.
###
Rédigé par Larry Hardesty, MIT
