Couche réseau Fonctionnalités de la couche réseau Objectifs : Sommaire : ❒ Comprendre les principes ❒ sous-jacents de la couche réseau : ❍ ❍ ❍ routage (choix du chemin) Passage à l’échelle Comment fonctionne un routeur ❒ Description du routage dans ❒ ❒ ❒ ❒ Internet ❍ ❍ ❒ ❒ Transporter des paquets de Services de couche réseau Principes du routage Routage hiérarchique IP Protocole de routage dans Internet intra-domaine inter-domaine Architecture de routeur ? 4 : Network Layer 4a-1 Modèle de service de la couche réseau service abstraction Q : Quel est le modèle de service pour les canaux transportant des paquets de la source à la destination ? l’émetteur vers le récepteur ❒ Les protocoles de couche réseau s’exécutent dans dans chaque hôte et routeur. Trois fonctions principales : ❒ Choix du chemin : route suivie par les paquets de la source à la dest. Algorithmes de routage ❒ Commutation : transporter les paquets du port d’ entrée vers le bon port de sortie. ❒ Mise en place de l’appel : Dans les réseaux à commutation de circuits, la mise en place du circuit est effectuée par la couche réseau. ? ? ? network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical 4 : Network Layer place ❒ Chaque paquet contient un identificateur de VC (et non pas ❒ l’adresse de la destination) Chaque routeur maintient un « état » pour chaque connexion qui traverse le routeur ❍ Les connexions dans la couche transport ne mettent en jeu que les systèmes terminaux ❒ Des ressources du lien (bande passante) ou du routeur 4 : Network Layer 4a-3 Circuits virtuels : protocoles de signalisation (mémoire) peuvent être allouées au VC ❍ 4 : Network Layer Pour garantir des performances 4a-4 Réseaux Datagramme : le modèle Internet ❒ Pas de mise en place de circuit ❒ Utilisés pour mettre en place et gérer un VC ❒ routeurs : aucun état mémorisé au sujet des connexions ❒ Ne sont pas utilisés (du moins de façon visible) ❒ Les paquets sont typiquement routés en fonction de l’adresse ❒ Utilisés dans ATM, frame-relay et X.25 ❍ Pas de notion de connexion au niveau réseau de destination dans l’Internet actuel ❍ application transport 5. Data flow begins network 4. Call connected data link 1. Initiate call physical 4a-2 ❒ Avant d’émettre des données, le circuit doit être mis en Circuit virtuel ou datagramme ? paquet (pas de gigue) ? ❒ Transmission sans pertes ? ❒ Réception dans l’ordre ? ❒ Annoncer une indication de congestion à l’émetteur ? network data link physical Le « chemin » de la source à la destination se comporte comme un circuit téléphonique la couche réseau : ❒ Préservation du délai inter- network data link physical Circuits virtuels L’abstraction que donne ❒ Bande passante garantie ? application transport network data link physical 6. Receive data application 3. Accept call transport 2. incoming call network data link physical 4 : Network Layer 4a-5 Des paquets avec la même source et destination peuvent suivre des trajets différents application transport network data link 1. Send data physical application transport 2. Receive data network data link physical 4 : Network Layer 4a-6 1 Modèle de service de la couche réseau Architecture Réseau Internet Modèle de Bande Service Passante Au mieux aucun Garanties ? Feedback de Congestion pertes Ordre Délai non non non oui oui oui oui oui non oui non non (inférence par les pertes) Pas de congestion Pas de congestion oui non oui non non ATM CBR Constante oui ATM VBR ATM ABR ATM UBR Débit garantie Minimum garantie Aucun ❒ Extension au modèle Internet : Intserv, Diffserv 4 : Network Layer 2 A ❒ B 2 1 D 3 C 3 1 5 F 1 E 2 «Bon chemin» : ❍ Coût du lien : délai, prix du lien ou niveau de congestion ❍ Typiquement un chemin de coût minimal Autres définitions possibles 4 : Network Layer 4a-9 Un Algorithme de routage Link-State k itérations, on connaît le chemin le plus cours vers K destinations ATM ❒ Évolution de la téléphonie ordinateurs ❒ Parole humaine : ❍ Service “élastique”, pas ❍ Contrainte de délai de contrainte de délai stricte stricte ❒ Systèmes terminaux ❍ Besoin de qualité de intelligents services garanties ❍ Pouvant s’adapter, ❒ Systèmes terminaux contrôler leur émission et “simplistes” faire de la compensation ❍ téléphones de pertes ❍ La complexité est ❍ Réseau simple, complexité aux extrémités interne au réseau 4 : Network Layer Information globale ou locale ? 5 Abstraction du réseau en graphe ❒ Les nœuds sont des routeurs ❒ Les liens sont les liaisons physiques La topologie et le coût des liens sont connus de tous les nœuds ❍ accompli avec une diffusion de l’état des liens ❍ Tout les nœuds ont la même info ❒ Calculer le plus court chemin (le chemin le moins coûteux) d’un nœud à tout les autres ❍ Génère la table de routage du noeud ❍ De façon itérative : après ❒ Échange de données entre 4a-8 Classification des algorithmes de routage Protocole de routage Objectif : choisir un « bon chemin » (suite de routeurs) dans le réseau de la source à la destination. Algorithme de Dijkstra Internet 4a-7 Routage ❍ Datagramme ou VC ? 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 4 : Network Layer 4a-11 Globale : ❒ Chaque routeur connaît toutes les informations de topologie, de coût des liens, etc. ❒ Algorithme “link state (LS)” 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 ❒ Algorithmes “distance vector (DS)” Statique ou dynamique ? Statique : ❒ Les routes ne changent pas dans le temps Dynamique : ❒ Les routes changent régulièrement ❍ Mise à jour régulière ❍ En réponse aux changement de coût des liens 4 : Network Layer 4a-10 Algorithme de Dijksra 1 Initialisation : 2 N = {A} 3 Pour tout noeud v 4 si v est adjacent à A 5 alors D(v) = c(A,v) 6 Sinon D(v) = infinity 7 boucle 8 Trouver w Ï N tel que D(w) est minimal 10 ajouter w à N 11 Mettre à jour D(v) pour tout les nœuds v Ï N adjacents à w 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 jusqu’à la fin des nœuds de N 4 : Network Layer 4a-12 2 Algorithme de Dijkstra : exemple start N A AD ADE ADEB ADEBC ADEBCF Complexité de l’algorithme : n noeuds ❒ n*(n+1)/2 comparaisons : O(n**2) ❒ implémentation plus efficace possible : O(nlogn) D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A inf 5,A inf 2,A 4,D 2,D inf 2,A 3,E 4,E 3,E 4,E 4,E Oscillations possibles : ❒ Ex : coût du lien = niveau de trafic 5 2 A 3 B 2 1 C F 1 3 D 1 2 E 1 D 5 1 0 A 1+e 0 0 C e ❒ Continue jusqu’à ce que les nœuds ne s’échangent plus d’info ❒ Auto-terminaison : pas de «signal» d’arrêt asynchrone : Structure de la Table de distance ❒ Propre à chaque nœud ❒ exemple : dans le noeud X, pour la dest. B 1 X 1+e … recalcul E E distance de X à = Y, via Z 2 = c(X,Z) + minw{D (Y,w)} E D () A B D A 1 14 5 B 7 8 5 C 6 9 4 D 4 11 2 D D = 2+2 = 4 D D (A,D) = c(E,D) + minw {D (A,w)} Z coût destination via E E Table de routage = 2+3 = 5 boucle! B D (A,B) = c(E,B) + minw{D (A,w)} boucle! 4 : Network Layer 4a-16 Algorithme de routage DV coût destination via Lien sortant , coût A B D A 1 14 5 A A,1 B 7 8 5 B D,5 C 6 9 4 C D,4 D 4 11 2 D D,4 destination D () destination 0 2 = 8+6 = 14 Table de distance A D 1+e 1 B e 0 C 4 : Network Layer 4a-14 4 : Network Layer 4a-15 E B … recalcul D (C,D) = c(E,D) + minw {D (C,w)} ❒ L’échange des infos ne D (Y,Z) C C 8 1 ❒ Une colonne par voisin Y via le voisin Z : 7 A ❒ Une ligne par destination possible nécessite pas d’horloge distribué : ❒ Chaque nœud ne communique qu’avec ses voisins 1 2+e 2+e 0 0 Table de distance : exemple Algorithme de routage DV itératif : D … recalculer le routage initialement 4 : Network Layer 4a-13 A 0 0 D 1+e 1 B 0 0 C 1 e A 2+e B destination étapes 0 1 2 3 4 5 Discussion Itératif, asynchrone : chaque itération locale est causée par : ❒ Changement de coût d’un lien adjacent ❒ Message d’un voisin du au changement de sa table de distance Distribué : ❒ Chaque nœud annonce à ces voisins seulement quand sa table de distance change Chaque noeud : attend (un changement dans le coût local ou un msg du voisin) Recalcule la table de distance Si la table de distance change, annonce aux voisins Table de routage 4 : Network Layer 4a-17 4 : Network Layer 4a-18 3 Algorithme de routage DV Algorithme de routage DV : exemple Dans chaque nœud, X : 1 Initialisation : 2 Pour tout nœud adjacent v : 3 DX(*,v) = inf X 4 D (v,v) = c(X,v) 5 pour toute destination y X 6 envoyer min D (y,w) à tous les voisins w X Y 2 7 1 Z w 4 : Network Layer 4a-19 Algorithme de routage DV : exemple 4 : Network Layer 4a-20 Comparaison des algorithmes LS et DV complexité ❒ LS : avec n noeuds, E liens, O(nE) msgs sont envoyés X 2 Y 7 ❒ DV : échange entre les 1 Z D (Y,Z) = c(X,Z) + minw{D (Y,w)} = 7+1 = 8 Y X D (Z,Y) = c(X,Y) + minw {D (Z,w)} = 2+1 = 3 ❍ voisins seulement ❍ Le temps de convergence varie Z X Robustesse : Qu’arrive t’il si le routeur tombe en panne ? LS : Vitesse de Convergence ❍ Le nœud peut annoncer un coût erroné Chaque nœud ne calcule que sa propre table de routage DV : ❒ LS : O(n**2) ❍ Peut osciller ❒ DV : Le temps de convergence varie ❍ Boucle possible ❍ Comptage à l’infini possible ❍ ❍ Le nœud peut annoncer un coût erroné Tout les nœuds utilisent la table des autres nœuds • L’erreur se propage dans le réseau 4 : Network Layer 4a-21 Routage Hiérarchique Routage Hiérarchique Jusqu’ici nous avons étudié un réseau idéal ❒ Tous les routeurs sont identiques ❒ Un seul réseau … pas vrai en pratique Facteur d’échelle : avec 50 autonomie administrative millions de destinations : ❒ internet = réseau des ❒ On ne peut enregistrer toutes les destinations dans la table de routage! 4 : Network Layer 4a-22 réseaux ❒ Chaque administrateur de réseau veut contrôler le routage dans son réseau 4 : Network Layer 4a-23 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 4 : Network Layer 4a-24 4 Routage Intra-AS et Inter-AS C.b a C Passerelles : B.a A.a b A.c A d a a b Routage Intra-AS et Inter-AS c B b c •Exécutent le routage inter-AS entre elles •Exécutent le routage intra-AS avec les autres routeurs de l’AS a C A.a b Host h1 A.c d a c b A Routage Intra-AS dans l’AS A Couche réseau Routage inter-AS, intra-AS dans la passerelle A.c Routage Inter-AS entre A et B B.a C.b Couche liaison Host h2 c B b Routage Intra-AS Dans l’AS B Couche physique 4 : Network Layer 4a-25 Couche réseau dans Internet 4 : Network Layer 4a-26 Routage Intra-AS ❒ Plus connus sous le nom de Interior Gateway Protocols (IGP) Couche Transport : TCP, UDP Couche Réseau a Protocoles de Routage •Choix du chemin •RIP, OSPF, BGP ❒ IGPs les plus utilisés : Protocole IP •Adressage •Format des datagrammes •Traitement des paquets Table de routage ❍ RIP : Routing Information Protocol ❍ OSPF Protocole ICMP •Rapport d’erreur •signalisation : Open Shortest Path First ❍ IGRP : Interior Gateway Routing Protocol (Cisco propr.) Couche de liaison Couche Physique 4 : Network Layer 4a-27 RIP 4 : Network Layer 4a-28 OSPF Algorithme Distance vector Inclu 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 ❒ ❒ ❒ ❒ 4 : Network Layer 4a-29 “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) 4 : Network Layer 4a-30 5 Fonctionnalités avancées d’OSPF OSPF hiérarchique Sécurité : tous les messages OSPF sont authentifiés ; des connexions TCP sont utilisées ❒ Multipath est autorisé (pas dans RIP) ❒ Pour chaque lien, plusieurs métriques de coût en fonction des TOS peuvent être définies ❒ Support intégré de l’unicast et du multicast : ❒ ❍ ❒ Multicast OSPF (MOSPF) utilise la même topologie qu’OSPF OSPF Hiérarchique dans les grands domaines. 4 : Network Layer 4a-31 Routage inter-AS : BGP ❒ ❒ 4 : Network Layer 4a-32 Routage inter-AS : BGP Hypothèse : la passerelle X envoie son chemin à la passerelle W ❒ W peut choisir ou ne pas choisir le chemin offert par X ❍ coût, politique (ne pas router via les autres ISPs) ❒ Si W choisit le chemin annoncé par X, alors : Path (W,Z) = w, Path (X,Z) ❒ Note : X peut contrôler le trafic entrant en contrôlant ces advertisements ❍ Ex : nous ne voulons pas router le trafic de Z -> ne rien annoncer à Z 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 4 : Network Layer 4a-33 Adresse IP : introduction ❒ Addresse IP : Adresse IP ❒ Adresse IP 223.1.1.1 identificateur sur 32 bits ❍ ❒ identifie pour chaque interface hôte et routeur interface : connexion entre un hôte ou routeur et la couche physique ❍ ❍ ❍ 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 ❒ Les routeurs ont typiquement plusieurs 223.1.3.2 223.1.3.1 interfaces Les hôtes peuvent avoir plusieurs interfaces Les adresses IP sont associées à une interface 223.1.1.1 = 11011111 00000001 00000001 00000001 223 4 : Network Layer 4a-34 1 1 1 4 : Network Layer 4a-35 Partie réseau (bits de poids forts) Partie hôte (bits de poids faible) Réseau ? (du point de vue IP) ❍ Les interfaces avec la même partie réseau de l’adresse IP ❍ Et qui peuvent communiquer sans avoir besoin d’un routeur de passerelle 223.1.1.1 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) 4 : Network Layer 4a-36 6 Adresse IP : CIDR Adresse IP ❒ Adressage par classe : “classe” d’adressage : ❍ utilisation inefficace de l’espace d’adressage Ex : une adresse de classe B a assez de place pour pour 65K hôtes, même si il n’y a que 2K hôtes dans ce réseau ❍ CIDR : Classless InterDomain Routing ❍ classe A 0 ré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 ❍ hôte ❍ 192.0.0.0 to 223.255.255.255 host part network part 224.0.0.0 to 239.255.255.255 Adresse multicast 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 11001000 00010111 00010000 00000000 32 bits 200.23.16.0/23 4 : Network Layer 4a-37 Adresse IP : the last word... 4 : Network Layer 4a-38 Adressage hiérarchique : agrégation de route Q : Comment un ISP récupère-t-il un bloc d’adresses IP ? R : ICANN : Internet Corporation for Assigned Organisation 0 200.23.16.0/23 Names and Numbers ❍ alloue les adresses ❍ Gère le DNS ❍ Assigne les noms de domaines Organisation 1 “Envoie-moi tout ce dont l’adresse commence par 200.23.16.0/20” 200.23.18.0/23 Organisation 2 200.23.20.0/23 Organisation 7 . . . . . . Fly-By-Night-ISP Internet 200.23.30.0/23 “Envoie-moi tout ce dont l’adresse commence par 199.31.0.0/16” ISPs-R-Us 4 : Network Layer 4a-39 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 : Champs addr IP addr IP divers source dest data A ❒ Le datagramme reste inchangé durant sa traversé du réseau B 223.1.1.4 223.1.1.4 1 2 2 Champs data divers 223.1.1.1 223.1.1.3 réseau que A 223.1.2.9 223.1.2.2 223.1.1 223.1.2 223.1.3 A ❒ La couche liaison envoie 223.1.2.1 223.1.3.27 Dest. Net. next router Nhops l’adresse de B ❒ Vérifier si B est sur le même 223.1.1.2 223.1.1.4 223.1.3.1 Envoyer un datagramme de la source à la dest. ❒ Regarder la partie réseau de 223.1.1.1 223.1.1.3 4 : Network Layer 4a-40 E 223.1.3.2 4 : Network Layer 4a-41 directement le datagramme à B ❍ B et A sont directement connectés B 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.1.3 223.1.3.1 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 4 : Network Layer 4a-42 7 Envoyer un datagramme de la source à la dest. Champs data divers 223.1.1.1 223.1.2.3 Dest. Net. next router Nhops 223.1.1 223.1.2 223.1.3 ❒ Regarder la partie réseau de l’adresse de E différent A et E ne sont pas directement attachés Regarder dans la table de routage : le routeur suivant ❒ E est sur un réseau ❍ ❍ A B pour le réseau de E est 223.1.1.4 Champs data divers 223.1.1.1 223.1.2.3 Arrivée à 223.1..1.4 d’un paquet destiné à 223.1.2.2 ❒ Regarde la partie réseau de 223.1.1.2 223.1.1.4 l’adresse de E 223.1.2.1 223.1.2.2 Dest. next network router Nhops interface 223.1.1 223.1.2 223.1.3 A ❒ E est sur le même réseau que 223.1.2.9 223.1.3.27 223.1.3.1 datagramme au routeur 223.1.1.4 1 2 2 223.1.1.1 223.1.1.3 ❒ La couche liaison envoie le 223.1.1.4 223.1.1.4 Envoyer un datagramme de la source à la dest. E 223.1.3.2 4 : Network Layer 4a-43 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!!! B - 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.1.3 223.1.3.1 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 4 : Network Layer 4a-44 Format de datagramme IP IP protocol version number header length (bytes) “type” of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to 32 bits type of ver head. len service length fragment 16-bit identifier flgs offset time to upper Internet layer live checksum total datagram length (bytes) for fragmentation/ reassembly 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) E.g. timestamp, record route taken, pecify list of routers to visit. 4 : Network Layer 4a-45 8