Skip to content

NSI - 1B - Modèle en couche

Architecture client - serveur

Nous allons décrire les mécanismes qui permettent à des ordinateurs d’échanger des informations sur un réseau informatique.

Considérons le cas d'une personne souhaitant consulter une page web depuis un ordinateur connecté en réseau.

Sur la figure ci-dessus :

  • l'utilisateur émet, via son ordinateur (nommé client) connecté au réseau et son logiciel Chrome, la demande de la page (on parle alors de requète HTTP) ;
  • l'ordinateur distant, nommé serveur doté du logiciel Apache et lui aussi connecté au réseau, délivre la page web demandée (réponse HTTP).

On dit que la consultation de pages web est basée sur une architecture client - serveur.

Architecture client / serveur

L'architecture client - serveur désigne un mode de communication entre plusieurs programmes ou logiciels à travers un réseau informatique :

  • l'un, qualifié de logiciel client, envoie des requêtes (des "demandes") ;
  • l'autre, qualifié de logiciel serveur, attend les requêtes des clients et y répond.

Par extension :

  • le terme client désigne aussi l'ordinateur, la tablette, …, sur lequel est exécuté le logiciel client ;

  • le terme serveur désigne aussi l'ordinateur, l'objet connecté, …, sur lequel est exécuté le logiciel serveur.

Nature de l'information transmise sur un réseau informatique

Toutes les informations transmises sur un réseau informatique (photos, vidéos, fichiers, pages web, etc...) sont systématiquement de nature numérique.

Considérons la page web suivante :

Lors de l'envoi de cette page web au client, le serveur transmet ces données numériques sur le réseau (remarque : ici les octets sont écrits en base 16) :

72 84 84 80 47 49 46 49 32 50 48 48 32 79 75 13 10 68 97 116 101
58 32 83 97 116 44 32 49 50 32 78 111 118 32 50 48 49 53 32 50 48
58 51 49 58 48 48 32 71 77 84 13 10 13 10 60 33 100 111 99 116 121
112 101 32 104 116 109 108 62 32 60 104 116 109 108 62 32 60 104 101 97 100
62 32 60 116 105 116 108 101 62 32 72 101 108 108 111 32 87 111 114 108 100
32 60 47 116 105 116 108 101 62 32 60 104 101 97 100 62 32 60 98 111 100
121 62 32 60 104 49 62 72 101 108 108 111 32 87 111 114 108 100 60 47 104
49 62 32 60 47 98 111 100 121 62 32 60 47 104 116 109 108 62

Ici les données numériques transmises sont des octets (il y a ici 165 octets de transmis lors de l'envoi de la page web).

C’est l’ensemble de ces octets qu’il faut transmettre à l'ordinateur client.

Le logiciel client (navigateur web) se chargera de traduire ces données numériques et d’afficher la page web correspondante :

Pour imager ce cours, on va considérer que l’ensemble de ces octets est écrit sur une lettre :

Rappel

Un octet est une valeur numérique comprise entre 0 et 255 inclus.

A noter qu'un octet peut être écrit dans différentes bases numériques.

La base numérique utilisée impose l'usage d'un certain nombre de chiffres pour l'écriture d'un nombre :

  • en décimal (base 10) : 10 chiffres (de 0 à 9) ;
  • en hexadécimal (base 16) : 16 chiffres (de 0 à 9 puis A à F) ;
  • en binaire (base 2) : 2 chiffres (de 0 à 1).

Exemple :

(72)10 = (48)16 = (01001000)2

Transite des données numériques

Couche application

Cette lettre va devoir transiter du serveur vers le logiciel client (navigateur web) en traversant chacun les constituants du réseau informatique :

Afin que cette lettre soit correctement acheminée vers le client, le serveur va devoir ajouter des informations de contrôle supplémentaire.

Notion de protocole

L'acheminement des données numériques sur un réseau informatique est régi par un ensemble de règles (de protocoles) organisé selon le modèle Internet (on parle plus généralement de modèle OSI pour Open Systems Interconnection).

Ce modèle a donc été imposé à tous les constructeurs afin de rendre les matériels / les logiciels compatibles entre eux.

Il n’est en effet pas imaginable de laisser chaque grand constructeur de matériel informatique et réseau définir, de façon indépendante, ses propres règles d’échange. Les matériels, de constructeurs différents, ne seraient alors pas compatibles…

Notion de couche application

Dans ce modèle, cette lettre correspond à la donnée logicielle à transmettre :

Cette donnée est associée à ce que l'on appelle la couche application du modèle.

Couche transport

Notion de numéro de port

Chaque application logicielle communicante sur un réseau est identifiée par un numéro de port.

Un numéro de port (de valeur décimale comprise entre 0 et 65535) sert à identifier l’application logicielle en cours de communication sur le réseau.

Remarque

Pour l'attribution des numéro de port, il faut distinguer les deux situations suivantes :

  • cas d’une application client : le numéro de port utilisé par l’application logicielle client est attribué par le système d’exploitation sur demande de l’application logicielle ;
  • cas d’une application serveur : le numéro de port utilisé par l’application logicielle serveur est fixe et connu de l’application client.

Revenons à notre étude, le navigateur web (application cliente) s’est donc vu attribuer un numéro de port (ici 48541) par le système d’exploitation de l’ordinateur client.

Le logiciel serveur web utilise le port fixe 80 (par défaut) dédié aux requêtes web HTTP.

Pour bien comprendre l'intérêt du numéro de port, considérons que deux navigateurs web soient ouverts sur l'ordinateur client :

Le numéro de port permet d'identifier le navigateur web sur lequel la page web demandée doit s'afficher.

On comprend bien que le navigateur web a dû communiquer son numéro de port au serveur web lors de la demande de page web et que le serveur doit spécifier le numéro de port du navigateur web lors de l'envoi de la page.

Pour que la lettre soit acheminée vers le bon navigateur web, le serveur va donc "placer la lettre dans une enveloppe" en ajoutant les numéros de port :

  • de l’application de destination (navigateur web) : 48541
  • du logiciel à l’origine de l’envoi (source : logiciel serveur web) : 80

A la réception, le client se chargera d’ouvrir, si elle lui est destinée, l’enveloppe contenant la lettre :

Définition

La couche transport est donc responsable de l'acheminement des données entre les applications logicielles au travers des réseaux.

Cette couche assure le transport des données de bout en bout, c'est-à-dire de l’émetteur vers le destinataire, sans s’occuper des interfaces intermédiaires que les données vont traverser.

Remarque

La couche transport peut autoriser deux modes de connexion :

  • Mode connecté utilisant le protocole de transport TCP (Transmission Control Protocol). TCP est un protocole fiable. Le destinataire répond à l’émetteur en signalant qu’il a bien reçu les données et les redemande en cas d’erreur de transmission.
  • Mode non-connecté utilisant le protocole de transport UDP (User Datagram Protocol). UDP est moins fiable (le destinataire ne répond pas à l’émetteur) mais plus rapide que le protocole TCP.

Dans le cas des requêtes et réponses HTTP liées à l'accès à une page web, c’est le protocole TCP qui est utilisé.

Segmentation des données

Les données numériques émises (page web, photo, flux vidéo, ...) sur un réseau informatique ne circulent pas "d'un seul bloc".

Par exemple le protocole TCP divisent en réalité ces données en paquets d'une taille maximale de 1500 octets. Chaque paquet étant numéroté.

Ceci à l'avantage de pouvoir ne redemander que les paquets perdus en cas de défaillance.

Le chapitre sur le protocole TCP détaille plus précisément le fonctionnement de ce protocole.

Couche réseau

L'ordinateur client à atteindre et les équipements que l’enveloppe doit traverser pour atteindre ce client ne sont pas nécessairement sur le même réseau.

Notion de réseau

Un réseau est un ensemble d'équipements réseaux "directement accessibles" (sans passage par un routeur).

En présence du schéma de câblage d'un réseau informatique, la localisation des équipements nommés routeur permet de localiser visuellement les réseaux physiques.

En effet, la présence d'un routeur "marque" physiquement le passage d'un réseau à un autre.

Routeur

Un routeur est un équipement disposant d'au moins deux interfaces réseau, chacune d'elles étant connectée physiquement à un réseau différent.

Un routeur possède une carte réseau pour chaque réseau qu'il interconnecte.

Par exemple sur la figure ci-dessous :

  • les équipements PC1, PC2 et Serveur sont sur le même réseau physique ;
  • l'ordinateur Client est sur un réseau physique différent du Serveur.

Rappel

Tout équipement connecté à un réseau est associé à un identifiant logiciel unique nommée adresse IP.

Retour sur notre exemple, voici l'adressage IP de chacune des interfaces réseau :

On remarque que l'adresse IP est associée à un second paramètre que l'on nomme masque de sous-réseau (noté ici selon la notation CIDR /x avec x correspondant aux nombres de 1 présents dans le masque de sous-réseau écrit en binaire).

Topologie réseau

L'exemple étudié ici est simple.

La réalité est plus complexe car le nombre de routeurs à traverser peut être plus important. La donnée numérique peut alors être acheminée via plusieurs chemins possibles.

Sur un réseau informatique, il n'y a pas qu'une seule route possible pour transmettre un paquet de données.

Si un routeur est défaillant (panne, surcharge entraînant un ralentissement de la communication, ...) un paquet peut transiter via une autre route.

Afin que l’enveloppe soit correctement acheminée (routée) sur les différents réseaux, à destination de l’ordinateur client, le serveur va "placer l’enveloppe dans un colis" en ajoutant les adresses IP :

  • de l’ordinateur destinataire (ici le client) : 192.168.1.1
  • de l’interface réseau à l’origine de l’envoi (source : ici le serveur) : 10.10.10.253 (son adresse IP)

Ce colis va être routé à destination de l'ordinateur client.

Le serveur, dont l'adresse est 10.10.10.253 analyse le colis à transmettre :

  • Le serveur constate que l'adresse IP 192.168.1.1 de l'ordinateur destinataire n'est pas une adresse du réseau 3 ;
  • Le colis contenant l’enveloppe est donc acheminé du serveur vers le routeur B en passant par l'interface réseau d'adresse 10.10.10.254 (on dit que le routeur B fait office de passerelle pour serveur).

Le routeur B analyse alors le colis ainsi reçu :

  • Le routeur B constate que l'adresse IP 192.168.1.1 n'est pas une adresse du réseau 2 ;
  • Le colis contenant l’enveloppe est donc acheminé du routeur B vers le routeur A en passant par l'interface réseau d'adresse 88.88.88.1 (le routeur A fait ici office de passerelle pour le routeur B).

Le routeur A analyse alors le colis ainsi reçu :

  • Le routeur A constate que l'adresse IP 192.168.1.1 est une adresse du réseau 1 auquel il est connecté ;
  • Le colis contenant l’enveloppe est donc acheminé du routeur A vers l'ordinateur client en passant par l'interface réseau d'adresse 192.168.1.1.

L'ordinateur client d'adresse IP 192.168.1.1 analyse le colis reçu :

  • il constate qu'il en est le destinataire ;
  • il exploite les données numériques reçues (ici affichage de la page web).

Notion de passerelle et de table de routage

  • Chaque ordinateur se voit attribuer une adresse de passerelle lors de la configuration du réseau.

  • Chaque routeur dispose en interne d'une table de routage indiquant vers quelle interface réseau le paquet de données doit être routé selon le réseau à atteindre.

Définition

La couche réseau assure donc l’acheminement, on parle de routage, des enveloppes, plus rigoureusement appelé paquets, sur le réseau.

Cette couche gère, entre autre, ce que l'on appelle adressage IP.

La couche réseau s'appuie sur le protocole IP.

Simplification

Pour faciliter la compréhension de la notion de routage, le concept de translation d’adresses IP (NAT) est ici volontairement occulté (et donc par la même occasion la notion d'adresses IP privée / publique).

Notion d'encapsulation

On voit apparaître ici une notion fondamentale dans les réseaux : la notion d'encapsulation de l'information.

Durée de vie d'un paquet

La durée de vie d'un paquet est limitée afin d'éviter qu'il ne circule indéfiniment sur le réseau.

Le protocole IP ajoute un octet TTL (Time To Live pour durée de vie) compris entre 1 et 255 au paquet à transmettre.

Ce nombre décroît d'une unité à chaque fois qu'un paquet passe par un routeur.

Lorsque ce nombre arrive à 0, le paquet n'est plus routé sur le réseau.

Couche liaison

Avant d’atteindre le premier routeur, notre colis doit être correctement acheminé sur le réseau local ici d'adresse 10.10.0.0 :

Ce rôle est confié au switch (ou commutateur).

Aiguillage des données sur le réseau local

Le switch (ou commutateur) aiguille, sur un réseau local, les données au bon destinataire grâce à l'adresse physique du destinataire (nommée adresse MAC).

Cette adresse MAC est UNIQUE pour chaque carte réseau.

Une adresse MAC est codé sur 6 octets espacé par :.

Chaque octet de l'adresse MAC est écrit en base 16 (hexadécimal), exemples :

AD:ED:1C:00:00:E1

7A:D3:13:10:F0:F5

Voici les adresses MAC de la carte réseau du routeur B et de la carte réseau du Serveur :

Remarque

Dans chaque switch se trouve une table de données appelée « table MAC ».

Cette table fait le lien entre les ports matériels du switch et les adresses MAC sources qui arrivent sur les entrées.

Forcément, lorsque l'on démarre un switch, ce dernier ne peut pas savoir quel équipement est connecté sur tel ou tel port matériel, la table est donc logiquement vide. Le switch construit sa table par « Apprentissage ».

Afin que le colis soit correctement aiguillé par le switch sur le réseau local, le serveur va "placer le colis dans une valise" en ajoutant les adresses MAC :

  • de la carte réseau à atteindre (destinataire : ici le routeur B):

AD : ED : 1C : 00 : 00 : E1

  • de la carte réseau à l’origine de l’envoi (source : ici le serveur) :

7A : D3 : 13 : 10 : F0 : F5

Le switch ne modifie pas la valise ni son contenu, il se contente de "lire" les adresses MAC pour aiguiller correctement les données sur le réseau local.

Notion de couche liaison

La couche liaison assure donc l'acheminement local, via l’adressage physique MAC, des valises plus rigoureusement nommées trames.

Cette couche est basée sur le protocole Ethernet.

Encapsulation

Voici finalement le message d’origine émis par le serveur, on parle de trame :

L’imbrication des différentes couches s’appelle l’encapsulation.

Couche physique

Définition

La couche physique permet l’acheminement d’un point de vue matériel et électrique (support de transmission, signal électrique, codage des bits utilisé, …) de la trame Ethernet.

Exemple d'interfaces matériel Wifi et Ethernet :

Définition

Le modèle Internet complet (plus généralement modèle OSI) est donc le suivant :

Niveau des constituants

Pour résumer, voici le rôle de chacun des constituants du réseau informatique étudié et les protocoles utilisés associés à chaque couche :