La couche application

Découvre le fonctionnement des protocoles applicatifs d’Internet et les raisons de leur conception. Compare les architectures client-serveur et pair à pair et choisis entre TCP et UDP. Lis des messages HTTP, explique les cookies, la mise en cache, HTTP/2 et HTTP/3 sur QUIC, et suis des résolutions DNS et l’acheminement de courriels. Calcule les temps de distribution en pair à pair, explique la diffusion vidéo adaptative en continu et les réseaux de diffusion de contenu, puis écris en Python des programmes client et serveur simples avec UDP et TCP.

IntermédiaireUnité 2 sur 8 de la formation Formation : Réseaux informatiques : protocoles Internet, TCP/IP et routage

Ce que tu vas apprendre

  1. Compare les architectures client-serveur et pair à pair, décris comment les processus applicatifs échangent des messages par des sockets et fais correspondre les besoins d’une application aux services offerts par TCP et UDP.
    • Compare les architectures client-serveur et pair à pair
      Décris comment chaque architecture attribue des rôles aux hôtes, pourquoi les architectures pair à pair s’adaptent à l’augmentation du nombre d’utilisateurs et quels défis pose chaque architecture.
    • Décris comment les processus communiquent et choisis un service de transport
      Explique les sockets, l’adressage des processus et ce que définit un protocole de la couche application, puis détermine si une application doit utiliser TCP ou UDP.
  2. Lis et analyse les messages et les connexions HTTP, explique le fonctionnement des cookies et des caches, puis décris comment HTTP/2 et HTTP/3 modifient l’acheminement des messages.
    • Lis des messages HTTP et compare les types de connexion
      Interprète les requêtes et les réponses HTTP et calcule l’effet des connexions persistantes et non persistantes sur le temps de chargement d’une page.
    • Explique le fonctionnement des cookies et des caches web
      Décris comment les cookies permettent aux sites web de reconnaître les utilisateurs malgré l’absence d’état de HTTP, et calcule comment un serveur mandataire avec cache et des requêtes conditionnelles réduisent les délais et le trafic.
    • Explique comment HTTP/2 et HTTP/3 avec QUIC accélèrent le Web
      Décris le blocage en tête de file et explique comment les trames HTTP/2 et HTTP/3 sur QUIC réduisent les délais sans modifier le sens des messages HTTP.
  3. Suis une résolution de nom dans la hiérarchie DNS, lis des enregistrements et des messages DNS et explique comment la mise en cache et une architecture distribuée rendent le DNS rapide et résilient.
    • Suis une résolution de nom dans la hiérarchie DNS
      Décris les services fournis par DNS et les rôles des serveurs racine, de domaine de premier niveau, faisant autorité et locaux, puis suis étape par étape les requêtes d’une résolution.
    • Lis des enregistrements et des messages DNS
      Interprète les types courants d’enregistrements de ressource, suis comment les enregistrements relient les niveaux de la hiérarchie et lis les requêtes et réponses DNS ainsi que leurs faiblesses en matière de sécurité.
  4. Suis un message de l’expéditeur au destinataire avec SMTP, lis des dialogues de transfert et des formats de message, puis explique comment les protocoles d’accès à la messagerie permettent aux utilisateurs de lire leurs courriels.
    • Suis le transfert d’un message par SMTP
      Décris les composantes du système de messagerie électronique, suis un dialogue SMTP entre serveurs de messagerie et explique comment les courriels sont soumis et comment les usurpations d’expéditeur sont détectées.
    • Explique les formats des messages et les protocoles d’accès à la messagerie
      Lis les en-têtes et la structure MIME d’un courriel et compare IMAP, POP3 et la messagerie web comme moyens de lire les messages.
  5. Calcule pourquoi la distribution de fichiers en pair à pair passe à l’échelle, explique comment BitTorrent partage un fichier et décris comment la diffusion adaptative en continu et les réseaux de diffusion de contenu acheminent la vidéo à des millions de spectateurs.
    • Calcule le temps de distribution en pair à pair et explique BitTorrent
      Compare le temps minimal nécessaire pour distribuer un fichier avec un serveur et en pair à pair, puis explique le fonctionnement des fragments, des requêtes donnant la priorité aux fragments les plus rares et des échanges donnant-donnant de BitTorrent.
    • Explique la diffusion vidéo adaptative en continu sur HTTP
      Relie les débits binaires vidéo au débit effectif du réseau et explique comment les clients DASH choisissent les segments pour assurer une lecture fluide.
    • Explique comment les réseaux de diffusion de contenu acheminent le contenu
      Décris pourquoi les fournisseurs de contenu utilisent des CDN, compare les façons de placer leurs serveurs et suis comment DNS dirige une requête vers un serveur CDN proche.
  6. Utilise le module socket de Python pour créer des clients et des serveurs UDP et TCP, et explique comment le comportement de chaque programme découle du service de transport sous-jacent.
    • Crée un client et un serveur UDP
      Écris et explique une paire client-serveur UDP en Python, en abordant l’adressage, l’encodage, les délais d’attente et les limites de l’acheminement des datagrammes.
    • Crée un client et un serveur TCP
      Écris et explique une paire client-serveur TCP en Python, traite correctement le flux d’octets TCP et utilise une socket pour communiquer en HTTP à la main.

Couche application : cours

6 chapitres

1

Conception des applications et services de transport

Les programmes en réseau ont besoin d’une organisation qui détermine qui communique avec qui et d’un service qui transporte leurs données. Un navigateur qui récupère un fichier et un jeu qui envoie des mises à jour de position peuvent partager le même Internet tout en faisant des choix de conception différents. Suis un échange depuis les processus à ses extrémités jusqu’à leurs sockets, puis compare les services offerts par TCP, UDP et les protocoles de transport sécurisés en matière de fiabilité, de délais, de débit effectif et de protection.

1.1 Où s’exécutent les programmes applicatifs

Une application réseau se compose de programmes exécutés sur des systèmes terminaux : téléphones, ordinateurs portables et serveurs. Leurs processus échangent des messages à travers le réseau. Les routeurs et les commutateurs transfèrent les paquets ; il n’est pas nécessaire d’y installer un nouveau programme applicatif chaque fois qu’un nouveau service est créé.

Deux façons de répartir le travail

Une architecture applicative décrit la manière dont l’application répartit le travail entre les hôtes. Elle est distincte de l’architecture en couches du réseau. Le développeur choisit où les programmes s’exécutent en s’appuyant sur le réseau existant pour les connecter.

Dans une architecture client-serveur, les clients contactent un serveur toujours actif à une adresse connue. Un navigateur demande un document à un serveur web, qui le renvoie. Les autres navigateurs n’ont pas besoin d’être connectés pour que cet échange fonctionne. Un service populaire peut répartir son rôle de serveur sur des milliers de machines dans des centres de données ; un seul nom public peut représenter ce groupe. Le matériel, l’électricité, le refroidissement et les connexions Internet ont tous un coût.

Une architecture pair à pair, ou P2P, permet aux appareils des utilisateurs d’échanger directement des données. Un pair peut demander un fragment de fichier et envoyer aussi des fragments qu’il possède déjà. Les pairs peuvent se déconnecter ou changer d’adresse ; l’application doit donc trouver des pairs disponibles et continuer à fonctionner lorsque les participants changent.

ArchitectureQui fournit le contenu ?Que se passe-t-il lorsque des utilisateurs arrivent ?
Client-serveurDes hôtes serveurs dédiésDavantage de requêtes atteignent les serveurs du service.
P2PLes hôtes des utilisateurs participantsLa demande augmente et les pairs contribuent une capacité d’envoi.
Suis un échange

Supposons qu’un groupe de recherche distribue un grand jeu de données. Dans une architecture client-serveur, chaque chercheur télécharge une copie depuis le serveur du groupe. Dix nouveaux chercheurs représentent dix copies supplémentaires à envoyer pour ce serveur. Dans une architecture P2P, les chercheurs qui possèdent déjà certains fragments les envoient aux nouveaux arrivants. Chaque chercheur qui rejoint le réseau peut ajouter de la capacité en même temps que de la demande. C’est l’auto-extensibilité : les ressources de l’application augmentent avec la participation.

L’auto-extensibilité dépend toutefois de contributions utiles. Un pair dont la liaison d’envoi est lente ajoute moins de capacité qu’un pair doté d’une liaison rapide. De nombreuses liaisons résidentielles sont asymétriques : le téléchargement est plus rapide que l’envoi. Un pair qui se déconnecte ne contribue plus tant qu’il est hors ligne. Les logiciels P2P doivent aussi protéger les participants contre les pairs non fiables et encourager les utilisateurs à envoyer des données au lieu de se contenter d’en recevoir.

Coordination centrale et transfert direct

Une architecture hybride associe une coordination par serveur à un transfert de données en P2P. Un serveur de suivi BitTorrent renseigne un pair sur les autres pairs ; il n’a pas besoin d’envoyer le fichier lui-même. De même, un service d’appel peut localiser les participants par un serveur, laisser leurs appareils échanger directement les données audio et vidéo et utiliser un relais lorsqu’un chemin direct n’est pas disponible. Classe séparément le chemin qui transporte les données et celui qui sert à l’établir.

Les mots client et serveur désignent aussi des rôles dans un échange particulier. Si le pair Mira prend l’initiative d’envoyer une requête au pair Leo, Mira est le client et Leo le serveur pour cet échange. Ils peuvent inverser leurs rôles un instant plus tard. Le P2P supprime la dépendance à des serveurs de contenu dédiés ; il ne supprime pas les rôles de celui qui prend l’initiative et de celui qui répond.

Points clés

  • Les programmes applicatifs s’exécutent sur les systèmes terminaux ; le cœur du réseau transfère leurs paquets.
  • Les architectures client-serveur placent la capacité du service sur des hôtes dédiés.
  • Les participants au P2P ajoutent une capacité d’envoi en même temps que de la demande.
  • Une architecture hybride peut utiliser un annuaire central tandis que les pairs transfèrent le contenu.
  • Les rôles de client et de serveur dépendent de celui qui prend l’initiative de chaque échange.

1.2 Sockets, adresses et choix du transport

Un programme applicatif en cours d’exécution est un processus. Les processus situés sur des hôtes différents échangent des messages par des sockets, les interfaces logicielles entre les couches application et transport. Le code de l’application détermine le sens du message ; le service de transport achemine ses octets ou ses datagrammes.

Trouver le processus récepteur

Une adresse IP identifie un hôte, mais celui-ci peut exécuter de nombreux services. Un numéro de port identifie un point de terminaison de transport sur cet hôte. Pour contacter un service HTTPS à l’adresse 203.0.113.10, un client vise normalement le port 443. Son propre système d’exploitation lui attribue généralement un port source temporaire, dit éphémère.

Les ports sont des valeurs sur 16 bits, allant de 0 à 65 535. Les ports système occupent la plage de 0 à 1023, les ports enregistrés celle de 1024 à 49 151 et les ports dynamiques celle de 49 152 à 65 535. Parmi les ports de service courants figurent HTTP 80, HTTPS 443, le transfert SMTP 25 et DNS 53. Un port fait partie de l’adressage : il n’indique pas que le trafic est chiffré ou digne de confiance.

Définir les messages

Un protocole de la couche application définit les types de messages, leur syntaxe, leur sémantique et les règles d’échange. Les types distinguent une requête d’une réponse. La syntaxe décrit les champs et les séparateurs. La sémantique indique à chaque participant ce que signifient ces champs. Les règles d’échange déterminent quand un processus envoie un message et comment le récepteur répond. Les spécifications publiques, souvent des RFC, permettent à des programmes écrits par différents développeurs de communiquer.

Un protocole est une composante d’une application. Le Web a aussi besoin de navigateurs, de serveurs et de documents. Définir HTTP ne suffit pas à construire un navigateur ni à décider de l’apparence de son interface.

Adapter le service au besoin

Considère quatre besoins : un acheminement correct, un débit effectif suffisant, un délai acceptable et la sécurité. Une pièce jointe à un courriel exige chaque octet. Un appel vocal peut tolérer la perte d’une partie du son, mais pâtit de l’arrivée trop tardive de données audio anciennes. Une vidéo stockée nécessite un débit effectif soutenu proche de son débit binaire encodé, tandis qu’un téléchargement élastique peut utiliser le débit disponible.

ServiceCe que reçoit l’applicationCe qu’elle doit encore gérer
TCPUn flux d’octets fiable et ordonné après l’établissement de la connexionLa délimitation des messages, la sécurité et les variations de délai ou de débit effectif
UDPDes datagrammes distincts sans établissement de connexionLes pertes, les duplications, l’ordre et toute fiabilité nécessaire

TCP comprend un contrôle de flux pour protéger le récepteur et un contrôle de congestion pour réduire la surcharge du réseau. Il ne garantit ni capacité minimale ni échéance d’acheminement. UDP lui-même n’ajoute ni fiabilité ni contrôle de congestion. Le choisir ne supprime pas la congestion sur le chemin.

Par exemple, un jeu qui envoie des positions 30 fois par seconde produit une nouvelle mise à jour environ toutes les 33 ms. Il peut utiliser UDP pour qu’une mise à jour perdue soit remplacée par une plus récente sans attendre sa retransmission. La messagerie du jeu a toutefois besoin d’un acheminement fiable, assuré soit par TCP, soit par un mécanisme de fiabilité ajouté à son propre protocole.

Ajouter la sécurité à la pile

Ni TCP ni UDP, utilisés seuls, ne chiffrent les données applicatives. HTTP/1.1 et HTTP/2 utilisent couramment TLS sur TCP pour HTTPS. TLS ajoute la confidentialité, l’intégrité et l’authentification du serveur. HTTP/3 utilise QUIC sur UDP ; QUIC fournit la fiabilité, le contrôle de congestion et TLS 1.3 intégré. Une vidéo stockée fournie par HTTP utilise donc TCP ou QUIC, tandis que les appels interactifs transportent souvent le son et la vidéo sur UDP.

Points clés

  • Une adresse IP et un port identifient l’endroit où un processus reçoit le trafic réseau.
  • Les protocoles applicatifs définissent les types de messages, leur syntaxe, leur sémantique et les règles d’échange.
  • TCP fournit des octets de manière fiable et ordonnée, sans débit ni échéance garantis.
  • UDP préserve les datagrammes, mais laisse la fiabilité aux couches supérieures.
  • Ni TCP ni UDP ne chiffre les données à lui seul.
  • HTTP/3 obtient des flux fiables et sécurisés grâce à QUIC sur UDP.
2

Comment HTTP transmet le contenu web

Le chargement d’une page associe des formats de message, l’établissement de connexions et des requêtes pour plusieurs objets. Son déroulement dépend aussi de la possibilité pour le navigateur de réutiliser une connexion ou une réponse, et du besoin du site de reconnaître le visiteur. Lis d’abord l’échange HTTP visible, calcule ses principaux délais, puis suis comment les cookies, la mise en cache et les transports HTTP plus récents modifient le travail nécessaire pour fournir la page.

2.1 Messages HTTP et temps de connexion

Une page web comprend généralement plusieurs objets, chacun ayant sa propre URL. Le fichier HTML de base désigne les images, scripts et autres fichiers. Dans https://www.example.org/docs/intro.html, le schéma est https, l’hôte est www.example.org et le chemin est /docs/intro.html.

Lire une requête et une réponse

HTTP fonctionne par échanges de requêtes et de réponses. Une requête HTTP/1.1 commence par une méthode, un chemin et une version :

GET /docs/intro.html HTTP/1.1
Host: www.example.org
Connection: close

La ligne de requête et les lignes d’en-tête se terminent par CRLF. Une ligne vide marque la fin des en-têtes, suivie d’un corps facultatif. Host est obligatoire en HTTP/1.1, car plusieurs sites peuvent partager une adresse de serveur. Connection: close demande la fermeture après la réponse.

GET récupère un objet. HEAD demande les en-têtes de sa réponse sans le corps. POST envoie des données dans le corps d’une requête ; une requête GET peut aussi transporter des valeurs de formulaire dans la chaîne de requête de son URL. PUT stocke un objet à une URL donnée et DELETE supprime un objet.

La réponse commence par une ligne d’état comme HTTP/1.1 200 OK, suivie des en-têtes, d’une ligne vide et du corps. Content-Type identifie la représentation ; Content-Length donne sa longueur en octets. Les classes de codes d’état sont 1xx pour l’information, 2xx pour le succès, 3xx pour la redirection, 4xx pour les erreurs du client et 5xx pour les erreurs du serveur. Un code 301 indique une nouvelle URL dans Location ; 304 permet de réutiliser une copie en cache. Un code 404 signifie que le serveur a répondu que l’objet demandé était introuvable, et non que le serveur était inaccessible. D’autres codes utiles sont 400, 500 et 505.

