En Une :

Protocoles et modèles

Cet article est une introduction aux protocoles TCP/IP et au modèle OSI. On y trouvera des explications sur les mécanismes de mise en couche (encapsulation/désencapsulation) et une description du rôle de chaque couche. Enfin, on proposera de créer un tableau aide-mémoire avec la synthèse de chaque modèle. La maîtrise de ces concepts fondamentaux est indispensable à la compréhension des mécanismes des réseaux et de l'Internet.

Ce document évoque les objectifs ICND1 :

  • 1.1 Comparer et mettre en contraste les modèles OSI et TCP/IP
  • 1.2 Comparer et mettre en contraste les protocoles TCP et UDP

1. Protocoles

Un protocole de communication est un ensemble de règles qui rendent les communications possibles car les intervenants sont censés les respecter.

Les protocoles définissent une sorte de langage commun que les intervenants utilisent pour se trouver, se connecter l'un à l'autre et y transporter des informations.

Les protocoles peuvent définir :

  • des paramètres physiques comme des modulations, des type de supports physiques, des connecteurs, ...
  • le comportement d'un certain type de matériel
  • des commandes
  • des machines à état
  • des types de messages
  • des en-têtes qui comportent des informations utiles au transport

Ceux-ci sont discutés et élaborés par des organismes de standardisation.

Les protocoles TCP/IP sont formalisés par l'IETF dans des documents publics qui prennent le nom de RFC ("Requests For Comments"). On désigne ces documents par des numéros de références.
Tous les RFCs ne sont pas nécessairement des standards. Leur statut au sein du processus de standardisation peut être : Informational, Experimental, Best Current Practice, Standards Track ou Historic.
Pour un peu plus de détails sur les RFCs : https://fr.wikipedia.org/wiki/Request_for_comments et https://en.wikipedia.org/wiki/Request_for_Comments.

Les protocoles LAN / WAN / PAN sont formalisés :

  • par l'IEEE (IEEE 802),
  • par l'ITU,
  • par l'ANSI, ...

On distinguera ces organismes de standardisation :

  • de consortiums commerciaux comme la WiFi Alliance
  • ou des organismes étatiques nationaux et internationaux de régulation comme le FCC, l'ETSI, l'IBPT, ...

2. Nomenclature des protocoles

On peut catégoriser les protocoles sur base de différents critères comme :

  • La signalisation
  • La maintenance de la Connexion
  • La fiabilité
  • Les plans gestion, contrôle, data
  • Le type de technologie TCP/IP, LAN, WAN

Signalisation

  • In-Band : signalisation avec les données (HTTP)
  • Out-of-Band : signalisation dans un protocole ou un canal dédié (FTP, SIP/SDP/RTP)

Maintenance de la connexion

  • Orientés Connexion : Établissement, maintien et fermeture d'un canal au préalable de l'envoi des données (TCP, FTP)
  • Non Orientés Connexion : Ethernet, IP, UDP, TFTP sont non orientés connexion.

Fiabilité

  • Fiables : mettant en œuvre des mécanismes de fiabilité tel que la reprise sur erreur, des accusés de réception, du contrôle de flux, etc. (TCP)
  • Non fiables : Ethernet, IP, UDP, TFTP sont non fiables.

