Développer des applications réseaux pour des routeurs programmables basés sur les Network Processors (NPs) implique l'utilisation de langages de bas-niveau et d'outils propriétaires fortement dépendants des architectures matérielles sous-jacentes. Le code source, généralement écrit en langage assembleur, n'est pas facile à écrire et cause des problèmes de maintenance. Les applications résultantes sont également difficiles à déboguer. Dans ce mémoire nous proposons NETLANG, un nouveau langage de programmation de haut-niveau dédié aux NPs. De plus d'être un langage simple et élégant, de réduire les coûts de développement et de la maintenance, et d'améliorer la réutilisation du code, NETLANG a pour objectif essentiel de décrire le comportement des paquets dans un NP. NETLANG est un langage qui permet de développer des applications de traitement de paquets. Il établit deux niveaux. Le premier niveau du langage offre une abstraction et une description du routeur à travers un pipeline de tables OpenFlow et des règles de forwarding ayant l'aptitude d'être modifiées dynamiquement et donc de permettre de changer le comportement du routeur à la volée. La sémantique du langage est inspirée du protocole OpenFlow qui a permis d'exprimer les principales tâches de traitement de paquets telles que le parsing, le lookup et la modification. Le langage est bâti en respectant le modèle des Software Defined Networks (SDNs) qui définit un nouveau plan de séparation entre le control plane et le data plane. Le deuxième niveau de NETLANG est traduit en matériel et permet l'adaptabilité du langage à plusieurs plateformes. Des adaptateurs spécifiques à des plateformes différentes sont intégrés au compilateur de NETLANG et permettent de rendre le langage portable. En effet, nous avons utilisé deux environnements pour l'implémentation de NETLANG ; le NP4 d'EZchip caractérisé par sa structure de TOPs (Task Optimized Processors) en pipeline et le NFP-3240 de Netronome connu pour son parallélisme et l'exploitation du multithreading. La validation de NETLANG s'est basée sur un ensemble d'applications réseau ayant des complexités et des domaines différents. A travers ce mémoire nous avons démontré qu'on est capable d'avoir aujourd'hui un langage pour les routeurs programmables. La sémantique d'OpenFlow, sur laquelle nous avons basé notre langage NETLANG, est suffisante et même pertinente en termes de description de comportement des paquets dans un NP.
______________________________________________________________________________
MOTS-CLÉS DE L’AUTEUR : langages à domaine spécifique, réseaux programmables, processeurs de réseau.
Identifer | oai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMUQ.5800 |
Date | 07 1900 |
Creators | Boughzala, Bochra |
Source Sets | Library and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada |
Detected Language | French |
Type | Mémoire accepté, NonPeerReviewed |
Format | application/pdf |
Relation | http://www.archipel.uqam.ca/5800/ |
Page generated in 0.0025 seconds