HTTP est sans état : chaque requête peut être comprise sans les requêtes précédentes. Un site web peut tout de même conserver un état de connexion ou de panier au-dessus de HTTP. Une requête GET ordinaire répétée peut renvoyer à nouveau l’objet, tandis qu’une requête conditionnelle peut valider une copie enregistrée.

Compter les allers-retours

Pour un objet sur une nouvelle connexion TCP, compte un RTT pour l’établissement de la connexion et un autre pour la requête et le début de la réponse. Ajoute ensuite le temps de transmission de l’objet. Avec un RTT de 30 ms, une taille de 500 kB et un débit de 50 Mbps :

Ttransmit=500 000×850 000 000=0,08 s

Le total est de 60 ms plus 80 ms, soit 140 ms. Ce modèle néglige DNS, TLS et le temps de traitement. Une négociation TLS 1.3 complète sur la nouvelle connexion TCP ajoute un RTT.

Réutiliser ou rouvrir la connexion

Une connexion non persistante transporte un objet. Une connexion persistante peut transporter des requêtes ultérieures sans nouvel établissement TCP. La persistance est le fonctionnement par défaut de HTTP/1.1, même si les connexions inactives finissent par être fermées.

Pour un objet HTML et huit petites images, un RTT de 20 ms et des temps de transmission négligeables :

Mode de récupérationAllers-retoursTemps
Nouvelle connexion pour chaque objet, successivement18360 ms
HTML d’abord, puis huit nouvelles connexions en parallèle480 ms
Une connexion persistante, requêtes successives10200 ms
Une connexion persistante, huit requêtes d’images en pipeline360 ms

Les requêtes d’images dépendent de la réception du HTML. Même avec une récupération parallèle, elles ne peuvent pas commencer avant que leurs URL soient connues. Compte ces étapes de dépendance avant de compter les négociations. Les navigateurs HTTP/1.1 utilisent couramment plusieurs connexions par hôte ; la transmission en pipeline est un modèle de calcul du temps, pas une condition de la persistance.

Points clés

  • Le chargement d’une page comprend le fichier HTML et les objets auxquels il fait référence.
  • HTTP/1.1 sépare sa ligne initiale, ses en-têtes et son corps facultatif par des fins de ligne et une ligne vide.
  • Sur une nouvelle connexion TCP, un objet coûte environ deux RTT plus le temps de transmission, avant les coûts de TLS.
  • La persistance évite de rétablir la connexion à chaque fois.
  • Les requêtes parallèles attendent tout de même que le HTML révèle leurs URL.
  • Une réponse 404 montre qu’un serveur HTTP a répondu.

2.2 Reconnaître les utilisateurs et réutiliser les réponses

Les requêtes HTTP sont indépendantes, et pourtant une boutique peut se souvenir d’un panier. Un navigateur peut aussi réutiliser une image au lieu de la télécharger à nouveau. Les cookies permettent la reconnaissance d’une requête à l’autre ; les caches permettent la réutilisation des réponses.

Suivre un cookie

Lors d’une première visite, shop.example.com crée une entrée dans une base de données pour un visiteur et renvoie Set-Cookie: id=1678. Le navigateur stocke cette valeur. Les requêtes ultérieures correspondantes incluent Cookie: id=1678, ce qui permet au serveur de retrouver le panier. Le cookie est une donnée, pas du code exécutable, et le panier lui-même peut rester dans la base de données du serveur.

Les attributs d’un cookie contrôlent son utilisation. Expires ou Max-Age fixe une durée de vie ; un cookie sans l’un ni l’autre est un cookie de session. Domain et Path limitent les requêtes correspondantes. Secure limite l’envoi à HTTPS, HttpOnly empêche l’accès par les scripts de la page et SameSite contrôle l’envoi dans des contextes impliquant d’autres sites. La restauration d’une session peut conserver les cookies de session lorsqu’un navigateur restaure une session précédente.

Les cookies internes appartiennent au site visité. Un service tiers intégré peut utiliser des cookies sur différents sites pour reconnaître un navigateur. Safari bloque les cookies tiers par défaut ; Firefox les sépare par site ; Chrome fournit des commandes à l’utilisateur et les bloque en navigation privée. Les règles de l’Union européenne exigent un consentement pour les cookies qui ne sont pas strictement nécessaires à la fourniture d’un service demandé.

Suivre une requête avec un cache

Un cache web stocke des réponses HTTP. Un navigateur possède son propre cache. Un serveur mandataire avec cache se situe entre les clients et les serveurs d’origine : il fournit directement la réponse en cas de succès de cache, ou récupère, stocke et transmet une réponse en cas d’échec. Il joue le rôle de serveur auprès du navigateur et de client auprès du serveur d’origine. Un serveur mandataire peut exister sans mise en cache.

Un succès dans un cache proche réduit le délai, la charge du serveur d’origine et le trafic sur la liaison d’accès. Pour 90 requêtes par seconde portant sur des objets de 1 Mbit en moyenne, le trafic offert est de 90 Mbps. Sur une liaison d’accès à 100 Mbps, l’intensité du trafic est de 0,9, niveau auquel les files d’attente peuvent devenir importantes. Un taux de succès de 40 % laisse passer 60 % du trafic sur la liaison : 54 Mbps et une intensité de 0,54. Si les succès prennent 10 ms et les échecs 200 ms, le temps de réponse moyen est :

T=0,4(10)+0,6(200)=124 ms

Ce calcul de trafic suppose que la taille moyenne des objets est la même dans les groupes correspondant aux succès et aux échecs. Un taux de succès mesuré uniquement selon le nombre de requêtes n’est pas nécessairement égal à la proportion d’octets économisés lorsque les tailles des objets diffèrent.

Vérifier l’actualité avant la réutilisation

Une requête GET conditionnelle envoie If-Modified-Since avec une date de modification enregistrée, ou If-None-Match avec un ETag enregistré. Un objet inchangé donne une réponse 304 Not Modified sans corps contenant l’objet. Le cache réutilise sa copie. Un objet modifié donne une réponse 200 OK avec l’objet de remplacement. La validation évite la transmission du corps, mais nécessite tout de même un aller-retour jusqu’au serveur d’origine.

Directive de réponseSignification
max-age=3600Une copie peut rester à jour pendant 3 600 secondes.
no-cacheLa stocker si c’est autorisé, mais la valider avant réutilisation.
no-storeNe pas stocker la réponse.
privateUn cache privé peut la stocker ; les caches partagés ne le peuvent pas.

Un serveur mandataire partagé ne peut normalement pas inspecter le contenu d’une connexion HTTPS qui le traverse. Les caches des navigateurs et les serveurs CDN qui fournissent du contenu pour le compte d’un site peuvent mettre en cache les réponses aux extrémités où elles sont disponibles sous une forme lisible.

Points clés

  • Les cookies permettent à un serveur de reconnaître un navigateur entre des requêtes HTTP indépendantes.
  • Les attributs des cookies contrôlent leur durée de vie, leur portée et leur accès.
  • Un serveur mandataire avec cache joue à la fois les rôles de client et de serveur.
  • Les succès de cache peuvent réduire le délai et le trafic sur la liaison d’accès.
  • Une réponse 304 valide un objet enregistré sans renvoyer son corps.
  • no-cache exige une validation ; no-store interdit le stockage.
  • HTTPS limite ce qu’un serveur mandataire partagé ordinaire peut mettre en cache.

2.3 Trames, flux et HTTP/3

Les versions de HTTP conservent le sens des méthodes, des codes d’état, des champs et des URL. Un code 404 signifie toujours que la ressource demandée est introuvable. Ce qui change, c’est la manière dont les requêtes et les réponses circulent : HTTP/1.1 utilise des messages textuels, tandis que HTTP/2 et HTTP/3 utilisent des trames binaires.

Permettre aux petites réponses d’avancer

Sur une connexion HTTP/1.1, l’ordre des réponses peut faire attendre un petit objet derrière un gros. C’est le blocage en tête de file au niveau applicatif. L’ouverture de plusieurs connexions TCP réduit cette attente, mais entraîne des coûts d’établissement supplémentaires et donne à la page plusieurs connexions concurrentes soumises au contrôle de congestion.

HTTP/2 divise les messages en trames et attribue un flux à chaque échange requête-réponse. L’émetteur entrelace les trames de différents flux sur une seule connexion TCP. La compression des en-têtes, appelée HPACK, réduit les données de champ répétées. Les priorités peuvent orienter le choix des réponses à traiter en premier.

Pour une comparaison simplifiée, une grande réponse comporte 1 000 trames et huit petites réponses comportent deux trames chacune. Envoie une trame par créneau de temps. Si la grande réponse est envoyée en premier, les petites se terminent aux créneaux 1 002 à 1 016, avec une moyenne de 1 009. L’envoi à tour de rôle d’une trame de chaque flux non terminé permet aux petites réponses de se terminer aux créneaux 11 à 18, avec une moyenne de 14,5. La grande réponse se termine au créneau 1 016. L’entrelacement modifie les temps d’achèvement sans augmenter le débit de transmission de la liaison.

HTTP/2 a aussi défini l’envoi anticipé par le serveur, qui envoie du contenu avant une requête. Les principaux navigateurs l’ont désactivé. Une réponse 103 Early Hints indique à la place des ressources que le navigateur peut commencer à demander.

Trouver le point de blocage restant

TCP fournit un seul flux d’octets ordonné. Si des octets manquent, les octets suivants attendent leur récupération, même lorsqu’ils contiennent des trames d’un autre flux HTTP/2. HTTP/2 supprime le blocage dû à l’ordre des réponses, mais conserve ce blocage au niveau du transport.

HTTP/3 fait fonctionner HTTP sur QUIC, un protocole de transport sur UDP, et compresse les en-têtes avec QPACK. QUIC fournit des flux fiables, le contrôle de flux et de congestion, ainsi que la sécurité de TLS 1.3. Chaque flux possède son propre ordre d’acheminement. Des données manquantes dans un flux n’empêchent pas, à elles seules, l’acheminement de données déjà reçues dans un autre. Le contrôle de congestion partagé et les dépendances de l’application peuvent néanmoins affecter plusieurs flux.

QUIC utilise des identifiants de connexion pour qu’une connexion puisse survivre à un changement d’adresse IP, par exemple lors du passage du Wi-Fi à un réseau cellulaire. Son implémentation peut être mise à jour avec une bibliothèque applicative, ce qui évite le déploiement lent des modifications de TCP dans les systèmes d’exploitation et les équipements intermédiaires.

Comparer une nouvelle connexion

Avec un RTT de 50 ms et sans coût DNS ni traitement, TCP associé à TLS 1.3 prend deux RTT avant l’envoi de la première requête HTTP/2. Une première réponse commence après environ 150 ms. QUIC combine l’établissement du transport et de la sécurité en un RTT, si bien qu’une réponse HTTP/3 peut commencer après environ 100 ms. Les connexions QUIC reprises peuvent utiliser des données 0-RTT, mais le risque de rejeu limite les requêtes qui peuvent être envoyées à l’avance sans danger.

Les navigateurs peuvent découvrir HTTP/3 grâce à Alt-Svc ou aux enregistrements DNS HTTPS. Si UDP est bloqué, ils peuvent se replier sur HTTP sur TCP. HTTP/3 reste fiable parce que QUIC fournit la fiabilité au-dessus d’UDP.

Points clés

  • Les versions de HTTP conservent le sens commun des messages.
  • HTTP/2 entrelace des flux sur une seule connexion TCP.
  • Une perte TCP peut encore bloquer tous les flux HTTP/2 de cette connexion.
  • QUIC fournit sur UDP des flux indépendants et ordonnés ainsi qu’une sécurité intégrée.
  • QUIC réduit le temps d’établissement d’une nouvelle connexion et prend en charge les changements d’adresse grâce aux identifiants de connexion.
3

Comment DNS trouve les services

Les noms masquent les emplacements changeants des services Internet. Avant qu’un navigateur ou un serveur de messagerie ne contacte une destination, DNS peut lui fournir une adresse, un alias ou un nom de serveur de messagerie. Suis un résolveur dans la hiérarchie distribuée, puis examine les enregistrements et les champs des messages qu’il échange. Les réponses en cache accélèrent ce processus, tandis que leur durée de vie explique pourquoi un changement d’adresse peut mettre du temps à atteindre tous les utilisateurs.

3.1 Une résolution DNS, du cache au serveur faisant autorité

Un nom comme www.example.org est pratique pour une personne. Une connexion nécessite une adresse IP. Le système de noms de domaine, ou DNS, est à la fois la base de données distribuée des enregistrements de noms et le protocole applicatif utilisé pour l’interroger. Il utilise normalement le port 53 et fonctionne indépendamment de HTTP.

Répartir la gestion des noms

Lis www.example.org. de droite à gauche : la racine, org, example, puis www. Le point final représente la racine et est généralement omis dans l’usage courant. Un serveur centralisé pour tous les noms créerait un point de défaillance, un goulot d’étranglement pour le trafic et de longs chemins pour les clients éloignés.

Les serveurs racine orientent les résolveurs vers les serveurs de domaine de premier niveau. Les serveurs TLD les orientent vers les serveurs faisant autorité pour les domaines qui dépendent du TLD. Les serveurs faisant autorité publient les enregistrements effectifs d’un domaine. Les 13 identités nommées de serveurs racine sont répliquées sur de nombreuses instances physiques ; 13 n’est pas le nombre de machines qui assurent le fonctionnement du DNS mondial.

L’hôte envoie normalement sa question à un résolveur local, fourni par son organisation, son fournisseur d’accès à Internet ou un service public. Ce résolveur agit pour le compte de l’hôte. Il ne constitue pas un niveau supplémentaire entre la racine et le TLD dans la hiérarchie des noms.

Suivre une résolution avec un cache vide

Un ordinateur portable sur un campus a besoin de l’adresse IPv4 de www.example.org :

  1. L’ordinateur demande la réponse finale à son résolveur local.
  2. Le résolveur interroge un serveur racine, qui lui indique les serveurs .org.
  3. Il interroge un serveur .org, qui lui indique les serveurs faisant autorité pour example.org.
  4. Il interroge un serveur faisant autorité et reçoit 203.0.113.25.
  5. Il renvoie l’adresse à l’ordinateur.

Il y a quatre paires requête-réponse, soit huit messages. La requête de l’hôte est récursive : elle demande d’obtenir la réponse pour lui. Les requêtes du résolveur sont itératives : chaque serveur contacté répond selon ce qu’il sait ou dirige le résolveur vers un autre serveur. La racine ne récupère pas l’adresse du serveur web pour le compte de l’ordinateur.

Réutiliser les réponses jusqu’à la fin de leur TTL

Un enregistrement de ressource comporte une durée de vie, ou TTL, mesurée en secondes. Les résolveurs conservent les enregistrements réutilisables dans des caches jusqu’à la fin de leur durée de validité. Ils peuvent mettre en cache les indications de serveurs aussi bien que les adresses finales. Une délégation de TLD ou de domaine mémorisée permet à une résolution ultérieure de sauter les premières étapes. Les systèmes d’exploitation et les navigateurs peuvent aussi avoir des caches.

Avec un RTT de 2 ms entre l’hôte et le résolveur et un RTT de 30 ms pour chacune des trois requêtes successives dans la hiérarchie, la résolution avec un cache vide prend environ 92 ms. Une adresse en cache chez le résolveur prend environ 2 ms. Les temps d’attente s’additionnent parce que chaque indication de serveur fournit les informations nécessaires à la requête suivante.

La mise en cache retarde aussi les changements. Si un résolveur a mis une adresse en cache avec un TTL d’une heure juste avant une mise à jour, il peut continuer à renvoyer l’ancienne adresse pendant le reste de sa durée de validité. Réduire le TTL avant un changement prévu limite cette période de coexistence ; modifier uniquement l’enregistrement faisant autorité ne remplace pas chaque copie en cache.

DNS ne se limite pas à la recherche d’une adresse à partir d’un nom. Il prend en charge les alias, trouve les serveurs de messagerie et répartit la charge en renvoyant plusieurs adresses pour un service. Ces rôles expliquent pourquoi l’acheminement des courriels et la sélection d’un CDN dépendent aussi de DNS.

Points clés

  • DNS est une base de données distribuée et un protocole d’interrogation de la couche application.
  • Les serveurs racine, TLD et faisant autorité se répartissent la responsabilité des noms.
  • Un résolveur local exécute la requête récursive de l’hôte à l’aide de requêtes itératives.
  • Les enregistrements et les indications de serveurs mis en cache raccourcissent les résolutions ultérieures.
  • Le TTL limite le temps de mise en cache : les changements d’adresse mettent donc du temps à se propager.

3.2 Enregistrements, indications de serveurs et réponses DNS

DNS stocke des enregistrements de ressource comportant un nom, une valeur, un type et un TTL. Le type indique au résolveur comment interpréter la valeur. Un enregistrement d’adresse, un alias et un enregistrement de serveur de messagerie répondent à des questions différentes sur un même domaine.

Lire le type d’enregistrement
TypeCe que fournit sa valeur
AUne adresse IPv4 pour un nom d’hôte
AAAAUne adresse IPv6 pour un nom d’hôte
NSLe nom d’un serveur faisant autorité
CNAMEUn nom canonique pour un alias
MXUn nom de serveur de messagerie avec un numéro de préférence
TXTDu texte, notamment des informations d’authentification des courriels
PTRUn nom pour une résolution inverse d’adresse
SOADes informations administratives pour une zone
HTTPSDes informations sur le service, dont les versions de HTTP prises en charge

Par exemple, www.example.org. 3600 IN A 203.0.113.25 donne le nom auquel appartient l’enregistrement, le TTL, la classe Internet, le type et l’adresse. Une valeur NS est un nom, pas une adresse. Une indication de serveur peut inclure un enregistrement A distinct fournissant l’adresse du serveur de noms, souvent appelé enregistrement de liaison lorsqu’il est nécessaire pour résoudre la délégation.

Un CNAME tel que media.example.org pointant vers edge.cdn.example.net amène le résolveur à rechercher l’adresse de la cible. Un enregistrement MX dirige quant à lui l’acheminement des courriels. Avec les préférences 10 et 20, essaie d’abord le serveur de messagerie de préférence 10 ; un nombre plus grand ne signifie pas une priorité plus élevée.

Lire le message qui contient les enregistrements

Les requêtes et les réponses partagent un même format. L’en-tête de 12 octets contient un numéro d’identification, des drapeaux et le nombre d’entrées dans quatre sections. La réponse recopie l’identifiant de la requête pour que le demandeur puisse associer les deux messages.

La section question indique ce qui a été demandé. La section réponse contient les enregistrements correspondants. La section autorité peut contenir des indications de serveurs NS, tandis que la section supplémentaire fournit des enregistrements utiles comme les adresses des serveurs de noms. Dans la sortie affichée par dig, qr indique une réponse, rd signifie qu’une récursion a été demandée et ra qu’elle est disponible. NOERROR indique l’absence d’erreur DNS ; NXDOMAIN indique que le nom recherché n’existe pas. Une réponse sans erreur peut tout de même ne pas contenir d’enregistrement du type demandé.

Pour publier un nouveau domaine, son titulaire l’enregistre et fournit les informations sur ses serveurs faisant autorité. La délégation du domaine parent dirige les requêtes vers ces serveurs, qui publient les enregistrements d’hôte et de messagerie propres au domaine. Enregistrer le nom ne fait pas du bureau d’enregistrement le serveur qui détient tous les enregistrements.

Acheminement et protection

La plupart des petits échanges DNS utilisent le port UDP 53. Une réponse UDP tronquée a son drapeau TC activé ; le résolveur peut réessayer sur le port TCP 53. TCP prend aussi en charge les transferts de zone. DNS n’est donc pas limité à UDP.

Le trafic DNS classique expose les noms recherchés aux observateurs situés sur son chemin. DNS sur TLS ou DNS sur HTTPS chiffre l’échange entre le client et le résolveur, généralement sur les ports 853 et 443 respectivement. Le chiffrement de cet échange et l’authenticité d’un enregistrement sont deux propriétés distinctes.

Lors d’un empoisonnement du cache, un résolveur accepte une réponse falsifiée et envoie ensuite les utilisateurs vers une mauvaise adresse. Des identifiants et des ports sources imprévisibles rendent plus difficile l’association des réponses falsifiées aux requêtes. DNSSEC ajoute des signatures permettant de vérifier l’authenticité des enregistrements ; il ne masque pas la requête. Une inondation peut aussi rendre les serveurs DNS inaccessibles. La réplication et les indications de serveurs en cache réduisent la dépendance à la racine pour chaque requête, mais des défaillances chez un fournisseur de services faisant autorité largement utilisé peuvent encore perturber de nombreux sites.

Points clés

  • Les types d’enregistrement distinguent les adresses, les délégations, les alias et le routage des courriels.
  • Un enregistrement NS nomme un serveur ; un enregistrement d’adresse distinct permet de le localiser.
  • Les enregistrements MX ayant les numéros de préférence les plus bas sont essayés en premier.
  • Les réponses DNS séparent les réponses, les informations d’autorité et les enregistrements supplémentaires.
  • DNS peut utiliser TCP aussi bien qu’UDP.
  • Le DNS chiffré protège un chemin ; DNSSEC authentifie les enregistrements signés.
4

Comment les courriels circulent et restent disponibles

Un courriel peut arriver alors que le téléphone de son destinataire est éteint, car les serveurs gèrent l’acheminement et le stockage indépendamment des appareils des utilisateurs. Suis le dialogue de transfert, distingue son enveloppe d’acheminement des champs affichés au lecteur et examine comment les pièces jointes s’intègrent à un message. Compare ensuite les protocoles d’accès qui permettent à un ordinateur portable, à un téléphone ou à un navigateur de récupérer les courriels et de suivre l’état de la boîte aux lettres.

4.1 Acheminement SMTP et enveloppe du courriel

La messagerie électronique sépare la rédaction d’un message de son acheminement. Un agent utilisateur est l’application ou la page web utilisée pour lire et écrire les courriels. Un serveur de messagerie stocke les courriels entrants dans des boîtes aux lettres et conserve les messages sortants dans une file d’attente. SMTP transfère les messages entre les systèmes.

Suivre l’acheminement après la soumission

Alice soumet à son propre serveur un message destiné à Bob. Ce serveur recherche les enregistrements MX du domaine de Bob, résout l’adresse du serveur choisi et ouvre une connexion TCP vers le port 25. Il transmet le message au serveur de Bob, qui le stocke dans sa boîte aux lettres. Le serveur d’Alice est le client SMTP pendant ce transfert, même s’il sert l’agent utilisateur d’Alice dans un autre échange.

Si la destination est temporairement indisponible, la file d’attente des messages sortants conserve le message pour de nouvelles tentatives. L’appareil d’Alice peut se déconnecter pendant que son serveur continue son travail. Après des échecs répétés, un avis de non-remise peut être renvoyé à l’expéditeur indiqué dans l’enveloppe.

Lire le dialogue

SMTP utilise des commandes textuelles et des réponses numériques. Voici un échange d’acheminement abrégé ; C: et S: identifient les deux interlocuteurs et ne sont pas transmis avec chaque commande.

S: 220 mail.example.net ready
C: EHLO mail.example.org
S: 250 mail.example.net
C: MAIL FROM:<alice@example.org>
S: 250 OK
C: RCPT TO:<bob@example.net>
S: 250 OK
C: DATA
S: 354 Send message
C: From: Alice <alice@example.org>
C: To: Bob <bob@example.net>
C: Date: Tue, 03 Mar 2026 10:02:44 +0100
C: Subject: Lab report
C:
C: The report is ready.
C: .
S: 250 Message accepted
C: QUIT
S: 221 Closing

EHLO présente l’hôte émetteur. MAIL FROM définit l’expéditeur de l’enveloppe ; chaque RCPT TO nomme un destinataire de l’enveloppe. DATA commence le message et une ligne contenant uniquement un point le termine. Une connexion peut transporter plusieurs messages. Les classes de réponse distinguent un succès (2xx), une demande de données supplémentaires (3xx), un échec temporaire (4xx) et un échec permanent (5xx). Une réponse 4xx appelle une nouvelle tentative ultérieure ; un échec 5xx nécessite un autre traitement, souvent un avis de non-remise.

Séparer les adresses d’acheminement des champs affichés

L’enveloppe contrôle l’acheminement. Les champs From: et To: à l’intérieur du message sont affichés au lecteur. Ils peuvent différer de l’enveloppe. Un destinataire en copie cachée peut apparaître dans RCPT TO sans figurer dans les en-têtes visibles du message. Répondre à un message et signaler un échec d’acheminement ne nécessitent pas forcément la même adresse.

Un utilisateur soumet normalement ses messages par SMTP authentifié sur le port 587 avec STARTTLS, ou sur le port 465 avec TLS dès le début. Le transfert entre serveurs utilise normalement le port 25 et peut négocier STARTTLS. La soumission et le transfert ont des rôles différents, même lorsqu’ils utilisent tous deux SMTP. HTTP récupère généralement les objets demandés ; SMTP transmet un message préparé à l’initiative de l’émetteur.

Vérifier le domaine de l’expéditeur

Un champ From: visible est facile à falsifier. SPF vérifie si l’hôte émetteur est autorisé pour le domaine de l’enveloppe. DKIM vérifie la signature d’un message à l’aide d’une clé publique publiée dans DNS. DMARC relie un résultat SPF ou DKIM positif au domaine visible dans From par l’alignement des domaines et publie une politique pour les échecs. Une vérification SPF positive pour un domaine d’enveloppe sans rapport ne valide pas à elle seule l’expéditeur visible.

Points clés

  • SMTP transmet les messages sur TCP entre serveurs de messagerie à l’initiative de l’émetteur.
  • Les files d’attente permettent aux serveurs de réessayer pendant que les appareils des utilisateurs sont hors ligne.
  • L’enveloppe SMTP contrôle l’acheminement ; les en-têtes du message contrôlent ce que les lecteurs voient.
  • La soumission utilise couramment SMTP authentifié sur le port 587 ou 465.
  • Les échecs SMTP temporaires et permanents nécessitent des réactions différentes.
  • DMARC exige une vérification SPF ou DKIM positive avec alignement des domaines, et non une simple vérification SPF positive.

4.2 Contenu des messages et lecture d’une boîte aux lettres

Le transfert des courriels, le contenu des messages et l’accès à la boîte aux lettres sont des parties distinctes de la messagerie électronique. SMTP transfère un message vers un serveur de messagerie. Le message possède son propre format avec en-têtes et corps, et le destinataire accède plus tard à la boîte aux lettres stockée à l’aide d’un autre protocole.

Lire le message lui-même

Un message commence par des champs comme From:, To:, Date:, Subject: et Message-ID:. Une ligne vide sépare ces en-têtes du corps. Ils restent dans le message stocké ; les commandes SMTP MAIL FROM et RCPT TO ne deviennent pas des en-têtes du message.

Le format de base utilise des lignes de texte. MIME, Multipurpose Internet Mail Extensions, décrit des contenus plus riches à l’aide de champs supplémentaires. Content-Type: text/plain; charset=UTF-8 décrit du texte brut et son encodage de caractères. image/jpeg identifie une image. multipart/mixed décrit plusieurs parties séparées par une chaîne de délimitation, comme une note textuelle suivie d’une pièce jointe. Chaque partie peut avoir son propre type de contenu et son propre encodage de transfert.

Content-Transfer-Encoding décrit comment une partie est représentée pour le transfert. Base64 transforme chaque groupe de trois octets en quatre caractères ASCII. Pour une pièce jointe de 3 MB, 3 000 000 d’octets deviennent 4 000 000 de caractères avant les sauts de ligne et les en-têtes du message. L’encodage ajoute environ un tiers à la taille. La limite de taille totale des messages d’un serveur ne peut donc pas être comparée à la seule taille brute de la pièce jointe. Quoted-printable est un autre encodage adapté aux textes principalement lisibles.

Choisir un protocole d’accès à la messagerie

Le serveur du destinataire peut recevoir des courriels pendant que les appareils du destinataire sont hors ligne. À son retour, un protocole d’accès à la messagerie permet à un client de récupérer les messages stockés.

Méthode d’accèsOù se trouve l’état de la boîte aux lettresEffet sur plusieurs appareils
IMAPLes messages, dossiers et indicateurs restent sur le serveur.Les appareils peuvent partager la même organisation et le même état de lecture.
POP3Un client télécharge les messages et peut les supprimer du serveur.Le mode télécharger et supprimer peut rendre les courriels indisponibles pour un autre appareil.
Messagerie webUn navigateur interagit avec le service de messagerie par HTTPS.Le service gère la boîte aux lettres derrière l’interface web.

IMAP peut récupérer les en-têtes ou certaines parties d’un message sans télécharger toutes les pièces jointes. Il utilise couramment le port 143 avec STARTTLS ou le port 993 avec TLS dès le début. POP3 utilise couramment le port 110 ou le port 995 avec TLS. Ses marques de suppression prennent effet lorsque la session se termine normalement. Le mode télécharger et conserver laisse des copies sur le serveur, mais POP3 ne fournit pas les dossiers sur serveur et les indicateurs partagés d’IMAP.

Supposons que Bob consulte ses courriels sur un ordinateur portable avant de quitter son domicile, puis sur un téléphone. Si l’ordinateur utilise POP3 en mode télécharger et supprimer, le téléphone peut trouver une boîte aux lettres vide sur le serveur. Avec IMAP, marquer un message comme lu sur l’ordinateur modifie l’état sur le serveur, que le téléphone peut aussi voir. La différence concerne la synchronisation de la boîte aux lettres, et non l’acheminement SMTP.

Suivre un message de messagerie web au-delà du navigateur

Un navigateur soumet ou lit des courriels avec HTTPS. Le fournisseur de messagerie web utilise toujours SMTP pour transférer les courriels vers le serveur d’un autre domaine. Un trajet complet peut donc utiliser HTTPS entre l’expéditeur et le fournisseur, SMTP entre les fournisseurs, puis IMAP ou HTTPS à l’extrémité réceptrice. Appeler un service « messagerie web » décrit son interface utilisateur et sa connexion au navigateur, pas tous les protocoles utilisés sur le trajet du message.

Points clés

  • Les en-têtes appartiennent au message et sont distincts des commandes SMTP.
  • MIME décrit les types de contenu, les délimiteurs des parties et les encodages de transfert.
  • Base64 ajoute environ un tiers aux données d’une pièce jointe avant les autres données supplémentaires.
  • IMAP synchronise les messages, dossiers et indicateurs sur le serveur.
  • Le mode télécharger et supprimer de POP3 peut supprimer les messages avant qu’un autre appareil les lise.
  • La messagerie web utilise HTTPS côté navigateur et repose toujours sur SMTP entre les serveurs de messagerie.
5

Distribution de fichiers et diffusion vidéo en continu

Un large public crée des goulots d’étranglement différents pour un serveur unique, un groupe de pairs et un ensemble distribué de caches. Commence par les limites d’envoi et de téléchargement qui influent sur la distribution d’un fichier, puis examine comment BitTorrent répartit ce travail. Pour la vidéo, relie le débit encodé et le téléchargement des segments au tampon de lecture, puis suis comment un CDN place le contenu et dirige les utilisateurs vers des serveurs capables de le fournir efficacement.

5.1 Distribution de fichiers et BitTorrent

Distribuer un fichier signifie que chaque destinataire doit en obtenir une copie complète. Le goulot d’étranglement n’est pas toujours le serveur : un téléchargement lent ou une capacité totale d’envoi insuffisante peuvent fixer le temps minimal. Le modèle standard suppose que les liaisons d’accès sont les goulots d’étranglement et que le cœur du réseau dispose d’une capacité suffisante.

Comparer les bornes inférieures

Soit un fichier contenant F bits, avec N destinataires. Le serveur envoie au débit us ; le pair i envoie au débit ui et télécharge au débit di. Le débit de téléchargement le plus faible parmi les pairs est dmin. Utilise des unités compatibles, comme Mbit et Mbps, pour que la division donne des secondes.

Avec une distribution client-serveur, le serveur doit envoyer NF bits et le pair le plus lent doit recevoir F bits :

Dcs≥max⁡{NFus,Fdmin}

En P2P, le serveur doit introduire chaque bit au moins une fois. Les pairs doivent toujours télécharger le fichier et l’ensemble du système doit envoyer assez de données pour toutes les copies :

DP2P≥max⁡{Fus,Fdmin,NFus+∑iui}

Prends le maximum, car toutes les exigences doivent être satisfaites pendant la distribution. Additionner les termes supposerait à tort que ces activités d’envoi et de téléchargement se déroulent les unes après les autres. Ce sont des bornes inférieures ; la surcharge du protocole, des pairs indisponibles et d’autres goulots d’étranglement peuvent ralentir les transferts réels.

