Soutenance finale – Juin 2009

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
des Structures de Santé
Les numéros 70 –
Les numéros
Les identités remarquables
(Routing Information Protocol)
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Cours Présenté par …………..
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Réalité virtuelle et interactions avec un individu
wireless sensor networks
Ecole Nationale d’Ingénieurs de Sfax
Exercice Trame Ethernet
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
La méthodologie………………………………………………………….. p3 Les résultats
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Formation Centra - GDE.
Etude bibliographique
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Auto-organisation dans les réseaux ad hoc
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Virtual Local Area Network
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
1 Protection des arbres multicast avec une forêt duale Mohand Yazid SAIDI Bernard COUSIN Miklós MOLNÁR 15 Février 2006.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Projet de Master première année 2007 / 2008
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Formation des commissaires sportifs
Nom:____________ Prénom: ___________
Outil de gestion des cartes grises
1 New Version Acquisition d’images Traitement d’images Interprétation clinique Chaîne de traitement Dev. logiciel creaTools 5 GDCMcreaImageIOcreaMaracasVisu.
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Supports de formation au SQ Unifié
Projet Implémentation du protocole MMT sous Linux
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
LES VLANS Présenté par : ATCHOM SANDJI DANIEL.
Transcription de la présentation:

Soutenance finale – Juin 2009 INSA de Rennes département informatique TBXcast Soutenance finale – Juin 2009 Cyril Bouleau, Hamze Farroukh, Loïc Le Henaff, Mickaël Lecuyer, Jozef Legény, Benoît Lucet, Emmanuel Thierry Encadreurs : Bernard Cousin, Miklós Molnár

TBXcast 2009 Introduction Le projet TBXcast a pour objectif la création d’un nouveau protocole de routage Projet bas niveau Modification du noyau du système NetBSD Projet réseau Nécessité d’une plateforme de test, sous IPv6 Projet basé sur l’existant Etude approfondie du protocole Xcast Projet en sa 2ème année de vie

Plan Cadre du projet Fonctionnalités du protocole TBXcast 2009 Plan Cadre du projet Fonctionnalités du protocole Architecture de TBXcast Implémentation de TBXcast Présentation de la plateforme Bilan du projet Compléments de planification

TBXcast 2009 Cadre du projet

Contexte Les applications de communication en groupe se multiplient TBXcast 2009 Cadre du projet Contexte Les applications de communication en groupe se multiplient Vidéoconférences Jeux vidéo Les trafic généré est important

Routage multicast Envoi d’un paquet à un groupe de destinataires TBXcast 2009 Cadre du projet Routage multicast Envoi d’un paquet à un groupe de destinataires Economie de bande passante Routeurs rapidement surchargés : une ligne présente par groupe dans la table de routage Inenvisageable pour un très grand nombre de groupes S R1 R7 R4 R6 B R2 R5 R3 C A Duplication Schéma à remettre au thème

Routage multicast explicite TBXcast 2009 Cadre du projet Routage multicast explicite Le paquet est lui-même porteur de la liste des destinataires Les tables de routage sont soulagées Mais cela nécessite davantage de traitement par paquet Multicast explicite plat : Xcast Les destinataires sont représentés par une liste à plat On ne connaît pas les chemins entre la source et les destinataires

Bilan des modes de routage TBXcast 2009 Cadre du projet Bilan des modes de routage Encombrement routeur Multicast Multicast explicite Traitement/paquet Titre à refaire Unicast Bande passante

Routage multicast explicite arborescent TBXcast 2009 Cadre du projet Routage multicast explicite arborescent L’ensemble des chemins depuis la source vers les destinataires est représenté par un arbre Facilite et accélère le traitement dans les routeurs C’est la forme que nous avons choisi pour TBXcast, qui signifie « Tree Based eXplicit multicast »

TBXcast concrètement Extension de routage IPv6 Cadre du projet TBXcast concrètement Extension de routage IPv6 Un entête situé entre l’entête IP et l’entête UDP/TCP du paquet Le code de TBXcast est déployé dans les routeurs du réseau IPv6 TBXcast UDP/TCP Données

Fonctionnalités du protocole TBXcast 2009 Fonctionnalités du protocole

