La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Soutenance finale – Juin 2009

Présentations similaires


Présentation au sujet: "Soutenance finale – Juin 2009"— Transcription de la présentation:

1 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

2 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

3 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

4 TBXcast 2009 Cadre du projet

5 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

6 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

7 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

8 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

9 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 »

10 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

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

12 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é

13 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

14 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

15 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

16 Architecture de TBXcast

17 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

18 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)

19 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

20 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)

21 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)

22 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

23 Implémentation de TBXcast

24 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.

25 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

26 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_

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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é

35 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

36 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

37 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 

38 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

39 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 }

40 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

41 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

42 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

43 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

44 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

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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 TBXcast 2009 Bilan du projet

54 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

55 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

56 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 

57 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

58 TBXcast 2009 Planification

59 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

60 Avancement des versions
TBXcast 2009 Planification Avancement des versions

61 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

62 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

63 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

64 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

65 Merci pour votre attention
tbxcast.xipp.net


Télécharger ppt "Soutenance finale – Juin 2009"

Présentations similaires


Annonces Google