65
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 INSA de Rennes département informatique

TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

Embed Size (px)

Citation preview

Page 1: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

TBXcastSoutenance 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

INSA de Rennesdépartement informatique

Page 2: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

2

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

TBXcast 2009

Page 3: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

3

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

Page 4: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

4

Cadre du projet

TBXcast 2009

Page 5: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

5

Contexte

● Les applications de communication en groupe se multiplient○ Vidéoconférences○ Jeux vidéo

● Les trafic généré est important

TBXcast 2009 Cadre du projet

Page 6: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

6

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 BR2

R5

R3

C

A

Duplication

Duplication

TBXcast 2009 Cadre du projet

Page 7: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

7

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

TBXcast 2009 Cadre du projet

Page 8: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

8

Bilan des modes de routage

Encombrement routeur

Traitement/paquet

Bande passante

Multicast

Unicast

Multicast explicite

TBXcast 2009 Cadre du projet

Page 9: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

9

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 2009 Cadre du projet

Page 10: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

10

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

TBXcast 2009 Cadre du projet

Page 11: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

11

Fonctionnalités du protocole

TBXcast 2009

Page 12: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

12

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

Page 13: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

13

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

B C D

S

R1

A

R2

C

S

R1 R2

B D

S

R1

A B

S

R2

C D

TBXcast 2009 Fonctionnalités

Page 14: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

14

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

Page 15: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

15

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

TBXcast 2009 Fonctionnalités

Page 16: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

16

Architecture de TBXcast

TBXcast 2009

Page 17: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

17

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

TBXcast 2009 Architecture

Page 18: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

18

Noyau NetBSD

Fonctions NetBSD

Carte réseau virtuelle

LibTBXcast

Application source Application destinataire

Carte réseau (hardware)

TBXcast 2009 Architecture

Composants

Driver TBXcastIn

terf

ace

Page 19: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

19

Noyau NetBSD

Fonctions NetBSD

Driver TBXcastIn

terf

ace

Carte réseau virtuelle

LibTBXcast

Application source

Carte réseau (hardware)

Application destinataire

TBXcast 2009

Envoi d’un paquet

Architecture

Page 20: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

20

Noyau NetBSD

Fonctions NetBSD

Driver TBXcastIn

terf

ace

Carte réseau virtuelle

LibTBXcast

Application source Application destinataire

Carte réseau (hardware)

TBXcast 2009

Réception du paquet

Architecture

Page 21: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

21

Noyau NetBSD

Fonctions NetBSD

Driver TBXcastIn

terf

ace

Carte réseau virtuelle

LibTBXcast

Application source Application destinataire

Carte réseau (hardware)

TBXcast 2009

Routage d’un paquet

Architecture

Page 22: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

22

Entête et structure des paquets

● L’enchaînement des entêtes structure le paquet qui circule sur le réseau

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.

TBXcast 2009 Architecture

Page 23: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

23

Implémentation de TBXcast

TBXcast 2009

Page 24: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

24

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

TBXcast 2009 Conception et Implémentation

Page 25: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

25

Visualisation des versions

A la source

Au niveau d’un routeur

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

Réception d’un paquet TBXcast

• Version 2

Traitement du paquet TBXcast (routage)

• Version 2

TBXcast 2009 Conception et Implémentation

Page 26: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

26

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

TBXcast 2009 Conception et Implémentation

Page 27: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

27

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

TBXcast 2009 Conception et Implémentation

Page 28: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

28

Principe du tunneling

1 2 3 4

Routeur compatible avec TBXcast et codé dans l’arbre de routageRouteur incompatible avec TBXcast

Entête IP extérieur Entête IP intérieur Entête TBXcast Entête de transport

Source : 1Destination : 3

Source : 1Destination : TBXcast

Codage de l’arbre de routage

TCP / UDP

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.

TBXcast 2009 Conception et Implémentation

Page 29: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

29

Tunneling sous Xcast

● Le tunneling semi-perméable○ Xcast implémente un tunneling non adapté à notre

problématique d’arbre

Entête IP extérieur Entête Hop-by-Hop Entête IP intérieur Entête Xcast

Source : 1Destination : 4

Attention : la suite est un paquet Xcast

Source : 1Destination : Xcast

Liste des destinataires

Sur une route, chaque routeur lit l’entête Hop-by-Hop afin de savoir s’il est capable

d’interpréter la suite.

1 2 3 4

DestinataireRouteur XcastRouteur non Xcast

TBXcast 2009 Conception et Implémentation

Page 30: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

30

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

TBXcast 2009 Conception et Implémentation

Page 31: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

31

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

TBXcast 2009 Conception et Implémentation

Page 32: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

32

Version 2 : Routage arborescent

● Objectifs○On implémente la structure de notre arbre○ Les routeurs doivent interpréter et router les

paquets TBXcast