Étudier une comparaison

Pour un fichier de 2 Gbit, utilise 2 000 Mbit. Supposons que le débit d’envoi du serveur soit de 100 Mbps, le débit de téléchargement le plus faible de 20 Mbps et le débit d’envoi de chacun des 100 pairs de 5 Mbps.

Le terme du serveur en client-serveur est de 200 000 Mbit divisés par 100 Mbps, soit 2 000 s. Le terme du téléchargement le plus lent est de 100 s. La borne est donc de 2 000 s.

En P2P, l’introduction du fichier prend au moins 20 s. Le téléchargement le plus lent prend toujours 100 s. La capacité totale d’envoi est de 100 plus 500, soit 600 Mbps ; la distribution de 200 000 Mbit prend au moins environ 333 s. La borne P2P est d’environ 333 s. Avec 1 000 pairs, la borne client-serveur passe à 20 000 s, tandis que la borne P2P est d’environ 392 s. Lorsque les débits d’envoi des pairs sont égaux et que leur nombre devient grand, le terme correspondant à la capacité totale se rapproche de la taille du fichier divisée par le débit d’envoi d’un pair.

Échanger des fragments dans BitTorrent

Un torrent est un groupe qui partage un fichier. Les pairs échangent des fragments, découvrent leurs voisins par un serveur de suivi ou une table de hachage distribuée et peuvent envoyer des données avant la fin du téléchargement. Un semeur possède le fichier complet et continue à le partager.

La priorité aux fragments les plus rares choisit un fragment nécessaire détenu par le plus petit nombre de voisins, ce qui aide à préserver les fragments qui pourraient autrement disparaître lorsqu’un pair quitte le réseau. Elle détermine quoi demander. La règle du donnant-donnant encourage les échanges utiles en favorisant les voisins qui fournissent rapidement des données ; elle détermine à qui envoyer.

Dans la conception initiale, quatre voisins intéressés sont débloqués à la fois, dont un par déblocage optimiste. Le choix régulier est réexaminé environ toutes les 10 s et le pair bénéficiant du déblocage optimiste environ toutes les 30 s. Cette place réservée à l’exploration permet aux nouveaux arrivants d’obtenir leurs premiers fragments et aide à découvrir de meilleurs partenaires. Le serveur de suivi coordonne la découverte ; il n’est pas la source de données de chaque fragment.

Points clés

  • La distribution client-serveur est limitée par le débit d’envoi du serveur et le téléchargement le plus lent.
  • Le P2P dépend aussi de l’introduction du fichier et de la capacité totale d’envoi du système.
  • Prends le maximum des contraintes simultanées, pas leur somme.
  • Le P2P passe à l’échelle parce que les nouveaux pairs apportent une capacité d’envoi.
  • La priorité aux fragments les plus rares sélectionne les fragments ; le donnant-donnant sélectionne les partenaires auxquels envoyer des données.
  • Un déblocage optimiste donne aux nouveaux pairs ou aux pairs encore inexplorés une possibilité d’échanger.

5.2 Diffusion adaptative en continu et évolution du tampon

Une vidéo se compose d’images affichées au fil du temps. La compression élimine les informations répétées à l’intérieur d’une image (redondance spatiale) et entre les images (redondance temporelle). Le résultat encodé possède un débit binaire : la quantité de données vidéo nécessaire pour chaque seconde de lecture.

Relier le débit, la taille et le temps de lecture

Une vidéo de deux heures à 5 Mbps contient 36 000 Mbit, soit 4,5 GB. Multiplie le débit par la durée pour obtenir des bits, puis divise par huit pour obtenir des octets. Si le débit effectif moyen du chemin est inférieur au débit vidéo choisi, tout tampon de capacité finie finit par se vider si la lecture se poursuit.

Un lecteur peut commencer avant d’avoir téléchargé toute la vidéo. Il stocke les données à venir dans un tampon, mesuré ici en secondes de vidéo lisible. La lecture consomme ce tampon tandis que les téléchargements le remplissent. Un tampon initial plus grand protège contre les baisses de débit effectif, mais augmente le délai de démarrage.

Demander un segment à la fois

DASH, Dynamic Adaptive Streaming over HTTP, stocke plusieurs versions encodées à différents débits et découpe chacune en segments. Un manifeste répertorie les versions disponibles et les URL des segments. Le client demande un segment avec HTTP GET et choisit de nouveau une version à la limite du segment suivant. HLS utilise une approche similaire avec des listes de lecture.

Le lecteur prend sa décision d’adaptation à partir du débit effectif mesuré et du niveau du tampon. Une estimation récente élevée du débit effectif favorise un débit plus élevé ; un tampon presque vide invite à la prudence. Choisir le débit le plus élevé observé une seule fois peut provoquer une interruption si le téléchargement suivant ralentit. Les lecteurs cherchent aussi à éviter des changements de qualité fréquents et gênants.

Calculer le téléchargement d’un segment

Considère des segments de 4 s encodés à 1, 2,5, 5 et 8 Mbps. Avec un débit effectif mesuré de 6 Mbps, le segment à 5 Mbps contient 20 Mbit. Il se télécharge en environ 3,33 s, ajoutant 4 s de contenu lisible pendant que la lecture en consomme environ 3,33 s. Si la lecture continue, le tampon augmente d’environ 0,67 s.

Un segment à 8 Mbps contient 32 Mbit et prend environ 5,33 s ; le tampon diminue donc d’environ 1,33 s. Les 6 Mbps du chemin correspondent à un débit de transfert ; ils ne transforment pas un encodage à 8 Mbps en un encodage à 6 Mbps.

Si le débit effectif tombe à 3 Mbps, le même segment à 5 Mbps prend environ 6,67 s. Le tampon perd environ 2,67 s par segment. Passer à la version à 2,5 Mbps produit un segment de 10 Mbit qui prend environ 3,33 s, ce qui permet au tampon d’augmenter à nouveau. Pour que la lecture se poursuive sans interruption pendant un téléchargement, le tampon initial doit aussi durer jusqu’à ce que de nouvelles données lisibles soient disponibles.

Vidéos stockées et appels interactifs

La diffusion en continu de vidéos stockées utilise des objets HTTP ordinaires, que les caches des navigateurs et les serveurs CDN peuvent fournir. Elle fonctionne donc sur TCP ou QUIC selon la version de HTTP. Les appels interactifs utilisent souvent un transport des données audio et vidéo fondé sur UDP, car attendre des données anciennes peut être plus préjudiciable que de les perdre.

Un événement en direct peut aussi utiliser la diffusion HTTP en continu par segments, mais le lecteur attend la production de chaque segment et conserve un tampon avec un décalage par rapport au direct. Des segments plus courts peuvent réduire ce délai tout en augmentant le nombre de requêtes. Se déplacer vers un passage qui n’est pas en mémoire tampon oblige aussi à remplir de nouveau le tampon du lecteur, ce qui peut brièvement réduire la qualité.

Points clés

  • Le débit binaire encodé mesure les données nécessaires par seconde de lecture.
  • La taille d’un segment est égale à sa durée multipliée par son débit encodé.
  • Pendant une lecture continue, la variation du tampon est égale à la durée du segment moins le temps de téléchargement.
  • Les clients DASH choisissent les versions à partir d’estimations du débit effectif et du niveau du tampon.
  • La vidéo HTTP stockée utilise TCP ou QUIC ; les appels interactifs ont d’autres besoins en matière de délais.

5.3 Placement des CDN et routage des requêtes

Un réseau de diffusion de contenu, ou CDN, fournit des copies de contenu depuis de nombreux lieux. Il évite d’envoyer chaque spectateur vers un seul centre de données distant et réduit les transferts répétés sur de longues distances. La répartition de la capacité de service réduit aussi la dépendance à un seul site.

Placer le contenu près de ses utilisateurs

Un CDN privé appartient à un fournisseur ; un CDN tiers dessert de nombreux clients. Tous deux peuvent fournir des images, scripts, logiciels et pages web ainsi que des vidéos. La source originale du contenu est l’origine. Les groupes de serveurs CDN conservent des copies pour que l’origine ne traite pas chaque requête.

Deux stratégies de placement sont utiles :

StratégiePlacementCompromis
Déploiement en profondeurDe nombreux petits groupes dans les réseaux des fournisseurs d’accèsChemins courts vers les utilisateurs, mais nombreux sites à entretenir
Déploiement aux points d’interconnexionMoins de groupes, plus grands, aux points d’échange InternetGestion plus simple, mais chemins plus longs pour certains utilisateurs

Le placement et le remplissage en contenu sont des choix distincts. Avec le placement à la demande, un groupe qui ne possède pas un objet le récupère auprès de l’origine ou d’un autre groupe, le stocke et le fournit. Avec le placement anticipé, le fournisseur envoie les objets à l’avance, souvent pendant les périodes creuses. Dans un CDN à placement à la demande, la première requête pour un objet absent du cache peut encore dépendre de l’origine.

Suivre le relais par DNS

Un utilisateur demande https://video.stream.example.com/v/6Y7B23V :

  1. Le résolveur de l’utilisateur interroge DNS au sujet de video.stream.example.com.
  2. Le serveur faisant autorité du fournisseur renvoie un CNAME vers l’espace de noms du CDN, comme a1105.cdn.example.net.
  3. Le résolveur suit ce nom jusqu’au service DNS faisant autorité du CDN.
  4. Le CDN choisit un groupe et renvoie une adresse comme 198.51.100.17.
  5. Le client se connecte à ce serveur avec HTTPS et demande le contenu.

Le CNAME modifie l’endroit où la résolution du nom se poursuit. DNS renvoie des informations de nommage ; les octets de la vidéo arrivent ensuite par HTTP. Si le contenu est segmenté, de nombreuses requêtes ordinaires de segments suivent le même chemin général jusqu’au serveur choisi.

Choisir un emplacement adapté

Le groupe le plus proche sur une carte peut avoir un mauvais chemin réseau ou être surchargé. Une décision fondée sur DNS peut utiliser l’emplacement du résolveur, qui peut être loin de l’utilisateur. Une meilleure sélection peut tenir compte des délais et des pertes mesurés, de la charge actuelle et parfois d’informations sur le réseau du client.

La diffusion anycast IP offre un autre moyen d’accéder à un service proche : plusieurs emplacements annoncent la même adresse IP et le routage Internet choisit un chemin vers l’un d’eux. L’emplacement obtenu dépend du routage, et pas seulement de la distance physique. Un serveur proche du spectateur peut tout de même fournir une vidéo de mauvaise qualité si la liaison d’accès du spectateur constitue le goulot d’étranglement.

Open Connect de Netflix place des équipements dans les réseaux des fournisseurs d’accès et se connecte à des points d’échange. Le contenu est chargé avant la demande, ce qui réduit le trafic vers l’amont aux heures de pointe. Ses services applicatifs et la fourniture des vidéos encodées ne doivent pas nécessairement fonctionner sur la même infrastructure. D’autres architectures de CDN privés peuvent remplir les caches à la demande. Dans chaque cas, la diffusion adaptative en continu contrôle le débit demandé par le lecteur, tandis que le CDN contribue à déterminer le chemin et le serveur qui répondent à ces requêtes.

Points clés

  • Un CDN répartit les copies et la capacité de service entre plusieurs emplacements.
  • Le déploiement en profondeur et le déploiement aux points d’interconnexion offrent des compromis entre longueur des chemins et coût de gestion des sites.
  • Le placement à la demande remplit les caches au besoin ; le placement anticipé le fait avant les requêtes.
  • Un CNAME DNS peut confier la suite de la résolution d’un nom à un CDN.
  • La sélection d’un groupe dépend des performances du réseau et de sa charge, ainsi que de la géographie.
  • Les CDN et la diffusion adaptative en continu agissent sur différentes parties de la fourniture vidéo.
6

Programmer avec des sockets UDP et TCP

Un programme utilisant des sockets rend le comportement du transport visible : un datagramme arrive sous forme d’un message, tandis qu’une réception TCP renvoie les octets disponibles. Crée un petit service textuel avec chaque protocole de transport et suis comment le serveur sait où répondre. Ajoute ensuite la délimitation des messages à la version TCP et envoie une véritable requête HTTP, en reliant les appels de socket Python aux échanges de protocole et aux cas de défaillance sous-jacents.

6.1 Un service UDP en Python

Les sockets Python envoient des octets. Encode une chaîne avant l’envoi et décode ensuite les octets reçus ; l’encodage de texte par défaut est UTF-8. AF_INET sélectionne IPv4 et SOCK_DGRAM sélectionne UDP. Commence par un service local pour que les deux processus puissent utiliser l’adresse de bouclage 127.0.0.1.

Lancer d’abord le récepteur

Ce serveur traite de courts datagrammes textuels et répond en majuscules :

from socket import socket, AF_INET, SOCK_DGRAM

with socket(AF_INET, SOCK_DGRAM) as server:
    server.bind(("127.0.0.1", 12000))
    while True:
        data, client_addr = server.recvfrom(2048)
        reply = data.decode().upper().encode()
        server.sendto(reply, client_addr)

bind donne à la socket son adresse et son port de réception. Une liaison à 127.0.0.1 n’accepte que le trafic local. La chaîne d’adresse vide "" lie au contraire la socket à toutes les interfaces IPv4, rendant le service accessible depuis d’autres hôtes lorsque le réseau le permet. Arrête le serveur en cours d’exécution avant d’en lancer une autre copie sur le même point de terminaison.

recvfrom bloque jusqu’à l’arrivée d’un datagramme. Il renvoie les données et l’adresse de l’émetteur, y compris son port. Le serveur utilise la paire renvoyée comme destination de sendto, ce qui lui permet de répondre à des clients dont il ne connaissait pas les ports éphémères à l’avance.

Envoyer une requête et limiter l’attente
from socket import socket, AF_INET, SOCK_DGRAM

with socket(AF_INET, SOCK_DGRAM) as client:
    client.settimeout(2.0)
    client.sendto(b"hello network", ("127.0.0.1", 12000))
    try:
        data, server_addr = client.recvfrom(2048)
        print(data.decode())
    except TimeoutError:
        print("No reply within 2 seconds")

Le préfixe b crée un littéral d’octets ; "hello network".encode() produit les mêmes octets. Le système d’exploitation attribue le port local du client lorsque c’est nécessaire. La réponse attendue est HELLO NETWORK. Aucun des deux programmes n’appelle listen ou accept, car UDP n’établit pas de connexion de transport.

Une absence de réponse n’indique pas au client exactement ce qui a échoué. La requête ou la réponse peut avoir été perdue ; il se peut aussi qu’aucun serveur ne soit à l’écoute. Le délai d’attente permet à l’application de reprendre le contrôle. Certains systèmes peuvent signaler un port de destination fermé comme une erreur ; Windows peut lever ConnectionResetError pendant la réception.

Respecter les limites des datagrammes

Chaque réception traite un datagramme. Deux datagrammes ne sont pas combinés en un seul message. Si le tampon de réception est trop petit, la partie excédentaire du datagramme est rejetée sur les systèmes Unix habituels ; Windows peut à la place signaler une erreur. Une autre réception ne récupère pas la fin manquante. Choisis un tampon assez grand pour les messages attendus par l’application.

La limite de charge utile UDP sur IPv4 est de 65 507 octets avec un en-tête IPv4 de taille minimale. C’est un maximum du protocole, pas une taille cible utile pour les datagrammes ordinaires. Un programme qui doit détecter les pertes peut numéroter les messages, enregistrer les heures d’envoi avec time.perf_counter() et compter les expirations du délai d’attente. Deux expirations sur dix requêtes donnent un taux de perte mesuré de 20 %. Réessayer une requête peut entraîner un traitement en double ; un système qui réessaie après expiration peut donc aussi avoir besoin de reconnaître les numéros de message répétés.

Points clés

  • SOCK_DGRAM crée une socket UDP ; l’encodage et le décodage permettent de passer du texte aux octets et inversement.
  • bind choisit le point de terminaison de réception ; le bouclage limite l’accès au même hôte.
  • recvfrom fournit l’adresse de l’émetteur nécessaire pour répondre.
  • Un délai d’attente limite l’attente, mais n’identifie pas la cause des données manquantes.
  • Un tampon de réception trop petit peut entraîner la perte de la fin d’un datagramme UDP.

6.2 Un service TCP avec des messages complets

TCP fournit au programme un flux d’octets ordonné. Il ne conserve pas les limites des appels à sendall. Un court test complet peut arriver en un seul recv, mais un programme correct doit aussi gérer une requête répartie sur plusieurs réceptions.

Délimiter une requête textuelle

