# Les réseaux informatiques/Introduction aux réseaux

Un réseau informatique est un ensemble d'ordinateurs reliés entre eux qui échangent des informations. À cela près qu'outre des ordinateurs, un réseau peut aussi contenir des équipements spécialisés, comme des hub, des routeurs, et bien d'autres équipements que nous aborderons dans ce cours. Dans les grandes lignes, un réseau est intégralement composé : d'équipements informatiques (ordinateurs et matériel réseau) et de liaisons point-à-point qui relient deux équipements entre eux. Mais tous les réseaux sont très différents les uns des autres. Il y a de nombreuses manières d'organiser les liaisons et ordinateurs d'un réseau, des milliers de manières de gérer les transferts d'informations sur le réseau. Pour simplifier le propos, on peut quand même classer les réseaux suivant plusieurs critères. Dans ce qui va suivre, nous allons voir comment on classe les réseaux suivant leur taille et leur étendue géographique, mais aussi suivant ce à quoi servent les ordinateurs du réseau.

## La classification des réseaux en fonction de leur taille : LAN, WAN, PAN, MAN, et Internet

Certains réseaux sont limités à une salle, voire un bâtiment. D'autres sont tellement grands qu'ils font la taille d'une ville ou d'un quartier, quand d'autres ont une étendue nationale. Internet est un réseau d'étendue mondiale : grâce au net, vous pouvez parfaitement communiquer avec quelqu'un qui est situé aux États-Unis, en Russie, au Japon, etc. Et évidemment, tous ces réseaux portent des noms différents : on n'appelle pas de la même manière un réseau qui ne contient qu'une centaine d'ordinateurs et un réseau de taille planétaire.

### Les réseaux locaux

Les réseaux les plus petits contiennent entre 2 et 100 ordinateurs, qui sont reliés avec des câbles ou une connexion sans fil. Ces réseaux sont appelés des réseaux locaux ou encore des réseaux LAN (Local Area Network). Les réseaux internes aux entreprises ou aux écoles sont de ce type : par exemple, les ordinateurs d'une salle informatique peuvent généralement communiquer entre eux.
Comme autre exemple, vous avez tous chez vous un réseau local qui comprend votre box internet et tout ce qui est connecté dessus. Un tel réseau local, qui tient dans une simple chambre, est appelé un PAN : Personnal Area Network. Un PAN comprend généralement des équipements qui appartiennent à une même personne ou famille, qui sont regroupés dans la même maison, sur une étendue d'une dizaine de mètres.

### Les réseaux interconnectés

À côté de ces réseaux assez petits, on trouve les réseaux de taille moyenne, qui permettent d'interconnecter des réseaux locaux proches :
* les MAN, pour Metropolitan Area Network ont généralement la taille d'une ville
* les WAN, pour Wide Area Network, permettent de relier entre eux des réseaux locaux dans des villes différentes.
Il existe deux grandes solutions pour créer un WAN : les lignes louées et les lignes RNIS.
* Les lignes louées permettent de créer un lien permanent entre les deux réseaux locaux distants. Ce lien est une ligne téléphonique, qui est louée par l'opérateur de télécommunication. Le prix d'une ligne louée est indépendant de l'utilisation qui en est faite : peu importe que l'on échange beaucoup d'informations ou très peu sur cette ligne, le prix reste le même. Autant dire que ce genre de ligne est d'autant plus rentable que son utilisation approche des 100% en permanence.
* Les lignes RNIS fonctionnent sur un principe similaire, si ce n'est que que la liaison est disponible à la demande, et non permanente (24 heures sur 24). La liaison s'ouvre quand deux ordinateurs veulent l'utiliser pour échanger des informations. Quand les deux ordinateurs ont cessé d'échanger des données, la ligne se ferme après un certain délai d'inactivité. Le prix de ces lignes RNIS sont proportionnelle au temps d'utilisation. Autant dire qu'il vaut mieux limiter la durée de transmission au mieux pour réduire le coût de ce genre de ligne.

### Les réseaux mondiaux

