Modèle TCP/IP

Modèle TCP/IP

1 – Introduction au modele TCP/IP

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 TCPIP », 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 du modèle TCPIP 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 promettante. 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.

2 – Description du modèle TCP/IP

2.1 – TCP/IP, un modèle en 4 couches

Le modèle TCP/IP peut en effet être décrit comme une architecture réseau à 4 couches :

tcpip modele 4 couches

Le modèle OSI a été mis à côté pour faciliter la comparaison entre les deux modèles.

2.2 – La couche hôte réseau

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.

2.3 – La couche internet

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.

2.4 – La couche transport

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.

2.5 – La couche application

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.

3 – Comparaison avec le modèle OSI et critique

3.1 – Comparaison avec le modèle OSI

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.

3.2 – Critique du modèle TCP/IP

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 :

tcpip modele hybride tcpip osi

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.

4 – Suivi du document

Création et suivi de la documentation par Sylvain et _SebF

5 – Discussion autour du modèle TCP/IP

Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos du modèle TCP/IP. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :

Commentaire et discussion

7 commentaires sur la page : “Modèle TCP/IP”

  1. donnez moi stp un exemple simple qui explique d’une maniere simple l’acheminement de l’envoie d’un message par un emetteur jusqu’a la reception par le recepteur en utilisant le modele osi

    1. Lu Siham Ing,

      Voici un petit exemple simple : Une requête DNS

      Process DNS client envoi une requête DNS
      Couche Appli – type=A;www.frameip.com
      Couche Transport – UDP D:53 S:22222
      Couche Réseau – D.IP:@IP_Serveur S.IP:@IP_Client
      Couche Liaison – Ethernet : D.MAC:@MAC_routeur S.MAC:@MAC_Client_DNS
      Couche Physique – CASMA/CD

      Couche Physique – CASMA/CD
      Couche Liaison – Ethernet : D.MAC:@MAC_Client_DNS S.MAC:@MAC_routeur
      Couche Réseau – D.IP:@IP_Serveur S.IP:@IP_Client
      Couche Transport – UDP D:53 S:22222
      Couche Appli – type=A;www.frameip.com
      Process DNS serveur réceptionne une requête DNS

      @+

      _SebF

    1. Lu Marie,

      Dans le modèle OSI, la catégorisation en couches hautes et basses est une notion et non une définition.

      On peut donc se permettre de dire, que dans le modèle TCP/IP, les couches basses 1, 2, 3 achemine l’information et que la couche haute 4 la traite.

      @+

      _SebF

  2. Bonjour, je commence des études d’informatique de gestion et on a évoqué les modèles osi tcp/ip, j’ai lu votre articles mais deux points me semblent flous:
    1/ 3.1: »les modes orienté connexion et sans connexion sont disponibles dans les deux modèles mais pas à la même couche »
    Qu’entendez-vous par connexion et sans connexion? Vous parlez du LAN et de l’internet?
    Ensuite vous nous dites « 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. »
    Qu’entendez-vous par « utiliser directement la couche transport »? L’application ignorerait le reste du modèle? Cela a-t-il un sens?
    Ou parlez-vous dans ce cas d’application uniquement utilisable en LAN? Donc qui ignorerait la couche réseau.

    2/3.2: « 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. »

    Je ne comprends pas ce que vous signifiez ici. Les règles (ie protocole IP) font partie de l’abstraction (ie spécification) c’est ça? cela ne va-t-il pas de soi? Puis je ne vois pas en quoi ce n’est pas naturel de perdre la distinction implémentation/spécification étant donné que pour « spécialiser » il faudra bien coder la partie « spécialisée » (ie l’implémentation du programme) quoiqu’il en soit.

    1. Lu Benoit,

      Point 1 – Les modes orientés connexion et sans connexion …
      Déjà, tout ça n’a rien à voir avec la notion de LAN. Après je pense voir la confusion que tu fais. Voici les faits :
      – Fait 1 – Dans le monde IPv4, tu as principalement des flux connecté (TCP) et non connecté (UDP, ICMP, IGMP, ARP …).
      – Fait 2 – Le modèle TCP/IP définit uniquement le protocole IP (V4, V6). Alors que le modèle OSI définit (référence) tous les protocoles (IP, ISIS, Netbeui, IPX/SPX …).
      – Fait 3 – Oui le modèle OSI référence la possibilité de mode connecté en couche « 3 Réseau » alors que TCP/IP ne définit pas se mode en couche « 2 – Liaison » car il n’a pas besoin de le faire étant donné que le protocole IP ne l’utilise pas.

      Point 2 – les applications qui utilisent directement la couche transport …
      Ce te confirme le bon sens de cette phrase, mais pas simple à expliquer par écrit. Cela signifie que l’application à directement le choix, alors que dans le modèle OSI, l’application peux aussi faire son choix, mais la couche 3 pourrait repasser en mode connecté. Ce cas n’est pas valable pour le protocole IP.
      Sinon, toujours rien à voir avec la notion de LAN 🙂

      Point 3 – Le modèle TCP/IP ne fait pas vraiment la distinction …
      Cela confirme ce que je te disais avant. Le modèle TCP/IP définit uniquement le protocole IP. Alors que le modèle OSI, référence tous les protocoles (y compris IP).

      _SebF

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *