Vous êtes sur la page 1sur 33

Table des matires

1 Introduction 2 Dnitions 2.1 Routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Routeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Table de routage . . . . . . . . . . . . . . . . . . . . . . . . . 3 Algorithmes de routage 3.1 Routage statique . . . . . . . 3.2 Routage vecteur de distance 3.3 Routage tats de lien . . . . 3.3.1 Rencontre des voisins . 3.3.2 Mesure des cots . . . 3.3.3 Construction du LSP . 3.3.4 Distribution du LSP . 3.4 Hybride . . . . . . . . . . . . 3.5 Routage Hirarchique . . . . . 2 2 2 2 2 4 4 4 9 9 10 10 11 13 14 15 15 15 18 21 24 26 26 28 30 33 33 33

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

4 Protocoles de routage sur Internet 4.1 Protocoles de routage intra-domaine . 4.1.1 RIP . . . . . . . . . . . . . . 4.1.2 OSPF . . . . . . . . . . . . . 4.1.3 IGRP . . . . . . . . . . . . . 4.2 Protocoles de routage inter-domaine :

. . . . . . . . . . . . BGP

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

5 Routage point point sur Internet 5.1 Propagation dun datagramme de la source 5.2 Format dun datagramme . . . . . . . . . 5.3 Fragmentation et Reassemblage dun IP . 5.4 ICMP- . . . . . . . . . . . . . . . . . . . . 6 Application 7 Conclusion

. . .

la destination . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

1 2
2.1

Introduction Dnitions
Routage

Le routage est une mthode dacheminement des informations la bonne destination travers un rseau de connexion donn. Le problme de routage consiste dterminer un acheminement optimal des paquets travers le rseau au sens dun certain critre de performance. Le problme consiste trouver linvestissement de moindre cot en capacits nominales et de rserves qui assure le routage du trac nominal et garantit sa suivie en cas de nimporte quelle panne darc ou de nud. Les quipements utiliss dans un routage sont appels des routeurs.

2.2

Routeur

Un routeur est un quipement dinterconnexion de rseaux informatique permettant dassurer le routage des paquets entre deux ou plusieurs rseaux an de dterminer le chemin quun paquet de donnes va emprunter. Les premiers routeurs taient de simples ordinateurs ayant plusieurs cartes rseau, dont chacune tait relie un rseau dirent. Les routeurs actuels sont pour la plupart des matriels ddis spcialement la tche de routage et pour y parvenir, les routeurs doivent tablir une table de donnes relative la conguration du rseau : cest la table de routage.

2.3

Table de routage

Une table de routage contient souvent les informations suivantes : La 1re colonne est ladresse du rseau de destination, La 2me colonne est le masque utilis par le rseau de destination, La 3me colonne est ladresse de la passerelle utiliser pour atteindre ce rseau, La 4me colonne donne ladresse de linterface sortant utiliser pour atteindre cette passerelle, La 5me colonne donne le mtrique ou cot associ cette route. La commande netstat rn permet dobtenir la table de routage de votre machine. La commande route print permet dobtenir les mmes informations. Ces direntes tables de routages permettront aux quipements du rseau grce divers algorithmes de routage de faire des changes de paquets. Les 2

Figure 1 Exemple de routeur

Figure 2 Table de routage du routeur 1

Figure 3 Table de routage du routeur 2

Figure 4 Table de routage du PC 1

Figure 5 Table de routage du PC 2 contenus de ces tables de routages sditeront de faon manuelle ou dynamique avec lexpansion du rseau selon le type dalgorithme de routage 3

Figure 6 Table de routage du PC 3 utilis.

Algorithmes de routage

Du fait de la varit des objectifs qui sont viss, il existe plusieurs types dalgorithmes de routage. Ceux-ci peuvent correspondre des politiques dterministes ou adaptatives selon quelles sadaptent ou non aux variations du trac et de topologie du rseau. On distingue ainsi des algorithmes de routage statiques et des algorithmes dynamiques.

3.1

Routage statique

Lalgorithme routage statique est le plus simple, toutes les routes sont dcrites de manire statique dans la conguration de lquipement. A chaque modication topologique du rseau, ces informations seront rdites manuellement. Cest lalgorithme le moins adaptatif et pour cause, tout est statique.

3.2

Routage vecteur de distance

Pour les routages vecteur de distance chaque routeur maintient une table indexe par, et contenant une entre pour chaque routeur du sousrseau. Chaque entre contient deux parties : la liaison (voisin) optimale vers la destination et le temps ou la distance cette destination. La mesure utilise peut tre le nombre de sauts (nombre de routeurs), le temps , le nombre total de paquets en le dattente sur le chemin ...Un routeur calcule ses distances en utilisant les distances calcules par ses voisins. Le processus de calcul des distances se prsente comme suit. Chaque routeur : 1. Est congur avec un ID unique 2. Est aussi congur avec un nombre indiquant le cot de chaque lien (soit une valeur xe comme 1,soit par un calcul). 4

3. Commence avec une valeur de 0 pour lui-mme et une valeur "innie" pour toutes les autres destinations 4. Transmet son vecteur de distance tous ses voisins chaque fois que linformation change ( aussi bien quand un nouveau voisin apparat que priodiquement). 5. Sauvegarde le vecteur de distance le plus rcent reu de ses voisins 6. Calcule son vecteur de distance en minimisant le cot vers chaque destination.Ce calcul se fait par examen du cot (minimal) la destination transmise par chaque voisin et par ajout du cot ( prcongur) de ce lien. 7. Les vnements suivants entranent la mise jour du vecteur de distance (a) La rception dun voisin dun vecteur de distance dirent du prcdent (b) La dcouverte quun lien est dfectueux.Dans ce cas on recalcule le vecteur de distance sans tenir compte de ce voisin.

Figure 7 (a) Sous-Rseau (b) Vecteur de A,I,H,K ;nouvelle table pour J Exemple Considrons comment J calcule sa route vers G.Il sait quil peut aller A en 8ms, et A dit quil peut aller G en 18ms,donc J compte un dlai 5

de 26ms vers G en passant par A.Il fait de mme pour la route vers G en passant par I,H et K comme 41 (31+10), 18 (6+12) et 37 (31+6) ms respectivement.La plus petite de ces valeurs est 18 donc J cre une entre dans sa table indiquant que la distance vers G est de 18 et que la route passe par H.La mme mthode est utilise pour calculer la distance vers toutes les autres destinations.La nouvelle table de routage pour J est montre dans la dernire colonne de la gure. Le problme du comptage linnie

Lalgorithme de vecteur de distance fonctionne en thorie mais a un srieux inconvenient en pratique : bien quil converge vers la bonne solution il peut le faire trs lentement.En particulier il ragit rapidement aux bonnes nouvelles mais lentement aux mauvaises.