Internet est une interconnexion de réseaux à l'échelle mondiale. C'est d'ailleurs ce qui lui a valu son nom : internet est l'abréviation de interconnection of networks. Environ 47000 réseaux de grande envergure, des réseaux autonomes, sont interconnectés pour former internet. Ces 47000 réseaux sont souvent des réseaux appartenant à des fournisseurs d'accès. Les informations qui transitent sur internet passent par des câbles en fibre optique. Les câbles qui relient ces 47000 réseaux parcourent le monde entier : pour donner un exemple, il y a environ 6 à 7 câbles qui traversent l’Atlantique qui permettent aux réseaux américains de communiquer avec les réseaux européens.
Au début, Internet n'était pas disponible pour le grand public, mais servait essentiellement aux grandes organisations. L'internet de l'époque était vraiment différent de l'internet actuel : non seulement les technologies utilisées n'étaient pas les mêmes, mais il n'y avait pas de sites web. En ce temps, internet servait surtout à échanger des données, télécharger de grands volumes de données. C'est dans les années 1990 que sont apparues les technologies qui ont permis la conception des sites web, à savoir l'HTML, les adresses URL et le protocole HTTP. De nos jours, internet est surtout utilisé par les particuliers pour consulter des sites web. L'ensemble des sites web accessibles sur internet est ce qu'on appelle le web : il faut ainsi faire la différence entre le web et internet, internet étant un réseau et le web un ensemble de sites web.

## La classification en fonction des interconnexions : le client-serveur et le pair à pair

Les réseaux informatiques peuvent aussi être catégorisés selon la manière dont les ordinateurs échangent des données. On peut ainsi classer les réseaux en trois grands types :
* les architectures un tiers ;
* les architectures client-serveur ;
* les architectures pair à pair.
Un même réseau physique peut servir pour les trois. Si on prend internet, celui-ci permet à des ordinateurs de communiquer en client-serveur : c'est ce qui est fait lors de la consultation de sites web. Il permet aussi les échanges en pair à pair : les applications de téléchargement basées sur le protocole BitTorrent utilisent des échanges en pair à pair.
| Un réseau de type client-serveur | Un réseau pair-à-pair |

### Les réseaux organisés autour d'un terminal

Les premiers réseaux locaux datent des années 1960. A cette époque, les ordinateurs étaient très cher et prenaient énormément de place : un ordinateur pouvait facilement remplir une pièce complète. Seules les grandes entreprises et services publics d'état pouvaient se payer ces ordinateurs. Il n'y avait donc pas un poste par personne : les organisations n'avaient qu'un seul ordinateur qu'il fallait se partager. Les utilisateurs n'avaient pas accès à l'ordinateur directement. Ils devaient passer par des terminaux, des systèmes qui permettaient d'afficher des informations et de saisir des commandes et du texte : ils étaient constitué d'un clavier, d'un écran, et de quelques circuits rudimentaires. Ces terminaux se contentaient d'envoyer ou de recevoir des informations au gros ordinateur central, qui traitait les demandes des terminaux une par une.
Cette organisation avec un seul ordinateur relié à des terminaux a survécu, et s'est même adaptée à l'ère internet. En effet, de nombreuses organisations utilisent encore des terminaux qui communiquent avec des serveurs via internet. Pensez à un distributeur automatique de billets : celui-ci n'est ni plus ni moins qu'un terminal assez évolué qui communique avec un serveur de la banque, via des connections internet. L'architecture un tiers correspond au cas où plusieurs terminaux sont reliés à un ordinateur central, peut importe que cette connexion se fasse via internet ou via un réseau local.

### Les réseaux de type clients-serveurs

