Les réseaux IP pour les nuls

Le protocole Internet est intimement lié à Linux. Dans cette première partie, nous rappelons brièvement l'histoire des réseaux à commutation de paquets puis détaillons les principales caractéristiques d'IP version 4.

Guerre froide

Bouclez la ceinture de votre chronoscaphe. Retour en 1962. L'Union Soviétique souhaite implanter des missiles nucléaires à Cuba. Dans ce contexte tendu, les Etats-Unis financent des projets de recherche visant au déploiement de réseaux de communication capables de fonctionner en cas d'endommagement partiel. Le schéma suivant présente trois topologies classiques :

Reseaux centralises, en etoile, distribue

Réseaux centralisés, en étoile, distribués


Les données de réseaux centralisés et en étoile transitent par un nombre restreint de noeuds privilégiés. Leur indisponibilité interdit toute communication globale.

Commutation de circuits

Ce modèle hérite de techniques remontant à l'invention du téléphone. La question s'est posée très tôt de la manière de mettre en relation n abonnés. Dans l'idéal, une ligne relie directement chaque paire d'abonnés. Un calcul rapide établit qu'un tel câblage nécessite L lignes avec

      n * (n -1)
L = ______________
          2

Une interconnexion complète est pratiquement impossible. Il faudrait 1 million de lignes pour relier seulement 1 500 abonnés. Les centraux téléphoniques assurent au plus m communications simultanées, m << n. M est choisi en fonction du trafic estimé. A l'origine, des opératrices raccordaient manuellement les abonnés. Les autocummutateurs électromécaniques puis électroniques prirent progressivement le relais. Mais le principe reste identique : établir un circuit électrique entre les abonnés.

Commutation de paquets

Août 1964. Sous l'égide de l'US Air Force, Paul Baran publie un mémorandum intitulé "Introduction aux réseaux de communication distribués". Ce document jette les bases des réseaux informatiques modernes. Le paquet numérique de données devient l'unité des échanges. Ces paquets circulent indépendamment sur les réseaux, plusieurs chemins menant généralement d'une source à une destination. Le calcul de la route est de la responsabilité des équipements intermédiaires : les routeurs. Les paquets sont regroupés par le destinataire. Cette approche présente plusieurs avantages. Le délai d'obtention de la ligne disparaît. Il devient possible d'équilibrer le trafic entre plusieurs routes, ou de contourner une route temporairement indisponible. Cependant, le temps de calcul des routes dépasse le plus souvent largement le temps de propagation du signal. Une situation pénalisante lors du transport de données de type voix (les réseaux virtuels de type ATM résolvent en partie ce problème).

Arpanet

1969. L'ARPA (Advanced Research Project Agency) finance la création d'un réseau à commutation de paquets expérimental : ARPANET. Il deviendra opérationnel en 1975.

IP

En 1983, un grand pas est franchi avec l'implémentation de TCP/IP dans la version Berkeley d'Unix (BSD). Cette norme ouverte mettra une dizaine d'années à s'imposer.

Adresses IP

Une adresse IP identifie une machine d'un réseau. Une adresse IP publique est globalement unique. Chaque adresse est codée sur 32 bits et représentée sous la forme d'un quadruplet d'entiers dans l'intervalle [0..255]. Soit un total de 4.3 milliards de combinaisons (2^32).

Representation adresse IP

Représentation adresse IP


Les réseaux communiquent par le biais de plates-formes d'échanges : les dorsales.

Le processus de décision du chemin des paquets porte le nom de routage. Des tables contiennent les informations nécessaires à l'aiguillage statique ou calculé dynamiquement. Comme on ne peut envisager d'ajouter une entrée pour chacune des machines de l'Internet, on procède à l'agrégation des adresses. On introduit à cet effet la notion de préfixe réseau. N des bits les plus à gauche de chaque adresse identifient un unique réseau. 3 classes principales de réseaux couvrent une vaste gamme de besoins, de l'intranet à l'infrastructure complexe d'un FAI. Dans la suite, nous noterons A/n les n bits de plus fort poids (les plus à gauche) d'une adresse A.

Classe

Préfixe

Bits réseau

Adresses

A 0 8 0.*.*.* à 127.*.*.*
B 10 16 128.0.*.* à 191.255.*.*
C 110 24 192.0.0.* à 223.255.255.*

Chaque réseau de classe A dispose de 16.7 millions d'adresses. Ce nombre tombe à 65536 pour les réseaux de classe B et à 256 pour les réseaux de classe C.