De quoi doit être capable TBXcast ? Fonctionnalités De quoi doit être capable TBXcast ? Récupération de la topologie Gestion des groupes Ajout, retrait de membres dans des groupes Création de l’arbre en fonction de la topologie et du groupe multicast concerné

TBXcast 2009 Fonctionnalités Segmentation On a recours à la segmentation lorsque l’arbre est trop volumineux La difficulté est de bien diviser le paquet pour équilibrer les nouveaux entêtes S R1 A R2 C B D S R1 A B R2 C D S R1 A R2 B C D

Déploiement sur le réseau TBXcast 2009 Fonctionnalités Déploiement sur le réseau Routage des paquets : mise à jour de l’arbre et renvoi au routeur suivant Fonctionnement sur un réseau hétérogène Certains routeurs ne « comprennent » pas TBXcast

TBXcast 2009 Fonctionnalités Qualité de Service La «QoS » permet un ajustement de la communication en fonction de paramètres Délai Variation de délai Perte d’information Concrètement, cela est réalisé par un arbre enrichi dont la création intègre des contraintes

Architecture de TBXcast

Aspect modulaire de l’architecture TBXcast 2009 Architecture Aspect modulaire de l’architecture Décomposition en trois principaux modules La librairie LibTBXcast, implémentée à la source Récupère la topologie, construit l’arbre, gère les groupes Driver TBXcast Code noyau présent sur les routeurs Application de test : TBXtest Réalise le simple envoi d’un paquet à un groupe

Composants Application source Application destinataire LibTBXcast Architecture Composants Application source Application destinataire LibTBXcast Noyau NetBSD Carte réseau virtuelle Driver TBXcast Interface Fonctions NetBSD Carte réseau (hardware)

Envoi d’un paquet Noyau NetBSD Fonctions NetBSD Driver TBXcast Architecture Envoi d’un paquet Noyau NetBSD Fonctions NetBSD Driver TBXcast Interface Carte réseau virtuelle LibTBXcast Application source Carte réseau (hardware) Application destinataire

Réception du paquet Noyau NetBSD Fonctions NetBSD Driver TBXcast Architecture Réception du paquet Noyau NetBSD Fonctions NetBSD Driver TBXcast Interface Carte réseau virtuelle LibTBXcast Application source Application destinataire Carte réseau (hardware)

Routage d’un paquet Noyau NetBSD Fonctions NetBSD Driver TBXcast Architecture Routage d’un paquet Noyau NetBSD Fonctions NetBSD Driver TBXcast Interface Carte réseau virtuelle LibTBXcast Application source Application destinataire Carte réseau (hardware)

Entête et structure des paquets TBXcast 2009 Architecture Entête et structure des paquets L’enchaînement des entêtes structure le paquet qui circule sur le réseau Entête IP Entête TBXcast Arbre de diffusion Entête UDP/TCP Données Entête spécifique à notre protocole. Le paquet est reconnu comme « TBXcast » par le routeur et envoyé depuis la carte réseau vers la carte virtuelle. Animation du texte

Implémentation de TBXcast

Organisation du développement TBXcast 2009 Conception et Implémentation Organisation du développement Cycles « développement → test → validation » pour chaque version Huit versions incrémentales Implémentation jusqu’à la version 3 pour cette année Développement en parallèle des versions Chaque version a son cycle développement, test, validation 8 versions, de la version 0 à la version 7 Chaque version se consacre à une partie du développement et à un objectif précis dans le fonctionnement du protocole. Les versions jusqu’à la version 3 doivent se synthétiser pour obtenir un protocole de base qui fonctionne.

Visualisation des versions TBXcast 2009 Conception et Implémentation Visualisation des versions A la source Création de l’arbre de routage à partir d’une topologie Version 3 Création du paquet TBXcast à partir d’un arbre de routage Version 2 Emission d’un paquet TBXcast sur le réseau Version 1 Au niveau d’un routeur Réception d’un paquet TBXcast Version 2 Traitement du paquet TBXcast (routage) Réémission du paquet TBXcast sur le réseau Version 1

Conception et Implémentation TBXcast 2009 Conception et Implémentation Version 0 : renommage Objectif : renommer des éléments du code de Xcast Obention d’un protocole identique Fonctionnement en parallèle possible Conservation des conventions de nommage Testé avec succès avec l’application TBXtest Renommage du driver Xcast, de la librairie LibXcast, et de certains fichiers systèmes. Renommage des variables, fonctions, constantes, identifiants du protocole Conventions de nommage : noms des fonctions préfixés par tbxcast_ par exemple, au lieu de xcast_

