INF4032 Réseaux Informatiques 2024-2025 PDF
Document Details
Uploaded by TalentedHeliotrope7418
ESIEA
2024
B. Haidar
Tags
Summary
This document presents a course on computer networks (INF4032) for the 2024-2025 academic year. It covers fundamental concepts in network protocols, layered architectures like OSI and TCP/IP, and network applications. The course focuses on topics like TCP/UDP, NAT, HTTP, DNS, network programming, and dynamic routing.
Full Transcript
INF4032 Réseaux Informatiques Bassem Haidar 2024-2025 INF4032 Réseaux Informatiques Introduction rappel, couche transport TCP/UDP, NAT. Couche Application HTTP, DNS. Programmation réseaux Routage dynamique, IPv6 B. HAIDAR –...
INF4032 Réseaux Informatiques Bassem Haidar 2024-2025 INF4032 Réseaux Informatiques Introduction rappel, couche transport TCP/UDP, NAT. Couche Application HTTP, DNS. Programmation réseaux Routage dynamique, IPv6 B. HAIDAR – INF4032 2 Introduction Rappel TCP - IP Chapter 01 Qu'est-ce que l'Internet? composition Réseau mobile Des milliards d'appareils informatiques connectés ISP global Liens de communication – Fibre optique , cuivre, radio, ISP régional satellite Réseau local Des équipements intermédiaires, commutateurs de paquets: – routeurs et commutateurs Réseau institutionnel B. HAIDAR – INF4032 4 Appareils connectés à Internet 25 milliards de connexions IoT d'ici 2025 – bracelets, – montres, – balances et autres trackers, – voitures, – machines à laver, – réfrigérateurs, – ampoules, – compteurs, – thermostats, – valises, – poubelles, – Jusqu’au corps humain à devenir connectés. B. HAIDAR – INF4032 5 Qu'est-ce que l'Internet? composition Réseau mobile Internet: “réseau de réseaux ” ISP global – ISP interconnectés Protocoles contrôlent l'envoi, la réception des messages – par exemple, TCP, IP, HTTP, Skype, ISP régional 802.11 Normes Internet Réseau local – RFC: Request for comments – IETF: Internet Engineering Task Force Réseau institutionnel B. HAIDAR – INF4032 6 Qu'est-ce que l'Internet? Réseau mobile services infrastructure qui fournit des ISP global services aux applications: – Web, VoIP, email, jeux, e- commerce, réseaux sociaux,… fournit une interface de ISP régional programmation aux applications: – API permettent d'envoyer et de Réseau local recevoir des programmes d'application pour se «connecter» à Internet – offre des options de service, analogues au service postal Réseau institutionnel B. HAIDAR – INF4032 7 Qu'est ce qu'un protocole réseau? La nécessite de diviser en couches La nécessite de la normalisation Protocoles, Modèle en couches, Normalisation. B. HAIDAR – INF4032 8 Qu'est-ce qu'un protocole? Bonjour Requête connexion TCP Bonjour Réponse TCP connexion quelle heure est-il? Get http://site.fr/page.html 2:00 time B. HAIDAR – INF4032 9 Qu'est-ce qu'un protocole? protocoles humains: protocoles réseau: – "quelle heure est-il?" des machines plutôt que des – "J'ai une question" humains toute activité de communication... des messages spécifiques sur Internet contrôlée par des envoyés protocoles... des actions spécifiques prises lorsque les messages reçus ou les protocoles définissent le format, l'ordre d'autres événements des messages envoyés et reçus entre les entités du réseau, et les actions prises pour la transmission et la réception des messages B. HAIDAR – INF4032 10 Protocole “couches” Le réseaux permet a des machines interconnectées de pouvoir s’échanger les données. Comment gérer: Les réseaux sont complexes, avec – diversité des réseaux de nombreuses «pièces»: – problème de transmission – hôtes – problème de routage – routeurs – liens de divers médias – problème de congestion – applications – …. – protocoles – matériel, logiciel – … B. HAIDAR – INF4032 11 Pourquoi couches? Traiter des systèmes complexes: – Une structure explicite permettant l'identification, la relation des pièces d'un système complexe Diviser le problème en sous-problèmes Modèle de référence en couches – Modularisation facilite la maintenance et la mise à jour du système changement d'implémentation du service de la couche transparent pour le reste du système B. HAIDAR – INF4032 12 Analogie Professeur A Professor B J’aime I like Message bien les rabbits lapins Espagnol et Anglais Chinois et français Informations Traducteu L: pour le Traducteu L: r Allemand traducteur à r Allemand e Ik vind distance e Ik vind konijnen utiliser konijnen leuk l’Allemande leuk Secrétaire Fax:# Informations Secrétaire Fax:# L: pour la L: Allemand secrétaire à Allemand e Ik vind distance e Ik vind konijnen konijnen leuk utiliser le fax leuk B. HAIDAR – INF4032 13 Division du problème complexe en couches? OSI et TCP/IP. Nombre de couches? Unification de la division? Nécessité des standards? Modèles de références B. HAIDAR – INF4032 14 Modèles de référence Il existe deux modèles concurrents sur la façon dont le problème est divisé en couches. Ce sont les modèles OSI et TCP. OSI (Open Systems Interconnection) – Développé par ISO (International Standards Organization) – 7 couches TCP /IP – Utilisé dans l'Arpanet et sur Internet. – Mécanisme commun qui surpasse le modèle OSI. – 5 couches B. HAIDAR – INF4032 15 Modèles de référence B. HAIDAR – INF4032 16 Pile de protocoles Internet 1. Application: prise en charge des applications réseau a. FTP, SMTP, HTTP 2. Transport: transfert de données processus- processus a. TCP, UDP 3. Réseau: routage des datagrammes de la source à la destination a. IP, protocoles de routage 4. Liaison: transfert de données entre éléments de réseau voisins a. Ethernet, 802.111 (WiFi), PPP 5. Physique: bits "sur le fil" B. HAIDAR – INF4032 17 Modèle de référence ISO / OSI Présentation: permet aux applications d'interpréter la signification des données, – Chiffrement, – Compression, – Conventions spécifiques à la machine Session: synchronisation, récupération des échanges de données La pile Internet «manque» ces couches! – Ces services, si nécessaire, doivent être implémentés dans l'application. B. HAIDAR – INF4032 18 message M source application Encapsulation segment Ht Ht M transport datagram(Paquet) Hn Hrt M réseau trame Hl Hr Ht M liaison physique liaison physique switch destination Hr Ht M réseau M application Hl Hr Ht liaison Hn Ht M M Ht M transport physique Hr Ht M réseau Hl Hr Ht router M liaison physique B. HAIDAR – INF4032 19 Encapsulation 20 processus de peer-to-peer B. HAIDAR – INF4032 21 Couche physique La couche physique est chargée de transmettre des bits individuels d'un nœud au suivant. B. HAIDAR – INF4032 22 Couche liaison de données La couche liaison de données est chargée de transmettre les trames d'un nœud au suivant. B. HAIDAR – INF4032 23 Couche liaison de données Nœud au Nœud suivant B. HAIDAR – INF4032 24 La couche réseau La couche réseau est responsable de la livraison des paquets de la source d'origine à la destination finale. B. HAIDAR – INF4032 25 La couche transport La couche transport est responsable de la livraison des segments d’un processus source à un processus destination final. B. HAIDAR – INF4032 26 Couche application La couche application est chargée de fournir des services à l'utilisateur. B. HAIDAR – INF4032 27 Les couches du modèle TCP/IP Une couche est donc un sous-problème. Il peut exister plusieurs façons de résoudre le même sous- problème. Un protocole est un traitement. On dit qu'un protocole appartient à une couche s'il résout le sous-problème défini par cette couche. Plusieurs protocoles peuvent appartenir à la même couche s'ils résolvent le même sous-problème de manières différentes (exemple avec la couche transport : TCP et UDP). B. HAIDAR – INF4032 28 Suites de Protocoles Suites de Protocole TCP/IP TCP/IP est la suite de protocoles utilisée par Internet et comprend de nombreux protocoles. B. HAIDAR – INF4032 29 Encapsulation B. HAIDAR – INF4032 30 Encapsulation de Données Unités de Données du Protocole PDU L'encapsulation est le processus par lequel les protocoles ajoutent leurs informations aux données. À chaque étape du processus, une unité de données de protocole possède un nom différent qui reflète ses nouvelles fonctions. Il n'existe pas de convention de dénomination universelle pour les PDU, dans ce cours, les PDU sont nommés selon les protocoles de la suite TCP/IP. Les PDU qui transmettent la pile sont les suivantes: – Données (flux de données) – Segment – Paquet – Trame – Bits (flux de bits) B. HAIDAR – INF4032 31 Encapsulation de Données Exemple d'Encapsulation L'encapsulation est un processus descendant. Le niveau ci-dessus effectue son processus, puis le transmet au niveau suivant du modèle. Ce processus est répété par chaque couche jusqu'à ce qu'il soit envoyé sous forme de flux binaire. B. HAIDAR – INF4032 32 Encapsulation de Données Exemple de Désencapsulation Les données sont décapsulées au fur et à mesure qu'elles se déplacent vers le haut de la pile. Lorsqu'une couche termine son processus, cette couche retire son en-tête et le transmet au niveau suivant à traiter. Cette opération est répétée à chaque couche jusqu'à ce qu'il s'agit d'un flux de données que l'application peut traiter. – Reçu sous forme de bits (flux de bits) – Trame – Paquet – Segment – Données (flux de données) B. HAIDAR – INF4032 33 L'encapsulation Des bits sont ajoutés par chaque traitement (à chaque passage à travers une couche) pour que ce traitement puisse fonctionner. Ce traitement est un protocole qui résout le sous-problème que la couche définit. On dit que chaque protocole rajoute une entête. Si le protocole A est implémenté après le protocole B, alors on dit que le protocole A « encapsule » le protocole B. Les entêtes sont rajoutées successivement en https://inetdoc.developpez.com/tutoriels/modelisation-reseau/ préfixe du paquet sortant de la couche précédente : B. HAIDAR – INF4032 34 B. HAIDAR – INF4032 35 COUCHE PHYSIQUE B. HAIDAR – INF4032 36 Milieu de transmission Codage des données Modulation (ADSL,..) Multiplexage B. HAIDAR – INF4032 37 Supports de transmission Supports de transmission supports non- supports guides guides(technologies sans-fils) paires torsadées câbles coaxiaux fibres optiques B. HAIDAR – INF4032 38 Supports sans fil: propriétés Il transporte des signaux électromagnétiques représentant des données binaires utilisant des fréquences radio ou micro-ondes. – Meilleure option de mobilité Certaines limites du sans fil: – Zone de couverture – Interférences – Sécurité – Support partagé B. HAIDAR – INF4032 39 COUCHE LIAISON DE DONNÉES - ETHERNET B. HAIDAR – INF4032 40 Couche liaison de données La couche liaison de données est chargée de transmettre les trames d'un nœud au suivant. B. HAIDAR – INF4032 41 Evolution du standard Ethernet En 1985, la Computer Society de l'IEEE a lancé un projet, appelé Projet 802, visant à établir des normes pour permettre l'intercommunication entre les équipements de divers fabricants. Le projet 802 est un moyen de spécifier les fonctions de la couche physique et de la couche liaison de données des principaux protocoles LAN. B. HAIDAR – INF4032 42 L'évolution Ethernet sur quatre générations B. HAIDAR – INF4032 43 Structure de la trame Ethernet Préambule - 7 octets de 0 et de 1 alternés pour alerter le récepteur et lui permettre de se synchroniser Délimiteur de trame de début (SFD) - 1 octet - 10101011 signale le début d'une trame, dernière chance de synchronisation - les 2 derniers bits sont 11 Adresse de destination (DA) - 6 octets - contient l'adresse physique de la ou des stations de destination Adresse source (SA) - 6 octets - contient l'adresse physique de l'expéditeur Longueur / type - s'il est inférieur à 1518, il définit la longueur du champ de données - s'il est supérieur à 1536, il définit le type du paquet PDU qui est encapsulé Données - données encapsulées à partir de protocoles de couche supérieure: 46 ~ 1500 octets CRC - CRC-32 B. HAIDAR – INF4032 44 Adresse Ethernet / adresse MAC / adresse physique Cette adresse est l'adresse de la carte réseau elle-même A quoi ça ressemble ? B. HAIDAR – INF4032 45 Exemple d'adresse Ethernet en notation hexadécimale L'adresse MAC Ethernet de couche 2 est une valeur binaire de 48 bits exprimée en 12 chiffres hexadécimaux. IEEE oblige un fournisseur à suivre deux règles simples: – Doit utiliser l'OUI attribuée par ce fournisseur comme les trois premiers octets. – Toutes les adresses MAC avec le même OUI doivent se voir attribuer une valeur unique dans les trois derniers octets. B. HAIDAR – INF4032 46 Traitement de la trame Ethernet B. HAIDAR – INF4032 47 Traitement de la trame Ethernet L'interface réseau (Network Interface Card) NIC examine les informations pour voir si l'adresse MAC de destination dans la trame correspond à l'adresse MAC physique stockée dans cette interface. S'il n'y a pas de correspondance, l'appareil rejette la trame. En cas de correspondance, la carte réseau transmet la trame aux couches OSI, où le processus de dé-encapsulation a lieu. B. HAIDAR – INF4032 48 Apprentissage des adresses MAC Un commutateur Ethernet est un dispositif de couche 2. Il utilise les adresses MAC pour prendre des décisions de transfert. Je n’ai pas cette adresse Mac dans ma table, je vais La table d'adresses MAC est l’ajouter avec le port correspondant parfois appelée table de mémoire adressable par contenu (Content Adressable Memory ou CAM). Apprendre: examiner l'adresse MAC source B. HAIDAR – INF4032 49 Apprentissage des adresses MAC Transférer: examiner l'adresse MAC de destination B. HAIDAR – INF4032 50 Filtrage des trames PC-D renvoie une trame au PC-A et le commutateur apprend l’adresse MAC du PC-D. B. HAIDAR – INF4032 51 Filtrage des trames (suite) Étant donné que la table d’adresses MAC du commutateur contient l’adresse MAC du PC-A, elle n’envoie la trame que sur le port 1. B. HAIDAR – INF4032 52 Filtrage des trames (suite) PC-A envoie une autre trame à PC-D. La table du commutateur contient désormais l’adresse MAC du PC-D, de sorte qu’il n’envoie la trame que sur le port 4. B. HAIDAR – INF4032 53 Apprentissage des adresses MAC B. HAIDAR – INF4032 54 COUCHE RÉSEAUX B. HAIDAR – INF4032 55 La couche réseau La couche réseau est responsable de la livraison des paquets de la source d'origine à la destination finale. la couche réseau est impliquée au niveau de l'hôte source, de l'hôte de destination et de tous les routeurs du chemin (R2, R4, R5 et R7). Au niveau de l'hôte source (Alice), la couche réseau accepte un paquet d'une couche transport, encapsule le paquet dans un datagramme et délivre le paquet à la couche liaison de données. Au niveau de l'hôte de destination (Bob), le datagramme est désencapsulé et le paquet est extrait et livré à la couche de transport correspondante. Un routeur dans le chemin est normalement représenté avec deux couches de liaison de données et deux couches physiques, car il reçoit un paquet d'un réseau et le transmet à un autre réseau. B. HAIDAR – INF4032 56 Trois fonctions clés de la couche réseau Fonctions de la couche réseau : Analogie : faire un voyage Adressage : attribuez une adresse Transfert : processus de passage à logique unique à chaque appareil travers un échangeur unique Transfert : déplacez les paquets de Routage : processus de planification l'entrée du routeur vers la sortie du voyage de la source à la appropriée du routeur destination Routage : déterminer la route empruntée par les paquets de la source à la destination – Routage statique – Routage dynamique algorithmes de routage B. HAIDAR – INF4032 57 PROTOCOLES DE LA COUCHE RÉSEAU La couche réseau de la version 4 peut être considérée comme un protocole principal et deux protocoles auxiliaires. Le protocole principal, Internet Protocol version 4 (IPv4) : – Est responsable de la mise en paquets, du transfert et de la livraison d'un paquet. ICMPv4 (Internet Control Message Protocol version 4) : – aide IPv4 à gérer certaines erreurs pouvant survenir lors de la livraison. ARP (protocole de résolution d'adresse) : – utilisé dans le mappage d'adresses (mappage des adresses de la couche réseau aux adresses de la couche liaison). B. HAIDAR – INF4032 58 Position d'IP et d'autres protocoles de couche réseau dans la suite de protocoles TCP/IP Application Transport Réseaux Liaison - Physique B. HAIDAR – INF4032 59 IP datagram format IP protocol version 32 bits number total datagram length (bytes) header length head. type of (bytes) ver length len service for “type” of data fragment fragmentation/ 16-bit identifier flgs offset reassembly max number time to upper header remaining hops live layer checksum (decremented at each router) 32 bit source IP address 32 bit destination IP address upper layer protocol to deliver payload to options (if any) e.g. timestamp, record route taken, specify data list of routers (variable length, to visit. typically a TCP or UDP segment) B. HAIDAR – INF4032 La structure d'une adresse IPv4 Les parties réseau et hôte Une adresse IPv4 est une adresse hiérarchique de 32 bits qui se compose d'une partie réseau et d'une partie hôte. Lorsque vous déterminez la partie réseau et la partie hôte, il est nécessaire d'examiner le flux de 32 bits. Le masque de sous-réseau sert à déterminer la partie réseau d'une adresse IP. B. HAIDAR – INF4032 61 La structure d'une adresse IPv4 Le masque de sous-réseau Pour identifier les parties réseau et hôte d'une adresse IPv4, chaque bit du masque de sous-réseau est comparé à l'adresse IPv4, de gauche à droite. En réalité, le processus utilisé pour identifier la partie réseau et la partie hôte est appelé l'opération AND. B. HAIDAR – INF4032 62 La structure d'une adresse La longueur de préfixe Une longueur de préfixe est une méthode fastidieux Masque de sous- Adresse 32 bits Préfixe réseau Longueur d'exprimer une adresse de masque de sous-réseau. 255.0.0.0 11111111.00000000.00000000.00000000 /8 En fait, la longueur de préfixe 255.255.0.0 11111111.11111111.00000000.00000000 /16 correspond au nombre de bits 255.255.255.0 11111111.11111111.11111111.00000000 /24 définis sur 1 dans le masque de sous-réseau. 255.255.255.128 11111111.111111.11111111.10000000 /25 Elle est notée au moyen de la « 255.255.255.192 11111111.11111111.11111111.11000000 /26 notation de barre oblique », il suffit donc de compter le 255.255.255.224 11111111.11111111.11111111.11100000 /27 nombre de bits du masque de 255.255.255.240 11111111.11111111.11111111.11110000 /28 sous-réseau et d'y ajouter une barre oblique. 255.255.255.248 11111111.11111111.11111111.11111000 /29 255.255.255.252 11111111.11111111.11111111.11111100 /30 B. HAIDAR – INF4032 63 Structure d'adresse IPv4 Détermination du réseau: AND (ET) logique Une opération logique AND est utilisée pour déterminer l'adresse réseau. – Le AND (ET) logique est la comparaison de deux bits où un 1 AND (ET) 1 produit un 1 et toutes les autres combinaisons produisent un 0. – 1 AND 1 = 1, 0 AND 1 = 0, 1 AND 0 = 0, 0 AND 0 = 0 – 1 = Vrai et 0 = Faux Pour identifier l'adresse réseau , l'adresse IPv4 d'un hôte est soumise bit par bit à l'opération AND de manière logique avec le masque de sous-réseau B. HAIDAR – INF4032 64 La structure d'une adresse IPv4 Adresses réseau, d'hôte et de diffusion Au sein de chaque réseau se trouvent trois types d'adresses IP: – Adresse réseau – Adresses d'hôtes – Adresse de diffusion Partie réseau Partie hôte Bits d'hôte Masque de sous- 255 255 255 0 réseau. 11111111 111111 111111 00000000 255.255.255.0 or /24 Adresse réseau 192 168 10 0 All 0s 192.168.10.0 or /24 11000000 10100000 00001010 00000000 First address 192 168 10 1 All 0s and a 1 192.168.10.1 or /24 11000000 10100000 00001010 00000001 Last address 192 168 10 254 All 1s and a 0 192.168.10.254 or /24 11000000 10100000 00001010 11111110 Adresse de diffusion 192 168 10 255 All 1s and a 0 192.168.10.255 or /24 11000000 10100000 00001010 11111111 B. HAIDAR – INF4032 65 Exercice : Plan d'adressage IPv4 pour la branche de Paris Une entreprise multinationale souhaite établir un plan d'adressage IPv4 pour sa nouvelle branche qu'elle a créée à Paris. La branche de Paris comporte 5 départements comme suit : Ressources Humaines (HRM) avec 12 personnes ; Ingénierie (ENG) avec 23 employés ; Systèmes d'information (SI) avec 8 personnes ; Marketing et Ventes (MS) avec 28 employés ; Comptabilité et Audit (CA) avec 14 employés. En tout, la branche de Paris compte 88 employés. Le réseau alloué à la branche est 192.168.99.0/24. Tout en prenant en compte l'évolution de la branche, divisez le réseau en plusieurs sous-réseaux selon les départements. Vous devez remplir le tableau ci-dessous pour chaque département/sous-réseau. Expliquez brièvement les différents choix effectués. Nom Adresse du réseau Longueur du préfixe Plage d'adresses Adresse de diffusion utilisables (Première - Dernière) HRM ENG IS MS AA B. HAIDAR – INF4032 66 Transfert – Routage Reseaux Prochain Interface 223.1.1.2 Destination routeur 0.0.0.0 223.1.1.3 FastEthernet FastEthernet 223.1.1.1 223.1.1.4 Reseaux Prochain Interface 223.1.1.3 Destination routeur 223.1.3.0/24 223.1.7.1 FastEthernet0/0 223.1.9.2 223.1.7.0 223.1.2.0/24 223.1.9.1 FastEthernet0/1 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 B. HAIDAR – INF4032 67 Présentation au Routage Routage Statique Caractéristiques de routage statique : – Doit être configurées manuellement. – Doit être ajusté manuellement par l'administrateur en cas de modification de la topologie – Idéal pour les petits réseaux non redondants – Souvent utilisé conjointement avec un protocole de routage dynamique pour configurer une chemin par défaut B. HAIDAR – INF4032 68 Présentation au Routage Routage Dynamique Routes dynamiques automatiquement: – Découvrir les réseaux distants – Assurer l'actualisation des informations – Sélectionner le chemin le plus approprié vers un réseau de destination – Trouver de nouveaux meilleurs chemins lorsqu'il y a une modification de topologie – Le routage dynamique peut également partager des routes statiques par défaut avec les autres routeurs. B. HAIDAR – INF4032 69 Résolution d'adresse - ARP B. HAIDAR – INF4032 70 Adresses MAC et ARP Adresse IP 32 bits : – adresse de couche réseau pour l'interface – utilisé pour le transfert de couche 3 (couche réseau) Adresse MAC (ou LAN ou physique ou Ethernet) : – fonction : utilisé « localement » pour envoyer une trame d'une interface à une autre interface physiquement connectée (même réseau, au sens de l'adressage IP) – Adresse MAC 48 bits (pour la plupart des réseaux locaux) gravée dans la ROM NIC, parfois également réglable par logiciel – Ex : 1A-2F-BB-76-09-AD hexadecimal (base 16) notation (each “numeral” represents 4 bits) B. HAIDAR – INF4032 71 Connexion des appareils Les passerelles par défaut Pour assurer l'accès réseau, les appareils doivent être configurés avec les informations d'adresse IP suivantes : ▪ Adresse IP : identifie un hôte unique sur un réseau local. ▪ Masque de sous-réseau : identifie le sous-réseau du réseau de l'hôte. ▪ Passerelle par défaut : identifie le routeur auquel un paquet est envoyé lorsque la destination n'est pas sur le même sous- réseau du réseau local. Adresses LAN et ARP chaque adaptateur sur le LAN a une adresse LAN unique 1A-2F-BB-76-09-AD LAN (wired or wireless) adapter 71-65-F7-2B-08-53 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 B. HAIDAR – INF4032 73 Adresses LAN Allocation d'adresse MAC administrée par IEEE le fabricant achète une partie de l'espace d'adressage MAC (pour assurer l'unicité) analogie: – Adresse MAC : comme le numéro de sécurité sociale – Adresse IP : comme l'adresse postale Adresse MAC plateforme → portabilité – peut déplacer la carte LAN d'un LAN à un autre Adresse IP hiérarchique non portable – l'adresse dépend du sous-réseau IP auquel le nœud est attaché B. HAIDAR – INF4032 74 ARP: address resolution protocol Table ARP : chaque nœud IP Question: comment déterminer (hôte, routeur) sur le réseau l'adresse MAC de l'interface, connaissant son adresse IP? local a une table – Mappages d'adresses IP/MAC pour 137.196.7.78 certains nœuds LAN : 1A-2F-BB-76-09-AD < IP address; MAC address; TTL> 137.196.7.23 137.196.7.14 – TTL (Time To Live) : temps après lequel le mappage d'adresse sera LAN oublié (typiquement 20 min) 71-65-F7-2B-08-53 58-23-D7-FA-20-B0 IP address MAC address TTL 20 0C-C4-11-6F-E3-98 137.196.7.14 58-23-D7-FA-20-B0 137.196.7.88 B. HAIDAR – INF4032 75 Protocole ARP : même LAN A veut envoyer un datagramme à B Une paire d'adresses IP-MAC en – L'adresse MAC de B n'est pas dans la cache (sauvegarde) dans sa table table ARP de A. A diffuse un paquet de requête ARP, ARP jusqu'à ce que les contenant l'adresse IP de B informations deviennent – adresse MAC de destination = FF-FF- obsolètes (expiration du délai) FF-FF-FF-FF ARP est « plug-and-play » : – tous les nœuds du LAN reçoivent une requête ARP – les nœuds créent leurs tables ARP B reçoit le paquet ARP, répond à A sans intervention de avec son adresse MAC (B) l'administrateur réseau – trame envoyée à l'adresse MAC de A (unicast) B. HAIDAR – INF4032 76 ARP – A Chaque étape ARP: Who has this IP? ARP: Who has this IP? ARP: Who has this IP? B. HAIDAR – INF4032 77 Adressage : routage vers un autre LAN procédure pas à pas : envoyer le datagramme de A à B via R – se concentrer sur l'adressage - au niveau IP (datagramme) et MAC (trame) – supposer que A connaît l'adresse IP de B – supposez que A connaît l'adresse IP du routeur du premier saut, R (comment ?) – supposez que A connaît l'adresse MAC de R (comment ?) A B R 111.111.111.111 222.222.222.222 74-29-9C-E8-FF-55 49-BD-D2-C7-56-2A 222.222.222.220 1A-23-F9-CD-06-9B 111.111.111.112 111.111.111.110 222.222.222.221 CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F B. HAIDAR – INF4032 78 Adressage : routage vers un autre LAN A crée un datagramme IP avec la source IP A, destination B A crée une trame de couche liaison avec l'adresse MAC de R comme adresse de destination, la trame contient un datagramme IP A-à-B MAC src: 74-29-9C-E8-FF-55 MAC dest: E6-E9-00-17-BB-4B IP src: 111.111.111.111 IP dest: 222.222.222.222 IP Eth Phy A B R 111.111.111.111 222.222.222.222 74-29-9C-E8-FF-55 49-BD-D2-C7-56-2A 222.222.222.220 1A-23-F9-CD-06-9B 111.111.111.112 111.111.111.110 222.222.222.221 CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F B. HAIDAR – INF4032 79 Adressage : routage vers un autre LAN trame envoyée de A à R trame reçue à R, datagramme supprimé, transmis à IP MAC src: 74-29-9C-E8-FF-55 MAC dest: E6-E9-00-17-BB-4B IP src: 111.111.111.111 IP dest: 222.222.222.222 IP src: 111.111.111.111 IP dest: 222.222.222.222 IP IP Eth Eth Phy Ph y A B R 111.111.111.111 222.222.222.222 74-29-9C-E8-FF-55 49-BD-D2-C7-56-2A 222.222.222.220 1A-23-F9-CD-06-9B 111.111.111.112 111.111.111.110 222.222.222.221 B. HAIDAR – INF4032 E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F 80 CC-49-DE-D0-AB-7D Adressage : routage vers un autre LAN R transmet le datagramme avec IP source A, destination B R crée une trame de couche liaison avec l'adresse MAC de B comme adresse de destination, la trame contient un MAC src: 1A-23-F9-CD-06-9B datagramme IP A-à-B MAC dest: 49-BD-D2-C7-56-2A IP src: 111.111.111.111 IP dest: 222.222.222.222 IP IP Eth Eth Phy Ph y A B R 111.111.111.111 222.222.222.222 74-29-9C-E8-FF-55 49-BD-D2-C7-56-2A 222.222.222.220 1A-23-F9-CD-06-9B 111.111.111.112 B. 111.111.111.110 HAIDAR – INF4032 81 222.222.222.221 CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F Adressage : routage vers un autre LAN R transmet le datagramme avec IP source A, destination B R crée une trame de couche liaison avec l'adresse MAC de B comme MAC src: 1A-23-F9-CD-06-9B MAC dest: 49-BD-D2-C7-56-2A adresse de destination, la trame IP src: 111.111.111.111 IP dest: 222.222.222.222 contient un datagramme IP A-à-B IP IP Eth Eth Phy Ph y A B R 111.111.111.111 222.222.222.222 74-29-9C-E8-FF-55 49-BD-D2-C7-56-2A 222.222.222.220 1A-23-F9-CD-06-9B 111.111.111.112 B. HAIDAR – INF4032 111.111.111.110 82 222.222.222.221 CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F Adressage : routage vers un autre LAN R transmet le datagramme avec IP source MAC src: 1A-23-F9-CD-06-9B A, destination B MAC dest: 49-BD-D2-C7-56-2A IP src: 111.111.111.111 R crée une trame de couche liaison avec IP dest: 222.222.222.222 l'adresse MAC de B comme adresse de IP destination, la trame contient un Eth Phy datagramme IP A-à-B A B R 111.111.111.111 222.222.222.222 74-29-9C-E8-FF-55 49-BD-D2-C7-56-2A 222.222.222.220 1A-23-F9-CD-06-9B 111.111.111.112 111.111.111.110 222.222.222.221 CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F B. HAIDAR – INF4032 83 Commutation des paquets entre les réseaux Les fonctions de commutation du routeur Commutation des paquets entre les réseaux Envoyer un paquet Commutation des paquets entre les réseaux Le transfert au tronçon suivant Commutation des paquets entre les réseaux Le routage des paquets Commutation des paquets entre les réseaux Atteindre la destination Détermination du chemin Les décisions relatives au routage Internet Control Message Protocol version 4 ICMP B. HAIDAR – INF4032 90 Internet Control Message Protocol version 4 L'IPv4 n'a pas de mécanisme de rapport d'erreur ou de correction d'erreur. Le protocole IP manque également d'un mécanisme pour les requêtes d'hôte et de gestion. L'Internet Control Message Protocol version 4 (ICMPv4) a été conçu pour compenser les deux lacunes ci-dessus. B. HAIDAR – INF4032 91 MESSAGES Les messages ICMP sont divisés en deux grandes catégories : 1. Messages de rapport d'erreur : signalent les problèmes qu'un routeur ou un hôte (destination) peut rencontrer lors du traitement d'un paquet IP. 2. Messages de requête : qui se produisent par paires, aident un hôte ou un gestionnaire de réseau à obtenir des informations spécifiques d'un routeur ou d'un autre hôte. Par exemple, les nœuds peuvent découvrir leurs voisins. En outre, les hôtes peuvent découvrir et se renseigner sur les routeurs de leur réseau et les routeurs peuvent aider un nœud à rediriger ses messages. B. HAIDAR – INF4032 92 ICMP: internet control message protocol Utilisé par les hôtes et les Type Code description routeurs pour communiquer des 0 0 echo reply (ping) informations au niveau du réseau 3 0 dest. network unreachable – rapport d'erreurs : hôte, réseau, 3 1 dest host unreachable port, protocole inaccessible 3 2 dest protocol unreachable – requête/réponse d'écho (utilisée 3 3 dest port unreachable par ping) 3 6 dest network unknown IP de la couche réseau « au- 3 7 dest host unknown dessus » : 4 0 source quench (congestion control - not used) – Messages ICMP transportés dans des datagrammes IP 8 0 echo request (ping) 9 0 route advertisement Message ICMP : type, code plus 10 0 router discovery les 8 premiers octets du 11 0 TTL expired datagramme IP provoquant une 12 0 bad IP header erreur B. HAIDAR – INF4032 93 Outils de débogage Il existe plusieurs outils qui peuvent être utilisés sur Internet pour le débogage. Nous pouvons déterminer la viabilité d'un hôte ou d'un routeur. Nous pouvons tracer la route d'un paquet. Nous présentons deux outils qui utilisent ICMP pour le débogage : Ping : – Nous pouvons utiliser le programme ping pour déterminer si un hôte est vivant et répond. L'hôte source envoie des messages de demande d'écho ICMP. Traceroute ou Tracert : – Le programme traceroute sous UNIX ou tracert sous Windows peut être utilisé pour tracer le chemin d'un paquet d'une source à la destination. Il peut trouver les adresses IP de tous les routeurs visités le long du chemin. Le programme traceroute obtient l'aide de deux messages de rapport d'erreur : – Message dépassé. – Message de destination inaccessible. B. HAIDAR – INF4032 94 Command ping B. HAIDAR – INF4032 95 Traceroute et ICMP la source envoie une série de lorsque le message ICMP segments UDP à la destination – le premier ensemble a un TTL =1 arrive, la source enregistre les – le deuxième ensemble a TTL=2, RTT etc. critère d'arrêt : – numéro de port improbable Le segment UDP arrive lorsque le datagramme du nième finalement à l'hôte de ensemble arrive au nième destination routeur : la destination renvoie le – le routeur supprime le datagramme et envoie le message ICMP « port message ICMP source (type 11, inaccessible » (type 3, code 0) code 3) – Le message ICMP inclut le nom la source s'arrête du routeur et l'adresse IP B. HAIDAR – INF4032 96 Traceroute - Tracert B. HAIDAR – INF4032 97 Adresses IP : comment les obtenir ? Il s'agit en fait de deux questions : 1. Q: Comment un hôte obtient-il une adresse IP au sein de son réseau (partie hôte de l'adresse) ?? 2. Q: Comment un réseau obtient-il une adresse IP pour lui-même (partie réseau de l'adresse) ? Comment l'hôte obtient-il l'adresse IP ?? ▪ Configuration statique ▪ Dynamiquement DHCP: Dynamic Host Configuration Protocol: dynamically get address from as server “plug-and-play” 98 DHCP: Dynamic Host Configuration Protocol goal: l'hôte obtient dynamiquement l'adresse IP du serveur du réseau lorsqu'il "rejoint" le réseau ▪ peut renouveler son bail sur une adresse utilisée ▪ permet de réutiliser les adresses (ne conserve l'adresse que lorsqu'elle est connectée/activée) ▪ prise en charge des utilisateurs mobiles qui rejoignent ou quittent le réseau DHCP overview: ▪ host broadcasts DHCP discover msg [optional] ▪ DHCP server responds with DHCP offer msg [optional] ▪ host requests IP address: DHCP request msg ▪ DHCP server sends address: DHCP ack msg 99 DHCP client-server scenario Typically, DHCP server will be co- DHCP located in router, serving all 223.1.1.1 server subnets to which router is attached 223.1.2.1 223.1.2.5 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.27 arriving DHCP client needs 223.1.2.2 address in this network 223.1.3.1 223.1.3.2 100 DHCP client-server scenario DHCP server: 223.1.2.5 DHCP discover Arriving client src : 0.0.0.0, 68 Broadcast: is there a dest.: 255.255.255.255,67 DHCPyiaddr: server 0.0.0.0 out there? transaction ID: 654 DHCP offer src: 223.1.2.5, 67 Broadcast: I’m a DHCP dest: 255.255.255.255, 68 server! yiaddr:Here’s 223.1.2.4an IP The two address you can use transaction ID: 654 steps above lifetime: 3600 secs DHCP request can be skipped “if a src: 0.0.0.0, 68 client Broadcast: OK. I would dest:: 255.255.255.255, 67 yiaddr: 223.1.2.4 remembers like to use ID: transaction this 655IP and wishes to address! lifetime: 3600 secs reuse a DHCP ACK previously src: 223.1.2.5, 67 allocated dest: 255.255.255.255, 68 Broadcast: OK. You’ve network yiaddr: 223.1.2.4 address” [RFC got that IPID:address! transaction 655 lifetime: 3600 secs 2131] 101 Problèmes IPv4 40 years of IP networking IPv4 a duré une quarantaine d'années Dans les années 1970, la mise en réseau IP n'était qu'une « expérience » Les concepteurs ont choisi d'utiliser 32 bits pour les adresses IPv4 – 4,3 milliards (2^32) d'adresses suffisent pour une expérience, non ? – Une décision tout à fait raisonnable à l'époque de Vint Cerf et Bob Khan. La notation d'adresse IPv4 a été acceptée – Adresses écrites sous la forme « quadruple pointillé », par exemple, 192.0.2.1 Aujourd'hui, avec l'IoT et d'autres domaines de croissance IP, 32 bits ne suffisent clairement pas IPv4 address space status – exhausted! Le pool d'adresses global IPv4 de l'IANA a été épuisé en février 2011 – Il n'y a plus d'espace d'adressage IPv4 nouveau et inutilisé à donner aux RIR Les registres Internet régionaux (RIR) ont des niveaux variables de réserves d'espace d'adressage – APNIC et RIPE NCC sont sur leur dernier /8, et rationnent fortement – ARIN s'est complètement épuisé en septembre 2015 Voir http://www.potaroo.net et http://ipv4.potaroo.net pour de très nombreux graphiques Problèmes IPv4 Nécessité pour IPv6 IPv4 manque d'adresses. IPv6 est le successeur d'IPv4. Espace d'adressage de 128 bits plus grand Le développement d'IPv6 a également inclus des correctifs pour les limitations IPv4 et d'autres améliorations. Avec l'utilisation croissante d'Internet, un espace limité d'adresses IPv4, des problèmes liés à la fonction NAT et l'Internet of Everything, le moment est venu d'entamer la transition vers IPv6. Références Computer Networking: A Top-Down Approach, 7th Edition, James F. Kurose, University of Massachusetts, Amherst Keith Ross Data Communications and Networking, 5th Edition, By Behrouz A. Forouzan Cisco Networking Academy Program, Introduction to Networks v7.0 (ITN) B. HAIDAR – INF4032 106 INF4032 Réseaux Informatiques Bassem Haidar 2024-2025 INF4032 Réseaux Informatiques Introduction rappel, couche transport TCP/UDP, NAT. Couche Application HTTP, DNS. Programmation réseaux Routage dynamique, IPv6 B. HAIDAR – INF4032 2 Introduction Rappel TCP - IP Chapter 01 - Part II Couche de Transport B. HAIDAR – INF4032 4 Services et protocoles de transport applicatio n fournir une communication transport network data link logique entre les processus physical d'application s'exécutant sur différents hôtes protocoles de transport exécutés dans les systèmes d'extrémité – côté envoi : divise les messages de l'application en segments, passe à la couche réseau – côté rcv : réassemble les applicatio segments en messages, passe à n la couche d'application transport network plusieurs protocoles de transport data link physical disponibles pour les applications – Internet : TCP et UDP B. HAIDAR – INF4032 5 Transport vs. network layer couche réseau : analogie : communication logique entre 12 enfants dans la maison d'Ann envoyant des lettres à 12 enfants les hôtes dans la maison de Bill : Couche de transport : la hôtes = maisons communication logique entre processus = enfants les processus messages d'application = lettres dans des enveloppes – repose sur des services de protocole de transport = Ann et couche réseau améliorés Bill qui démultiplexent leurs frères et sœurs en interne protocole de couche réseau = service postal B. HAIDAR – INF4032 6 Internet transport-layer protocols applicatio n livraison fiable et en ordre transport network data link (TCP) physical network network data link data link physical contrôle de la congestion physical network data link – contrôle de flux physical – configuration de la connexion network data link livraison non fiable et non physical network data link commandée : UDP network physical – « au mieux », Best-effort data link physical applicatio n network services non disponibles : data link physical transport network data link – garanties de retard physical – garanties de bande passante B. HAIDAR – INF4032 7 Comment fonctionne le démultiplexage l'hôte reçoit des datagrammes IP 32 bits – chaque datagramme a une source port # dest port # adresse IP source, une adresse IP de destination other header fields – chaque datagramme transporte un segment de couche transport – chaque segment a une source, application un numéro de port de data destination (payload) l'hôte utilise des adresses IP et des numéros de port pour diriger le segment vers le socket approprié TCP/UDP segment format B. HAIDAR – INF4032 8 UDP : en-tête de segment length, in bytes of Why is there a UDP? UDP segment, including header – no connection establishment (which can add delay) 32 bits – simple: no connection state at sender, receiver source port # dest port # – small header size length checksum – no congestion control: UDP can blast away as fast as desired application data (payload) B. HAIDAR – INF4032 UDP segment format 9 TCP: Overview RFCs: 793,1122,1323, 2018, 2581 données en duplex intégral : point à point: – flux de données bidirectionnel dans la même connexion – un expéditeur, un destinataire – MSS : taille maximale des flux d'octets fiable et segments Connexion orientée: ordonnée : – établissement de liaison – pas de « limites de message » (échange de msgs de contrôle) en pipeline : dans son état émetteur, récepteur avant l'échange de – contrôle de congestion et de données flux - taille de la fenêtre débit contrôlé, control de flux : – l'expéditeur ne submergera pas le destinataire B. HAIDAR – INF4032 10 Structure des segments TCP 32 bits URG: urgent data counting (generally not used) source port # dest port # by bytes sequence number of data ACK: ACK # valid acknowledgement number (not segments!) head not PSH: push data now len used UAP R S F receive window (generally not used) # bytes checksum Urg data pointer rcvr willing RST, SYN, FIN: to accept options (variable length) connection estab (setup, teardown commands) application Internet data checksum (variable length) (as in UDP) B. HAIDAR – INF4032 11 TCP seq. numbers, ACKs outgoing segment from sender Numéros de séquence : source port # dest port # sequence number – flux d'octets « nombre » du acknowledgement premier octet dans les données number rwnd checksum urg pointer du segment window size Acquittements : N – seq # du prochain octet attendu de l'autre côté sender sequence number space – ACK cumulé Q : comment le récepteur gère sent ACKed sent, not- usable not yet ACKed but not usable les segments dans le désordre (“in- yet sent flight”) – A: la spécification TCP ne dit incoming segment to sender pas, laisser a l'implémentation source port # dest port # sequence number acknowledgement number A rwnd B. HAIDAR – INF4032 checksum urg pointer 12 TCP seq. numbers, ACKs Host A Host B User types ‘C’ Seq=42, ACK=79, data = ‘C’ host ACKs receipt of ‘C’, echoes Seq=79, ACK=43, data = ‘C’ back ‘C’ host ACKs receipt of echoed ‘C’ Seq=43, ACK=80 simple telnet scenario B. HAIDAR – INF4032 13 Accepter d'établir une connexion TCP 3-way handshake client state server state LISTEN LISTEN choose init seq num, x send TCP SYN msg SYNSENT SYNbit=1, Seq=x choose init seq num, y send TCP SYNACK msg, acking SYN SYN RCVD SYNbit=1, Seq=y ACKbit=1; ACKnum=x+1 received SYNACK(x) ESTA indicates server is live; send ACK for SYNACK; B this segment may contain ACKbit=1, ACKnum=y+1 client-to-server data received ACK(y) indicates client is live ESTA B B. HAIDAR – INF4032 14 TCP : fermeture d'une connexion le client, le serveur ferment chacun leur côté de connexion – envoyer le segment TCP avec le bit FIN = 1 répondre à FIN reçu avec ACK – à la réception de FIN, ACK peut être combiné avec son propre FIN les échanges FIN simultanés peuvent être gérés B. HAIDAR – INF4032 15 TCP : fermeture d'une connexion client state server state ESTA ESTA B clientSocket.close() B FIN_WAIT_1 can no longer FINbit=1, seq=x send but can receive data CLOSE_WAIT ACKbit=1; ACKnum=x+1 can still FIN_WAIT_2 wait for server send data close LAST_ACK FINbit=1, seq=y TIMED_WAIT can no longer send data ACKbit=1; ACKnum=y+1 timed wait for 2*max CLOSED segment lifetime CLOSED B. HAIDAR – INF4032 16 B. HAIDAR – INF4032 17 Contrôle de flux TCP application l'application peut process supprimer des données de application Tampons de socket TCP …. socket TCP OS tampons récepteurs … plus lent que TCP le récepteur livre (l'expéditeur envoie) TCP code IP contrôle de flux code le récepteur contrôle l'expéditeur, afin que l'expéditeur ne déborde pas la mémoire tampon du destinataire en transmettant de l'expéditeur trop, trop vite B. HAIDAR – INF4032 receiver protocol stack 18 Contrôle de flux TCP to application process le récepteur "annonce" l'espace tampon libre en incluant la valeur rwnd dans l'en-tête TCP des RcvBuffer buffered data segments récepteur-expéditeur – Taille de RcvBuffer définie via les rwnd free buffer space options de socket (la valeur par défaut typique est de 4096 octets) – de nombreux systèmes d'exploitation ajustent automatiquement RcvBuffer TCP segment payloads l'expéditeur limite la quantité de receiver-side buffering données non acquittées (« en vol ») à la valeur rwnd du destinataire garantit que le tampon de réception receive window flow control: # bytes receiver willing to accept ne débordera pas B. HAIDAR – INF4032 19 TCP Flow Control – In practice Host A is sending a large Host A Host B Host B allocates a receive file to Host B over a TCP buffer to this connection (of connection size RcvBuffer) From time to time, the LastByteSent application process in B LastByteAcked reads from the buffer LastByteRead: # of the last byte read from the buffer by the application 𝐿𝑎𝑠𝑡𝐵𝑦𝑡𝑒𝑆𝑒𝑛𝑡 – 𝐿𝑎𝑠𝑡𝐵𝑦𝑡𝑒𝐴𝑐𝑘𝑒𝑑 ≤ 𝑟𝑤𝑛𝑑 process in B LastByteRcvd: # of the last byte arrived from the network and placed in receive buffer at B INF4032 20 Principes du contrôle de la congestion Congestion: de manière informelle : « trop de sources envoient trop de données trop rapidement pour que le réseau puisse les gérer » différent du contrôle de flux ! manifestation : – paquets perdus (débordement de tampon au niveau des routeurs) – longs délais (mise en file d'attente dans les tampons du routeur) un problème parmi les 10 premiers ! B. HAIDAR – INF4032 21 Contrôle de congestion TCP : augmentation additive, diminution multiplicative. ▪ approach: l'expéditeur augmente le taux de transmission (taille de la fenêtre), en recherchant la largeur de bande disponible, jusqu'à ce qu'une perte se produise. augmentation additive : augmentation du cwnd de 1 MSS à chaque RTT jusqu'à ce que la perte soit détectée. diminution multiplicative : réduction de moitié de la bande après une perte. additively increase window size … congestion window size …. until loss occurs (then cut window in half) cwnd: TCP sender AIMD saw tooth behavior: probing for bandwidth time Contrôle de congestion TCP Host A RTT Host B time NAT: Network address translation NAT: network address translation rest of local network Internet (e.g., home network) 10.0.0/24 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 ▪Tous les datagrammes Datagrammes avec la source ou la quittant le réseau local ont destination dans ce réseau ayant l'adresse la même et unique adresse 10.0.0.0/24 pour la source IP source NAT:138.76.29.7 destination (comme d'habitude) ▪ numéros de ports sources différents Network Layer: Data Plane 4-25 Plages d'adresses privées The private address blocks are: –10.0.0.0 to 10.255.255.255 (10.0.0.0 /8) –172.16.0.0 to 172.31.255.255 (172.16.0.0 /12) –192.168.0.0 to 192.168.255.255 (192.168.0.0 /16 NAT: network address translation Motivation : le réseau local utilise juste un adresse IP quand il communique avec l'extérieur : – pas besoin de demander au FAI tout un intervalle d'adresses officielles : une adresse IP est utilisée pour tous les périphériques – on peut changer les adresses des périphériques dans le réseau local sans en avertir le reste du monde – on peut changer de FAI sans bouleverser l'adressage au sein du réseau local – les périphériques du réseau local non explicitement adressables, «invisible» de l'extérieur (un plus de sécurité). 27 NAT: network address translation Implémentation : le routeur NAT doit : datagrammes sortants : remplacer (adresse IP, num. port) de tout datagramme sortant par (adresse IP NAT, nouv. num. de port)... les clients/serveurs distants répondront en utilisant (adresse IP NAT, le nouv. num. de port) comme adresse de destination se rappeler (dans la table de traduction NAT) toutes les pairs de traduction (adresse IP source, num. port) vers (adresse IP NAT, nouv. num. port) datagrammes entrants : remplacer (adresse NAT IP, nouv. num. port) dans les champs dest. de tous les datagrammes entrants, par (adresse IP source, num. port) correspondant (couples stockés dans la table NAT) 28 NAT: network address translation NAT translation table 1: host 10.0.0.1 2: le routeur NAT WAN side addr LAN side addr change l'adresse du envoi le datagramme à datagramme source 138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80 de10.0.0.1, 3345 to …… …… 138.76.29.7, 5001, mets à jour la table S: 10.0.0.1, 3345 D: 128.119.40.186, 80 10.0.0.1 1 S: 138.76.29.7, 5001 2 D: 128.119.40.186, 80 10.0.0.4 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 10.0.0.3 4: le routeur NAT 3: la réponse arrive change l'adresse dest. à l'adresse dest: du datagramme 138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345 * Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ 29 NAT: network address translation champ numéro de port 16-bit : – ≃ 60 000 connexions simultanées avec une seule adresse "officielle" ! NAT controversé : – les routeurs doivent travailler uniquement au niveau de la couche 3 – viole l'argument end-to-end la possibilité NAT doit être prise en compte par les développeurs des applis. ex : applications P2P – la pénurie des adresses doit être résolue grâce à l'IPv6 30 Références Computer Networking: A Top-Down Approach, 7th Edition, James F. Kurose, University of Massachusetts, Amherst Keith Ross Data Communications and Networking, 5th Edition, By Behrouz A. Forouzan Cisco Networking Academy Program, Introduction to Networks v7.0 (ITN) B. HAIDAR – INF4032 31 INF4032 Réseaux Informatiques Bassem Haidar 2024- 2025 Couche Application Chapter 02 Références Les diapositives sont basées sur les : – Jim Kurose, Keith Ross Slides for the Computer Networking: A Top-Down Approach, 8th edition, Pearson, 2020 – Cisco Networking Academy Program, Routing and Switching Essentials v6.0 3 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 4 Introduction Couche application - permet à l'utilisateur de s'interfacer avec le réseau ! 5 Modèle OSI et modèle TCP/IP Couche application - Fournit l'interface entre les applications à chaque extrémité du réseau. 6 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 7 Web et HTTP la page Web se compose d'objets l'objet peut être un fichier HTML, une image JPEG, une applet Java, un fichier audio,… la page Web se compose d'un fichier HTML de base qui comprend plusieurs objets référencés chaque objet est adressable par une URL, par exemple, www.someschool.edu/someDept/pic.gif host name path name Présentation HTTP HTTP : protocole de transfert hypertexte Protocole de couche application PC running du Web Firefox browser modèle client/serveur – client : navigateur qui demande, reçoit, (en utilisant le protocole server HTTP) et « affiche » des objets running Web Apache Web – serveur : le serveur Web envoie server (en utilisant le protocole HTTP) des objets en réponse aux iPhone running requêtes Safari browser HTTP overview (continued) utilise TCP : HTTP est « sans état » le client initie la connexion TCP le serveur ne conserve aucune (crée un socket) au serveur, port 80 information sur les demandes le serveur accepte la connexion passées des clients TCP du client aside les protocoles qui maintiennent Messages HTTP (messages de « l'état » sont complexes ! protocole de couche application) l'histoire passée (état) doit être échangés entre le navigateur maintenue (client HTTP) et le serveur Web si le serveur/client tombe en panne, leurs points de vue sur (serveur HTTP) « l'état » peuvent être Connexion TCP fermée incohérents. Connexions HTTP HTTP non persistant HTTP persistant au plus un objet envoyé via plusieurs objets peuvent être une connexion TCP envoyés via une seule – connexion puis fermée connexion TCP entre le client, le téléchargement de plusieurs le serveur objets nécessite plusieurs connexions HTTP non persistant supposons que l'utilisateur entre l'URL : (contient du texte, www.someSchool.edu/someDepartment/home.index références à 10 images jpeg) 1a. Le client HTTP initie la connexion TCP au serveur 1b. Serveur HTTP sur l'hôte HTTP (processus) sur www.someSchool.edu en www.someSchool.edu sur le attente d'une connexion TCP port 80a au port 80. « accepte » la 2. Le client HTTP envoie un connexion, notifiant le client message de requête HTTP (contenant l'URL) dans le 3. Le serveur HTTP reçoit un socket de connexion TCP. Le message de demande, forme message indique que le client un message de réponse veut l'objet contenant l'objet demandé et someDepartment/home.index envoie un message dans son temps socket HTTP non persistant (suite) 4. Le serveur HTTP ferme la connexion TCP. 5. Le client HTTP reçoit un message de réponse contenant un fichier html, affiche html. Analyse du fichier html, trouve 10 objets jpeg référencés temps 6. Étapes 1 à 5 répétées pour chacun des 10 objets jpeg HTTP non persistant : temps de réponse RTT (définition) : temps nécessaire à un petit paquet pour voyager du client au serveur et vice-versa initiate TCP Temps de réponse HTTP : connection RTT – un RTT pour initier la connexion TCP request file – un RTT pour la requête HTTP et time to RTT les premiers octets de la réponse transmit HTTP à renvoyer file file – temps de transmission du fichier received temps de réponse HTTP non persistant = Temps de time time transmission du fichier 2RTT+ 2- Persistent HTTP problèmes HTTP non HTTP persistant : persistants : le serveur laisse la connexion nécessite 2 RTT par objet ouverte après l'envoi de la réponse Surcharge du système messages HTTP suivants entre le d'exploitation pour chaque même client/serveur envoyés via connexion TCP une connexion ouverte les navigateurs ouvrent le client envoie des requêtes dès souvent des connexions TCP qu'il rencontre un objet référencé parallèles pour récupérer les aussi peu qu'un RTT pour tous les objets référencés objets référencés Message de requête HTTP deux types de messages HTTP : requête, réponse Message de requête HTTP : – ASCII (human-readable format) carriage return character line-feed character request line (GET, POST, GET /index.html HTTP/1.1\r\n HEAD commands) Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n header Accept-Language: en-us,en;q=0.5\r\n lines Accept-Encoding: gzip,deflate\r\n carriage return, Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n line feed at start Keep-Alive: 115\r\n Connection: keep-alive\r\n of line indicates \r\n end of header lines * Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Message de requête HTTP : format général method sp URL sp version cr lf request line header field name value cr lf header ~ ~ ~ ~ lines header field name value cr lf cr lf ~ ~