PRESENTE A
POUR OBTENIR
LA LICENCE FONDAMENTAL EN
MATH-INFOMATIQUE
PAR
KMOUT Achraf et EL MARRAKI Yassin
3
4
RESUME
A la fin de l’année 2003, MPLS (Multi Protocol Label Switching) est devenu
un sujet de rechercher très convoités par la communauté scientifique. MPLS est
une architecture réseau qui permet d’acheminer des données en utilisant un
système de « Label » qui permet de fournir un service basé sur la commutation de
paquets et qui unifie le transport des données. Dans le monde les
télécommunications, La qualité de service QoS dans les réseaux téléphoniques a
toujours tenu une place importante voire prépondérante dans la conception des
architectures de réseaux.
Dans ce travail nous avons menés des études sur le protocole MPLS qui est
la convergence des évolutions des protocoles d’inter connexion des réseaux,
depuis les années 60 et 70, et on a essayé de configurer un réseau entre plusieurs
nœud (routeur) sur le simulateur de recherche NS.2 avec Tool Command
Language (abréviation : Tcl) qui est un langage de script et oTCL (oriente tcl).
5
Table des Matières
INTRODUCTION GENERAL 12
I.6 Conclusion 22
III. APPLICATION 37
III.1 INTRODUCTION : 37
7
LISTE DES FIGURES :
8
Figure 3.2 fenêtre nam visualise 4 nœuds interagissant …………………………………………………………………………………….
9
Liste Des Acronyms
10
OTCL: Object Tools Command Language
PE: Provider Edge
PoP: Point of Presence
PPP: Point to Point Protocol
QoS: Quality of Service
RIP: Routing Information Protocol
SPF: Short Path First
TCL: Tool Command Language
TE: Traffic Engineering
TDP: Tag Distribution Protocol
VPN: Virtual Private Network
WAN: Wide Area Network
RNIS : Réseau Numérique à Integration de Services
11
INTRODUCTION GENERAL
Au début de l'Internet, la préoccupation majeure était de transmettre les paquets
à destination. Ensuite, des mécanismes inhérents au protocole « Transmission Control
Protocol» (TCP) ont été développés pour faire face aux conséquences induites par les
pertes de paquets ou la congestion du réseau. Mais depuis le début des années 1990, la
communauté des fournisseurs de services (ISP : Internet service provider) qui
administrent l'Internet est confrontée non seulement au problème de croissance
explosive mais aussi à des aspects de politique, globalisation et stabilité du réseau.
Par ailleurs, outre ces différents aspects, apparaît une très forte diversification
des services offerts. Ainsi de nouvelles applications se développent sur le réseau :
téléphonie, vidéoconférence, diffusion audio et vidéo, jeux en réseau, radio et télévision
en direct… L’émergence des réseaux privés virtuels (VPN), nécessite également une
différentiation de services. La qualité de service de bout en bout apparaît, dans ce
contexte, essentielle au succès de ces applications.
12
I. HISTORIQUE: de X25 jusqu’a MPLS
Au début des années 1970, le besoin de définir des protocoles standard afin
d'assurer l'interconnexion des réseaux privés à travers les réseaux publics s'est fait
ressentir
X25 est le plus populaire d'un groupe de protocole abouti par des
développements des protocoles standard afin d'assurer l'interconnexion des
réseaux privés à travers les réseaux publics dé le début des années 1970.
A la fin des annees 1970 et au debut des annees 1990, la technologie des réseaux
etendus reliant deux sites utilisait generalement le protocole X.25. Bien que considere
actuellement comme un protocole d'ancienne génération, le X.25 a été une technologie
de commutation de paquets très répandue car elle permettait d'obtenir une connexion
très fiable sur des infrastructures câbles non fiables. Ce résultat était obtenu grâce à des
contrôles de flux et d'erreur supplémentaires. Ces contrôles alourdissaient cependant le
protocole. Celui-ci trouvait son application principale dans le traitement des
autorisations de carte de crédit et dans les guichets automatiques. Dans cette partie de
chapitre, nous ne citons le protocole X.25 qu'à des fins historiques. [1.3]
13
Figure 1.Accès par réseau à commutation de circuits [1.1]
L’objectif du niveau trame est de se prémunir contre les erreurs de transmission pouvant
survenirentre l’usager et le réseau.Le niveau trame permet également un contrôle de flux global
au niveau de l’interface usager-réseau
Niveau paquet L’objectif du niveau paquet est de permettre l’interconnexion entre deux
usagers du réseau parl’intermédiaire de ce l’on appelle un circuit virtuel. Un usager peut ouvrir
(créer) plusieurs circuitsvirtuels ce qui lui permet de pouvoir gérer plusieurs communications
simultanément (multiplexage).
14
Figure 3. Circuit virtuel[1.1]
Les réseaux X25 publics comme privés se sont largement développés à travers le
monde. Très utilisé dans le secteur bancaire mais aussi par les sociétés ayant des
agences éloignées, il doit en partie sa popularité à sa grande sécurité de
transmission. En effet à une époque où la qualité des lignes n'était pas celle
d'aujourd'hui, X25 met en œuvre tout un système de contrôle et de correction afin
d'assurer l'acheminement des données sans erreur. Mais ce qui lui a valu son
succès causera peut-être sa perte.
15
Et comme résulta abouti de puis le développement des nouveaux protocoles, un
des plus populaire c'été ;
16
I.3 Frame Relay Protocol basé sur X25 :
17
Le protocole Frame Relay intervient entre un périphérique d'utilisateur final, tel qu'un
pont ou un routeur de réseau local, et un réseau. Le réseau proprement dit peut utiliser
n'importe quelle méthode de transmission compatible avec la vitesse et l'efficacité
requises par les applications Frame Relay.
Et comme les LABEL dans les reseaux MPLS Les PVC s'identifient au niveau des
interfaces des DTE et DCE grâce à des DLCI (Data Link Connection Identifiers) afin de
pouvoir distinguer les flux provenant des différents PVC. Les DLCI sont généralement des
numéros d'identification à valeur uniquement locale (à une interface) qu'on assimile à
une sous-interface dans certains contextes : sur un routeur par exemple, chaque PVC
d'une interface pourra ainsi avoir sa propre adresse IP associée.
Il transporte des flux différents en même temps. Le contrôle se fait de bout en bout
sur les stations. Le temps de traversée d'un réseau Frame Relay est de 40 ms.
La bande passante est découpée en canaux et est dynamique. Les canaux sont repérés
par un DLCI .Les canaux de 1 à 15 sont réservés, les canaux de 16 à 991 sont pour les
utilisateurs
18
.
19
I.4 L’entrer de l’ ATM
ATM a été crée face à l'impossibilité pour les réseaux RNIS (Réseau Numérique à Intes
réseaux RNIS Bande Étroite (Numéris par exemple) à offrir une connectivité universelle
(le débit est limité à 2Mb/s).
Pour résoudre ce problème, le mode de transfert asynchrone a été mis en place pour
faire face au besoin d'un RNIS Large Bande : ATM est né. Les principales caractéristiques
d'ATM sont:
I.4.2 IP/ATM:
IP sur ATM est l'approche privilégiée dans les réseaux IP opérationnels aux Etats-
Unis entre 1994 et 1998 pour des débits de 155 puis 622 Mbit/s.
C'est sur des prévisions qui, a l'époque, voyaient dans l'augmentation du trafic
téléphonique la source principale de croissance que se sont bases les operateurs
existants de télécommunication, aux Etats-Unis et surtout en Europe, pour investir
massivement dans ATM comme technologie de leurs réseaux a 155 Mbit/s a partir de la
première moitie des années 90. Malheureusement, si ATM est approprie lorsque le trafic
est constitue majoritairement de voix, il est inadapté lorsque le trafic est
majoritairement
constitue de données, ce qui est et sera de plus en plus le cas avec l'explosion du
trafic lie a l'Internet.
21
I.5 Migration d’ATM vers MPLS
I.6 Conclusion
L’humanité a parcouru un long chemin pour atteindre la technologie MPLS: depuis 1960-
1970 jusqu'à nos jours les États-Unis sont allés en concurrence avec le SFS(RUSSIE
aujourd’hui) à créer un réseau puissant reliant les États-Unis d’Amérique même une
attaque nucléaire ne peut pas être capable de le détruire. Commençant par x25 qui
était un peu simple Comparé à l'actuel, mais il a été fort à travers et passant par frame
relay, rnis jusqu'à ATM Qui est venu avant le protocole MPLS Quel est le sommet de
ce que les développeurs ont atteint.
22
23
II. Les reseaux MPLS :
II.1 Introduction :
Avec l’augmentation du débit des liens de communication et du nombre de routeur
dans L’Internet, l’IETF (Internet Engineering Task Force) a défini le nouveau protocole
MPLS (Multi Protocol Label Switching : commutation de label multi-protocole) pour faire
face Au goulot d’étranglement induit par la complexité de la fonction de routage. Ce
protocole a Deux objectifs principaux qui sont :
• Permettre un acheminement rapide des paquets IP en remplaçant la fonction de
routage par Une fonction de commutation qui est beaucoup plus rapide, la taille
des matrices de Commutation devenant très petite.
• Faciliter l’ingénierie réseau en fournissant aux opérateurs la maîtrise de
L’acheminement des données, qui pouvaient être très complexes avec des
protocoles Comme OSPF (gestion des métriques). Dans ce chapitre on va voir les
principaux éléments de la technologie MPLS
MPLS (Multi-Protocol Label Switching) est une norme de protocole proposée par
l’IETF, l’organisme de normalisation d’internet pour l’ensemble des architectures et des
protocoles de haut niveau. Dont le rôle principal est de combiner les concepts du
routage IP de niveau 3, et les mécanismes de la commutation de niveau 2 telles
qu’implémentée dans ATM ou Frame Relay. MPLS doit permettre d'améliorer le rapport
performance/prix des équipements de routage, d'améliorer l'efficacité du routage (en
particulier pour les grands réseaux) et d'enrichir les services de routage (les nouveaux
services étant transparents pour les mécanismes de commutation de label, ils peuvent
être déployés sans modification sur le cœur du réseau).
Il se base sur une étiquette pour commuter les paquets à travers deux équipements,
les LER (Label Edge Routeurs) et les LSR (Label Switch Routers). Cette opération
s’effectue entre la couche liaison de données et la couche réseau, c’est pourquoi MPLS
est qualifié de protocole de couche « 2,5 ». [3.2] (voir Figure 3.1)
24
Figure 3.1: La couche MPLS
25
II.3.1 LER (Label Edge Router):
Il s’agit d'un routeur d’accès au réseau MPLS qui gère le trafic entrant dans le réseau
MPLS et possédant à la fois des interfaces IP traditionnelles et des interfaces connectées
au réseau MPLS.
Ce routeur LER d'entrée, exécute les fonctions de l'imposition de label et de
l’expédition d'un paquet à destination du réseau MPLS. à la sortie du réseau MPLS, il
exécute les fonctions de déplacement (disposition) de label et la transmission de paquet
IP au destinataire.
Ingress LER : c'est un routeur qui gère le trafic qui entre dans un réseau MPLS.
Egress LER : c'est un routeur qui gère le trafic qui sort d'un réseau MPLS.
C’est un routeur de cœur du réseau MPLS qui effectue la commutation sur les labels et
qui participe à la mise en place du chemin par lequel les paquets sont acheminés.
Lorsque le routeur LSR reçoit un paquet labélisé, il le permute avec un autre de sortie et
expédie le nouveau paquet labélisé sur l'interface de sortie appropriée. Le routeur LSR,
selon son emplacement dans le réseau MPLS, peut jouer plusieurs rôles à savoir :
exécuter la disposition du label (appelé déplacement), marquer l'imposition (appelée
poussée) ou marquer la permutation en remplaçant le label supérieur dans une pile de
labels avec une nouvelle valeur sortante de label.
C’est un chemin pour un paquet de données dans un réseau basé sur MPLS ou une
séquence de labels à chaque nœud du chemin allant de la source à la destination. Les
LSP sont établis avant la transmission des données ou à la détection d’un flot qui
souhaite traverser le réseau. Il est unidirectionnel et le trafic de retour doit donc prendre
un autre LSP.
26
Il représente un groupe de paquets ayant les mêmes propriétés. Tous les paquets d'un
tel groupe reçoivent le même traitement au cours de leur acheminement. Dans le réseau
MPLS, la transmission de paquets s’effectue par l’intermédiaire de classes d’équivalence
FEC.
Contrairement aux transmissions IP classiques, un paquet est assigné à une FEC une
seule fois lors de son entrée sur le réseau. Les FEC sont basés sur les besoins en termes
de service pour certains groupes de paquets ou même un certain préfixe d'adresses.
C’est un protocole permettant d'apporter aux LSR les informations d'association des
labels dans un réseau MPLS. Il est utilisé pour associer les labels aux FEC pour créer des
LSP. Les sessions LDP sont établies entre deux éléments du réseau MPLS qui ne sont pas
nécessairement adjacents. Il construit la table de commutation des labels sur chaque
routeur et se base sur le protocole IGP pour le routage.
Le principe de base de MPLS est la commutation des labels, Les routeurs LSRs
permutent les labels tout au long du réseau jusqu'à destination sans consultation de
l'entête IP et la table de routage. La commutation MPLS est une technique orientée
connexion.
Une transmission des données s’effectue sur un chemin LSP et chaque routeur MPLS,
LSR possède une table de commutation associant un label d'entrée à un label de sortie.
La table de commutation est rapide à parcourir dans le but d'accroître la rapidité de
commutation sur label par rapport à la table de routage du réseau IP. Le chemin suivi est
déterminé par le routeur d'entrée LER du réseau MPLS. Il aiguille les paquets labélisés
sur un chemin LSP donné selon différents critères : adresse destination, qualité service,
applications, etc.
27
Figure 2.3: Exemple d'un réseau MPLS.
Pour que les LSR puissent commuter correctement les paquets, le Ingress LER affecte
une étiquette (appelée aussi Label) à ces paquets (label imposition ou label pushing).
Ainsi, si on prend l'exemple de la figure 3.3, Le LSR1 saura en consultant sa table de
commutation que tout paquet entrant ayant le label L=18 appartient à la FEC tel et donc
doit être commuté sur une sortie tel en lui attribuant un nouveau label L=21 (label
swapping). Cette opération de commutation sera exécutée par tous les LSR du LSP
jusqu'à aboutir à l'Egress LER qui supprimera le label (label popping ou label disposition)
et routera le paquet de nouveau dans le monde IP de façon traditionnelle.
II.4.1 Label :
Les labels sont des simples nombres entiers de 4 octets (32 bits) insérés entre les
entêtes des couches 2 et 3 du modèle OSI. Un label a une signification locale entre deux
routeurs LSR adjacents et mappe le flux de trafic entre le LSR amont et le LSR aval. [3.2]
A chaque bond le long du chemin LSP, un label est utilisé pour chercher les
informations de routage (Next Hop, interface de sortie). Les actions à réaliser sur le label
sont les suivantes : insérer, permuter et retirer. [2.2]
28
Figure 2.3 Détails d'un label MPLS.
MPLS repose sur la technique du label switching. Chaque paquet doit donc être
capable de transporter un label. Il a deux façons de réaliser ce transport : [2.3]
Pour les protocoles ne pouvant pas utiliser cette méthode, le label sera
transporté dans le champ « SHIM » qui sera inséré entre l’entête de la couche
liaison et l’entête de la couche réseau. Cette technique permet de supporter la
technique de commutation de label sur n’importe quel protocole de la couche de
liaison de données.
Plan de contrôle : Il permet de créer et de distribuer les routes et les labels. Ainsi,
il contrôle des informations de routage, de commutation et de distribution des
labels entre les périphériques adjacents.
29
Plan de données : Il est connu également sous le nom de « Forwarding Plane » et
permet de contrôler la transmission des données en se basant sur la commutation
des labels.
Les différents composants MPLS :
Dans un réseau MPLS, il existe deux méthodes pour créer et distribuer les labels : «
Implicit routing » et « Explicit routing ». Ces deux méthodes sont celles utilisées pour
définir les chemins LSP dans le réseau MPLS :
30
Figure 2.5 Routage implicite des labels.
LDP est un ensemble de procédures par lesquelles un routeur LSR en informe un autre
des affectations faites des labels.
31
Dans un réseau MPLS, deux routeurs LSR sont liés au label de distribution (peer)
lorsqu’ils utilisent un LDP pour échanger leurs affectations. Ce protocole LDP est
bidirectionnel utilisé dans le backbone MPLS [2.4].
Les routeurs LSR se basent sur l’information de label pour commuter les paquets
labellisés. Chaque routeur LSR, lorsqu’il reçoit un paquet labellisé, utilise le label local
pour déterminer l’interface et le label de sortie.
L’autre objectif du protocole LDP est l’établissement des chemins appelés « Label
Switch Path » sur le réseau MPLS. Il définit un ensemble de procédures et de messages
permettant l’échange des labels et la découverte dynamique des noeuds adjacents grâce
aux messages échangés par UDP [2.5].
Il définit aussi une suite de procédures et de messages utilisés par les routeurs LSR
pour s'informer mutuellement de la correspondance (mapping) entre les labels et le flux.
(voir Figure 2.7)
32
Le fonctionnement de premier mode de distribution est schématisé dans la figure
siuvant :
Dans ce mode, dès qu'un routeur LSR a associé un label à une FEC, il informe
automatiquement tous ses voisins de cette opération pour augmenter le trafic dû à la
signalisation sur le réseau.
33
II.5.2 Le protocole de routage OSPF :
Il a été conçu au sein de l’IETF à la fin des années 80 pour résoudre les principaux
défauts du protocole RIP et entre autres le temps de convergence. Actuellement, ce
temps est d’environ d’une minute avec l’utilisation d’un protocole tel qu’OSPF
Il est ouvert (l’Open de OSPF), son fonctionnement peut être connu de tous.
Il utilise l'algorithme SPF, plus connu sous le nom d'algorithme de Dijkstra, afin
d'élire la meilleure route vers une destination donnée.
Pour bien comprendre son fonctionnement, il est nécessaire de s’intéresser aux notions
suivantes : [2.6].
II.6.1 VPN/MPLS :
34
MPLS est très sollicitée par les opérateurs réseaux fournissant plusieurs clients car elle
permet de partager des équipements physiques.
Avec la technologie MPLS et la définition des classes disposant chacune d'un niveau
de priorité, il est possible de garantir une qualité de service adaptée à chacun des flux
utilisant la solution VPN/MPLS.
La QoS est un élément crucial pour un réseau d'opérateur. En effet, l’opérateur doit
pouvoir garantir à ses clients le transport de leurs flux en garantissant différentes
contraintes, comme par exemple : Débit minimal garanti, Débit maximal, Latence, Gigue.
[2.7].
Ainsi cette solution permet de véhiculer la voix sur IP (VoIP) et de mettre en place des
applications de visioconférence dans des conditions excellentes sur des réseaux
VPN/MPLS à forts taux d'utilisation.
Dans le cadre du routage implicite, le chemin sera défini selon l'IGP. Par conséquent,
le chemin de base sélectionné sera par défaut celui qui contient le moins de sauts.
Dans un réseau MPLS, le TE permet d'optimiser l'utilisation des ressources d'un
réseau afin d'éviter la congestion. C'est la prise en compte de la bande passante
disponible sur un lien lors des décisions de routage qui rend possible cette optimisation.
Pour cela, il faut utiliser le protocole « Source Routing » pour le configurer. Ainsi, pour sa
mise en place dans un réseau, l'opérateur doit utiliser un protocole de routage
particulier qui doit implémenter l'algorithme CSPF
C'est cet algorithme qui permet le choix d'une route en fonction des paramètres
comme par exemple le débit disponible sur un lien. Des évolutions des protocoles de
routages existant comme OSPF-TE ou ISIS-TE ont été développés afin d'implémenter
l'algorithme CSPF. [2.8].
Dans un réseau MPLS, le respect de ces contraintes lors des décisions de routage est fait
grâce à la présence d'un protocole de routage implémentant l'algorithme CSPF. Enfin, la
35
réservation de la bande passante éventuelle, qui doit être faite sur les routeurs, est très
souvent faite grâce au protocole RSVP-TE.
Conclusion :
Le protocole MPLS semble intéressant pour l'avenir en tant que technique fédératrice
et de nombreux travaux sont menés pour faciliter les choix à faire.
Grâce à ses mécanismes de commutation de labels avancés et sa simplicité de mise en
place sur des réseaux déjà existants, le MPLS est devenu une technologie phare de
demain alliant souplesse, évolutivité et performance pour un coût réduit.
36
III. Application
III.1 INTRODUCTION :
Les mécanismes utilisés dans les réseaux IP (protocole de routage, file d'attente et
dans notre cas MPLS) doivent être évalués afin de mesurer les performances des
stratégies utilisées et de tester leur fiabilité. L'utilisation d'un réseau réel dans une
évaluation est difficile et coûteuse, en outre de telles évaluations ne donnent
généralement pas des résultats significatifs. Le réseau réel n'offre pas la souplesse de
varier les différents paramètres de l'environnement et pose en plus le problème
d'extraction de résultats ; c'est pour cela que la majorité des travaux d'évaluation de
performances utilisent le principe de simulation vu les avantages qu'il offre. En effet, la
simulation permet de tester les protocoles sous une variété de conditions.
37
InterNetwork Testbed) sous lequel la deuxième version (NS2) est sortie. Le projet VINT
est dirigé par l’université de Californie du sud et est financé par le DARPA en
collaboration avec Xerox PARC et LBNL. Il est utilisé par plusieurs groupes de travail
comme l’IETF pour évaluer les protocoles en cours de normalisation.
III.2.2.1 Langages
TCL
Tcl est un langage de commande comme le shell UNIX mais qui sert à contrôler les
applications. Son nom signifie Tool Command Language. Tcl offre des structures de
programmation telles que les boucles, les procédures ou les notions de variables. Il y a
deux principales façons de se servir de Tcl: comme un langage autonome interprété ou
comme une interface applicative d'un programme classique écrit en C ou C++. En
pratique, l'interpréteur Tcl se présente sous la forme d'une bibliothèque de procédures
C qui peut être facilement incorporée dans une application. Cette application peut alors
utiliser les fonctions standards du langage Tcl mais également ajouter des commandes à
l'interpréteur.
Toutes les applications qui utilisent Tcl créent et utilisent un interpréteur Tcl. Cet
interpréteur est le point d'entrée standard de la bibliothèque. L'application tclsh
constitue une application minimale ayant pour but de familiariser un utilisateur au
langage Tcl. Elle ne comporte que l'interpréteur Tcl. On retrouve cet interpréteur dans
l'application NS. Lorsque l'on tape ns, une série d'initialisations est faite puis l'application
passe en mode interactif. On peut alors entrer les commandes Tcl.
38
forme d'une chaîne de caractères. Le caractère de retour à la ligne termine une
commande et lance son interprétation. Le caractère de séparation de commandes sur
une même ligne est ";". Une fois la commande exécutée et terminée, l'application
retourne en mode interactif c'est à dire que l'interpréteur est de nouveau prêt à recevoir
une nouvelle commande.
Tcl n'est pas un langage compilé, c'est un langage interprété. Il n'y a pas de grammaire
fixe qui traite l'ensemble du langage. Tcl est défini par un interpréteur qui identifie les
commandes par des règles d'analyse syntaxique. Seules les règles d'analyse des
commandes sont fixées. Tcl évalue une commande en deux étapes: analyse syntaxique
et exécution. L'analyse syntaxique consiste à identifier les mots et effectuer les
substitutions. Durant cette étape, l'interpréteur ne fait que des manipulations de
chaînes. Il ne traite pas la signification des mots. Pendant la phase d'exécution, l'aspect
sémantique des mots est traité comme par exemple déduire du premier mot le nom de
la commande, vérifier si la commande existe et appeler la procédure de cette
commande avec les arguments.
EXPL
Le contenu d'une variable est obtenu en faisant précéder le nom de variable par
le symbole $
>set a 20
>expr $a*2
< 4O
OTCL
OTcl est une extension orientée objet de Tcl. Les commandes Tcl sont appelées
pour un objet. En OTcl, les classes sont également des objets avec des possibilités
d'héritage. Les analogies et les différences avec C++ sont:
- C++ a une unique déclaration de classe. En OTcl, les méthodes sont attachées à
un objet ou à une classe.
- Les méthodes OTcl sont toujours appelées avec l'objet en préfixe
- L'équivalent du constructeur et destructeur C++ en OTcl sont les méthodes
init{} /destroy{}
- L'identification de l'objet lui-même: this (C++), $self (OTcl). $self s'utilise à
l'intérieur d'une méthode pour référencer l'objet lui-même. A la différence de C++,
il faut toujours utiliser $self pour appeler une autre méthode sur le même objet.
39
C'est à dire "$self xyz
5" serait "this->xyz(5) " ou juste "xyz(5) " en C++.
- Les méthodes OTcl sont tout le temps "virtual". A savoir, la détermination de la
méthode à appeler est effectuée à l'exécution.
- En C++ les méthodes non définies dans la classe sont appelées explicitement
avec l'opérateur de portée "::". En OTcl, les méthodes sont implicitement appelées
dans l'arbre d'héritage par "$self next". Cette commande appelle la méthode de
même nom de la classe parent.
- L'héritage multiple est possible dans les deux langages.
Si NS utilise deux langages c'est parce qu'il réalise deux types de choses. D'une part, le
simulateur doit être efficace dans la manipulation de bytes, de paquets et d'en-t étés et
dans l'application d'algorithmes sur de grandes quantités de données. Dans ce cas la
vitesse d'exécution est primordiale et prend le pas sur le temps de compilation,
l'utilisation du C++ s'impose. D'autre part, l'utilisateur souhaite changer rapidement ses
scénarios de simulation,
dans ce cas OTCL offre une bonne solution.
L'inconvénient de cette dualité est le dédoublement des objets et l'implémentation
des
fonctions qui doit veiller a la juste interaction entre les deux parties. Pour que
l'utilisateur
puisse suivre l'évolution d'une variable elle doit exister a la fois en C++ et en OTCL
NAM (Network AniMator) est un outil de visualisation qui présente deux intérêts
principaux : représenter la topologie d'un réseau décrit avec NS-2, et afficher
temporellement les résultats d'une trace d'exécution NS-2. Par exemple, il est capable
de représenter des paquets TCP ou UDP, la rupture d'un lien entre nœuds, ou encore de
représenter les paquets rejetés d'une file d'attente pleine. Ce logiciel est souvent appelé
40
directement depuis les scripts TCL pour NS-2, pour visualiser directement le résultat de
la simulation.
1-rewind 2-zoom avant 3-zoom arrière 4- temps 5-force attractif 6-force répulsif 7-
nombre d’itération 8-auto itération 9-contrôle de vitesse 10-temps entre deux trame
11-temps d’animation courant 12-quitter NAM 13-fast forward 14-animation 15-
stopl’animation 16-animtion en arrière.
41
Figure[3.2]: fenêtre nam visualise 4 nœuds interagissant
Figure[3.3]: xgraph-sur-ns2-simple-output-screen
42
III.2.3 Fonctionnement de NS2
NS2 est un outil de recherche très utile pour le design, la validation et l'évaluation des
protocoles.
Le simulateur utilise le langage orienté objet OTCL dérivé de TCL pour la description
des conditions de simulation sous forme de scripts (Voire figure ). Dans le script,
l'utilisateur fournit la topologie du réseau, les caractéristiques des liens physiques, les
protocoles utilisés, le type de trafic généré par les sources, les événements, etc.
Si le script écrit en OTCL permet une utilisation (édition, modification des simulations)
facile du simulateur, les routines sont écrites en C++ pour avoir une plus grande
puissance de calcul. Ces routines incluent entre autres plusieurs types de protocoles, de
files d'attente et d'algorithmes de routage.
SIMULATIO
N
43
Avant de lancer une simulation, on introduit les paramètres de la simulation dans NS
grâce aux scripts TCL. Les paramètres consistent notamment en le nombre de nœud, les
liens, les protocoles (mpls dans notre cas ; mpls) mis en œuvre, les différents
événements qui vont survenir, etc. Cette phase est en fait une phase de description du
scénario de simulation.
Les outputs des simulations sont des fichiers textes qu’on appelle fichiers trace. Ces
fichiers sont structurés en entrées. Chaque entrée correspond à une action effectuée par
un nœud (envoie de paquet, rejet de paquet, mise en file d'attente, réception d'un
paquet). A titre d'exemple, soit l'entrée suivante :
Cette entrée traduit la réception (r) à l'instant (5.213)s d'un paquet de type (cbr) de
taille (500) octets, de numéro d'identité (305), de numéro de séquence (21),
appartenant au flux (3), transitant entre les nœuds (2) et (1), ayant pour adresse source
(3.0) (adresse.port) et pour adresse destination (0.0).
D’un autre côté, NS2 souffre des inconvénients des simulateurs tel que la
simplification et l’abstraction du monde réel, la difficulté (voire l’impossibilité) de tester
certains aspects, et la puissance de calcul requise qui croit exponentiellement avec la
complexification du système simulé. De plus, NS2 souffre de l’état primitif aussi bien de
ses outils de collecte et traitement des résultats que de son interface graphique. Les
concepteurs de NS2 ne manquent pas de mettre en garde les utilisateurs sur l'aspect
non achevé de ce simulateur. Il ne s'agit pas d'un produit fini, de nouveaux bogues sont
souvent trouvés et d'autres constamment introduits par les programmeurs. Finalement,
on remarque souvent des problèmes d'incompatibilité entre les implémentations de NS,
les modules développés pour NS et les versions de linux (exemple : la dernière version
de ns2 est 2.35 a pour compilateur gcc-4.8 g++-4.8 ce qui est un peu ancien par apport
aux compilateurs des versions Unix nouveaux 16.4/18.4/19.0 ).
44
III.2.5 Les tapes d’installation de ns2 sur UBUNTU 18.04
III.2.5.1 Installation deNS2
Mise ajour de système :
$ sudo apt-get update
Téléchargement de ns2 :
Téléchargement de ns-allinone-2.35.tar.gz de puis internet
Lien :
https://fr.osdn.net/projects/sfnet_nsnam/downloads/allinone/ns-
allinone-2.35/ns-allinone-2.35.tar.gz/
C’est parce que ns2 travail avec le compilateur gcc et g++ de version < 4.8
45
Installation de compilateur de C (gcc) et C++(g++) 4.8
En tape les deux lignes de cmd
$]sudo apt install build-essenial autoconf automake libxmu-dev
$] sudo apt install gcc-4.8 g++-4.8
Maintenant si en essaie d’installer ns2 on verra le même erreur car ns2 est encor utilise
le premier compilateur
Et en sauvegarde le fichier
PUIS
$]gedit ns-allinone-2.35/ ns-2.35/linkstate/ls.h
46
Et en sauvegarde
Et en sauvegarde le fichier
Dans NAM
$]gedit ns-allinone-2.35/ nam-1.15/Makefile.in
Et en change dans le fichier dans les lignes 46 et 47
CC = @CC@ par CC =GCC-4.8
CPP = @CXX@ par CC =G++-4.8
Et en sauvegarde le fichier
Dans Xgraph
$]gedit ns-allinone-2.35/ xgraph-12.2/Makefile.in
Et en change dans le fichier dans les lignes 120 et 123
CC = @CC@ par CC =GCC-4.8
CPP = @CXX@ par CC =G++-4.8
->
Et en sauvegarde le fichier
47
Installation
$]cd ..
$]./install
Et voilla l’installation
ExportPATH=$PATH:/home/achraf/nsallinone2.35/bin:/home/pradeepkumar/n
s-allinone-2.35/tcl8.5.10/unix:/home/achraf/ns-allinone-2.35/tk8.5.10/unix
Export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/achraf/ns-allinone-
2.35/otcl-1.14:/home/achraf/ns-allinone-2.35/lib
En redémarre la machine
Et voilà ton ns2 est prêt à être utilise
48
Conclusion
Malheureusement le système d’exploitation Windows ne support plus ns2,c’est pour
cela les utilisateurs sont force de travailler avec les distributions de Unix, mais la
machine virtuelle reste une bonne solution pour ceux qui veulent pas installer deux Sys
d’exploitation dans leurs machines .
Pour conclure ns2 est un programme de simulation des protocoles de réseau très
puissant pour le recherche scientifique c’est pour cela en trouve qu’il est utilisé par la
plupart des unifiants de master .ils vous permet même de crée votre personnelles
protocoles tandis que dans GNS3 vous pouvez juste travailler avec ce qu’il existe déjà.
49
III.3 BRAITE un simulateur supplementary pour enrichir
l’étude.
Nous utilisons BRITE dans [BU-CS-TR-2000-0004] pour étudier l’origine des lois de
puissance et d’autres métriques dans les topologies Internet. BRITE (Représentant
de la topologie Internet de l'université de Boston) n'est plus pris en charge par ses
développeurs.
50
Figure[3.4(1)] :le main fenêtre de BRITE
51
Figure[3.4(2)] BRITE
53
III.4 Mise en place :
III.4.1 INTRODUCTION :
Notre travail c’est la réalisation du réseau MPLS illustré dans la figure suivante.
Les nœuds 0,1,10,9 sont IP nœuds et les autres appelés MPLS nœuds. Agent src0
concerne le nœud 0 envoie des paquettes à Dest 0 (nœud 9). Agent src1 concerne le
nœud 1 envoie des paquettes à Dest 1 (nœud 10).
54
Par la suite, nous avons défini la procédure suivante pour fermer les fichiers de
traçage, de sortie et exécuter « xgraph » afin d’afficher les résultats et exécuter « NAM »
sur le fichier de trace.
55
Définition des liens entre les LSRs :
En configurant le protocole LDP, nous avons utilisé des couleurs différentes pour les
flux de données et le mode de distribution des labels :
après, nous avons installé les agents en précisant leurs types, leurs caractéristiques,
leurs attachements et leurs connexions :
56
Pour la génération de trafic, on a spécifié l’instant de début et de la fin à l’aide de la
commande suivante :
57
III.4.3 Les résultats sur nam :
58
Figure 3.6: à 0,16 seconde commutation de paquets
59
Figure 3.9 à 0,90 établir le Flux de trafic sur le ER-LSP .
60
III.4.4 Conclusion
La simulation que nous avons réalisées sur NS2 a permet de mettre en évidence
plusieurs constats : d'abord, il est évident que le routage IP classique n'est pas du tous
approprié pour véhiculer du multiservice(mpls). Ensuite, MPLS est une approche qui
s'est montrée très performante quant de l'utilisation des ressources du réseau, d'autant
plus qu'elle permet la transmission de trafic multiservice en respectant les exigences des
différentes applications.
61
IV. Conclusion general
62
63
BIBLIOGRAPHIE ET WEBOGRAPHIE :
[2.1]: https://blog.slashroot.fr/?p=17
[2.2]: https://www.frameip.com/mpls/#6-8211-label
[2.3]: https://wapiti.telecomlille.fr/commun/ens/peda/options/st/rio/pub/exposes/
exposesrio2002ttnfa03/Bordessoules-Bret/Site/MPLS.htm
[2.4]: https://www.frameip.com/mpls-cisco/
[2.5]: http://www-igm.univ-mlv.fr/~dr/XPOSE2007/ykarkab_MPLS/
[2.6]: http://www.bonnefoy.eu/25_OSPF
[2.7]: https://www.memoireonline.com/09/13/7405/m_Conception-et-
deploiementde%20-la-technologie-MPLS-dans-un-reseau-metropolitain11.html
[2.8]: http://www-igm.univ-mlv.fr/~dr/XPOSE2007/ykarkab_MPLS/
[3.1] : BRITE: Universal Topology Generation from a User’s Perspective Alberto Medina,
Anukool Lakhina, Ibrahim Matta, John Byers
64