Cours d’introduction à TCP/IP (complet)

Cours d’introduction à TCP/IP (complet)
...
- Historique & applications de TCP/IP
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.
Les premières implémentations ont été réalisées au début des années 1980 . Elles introduisaient les notions de : couches de communication. Le protocole TCP/IP ne respecte pas totalement la norme OSI.
1.1. Les atouts TCP/IP
Les spécifications sont du domaine public, et elles sont facilement accessibles à tous, 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 ().
Diversité technologique : il est disponible sur la plupart des plates-formes matérielles et systèmes d'exploitation, de l'ordinateur personnel (PC ou Mac) au plus gros calculateur vectoriel (Cray, ... ).
Adaptabilité technique : 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).
Diversité logicielle : De très nombreux logiciels ont été développés sur TCP/IP.

…
1.2. Quelles applications ?
- http : c'est protocole du World Wide Web
- telnet : connexion à distance
- ftp ( File Transfert Protocol) : transfert de fichier
- smtp et pop3 (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.
1.3. Protocole, pilote, interface
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 la "pile TCP/IP", qui est un logiciel système inclus dans le système d'exploitation
1.4. Version de IP
On utilise actuellement la version 4 de TCP/IP (dite : ipv4), et on passera progressivement à la version 6 (dite : ipv6) dans les années à venir.
1.5. Place dans le modèle OSI
IP se situe au niveau 3 du modèle OSI : la couche "Réseau"

Sur la même couche, on trouve des protocoles de la famille TCP/IP comme ARP, ICMP ou IGMP
TCP est situé au niveau 4 : la couche "transport".
- A quoi servent les protocoles TCP et IP ?
PROBLÈME : comment trouver le chemin vers la machine destinataire d'un message circulant sur internet ?
➔ l' adresse MAC de la carte réseau n'est pas suffisante car elle ne donne aucune indication sur le réseau dont fait partie la machine : on est limité au réseau local;
➔ RÉPONSE : Il faut une adresse qui identifie le réseau dont elle fait partie, et son emplacement géographique
➔ le protocole IP attribue une adresse de type : réseau.machine à chaque poste informatique.
➔ l'adresse IP permet d'identifier le réseau destinataire d'un message, et donc son emplacement géographique.
➔ Conclusion : le protocole IP a pour rôle d'identifier la source et le destinataire d'une trame et de fournir une route pour son acheminement. (fonction de routage)
Oui, mais : sur la machine destinataire peuvent tourner plusieurs logiciels; par exemple « Internet Explorer » pour naviguer sur le Web et « Outlook Express » pour le courrier électronique.

➔ PROBLÈME : comment le système d'exploitation va-t-il savoir à quelle application sont destinées les données reçues ?
➔ RÉPONSE : le protocole TCP rajoute à la trame un numéro standard (appelé « port TCP ») qui désigne l' application destinataire des données (par exemple : le port 80 désigne le service web/http)
➔ Un socket est une adresse réseau constituée par la concaténation d'une adresse Internet avec un numéro de port
TCP (ex : 192.168.1.2:80).
« Well known ports »
...
Pourquoi utiliser TCP/IP dans le réseau local ?
Nous avons vu précédemment que les adresses MAC suffisent pour identifier le destinataire et router un message dans le réseau local. Mais TCP/IP reste nécessaire pour les raisons suivantes :
- IP étant compatible avec toutes les normes de réseau physique, il est moins couteux de développer un logiciel IP que de développer un logiciel pour chaque type de réseau physique. C'est pourquoi la plupart des logiciels ne gèrent que les adresses IP (donc pas les adresses MAC).*

- TCP, qui est le complément indissociable d'IP, reste indispensable pour connecter les logiciels clients et serveur (end-to-end), grâce aux numéros de ports associés.
- De ce fait, les systèmes d'exploitation (Windows, MACOS ou Linux) sont conçus avec les couches IP et TCP intégrée en standard
* pour des raisons de sécurité ou autre, certains matériels et/ou logiciels peuvent n'employer que les adresses MAC; l'accès n'est alors possible que depuis le réseau local; l'exploitation se fait via un logiciel spécifique.
- Analyse du protocole IP (Internet Protocol)
L'adresse IP d'une machine est une adresse de niveau réseau codée sur 32 bits ( ie 4 octets en IPv4) 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
3.1. Structure d'une adresse IP
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). L'adresse ip = adresse de réseau + adresse de machine.
Les réseaux TCP/IP sont rangés en 3 classes A, B ou C :
- 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.
... ... ...
3.4. Les domaines et les noms de machine
Il est peu commode de désigner une machine par son adresse IP.
➔ L'utilisateur « humain » utilise un nom qui se présente sous la forme : nom_machine.domaine.TLD. note : TLD = "Top Level Domain"
Malgré tout, c'est l'adresse IP chiffrée qui est utilisée en interne dans les paquets au cours des échanges. Il faut donc un mécanisme qui permette de traduire le nom_machine en adresse IP.
➔ Des ordinateurs appelés « Serveurs de noms » ou « DNS » se chargent de cette traduction
3.5. La fonction de routage