L'architecture client-serveur est une amélioration de l'organisation précédente, la différence étant que les terminaux sont de véritables ordinateurs. Elle fait intervenir au minimum deux ordinateurs : un serveur et un ou plusieurs clients. Le serveur est un ordinateur qui contient des données utiles et très importantes à traiter, comme un site web, des données partagées sur internet, les documents d'une entreprise, etc. Les clients veulent avoir accès aux données présentes sur le serveur : pour cela, ils doivent envoyer une demande au serveur. Le serveur traitera cette demande après réception, et renvoie le résultat de la demande. La grosse différence entre un terminal et un client est que le terminal n'est pas un ordinateur, mais un matériel sans intelligence et qui n'a aucune capacité de calcul. Cette méthode est utilisée pour les sites web et les applications web : le site web est stocké sur le serveur, tandis que le client reçoit ces fichiers et affiche le site sur votre ordinateur.
Cependant, ce système a une ambiguïté majeure. Outre l'affichage et le stockage des données, un programme doit effectuer un paquet de traitements. Dans le modèle avec des terminaux, ces traitements étaient pris en charge par le serveur central : un terminal est un matériel sans intelligence et qui n'a aucune capacité de calcul. Mais un client est un vrai ordinateur qui peut parfaitement prendre en charge les calculs à faire. Ainsi, avec le système client-serveur, on ne sait pas où effectuer les traitements sur les données. De nos jours, on peut déporter les calculs aussi bien du côté du serveur que du côté client. Par exemple, on peut utiliser des technologies comme Javascript pour exécuter du code dans un navigateur web client. Mais dans d'autres situations d'entreprise, on peut déporter les calculs côté serveur. Dans le cas où les calculs sont majoritairement déportés du côté du serveur, le client est qualifié de client léger. Dans le cas contraire, on parle de client lourd.

### Les réseaux pair à pair

L'architecture pair à pair, aussi notée P2P, peut être vu comme une sorte d'amélioration du client-serveur. Dans le client serveur, les rôles de serveur et de client sont attribués définitivement. Mais avec le pair à pair, tout ordinateur peut alternativement être serveur et client. Pour mieux comprendre ce que cela signifie, on peut prendre l'exemple d'utilisation la plus connue du P2P : le transfert de fichiers. De nombreux logiciels utilisent des protocoles P2P, comme BitTorrent, pour permettre l'échange de fichiers entre utilisateurs. Ces protocoles permettent le téléchargement de fichiers demandés à partir d'autres "serveurs", ou alors envoyer des morceaux de fichiers aux autres clients. Ainsi, chaque ordinateur peut, avec ce logiciel, servir de client ou de serveur. Attention, cependant : c'est l'échange de fichiers qui est décentralisé, mais d'autres parties du protocole peuvent faire intervenir un serveur. La découverte des sources de téléchargement en est un bon exemple : selon le protocole, il peut être effectué en pair à pair ou en client-serveur. Cela permet de distinguer deux types d'architectures pair à pair :
* Avec du P2P centralisé, la mise en relation est réalisée par un serveur central, qui centralise les informations sur chaque client. Pour information, ces serveurs de mise en relation sont appelés des trackers, du moins pour le protocole BitTorrent. Ce serveur central contient une base de données qui mémorise quels sont les clients qui possèdent tel ou tel fichier. Cette BDD est mise à jour à chaque connexion d'un nouveau client. Quand un client se connecte au réseau P2P, il envoie au serveur la liste des fichiers qu'il est prêt à partager. Un client qui souhaite télécharger quelque chose a juste à demander au serveur de le mettre en relation avec un client qui possède le fichier voulu. Une fois la mise en relation faite, les deux clients vont se transmettre le fichier sans passer par le serveur.
* L'organisation précédente est à comparer avec le P2P décentralisé, où il n'y a pas de serveur central pour la mise en relation. Ici, les transferts de données se font de poste à poste, sans qu'il n'y ait de serveur bien précis. La mise en relation des clients s'effectue par des mécanismes bien plus complexes de découverte des clients, que nous n'aborderons pas ici.

## Routage, bridging et diffusion