Figure 8 Problme du comptage linnie Considrons un sous-rseau 5 noeuds (linaire) de la gure o la mesure est le nombre de sauts.Supposons quinitialement A est dfectueux et que tous les routeurs sont au courant.En dautres mots ils ont tous une entre innie vers A. Quand A fonctionne nouveau les autres routeurs lapprennent grce aux changes.Par simplicit on suppose que les routeurs initient lchange priodiquement et simultanment.Lors de la premire change, B apprend que son voisin un dlai de zro vers A.B cre une entre dans sa table indiquant que A est un saut vers sa gauche.Tous les autres routeurs pensent toujours que A est dfectueux.A ce stade la table de A est montre sur la deuxime ligne de la gure (a).A la prochane change C apprend que B est 6

un saut de A et met jour sa table.Mais D et E ne lapprendrons que plus tard.On voit clairement que la bonne nouvelle se propage un rythme de un saut par change.Ainsi dans un rseau de N noeuds tous les noeuds seront informs aprs N changes. Considrons maintenant le cas de la gure (b) o tous les routeurs fonctionnent initialement.Les routeurs B,C,D et E ont une distance vers A de 1,2,3 et 4 respectivement.Ensuite A tombe en panne (ou bien la liaison entre A et B est coupe). A la premire change B ne reoit rien de A.Heureusement C indique quil a une route vers A de 2 sauts.Mais B ne sait pas que le chemin de C passe par B lui-mme ( C pouvant avoir plusieurs chemins de longueur 2 vers A).Consquence B pense pouvoir atteindre A par C avec une distance de 3 sauts.D et E ne mettent pas jour leur entre la premire change. A la seconde change C remarque que tous ses voisins disent avoir une distance de 3 vers A.Il choisit lun au hasard et change sa distance 4 ( troisime ligne de la gure (b) ).Et Ainsi de suite comme le montre la gure. On voit donc clairement pourquoi les mauvaises nouvelles se propagent lentement : aucun routeur na une valeur suprieur dau moins 1 au minimum de ses voisins.Progressivement tous les routeurs augmentent leur valeur vers linnie.Mais le nombre dchange dpend de la valeur de innie.Pour cette raison il est conseill de mettre innie comme le plus long chemin + 1. Cependant si la mesure est le temps il ny a pas limite suprieure dnie et une trs grande valeur est ncessaire pour empcher un chemin de dlai long dtre trait comme en panne.Il sagit du problme du comptage linnie Quelques solutions ont t proposes pour rmdier ce problme. Hold-Down Lide de cette technique est que si le chemin vers D tombe est dfectueux on attend pendant un moment avant de mettre jour.Cependant cette technique ralentit la convergence et ne prvient pas le problme du comptage linnie. Division de lhorizon (Split Horizon) 7

La rgle est que si R envoie du trac D en passant par N,alors R indique N que sa distance D est innie.Puisque R envoie du trac D par N la distance relle de R N importe peu pour N.La distance de N D ne dpend pas de celle de R D. Dans notre exemple simple de la gure cette technique empchera le comptage linnie puisque C aurait report B que la distance de C A est innie. Quand A est dfectueux B na plus dautres chemins possibles A et conclut que A est injoignable.Quand B informe C que A est injoignable C sait que A est injoignable et ainsi de suite. Cependant la technique ne marche pas dans le cas de la gure

Figure 9 Comptage linni avec split horizon Quand la liaison vers D se casse R1 conclut que D est injoignable puisque R2 et R3 avaient tous deux rapports R1 que D est injoignable ( rgle du split horizon).Quand R2 reoit le rapport de R1 que D est injoignable R2 conclut que le meilleur chemin vers D passe par R3.R2 conclut quil est une distance 3 de D, rapporte R3 que D est injoignable ( rgle du split horizon) et rapporte R1 que D est joignable une distance de 3.R1 pense maintenant que D est joignable par R2 un cot de 4.Et le problme du comptage linnie persiste. La rgle des deux mesures On calcule deux distances pour chaque destination : une base sur les sauts et lautre bas sur le "cot" (fonction).La fonction de cot est utilise pour calculer le meilleur chemin.Le saut est utilis pour dterminer les destinations injoignables ( ce qui permet de limiter lin la longueur du rseau +1).Cette technique est utilis par la premire version de RIP.

Mises jour dclenchs (Triggered updates) La premire version de RIP envoyait les vecteurs de distance(change) de faon priodique. Ce qui ralentissait la convergence.Dans cette technique on procde lchange ds quun vnement survient. Poison Reverse Cette technique indique une valeur innie pour explicitement rapporter que D est injoignable au lieu de simplement ne pas mentionner D.Elle est souvent utilise en conjonction avec split horizon. Utilisation du routage vecteur de distance Ce type de routage est trs simple, facile congurer ,maintenir et utiliser. Il est donc trs pratique pour de petits rseaux o la performance nest pas critique.

3.3

Routage tats de lien

Lide sous-jacente du routage tats de lien est simple.Chaque routeur doit faire ce qui suit : 1. Rencontrer ses voisins et connatre leurs addresses. 2. Mesurer le cot vers chacun de ses voisins 3. Construire un paquet appel paquet tat de lien (LSP) contenant une liste des noms et des cots chacun de ses voisins 4. Envoyer le LSP tous les autres routeurs et enregistrer le LSP le plus rcent de chacun des autres routeurs 5. Construire le plus court chemin vers tous les autres routeurs 3.3.1 Rencontre des voisins

Dans une liaison point point les voisins peuvent se rencontrer en envoyant un paquet spcial HELLO les identiant. Dans un rseau LAN la rencontre est souvent faite par une transmission priodique du mme type dun paquet spcial un groupe dadresses prdnies. Parfois le groupe dadresses est congur manuellement.

3.3.2

Mesure des cots

Le moyen le plus direct de mesurer les cots est denvoyer sur la ligne un paquet spcial ECHO que lautre routeur doit renvoyer immdiatement.En mesurant le temps et en le divisant par deux le routeur expditeur peut avoir une approximation du dlai.Pour de meilleurs rsultats on peut eectuer ce test plusieurs fois et prendre la moyenne. Un problme intressant est de savoir sil faut tenir compte ou pas de la charge.Pour en tenir compte il sut de dmarrer le chrono lorsque le paquet est en n de la le dattente.Pour lignorer on attend que le paquet atteigne le dbut de la le dattente. Inclure la charge signie que lorsquun routeur le choix entre deux lignes de bande passante gale il choisit la moins charge.Ce qui pourra donner de meilleure performance. Cependant il y a des arguments contre ce choix.On peut se retrouver dans un cas o les routeurs oscilleront alternativement entre deux choix ( surchageant lun avant de se rabattre sur le second et ainsi de suite).Pour viter cette oscillation on peut distribuer la charge sur plusieurs lignes en introduisant une fraction de charge sur chaque ligne. 3.3.3 Construction du LSP

Figure 10 Construction du LSP La contruction de ce paquet est facile une fois quon connat ses voisins et le cot.Le paquet peut commencer par le nom de lexpditeur suivi par un nombre de squence et une ge ( dcrire plus loin) et dune liste des voisins.Pour chaque voisin on donne son cot.

