AM2 : Réseaux 1. Introduction Dans ce chapitre, nous verrons comment les ordinateurs communiquent entre eux, et comment ses communications se composent pour faire fonctionner le réseau Internet. Ces mécanismes de communication de machine à machine s’appellent des protocoles. Les protocoles de la couche physique connectent deux ordinateurs à travers leurs bus. Les protocoles de la couche lien organisent un réseau local autour d’un serveur, et repèrent les ordinateurs par l’adresse MAC de leur carte réseau. Les protocoles de la couche réseau organisent les réseaux locaux de proche en proche, et repèrent les ordinateurs par leur adresse IP. Nous expliquerons comment les informations sont acheminées au travers du réseau par l’intermédiaire de routeurs. Un ordinateur peut se décrire à différentes échelles : De même, les ordinateurs s’assemblent à leur tour en réseaux de différentes tailles. Ci-dessous : deux ordinateurs seulement Transistors Portes booléennes Composants (processeurs, mémoires…) Un réseau familial Un réseau local d’entreprise Le réseau Internet : ATTENTION ! Internet et le Web sont deux choses différentes. INTERNET = interconnexion de réseaux de machines WEB = données échangées sur Internet via le protocole HTTP Quelques dénominations : LAN : « Local Area Network » : à l’intérieur d’un immeuble, ou d’une superficie inférieure à 10 km² WAN : « Wide Area Network » : au moins la dimension d’un pays, souvent la planète entière RLE : « Réseau Local d’Entreprise " Intranet : Réseau privé interne, dans une entreprise ou un lycée par exemple Internet : réseau public, national ou international, des entreprises de télécommunication Extranet : réseau privé interne et externe, ouvert vers l’extérieur. 2. Protocoles Prenons un exemple avec La Poste : Source : http://sebsauvage.net/comprendre/tcpip/index.html Quand vous voulez envoyer une lettre par la Poste : Vous placez votre lettre dans une enveloppe Sur le recto, vous inscrivez l’adresse du destinataire Au verso, vous écrivez l’adresse de l’expéditeur (la vôtre !) Ce sont des règles utilisées par tout le monde : C’est un protocole ! 3. L’organisation par couches Exemple du calcul d’une moyenne d’élève à l’université : (source : http://www.machaon.fr/isn/reseaux/cours1.pdf) Le calcul est décomposé en tâches et sous-tâches, avec plusieurs niveaux et plusieurs rôles. On appelle cela une organisation en pile. C’est ce type d’organisation qui régit les réseaux en général, et Internet en particulier. La communication entre ordinateurs utilise un empilement de couches, présentes sur chaque ordinateur du réseau. Une couche est un ensemble de protocoles qui effectuent des tâches de même niveau. On distingue cinq couches appelées : couche application couche transport couche réseau couche lien couche physique A l’émission : dans l’ordinateur A, chaque couche accomplit sa tâche, et transmet le résultat à la couche suivante, en ajoutant d’autres informations dans un en-tête : C’est l’encapsulation des informations A la réception : quand les informations arrivent à la couche physique de l’ordinateur B, elles sont encapsulées avec plusieurs en-têtes empilés. En « remontant » les couches successives, chaque entête est supprimé au fur et à mesure. C’est la décapsulation des informations. 4. Trois protocoles en détail a. Protocoles de la couche physique : communication bit par bit Basiquement, il s’agit de transférer des 0 et des 1 d’un ordinateur à un autre. Le processeur de l’ordinateur A envoie des informations par le bus vers sa carte réseau, … qui les transmet, par câble ou radio, vers la carte réseau de l’ordinateur B … qui les transmet à son tour, par bus, vers son processeur. Analogie avec l’élection d’un nouveau pape : Les variations du signal électrique peuvent être de plusieurs natures : longueur d’onde, intensité, phase… La transmission entre cartes réseaux peut se faire par différents supports : o Câble métallique (coaxial) o Ondes radio o Fibre optique… Parfois, le signal peut être altéré. Les protocoles modernes utilisent des compléments sophistiqués pour rendre le signal plus résistant aux erreurs de transmission. Exercice 1 : b. Protocoles de la couche lien : le réseau local L’étape suivante consiste à construire un réseau local, formé de quelques machines connectées par un protocole physique à un ordinateur central, le serveur. Pour envoyer des informations à un autre ordinateur, chaque ordinateur passe par le serveur. On distingue chaque ordinateur en lui attribuant un nom : une adresse MAC (Medium Access Control). C’est un mot de 48 bits, écrit comme un sextuplet de nombres à 2 chiffres en base seize, par exemple 10:93:e9:0a:42:ac. Une adresse MAC unique est attribuée à chaque carte réseau au moment de sa fabrication, ce qui permet d’utiliser l’ordinateur qui l’utilise sur le réseau local. Comment trouver une adresse MAC ? Ouvrir une fenêtre terminal (invite de commandes) Taper ipconfig/all (sous Windows) Combien voyez-vous d’adresses MAC différentes ? Eteindre, puis rallumer l’ordinateur. Les adresses ont elles changé ? Différents protocoles pour cette couche « lien » Protocole Le serveur communique avec chaque ordinateur successivement Tous les ordinateurs peuvent communiquer en même temps vers le serveur Tous les ordinateurs peuvent communiquer en même temps vers le serveur + Le serveur accuse réception dès qu’il a reçu un message Tous les ordinateurs peuvent communiquer en même temps vers le serveur + Le serveur accuse réception dès qu’il a reçu un message + Tant que l’ordinateur n’a pas eu d’accusé de réception, il renvoie son message périodiquement Tous les ordinateurs peuvent communiquer en même temps vers le serveur + Le serveur accuse réception dès qu’il a reçu un message + Tant que l’ordinateur n’a pas eu d’accusé de réception, il renvoie son message au bout d’une durée aléatoire Analogie Commentaires En classe, le professeur donne la parole à chaque élève successivement (tour de table) En classe, tous les élèves peuvent poser une question en même temps au professeur Tous les élèves posent leur question en même temps au professeur. Ils savent si leur question a été entendue Et si un élève n’a rien à dire ? Et si la durée de parole de l’un excède le temps imparti ? Risque de collision entre les messages ! Le professeur ne comprend rien. Le serveur non plus. Tous les élèves peuvent parler en même temps et poser la même question autant de fois que nécessaire, jusqu’à ce que le professeur leur réponde. Mieux mais toujours risque de collision entre les messages (si la période est la même pour tout le monde, chacun reposera sa question en même temps que les autres => on n’entendra rien !) Tous les élèves peuvent parler en même temps et poser la même question autant de fois que nécessaire, jusqu’à ce que le professeur leur réponde, mais ils reposent leur question au bout d’un laps de temps aléatoire. Encore mieux : les risques de collision sont réduits, et chaque élève pourra au final avoir l’accusé de réception du professeur. Cela ne résout pas le problème de collision, mais au moins, les élèves savent que le professeur n’a rien compris… Protocole Ethernet ou Wifi par exple Au niveau de la couche lien, les données à échanger (des 0 et des 1) sont structurés en « paquets », avec un format standard et un en-tête permettant de comprendre le format utilisé. Analogie : pour les fichiers texte codant les images, l’en-tête permet de savoir s’il s’agit d’un format PGM, PBM… c. Protocoles de la couche réseau : le réseau global Utiliser un ordinateur central est possible pour un réseau de petite taille, mais ne peut s’appliquer à un réseau de plusieurs milliards d’ordinateurs comme Internet : L’ordinateur central serait vite surchargé Si l’ordinateur central tombait en panne, les communications du monde entier seraient interrompues C’est pourquoi on a inventé un système plus robuste : les différents réseaux locaux sont fédérés de proche en proche par des protocoles spéciaux nommés protocoles réseaux, dont le plus connu est IP. A l’intérieur d’un réseau local, ce sont les protocoles lien qui continuent d’être utilisés (voir schéma). Protocoles « réseau » Protocoles « lien » Adresse IP : Avec le protocole IP, chaque ordinateur se voit attribuer une adresse, nommée adresse IP. Contrairement à l’adresse MAC, cette adresse n’est pas associée de façon « physique » et irréversible à la machine. Quand on change d’ordinateur, le nouveau peut hériter de l’adresse IP de l’ancien. A l’inverse, si un ordinateur est déplacé d’un endroit à un autre (lieu de vacances par exemple), il change d’adresse IP. Adresses IPv4 : ce sont les adresses IP classiques. De mots de 32 bits, écrits sous forme d’un quadruplet de nombres compris entre 0 et 255, par exemple 216.239.59.104. Remarque : avec les adresses IPv4, il y a ………………………… adresses possibles, soit environ …………………….. Or le réseau Internet actuel contient déjà plus de ……………………………… d’ordinateurs. On cherche donc à remplacer les adresses classiques par une nouvelle norme, IPv6, où les adresses contiennent 128 bits, ce qui donne …………………………………….. adresses possibles, soit environ …………………………….. Exercice : 5. Le routage IP Reprenons l’analogie avec La Poste : Pour envoyer votre lettre, vous la postez dans la boîte aux lettres la plus proche. Ce courrier est relevé, envoyé au centre de tri de votre ville, puis transmis à d'autres centres de tri (départemental, régional…) jusqu'à atteindre le destinataire. Sur Internet, c’est à peu près la même chose : chaque message (chaque petit paquet de données) est « enveloppé » par un protocole nommé IP (Internet Protocol), qui y ajoute différentes informations : L’adresse de l’expéditeur (votre adresse IP) L’adresse IP du destinataire Différentes données supplémentaires qui permettent de contrôler le bon acheminement du message. La notion de serveur est remplacée par celle de routeur. Vous déposez le « paquet IP » sur l'ordinateur le plus proche (celui de votre fournisseur d'accès en général). Le paquet IP va transiter de routeur en routeur jusqu'à atteindre le destinataire. Chaque routeur a un répertoire, appelé table de routage, qui lui indique la prochaine étape dans le chemin vers l’ordinateur-cible. Il envoie donc les informations au prochain routeur, qui à son tour, consulte sa table de routage pour connaître l’étape suivante Comme dans un jeu de piste, on ne connaît pas le chemin en entier à l’avance ! On découvre chaque étape au fur et à mesure Algorithme de routage Pour construire et maintenir à jour leurs tables de routage, les routeurs utilisent un algorithme (ex : celui de Bellman-Ford) Chaque routeur envoie périodiquement à ses « voisins » o la liste des adresses IP vers lesquelles il connaît un chemin o ainsi que la longueur de ces chemins. Grâce à cela, chaque routeur met à jour sa connaissance du réseau, les chemins bloqués, les nouveaux chemins apparus, les chemins les plus rapides… Cette mise à jour dynamique des tables de routage donne souplesse et robustesse au réseau Internet ! SI demain, un chemin est détruit (rupture d’un câble…), les tables de routage se mettront graduellement à jour, et trouveront des chemins pour « contourner » le point bloquant. Inconvénients : cette structure est souple, mais relativement peu fiable. Quand un routeur reçoit trop d’informations, il en détruit une partie. Quand un paquet « traîne » trop longtemps en chemin sans arriver à destination, il est également détruit. Application : trouver un chemin entre son ordinateur et l’ordinateur associé au nom de domaine www.lefigaro.fr Application : trouver l’adresse IP du routeur par lequel son ordinateur est connecté à Internet. 6. La nécessité d’un protocole de transport On a vu que les protocoles de réseau comme le routage IP étaient souples, mais peu fiables (l’information peut être détruite en cas de serveur saturé ou de délai trop long). De plus, seuls de petits paquets de données (environ 1500 octets) peuvent transiter par ce type de protocole. C’est pourquoi on utilise en pratique un protocole supplémentaire, dit protocole de transport. Le plus connu est le protocole TCP. Celui-ci agit comme un régulateur du réseau global. Pour reprendre l’analogie postale, c’est un peu comme si on envoyait une lettre en recommandé avec accusé de réception. TCP s’assure que chaque paquet IP envoyé est arrivé à bon port. Actions de TCP : Analogie postale : imaginons qu’à une même adresse soient domiciliées plusieurs sociétés. Quand une lettre arrive, il faut que le facteur sache à quelle porte habite le destinataire Source : http://sebsauvage.net/comprendre/tcpip/ Ainsi : l’adresse IP permet de s’adresser à un ordinateur donné : c’est le protocole IP qui gère. Et le numéro de port permet de s’adresser à un logiciel donné sur l’ordinateur en question : ça, c’est le protocole TCP qui gère ! Exemples de logiciels concernés : navigateur internet, messagerie e-mail, logiciel de radio… Une application X sur l’ordinateur A peut ainsi envoyer des données à une application Y sur un ordinateur B. La paire X : A est repéré par les numéros Adresse IP :Port. De même pour la paire Y : B. Avec le couple (Port_X: IP_A ; Port_Y : IP_B), on définit ce qu’on appelle un socket, et qui identifie de manière unique une communication entre deux logiciels. Récapitulatif : TCP vérifie que le destinataire est prêt Découpe les données en paquets IP ajoute une couche « port » sur chaque paquet numérote les paquets, vérifie qu’ils sont bien arrivés, redemande ceux qui manquent réassemble les petits paquets pour reconstituer l’information initiale … et envoie un accusé de réception à l’expéditeur ! Exercice : 7. La couche supérieure : protocoles d’application Une ultime couche de protocoles sert d’intermédiaire entre : les protocoles précédents (transport=>réseau =>lien=>physique) et les programmes dont on se sert tous les jours (navigateur, logiciel d’e-mail…) Il s’agit des protocoles d’application. Programme Logiciel e-mail Navigateur Web Lien entre le nom d’un site internet et son adresse IP Envoi de fichier Protocole d’application utilisé SMTP / POP3 HTTP DNS Commentaire Simple Mail Transfer Protocol Hyper Text Transfer Protocol Domain Name System FTP File Transfer Protocol Tous ces protocoles utilisent TCP/IP. Illustration concrète : quand on cherche à accéder à une page web (généralement située sur un autre ordinateur…) : on tape le nom de domaine dans le navigateur ; Par exemple www.lefigaro.fr le navigateur doit trouver l’adresse IP associée à ce nom. Il utilise le protocole ………………… qui appartient à la famille des protocoles…………………………. Il utilise ensuite le protocole ………………….. (famille des protocoles ………………….) pour demander l’envoi de la page à l’ordinateur hôte. HTTP confie la page web au protocole …………………. (famille des protocoles…………………….) qui va la découper en petits paquets et confier chaque paquet au protocole ……………………… (famille des protocoles …………………………….) , qui effectue le routage en choisissant un chemin adapté. A chaque routeur, les paquets sont confiés au protocole de …………………….. en vigueur (par exemple, Wifi ou Ethernet), qui les confie enfin au protocole …………………………, qui gère l’acheminement des paquets bit par bit. Exercice : pour visualiser les paquets IP échangés, voir le logiciel Wireshark (www.wireshark.com), qui capture et décortique en temps réel tout ce qui se passe sur le réseau.