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 :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 avecn * (n -1) L = ______________ 2Une 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).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.* |
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.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.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..1023Port | 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 |
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.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.
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.rpmNous 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.142Vous 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 replyVous 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 80Vous 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
0 commentaires:
Enregistrer un commentaire