Version 1 : implémentation du tunneling TBXcast 2009 Conception et Implémentation Version 1 : implémentation du tunneling Rappels Environnement hétérogène : tous les routeurs ne sont pas forcément compatibles avec le protocole TBXcast Encapsulation du paquet TBXcast dans un paquet IPv6 Objectifs Utiliser systématiquement le tunneling classique pour le routage des paquets TBXcast Créer un tunnel entre chaque routeur TBXcast explicitement codé dans l’arbre de routage

Conception et Implémentation TBXcast 2009 Conception et Implémentation Principe du tunneling 1 2 3 4 Routeur compatible avec TBXcast et codé dans l’arbre de routage Routeur incompatible avec TBXcast L’entête extérieur permet de mettre en œuvre un tunnel entre le routeur 1 et 3. Le routeur 2 traite le paquet comme un paquet IPv6 classique. Entête IP extérieur Entête IP intérieur Entête TBXcast Entête de transport Source : 1 Destination : 3 Destination : TBXcast Codage de l’arbre de routage TCP / UDP

Conception et Implémentation TBXcast 2009 Conception et Implémentation Tunneling sous Xcast Le tunneling semi-perméable Xcast implémente un tunneling non adapté à notre problématique d’arbre 1 2 3 4 Sur une route, chaque routeur lit l’entête Hop-by-Hop afin de savoir s’il est capable d’interpréter la suite. Destinataire Routeur Xcast Routeur non Xcast Entête IP extérieur Entête Hop-by-Hop Entête IP intérieur Entête Xcast Source : 1 Destination : 4 Attention : la suite est un paquet Xcast Destination : Xcast Liste des destinataires

Difficultés liées au tunneling TBXcast 2009 Conception et Implémentation Difficultés liées au tunneling Le tunneling semi-perméable Inadapté à TBXcast Inutile de tester si un routeur peut interpréter la suite En effet, les routeurs compatibles TBXcast sont connus et codés dans l’arbre de routage Seuls les routeurs codés dans l’arbre de routage doivent traiter le paquet TBXcast ! Mais Implémentation du tunneling semi-perméable très minutieuse et étroitement liée aux fichiers systèmes de NetBSD Modifications très techniques et manque de temps

Notre implémentation du tunneling TBXcast 2009 Conception et Implémentation Notre implémentation du tunneling Changement d’objectif Conservation de l’implémentation du tunneling semi-perméable de Xcast Hypothèse forte pour la suite Sur une route donnée, tous les routeurs TBXcast sont codés dans l’arbre de routage

Version 2 : Routage arborescent TBXcast 2009 Conception et Implémentation Version 2 : Routage arborescent Objectifs On implémente la structure de notre arbre Les routeurs doivent interpréter et router les paquets TBXcast

Conception et Implémentation TBXcast 2009 Conception et Implémentation Structure de l’arbre Un nœud de l’arbre est une structure qui contient : La longueur du sous-arbre qui lui est associé L’adresse IP du nœud Un booléen indiquant si ce nœud est destinataire ou non

L’algorithme de routage TBXcast 2009 Conception et Implémentation L’algorithme de routage On se place sur la racine de l’arbre Si ce nœud est un destinataire, les données sont remontées à l’application Pour chacun de ses fils directs On construit un nouveau paquet TBXcast en élaguant l’arbre et on l’envoie au fils considéré

Déroulement d’un exemple (1/2) TBXcast 2009 Conception et Implémentation Déroulement d’un exemple (1/2) 2 1 3 4 Routeur 1 2 3 4 Structure Adr. @ Long. Dest. i routeurs destinataires i routeurs intermédiaires Entête TBXcast d’un paquet circulant entre le routeur 0 et le routeur 1

Déroulement d’un exemple (2/2) TBXcast 2009 Conception et Implémentation Déroulement d’un exemple (2/2) Routeur 2 Structure Adr. @ Long. 1 Dest. Entête TBXcast d’un paquet circulant entre le routeur 1 et le routeur 2 2 1 3 4 Routeur 3 4 Structure Adr. @ Long. 2 1 Dest. i routeurs destinataires Entête TBXcast d’un paquet circulant entre le routeur 1 et le routeur 3 i routeurs intermédiaires

