Les réseaux

publicité
ManuelDowek.book Page 197 Monday, July 9, 2012 4:58 PM
Les réseaux
C HAPITRE
16
AVANCÉ
Les ordinateurs parlent aux ordinateurs.
Dans ce chapitre, nous voyons comment les ordinateurs
communiquent entre eux, et comment ces 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 les bus
des ordinateurs. 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 expliquons comment les informations sont acheminées
au travers du réseau à l’aide de routeurs.
© Groupe Eyrolles, 2012
Vinton Cerf (1943-) et Robert Kahn
(1938-) ont inventé, au début des
années 1970, le protocole de transmission de paquets de données IP
(Internet Protocol) et le protocole de
contrôle de flux de données TCP
(Transmission Control Protocol). Il
s’agit des deux principaux protocoles
du réseau Internet. Ils donnent à ce
réseau sa fiabilité, sa robustesse en
cas de pannes ou de modifications et
sa capacité à évoluer. Cela a valu à
leurs auteurs le surnom de « pères
d’Internet. »
ManuelDowek.book Page 198 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
T Réseau
Un réseau est un ensemble d’ordinateurs et de
connexions qui permettent à chaque ordinateur de
communiquer avec tous les autres, éventuellement
en passant par des intermédiaires.
Nous avons vu qu’un ordinateur pouvait se décrire à différentes échelles :
les transistors s’assemblent en portes booléennes, qui s’assemblent à leur
tour en composants – processeurs, mémoires, etc. – qui s’assemblent à
leur tour en ordinateurs. Et nous pouvons continuer, car les ordinateurs
s’assemblent à leur tour en réseaux de différentes tailles : des réseaux les
plus simples, formés de deux ordinateurs reliés par un câble ou par radio,
aux réseaux locaux connectant quelques ordinateurs entre eux – les ordinateurs d’un lycée par exemple –, qui s’assemblent à leur tour pour
former le plus grand des réseaux : Internet, lequel relie presque tous les
ordinateurs du monde.
Les protocoles
T Protocole
Un protocole est un ensemble de règles qui
régissent la transmission d’informations sur un
réseau. Il existe de nombreux protocoles, chacun
spécialisé dans une tâche bien précise.
T Couche
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 et couche physique.
Si un programme PA, par exemple un logiciel de courrier électronique, exécuté sur un ordinateur A, veut communiquer des informations à un autre
programme PB, exécuté sur un ordinateur B, il sous-traite cette tâche à un
programme spécialisé QA, exécuté sur l’ordinateur A, qui met en œuvre un
protocole. Ce programme QA dialogue, suivant les spécifications de ce protocole, avec un programme homologue QB exécuté sur l’ordinateur B, ce
qui permet ainsi la communication entre les programmes PA et PB.
En fait, le programme QA sous-traite, à son tour, certaines tâches moins
sophistiquées à d’autres programmes mettant en œuvre d’autres protocoles,
qui sous-traitent, de même, certaines tâches encore plus élémentaires à
d’autres protocoles, etc. On peut ainsi classer les protocoles en couches hiérarchiques, par le niveau de sophistication des tâches qu’ils exécutent.
Ainsi, les informations envoyées par le programme de courrier électronique sont d’abord confiées à un protocole de la couche application, qui
les confie à un protocole de la couche transport, qui les confie à un protocole de la couche réseau, qui les confie à un protocole de la couche
lien, qui les confie à un protocole de la couche physique, qui les transmet
effectivement vers l’ordinateur B.
Quand on confie une lettre à un facteur, on doit la mettre dans une enveloppe et ajouter sur l’enveloppe des informations supplémentaires :
l’adresse du destinataire, sa propre adresse, une preuve de paiement, etc.
De même, quand un protocole de la couche k+1 confie des informations
à un protocole de la couche k, celui-ci ajoute à ces informations un entête Hk qui contient des informations, comme l’adresse de l’ordinateur
destinataire, utilisées par le protocole de la couche k. On appelle cela
l’encapsulation des informations. Quand les informations I confiées par la
198
© Groupe Eyrolles, 2012
ManuelDowek.book Page 199 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
Système en couches,
piles de protocoles. Encapsulation
et décapsulation de l’information.
couche application à la couche transport arrivent à un protocole de la
couche physique, plusieurs en-têtes H4, H3, H2, H1 leur ont été ajoutés.
Ces en-têtes sont supprimés à la réception : la couche k analyse puis
supprime Hk avant de passer l’information à la couche k+1. On appelle
cela la décapsulation des informations.
ALLER PLUS LOIN Les normes
Des normes régissent les rôles de chaque couche, leurs interactions et les
spécifications de chaque protocole. Ces normes permettent au réseau
Internet de fonctionner à l’échelle mondiale et assurent la modularité du
système : il est possible de modifier les protocoles à l’œuvre au sein d’une
couche, sans modifier les protocoles des autres couches, et le système continue à fonctionner dans son ensemble. Cette modularité est analogue au
fait de pouvoir changer un composant matériel d’un ordinateur, par
exemple sa carte graphique, sans devoir rien changer d’autre. Cette
modularité est essentielle pour permettre au système d’évoluer.
© Groupe Eyrolles, 2012
199
ManuelDowek.book Page 200 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
La communication bit par bit :
les protocoles de la couche physique
Commençons la présentation de ces protocoles par ceux de la couche
physique. Un protocole de la couche physique doit réaliser une tâche
extrêmement simple : communiquer des bits entre deux ordinateurs
reliés par un câble ou par radio.
Pour relier deux ordinateurs par un câble, et donc réaliser le réseau le
plus simple qui soit, on pourrait prolonger le bus de l’un des ordinateurs,
afin de le connecter au bus de l’autre. Ainsi, le processeur du premier
ordinateur pourrait écrire, avec l’instruction STA, non seulement dans sa
propre mémoire, mais aussi dans celle du second. Le processeur du
second ordinateur pourrait alors charger, avec l’instruction LDA, la
valeur écrite par celui du premier.
La technique utilisée en réalité n’est pas beaucoup plus compliquée : le
processeur du premier ordinateur envoie des informations par le bus vers
l’un de ses périphériques, la carte réseau, qui les transmet par un câble – ou
par un autre support physique, par exemple par radio – à la carte réseau du
second ordinateur qui les transmet, par le bus, à son processeur.
Transmission point à point
Flashcode exprimant le nombre
5412082001000261
200
La transmission d’une carte réseau à l’autre met en œuvre un protocole,
appelé protocole physique. Un exemple de protocole physique est la communication par codes-barres à deux dimensions, comme les pictogrammes Flashcode utilisés par les téléphones, où chaque bit est exprimé
par un carré noir ou blanc.
© Groupe Eyrolles, 2012
ManuelDowek.book Page 201 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
Les protocoles physiques qui permettent à deux ordinateurs de communiquer par câble ou par radio ne sont pas très différents. Cependant, au
lieu d’utiliser des carrés noirs et blancs, ils représentent les informations
par des signaux électromagnétiques, par exemple des variations de longueur d’onde, de phase ou d’intensité d’une onde.
Exercice 16.1
On utilise un lien physique peu fiable : à chaque fois que l’on transmet un 0 ou
un 1, la probabilité que ce bit ne soit pas reconnaissable à l’arrivée est 3/10.
Pour pallier ce manque de fiabilité, on utilise une forme de redondance (voir
le chapitre 12) : quand l’ordinateur émetteur demande à sa carte réseau
d’envoyer un 0, cette dernière envoie la suite de bits 0, 1, 0, 0, 1, qui est interprétée par la carte réseau de l’ordinateur récepteur comme un 0. De même,
quand l’ordinateur émetteur demande à sa carte réseau d’envoyer un 1, elle
envoie la suite de bits 1, 0, 1, 1, 0 qui est interprétée par la carte réseau de
l’ordinateur récepteur comme un 1.
� À partir de combien de bits erronés la suite de cinq bits envoyée n’est-elle
plus discernable de l’autre suite ?
� En déduire la probabilité qu’une suite de cinq bits envoyée ne soit pas
reconnaissable à l’arrivée.
� Quels sont les avantages et inconvénients de cette méthode ?
SUJET D’EXPOSÉ Protocoles et codages
Chercher sur le Web quels sont les protocoles
utilisés dans les liaisons RS-232 d’une part, et
dans les liaisons USB d’autre part. Quels sont les
avantages d’USB par rapport à RS-232 ? Chercher de même ce que sont les codages Manchester d’une part et NRZI d’autre part. Quels
sont les avantages du codage Manchester par
rapport au codage NRZI ?
Les réseaux locaux :
les protocoles de la couche lien
L’étape suivante consiste à construire un réseau local, c’est-à-dire formé
de quelques machines connectées, par un protocole physique, à un ordinateur central : un serveur. Pour envoyer des informations à un autre
ordinateur, chaque ordinateur passe par le serveur.
De même qu’il était nécessaire de distinguer les différentes cases de la
mémoire d’un ordinateur en donnant à chacune un nom, son adresse, il
est nécessaire de distinguer les différents ordinateurs d’un réseau local en
donnant à chacun un nom : son adresse MAC (Medium Access Control).
Une adresse MAC est un mot de 48 bits que l’on écrit comme un sextuplet de nombres de deux chiffres en base seize, les seize chiffres s’écrivant 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f : par exemple
10:93:e9:0a:42:ac. Une adresse MAC unique est attribuée à chaque carte
réseau au moment de sa fabrication. L’adresse MAC d’une carte réseau,
périphérique d’un ordinateur, identifie ce dernier sur le réseau local.
© Groupe Eyrolles, 2012
201
ManuelDowek.book Page 202 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
Réseau local
Les protocoles grâce auxquels différents ordinateurs, connectés au même
serveur, échangent des informations entre eux sont appelés des protocoles
de la couche lien. Un protocole simple consiste, pour le serveur, à échanger
des informations successivement avec chaque ordinateur du réseau.
Ainsi, chaque ordinateur a un créneau de temps pré-établi qui lui est
dédié périodiquement pour communiquer avec le serveur, durant lequel
le protocole physique épelle bit à bit l’information à transmettre.
Toutefois, les protocoles lien les plus utilisés, par exemple Ethernet et
WiFi, utilisent un autre mécanisme qui autorise chaque ordinateur à
envoyer des informations au serveur à n’importe quel moment – toujours
via un protocole physique. Ce mécanisme évite de réserver un créneau
pour un ordinateur qui n’a peut-être rien à communiquer au serveur.
Cependant, quand plusieurs ordinateurs envoient des informations en
même temps, les messages se brouillent – on dit qu’il y a une collision entre
les messages – et le serveur n’en reçoit aucun. Pour résoudre ce problème, on
utilise une forme de redondance : quand le serveur reçoit les informations
envoyées par un ordinateur, il en accuse réception et tant qu’un ordinateur
n’a pas reçu d’accusé de réception, il renvoie son message périodiquement.
Pour minimiser les risques de nouvelles collisions, ce message est en
général renvoyé après un délai de longueur aléatoire. Ce protocole est un
exemple d’algorithme qui ne peut fonctionner sans aléa.
T Paquet
Un paquet est une suite de bits structurés selon
un certain format, destinée à être échangée sur le
réseau.
202
Le rôle des protocoles de la couche lien est également de définir le
format des messages échangés : de même qu’un fichier PGM (voir le
chapitre 9) n’est pas simplement une suite de pixels, mais contient aussi
d’autres informations – la largeur et la hauteur de l’image, le nombre de
niveaux de gris, etc. – et est structuré selon un certain format standard,
© Groupe Eyrolles, 2012
ManuelDowek.book Page 203 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
les messages qui circulent sur les réseaux, les paquets, ne sont pas simplement formés des bits transmis, mais contiennent des informations additionnelles et sont structurés selon un format standard.
Exercice 16.2
Un pictogramme n’est pas simplement une suite de carrés blancs et noirs, mais
il contient aussi des informations qui permettent au téléphone d’en trouver
les bords et l’orientation. Quelle est la partie du format de chacun de ces pictogrammes qui joue ce rôle ?
En omettant ces délimiteurs et en admettant qu’un carré blanc code un 0 et
qu’un carré noir code un 1, combien de pictogrammes différents existe-t-il
dans chacun de ces formats ? Comment ce nombre se compare-t-il au nombre
de pages existant sur le Web ?
SAVOIR-FAIRE Trouver les adresses MAC des cartes réseau d’un ordinateur
Ouvrir une fenêtre terminal. Utiliser la commande ifconfig sous Linux, ou ipconfig
sous Windows.
/all
Exercice 16.3 (avec corrigé)
Trouver les adresses MAC des cartes réseau de son ordinateur.
Lorsqu’on tape la commande ifconfig ou ipconfig /all, différentes informations s’affichent, relatives à la connexion de son ordinateur au réseau. Ces
informations sont généralement organisées en paragraphes qui correspondent à différentes cartes réseaux : par exemple un paragraphe qui correspond
à la carte Ethernet qui gère la connexion par câble et un autre qui correspond
à la carte WiFi qui gère la connexion par radio. On reconnaît dans chacun de
ces paragraphes une adresse de la forme 10:93:e9:0a:42:ac : un sextuplet de
nombres de deux chiffres en base seize. Il s’agit de l’adresse MAC de chacune
de ces cartes.
Exercice 16.4
Noter l’adresse MAC d’une carte réseau de son ordinateur. De quelle connexion réseau s’agit-il précisément ? WiFi ? Ethernet ? Autre ? Éteindre, puis
rallumer l’ordinateur. L’adresse a-t-elle changé ?
© Groupe Eyrolles, 2012
203
ManuelDowek.book Page 204 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
Le réseau global : les protocoles
de la couche réseau
POUR ALLER PLUS LOIN D’IPv4 à IPv6
Il n’y a donc que 232 adresses IPv4 possibles,
soit un peu plus de quatre milliards : c’est peu
quand on sait que le réseau Internet contient
déjà trois milliards d’ordinateurs. Cette pénurie
en adresses IP, due à l’imprévoyance des pionniers d’Internet, qui cherchaient seulement à
connecter quelques dizaines d’ordinateurs sans
anticiper le succès de leur réseau, explique que
l’on cherche aujourd’hui à les remplacer par des
adresses de 128 bits (IPv6).
Utiliser un ordinateur central est possible pour un réseau de petite taille,
mais cette méthode ne peut pas s’appliquer à un réseau formé de plusieurs milliards d’ordinateurs, comme Internet : d’une part, l’ordinateur
central serait vite surchargé, d’autre part s’il tombait en panne, ou s’il
était détruit, les communications sur la Terre entière seraient interrompues. C’est pour cela que l’on a inventé d’autres protocoles pour les
réseaux de grande taille, appelés les protocoles réseau, qui fédèrent les
réseaux locaux de proche en proche et utilisent les protocoles lien pour
assurer les communications locales. Le plus utilisé des protocoles réseau
est le protocole IP (Internet protocol).
Avec le protocole IP, chaque machine a une adresse, appelée son adresse
IP. Contrairement à l’adresse MAC, celle-ci n’est pas associée de
manière durable à un ordinateur : quand un ordinateur est remplacé par
un autre, le nouveau peut hériter de l’adresse IP de l’ancien. À l’inverse,
si un ordinateur est déplacé d’un lieu à un autre, il change d’adresse IP.
Les adresses IP classiques (IPv4) sont des mots de 32 bits écrits sous
forme d’un quadruplet de nombres compris entre 0 et 255, par exemple
216.239.59.104.
SAVOIR-FAIRE Trouver l’adresse IP attribuée à un ordinateur
Ouvrir une fenêtre terminal. Utiliser la commande ifconfig sous Linux ou ipconfig
all sous Windows.
/
Exercice 16.5 (avec corrigé)
Trouver les adresses IPv4 attribuées à son ordinateur.
Lorsqu’on tape la commande ifconfig ou ipconfig /all, différentes informations s’affichent, relatives à la connexion de son ordinateur au réseau. On
reconnaît parmi ces informations des adresses de la forme 216.239.59.104 : un
quadruplet de nombres compris entre 0 et 255. Il s’agit des adresses IPv4 attribuées à chacune des cartes réseaux de l’ordinateur.
Exercice 16.6
Noter les adresses IP attribuées aux cartes réseau de son ordinateur. Éteindre,
puis rallumer cet ordinateur. Ces adresses ont-elle changé ?
204
© Groupe Eyrolles, 2012
ManuelDowek.book Page 205 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
Exercice 16.7
Soit un réseau connectant cinq ordinateurs : A, B, C, D et E. Est-il possible
d’identifier chaque ordinateur de manière unique avec des adresses de 3 bits ?
Décrire un tel plan d’adressage : attribuer une adresse à chaque ordinateur.
Est-il également possible d’identifier chaque ordinateur de manière unique
avec des adresses de 2 bits ?
Exercice 16.8
Combien y a-t-il d’adresses IPv4 ? Combien y a-t-il d’adresses IPv6 ? Combien y
a-t-il de numéros de téléphone en France ?
Avec les protocoles réseau, la notion de serveur est remplacée par celle de
routeur. Pour envoyer des informations à une machine dont l’adresse IP
est X, un ordinateur commence par les envoyer au routeur auquel il est
connecté. En fonction de l’adresse X, celui-ci l’envoie à un autre routeur,
puis à un autre, etc. jusqu’à ce que les informations arrivent à destination. On appelle ce procédé le routage.
T Routeur
Un routeur est un ordinateur dont la seule fonction est d’acheminer des informations sur le
réseau. Pour les distinguer des routeurs, on appelle
les autres ordinateurs du réseau des hôtes.
Les routeurs n’ayant pour fonction que de relayer les paquets en direction de leur destination, ils ne mettent en œuvre que des protocoles des
couches physique, lien et réseau, contrairement aux hôtes qui, eux, mettent en œuvre des protocoles de toutes les couches.
Réseau global. Routage de A à B en passant
par les routeurs R1, R2, R3, R4, R5, R6, R7 et
R8.
La figure suivante illustre le routage d’informations d’un hôte à un autre,
en passant par deux routeurs et trois câbles : en chemin, sur chaque
machine les traitant, les informations transmises sont successivement
encapsulées quand elles passent d’une couche à la couche inférieure, puis
décapsulées quand elles passent d’une couche à une couche supérieure.
© Groupe Eyrolles, 2012
205
ManuelDowek.book Page 206 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
Les protocoles à l’œuvre lors du routage.
Chemin suivi par l’information à travers les
couches sur chaque machine.
On peut comparer le routage au système du courrier postal. Si, à Sydney,
un Australien expédie une lettre à l’adresse « 2004, route des Lucioles,
Valbonne, France », le facteur australien n’apporte pas cette lettre directement à son destinataire, contrairement à ce que faisaient les « facteurs » au
XVIIe siècle : il la met dans un avion en direction de Hong-Kong ou de
Los Angeles, où un autre facteur la met dans un avion en direction de
Francfort ou de Paris, où un autre facteur la met dans un avion en direction de Nice, où un facteur l’apporte finalement en camionnette, au 2004
de la route des Lucioles, à Valbonne.
Un routeur, qui reçoit des informations à envoyer à une adresse IP X, doit
choisir le routeur suivant, en direction de X. De même que le facteur australien sait qu’une lettre pour Valbonne, ou plus généralement pour la
France, peut passer par Hong-Kong, le routeur a un répertoire, appelé
table de routage, qui indique que la première étape d’un chemin vers
l’adresse X est le routeur dont l’adresse IP est B, auquel il est directement
connecté. Il envoie donc ces informations vers le routeur B, qui consulte à
son tour sa propre table de routage, et ainsi de suite jusqu’à arriver à l’ordinateur dont l’adresse est X. Comme dans un jeu de piste, on ne connaît
pas le chemin à l’avance, mais, à chaque étape, on découvre la suivante.
Pour construire et maintenir à jour leurs tables de routage, les routeurs
utilisent un algorithme de routage, par exemple l’algorithme de BellmanFord : outre acheminer des informations d’un point à un autre, chaque
routeur envoie périodiquement à chaque routeur auquel il est connecté
directement par un protocole lien, la liste des adresses IP vers lesquelles
il connaît un chemin, dont bien entendu sa propre adresse, et la longueur
206
© Groupe Eyrolles, 2012
ManuelDowek.book Page 207 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
de ce chemin. Grâce à cet algorithme et au fur et à mesure qu’il reçoit
des listes, chaque routeur découvre peu à peu l’état du réseau et, ce faisant, les chemins les plus courts pour atteindre les destinations présentes
dans le réseau. Ainsi, un routeur qui reçoit du routeur B l’information
que B a reçu du routeur C l’information que C est directement connecté
à l’ordinateur X, met à jour sa table de routage en mémorisant qu’un
chemin pour accéder à l’ordinateur X, en passant par deux intermédiaires, commence par le routeur B.
Cette mise à jour dynamique des tables de routage est ce qui donne sa souplesse au réseau Internet. Si par exemple le câble entre les routeurs B et C est
détruit, les tables de routage se mettent graduellement à jour en découvrant
d’autres chemins pour acheminer les informations vers la machine X. À
l’origine, cette idée servait à donner une robustesse au réseau en temps de
guerre : tant que deux points restaient connectés par un chemin dans le
graphe des routeurs, il leur était possible de communiquer. Par la suite, on
s’est rendu compte que cette souplesse était de toutes façons nécessaire dans
un réseau de trois milliards d’ordinateurs, où il est inévitable que des ordinateurs soient en permanence ajoutés ou supprimés du réseau.
Si les protocoles réseau sont très souples, ils sont en revanche peu
fiables : quand un routeur est saturé par trop d’informations à transmettre, il en détruit tout simplement une partie. En outre, quand des
informations ont été envoyées d’un routeur à un autre trop longtemps
sans arriver à destination, elles sont également détruites.
SAVOIR-FAIRE Déterminer le chemin suivi par l’information
Dans une fenêtre terminal, la commande ping suivie d’un nom de domaine affiche
l’adresse IP associée à ce nom de domaine. La commande traceroute sous Linux ou
tracert sous Windows, suivie d’une adresse IP, affiche les routeurs d’un chemin menant
de son ordinateur à celui dont l’adresse IP est indiquée.
Exercice 16.9 (avec corrigé)
Trouver un chemin entre son ordinateur et l’ordinateur associé au nom de
domaine www.google.fr.
Dans une fenêtre terminal, on tape la commande ping www.google.fr et une
adresse IP s’affiche, par exemple 173.194.34.55. C’est l’adresse d’un ordinateur
de Google. On tape ensuite la commande traceroute 173.194.34.55 ou
tracert 173.194.34.55 et une liste s’affiche des routeurs qui forment un
chemin entre sa machine et celle de Google.
© Groupe Eyrolles, 2012
207
ManuelDowek.book Page 208 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
SAVOIR-FAIRE Déterminer l’adresse IP du serveur par lequel un
ordinateur est connecté à Internet
Dans une fenêtre terminal, la commande netstat -r sous Linux ou ipconfig /all sous
Windows affiche différentes informations relatives à la connexion de son ordinateur au
réseau, en particulier la passerelle par défaut (default gateway) qui est le routeur par lequel
cet ordinateur est connecté à Internet.
Exercice 16.10 (avec corrigé)
Déterminer l’adresse IP du routeur par lequel son ordinateur est connecté à
Internet.
On tape la commande netstat -r ou ipconfig /all. Dans les informations
affichées, on recherche la passerelle par défaut (default gateway) indiquée,
qui est le routeur. Ce dernier est identifié soit directement par son adresse IP,
soit par un nom de la forme gw.adalovelace.fr ; dans ce second cas, on peut
trouver l’adresse IP associée à ce nom avec la commande ping.
Exercice 16.11
Un algorithme de routage. On attribue à chaque élève une nouvelle adresse
mail, par exemple [email protected], [email protected],
etc. Chaque élève garde cette adresse secrète et il la marque sur une feuille de
papier. Ces feuilles sont mélangées dans un chapeau et chacun tire une
adresse en s’assurant qu’il ne tire pas la sienne propre. Chaque élève a uniquement le droit d’envoyer des courriers à l’adresse qu’il a tirée dans le chapeau
et de répondre à l’envoyeur de tout courrier qu’il reçoit à son adresse .
Chaque élève envoie un courrier à l’adresse qu’il a tirée, dans lequel il indique
son propre nom. Par exemple, Alice enverrait :
sujet : Hello
corps du message :
Alice (par -)
Chaque élève construit une table de routage qui indique, pour chaque élève
dont il a entendu parler, l’adresse de la personne par qui il en a entendu parler
pour la première fois. Par exemple, la table de routage d’Alice peut avoir cette
forme :
Alice (par -)
Djamel (par [email protected])
Frédérique (par [email protected])
Hector (par [email protected])
À chaque fois qu’un élève reçoit un message, il le lit, met à jour sa table de
routage et y répond en copiant, dans le corps du message l’état de sa table de
routage mise à jour. Alice enverrait par exemple :
sujet : Hello
corps du message :
Alice (par -)
208
© Groupe Eyrolles, 2012
ManuelDowek.book Page 209 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
Djamel (par [email protected])
Frédérique (par [email protected])
Hector (par [email protected])
Au bout d’une dizaine de minutes, on arrête d’envoyer et de répondre aux
messages.
On passe alors à la seconde phase de l’exercice : un élève essaie d’envoyer un
véritable message à un autre élève. Pour cela, il envoie son message à l’adresse
correspondant au nom de son destinataire dans sa table de routage.
Par exemple :
Alice envoie à l’adresse [email protected] le message suivant :
Sujet : message pour Frédérique
Corps du message : N’oublie pas de me rapporter l’exemplaire de
Madame Bovary que je t’ai prêté il y a six mois. Merci. Alice.
Si un élève autre que son destinataire reçoit ce message, il le renvoie à
l’adresse correspondant au nom de son destinataire dans sa propre table de
routage, et ainsi de suite jusqu’à ce que le message arrive à destination.
À quelle condition un message arrive-t-il bien à son destinataire ?
La régulation du réseau global :
les protocoles de la couche transport
Les programmes que l’on utilise tous les jours, par exemple les navigateurs
web ou les programmes de gestion du courrier électronique, ne peuvent
pas directement utiliser le protocole IP, principalement pour deux raisons :
d’une part, le protocole IP ne permet de transférer d’un ordinateur à un
autre que des informations de taille fixe : des paquets contenant au
maximum 1 500 octets. D’autre part, comme on l’a vu, IP est un protocole
peu fiable : dès qu’un serveur est surchargé, il détruit des informations qui
n’arrivent donc pas à leur destinataire. On utilise donc un type supplémentaire de protocole : les protocoles de transport, dont le plus utilisé est le protocole TCP (Transmission Control Protocol). Les protocoles de transport
utilisent les protocoles réseau pour acheminer des informations contenues
dans des paquets IP, d’un bout à l’autre du réseau, et assurent que tout
paquet IP envoyé est arrivé à bon port.
Pour poursuivre la comparaison avec le service postal, si on attache une
importance particulière à une lettre, on l’envoie en recommandé et on
attend un accusé de réception, qui permet de savoir que sa lettre a bien
été reçue. La couche transport s’assure que la communication a bien lieu
de bout en bout, comme prévu.
© Groupe Eyrolles, 2012
209
ManuelDowek.book Page 210 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
ALLER PLUS LOIN Le port
Comme plusieurs programmes peuvent utiliser
TCP en même temps et sur la même machine,
TCP attribue à chacun d’eux un numéro : un
port. Un numéro de port permet à TCP de distinguer les paquets correspondant aux différents
programmes qui communiquent en même temps.
Comme les protocoles de la couche lien, TCP utilise une forme de redondance pour fiabiliser les communications. Il utilise les protocoles réseaux
pour envoyer des paquets IP d’un ordinateur à un autre et pour envoyer un
accusé de réception du destinataire à l’expéditeur. Tant que l’accusé de
réception n’arrive pas, le même paquet est renvoyé périodiquement. Si trop
d’accusés de réception n’arrivent pas, TCP ralentit la cadence d’envoi des
paquets pour s’adapter à une congestion éventuelle du réseau global, puis
ré-accélère la cadence quand les accusés de réception arrivent.
Une autre fonction de TCP est de découper les informations à transmettre
en paquets de 1 500 octets. Par exemple, pour envoyer une page web de
10 000 octets, TCP découpe ces 10 000 octets en paquets plus petits,
chacun de taille standard, et les envoie l’un après l’autre. À l’autre bout du
réseau, quand tous ces paquets standards sont arrivés, TCP les remet dans
l’ordre et ré-assemble leurs contenus pour reconstruire la page web.
Exercice 16.12
Taper la commande ping www.google.fr dans une fenêtre terminal et
observer ce qui se passe. En déduire la valeur d’un temps d’attente adéquat
après lequel TCP devrait considérer que l’accusé de réception d’un paquet
envoyé à www.google.fr est perdu. Quelle serait la conséquence d’utiliser un
temps d’attente plus court ? Quelle serait la conséquence d’utiliser un temps
d’attente plus long ?
Exercice 16.13
On suppose que la durée à attendre entre l’envoi d’un paquet et la réception
d’un accusé de réception pour ce paquet est 1 seconde en moyenne, et que les
paquets peuvent chacun contenir jusqu’à 1 500 octets de données. On considère les deux configurations suivantes pour TCP.
• Configuration A. TCP est configuré pour n’envoyer un nouveau paquet
qu’après avoir reçu l’accusé de réception du paquet précédent.
• Configuration B. TCP est autorisé à envoyer des grappes de 20 paquets à la
suite et à accuser réception avec un seul accusé de réception pour toute la
grappe, au lieu d’un accusé de réception pour chaque paquet. En conséquence, un paquet perdu entraîne l’absence d’accusé de réception pour la
grappe à laquelle il appartient, et donc demande de renvoyer la grappe
entière au lieu du seul paquet perdu.
� Combien de temps faut-il au minimum pour envoyer 1 Mo à destination
avec la configuration A ? Avec la configuration B ? Pour simplifier, on suppose que le temps passé à envoyer 20 paquets à la suite est négligeable par
rapport à 1 seconde.
� On suppose maintenant qu’en moyenne, 1% des paquets envoyés vers une
destination se perdent en chemin. En moyenne, combien de paquets
faudra-t-il faire transiter sur le réseau pour transférer le fichier de 1 Mo à
destination avec la configuration A ? Avec la configuration B ? Pour simplifier, on considère qu’à la deuxième fois qu’on envoie un paquet, il arrive à
destination à coup sûr, et qu’un accusé de réception envoyé arrive également à coup sûr.
� Quels sont les avantages et inconvénients de la configuration B par rapport à la configuration A ?
210
© Groupe Eyrolles, 2012
ManuelDowek.book Page 211 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
Exercice 16.14
Sachant que chaque paquet envoyé par TCP est identifié avec un numéro de
séquence exprimé sur 4 octets, et en admettant que chaque paquet envoyé
peut contenir 1 500 octets de données à transmettre, quelle est la taille
maximum d’un fichier à transmettre à partir de laquelle TCP devrait réutiliser
un numéro de séquence déjà utilisé au début de l’envoi de ce même fichier ?
Même question si on décompte des 1 500 octets les informations de contrôle
nécessaires au fonctionnement de chaque couche, par exemple 20 octets d’entête TCP, 24 octets d’en-tête IP et 34 octets d’en-têtes WiFi et couche physique.
Exercice 16.15
Chercher sur le Web ce qu’est le protocole UDP. Quelles sont les différences
entre UDP et TCP ? Quels sont les principaux avantages et inconvénients de
chacun de ces protocoles ? Citer des exemples de programmes qui utilisent
UDP, d’autres qui utilisent TCP, et expliquer ces choix.
Programmes utilisant le réseau :
la couche application
Les protocoles des couches physique, lien, réseau et transport fournissent le socle d’Internet : ils permettent de transmettre de manière fiable
des fichiers de toutes tailles, d’une machine à n’importe quelle autre
machine connectée à Internet. En plus de ce socle, on distingue néanmoins un dernier type de protocoles, qui utilisent les services de la
couche transport pour le compte de certains programmes que l’on utilise
tous les jours, comme les navigateurs web ou les logiciels de courrier
électronique. Il s’agit des protocoles d’application.
Les logiciels de courrier électronique utilisent par exemple le protocole
d’application SMTP (Simple Mail Transfer Protocol), les navigateurs web
utilisent le protocole d’application HTTP (HyperText Transfer Protocol)
etc. Un autre protocole d’application important est DNS (Domain Name
System) qui, aux adresses IP, associe des noms de domaines comme
www.moi.fr.
SUJET D’EXPOSÉ DNS
Présenter les principes de base de DNS.
Quand un navigateur cherche à accéder à une page web située sur un
autre ordinateur, il utilise DNS pour trouver l’adresse IP de l’ordinateur
hôte sur lequel cette page web se trouve, puis le protocole HTTP pour
demander cette page à l’ordinateur hôte. Si cette page est par exemple la
page d’accueil d’un annuaire électronique, elle contiendra des champs à
remplir, et c’est à nouveau le protocole HTTP qui acheminera les infor-
© Groupe Eyrolles, 2012
211
ManuelDowek.book Page 212 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
mations renseignées vers l’ordinateur hôte, qui, en fonction de ces informations, renverra en général une autre page avec la réponse à la requête.
Au bout du compte, pour transférer une page web d’un ordinateur à un
autre, HTTP confie cette page web au protocole TCP, qui la découpe en
paquets et confie chaque paquet au protocole IP, qui choisit un lien à
utiliser en direction de la destination, puis confie chaque paquet au protocole de lien en vigueur sur ce dernier, par exemple WiFi, qui le confie
enfin au protocole physique, qui gère l’acheminement des bits codant ces
paquets à travers ce lien. Chaque protocole, à son niveau, contribue à la
communication. Chaque protocole est simple ; c’est de leur interaction
qui naît la complexité.
Quelles lois s’appliquent
sur Internet ?
SUJET D’EXPOSÉ
L’affaire LICRA contre Yahoo!
Qu’est-ce que l’article R.645-1 du Code Pénal
français ? Qu’est-ce que le premier amendement de la Constitution des États-Unis ? En quoi
sont-ils contradictoires ? Chercher des documents sur l’affaire de la LICRA contre
Yahoo!, relative à la vente aux enchères
d’objets nazis sur Internet (de l’ordonnance du
Tribunal de Grande Instance de Paris du
20 novembre 2000, jusqu’à la décision de la
Cour Suprême des États-Unis du 30 mai 2006).
Montrer en quoi cette affaire illustre le problème de l’application de législations différentes
selon les pays pour la vente sur Internet.
212
Jusqu’au milieu du XXe siècle, quand un livre ou un journal était publié,
il l’était dans un pays particulier et sa publication était régie par les lois
de ce pays. Quand un objet était vendu, il l’était dans un pays particulier
et cette vente était régie par les lois de ce pays. Ainsi, la publication de
certains textes ou la vente de certains objets était autorisée dans certains
pays, mais interdite dans d’autres.
Parce que c’est un réseau mondial, Internet permet de publier, dans un
pays, des textes qui peuvent être lus dans le monde entier et, de même,
de vendre des objets qui peuvent être achetés dans le monde entier. Dès
lors, quelle loi appliquer ? À cette question, qui est nouvelle, plusieurs
réponses ont été imaginées, sans que personne ne sache encore laquelle
s’imposera sur le long terme :
• l’application des lois du pays dans lequel le texte est publié ou l’objet
mis en vente,
• l’application des lois du pays dans lequel le texte peut être lu ou
l’objet acheté – ce qui obligerait, par exemple, un hébergeur de site
web à bloquer l’accès à certains sites depuis certains pays,
• ou l’émergence d’un minimum de règles universelles.
© Groupe Eyrolles, 2012
ManuelDowek.book Page 213 Monday, July 9, 2012 4:58 PM
16 – Les réseaux
Qui gouverne Internet ?
Quelques règles d’organisation d’Internet doivent être universellement
acceptées. Par exemple, pour que les ordinateurs du monde entier puissent
communiquer, il est nécessaire qu’ils utilisent les mêmes protocoles et pour
qu’il n’y ait pas de confusion entre les adresses IP, il faut que deux ordinateurs
distincts n’aient jamais la même adresse. Internet n’est donc pas entièrement
décentralisé : un petit nombre de décisions doivent être prises en commun.
Ici, plusieurs modes d’organisation sont en concurrence, à nouveau sans
que personne ne sache lequel s’imposera sur le long terme :
• l’émergence d’organisations internationales régies par des traités entre États,
• l’émergence d’organisations internationales informelles, dont la légitimité vient uniquement de la confiance qui leur est accordée,
• l’émergence d’organisations propres aux pays où Internet est le plus
développé (cette dernière solution ayant l’inconvénient d’augmenter les
différences de développement d’Internet entre les pays).
SUJET D’EXPOSÉ Que sont…
• l’Internet Engineering Task Force (IETF),
• l’Internet Corporation for Assigned
Names and Numbers (ICANN),
l’Internet Society (ISOC),
le World Wide Web Consortium (W3C),
le WhatWG,
et l’Union Internationale des Télécoms
(UIT) ?
Quel est le rôle et quel est le statut de chacune
de ces organisations ?
•
•
•
•
ALLER PLUS LOIN Calculer dans les nuages (cloud computing)
Au cours de l’histoire de l’informatique, des modes centralisatrices et décentralisatrices se sont succédées. Ainsi,
jusqu’aux années 1970, les entreprises n’avaient qu’un
seul ordinateur, auquel étaient connectés de nombreux
terminaux, par exemple formés d’un clavier et d’un
écran, qui permettaient à différentes personnes d’effectuer des calculs sur cet ordinateur. À partir des années
1980, ces terminaux ont été remplacés par des microordinateurs, connectés par un réseau à un serveur. Les
calculs n’étaient alors plus effectués par un ordinateur
central, mais par chacun de ces micro-ordinateurs.
Depuis le milieu des années 2000, on voit apparaître un
retour de la centralisation. Des entreprises, qui vendaient naguère des programmes à des clients qui les utilisaient pour effectuer des calculs sur leurs ordinateurs,
proposent désormais à ces mêmes clients d’effectuer
elles-mêmes ces calculs à leur place. Les clients ont juste
besoin de communiquer leurs données à ces entreprises,
qui font les calculs sur leurs propres ordinateurs et
envoient le résultat de ces calculs à leurs clients. C’est ce
qu’on appelle le calcul dans les nuages (cloud computing).
Par exemple, au lieu d’installer un logiciel de courrier
électronique sur son ordinateur et de l’utiliser pour
envoyer des courriers, on peut, à chaque fois que l’on
souhaite envoyer un courrier, se connecter à un ordinateur distant, en général au moyen d’une page web, et
communiquer le texte de son courrier à cet ordinateur,
© Groupe Eyrolles, 2012
qui se chargera de l’envoyer ; c’est l’idée du Webmail. De
même, au lieu d’acheter un logiciel de comptabilité et
de l’utiliser, une entreprise peut se connecter, à chaque
fois qu’elle souhaite effectuer une opération comptable, à une machine distante qui effectue cette opération pour l’entreprise. L’ordinateur local ne sert plus
qu’à communiquer des informations à cette machine
distante, comme jadis les terminaux.
Utiliser des programmes sur une machine distante simplifie beaucoup de choses. Il n’est plus nécessaire d’installer des logiciels sur son ordinateur, de les mettre à jour
de temps en temps, etc. De plus, il devient possible
d’envoyer un courrier depuis n’importe quel ordinateur :
d’un web café de Bogota ou de Caracas, comme de son
bureau. Pour une entreprise, cela permet de diminuer la
taille du service informatique, puisqu’il lui suffit désormais d’avoir quelques ordinateurs reliés au réseau.
Cependant, cette évolution présente aussi un risque de
dépossession des utilisateurs de leur pouvoir : au lieu
d’avoir ses programmes, ses courriers, ses photos, sa
comptabilité, etc. sur son ordinateur, on préfère les confier à des entreprises et des ordinateurs distants. En
outre, on a parfois une garantie assez faible de leur conservation sur le long terme, de son pouvoir de les
effacer ou de son contrôle sur les usages que ces entreprises peuvent faire de ces données.
213
ManuelDowek.book Page 214 Monday, July 9, 2012 4:58 PM
Troisième partie – Machines
Ai-je bien compris ?
• Qu’est-ce qu’un protocole ? Qu’est-ce qu’une couche ?
• Quelles sont les cinq couches de protocoles dont sont composés les réseaux ?
• Comment fabriquer un protocole fiable en utilisant un protocole peu fiable ?
214
© Groupe Eyrolles, 2012
Téléchargement