Ajouter ce site au Favoris Imprimer cette page  
 
 
   
   
   
 

Description générale des protocoles TCP/IP

 

TCP/IP est un ensemble de protocoles organisé en couches. Afin d'en comprendre la signification prenons l'exemple de l'envoi d'un message: Il y a tout d'abord un protocole de messagerie définissant l'ensemble des commandes qu'une machine envoie à l'autre, ces commandes indiquent qui est l'émetteur, à qui le message est destiné et enfin le texte du message. Ce protocole suppose donc l'existence d'un lien fiable entre les deux ordinateurs, c'est TCP qui assurera la fiabilité de la communication. Le protocole de messagerie est conçu pour utiliser les services de TCP qui effectue la retransmission en cas d'erreurs, qui divise le messages en plusieurs datagrammes et s'assure qu'ils arrivent correctement. Comme ces fonctions sont nécessaires à de nombreuses applications, elles constituent un protocole séparé ne faisant pas partie des spécifications de l'envoi de messages. On peut considerer TCP comme une bibliothèque de procédures mises à la disposition des applications lorsqu'elles ont besoin d'une communication fiable vers un autre ordinateur. De la même façon TCP fait appel aux services de IP, mais des applications peuvent faire directement appel à IP sans passer par TCP. En général les applications TCP/IP utilisent quatre couches:

Un protocole d'application comme la messagerie.

Un protocole comme TCP qui fournit des services nécessaires à de nombreuses applications.

IP, qui fournit les services fondamentaux d'envoi de datagrammes à leur destination.

Les protocoles nécessaires pour gerer un support physique comme Ethernet ou une ligne point à point.

Inconvenients du modèle en couches:

Les implémentations qui en résultent peuvent être très inefficaces. Par exemple, la couche transport doit transmettre sur le réseau un flot d'octets en le divisant en paquets, pour optimiser le transfert elle devrait choisir une taille de paquet la plus grande possible lui permettant de voyager dans un seul paquet physique (i.e paquet Ethernet) surtout si le destinataire est sur le même réseau physique.

Si le modèle en couches est strictement respecté, la couche transport ne sait pas comment la couche réseau route le trafic, ni sur quel réseau physique elle est attachée, de plus elle ne sait pas combien d'octets d'en-tête vont être ajoutés par les couches inférieures. Elle ne peut donc pas dans ces conditions optimiser les tranferts.

En général les implémentations ne suivent pas strictement le modèle et permettent de transmettre aux couches supérieures des informations comme le choix des routes, la taille des paquets physiques. Elles tiennent également compte de la taille des en-têtes au moment de l'allocation des tampons (Buffers).

Ces optimisations apportent des améliorations considérables.

TCP/IP est basé sur un modéle de concaténation de réseaux (catenet model) décrit dans l'IEN 48. Ce modèle considère l'existance d'un grand nombre de réseaux indépendants connectés entre eux par des passerelles (gateways), l'utilisateur devant avoir la possibilité d'accés aux ressources de l'un quelconque de ces réseaux. Les datagrammes passeront souvent par une douzaine de réseaux différents avant d'atteindre leur destination finale, le routage, à travers ces réseaux, devant rester complètement invisible à l'utilisateur, celui-ci ayant seulement à connaître l'SPMlt;<adresse InternetSPMgt;> de l'autre système. Cette adresse est de la forme 128.6.4.194, c'est un nombre de 32 bits écrit sous la forme de quatre nombres décimaux, chacun représentant 8 bits de l'adresse (la documentation Internet utilise le terme SPMlt;<octetSPMgt;> pour ces paquets de 8 bits, elle n'utilise pas le terme SPMlt;<byteSPMgt;> car TCP/IP est supporté par certains ordinateurs dont les SPMlt;<bytesSPMgt;> n'ont pas une taille de 8 bits). Généralement cette structure d'adresse vous donne quelques indications sur la façon d'atteindre le système, par exemple, 128.6 est un numéro de réseau attribué, par une autorité centrale, à l'université de Rutgers, l'octet suivant est utilisé pour désigner un segment Ethernet du campus, ainsi 128.6.4 représente l'Ethernet du département informatique, le dernier octet permet de spécifier jusqu'à 254 systèmes sur chaque Ethernet (254, car les valeurs 0 et 255 ne sont pas utilisées pour des raisons que nous verrons plus loin). Notez que 128.6.4.194 et 128.6.5.194 représentent des systèmes différents.

Dans la terminologie du modèle ISO ces passerelles sont des routeurs.

En général on désigne les systèmes par leur nom plutôt que par leur adresse Internet, dans ce cas le logiciel réseau retrouve l'adresse Internet à l'aide d'une base données. Ce mécanisme (serveur de noms) est décrit dans le RFC 882.

TCP/IP s'appuie sur une méthode dite SPMlt;<sans connexionSPMgt;> (connection less), l'information est transférée sous forme d'une suite de SPMlt;<datagrammesSPMgt;>. Un datagramme est un ensemble de données envoyé comme un seul message, chaque datagramme est envoyé indépendemment sur le réseau. Il y a possibilité d'ouvrir une connexion, c'est à dire commencer une conversation devant durer un certain temps, cependant, à un certain niveau, les informations de cette connexion sont separées en datagrammes traités par le réseau de manière complètement indépendante. Par exemple si vous voulez transferer un fichier de 15000 octets, comme peu de réseaux peuvent transporter des paquets de cette taille, le protocole le découpera en datagrammes de 30 à 500 octets, chacun d'eux sera envoyé de l'autre côté et il seront réassemblés en un fichier de 15000 octets. Il faut bien remarquer que, pendant le transfert de ces datagrammes, le réseau ignore qu'il y a un lien (connexion) entre eux, et il est parfaitement possible que le datagramme numéro 14 arrive avant le numéro 13 ou, qu'à la suite d'une erreur quelques datagrammes n'arrivent pas à destination (dans ce cas ils devront être réexpédiés).

Notez que les termes SPMlt;<datagrammeSPMgt;> et SPMlt;<paquetSPMgt;> semblent synonymes. Techniquement, au sens TCP/IP il faut utiliser datagramme. Un datagramme est une unité de données manipulée par les protocoles, alors que les paquets sont des entités physiques transportées sur un Ethernet ou un câble quelconque. Dans la plupart des cas un paquet contient simplement un datagramme, mais, par exemple, dans le cas où IP est transporté par X.25, l'interface X.25 découpe les datagrammes en paquets de 128 caractères. Ceci est invisible pour IP, car de l'autre côté les datagrammes sont réassemblés avant d'être passés à TCP/IP. Cependant dans la plupart des cas un paquet transporte un seul datagramme et la distinction entre les deux tend à s'estomper.


[Precédent] [Sommaire] [Suivant]                               [Haut]