Sur la plupart des réseaux, les ordinateurs sont rarement connectés directement entre eux. Mais cela ne les empêche pas de communiquer, les données pouvant être transmises indirectement, en passant par toute une série d'intermédiaires. Les données sont propagées de proche en proche et doivent trouver leur chemin vers le récepteur, trouver par quels intermédiaires passer pour arriver à destination. Tout le problème est de trouver un chemin d'intermédiaires entre l'émetteur et le récepteur, chemin qui doit de préférence être le plus court et/ou le plus rapide possible.
Cette problématique existe sur Internet et les réseaux étendus, mais elle existe aussi sur des réseaux locaux de grande taille, voire sur certains réseaux locaux très simples (dits en étoile). Sur les réseaux locaux, on lui donne le nom de bridging, alors que l'on parle de routage sur les réseaux étendus et sur Internet. Les intermédiaires/relais portent d'ailleurs des noms différents : routeurs pour les relais Internet, commutateurs/concentrateurs pour les relais sur les réseaux locaux.
    Dans la suite de la section, nous ferons la confusion entre routage et bridging, que nous désignerons tous deux sous le terme de routage. Cet abus de langage nous permettra de simplifier les formulations et l'écriture. Dans les faits, tout ce qui va être dit vaudra autant pour le routage sur les réseaux étendus que sur les réseaux locaux.

### L'adressage réseau : adresses MAC et IP

Tout le problème du routage est de décider quand la donnée a atteint sa destination. Pour cela, il faut que les relais aient des moyens d'identifier les ordinateurs, par un système quelconque. Pour comprendre comment ce problème est résolu, nous allons faire une analogie entre un réseau et le système postal. Dans cette analogie, les personnes qui utilisent la poste sont équivalent aux ordinateurs d'un réseau, et les lettres sont équivalentes à des paquets de données échangés. Quand quelqu'un envoie une lettre, les relais postiers doivent identifier le destinataire, sans quoi ils ne savent où distribuer le courrier. Pour cela, on utilise une adresse, qui indique où il faut livrer la lettre. Sur les réseaux, on utilise le même mécanisme : chaque ordinateur reçoit une adresse, un identifiant qui permet de l'identifier. Mais les adresses réseaux sont bien plus simples que les adresses postales : elle n'ont pas d'organisation géographique et sont de simples numéros attribués arbitrairement.
On pourrait aussi faire une comparaison entre réseau téléphonique et réseau informatique, les deux étant très similaires et faisant usage de technologies très proches. Dans cette analogie, les ordinateurs sont équivalents aux téléphones, les données sont remplacées par des conversations téléphoniques, et les adresses par des numéros de téléphone.
Analogie entre réseau postal, réseau téléphonique et réseau informatique :
| Réseau informatique | Réseau postal | Réseau téléphonique |
| Ordinateurs | Foyers/maisons/appartements | Téléphones |
| Adresse réseau | Adresse postale | Numéro de téléphone |
| Donnée échangée | Lettre | Conversation téléphonique |
| Routeurs et commutateurs | Relais de distribution postaux | Relais téléphoniques |
Précisons qu'il existe deux types d'adresses : les adresses physiques et les adresses logiques. Les premières sont des adresses utilisées sur les réseaux locaux, mais qui ne sont pas compatibles avec les réseaux étendu et Internet. Ce sont des adresses qui ne peuvent pas être utilisées pour identifier un ordinateur sur le net et dont la portée est limitée à un réseau local, guère plus. À l'inverse, les adresses logiques sont utilisées sur Internet et ont une portée très large, dépassant le réseau local de l'ordinateur. Les adresses physiques sont actuellement standardisées par le standard MAC, ce qui leur vaut le nom d'adresses MAC. Quant aux adresses logiques, elles sont standardisées par le protocole IP, ce qui leur vaut le nom d'adresses IP. Une telle séparation a son utilité : elle permet le remplacement d'un ordinateur sans pour autant changer son adresse internet. Par exemple, si un serveur tombe en panne et que l'on le remplace, il garde son adresse IP, alors que son adresse MAC change.

### Routage par datagrammes et par circuits virtuels