10

Le 3.3.4

LSP est gnr priodiquement mais aussi certains vnements : Un nouveau voisin vient Le cot vers un voisin existant a chang La liaison vers un voisin est rompue. Distribution du LSP

Il sagit de la partie la plus dicile de lalgorithme.Si elle est mal faite les consquences suivantes peuvent apparatre : Les routeurs auronts des LSP dirents.Ce qui signie quils calculeront les routes en se basant sur des informations direntes.Beaucoup de liaisons peuvent devenir non fonctionnelles cause de a. La distribution des LSP peut devenir cancreuse : le nombre de LSP se multiplie rapidement jusqu ce que toutes les ressources du rseau soient utilises uniquement sur les LSP. Dans un premier temps on dcrira un algorithme de base avant de laner. Lide fondamentale ici est dutiliser linondation ou ooding pour distribuer les LSP.Chaque paquet contient un nombre de squence qui est incrment chaque fois quun nouveau LSP est envoy.Les routeurs enregistrent chaque pair( routeur source , squence) qui leur est envoye.Quand un nouveau LSP arrive on le compare aux LSP dj reu.Sil est nouveau il est transmis toutes les liaisons ( les voisins) sauf celle qui la envoy.Si cest un double on le rejte.Si un paquet avec un nombre de squence plus petit que celui que le routeur a dj reu arrive,il est rejet comme tant obsolte. Cet algorithme a quelques problmes.Si le nombre de squence atteint son maximum et quon le rinitialise alors il y aura confusion.La solution consiste utiliser un trs grand nombre, un nombre 32 bits par exemple.Avec un LSP par seconde il faudra 137 ans pour atteindre le maximum. Si un routeur tombe en panne il ne connatra plus sa squence.Si il dmarre nouveau avec 0 comme squence son LSP sera rejet. De plus si une squence est corrompue et 65 540 est reue au lieu de 4 ( erreur dun bit) les paquets de 5 65 540 seront rejets. La solution tous ces problmes consiste introduire lge de chaque paquet et de le dcrmenter une fois par seconde.Quand lge atteint 0 les informations provenant de ce routeur sont abandonnes.Lge du LSP est 11

aussi dcrmente par un routeur avant quil ne lenvoie pour sassurer quun LSP ne soit perdu et continue vivre pendant une priode innie (un paquet dont lge atteint 0 est rejet). Quelques amliorations ont t apportes au modle prcdent pour le rendre plus robuste. Un LSP contient les lments suivants : Une source Un nombre de squence Lge La liste des voisins Le nombre de squence est de dimension linaire.Il dbute zro et quand il atteint son maximum plus aucun LSP provenant de la source ne sera accept.Ce nombre doit tre assez grand ( 32 bits) de telle sorte quil natteindra jamais son maximum sauf dans le cas dun mauvais fonctionnement ( mauvais calcul de la squence). Lge est initialis une valeur ( xe) par le routeur qui gnre le LSP. Cette valeur doit tre de lordre dune heure. Chaque routeur qui reoit un LSP doit le dcrmenter dau moins 1 ( avant de lenvoyer) et doit continuer de le dcrmenter pendant que le LSP est en mmoire. Quand un routeur reoit un LSP et dtermine quil doit lenvoyer certaines de ses liaisons il ne doit pas immdiatement lenvoyer dans la le dattente. Il doit pendant un temps xe tre conserv dans la mmoire ( des LSP mettre dans la le dattente) et assign un bit ( un ag) chaque liaison. Si avant lenvoie un autre LSP ( de la mme source) arrive avec le mme nombre de squence on change les ag de faon ne plus lenvoyer au routeur expditeur. Si par contre le nombre de squence est plus grand on remplace lancien LSP (il ne sera donc jamais transmis). De plus on doit envoyer pour chaque LSP un accus de rception.I nest pas ncessaire de gnrer laccus de rception immdiatement mais un ag doit indiquer quon doit envoyer un accus une liaison.Ainsi le LSP en mmoire du routeur R 2k ags qui lui sont associs avec k le nombre de liaisons connectes R.La moiti des ags indique sil faut envoyer le LSP ces liaisons ou pas alors que lautre moiti indique sil faut envoyer des accuss de rception. Quand la bande passante devient disponible on scanne

12

les ags et on envoie le LSP aux liaisons concernes ou on envoie laccus aux autres liaisons.

Figure 11 Buer des paqutets du routeur B Si on reoit initialement un LSP en provenance du lien j on lenregistre et on met 1 tous les ags denvoie sauf celui de j et tous les ags daccus sont mis zro sauf celui de j ( qui est mis 1).Si on reoit un double ( du LSP) en provenance dune liaison i on met 0 le ag denvoie i et on met 1 le ag daccus i.Si par contre on reoit un accus en provenance dune liaison i on met zro les ags i denvoie et daccus. ( voir gure) On sassure aussi que tous les routeurs

3.4

Hybride

La stratgie dutiliser les deux algorithmes (DV et LS) a t implement dans ARPANET quand le systme devrait passer de lalgorithme de vecteur distance celui dtat de liens.Le premier code dARPANET excutait seulement vecteur distance.Une version intermdiaire a t implmente et excutait les deux algorithmes.Cette version distribuait aussi bien des vecteurs de distance que des LSPs.Les deux algorithmes ninteragissent pas dans le sens o lalgorithme tat de lien tablissait ses routes en se basant sur les LSPs. Sil y a un seul routeur R qui excute la version intermdiaire alors que tous les autres routeurs excutent le code original, lalgorithme tat de lien dans R conclura que le rseau entier est constitu de R et de ses noeuds. De faon similaire le calcul des vecteurs de distance se basait uniquement sur les vecteurs de distance reus.La version intermdiaire du code contenait aussi un switch pouvant tre congur par administration rseau spciant si le choix des routes devrait se bas sur la base de donne des vecteurs de distance ou des tats de lien. 13

Une troisime version du code excutait seulement lalgorithme tat de lien. Au dbut le rseau tait constitu de routeurs excutant seulement le code original.Ensuite, un un les routeurs ont t modis pour excuter la version intermdiaire du code.Cest seulement aprs que tous les routeurs aient t modis pour tourner le code intermdiaire ( de telle sorte la base de donne des LSPs calculs tait correct) que ctait possible de basculer sur tat de lien grce au switch. Pendant que les routeurs excutaient le code intermdiaire mais nenvoyaient que la base de donnes des vecteurs de distance lexactitude de lalgorithme tat de lien tait vrie par comparaison des bases de donnes envoyes. Quand tous les routeurs taient basculs sur tat de lien il ntait plus ncessaire de tourner les deux alogrithmes simultanment alors la troisime version du code pouvait tre charge dans les routeurs un par un. Linconvenient de cette approche est d au fait que la version intermdiaire multipliait la mmoire,la bande passante et le temps de calcul par deux.

3.5

Routage Hirarchique

