Page créée le 08 février 2008

TCP/IP

Transmission de données, une première approche simpliste.
En partant de zéro, cette approche simpliste, pourra aider à la compréhension de ce qui suivra dans les chapitres suivants en esquissant les principales étapes.
La raison d'être d'un réseau informatique est le transmission de données. Grossièrement, comment ces données vont-elles d'un ordinateur à un autre ?
- La première chose c'est l'utilisation d'un langage commun pour pouvoir communiquer.
- Lorsqu'un utilisateur veut envoyer ou recevoir un fichier, il passe par un logiciel d'application (navigateur Web, messagerie électronique, etc.). Ce logiciel met un en-tête aux données pour spécifier quel protocole utilise le logiciel (http pour navigateur Web, smtp pour envoie de courrier électronique), pour que les données arrivant sur l'autre ordinateur arrive sur la bonne application (il peut y avoir plusieurs applications en cours).
- Les données pour pouvoir circuler sur le réseau ne peuvent pas dépasser une certaine taille ce qui fait qu'en général, le fichier est fragmenté en paquets. Celà se passe au niveau du système d'exploitation. Là encore, chaque paquet recevra un autre en-tête qui mentionne le protocole de fragmentation et le nº de paquet pour que l'autre ordinateur puisse reconstituer le fichier.
- Les données ne sont toujours pas parties. Il faut avant qu'on leur donne l'adresse de l'autre ordinateur. Comme pour les étapes précédentes, le protocole chargé de ce travail rajoute un en-tête aux données.
- Etape ultime pour que ces données puissent maintenant circuler sur le réseau et partir à l'autre ordinateur, convertir les données se présentant en suites de bits, en signaux physiques pour pouvoir circuler sur un support physique (câble de cuivre, fibre optique, ondes radio, etc.).
- Pour aller d'un ordinateur à l'autre sur Internet qui est un réseau maillé, les paquets de données vont passer par des routeurs qui en fonction de l'adresse qui a été mise sur les paquets pourront les rediriger vers le bon ordinateur.
- Les données à réception sur l'autre ordinateur vont subir les mêmes étapes qu'à l'expédition dans l'ordre chronologique inverse. Celà sera également transparent pour l'autre utilisateur qui enfin pourra voir le fichier!
En fait, à la vitesse d'exploitation des ordinateurs et de la transmission des données, toutes ces étapes sont imperceptibles et instantanées.

Transmission de données, de plus près.
Dans un réseau informatique, lorsqu’un ordinateur envoie des informations à un autre, les matériels et les logiciels sont en général différents. On a donc besoin d’un ensemble de règles pour coordonner l’échange de ces informations. Celles-ci forment un protocole.
Il y a des protocoles entièrement logiciels, des protocoles basés sur du matériel et des protocoles mixtes.
Sur Internet, ce qui rend possible l'interconnexion de tous ces réseaux et la communication entre ces différents équipements, c'est l'utilisation d' un langage de communication commun. Ce langage, s'appelle TCP/IP et est utilisé par toutes les stations de travail ainsi que tous les équipements réseau comme les routeurs.
TCP/IP, devenu le standard sur Internet, désigne un ensemble de protocoles sur lequel sont construites de nombreuses applications. Son nom vient des deux principaux protocoles : TCP (responsable de la connexion) et surtout IP (chargé de l'adressage, IP donne une adresse unique à chaque utilisateur du réseau Internet appelée « adresse IP »).

Pourquoi un ensemble de protocoles ?
Etant donné le nombre d'applications, de matériels différents, il est impossible d'écrire un programme qui fournisse toutes les fonctions de communication.
C'est pourquoi une architecture réseau est composée d'une suite de protocoles regroupés par fonctionnalité. Un groupe traite du transport des données, un autre de l’empaquetage des messages, un autre des applications utilisateur, etc. Ces groupes sont appelés couches et forme la pile réseau.
Ces couches sont censées être indépendantes les unes des autres. Ceci est vrai d'un point de vue programmation. Cependant, pour la transmission des données, les couches sont étroitement liées par leurs interfaces.

Caractéristiques des modèles en couches
- Ordre des couches : pour un modèle donné en n couches, la couche 1 sera la plus près du matériel (carte réseau par exemple), la couche n étant la couche application.
- Chaque protocole encapsule les donnés du niveau supérieur en y ajoutant un en-tête. Ce qui donne le schéma ci-dessous.

Niveau application En-tête n
Données
Au niveau du protocole application, les données de l'utilisateur sont encapsulées avec un en-tête de niveau n pour former un paquet de niveau n.

Niveau n-1 En-tête n-1
En-tête nDonnées
Au niveau n-1, le paquet de niveau n est encapsulé par le protocole de niveau n-1 avec un en-tête n-1 pour former un nouveau paquet de niveau n-1, et ainsi de suite jusqu'au niveau 1.

Niveau 1 En-tête 1
 . . . En-tête n-1En-tête nDonnées
Au niveau 1, on obtient un paquet de niveau 1.

L’intérêt des modèles en couches est, qu’à chaque niveau, il n’est pas besoin de passer en revue l’ensemble des en-têtes mais uniquement celui du niveau correspondant.
D'où également le nom de pile réseau. On considère qu'à la transmission, les en-têtes des niveaux n à 1 sont empilés sur les données et qu'à la réception, elles sont dépilées.

Intérêts des modèles en couches
- Les protocoles peuvent être développés indépendamment les uns des autres.
- Les matériels actifs du réseau n’ont à considérer que les niveaux les plus bas. Par exemple, un routeur ne considèrera que les en-têtes des couches les plus basses pour obtenir l’adresse de destination.

Schéma illustrant la pile réseau
TCP/IP

TCP/IP et OSI
Deux modèles ont été développés en parallèle. Le modèle OSI (par l’organisme de standardisation international ISO) et la suite TCP/IP (d’après le nom de deux des protocoles de la suite).
TCP/IP est devenu le standard. Il est quand même intéressant de connaître le modèle OSI, pratiquement abandonné, car les deux couches les plus basses ne sont pas prises en considération par TCP/IP, ce qui a conduit à un modèle mixte.

Correspondance des couches de la suite TCP/IP et modèle ISO
TCP/IP

  • Couche physique : contrôle la transmission des différents bits via un support physique. C’est dans cette couche qu’on s’occupe de la façon dont les suites de bits sont converties en signaux physiques et transmises via un support physique (câble de cuivre, fibre optique, radio, etc.)
  • Couche liaison : chargée de la transmission correcte des données d’un point du réseau à un autre relié directement à lui via un support physique.
  • Couche Internet : est principalement chargée de de router les paquets IP de l’expéditeur au destinataire à travers le réseau.
  • Couche transport : se charge du multiplexage (lors de l’envoi) et du démultiplexage (lors de la réception), c’est-à-dire de distribuer aux différentes applications les paquets arrivés sans encombre.
  • Couche application : est l’interface utilisateur vers les applications telles que navigateur Web, courrier électronique, etc.

Nom des données dans TCP/IP
Les données encapsulées s'appellent différemment suivant les couches.

ApplicationMessage 
TransportSegment
Datagramme
dans le cas connecté
dans le cas non connecté
RéseauPaquet 
AccèsTrame 

Protocoles de la suite TCP/IP
Ci-dessous une représentation du modèle TCP/IP

TCP/IP

Protocoles de la couche accès réseau
L’architecture TCP/IP proprement dite ne s’occupe ni de la couche physique, ni de la couche liaison.
Les cartes réseau et leurs pilotes se trouvent sous la couche Internet.
Pour TCP/IP au sens étendu, les protocoles des couches physique et de liaison sont fortement liés : ils forment la couche d’accès.
Il s’agit des protocoles Ethernet et Token Ring pour les réseaux à diffusion, PPP (pour Point-to-Point Protocol) pour les réseaux point à point et SLIP (pour Serial Line Internet Protocol) pour les liaisons série (par modem ou par RNIS, numeris en France).
Chacun de ces protocoles possède une partie qui dépend du support, et donc de la couche physique. Par exemple, Ethernet possède des protocoles pour les paires torsadées, pour les câbles coaxiaux, pour les fibres optiques, et ainsi de suite.

Protocoles de la couche Internet

  • Le protocole principal IP (pour Internet Protocol) est chargé de l'adressage des paquets. Il utilise un systè d’adresses uniques, appelées adresses IP, pour chaque composant du réseau afin de déterminer le routage et garantir la destination.
  • Le protocole ICMP (pour Internet Control Message Protocol) est chargé de vérifier l’état des composants sur un réseau et de générer des messages sur ces états. Peut également générer des messages d'erreur en cas de dysfonctionnement d'une machine (par exemple lorsque IP ne peut pas transmettre un paquet à destination).
    ICMP repose sur IP dans la mesure où les messages sont envoyé via IP. On l'utilise directement à travers le service ping.

Protocoles de la couche transport

  • TCP (pour Transmission Control Protocol) est un protocole orienté connexion qui permet un transfert fiable des données.
    Son rôle est de fragmenter le message à transmettre de manière à pouvoir le faire passer sur la couche internet. A l'inverse, sur la machine réceptrice, TCP replace dans l'ordre les fragments transmis sur la couche internet pour reconstruire le message initial et contrôle qu'il n'y a pas d'erreurs.
    TCP contrôle également le flux de la connexion.
  • UDP est un protocole plus simple que TCP. Il est non fiable et sans connexion.

Protocoles application
Des applications s'appuient sur TCP (comme HTTP, FTP par exemple), d'autres s'appuient sur UDP (DHCP par exemple) mais certaines peuvent s'appuyer au choix sur les deux (exemple : DNS).

Notes
- Pris sur http://fplanque.net/Blog/devblog/1995/03/01/protocoles_reseau_tcp_ip : Les autres couches lui donnent un bloc de données binaires et une adresse IP de destination.par exemple 194.2.145.155: il en résulte un paquet de données. Tout ce que sait faire IP est d'acheminer ce paquet vers la machine de destination. Sachant que cette machine de destination peut se trouver n'importe où dans le monde et que IP y arrive à tous les coups.
Au dessus de IP, il y a principalement TCP. TCP reçoit des données d'une autre couche encore plus évoluée. TCP découpe ces données en paquets et les transmet à IP. IP les achemine vers la machine destination ou un autre IP les reçoit et les passe à la couche TCP de la machine de destination. Celle-ci remet les paquets dans l'ordre (eh oui, ils peuvent prendre des chemins différents sur Internet) et vérifie que les données n'ont pas subi d'erreurs durant la transmission puis les transmet à la couche de niveau supérieur appropriée (selon la nature des données).
Parallèlement à TCP, il existe d'autres protocoles comme UDP par exemple. Ils sont utilisés par exemple lorsqu'on a pas besoin de numéroter les paquets pour les remettre dans l'ordre, ce qui économise de la place.
principaux protocoles, il y en a facilement plus d'une centaine.
Pour différencier les connexion simultanées, TCP ajoute un numéro de port (port number ou socket number) à chaque paquet qu'il émet. A la réception de tels paquets, il peut ainsi déterminer de quelle connexions il s'agit. Si vous lancez deux sessions FTP connectées toutes deux au même serveur FTP, les deux adresses source seront identiques (l'adresse IP de votre ATARI), les deux adresses destination seront identiques (l'adresse de la machine hébergeant le serveur FTP), les deux ports destination seront identiques (21 pour le serveur FTP) et seul les numéros de port source seront différents, par exemple 50 000 et 50 002.
- Pris sur sockets.pdf : Développés à l'université de Berkeley, les sockets sont une interface de programmation (ou API, Application Program Interface) entre les applications et les couches réseau.

Principe du protocole TCP/IP

TCP/IP

Présentation succinte du protocole TCP/IP que l'on verra plus en détail sur la page qui lui est consacrée. C'est TCP/IP qui permet toute transmission des données sur Internet et la compréhension du son principe de fonctionnement est très importante.
TCP/IP n'est pas un protocole, mais une pile de protocoles, dont les plus importants sont TCP et IP (le protocole TCP est responsable de la connexion, le protocole IP, étant chargé de l'adressage, donne une adresse unique à chaque utilisateur du réseau Internet).
Toute donnée qui transite sur Internet est une suite de bits. Qu'il s'agisse d'images, de musique, de page Web ou d'un simple courriel, toutes ces donnés pour être transmises doivent satisfaire à différents protocoles (depuis l'application jusqu'au mode de transmission). L'ensemble de ces protocoles sont regroupés dans le standard TCP/IP.
Fonctionnement : le principe de fonctionnement peut se rapprocher de celui du courrier postal. Prenons l'exemple d'un courriel que l'on veut envoyer à un ami. SMTP c'est le protocole qui permet d'envoyer du courrier sur Internet. Ces données seront ensuite encapsulées dans le protocole TCP

