La couche réseau

Transcription

La couche réseau
La couche réseau
Description
couche transport
couche transport
message
couche réseau
message
couche réseau
paquet
couche liaison
couche réseau
paquet
couche liaison
couche liaison
trame
trame
couche physique
couche physique
couche physique
Emetteur
Routeur
Récepteur
Couche réseau
Objectifs :

Comprendre les
principes sous-jacents de
la couche réseau :





commutation
routage (choix du chemin)
Passage à l’échelle
Comment fonctionne un
routeur
Description du routage
dans Internet
Couche réseau
 Cette
couche doit permettre une
transmission entre 2 machines.
 Celles-ci ne sont pas nécessairement
directement connectés.
 Les données sont fractionnées en
paquets.
Transmission indirecte
routeur/commutateur
src
réseau local
réseau local
dst
Services offerts
 Adressage
logique universel
 Commutation/Routage
 Contrôle de congestion
 Contrôle
d’erreur et de flux
Modes de communication
 Deux
modes de communication existent
 mode
connecté
 mode non connecté
Service en mode connecté (X25)
 Une
connexion
doit être établie préalablement à tout envoi entre
deux machines.
 est appelée circuit virtuel (VC)

 Chaque
paquet comprend le numéro du circuit
virtuel. (et non pas l’adresse de la destination)
 Une route est calculée à chaque connexion
 Chaque commutateur maintient un « état » pour
chaque connexion qui le traverse
 Des ressources du lien (bande passante) ou du
routeur (mémoire) peuvent être allouées au VC
Commutation
 La
commutation est utilisée en mode
connecté. Elle consiste à :
 calculer
une route au moment de la connexion
 emprunter cette route pour transférer chaque
paquet tant que dure la connexion.
applicatio
5. Data flow begins
n
transport 4. Call connected
network 1. Initiate call
data link
physical
6. Receive data applicatio
n
3. Accept call
2. incoming call transport
network
data link
physical
Service en mode non connecté(Internet)
 Chaque
paquet
 est
transporté de façon indépendante.
 comprend l'adresse de destination
 est appelé datagramme (par analogie avec le
télégramme)
 Une
route est calculée pour chaque
paquet
Routage
 Le
routage est utilisé en mode non connecté. Il
consiste à :



calculer une route pour transférer chaque paquet
aucun état mémorisé au sujet des connexions
Des paquets avec la même source et destination
peuvent suivre des trajets différents
applicatio
n
transport
network 1. Send data
data link
physical
applicatio
n
2. Receive data transport
network
data link
physical
Commutation

vs
Efficacité



Temps : il n’est pas
nécessaire de recalculer
une route pour chaque
paquet.
Espace : une table de
commutation à chaque
nœud (commutateur) gère
les références actives des
circuits virtuels. Son
encombrement est faible.
Besoin de qualité de
services garanties
routage
 Souplesse



chaque paquet peut
emprunter un chemin
différent
pas de contrainte de
délai stricte
en cas de congestion
ou de panne, cela
s’avère particulièrement
intéressant.
Adressage
 Il
est nécessaire de pouvoir désigner toute
machine quelconque accessible
directement ou indirectement.
 Les adresses physiques sont propres aux
différentes technologies (Ethernet, ...)
 Il faut donc introduire un mécanisme
d’adressage universel.
Exemples d’adressage
 Adressage
en mode connecté
 X25-3
 Adressage
 IP
en mode non connecté
X25-3
 La
norme X25 définit un protocole de
niveau 3 (couche réseau) en mode
connecté.
 Un adressage « universel » X121 définit
un mode d’identification unique sur 14
chiffres. (Ex Transpac Intl)
0 2 0 8 0
Préfixe
pays
0 : communication internationale
1 : accès direct via une liaison spécialisée
réseau
numéro interne
Adresses IP
 Dans
la version IPv4, les adresses
comportent 4 octets (32 bits).
 Elles se présentent usuellement sous la
forme de 4 nombres décimaux séparés
par des points (notation décimale pointée).
 Les adresses (partie identifiant le réseau)
sont accordées par un organisme appelé
NIC (Network Information Center).
Classes d’adresse


Il existe 5 classes d’adresses (A, B, C, D et E).
Les adresses de classe A, B et C sont composées :






