Réseaux d’ordinateurs Richard Baron, Franck Thollard
Sommaire Motivation, notion de réseau, réseaux de réseaux Lien système d’exploitation, processus et réseaux Paradigme client-serveur Paradigme Systèmes distribués Applications client-serveur usuelles Sécurité des communications Architecture de réseau Ethernet, TCP/IP, aspects techniques
Motivations Permettre aux ordinateurs de communiquer les résultats de leurs opérations, pour enchaîner les tâches exécutées Permettre aux utilisateurs de communiquer avec les ordinateurs distants (pour travailler et/ou consulter des données, …), ou avec d’autres utilisateurs Répartir le travail à faire sur plusieurs ordinateurs
Notions de réseau Un réseau est un ensemble : d’ordinateurs, communiquant à l’aide d’un protocole commun à travers Des lignes spéciales de communications Les réseaux peuvent être différemment construits au niveau matériel, mais on peut les interconnecter, pour former des internets
Lien système d’exploitation, processus et réseaux Un ordinateur est dirigé par son système d’exploitation, qui est la collection de programmes de base nécessaire au bon fonctionnement de l’ordinateur Un système d’exploitation multi-tâches (et multi-utilisateur) exécute plusieurs processus de manière entrelacé Une partie de ces processus peuvent communiquer entre eux à travers des canaux spéciaux à l’intérieur du système d’exploitation … … ou avec des processus s’exécutant sur d’autres ordinateurs, à travers le réseau.
Paradigme client-serveur Besoin de mettre de l’ordre dans la philosophie des réseaux Inspiration de la vie réelle : bureau de poste, magasins, … Paradigme client-serveur : modèle de communication dans lequel Un programme principal appelé serveur tourne en permanence (ou est prêt à tourner) Des programmes client se connectent occasionnellement au serveur, échangent des données, puis se déconnectent
Paradigme systèmes distribués Autre inspiration : dans une équipe, chacun sa tâche Paradigme système distribué : modèle de communication dans lequel : Les données et les instructions de traitement sont réparties sur plusieurs ordinateurs … … qui communiquent avec des programmes spéciaux, pour interagir, partager les résultats, et réaliser ensemble une tâche complexe
Applications client-serveur usuelles Courrier électronique Dans la famille des moyens de communications comme les lettres, le fax, les sms Transfert de fichiers (ftp) Comparable à un système de bibliothèque, où l’on demande à un employé de chercher des ouvrages, on attend, puis les ouvrages sont apportés
(suite) Session distante (telnet) Forums de discussion (newsgroup) Dans la famille des moyens de contrôle à distance, comme la consultation de compte bancaire, l’achat de billet de train … Forums de discussion (newsgroup) Dans la famille des moyens d’échange d’information comme les petites annonces de journaux. Sorte de pannaux d’affichage à echelle mondiale
(suite) Consultation de pages Web (World Wide Web) Dans la famille des moyens de consultation et d’information comme la télévision, la consultation de catalogue de vente par correpondance …
Courrier électronique Permet l’échange de messages Rédigés au moyen d’un logiciel dédié ou de simples éditeurs de texte Envoyés et consultés au moyen de logiciels spécifiques Chaque utilisateur dispose d’une adresse internet e-mail, de la forme nom@domaine. Le domaine peut être formé de plusieurs mots, séparés par des points. Le dernier est soit un indicatif de pays, soit un top-level (.com, .gov, .net, .org …).
Transfert de fichiers : ftp Permet la copie de fichier d’un ordinateur à l’autre En fonction de droits spécifiques Les machines sont identifiées par une adresse ou un nom réseau : machine.domaine exemple : moneta.univ-st-etienne.fr
Sur la machine qui initie la communication, il faut avoir le programme client ftp (WS_ftp …) L’autre machine doit avoir en exécution un processus serveur ftp, à l’écoute d’éventuelles requêtes de connexion et transfert L’utilisateur du client doit être connu par la machine serveur, ou bien celle-ci doit permettre les connexions anonymes avec un login anonymous
Session distante : telnet Permet la connexion et le dialogue avec un ordinateur distant multi-tâche/multi-utilisateur À travers une émulation de terminal : Chaque touche du clavier appuyée est envoyée à l’ordinateur distant Chaque caractère émis par l’ordinateur distant est récupéré et affiché
Nécessite (comme ftp) une application client telnet et un serveur qui écoute les requêtes de connexion et lance les programmes gérant les communications L’utilisateur doit être connu par la machine serveur
Forums de discussion (newsgroup) Permet l’échange de messages (opinions, questions/réponses, petites annonces …) à l’échelle d’Internet Groupes de discussions repertoriés par thèmes et sous-thèmes : soc.culture.ecuador, comp.os.linux.admin
Web Browsing Permet la visualisation de documents multimédia entreposés sur des ordinateurs distants Au moyen d’un navigateur (IE, Mozilla, Opera …) Qui se connecte à des serveur Web à travers le réseau, leur demande des fichiers précis, les récupère et les affiche à l’écran Les fichiers distants résident dans des répertoires dédiés
(suite) Les fichiers récupérés et affichés comportent De l’information utile pour l’utilisateur du browser Des hyperliens vers d’autres fichiers, qui sont des ponts pour aller trouver d’autres fichiers, éventuellement sur d’autres ordinateurs Ces liens sont activés avec la souris pointée en appuyant sur le bouton gauche Et le browser recherche alors les nouveaux fichiers et les affichent
Côté serveur Les cgi (Common Gate Interface), calculent ou retrouvent des données, et les fournissent comme résultat à afficher par le browser PHP permet la génération de pages dynamiques et l’interfaçage avec des bases de données
Côté client Les applets Java : un langage compilé en code virtuel, interpreté par le browser Les contenus JavaScript : un langage interpreté avec des fonctionnalités plus flexibles et dynamiques que HTML
Adressage et fichiers du web browsing Chaque fichier est repertorié au moyen d’un URL (Uniform Ressource Locator), de la forme Protocole://machine.domaine/chemin/fichier Les hyperliens sont des mentions de tels URL à l’intérieur d’un fichier, rédigés dans un langage spécial (Hyper Text Markup Language) Le fichier peut être : du texte simple, des images, du son, une vidéo, une URL Les protocoles sont : http, https,ftp, telnet, mailto, …
Sécurité des transmissions Problème général de tout moyen de communication Différents types d’attaques : Écoute frauduleuse (Charles écoute ce que Bernard dit à Alice) Imposture (Alice croit que Bernard lui écrit, alors que c’est Charles qui l’a fait) Accès frauduleux (Charles se connecte sur un ordinateur sur lequel il n’a pas de droit d’accès) Copie illégale (Charles donne à Alice une copie d’un document qu’il n’a pas le droit de reproduire)
Sécurité Solutions basées sur l’arithmétique des grands nombres et les limitations actuelles de calcul Plusieurs familles, dont celle des clés publiques Une méthode répandue : RSA
Système de protection à clé publique Alice possède une clé (un nombre) publique, que tout le monde connaît, y compris Bernard et Charles Alice possède une clé privée, qu’elle seule connaît Quand Bernard écrit à Alice, il code le message à l’aide de la clé publique d’Alice, par une opération arithmétique difficilement réversible Quand Alice reçoit le message, elle le décode avec sa clé privée Seule la clé privée permet de décoder correctement le message codé avec la clé publique
Système d’authentification à clé publique Pour que Alice soit certaine que c’est bien Bernard qui lui avait écrit, Bernard, écrit son nom à la fin du message et le code avec sa clé privée Le système étant symétrique, Alice décode la fin du message avec la clé publique de Bernard, et vérifie que le résultat obtenu est bien le nom de Bernard
Comment circule l’information Elle est découpée en paquets de bits Comparable aux chemins de fer : l’information est un chargement, mis dans plusieurs trains indépendants, qui doivent tous aller de A vers B Les trains peuvent se suivre sur la même voie, ou bien emprunter des voies ou des trajets différents, arriver à des moments différents, se perdre …
Comment circule l’information Le mécanisme global fait que tout le chargement arrive (si des trains sont perdus, d’autres sont renvoyés avec le remplacement du chargement) Les trains sont aiguillés dans des directions précises Parfois, des trains très longs sont décomposés dans des sous-trains, en regroupant des wagons
Comment circule l’information Un réseau est dit local (Local Area Network) lorsqu’il s’étend sur quelques centaines de mètres (bâtiments …) Les réseaux locaux sont interconnectés, formant des réseaux de plus grande taille Dans un réseau local, les paquets émis atteignent tous les ordinateurs, et seul le destinataire les récupère Pour aller d’un LAN à un autre, il faut faire du routage, au moyen d’ordinateurs appelés routeurs
Caractéristiques d’un réseau Le graphe de connexion Le médium physique utilisé : courant électrique, ondes lumineuses, radio … Les programmes gérant les communications : pile de protocoles La structure en couche (norme Open Systems Interconnections) : chaque couche prend les données de la couche supérieure, les traite, et les fournit à la couche inférieure. Une couche ne « dialogue » qu’avec la couche correspondante
Schéma OSI Couche application Couche présentation Couche session Couche transport Couche réseau Couche liaison de données Couche physique Couche application Couche présentation Couche session Couche transport Couche réseau Couche liaison de données Couche physique
Couche physique Assure l’interface avec le matériel Prend en charge la bonne conversion des signaux digitaux en signaux analogiques, la modulation, l’emission physique sur la ligne de communication, la réception Le filtrage du bruit, la reconversion en signaux digitaux
Couche liaison de données Met les paquets (trains) qui lui sont donnés par la couche réseau dans des trames (l’unité de transmission pour cette couche = groupe de wagons) Assure la bonne transmission de chaque trame (délimitation dans le flot de signaux, synchronisation) sur une ligne point-à-point (i.e. entre deux ordinateurs)
Couche liaison de données Utilise des algorithmes de correction d’erreur Peut mettre en oeuvre un contrôle de congestion limitée à la ligne point-à-point Gère l’accès des ordinateurs à la ligne, lorsqu’elle est partagée
Couche réseau Assure la bonne transmission de chaque paquet (train) qui lui est confié par la couche transport, indépendamment des autres paquets, de l’émetteur jusqu’au destinataire, donc à travers (éventuellement) d’autres réseaux intermédiaires Gère les tables de routage qui indiquent comment il faut acheminer les paquets qui traversent plusieurs réseaux avant d’arriver à destination
Couche réseau Contrôle la congestion du réseau avec des algorithmes spécifiques (sceau percé, files d’attentes, …) Détecte et corrige les erreurs (avec le couche liaison)
Couche transport Assure la bonne transmission d’un message, de l’expéditeur au destinataire Récupère le message et le segmente en un groupe de paquets S’assure qu’ils soient délivrés dans l’ordre, tous, et sans duplication Met en œuvre des algorithmes qui numérotent les paquets, récupèrent des accusés de réception, et gèrent ainsi le traffic au niveau global
Couche session Première couche « au dessus » du niveau réseau concret Gère la connexion lorsqu’il s’agit de communications établissant un canal virtuel (un peu comme un conversation téléphonique) Aide à la synchronisation des entités communiquantes (jeton pour la gestion des ressources critiques)
Couche présentation Assure les éventuelles conversion de type ou de format de données nécessaires, en tant qu’interface entre l’application et les protocoles réseau Assure une partie de la compression des donnée Assure le cryptage-décryptage des données transmises
Couche application Constitué des applications qui utilisent les services réseau Évoqué précédemment
Protocoles usuels : TCP/IP, Ethernet Ordinateur 1 telnet, ftp, smtp … TCP IP Ethernet Câble ethernet Ordinateur 2 telnet, ftp, smtp … TCP IP Ethernet Câble ethernet
Ethernet Standard pour les réseaux locaux (couche physique et liaison de données) Câbles électriques sur lesquelles les ordinateurs écoutent et essaient de communiquer, écoutant le résultat Si des collisions apparaissent (deux ou plusieurs ordinateurs ont émis des signaux en même temps), les essais sont renouvelés, après des attentes probabilisées
Ethernet Câbles coaxiaux, et maintenant 10BaseT (10 Mbps) et 100BaseT (100 Mbps) Présence de concentrateurs (hubs) et de commutateurs (switches)
TCP/IP Standard pour les réseaux, et les réseaux de réseaux Chaque ordinateur possède un identificateur unique, son adresse IP : quatre octet x.y.z.t Des correspondances entre les adresses IP et les nom machine.domaine sont faites par des ordinateurs spécifiques, appelés serveur de noms (Domain Name Server) connectés au réseau Les adresses IP ont une structure : partie réseau et partie hôte
Classes d’adresses Classe A Net id 7 bits Host id 24 bits Classe B 1 Net id 7 bits Host id 24 bits Classe B 1 Net id 14 bits Host id 16 bits Classe C Net id 21 bits Host id 8 bits
Dialogue TCP/IP Pour émettre un paquet, un ordinateur doit spécifier (entre autres) l’adresse du destinataire, son adresse d’émetteur, la longueur des informations, et le paquet effectif Le protocole TCP/IP assure la livraison du paquet, même si plusieurs réseaux sont à traverser, et assure aussi la livraison intégrale, correcte, dans le bon ordre et sans duplication, de plusieurs paquets Il existe un autre protocole, UDP, qui permet seulement l’envoi de datagrammes, unités de communication, sans garantir leur livraison TCP et UDP identifient les applications avec des numéros de ports
Encapsulation de l’information Données utilisateur + en-tête application En-tête TCP Données application En-tête IP En-tête Ethernet Remorque Ethernet telnet, ftp, smtp … TCP IP Ethernet Câble ethernet 46 à 1500 octets
Problème de traffic dans les réseaux Il faut pouvoir mettre à jour les tables de routage, pour avoir le réseau opérationnel en cas de changements : Ordinateur (routeur) qui tombe en panne, ou trop occupé Ordinateur (routeur) nouveau qui apparaît sur le réseau Liaisons défectueuses Liaisons nouvelles Il faut pouvoir redimensionner les réseaux (locaux ou longue distance), bien choisir entre les commutateurs (plus cher, mais sans réduire la BP) et les concentrateurs (moins chers mais réduisant la BP)
Problème de traffic Comme sur les autoroutes, il peut y avoir des bouchons Il faut contrôler le nombre de paquets sur les lignes En stocker dans des zones tampon, si possible Réguler le traffic, gérer la congestion À l’aide d’algorithme de contrôle, qui sont activement développés
TCP/IP, Internet : aspects techniques Savoir si un ordinateur est atteignable : ping www.univ-st-etienne.fr Savoir ce qui se passe sur le trajet d’un ordinateur à un autre : traceroute www.nasa.gov Si le serveur de noms est un ordinateur sous Unix, la gestion est assurée par un « démon » (named) qui a les tables de correspondance adresse IP-nom. Pour ajouter ou supprimer un ordinateur ou une imprimante, il faut éditer le fichier et redémarrer le démon
Schéma des protocoles TPC/IP Il en existe plusieurs dans cette famille Servant aussi à des tâches administratives : ICMP – extension de IP IGMP – multi-casting ARP,RARP – conversions adresse IP-num Ethernet et réciproquement BOOTP, DHCP – conversion et configuration au lancement
TCP/IP, Internet et système d’exploitation Pour bien gérer les communications, TPC/IP définit pour chaque machine des numéros de port, un peu comme les quais d’une gare Parallèle Message : chargement dans plusieurs trains Ordinateur : gare Lignes de communications : voies ferrées Paquets d’information : trains Adresses IP : coordonnées des gares Noms IP : noms des gares Ports : quais dans la gare
TCP/IP, Internet et les ports Les protocoles d’application (comme telnet, ftp, http, …) utilisent des numéros de port standard, sur tous les ordinateurs Sur ces ports, des processus spéciaux (des démons) sont à l’écoute de requête de communications Lors d’une requête favorablement traitée, un processus spécialisé pour le traitement d’une requête est lancé, et s’en occupe Parallèle : centre d’allocation des trains au quai dans une gare, ou encore l’accueil dans une administration, où l’on prend un ticket en attendant d’être dirigé vers un guichet spécifique
TCP/IP et Unix L’objet de base pour gérer les communications est la socket A l’aide de fonctions spécifiques, on crée des sockets, on les attache à des ports, on écoute pour savoir s’il y a une requête de connexion, on envoie des messages, on récupère des messages Les système possède aussi des commandes de surveillance des connexions en cours (netstat pour énumérer les sockets ouvertes) Parallèle : commande ps pour les processus