Dans les sections prcdentes nous voyons un rseau comme tant simplement un ensemble de routeurs interconnects.Chaque routeur excute le mme algorithme pour calculer les routes du rseau.En pratique ce modle est un peu trop simpliste cause dau moins deux raisons principales : Echelle Au fr et mesure que le nombre de routeurs augmente, la surcharge due au calcul,au stockage et la transmission des tables de routage devient prohibitive.LInternet consiste en des millions de routeurs interconnects et de plus de 50 millions dhtes.Enregistrez les tables de routage de chacun des htes ncessiterait une quantit norme de mmoire.La surcharge ncessaire pour mettre jour ces informations serait telle quil ny aura plus de bande passante pour la transmission des donnes. Autonomie administrative Idallement une organisation doit pouvoir administrer son rseau comme il le veut ( utiliser lalgorithme de routage de son choix ou "cacher" la structure interne de son rseau) tout en tant capable de se connecter dautres rseaux. 14

Figure 12 Routage hirarchique Ces deux problmes peuvent tre rsolus en groupant les routeurs en "rgions" ou "systmes autonomes" ( ASs).Les routeurs dans la mme rgion excuteront le mme algorithme (LS ou DV).Les algorithmes de routage sexcutant au sein dun mme AS sont appels protocole de routage intra-autonome.Il sera ncessaire de connecter les ASs entre eux et ainsi un ou plusieurs routeurs auront la tche supplmentaire dtre responsable de router les paquets aux destinations en dehors de lAS.On appelle ces routeurs des passerelles (gateway).Pour que les passerelles routent les paquets dun AS un autre ( avec possiblit de passer par dautres passerelles avant datteindre la destination) elles doivent savoir comment router entre ellesmmes.Lalgorithme utilis par les passerelles pour router entre les dirents AS est connu sous le nom de protocole de routage inter-autonome(interautonomous system routing protocol)

4
4.1
4.1.1

Protocoles de routage sur Internet


Protocoles de routage intra-domaine
RIP

Le protocole de routage dinformation (RIP) est lun des premiers protocoles utilis comme protocole intra-domaine dinternet et est toujours largement utilis aujourdhui. Il tient son nom et ses origines de larchitecture rseau de lentreprise Xerox (XNS). Lutilisation rpandue RIP est due large15

Figure 13 Portion dun systme autonome ment lapparition en 1982 dune version dUNIX supportant le TCP/IP, une distribution de Berkeley (BSD). RIP est un protocole bas sur lalgorithme de routage vecteur distance (avec les amliorations possibles). La version de RIP spcie dans RFC 1058 utilise le nombre de sauts comme mtrique. Chaque liaison a comme mtrique la valeur 1, et la limite maximale de la mtrique est xe 15. Cette valeur limite lutilisation de RIP aux ASs dcrits prcdemment ne comptant pas plus de 16 sauts. Rappelez vous que dans lalgorithme vecteur de distance de routage, les routeurs voisins schangent des informations de routages les uns avec les autres. Dans RIP, les tables de routage sont changes toutes les 30 secondes. Le systme de message-rponse de RIP lui permet de faire ces changes. Le message de chaque hte contient jusqu 25 entres de sa table de routage vers ses destinations. Ces message contenant les tables de routage sont aussi appels annonces (advertisements). Pour comprendre le fonctionnement des annonces RIP, considrons la portion de domaine AS de la gure suivante, les rectangles reprsentant les routeurs et les lignes les dirents rseaux interconnects. Maintenant supposons que la table de routage de D est celle montre la gure suivante. Noter que cette table comporte trois colonnes. La premire colonne renferme le rseau destinataire, la deuxime indique le routeur suivant sur le plus court chemin et la troisime le nombre de sauts (nombre de rseaux traverser, y compris le rseau destinataire joindre). Pour cet exemple, la table indique que pour envoyer un datagramme du routeur D la destination 1, le datagramme devrait tre envoy premirement au routeur voisin A ; plus encore, la table indique que cette destination 1 est 2 sauts sur le chemin le plus court. La table indique aussi que le rseau 30 est 7 sauts de D en passant par le routeur B. En principe, la table de routage devrait 16

avoir une ligne pour chaque rseau du domaine AS. Elle devrait aussi avoir au moins une ligne pour les rseaux extrieurs au domaine AS. La table de la gure suivante et les autres qui la suivent sont juste des tables partielles.

Figure 14 Table de routage du routeur D

Supposons prsent que 30 secondes plus tard, le routeur D reoit de A lannonce suivante de la gure ci-dessous. Noter que cette annonce nest rien dautre que le contenu de la table de routage du routeur A. Cette table de routage dit en particulier que le rseau 30 est juste 4 sauts de A (en passant par C)

Figure 15 Annonce de A Le routeur D reoit cette annonce de A, la confronte avec sa table de routage et apprend en particulier quil y maintenant une route passant par A au rseau 30 plus courte que celle qui passe par B. Par consquent, D met jour sa table de routage (principe du plus court chemin). Vous en doutez quun chemin plus deviennent encore plus court. Ceci parce que lalgorithme vecteur de distance est encore dans le processus de convergence, du peut tre au fait que de nouvelles liaisons ou routeurs ont t ajouts, ce qui a provoqu le changement des plus courts chemins des tables de routage des routeurs des rseaux. Parlant des proprits gnrales de RIP, si un routeur ne reoit pas dinformation dun de ses vois au moins une fois toutes les 180 secondes, le voisin en 17

Figure 16 Table de routage de D aprs rception de lannonce de A question est considr comme injoignable cest--dire soit le voisin est tomb en panne ou la liaison est coupe. Lorsque ceci arrive, RIP modie sa table de routage locale et ensuite la propage ses voisins (ceux qui sont encore joignables) par annonces. Un routeur peut aussi demander des informations propos du cout de lun de ses voisins vers une destination donne en se servant des requtes RIP (RIP request message). Les routeurs senvoient des requtes et rponses au moyen dUDP en utilisant le port 520. Le paquet est transport entre les routeurs sous une forme standard de paquet IP. Un processus appel routed excute le protocole RIP sous les systmes UNIX. En tapant la commande netstat -rn on obtient la table de routage dune machine excutant un systme UNIX ou Windows . . . 4.1.2 OSPF

Comme RIP, OSPF ( Open Shortest Path First ) est utilise pour le routage intra-domaine. Le mot Open indique que le protocole de routage est libre ( contrairement au protocole CISCO IGRP). La version la plus rcente est la version 2 dnie dans le RFC 2328. OSPF est un protocole tat de liens qui utilise le principe du ooding et lalgorithme de Dijkstra pour calculer le plus court chemin. Avec OSPF un routeur construit la topologie complte ( graphe orient ) du systme autonome. OSPF vient rsoudre un certain nombre de problmes : Scurit Toutes les changes entre routeurs sont authenties. Ce qui signie que seuls les routeurs de conance peuvent participer aux changes et ceci an dempcher les intrus ( ou les tudiants en rseaux de prendre leur nouveau savoir comme un jeu) dinjecter des informations incorrectes dans les tables de routage. Chemin multiple de mme cots Quand plusieurs chemins une destination ont le mme cot OSPF permet de les utiliser ( un seul chemin ne doit pas tre choisi pour transporter tout le trac quand plusieurs chemins gaux existent)

