Ajout d'un cours sur les réseaux (compilation des articles de Thomas dans
le Hublot). Modified Files: index.tml Added Files: reseaux.tml
This commit is contained in:
parent
2f067a014a
commit
318476b529
2 changed files with 631 additions and 1 deletions
|
@ -17,6 +17,11 @@ certains logiciels est souvent un avantage pour arriver
|
|||
surtout bien se rappeler la marche à suivre.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="reseaux.html">Qu'est-ce qu'un réseau ?</a>, ou comment les
|
||||
ordinateurs communiquent entre eux, et ce qu'est Internet.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="encodages.html">L'enfer des langues</a>, ou comment un ordinateur
|
||||
peut représenter dans ses fichiers des textes dans les différentes langues
|
||||
|
@ -35,7 +40,7 @@ sur le traitement d'images</a> (
|
|||
</p>
|
||||
|
||||
<div class="metainformation">
|
||||
Auteur : Joël Riou. Dernière modification le <date value="$Date: 2003-06-16 23:46:38 $" />.
|
||||
Auteur : Joël Riou. Dernière modification le <date value="$Date: 2003-07-08 10:27:53 $" />.
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
625
theorie/reseaux.tml
Normal file
625
theorie/reseaux.tml
Normal file
|
@ -0,0 +1,625 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||||
"tuteurs://DTD/tml.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Réseaux</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Qu'est-ce qu'un réseau ?</h1>
|
||||
|
||||
<p>Vous trouverez ici expliqué ce qu'est un réseau, et comment les
|
||||
ordinateurs communiquent entre eux. En un mot, ce qu'est Internet...
|
||||
</p>
|
||||
|
||||
<div class="encadre">Ce cours résulte de la compilation d'articles
|
||||
parus dans le <cite><a
|
||||
href="&url.tuteurs;docs/hublot/">Hublot</a></cite> en 1999-2000.</div>
|
||||
|
||||
<h2>Des uns et des zéros</h2>
|
||||
|
||||
|
||||
<p>
|
||||
Les ordinateurs n'ont que deux doigts, contrairement aux humains. Ils
|
||||
comptent et manipulent l'information uniquement sous la forme de 0 et
|
||||
de 1 ; c'est le choix fondamental, l'information minimale, qui
|
||||
s'exprime ainsi (vrai/faux, ouvert/fermé, oui/non, etc). Une telle
|
||||
information est appelée un <em>bit</em>. Comme un bit ne contient pas
|
||||
grand'chose, on groupe plusieurs bits pour qu'ils forment, ensemble,
|
||||
une information plus complexe.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Huit bits ensemble forment un <em>octet</em>. Chaque bit a une place
|
||||
particulière dans l'octet, ce qui permet de faire 256 combinaisons
|
||||
(2<sup>8</sup>). Un octet est adapté pour coder un caractère
|
||||
occidental (il y a suffisamment de place pour les 26 lettres, avec les
|
||||
minuscules, les caractères accentués, les chiffres et quelques autres
|
||||
signes typographiques).
|
||||
</p>
|
||||
|
||||
<h3>Unités de mesure</h3>
|
||||
|
||||
<p>Les quantités de données traitables par les ordinateurs se
|
||||
chiffrent désormais en millions et milliards d'octets. Les
|
||||
informaticiens ont donc conçu des unités adaptées. Le
|
||||
<em>kilo-octet</em> (<code>Ko</code>) comporte 1024 octets
|
||||
(2<sup>10</sup>). (et non 1000 : 1000 est un nombre rond en base 10,
|
||||
mais pas en base 2; en revanche, 1024 s'écrit 10000000000 en base 2).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Le <em>méga-octet</em> (<code>Mo</code>) est constitué de 1024 Ko
|
||||
(plus d'un million de caractères), et le <em>giga-octet</em>
|
||||
(<code>Go</code>) vaut 1024 Mo. On commence à parler de
|
||||
<em>téra-octet</em> (<code>To</code>) mais c'est encore un peu trop
|
||||
cher.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Une image plein écran « pèse » environ 1 Mo, voire plus si on veut une
|
||||
grande palette de couleurs. Une simple disquette contient environ 1.44
|
||||
Mo, et un CD-ROM 660 Mo. Un DVD-ROM pèse jusqu'à 17 Go (plus de 17
|
||||
milliards de caractères). Pour donner une échelle de valeur, disons
|
||||
que la Bible, correctement encodée, tient en 1 Mo (un peu moins d'une
|
||||
disquette), et que l'<cite>Encyclopedia Universalis</cite>, avec
|
||||
schémas, photos et quelques animations, rentre dans un CD-ROM.
|
||||
</p>
|
||||
|
||||
<h2>Code Morse, multimédia et centre de tri</h2>
|
||||
|
||||
<p>
|
||||
Stocker des informations est bel et bon ; mais il est tentant de
|
||||
pouvoir en échanger, sans quoi la sclérose guette. On peut transporter
|
||||
des disquettes, des CD-ROMs ou d'autres supports du même genre ;
|
||||
c'est assez efficace en termes de débit (exercice : calculer la
|
||||
quantité d'informations transportable dans une camionnette qui serait
|
||||
pleine de CD-ROMs — c'est tout simplement colossal) ; mais
|
||||
le temps de réponse est long, très long. Et puis, l'informaticien
|
||||
n'aime pas se lever de sa chaise s'il n'y est pas poussé par une
|
||||
nécessité impérieuse (aller prendre sa dose de Coca-Cola par exemple).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Donc, il s'agit de doter les ordinateurs de moyens de
|
||||
communication. Pour coder des 0 et des 1, certains protocoles adaptés
|
||||
sautent aux yeux : le code Morse par exemple. On transmet des «longs»
|
||||
et des «brefs». Le seul problème est que le débit n'est pas très
|
||||
satisfaisant : deux bons opérateurs peuvent s'échanger 3 bits par
|
||||
seconde, et une visio-conférence (de mauvaise qualité) en exige au
|
||||
moins 60 000. Même un téléphone portable, à la qualité de son
|
||||
douteuse, doit échanger 9 600 bits par seconde.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Néanmoins l'analogie est riche. En effet, en regardant de plus près,
|
||||
quand un message est envoyé en Morse par télégraphe, son texte est
|
||||
précédé du nom du destinataire : au XIXe siècle, il n'y avait pas de
|
||||
ligne directe de New-York à Los Angeles ; le message devait
|
||||
passer par différents opérateurs qui recevaient le message et le
|
||||
réexpédiaient immédiatement dans la bonne direction. Un message pour
|
||||
San Francisco prenait au début le même chemin. Ce principe de message,
|
||||
sautant de poste en poste, redirigé à chaque poste en fonction de sa
|
||||
destination, est le fondement d'Internet. C'est ce qu'on appelle un
|
||||
réseau par paquets, par opposition au téléphone, qui est un réseau par
|
||||
circuits.
|
||||
</p>
|
||||
|
||||
<h2>Le soleil a rendez-vous avec la lune</h2>
|
||||
|
||||
<p>
|
||||
Il existe deux types de réseaux : les réseaux par paquets et les
|
||||
réseaux par circuits. Le premier type est celui du Morse décrit dans
|
||||
le numéro précédent : chaque information est un message qui transite
|
||||
de centre de tri en centre de tri, suivant l'adresse du destinataire;
|
||||
personne ne s'occupe de l'intégralité de la transmission, et tout
|
||||
problème est par essence local.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Le deuxième type de réseau est celui du téléphone : un rendez-vous est
|
||||
pris entre les deux parties, une communication physique est établie
|
||||
jusqu'à ce que l'un des deux raccroche.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ces deux types de réseaux ont des avantages et des inconvénients
|
||||
opposés. Essentiellement :
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> Un réseau par circuits permet de garantir un débit, une fois la
|
||||
connexion effectuée, alors que les paquets sont envoyés à la grâce
|
||||
de Dieu.</li>
|
||||
|
||||
<li> Un réseau par circuits permet aussi de garantir un temps de
|
||||
réponse, paramètre souvent encore plus important que le
|
||||
débit. Quand on envoie un paquet, on ignore par où il va passer ou
|
||||
même s'il va vraiment arriver à destination.</li>
|
||||
|
||||
<li> Un réseau par circuits doit être homogène : une fois la
|
||||
connexion établie, le chemin doit se comporter à l'identique sur
|
||||
toute sa longueur; sur un réseau par paquets, il est facile de
|
||||
construire des passerelles entre des liens de caractéristiques
|
||||
physiques différentes.</li>
|
||||
|
||||
<li> Un réseau par circuits gâche de la bande passante (débit maximal
|
||||
de données);: quand deux personnes sont au téléphones mais ne
|
||||
parlent pas, la ligne est occupée.</li>
|
||||
|
||||
<li> Un réseau par paquets est résistant aux pannes : en cas de
|
||||
coupure d'un site, les paquets peuvent être détournés sur une
|
||||
autre voie.</li>
|
||||
|
||||
<li> Un réseau par paquets ne garantit rien sur l'intégrité des
|
||||
données : quand on envoie un message, on ne peut pas savoir
|
||||
combien de temps il va mettre pour arriver, ni s'il arrivera un
|
||||
jour, ou en un seul exemplaire; et s'il se perd, on n'est pas
|
||||
forcément prévenu.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Actuellement, France Telecom utilise des réseaux par paquets pour
|
||||
toutes les communications nationales. En effet, les possibilités de
|
||||
réutilisation de la bande passante et de résistance aux pannes sont
|
||||
très appréciables; les caractéristiques habituelles en téléphonie
|
||||
(conversation continue, pas de perte de son) sont assurées par des
|
||||
protocoles de plus haut niveau, qui tentent de rétablir des garanties
|
||||
de débit, de corriger les erreurs, enfin bref de faire au mieux. C'est
|
||||
une émulation de réseau par circuits, par dessus un réseau par paquets
|
||||
(et, bizarrement, ça marche).
|
||||
</p>
|
||||
|
||||
<p class="centre"><img src="&url.tuteurs;docs/hublot/hublot03/paquets.png"
|
||||
alt="[Schéma du réseau]" /><br /> Figure 1 : Réseau par paquets
|
||||
reliant A à B</p>
|
||||
|
||||
<h2>Le fil qui chante</h2>
|
||||
|
||||
<p class="centre"><img src="&url.tuteurs;docs/hublot/hublot04/reseau1.png"
|
||||
alt="[Schéma]" /><br /> Figure 2 : Réseau ethernet par câble
|
||||
coaxial</p>
|
||||
|
||||
<h3>Coder les 1 et les 0</h3>
|
||||
|
||||
<p>
|
||||
Pour connecter deux ordinateurs, il faut tout d'abord pouvoir
|
||||
représenter les 0 et les 1 sur un médium adapté. Actuellement, on
|
||||
utilise principalement les méthodes suivantes :
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> Modulation de fréquence : les 0 et les 1 sont codés par des sons
|
||||
de fréquences différentes (un aigu, un grave); la théorie montre
|
||||
que c'est une méthode qui résiste bien au bruit. C'est ce qu'on
|
||||
utilise sur les lignes téléphoniques, avec un modem*. On peut
|
||||
transmettre quelques centaines de milliers de bits par seconde
|
||||
ainsi; les modems sont limités à 56 000 bits par seconde pour
|
||||
d'autres raisons.</li>
|
||||
|
||||
<li> Encodage RLL : un 0 est codé par un changement de polarité, un 1
|
||||
par deux changements. On trouve cette méthode sur les réseaux à
|
||||
haut débit (chaque bit contient au moins un changement de
|
||||
polarité, ce qui permet de conserver la synchronisation entre
|
||||
l'émetteur et le récepteur, même lors d'une longue plage de 0). On
|
||||
peut monter à 100 millions de bits par seconde ainsi; on trouve
|
||||
cette méthode dans les réseaux locaux de type ethernet.</li>
|
||||
|
||||
<li> Optique : les liens à très haut débit sont réalisés par fibre
|
||||
optique ou laser; les 0 et les 1 sont alors codés en RLL ou avec
|
||||
une méthode analogue. Pour des raisons de coût, seuls certains
|
||||
sites font usage de moyens optiques, et pour certaines liaisons
|
||||
seulement (l'université d'Évry utilise un laser pour relier deux
|
||||
immeubles éloignés de 800 mètres l'un de l'autre).</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Le bruit est ce qui s'oppose au signal ; par exemple, le cours du prof
|
||||
c'est le signal, les élèves qui chuchotent c'est le bruit. Au
|
||||
téléphone, le signal c'est la conversation, tandis que le bruit c'est
|
||||
la friture.
|
||||
</p>
|
||||
|
||||
<h3>Exemples de réseaux</h3>
|
||||
|
||||
<p>
|
||||
Le cas d'un modem ne pose pas de problème, car c'est une communication
|
||||
point à point sur une ligne réservée (aucun encombrement). En
|
||||
revanche, dans un réseau local, on veut connecter plusieurs machines,
|
||||
éventuellement beaucoup, et on ne désire pas tendre un câble pour
|
||||
chaque paire de machines. L'idée est donc de se partager un conducteur
|
||||
commun, ce qu'on appelle d'habitude un bus. Ensuite, il faut décider
|
||||
comment partager ce bus entre les différents ordinateurs connectés
|
||||
dessus.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
En <i lang="en">token-ring</i>, un jeton (<i lang="en">token</i>) est
|
||||
transmis de station à station ; c'est le droit de parole. Chaque
|
||||
station ne peut conserver le jeton que pendant un temps maximal donné,
|
||||
mais peut le relâcher immédiatement si elle n'a rien à dire.
|
||||
</p>
|
||||
|
||||
<h3>Réseau Ethernet</h3>
|
||||
|
||||
<p>
|
||||
En ethernet, la méthode est plus simple qu'en <i
|
||||
lang="en">token-ring</i> : quand une station veut émettre un message,
|
||||
elle espionne le bus jusqu'au moment où il se libère (plus personne ne
|
||||
parle pendant un très court instant); elle prend alors la parole,
|
||||
d'autorité. Ce faisant, elle continue d'espionner le bus, pour voir si
|
||||
la communication passe bien; si elle est brouillée, c'est qu'une autre
|
||||
station a eu la même idée en même temps. Dans ce cas, la station (et
|
||||
l'autre aussi, car elle est également brouillée) s'arrête, attend un
|
||||
temps aléatoire, et recommence. Avec une bonne probabilité, l'autre
|
||||
station a attendu un temps aléatoire différent, et les deux messages
|
||||
partent sans brouillage. Après un certain nombre d'essais infructueux,
|
||||
avec des délais de plus en plus grands, le message est considéré comme
|
||||
n'ayant pas pu passer, c'est ce qu'on appelle une collision.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Bizarrement, l'ethernet est très efficace, et partage très
|
||||
correctement la bande passante, même quand le bus est chargé. Il a
|
||||
l'avantage d'être très décentralisé : aucune station n'a besoin de
|
||||
savoir qui, au juste, est présent sur le bus, et une station éteinte
|
||||
n'empêche pas la communication. Son défaut principal est l'absence de
|
||||
garantie de débit, chaque station se contentant de faire au mieux, au
|
||||
lieu de faire bien.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
L'ethernet se pratiquait sur des câbles coaxiaux (façon câble
|
||||
d'antenne de télévision), passant par toutes les stations et terminés
|
||||
aux deux bouts par des résistances, avec une longueur maximale de 185
|
||||
mètres (ou 550 mètres si on emploie du gros câble blindé,
|
||||
traditionnellement jaune). Cette méthode a l'inconvénient
|
||||
d'occasionner une coupure du câble quand on rajoute une nouvelle
|
||||
prise; et il n'est pas toujours facile de faire passer le même câble
|
||||
par toutes les stations, suivant leur disposition.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Maintenant, on établit des structures arborescentes : chaque station
|
||||
est reliée, par un câble personnel, à un hub, une sorte de multiprise
|
||||
amplifiée. Les hubs sont reliés entre eux via des câbles similaires ;
|
||||
chaque hub reproduit sur toutes les autres prises ce qu'il reçoit sur
|
||||
chacune d'elles. On peut brancher une nouvelle machine sans perturber
|
||||
le fonctionnement, et on peut plus facilement relier des machines
|
||||
distantes.
|
||||
</p>
|
||||
|
||||
<p class="centre"><img
|
||||
src="&url.tuteurs;docs/hublot/hublot04/reseau2.png" alt="[Schéma]" />
|
||||
Figure 3 : Réseau ethernet arborescent (RJ45)</p>
|
||||
|
||||
<h2>Internet dans tout ça</h2>
|
||||
|
||||
<p>
|
||||
On a vu, dans la section précédente, comment relier ensemble deux
|
||||
stations pour qu'elles puissent s'échanger des données, pas forcément
|
||||
de façon fiable, et sans garantie de débit. Ces méthodes sont locales,
|
||||
et il convenait de passer à un réseau global. Ceci a été effectué
|
||||
grâce au réseau Internet, dérivé de l'Arpanet au cours des années 1970
|
||||
(Arpanet était le réseau des militaires américains).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Le principe est le suivant : quand une station veut envoyer un message
|
||||
à une consoeur, elle commence par examiner ses branchements, pour voir
|
||||
si la destinatrice ne serait pas, par hasard, accessible
|
||||
directement. Dans ce cas, elle lui envoie le message par le moyen
|
||||
physique présent. Dans le cas contraire, elle envoie le message à une
|
||||
station dont elle sait qu'elle est plus qualifiée qu'elle pour
|
||||
résoudre ce problème. La station qualifiée est nommée routeur, ou
|
||||
aussi passerelle.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Pour savoir qui est contactable et comment, chaque station est munie
|
||||
d'une adresse de 4 octets (chaque octet contenant un nombre entre 0 et
|
||||
255). Ainsi, la station galion, en salle S, est dotée de l'adresse
|
||||
<code>129.199.129.10</code>. Ces adresses sont mondiales, et toutes
|
||||
les adresses commençant par <code>129.199</code> sont réservées à
|
||||
l'ENS.
|
||||
</p>
|
||||
|
||||
<h3>Un exemple à l'École</h3>
|
||||
|
||||
<p>
|
||||
Prenons l'exemple de galion, tentant d'envoyer un message (sous la
|
||||
forme d'un paquet IP, comme Internet Protocol) à aviso, en
|
||||
Infirmatique.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
galion, d'adresse <code>129.199.129.10</code>, sait qu'elle est reliée
|
||||
directement à toutes les stations dont l'adresse commence par
|
||||
<code>129.199.129</code>. Or, aviso a l'adresse
|
||||
<code>129.199.128.1</code> ; galion, constatant cela, décide de
|
||||
transmettre le paquet à sa passerelle, à savoir clipper
|
||||
(<code>129.199.129.1</code>, contactable par un lien ethernet direct
|
||||
depuis galion). Puis galion se lave les mains de ce qui se passe
|
||||
ensuite, ce n'est plus son affaire.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
clipper ne peut pas non plus contacter aviso directement, mais il peut
|
||||
parler sur un deuxième lien depuis son deuxième visage, clipper-gw
|
||||
(<code>129.199.1.22</code>). Sur ce lien, il peut contacter finn
|
||||
(<code>129.199.1.128</code>), qui est responsable des adresses en
|
||||
<code>129.199.128.</code> clipper transmet donc le paquet à finn, et
|
||||
se désintéresse lui aussi de la question.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
finn possède aussi deux visages, le second étant finn128
|
||||
(<code>129.199.128.254</code>), relié directement aux stations de
|
||||
l'Infirmatique. finn peut donc communiquer directement avec aviso, et
|
||||
lui envoie le paquet.
|
||||
</p>
|
||||
|
||||
<h3>Routeurs et réseau</h3>
|
||||
|
||||
<p>
|
||||
Donc, pour que tout se passe bien, il suffit que chaque station sache
|
||||
reconnaître les adresses contactables directement, et une passerelle
|
||||
pour les autres cas. Les routeurs, eux, doivent avoir une notion
|
||||
locale de la hiérarchie (clipper doit connaître finn, mais ce que finn
|
||||
doit faire pour contacter aviso ne le regarde pas).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Il est même possible de reconstruire ces informations à la volée :
|
||||
clipper peut tout envoyer sur la machine par défaut (renater), qui lui
|
||||
signalera à chaque fois qu'il existe une route plus directe ne passant
|
||||
pas par lui; clipper s'en rappellera pendant quelques minutes. Ce
|
||||
mécanisme, dit de routage dynamique, est un peu délicat à mettre en
|
||||
place, aussi on s'en sert avec parcimonie (il est aisé d'obtenir, à la
|
||||
suite d'un malentendu, une partie de ping-pong, où deux stations
|
||||
considèrent, pour un paquet donné, que l'autre station est la
|
||||
passerelle à utiliser).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Et voilà, ceci est Internet : des stations qui s'échangent des paquets
|
||||
(d'une taille maximale de 65.536 octets, mais souvent plus petits, de
|
||||
l'ordre de 1.500 octets). Normalement, un paquet n'a pas à effectuer
|
||||
plus de 30 sauts pour faire le trajet d'une station à une autre. Les
|
||||
paquets peuvent être fractionnés et recombinés au gré des routeurs,
|
||||
afin de s'adapter aux spécificités locales de la liaison.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Le chemin entre deux stations n'est pas forcément unique ; ceci permet
|
||||
une tolérance aux pannes ou une adaptation aux
|
||||
embouteillages. Notamment, les communications à grande échelle sont
|
||||
alors résistantes aux attaques nucléaires (c'est ce qui plaisait aux
|
||||
militaires américains). Une conséquence de ce fait est que deux
|
||||
paquets successifs ne suivent pas forcément le même chemin; ils
|
||||
peuvent notamment arriver dans le désordre, et certains peuvent être
|
||||
dupliqués (quand une passerelle cherche à savoir, via un protocole
|
||||
approprié, si un paquet est arrivé, et, ne voyant rien venir, en émet
|
||||
un autre, alors que le premier était simplement parti par un chemin
|
||||
détourné).
|
||||
</p>
|
||||
|
||||
<p class="centre"><img
|
||||
src="&url.tuteurs;docs/hublot/hublot05/reseau-ens.png" alt="[Une
|
||||
partie du routage à l'ENS]" /><br /> Figure 4 : Une partie du routage
|
||||
à l'ENS</p>
|
||||
|
||||
<h2>Le plombier et le facteur</h2>
|
||||
|
||||
<p>
|
||||
Nous voilà en position d'envoyer des paquets à travers le monde. Mais
|
||||
avec une fiabilité douteuse. On a principalement deux problèmes :
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li> On voudrait qu'une même station puisse tenir plusieurs
|
||||
conversations à la fois, sur des sujets différents. On a donc
|
||||
inventé des sous-adresses, des boîtes aux lettres différenciées,
|
||||
qu'on appelle les ports. Un port est un numéro entre 0 et 65 535;
|
||||
la plupart des services ont un port canonique (25 pour le courrier
|
||||
électronique, 80 pour le Web, etc) ;</li>
|
||||
<li> On voudrait un protocole permettant d'assurer l'intégrité des
|
||||
données (remise dans l'ordre, accusés de réception et ré-émission
|
||||
des paquets perdus, contrôle de flux), si possible intégré dans le
|
||||
système d'exploitation, pour que les applications puissent s'en
|
||||
servir sans se prendre la tête.</li>
|
||||
</ul>
|
||||
|
||||
<p>Deux protocoles ont donc été créés (un protocole est aux données ce
|
||||
que le langage est à une conversation : c'est le « règlement »). Le
|
||||
premier, <strong>UDP</strong> (<i lang="en">User Datagram
|
||||
Protocol</i>) est une surcouche triviale (couche supplémentaire
|
||||
reproduisant la structure sous-jacente) d'IP : on envoie des paquets,
|
||||
sans garantie, d'une taille maximale de 8 192 octets (pour les
|
||||
données; il y a aussi un entête donnant entre autres l'adresse et le
|
||||
port de destination).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>TCP</strong> (<i lang="en">Transmission Control Protocol</i>)
|
||||
est une mécanique complexe qui assure une sémantique de connexion: un
|
||||
tuyau bidirectionnel, fiable, au flux contrôlé afin de ne pas
|
||||
provoquer d'embouteillage, est établi entre deux stations, sur un
|
||||
certain port.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
TCP est le plus utilisé. UDP est utilisé pour certains protocoles où
|
||||
l'ordre d'arrivée des données n'est pas important, ou quand les
|
||||
données sont rapidement obsolètes. Par exemple, dans le cas de NFS
|
||||
(partage de disques par réseau), l'ordre des requêtes n'est pas
|
||||
primordial; quand on fait du téléphone par Internet, si un paquet se
|
||||
perd, autant l'oublier: sa doublure arriverait trop tard pour
|
||||
s'intégrer dans le flux sonore.
|
||||
</p>
|
||||
|
||||
<h3>Les applications</h3>
|
||||
|
||||
<p>
|
||||
La face visible d'Internet est formée par les applications. Nous
|
||||
allons en détailler quelques unes.
|
||||
</p>
|
||||
|
||||
<h4>DNS (<i lang="en">Domain Name Server</i>)</h4>
|
||||
|
||||
<p>
|
||||
Cette application est chargée de faire la correspondance entre les
|
||||
adresses numériques, et les noms de stations, noms qui sont destinés
|
||||
aux humains. Ainsi, c'est le système des DNS qui permet à toute
|
||||
station dans le monde de savoir que <code>clipper.ens.fr</code> répond
|
||||
à l'adresse <code>129.199.129.1</code>. Chaque site doit disposer d'un
|
||||
DNS, connaissant les machines locales, et pouvant interroger les
|
||||
autres DNS. Les DNS communiquent par paquets UDP sur le port 53.
|
||||
</p>
|
||||
|
||||
<h4>SMTP (<i lang="en">Simple Mail Transfer Protocol</i>)</h4>
|
||||
|
||||
<p>
|
||||
Par connexion TCP sur le port 25, ce protocole permet d'échanger des
|
||||
courriers électroniques. De façon similaire au transport des paquets
|
||||
IP, un courrier peut effectuer quelques sauts (à chaque fois sous la
|
||||
forme d'une connexion TCP) entre serveurs de mails avant d'arriver à
|
||||
destination. Par exemple, à l'ENS, tout courrier sortant passe par
|
||||
<code>nef.ens.fr</code>.
|
||||
</p>
|
||||
|
||||
<h4>FTP (<i lang="en">File Transfer Protocol</i>)</h4>
|
||||
|
||||
<p>
|
||||
Ce protocole de transfert de fichiers utilise deux connexions TCP, sur
|
||||
les ports 20 et 21 (celle sur le port 20 sert aux données, celle sur
|
||||
le port 21 transporte les commandes).
|
||||
</p>
|
||||
|
||||
<h4>NFS (<i lang="en">Network File System</i>)</h4>
|
||||
|
||||
<p>
|
||||
Créé par Sun Microsystems, ce protocole de partage de disques permet,
|
||||
à l'ENS, de pouvoir manipuler ses fichiers quelle que soit la station
|
||||
qu'on utilise. Alors qu'il est souvent décrié, ses versions modernes
|
||||
sont fort acceptables, pourvu que le réseau sous-jacent soit
|
||||
rapide. Il utilise des paquets UDP, sur le port 2049.
|
||||
</p>
|
||||
|
||||
<h4>HTTP (<i lang="en">HyperText Transfer Protocol</i>)</h4>
|
||||
|
||||
<p>
|
||||
C'est le coeur du World Wide Web, qui n'est qu'une application
|
||||
d'Internet, récente de surcroît (1990). Par connexion TCP sur le port
|
||||
80 du serveur Web, le client obtient le contenu d'une page
|
||||
(normalement en langage HTML) et divers autres types de fichiers
|
||||
(notamment les images). Une adresse Web (URL) commence par le mot-clé
|
||||
http, indiquant le protocole utilisé, puis contient le nom du serveur
|
||||
Web, puis enfin le nom du fichier (avec éventuellement des répertoires
|
||||
et des sous-répertoires) sur ce serveur.
|
||||
</p>
|
||||
|
||||
<p class="centre"><img
|
||||
src="&url.tuteurs;docs/hublot/hublot06/reseau.png"
|
||||
alt="[Fonctionnement du Web]" /><br /> Figure 5 : Consultation de
|
||||
<code>http://www.ens.fr/index.html</code></p>
|
||||
|
||||
<h2>Intervention divine</h2>
|
||||
|
||||
<p>
|
||||
Bizarrement, tout cet édifice aux proportions bibliques fonctionne la
|
||||
plupart du temps. Néanmoins, quand une rupture générale de la Force
|
||||
arrive, on peut se retrouver avec beaucoup de problèmes, tous
|
||||
différents. Voici quelques spécimens:
|
||||
</p>
|
||||
|
||||
<h3>Ping-pong</h3>
|
||||
|
||||
<p>
|
||||
Deux routeurs se renvoient des paquets, chacun ayant décidé que Le Bon
|
||||
Chemin passe par l'autre. Cela se diagnostique avec la commande Unix
|
||||
<code>traceroute</code>. Solution : maudire <a
|
||||
href="http://www.renater.fr/">Renater</a> (le fournisseur d'accès
|
||||
Internet de l'ENS, grand spécialiste du tennis de table) et attendre
|
||||
que les routeurs oublient d'être stupides.
|
||||
</p>
|
||||
|
||||
<h3>Panne des DNS</h3>
|
||||
|
||||
<p>
|
||||
Les DNS forment une structure hiérarchique qui a tendance à s'écrouler
|
||||
d'un coup. Dans ces conditions, tout semble figé, sauf si on utilise
|
||||
directement les adresses numériques; mais il est difficile de retenir
|
||||
par coeur 4 milliards d'adresses... Le diagnostic : la commande
|
||||
<code>host</code> sur un hôte connu (<code>www.google.com</code> par
|
||||
exemple) bloque et ne répond pas.
|
||||
</p>
|
||||
|
||||
<h3>Plantage du serveur NFS</h3>
|
||||
|
||||
<p>
|
||||
Votre station est bloquée, des messages « <i lang="en">NFS server not
|
||||
responding, still trying</i> » apparaissent. C'est typique du serveur
|
||||
NFS (celui qui possède, physiquement, les disques partagés) qui a pris
|
||||
des vacances. Il faut attendre le reboot du serveur. NFS étant bien
|
||||
fait, cela débloquera les machines sans conséquence funeste pour les
|
||||
opérations en cours.
|
||||
</p>
|
||||
|
||||
<h3>Plantage du serveur NIS</h3>
|
||||
|
||||
<p>
|
||||
NIS, alias les Pages Jaunes, est le protocole permettant de partager
|
||||
les mots de passe entre les stations. Pour l'utilisateur final, les
|
||||
conséquences sont semblables à un plantage NFS : il faut attendre le
|
||||
retour du serveur NIS. Une fois qu'il est revenu, tout remarche, rien
|
||||
n'a été perdu.
|
||||
</p>
|
||||
|
||||
<h3>Embouteillage</h3>
|
||||
|
||||
<p>
|
||||
Une partie du réseau est à genoux. La plupart des paquets s'égarent,
|
||||
tout va lentement, c'est horrible. Pas de solution, sinon espérer que
|
||||
de nouvelles lignes seront bientôt mises en place, pester contre ces
|
||||
milliers de crétins qui ne pensent qu'à récupérer les dernières photos
|
||||
de Pamela Anderson, et revenir se connecter à une heure plus adaptée
|
||||
(pour les États-Unis, la bonne heure est 6 heures du matin : les
|
||||
Américains sont couchés, les Européens pas encore levés).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Il existe beaucoup d'autres pannes possibles, plus ésotériques. Elles
|
||||
sont la cause de certaines de ces discussions d'informaticiens que
|
||||
personne ne comprend, mais qui semblent les amuser follement.
|
||||
</p>
|
||||
|
||||
<h2>En savoir plus</h2>
|
||||
|
||||
<p>
|
||||
Le cours d'Architecture et Systèmes comprend une partie animée par
|
||||
Jacques Beigbeder, qui décrit, entre autres, le fonctionnement du
|
||||
réseau.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Les gens motivés se référeront aux RFC (<i lang="en">Request For
|
||||
Comments</i>). Ce sont les documents de référence ; on les trouve là :
|
||||
<a href="ftp://ftp.inria.fr/rfc/">ftp://ftp.inria.fr/rfc/</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Le protocole IP est décrit dans la <a
|
||||
href="http://www.faqs.org/rfcs/rfc791.html">RFC 791</a>.
|
||||
</p>
|
||||
|
||||
<div class="metainformation">Auteur : Thomas Pornin. Dernière
|
||||
modification : le <date value="$Date: 2003-07-08 10:27:53 $" />.</div>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Reference in a new issue