TBXcast 2009 Conception et Implémentation

Page 33: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

33

Structure de l’arbreTBXcast 2009 Conception et Implémentation

● 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

Page 34: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

34

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é

TBXcast 2009 Conception et Implémentation

Page 35: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

35

Déroulement d’un exemple (1/2)

Routeur 1 2 3 4

Structure

Adr. @ @ @ @

Long. 4 1 2 1

Dest. 0 1 0 1

i

i

routeurs destinataires

routeurs intermédiaires

0 1

2

3 4

Entête TBXcast d’un paquet circulant entre le routeur 0 et le routeur 1

TBXcast 2009 Conception et Implémentation

Page 36: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

36

Déroulement d’un exemple (2/2)

Routeur 2

Structure

Adr. @

Long. 1

Dest. 1

Routeur 3 4

Structure

Adr. @ @

Long. 2 1

Dest. 0 1i

i

routeurs destinataires

routeurs intermédiaires

0 1

2

3 4

Entête TBXcast d’un paquet circulant entre le routeur 1 et le routeur 3

Entête TBXcast d’un paquet circulant entre le routeur 1 et le routeur 2

TBXcast 2009 Conception et Implémentation

Page 37: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

37

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 »

TBXcast 2009 Conception et Implémentation

Page 38: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

38

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

TBXcast 2009 Conception et Implémentation

Page 39: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

39

Représentation de la topologie

● Ensemble de liens entre interfaces● Structure○ Source○ Destinataire○ Adresse IP de la destination

0 1a::0

b::0

a::1 c::1

{ source = 0, dest = 1, addr = a::1 }{ source = 1, dest = 0, addr = a::0 }

TBXcast 2009 Conception et Implémentation

Page 40: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

40

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

TBXcast 2009 Conception et Implémentation

Page 41: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

41

Exemple de matrice des liens

0

1

4

3

2

5

a::0

a::1

b::1e::1

f::5

f::4 d::4

e::4

d::3 c::3

c::2

b::2

0 1 2 3 4 5

0 1

1 1 1 1

2 1 1

3 1 1

4 1 1 1

5 1

TBXcast 2009 Conception et Implémentation

Page 42: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

42

Exemple du déroulement de l’algorithme

● Envoi depuis 0 jusqu’à 2 et 5● Tableau des longueurs

● Tableau des prédécesseurs

0

1

4

3

2

5

TBXcast 2009 Conception et Implémentation

0 1

-1 0

0

1

4

3

2

50 1 2 20 1 2 3 20 1 2 3 2 3

-1 0 1 1-1 0 1 2 1-1 0 1 2 1 4

Page 43: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

43

Traitements supplémentaires

● Elagage de l’arbre○ Suppression des branches sans destinataire

● Suppression des nœuds inutiles au routage

0 1

4

2

5

3

TBXcast 2009 Conception et Implémentation

Page 44: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

44

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

TBXcast 2009 Conception et Implémentation

Page 45: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

45

Présentation de la plateforme

TBXcast 2009

Page 46: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

46

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

TBXcast 2009 Plateforme

Page 47: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

47

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

TBXcast 2009 Plateforme

Page 48: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

48

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

TBXcast 2009 Plateforme

Page 49: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

49

ArchitectureTBXcast 2009 Plateforme

Switch

Réseau IPv4 de gestion

Serveur

4

5

6

1

Réseau IPv6 de test2

3

Page 50: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

50

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

TBXcast 2009 Plateforme

Page 51: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

51

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

TBXcast 2009 Plateforme

Page 52: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

52

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 Plateforme

Page 53: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

53

Bilan du projet

TBXcast 2009

Page 54: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

54

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

TBXcast 2009 Bilan du projet

Page 55: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

55

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

TBXcast 2009 Bilan du projet

Page 56: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

56

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

TBXcast 2009 Bilan du projet

Page 57: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

57

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 Bilan du projet

Page 58: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

58

Planification

TBXcast 2009

Page 59: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

59

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

TBXcast 2009 Planification

Page 60: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

60

Avancement des versions

v0

v1.1

v1.2

v2

v3

0 10 20 30 40 50 60 70 80 90 100

Construction (%)Tests (%)

Pourcentage d'avancement

Vers

ions

TBXcast 2009 Planification

Page 61: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

61

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

TBXcast 2009 Planification

Page 62: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

62

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

TBXcast 2009 Planification

Page 63: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

63

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

TBXcast 2009 Bilan du projet

Page 64: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

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

TBXcast 2009

Page 65: TBXcast Soutenance finale – Juin 2009 Cyril B OULEAU, Hamze F ARROUKH, Loïc L E H ENAFF, Mickaël L ECUYER, Jozef L EGÉNY, Benoît L UCET, Emmanuel T HIERRY

Merci pour votre attention

tbxcast.xipp.net