Conception et Implémentation TBXcast 2009 Conception et Implémentation Test de la version 2 Driver TBXcast non testé Problème lors du passage entre la librairie LibTBXcast et le driver TBXcast Solution : coder le paquet « en dur » Dire la solution mais pas eu le temps de la faire car structure complexe 

Version 3 : construction de l’arbre TBXcast 2009 Conception et Implémentation Version 3 : construction de l’arbre Objectifs Construction de l’arbre de routage à la source à partir d’une topologie fournie manuellement dans la librairie LibTBXcast Ajout de l’arbre construit dans l’entête du paquet TBXcast

Représentation de la topologie TBXcast 2009 Conception et Implémentation Représentation de la topologie Ensemble de liens entre interfaces Structure Source Destinataire Adresse IP de la destination 1 a::0 b::0 a::1 c::1 { source = 0, dest = 1, addr = a::1 } { source = 1, dest = 0, addr = a::0 }

Algorithme de construction de l’arbre TBXcast 2009 Conception et Implémentation Algorithme de construction de l’arbre Arbre couvrant minimal à partir du graphe qui décrit la topologie On utilise l’algorithme de Moore-Dijkstra L’algorithme travaille sur une matrice des liens A chaque étape On sélectionne le nœud non encore pris le plus proche de la source On met à jour les distances et les prédécesseurs Arrêt quand tous les destinataires sont couverts

Exemple de matrice des liens TBXcast 2009 Conception et Implémentation Exemple de matrice des liens 1 2 3 4 5 1 4 3 2 5 a::0 a::1 b::1 e::1 f::5 f::4 d::4 e::4 d::3 c::3 c::2 b::2

Exemple du déroulement de l’algorithme TBXcast 2009 Conception et Implémentation Exemple du déroulement de l’algorithme Envoi depuis 0 jusqu’à 2 et 5 Tableau des longueurs Tableau des prédécesseurs 1 4 3 2 5 5 3 1 2 1 1 2 3 1 2 3 4 2 -1 1 2 -1 1 2 4 -1 1 -1 1

Traitements supplémentaires TBXcast 2009 Conception et Implémentation Traitements supplémentaires Elagage de l’arbre Suppression des branches sans destinataire Suppression des nœuds inutiles au routage 2 3 1 4 5

Conception et Implémentation TBXcast 2009 Conception et Implémentation Test de la version 3 Protocole de test Construction de la topologie Création d’un groupe Ajout de membres Construction de l’arbre Grâce à l’algorithme précédemment présenté Tests unitaires effectués Algorithme de création de l’arbre Gestion de la topologie Ajout et retrait de membres

Présentation de la plateforme TBXcast 2009 Présentation de la plateforme

Nécessité d’une plateforme TBXcast 2009 Plateforme Nécessité d’une plateforme Code dans le noyau de NetBSD Besoin de postes sous NetBSD Besoin de systèmes dédiés Développement d’un protocole de routage Besoin d’un réseau de test conséquent Besoin de simuler de nombreuses topologies

Plateforme initiale Configurations hétérogènes Aucune centralisation TBXcast 2009 Plateforme Plateforme initiale Configurations hétérogènes Administration complexe Aucune centralisation Données difficiles à récupérer Systèmes indépendants Aucun système de gestion Compilation longue Gestion du réseau fastidieuse Tests lourds

Solutions mises en place TBXcast 2009 Plateforme Solutions mises en place Renouvellement du matériel Serveur Netboot Démarrage par le réseau Stockage des systèmes sur le serveur Centralisation des données Facilité de la maintenance Programmes de gestion Gestion des machines Gestion du réseau

Architecture Switch Serveur Réseau IPv4 de gestion Réseau IPv6 de test TBXcast 2009 Plateforme Architecture Switch Serveur Réseau IPv4 de gestion Réseau IPv6 de test 1 4 2 5 3 6

