Réseaux · C4 Couches hautes · Chapitre 2 · 5 h
Couche application
Le modèle client-serveur ; DNS, HTTP et HTTPS, messagerie, DHCP ; et les notions de base de sécurité : chiffrement en transit, mot de passe, pare-feu.
Nous voici au sommet de la pile, celui que vous utilisez sans y penser à chaque instant. Les sept chapitres précédents ont construit un tuyau fiable et mondial ; la couche application est ce que les programmes en font. Quand vous chargez une page web, une chorégraphie invisible se déclenche en une fraction de seconde : votre machine obtient une adresse (DHCP), traduit le nom du site en adresse IP (DNS), établit une connexion (TCP, chapitre 7) et demande la page (HTTP). Ce chapitre démonte cette chorégraphie.
C'est aussi le chapitre où l'on voit converger tout le cours : chaque service applicatif s'appuie sur les couches du dessous, et fait un choix — TCP ou UDP, tel port, tel protocole — qu'on sait désormais interpréter.
Le modèle client-serveur
La plupart des applications réseau suivent le modèle client-serveur. Le serveur attend passivement, à l'écoute sur un port connu (chapitre 7) ; le client prend l'initiative, se connecte, envoie une requête, reçoit une réponse. Votre navigateur est un client, le site un serveur ; votre application de courriel est un client, le serveur de messagerie un serveur.
Ce modèle est asymétrique par nature : le serveur doit être joignable en permanence à une adresse stable (d'où l'importance du DNS, plus bas), le client peut apparaître et disparaître. Il existe d'autres organisations — le pair-à-pair, où chaque machine est à la fois client et serveur — mais le client-serveur reste le modèle dominant, et celui de tous les services de ce chapitre.
DNS : traduire les noms en adresses
Vous tapez www.exemple.fr, mais le routage (chapitre 6) ne connaît que des adresses IP. Le
DNS (Domain Name System) fait le pont : il traduit les noms en adresses. C'est
l'annuaire d'Internet — et l'une des idées les plus élégantes du réseau.
Sa force est qu'il n'existe aucun annuaire central. Le DNS est une base de données distribuée et hiérarchique, lue de droite à gauche :
www . exemple.fr . │ │ └── géré par les serveurs racines │ └───────── géré par les serveurs du TLD « .fr » └──────────────── géré par les serveurs du domaine « exemple.fr »Résoudre un nom, c'est descendre cette hiérarchie : demander à un serveur racine où trouver
.fr, puis au serveur .fr où trouver exemple.fr, puis au serveur du domaine l'adresse de
www. Chaque niveau ne connaît que le suivant — cette délégation est ce qui permet au système
de gérer des milliards de noms sans effondrement.
Deux points pratiques essentiels. D'abord, le cache : les réponses sont mémorisées (pour une durée, le TTL), sinon chaque clic redemanderait toute la chaîne aux serveurs racines, qui s'effondreraient sous la charge mondiale. Ensuite, le protocole : le DNS emploie surtout UDP (chapitre 7) — question courte, réponse courte, rapidité prioritaire, et on redemande si une réponse se perd. C'est exactement le profil pour lequel UDP existe. L'exercice de ce chapitre vous fera dérouler cette résolution, cache compris.
Quiz · 1 question
Pourquoi le DNS est-il organisé de façon hiérarchique et distribuée plutôt qu'en un annuaire central unique, et pourquoi le cache y est-il crucial ?
- Pour des raisons historiques, sans réel avantage technique aujourd'hui — historique
- Parce qu'aucun serveur ne peut connaître ni servir tous les noms du monde : la hiérarchie délègue chaque niveau au suivant, et le cache évite de resolliciter les serveurs racines à chaque requête — extensibilité par délégation + cache
- Parce que la hiérarchie rend les noms plus faciles à mémoriser pour les humains — mémorisation humaine
Réponse : Un annuaire central ne tiendrait ni la charge mondiale ni la mise à jour permanente de milliards de noms. La hiérarchie distribue la responsabilité : chaque niveau (racine, TLD, domaine) ne gère et ne connaît que le niveau suivant, ce qui rend le système extensible et robuste. Le cache est crucial car, sans lui, chaque résolution repartirait des serveurs racines — une poignée de serveurs qui s'effondreraient sous la charge planétaire. Le cache absorbe l'immense majorité des requêtes localement.
HTTP et HTTPS : le web
HTTP (HyperText Transfer Protocol) est le protocole du web, sur le port 80. Il est
client-serveur et requête-réponse : le navigateur envoie une requête (GET /index.html,
« donne-moi cette page »), le serveur renvoie une réponse (la page, précédée d'un code de
statut : 200 succès, 404 introuvable, 500 erreur serveur, 301 déplacé). HTTP repose sur
TCP (chapitre 7) : le web exige que la page arrive complète et dans l'ordre, c'est le profil
« fiabilité avant tout ».
HTTPS est HTTP chiffré, sur le port 443. Il ajoute une couche de sécurité (TLS) entre TCP et HTTP, qui chiffre les échanges et authentifie le serveur — vous parlez bien au site annoncé, et personne sur le chemin ne peut lire ni modifier le contenu. C'est aujourd'hui le standard : le web non chiffré disparaît. Retenez la distinction : HTTP transporte en clair, HTTPS chiffre en transit — la première des notions de sécurité de ce chapitre.
Messagerie et DHCP
Deux autres services complètent le tableau du quotidien.
La messagerie électronique combine plusieurs protocoles : SMTP pour envoyer un message (de client à serveur, puis de serveur à serveur), IMAP (ou l'ancien POP) pour consulter sa boîte depuis un client. La séparation envoi/réception explique une réalité familière : un problème de « je ne reçois plus » et un problème de « je ne peux plus envoyer » relèvent de protocoles différents.
DHCP (Dynamic Host Configuration Protocol) est le service qui vous configure automatiquement en arrivant sur un réseau. Sans lui, il faudrait saisir à la main, sur chaque machine, son adresse IP, son masque (chapitre 5), sa passerelle par défaut (chapitre 6) et son serveur DNS. DHCP les attribue automatiquement : à la connexion, votre machine diffuse « qui peut me configurer ? », un serveur DHCP lui répond avec un jeu de paramètres pour une durée donnée. C'est le service invisible qui fait qu'un téléphone rejoint un Wi-Fi « tout seul » — et, là encore, il emploie surtout UDP.
Notez la belle mise en abyme : DHCP vous donne l'adresse (chapitre 5) et la passerelle (chapitre 6), et vous indique le serveur DNS, qui vous permettra ensuite de résoudre les noms. Tout le cours se retrouve dans les premières secondes d'une connexion.
Notions de base de sécurité
La sécurité mérite un chapitre entier (et un cours entier, en L3) ; on en pose ici les trois idées minimales, ancrées dans ce qu'on a vu.
Le chiffrement en transit protège les données pendant leur voyage sur le réseau. C'est ce que fait HTTPS : sans lui, tout ce qui transite sur un réseau (surtout un Wi-Fi public, chapitre 4) peut être lu par un tiers. Le cadenas de votre navigateur signale ce chiffrement.
Le mot de passe authentifie l'utilisateur, mais il ne vaut que s'il voyage chiffré (donc en HTTPS) et s'il est fort. Un mot de passe envoyé en HTTP clair est lisible par quiconque sur le chemin — d'où la disparition du web non chiffré.
Le pare-feu (firewall) filtre le trafic entrant et sortant selon des règles : il autorise ce qui est légitime, bloque le reste. C'est la première barrière d'un réseau contre les connexions non désirées.
Ces trois notions ne sont qu'un aperçu — elles répondent chacune à une menace précise (écoute, usurpation d'identité, intrusion), et le cours de cybersécurité de L3 les reprendra en profondeur, attaques à l'appui.
Quiz · 1 question
Un utilisateur saisit son mot de passe sur un site en HTTP (non chiffré) depuis un Wi-Fi public. Quel est le risque, et qu'est-ce qui l'aurait évité ?
- Aucun risque : le mot de passe est protégé par le serveur — protection côté serveur
- Le mot de passe circule en clair et peut être lu par un tiers sur le réseau ; HTTPS (chiffrement en transit) l'aurait protégé — chiffrement en transit
- Le risque vient uniquement de la force du mot de passe, pas du protocole — seule la force compte
Réponse : En HTTP, les données — mot de passe compris — voyagent en CLAIR. Sur un Wi-Fi public, où le médium est partagé (chapitre 4), n'importe qui à portée peut les intercepter et les lire. HTTPS aurait chiffré la communication en transit, rendant le mot de passe illisible pour un tiers, et aurait authentifié le serveur. La force du mot de passe compte aussi, mais elle ne sert à rien s'il est transmis en clair : le chiffrement en transit est ici la protection déterminante. C'est pourquoi le web bascule entièrement vers HTTPS.
À vous
L'exercice fait dérouler la résolution DNS, la première étape invisible de toute navigation. Vous
implémentez la descente dans la hiérarchie — racine, puis .fr, puis le domaine — avec un
cache, et vous comptez les requêtes réseau : trois pour la première résolution, zéro pour la
seconde grâce au cache.
Vous verrez concrètement pourquoi le DNS doit être hiérarchique (personne ne connaît tout l'Internet) et pourquoi le cache est vital (sans lui, les serveurs racines crouleraient). Et vous retrouverez, en filigrane, le choix d'UDP du chapitre 7 : question courte, réponse courte, rapidité d'abord.
Exercice de code
Implémentez la résolution DNS récursive d'un nom, de la racine au serveur du domaine, avec un cache. Comptez les requêtes réseau : la première résolution en coûte trois, la seconde zéro grâce au cache. Comprenez pourquoi le DNS est hiérarchique et pourquoi le cache est vital.
Point de départ
// Le DNS traduit un NOM (www.exemple.fr) en ADRESSE IP. Il n'existe pas UN
// annuaire géant : le nom est résolu par une HIÉRARCHIE de serveurs, lus de
// DROITE à GAUCHE — racine, puis .fr, puis exemple.fr.
// La hiérarchie (simulée). Chaque niveau connaît le serveur du niveau suivant.
const RACINE = { "fr": "serveur .fr", "com": "serveur .com" };
const TLD_FR = { "exemple.fr": "serveur exemple.fr" };
const AUTO_EX = { "www.exemple.fr": "93.184.5.10", "mail.exemple.fr": "93.184.5.20" };
const cache = {}; // nom -> IP (mémorise les réponses passées)
let requetes = 0;
function demander(serveur, question) {
requetes++;
console.log(" requête #" + requetes + " -> " + serveur + " : « " + question + " ? »");
if (serveur === "racine") return RACINE[question];
if (serveur === "serveur .fr") return TLD_FR[question];
if (serveur === "serveur exemple.fr")return AUTO_EX[question];
}
// ── À VOUS : la résolution récursive ────────────────────────────────────────
// Pour résoudre "www.exemple.fr" :
// 1. si le nom est dans le cache, le renvoyer SANS aucune requête réseau
// 2. sinon : demander à la racine le serveur de "fr",
// puis à ce serveur le serveur de "exemple.fr",
// puis à ce serveur l'IP de "www.exemple.fr"
// 3. mettre le résultat en cache
function resoudre(nom) {
if (cache[nom]) { console.log(" (cache) " + nom + " = " + cache[nom]); return cache[nom]; }
// à compléter :
// const srvFr = demander("racine", "fr");
// const srvDom = demander(srvFr, "exemple.fr");
// const ip = demander(srvDom, nom);
// cache[nom] = ip; return ip;
return null;
}
// ── Vérification ────────────────────────────────────────────────────────────
console.log("1re résolution de www.exemple.fr :");
console.log(" => " + resoudre("www.exemple.fr"));
console.log("");
console.log("2e résolution de www.exemple.fr :");
console.log(" => " + resoudre("www.exemple.fr"));
console.log("");
console.log("Total de requêtes réseau émises :", requetes);
Solution
function resoudre(nom) {
if (cache[nom]) { console.log(" (cache) " + nom + " = " + cache[nom]); return cache[nom]; }
const srvFr = demander("racine", "fr"); // racine -> serveur .fr
const srvDom = demander(srvFr, "exemple.fr"); // .fr -> serveur du domaine
const ip = demander(srvDom, nom); // domaine -> IP finale
cache[nom] = ip; // on mémorise
return ip;
}
// 1re résolution : 3 requêtes (racine, .fr, exemple.fr) -> 93.184.5.10
// 2e résolution : 0 requête, le cache répond.
// Total : 3 requêtes réseau, pas 6.
// ── Ce que l'exercice enseigne ──────────────────────────────────────────────
//
// 1. Le DNS est une BASE DE DONNÉES DISTRIBUÉE et HIÉRARCHIQUE. Aucun serveur
// ne connaît tout l'Internet ; chaque niveau connaît seulement le serveur
// du niveau en dessous. On lit le nom de DROITE à GAUCHE : racine -> TLD
// (.fr) -> domaine (exemple.fr) -> hôte (www). Cette délégation est ce qui
// rend le système extensible à des milliards de noms.
//
// 2. Le CACHE est vital. Sans lui, chaque clic redemanderait toute la chaîne
// à la racine — quelques serveurs racines s'effondreraient sous la charge
// mondiale. Avec lui, la 2e résolution coûte 0 requête. Les réponses ont
// une durée de vie (TTL) après laquelle le cache est rafraîchi.
//
// 3. Le DNS emploie surtout UDP (chapitre 7) : une question courte, une
// réponse courte, la rapidité prime — et si une réponse se perd, on
// redemande. C'est exactement le profil « UDP » vu au chapitre transport.
//
// 4. C'est la PREMIÈRE étape invisible de toute navigation : avant même de
// contacter un site en HTTP, le navigateur résout son nom en IP. Une panne
// DNS donne l'impression que « tout Internet est cassé » alors que le
// routage fonctionne — un grand classique du dépannage (chapitre 9).
Ce que la suite en fait
La pile est complète, de bout en bout : du signal sur le fil jusqu'à la page web affichée. Vous comprenez maintenant chaque étage et chaque protocole majeur, et surtout comment ils coopèrent — une simple navigation mobilise DHCP, DNS, TCP et HTTP, sur IP, sur Ethernet ou Wi-Fi, sur un support physique.
Le chapitre 9, dernier du cours, est entièrement pratique. Il apprend à configurer une machine et surtout à diagnostiquer une panne — non pas au hasard, mais méthodiquement, couche par couche, en partant du bas. Toute la structure en couches du cours y devient un outil de travail : savoir à quelle couche se situe un problème, c'est déjà l'avoir à moitié résolu.
À retenir
Flashcards · 4 cartes
- Qu'est-ce que le DNS, et pourquoi est-il hiérarchique et distribué ?
- Le DNS traduit les NOMS (www.exemple.fr) en adresses IP — l'annuaire d'Internet. Il est distribué et hiérarchique (lu de droite à gauche : racine → TLD .fr → domaine) parce qu'aucun serveur ne peut connaître tous les noms : chaque niveau délègue au suivant, ce qui rend le système extensible à des milliards de noms. Le cache (avec TTL) évite de ressolliciter les serveurs racines à chaque requête. Le DNS emploie surtout UDP.
- Quelle est la différence entre HTTP et HTTPS, et sur quel transport reposent-ils ?
- HTTP (port 80) est le protocole requête-réponse du web (GET, codes 200/404/500…), en CLAIR. HTTPS (port 443) est HTTP protégé par TLS : il chiffre les échanges et authentifie le serveur. Les deux reposent sur TCP, car une page doit arriver complète et dans l'ordre. HTTPS est devenu le standard : le web non chiffré disparaît, car en clair tout est lisible sur le chemin.
- À quoi sert DHCP, et que configure-t-il automatiquement ?
- DHCP configure automatiquement une machine qui rejoint un réseau : il lui attribue une adresse IP, un masque (chapitre 5), une passerelle par défaut (chapitre 6) et un serveur DNS, pour une durée donnée. Sans lui, il faudrait tout saisir à la main sur chaque machine. C'est le service invisible qui fait qu'un appareil rejoint un Wi-Fi « tout seul » (il emploie surtout UDP).
- Quelles sont les trois notions de base de sécurité réseau, et à quelle menace chacune répond-elle ?
- Le chiffrement en transit (HTTPS/TLS) protège les données pendant leur voyage contre l'ÉCOUTE — crucial sur un Wi-Fi public. Le mot de passe authentifie l'utilisateur (mais doit voyager chiffré et être fort) contre l'USURPATION d'identité. Le pare-feu filtre le trafic selon des règles contre l'INTRUSION. Ce n'est qu'un aperçu — le cours de cybersécurité de L3 les approfondit, attaques à l'appui.