Choisis un saut de ligne comme délimiteur. Le client envoie une ligne UTF-8 et le serveur renvoie une ligne en majuscules. Ce serveur lit les données jusqu’à trouver ce délimiteur avant de les décoder :

from socket import socket, AF_INET, SOCK_STREAM

with socket(AF_INET, SOCK_STREAM) as server:
    server.bind(("127.0.0.1", 12000))
    server.listen(5)
    while True:
        conn, client_addr = server.accept()
        with conn:
            data = b""
            while b"\n" not in data:
                chunk = conn.recv(1024)
                if not chunk:
                    break
                data += chunk
            if b"\n" in data:
                line = data.split(b"\n", 1)[0]
                conn.sendall(line.decode().upper().encode() + b"\n")

listen crée une socket d’écoute. accept renvoie une nouvelle socket de connexion et l’adresse du client. Utilise conn pour les octets de ce client ; la socket initiale reste disponible pour accepter d’autres connexions. Ici, les clients sont servis un à la fois. La capacité de la file de cinq concerne les connexions en attente, et non cinq fils d’exécution actifs.

Compléter le côté client
from socket import create_connection

with create_connection(("127.0.0.1", 12000), timeout=2) as client:
    client.sendall(b"hello network\n")
    data = b""
    while b"\n" not in data:
        chunk = client.recv(1024)
        if not chunk:
            raise EOFError("Reply ended before its newline")
        data += chunk
    print(data.split(b"\n", 1)[0].decode())

Le résultat attendu est HELLO NETWORK. sendall poursuit l’envoi jusqu’à ce que tous les octets fournis aient été transmis ou qu’une erreur se produise. Un seul send peut n’en envoyer qu’une partie et indique le nombre d’octets acceptés. Aucun de ces appels ne fournit au récepteur les limites des messages applicatifs.

Ce service accepte une ligne par connexion. Un service persistant à plusieurs messages conserverait les octets situés après le premier saut de ligne pour son message suivant. Les préfixes de longueur et la fermeture du sens d’envoi sont d’autres choix de délimitation. Recevoir b"" signifie que le pair a terminé son côté émission ; ce n’est pas un fragment vide à lire de nouveau indéfiniment.

Relier le code aux protocoles réels

Une requête HTTP/1.1 est elle aussi une suite d’octets :

from socket import create_connection

request = ("GET / HTTP/1.1\r\n"
           "Host: example.com\r\n"
           "Connection: close\r\n\r\n")
with create_connection(("example.com", 80), timeout=5) as sock:
    sock.sendall(request.encode("ascii"))
    chunks = []
    while True:
        chunk = sock.recv(4096)
        if not chunk:
            break
        chunks.append(chunk)
print(b"".join(chunks).decode(errors="replace")[:200])

Ce code affiche le début de la réponse brute, y compris son état et ses en-têtes. Un serveur peut renvoyer une erreur ou une redirection ; le code ne suppose aucun corps de réponse particulier. HTTPS sur le port 443 nécessite une encapsulation TLS avec vérification du certificat et du nom d’hôte, et pas seulement un changement de numéro de port. Par exemple, ssl.create_default_context().wrap_socket(sock, server_hostname="example.com") encapsule une socket connectée après import ssl. Une connexion refusée signifie généralement que personne n’est à l’écoute ; un trafic rejeté silencieusement peut entraîner l’expiration du délai d’attente. Pour redémarrer rapidement un serveur sous Unix, définir SO_REUSEADDR avant bind peut permettre la réutilisation lorsqu’une ancienne connexion se ferme ; cela ne permet pas à deux sockets d’écoute actives d’occuper le même point de terminaison. Les serveurs concurrents utilisent des fils d’exécution ou des boucles d’événements et distinguent les connexions par les deux paires adresse-port des points de terminaison.

Points clés

  • accept renvoie une socket de connexion distincte de la socket d’écoute.
  • Les messages TCP nécessitent une délimitation et des boucles de réception.
  • sendall gère les envois partiels ; recv peut tout de même renvoyer des données partielles.
  • Une réception TCP vide signale la fin du sens d’envoi du pair.
  • Une requête HTTP/1.1 nécessite des fins de ligne CRLF et la ligne vide finale.
  • HTTPS nécessite TLS en plus du port 443.
  • La capacité de la file des connexions en attente contrôle les connexions en attente, pas le traitement simultané par l’application.

Couche application : exemples

6 Leçons Interactives

1

Choisis une architecture applicative et un transport

9 étapes
Suis la conception d’un partage de fichiers, des rôles des hôtes au service de transport dont leurs processus ont besoin.
  1. 1
    IntroductionCommence par les programmes

    Un service réseau est construit à partir de programmes situés aux extrémités du réseau. Imagine la distribution d’un jeu de données de recherche à un groupe grandissant : quelqu’un doit localiser les données, les envoyer et les recevoir. Suis ces responsabilités pour comparer les architectures client-serveur et P2P, puis détermine ce dont les processus ont besoin de leur service de transport.

  2. 2
    ExplicationPlace le contenu sur des serveurs dédiés

    Dans une architecture client-serveur, les clients demandent des données à un service toujours actif à une adresse connue. Le service peut utiliser de nombreuses machines derrière un seul nom, mais le fournisseur apporte toujours cette capacité de service. Si chaque chercheur télécharge une copie complète depuis le service, davantage de chercheurs signifient davantage de travail d’envoi pour ses serveurs. Les routeurs transportent les paquets sans exécuter l’application de partage de fichiers.

  3. 3
    ExempleLaisse les participants contribuer à l’envoi

    Dans une architecture P2P, un chercheur qui a reçu certains fragments peut les envoyer à un autre chercheur avant d’avoir terminé le téléchargement du fichier entier. Un pair qui rejoint le réseau ajoute de la demande, mais aussi une capacité d’envoi potentielle. C’est l’origine de l’auto-extensibilité. Une liaison d’envoi lente, un pair déconnecté ou un pair qui ne veut pas partager réduit cet avantage ; la découverte, la disponibilité et les incitations comptent donc.

  4. 4
    DéfiClasse le chemin qui transporte le fichier

    Un annuaire répertorie les personnes qui possèdent un jeu de données. Les chercheurs échangent ensuite directement ses fragments. Chaque transfert de fichier est-il client-serveur, et qui est le client lorsqu’un pair demande un fragment ?

    ---reveal---

    L’architecture globale est hybride : la découverte repose sur un serveur et le transfert des données sur les pairs. Le pair qui prend l’initiative de demander le fragment est le client pour cet échange ; le pair qui répond joue le rôle de serveur.

  5. 5
    ExplicationLocalise un point de terminaison récepteur

    Un processus utilise une socket pour accéder à la couche transport. La destination nécessite à la fois une adresse IP d’hôte et un port : l’adresse IP permet d’atteindre l’hôte et le port distingue son service récepteur. Pour un service HTTPS à l’adresse 203.0.113.10, le port habituel est 443. Le client peut utiliser un port source éphémère attribué par le système d’exploitation ; les deux extrémités n’ont donc pas besoin d’utiliser le même numéro de port.

  6. 6
    ExempleChoisis le délai qui compte

    Un jeu envoie une nouvelle position 30 fois par seconde, soit environ toutes les 33 ms. Récupérer une ancienne mise à jour peut être moins utile que d’agir sur la suivante ; UDP peut donc convenir à ce trafic. Un fichier de configuration téléchargé doit être complet : il a donc besoin d’un acheminement fiable. Ce choix concerne le sens des données et les délais ; choisir UDP ne supprime pas en soi la congestion sur le chemin et ne réserve pas de capacité.

  7. 7
    LienAjoute les services manquants

    TCP fournit des octets de manière fiable et ordonnée, le contrôle de flux et le contrôle de congestion, mais ni chiffrement ni échéance. TLS peut sécuriser son trafic. UDP fournit des datagrammes et préserve leurs limites, mais laisse la gestion des pertes et de l’ordre aux couches supérieures. HTTP/3 obtient des flux fiables et TLS 1.3 grâce à QUIC sur UDP. Identifie la pile complète avant de juger le service à partir de son protocole visible le plus bas.

  8. 8
    DéfiConçois un échange sécurisé entre pairs

    Deux pairs doivent échanger un document privé complet. L’un prend l’initiative du contact et le transfert utilise UDP seul. Quels sont leurs rôles dans l’échange et de quels services cette architecture a-t-elle encore besoin ?

    ---reveal---

    Celui qui prend l’initiative est le client et celui qui répond est le serveur pour cet échange. UDP seul ne fournit ni acheminement complet et ordonné ni confidentialité. L’architecture a besoin de fiabilité et de sécurité au-dessus d’UDP, ou d’une pile de transport qui les fournit.

  9. 9
    RécapitulatifSuis les rôles avant de choisir le transport

    Pour évaluer une architecture, détermine d’abord qui envoie le contenu et qui aide seulement à le localiser. Identifie ensuite le point de terminaison récepteur et les services dont le contenu a besoin : un acheminement correct, un débit effectif suffisant, une arrivée dans les délais et une protection. Ces décisions expliquent à la fois l’architecture applicative et les raisons pour lesquelles une pile de transport convient. Une socket relie le processus au service choisi.

2

Lis et améliore un échange HTTP

15 étapes
Pars des messages et des temps HTTP/1.1 pour étudier la validation du cache et les flux QUIC.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionSuis le chargement d’une page
  2. 2
    ExempleLis la structure de la requête
  3. 3
    ExplicationSépare l’établissement de la transmission
  4. 4
    ExempleTermine le calcul du temps
  5. 5
    DéfiCompte les étapes de dépendance
  6. 6
    ExplicationReconnais un navigateur qui revient
  7. 7
    ExempleChoisis le parcours selon le résultat du cache
  8. 8
    ExplicationValide sans renvoyer le corps de l’objet
  9. 9
    DéfiPrévois la deuxième requête
  10. 10
    ExplicationEntrelace les trames des réponses
  11. 11
    Point cléSitue le blocage sous HTTP
  12. 12
    ExempleCompare l’établissement de nouvelles connexions sécurisées
  13. 13
    ConseilDistingue le sens du transport
  14. 14
    DéfiAnalyse une requête HTTP/3 avec une copie en cache
  15. 15
    RécapitulatifIdentifie le coût supprimé
3

Suis et lis une résolution DNS

11 étapes
Suis les requêtes d’un résolveur, les indications de serveurs en cache et les enregistrements de ressource d’une réponse.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionTrouve un service avant de le contacter
  2. 2
    ExplicationCommence par le résolveur local
  3. 3
    ExempleSuis chaque indication de serveur
  4. 4
    ExempleAdditionne les temps d’attente
  5. 5
    DéfiPrévois une mise à jour d’adresse
  6. 6
    ExplicationChoisis le bon type d’enregistrement
  7. 7
    ExempleLis les sections de la réponse
  8. 8
    LienDistingue les objectifs de protection
  9. 9
    DéfiInterprète une indication de serveur de messagerie
  10. 10
    DéfiAssocie la mise en cache au bon enregistrement
  11. 11
    RécapitulatifVérifie ce que chaque nom identifie
4

Suis un courriel de sa soumission à sa lecture

11 étapes
Relie les enveloppes SMTP, le contenu MIME et l’accès à la boîte aux lettres dans un même parcours d’acheminement.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionSépare le transfert de la lecture
  2. 2
    ExplicationConfie le travail à un serveur d’envoi
  3. 3
    ExempleFournis son enveloppe à SMTP
  4. 4
    Point cléDistingue les adresses affichées
  5. 5
    DéfiExplique le destinataire caché
  6. 6
    LienAuthentifie le bon domaine
  7. 7
    ExplicationReprésente une pièce jointe
  8. 8
    ExempleConserve l’état de la boîte aux lettres sur le serveur
  9. 9
    DéfiChoisis un accès pour deux appareils
  10. 10
    DéfiSuis un message de messagerie web de bout en bout
  11. 11
    RécapitulatifAssocie chaque symptôme à son étape
5

Analyse la fourniture de fichiers et de vidéos

16 étapes
Étudie les bornes de distribution, les calculs de tampon et le routage des requêtes vers un CDN.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionTrouve la ressource limitante
  2. 2
    ExplicationCompte les copies envoyées par un serveur
  3. 3
    ExplicationAjoute les contributions des pairs
  4. 4
    ExempleCalcule la capacité disponible
  5. 5
    ExempleCompare toutes les limites simultanées
  6. 6
    DéfiSupprime le bon goulot d’étranglement
  7. 7
    LienChoisis les fragments et les partenaires d’envoi
  8. 8
    ExplicationMesure les secondes lisibles
  9. 9
    ExempleConvertis un segment en bits
  10. 10
    ExempleRéagis à une baisse du débit effectif
  11. 11
    DéfiVérifie le tampon avant l’arrivée
  12. 12
    ExplicationPlace des copies sur des chemins plus courts
  13. 13
    ExempleConfie la résolution du nom à un CDN
  14. 14
    DéfiChoisis selon les performances, pas seulement selon une carte
  15. 15
    DéfiAssocie un succès de cache CDN à l’adaptation
  16. 16
    RécapitulatifAdapte les améliorations aux contraintes
6

Crée et débogue un échange avec des sockets

14 étapes
Suis les datagrammes UDP, délimite les messages TCP et relie l’interface de programmation des sockets à HTTP.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionRends visible le comportement du transport
  2. 2
    ExempleCrée et lie une socket UDP
  3. 3
    ExempleReçois un datagramme et renvoie-le
  4. 4
    ConseilLimite l’attente d’une réponse
  5. 5
    DéfiPrévois une réception trop petite
  6. 6
    ExplicationAccepte une connexion TCP
  7. 7
    ExempleObserve un message fractionné
  8. 8
    ExempleAccumule les octets jusqu’au délimiteur
  9. 9
    DéfiConserve les octets du message suivant
  10. 10
    ConseilEnvoie chaque octet de la réponse
  11. 11
    LienÉcris une requête HTTP sous forme d’octets
  12. 12
    ExplicationDistingue les connexions en attente des traitements
  13. 13
    DéfiAnalyse deux programmes en attente
  14. 14
    RécapitulatifVérifie les points de terminaison, les octets et la fin du message

Couche application : QCM

50 Questions Pratiques en 5 séries

Série 1 : Processus, HTTP et choix de résolution10 Questions Pratiques

Question 1 sur 10

Un pair participant au partage de fichiers prend l’initiative de demander un fragment à un autre pair. Quel rôle joue le processus demandeur dans cet échange ?
  1. Le rôle de serveur.
  2. Le rôle de serveur de suivi.
  3. Le rôle de client.
  4. Le rôle de relais.
Afficher la réponseMasquer la réponse
Réponse : C
Le processus qui prend l’initiative du contact est le client pour cet échange, même dans une application P2P. Un pair peut ensuite jouer le rôle de serveur lorsqu’un autre processus demande l’un de ses fragments ; l’architecture n’attribue pas à chaque pair un rôle de communication permanent.

Question 2 sur 10

Un service utilise un hôte pour répertorier les participants disponibles, mais ceux-ci s’envoient directement des fragments de fichier. Comment ce service est-il organisé ?
  1. Une architecture hybride avec découverte centralisée et transfert de données entre pairs.
  2. Un service client-serveur avec distribution centralisée des fichiers.
  3. Un service P2P pur sans hôte dédié à la coordination.
  4. Un serveur mandataire avec cache et découverte des participants par le serveur d’origine.
Afficher la réponseMasquer la réponse
Réponse : A
L’annuaire centralise la découverte, tandis que les octets du fichier circulent entre les pairs. Cette combinaison constitue une architecture hybride. Voir dans l’annuaire une preuve de distribution centralisée des fichiers revient à confondre le serveur qui trouve les pairs avec les hôtes qui envoient réellement les fragments.

Question 3 sur 10

Un hôte exécute plusieurs services réseau. Quelles informations de destination permettent à un émetteur d’atteindre le point de terminaison récepteur voulu ?
  1. L’adresse IP de l’hôte et le chemin du fichier.
  2. Le port du service et le type de contenu de l’objet.
  3. Le nom d’hôte et le code d’état de la réponse.
  4. L’adresse IP de l’hôte et le port du service.
Afficher la réponseMasquer la réponse
Réponse : D
Une adresse IP localise l’hôte et un port identifie le point de terminaison de transport récepteur sur cet hôte. Un chemin aide une application comme HTTP à sélectionner une ressource une fois qu’elle est atteinte ; il ne remplace pas le port nécessaire pour joindre le service.

Question 4 sur 10