TCP/IP. (TCP/IP est une suite de protocoles dont les deux principaux sont les protocoles TCP et IP).

Quand on envoie des données sur Internet, ces données sont transmisent suivant une suite de protocoles TCP/IP répondant à un certain nombre de critères parmi lesquels :
- Le fractionnement des messages en paquets. La taille des paquets IP est limitée (environ 1500 octets)
- L'utilisation d'un système d'adresses
- L'acheminement des données sur le réseau (routage)
- Le contrôle des erreurs de transmission de données

C'est un système dit en couches. Les couches sont encapsulées et chaque couche a un rôle bien précis. Schématiquement :

TCP/IP

Lors d'une transmission, les données traversent chacune des couches au niveau de la machine émettrice. A chaque couche, une information est ajoutée au paquet de données, il s'agit d'un header ou en-tête qui garantit la transmission. Au niveau de la machine réceptrice, lors du passage dans chaque couche, l'en-tête est lu, puis supprimé. Ainsi, à la réception, le message est dans son état originel...

A chaque niveau, le paquet de données change d'appellation au fur et à qu'on lui ajoute un en-tête :
- Le paquet de données est appelé message au niveau de la couche Application
- Le message est ensuite encapsulé sous forme de segment dans la couche Transport
- Le segment une fois encapsulé dans la couche Internet prend le nom de datagramme
- Enfin, on parle de trame au niveau de la couche Accès réseau

  • Couche 1 : accès réseau
    Première couche de la pile TCP/IP. S'occupe de :
    - Conversion des signaux (analogique/numérique)
    - Contrôle des erreurs à l'arrivée
    - ...
    Celà se fait de façon transparente. Ces tâches sont réalisées par le système d'exploitation et les pilotes des matériels.


  • Couche 2 : Internet
    Gère l'adressage IP. La couche Internet contient 5 protocoles. Les 3 principaux sont :
    - Le protocole IP
    - Le protocole ARP
    - Le protocole ICMP

    Nota : les protocoles des couches 1 et 2 permettent d'envoyer les informations d'une machine à l'autre


  • Couche 3 :
    Ce sont les protocoles orientés transport de données. La couche transport permet à des applications tournant sur des machines distantes de communiquer.
    Ces protocoles permettent à ceux de la couche 4 de transporter leurs données de façon fiable.
    UDP est dit « sans connexion » et TCP est dit « avec connexion ».


  • Couche 4 :
    On y trouve les protocoles utilisés par des applications permettant le dialogue. Les plus connus : HTTP, FTP, POP, SMTP.


Notions à ajouter
lien http://christian.caleca.free.fr/reseaux/mod_osi.htm
Modèle TCP/IP ou DOD et modèle OCI, ces modèles théoriques, extrêmement détaillés sont faits pour que chaque couche puisse être construite indépendamment des couches qui sont immédiatement au dessus et au dessous d'elle.

trame
Les trames qui circulent sur le réseau contiennent donc non seulement les données des applications, mais également tout un tas d'informations rajoutées par le N.O.S. Ces diverses informations permettront entre autres fonctions:
- Le pontage
- Le routage
- L'identification du poste émetteur
- L'identification du poste récepteur
- L'identification de l'application Emettrice
- L'identification de l'application Réceptrice.
Lorsque la trame entre dans le récepteur, elle remonte les couches qui lui enlèvent au passage les informations qui les concernent, si bien que l'application reçoit ses données sans se préoccuper de la façon dont elles ont été transportées.