Plans

  • de Gestion : protocoles d'accès distant, de résolution de noms, d'attributions d'adresses, de voisinage (émanant des systèmes)
  • de Contrôle : protocoles de routage, les protocoles IEEE 802.1 (émanant de l'infrastructure)
  • de données : protocoles transportant des données des utilisateurs

3. Protocoles TCP/IP, LAN et WAN

Protocoles TCP/IP : logiciel

  • IP identifie les nœuds de communication
  • TCP ou UDP assurent la fonction de transport
  • Un protocole de couche application rend un service de communication.

Désencapsulation TCP/IP

Technologies et Protocoles LAN/WAN : matériel/physique

  • Assurent le transport des données sur les liaisons locales
  • LAN : Technologies au sein des réseaux locaux (confinés localement, rapides et permanents)
  • WAN : Technologies qui interconnectent les routeurs, point intermédiaires de connectivité, plus lente et couvrant de longues distances.

4. Modèles de communication

Un modèle de communication organise les communications entre les hôtes sous forme d'enveloppement hiérarchique. Chaque couche remplit une fonction spécifique à la communication et dispose de caractéristiques propres. Chaque couche utilise un protocole, soit un ensemble de règles de communication.

Un modèle de communication dispose de plusieurs avantages :

  • Il permet de mieux comprendre le véritable fonctionnement des communications. Il est utile à l'apprentissage.
  • Il est utile au diagnostic et au dépannage.
  • Il permet de développer ou d'adapter des nouvelles fonctionnalités sans à revoir l'ensemble du modèle. Les modifications peuvent intervenir uniquement sur le protocole de la couche concernée.
  • Il favorise l'interopérabilité entre différents matériels, technologies et constructeurs. Il favorise la croissance du marché dans le secteur des infrastructures et de services IT.

On discutera dans ce document de quelques modèles de communication :

  1. Le modèle TCP/IP qui implémente les technologies les plus courantes.
  2. Le modèle OSI qui sert de référence académique et qui trouve des correspondances par rapport aux technologies TCP/IP, LAN et WAN.
  3. Les technologies LAN (Ethernet) et les technologies WAN (PPP, PPPoE, GRE) qui disposent de leur propre modélisation au niveau des couches dites "basses", soit proche du signal physique.

En bref, un modèle de communication est une référence à maîtriser si l'on désire comprendre les technologies des réseaux.

5. L’Internet

L'Internet représente pour nous un nouveau paradigme : toute une série d'actes physiques sont désormais accomplis à distance, manuellement ou automatiquement, par des humains avec des humains, mais aussi avec des machines et des machines entre elles. Recevoir ou envoyer du courrier, consulter des dossiers, établir des appels téléphoniques ou vidéos, aller en bibliothèque, regarder un film ou encore effectuer des transactions bancaires sont des oeuvres facilitées par les technologies de l'Internet.

Mais de notre point de vue, l'Internet est l’interconnexion de réseaux à l’échelle du globe. En technologie IPv4, l’Internet a techniquement atteint sa taille limite de croissance !

Visualisation des multiples chemins à travers une portion d'Internet. Par The Opte Project — Originally from the English Wikipedia; description page is/was here., CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=1538544. Carte partielle d'Internet, basée sur les données du 15 juin 2005 situées à opte.org. Chaque ligne lie 2 nœuds, représentant 2 Adresses IP. La longueur de chaque ligne indique le délai entre ses 2 nœuds.

6. Objectifs de TCP/IP

  • Communiquer
  • à l’échelle du globe
  • de manière libérale (ouverte)
  • quel que soit
  • le contenu
  • le support
  • les hôtes

image

7. Modèle TCP/IP

Le modèle TCP/IP est fondé sur quatre couches qui enveloppent les messages originaux avant qu'ils soient placés sur le support physique sous forme d'ondes représentant les données de la communication.

Chaque couche assure une fonction de maintenance et de service de la communication. TCP/IP ne se préoccupe pas du contenu (les propos tenus par les utilisateurs dans les messages); il se contente d'assurer des fonctions qui facilitent les communications, le partage et la diffusion des informations.

Modèle TCP/IP comme entonnoir

8. Quatre couches

Le modèle de communication TCP/IP compte quatre couches.

  • Couche Application
  • Elle est la couche de communication qui s’interface avec les utilisateurs.
  • Exemples de protocoles applicatifs : HTTP, DNS, DHCP, FTP, ...
  • Elle s’exécute sur les machines hôtes.
  • Couche Transport : TCP
  • Elle est responsable du dialogue entre les hôtes terminaux d’une communication.
  • Les applications utiliseront TCP pour un transport fiable et UDP sans ce service.
  • Les routeurs NAT et les pare-feu opèrent un filtrage au niveau de la couche transport.
  • Couche Internet : IP
  • Elle permet de déterminer les meilleurs chemins à travers les réseaux en fonction des adresses IPv4 ou IPv6 à portée globale.
  • Les routeurs transfèrent le trafic IP qui ne leur est pas destiné.
  • Couche Accès au réseau
  • TCP/IP ne s’occupe pas de la couche Accès Réseau
  • Elle organise le flux binaire et identifie physiquement les hôtes
  • Elle place le flux binaire sur les supports physiques
  • Les commutateurs, cartes réseau, connecteurs, câbles, etc. font partie de cette couche

Plus on monte dans les couches, plus on quitte les aspects matériels, plus on se rapproche de problématiques logicielles.

9. Encapsulation

  • Pour transmettre du contenu d’un ordinateur à un autre, l’utilisateur va utiliser un programme qui construit un message enveloppé par un en-tête applicatif, HTTP par exemple. Le message subit une première encapsulation.
  • Le logiciel va utiliser un protocole de couche transport correspondant pour établir la communication avec l’hôte distant en ajoutant un en-tête TCP ou UDP.
  • Ensuite, l’ordinateur va ajouter un en-tête de couche Internet, IPv4 ou IPv6 qui servira à la livraison des informations auprès de l’hôte destinataire. L’en-tête contient les adresses d’origine et de destination des hôtes.
  • Enfin, ces informations seront encapsulées au niveau de la couche Accès qui s’occupera de livrer physiquement le message.

À la réception, l'hôte récepteur réalise l'opération inverse en vérifiant les en-têtes de chaque protocole correspondant à une des couches décrites. Ce processus s'appelle la désencapsulation.

Processus de communication

  • Chaque couche ajoute une information fonctionnelle au message original. À la réception, l’hôte examine chaque couche et prend une décision quant à ce trafic.

10. Exemple commun

Rappelons le scénario de départ. Un utilisateur ouvre une page Web dans son navigateur et accède à sa page web favorite : http://www.test.tf. Sur le plan technique, une interface connectée au réseau émet un message original vers une destination distante (elle n'est manifestement pas locale) : il s'agit d'une requête HTTP qui demande à ouvrir une page Web (soit un fichier codé en HTML). En l'absence d'une page indiquée, c'est index.html qui sera servi.

Moyennant une capture du trafic qui passe par l'interface, on peut observer les phénomènes qui seront expliqués plus bas.

11. Couche Application

Dans notre exemple, notre utilisateur ouvre sa page Web favorite et elle s'affiche immédiatement. Mais en réalité, avant d'obtenir ce résultat, il demande à lire une ressource (un fichier) située ailleurs, quelque part dans le réseau, sur www.test.tf. Dans le meilleur des cas, la plupart du temps, une page lui sera envoyée en retour et s'affichera dans son navigateur.

Il s'agit ici du premier message utile envoyé par l'utilisateur. Pour ce type d'usage ou d'application, il existe un protocole de couche application qui est largement disponible, à savoir par exemple HTTP[1]. On pourrait résumer ce premier message par : "Serveur HTTP www.test.tf, donne-moi ta page /index.html".

On trouvera un grand nombre de protocoles de couche application, chacun offrant un type de service avec des caractéristiques propres. Ils sont développés dans le but d'offrir un service de communication qui soit au plus proche des utilisateurs (logiciels). Quelques exemples de commandes de couche application :

  • Commandes HTTP : "donne-moi une page Web", "Voici la page", "donne-moi l'image", "Voici l'image".
  • Commande SIP : "Tente d'établir une communication vocale ou vidéo à destination de tel numéro de téléphone, de tel courriel", "J'émets une sonnerie", "j'ouvre la ligne"
  • Commande SMTP : "livre ce message à [email protected]"
  • Commande RTP : "transmet telle capsule vidéo ou audio"
  • Commandes DNS : "quelles sont les adresses IP de www.test.tf", "voici l'adresse IPv4 de www.test.tf"
  • Commandes DHCP : "Donne-moi une adresse IP", "Voici des paramètres optionnels"

12. Couche Transport

Cette commande de couche application est alors enveloppée, "encapsulée" dit-on dans le jargon, par un protocole de couche Transport comme TCP. TCP apporte un service fiable pour que les utilisateurs puissent utiliser cette application Web. C'est justement TCP qui crée l'intuition d'une connexion directe entre les deux ordinateurs connectés, entre l'utilisateur et le serveur Web qui rend les pages à l'autre bout du monde.

Un canal de communication entre un "port" d'origine et un "port" de destination est établi entre les deux machines interlocutrices au préalable de l'envoi de la commande HTTP.

Si TCP fournit le canal de transmission entre les deux ordinateurs, il offre aussi une maintenance "connectée" de la communication. Il l'initie, la maintient avec des fonctionnalités telles que le contrôle de flux et la reprise sur erreur, et enfin il termine cette communication. On parle alors de protocole "orienté connexion".

Encapsulation TCP/IP

Image : Encapsulation TCP/IP

13. Couche Internet

Pour que ces deux ordinateurs se reconnaissent de manière certaine, ils ont besoin d'autres identifiants que le seul nom de la destination ou les ports utilisés à l'origine et à la destination. À cet effet, une nouvelle encapsulation ajoute des informations de couche Internet, comme l'adresse IP d'origine (source) et l'adresse IP de destination. Elles identifient les hôtes de la communication d'un point de vue logique et global. C'est grâce à ces adresses que les données peuvent parvenir jusqu'au serveur de pages Web www.test.tf et que le trafic de retour est possible.

Des périphériques spécifiques qui interconnectent les lignes physiques se chargent de transmettre ces paquets d'informations jusqu'à la destination. Entre les deux ordinateurs, les paquets peuvent traverser plusieurs d'entre eux. Des routeurs relaient les paquets d'un point d'origine à un point d'extrémité de l'inter-réseau en fonction de l'adresse IP de destination.

14. Socket TCP/IP

À partir d'un couple de type adresse_IP:port_TCP de la source et de la destination, soit des sockets dans le jargon, littéralement des "prises", on crée une sorte de tunnel sur ces connexions; on parlera alors de "session" TCP. TCP offre un mode connecté qui initie un dialogue, le maintient et puis le ferme entre les deux ordinateurs. Le canal logique qui permet d'acheminer les messages utiles (couche application) est ainsi créé. Donc en réalité, une connexion TCP aura été établie avant l'envoi de la requête HTTP.

Le serveur Web www.test.tf est un ordinateur dans le réseau dont le logiciel de service Web (Apache2 en l'occurrence) a mis le port TCP 80 de l'une de ces interfaces à l'écoute. Le port 80 est le port par défaut pour offrir un service Web en HTTP (TCP80). L'ordinateur qui émet la requête soit le client utilise un port aléatoire dans des valeurs élevées. Chaque protocole de couche application dispose d'un port part défaut (qu'il est utile de connaître), il est toujours possible de mettre à l'écoute un service sur un port non conventionnel.

Flux TCP

15. Couche Accès Réseau

Faut-il encore que ces données puissent être physiquement transmises. Une nouvelle capsule place des informations de couche Accès Réseau. Par exemple, dans notre cas, des informations propres à la technologie Wi-Fi ou à la technologie Ethernet encapsulent le paquet IPv4. Ces dernières, indépendantes des protocoles TCP/IP permettent aux utilisateurs de placer physiquement toutes ces données sur un réseau local. Le réseau local prendra en charge le transfert de ces informations jusqu'à la bonne destination.

On peut trouver dans cette couche de nombreuses fonctions qui assurent le transport physique : identification, livraison, contrôle du support, aspects physiques, connecteurs, entre beaucoup d'autres. En cela, cette couche se distingue des fonctions logiques et globales de TCP/IP. On retiendra aussi le rôle important que jouent les commutateurs Ethernet, "switches" dans le jargon, qui prennent leurs décisions de transfert sur base des adresses MAC codées dans cette couche.

Cette couche "basse" est aussi désignée comme étant le rassemblement de la couche Liaison de données (L2) et de la couche physique (L1) en référence au modèle OSI. On y place donc des protocoles autres que ceux de la pile TCP/IP : des protocoles IEEE 802 ou des normes ratifiées par l'ANSI, l'EIA/TIA ou encore l'ITU qui en fait disposent de leur propre modélisation jusqu'à la mise en onde sur un support physique.

16. Résumé

On peut résumer cet exemple de transmission par le tableau suivant :

Couche Protocole Rôle de la couche Matériel
Application HTTP Offre un service de communication utile : échanger des pages Web. Ordinateurs
Transport TCP Offre un service fiable à HTTP, un port d'entrée/sortie et une session en mode connecté. Ordinateurs
Internet IP Identifie les hôtes de manière unique et permet l'acheminement des paquets entre deux hôtes d'extrémité. Ordinateurs, Routeurs
Accès Réseau Wi-Fi S'occupe de la livraison locale. Ordinateurs, Commutateur, Point d'Accès, câblage cuivre/FO, paires torsadées, paire téléphonique, coaxial ondes EMI, RF, lumineuses

Tableau : Exemples de protocoles lors de l'émission d'une requête TCP/IP.

17. Désencapsulation du trafic à la réception

Du point de vue du serveur Web, soit à la réception du message, on imaginera que ce dernier examinera les informations de chaque couche, de la plus basse à la plus élevée. Il procédera à ce qu'on appelle une désencapsulation.

Désencapsulation TCP/IP

Image : Désencapsulation TCP/IP

La machine de destination examine d'abord les informations de couche Accès Réseau et principalement l'adresse MAC de destination. S'il y trouve la sienne, il élimine les informations de cette couche et examine celle de la couche Internet et Transport. S'il y trouve son adresse IP et le port TCP en destination, il confie le message HTTP original à la couche Application qui est traité par un service système qui répond au protocole (Apache2 par exemple, /usr/sbin/httpd). Ce dernier peut à son tour offrir une réponse (une page Web) sur l'adresse et le port qui se trouve dans le message de la demande. Cette réponse est elle-même encapsulée par le serveur et désencapsulée à l'arrivée chez le client.

18. Communication d'égal à égal

D'un point de vue holistique, c'est comme si les deux ordinateurs parlaient d'égal à égal, chaque couche assurant des fonctions spécifiques :

  • Application : Message utile des utilisateurs
  • Transport : Transport fiable ou non
  • Internet : Identification et livraison globale
  • Accès Réseau : Identification et livraison locale

Désencapsulation TCP/IP

Image : Communication d'égal à égal

19. Modèle TCP/IP détaillé

20. Modèle OSI

  • La modélisation OSI propose un enveloppement en 7 couches
  • Modèle théorique, académique
  • Les couches sont aussi désignées par leur numéro
  • On associera à chaque couche des rôles, des protocoles et du matériel.
  • PDU : nom donné à l'encapsulation correspondante à une couche.

Modèles OSI et TCP/IP

Image : Modèles OSI et TCP/IP

21. Tableau de synthèse

TCP/IP OSI Rôles PDU Protocoles Matériel
Application 7 Application Services au plus proche des utilisateurs Données HTTP, DNS, DHCP Ordinateurs
" 6 Présentation encode, chiffre, compresse les données utiles " " "
" 5 Présentation établit des sessions entre des applications " " "
Transport 4 Transport établit, maintient, termine des sessions entre des hôtes d'extrémité. Segment TCP ou UDP Ordinateurs, routeurs NAT, pare-feux
Internet 3 Réseau Identifie les hôtes et assure leur connectivité Datagramme ou paquet IPv4 ou IPv6 Routeurs
Accès Réseau 2 Liaison de Données Détermine la méthode d'accès au support, organise les bits de données Trame Ethernet IEEE 802.3, Wi-Fi IEEE 802.11, pontage 802.1 Commutateurs, cartes d'interface réseau
" 1 Physique s'occupe du placement physique du signal bits Normes physiques : xDSL (WAN), 1000-BASE-TX Câblage (UTP CAT 6) et connecteurs (RJ-45), bande fréquences (2.4 GHz, 5 GHz)

  1. Aujourd'hui, on aura toujours une préférence pour les sessions sécurisées et vérifiées HTTPS supportées par SSL/TLS. ↩︎

Author image
Francois Goffinet est formateur Cisco Systems depuis 2002. Passionné des technologies des réseaux, de virtualisation et en nuage, Web et de cybersécurité souvent en Open Source ou Unix-Like, devops.