Protocole IP

Un protocole informatique normalise les échanges d'information entre des systèmes physiques hétérogènes. Les protocoles de communication sont organisés en couches successives reliées par des interfaces. Cette approche rend possible la programmation de piles de protocoles complexes.

Les couches IP

Les couches IP


Nous passons par abstractions successives du médium physique (Ethernet, Token Ring ...) aux applications (messagerie, web ...).

Modèle client / serveur

Le protocole IP gère la communication entre applications sur le mode client/serveur. Une machine A met à disposition des ressources. Une machine B accède à ces ressources.

Modele client/serveur

Modèle client/serveur

Ports de communication

Un service met en relation deux machines à un instant t. Plusieurs transactions peuvent avoir lieu simultanément. Dans ce but, IP introduit la notion de port. Les ports sont numérotés de 0 à 65535. Une adresse IP et un port identifient un côté de la connexion. On parle de socket. Deux sockets caractérisent complètement la connexion. Une bibliothèque C relativement normalisée facilite la programmation de logiciels exploitant IP.

Well Known Services

Par convention, les services Internet les plus connus sont attachés à des ports fixes dans l'intervalle [0..1023

Port

Service

Fonction (exemple)

25 SMTP Envoi de courrier relayé par votre FAI
80 HTTP Consultation de sites web
110 POP3 Récupération du courrier hébergé par votre FAI
119 NNTP Consultation de forums de discussion

Ces ports sont mentionnés par exemple dans les modules de configuration de Kmail, Krn, Netscape Communicator ...

Couche IP

La couche IP gère la transmission de paquets d'un émetteur A à un destinataire B sans garantie d'acheminement ou d'ordre. Par contre, elle opère le fractionnement des paquets en unités de petite taille, ce en accord avec la capacité des supports physiques rencontrés.

Paquet IP

Paquet IP


Les couches de plus haut niveau s'appuient sur la couche IP pour le transport. En clair, les paquets des couches supérieures sont encapsulés dans des paquets IP.

Encapsulation IP

Encapsulation IP

Couche ICMP

La couche ICMP (Internet Control Message Protocol) fournit des messages de contrôle et d'information aidant à la synchronisation du réseau. Plusieurs outils utilisent ICMP. C'est le cas de la commande ping qui permet de vérifier l'activité des équipements. Vérifiez que le paquetage tcpdump est présent sur votre système. Installez-le si nécessaire. Sous Red Hat :

rpm -ivh tcpdump-3.6.2-1.i386.rpm

Nous supposons que vous disposez d'un accès Internet correctement configuré. Ouvrez deux fenêtres Xterm. Connectez-vous à Internet. Dans la première fenêtre, lancez

tcpdump -i <interface>

<interface> vaut ppp0 pour une liaison modem analogique. Dans la seconde fenêtre, lancez

ping 212.198.253.142

Vous obtenez le résultat suivant

PING 212.198.253.142 (212.198.253.142): 56 data bytes
64 bytes from 212.198.253.142: icmp_seq=0 ttl=51 time=205.1 ms

18:04:17.378349 212.83.146.178 > 212.198.253.142: icmp: echo request
18:04:17.570056 212.193.253.142 > 212.83.146.178: icmp: echo reply

Vous visualisez les paquets échangés avec le serveur de Linux Pratique.

Couche UDP

La couche UDP sert à l'émission rapide de paquets. Elle ne garantit pas leur acheminement. On l'utilise lorsque la perte de données n'est pas critique, par exemple pour la supervision de réseaux.

Couche TCP

La couche TCP assure la réception correcte et ordonnée des paquets. Il s'agit d'un protocole fiable en mode connecté. Deux machines impliquées dans un échange établissent une connexion au moyen d'un échange initial en 3 étapes. On parle de poignée de mains (handshake).

Reprenons l'exemple du site web de Linux Pratique. Ouvrons une connexion sur le port 80

telnet 212.198.253.142 80

Vous obtenez le résultat suivant

18:24:43.476047 212.83.140.26.1431 > 212.198.253.142.www: tcp 0
18:24:43.750049 212.198.253.142.www > 212.83.140.26.1431: tcp 0
18:24:43.760250 212.83.140.26.1431 > 212.198.253.142.www: tcp 0

Prochainement

Dans une deuxième partie, nous aborderons la configuration d'une station Linux.

En ligne

Musée des télécoms
An atlas of cyerspace

Cyril Nocton
Linux Magazine France n°24 - Janvier 2001