Une application de capteur envoie des mises à jour indépendantes qui deviennent vite obsolètes, mais ses téléchargements de configuration doivent arriver complets. Quelle organisation du transport répond à ces deux besoins ?
  1. TCP pour les mises à jour et UDP sans protection pour la configuration.
  2. UDP pour les mises à jour et un service fiable pour la configuration.
  3. UDP sans protection pour les deux, car il préserve les limites des messages.
  4. TCP pour les deux, car il garantit une échéance à chaque mise à jour.
Afficher la réponseMasquer la réponse
Réponse : B
De nouvelles mises à jour peuvent remplacer les anciennes qui ont été perdues, tandis que les données de configuration nécessitent chaque octet. UDP peut convenir aux mises à jour, avec TCP ou un autre service fiable pour transporter la configuration. TCP fournit un acheminement fiable, mais ne garantit pas d’échéance pour les mises à jour sensibles aux délais.

Question 5 sur 10

Un serveur HTTP renvoie 404 Not Found pour /handbook.pdf. Qu’a établi cet échange ?
  1. Le serveur n’a jamais accepté la connexion de transport.
  2. La requête a réussi, mais le navigateur a rejeté le fichier.
  3. Le serveur a répondu, mais la ressource est introuvable.
  4. Le serveur a redirigé la ressource vers une nouvelle adresse.
Afficher la réponseMasquer la réponse
Réponse : C
Un code 404 est une réponse HTTP indiquant que la ressource demandée est absente : un serveur HTTP a donc été atteint et a répondu. Un échec de connexion empêcherait l’arrivée de cette réponse. Une redirection permanente utilise plutôt un code d’état comme 301 et indique le nouvel emplacement.

Question 6 sur 10

Une nouvelle connexion TCP HTTP non chiffrée a un RTT de 25 ms. Un objet de 300 kB traverse un chemin à 40 Mbps. Quel est son temps de récupération approximatif, sans compter DNS et le traitement ?
  1. 60 ms.
  2. 85 ms.
  3. 160 ms.
  4. 110 ms.
Afficher la réponseMasquer la réponse
Réponse : D
L’objet contient 2,4 Mbit : sa transmission prend donc 60 ms à 40 Mbps. Ajoute un RTT de 25 ms pour l’établissement TCP et un autre pour la requête et le début de la réponse, soit 110 ms. Le résultat de 85 ms omet l’établissement de la nouvelle connexion.

Question 7 sur 10

Qu’exige Cache-Control: no-cache avant la réutilisation d’une réponse stockée ?
  1. La valider auprès du serveur d’origine.
  2. Refuser de la stocker complètement.
  3. La réutiliser jusqu’à la fermeture du navigateur.
  4. La conserver uniquement dans un mandataire partagé.
Afficher la réponseMasquer la réponse
Réponse : A
no-cache permet le stockage, mais exige une validation réussie avant toute réutilisation. On peut facilement interpréter son nom comme une interdiction de stockage, mais c’est no-store qui exprime cette autre règle. Un cache peut donc conserver une réponse no-cache et la valider avec un ETag lors de la requête suivante.

Question 8 sur 10

Un cache a un taux de succès de 30 %. Les succès prennent 8 ms et les échecs 180 ms. Quel est le temps de réponse moyen ?
  1. 59,6 ms.
  2. 128,4 ms.
  3. 94 ms.
  4. 172 ms.
Afficher la réponseMasquer la réponse
Réponse : B
Pondère chaque temps par la proportion de requêtes suivant ce parcours : 30 % de 8 ms plus 70 % de 180 ms donnent 128,4 ms. Le résultat de 59,6 ms inverse les poids des succès et des échecs. Une simple moyenne des deux temps supposerait à tort que les deux parcours sont aussi fréquents.

Question 9 sur 10

Un résolveur possède en cache une délégation valide vers les serveurs faisant autorité pour un domaine, mais aucune adresse en cache pour l’hôte demandé. Où peut-il envoyer sa prochaine requête ?
  1. À un serveur racine pour recommencer la résolution.
  2. Directement au serveur web demandé.
  3. À l’un de ces serveurs faisant autorité.
  4. Au cache du navigateur pour la délégation.
Afficher la réponseMasquer la réponse
Réponse : C
La délégation en cache identifie déjà les serveurs responsables de ce domaine : le résolveur peut donc interroger directement un serveur faisant autorité. Repartir de la racine répéterait le travail économisé grâce au cache. Une délégation indique où poser la question ; elle n’est pas elle-même la réponse contenant l’adresse de l’hôte.

Question 10 sur 10

Une page comporte un très petit objet HTML et six très petites images. Le RTT est de 15 ms. Compare HTTP non chiffré non persistant séquentiel à une récupération non persistante utilisant trois connexions parallèles pour les images par lot après le HTML. Néglige la transmission, DNS et le traitement. Combien de temps le traitement par lots fait-il gagner ?
  1. 120 ms.
  2. 90 ms.
  3. 150 ms.
  4. 165 ms.
Afficher la réponseMasquer la réponse
Réponse : A
Sept objets récupérés séquentiellement nécessitent chacun deux RTT, soit 210 ms au total. Le traitement par lots nécessite 30 ms pour le HTML et deux lots d’images de 30 ms, soit 90 ms au total : il fait donc gagner 120 ms. Compter les six images dans un seul lot surestimerait le parallélisme autorisé et donnerait un gain de 150 ms.
Série 2 : Enregistrements DNS et parcours du courriel10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Que fournit un serveur DNS faisant autorité pour un domaine qu’il dessert ?
  1. La résolution récursive des noms pour les hôtes.
  2. Les enregistrements de ressource publiés du domaine.
  3. Les objets web désignés par les URL du domaine.
  4. Un port source pour chaque connexion de navigateur.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Une réponse DNS contient assets.example.net CNAME edge.cdn.example.org. Le résolveur ne possède aucune adresse pour la cible. Quelle information doit-il obtenir avant que le client puisse se connecter en IPv4 ?
  1. Un enregistrement MX pour assets.example.net.
  2. Un enregistrement NS dont la valeur est l’adresse IP du serveur CDN.
  3. Un enregistrement PTR dont la valeur est le chemin de l’objet HTTP.
  4. Un enregistrement A pour edge.cdn.example.org.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un domaine possède des entrées MX de préférences 15 et 35. Quel serveur un émetteur doit-il normalement essayer en premier ?
  1. Le serveur de préférence 15.
  2. Le serveur de préférence 35.
  3. Le serveur nommé dans le CNAME de l’hôte web.
  4. Le serveur ayant le TTL DNS le plus long.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un résolveur met une adresse en cache avec un TTL de 900 s. L’adresse faisant autorité change 240 s plus tard. Pendant combien de temps le résolveur peut-il encore utiliser l’ancienne réponse en cache ?
  1. 240 s.
  2. 900 s.
  3. 660 s.
  4. 1 140 s.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une réponse DNS sur UDP arrive avec le drapeau TC activé et ne contient pas la réponse complète. Comment un résolveur doit-il obtenir la réponse complète avec le mécanisme de repli habituel ?
  1. Répéter la requête sur le port TCP 53.
  2. Répéter la requête sur le port UDP 80.
  3. Considérer les enregistrements manquants comme NXDOMAIN.
  4. Ouvrir une connexion TCP sur le port 25.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Que doit normalement faire un serveur de messagerie émetteur après un rejet SMTP temporaire 4xx ?
  1. Marquer le message comme remis et le retirer de la file.
  2. Garder le message en attente pour réessayer plus tard.
  3. Considérer que la boîte aux lettres n’existe définitivement pas.
  4. Remplacer SMTP par IMAP pour l’acheminement.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un message est accepté pour RCPT TO:<archive@example.net>, mais son champ To: visible indique team@example.net. Quelle adresse contrôle cet acheminement accepté ?
  1. team@example.net dans l’en-tête visible du message.
  2. L’adresse de l’expéditeur figurant dans MAIL FROM.
  3. Le nom d’hôte fourni par la commande EHLO.
  4. archive@example.net dans l’enveloppe SMTP.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un téléphone doit voir les dossiers et les indicateurs de lecture modifiés sur un ordinateur portable. Quelle méthode d’accès prend directement en charge cet état de la boîte aux lettres sur le serveur ?
  1. POP3 en mode télécharger et supprimer sur chaque appareil.
  2. Le transfert SMTP entre les appareils.
  3. L’accès IMAP à la boîte aux lettres partagée.
  4. POP3 en mode télécharger et conserver sur les deux appareils.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un message affiche From: help@example.org, utilise un expéditeur d’enveloppe à mailer.example.net, réussit SPF pour example.net et n’a pas de signature DKIM valide. Pourquoi ce succès SPF ne donne-t-il pas un résultat DMARC positif pour le domaine affiché ?
  1. La vérification SPF réussie doit utiliser le domaine du destinataire.
  2. Le domaine SPF validé n’est pas aligné sur le domaine From.
  3. Le résultat SPF positif exige une préférence MX inférieure à 10.
  4. Le résultat SPF positif n’est valide que si SMTP utilise le port 465.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un serveur accepte des messages de 8 MB au maximum. Un expéditeur joint deux fichiers binaires de 3 MB encodés en Base64. Qu’en résulte-t-il pour la taille du message complet ?
  1. Il dépasse la limite une fois les données supplémentaires du message incluses.
  2. Il tient dans la limite avec 2 MB disponibles pour les en-têtes et le texte.
  3. Il tient exactement dans la limite, car les données supplémentaires sont déjà incluses.
  4. Il dépasse la limite seulement si les deux fichiers sont de types différents.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Fourniture de contenu et comportement des sockets10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un pair BitTorrent a besoin de plusieurs fragments. Quel fragment la priorité aux fragments les plus rares favorise-t-elle ?
  1. Le fragment nécessaire détenu par le moins de voisins.
  2. Le fragment nécessaire provenant du voisin le plus rapide.
  3. Le fragment nécessaire situé le plus tôt dans le fichier.
  4. Le fragment nécessaire le plus demandé par les autres pairs.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Quelles informations un manifeste DASH donne-t-il au lecteur pour choisir et demander des segments ?
  1. Le débit effectif actuel du chemin, le niveau du tampon et le prochain débit choisi.
  2. Les versions encodées disponibles, les débits binaires et les URL des segments.
  3. Un encodage fixe et une seule URL de téléchargement de la vidéo complète.
  4. Les emplacements des serveurs disponibles sans les informations sur les versions encodées.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un serveur envoie à 60 Mbps vers 12 clients, qui téléchargent chacun à 15 Mbps. Quelle est la borne inférieure du temps de distribution client-serveur pour un fichier de 900 Mbit ?
  1. 15 s.
  2. 60 s.
  3. 240 s.
  4. 180 s.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un segment vidéo de 5 s est encodé à 3 Mbps et téléchargé à 6 Mbps pendant une lecture continue. Comment évolue le tampon après l’arrivée du segment complet sans interruption ?
  1. Il diminue de 2,5 s.
  2. Il augmente de 2,5 s.
  3. Il augmente de 5 s.
  4. Il reste inchangé.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un serveur CDN ne possède pas de copie d’une image demandée, la récupère auprès du serveur d’origine, puis la conserve pour les requêtes ultérieures. De quel comportement de placement s’agit-il ?
  1. Un remplissage à la demande après un échec de cache.
  2. Un remplissage anticipé avant les requêtes.
  3. Un relais depuis l’origine sans copie locale.
  4. Une fourniture par d’autres spectateurs en pair à pair.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un serveur UDP reçoit des données de (192.0.2.44, 53018). Où doit-il envoyer la réponse à cette requête ?
  1. À 192.0.2.44 sur le port du serveur.
  2. À sa propre adresse IP sur le port 53018.
  3. À 192.0.2.44 sur le port 53018.
  4. À 192.0.2.44 sur un port inutilisé.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un serveur TCP reçoit b"part" lors du premier recv(1024) d’une requête délimitée par un saut de ligne. Que doit-il faire avant de considérer cette requête comme complète ?
  1. Considérer immédiatement les quatre octets comme la requête complète.
  2. Continuer à recevoir jusqu’au saut de ligne ou à la fin du flux.
  3. Appeler à nouveau accept pour obtenir le reste de la requête.
  4. Augmenter la capacité de la file d’écoute pour obtenir les octets restants.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Pour un fichier de 1 200 Mbit, 30 pairs envoient chacun à 2 Mbps et le plus lent télécharge à 12 Mbps. Le serveur envoie à 60 Mbps. De combien le P2P réduit-il la borne inférieure par rapport au client-serveur, en supposant que seules les liaisons d’accès sont des goulots d’étranglement ?
  1. 100 s.
  2. 500 s.
  3. 580 s.
  4. 300 s.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un lecteur dispose de 3 s dans son tampon et demande des segments complets de 4 s à 2 ou 4 Mbps. Le débit effectif reste à 3 Mbps ; seuls les segments complets deviennent lisibles. Quel choix évite une interruption lors du prochain téléchargement et augmente le tampon ?
  1. La version à 4 Mbps.
  2. L’une ou l’autre, car les deux segments durent 4 s.
  3. La version à 2 Mbps.
  4. Aucune des deux, car le tampon est plus court qu’un segment.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Le résolveur DNS public d’un spectateur est éloigné. Le groupe CDN A est le plus proche de ce résolveur, mais son chemin vers le spectateur est congestionné ; le groupe B dispose d’un chemin mesuré plus rapide vers le spectateur. Quel changement de sélection résout ce problème ?
  1. Choisir uniquement selon la distance physique au résolveur public.
  2. Augmenter le TTL DNS pour que le résolveur conserve A plus longtemps.
  3. Utiliser un débit encodé plus élevé lorsque le résolveur est éloigné.
  4. Utiliser les mesures de performance du réseau client pour choisir le groupe.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Suis les défaillances et corrige les raisonnements sur les protocoles10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Que renvoie la fonction Python accept() à un serveur TCP à l’écoute ?
  1. La prochaine requête complète et sa longueur en octets.
  2. La socket d’écoute initiale et un nouveau numéro de port serveur.
  3. Un datagramme UDP et le numéro de message de l’émetteur.
  4. Une nouvelle socket de connexion et l’adresse du client.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Une requête inclut If-None-Match: "r9" et le serveur d’origine renvoie 304 Not Modified. Comment un cache doit-il satisfaire la requête ?
  1. Remplacer la représentation stockée par le corps vide de la réponse.
  2. Réutiliser la représentation stockée validée par cette réponse.
  3. Répéter un GET non conditionnel, car tout code 304 est un échec.
  4. Supprimer la représentation stockée, car son ETag est invalide.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Plusieurs flux HTTP/2 partagent une connexion. Un segment TCP perdu empêche l’acheminement des octets suivants. Pourquoi une réponse dont les propres octets sont arrivés peut-elle aussi attendre ?
  1. TCP fournit les octets de la connexion dans un ordre global unique.
  2. HTTP/2 exige que tous les corps de réponse se terminent dans l’ordre des requêtes.
  3. Chaque flux HTTP/2 ouvre une nouvelle connexion TCP après chaque perte.
  4. HPACK exige que chaque trame de corps perdue soit compressée à nouveau.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Sur un hôte Unix, un récepteur UDP utilise un tampon de 500 octets pour un datagramme entrant de 700 octets. Qu’advient-il de la fin non lue ?
  1. Les 200 octets restants sont lus ensuite.
  2. Le datagramme reste intact dans la file.
  3. Les 200 octets restants sont rejetés.
  4. L’émetteur renvoie les 200 octets.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un utilisateur envoie un message par messagerie web vers un autre fournisseur. Quelle combinaison de protocoles décrit la connexion du navigateur et le transfert habituel entre serveurs ?
  1. SMTP côté navigateur ; HTTPS entre les serveurs de messagerie.
  2. IMAP côté navigateur ; POP3 entre les serveurs de messagerie.
  3. HTTPS côté navigateur ; IMAP entre les serveurs de messagerie.
  4. HTTPS côté navigateur ; SMTP entre les serveurs de messagerie.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un torrent compte de nombreux pairs qui téléchargent mais n’apportent presque aucune capacité d’envoi. Pourquoi l’ajout de ces pairs a-t-il peu de chances de produire l’avantage habituel de l’auto-extensibilité ?
  1. Leurs liaisons de téléchargement rendent inutile l’envoi par le serveur.
  2. Leur présence transforme chaque fragment existant en fichier complet.
  3. Ils ajoutent de la demande sans apporter beaucoup de capacité de distribution utilisable.
  4. Leurs requêtes au serveur de suivi équivalent à une capacité d’envoi de fichiers.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une résolution DNS avec un cache vide a un RTT hôte-résolveur de 4 ms, un RTT racine de 12 ms, un RTT TLD de 18 ms et un RTT vers le serveur faisant autorité de 26 ms. Une résolution ultérieure utilise les indications de serveurs racine et TLD en cache, mais n’a pas de réponse finale en cache. Combien de temps gagne-t-elle, sans compter le traitement ?
  1. 30 ms.
  2. 26 ms.
  3. 34 ms.
  4. 56 ms.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un protocole persistant utilisant le saut de ligne reçoit b"red\nblu", puis b"e\n". Quel traitement des requêtes préserve correctement les deux messages ?
  1. Traiter red, jeter blu, puis traiter e comme deuxième requête.
  2. Traiter red, conserver blu, puis l’associer à e et traiter blue.
  3. Attendre la fermeture et traiter red et blue comme une seule requête.
  4. Traiter immédiatement red et blu, puis traiter e séparément.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une très petite page comporte un objet HTML et quatre images. Le RTT est de 20 ms. Compare une connexion HTTPS persistante avec des requêtes séquentielles à de nouvelles connexions HTTPS séquentielles pour tous les objets. Chaque nouvelle connexion utilise un RTT d’établissement TCP et un RTT d’établissement TLS 1.3. Néglige les autres coûts. Combien de temps la réutilisation fait-elle gagner ?
  1. 160 ms.
  2. 80 ms.
  3. 120 ms.
  4. 200 ms.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un lecteur commence avec 7 s dans son tampon. Il télécharge trois segments complets de 3 s encodés à 4 Mbps sur un chemin stable à 3 Mbps, avec une lecture continue et sans chevauchement des téléchargements. Que reste-t-il dans le tampon et une interruption se produit-elle pendant ces téléchargements ?
  1. Il reste 4 s, avec une interruption au dernier téléchargement.
  2. Il reste 4 s, sans interruption.
  3. Il reste 7 s, sans interruption.
  4. Il reste 10 s, sans interruption.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Goulots d’étranglement, dépendances et choix de conception10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Quel protocole de transport fournit les flux fiables utilisés par HTTP/3 ?
  1. TLS sur UDP seul.
  2. QUIC sur UDP.
  3. TCP sur QUIC.
  4. HTTP/2 sur TCP.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Une application passe de TCP à UDP seul pour un transfert de fichier, mais exige toujours chaque octet dans l’ordre. Quelle fonction sa conception doit-elle désormais fournir au-dessus d’UDP ?
  1. Seulement un port de destination, car UDP garantit l’ordre.
  2. Seulement les longueurs des messages, car UDP ordonne déjà les arrivées.
  3. La récupération après perte et la remise en ordre des données transférées.
  4. Seulement le chiffrement, car UDP récupère déjà les données manquantes.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un spectateur lit une vidéo à 6 Mbps depuis un cache CDN. Sa liaison d’accès peut transporter 4 Mbps, tandis que le groupe dispose d’une capacité inutilisée. Pourquoi déplacer la copie en cache vers un site CDN encore plus proche pourrait-il ne pas supprimer les interruptions ?
  1. La liaison d’accès du spectateur peut rester le goulot d’étranglement.
  2. L’origine doit approuver chaque segment avant qu’un cache puisse le fournir.
  3. L’encodage vidéo choisi fixe la capacité de la liaison d’accès.
  4. Un succès de cache évite le travail de l’origine mais augmente toujours le débit vidéo.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Le délai d’attente d’un client UDP expire après l’envoi d’une requête. Pourquoi ne peut-il pas conclure que le programme serveur était arrêté ?
  1. L’expiration confirme que le serveur a rejeté la syntaxe.
  2. Les expirations ne se produisent que si aucun processus n’est lié au port.
  3. L’expiration confirme que le serveur a changé d’adresse.
  4. La requête ou la réponse peut avoir été perdue.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une liaison d’accès est à 50 Mbps. Les requêtes arrivent à raison de 50 par seconde, chacune pour un objet de 1 Mbit. Les succès de cache prennent 4 ms et les échecs 100 ms. Quel taux de succès minimal donne un temps de réponse moyen d’au plus 40 ms et quelle intensité reste alors sur la liaison ? Suppose que les délais des deux parcours restent fixes.
  1. 60 % de succès et une intensité de 0,4.
  2. 37,5 % de succès et une intensité de 0,625.
  3. 62,5 % de succès et une intensité de 0,625.
  4. 62,5 % de succès et une intensité de 0,375.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un fichier de 600 Mbit est distribué à 20 pairs, qui envoient chacun à 5 Mbps. Le débit d’envoi du serveur est de 100 Mbps. Le pair le plus lent télécharge à 2 Mbps ; tous les autres téléchargent plus vite. Doubler le débit d’envoi du serveur réduirait-il la borne inférieure P2P, en supposant que seules les liaisons d’accès sont des goulots d’étranglement ?
  1. Non ; le terme de 300 s du téléchargement le plus lent reste dominant.
  2. Oui ; la borne passe de 120 s à 60 s.
  3. Oui ; la borne passe de 300 s à 150 s.
  4. Non ; le terme de 120 s de la copie du serveur reste dominant.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un résolveur reçoit example.org NS ns.example.org et un enregistrement A supplémentaire qui localise ce serveur de noms, mais aucun enregistrement A pour lab.example.org. Que doit-il faire pour localiser l’hôte du laboratoire, et pourquoi ?
  1. Se connecter à l’adresse ajoutée comme s’il s’agissait de l’hôte du laboratoire ; les enregistrements A supplémentaires répondent pour tous les sous-domaines.
  2. Demander au serveur nommé l’enregistrement NS du laboratoire ; sa valeur fournit l’adresse de l’hôte recherché.
  3. Demander au serveur nommé l’enregistrement A du laboratoire ; l’adresse ajoutée localise le serveur DNS.
  4. Renvoyer NXDOMAIN pour l’hôte du laboratoire ; une indication sans son enregistrement A prouve son absence.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un message est soumis à un serveur, puis l’expéditeur ferme son ordinateur portable. Le domaine du destinataire a des préférences MX de 12 et 28. Le serveur 12 renvoie un échec temporaire ; le serveur 28 est inaccessible. Le destinataire utilise IMAP. Que doit-il se passer ensuite et où le destinataire doit-il s’attendre à trouver le message maintenant ?
  1. Le supprimer comme échec permanent ; IMAP peut le récupérer sur l’ordinateur de l’expéditeur.
  2. Le garder en attente sur le serveur émetteur ; il n’est pas encore dans la boîte du destinataire.
  3. Le marquer comme remis par le serveur 12 ; une réponse temporaire le place dans le stockage IMAP.
  4. Le déplacer dans la boîte IMAP de l’expéditeur ; celle-ci gère désormais les nouvelles tentatives.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un téléphone passe du Wi-Fi au réseau cellulaire et change d’adresse IP pendant le téléchargement de deux objets HTTP/3. Un paquet ne transportant que des octets du flux X est perdu ; toutes les données de Y arrivent et l’application ne fait pas dépendre Y de X. Que peut-il arriver à la connexion et aux deux flux ?
  1. La connexion peut rester active ; X attend la récupération tandis que les données reçues de Y peuvent être fournies.
  2. La connexion peut rester active ; les deux flux doivent attendre la récupération des octets manquants de X.
  3. La connexion doit redémarrer ; les deux objets doivent être redemandés malgré les données de Y reçues.
  4. La connexion peut rester active ; Y ne progresse que si X abandonne l’acheminement fiable et ordonné.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un client TCP envoie une requête délimitée par un saut de ligne avec sendall, puis attend une réponse en gardant sa connexion ouverte. Le serveur attend la fin du flux avant de répondre. Pourquoi les deux programmes peuvent-ils attendre indéfiniment et quel changement compatible résout le problème ?
  1. Le client a utilisé sendall ; le remplacer par un seul send garantit la fin.
  2. La file du serveur est pleine ; l’agrandir fait atteindre la fin du flux à cette requête.
  3. Le serveur attend la fermeture ; il doit reconnaître le saut de ligne de la requête.
  4. TCP a perdu la limite du message ; un recv plus grand garantit la limite de l’appel d’envoi.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