Toute la problématique du routage est que les données envoyées arrivent à destination. Dans les grandes lignes, il existe deux types de routage distincts, qui fonctionnent sur des principes très différents : la méthode des datagrammes et la méthode des circuits virtuels.
    Sauf exceptions, les données envoyées sur un réseau le sont par blocs de taille fixe. Dans ce qui suit, nous allons appeler ces blocs de données des paquets (terme quelque peu impropre, mais passons).
Avec les datagrammes, chaque paquet contient toutes les informations nécessaires pour identifier le destinataire. Chaque paquet contient l'adresse du destinataire et éventuellement l'adresse de l'émetteur. Le principal avantage de cette méthode est qu'elle ne nécessite pas de maintenir une connexion entre source et destinataire. Le paquet est envoyé sans concertation préalable avec le destinataire. Pour savoir où envoyer les paquets reçus, les relais du réseau contiennent une table qui associe chaque adresse avec le prochain intermédiaire. Cette table porte des noms différents selon que l'on parle de routeurs ou de commutateurs : table de routage pour les routeurs et table CAM pour les commutateurs.
La méthode des circuits virtuels nécessite de maintenir une connexion active entre source et destinataire. Une fois la connexion établie, tout paquet émis par l'émetteur est envoyé automatiquement au récepteur désigné lors de la connexion. Avec elle, les paquets n'ont pas besoin de préciser leur destination : pas besoin d'insérer l'adresse de destination dans le paquet. Le destinataire est l'ordinateur avec lequel est connecté l'émetteur.

## Les modes de transfert

Une transmission sur le réseau peut prendre différentes formes suivant le nombre de destinataires. Un ordinateur peut en effet vouloir communiquer avec un ordinateur bien précis, ou envoyer une donnée à plusieurs PC différents. Suivant le nombre de destinataire, on peut faire la différence entre Unicast, Anycast, Multicast et Broadcast.
Avec l'unicast, un ordinateur émet des données à destination d'un autre ordinateur bien identifié.
Avec l'anycast, un ordinateur émet des données vers un ordinateur qu'il ne connaît pas : l'émetteur ne connaît pas la destination de la donnée. L'ordinateur de destination n'est cependant pas choisi au hasard : c'est le protocole de routage qui choisit vers quel ordinateur émettre la donnée.
Avec le multicast, les données émises sont envoyées à un groupe d'ordinateur qui veulent recevoir cette donnée. Les ordinateurs qui veulent revoir la donnée se connectent à un serveur et s'inscrivent à un groupe de diffusion. Tous les ordinateur inscrits dans ce groupe recevront la donnée émise. C'est notamment utilisé lors du streaming d'évènements en live : on émet la donnée une fois, et celle-ci sera recopiée par les routeurs à toutes les personnes inscrites au groupe que le routeur connaît. Pour faire simple, le groupe possède une adresse logique (une IP) qui permet de l'identifier. Quand une donnée est envoyée à l'adresse du groupe, le serveur reçoit le paquet et en envoie des copies à tous les ordinateurs du groupe. L'adresse IP du serveur/groupe est appelée une adresse multicast.
Avec le broadcast, le paquet émis est envoyé à tous les ordinateurs d'un réseau ou sous-réseau (un réseau local le plus souvent). Selon que le paquet se propage dans un réseau local ou sur internet, on distingue deux formes de broadcast.
* Le broadcast limité a une portée limitée au réseau local de l'émetteur. Le paquet est envoyé aux voisins de l'ordinateur émetteur, mais reste confiné dans le réseau local : il ne passe pas les routeurs, mais est propagé par les commutateurs/concentrateurs.
* Le broadcast dirigé est similaire au précédent, sauf que le paquet n'est pas confiné dans un réseau local et peut passer les routeurs pour se déplacer sur internet.
Précisons une chose sur le broadcast : qu'il soit dirigé ou non, toute transmission en broadcast va se propager et atteindre un certain nombre d'ordinateurs. L'ensemble des ordinateurs d'un réseau local, pour un broadcast limité, un ensemble d'ordinateurs bien précis sur Internet (broadcast dirigé). L'ensemble des ordinateurs qui reçoit une transmission broadcast porte un nom : c'est le domaine de diffusion.