d’une partie identifiant le réseau
d’une partie identifiant la machine (au sein du réseau)
Les machines d’un même réseau doivent partager la
partie de l’adresse identifiant le réseau.
En fonction de la taille du réseau, une adresse de classe
A, B ou C est utilisée.
La classe D est utilisée pour du multicasting
(datagrammes envoyés à un groupe d’ordinateurs).
La classe E n’est pas utilisée.
Adresse IP
“classe” d’adressage :
classe
A
0réseau
B
10
C 110
D 1110
1.0.0.0 to
127.255.255.255
hôte
réseau
128.0.0.0 to
191.255.255.255
hôte
réseau
Adresse multicast
32 bits
hôte
192.0.0.0 to
223.255.255.255
224.0.0.0 to
239.255.255.255
Adresse IP : CIDR
 Adressage
par classe :

utilisation inefficace de l’espace d’adressage
Ex : une adresse de classe B a assez de place pour 65K
hôtes, même si il n’y a que 2K hôtes dans ce réseau

CIDR : Classless InterDomain Routing

La taille de la partie réseau est arbitraire
Format de l’adresse : a.b.c.d/x, où x est le # de bits dans la
partie réseau de l’adresse


network
part
host
part
11001000 00010111 00010000 00000000
200.23.16.0/23
Un exemple
223.1.1.1
ICANN :
Internet
Corporation for
Assigned
Names and
Numbers
•alloue les adresses
•Gère le DNS
•Assigne les noms de
domaines
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.1
223.1.2.9
223.1.3.27
223.1.2.2
LAN
223.1.3.1
223.1.3.2
Le réseau est constitué de 3 réseaux
IP (Les 24 premiers bits sont l’adresse
réseau)
Calcul d’une route
 Pour
passer d'une machine source à une
machine destination, il peut être nécessaire de
passer par plusieurs points intermédiaires.


En mode connecté (commutation), le calcul d’une route
s’effectue uniquement lors de l'établissement de la
connexion.
En mode non connecté (routage), le calcul d’une route
s’effectue pour chaque paquet transmis.
 Par
la suite, on ne parlera que de routage.
Routage
Protocole de routage
Objectif : choisir un « bon
chemin » (suite de
routeurs) dans le réseau de
la source à la destination.
Abstraction du réseau en
graphe
 Les nœuds sont des
routeurs
 Les liens sont les
liaisons physiques

Coût du lien : délai, prix
du lien ou niveau de
congestion
Src
Dst

«Bon chemin» :
 Typiquement un chemin
de coût minimal
Classification des algorithmes de routage
Information globale ou
locale ?
Statique ou
dynamique ?
Globale :
 Chaque routeur connaît
toutes les informations
de topologie, de coût
des liens, etc.
Locale :
 Le routeur ne connaît
que le côut des liens
vers les voisins.
 Calcul itératif et échange
régulier d’infos avec les
voisins
Statique :
 Les routes ne changent
pas dans le temps
Dynamique :
 Les routes changent
régulièrement

Mise à jour régulière

Pour prendre en compte
les modifications de
trafic et de topologie
Routage du plus court chemin
 On
calcule les plus courts chemins entre
tout couple de routeurs.
 Ceci permet de construire alors une table
de routage pour chaque routeur.
De
façon itérative : après k itérations, on
connaît le chemin le plus cours vers K
destinations
Algorithme de Dijkstra : exemple
étapes
0
1
2
3
4
5
start N
A
AD
ADE
ADEB
ADEBC
ADEBCF
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
2,A
1,A
5,A
inf
inf
2,A
4,D
2,D
inf
2,A
3,E
4,E
3,E
4,E
4,E
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
Notation :
 c(i,j) : coût du lien de i à j. Est infini si i et
j ne sont pas voisins
 D(v) : Valeur courante du coût du chemin
de la source à la destination V
 p(v) : noeud précédant v dans le chemin
de la source à v
 N : Ensemble des nœuds dont on
connaît le coût minimal
Routage par inondation
 Principe