88 Mots-Clés, chacun avec sa définition

A

Absence d’état
L’absence d’état signifie qu’une requête HTTP peut être comprise indépendamment, sans que le protocole exige de mémoriser les requêtes précédentes du client.
L’absence d’état de HTTP permet tout de même à un site marchand de retrouver les données d’un panier à l’aide d’un cookie dans chaque requête.
Adresse de bouclage
Une adresse de bouclage dirige le trafic à l’intérieur du même hôte, permettant à des processus locaux de communiquer sans contacter une autre machine.
Un serveur lié à l’adresse de bouclage 127.0.0.1 peut être testé par un client exécuté sur le même ordinateur.
Application élastique
Une application élastique peut utiliser le débit effectif disponible à un moment donné sans avoir besoin d’un débit minimal fixe pour son fonctionnement de base.
Le téléchargement d’une pièce jointe à un courriel est une application élastique, même si l’utilisateur préférerait qu’il se termine rapidement.
Architecture client-serveur
Une architecture client-serveur confie les requêtes aux clients et le travail de service à des hôtes serveurs dédiés et accessibles.
Dans une architecture client-serveur, un chercheur télécharge un jeu de données depuis le serveur de l’éditeur.
Architecture hybride
Une architecture hybride associe des fonctions de serveur dédié à une communication directe entre pairs au sein d’une même application.
Un service de partage de fichiers fondé sur un serveur de suivi possède une architecture hybride lorsque les pairs transfèrent eux-mêmes le fichier.
Architecture pair à pair
Une architecture pair à pair permet aux hôtes participants d’échanger directement des données et d’apporter à la fois des requêtes et une capacité de service.
Une architecture pair à pair permet à un nouvel utilisateur qui télécharge de recevoir des fragments de plusieurs autres participants.
Auto-extensibilité
L’auto-extensibilité est l’augmentation de la capacité de service en même temps que la demande, parce que les utilisateurs qui arrivent apportent des ressources comme une capacité d’envoi.
Le partage de fichiers en P2P bénéficie de l’auto-extensibilité lorsque les nouveaux utilisateurs qui téléchargent envoient aussi les fragments qu’ils ont reçus.

B

Base64
Base64 encode des groupes de trois octets en quatre caractères ASCII, ajoutant environ un tiers à la taille des données avant les données supplémentaires du message.
Une pièce jointe de 3 MB devient 4 millions de caractères Base64 avant l’ajout des sauts de ligne et des en-têtes.
Blocage en tête de file
Le blocage en tête de file est une attente causée par un travail antérieur ou des données manquantes qui empêchent des données ultérieures déjà prêtes de progresser.
Un segment TCP perdu crée un blocage en tête de file pour les octets suivants de plusieurs flux HTTP/2.
Borne inférieure
Une borne inférieure est une limite en dessous de laquelle l’achèvement ne peut pas avoir lieu selon les contraintes d’un modèle, même avec un ordonnancement idéal.
Le téléchargement du pair le plus lent impose une borne inférieure qu’une capacité d’envoi supplémentaire ailleurs ne peut pas supprimer.

C

Cache web
Un cache web stocke des réponses HTTP pour les réutiliser, ce qui réduit les transferts répétés lorsque les règles de validité et de validation le permettent.
Le cache web du navigateur fournit une image inchangée sans récupérer une nouvelle copie complète.
Cache-Control
Cache-Control est un champ HTTP qui contient des directives de mise en cache régissant le stockage, la durée de validité et la validation d’une réponse.
Cache-Control avec no-store empêche le stockage ; no-cache exige quant à lui une vérification avant réutilisation.
Capacité de la file des connexions en attente
La capacité de la file des connexions en attente est le nombre de demandes de connexion pouvant attendre d’être acceptées par une socket de serveur à l’écoute.
Augmenter la capacité de la file des connexions en attente ne rend pas simultané le traitement des requêtes par un serveur qui les traite une à la fois.
Code d’état
Un code d’état est une valeur de réponse à trois chiffres qui indique le résultat d’une requête HTTP, comme un succès, une redirection ou une erreur.
Le code d’état 404 montre qu’un serveur HTTP a répondu mais n’a pas trouvé la ressource demandée.
Connexion persistante
Une connexion persistante reste disponible pour des requêtes ultérieures après une réponse, ce qui évite de répéter le travail d’établissement du transport.
Une connexion persistante transporte une réponse HTML puis des réponses d’images sans nouvelles négociations TCP.
Cookie
Un cookie est une valeur stockée par un navigateur et renvoyée avec les requêtes correspondantes, permettant à un site de reconnaître un état d’une requête à l’autre.
Le site marchand retrouve un panier stocké lorsque le navigateur renvoie son cookie de session.

D

DASH
DASH est une diffusion adaptative en continu sur HTTP dans laquelle un client choisit des segments vidéo successifs parmi des versions de débits encodés différents.
DASH permet à un lecteur de passer à une version de plus faible débit après une baisse du débit effectif et le début de la diminution de son tampon.
Datagramme
Un datagramme est un message adressé indépendamment et transporté par un protocole de transport sans connexion, dont la limite est préservée à la réception.
Deux datagrammes UDP envoyés séparément restent des messages distincts même s’ils arrivent à peu d’intervalle.
Débit binaire
Un débit binaire est une quantité de données par unité de temps ; pour une vidéo encodée, il mesure le nombre de bits nécessaires à chaque seconde de lecture.
Un débit binaire vidéo de 5 Mbps produit 20 Mbit de données encodées pour un segment de quatre secondes à débit constant.
Déblocage optimiste
Un déblocage optimiste offre un service d’envoi à un pair intéressé sans exiger de contribution actuelle importante, ce qui permet l’exploration.
Un déblocage optimiste permet à un nouvel arrivant d’obtenir ses premiers fragments avant de devenir un partenaire d’échange utile.
Délai d’attente
Un délai d’attente est une limite à la durée pendant laquelle une opération attend avant de rendre le contrôle en signalant qu’elle n’a pas été achevée dans cet intervalle.
Un délai d’attente de réception permet au client UDP de signaler une réponse absente au lieu de rester bloqué indéfiniment.
Délimitation des messages
La délimitation des messages définit la manière dont un récepteur reconnaît les messages applicatifs complets dans un flux d’octets, à l’aide de longueurs ou de délimiteurs.
Une délimitation des messages fondée sur le saut de ligne permet au récepteur d’accumuler plusieurs lectures TCP jusqu’à l’arrivée d’une ligne complète.
Déploiement aux points d’interconnexion
Le déploiement aux points d’interconnexion est une stratégie de placement CDN utilisant moins de groupes, mais plus grands, aux points d’échange où de nombreux réseaux s’interconnectent.
Le déploiement aux points d’interconnexion simplifie la gestion par rapport à l’entretien de nombreux petits groupes dans les réseaux d’accès.
Déploiement en profondeur
Le déploiement en profondeur est une stratégie de placement CDN utilisant de nombreux petits groupes dans les réseaux des fournisseurs d’accès afin de raccourcir les chemins vers les utilisateurs.
Le déploiement en profondeur rapproche le contenu des abonnés, mais laisse à l’opérateur de nombreux sites à entretenir.
Diffusion anycast IP
La diffusion anycast IP annonce la même adresse IP depuis plusieurs lieux, ce qui permet au routage réseau de choisir un chemin vers l’un d’eux.
La diffusion anycast IP peut diriger un client vers un site CDN sans attribuer à ce site une adresse unique visible par le client.
DKIM
DKIM authentifie les données signées d’un message à l’aide de la signature numérique d’un domaine et d’une clé de vérification publiée par DNS.
Un récepteur vérifie une signature DKIM à l’aide de la clé publique du domaine signataire du message.
DMARC
DMARC relie un résultat SPF ou DKIM positif au domaine From visible par l’alignement des domaines et publie une politique en cas d’échec.
Une vérification DMARC ne peut pas se fonder sur un succès SPF pour un domaine sans rapport lorsqu’aucun résultat DKIM aligné n’est positif.
DNS
DNS est une base de données distribuée de noms et un protocole applicatif permettant d’interroger des enregistrements comme les adresses d’hôtes et les destinations de messagerie.
Avant de contacter un hôte web, le navigateur demande à DNS les informations d’adresse associées à son nom.
DNSSEC
DNSSEC ajoute des signatures numériques aux données DNS afin que les résolveurs qui valident puissent vérifier l’authenticité et l’intégrité des enregistrements signés.
DNSSEC aide un résolveur à détecter des données signées falsifiées, tandis que le DNS chiffré protège la confidentialité des requêtes.
Données 0-RTT
Les données 0-RTT sont des données applicatives envoyées pendant l’établissement d’une connexion reprise, avant la fin d’un nouvel aller-retour, avec des restrictions liées au rejeu.
Une connexion QUIC reprise peut envoyer des données 0-RTT admissibles avant d’attendre le nouvel échange avec le serveur.

