• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 03/02/2020

Dialoguez de bout en bout avec un serveur

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Découvrez l’architecture en couches d’un réseau de communication

Dans le chapitre précédent, nous avons appris le fonctionnement général d’un objet connecté à Internet. Nous allons maintenant appréhender l’architecture en couches qui permet de découper les interactions.

Dans chaque objet connecté, plusieurs protocoles sont présents, chacun ayant un rôle bien particulier. Chaque protocole est indépendant des autres dans son fonctionnement, dans son implémentation, mais ils peuvent interagir.

  • La première couche présente est la couche physique

Cette couche a pour objectif de transformer une suite de bits 0 1 en un signal électrique sur un support de transmission.

Le protocole NRZ, pour Non Return to Zero, est un exemple très simple : la couche physique émet +3 volts pour un bit à 1, et -3 volts pour un bit à 0. D’autres schémas de codage existent, offrant plus de robustesse, comme les codages Manchester et Manchester différentiel utilisés par Ethernet.

  • La couche de niveau 2 est la couche de liaison de données et d’accès au médium de transmission

Un médium physique est souvent partagé par plusieurs objets connectés qui envoient du trafic. Si deux objets transmettent simultanément, il y a collision et les paquets sont perdus. L’objectif de la couche de niveau 2 est de permettre un partage équitable du médium de transmission entre les objets connectés, et de traiter des collisions le cas échéant. La partie 3 de notre cours s’intéressera à la couche 2.

  • La couche de niveau 3 est la couche chargée de router les paquets

Autrement dit, la couche 3 achemine les paquets depuis une source vers une destination.

  • La couche de niveau 4 est la couche dite de transport

L’objectif d’un protocole de transport est de permettre un dialogue de bout en bout entre un objet connecté et un serveur, en étant agnostique de la topologie sous-jacente, de la longueur des routes, et des performances du réseau.

Enfin, au-delà de la couche 4, c’est l’application que vous pouvez vous-même développer, telle que la remontée de température dans une pièce.

Maintenant que nous savons quels sont les protocoles présents dans un objet connecté, et dans tout système connecté à Internet, étudions les concepts fondamentaux liés à cette architecture en couche.

Définissez un protocole de communication

Précédemment, lorsque nous avons présenté l’architecture en couches, nous avons parlé de protocoles de communication. Mais, précisément, qu’est-ce qu’un protocole de communication ? C’est l’objet de ce chapitre.

Un protocole de communication définit l’ensemble des règles partagées par l’émetteur et le récepteur pour échanger des données.

La définition d’un protocole passe par plusieurs éléments clefs :

  • un format de paquet transportant à la fois de l’information de contrôle et des données ;

  • un ensemble de règles ou d’algorithmes qui vont prendre des décisions en fonction de l’information de contrôle et des données véhiculées.

Un paquet contient deux champs :

  • un champ contrôle, qui transporte des informations permettant, par exemple, de fournir de la qualité de service, de la fiabilité, de la synchronisation ;

  • un champ de données, qui contient des informations de la couche supérieure... jusqu’à l’application qui contient les données applicatives comme la température, la date de mesure, les coordonnées GPS du lieu de mesure.

Nous venons de voir le fonctionnement d’un protocole de communication générique pour permettre le dialogue entre deux machines connectées au réseau. Allons plus loin, dans les fondamentaux du réseau, et étudions les notions de service et de socket.

Appréhendez le concept théorique de point d’accès au service et son implantation à travers la notion de socket

Dans la première section de ce chapitre, nous avons vu l’architecture en couches. Nous avions précisé que chaque couche est indépendante, mais que les couches peuvent interagir entre elles.

Prenons un exemple : IP, protocole de niveau 3, est indépendant des couches 1 et 2. Quelles que soient la couche physique et la couche d’accès au médium utilisées, le comportement IP ne change pas. Ainsi, vous pouvez utiliser IP au-dessus d’un réseau Wi-Fi, au-dessus d’un réseau cellulaire, ou encore, au-dessus d’Ethernet.