: chaque paquet entrant est émis
sur chaque ligne de sortie (excepté sur la
ligne d'arrivée).
 Éviter
une inondation infinie
 Gérer
la liste des paquets déjà rencontrés
 chaque
routeur gère une telle liste
 chaque paquet doit être numéroté
Algorithmes dynamiques
 Ces
algorithmes adaptatifs différent
selon :
 l'endroit
où ils se procurent l'information
 l’information qu’ils reçoivent
 l'instant où ils changent leurs décisions
 toutes
les n secondes
 lorsque la topologie change, …
 la
métrique utilisée
Algorithmes dynamiques
 Routage
à vecteur de distance
 DV
distance vector routing
 Principe : échange local d’information globale
 Routage
 LS
à état de lien
link state routing
 Principe : échange global d’information locale
Routage à vecteur de distance : DV
 Chaque
routeur dispose d'une table de
routage précisant pour chaque
destination la meilleure distance connue et
par quelle ligne l'atteindre.
 Les informations (vecteurs) de distance
sont échangés régulièrement entre
routeurs voisins.
 protocole RIP (Routing Information
Protocol) du réseau Internet
Routage à vecteur de distance
 Hypothèse
: chaque routeur connaît la
nouvelle distance avec ses voisins
 Mise à jour des tables de routage
 toutes
les t milli-secondes par exemple
 chaque routeur
 envoie
son vecteur de distance à ses voisins
 reçoit un vecteur de distance de ses voisins
 effectue les mises à jour de son vecteur de
distance à partir de ceux qu'il a reçu
Routage à état de lien : LS
 Principe
: tout routeur doit
 découvrir
ses voisins (apprendre leurs
adresses)
 mesurer la distance vers chacun des voisins
 construire un paquet spécial disant tout ce qu'il
vient d'apprendre
 envoyer ce paquet spécial à tous les routeurs
 calculer le plus court chemin vers tous les
autres routeurs à partir des paquets reçus
Description 1/3
 Découvrir
ses voisins
 envoyer
sur chaque ligne de sortie un paquet
spécial (HELLO) d'interrogation
 récupérer les infos (nom, adresse IP, …) de la
réponse
 Mesurer
la distance avec les voisins
 envoyer
sur chaque ligne de sortie un paquet
spécial (ECHO)
 mesurer le temps pris pour récupérer la
réponse
Description 2/3
 Construire
 ce
un paquet d'info d'état de lien
paquet comprend
 l'identité
du routeur source
 un numéro de séquence
 l'âge du paquet
 la liste des voisins accompagné du temps
d'acheminement
Description 3/3
 Envoyer
les paquets d'info d'état de lien
 utiliser
l'inondation
 contrôler l'inondation
 chaque
routeur contient une trace de toutes les
paires (routeur source, numéro de séquence) reçues
 si un paquet déjà arrivé arrive, il est détruit
 Calculer
la nouvelle table de routage
 l'algorithme
de Dijkstra peut être utilisé au
niveau de chaque routeur
Routage à état de lien
 Avantage
 permet
d'éviter des convergences trop lentes
 Inconvénient
 Un
mauvais fonctionnement est possible :
 si
la diffusion des paquets se passe mal
 si les calculs de route sont faux
Exemple 1/2
4
B
A
5
2
1
E
C
3
D
6
8
F
7
Autres algorithmes
 Routage
hiérarchique
 nécessaire
lorsque le sous-réseau est trop
volumineux (en nombre de routeurs)
 Routage
par diffusion
 L’objectif
n’est plus d’atteindre une destination
mais toutes les destinations
Routage hiérarchique
 Les
tables de routage croissent avec le
nombre de routeurs dans un sous-réseau.
 Problèmes
 plus
de mémoire nécessaire
 plus de temps nécessaire pour explorer les
tables
 plus de largeur de bande nécessaire pour
envoyer les rapports d'état
Exemple de hiérarchie
Routage non hiérarchique
Table de routage de 1A
Routage hiérarchique
Table de routage de 1A
Critique
 Avantage
 économie
d’espace
 sur l’exemple, 7 entrées au lieu de 17 entrées
 Inconvénient
 performance
amoindrie
 la meilleure route pour aller de 1A vers 5C ?
Construction Hiérarchique


Agréger les routeurs en
régions autonomes,
“Autonomous Systems”
(AS)
Les routeurs d’un
même AS exécutent le
même protocole de
routage

protocole de routage
“intra-AS”
routeurs de passerelle
Routeurs spéciaux dans un
AS
 Exécutent les protocoles de
routage intra-AS
 Responsables du routage à
des destinations extérieurs à
l’AS


exécutent des protocoles
de routage inter-AS avec
d’autres routeurs de
passerelle
Routage Intra-AS et Inter-AS
C.b
Passerelles :
B.a
A.a
a
b
A.c
C
B
a
d
A
b
Routage inter-AS,
intra-AS dans la
passerelle A.c
c
a
c
b
•Exécutent le
routage inter-AS
entre elles
•Exécutent le
routage intra-AS
avec les autres
routeurs de l’AS
Couche
réseau
Couche
liaison
Couche
physique
Routage Intra-AS et Inter-AS
Routage Inter-AS
entre A et B
B.a
C.b
A.a
a
Host
h1
b
C
A.c
a
d
c
b
A
Routage Intra-AS
dans l’AS A
a
Host
h2
c
B
b
Routage Intra-AS
Dans l’AS B
Routage par diffusion
 Objectif
: atteindre toutes les destinations
 Exemples de routage par diffusion
 mises
à jour d'informations boursières
 radio/télévision
 Le
routage par diffusion (broadcast) peut
s’implémenter de plusieurs manières.
Implémentation
 Disposer
de toutes les adresses des
destinataires et envoyer un paquet à chacun
d'entre eux.
 Inondation
 Routage à destinations multiples
 Utilisation d'un arbre recouvrant (spanning tree)
 Retransmission sur les autres chemins (reverse
path forwarding)
si le paquet arrive de la source par la ligne normalement
utilisée (celle indiquée dans la table de routage), le paquet
est envoyé sur chaque sortie
 sinon le paquet est détruit

Congestion
Nombre de paquets reçus
Trop de paquets présents dans le sousréseau
⇒ dégradation des performances
Idéale
Acceptable
Congestion
Nombre de paquets transmis
Deux approches
«
Boucle ouverte »
 Prévention
: on essaie d’éviter que la
congestion ne se produise.
«
Boucle fermée »
 Action
: on prend des mesures lorsque la
congestion apparaît.
Ouverte : canalisation du trafic
 Les
techniques de canalisation du trafic
(« traffic shaping ») ont pour but de
réguler la vitesse d'écoulement des
données.
 Elles tentent d’éviter les saccades.
 Elles sont utilisées dans les réseaux ATM.
 Elles peuvent être adaptées aux sousréseaux fonctionnant en mode nonconnecté.
Contrôle « en boucle fermée »
 Des
moyens de contrôle basés sur la
rétroaction sont utilisés.
 Trois phases peuvent être identifiées :



surveiller le système ;
alerter les routeurs ;
ajuster le comportement du système.
Couche réseau dans Internet
Couche Transport : TCP, UDP
Couche
Réseau
Protocoles de
Routage
•Choix du chemin
•RIP, OSPF, BGP
Protocole IP
•Adressage
•Format des datagrammes
•Traitement des paquets
Table
de
routage
Protocole ICMP
•Rapport
d’erreur
•signalisation
Couche de liaison
Couche Physique
Routage Intra-AS
❒ Plus connus sous le nom de Interior
Gateway Protocols (IGP)
❒ IGPs les plus utilisés :
RIP : Routing Information
Protocol
❍
❍
OSPF : Open Shortest Path First
IGRP : Interior Gateway Routing
Protocol (Cisco propr.)
❍
RIP
 Algorithme
Distance vector
 Inclus dans BSD-UNIX depuis 1982
 métrique de coût : # de hops (max = 15 hops)
 Vecteurs de Distance : échangés toutes les 30
sec via des advertisements
 Chaque advertisement est envoyé à au plus 25
réseaux
OSPF
 “open”
: dans le domaine public
 Algorithme Link State

Utilise l’ algorithme de Dijkstra’s
 Les
advertisement OSPF sont envoyés à tout
l’AS par inondation (flooding)
Routage inter-AS : BGP
 BGP
(Border Gateway Protocol) : standard de
facto
 Protocole Path Vector :
 similaire au protocole Distance Vector
 Chaque Border Gateway diffuse à ces voisins la
totalité du chemin entire path (I.e, la suite des
ASs) jusqu’à la destination
 Ex : la passerelle X envoie son chemin à la
dest. Z :
Path (X,Z) = X,Y1,Y2,Y3,…,Z
Envoyer un datagramme de la source à la dest.
table de routage de A
Dest. Ner. next router Nhops
223.1.1
223.1.2
223.1.3
Datagramme IP :
Champsaddr IP addr IP
divers source dest

data
Le datagramme reste
inchangé durant sa
traversé du réseau
A
223.1.1.4
223.1.1.4
1
2
2
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
223.1.3.2
E
Envoyer un datagramme de la source à la dest.
Dest. Net. next router Nhops
Champs
data
divers223.1.1.1223.1.1.3



Regarder la partie réseau
de l’adresse de B
Vérifier si B est sur le
même réseau que A
La couche liaison envoie
directement le datagramme
àB
 B et A sont directement
connectés
223.1.1
223.1.2
223.1.3
A
223.1.1.4
223.1.1.4
1
2
2
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
223.1.3.2
E
Envoyer un datagramme de la source à la dest.
Dest. Net. next router Nhops
Champs
data
divers223.1.1.1223.1.2.2



Regarder la partie réseau de
l’adresse de E
E est sur un réseau différent
 A et E ne sont pas
directement attachés
 Regarder dans la table de
routage : le routeur suivant
pour le réseau de E est
223.1.1.4
La couche liaison envoie le
datagramme au routeur
223.1.1.4
223.1.1
223.1.2
223.1.3
A
223.1.1.4
223.1.1.4
1
2
2
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
223.1.3.2
E
Envoyer un datagramme de la source à la dest.
Champs
data
divers223.1.1.1223.1.2.3




Arrivée à 223.1.1.4 d’un paquet
destiné à 223.1.2.2
Regarde la partie réseau de
l’adresse de E
E est sur le même réseau que
l’interface routeur 223.1.2.9
 Envoyer le paquet à ce routeur
La couche liaison envoie le
datagramme à 223.1.2.2 via
l’interface 223.1.2.9
Le datagramme arrive à
223.1.2.2!!!
Dest.
next
network router Nhops interface
223.1.1
223.1.2
223.1.3
A
-
1
1
1
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
223.1.3.2
E
Paquet IP : datagramme

Le paquet IP est composé




d'un en-tête (20 octets)
des options (0 ou
plusieurs (max 10) mots
de 4 octets)
des données
La longueur totale d'un
paquet IP est limitée à
64 Koctets
Fragmentation

Chaque réseau possède une limite pour la longueur
des messages


MTU: « Maximum Transmission Unit »
Un paquet doit être fragmenté par l'émetteur si
MTU < datagramme et réassemblé par le récepteur
Protocole de liaison de
données
Ethernet
IEEE 802.3
Bus à jeton
Anneau à jeton
FDDI
PPP
MTU (octets)
1500
1492
8191
5000 (typique)
4500
1500 (négociable)
Champs d’en-tête 1/4
 Version
: numéro de la version du protocole
utilisé pour créer le datagramme (4 bits)
 Lg_ent : longueur de l’en-tête exprimée en mots
de 32 bits (4 bits)
 Type de service : précise le mode de gestion du
datagramme (8 bits)



Priorité : 0 (normal) → 7 (supervision réseau) (3 bits)
Indicateurs : délai (D), débit(T) , fiabilité (R)
2 bits inutilisés
Champs d’en-tête 2/4
 Longueur
totale : en octets (16 bits)
 Identification : permet au destinataire de
savoir à quel datagramme appartient un
fragment (16 bits)
 Drapeau : 3 bits
 DF
: “ Don’t fragment ”
 MF : “ More fragments ”
 1bit inutilisé
Champs d’en-tête 3/4
 Dep_fragment
: localisation du déplacement du
fragment dans le datagramme (13 bits)
 Durée de vie (TTL) : compteur utilisé pour limiter
la durée de vie des datagrammes (8 bits) :


décrémenté à chaque saut
détruit quand passe à 0
 Protocole
: indique par un numéro à quel
protocole confier le contenu du datagramme
(TCP ou UDP) (8 bits)
IPv6

adresses plus longues qu'IPv4, sur 16 octets


simplification de l'en-tête des datagrammes. L'en-tête du
datagramme de base IPv6 ne comprend que 7 champs
(contre 14 pour IPv4).


les champs obligatoires de l'ancienne version sont devenus
optionnels.
Une plus grande sécurité:


traiter les datagrammes plus rapidement
plus de souplesse aux options.


IPv4 232=4,29.109 IPv6 2128=3,4.1038 adresses.
L'authentification et la confidentialité constituent les fonctions de
sécurité majeures du protocole IPv6.
Types de services. rarement utilisé sur IPv4, prise en
compte d’un trafic multimédia.
IPv6 : Format de l’en-tête
0
4
vers
8
16
31
identificateur de flux
classe
longueur des données
en-tête suiv.
adresse de la source
adresse de la destination
nbre de sauts