Préface
Le modèle TCP/IP
1 - Introduction
2 - Description du modèle
2.1 - Un modèle en 4 couches
2.2 - La couche hôte réseau
2.3 - La couche internet
2.4 - La couche transport
2.5 - La couche application
3 - Comparaison avec
le modèle OSI et critique
3.1 - Comparaison avec
le modèle OSI
3.2 - Critique
TCP/IP désigne communément une
architecture réseau, mais cet acronyme désigne en fait 2 protocoles étroitement
liés : un protocole de transport, TCP (Transmission Control Protocol) qu'on
utilise "par-dessus" un protocole réseau, IP (Internet Protocol). Ce qu'on
entend par "modèle TCP/IP", c'est en fait une architecture réseau en 4 couches
dans laquelle les protocoles TCP et IP jouent un rôle prédominant, car ils en
constituent l'implémentation la plus courante. Par abus de langage, TCP/IP peut
donc désigner deux choses : le modèle TCP/IP et la suite de deux protocoles TCP
et IP.
Le modèle TCP/IP, comme nous le verrons plus bas, s'est progressivement imposé
comme modèle de référence en lieu et place du modèle OSI. Cela tient tout
simplement à son histoire. En effet, contrairement au modèle OSI, le modèle
TCP/IP est né d'une implémentation ; la normalisation est venue ensuite. Cet
historique fait toute la particularité de ce modèle, ses avantages et ses
inconvénients.
L'origine de TCP/IP remonte au réseau ARPANET. ARPANET est un réseau de
télécommunication conçu par l'ARPA (Advanced Research Projects Agency), l'agence
de recherche du ministère américain de la défense (le DOD : Department of
Defense). Outre la possibilité de connecter des réseaux hétérogènes, ce réseau
devait résister à une éventuelle guerre nucléaire, contrairement au réseau
téléphonique habituellement utilisé pour les télécommunications mais considéré
trop vulnérable. Il a alors été convenu qu'ARPANET utiliserait la technologie de
commutation par paquet (mode datagramme), une technologie émergeante
prometteuse. C'est donc dans cet objectif et ce choix technique que les
protocoles TCP et IP furent inventés en 1974. L'ARPA signa alors plusieurs
contrats avec les constructeurs (BBN principalement) et l'université de Berkeley
qui développait un Unix pour imposer ce standard, ce qui fut fait.
Le modèle TCP/IP peut en effet être
décrit comme une architecture réseau à 4 couches :
Le modèle OSI a été mis à côté pour faciliter la comparaison entre les deux
modèles.
Cette couche est assez "étrange". En effet, elle semble "regrouper" les couches physique et liaison de données du modèle OSI. En fait, cette couche n'a pas vraiment été spécifiée ; la seule contrainte de cette couche, c'est de permettre un hôte d'envoyer des paquets IP sur le réseau. L'implémentation de cette couche est laissée libre. De manière plus concrète, cette implémentation est typique de la technologie utilisée sur le réseau local. Par exemple, beaucoup de réseaux locaux utilisent Ethernet ; Ethernet est une implémentation de la couche hôte-réseau.
Cette couche est la clé de voûte de
l'architecture. Cette couche réalise l'interconnexion des réseaux (hétérogènes)
distants sans connexion. Son rôle est de permettre l'injection de paquets dans
n'importe quel réseau et l'acheminement des ces paquets indépendamment les uns
des autres jusqu'à destination. Comme aucune connexion n'est établie au
préalable, les paquets peuvent arriver dans le désordre ; le contrôle de l'ordre
de remise est éventuellement la tâche des couches supérieures.
Du fait du rôle imminent de cette couche dans l'acheminement des paquets, le
point critique de cette couche est le routage. C'est en ce sens que l'on peut se
permettre de comparer cette couche avec la couche réseau du modèle OSI.
La couche internet possède une implémentation officielle : le protocole IP
(Internet Protocol).
Remarquons que le nom de la couche ("internet") est écrit avec un i minuscule,
pour la simple et bonne raison que le mot internet est pris ici au sens large
(littéralement, "interconnexion de réseaux"), même si l'Internet (avec un grand
I) utilise cette couche.
Son rôle est le même que celui de la
couche transport du modèle OSI : permettre à des entités paires de soutenir une
conversation.
Officiellement, cette couche n'a que deux implémentations : le protocole TCP
(Transmission Control Protocol) et le protocole UDP (User Datagram Protocol).
TCP est un protocole fiable, orienté connexion, qui permet l'acheminement sans
erreur de paquets issus d'une machine d'un internet à une autre machine du même
internet. 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
destination, TCP replace dans l'ordre les fragments transmis sur la couche
internet pour reconstruire le message initial. TCP s'occupe également du
contrôle de flux de la connexion.
UDP est en revanche un protocole plus simple que TCP : il est non fiable et sans
connexion. Son utilisation présuppose que l'on n'a pas besoin ni du contrôle de
flux, ni de la conservation de l'ordre de remise des paquets. Par exemple, on
l'utilise lorsque la couche application se charge de la remise en ordre des
messages. On se souvient que dans le modèle OSI, plusieurs couches ont à charge
la vérification de l'ordre de remise des messages. C'est là une avantage du
modèle TCP/IP sur le modèle OSI, mais nous y reviendrons plus tard. Une autre
utilisation d'UDP : la transmission de la voix. En effet, l'inversion de 2
phonèmes ne gêne en rien la compréhension du message final. De manière plus
générale, UDP intervient lorsque le temps de remise des paquets est prédominant.
Contrairement au modèle OSI, c'est la
couche immédiatement supérieure à la couche transport, tout simplement parce que
les couches présentation et session sont apparues inutiles. On s'est en effet
aperçu avec l'usage que les logiciels réseau n'utilisent que très rarement ces 2
couches, et finalement, le modèle OSI dépouillé de ces 2 couches ressemble
fortement au modèle TCP/IP.
Cette couche contient tous les protocoles de haut niveau, comme par exemple
Telnet, TFTP (trivial File Transfer Protocol), SMTP (Simple Mail Transfer
Protocol), HTTP (HyperText Transfer Protocol). Le point important pour cette
couche est le choix du protocole de transport à utiliser. Par exemple, TFTP
(surtout utilisé sur réseaux locaux) utilisera UDP, car on part du principe que
les liaisons physiques sont suffisamment fiables et les temps de transmission
suffisamment courts pour qu'il n'y ait pas d'inversion de paquets à l'arrivée.
Ce choix rend TFTP plus rapide que le protocole FTP qui utilise TCP. A
l'inverse, SMTP utilise TCP, car pour la remise du courrier électronique, on
veut que tous les messages parviennent intégralement et sans erreurs.
Tout d'abord, les points communs. Les
modèles OSI et TCP/IP sont tous les deux fondés sur le concept de pile de
protocoles indépendants. Ensuite, les fonctionnalités des couches sont
globalement les mêmes.
Au niveau des différences, on peut remarquer la chose suivante : le modèle OSI
faisait clairement la différence entre 3 concepts principaux, alors que ce n'est
plus tout à fait le cas pour le modèle TCP/IP. Ces 3 concepts sont les concepts
de services, interfaces et protocoles. En effet, TCP/IP fait peu la distinction
entre ces concepts, et ce malgré les efforts des concepteurs pour se rapprocher
de l'OSI. Cela est dû au fait que pour le modèle TCP/IP, ce sont les protocoles
qui sont d'abord apparus. Le modèle ne fait finalement que donner une
justification théorique aux protocoles, sans les rendre véritablement
indépendants les uns des autres.
Enfin, la dernière grande différence est liée au mode de connexion. Certes, les
modes orienté connexion et sans connexion sont disponibles dans les deux modèles
mais pas à la même couche : pour le modèle OSI, ils ne sont disponibles qu'au
niveau de la couche réseau (au niveau de la couche transport, seul le mode
orienté connexion n'est disponible), alors qu'ils ne sont disponibles qu'au
niveau de la couche transport pour le modèle TCP/IP (la couche internet n'offre
que le mode sans connexion). Le modèle TCP/IP a donc cet avantage par rapport au
modèle OSI : les applications (qui utilisent directement la couche transport)
ont véritablement le choix entre les deux modes de connexion.
Une des premières critiques que l'on
peut émettre tient au fait que le modèle TCP/IP ne fait pas vraiment la
distinction entre les spécifications et l'implémentation : IP est un protocole
qui fait partie intégrante des spécifications du modèle.
Une autre critique peut être émise à l'encontre de la couche hôte réseau. En
effet, ce n'est pas à proprement parler une couche d'abstraction dans la mesure
où sa spécification est trop floue. Les constructeurs sont donc obligés de
proposer leurs solutions pour "combler" ce manque. Finalement, on s'aperçoit que
les couches physique et liaison de données sont tout aussi importantes que la
couche transport. Partant de là, on est en droit de proposer un modèle hybride à
5 couches, rassemblant les points forts des modèles OSI et TCP/IP :
Modèle hybride de référence
C'est finalement ce modèle qui sert véritablement de référence dans le monde de
l'Internet. On a ainsi gardé la plupart des couches de l'OSI (toutes, sauf les
couches session et présentation) car correctement spécifiées. En revanche, ses
protocoles n'ont pas eu de succès et on a du coup gardé ceux de TCP/IP.
(C) 02/02/2015 - Dernière modification : 02/02/2015 - F4CVM / Pascal