Bruxelles / Paris Contact Twitter LinkedIn GitHub GitLab Restez informé !
Le chapitre “Protocoles et modèles de communication” expose les principes généraux des protocoles et modèles de communication. On trouvera ici une explication d’un second niveau sur les mécanismes de communication TCP/IP en regard du modèle OSI.
L’Internet peut encore représenter pour certains d’entre nous un nouveau paradigme : toute une série d’actes physiques courants 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 !
Qu’est-ce que l’Internet ?
Est-ce celui d’IPv4 ou d’IPv6 ? Est-ce la neutralité du réseau ? Qu’en est-il des répartiteurs de charge et des technologies en nuage (technologies cloud) ? Pour Leslie Daigle de l’ISOC (Internet Society), aucune de ces descriptions n’est très utile puisqu’elles sont toutes transitoires. Selon elle, une façon plus utile de penser l’Internet est de le caractériser par des propriétés immuables, c’est-à-dire qui ont résisté à l’épreuve du temps. Ces “invariants” comme les appelle l’Internet Society comprennent :
Quels sont les objectifs de 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.
En téléchargeant les livres du Guide CCNA 200-301 vous encouragez son auteur !
Au sens du modèle TCP/IP la couche Accès Réseau est vide car la pile des protocoles Internet (TCP/IP) est censée “inter-opérer” avec les différentes technologies qui offrent un accès au réseau.
Plus on monte dans les couches, plus on quitte les aspects matériels, plus on se rapproche de problématiques logicielles.
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.
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.
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 HTTP1. 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 :
user@test.tf
”www.test.tf
”, “voici l’adresse IPv4 de www.test.tf”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”.
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.
À 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 ses
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 par défaut (qu’il est utile de
connaître), il est toujours possible de mettre à l’écoute un service sur
un port non conventionnel.
Si on est attentif à la capture, on constate que du trafic DNS (Application) supporté par UDP (couche transport) a demandé la résolution du nom en IPv4 (A Record) et en IPv6 (AAAA Record). UDP (User Datagram Protocol) est utilisé pour une communication de type “Raw”, à livraison brute, au contraire du service offert par TCP.
En téléchargeant les livres du Guide CCNA 200-301 vous encouragez son auteur !
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.
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 |
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.
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.
D’un point de vue holistique, c’est comme si les deux ordinateurs parlaient d’égal à égal, chaque couche assurant des fonctions spécifiques :
On sera attentif aux numéros de ports TCP et UDP associés aux protocoles de couche Application.
Les machines et leurs interfaces disposent d’identifiants au niveau de chaque couche.
Couche | Identifiant | Exemple |
---|---|---|
Couche Application | Un protocole et un nom de domaine | http:// suivi de www.cisco.com |
Couche Transport | Port TCP ou UDP | TCP80 comme port par défaut pour HTTP |
Couche Internet | Adresse IPv4 et/ou IPv6 | 192.168.150.252/24 ou 2001:db8::1/64 |
Couche Accès | adresse physique (MAC 802) | 70:56:81:bf:7c:37 |
En téléchargeant les livres du Guide CCNA 200-301 vous encouragez son auteur !
TCP/IP | OSI | Rôles | PDU | Protocoles | Matériel |
---|---|---|---|---|---|
Application | 7 Application | Services au plus proche des utilisateurs | Données | HTTP, DNS, DHCP | Ordinateurs |
Application | 6 Présentation | encode, chiffre, compresse les données utiles | idem | idem | idem |
Application | 5 Présentation | établit des sessions entre des applications | idem | idem | idem |
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 |
Accès 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) |
Les éléments clés à retenir sur le modèle TCP/IP sont les suivants :
Source: https://cisco.goffinet.org/ccna/fondamentaux/modeles-tcp-ip-osi/
Debian : Installer un serveur DHCP Outils Historique Version imprimable Table des matières INTRODUCTIONINSTALLATION DE DHCPCONFIGURATION…
I. Présentation Le service DHCP est très répandu dans les entreprises afin de distribuer une…
Préalables pour le lecteur : pour tirer le maximum de profit de la lecture de cet…
Imagemagick Imagemagick est un logiciel ultra-puissant qui s'utilise en ligne de commande et qui permet de…
Mesures de sécurité essentielles à WordPress 1- Le compte Admin En premier lieu, quelque soit…
Activer le mode maintenance sur WordPress Le mode de maintenance de WordPress est activable par…