TCP/IP V.Barreaud (d’après une œuvre originale de T. Jeandel) [email protected] www.loria.fr/~barreaud Sommaire Présentation générale Modèle OSI La couche réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP Sommaire Présentation générale Modèle OSI La couche réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP Concept Historique Organisation Internet = inter-networks Concept d’interconnexion Réseau: une économie d’échelle Minimisation de la structure: utilisation d’adresses Une connexion continue entre Compiègne et Bordeaux empêche Une connexion entre Lille et Lyon Utilisation de paquets Présentation générale TCP/IP = suite de protocoles "réseau" Protocoles publics Adressage logique Protocole "routable" Service de "nommage" Contrôle des erreurs et flots de données Support applicatif (ports) Historique 1974 Vinton CERF et Robert KAHN - ARPA (Advanced Research Project Agency) Interconnexion d'ordinateurs. Transfert de fichiers, limité au monde de la recherche NSFNet Unix Berkeley 1989 Création du World Wide Web. 1993 Premier navigateur MOSAIC Organisation TCP/IP = protocole ouvert, public ISOC (Internet Society) IAB (Internet Architecture Board) Gestion et fonctionnement d'internet IETF (Internet Engineering Task Force) Spécifications techniques d'internet IRTF (Internet Research Task Force) Recherches autour de TCP/IP RFC : Request For Comments Sommaire Présentation générale Modèle OSI La couche Réseau La couche Transport Résolution de noms DHCP Utilitaires TCP/IP Le Modèle OSI Application Application Présentation Présentation Session Session Transport Transport Réseau Réseau Liaison Liaison Physique Physique TCP/IP et le modèle OSI •Dépannage réseau •Transfert de fichiers •Internet Couches applicatives (Application, Présentation,Session) Transport Internet (Réseau) •Contrôle des flots de données •Accusés de réception •Adressage logique •Correspondance avec l'adressage physique •Interface physique Accès réseau avec le réseau •Contrôle (Liaison de d'erreurs données, Physique) Encapsulation Données utilisateur Application Entête applicatif Données utilisateur TCP Entête TCP Données applicatives Segment TCP Entête IP Entête TCP Données applicatives datagramme IP Entête Ethernet Entête IP Entête TCP IP Données applicatives Trame Ethernet Driver Ethernet Remorque Ethernet Couche Physique: "Accès au réseau" Accès au réseau physique Envoyer et recevoir des datagrames IP •Interface avec la carte réseau •Coordination de la transmission des données •Formatage des données •Conversion des signaux analogiques/numériques •Contrôle d'erreurs des trames (ajout d'infos, contrôle à l'arrivée, accusés de réception,..) Ethernet, Token Ring, FDDI, SLIP, PPP,… Trame ETHERNET Préam bule 7 octets Délimite ur de début de trame (1 octet) Adresse MAC Destination (généralement 6 octets) Adresse MAC Source (généralemen t 6 octets) Longueur du champ de données (2 octets) Champ de données (Trame LLC 802.2) Bourrage (Complément pour obtenir 64 octets) Code de contrôle de la trame (4 octets) Couche Liaison: Transmission sans erreur de codage Transmission sans erreur des datagrammes entre 2 systèmes adjacents. Masque aux couches supérieurs les imperfections du moyen de transmission. Moyen: codage redondant (parité, …) Le protocole de correction n’est pas forcément le même entre deux nœuds adjacents. Couche réseau: crée la « base » du réseau. C’est la « couche IP ». Permet à 2 systèmes non-adjacents de communiquer en se servant de relais. Notion d’@ est importante. Notion de table de correspondance entre @ et fils pour aiguiller les messages. Routage: voir plus loin. Couche transport: Délivrer un message complet entre deux machines non-adajacentes. C’est la « couche UDP/TCP » Permet d’offrir un service constant, quelque soit les qualités du réseau utilisé. Permet de gérer la perte d’un paquet Réorganise les paquets à l’arrivée. Couches supérieures: Session, présentation et application La couche session permet d’établir une relation durable entre deux applications souhaitant coopérer (visio conférence…) (pas obligatoire) La couche présentation permet de résoudre les problèmes de codage des données hétérogènes (big/little endians). La couche application fournit les services de communication qux utilisateurs (mail, transfert de fichier, …) Sommaire Présentation générale Modèle OSI La couche Réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP Le protocole IP L’adressage IP Le routage Les sous masques ARP, RARP, ICMP IP Internet Protocol But: Acheminement des datagrames d'une machine à une autre par des intermédiaires . Adressage logique, indépendant du matériel (distribution supervisée des adresses) Routage (comment ces adresses sont elles traitées?) Correspondance entre adresse physique et adresse logique (DNS et DHCP: voir plus loin) IP Internet Protocol (2) Le protocole IP définie – – – La taille de l’unité de donnée, sa structure. La fonction de routage, comment les machines et les passerelles doivent traiter les paquets. Les messages d’erreur et leurs traitement. L’entête IP contient – – Version, longueur, priorité, durée de vie, @ source et @ destination. Options de routage, de traçage, … Adressage IP Système de communication universel : établir une méthode générale d’identification des machines. Adresse = 32 bits = 4 octets = 4 entiers < 256 Exemple : 192.14.28.32 Adresse en 2 parties : – – Net ID : Identifiant du réseau Host ID : Identifiant de la "machine" 5 classes de réseaux Adressage IP : Classes d'adresses 0 Classe A 0 Classe B 10 8 Net-id Classe C 1 1 0 Classe D 1 1 1 0 Classe E 16 11110 24 31 Host-id Net-id Host-id Net-id Multicast Réservé Host-id Adressage IP : Classe A [1.x.x.x ; 126.x.x.x] 27 - 2 = 126 réseaux 224 - 2 = 16,7 millions d'hôtes / réseau Classe B [128.x.x.x ; 191.x.x.x] 214 = 16 384 réseaux 216 - 2 = 65534 hôtes / réseau Classe C [192.x.x. ; 223.x.x.x] 221 = 2 millions de réseaux 28 - 2 = 254 hôtes / réseau Adressage IP : Exemples 201.14.26.55 130.255.14.18 198.14.231.0 101.14.12.56 193.34.45.250 193.256.14.28 C B C A C Impossible ! Adressage IP : Adresses "spéciales" Host-Id = 00000…000 -> Réseau Host-Id = 11111…111 -> Broadcast 127.x.x.x ->loopback 10.0.0.0 à 10.255.255.255 -> privé 172.16.0.0 à 172.31.255.255 -> privé 192.168.0.0 à 192.168.255.255 -> privé Routage IP Dépend de la hiérarchie des réseaux et sous réseaux Permet un filtrage du trafic, un ré-équilibrage Masque les détails du réseau physique Routage statique ou routage dynamique – – L’algo de routage est géré par une table d’@IP Les décisions ne tiennent compte que de l’@rezo. Manipulation des champs de la couche rezo de chaque datagramme Routage IP (routage statique) •Pour quel réseau ? •Table de routage •Même réseau ? •Adresse de la passerelle (routeur) Routage IP (routage dynamique) Dialogue entre routeurs Construction des tables de routage – – Vecteur de distance : RIP Etats de liens : OSPF Routage IP (routage dynamique) Vecteur de distance (Routing Information Protocol) Minimise les communications entre routeurs Dans quelle direction envoyer l'information Compteur de saut: distance (pas bande passante) 2 3 1 Routage IP (routage dynamique) Etats de liens (Open Shortest Path First) Chaque routeur se construit une vision du réseau (par l’intermédiaire des retours erreurs qu’il reçoit….) Identificateur de routeur Arbre des routeurs Vitesse et fiabilité (charge) Sous réseaux Subneting Pourquoi fragmenter un réseau ? Optimisation des tables de routage – – – Connaître @ rezo pour envoyer dans une direction générale Ce n’est qu’une fois arrivé près de la machine que l’on résout son adresse. Métaphore du colis de la Poste. (Code postal: département, centre de tri, puis : rue, numéro, nom) Limiter les congestions. Séparer les machines sensibles. Sous réseaux : Principe •C’est un séparateur entre la partie réseau et la partie machine d’une @ IP. •Une fonction ET Logique pour déterminer l’@ réseau. •Il est recommandé d’avoir des bits à 1 contiguës dans ses masques. Host-id Net-id Net-id Sous réseau Host-id 111111111111111 00000000000 0 Masque de sous réseau Sous réseau : Principe (2) Mon adresse IP: 192.168.25.132 Traduit en binaire: 11000000.10101000.00011001.10000100 Le masque de mon réseau: 255.255.255.128 Traduit en binaire: 11111111.11111111.11111111.10000000 @ réseau: 11000000.10101000.00011001.10000000 Soit: 192.168.25.128 Conclusion: on peut supposer que les machines de mon réseau local ont pour adresse: 128 à 254… Sous réseaux : Les choix Net-id Net-id Sous réseau Host-id Le choix se fait en fonction des besoins et des limites: •Une plage est allouée par le fournisseur d’accès. •Un nombre de machines qui peut croître. Sous réseaux : Masques par défaut Classe C : 255.255.255.0 Classe B : 255.255.0.0 Classe A : 255.0.0.0 Sous réseaux : Masques Classe C 255.255.255.0 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 capa de : 253 machines capa de : 64 machines capa de : 32 machines capa de : 16 machines …. Sous Réseau = 0….0 et Sous réseau = 1….1 INTERDIT Résumé: Un exemple de plan d’adressage IP Ethernet 128.10.0.0 128.10.2.3 Machine 4 128.10.2.8 Machine 2 192.5.48.3 Machine 1 192.5.48.1 128.10.2.70 Passerelle 2 128.10.2.26 Machine 3 192.5.48.2 Token-Ring 192.5.48.0 Passerelle 1 192.5.48.6 10.2.0.37 ARPANET 10.0.0.0 Exercices: Soit le réseau d’@ 192.168.25.32 de masque 255.255.255.248 La machine 192.168.25.47 appartient-elle à ce réseau? Soit le réseau d’@ 193.225.34.0 de masque 255.255.255.0 Nous voulons installer 60 machines… Quel masque utiliser? ARP : Résolution d'adresse Adress Resolution Protocol Faire correspondre les adresses IP aux adresses physiques Table ARP (durée de vie limitée) Trame de requête ARP (broadcast) RARP : Inverse de ARP Reverse Adress Resolution Protocol Adresse physique -> adresse IP Utilisé avec les stations diskless BOOTP (Boot PROM) : Chargement de l'OS à partir d'un serveur Requete RARP : Quelle est mon adresse IP ? ICMP : Contrôle de message Internet Control Message Protocol Rendre compte des problèmes "routeurs" – – – Datagramme ne peut pas atteindre sa destination Manque de réserve de mémoire Utilisation d'une route alternative pour optimiser le trafic. Sommaire Présentation générale Modèle OSI La couche Réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP TCP UDP Couche Transport Interface entre lP et les applications Contrôle d'erreurs : TCP / UDP Multiplexage : données issues de plusieurs applications TCP : Protocole orienté connexion Etablissement et maintien d'une connexion entre 2 machines Hé, tu m'écoutes ? J'ai le cours réseau Je vais te l'envoyer Oui, je t'écoute OK OK TCP Transport Control Protocol Tu l'as reçu ? Oui, c'est bon ! Salut Salut TCP : Acquitements Source Emission de Mi Temporisation armée Réseau Destination Mi n‘est pas reçu Ai non envoyé Ai n’est pas reçu Tempo. echue Réemission de Mi Réception de Mi Emission de Ai Réception de Aj TCP : Fenêtrage Source Réseau Emission de Mi Emission de Mi+1 Destination Réception de Mi Emission de Ai Emission de Mi+2 Reception de Ai Fenêtrage de taille 3 TCP : Fenêtrage • Optimisation de la bande passante •Gestion du contrôle de flux (même par le destinataire) •Fenêtrage au niveau de l'octet 1 2 3 4 5 6 7 8 9 10 11 . . . Octets émis et acquittés Octets émis et non acquittés Octets émissibles Octets non émissibles tout de suite. UDP : Protocole non orienté connexion Expédition des données Je t'envoie le cours réseau UDP • Moins fiable que TCP User Datagram Protocol Contrôles d'erreurs, ordonnancement • + rapide Sommaire Présentation générale Modèle OSI La couche Réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP Domaines Noms DNS La résolution de noms www.machin.com ? Résolution de noms 210.132.14.153 La résolution de noms http://rechn2.univ-nancy2.fr Domaine français Sous domaine univ-nancy2 Machine rechn2 du sous domaine univ-nancy2 La résolution de noms Organisation Base de données distribuée au niveau mondial INTERNic (AfNic) Pour enregistrer son nom de domaine Domaine complet fr Domaine fr Un domaine est un sousarbre de l’espace nom de domaine centralweb inria m1 Des noeuds peuvent avoir les mêmes noms dans des domaines différents : ns.centralweb.fr et ns.renault.fr Domaine centralweb noeud m1.centralweb.fr La résolution de noms Les Top Level Domain – 7 domaines racines prédéfinis : – com : organisations commerciales ; ibm.com edu : organisations concernant l’education ; mit.edu gov : organisations gouvernementales ; nsf.gov mil : organisations militaires ; army.mil net : organisations réseau Internet ; worldnet.net org : organisations non commerciales ; eff.org int : organisations internationales ; nato.int organisations nationales : fr, uk, de, it, us, au, ca, se, etc. La résolution de noms Les solutions Fichier HOSTS (internes à la machine) 127.0.0.1 localhost 93.50.231.44 spmi1 #Serveur réseau péda 193.50.231.10 saphir 192.70.102.240 pasteur Adapté à la résolution locale, maintenance nécessaire • Serveur DNS La résolution de noms Serveurs de noms (name servers) Un serveur de noms enregistre les données propres à une partie de l’espace nom de domaine dans une zone •Serveurs de noms primaires •Serveurs de noms secondaires ca bc ab fr on q b domaine zone La résolution de noms Le principe www.machin.com? DNS Serveur DNS DNS Serveur DNS DNS Serveur DNS Serveur Racine La résolution de noms NetBios Développé par IBM (protocole pour réseaux locaux) Répandu sur les réseaux Windows (NetBeui) Nom NetBios = Machine (Explorateur,Voisinage réseau) LMHosts (fichier du même type que le fichier Hosts, mais permet de spécifier des ressources ne faisant pas partie du même sous-réseau) Serveur WINS (Windows Internet Naming Service convertie les noms NetBios en @IP et inversement) Sommaire Présentation générale Modèle OSI La couche Réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP DHCP Dynamic Host Configuration Protocol Attribution dynamique d'adresses IP Inconvénient des adresses IP statiques : – – – "Gaspillage" d'adresses Rigidité Configuration personnalisée La solution : DHCP DHCP Serveur DHCP broadcast Adresse 172.24.56.13 OKIPpour @ = 172.24.56.13 IP, 172.24.56.13 svp , ça! va ? Client DHCP + masque + passerelle + DNS + Bail DHCP La notion de "bail" But : ne pas monopoliser une adresse Principe Attribution d'une adresse par S1 T1 Demande de renouvellement vers S1 Durée totale d'allocation Demande de renouvellement vers S1 T2 Demande de renouvellement vers un serveur DHCP Demande de renouvellement vers un serveur DHCP Un petit complément sur DHCP Sommaire Présentation générale Modèle OSI La couche Réseau La couche transport Résolution de noms DHCP Utilitaires TCP/IP Telnet FTP …. Couche Application Connexion Transfert de fichiers IPConfig FTP Ping Tftp Arp Rcp Traceroute Route NetStat NBTStat Hostname Accès réseau éloigné Telnet Rexec Rsh Finger Utilitaires internet Navigateurs Clients News Client Mail Utilitaires de connectivité Les problèmes Dysfonctionnement ou mauvaise configuration d'un protocole Problème de média Résolution de nom incorrecte Trafic excessif IPConfig Ping Packet Internet Groper ping adresse_IP | nom de machine Utilise une requête ICMP Utilise les couches "Accès réseau" et "Internet" TTL : Time To Live.Un paquet est toujours émis avec une durée de vie. Cette durée de vie est décrémentée à chaque nœud qui traite le paquet (d'une durée minimum d'une seconde, ou du temps qu'a mis la paquet à traverser le nœud). Ping Scénario de débogage Ping sur l'adresse de bouclage (127.0.0.1) Fonctionnement correct de TCP/IP Ping sur l'adresse de l'hôte Fonctionnement correct de l'interface réseau Ping sur une adresse du réseau (ou du sous réseau) Problèmes de médias Ping sur la passerelle par défaut Problèmes de masques, d'adresse de passerelle Ping au delà de la passerelle Problèmes de routeurs Ping avec noms de machine Configuration de DNS ARP : Résolution d'adresse Adress Resolution Protocol Faire correspondre les adresses IP aux adresses physiques Table ARP (durée de vie limitée) Trame de requête ARP (broadcast) ARP : Résolution d'adresse arp –a Toutes les entrées du cache arp – s 192.14.25.56 00-80-C7-E0-7E-C5 Entrer une nouvelle adresse IP / MAC arp –d 192.14.25.56 Supprime une adresse IP du cache • Calcul du Round Trip Time • 3 essais • Calcul pessimiste : ICMP priorité faible Traceroute Tracer le chemin emprunté par les datagrammes Chemin à un instant t Commande lente Utilise ICMP Traceroute TTL = 1 Rejet TTL = 2 Rejet TTL = 3 Rejet TTL = 0 TTL = 1 Rejet TTL = 2 Rejet TTL = 0 TTL = 1 Rejet TTL = 0 Route Affichage / Mise à jour de la table de routage Pour joindre cette adresse Je passe par ce routeur J'utilise cette interface Test boucle locale Les hôtes de mon réseau Moi Broadcast sur mon réseau Netstat Statistiques relatives à IP, TCP, UDP, ICMP Datagrammes émis, reçus, erreurs éventuelles Netstat -a -i -c -n -r -t -u affichage toutes les informations sur l'état des connexions, affichage des statistiques, rafraîchissement périodique de l'état du réseau, affichage des informations en mode numérique sur l'état des connexions, affichage des tables de routage, informations sur les sockets TCP informations sur les sockets UDP. Transfert de fichiers FTP File Transfer Protocol fichiers Client FTP Serveur FTP Protocole TCP Identification • Transfert de fichiers • Création de répertoires • Déplacement • Suppression • Renommage Client FTP Transfert de fichiers TFTP Trivial File Transfer Protocol UDP Pas d'identification Démarrage de station "diskless" NFS Network File Sytem Développé par SUN Disques virtuels Remote Procedure Call Accès réseau Telnet : émulation d'accès terminal Rlogin, rcp, rsh, rexec, rwho Applications d'accès à distance : pcAnywhere TCP/IP et la sécurité Interception d'un paquet de données – Solution : Cryptage : rendre les données illisibles Authentification (signature numérique) : connaître la source Vérification de l'intégrité : pas de falsification pendant le transit TCP/IP et la sécurité SSL : Secure Sockets Layer Couche de sécurité entre sockets de la couche transport et l'application Exemple : https IPSec Utilisé dans les réseaux virtuels (VPN) Serveurs PROXY Proxy Cache Server = "Serveur par procuration" – – – Cache des pages Web Filtrage Fichiers de Log Firewall Parefeu Protection d'un réseau local connecté à Internet Filtrage des paquets Filtrage applicatif : blocage de certains ports (23 = telnet) Filtrage utilisateur IP v6 Pénurie d'adresses Adresses sur 128 bits Diffusion anycast Priorité de flux (temps réel) Amélioration de l'authentification et sécurité Ports / Socket Port : Adresse interne prédéterminée = chemin d'accès bidirectionnel ftp : 21 telnet : 23 smtp : 25 http : 80 Socket : Adresse IP + N° de port Exemple : 111.21.14.128.21 Accès réseau : Connexion au réseau téléphonique SLIP : Serial Link Internet Protocol PPP : Point to Point Protocol SLIP Transmission de datagrammes via modem Aucun contrôle d'adresse adressage fixe : incompatible avec les FAI Aucun contrôle d'erreurs Réalisés par la couche supérieure PPP Transmission de datagrammes via modem Encapsulation de datagrammes multiprotocoles Contrôle liaison (LCP) Dialogue sur les paramètres de connexion : Contrôle réseau (NCP) Authentification de messages (PAP) Compression de l'entête IP