E

Empoisonnement du cache
L’empoisonnement du cache est l’insertion de fausses données dans le cache d’un résolveur, ce qui conduit les requêtes ultérieures à réutiliser les informations falsifiées par l’attaquant.
Une adresse falsifiée acceptée lors d’un empoisonnement du cache peut diriger les visiteurs suivants vers un hôte de l’attaquant.
Enregistrement A
Un enregistrement A associe un nom d’hôte DNS à une adresse IPv4, permettant à un client de localiser cet hôte sur un réseau IPv4.
Un enregistrement A pour www.example.org peut renvoyer l’adresse de documentation 203.0.113.25 dans un exemple de résolution.
Enregistrement AAAA
Un enregistrement AAAA associe un nom d’hôte DNS à une adresse IPv6, fournissant une alternative IPv6 aux enregistrements d’adresse IPv4.
Un enregistrement AAAA peut renvoyer 2001:db8::25 pour un hôte dans un exemple de résolution IPv6.
Enregistrement CNAME
Un enregistrement CNAME fait du nom auquel il appartient un alias d’un nom cible canonique, ce qui permet de poursuivre la résolution par cette cible.
Un enregistrement CNAME fait pointer media.example.org vers un espace de noms CDN avant que le résolveur n’obtienne une adresse.
Enregistrement de ressource
Un enregistrement de ressource est une entrée DNS typée qui associe le nom auquel elle appartient à des données et à une durée de mise en cache de ces informations.
Un enregistrement de ressource associe l’hôte web à une adresse IPv4, tandis qu’un autre nomme le serveur de messagerie du domaine.
Enregistrement MX
Un enregistrement MX identifie une destination de messagerie d’un domaine par un nom de serveur et une préférence, les valeurs de préférence les plus basses étant essayées en premier.
L’enregistrement MX de préférence 10 est normalement essayé avant l’entrée de préférence 20 du même domaine.
Enregistrement NS
Un enregistrement NS nomme un serveur DNS faisant autorité pour un domaine ou une zone ; sa valeur est un nom d’hôte, et non l’adresse IP de ce serveur.
L’enregistrement NS pointe vers ns1.example.org et des données d’adresse complémentaires permettent au résolveur de le contacter.
Enveloppe
Une enveloppe contient les informations d’acheminement SMTP, notamment l’expéditeur MAIL FROM et les destinataires RCPT TO, distinctes des en-têtes du message.
Un destinataire caché apparaît dans l’enveloppe même lorsqu’aucun en-tête To visible ne le nomme.
Envoi partiel
Un envoi partiel se produit lorsqu’un appel à send accepte moins d’octets que ceux fournis, ce qui oblige à envoyer les octets restants plus tard.
Utiliser sendall évite de laisser un envoi partiel inachevé lorsque le programme transmet un tampon de réponse.
ETag
Un ETag est un identifiant attribué à une représentation de ressource et utilisé dans des conditions qui comparent une version enregistrée à la version actuelle.
Le cache envoie son ETag enregistré dans If-None-Match avant de décider s’il doit remplacer le corps stocké.

F

File d’attente des messages
Une file d’attente des messages stocke les messages en attente de transfert afin qu’un serveur puisse réessayer leur acheminement après des défaillances temporaires de la destination ou du réseau.
La file d’attente des messages sortants conserve un message pendant que le serveur de destination est temporairement indisponible.
Flux
Un flux est une suite logique de données au sein d’une connexion ; le multiplexage HTTP utilise les flux pour distinguer les échanges simultanés.
Un flux transportant une image de page peut progresser en même temps qu’un autre transportant une feuille de style.

H

HTTP/2
HTTP/2 transporte les messages HTTP sous forme de trames binaires entrelacées provenant de plusieurs flux sur une seule connexion TCP et compresse les en-têtes.
HTTP/2 peut terminer une petite image pendant que les trames d’une réponse beaucoup plus grande sont encore envoyées.
HTTP/3
HTTP/3 associe la sémantique commune des messages HTTP aux flux QUIC et à des trames binaires, en utilisant la sécurité de transport intégrée à QUIC.
HTTP/3 fournit la même URL de ressource tout en changeant le transport par rapport aux versions de HTTP fondées sur TCP.
HttpOnly
HttpOnly est un attribut de cookie qui empêche les scripts de la page de lire le cookie tout en autorisant son envoi avec les requêtes HTTP admissibles.
Un cookie de connexion marqué HttpOnly peut toujours accompagner une requête correspondante, même si un script ne peut pas le lire.

I

IMAP
IMAP est un protocole d’accès à la messagerie qui conserve les messages, dossiers et indicateurs sur le serveur et permet aux clients de récupérer certains contenus.
IMAP permet à un téléphone de voir l’indicateur de lecture et le changement de dossier précédemment effectués depuis un ordinateur portable.

L

Liaison de socket
La liaison de socket est l’opération qui attribue une adresse locale et un port à un point de terminaison, déterminant où il reçoit le trafic.
Un serveur UDP qui appelle bind avec 127.0.0.1 et le port 12000 reçoit les requêtes locales à cette adresse et sur ce port.

M

Manifeste
Un manifeste décrit les versions disponibles et les emplacements des segments utilisés par un lecteur adaptatif pour demander du contenu vidéo.
Le lecteur lit le manifeste avant de choisir l’URL du segment suivant et sa version encodée.
Messagerie web
La messagerie web est un accès à une boîte aux lettres par navigateur utilisant HTTP, normalement HTTPS, tandis que l’acheminement des courriels entre fournisseurs utilise toujours SMTP.
Le navigateur utilise la messagerie web sur HTTPS pour lire un message arrivé chez le fournisseur par SMTP.
Méthode HTTP
Une méthode HTTP indique l’opération demandée pour une ressource, comme la récupération avec GET ou la récupération des en-têtes avec HEAD.
Le navigateur utilise la méthode HTTP GET lorsqu’il récupère un document lié sur le site.
MIME
MIME étend le format des courriels avec des types de contenu, une structure en plusieurs parties et des encodages de transfert qui prennent en charge des textes plus riches et des pièces jointes.
MIME permet à un message de contenir une note en texte brut et une image jointe distincte avec son propre type.

N

Numéro de port
Un numéro de port est une valeur sur 16 bits utilisée avec une adresse IP pour identifier un point de terminaison de transport récepteur sur un hôte.
Le client contacte le même hôte sur le port numéro 443 pour HTTPS et 25 pour le transfert entre serveurs de messagerie.

O

Objet HTTP
Un objet HTTP est une représentation de ressource adressable individuellement, comme un document HTML, une image ou un script, récupérée par HTTP.
Le HTML de base désigne plusieurs images : le navigateur demande donc plus d’un objet HTTP pour la page.

P

Placement à la demande
Le placement à la demande remplit un cache CDN en réponse à une requête pour un contenu que le groupe local ne possède pas déjà.
Avec le placement à la demande, la première requête pour un objet absent du cache dépend d’une récupération en amont.
POP3
POP3 est un protocole d’accès à la messagerie permettant de télécharger les messages stockés, avec suppression facultative du serveur après la fin d’une session.
POP3 en mode télécharger et supprimer sur un ordinateur portable peut empêcher un téléphone de récupérer le même message plus tard.
Priorité aux fragments les plus rares
La priorité aux fragments les plus rares est une règle de sélection qui demande les fragments nécessaires détenus par le moins de voisins, contribuant ainsi à préserver leur disponibilité.
La priorité aux fragments les plus rares choisit un fragment nécessaire peu répandu avant un autre déjà disponible auprès de nombreux voisins.
Processus
Un processus est une instance en cours d’exécution d’un programme ; les processus en réseau échangent des messages applicatifs par des points de terminaison de transport.
Un processus serveur de messagerie peut envoyer un message pendant qu’un autre processus sur l’hôte traite des requêtes web.
Protocole de la couche application
Un protocole de la couche application définit les types de messages, la syntaxe des champs, leur sens et les règles des échanges entre processus.
HTTP est un protocole de la couche application qui permet à des navigateurs et à des serveurs écrits séparément d’échanger des objets.

Q

QUIC
QUIC est un protocole de transport sécurisé sur UDP qui fournit des flux fiables, un contrôle de congestion, un établissement à faible délai et la migration de connexion.
QUIC peut fournir les données reçues sur un flux pendant qu’un flux distinct récupère des octets manquants.

R

Remise en mémoire tampon
La remise en mémoire tampon est une interruption de lecture causée par l’épuisement des données lisibles, lorsque le lecteur doit attendre du contenu supplémentaire.
Le lecteur réduit le débit demandé après une remise en mémoire tampon afin de diminuer le risque d’une nouvelle pause visible.
Requête GET conditionnelle
Une requête GET conditionnelle demande une représentation sous réserve d’une condition, en validant souvent une date ou un ETag en cache avant le transfert du corps.
Une requête GET conditionnelle reçoit 304 lorsque l’ETag enregistré identifie toujours la représentation actuelle.
Réseau de diffusion de contenu
Un réseau de diffusion de contenu répartit la capacité de service et les copies de contenu entre plusieurs lieux afin de fournir efficacement les objets et de réduire la charge du serveur d’origine.
Un groupe de serveurs d’un réseau de diffusion de contenu proche du spectateur fournit des segments vidéo populaires sans envoyer chaque requête à l’origine.
Résolveur
Un résolveur obtient des informations DNS pour un demandeur, en consultant des caches et d’autres serveurs lorsque c’est nécessaire pour terminer une résolution.
Le résolveur du campus suit les indications de serveurs pendant que l’ordinateur portable attend le résultat de sa résolution récursive.

S

Segment
Un segment est un court intervalle de vidéo encodée pouvant être demandé séparément, dont des versions existent à différents niveaux de qualité.
Un segment représentant quatre secondes de lecture peut prendre plus de quatre secondes à télécharger sur un chemin lent.
Semeur
Un semeur est un pair BitTorrent qui possède le contenu complet et reste disponible pour l’envoyer aux autres participants.
Un semeur reste connecté après la fin du téléchargement afin que les nouveaux pairs puissent obtenir tous les fragments nécessaires.
Serveur d’origine
Un serveur d’origine est le serveur source responsable d’une représentation, auprès duquel les intermédiaires peuvent obtenir des copies de contenu.
Un CDN à placement à la demande récupère une image absente du cache auprès du serveur d’origine avant d’en conserver une copie locale.
Serveur de domaine de premier niveau
Un serveur de domaine de premier niveau dessert un domaine de premier niveau et fournit des délégations qui identifient les serveurs faisant autorité pour les domaines qui en dépendent.
Un serveur de domaine de premier niveau pour org renvoie la délégation nécessaire pour poursuivre vers les enregistrements de example.org.
Serveur faisant autorité
Un serveur faisant autorité publie les enregistrements DNS des noms situés dans les zones qu’il dessert et fournit des réponses au titre de cette autorité.
Le serveur faisant autorité pour un domaine renvoie l’enregistrement d’adresse publié pour son hôte web.
Serveur mandataire avec cache
Un serveur mandataire avec cache est un intermédiaire qui transmet les requêtes aux serveurs d’origine et peut satisfaire les requêtes admissibles à partir de réponses stockées.
Le serveur mandataire avec cache fournit une réponse locale en cas de succès, mais agit comme client lorsqu’il récupère un objet manquant auprès du serveur d’origine.
Serveur racine
Un serveur racine dessert le sommet de la hiérarchie DNS et dirige normalement les résolveurs vers les serveurs de domaine de premier niveau appropriés.
Le résolveur demande à un serveur racine où poursuivre une résolution sans cache pour un domaine org.
SMTP
SMTP est le protocole applicatif utilisé pour soumettre et transférer des courriels par des échanges de commandes et de réponses sur des connexions TCP.
SMTP transmet un message en attente du serveur de messagerie de l’expéditeur au serveur du domaine du destinataire.
Socket
Une socket est l’interface logicielle par laquelle un processus applicatif accède aux services de transport pour envoyer ou recevoir des données.
Un jeu en réseau écrit des mises à jour de position par une socket et lit les mises à jour entrantes par son interface de programmation des sockets.
Socket d’écoute
Une socket d’écoute attend les demandes de connexion TCP entrantes et les accepte dans des sockets distinctes pour l’échange de données.
La socket d’écoute reste ouverte pendant que la socket de connexion acceptée transporte la requête d’un client.
Socket de connexion
Une socket de connexion est un point de terminaison de transport pour une connexion TCP établie, utilisé pour envoyer et recevoir les octets de cette connexion.
Le serveur appelle recv sur la socket de connexion renvoyée par accept, et non sur la socket d’écoute.
SPF
SPF permet à un domaine de publier les hôtes autorisés à envoyer des courriels pour lui et vérifie l’hôte émetteur par rapport à une identité de l’enveloppe SMTP.
SPF peut réussir pour un domaine d’enveloppe contrôlé par un attaquant sans valider un domaine From visible différent.
STARTTLS
STARTTLS est une commande de protocole qui fait passer une connexion non chiffrée existante à TLS avant les échanges protégés ultérieurs.
La soumission SMTP authentifiée sur le port 587 utilise couramment STARTTLS avant de transmettre du contenu protégé.
Succès de cache
Un succès de cache se produit lorsqu’une réponse demandée est présente et utilisable dans un cache, ce qui évite le parcours habituel de récupération auprès du serveur d’origine.
L’institution constate un succès de cache pour une image populaire déjà stockée dans son serveur mandataire avec cache.
Système terminal
Un système terminal est un hôte situé à la périphérie du réseau qui exécute des processus applicatifs, comme un téléphone, un ordinateur portable ou un serveur.
Un navigateur et un serveur web s’exécutent sur des systèmes terminaux tandis que des routeurs transfèrent les paquets entre eux.

T

Tampon de lecture
Un tampon de lecture conserve le contenu reçu en attente d’affichage, fournissant une réserve de temps lisible pendant les téléchargements plus lents.
Un tampon de lecture auquel il reste plusieurs secondes peut absorber une brève baisse du débit effectif sans interruption immédiate.
TCP
TCP est un protocole de transport orienté connexion qui fournit des octets de manière fiable et ordonnée, avec contrôle de flux et contrôle de congestion.
Une connexion TCP achemine le fichier complet dans l’ordre, tandis que l’application identifie les limites de ses messages.
Temps aller-retour
Le temps aller-retour est la durée nécessaire à un petit paquet pour atteindre une destination et à une réponse pour revenir.
Un temps aller-retour de 30 ms intervient deux fois dans la récupération du premier objet HTTP non chiffré sur une nouvelle connexion TCP.
Temps de distribution
Le temps de distribution est le temps écoulé nécessaire pour fournir une copie complète d’un fichier à chaque destinataire prévu.
Un premier téléchargement rapide ne détermine pas le temps de distribution si le pair le plus lent reçoit encore sa copie.
TLS
TLS est un protocole de sécurité qui ajoute la confidentialité, l’intégrité et l’authentification du pair à l’échange de transport d’une application.
Un navigateur utilise TLS sur TCP pour protéger un échange HTTPS avec un serveur HTTP/2.
Torrent
Un torrent est le groupe de pairs participant à la distribution d’un fichier ou d’un ensemble de contenus donné par BitTorrent.
Les pairs rejoignent un torrent et échangent des fragments avec des voisins découverts par un serveur de suivi ou une recherche distribuée.
Trame
Une trame est une unité structurée utilisée pour transporter une partie d’un message ou des informations de contrôle dans HTTP/2 ou HTTP/3.
L’émetteur ordonnance une trame de données d’une réponse courte entre des trames appartenant à une grande réponse.
TTL
Le TTL est la valeur de durée de vie d’un enregistrement DNS qui limite le nombre de secondes pendant lesquelles une copie en cache reste réutilisable.
Un changement d’adresse peut laisser une ancienne réponse en cache utilisable jusqu’à ce que son TTL restant atteigne zéro.

U

UDP
UDP est un protocole de transport sans connexion qui transporte des datagrammes distincts sans fournir de récupération après perte, de remise en ordre ni de contrôle de congestion.
Une petite requête DNS peut utiliser UDP, le résolveur réessayant si aucune réponse n’arrive avant l’expiration de son délai d’attente.
UTF-8
UTF-8 est un encodage en octets du texte Unicode, utilisé par les opérations Python par défaut d’encodage des chaînes et de décodage des octets.
Un serveur qui met le texte reçu en majuscules décode d’abord les octets UTF-8 entrants, puis encode sa réponse.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer