Précédent Remonter Suivant

Chapitre 11  Internet

Il existe de nombreux livres sur Internet, comme en atteste n'importe quel serveur de librairie spécialisée. Nous avons puisé un résumé de l'histoire d'Internet dans le très concis (quoique déjà un peu dépassé) ``Que sais-je ?'' sur le sujet [Duf96].

11.1  Brève histoire

11.1.1  Quelques dates

En 1957, le Department of Defense (DoD américain) crée l'agence ARPA (Advanced Research Projects Agency) avec pour mission de développer les technologies utilisables dans le domaine militaire. En 1962, Paul Baran de la Rand Corporation décrit le principe d'un réseau décentralisé et redondant, dans lequel une panne d'un noeud n'est pas grave, puisque les communications peuvent prendre plusieurs chemins pour arriver à destination. Le réseau est à commutations de paquets, ce qui veut dire que l'information est coupée en morceaux qui sont routés sur le réseau et reconstitués à l'arrivée. Notons que le protocole mis en oeuvre a été inventé par Louis Pouzin (X50) pour le réseau cyclade (CNET/INRIA, avec Hubert Zimmermann -- X61). Le réseau ne demande pas de connections directes entre source et destination, ce qui le rend plus souple d'emploi.

La première mise en oeuvre est réalisée à l'UCLA entre quatre noeuds, puis à Stanford, à l'UCSB, etc. En 1972 est créé l'Inter Network Working Group (INWG) qui doit mettre au point des protocoles de communication entre les différents opérateurs de réseaux. Entre 1972 et 1974 sont spécifiés les premiers protocoles d'Internet comme telnet, ftp, TCP (pour assurer le routage fiable des paquets), suivis ensuite par les normes sur le courrier électronique. Internet s'impose alors peu à peu dans le monde entier. En 1989, Tim Berners-Lee invente le WEB alors qu'il travaille au CERN.

11.1.2  Quelques chiffres

On trouve à l'URL www.isc.org de nombreuses statistiques sur les réseaux. La figure 11.1 montre la croissance du nombre de machines (routables; on ne tient pas compte des machines protégées par un firewall) sur Internet.


Figure 11.1 : Croissance du nombre de machines.


Au 23 mars 2005, il y avait 346126 sous-domaines répertoriés en .fr par l'AFNIC1.

11.1.3  Topologie du réseau

Un utilisateur passe nécessairement par un fournisseur d'accès à Internet (dans le jargon: FAI; en anglais ISP ou Internet Service Provider). Ces fournisseurs régionaux ou nationaux sont interconnectés. Des accords bilatéraux sont généralement signés entre les différents organismes, pour faciliter les échanges entre réseaux distincts, de façon transparente pour l'utilisateur.

Le réseau de recherche français s'appelle Renater2 et la carte de son réseau se trouve à la figure 11.2. La figure 11.3 montre les connections avec l'étranger. Le NIO est un noeud d'interconnection d'opérateurs, le NOC un noeud de coordination de l'opérateur, les NRD des points d'entrées sur le réseau.


Figure 11.2 : Le réseau Renater métropolitain.




Figure 11.3 : Le réseau Renater vers l'extérieur.


11.2  Le protocole IP

11.2.1  Principes généraux

Les machines branchées sur Internet dialoguent grâce au protocole TCP/IP (de l'anglais Transmission Control Protocol / Internet Protocol). L'idée principale est de découper l'information en paquets, transmis par des routeurs, de façon à résister aux pannes (noeuds ou circuits). Chaque ordinateur a un numéro IP, qui lui permet d'être repéré sur le réseau.

Pour le moment (IPv4) les adresses sont sur 32 bits qui sont généralement affichés sous la forme de quatre entiers (entre 0 et 255) en base 10 séparés par des .; à titre d'exemple, la machine sil a 129.104.247.3 pour adresse IP.

On distingue trois classes d'adresses: la classe A permet de référencer 16 millions de machines, cette classe a été affectée aux grands groupes américains; la classe B permet d'adresser 65000 (216) machines; la classe C environ 250 (28). Comme le nombre de numéros est trop faible, la norme IPv6 prévoit un adressage sur 128 bits.

Chaque machine dispose également d'un nom logique de la forme:
nom.domaine.{pays,type}
(par exemple poly.polytechnique.fr) où nom est le nom court de la machine (par exemple poly), domaine est un nom de domaine regroupant par exemple toutes les machines d'un campus (par exemple polytechnique), et le dernier champ est soit le nom du pays sous forme de deux caractères (par exemple fr), comme indiqué dans la norme ISO 3166, soit un grand nom de domaine à la sémantique un peu hégémonique, comme edu ou com. L'organisme InterNIC gère les bases de données d'accès au niveau mondial. Pour la France, l'organisme est l'AFNIC.

La conversion entre noms logiques et adresses IP se fait dans un DNS (Domain Name Server).

11.2.2  À quoi ressemble un paquet ?



Figure 11.4 : Allure d'un paquet IPv4.


En IPv4, il a la forme donné dans la figure 11.4. Les différents champs sont les suivants:
V:
Version (4 ou 6);
HL:
(Header Length) nombre d'octets du header (typiquement 20);
TOS:
(Type Of Service) priorité du paquet (obsolète);
Total Length:
longueur totale du paquet, header compris;
Identification, F(lags), Fragment Offset:
permet la fragmentation et le réassemblage des paquets;
TTL:
(Time To Live) temps de vie d'un paquet (décrémenté de 1 à chaque traitement, perdu si 0);
Protocol:
1 pour ICMP, 6 pour TCP, 17 pour UDP;
Header Checksum:
correction d'erreurs;
Options:
pour le routage, etc.

11.2.3  Principes du routage

Chaque noeud du réseau a un numéro. Les messages circulent dans le réseau, sur chacun est indiqué le numéro du destinataire. Chaque noeud a un certain nombre de voisins. Une table en chaque noeud i indique le voisin j à qui il faut transmettre un message destiné à k.

Cette table se calcule de la façon suivante:

11.3  Le réseau de l'École

L'École possède un réseau de classe B. Le domaine polytechnique.fr contient approximativement 2000 machines. Une carte partielle du réseau est donnée dans la figure 11.5. Tous les liens internes sont à 100 Mbits.

L'X est connecté au réseau RENATER 3 (réseau national pour la recherche) par l'intermédiaire d'une ligne à 34 Mbits, avec un point d'entrée à Jussieu.


Figure 11.5 : Schéma du réseau de l'École.


11.4  Internet est-il un monde sans lois ?

11.4.1  Le mode de fonctionnement d'Internet

L'Internet Society (ISOC, www.isoc.org), créée en 1992, est une ``organisation globale et internationale destinée à promouvoir l'interconnexion ouverte des systèmes et l'Internet''. À sa tête, on trouve le Conseil de Gestion (Board of Trustees) élu par les membres de l'association. Le plus important des comités est l'IAB (Internet Architecture Board), dont le but est de gérer l'évolution des protocoles TCP/IP. Les trois émanations de l'IAB sont l'IANA (Internet Assigned Number Authority) qui gère tous les numéros et codes utilisés sur Internet, l'IETF (Internet Engineering Task Force) qui établit les spécifications et les premières implantations des nouveaux protocoles TCP/IP, sous la direction de l'IESG (Internet Engineering Steering Group), et l'IRTF (Internet Research Task Force) qui prépare les futurs travaux de l'IETF.

Comment fonctionne le processus de normalisation dans le monde de l'IETF ? Un utilisateur lance une idée intéressante et l'IETF démarre un groupe de travail sur le sujet; le groupe de travail met au point un projet de standard et une première implantation, qui sont soumis à l'IESG. En cas d'accord, le protocole devient une proposition de standard (Proposed Standard). Après au moins six mois et deux implantations distinctes et interopérables réussies, le protocole acquiert le statut de Draft Standard. Si de nouvelles implantations sont effectuées à plus grande échelle et après au moins quatre mois, le protocole peut être promu Internet Standard par l'IESG. Tout au long du processus, les documents décrivant le protocole sont accessibles publiquement et gratuitement, sous la forme de RFC (Request For Comments).

11.4.2  Sécurité

Dans IPv4, la partie donnée n'est pas protégée a priori. Tout se passe comme si on envoyait une carte postale avec des données visibles par tout le monde. La solution préconisée pour l'avenir est la norme IPSec, qui décrit par exemple comment établir un tunnel sécurisé entre deux routeurs, grâce auquel les paquets sont chiffrés. Le cours de cryptologie en majeure 2 donne plus d'informations sur ces sujets.

Que se passe-t-il en cas d'attaque (intrusions, virus, etc.) ? Il existe des organismes de surveillance du réseau. Le plus connu est le CERT (www.cert.com), il diffuse des informations sur les attaques et les parades.

11.5  Une application phare: le courrier électronique

11.5.1  Envoi et réception

Que se passe-t-il quand on envoie un courrier électronique à partir de poly ? L'agent de mail (typiquement mozilla, mutt, etc.) fabrique un en-tête pour le message (essentiellement des champs From: et To:) et envoie le tout au programme sendmail qui teste tout de suite si le destinataire est local à la machine, ce qui évite le reste de la procédure. En cas de mail distant, le programme rajoute l'adresse IP de l'expéditeur au message et envoie le tout à la machine x-mailer. Celle-ci essaie de récupérer l'adresse IP du destinataire à partir du nom logique, grâce à une requête au DNS. En cas de succès, le mail est envoyé au noeud suivant du réseau, qui décide quelle est la prochaine machine à utiliser, de façon hiérarchique.

À l'inverse, un courrier électronique adressé à un utilisateur du domaine arrive à la machine x-mailer qui détermine à quelle machine du réseau interne elle doit l'envoyer. Une connection est alors établie entre les deux machines, et le mail arrivant est rajouté à la fin de la boîte aux lettres de l'utilisateur. Sur poly, cette boîte se trouve dans le répertoire /var/spool/mail/<nom><nom> est le nom de login correspondant à l'utilisateur. Il ne reste plus qu'à traiter ce mail à l'aide d'un des nombreux agents de lecture de mail.

La lecture se passe généralement de la façon suivante, quand on lit son courrier à partir d'un PC (en salle machine ou depuis son casert):

L'agent de courrier utilise le protocole POP (Post Office Protocol) pour récupérer la boîte aux lettres distantes sur le serveur. Malheureusement, le mot de passe d'accès passe en clair sur le réseau, ce qui n'est pas optimal. C'est pour cette raison que l'on remplace POP par sa version sécurisée POP3S, qui utilise des protocoles cryptographiques standards à travers SSL (Secure Socket Layer).

11.5.2  Encore plus précisément

Regardons sur un exemple quels sont les principes mis en jeu. Quand Alice envoie un mail à Bob depuis sa machine de numéro IP 129.104.1.1, elle écrit un courriel classique et charge son programme de mail de l'envoyer à Bob (cf. figure 11.6 dans laquelle nous avons omis le corps du message pour préserver l'intimité d'Alice). Après décodage de l'adresse électronique de Bob (typiquement un accès au DNS va donner le numéro IP de la machine de courrier de Bob, ici 133.12.104.12), le programme de courrier (SMTP) passe la main à TCP en lui demandant d'ouvrir une connection entre les deux machines, sur le port 25 de chacune d'elle. Quand la connection est établie, TCP envoie les paquets fournis par SMTP.


Figure 11.6 : Envoi de courriel.


Qu'est-ce qu'un port? C'est simplement un moyen pour la carte réseau (ou une autre interface physique) de dire au système: j'ai reçu des paquets pour un port donné (en fait un entier). Libre au système d'en avertir divers programmes dont on dit qu'ils écoutent sur ce port. L'historique des numéros de port est fascinante. Contentons-nous de donner les numéros les plus classiques, qui sont toujours ceux utilisés par les programmes en question:
Protocole nom complet Port(s)
FTP File Transfer Protocol 21/20
SMTP Simple Mail Transfer Protocol 25
DNS Domain Name System 53
HTTP Hypertext Transfer Protocol 80
NNTP Network News Transfer Protocol 119

11.5.3  Le format des mails

Le format des mails est décrit dans le RFC 822 daté de 1982. La structure est la suivante:
En-tête:
donne les informations sur l'expéditeur, le destinataire, la date d'envoi, etc.;
Ligne blanche
;
Corps du message:
suite de lignes contenant la partie intéressante du message.
Les attachements sont des ajouts récents, provenant essentiellement du monde non Unix. Ils permettent d'envoyer en un seul paquet des messages multi-médias. Leur utilisation précise est spécifiée dans le protocole MIME (RFC 1521 de 1993), à quoi il faut ajouter les RFC concernant le transfert de données binaires (RFC 1652, 1869). On trouvera à la figure 11.7 un mail tel qu'il est stocké dans une boîte aux lettres UNIX avant traitement par le lecteur de mail.


Figure 11.7 : Allure d'un courrier électronique.



1
www.afnic.fr
2
www.renater.fr

Précédent Remonter Suivant