Les réseaux IP sont interconnectés par des « routeurs » IP (parfois appelés « passerelles »). Chaque station IP doit connaître le routeur par lequel il faut sortir pour pouvoir atteindre un réseau extérieur, appelée "passerelle par défaut".
Un routeur dispose de plusieurs interfaces réseau et contient une table qui lui indique sur quelle interface tel ou tel réseau est relié. Il oriente donc physiquement la trame vers la bonne route!
Exemple :
- Réseau 1 --> Interface Ethernet 1
- Réseau 2 --> Interface Ethernet 2
- Autres réseau --> Interface Modem
Les tables de routage peuvent être statiques (ce qui signifie que ces informations sont rentrées manuellement par un technicien), ou dynamiques (ce qui signifie qu'elle sont renseignées par un protocole de routage).
Les protocole d'échange dynamique des tables IP ou protocole de routage sont par exemple : RIP ( Routing
Information Protocol), le protocole OSPF, ou EIGRP.
Note : Il arrive aussi qu'on segmente parfois les grands réseaux locaux avec des routeurs pour créer des "domaines de diffusion"; cela permet de limiter le traffic de broadcast (diffusion); et donc de préserver la bande passante du réseau (meilleure performances)
3.6. Les masques de (sous-)réseau
Les masques de réseau

Pour que le réseau Internet puisse router (acheminer) les paquets de données, il faut qu’il connaisse l’adresse IP du réseau local de destination. Pour la calculer à partir de l’adresse IP de destination, on utilise le masque de sous réseau.
A chaque classe d’adresses est associé un masque de réseau, ou netmask, qui est constitué de 32 bits. Le tableau suivant fournit les différents masques pour les trois classes traditionnelles.
Classe Masque
A 255. 0. 0. 0
B 255. 255. 0. 0
C 255. 255. 255. 0
Un « ET » logique appliqué entre le masque de réseau et l’adresse IP permet d’obtenir l’adresse d’un réseau correspondant.
Calcul de l’adresse réseau en décimal
@ IP 193 252 19 3

Masque Réseau 255 255 255 0
@ Réseau 193 252 19 0
Calcul de l’adresse réseau en binaire
@ IP 1100 0001 1111 1100 0001 0011 0000 0011
Masque Réseau 1111 1111 1111 1111 1111 1111 0000 0000
@ Réseau 1100 0001 1111 1100 0001 0011 0000 0000
Ainsi, à l’aide du masque de réseau, on peut définir, pour toute adresse IP :
L’adresse réseau associée, la partie hôte associée, l’adresse de diffusion associée qui désigne tous les hôtes de ce réseau.
Le tableau suivant fournit ces informations pour trois adresses IP prises parmi les trois classes fondamentales.
