540 likes | 673 Views
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
E N D
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) 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
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
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
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 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