Lorsque nous disons que les couches peuvent interagir entre elles, cela signifie qu’une couche de niveau N peut interagir avec une couche de niveau N+1 et une couche de niveau N-1. ll n’y a pas d’interactions avec les couches N+2, N-2 ni les autres couches plus éloignées.

Nous définissons le concept de point d’accès au service comme une adresse virtuelle interne permettant à une couche de niveau N de demander un service à une autre couche, de niveau N-1 ou N+1. C’est grâce au point d’accès au service qu’un paquet de niveau N peut être transmis à la couche de niveau N-1 ou de niveau N+1 pour traitement.

Dans le cas de la pile protocolaire de TCP/IP que nous étudierons en détail, le concept de point d’accès au service se concrétise avec la notion de port et, par extension, celle de socket :

  • un port est un numéro qui permet, pour un protocole de transport, d’identifier une couche application. Par exemple, le port 80 définit l’utilisation d’un protocole très utilisé pour le web, le protocole HTTP ;

  • une socket permet de nommer un dialogue de bout en bout, entre deux applications, fonctionnant sur deux machines.
    Ainsi, on appelle socket le quadruplet (adresse IP source, numéro de port source, adresse IP destination, numéro de port destination).

Lorsque notre objet connecté envoie des données vers un serveur distant, il doit créer une socket qui sera utilisée pour échanger des données.

Découvrez l’intérêt des mécanismes d’encapsulation et de fragmentation

Précédemment, nous avons abordé la notion de points d’accès au service pour permettre le dialogue entre les couches, et nous avons dit qu’ils permettaient notamment de transférer les paquets de niveau N à une couche de niveau N-1 ou N+1.

Les paquets de niveau N sont appelés des PDU, pour Packet Data Unit.
Un PDU représente l’unité d’information manipulée par une couche.

Ainsi,

  • au niveau 2, le PDU est une trame ;

  • au niveau 3, il s’agit d’un paquet ;

  • au niveau 4, d’un segment dans le cas du protocole TCP, et d’un datagramme pour UDP.

La plupart du temps, un PDU de niveau N+1 est vu comme la charge utile d’un PDU de niveau N.

L’encapsulation permet donc d’inclure un PDU de niveau N dans un PDU de niveau N-1. Comme le paquet transmis doit être désencapsulé au niveau du destinataire afin d’être remis à la bonne couche, l’encapsulation requiert de rajouter l’identité du protocole de niveau supérieur.

Ainsi, pour transférer une donnée applicative venant de notre objet connecté, chaque couche va rajouter des informations de contrôle, pour permettre l’échange de bout en bout, pour le routage, pour la fiabilité, etc.  Au final, une trame, un PDU de niveau 2 donc, est transmise sur le support de transmission.

Chaque support de transmission possède une capacité maximale d’information transportable simultanément et qui s’appelle la MTU, pour Maximum Transmission Unit. C’est principalement une limite physique qui dépend essentiellement du médium utilisé. Ainsi, pour un réseau Ethernet, la MTU est de 1 500 octets.

Que se passe-t-il si nous souhaitons transmettre un paquet de taille supérieure à la MTU ?

Dans certains cas que nous verrons plus tard, le paquet peut être rejeté.

Sinon, il va découper en plusieurs petits paquets de taille inférieure à la MTU :  c’est ce qu’on appelle la fragmentation.

Notez que la fragmentation peut se produire n’importe où sur le chemin entre l’objet connecté et le serveur, dès qu’un paquet excède la valeur MTU d’un réseau, mais que le réassemblage des fragments ne se fait qu’au niveau du destinataire.

Le chapitre deux est maintenant terminé. Nous avons vu ensemble des concepts fondamentaux tels que l’architecture en couche, les idées clefs derrière chaque protocole de communication ainsi que les notions de point d’accès au service, de PDU, d’encapsulation et de fragmentation. 

Exemple de certificat de réussite
Exemple de certificat de réussite