|
Historique:
TCP/IP:
Transmission Control Protocol/ Internet Protocol
Ce
protocole de communication a été mis au point à partir
d’une étude commandée au début des années 1970 par le
DARPA (Defense Advanced Project Research Agency) dépendant du
DoD (Department of Defense) Américain. L’objectif était de
mettre au point un protocole de communication permettant
d’interconnecter les ordinateurs de toutes marques dont
disposait l’armée des US.
Premières
implémentations au début des années 1980 . Elles
introduisaient les notions de couches de communication
Le
protocole TCP/IP n’est pas
normalisé OSI, même
si aujourd’hui il est largement plus utilisé que le
protocole OSI.
Principales raisons du succès de TCP/IP:
·
il est intégré dans les systèmes Unix ce qui
en a assuré une grande diffusion.
·
les spécifications sont du domaine public, et
elles sont facilement accessibles sur des serveurs de fichiers
internationaux, ce qui a permis de nombreux développements
dans les milieux universitaires et de la recherche. Les spécifications
sont fournies sous la forme de RFC (Request for Comments)
·
il est maintenant disponible sur la plupart des
plates-formes matérielles et systèmes d’exploitation (il
est même de plus en plus souvent livré avec le système) de
l’ordinateur personnel (PC ou Mac) au plus gros calculateur
vectoriel (Cray, ...)
·
il est utilisable sur la plupart des réseaux
physiques ( Ethernet 802.3 , Token Ring 802.5, liaisons séries
) et même à travers d’autres réseaux publics ( X25, Numéris)
·
de très nombreux logiciels ont été développés
sur TCP/IP, qu’ils soient du domaine public ou vendus par
des sociétés spécialisées.
Les
couches IP et TCP:
LA “ PILE ” TCP/IP
Ce modèle en 4 couches est parfois appelé "modèle
DOD"
Les principaux composants de la pile TCP-IP sont les
suivants:
·
IP (Internet Protocol) : C’est un protocole de
niveau 3. Il assure le transfert des paquets TCP/IP sur le réseau
local, et avec les réseaux extérieurs via des « routeurs ».
Le protocole IP travaille en mode non connecté, c’est-à-dire
que les paquets émis par le niveau 3 sont acheminés de manière
autonome (datagrammes), sans garantie de livraison.
·
ARP ( Address Resolution Protocol) : Protocole
qui permet d’associer l’adresse de niveau 3 (ie @ip) à
une adresse de niveau 2 (par ex Ethernet)
·
ICMP ( Internet Control and error Message
Protocol) : Utilisé pour les tests et les diagnostics
·
TCP (Transport Control Protocol) : Protocole de
niveau 4 qui fonctionne en mode connecté. Sur une connexion
TCP entre deux machines du réseau, les messages (ou paquets
TCP) sont acquittés et délivrés en séquence.
·
UDP ( User Datagram Protocol) : Protocole de
niveau 4 en mode non connecté : les messages (ou paquets UDP)
sont transmis de manière autonome.
Quelques
applications utilisées en environnement TCP-IP sont les
suivants:
·
r-commands: (ou remote commandes) : exécution
d’une commande à distance sur une autre machine du réseau
local
·
telnet : connexion interactive
·
ftp (
File Transfert Protocol) : transfert de fichiers
·
smtp (Simple Mail Tranfert Protocol) :
messagerie
·
nfs : (Network File System): système de
fichiers répartis
Sur
un même réseau physique (Ethernet par exemple) le protocole
TCP/IP peut cohabiter avec d’autres protocoles de niveau 3 .
Pour cela dans la trame de niveau 2 un champ identifie le type
de protocole de niveau 3.
Plusieurs
protocoles peuvent même cohabiter sur une même machine: le
niveau 2 est géré par le pilote (driver) de la carte
(Ethernet par ex), au dessus duquel il y a plusieurs « piles »
de niveau supérieur. Le paquet extrait de la trame est
transmis à la pile correspondant au type de protocole (cf
notion de SAP -Service Access Point - du modèle OSI).
LES ADRESSES TCP/IP:
L’adresse TCP/IP d’une machine est une adresse de
niveau réseau codée sur 32 bits ( ie 4 octets) qui est en général
notée sous la forme de 4 chiffres séparés par des points.
On parle de notation en décimal pointé. Chaque champ, qui
représente un octet, peut prendre des valeurs entre 0 et 255
Exemple : 192.93.116.3
L’adresse IP est constituée d’un champ numéro
de réseau (1,2 ou 3 octets) et d’un champ numéro de
machine dans le réseau ( 3,2 ou 1 octets)
@ip = #réseau +
#machine
#réseau : attribué par un organisme officiel
: le NIC aux US (ou ses représentants)
#machine attribué localement par le gestionnaire
du réseau (nota: il est possible de découper le champ de
droite en sous-réseau+machine
Les réseaux TCP/IP sont rangés en 3
classes A, B ou C en fonction de la taille du champ numéro
de réseau:
classe
A : 1 à 127
.X.X.X
classe
B : 128 à 191
.X.X.X
classe
C : 192 à 223
.X.X.X
( les adresses >223 sont réservées à d’autres
usages)

Le nombre de machines dans le réseau dépend donc de
la classe du réseau. Chaque octet du champ machine peut
prendre des valeurs entre 1 et 254.
Les valeurs 0 (tous les bits à 0) et 255 (tous les
bits à 1) sont réservées:
- un champ machine tout à 0 sert à désigner le numéro
de réseau (notamment pour le routage)
- un champ tout à 1 indique un message de broadcast
adressé à toutes les machines IP du réseau.
Sur les fichiers de configuration on a un masque réseau
(netmask) qui, associé à l’adresse IP,
indique le champ à prendre en compte pour
#réseau (bits à 1) , et celui à prendre en compte pour #machine
(bits à 0).
ex:
dans un réseau de classe A sans sous-réseau : netmask=255.0.0.0
Les adresses réservées:
0.0.0.0
est réservée pour la route par défaut. Tous les
paquets destinés à un réseau inconnu, seront dirigés vers
cette route.
127.0.0.0 est réservée au trafic IP de la machine locale. Une interface
locale porte en générale l'adresse 127.0.0.1 appelée
adresse de "loopback".
Certaines
adresses peuvent également être librement utilisées pour
monter un réseau privé:
A
10.0.0.0
B
172.16.0.0
à
172.31.0.0
C
192.168.0.0
à
192.168.255.0
Aucun paquet
provenant de ces réseaux ou à destination de ces réseaux,
ne sera routé sur l'internet.
LE PROTOCOLE ARP sur ETHERNET:
L’adresse Ethernet est une adresse unique sur 48 bits
(6 octets) associée à la carte Ethernet.
Lorsqu’un
noeud N1 du réseau TCP/IP X1.X1.X1.X1 veut émettre un paquet
TCP/IP (dans une trame Ethernet) vers une machine N2
d’adresse IP (X2.X2.X2.X2), il faut qu’il connaisse
l’adresse Ethernet (E2.E2.E2.E2.E2.E2).
Pour réaliser l’association @ip
/ @ Ethernet l’émetteur N1 utilise le protocole ARP
dont le principe est le suivant :
L’émetteur
envoie une trame Ethernet de broadcast (ie
@destinataire toute à 1) contenant un message ARP demandant
« qui est X2.X2.X2.X2 ? «

Toutes les
machines IP du réseau local reçoivent la requête. N2 qui
a l’adresse X2.X2.X2.X2 se reconnaît, et elle répond
à N1 ie X1.X1.X1.X1
(ds une trame destinée à E1.E1.E1.E1.E1.E1)

Chaque machine
maintient en mémoire une table cachée de correspondances @ip / @ Ethernet pour éviter trop de requêtes ARP . Chaque entrée
de la table à une durée de vie limitée.
Voici pour
exemple ce que donne le programme tcpdump avec la commande
"ping 192.168.1.2' à partir de la machine uranus alors
que la table arp de l'hôte uranus est vide:
13:17:14.490500
arp who-has 192.168.1.2 tell uranus.planete.net
13:17:14.490500
arp reply 192.168.1.2 is-at 0:40:33:2d:b5:dd
13:17:14.490500
uranus.planete.net > 192.168.1.2: icmp: echo request
13:17:14.490500
192.168.1.2 > uranus.planete.net: icmp: echo reply
13:17:15.500500
uranus.planete.net > 192.168.1.2: icmp: echo request
13:17:15.500500
192.168.1.2 > uranus.planete.net: icmp: echo reply
Explications:
Ligne 1 uranus
demande qui est 192.168.1.2 (requête ARP) Le paquet est
diffusé à tous les hôtes du réseau.
Ligne 2 réponse
ARP: je suis à l'adresse Ethernet 00:40:33:2d:b5:dd
Lignes 3 à 6
: Echanges de paquets ICMP entre les 2 hôtes.
Les domaines et les noms demachines:
Il est peu
commode de désigner une machine par son adresse IP. On peut
aussi utiliser un nom qui se présente en général sous la
forme
nom_machine (ex uranus)
ou
nom_machine.sous_domaine.domaine
(ex : uranus.toubet.edu)
Mais c’est
quand même l’adresse IP qui est utilisée en interne dans
les paquets au cours des échanges. Pour cela il faut un mécanisme
qui permette de traduire le nom_machine en adresse IP.
Deux solutions
sont utilisées :
noms locaux
:Sur chaque machine on crée un fichier qui contient la table
de correspondance nom_machine --> @ip (par ex le fichier
/etc/hosts sur un système Unix)
serveurs de noms:
pour chaque domaine (par ex toubet.edu) une machine serveur de
noms (serveur DNS) contient l’annuaire des machines du
domaine. Les machines des utilisateurs sont configurées pour
interroger le serveur. Il y a en général plusieurs serveurs
DNS pour un même domaine au cas ou le serveur primaire
tomberait en panne
Il est également possible de combiner les deux
solutions.
Les « passerelles » ou routeurs TCP/IP:
Les réseaux
IP sont interconnectés par des routeurs IP de niveau 3 (appelés
abusivement en terminologie IP des gateways ou passerelles)
Chaque station
IP doit connaître le routeur par lequel il faut sortir pour
pouvoir atteindre un réseau extérieur, c’est-à-dire avoir
en mémoire une table des réseaux et des routeurs

Réseau 1 --> Routeur 1
Réseau 2 --> Routeur 1
......
Réseau n --> Routeur p
Les tables de
routage peuvent être statiques dans le cas de réseaux
simples, ou dynamiques dans le cas de réseaux maillés
Le protocole
d’échange dynamique des tables IP sur un réseau local est RIP
( Routing Information Protocol) ou le protocole OSPF.
|