tuteurs.ens.fr/theorie/internet.tml

420 lines
19 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Internet</title>
</head>
<body>
<h1>Comment marche Internet</h1>
<h2>Relier les ordinateurs</h2>
<h3>Le principe</h3>
<p>
Un c<>ble, d'un c<>t<EFBFBD> quelqu'un qui envoit du courant par intermittence, de
l'autre quelqu'un qui regarde quand il y a du courant. C'est le principe du
t<EFBFBD>l<EFBFBD>graphe, avec le code Morse. Et <20>a s'adapte vraiment parfaitement aux
ordinateurs. Les ordinateurs peuvent m<>me faire mieux<75>: ils ont des
m<EFBFBD>tronomes (dans le domaine informatique on parle d'horloges) qui battent
tr<EFBFBD>s pr<70>cis<69>ment la mesure<72>; <20> chaque tic, ils peuvent envoyer ou pas le
courant, <20>a fait un bit d'information <20> chaque fois.
</p>
<p>
Nous ne rentrerons pas dans les d<>tails de la r<>alisatoin physique<75>: <20>a
peut aller d'une b<>te paire de fils sur <20> peine plus d'un m<>tre <20> un
faisceau de fibres optiques, en passant par un c<>ble coaxial. <20>a peut
<EFBFBD>galement <20>tre des ondes radio, ou bien le fait de dire ou de ne pas dire
bip sur une ligne t<>l<EFBFBD>phonique. Bref, il y a plein de mani<6E>res pour deux
ordinateurs de se dire 0 ou 1.
</p>
<p>
<EFBFBD>a, c'est bien pour relier deux ordinateurs. Mais comment faire s'il y en a
plusieurs<EFBFBD>? Tirer un c<>ble entre chaque paire n'est pas envisageable. La
solution la moins co<63>teuse, et donc celle qui a <20>t<EFBFBD> rapidement pr<70>f<EFBFBD>r<EFBFBD>e, est
d'utiliser un seul c<>ble qui connecte tous les ordinateurs. Quand un
ordinateur veut parler, il parle <20> tous les autres, et il faut inventer des
moyens pour que deux ne parlent pas en m<>me temps. Le syst<73>me de ce genre le
plus r<>pandu consiste en un c<>ble coaxial o<> tous les ordinateurs sont
branch<EFBFBD>s en s<>ri<72><69>; plus r<>cemment on a adopt<70> une structure en <20>toile
autour d'un appareil bon march<63> appel<65> hub, plus efficace et plus robuste
que la structure en s<>rie.
</p>
<p>
Plusieurs ordinateurs, c'est bien, mais relier beaucoup d'ordinateur, c'est
mieux. La technologie des c<>bles impose des limites de longueur, et il est
rarement possible de relier directement un c<>ble coaxial de r<>seau
domestique <20> un faisceau de fibres optiques transatlantique. La solution
consiste alors <20> avoir une machine branch<63>e sur les deux (ou plus) r<>seaux,
avec pour t<>che de faire suivre l'information de l'un <20> l'autre<72>; quand un
ordinateur d'un r<>seau veut parler <20> un ordinateur de l'autre r<>seau, il
adresse son message <20> cette machine, avec une <20>tiquette indiquant le
destinataire. On appelle une telle machine un <dfn>routeur</dfn>.
</p>
<h3>Comment on fait, en vrai, sur Internet</h3>
<p>
Pour les r<>seaux locaux (les
<abbr lang="en" title="Local Area Network">LAN</abbr> quand on veut faire
moderne), la technologie employ<6F>e est <dfn>ethernet</dfn>. Elle fonctionne
soit avec un c<>ble coaxial en s<>rie, soit avec un c<>ble simple (<28> huit fils
dont peu sont vraiment utilis<69>s) organis<69> en <20>toile autour d'un hub. Avec
ethernet, les donn<6E>es sont envoy<6F>es par blocs appel<65>s trames qui font au
plus environ 1,5<>ko. Il n'y a pas de syst<73>me pour s'assurer <i>a priori</i>
que deux ordinateurs sur le c<>ble ne parlent pas en m<>me temps<70>: la
d<EFBFBD>tection se fait <i>a posteriori</i> par le fait que le signal est alors
incompr<EFBFBD>hensible<EFBFBD>; les deux ordinateurs r<><72>mettent alors apr<70>s un d<>lai
al<EFBFBD>atoire, qui sera probablement diff<66>rent<6E>; en pratique, ce syst<73>me marche
plut<EFBFBD>t bien.
</p>
<p>
Au d<>but de chaque trame ethernet, ou trouve ce qu'on appelle un
<dfn>ent<6E>te</dfn><3E>: quelques octets r<>serv<72>s par le protocole ethernet
lui-m<>me pour son fonctionnement interne. Toutes les cartes r<>seau ethernet
poss<EFBFBD>dent une adresse
<abbr lang="en" title="Media Access Control">MAC</abbr> depuis l'usine (mais
les cartes modernes permettent de la changer), qui est code unique de six
octets. Par exemple clipper a pour adresse MAC
<code>08:00:20:b0:24:32</code>. Dans l'ent<6E>te ethernet, on trouve l'adresse
MAC de l'ordinateur auquel la trame est adress<73>e (ainsi que celle de
l'ordinateur qui envoit). En temps normal, le filtrage se fait directement
au niveau de la carte r<>seau, de sorte que parmi les ordinateurs sur un m<>me
c<EFBFBD>ble, seul celui qui est concern<72> voit effectivement un message.
</p>
<p>
Dans l'ent<6E>te ethernet, on trouve <20>galement un num<75>ro de protocole. C'est un
petit nombre, sur deux octets, qui d<>crit tr<74>s bri<72>vement ce qu'on pr<70>voit
de faire avec les donn<6E>es de la trame.
L'<abbr lang="en" title="Internet Assigned Numbers Authority">IANA</abbr>
tient <20> jour une
<a href="http://www.iana.org/assignments/ethernet-numbers">table des num<75>ros
ethernet</a> attribu<62>s. Ainsi, le syst<73>me d'exploitation de l'ordinateur qui
a re<72>u la trame peut imm<6D>diatement appeler le bon sous-syst<73>me, ou ignorer
la trame s'il ne sait pas quoi en faire. Pour illustrer, quand on utilise
ethernet pour faire passer de l'<27><>Internet<65><74>, le num<75>ro est 513. Ce
m<EFBFBD>canisme de num<75>ros d<>crivant le genre d'utilisation d'un syst<73>me est tr<74>s
g<EFBFBD>n<EFBFBD>ral, et on le retrouve <20> tous les niveaux des protocoles Internet.
</p>
<p>
Quand on utilise une ligne t<>l<EFBFBD>phonique, le protocole employ<6F> est le
<span lang="en">Point to Point</span> (PPP). Il a des m<>canismes diff<66>rents
parce qu'il ne relie que deux ordinateurs, mais sous des contraintes
diff<EFBFBD>rentes (ligne moins fiable et temps de latence sup<75>rieur).
</p>
<h2>Relier les r<>seaux</h2>
<h3>Le routage</h3>
<p>
Mettez une lettre <20> la poste. Si le destinataire habite dans la m<>me ville,
elle lui sera distribu<62>e directement. S'il habite dans une ville voisine, le
facteur transmet la lettre <20> son coll<6C>gue de cette ville. S'il habite plus
loin, le facteur transmettra la lettre au centre de tri dont il d<>pend. Et <20>
son tour, le centre de tri va faire suivre la lettre <20> qui de droit. La
lettre va donc passer par diff<66>rentes <20>tapes o<> elle sera redirig<69>e en
fonction de l'adresse qui est <20>crite dessus.
</p>
<p>
Les r<>seaux informatiques, d<>s qu'ils d<>passent les quelques dizaines de
machines qu'on peut brancher sur un m<>me c<>ble, fonctionnent de la m<>me
mani<EFBFBD>re<EFBFBD>: les donn<6E>es sont d<>coup<75>es en <dfn>paquets</dfn>, qui jouent le
r<EFBFBD>le de notre enveloppe. Quand il n'est pas possible de transmettre le
paquet directement <20> son destinataire, il est transmis <20> un ordinateur
(d<>fini dans la configuration du r<>seau) appel<65> <dfn>routeur</dfn>. Cet
ordinateur est cens<6E> <20>tre capable de faire suivre le paquet<65>; <20>a suppose par
exemple qu'il est reli<6C> par un autre c<>ble <20> un autre r<>seau.
</p>
<p>
Pour pouvoir marcher, ce syst<73>me a besoin que les ordinateurs soient dot<6F>s
d'une adresse qui refl<66>te leur position dans le r<>seau global. L'adresse MAC
ne convient pas pour cette t<>che, d'une part parce que elle est (plus ou
moins) immuable et ne correspond en rien <20> la position sur le r<>seau (un
portable qu'on d<>branche d'un endroit et rebranche a un autre ne change pas
d'adresse MAC), et d'autre part parce qu'on souhaite que <20>a fonctionne avec
diff<EFBFBD>rents types de connexion (les modems pour les connexions PPP, par
exemple, n'ont pas d'adresse MAC). On invente alors un nouveau syst<73>me
d'adresses, ind<6E>pendant du protocole utilis<69> pour connecter les ordinateurs.
</p>
<h3>Le protocole IP</h3>
<p>
Ce qui fait Internet, c'est
<abbr lang="en" title="Internet Protocol">IP</abbr> (et l'on d<>couvre que le
titre de cette section est un pl<70>onasme). Ce protocole d<>crit la structure
des adresses utilis<69>e, la mani<6E>re d'<27>crire ces adresses dans les paquets, et
les moyens d'assurer leur bonne circulation.
</p>
<p>
Nous utilisons actuellement la version 4 d'IP, ce qu'on indique parfois par
IPv4. Dans cette version, les adresses sont constitu<74>es de 32 chiffres
binaires (bits), ce qu'on <20>crit g<>n<EFBFBD>ralement sous la forme de quatre nombres
entre 0 et 255. Par exemple, l'adresse IP de clipper est 129.199.129.1. Une
nouvelle version d'IP, IPv6, est progressivement mis en place<63>; les adresses
y font 128<32>bits, et sont <20>crites en hexad<61>cimal<61>; l'ENS n'est pas reli<6C>e en
IPv6, mais si vous voulez un exemple, 2001:660:3001:4002:2C0:4FFF:FE4E:41D3
est l'adresse IPv6 du serveur web de
<a href="http://www.renater.fr/">Renater</a>.
</p>
<p>
Tout ordinateur reli<6C> <20> Internet poss<73>de (au moins) une adresse IP, et il
est le seul <20> la poss<73>der (dans Internet). Ces adresses sont structur<75>es en
r<EFBFBD>seaux et sous-r<>seaux, en fixant les chiffres de gauche <20> droite. Ainsi,
toutes les adresses en 129.199.x.y sont dans l'ENS, et celles en
129.199.129.y sont plus particuli<6C>rement dans la salle S. De l'ext<78>rieur,
quelqu'un qui veut envoyer un paquet <20> 129.199.129.1 a seulement <20> savoir
qu'il doit l'envoyer <20> l'ENS. C'est ensuite <20> nos routeurs de finir le
travail.
</p>
<p>
Les paquets IP comportent tous l'adresse IP de l'exp<78>diteur, celle du
destinataire, une somme de contr<74>le qui permet de v<>rifier qu'il est intact,
et un num<75>ro de protocole indiquant <20> quoi va servir ce paquet. Ils
comportent <20>galement un compteur qui limite le nombre de routeurs par lequel
il peut passer (de mani<6E>re <20> ce qu'un paquet perdu ne reste pas <20>ternellement
<EFBFBD> circuler entre des routeurs mal configur<75>s), ainsi que quelques autres
options. Un des principes d'Internet, c'est que les routeurs font le strict
minimum<EFBFBD>: ils doivent se contenter de faire suivre les paquets sans les
alt<EFBFBD>rer (sauf le compteur<75>; si un paquet a atteint la limite, le routeur
l'arr<72>te et envoit un paquet <20> l'exp<78>diteur pour signaler l'erreur). Un des
autres principes est que tous les ordinateurs sont <20>gaux<75>: du point de vue
du protocole, rien ne distingue le super ordinateur central de la NASA de
votre petit PC personnel<65>; en particulier, rien ne distingue un serveur d'un
poste client.
</p>
<p>
IP est con<6F>u sur un principe de <span lang="en">best effort</span> (meilleur
effort)<29>: les infrastructures (les routeurs) font leur possible pour faire
parvenir vos paquets, mais sans aucune garantie. Un paquet peut dispara<72>tre
sans laisser de trace, ou bien se perdre au mauvais endroit (mais il n'ira
en g<>n<EFBFBD>ral pas bien loin), ou encore <20>tre retard<72> et arriver apr<70>s un paquet
pourtant parti plus tard. Il arrive m<>me qu'un paquet arrive en plusieurs
exemplaires. Bien s<>r, <em>en g<>n<EFBFBD>ral</em>, les paquets arrivent bien, et
dans l'ordre. Ce principe du meilleur effort a l'avantage d'<27>tre simple et
l<EFBFBD>ger<EFBFBD>; il est ensuite possible de concevoir un syst<73>me d'accus<75>s de
r<EFBFBD>ception et de num<75>ros d'ordre pour assurer la fiabilit<69> de la
transmission.
</p>
<h2>Relier les programmes</h2>
<h3>Trier les paquets</h3>
<p>
C'est bien gentil de dire que votre ordinateur peut envoyer des paquets qui
arriveront (peut-<2D>tre) <20> n'importe quel ordinateur dans le monde, mais vous,
ce qui vous int<6E>resse, c'est de surfer sur le web et d'envoyer du courrier
en m<>me temps, et que les informations arrivent. Pourtant, le web et le
courrier <20>lectronique ne sont pas toujours dans le m<>me logiciel<65>: il faut
donc que plusieurs applications puissent se partager le r<>seau, et que l'une
n'aille pas recevoir les donn<6E>es de l'autre.
</p>
<p>
Quand on programme une application r<>seau, on amierait en g<>n<EFBFBD>ral avoir une
sorte de tuyau<61>: tout ce qu'on dit d'un c<>t<EFBFBD>, l'application <20> l'autre bout
le re<72>oit, dans l'ordre, sans perte, et une seule fois, et inversement, on
re<EFBFBD>oit tout ce qu'elle dit. Si les ordinateurs aux deux bouts sont d'accord,
un tel tuyau peut <20>tre simul<75><6C>: on d<>coupe ce qui doit passer dans le tuyau
en morceaux assez petits pour tenir dans des paquets, et on les exp<78>die avec
un num<75>ro d'ordre<72>; <20> l'autre bout, l'ordinateur r<>pond par un paquet
accusant la r<>ception, et utilise les num<75>ros pour remettre de l'ordre. Si
on constate qu'un accus<75> de r<>ception tarde, on r<>exp<78>die le paquet
incrimin<EFBFBD>, au pire il arrivera en double et ce n'est pas grave.
</p>
<p>
Tant qu'on en est <20> rajouter des num<75>ros aux paquets, on peut ajouter encore
quelques informations. Par exemple l'identit<69> du programme qui l'a envoy<6F>,
ou l'identit<69> du programme qui doit le recevoir. Avec tout <20>a, on peut
concevoir des <dfn>connexions</dfn> r<>seau<61>: un tuyau virtuel entre un
ordinateur et un autre, avec une extr<74>mit<69> qui envoit des paquets, attend
des accus<75>s de r<>ception, et r<>exp<78>die les paquets qui se perdent, et
l'autre extr<74>mit<69> qui re<72>oit les paquets et les remet dans l'ordre. Quand un
paquet arrive sur un ordinateur, le syst<73>me r<>seau consulte son contenu pour
voir ses r<>f<EFBFBD>rences, et trouve dans ses tables <20> quelle connexion il
appartient.
</p>
<p>
Tout ceci est normalement fait par le syst<73>me d'exploitation des
ordinateurs, et cach<63> aux programmes. Les programmes, eux, se contentent de
r<EFBFBD>clamer une connexion, et ensuite d'utiliser le tuyau. Les donn<6E>es passent,
ils n'ont pas <20> se soucier de toute la machinerie interne.
</p>
<h3>Le protocole TCP</h3>
<p>
Sur internet, le protocole qui sert <20> <20>tablir des connexions est
<abbr lang="en" title="Transmission Control Protocol">TCP</abbr>. Pour
distinguer les connexions, TCP utilise un <dfn>num<75>ro de port</dfn>, un
petit nombre (entre 1 et 65535), qu'on peut voir un peu comme le casier d'un
<EFBFBD>l<EFBFBD>ve, alors que l'adresse IP correspond <20> <20><>45 rue d'Ulm<6C><6D>. Une connexion est
identifi<EFBFBD>e par quatre donn<6E>es<65>:
</p>
<ul>
<li>l'adresse IP de l'ordinateur de d<>part<72>;</li>
<li>le port sur cet ordinateur<75>;</li>
<li>l'adresse IP de l'ordinateur d'arriv<69>e<EFBFBD>;</li>
<li>le port sur cet ordinateur</li>
</ul>
<p>
Chaque paquet <20>chang<6E> dans le cadre d'une connexion rappelle ces quatre
r<EFBFBD>f<EFBFBD>rences. On peut remarquer que sur un ordinateur donn<6E>, le m<>me port peut
participer <20> plusieurs connexions. De fait, <20>a arrive assez souvent, mais
jamais aux deux extr<74>mit<69>s <20> la fois (m<>me si rien ne l'interdit
fondamentalement).
</p>
<p>
Les connexions TCP sont toujours doubles<65>: dans un sens et dans l'autre
entre les m<>mes extr<74>mit<69>s.
</p>
<p>
Du point de vue du programme, une connexion est un objet sur lequel on peut
lire et <20>crire des donn<6E>es. Sous Unix, <20>a se pr<70>sente presque de la m<>me
mani<EFBFBD>re qu'un fichier. Le syst<73>me d'exploitation sait <20> quel programme
chaque connexion active <20><>appartient<6E><74>, et fait tout le n<>cessaire.
</p>
<h3>Clients et serveurs</h3>
<p>
Comme dans toutes relations de couple, aux d<>buts d'une connexion, il faut
que l'un des deux fasse le premier pas, alors que l'autre se contente
d'attendre. En informatique, l'extr<74>mit<69> de la future connexion qui attend
s'appelle un <dfn>serveur</dfn> (eh oui, c'est le contraire du restaurant,
o<EFBFBD> le serveur vient <20> votre table prendre la commande), tandis que
l'extr<74>mit<69> qui fait le premier pas (qui envoit le premier paquet) s'appelle
le <dfn>client</dfn>. Apr<70>s l'<27>change de quelques paquets (trois, avec TCP)
pour v<>rifier qu'il y a bien un serveur au port demand<6E>, pour se mettre
d'accord sur la taille des paquet, etc., la connexion est <20>tabli<6C>.
</p>
<p>
Une fois que c'est fait, il n'y a du point de vue du r<>seau plus de
diff<EFBFBD>rence entre les deux extr<74>mit<69>s. Cependant, le dialogue entre les
programmes ne sera probablement pas sym<79>trique<75>: une fois une connexion
<EFBFBD>tablie entre votre navigateur web et
<a href="http://www.google.com/">Google</a>, c'est bien votre navigateur web
qui va poser une question <20> Google et non l'inverse. Il arrive n<>anmoins que
<EFBFBD>a finisse par <20>tre sym<79>trique, en particulier dans le cas de dialogue en
direct (avec ytalk par exemple) ou de jeux en r<>seau sans serveur central.
</p>
<p>
L'important est que les deux extr<74>mit<69>s se comprennent. Pour <20>a, elles
doivent encore une fois coder leurs donn<6E>es d'une certaine mani<6E>re<72>: encore
un protocole. Cette mani<6E>re n'est d'ailleurs pas la m<>me s'il s'agit de web,
de mail, ou d'autres activit<69>s tout aussi passionnantes.
</p>
<p>
Les plus attentifs doivent se poser une question<6F>: il y a sur l'ordinateur
de Google (dont l'adresse IP est 216.239.59.99) 65535 ports diff<66>rents,
comment notre navigateur web a-t-il devin<69> le quel contacter<65>? La r<>ponse
est simple<6C>: le web, c'est sur le port 80. Pourquoi 80<38>? C'est comme <20>a. Les
services importants ont des num<75>ros de port qui leur sont d<>di<64>s, l'IANA les
<a href="http://www.iana.org/assignments/port-numbers">recense</a>. Les
services moins r<>pandus prennent un port plus ou moins au hasard, en
esp<EFBFBD>rant ne pas entrer en conflit avec un autre service, et comme c'est la
m<EFBFBD>me personne qui <20>crit les programme client et serveur c'est le m<>me qui
est utilis<69> des deux c<>t<EFBFBD>s.
</p>
<p>
Sous Unix, il faut des droits sp<73>ciaux pour cr<63>er un serveur sur un port en
dessous de 1024, ce qui permet d'<27>tre s<>r, quand on donne son mot de passe <20>
SSH (port 23) ou <20> IMAP (port 143), d'<27>tre bien en train de parler au
programme autoris<69>. Au dessus de 1024, c'est libre. Certains se rappellent
peut-<2D>tre que le serveur web des <20>l<EFBFBD>ves <20>tait
<code>http://www.eleves.ens.fr<strong>:8080</strong>/</code>. Ceci veut dire
qu'il <20>tait sur le port 8080 au lieu du 80 habituel, justepent parce qu'il
aurait fallu des droits suppl<70>mentaires pour avoir 80.
</p>
<p>
Pour le client, c'est en g<>n<EFBFBD>ral plus simple<6C>: le programme laisse le
syst<EFBFBD>me d'exploitation choisir un port inutilis<69>. Certains programmes
forcent l'utilisation d'un port en dessous de 1024 pour prouver qu'ils ne
sont pas n'importe quel utilisateur, mais cette pratique tombe en d<>su<73>tude
au profit de m<>thodes cryptographiques.
</p>
<h2>Plus pour nous faciliter la vie</h2>
<h3>Le DNS</h3>
<p>
Se rappeler les adresses IP, ce n'est pas facile. Et ce sera encore pire
avec IPv6. Mais le probl<62>me n'est pas nouveau<61>: on a le m<>me avec les
num<EFBFBD>ros de t<>l<EFBFBD>phone, et pour le r<>soudre on a invent<6E> l'annuaire.
L'annuaire pour Internet s'appelle le
<abbr lang="en" title="Domain Name System">DNS</abbr>, et fonctionne bien
entendu en r<>seau.
</p>
<p>
<EFBFBD> l'<27>chelle d'un site, ou d'un fournisseur d'acc<63>s, il y a un (ou plusieurs)
ordinateur, que tous les autres connaissent par son adresse IP, et sur
lequel tourne un programme qui <20>coute sur le port 53 et qui se charge de
r<EFBFBD>pondre aux questions du genre <20><>quelle est l'adresse IP de
<code>www.google.com</code><3E>?<3F><>.
</p>
<p>
Ce programme n'a en g<>n<EFBFBD>ral pas la r<>ponse, mais il a l'adresse d'autres
ordinateurs <20> qui demander, qui eux-m<>mes peuvent ne pas savoir mais avoir
l'adresse d'autres ordinateurs, etc. Le syst<73>me est hi<68>rarchique. Il y a <20>
la racine quelques ordinateurs (une douzaine) qui savent qui s'occupe des
<code>.com</code>, qui s'occupe des <code>.org</code>, qui s'occupe des
<code>.fr</code>, etc. Dans le cas des <code>.fr</code>, il y a encore
quelques ordinateurs, g<>r<EFBFBD>s par des organismes fran<61>ais (enfin, pas tous),
qui savent <20> qui s'adresser pour chaque domaine. Et ainsi de suite.
</p>
<p>
Par exemple, pour conna<6E>tre l'adresse de <code>clipper.ens.fr</code>, il
faut commencer par interroger l'un des serveurs racine, par exemple
198.41.0.4, qui r<>pond qui'il ne sait pas, mais que les <code>.fr</code>
sont g<>r<EFBFBD>s par 192.93.0.1, 193.51.208.13, et quelques autres. Si on
interroge l'un d'entre eux, on apprend qu'il ne sait pas non plus, mais il
nous informe que <code>ens.fr</code> est g<>r<EFBFBD> par 129.199.96.11 (on
reconna<EFBFBD>t le 129.199<EFBFBD>: c'est un ordinateur de l'ENS) et quelques autres.
Enfin, on interroge 129.199.96.11, et on obtient la r<>ponse, <20> savoir
129.199.129.1
</p>
<p>
Bien s<>r, tous les programmes pour faire <20>a sont d<>j<EFBFBD> <20>crits<74>: quand on
programme une nouvelle application r<>seau, il suffit d'utiliser la bonne
fonction de la biblioth<74>que standard.
</p>
<div class="metainformation">
Auteur<EFBFBD>: Nicolas George.
Derni<EFBFBD>re modification le <date value="$Date: 2007-07-17 10:03:07 $"/>.
</div>
</body>
</html>