Chap 3
Chap 3
Couche Réseau
3.1 Introduction
La couche réseau est chargée essentiellement de
transporter les paquets tout au long d’un chemin d’une
source vers une destination, en traversant plusieurs nœuds
intermédiaires.
Elle s’occupe donc du routage (trouver des chemins).
2
3.1 Introduction
3
3.1 Introduction
a) Fonctionnement en mode sans connexion
Ici, les paquets sont routés individuellement et
indépendamment les uns des autres.
Un message provenant de la couche transport peut être
découpé en plusieurs paquets chacun étant routé par un
chemin différant des autres.
Dans ce cas, chaque paquet contient l’adresse complète de
destination. Les routeurs utilisent des tables de routage
indiquant la ligne de sortie à utiliser pour chaque adresse
de destination possible.
Il est à noter ici que les paquets peuvent arriver dans le
désordre.
4
Fonctionnement du routage en mode sans connexion
5
3.1 Introduction
b) Fonctionnement en mode avec connexion
Lorsqu'une connexion est établie, un itinéraire à partir de la
machine source vers la machine de destination est choisi et
stocké dans des tables à l'intérieur des routeurs. Cet
itinéraire est appelé circuit virtuel.
Le circuit virtuel est utilisé pour tout le trafic s'écoulant sur la
connexion. Lorsque la connexion est libérée, le circuit
virtuel est également terminé.
Ici, chaque paquet contient un identifiant qui indique le
circuit virtuel auquel il appartient. Une table de routage
contient une entrée par circuit virtuel qui traverse le routeur.
Il est à noter ici que les paquets arrivent toujours dans
l’ordre de leur émission.
6
Fonctionnement du routage en mode avec connexion
7
3.2 Algorithmes de routage
L'algorithme de routage est la partie de la couche réseau
responsable de décider sur quelle ligne de sortie un paquet
entrant devrait être transmis.
Un routeur exécute deux processus. Le premier traite les
paquets lorsqu’ils arrivent, en utilisant la table de routage
pour choisir une ligne de sortie. Le deuxième est chargé de
remplir et mettre à jour les tables de routage. C'est là que
l'algorithme de routage entre en jeu.
Les algorithmes de routage peuvent opérer de manière
statique ou dynamique. Dans le premier cas, les
algorithmes ne fondent pas leurs décisions sur des
mesures du trafic et de la topologie. Au lieu de cela, le
choix des routes à utiliser est calculé à l'avance (hors ligne)
et téléchargé lors du démarrage des routeurs.
8
3.2 Algorithmes de routage
Avec le routage dynamique, les routeurs modifient leurs
décisions pour s’adapter aux changements de la topologie
et du trafic dans le réseau.
9
3.2.1 Routage du plus court chemin
L'idée est de représenter le réseau par un graphe. Chaque
noeud du graphe représente une machine ou un routeur, et
chaque arc représentant une ligne de communication. Pour
choisir une route entre deux nœuds, l'algorithme se
contente de trouver le plus court chemin entre eux.
Une façon de mesurer la longueur du chemin est de
compter le nombre de sauts. En utilisant cette métrique, les
chemins ABC et ABE dans la figure suivante sont de
longueur égale.
Une autre métrique consiste à utiliser la distance en mètres.
Dans ce cas, ABC est plus long que ABE (en supposant
que les étiquettes des arcs représente la distance
physique).
10
3.2.1 Routage du plus court chemin
11
3.2.1 Routage du plus court chemin
12
3.2.2 Routage par inondation
Ici, chaque paquet entrant est envoyé sur toutes les lignes
de sorties. Ceci génère évidement un grand nombre de
paquets dupliqués. En fait, ce nombre est infini à moins que
certaines mesures ne soient prises.
Une de ces mesures consiste à placer un compteur de
sauts dans l'entête de chaque paquet, ce dernier est
décrémenté à chaque saut. Les paquets sont éliminés
lorsque le compteur atteint zéro.
Théoriquement, le compteur de sauts doit être initialisé à la
longueur du chemin de la source vers la destination. Si
l'expéditeur ne connaît pas cette longueur, il peut initialiser
le compteur au diamètre du réseau (la plus grande distance
entre deux nœuds).
13
3.2.2 Routage par inondation
14
3.2.3 Routage à vecteur de distance
Les réseaux informatiques modernes utilisent plutôt des
algorithmes de routage dynamique. Deux algorithmes
dynamiques en particulier, le routage à vecteur de
distance et le routage par information d'état de lien, sont
les plus courants.
15
3.2.3 Routage à vecteur de distance
16
3.2.3 Routage à vecteur de distance
Un routeur utilise les informations reçues pour mettre à
jour sa table de routage, tout en ignorant les anciennes
valeurs de la table de routage.
La mise à jour de la table de routage se fait comme suit :
Un routeur X qui reçoit une liste de vecteurs de distances
d’un routeur Y va savoir que la distance séparant Y et Z est
m. Puisque la distance entre X et Y est de i, alors X peut
atteindre Z en parcourant une distance dz = m + i.
Le routeur X calcule les distances dz pour la destination Z
en utilisant toutes les listes de vecteurs reçues et conserve
la valeur minimale dans sa table de routage.
17
18
3.2.3 Routage à vecteur de distance
19
3.2.3 Routage à vecteur de distance
20
3.2.3 Routage à vecteur de distance
21
3.2.4 Routage par information d'état de lien
Le routage à vecteur de distance a été utilisé dans le
réseau ARPANET jusqu‘en 1979, lorsqu’il fut remplacé par
la technique du routage basée sur l’état des liens. La cause
principale de ce changement est la lenteur de convergence
du premier algorithme.
Cette technique de routage est la plus utilisée dans les
réseaux d’aujourd’hui (dans le réseau Internet : le protocole
OSPF (Open Shortest Path First)).
Le routage par information d'état de lien s’effectue en 5
étapes :
a) Découvrir ses voisins: Ceci peut être effectué
facilement par l’envoie d’un message spécial (HELLO) sur
toutes les lignes et d’attendre une réponse. Ainsi, le routeur
pourra découvrir tous ses voisins et leurs adresses.
22
3.2.4 Routage par information d'état de lien
23
3.2.4 Routage par information d'état de lien
d) Envoyer ce paquet à tous les routeurs du réseau :
Le paquet construit est diffusé dans le réseau par inondation.
Pour contrôler le nombre de paquets générés un compteur de
saut est utilisé. Ces messages spéciaux sont construits et
diffusés soit périodiquement, ou bien lorsque un changement
dans la topologie survient à cause d’une panne par exemple.
e) Calculer le plus court chemin vers les autres
routeurs :
Après avoir reçu les paquets d’information des états des liens,
les routeurs construisent le graphe complet du réseau, et
calculent les plus courts chemins en utilisant l’algorithme de
Dijkstra.
24
3.2.4 Routage par information d'état de lien
25
3.2.5 Routage hiérarchique
Au fur et à mesure que le réseau grandisse, la taille des tables
de routage devient plus grande. Non seulement les tables
consomment plus de mémoire et de bande passente (pour
échanger les rapports d’états), mais aussi il faut plus de temps
CPU pour les explorer et les mettre à jour.
A partir d’une certaine dimension il n’est plus possible que
chaque routeur ait une entrée pour chacun des autres
routeurs. La solution est d’utiliser un routage hiérarchique.
Ici, les routeurs sont répartis en régions. Chaque routeur
connaît tous les détails pour router les paquets dans sa région,
mais il ignore tout de la structure des autres régions.
Dans l’exemple de la figure suivante, il y a dans la table de
routage une entrée pour chaque routeur local, mais tous les
routeurs d’une autre région sont réunies dans la même entrée.
26
3.2.5 Routage hiérarchique
27
3.2.6 Routage Multi-destinataire (Multicast)
Dans certaines applications, des processus distants doivent
travailler ensemble. Ces processus constituent un groupe.
Il est souvent nécessaire qu'un membre d'un groupe envoie
un message à tous les autres membres du groupe.
Le membre en question peut simplement envoyer le
message individuellement à chacun des autres membres
du groupe. Cependant, si le groupe est important, cette
stratégie risque d’être très coûteuse.
L'envoi d'un message à un groupe est appelé transmission
multi-destinataire (multicasting) et la technique de routage
associée est appelée routage multi-destinataire (multicast).
28
3.2.6 Routage Multi-destinataire (Multicast)
Ici, il est important que chaque routeur sache à quels
groupes appartiennent les machines du réseau.
Avant d'effectuer une transmission multi-destinataire,
chaque routeur doit calculer l’arbre couvrant tous les
routeurs du réseau.
Lorsqu’une machine transmet un paquet à un groupe, le
routeur recevant ce paquet va :
1. Examiner son arbre couvrant et l'élaguer, détachant ainsi
toutes les branches (les lignes) qui ne conduisent pas vers
les machines membres du groupe.
2. Diffuser le paquet uniquement sur les lignes correspondant à
l'arbre approprié du groupe (l’arbre multicast).
29
3.2.6 Routage Multi-destinataire (Multicast)
30
3.2.6 Routage Multi-destinataire (Multicast)
(a) un réseau; (b) arbre couvrent dont la racine est M; (c) arbre
multicast pour le groupe 1; (d) arbre multicast pour le groupe 2.
31
3.3 Contrôle de congestion
Lorsque de trop nombreux paquets sont présents dans le
réseau, ses performances se dégradent. Cette situation est
appelée la congestion.
32
3.3 Contrôle de congestion
34
3.3 Contrôle de congestion
Les faibles performances des processeurs internes aux
routeurs peuvent également être à l'origine de la
congestion, si les processeurs sont trop lents pour exécuter
les tâches de gestion qui leur sont confiées.
35
3.3.1 Mécanisme du seau percé
36
3.3.1 Mécanisme du seau percé
Imaginez un seau d'eau dont le fond est percé d'un trou par
lequel l'eau s'écoule en goutte à goutte. Peu importe à quel
débit l'eau arrive dans le seau, son écoulement par le trou
se fait à vitesse constante.
Le principe du seau percé, peut être transposé sans
difficulté à la transmission de paquets dans un réseau.
Conceptuellement, chaque ordinateur est relié au réseau
par une interface d'accès comportant un saut percé
représenté de façon concrète par une file d'attente de taille
fixe.
37
3.3.1 Mécanisme du seau percé
38
(a) Un seau d'eau percé; (b) le principe du seau percé adapté à la
transmission de paquets.
39
3.4 La couche réseau dans Internet
40
3.4 La couche réseau dans Internet
Au niveau le plus élevé on trouve les réseaux fédérateurs
que l'on appelle communément épines dorsales
(Backbone). Ces dernières sont constituées de liens de
communication à très grande bande passante et de
routeurs très rapides.
À un niveau hiérarchique intermédiaire, on trouve des
réseaux régionaux (ou nationaux). Souvent, ces derniers
sont les réseaux d'opérateurs de télécommunications
(Algérie Télécom, Nedjma, Djezzy, …).
Au niveau le plus bas on distingue les réseaux locaux (des
entreprises, des universités, …).
41
Organisation simplifiée du réseau Internet
42
3.4.1 Le protocole IP (Internet Protocol)
43
3.4.1 Le protocole IP (Internet Protocol)
44
3.4.1 Le protocole IP (Internet Protocol)
Les champ de l’en-tête sont comme suit :
1) Version : ce champ de 4 bits contient la version du
protocole IP utilisé pour créer le paquet. La version
courante actuelle du protocole IP est 4, notée IPv4. La
nouvelle version du protocole IP est la version 6, notée
IPv6.
2) Lg_ent : Puisque l'en-tête d'un paquet IP est de
longueur variable, ce champ de 4 bits indique sa longueur
en mots de 32 bits.
3) Type de service : ce champ permet à une machine de
préciser le type d'acheminement souhaité sous forme de :
délai, bande passante et fiabilité. En théorie, ces
informations permettent aux routeurs de choisir une liaison
selon l’un de ces trois critères. En pratique les routeurs
n'utilisent pas cette possibilité.
45
3.4.1 Le protocole IP (Internet Protocol)
4) Longueur totale : ce champ de 16 bits indique la
longueur en octets du paquet IP (le champ en-tête plus les
données utiles). La taille maximale d'un paquet IP est égale
à (216-1), soit 65635 octets.
5) Identification : ce champ de 16 bits contient un numéro
d’identification pour le paquet.
6) Drapeau : champ de trois bits (dont un est inutilisé). Il
comprend deux indicateurs: DF qui signifie "ne pas
fragmenter" et MF qui signifie "fragment non unique". DF
indique aux routeurs de ne pas fragmenter le paquet car le
destinataire serait incapable de le reconstituer. Dans le cas
d’un paquet fragmenté, les fragments ont leur indicateur MF
activé.
46
3.4.1 Le protocole IP (Internet Protocol)
7) Déplacement fragment : c’est un numéro de séquence
qui précise la localisation du fragment dans le paquet
original.
8) Durée de vie : c’est un compteur utilisé pour limiter la
durée de vie des paquets. Il décompte le temps de séjour
du paquet dans le réseau avec une limite maximale de 255
sauts. Il est décrémenté d'une unité à chaque saut
(traversée d'un routeur). Le passage du compteur à la
valeur zéro déclenche la destruction du paquet et l'émission
d'un message d'avertissement à l'ordinateur source
concerné.
9) Protocole : indique à la couche réseau à quel protocole
de transport (niveau 4) confier le paquet. Ce protocole peut
être TCP ou UDP, voire un autre protocole.
47
3.4.1 Le protocole IP (Internet Protocol)
10) Total de contrôle de l'en-tête : Sa fonction est la
détection d'erreur uniquement sur l'en-tête. Il est à noter
que le total de contrôle doit être recalculé à chaque saut
puisqu'un champ au minimum aura changé entre temps: la
durée de vie, qui a été décrémentée d'une unité.
11) Adresse source, Adresse de destination: font
référence à un couple « numéro de réseau, numéro
d'ordinateur ».
12) Options : fut conçu pour offrir une extension aux
évolutions du protocole IP afin de lui permettre de prendre
en compte des services non définis dans la version
d'origine.
48
3.4.2 Les adresses IP
Chaque ordinateur et chaque routeur du réseau Internet
possède une adresse IP, constituée d’un identifiant de
réseau (id_Réseau) et un identifiant d'ordinateur
(id_ordinateur).
Cette combinaison est unique; deux machines ne peuvent
pas avoir la même adresse IP.
Les adresses IP sont codées sur 32 bits et sont utilisées
dans les champs Adresse source et Adresse de destination
des paquets IP.
Les machines connectées à plusieurs réseaux possèdent
une adresse IP différente sur chacun des réseaux. En
d’autres termes, une machine possède une adresse IP par
carte réseau.
49
3.4.2 Les adresses IP
Les adresses de classe A sont destinées aux très grand
réseaux. Elles attribuent 7 bits à id_Réseau et 24 bits à
id_ordinateur. Elles définissent jusqu'à 126 réseaux
comportant au maximum 224 ordinateurs (soit plus de 16
millions).
Les adresses de classe B sont destinées aux réseaux
intermédiaires. Elles comptent 14 bits pour id_Réseau et 16
bits pour id_ordinateur (jusqu'à 65536 ordinateurs).
Les adresses de classe C correspondent aux réseaux
ayant au plus 254 ordinateurs. Elles attribuent 21 bits à
id_Réseau (2 millions de réseaux) et 8 bits à id_ordinateur.
Ces adresses sont souvent utilisées dans les réseaux LAN.
50
3.4.2 Les adresses IP
Les adresses de classe D sont des adresses Multicast
signifiant que les paquets sont distribués vers un groupe
d'ordinateurs. Les adresses de classe E ont été prévues et
réservées pour une utilisation future.
Pour des raisons de commodité de lecture les adresses IP
sont représentées en notation décimale pointée. Dans ce
format chacun des quatre octets du mot de 32 bits est écrit
en notation décimale, de 0 à 255; un point sépare deux
groupes de chiffres décimaux (exemple : 192.41.6.20).
Les adresses IP peuvent varier entre 0.0.0.0 et
255.255.255.255. Toutefois certaines adresses sont
absentes des plages d'adresses IP. Elles correspondent à
des adresses réservées.
51
3.4.2 Les adresses IP
52
3.4.2 Les adresses IP
Les deux valeurs de id_Réseau et id_ordinateur suivantes :
« tout à 0 » et « tout à 1 » ont des significations
particulières. La valeur 0 indique « ce réseau» ou « cet
ordinateur ». La valeur 1 est utilisée comme adresse de
diffusion générale, elle signifie tous les ordinateurs du
réseau.
L'adresse « 0.0.0.0 » sert uniquement lors du démarrage
d'un ordinateur. Elle permet à un ordinateur de
communiquer temporairement afin d'obtenir son adresse IP.
Une fois que l'ordinateur connaît son identificateur de
réseau et sa propre adresse, il ne doit plus utiliser l'adresse
« 0.0.0.0 ».
53
3.4.2 Les adresses IP
Adresses IP particulières
54
3.4.2 Les adresses IP
L'adresse IP constituée de l'identificateur de réseau
id_Réseau = 0 fait référence au réseau d'attachement
(réseau local). Cela permet aux ordinateurs sur ce réseau
de communiquer entre eux sans forcément connaître son
numéro d'identification.
55
3.4.2 Les adresses IP
Enfin, toutes les adresses de la forme « 127.xx.yy.zz » sont
des adresses de rebouclage.
56
3.4.3 Les sous-réseaux
Prenons l'exemple d'une entreprise qui met en place un
réseau LAN de classe C raccordé sur Internet.
Le temps passant, l'entreprise augmente son parc au-delà
de 254 ordinateurs. Elle peut demander une seconde
adresse de classe C.
Éventuellement, on peut imaginer une situation avec
plusieurs réseaux LAN possédant chacun leurs propres
adresses de classe C.
À chaque nouvelle extension l'administrateur réseau doit
obtenir un nouvel identifiant de réseau. Ce numéro doit
ensuite être communiqué à toute la communauté Internet,
pour mise à jour des bases de données d'adresses IP.
57
3.4.3 Les sous-réseaux
Le problème ici est qu’il est difficile d’avoir de nouvelles
adresses IP car elles sont de plus en plus rares. En plus,
vue de l’extérieur l’entreprise possède plusieurs réseaux et
non pas un seul.
Une meilleure manière d’organiser les choses est de
partitionner le réseau de l'entreprise en plusieurs sous-
réseaux à usage interne, alors que l'ensemble continue à
se comporter comme un seul réseau par rapport à
l'extérieur.
Dans le cas de notre entreprise en expansion, il vaut mieux
démarrer avec un réseau de classe B, à la place d'un
réseau de classe C.
58
3.4.3 Les sous-réseaux
59
3.4.3 Les sous-réseaux
À l'arrivée d'un second réseau, l'entreprise peut décider, par
exemple, de subdiviser le champ id_ordinateur de 16 bits
en deux sous champs. L'un de 6 bits pour identifier un
sous-réseau local et l'autre de 10 bits pour identifier un
ordinateur sur ce sous-réseau.
En dehors du réseau de l'entreprise, cette subdivision
n'apparaît pas, c'est pourquoi elle peut s'effectuer sans
mise à jour des bases de données externes.
Dans l'exemple précédent, le premier sous-réseau pourrait
être identifié par les adresses IP commençant à 130.50.4.1,
le second sous-réseau par celles commençant à
130.50.8.1, et ainsi de suite.
60
3.4.3 Les sous-réseaux
Ceci correspond aux représentations binaires suivantes :
« 130.50.04.1 »: 10000010 00110010 000001|00 00000001
« 130.50.08.1 »: 10000010 00110010 000010|00 00000001
« 130.50.12.1 »: 10000010 00110010 000011|00 00000001
62
3.4.4 Les protocoles de contrôle d'Internet
En complément au protocole IP qui gère le transfert des
paquets, le réseau Internet utilise plusieurs protocoles de
contrôle dans la couche réseau parmi lesquels ICMP, ARP,
RARP et DHCP.
1) Protocole ICMP:
Lorsqu'un imprévu se produit dans le réseau Internet,
l'événement est rapporté par le protocole ICMP (Internet
Control Message Protocol).
Il existe environ une douzaine de types de messages ICMP.
Les plus importants sont :
63
3.4.4 Les protocoles de contrôle d'Internet
64
3.4.4 Les protocoles de contrôle d'Internet
Le message Destination inaccessible est utilisé lorsqu’un
routeur ne parvient pas à localiser la destination ou
lorsqu’un paquet avec le bit DF ne peut pas être livré car un
réseau à petits paquets se trouve sur le chemin.
2) Protocole ARP:
66
3.4.4 Les protocoles de contrôle d'Internet
Les ordinateurs émettent et reçoivent des trames dotées
d'adresses MAC qui n'ont aucune relation avec les
adresses IP.
Il est à noter que les constructeurs de cartes réseaux
obtiennent les adresses MAC auprès d'une autorité centrale
à l'IEEE, ce qui garantie que la même adresse ne sera pas
affectée à deux cartes distinctes.
Question: comment les adresses IP sont-elles interprétées
au niveau de la couche liaison de données ?
Pour expliquer le mécanisme de transformation d'adresses,
prenons l'exemple illustré à la figure suivante. Il représente
un réseau Ethernet de classe C. Chaque machine possède
une adresse MAC unique (E1, E2 et E3).
67
3.4.4 Les protocoles de contrôle d'Internet
68
3.4.4 Les protocoles de contrôle d'Internet
69
3.4.4 Les protocoles de contrôle d'Internet
Seule la station 2, se reconnaissant, retournera en réponse
son adresse MAC (E2). De cette manière la station 1
apprend que l'adresse IP 192.31.65.5 correspond à
l'adresse MAC (E2).
Le protocole qui pose la question et traite la réponse est
appelé protocole ARP (Address Resolution Protocol). Il est
utilisé par tous les ordinateurs du réseau Internet.
3) Protocole RARP:
Si le protocole ARP permet de déterminer quelle adresse
MAC correspond à une adresse IP, parfois le problème
inverse se pose: pour une adresse MAC donnée, quelle est
l'adresse lP correspondante ?
70
3.4.4 Les protocoles de contrôle d'Internet
Ce problème apparaît surtout au démarrage d'une machine.
Par exemple, sur une machine sans disque dur le système
d'exploitation est sur un serveur distant, ce qui nécessite
d'en obtenir une image locale au démarrage. Comment ces
stations connaissent-elles leur adresse IP ?
La solution consiste à utiliser le protocole RARP (Reverse
Address Resolution Prorocol). Ce protocole permet à une
station de travail qui démarre, de diffuser son adresse MAC
et de dire: « Mon adresse MAC est 14.04.05.18.01.25. Y a-
t-il quelqu'un qui connaisse mon adresse IP ».
Le serveur RARP capte cette demande, consulte les
adresses MAC dans ses fichiers de configuration et renvoie
l'adresse lP correspondante à l'ordinateur concerné.
71
3.4.4 Les protocoles de contrôle d'Internet
5) DHCP:
Le problème du protocole RARP est qu'il nécessite une
configuration manuelle des tables de correspondance
« adresse MAC, adresse IP ».
Quand une nouvelle machine est ajoutée à un réseau local,
elle ne peut pas utiliser RARP jusqu'à ce qu'un
administrateur lui attribue une adresse IP et l’ajoute
manuellement dans la table de configuration RARP.
Pour éviter cette manœuvre, RARP a été amélioré et
renommé : DHCP (Dynamic Host Configuration Protocol).
Ce dernier permet l'attribution d'adresse IP manuellement
ou automatiquement. Dans la plupart des réseaux, DHCP a
largement remplacé RARP.
72
3.4.5 Le routage sur Internet
Le réseau Internet est constitué d'un ensemble de réseaux
autonomes interconnectés.
Chacun de ces réseaux est géré par une entreprise, un
opérateur de télécommunications ou toute autre
organisation.
Chacun de ces réseaux peut utiliser un protocole de
routage qui lui est propre.
Cependant, le fait de disposer de standards permet de
simplifier fortement les logiciels d'intercommunication.
Sur Internet, le protocole de routage à l'intérieur des
réseaux autonomes est le protocole OSPF (Open Shortest
Path First).
73
3.4.5 Le routage sur Internet
Le protocole de routage à l'intérieur des réseaux
autonomes était à l'origine le protocole à vecteur de
distance RIP (Routing Information Protocol).
À cause de sa convergence très lente, il a été remplacé par
le protocole à information d'état de lien OSPF.
À l’extérieur des réseaux autonomes, c'est le protocole de
routage BGP (Border Gateway Protocol) qui est utilisé.
L'utilisation d'un protocole différent entre les réseaux
autonomes est nécessaire, car les objectifs ici sont
différents.
Tout ce qu'un protocole de routage à l'intérieur des réseaux
autonomes doit faire, c'est de transmettre les paquets aussi
efficacement que possible.
74
3.4.5 Le routage sur Internet
75
3.4.5 Le routage sur Internet
Les stratégies de routage s'appuient sur des considérations
politiques, de sécurité ou économiques. Par exemple:
Ne jamais mettre l‘Iran sur un chemin commençant au
Pentagone.
Le trafic sortant ou entrant d'IBM ne doit pas transiter par
Microsoft.
BGP est un protocole de routage à vecteur de distances,
mais quelque peu différent des autres protocoles tels que
RIP.
Au lieu de maintenir uniquement le coût vers chaque
destination, un routeur BGP garde la trace du chemin
exact utilisé.
76
3.4.5 Le routage sur Internet
De même, au lieu de communiquer périodiquement à ses
voisins son estimation des coûts vers chaque destination
possible, tout routeur indique à ses voisins le chemin exact
qu'il utilise.
Exemple : supposons que le routeur F utilise le chemin
FGCD pour atteindre D.
Quand les voisins de F lui donnent leurs informations de
routage, ils lui communiquent leurs chemins complets,
comme le montre la figure (pour simplifier, seule la
destination D est représentée).
F examine tous les chemins communiqués par ses voisins
pour voir quel est le meilleur.
77
3.4.5 Le routage sur Internet
78
3.4.5 Le routage sur Internet
79
3.4.5 Le routage sur Internet
Protocole routé et protocole de routage :
80
3.4.6 NAT (Network Address Translation)
Le protocole IP a été utilisé intensivement pendant
plusieurs années.
Il a extrêmement bien fonctionné comme l'a démontré la
croissance exponentielle du réseau Internet.
Malheureusement, IP est victime de son succès: il s'épuise
par manque d'adresses.
Ce désastre annoncé a déclenché nombre de discussions
et de controverses au sein de la communauté Internet sur
les dispositions à prendre pour réagir.
En 1987, certaines personnes prédisaient que le réseau
Internet pourrait croître jusqu'à 100 000 réseaux.
81
3.4.6 NAT (Network Address Translation)
La plupart des experts repoussèrent cette idée précisant
qu'elle ne pourrait se réaliser que dans plusieurs
décennies. Les 100 000 réseaux ont été atteints en 1996.
Le problème de l'épuisement rapide des adresses IP est
alors devenu préoccupant.
La solution à long terme est que tout le réseau Internet
migre vers IPv6, qui a des adresses codées sur 128 bits.
Cette transition est entrain de se produit lentement, mais il
faudra des années avant que le processus soit terminé.
Par conséquent, certaines personnes ont estimé qu'une
solution rapide était nécessaire sur le court terme. Cette
solution rapide est venue sous la forme du mécanisme
NAT (Network Address Translation).
82
3.4.6 NAT (Network Address Translation)
84
3.4.6 NAT (Network Address Translation)
Quand la réponse arrive (par exemple, à partir d'un serveur
Web), le paquet est naturellement adressée à
198.60.42.12. Comment le NAT sais-il avec quelle adresse
privée il faut remplacer l’adresse publique ?
Le fonctionnement du NAT est comme suit; les concepteurs
de ce mécanisme ont remarqué que la plupart des paquets
IP encapsulent des segments TCP ou UDP.
L’en-tête d’un segment TCP (ou UDP) contient un champ
port source et un champ port destination (il est à noter
que les adresse au niveau transport sont nommées ports).
Le NAT utilise ces champs pour trouver l’adresse IP privée
qui doit être placée sur un paquet entrant.
85
3.4.6 NAT (Network Address Translation)
Chaque fois qu'un paquet sortant passe par le NAT,
l'adresse IP source (privée) est remplacée par l’adresse IP
publique.
En plus, le champ port source (du segment TCP ou UDP)
est remplacé par un nombre entier. Ce nombre est placé
ensuite dans une entrée de la table de correspondance
du NAT avec l'adresse IP privée et le port source original.
Quand un paquet arrive au NAT de l’extérieur, le port
destination dans l'en-tête du segment est extrait et utilisé
comme index dans la table du NAT.
Lorsque l'entrée est trouvée, l'adresse IP privée et le port
source original sont extraits et inséré dans le paquet.
86
3.4.6 NAT (Network Address Translation)
Fonctionnement du NAT
87
3.4.6 NAT (Network Address Translation)
88
3.4.6 NAT (Network Address Translation)
Il est à noter qu’il existe des plages d’adresses réservées
aux adresses privées. Ces dernières ne sont donc pas
routable sur le réseau Internet.
Sauf bien sûr les adresses avec identifiant machine tous les
bits à 0 ou tous à 1.
89
3.4.7 Protocole IPv6
Tandis que l’utilisation du NAT permet de repousser
l'échéance de la pénurie d'adresses IP de quelques
années, tout le monde s'accorde à dire que les jours du
protocole IP dans sa forme actuelle (lPv4) sont comptés.
Voyant ce problème pointer à l'horizon, les travaux sur une
nouvelle version du protocole IP qui ne devrait jamais être
en rupture d'adresses ont débuté en 1990.
La nouvelle version du protocole IP devrait offrir plus de
flexibilité et d'efficacité.
Plusieurs idées de protocoles ont été proposées, et
finalement c’est une combinaison des deux meilleures
d’entres elles qui fut adoptée et nommée IPv6 (IPv5 étant
déjà utilisé par un protocole expérimental).
90
3.4.7 Protocole IPv6
IPv6 n'est pas compatible avec IPv4, cependant il est
compatible avec tous les autres protocoles Internet dont
TCP, UDP, ICMP, OSPF, et BGP.
La première amélioration d'IPv6 est qu'il utilise des
adresses plus longues qu'IPv4. Elles sont codées sur
128 bits. Ceci procure un nombre d'adresses IP quasi
illimité.
La seconde amélioration d'IPv6 c'est la simplification de
l'en-tête des paquets. La partie fixe de l'en-tête du paquet
IPv6 ne comprend que 7 champs (contre 13 pour la version
IPv4). Ce changement permet aux routeurs de traiter les
paquets plus rapidement.
91
3.4.7 Protocole IPv6
Le troisième point sur lequel IPv6 apporte une grande
avancée, c'est la sécurité.
L'authentification et la confidentialité constitue deux
fonctions de sécurité majeures du protocole IPv6.
92
Partie fixe de l’en-tête d’un paquet IPv6
93
3.4.7 Protocole IPv6
Le champ Priorité permet aux routeurs de mieux réagir en
cas de congestion. Des priorités de 0 à 7 sont affectées aux
sources capables de diminuer leur débit. Tandis que, les
valeurs de 8 à 15 sont assignées au trafic temps réel dont
le débit reste constant, même si de nombreux paquets
doivent être perdus. Les données audio et vidéo font partie
de cette dernière catégorie.
Le champ Étiquette de flot est un champ expérimental. Il
permet à une source d’identifier un flot de paquets par une
étiquette afin de lui assurer une certaine qualité de service.
Par exemple, un flot de paquets pourrait avoir des
exigences de délai d'acheminement et souhaiter disposer
d'une certaine bande passante.
94
3.4.7 Protocole IPv6
95
3.4.7 Protocole IPv6
Le champ Nombre max de sauts est utilisé pour empêcher
les paquets de circuler indéfiniment. Il joue le même rôle
que le champ Durée de vie d'IPv4. Il contient donc un
nombre de saut qui est décrémenté à chaque passage
dans un routeur.
Viennent ensuite les champs Adresse source et Adresse
de destination. Il est à noter qu’une nouvelle notation a été
définie pour décrire les adresses IPv6 de 128 bits. Elle
comprend huit groupes de quatre chiffres hexadécimaux
séparés avec le symbole deux-points.
Exemple: 8000:0000:0000:0000:0123:4567:89AB:CDEF
96
3.4.7 Protocole IPv6
La Sécurité avec IPv6 :
IPv6 a introduit le concept d'en-tête d'extension (optionnel).
Cet en-tête, s'il est présent, fournit une information
complémentaire de façon efficace.
Six types d'en-tête d'extension ont été définis.
Deux en-têtes d’extension sont réservés à la sécurité, à
savoir : l’en-tête Authentification, et l’en-tête Charge utile
cryptée.
L'en-tête Authentification fournit un mécanisme permettant
au destinataire d'un paquet de s'assurer de l'identité de la
source. Dans IPv4, aucune garantie semblable n'est offerte.
97
3.4.7 Protocole IPv6
Quand un émetteur et un récepteur veulent communiquer
en toute sécurité, ils doivent tout deux se mettre d'accord
sur une clé secrète connue d'eux seuls (Comment se
mettent-ils d'accord? Cela sort des propos d'IPv6).
Pour envoyer un message authentifié, l'ordinateur source
construit d’abord un paquet, puis, un total de contrôle (du
paquet complet) est calculé, crypté, et placé dans l’en-tête
Authentification.
Le destinataire utilise la clé secrète pour calculer à nouveau
le total de contrôle crypté. Si le résultat du calcul est égal
au totale de contrôle crypté contenu dans l'en-tête
Authentification, le destinataire est sûr que le paquet vient
de la source avec laquelle il partage la clé secrète.
98
3.4.7 Protocole IPv6
Pour les paquets qui doivent être envoyés secrètement
(parce qu’ils contiennent des données confidentielles), il
faut utiliser l'en-tête d'extension Charge utile cryptée.
Cet en-tête commence par un nombre de 32 bits, suivi par
la charge utile cryptée. Le nombre est un numéro de
séquence incrémenté par 1 pour chaque nouveau paquet
(Ce qui permet de se protéger d’un certain type d’attaques.)
Il est à noter que l'algorithme de cryptage utilisé est au
choix de l'émetteur et du récepteur.
Si l'authentification et la confidentialité sont souhaitées, les
deux en-têtes d’extension sont nécessaires.
99