18

Figure 17 Structure hirarchique de OSPF avec 4 rgions Direntes mtriques pour dirents trac TOS (type of service) OSPF permet chaque liaison davoir dirents cots pour dirents types de service des paquets IP. Ainsi un satellite grande bande passante peut tre congur pour avoir un cot bas pour les tracs non critiques mais avec un cot lev pour les trac critiques. Support du routage unicast ou multicast OSPF supporte trois types de connections : 1. Liaison point point entre exactement deux routeurs 2. Rseaux multiaccs avec diusion ( la plupart des LAN) 3. Rseaux multiaccs sans diusion ( la plupart des WAN ) Un rseau multiaccs est un rseau qui peut avoir plusieurs routeurs chacun deux communiquant directement avec les autres.

19

OSPF opre en reprsentant les rseaux, routeurs et liaisons par un graphe orient o chaque arc est assign un cot. Il calcule ensuite le plus court chemin ( Dijkstra ). Une connection srie entre deux routeurs est reprsente par une paire darcs une dans chaque direction. Leurs poids peut tre dirent. Un rseau multiaccs est reprsent par un noeud pour le rseau lui-mme plus un noeud pour chaque routeur. Les arcs du noeud rseau au noeuds routeurs ont un poids de 0 et sont donc ignors du graphe. La plupart des systmes autonomes ( AS ) de lInternet sont trs larges et dicile administrer. OSPF les divise en rgion numrote o une rgion est un rseau ou une squence de rseaux continus. Les rgions ne sentrecroisent pas mais nont pas besoin dtre exhaustive ( soit certains routeurs peuvent nappartenir aucune rgion). Une rgion est une gnralisation des sousrseaux. En dehors de la rgion sa topologie et ses dtails ne sont pas visibles. Chaque AS a une rgion backbone appel rgion 0. Toutes les rgions sont connectes ( par des tunnels) au backbone de telle sorte quil est possible daller de nimporte quelle rgion de lAS une autre en passant par le backbone. Un tunnel est reprsent sur le graphe par un arc avec un cot. Un routeur connect deux ou plusieurs rgions fait partie du backbone. Comme avec les autres rgions la topologie du backbone nest pas visible lextrieur. A lintrieur dune rgion, chaque routeur a la mme base de donne et tourne le mme alogrithme du plus court chemin. Sa tche principale est de calculer le plus court chemin de lui-mme tous les autres routeurs de la rgion, y compris le routeur connect au backbone ( il doit y en avoir au moins un). Un routeur qui connecte deux rgions a besoin de la base de donnes des deux rgions et doit excuter le plus court chemin pour chacun deux sparment. Pendant un fonctionnement normal trois types de routes sont ncessaires : intra-rgion, inter-rgion et inter-AS. Les routes intra-rgions sont les plus faciles puisque le routeur source connat dj le plus court chemin au routeur de destination. Le routage inter-rgion procde toujours en trois tapes : aller de la source au backbone ; aller du backbone la rgion de destination ; aller la destination. Cet algorithme force une conguration en toile avec le backbone tant le hub et les autres rgions tant les htes. Les paquets sont routs de la source la destination telle quelle. Ils ne sont pas encapsuls sauf sils vont vers une rgion o la seule connection au backbone est un tunnel. 20

OSPF distingue 4 classes de routeurs : 1. Les routeurs internes sont entirement au sein dune rgion 2. Les routeurs sur la frontire dune rgion connectent deux ou plusieurs rgions 3. Les routeurs backbone sont sur le backbone 4. Les routeurs frontire de lAS communiquent avec les autres ASes Ces classes peuvent sentremles. Par exemple tous les routeurs de la frontire dune rgion font automatiquement partie du backbone. De plus un routeur du backbone mais qui nest dans aucune rgion est aussi un routeur interne. Quand un routeur dmarre, il envoie des messages HELLO toutes ses liaisons point-to-point et les diuse sur les LANs au groupe constitu de tous les autres routeurs. Sur les WANs il a besoin dune information de conguration pour savoir qui contacter. Selon les rponses chaque routeur apprend qui sont ses voisins. Les routeurs sur le mme LAN sont tous voisins. OSPF fonctionne en changeant des informations entre routeurs adjacents, qui est dirent de routeurs voisins. En particulier il est inecace que chaque routeur sur un LAN communique avec tous les autres routeurs du LAN. Pour viter cette situation, un routeur est lu comme tant le routeur dsign. Il est dit adjacent tous les autres routeurs sur le LAN et change des informations avec eux. Les routeurs voisins qui ne sont pas adjacents nchangent pas entre eux.Un routeur dsign de sauvegarde est toujours maintenu pour faciliter la transition au cas o le routeur dsign principal crash ou doit tre remplac immdiatement. Pendant son fonctionnement normal chaque routeur inonde priodiquement des messages LINK STATE UPDATE chacun de ses routeurs adjacents. Ce message donne ltat et fournit le cot utilis dans la base de donne de la topologie. On envoie un accus de rception pour chaque message. Chaque message a un nombre de squence pour quun routeur sache si un LINK STATE UPDATE est plus vieux ou rcent que celui quil a actuellement. Les routeurs envoient aussi ces messages quand une liaison tombe en panne, est tablie ou quand son cot change. 4.1.3 IGRP

IGRP est un algorithme de routage propritaire dvelopp par Cisco au milieu des annes 80 en tant que successeur de RIP. IGRP est bas sur le 21

vecteur distance. Plusieurs cots de mtriques (dlai, largeur de bande, abilit, charge, saut, taille de paquet supportable MTU) peuvent tre utiliss dans la prise des dcisions avec possibilit pour ladministrateur rseau de xer le poids associ chacun de ces mtriques. Cette possibilit dutiliser les couts dnis par ladministrateur dans le choix des routes constitue une dirence norme par rapport RIP. Nous verrons par la suite que cest la politique adopte dans les protocoles inter-domaine comme BGP qui permet galement la ladministration des routes choisir au cours du routage. Une autre importante dirence par rapport au RIP est lutilisation dun protocole de transport able pour communiquer les informations de routage, lutilisation des messages de mise jour qui sont envoys juste quand les cots des tables de routages changent (au lieu de le faire priodiquement), et aussi lutilisation dun algorithme de routage de mise jour diuses pour vite construire les boucles de chemins. Les nuds IGRP schangent des informations relatives aux six mtriques durant leur mise jour, mais ce ne sont pas les six mtriques qui sont utiliss pour calculer les routes. En eet, seules la largeur de bande, le dlai, la charge et la abilit sont utiliss pour calculer les routes. Les deux autres savoir comptage de sauts et le MTU aident faciliter le calcul des routes dautres faons. Comptage du nombre de sauts IGRP utilise le comptage de sauts comme moyen pour connaitre quelles distance se trouvent ses destinataires de lui. Chaque routeur sur un chemin compte pour 1 dans le comptage de sauts. Contrairement RIP, IGRP ne xe pas la limite des sauts 16. La valeur par dfaut utilise par IGRP est de 100. Cette valeur peut bien videmment augmenter pouvant mme atteindre 255. Ce qui permet lutilisation dIGRP dans de rseaux plus large contrairement RIP. Il est important de noter que le nombre de sauts nentre pas dans le calcul de chemin le plus cours ; Il permet juste IGRP dviter le comptage linni. Les routes dont le nombre de sauts dpasse la valeur limite xe sont considres comme invalides. Les nuds dont les chemins daccs sont dclars invalides ne sont plus adresss pendants les changes dannonces de mise jour. Cette dirence fondamentale dans lutilisation du nombre de sauts montre bien combien les deux protocoles RIP et IGRP sont dirents. MTU MTU identie la plus grande taille de datagramme quun routeur IGRP peut accepter. Cette valeur nest pas utilise pour calculer les routes. Les nuds IGRP se communiquent la taille maximale de datagramme MTU quils peuvent supporter. Les datagrammes dont la taille 22

excde cette limite devront tre fragments en de petits datagrammes satisfaisant la valeur du MTU support par le routeur IRGP suivant. Largeur de bande La largeur de bande identie la vitesse de transmission de lquipement connect sur le port dentre ou de sortie du routeur. Les valeurs de ce champ partent de 1200bps 10Gbps. La valeur par dfaut congure par CISCO (CISCO IOS) est de 1544Mbps supposant ainsi que la liaison est de type T1. Il est important de noter que bien que cette valeur par dfaut est de 1544Mbps de largeur de bande, les interfaces des dirents ports ne vont pas tenter dutiliser plus que ce qui nest disponible. Ces ports sont connects un dispositif (driver) tel que CSU/DSU. Ce sont ces dispositifs qui se chargent de mettre les donnes sur les quipements de transmission. En eet, lutilisation des valeurs de bandes par dfaut eectivement annulent leet de ces dernires dans le calcul des routes. Par consquent, il est prfrable de dnir la valeur actuellement disponible par port dinterface au lieu de juste accepter les valeurs par dfaut. En dnissant les valeurs en fonction de chaque lien, on augmente la performance de RIP calculer et choisir le chemin optimal. Pour le calcul des mtriques, IGRP observe les largeurs de bande de ces interfaces et choisit la plus petites parmi elles. Cette valeur est ensuite divise par 10000000 exprimant ainsi la valeur en kbps. Le dlai Le dlai mesure le temps ncessaire pour traverser une liaison dans le rseau, en supposant que le lien est libre. Le dlai assign une route dans un rseau IGRP est la somme des dlais attribu linterface sortante de chaque routeur sur la route. Plutt que de dvelopper un algorithme pour le calcul des dlais par route, IGRP utilise une valeur moyenne par technologie de transmission. Une liaison de type Ethernet 10Mbs a par exemple 10 fois le dlai dune liaison de type Ethernet 100Mbps. IGRP remplit automatiquement ces dlais de mtrique pour chaque quipement de transmission selon sa technologie et sa largeur de bande. Les administrateurs peuvent aussi changer ces valeurs tout en restant dans les marges acceptables pour reter certaines conditions particulires dans le rseau. Charge Le facteur charge mesure la largeur de bande eectivement disponible sur une liaison. Plus une liaison est charge, plus il faudra de temps pour la traverser. La mtrique de IGRP concernant la charge permet de faire des calculs de route de faon optimal selon le degr dutilisation dune liaison. Les valeurs de charge possibles sont comprises entre 1 et 255 et peuvent tre xes par ladministrateur rseau IGRP. Fiabilit Une autre manire pour ladministrateur dun rseau IGRP din23

uencer sur les rsultats de des calculs de route est lutilisation de la mtrique de abilit. Cette mtrique comme celle de la charge peut prendre une valeur en 1 et 255

4.2

Protocoles de routage inter-domaine : BGP

Le protocole BGP ( Border Gateway Protocol ) version 4 spci dans le RFC 1771 1774 est le standard international de facto utilis pour le routage inter-domaine. BGP nutilise pas le cot des liaisons mais plutt propage les informations telles que la squence de ASs parcourir an datteindre un AS donn. BGP ne spcie pas aussi comment une route spcique vers une destination donne doit tre choisie parmi celle qui existe. Cette dcision est une dcision de principe et est laisse ladministrateur rseau. Des exemples de principes incluent des considrations politiques, de scurit ou conomique.On peut avoir : 1. Aucun trac travers certains ASs 2. Ne jamais mettre lIrac sur une route commenant par le Pentagone 3. Ne pas utiliser les Etats Unis pour aller de la Colombie lOntario 4. Transiter Albanie si et seulement sil ny a plus dautres alternatives pour la destination 5. les tracs commenant ou nissant IBM ne doivent pas passer par Microsoft Ces rgles sont congures manuellement ( ou grce un script). Elles ne font pas partie du protocole. Pour un routeur BGP le monde est constitu de ASs et des liaisons les connectant. Les voisins immdiats dans le graphe des ASs ( sil y a un lien entre un routeur de la frontire de chacun deux) sont appels peers. Les rseaux sont groups en 3 catgories : La premire stub networks qui a une seule connection aux graphes. Ces rseaux ne peuvent pas tre utiliss pour transiter le trac parce que il ny a aucune connection de lautre ct. Ensuite on a les rseaux multiconnects ( multiconnected networks). Ils peuvent tre utiliss sauf quils refusent. Enn on a les rseaux de transit ( transit networks ) comme les backbones qui acceptent grer les paquets dune tierce partie avec des restrictions ou contre de largent.

24

Le protocole BGP dnit 4 types de messages : OPEN Les peers communiquent en utilisant le protocol TCP et le numro de port 179. TCP assure une change able avec contrle de congestion entre les peers. Quand une passerelle BGP veut tablir un contact avec un BGP peer, un message OPEN lui est envoy. Cela permet au BGP de sidentier et de sauthentier. Si le message OPEN est accept par le peer celui-ci renvoie un message KEEPALIVE. UPDATE Ce message est utilis pour informer dun chemin vers une destination donne un peer. Il peut tre aussi utilise pour retirer des routes prcdemment utilises. KEEPALIVE Ce message est utilis pour informer que lexpditeur est fonctionnelle. NOTIFICATION Utilis pour informer quune erreur a t dtecte ou que lexpditeur sapprte fermer la session. BGP est fondamentallement un protocole vecteur de distance mais dire des protocoles comme RIP. Au lieu de juste maintenir le cot chaque destination cest le chemin qui est maintenu. Au lieu denvoyer priodiquement le cot vers chaque destination cest la route exacte qui est envoye. Pourquoi dirents protocoles pour le routage inter-domaine et intra-domaine La rponse cette question va au coeur de la dirence entre les buts du routage lintrieur dun AS et entre ASs. Rgles Entre ASs les rgles sont dominantes. Il peut tre important que le trac dbutant un AS donn ne passe pas par un autre AS... A lintrieur dun AS tout est sous le contrle dun mme administrateur et les rgles jouent un rle moins importantes dans le choix des routes Augmentation La capacit dun algorithme de routage et dune structure de donnes pouvant augmenter pour grer le routage vers un grand nombre de rseaux est une question critique pour le routage interdomaine. A lintrieur dun AS ce nest pas le cas. Si un domaine devient trop grand on peut toujours le diviser en deux AS et excuter le routage inter-domaine entre eux. Performance Puisquun routage inter-domaine est trs orient vers les rgles la qualit ( performance) des routes est souvent un problme secondaire ( une route plus longue satisfaisant les critres est choisie par 25

rapport une plus courte mais ne les satisfaisant pas). Ainsi entre AS il ny a pas la notion de cots associs aux routes. A lintrieur dun AS par contre le routage est beaucoup plus orient vers la performance.

5
5.1

Routage point point sur Internet


Propagation dun datagramme de la source la destination

Dans cette section, nous allons voir comment IP transporte les datagrammes dune source une destination au moyen des routeurs. A cet eet une vue dtaille dun datagramme IP est requise. La gure suivante nous donne un aperu sur la composition dun datagramme IP. Il faut noter que tous les datagrammes IP ont une zone dadresse source et une zone dadresse destination code chacune sur 32 bits. La zone de donne est typiquement remplie des segments TCP ou UDP.

Figure 18 Champ signicatif du format IP

Comment alors la couche rseau transporte les datagrammes crs dune source une destination ? Nous rpondrons cette question laide de la gure suivante.

Figure 19 Rseau Premirement supposons que le client A veuille envoyer un datagramme IP au client B. Le datagramme sera donc transport de A vers B. Au niveau 26

du client A, IP extrait dabord ladresse rseau (223.1.1) de ladresse destination de B (223.1.1.2). Il parcourt ensuite sa table de routage et trouve quil y une correspondance au niveau de la premire ligne et observe que le nombre de sauts la destination est 1. Ceci indique au client A que B est sur le mme rseau que lui. A passe alors le datagram IP sa couche liaison en lui indiquant que la destination est sur le mme rseau. Ainsi le protocole de la couche liaison a alors sous sa responsabilit de transporter le datagramme au client B.

Figure 20 Table de routage de A

Considrons prsent le cas intressant suivant : Le client A veut envoyer un datagramme IP au client E, dont ladresse IP est le 223.1.2.2 et qui est sur un autre rseau que A. A parcourt sa table de routage une fois encore, mais cette fois ci, trouve une correspondance la deuxime ligne. En trouvant que le nombre de sauts eectuer est 2, A conclut que la destination est sur un autre rseau que lui. Sa table de routage lui indique par ailleurs que pour envoyer un datagramme E, il devrait dabord lenvoyer au routeur ladresse 223.1.1.4. A envoie alors le datagramme la couche liaison et lui prcise quil doit lenvoyer ladresse 223.1.1.4. La couche liaison transporte le datagramme linterface 1 du routeur. Le datagramme est maintenant au niveau du routeur 1. Cest lui que revient alors la responsabilit de transporter le datagrams sa destination ultime. Le routeur extrait la portion rseau de ladresse destination du datagram soit 223.1.2., ensuite, parcourt sa table de routage (gure suivante). Le routeur trouve une correspondance la seconde ligne de sa table de routage. La table indique au routeur que le datagramme devrait tre envoy son interface 2 et que le nombre de sauts eectuer est 1, ce qui montre que la destination est directement relie linterface 2. Le routeur envoie le datagramme linterface 2. Une fois le datagramme linterface 2 du routeur, le routeur passe le datagramme au protocole de la couche liaison et lui indique que la destination est sur le mme rseau. La couche liaison a alors en charge la responsabilit de transporter le datagramme de linterface 2 du routeur au client E, lesquels sont tous deux attachs au mme rseau locale. 27

Figure 21 Table de routage du routeur Il faut noter que la 2ime colonne rserve aux routeurs suivants est entirement vide. Ceci est d au fait que les rseaux (223.1.1., 223.1.2., et 223.1.3.) sont directement relis au routeur, ainsi, il nest plus ncessaire de passer par dautres routeurs intermdiaires. Cependant, si le client A et le client E taient spars par 2 routeurs, alors la table de routage du premier routeur sur le chemin de A E indiquerait 2 comme sauts eectuer et spcierait ladresse IP du second routeur comme prochaine adresse sur le chemin. Le premier routeur aurait alors envoy le datagramme au second routeur en utilisant le protocole de la couche liaison qui connecte les deux routeurs. Le second routeur enverrait ensuite le datagramme sa destination en utilisant le protocole de la couche liaison qui connecte le second routeur la destination du client.

5.2

Format dun datagramme

Le format dun datagramme est montr sur la gure ci-contre : Les champs les plus importants dun datagramme IPv4 sont : Version Number Il sagit de 4 bits spciant la version du protocole du datagramme. En regardant ce champ le routeur peut dterminer comment interprter le reste du datagramme. Header Length Comme un datagramme IPv4 peut contenir un nombre variable doptions ces 4 bits sont ncessaires pour dterminer o commence les donnes. La plupart des datagrammes IP ne contiennent pas doptions ainsi le datagramme IP a 20 octets pour lentte. TOS Le Type de Service a t introduit pour permettre dirents types de datagrammes IP de se distinguer les uns des autres an quon puisse les traiter diremment. Quand le rseau sera charg par exemple il serait utile de distinguer les datagrammes ICMP des datagrammes transportant les donnes ( HTTP par exemple). Il serait aussi utile de distinguer les datagrammes temps-rels (utiliss dans les applications de 28

Figure 22 Format dun datagramme IPv4

29

telphonie sur IP) des datagrammes non temps-rels ( FTP par exemple). Rcemment Cisco a interprt les 3 premiers bits du ToS comme dnissant des niveaux direntiels de service pouvant tre fourni par le routeur. Les niveaux de service fournir tant dnis par ladministrateur rseau. Datagram Length Il sagit de la longueur total du datagramme ( entte plus donne) mesure en octets. Comme ce champ est sur 16 bits la taille thorique maximum dun datagramme IP est 65 535 octets. Cependant les datagrammes dpassent rarement les 1500 octets et sont mme souvent limits 576 octets. Identier, Flags, Fragmentation Oset Ces trois champs sont ncessaires pour la fragmentation de lIP ( voir plus bas pour plus de dtails).

5.3

Fragmentation et Reassemblage dun IP

Nous allons voir dans cette section comment les datagrammes IP sont fragments et rassembls pendant leur transport. Il faut noter que les protocoles de la couche liaison ne transportent pas tous la mme taille de paquets. Il y a des protocoles qui supporte de grande tailles alors que dautres ne peuvent supporter que de petite taille de paquet. Par exemple, les paquets dEthernet peuvent porter plus de 1500 octets alors que les paquets des rseaux plus larges ne peuvent pas porter plus de 576 octets. La taille maximale quun paquet de la couche liaison peut transporter est appele MTU (maximum transfer units). Comme chaque datagramme IP doit tre encapsul par les paquets de la couche liaison pour le transport dun routeur un routeur suivant, le MTU du protocole de liaison limite la longueur dun datagramme une valeur xe. Le fait davoir une limite xe nest pas encore un grand problme. Ce qui constitue rellement un problme est le fait que chacune des liaisons sur le chemin entre la source et la destination peut utiliser un protocole dirent de liaison ayant un MTU dirent de celui des autres. La solution ce problme est de fragmenter les donnes contenues dans le datagramme IP en deux ou plusieurs datagrammes IP plus petits et de les envoyer ensuite sur les liaisons de plus faible MTU. Chacun de ces petits datagrammes est connu sous le nom de fragment. Les fragments doivent tre rassembls avant quils natteignent la couche transport la destination. En eet TCP et UDP sont conu pour accepter de la couche rseau des segments complets non fragments. Les concepteurs

30

dIPV4 ont pens que le processus de rassemblages (et ventuellement rfragmentation) de datagramme dans les routeurs diminuerait de faon signicative leur performance et ont prfr mettre le processus de rassemblage la n dacheminement au lieu de le mettre lintrieur du rseau. Lorsquun client destinataire reoit une srie de datagrammes dune mme source, il doit dterminer si parmi ces datagrammes, il en existe qui sont des fragments dun certain datagramme plus grand. Si il y en a, le client doit chercher quel moment il a reu le dernier fragments de ces datagrammes et comment les fragments quil venait de recevoir doivent tre agencs les uns la suite des autres pour constituer le datagramme original. Pour permettre au destinataire de faire une telle opration, les concepteurs dIPV4 mettent des champs didentication, de ag et de fragmentation dans les datagrammes IP. Lorsquun datagramme est cr, le client metteur met un numro didentication l-dessus, ensuite ajoute les adresses de source et de destination. Lmetteur incrmente le numro didentication pour chaque nouveau datagramme cr. Lorsquun routeur doit fragmenter un datagramme, chacun des fragments rsultant est cachet de ladresse source, de ladresse destination et du numro didentication du datagramme original. Lorsque le destinataire reoit les sries de datagrammes dune mme source, il peut examiner les numros didentication des datagrammes pour dterminer lesquels constituent des fragments dun datagramme original plus grand. Comme IP est un protocole non able, un ou plusieurs datagrammes peut/peuvent ne jamais arriver destination. Pour cette raison, an que le destinataire soit sr davoir reu le dernier fragment du datagramme original, le dernier fragment possde un ag dont le bit est mis 0 tandis- que tous les autres fragments ont le bit de ce mme ag 1. Aussi, an que le destinataire sache quil ny a pas de fragments manquants (et ainsi dtre capable de rassembler les fragments dans le bon ordre), le champ oset est utilis pour spcier quel endroit un fragmenter doit tre prcisment agenc dans le datagramme original.

Figure 23 Fragmentation IP

31

La gue ci-dessus illustre un exemple de fragmentation de datagramme. Un datagramme de 4000 octets arrive un routeur, et ce datagramme doit tre envoy sur une liaison dont le MTU est de 1500 octets. Ceci implique que les 3980 octets du datagramme original doivent tre spars en trois frayements (chacun dentre eux tant encore un datagramme IP). Supposons que le datagramme original a pour numro didentication 777. Ainsi, les caractristiques des trois datagrammes seront comme suit : 1er fragment : 1480 octets dans le champ de donnes du datagramme IP Numro didentication = 777 Oset = 0 (signie que le fragment sera la position de loctet 0) Flag = 1 (signie quil y en reste) 2ime fragment 1480 octets dans le champ information Numro didentication = 777 Oset = 1480 (signie quil sera insr la position 1480) Flag = 1 (signie quil en reste) 3ime fragment 1020 octets (=3980-1480-1480) dans le champ information Numro didentication = 777 Oset = 2960 (signie quil sera insr la position 2960) Flag = 0 (signie que cest le dernier fragment) Le contenu du datagramme nest envoy la couche transport que lorsque la couche IP a compltement reconstitu le datagramme IP original. Si un ou plusieurs datagrammes narrivent pas destination, le datagramme est perdu et nest pas envoy la couche transport. Mais si le protocole TCP est celui utilis par la couche transport, alors TCP va essayer de reconstituer cette perte en demandant la source de renvoyer les donnes du datagramme original. La fragmentation et le rassemblage constitue un nouveau fardeau pour les routeurs sur Internet (un eort supplementaire de crer des fragments partir des datagrammes) et pour les clients destinataire (un eort supplmentaire de rassembler les fragments). Pour cette raison, il est prfrable de faire de minimums de fragmentations que possible. Ceci est souvent mis en uvre en limitant les segments TCP et UDP des valeurs relativement petites, ainsi la fragmentation de ces datagrammes est peu probable. Etant donn que tous les protocoles de liaison de donnes supports par IP sont supposs avoir des MTU au moins 576 octets, la fragmentation peut tre entirement limine 32

en utilisant un MSS de 536 octets, 20 octets pour lentte du segment TCP et 20 octets pour lentte du datagramme IP. Cest pourquoi le transfert de la donne en grande quantit (comme avec http) sont de taille comprise entre 512-536 octets.

5.4

ICMP-

le protocole ICMP ( Internet Control Message Protocol ) est utilis par les htes les routeurs et les passerelles pour communiquer les informations de la couche rseau entre eux. Il est spci dans le RFC 792. Lutilisation la plus typique de ce protocole est pour le report des erreurs. Par exemple quand une session Telnet,FTP, ou HTTP sexcute on peut rencontrer des messages du type Destination network unreachable. Ce message a son origine dans ICMP. A un niveau donn un routeur a t incapable de trouver un chemin vers lhte spci dans lapplication Telnet, FTP or HTTP. Ce routeur cre et envoie un message de type 3 lhte indiquant lerreur.Lhte reoit le message ICMP et retourne le code derreur au code TCP qui essaie de se connecter. TCP en retour envoie le code derreur lapplication. ICMP est souvent considr comme faisant partie de IP, mais il se situe juste au-dessus de IP car les messages ICMP sont transports dans les paquets IP. En eet les messages les messages ICMP sont transports au sein des paquets IP comme oset juste comme les paquets TCP ou UDP. Le trs rpandu programme ping utilise ICMP. Ping envoie un message de code 0 de ICMP de type 8. La destination voyant la requte renvoie une rponse du mme type. Un autre message intresssant de ICMP est un message appel source quench message. Ce message est utilis rarement en pratique. Son but tait de grer le contrle de congestion.

Conclusion

33