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