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 – Les vidéos

  • 4.1 - What is the internet protocol stack ? Vidéo en Anglais

    Cette video en anglais vous présente le stack de protocole. What is the internet protocol stack? There are many different protocols that run on the internet, given that protocols power every internet service. By arranging protocols hierarchically, or into a protocol stack, this allows us to separate concerns and ensure that protocols can focus on doing a specific job well. Higher-level protocols can rely on functionality from lower-layer protocols and use them as needed to build interesting services.

    What is the internet protocol stack ?

  • 4.2 - What is the internet protocol suite ? Vidéo en Anglais

    Cette video en anglais vous présente le protocole TCP/IP. What is the internet protocol stack? There are many different protocols that run on the internet, given that protocols power every internet service. By arranging protocols hierarchically, or into a protocol stack, this allows us to separate concerns and ensure that protocols can focus on doing a specific job well. Higher-level protocols can rely on functionality from lower-layer protocols and use them as needed to build interesting services.

    What is the internet protocol suite ?

  • 4.3 - Introduction to the transport layer Vidéo en Anglais

    Cette video en anglais vous présente la couche transport. The Internet Protocol provides best effort packet delivery across routes established within the interior of the internet. Everything else is left to the endpoints ​a decision known as the end to end principle. One of the most important tasks not handled by the Internet Protocol is enabling reliable, efficient, and fair delivery of content from one internet connected computer to another. This layer is known as the transport layer and the protocols running at it are referred to as transport protocols. In an interesting development, the transport layer reintroduces the idea of a connection that we discarded at the IP layer in favor of packet based communication. Building connections on top of packets preserves many of the benefits of both approaches. Connections help organize the exchange of information, while packets can still independently find the best path between hosts and ensure that network resources are well utilized.

    Introduction to the transport layer

  • 4.4 - Le modèle TCP/IP Vidéo en Français

    Présentation du modèle TCP/IP par Cisco Ciscast du Labo Supinfo.

    Le modèle TCP/IP

  • 4.5 - OSI and TCP/IP Model Vidéo en Français

    Dans cette vidéo très bien faites et très originale, Mike Meyers présente l'évolution d'une trame Ethernet à travers le modèle TCP/IP et OSI.

    OSI and TCP/IP Model

5 – Suivi du document

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

6 – 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

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

  1. Bonjour,

    Je me pose une question sur les rôles relatifs des couches IP et réseau de TCP-IP.
    Dans l’esxemple que vous donnez à Siham Ing, on voit (même si dans cet exemple noms des couches n’étaient pas ceux du protocole TCP-IP)

    Couche Réseau – D.IP:@IP_Serveur S.IP:@IP_Client
    Couche Liaison – Ethernet : D.MAC:@MAC_routeur S.MAC:@MAC_Client_DNS

    Donc la couche liaison (= couche reseau du TCP-IP) est desencapsulée en premier et contient l’adresse Mac.
    La couche réseau (= couche IP du TCP-IP) est desencapsulée après et contient l’adresse IP.

    Mais je croyais que l’adresse max était plus précise que l’adresse IP, pourquoi est elle utilisée avant ? Pourquoi connaitre précisément l’ordinateur ciblé avant de connaitre l’adresse IP de son routeur ?

    Cordialement,

    Florian

  2. Question : Que se passe-t-il lorsqu’un émetteur TCP n’a toujours pas reçu d’accusé de réception au bout d’un temps égal au temps nécessaire pour deux aller-retours de transmission ?
    quelle est la bonne rep svp en justifiant :
    1 Le paquet est perdu et ignoré
    2 Le paquet est retransmis automatiquement
    3 La connexion est automatiquement rompue puis rétablie
    4 Un message d’erreur est remonté vers la couche application

  3. « tout simplement parce que les couches présentation et session sont apparues inutiles. »

    Existerait-il quelque part une documentation critique de cette apparente inutilité ?

    Merci !

    1. Lu Jean-François,

      Pour commencer, je profite de ce post pour te remercier de ton soutient depuis des années à frameip.com 🙂

      Pour ta question, que je considère comme un piège car tu connais la réponse 🙂 et bien voici ma réponse.

      En me relisant après des année, en effet cette phrase doit être changé. Le fait que le Modèle TCP/IP soit sortit avant le modèle OSI, fait que l’on ne peux pas dire  » sont apparues inutiles ».

      Je dirais plutôt alors, TCP/IP ne possède pas de couche intermédiaire entre Application et Transport parce qu’il n’en n’a pas besoin. Contrairement au modèle OSI qui définit un ensemble de protocole plus large et donc est plus fin dans sa décomposition.

      @+
      Sebastien FONTAINE

  4. c bon vrmt on a compris mais ça serait mieux encore de le nous montrer et de nous expliquer encore comment les utiliser pratiquement mm sans vidéo mais en nous montrant des exemples typiques.

  5. En lisant sur TCP/IP j’ai pas bien compris le synthèse entre TCP/IP et Ethernet ou les LAN sachant que Ethernet est une technologie qui a existé en parallèle ou avant TCP/IP (Inetrnet).
    Avant que TCP/IP n’utilise la technologie des réseaux LAN par exemple dans la couche Basse, comment le TCP/IP transmettez les messages ou paquets sur le support et quel était le support à cette époque ?

    1. Lu Roza,

      Déjà, aujourd’hui, TCP/IP ne fonctionne pas que sur Ethernet 🙂 Voici quelques exemple :
      – 4G
      – Connexion satelitaire
      – ADSL
      – FTTH
      – …

      Pour l »poque, on trouvait du coax (bnc) et du Token ring. Voir même, deux pc croisé en USB.

      @+
      Sebastien FONTAINE

    1. Lu Anitah,

      Voici quelques avantages :
      – Il est routable
      – Il est normalisée et indépendant d’un constructeur/éditeur
      – Il est la référence

      @+
      Sebastien FONTAINE

  6. 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

      @+

      Sebastien FONTAINE

    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.

      @+

      Sebastien FONTAINE

  7. 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).

      Sebastien FONTAINE

      1. Salut _SebF , je suis en seconde et je passe en 1 ere Sti2D car je suis passioné d’informatique notamment dans le réseau donc je compte faire un Dut R&T et une Lpro QSSI mais bref , est ce que tu penses judicieux que je commence à me familiarisé maintenant avec ce genre de  » cours  » que tu fais sur les protocoles et si oui j’aimerais que tu me fasse un ordre chronologiqe des trucs que je dois apprendre pour pas etre paumé , je pense que TCP/IP etait un bon début tu peux confirmer ou sinon eclaire moi Merci et surtout continu ton travail sur ce site parce qu’il est absolument génial
        Cordialement
        J’aime Linux

        1. Lu Scott,

          Et bien c »est simple, suit simplement ce qui t’interresse et te passionne. Laisse toi dériver et attirer par les choses. Et bosse à fond 🙂

          @+
          Sebastien FONTAINE

Laisser un commentaire

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