Programmes de gestion de la plateforme TBXcast 2009 Plateforme Programmes de gestion de la plateforme Makefile Mise en cache des versions Compilation unique Installation globale Gestion des machines : TBXpower Arrêt et redémarrage des machines Démarrage avec la technologie Wake On Lan Gestion du réseau : TBXnet Etablissement de liens entre deux machines Chargement d'une topologie complète Administration transparente du switch et des machines

Déroulement d’un test Compilation et installation Redémarrage TBXcast 2009 Plateforme Déroulement d’un test Compilation et installation Makefile : make genbuild VERSION=v0 Redémarrage TBXPower : tbxpwr reboot 1-6 Configuration du réseau TBXNet : tbxnet config etoile Test de la connectivité ping6 : ping6 a:12::2 Lancement du test tbxtest : tbxtest a:12::2 tcpdump : tcpdump -i rtk0

Plateforme : bilan Compilation des éléments en 10 minutes TBXcast 2009 Plateforme Plateforme : bilan Compilation des éléments en 10 minutes Préparation de la plateforme en quelques commandes Automatisation des configurations complexes Tests devenus faisables Rédaction complète d’un manuel d’utilisation de la plateforme

TBXcast 2009 Bilan du projet

Les versions futures de TBXcast (1/2) Bilan du projet Les versions futures de TBXcast (1/2) Version 4 : segmentation Optimisation de la charge sur les arbres que la source envoie Version 5 : gestion des groupes Gestion dynamique de l’ajout et du retrait des membres d’un groupe

Les versions futures de TBXcast (2/2) Bilan du projet Les versions futures de TBXcast (2/2) Version 6 : Récupération de la topologie Utilisation du protocole OSPF Version 7 : Qualité de Service Construction de l’arbre suivant un critère de qualité choisi

Apports du projet : aspect technique TBXcast 2009 Bilan du projet Apports du projet : aspect technique Apprentissage en réseaux et système Approfondissement et mise en pratique de l’algorithmique des graphes Manipulation du code de très bas niveau Noyau de NetBSD Driver TBXcast Installation, maintenance et utilisation d’un réseau sous IPv6 Réaffirmation de l’importance du commentaire de code 

Apports du projet : aspect organisation TBXcast 2009 Bilan du projet Apports du projet : aspect organisation Apprentissage de méthodologies de rédaction, de présentation Mise en évidence de l’importance De la gestion du temps Du dynamisme, de la motivation De ne pas se laisser décourager par la difficulté du code

TBXcast 2009 Planification

Retour sur la planification TBXcast 2009 Planification Retour sur la planification Evolution A l’origine, versions développées en séquence Puis, possibilité de développement en parallèle Répartition 3 groupes de 2 personnes pour les versions 1 personne pour la plateforme

Avancement des versions TBXcast 2009 Planification Avancement des versions

Etat d’avancement du projet (1/3) TBXcast 2009 Planification Etat d’avancement du projet (1/3) Tâches 2007/2008 2008/2009 Commentaires Partie documentaire Documentation de Xcast Structures et fonctions documentées. Conception du fonctionnement de TBXcast Fonctionnement défini. Structures et algorithmes fixés. Non commencée Entamée Presque finie Complète

Etat d’avancement du projet (2/3) TBXcast 2009 Planification Etat d’avancement du projet (2/3) Tâches 2007/2008 2008/2009 Commentaires Partie driver Traitement des entêtes des paquets Algorithme de routage écrit. Non testé. Gestion des routeurs non compatibles TBXcast Implémentation du tunneling comme dans Xcast. Non commencée Entamée Presque finie Complète

Etat d’avancement du projet (3/3) TBXcast 2009 Bilan du projet Etat d’avancement du projet (3/3) Tâches 2007/2008 2008/2009 Commentaires Partie librairie Découverte de topologie réseau Gestion d’OSPF non incluse. Calcul de l’arbre de routage à partir de la topologie Calcul de l’arbre implémenté et fonctionnel. Envoi des paquets Méthode écrite mais non opérationnelle. Non commencée Entamée Presque finie Complète

Conclusion Le projet TBXcast est très technique Code de bas niveau Connaissances réseaux apprises par nous-mêmes Les difficultés rencontrées sont d’ordre technique Code noyau difficile à appréhender Erreurs difficiles à localiser Le projet a fait un grand pas cette année Une plateforme performante Une équipe dynamique et motivée

Merci pour votre attention tbxcast.xipp.net