La couche transport : UDP et TCP

Découvre comment la couche transport transforme l’acheminement au mieux d’Internet entre les hôtes en communication entre les processus applicatifs. Vois comment les numéros de port acheminent chaque segment vers la bonne socket, ce qu’UDP ajoute à IP et quand une application doit le choisir, puis comment construire progressivement un protocole fiable à l’aide de sommes de contrôle, d’acquittements, de numéros de séquence, de temporisateurs et de fenêtres glissantes, avec Go-Back-N et la répétition sélective. Suis ensuite TCP en détail : le format de ses segments, ses numéros de séquence et d’acquittement fondés sur les octets, la négociation et la fermeture des connexions, l’estimation du temps aller-retour et les délais de retransmission, la retransmission et la retransmission rapide, ainsi que le contrôle de flux avec la fenêtre de réception.

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

Ce que tu vas apprendre

  1. Décris les services que la couche transport ajoute à ceux de la couche réseau et suis le chemin de chaque segment reçu jusqu’au processus applicatif approprié grâce aux numéros de port et aux sockets.
    • Décris les services de la couche transport et leurs limites
      Explique comment la couche transport transforme l’acheminement entre hôtes en communication entre processus et compare les services que TCP et UDP offrent aux applications.
    • Remets les segments à la bonne socket grâce aux ports
      Utilise les numéros de port pour expliquer le multiplexage et le démultiplexage, et détermine quelle socket reçoit un segment UDP ou TCP.
  2. Lis l’en-tête UDP, calcule et vérifie sa somme de contrôle, puis détermine si, pour une application donnée, le service minimal d’UDP est préférable à TCP.
    • Lis l’en-tête UDP et calcule sa somme de contrôle
      Interprète les quatre champs de l’en-tête UDP et calcule la somme de contrôle Internet avec l’arithmétique en complément à un.
    • Détermine quand UDP est le protocole de transport approprié
      Évalue la rapidité et la maîtrise offertes par UDP face à son absence de fiabilité, de contrôle de flux et de contrôle de congestion, puis choisis le protocole de transport adapté aux besoins d’une application.
  3. Conçois étape par étape un protocole qui achemine correctement les données sur un canal qui altère et perd des paquets, puis améliore son efficacité par la transmission en pipeline avec Go-Back-N et la répétition sélective.
    • Récupère les données après des erreurs de bits grâce aux acquittements et aux numéros de séquence
      Construis un protocole arrêt et attente pour un canal qui altère des bits et explique pourquoi il a besoin de sommes de contrôle, d’acquittements, de retransmissions et de numéros de séquence.
    • Gère les pertes de paquets avec des temporisateurs et mesure les performances du protocole arrêt et attente
      Ajoute un temporisateur à rebours pour gérer les pertes de paquets, suis le protocole du bit alterné dans des scénarios de perte et calcule pourquoi le protocole arrêt et attente gaspille la capacité d’une liaison rapide.
    • Transmets les paquets en pipeline avec Go-Back-N
      Suis l’émetteur et le récepteur Go-Back-N avec des acquittements cumulatifs et un seul temporisateur, puis explique la limite de taille de sa fenêtre.
    • Retransmets uniquement les paquets perdus avec la répétition sélective
      Suis la répétition sélective avec des acquittements individuels, un temporisateur par paquet et une mise en mémoire tampon chez le récepteur, explique sa limite de fenêtre plus stricte et compare-la à Go-Back-N.
  4. Décris la connexion TCP et le format des segments, détermine les numéros de séquence et d’acquittement dans un flux d’octets et suis l’ouverture et la fermeture des connexions.
    • Décris les connexions TCP et la structure des segments
      Explique ce qu’est une connexion TCP, comment TCP traite les données applicatives comme un flux d’octets et à quoi sert chaque champ de l’en-tête TCP.
    • Numérote les octets avec les numéros de séquence et d’acquittement
      Détermine les numéros de séquence et d’acquittement des segments dans les deux sens d’une connexion, y compris en cas d’arrivée dans le désordre et de rebouclage.
    • Ouvre et ferme des connexions TCP
      Suis la négociation en trois temps et la fermeture d’une connexion à l’aide des numéros de séquence et des états, puis explique TIME_WAIT, les réinitialisations et les inondations SYN.
  5. Estime le temps aller-retour et règle le délai de retransmission TCP, suis la détection et la récupération des pertes par TCP, puis utilise la fenêtre de réception pour empêcher l’émetteur de faire déborder le tampon du récepteur.
    • Estime le temps aller-retour et règle le délai de retransmission
      Calcule le temps aller-retour lissé de TCP, son écart et le délai de retransmission, puis explique comment ce délai augmente après une perte.
    • Suis les retransmissions et les acquittements TCP
      Suis l’émetteur et le récepteur TCP face aux acquittements perdus, retardés ou dupliqués, applique les règles d’acquittement et utilise la retransmission rapide.
    • Évite le débordement du tampon de réception grâce au contrôle de flux
      Calcule la fenêtre de réception, applique la limite de données non acquittées de l’émetteur et explique les fenêtres nulles, la mise à l’échelle de la fenêtre et la limite de débit effectif imposée par une fenêtre.

Couche transport : cours

5 chapitres

1

Des hôtes aux processus applicatifs

Un hôte peut exécuter simultanément un navigateur, un appel et un transfert de fichier. Chaque application a besoin de ses propres données même si elles partagent une interface réseau. Les protocoles de transport fournissent ce service entre processus au-dessus d’IP. Suis un segment de la socket d’émission à la socket de réception, puis utilise les ports et les adresses pour distinguer l’acheminement UDP des connexions distinctes maintenues par un serveur TCP.

1.1 Ce que TCP et UDP ajoutent à IP

Une application envoie des données par une socket, l’interface entre son processus et la couche transport. La couche transport donne l’impression que des processus situés sur des hôtes différents communiquent directement. C’est une communication logique : les données traversent toujours des liaisons et des routeurs, mais l’application utilise sa socket locale.

Suivre les données à travers les couches

Chez l’émetteur, le protocole de transport prend les données applicatives, les découpe au besoin en blocs et ajoute un en-tête de transport. Le segment obtenu est transmis à IP. IP ajoute son propre en-tête et produit un datagramme IP que le réseau transporte. À destination, IP remet le segment au protocole de transport, qui interprète l’en-tête de transport et livre les données à une socket.

La logique du protocole s’exécute dans les hôtes terminaux. Les routeurs ordinaires transfèrent les datagrammes IP ; ils n’effectuent pas les acquittements et les retransmissions TCP pour le compte des applications. Imagine une adresse IP comme l’adresse d’un immeuble et la socket de réception comme le destinataire à l’intérieur. Apporter une lettre à l’immeuble et la remettre à la bonne personne sont deux tâches distinctes.

IP offre un acheminement au mieux entre hôtes. Les datagrammes peuvent être perdus, dupliqués, désordonnés ou altérés. La couche transport étend l’acheminement aux processus et peut ajouter des mécanismes qui corrigent ces défaillances.

Comparer les services
ServiceUDPTCP
Mode de communicationMessages indépendantsConnexion avec flux d’octets
Acheminement fiable et dans l’ordreNonOui
Contrôle de flux pour le récepteurNonOui
Contrôle de congestion du réseauAucun mécanisme intégréOui
Délai maximal ou débit effectif minimalAucune garantieAucune garantie
Chiffrement par le protocole lui-mêmeNonNon

UDP ajoute des ports et une vérification des erreurs à l’acheminement IP. Un segment peut arriver sans échange préalable d’établissement. UDP ne récupère pas un segment perdu et ne retient pas un segment ultérieur en attendant l’arrivée d’un segment précédent.

TCP établit un état de connexion avant le transfert normal des données. Il numérote les octets, vérifie les erreurs, obtient des acquittements et retransmet les données manquantes. L’application réceptrice obtient un flux d’octets fiable et ordonné. Le contrôle de flux protège son tampon ; le contrôle de congestion réagit à la charge du réseau.

La fiabilité ne rend pas le réseau sous-jacent fiable. Si un datagramme IP disparaît, TCP envoie une autre copie des données manquantes. Si des octets ultérieurs arrivent en premier, le récepteur peut les conserver jusqu’à ce que le manque soit comblé. L’application reçoit les données après correction, mais elle peut attendre plus longtemps. Ni TCP ni UDP ne peut promettre un délai de livraison ou réserver de la capacité réseau simplement en fonctionnant sur le service IP au mieux.

Choisir le service à la création de la socket

Une socket de flux sélectionne normalement TCP ; une socket de datagrammes sélectionne UDP. HTTP/1.1 et HTTP/2, le transfert de courriels par SMTP et la connexion à distance par SSH utilisent TCP. Les requêtes DNS ordinaires utilisent couramment UDP. HTTP/3 utilise QUIC sur UDP : QUIC fournit des flux fiables et la sécurité au-dessus du service minimal d’UDP.

Une connexion TCP seule ne garde pas un mot de passe secret. TLS ajoute le chiffrement et l’authentification au-dessus de TCP ; QUIC intègre TLS à sa conception. La fiabilité indique si les octets atteignent l’application correctement et dans l’ordre. La confidentialité indique si un observateur peut les lire.

Points clés

  • IP achemine les données entre hôtes ; la couche transport les achemine entre processus applicatifs.
  • TCP récupère les données perdues et les remet dans l’ordre aux hôtes terminaux.
  • UDP livre les messages sans mécanisme intégré de récupération ni contrôle de flux.
  • Ni TCP ni UDP ne garantit à lui seul un délai, un débit effectif ou un chiffrement.

1.2 Ports et sélection des sockets

Un hôte possède souvent de nombreuses sockets ouvertes. Le multiplexage recueille les données sortantes de ces sockets et ajoute des en-têtes de transport. Le démultiplexage sélectionne la socket de réception pour chaque segment reçu.

Lire les informations d’adressage

TCP et UDP transportent tous deux un port source de 16 bits et un port de destination de 16 bits. Les valeurs vont de 0 à 65 535. Le port de destination identifie le service récepteur ; le port source aide le correspondant à adresser sa réponse. L’IANA classe les ports en ports système de 0 à 1023, ports utilisateur de 1024 à 49151 et ports dynamiques de 49152 à 65535.

Les serveurs écoutent sur des ports convenus : SSH utilise le port 22, SMTP le 25, DNS le 53, HTTP le 80 et HTTPS généralement le 443. Les clients obtiennent généralement du système d’exploitation un port éphémère temporaire. Sa plage configurée ne correspond pas nécessairement à la plage dynamique de l’IANA : une plage courante par défaut sous Linux est 32768–60999, tandis que Windows utilise couramment 49152–65535.

À l’arrivée d’un datagramme IP, l’hôte identifie d’abord le protocole de transport. Dans IPv4, la valeur de protocole 6 signifie TCP et 17 signifie UDP ; IPv6 identifie le protocole de la couche supérieure au moyen de sa chaîne d’en-têtes suivants. Le port TCP 53 et le port UDP 53 appartiennent à des espaces de noms de transport différents. Le récepteur utilise ensuite les adresses et les ports pour sélectionner une socket et place les données en attente pour l’application.

UDP : plusieurs clients, une socket de réception

Dans le modèle de base d’un serveur UDP non connecté, la socket de réception est sélectionnée par l’adresse IP de destination et le port de destination. Différents clients peuvent tous envoyer des données à cette même socket.

Un serveur à l’adresse 203.0.113.53 écoute sur le port UDP 53. Les requêtes de 198.51.100.7:51000 et de 192.0.2.44:62011 atteignent cette seule socket serveur. La première réponse va de 203.0.113.53:53 à 198.51.100.7:51000. L’application obtient l’adresse et le port source de chaque requête afin de pouvoir répondre au bon client. Une socket UDP connectée peut aussi restreindre le correspondant dont elle reçoit les données ; aucune négociation UDP n’est ajoutée.

TCP : distinguer les connexions par quatre valeurs

Un serveur TCP possède une socket d’écoute et des sockets de connexion distinctes. Une connexion est identifiée par le quadruplet composé de l’adresse IP source, du port source, de l’adresse IP de destination et du port de destination.

Pour un serveur à l’adresse 203.0.113.10:80, voici des connexions distinctes :

  • 198.51.100.7:50312 → 203.0.113.10:80
  • 198.51.100.7:50313 → 203.0.113.10:80
  • 192.0.2.44:50312 → 203.0.113.10:80

Les deux premières diffèrent par leur port source. La première et la troisième partagent un port source, mais diffèrent par leur adresse source. Les trois utilisent le port serveur 80. Un port serveur distinct par client est inutile, car le quadruplet complet distingue leurs sockets de connexion. Un même processus peut gérer de nombreuses sockets de ce type.

Lorsqu’aucune socket ne correspond

Un SYN envoyé à un port TCP fermé reçoit normalement une réinitialisation, avec le drapeau RST activé. Un segment UDP envoyé à un port sans récepteur déclenche normalement un message ICMP « port inaccessible ». Les pare-feu, le filtrage et les limites appliquées aux réponses peuvent modifier ce qui revient. Lors du sondage d’un port, SYN-ACK indique qu’un service TCP est à l’écoute ; RST indique un refus. Le silence seul ne permet pas de distinguer un filtrage d’une perte ou d’un hôte indisponible.

Points clés

  • Le multiplexage regroupe le trafic sortant des sockets ; le démultiplexage sélectionne une socket de réception.
  • Les numéros de port comportent 16 bits et appartiennent à un protocole de transport.
  • Un serveur UDP de base peut recevoir les messages de nombreux clients par une seule socket.
  • TCP distingue les sockets de connexion à l’aide des deux adresses IP et des deux ports.
  • Les ports TCP et UDP fermés produisent normalement des réponses différentes.
2

Messages UDP, sommes de contrôle et choix des applications

UDP fournit un service de transport minimal : un en-tête court, la remise à une socket et une somme de contrôle. Cette simplicité est utile lorsqu’une application veut maîtriser le moment d’envoi des messages, mais elle laisse la récupération et la gestion du débit à l’application ou à un protocole au-dessus d’UDP. Lis l’en-tête et effectue l’addition avec report circulaire de la somme de contrôle, puis évalue une application selon ses échéances et ses besoins d’acheminement plutôt que de traiter tous les services en temps réel de la même façon.

2.1 L’en-tête UDP et la somme de contrôle Internet

UDP envoie chaque message indépendamment, sans négociation ni état partagé de numéros de séquence pour une connexion. Son en-tête fixe de 8 octets contient quatre champs de 16 bits chacun : port source, port de destination, longueur et somme de contrôle.

Compter les bons octets

La longueur couvre l’en-tête UDP et ses données. Elle vaut au moins 8 octets. Un message contenant 40 octets de données a une longueur UDP de 48. Avec un en-tête IPv4 de 20 octets et sans options IP, le datagramme IP complet fait 68 octets. L’en-tête IP n’est pas compris dans la longueur UDP.

La somme de contrôle détecte certaines erreurs de bits dans l’en-tête UDP et les données. Elle couvre aussi un pseudo-en-tête construit à partir des informations d’adressage IP, du numéro de protocole et de la longueur UDP. Ces valeurs aident à détecter un segment acheminé avec des informations d’adressage incorrectes. Le pseudo-en-tête sert au calcul ; il n’est pas une partie supplémentaire transmise dans l’en-tête UDP.

Additionner avec report circulaire de retenue

Considère les données du calcul comme des mots de 16 bits. Mets le champ de somme de contrôle à zéro pendant le calcul. Additionne les mots en reportant toute retenue au-delà du bit 16 vers les bits de poids faible. C’est l’addition en complément à un. Inverse enfin les 16 bits de la somme obtenue après report pour obtenir la somme de contrôle. Si le nombre d’octets est impair, ajoute un octet nul pour le calcul uniquement.

Pour trois mots servant d’exemple, utilise l’hexadécimal afin de rendre la retenue visible :

  1. Additionne A35C et 69C3 pour obtenir 10D1F. Le 1 initial est une retenue hors des 16 bits.
  2. Effectue le report : 0D1F + 1 = 0D20.
  3. Ajoute 1234 : 0D20 + 1234 = 1F54.
  4. Complémente chaque bit : FFFF − 1F54 = E0AB.

La somme de contrôle est E0AB. Supprimer simplement la retenue initiale donnerait une somme incorrecte. En binaire, la somme finale est 0001 1111 0101 0100 et son complément est 1110 0000 1010 1011.

Vérifier chez le récepteur

Le récepteur répète l’addition avec report sur le pseudo-en-tête et le segment reçu, en incluant cette fois le champ de somme de contrôle. Un segment inchangé donne une suite de uns, FFFF. Ici, 1F54 + E0AB = FFFF. Un résultat contenant un bit nul révèle une erreur. UDP rejette silencieusement un segment dont la somme de contrôle fournie, non nulle, échoue à la vérification ; il n’envoie pas de remplacement et ne répare pas les données.

Une suite de uns signifie que la vérification a réussi, sans exclure toutes les erreurs possibles. Des changements qui se compensent dans différents mots peuvent laisser la somme inchangée. La somme de contrôle détecte les erreurs ; elle ne localise ni ne corrige les bits erronés.

Pourquoi les hôtes terminaux vérifient à nouveau

Une vérification de liaison protège une liaison particulière. Certaines liaisons peuvent en être dépourvues et des altérations peuvent aussi se produire dans les équipements entre les liaisons. Une vérification de bout en bout teste ce qui est arrivé à l’hôte de destination. Cela illustre le principe de bout en bout : une propriété nécessaire sur tout le chemin doit être vérifiée à ses extrémités.

Sur IPv4, un champ de somme de contrôle UDP nul signale que l’émetteur a omis la somme de contrôle. Une somme calculée égale à zéro est transmise sous forme d’une suite de uns pour préserver cette distinction. IPv6 exige normalement une somme de contrôle UDP, avec des exceptions précisément définies pour certains tunnels. TCP utilise aussi une somme de contrôle Internet avec un pseudo-en-tête et exige cette somme.

Points clés

  • La longueur UDP comprend son en-tête de 8 octets et exclut l’en-tête IP.
  • Reporte chaque retenue dans les 16 bits de poids faible, puis complémente la somme.
  • Chez le récepteur, une somme de contrôle composée uniquement de uns signifie que la vérification a réussi.
  • UDP rejette un segment dont la somme de contrôle non nulle échoue à la vérification, sans le retransmettre.
  • La somme de contrôle peut manquer des erreurs et ne peut pas les corriger.
  • Un champ de somme de contrôle nul sur IPv4 signifie que la somme de contrôle UDP a été omise.

2.2 Choisir UDP selon les besoins de l’application

Le service minimal d’UDP permet à une application de maîtriser ses messages. Il n’y a pas de négociation de transport avant le premier message, pas de file de retransmission UDP et pas de mécanisme UDP qui retienne des données ultérieures derrière un message précédent manquant. L’application décide quoi envoyer et quelles pertes comptent.

Adapter la récupération à l’instant où les données restent utiles

Considère des données audio vocales envoyées par blocs de 20 ms : 50 messages par seconde. Un bloc manquant doit être lu dans 60 ms, mais la détection de la perte et l’obtention d’une autre copie prennent environ 150 ms. Le bloc récupéré arriverait trop tard. Une application vocale peut lire les blocs suivants à temps et masquer le son manquant, par exemple en lissant le passage.

La quantité décisive est le temps restant avant la lecture, et non la durée de 20 ms d’un bloc. Si la récupération peut se terminer avant l’échéance, une retransmission peut être utile. TCP doit livrer les octets dans l’ordre : un octet antérieur manquant peut donc aussi retarder la livraison d’octets ultérieurs déjà reçus. Cette attente est souvent appelée blocage en tête de file au sein du flux.

Un transfert de fichier a une autre priorité : chaque octet doit arriver correctement et l’attente nécessaire à la récupération est acceptable. TCP fournit déjà ce service. Avec UDP, la détection des pertes, la demande de données de remplacement et leur remise dans l’ordre incomberaient à l’application ou à un autre protocole.

Les avantages d’un petit en-tête

L’en-tête UDP fait 8 octets ; celui de TCP en fait au moins 20. Un serveur UDP peut recevoir des messages de nombreux clients sans établir de connexion de transport pour chacun. Il existe néanmoins des tampons de socket et des ressources applicatives : « sans connexion » ne signifie donc pas que l’hôte ne stocke rien.

Les usages courants d’UDP comprennent les requêtes DNS ordinaires sur le port 53, la synchronisation horaire NTP sur le port 123, la gestion SNMP sur le port 161 et l’attribution d’adresses DHCP sur les ports 67 et 68. Les appels et les jeux choisissent souvent UDP pour recevoir les messages à temps. La vidéo à la demande utilise couramment HTTP sur TCP ou QUIC : la règle « la vidéo utilise UDP » est donc trop générale.

QUIC montre tout ce qu’un protocole peut ajouter au-dessus d’UDP : des flux fiables, un contrôle de congestion et la sécurité TLS 1.3. Il a été normalisé en 2021 et utilise couramment le port UDP 443 ; HTTP/3 fonctionne sur QUIC. UDP lui-même n’a pas acquis ces services.

Garder des messages assez petits

UDP préserve les limites des messages. Une opération de réception lit un message, et non un flux d’octets assemblé à partir de plusieurs envois. L’application doit fournir un tampon de lecture assez grand ; un tampon plus petit peut tronquer le message.

Pour IPv4 avec un en-tête IP de 20 octets, la charge utile maximale théorique est de 65 535 − 20 − 8 = 65 507 octets. Un envoi proche de cette limite peut nécessiter une fragmentation IP. Sur un chemin acceptant des datagrammes IPv4 de 1 500 octets, 1 500 − 20 − 8 = 1 472 octets de données tiennent sans fragmentation en l’absence d’options IP. D’autres chemins et en-têtes peuvent réduire cette valeur.

Tenir compte des contrôles absents

UDP n’a pas de contrôle de flux intégré pour protéger un récepteur lent. Si son tampon de socket se remplit, les messages qui arrivent peuvent être rejetés. Il n’a pas non plus de contrôle de congestion intégré. Les applications UDP responsables assurent un contrôle de débit adapté afin de ne pas surcharger un chemin partagé. Certains réseaux filtrent UDP : les applications peuvent donc avoir besoin d’une solution de repli.

Éviter l’établissement et la récupération peut réduire le délai, mais UDP n’augmente pas la capacité d’une liaison et n’empêche pas les pertes IP. Évalue le protocole applicatif dans son ensemble : les mécanismes qu’il ajoute au-dessus d’UDP peuvent compter davantage que la taille de l’en-tête.

Points clés

  • Choisis la méthode de récupération selon que les données récupérées peuvent encore être utilisées ou non.
  • UDP préserve les messages, mais ne fournit ni récupération des pertes ni remise dans l’ordre.
  • Les applications au-dessus d’UDP doivent gérer la capacité du récepteur et la charge du réseau.
  • QUIC fournit des flux fiables et sécurisés au-dessus d’UDP.
3

Construire un transfert fiable et maintenir des données en vol

Un protocole fiable a besoin d’informations sur ce qui est arrivé et d’une méthode à suivre lorsque ces informations manquent. Commence par un canal qui inverse des bits, puis ajoute les pertes de paquets et les retours retardés. Une fois le fonctionnement correct assuré, calcule combien de temps le protocole arrêt et attente laisse l’émetteur inactif. Les fenêtres glissantes permettent à plusieurs paquets de circuler simultanément ; Go-Back-N et la répétition sélective font des choix différents pour les acquittements, la mise en mémoire tampon et la retransmission.

3.1 Sommes de contrôle, retours et détection des doublons

Un protocole de transfert fiable de données fournit à l’application réceptrice des données correctes, dans l’ordre et sans doublons, même lorsque le canal sous-jacent altère des paquets. Construis le protocole en te demandant ce qui peut mal se passer à chaque étape. Dans ces protocoles, les données applicatives circulent dans un sens et les retours de contrôle dans l’autre.

Décrire le comportement avec des états

Un automate à états finis mémorise l’état actuel de l’émetteur ou du récepteur. Chaque transition comporte un événement déclencheur et les actions à effectuer. Un état tel que « attente de ACK 0 » indique ce que l’émetteur doit recevoir avant de poursuivre. Dans la notation des automates, Λ indique l’absence d’événement ou d’action ; une flèche entrante en pointillés indique l’état initial.

Avec un canal parfaitement fiable, la version 1.0 n’a besoin que de l’envoi et de la livraison. L’émetteur met les données en paquet, le récepteur les extrait et aucun des deux n’a besoin de retour. L’ajout d’erreurs de bits modifie la conception.

Détecter une erreur et demander une autre copie

La version 2.0 utilise trois mécanismes :

  • Une somme de contrôle permet au récepteur de vérifier si un paquet est altéré.
  • Un ACK signale une réception correcte ; un NAK signale des données altérées.
  • La retransmission envoie une autre copie si nécessaire.

Ensemble, ces mécanismes forment la retransmission automatique sur demande (ARQ). L’émetteur envoie un paquet et attend un retour avant d’envoyer le suivant : c’est le protocole arrêt et attente. Il conserve une copie du paquet en cours, car il peut devoir le renvoyer.

Mais les paquets de retour traversent le même canal non fiable. Un ACK altéré laisse l’émetteur dans l’incertitude : le récepteur a-t-il accepté les données ou faut-il une autre copie ? Le renvoi n’est sûr que si le récepteur peut distinguer une copie de remplacement de nouvelles données applicatives. Une somme de contrôle seule n’identifie pas les doublons ; deux copies valides ont le même contenu valide.

Donner une identité à chaque paquet en attente d’acquittement

La version 2.1 ajoute un numéro de séquence. Avec un seul paquet en attente d’acquittement, un numéro de un bit alternant entre 0, 1, 0, 1 suffit dans ce modèle de canal avec arrêt et attente. Le récepteur mémorise le numéro qu’il attend. Il livre une fois un paquet valide portant ce numéro, puis change le numéro attendu. Un paquet portant le numéro précédent est un doublon : acquitte-le à nouveau, mais ne livre pas ses données une seconde fois.

L’émetteur conserve le numéro en cours pendant les retransmissions. Il ne passe à l’autre numéro qu’après réception de l’ACK correspondant et lisible. Dans cette conception qui ne traite que les erreurs, un retour altéré ou un NAK provoque une retransmission.

Remplacer les NAK par des ACK répétés

La version 2.2 supprime les NAK. Le récepteur répond à un paquet altéré ou dupliqué par un ACK pour le dernier paquet qu’il a accepté. L’ACK doit donc porter un numéro.

Supposons que le paquet 0 contienne « A » et arrive correctement. Le récepteur livre « A » et envoie ACK 0. Le paquet 1 contenant « B » est altéré : le récepteur répète donc ACK 0. L’émetteur attend ACK 1 ; cet acquittement dupliqué lui indique qu’il doit renvoyer le paquet 1. La copie de remplacement valide est livrée sous la forme « B » et acquittée par ACK 1.

Rejeter les données dupliquées et acquitter à nouveau le paquet dupliqué sont deux actions distinctes. Si le récepteur ignorait silencieusement une copie de remplacement dont l’ACK précédent était illisible, l’émetteur ne pourrait jamais savoir que la livraison a réussi. TCP évite lui aussi les NAK, même si sa numérotation des octets et ses règles de retransmission rapide diffèrent de celles de ce protocole simple.

Points clés

  • Une somme de contrôle détecte les altérations, mais ne peut pas identifier seule un doublon.
  • L’ARQ combine la détection des erreurs, le retour du récepteur et la retransmission.
  • Le protocole arrêt et attente conserve un seul paquet de données en attente d’acquittement.
  • Les numéros de séquence alternés permettent au récepteur de livrer chaque paquet une seule fois.
  • Un doublon est acquitté à nouveau sans que ses données soient livrées une seconde fois.

3.2 Temporisateurs et efficacité du protocole arrêt et attente

Un retour ne sert à rien s’il n’arrive jamais. Lorsque le canal peut perdre un paquet de données ou un ACK, l’émetteur a besoin d’un moyen de reprendre sans recevoir de message. La version 3.0 ajoute un temporisateur à rebours au protocole du bit alterné.

Gérer l’absence de réponse sans livrer deux fois

L’émetteur démarre le temporisateur chaque fois qu’il envoie le paquet en cours, y compris une copie de remplacement. Un ACK correspondant et intact arrête le temporisateur et autorise l’envoi du paquet suivant. Un ACK altéré ou portant le mauvais numéro est ignoré. Si le temporisateur expire avant, l’émetteur renvoie le même paquet et le redémarre.

Si un paquet de données est perdu, le récepteur n’a rien à acquitter ; l’expiration du délai déclenche l’envoi d’une copie de remplacement. Si un ACK est perdu, le récepteur a déjà livré les données. À l’arrivée de la copie de remplacement, le numéro de séquence permet de reconnaître un doublon. Le récepteur rejette ses données et renvoie l’ACK.

Une expiration prématurée du délai d’attente se produit lorsque le paquet initial ou l’ACK était simplement lent. La copie de remplacement gaspille une transmission, mais la détection des doublons préserve une livraison correcte. Un délai utile doit tenir compte du temps aller-retour attendu et du traitement par le récepteur. Trop court, il provoque des retransmissions inutiles ; trop long, il retarde la récupération après une perte réelle.

Distinguer le temps de transmission du temps d’attente

Soit une longueur de paquet de L bits et un débit de liaison de R bit/s. L’émetteur a besoin de L/R secondes pour placer un paquet sur la liaison. En négligeant le temps de transmission et de traitement de l’ACK, un cycle d’arrêt et attente dure RTT+L/R. La proportion du temps consacrée à l’envoi est

U=L/RRTT+L/R.

Pour des paquets de 1 500 octets sur une liaison à 1 Gbit/s, convertis d’abord les octets en bits :

L=1 500×8=12 000 bits.

Alors L/R=12 μs=0,012 ms. Avec un temps aller-retour de 40 ms,

U=0,01240,012≈0,000300.

L’émetteur est actif environ 0,03 % du temps. Le débit effectif est d’environ 12 000 bits toutes les 0,040012 s, soit 300 kbit/s. Une liaison très rapide transporte malgré tout peu de trafic utile, car l’émetteur passe presque tout le cycle à attendre.

Transmettre les paquets en pipeline

La transmission en pipeline permet d’avoir plusieurs paquets non acquittés en vol. Si la fenêtre d’émission peut contenir jusqu’à N paquets, le taux d’utilisation idéal devient

U=min⁡(1,N(L/R)RTT+L/R).

Sur la même liaison, 1 000 paquets donnent un taux d’utilisation d’environ 0,30. Pour l’occuper pleinement, il faut au moins 40,012/0,012≈3 334,33 temps de transmission de paquet ; arrondis donc à 3 335 paquets. Un arrondi à l’entier inférieur laisserait un court intervalle d’inactivité avant le premier ACK.

Un pipeline plus grand nécessite assez de numéros de séquence pour distinguer ses paquets et assez d’espace tampon pour conserver les données non acquittées. Selon le protocole, le récepteur peut aussi avoir besoin d’un tampon. Go-Back-N et la répétition sélective résolvent ces questions de conception différemment.

Augmenter uniquement le débit de la liaison raccourcit le temps de transmission, déjà bref. À taille de paquet et temps aller-retour fixes, cela réduit le taux d’utilisation du protocole arrêt et attente. Une quantité plus grande de données en vol permet à l’émetteur d’utiliser la capacité disponible.

Points clés

  • Un temporisateur permet de poursuivre lorsque des données ou un retour sont perdus.
  • Une expiration prématurée gaspille de la capacité, mais les numéros de séquence empêchent une livraison en double.
  • Utilise les bits pour la longueur du paquet lorsque le débit de la liaison est en bit/s.
  • Le taux d’utilisation en arrêt et attente est le temps de transmission divisé par la durée du cycle complet.
  • La transmission en pipeline améliore le taux d’utilisation en autorisant plusieurs paquets en attente d’acquittement.
  • Arrondis à l’entier supérieur le nombre de paquets nécessaire dans la fenêtre et limite le taux d’utilisation à 1.

3.3 Fenêtres Go-Back-N et ACK cumulatifs

Go-Back-N (GBN) autorise jusqu’à N paquets envoyés mais non acquittés. La fenêtre glissante de l’émetteur avance lorsque les acquittements confirment la livraison. Le récepteur reste simple : il n’accepte que le prochain paquet dans l’ordre.

Distinguer les plages de l’émetteur

La variable base identifie le plus ancien paquet non acquitté. nextseqnum identifie le prochain nouveau paquet à envoyer. Avant le rebouclage des numéros de séquence, les plages sont :

  • Avant base : déjà acquittés.
  • De base à nextseqnum − 1 : envoyés, en attente d’acquittement.
  • De nextseqnum à base + N − 1 : disponibles pour de nouvelles données.
  • À partir de base + N : bloqués jusqu’à l’avancement de la fenêtre.

Pour base = 10, nextseqnum = 13 et N=5, les paquets 10 à 12 sont en attente d’acquittement. Les paquets 13 et 14 peuvent être envoyés. Le paquet 15 ne le peut pas. Une fenêtre limite les données en attente d’acquittement, et non le nombre total de paquets d’un transfert.

Les acquittements cumulatifs font avancer la base

L’ACK GBN n confirme tous les paquets jusqu’à n inclus. Il fait passer base à n+1. Un acquittement cumulatif ultérieur peut donc couvrir des ACK antérieurs perdus. Cette convention de numérotation identifie le dernier paquet accepté ; la convention d’acquittement de TCP identifie le prochain octet attendu.

GBN conserve un seul temporisateur pour le plus ancien paquet en attente d’acquittement. L’envoi du premier paquet en attente le démarre. Un ACK qui fait avancer la base le redémarre si des données restent en attente ; l’acquittement de toutes les données l’arrête. Lorsque le temporisateur expire, l’émetteur retransmet chaque paquet envoyé mais toujours non acquitté. Ce nombre peut être inférieur à la fenêtre maximale N.

Suivre un paquet manquant

Utilise une fenêtre de quatre et envoie les paquets 0, 1, 2 et 3. Le paquet 2 est perdu. Le récepteur livre 0 et 1 et envoie ACK 0 et ACK 1. Le paquet 3 arrive au-delà du manque : le récepteur le rejette et répète ACK 1.

Les deux premiers ACK libèrent de la place pour les paquets 4 et 5. Ils arrivent eux aussi au-delà du paquet 2 manquant ; ils sont donc tous deux rejetés et reçoivent ACK 1 en réponse. La base de l’émetteur reste à 2. À l’expiration du délai, il retransmet 2, 3, 4 et 5. Ils arrivent cette fois dans l’ordre et peuvent tous être livrés.

Les copies de 3, 4 et 5 étaient intactes la première fois. GBN les renvoie parce que son récepteur a choisi de ne pas mettre en mémoire tampon les paquets reçus dans le désordre. Cela réduit l’état à conserver chez le récepteur, au prix d’un trafic supplémentaire après une perte.

Laisser un numéro de séquence hors de la fenêtre

Un champ de k bits fournit 2k numéros de paquet, réutilisés de façon cyclique. GBN impose

N≤2k−1.

Avec trois bits, les numéros vont de 0 à 7 et la plus grande fenêtre d’émission vaut sept. Si les huit étaient autorisés, le récepteur pourrait accepter 0 à 7 et attendre à nouveau 0. Si tous les ACK étaient perdus, un ancien paquet 0 retransmis paraîtrait alors nouveau. Si seuls les paquets 0 à 6 ont été envoyés, le récepteur attend 7 et peut reconnaître le paquet 0 retransmis comme ancien. Près du rebouclage, le calcul sur la fenêtre suit l’ordre cyclique et non l’ordre numérique ordinaire.

Points clés

  • L’ACK GBN n confirme tous les paquets jusqu’à n inclus.
  • Le récepteur rejette les paquets qui arrivent au-delà d’un manque.
  • Un seul temporisateur suit le plus ancien paquet en attente d’acquittement.
  • L’expiration du délai provoque le renvoi des paquets envoyés mais non acquittés.
  • Avec des numéros de k bits, la plus grande fenêtre GBN vaut 2^k − 1.

3.4 Répétition sélective et réutilisation des numéros de séquence

La répétition sélective conserve les paquets reçus correctement même lorsque des paquets antérieurs manquent. Chaque paquet valide reçoit son propre ACK. L’émetteur peut alors remplacer uniquement le paquet dont le temporisateur expire.

Suivre chaque paquet séparément

La fenêtre de l’émetteur commence à send_base, le plus ancien paquet non acquitté, et contient N numéros de séquence autorisés. Chaque paquet en attente d’acquittement possède un temporisateur logique. Un ACK marque le paquet correspondant comme reçu. Un ACK situé au-delà de la base ne fait pas avancer la fenêtre à lui seul : la base reste au premier manque. Une fois ce manque acquitté, la base avance au-delà des éventuels paquets suivants déjà acquittés.

La fenêtre du récepteur commence à rcv_base, le prochain paquet nécessaire à la livraison. Un paquet valide dans la fenêtre est acquitté. Les données reçues dans le désordre sont mises en mémoire tampon. Lorsque le paquet situé à la base arrive, le récepteur le livre ainsi que tous les paquets consécutifs qui le suivent en mémoire tampon, jusqu’au prochain manque.

Un paquet situé dans la fenêtre immédiatement précédente est un ancien doublon. Le récepteur l’acquitte à nouveau sans le livrer. Cette règle est essentielle lorsque l’ACK initial a été perdu : l’émetteur peut encore attendre même si le récepteur a poursuivi.

Récupérer un paquet perdu

Avec N=4, supposons que le paquet 2 soit perdu après l’envoi des paquets 0 à 3. Le récepteur livre et acquitte 0 et 1, puis met 3 en mémoire tampon et l’acquitte. Les deux premiers ACK permettent à l’émetteur d’envoyer 4 et 5. Tous deux sont mis en mémoire tampon et acquittés individuellement, mais send_base reste à 2.

Lorsque le temporisateur du paquet 2 expire, seul 2 est renvoyé. Son arrivée permet au récepteur de livrer ensemble 2, 3, 4 et 5 et d’avancer rcv_base à 6. Une fois ACK 2 parvenu à l’émetteur, sa base avance elle aussi à 6, en passant les paquets 3 à 5 dont il possède déjà les ACK.

Pourquoi la fenêtre vaut au plus la moitié de l’espace de numérotation

Le récepteur peut être en avance sur l’émetteur parce que des ACK sont retardés ou perdus. Les nouveaux numéros acceptables ne doivent pas chevaucher ceux qui pourraient encore être retransmis dans d’anciens paquets.

Avec des numéros de deux bits allant de 0 à 3 et une fenêtre de trois, supposons que le récepteur accepte 0, 1 et 2. Sa nouvelle fenêtre est {3, 0, 1}. Si tous les ACK disparaissent, un ancien paquet 0 retransmis entre dans cette fenêtre et paraît nouveau. Le récepteur ne peut pas le distinguer d’un paquet 0 réellement nouveau envoyé après la perte d’un paquet 3.

Pour des fenêtres d’émission et de réception de même taille, la borne sûre est

N≤2k−1.

Une numérotation sur trois bits autorise donc des fenêtres de répétition sélective allant jusqu’à quatre, tandis que GBN en permet sept.

CaractéristiqueGo-Back-NRépétition sélective
Sens de l’ACKTous les paquets jusqu’à n inclusLe seul paquet n
TemporisateursUn temporisateur pour le plus ancien paquetUn temporisateur logique par paquet
Action du récepteur à l’arrivée dans le désordreRejetMise en mémoire tampon et ACK
Récupération après expiration du délaiTous les paquets en attente d’acquittementLe paquet dont le délai a expiré
Distinguer une ancienne copie après le rebouclage

Les limites de fenêtre traitent les fenêtres actuelles, mais un réseau réel peut aussi conserver une ancienne copie en transit jusqu’à la réutilisation des numéros. Une durée de vie maximale des paquets limite le temps pendant lequel ces copies peuvent survivre. TCP l’appelle la durée de vie maximale d’un segment (MSL). À haut débit, TCP peut réutiliser rapidement son espace de numéros de séquence de 32 bits ; la protection contre le rebouclage des numéros de séquence (PAWS), fondée sur les horodatages, aide donc à rejeter les données périmées.

Points clés

  • La répétition sélective acquitte et temporise individuellement chaque paquet en attente d’acquittement.
  • Les paquets reçus dans le désordre sont mis en mémoire tampon jusqu’à ce que le manque qui empêche la livraison soit comblé.
  • Un ACK ultérieur signale une réception, mais la base de l’émetteur reste au premier paquet non acquitté.
  • Les anciens doublons doivent être acquittés à nouveau.
  • Des fenêtres de répétition sélective de même taille peuvent occuper au plus la moitié de l’espace des numéros de séquence.
  • Les copies très retardées nécessitent aussi une protection lorsque les numéros sont réutilisés.
4

Segments TCP, numéros d’octets et connexions

TCP maintient un flux d’octets distinct dans chaque sens d’une connexion. Son en-tête relie ces flux à des ports, identifie leurs octets et transporte des acquittements et des signaux de contrôle. Lis le format du segment, puis suis les numéros pendant le transfert de données, l’établissement et la fermeture. Distinguer les deux sens facilite le suivi des acquittements incorporés aux données, des demi-fermetures et des numéros de séquence supplémentaires utilisés par SYN et FIN.

4.1 Le flux d’octets TCP et l’en-tête de segment

Une connexion TCP est un état conservé dans deux hôtes terminaux : des tampons, des compteurs d’octets et d’autres variables créés pendant l’établissement. Elle est point à point, entre deux extrémités, et en duplex intégral, ce qui permet aux deux d’envoyer simultanément. Les routeurs ordinaires transfèrent ses datagrammes IP sans conserver l’état TCP des extrémités.

Les octets n’ont pas de limites de message

TCP préserve l’ordre des octets, mais pas les limites des écritures de l’application. Trois écritures de 100 octets peuvent atteindre l’application en une seule lecture de 300 octets, ou en deux lectures de 50 et 250 octets. Une application qui échange des messages doit assurer leur délimitation, par exemple avec un champ de longueur ou un délimiteur. Une lecture courte ne prouve pas qu’un message complet est arrivé.

Les données écrites par l’application entrent dans un tampon d’émission. TCP choisit les blocs à transmettre et conserve les données non acquittées en vue d’une éventuelle retransmission. Les données entrantes vont dans un tampon de réception jusqu’à ce que l’application réceptrice les lise.

Distinguer la taille des données de celle des en-têtes

La taille maximale de segment (MSS) limite les données applicatives dans un segment. Elle exclut les en-têtes TCP et IP. Pour un chemin acceptant des datagrammes IP de 1 500 octets avec des en-têtes IPv4 de 20 octets et TCP de 20 octets,

MSS=1 500−20−20=1 460 octets.

Les options prennent davantage de place : l’émetteur doit donc tenir compte des longueurs réelles des en-têtes. Chaque extrémité annonce pendant la négociation la MSS qu’elle peut recevoir ; les limites du chemin peuvent réduire encore ce qui peut être envoyé. Sans option MSS, les valeurs supposées par défaut sont de 536 octets de données pour IPv4 et de 1 220 pour IPv6.

Lire les champs de l’en-tête
ChampTailleRôle
Ports source et de destination16 bits chacunIdentifier les extrémités des applications
Numéro de séquence32 bitsIdentifier le premier octet de données
Numéro d’acquittement32 bitsIndiquer le prochain octet attendu
Décalage des données4 bitsDonner la longueur de l’en-tête en mots de 32 bits
Fenêtre de réception16 bitsAnnoncer la capacité du récepteur
Somme de contrôle16 bitsDétecter les erreurs à l’aide d’un pseudo-en-tête
Pointeur de données urgentes16 bitsLocaliser les données urgentes lorsque URG est activé

L’en-tête minimal comporte cinq mots de 32 bits, soit 20 octets. Un décalage des données de 8 signifie 32 octets, dont 12 octets au-delà de l’en-tête fixe. Le décalage maximal est 15 : 60 octets au total, ce qui autorise jusqu’à 40 octets d’options.

Interpréter les drapeaux et les options

SYN synchronise les numéros de séquence à l’ouverture. FIN ferme un sens d’émission. RST interrompt ou refuse une connexion. ACK rend le champ d’acquittement valide. PSH demande une livraison rapide à l’application ; il ne crée pas de limite de message. URG rend le pointeur de données urgentes valide, bien qu’il soit recommandé aux nouvelles applications d’éviter ce mécanisme. ECE et CWR transportent des signaux de notification explicite de congestion.

Les options courantes comprennent la MSS, la mise à l’échelle de la fenêtre, les horodatages et l’acquittement sélectif (SACK). La mise à l’échelle étend la plage de la fenêtre de réception. Les horodatages aident à mesurer le temps aller-retour et à rejeter les segments périmés. SACK décrit les blocs reçus au-delà d’un manque.

Sans options, TCP et IPv4 ajoutent 40 octets. Un segment plein de 1 460 octets de données occupe un datagramme IP de 1 500 octets, dont environ 97,3 % de données applicatives. Un ACK pur ne contient aucune donnée, mais occupe tout de même ces 40 octets d’en-têtes.

Points clés

  • TCP fournit un flux d’octets point à point en duplex intégral.
  • Les applications assurent elles-mêmes la délimitation de leurs messages.
  • La MSS ne compte que les données applicatives ; le décalage des données compte les mots d’en-tête de 32 bits.
  • SYN, FIN et RST ont des rôles différents dans la gestion des connexions.
  • Les options étendent TCP sans modifier les champs fixes de l’en-tête.

4.2 Numéros de séquence et prochain octet attendu

Les numéros de séquence TCP comptent les octets, et non les segments. Le numéro de séquence d’un segment désigne son premier octet de données. Son numéro d’acquittement décrit le sens opposé : le prochain octet que cet émetteur s’attend à recevoir.

Découper un flux en segments

Le SYN utilise un numéro de séquence initial (ISN) de 3 000. Le premier octet de données est donc 3 001. Un fichier de 10 000 octets avec une MSS de 1 460 nécessite six segments de données pleins et un segment plus court :

SegmentPremier octetOctets de données
13 0011 460
24 4611 460
35 9211 460
47 3811 460
58 8411 460
610 3011 460
711 7611 240

Chaque numéro de séquence suivant s’obtient en ajoutant la longueur des données du segment précédent. Le dernier octet est 13 000 : la réception correcte de tout le fichier produit donc l’ACK cumulatif 13 001.

Acquitter une suite continue

ACK n confirme tous les octets jusqu’à n−1 inclus. Il ne confirme pas l’octet n. Si le récepteur possède les octets jusqu’à 4 460, il attend 4 461. Un segment commençant à 5 921 laisse un manque. Un récepteur qui met ce segment en mémoire tampon envoie toujours ACK 4 461, car sa suite continue ne s’est pas allongée.

C’est pourquoi l’acquittement ne peut pas simplement être le plus grand numéro de séquence observé. Des octets ultérieurs montrent que quelque chose est arrivé au-delà du manque ; ils ne le comblent pas. Lorsque la plage manquante arrive, un ACK cumulatif peut avancer au-delà des données déjà en mémoire tampon.

Suivre les deux sens indépendamment

Supposons que le prochain octet d’un client soit 1 000 et celui d’un serveur 5 000. Le client envoie 200 octets de données avec le numéro de séquence 1 000 et le numéro d’acquittement 5 000. La réponse du serveur contient 1 200 octets avec le numéro de séquence 5 000 et le numéro d’acquittement 1 200. Le prochain ACK pur du client porte le numéro de séquence 1 200 et le numéro d’acquittement 6 200.

Le serveur n’a pas déduit son propre numéro de séquence de la longueur de la requête. Chaque sens possède sa propre numérotation. Le transport d’un ACK avec les données sortantes est un acquittement incorporé aux données. Un ACK pur ne consomme aucun numéro de séquence ; SYN et FIN en consomment chacun un, même sans données.

Gérer les valeurs initiales et le rebouclage

Les extrémités choisissent un ISN à l’ouverture d’une connexion. Une horloge et une fonction pseudo-aléatoire à clé des adresses et des ports de la connexion aident à distinguer une nouvelle connexion des anciens segments retardés et rendent les numéros valides difficiles à deviner pour une personne extérieure. Commencer chaque connexion à zéro affaiblirait ces deux protections.

Les champs comportent 32 bits : la numérotation reboucle donc modulo 232, soit environ 4,3 milliards d’octets. À 1 Gbit/s, parcourir cet espace prend environ 34 s ; à 10 Gbit/s, environ 3,4 s. PAWS, fondé sur les horodatages, fournit une vérification supplémentaire contre les segments périmés sur les chemins rapides.

Pour un calcul ordinaire loin du rebouclage, le prochain octet après un segment de données est son numéro de séquence augmenté de la longueur de ses données. En présence d’un SYN ou d’un FIN, ajoute le numéro supplémentaire que ce drapeau de contrôle consomme. Applique le calcul séparément à chaque sens.

Points clés

  • Le numéro de séquence d’un segment identifie son premier octet.
  • ACK n confirme les octets jusqu’à n − 1 inclus et indique le prochain octet attendu.
  • Un manque maintient l’ACK cumulatif à la même valeur même si des données ultérieures sont mises en mémoire tampon.
  • Chaque sens possède une numérotation indépendante.
  • Les données, SYN et FIN consomment des numéros de séquence ; les ACK purs n’en consomment pas.
  • Les numéros de séquence rebouclent modulo 2^32.

4.3 Ouverture, demi-fermeture et libération d’une connexion

L’établissement TCP permet aux deux extrémités d’annoncer un numéro de séquence initial et de savoir que le correspondant l’a reçu. La fermeture libère ensuite chaque sens séparément. Ces échanges de contrôle utilisent le même espace de numéros de séquence que les données.

Suivre la négociation en trois temps
  1. Le client crée un état de connexion, envoie SYN avec l’ISN 7 000 et entre dans l’état SYN_SENT.
  2. Le serveur répond par SYN-ACK, avec le numéro de séquence 21 000 et le numéro d’acquittement 7 001. Il se trouve dans l’état SYN_RCVD en attendant la confirmation.
  3. Le client enregistre le numéro du serveur et envoie un ACK avec le numéro de séquence 7 001 et le numéro d’acquittement 21 001. Le client entre dans l’état ESTABLISHED ; le serveur y entre à l’arrivée de cet ACK.

Chaque SYN consomme un numéro. Le troisième segment peut déjà contenir des données applicatives. La négociation ordinaire coûte un aller-retour avant que le client puisse envoyer ces premières données. Un échange de deux messages n’indiquerait pas au serveur que le client a reçu son ISN et pourrait le conduire à accepter un ancien SYN retardé comme une nouvelle demande.

À l’interface des sockets, connect démarre une ouverture active. Un serveur attend les demandes et accept renvoie une nouvelle socket de connexion après l’établissement. La socket d’écoute reste disponible pour d’autres clients.

Fermer chaque sens

Une extrémité envoie FIN lorsqu’elle n’a plus d’octets à envoyer. Le correspondant acquitte ce FIN en avançant son ACK d’un numéro au-delà de celui-ci. Le correspondant peut encore envoyer ses propres octets restants : c’est une demi-fermeture. Son FIN ultérieur ferme l’autre sens et nécessite lui aussi un ACK. La fermeture utilise généralement quatre segments, même si un FIN et un ACK peuvent être combinés.

Pour un client qui ferme en premier, le parcours habituel des états est ESTABLISHED → FIN_WAIT_1 après l’envoi de FIN → FIN_WAIT_2 une fois ce FIN acquitté → TIME_WAIT après réception et acquittement du FIN du correspondant → CLOSED. Le correspondant passe par CLOSE_WAIT pendant que son application termine, puis par LAST_ACK après l’envoi de son propre FIN, et enfin par CLOSED à la réception de l’ACK.

Permettre la récupération du dernier ACK

Dans le parcours habituel d’une fermeture active, TIME_WAIT dure deux fois la durée de vie maximale d’un segment. Si l’ACK final disparaît, l’autre extrémité peut renvoyer son FIN et recevoir un nouvel ACK. L’attente laisse aussi aux anciens segments le temps d’expirer avant la réutilisation du quadruplet de la connexion. La valeur MSL de deux minutes prévue par la norme donne quatre minutes ; les implémentations peuvent utiliser des durées différentes, 60 secondes étant une valeur courante sous Linux.

Un RST diffère d’un FIN : il interrompt la connexion ou refuse une demande. Un SYN destiné à un port fermé reçoit normalement RST. SYN-ACK indique qu’un service est à l’écoute ; le silence peut résulter d’un filtrage, d’une perte ou d’une destination indisponible.

Protéger les négociations inachevées

Une inondation SYN envoie de nombreuses demandes d’ouverture sans les mener à terme. Un serveur qui réserve des ressources pour chaque connexion semi-ouverte peut épuiser l’espace disponible pour ces états. Les cookies SYN retardent l’allocation de cet état propre à chaque connexion. Le serveur encode des informations de connexion vérifiables dans l’ISN choisi, à l’aide d’un secret et d’une valeur dépendant du temps. Un ACK final valide renvoie le cookie dans son numéro d’acquittement, ce qui permet au serveur de le vérifier et de créer l’état. Le serveur conserve une socket d’écoute et des ressources partagées ; il évite de stocker une connexion inachevée distincte pour chaque SYN.

Points clés

  • La négociation confirme les deux numéros de séquence initiaux.
  • SYN et FIN consomment chacun un numéro de séquence.
  • Un FIN ferme un sens ; le correspondant peut continuer à envoyer des données.
  • TIME_WAIT permet la récupération de l’ACK final et l’expiration des anciens segments.
  • RST interrompt ou refuse une connexion.
  • Les cookies SYN réduisent l’état conservé pour chaque demande avant la fin de la négociation.
5

Récupération TCP et rythme du récepteur

Un ACK peut être retardé, un segment peut disparaître et l’application réceptrice peut cesser de lire. TCP doit réagir différemment à ces événements. Les estimations du temps aller-retour indiquent combien de temps attendre, les acquittements dupliqués peuvent révéler un manque avant l’expiration du délai et la fenêtre de réception indique l’espace tampon disponible. Suis les octets en attente d’acquittement chez l’émetteur et les octets stockés chez le récepteur pour comprendre pourquoi une connexion rétablie peut encore devoir attendre avant d’envoyer davantage de données.

5.1 Mesurer le temps aller-retour et choisir un délai de retransmission

TCP a besoin d’un délai de retransmission assez long pour permettre les allers-retours normaux, mais assez court pour récupérer rapidement après une perte. Le temps aller-retour varie avec les changements de files d’attente et de chemins : le délai suit donc à la fois une estimation lissée et l’ampleur des écarts récents.

Prendre une mesure sans ambiguïté

SampleRTT mesure l’intervalle entre l’envoi de données et la réception d’un ACK qui les couvre. Dans une implémentation de base, TCP chronomètre un segment admissible à la fois. L’algorithme de Karn exclut les données retransmises des mesures ordinaires du temps aller-retour : un ACK peut se rapporter à la copie initiale ou à celle de remplacement. Des horodatages négociés peuvent lever cette ambiguïté.

La première mesure valide R initialise EstimatedRTT à R et DevRTT à R/2. Avant toute mesure, le délai initial recommandé est de 1 s.

Actualiser l’écart avant la moyenne

Pour une nouvelle mesure, utilise l’EstimatedRTT précédent pour mesurer l’écart :

DevRTTnew=0,75DevRTTold+0,25∣SampleRTT−EstimatedRTTold∣.

Actualise ensuite la moyenne mobile à pondération exponentielle :

EstimatedRTTnew=0,875EstimatedRTTold+0,125SampleRTT.

Les pondérations recommandées sont β=1/4 et α=1/8. Les mesures anciennes conservent moins d’influence après chaque actualisation. Actualiser d’abord la moyenne modifierait l’écart utilisé dans la première équation.

Effectuer une actualisation

Pars de EstimatedRTT = 100 ms et DevRTT = 10 ms ; prends une mesure de 120 ms.

  1. Écart absolu : ∣120−100∣=20 ms.
  2. Nouveau DevRTT : 0,75(10)+0,25(20)=12,5 ms.
  3. Nouveau EstimatedRTT : 0,875(100)+0,125(120)=102,5 ms.
  4. Délai de base : 102,5+4(12,5)=152,5 ms.

La règle de base est

TimeoutInterval=EstimatedRTT+4DevRTT.

La norme complète utilise EstimatedRTT + max(G, 4 DevRTT), où G est la granularité de l’horloge. Lorsque la marge de quatre écarts dépasse l’intervalle de l’horloge, la règle de base donne le même résultat.

La norme recommande de porter à 1 s toute valeur calculée inférieure à 1 s. Les implémentations réelles peuvent utiliser un minimum plus faible ; sous Linux, un minimum courant est de 200 ms. Les 152,5 ms calculées sont donc une estimation brute, qui ne correspond pas nécessairement au délai réglé par un hôte. Une limite supérieure facultative doit être d’au moins 60 s.

Augmenter le délai après son expiration

Lorsque le temporisateur expire, TCP renvoie les plus anciennes données non acquittées et double le délai de retransmission. Une valeur actuelle de 0,75 s devient 1,5 s, puis 3 s après une nouvelle expiration. Des tentatives immédiates répétées ajouteraient du trafic à un chemin qui ne parvient déjà pas à acheminer les retours.

Un nouvel ACK ne réduit pas nécessairement ce délai augmenté. TCP a besoin d’une nouvelle mesure valide du temps aller-retour pour recalculer l’estimation. Sans horodatage, l’ambiguïté liée à la retransmission empêche d’utiliser comme nouvelle mesure un ACK pour les données renvoyées. Une fois de nouvelles données admissibles envoyées et acquittées, une nouvelle mesure peut faire baisser le délai calculé.

Points clés

  • L’algorithme de Karn évite les mesures ambiguës issues de données retransmises.
  • Actualise DevRTT avec l’ancien EstimatedRTT, puis actualise EstimatedRTT.
  • Le délai de retransmission comprend une marge liée aux écarts et des limites propres à l’implémentation.
  • L’expiration du délai double l’intervalle de retransmission actuel.
  • Une nouvelle mesure valide du temps aller-retour permet de recalculer un délai de retransmission augmenté.

5.2 ACK cumulatifs, temporisateurs et retransmission rapide

TCP combine une somme de contrôle, des numéros de séquence d’octets, des ACK cumulatifs et la retransmission pour livrer un flux fiable. L’émetteur doit distinguer un ACK qui fait avancer la livraison de celui qui répète la limite actuelle.

Suivre les événements de l’émetteur

SendBase est le premier octet non acquitté ; NextSeqNum est le prochain numéro d’octet inutilisé. Les nouvelles données applicatives sont envoyées avec le numéro de séquence NextSeqNum, qui avance ensuite de la longueur des données. Si aucun temporisateur de retransmission ne fonctionne, l’envoi de données en attente d’acquittement le démarre.

L’algorithme de base recommandé utilise un seul temporisateur de retransmission pour le plus ancien segment non acquitté. L’expiration du délai provoque la retransmission de ce plus ancien segment en attente, double l’intervalle et redémarre le temporisateur. Un ACK supérieur à SendBase fait avancer la base et redémarre le temporisateur si des données restent en attente d’acquittement. Si tout est acquitté, le temporisateur s’arrête. Un acquittement dupliqué ne fait pas avancer la base.

Les ACK perdus peuvent cesser de poser problème

A envoie 500 octets à partir de 501. B les reçoit et envoie ACK 1 001, qui est perdu. Si rien d’autre ne confirme ces octets, le délai de A expire et A les renvoie. B reconnaît le doublon, ne livre aucune donnée supplémentaire et renvoie ACK 1 001.

Supposons maintenant que A ait aussi envoyé les 500 octets suivants, à partir de 1 001. Si ACK 1 501 arrive avant l’expiration du délai, il confirme les deux segments. La perte de ACK 1 001 ne nécessite aucune retransmission. Un ACK est cumulatif : l’émetteur n’a donc pas besoin qu’un ACK distinct pour chaque segment parvienne à destination.

En cas d’expiration prématurée du délai, A ne renvoie que le plus ancien segment. Si des ACK retardés confirment ensuite les deux segments initiaux, A n’a pas besoin de renvoyer le second. Une expiration indique que le retour n’est pas arrivé à temps, sans prouver que tous les segments en attente ont disparu.

Utiliser le moment d’envoi des ACK pour signaler les manques

Pour des données reçues dans l’ordre sans ACK en attente, le récepteur peut différer brièvement un ACK, pendant moins de 0,5 s, afin de regrouper les acquittements. Il doit acquitter au moins un segment de taille maximale sur deux. Une deuxième arrivée dans l’ordre pendant qu’un ACK est en attente déclenche un ACK cumulatif. Une arrivée dans le désordre au-delà d’un manque déclenche immédiatement un acquittement dupliqué ; le comblement de tout ou partie d’un manque déclenche lui aussi immédiatement un ACK.

Combler un manque avant l’expiration du délai

Supposons que A envoie cinq segments de 1 000 octets commençant à 1 001, 2 001, 3 001, 4 001 et 5 001. Le deuxième est perdu. L’ACK de B après le premier est 2 001. Les trois arrivées suivantes produisent chacune un nouvel ACK 2 001.

Après trois acquittements dupliqués, A utilise la retransmission rapide pour renvoyer le segment commençant à 2 001 sans attendre l’expiration du délai. Les données ultérieures étant en mémoire tampon, le comblement de ce manque permet à B d’envoyer l’acquittement 6 001. Le premier ACK 2 001 est l’ACK initial ; les trois suivants sont des doublons. Un ou deux doublons peuvent résulter d’un simple changement dans l’ordre d’arrivée, ce qui explique l’attente d’indices supplémentaires.

TCP combine des idées des deux protocoles à fenêtre. Ses ACK cumulatifs et son temporisateur unique de base ressemblent à GBN, mais sa mise en mémoire tampon et ses retransmissions ciblées ressemblent à la répétition sélective. L’option SACK négociée signale les blocs d’octets conservés au-delà de la limite cumulative, afin que l’émetteur puisse identifier plusieurs manques plus précisément. TCP n’envoie pas de NAK en cas d’échec de la somme de contrôle ; le manque qui en résulte est révélé par les ACK ultérieurs ou l’expiration du délai.

Points clés

  • Un ACK cumulatif peut couvrir un ACK antérieur perdu.
  • Le temporisateur de retransmission de base protège les plus anciennes données non acquittées.
  • L’expiration du délai n’impose pas de retransmettre tous les segments en attente d’acquittement.
  • Trois acquittements dupliqués déclenchent la retransmission rapide dans l’algorithme de base.
  • SACK signale les blocs reçus au-delà d’un manque sans modifier le sens de l’ACK cumulatif.

5.3 Fenêtres de réception et espace tampon

Le contrôle de flux empêche un émetteur TCP de faire déborder le tampon du récepteur. Il réagit à la vitesse de lecture de l’application réceptrice. Le contrôle de congestion réagit à la charge du réseau ; les deux contrôles protègent des ressources différentes.

Calculer l’espace disponible

Soit RcvBuffer la capacité du tampon, LastByteRcvd le dernier octet stocké dans l’ordre et LastByteRead le dernier octet lu par l’application. Dans ce modèle de données contiguës, l’espace occupé est LastByteRcvd − LastByteRead. La fenêtre de réception est

rwnd=RcvBuffer−(LastByteRcvd−LastByteRead).

Le récepteur annonce l’espace disponible dans le champ de fenêtre des segments qu’il renvoie. L’émetteur maintient son nombre d’octets non acquittés dans cette limite :

LastByteSent−LastByteAcked≤rwnd.

Pour RcvBuffer = 40 000 octets, LastByteRcvd = 30 000 et LastByteRead = 18 000, l’espace occupé est de 12 000 octets et rwnd vaut 28 000 octets. ACK 30 001 avec cette fenêtre autorise des octets non acquittés jusqu’à 58 000. Si l’émetteur a déjà envoyé jusqu’à 34 000, il a 4 000 octets en attente d’acquittement et peut en envoyer 24 000 de plus. La fenêtre est une limite pour tous les octets en attente d’acquittement, et non une autorisation supplémentaire qui s’y ajoute.

Reprendre après une fenêtre nulle

Lorsqu’il ne reste plus de place, le récepteur annonce rwnd = 0 et l’émetteur arrête la transmission normale de nouvelles données. Lorsque l’application lit, le récepteur annonce l’espace nouvellement disponible dans une mise à jour de fenêtre.

Cette mise à jour peut être un ACK pur, qui n’est pas acheminé de manière fiable à lui seul. S’il est perdu, l’émetteur pourrait continuer d’attendre alors que de l’espace est disponible. Les sondes de fenêtre nulle, qui transportent couramment un octet, incitent le récepteur à renvoyer sa fenêtre actuelle. Les sondes sont espacées par des intervalles croissants ; elles ne constituent pas un envoi normal de données en masse à travers une fenêtre fermée.

Relier la fenêtre au débit effectif

Avec une fenêtre et un temps aller-retour fixes, le débit effectif idéal limité par la fenêtre vérifie

deˊbit effectif≤rwndRTT.

Utilise des octets et des secondes pour obtenir des octets/s. Une fenêtre de 65 535 octets avec un temps aller-retour de 0,1 s permet environ 655 350 octets/s, soit 5,2 Mbit/s. Un débit de liaison plus élevé ne peut pas supprimer cette limite imposée par la fenêtre.

Pour occuper pleinement un chemin, la fenêtre doit couvrir son produit débit-délai. À 1 Gbit/s et 0,1 s, les données en vol nécessaires représentent 100 millions de bits, soit 12,5 Mo. Cette taille de fenêtre est nécessaire pour atteindre ce débit idéal, mais ne garantit pas qu’il sera atteint.

Mettre le champ à l’échelle et éviter les mises à jour minuscules

Le champ de 16 bits seul ne peut pas représenter une fenêtre aussi grande. Une option de mise à l’échelle de la fenêtre négociée dans les SYN multiplie les valeurs ultérieures de la fenêtre par 2s, avec s≤14. La plus grande échelle donne un peu moins de 1 Gio. Un décalage de 7 autorise au plus 8 388 480 octets ; un décalage de 8 en autorise 16 776 960, ce qui suffit pour l’exemple de 12,5 Mo. Le facteur d’échelle reste fixe pour son sens, tandis que l’espace annoncé continue de changer. Les champs de fenêtre des SYN eux-mêmes ne sont pas mis à l’échelle.

Annoncer chaque petit groupe d’octets nouvellement libérés peut provoquer le syndrome de la fenêtre stupide : de nombreux segments minuscules avec une forte surcharge d’en-tête. Pour l’éviter, le récepteur attend qu’une quantité utile d’espace soit libre, généralement une MSS ou la moitié du tampon, selon la plus petite des deux valeurs. L’algorithme de Nagle traite les petites écritures de l’émetteur en les retenant tant que des données antérieures restent non acquittées, ou jusqu’à ce que suffisamment de données forment un segment plein.

Points clés

  • Le contrôle de flux protège le récepteur ; le contrôle de congestion protège le réseau.
  • Soustrais de la capacité les données en mémoire tampon qui n’ont pas été lues pour obtenir rwnd.
  • Soustrais de rwnd les données déjà en attente d’acquittement avant d’en envoyer davantage.
  • Les sondes de fenêtre nulle permettent de récupérer après la perte d’une mise à jour annonçant la réouverture.
  • La fenêtre divisée par le temps aller-retour borne le débit effectif idéal limité par la fenêtre.
  • La mise à l’échelle fixe le multiplicateur à l’établissement, tandis que l’espace libre continue de changer.
  • Les règles de mise à jour du récepteur et l’algorithme de Nagle traitent des causes différentes de segments minuscules.

Couche transport : exemples

5 Leçons Interactives

1

Suis les données d’une socket à une autre

9 étapes
Suis l’acheminement par la couche transport, sélectionne les sockets de réception et explique les services que TCP et UDP fournissent aux applications.
  1. 1
    IntroductionUn hôte, plusieurs conversations

    Un ordinateur portable peut afficher une page tout en passant un appel. Les deux applications partagent l’acheminement IP, mais chacune a besoin de ses propres données entrantes.

    Suis un message depuis une socket applicative vers les couches inférieures, à travers le réseau, puis vers la socket de destination. Compare ensuite la façon dont un serveur UDP gère plusieurs sources et celle dont un serveur TCP distingue les connexions établies.

  2. 2
    ExplicationConstruire et extraire un segment

    Le protocole de transport émetteur prend les données applicatives et ajoute son en-tête, ce qui forme un segment. IP place ce segment dans un datagramme IP.

    À destination, IP identifie le protocole de la couche supérieure et lui transmet le segment. TCP ou UDP interprète l’en-tête de transport et sélectionne une socket. L’application lit les données par cette socket ; les routeurs ordinaires ne font que transférer les datagrammes IP le long du chemin.

  3. 3
    AnalogieUne adresse et un destinataire

    L’adresse d’un immeuble permet d’acheminer une lettre au bon immeuble. Le nom du destinataire permet à une personne à l’intérieur de la remettre à la bonne personne. De même, les adresses IP permettent l’acheminement vers les hôtes, tandis que les ports de transport aident à sélectionner une socket applicative.

    L’analogie distingue deux tâches. Les protocoles de transport réels fournissent aussi des services définis : TCP peut récupérer les octets manquants, tandis qu’UDP laisse la récupération aux logiciels de la couche supérieure.

  4. 4
    DéfiTCP peut-il promettre un instant d’arrivée ?

    Une application a besoin que chaque octet arrive intact et que son arrivée soit garantie dans un délai de 25 ms. Le choix de TCP satisfait-il ces deux exigences ?

    ---reveal---

    TCP fournit une livraison fiable et ordonnée des octets, mais ne garantit pas cette échéance de 25 ms. La récupération peut ajouter un délai et le chemin IP au mieux ne fournit pas de temps d’attente maximal fixe. Une garantie de livraison et une garantie de délai sont deux exigences distinctes.

  5. 5
    ExplicationSélectionner une socket de réception UDP

    Une socket de serveur UDP non connecté de base est sélectionnée par son adresse IP de destination et son port de destination. Les messages de différents clients peuvent tous atteindre cette socket.

    Supposons que 203.0.113.20:7000 reçoive des messages de 192.0.2.5:55010 et de 198.51.100.9:55010. Le port source est le même, mais les sources diffèrent. Le serveur lit l’adresse et le port source de chaque message pour adresser la réponse appropriée.

  6. 6
    ExempleRéutiliser un port de serveur TCP

    Un serveur TCP à l’adresse 203.0.113.20:443 possède deux clients : 192.0.2.5:55010 et 198.51.100.9:55010.

    Chaque connexion établie possède un quadruplet distinct. Toutes deux partagent l’adresse et le port du serveur ; leurs adresses source les distinguent. La socket d’écoute accepte d’autres clients tandis que les sockets de connexion transportent les flux existants. Aucun port d’écoute supplémentaire n’est nécessaire pour chaque client.

  7. 7
    DéfiCompter les sockets de connexion

    Un serveur à l’adresse 203.0.113.30:443 accepte des connexions de 192.0.2.7:56000, 192.0.2.7:56001 et 198.51.100.7:56000. Combien de sockets de connexion distinguent ces flux ?

    ---reveal---

    Trois. Les deux premières diffèrent par leur port source ; la première et la troisième diffèrent par leur adresse source. Leur port de destination commun ne les fusionne pas. La socket d’écoute est distincte et ne fait pas partie de ces trois sockets de connexion.

  8. 8
    DéfiChoisir le protocole de transport et l’extrémité de réception

    Un service a besoin de messages distincts sans établissement préalable. Deux clients envoient des données à sa socket non connectée à l’adresse 203.0.113.40:8000. Quel protocole de transport convient et qu’est-ce qui sélectionne cette socket serveur ?

    ---reveal---

    UDP convient à ce service de messages sans négociation de transport. L’adresse de destination 203.0.113.40 et le port 8000 sélectionnent la socket serveur de base. Les adresses et ports source indiquent où envoyer les réponses ; ils ne nécessitent pas de connexions distinctes comme avec TCP.

  9. 9
    RécapitulatifLire un suivi d’acheminement dans l’ordre

    Pour suivre des données entrantes, identifie d’abord le protocole de transport, puis les informations de ses extrémités, et enfin le service reçu par l’application.

    Un message UDP et un flux d’octets TCP peuvent partager le même numéro de port serveur, car ils appartiennent à des protocoles différents. Avec TCP, les deux adresses et les deux ports distinguent une connexion. La fiabilité, les délais et le chiffrement doivent chacun être examinés comme des besoins distincts de l’application.

2

Vérifie un message UDP et choisis son service

11 étapes
Lis les champs UDP, reporte une retenue dans une somme de contrôle et détermine si la récupération après une perte peut respecter l’échéance d’une application.

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

  1. 1
    IntroductionUn petit en-tête pour un rôle précis
  2. 2
    ExplicationCompter les octets d’un segment UDP
  3. 3
    ExplicationPréparer les données du calcul de la somme de contrôle
  4. 4
    ExempleReporter la retenue avant de poursuivre
  5. 5
    ExempleComplémenter, puis vérifier
  6. 6
    DéfiGérer une autre retenue
  7. 7
    ExplicationTerminer la récupération avant l’échéance
  8. 8
    Point cléUne application UDP peut ajouter des services
  9. 9
    DéfiUne copie de remplacement serait-elle encore utile ?
  10. 10
    DéfiCombiner taille du message et choix du service
  11. 11
    RécapitulatifVérifier ce que fournit chaque couche
3

Construis un transfert fiable à fenêtre glissante

20 étapes
Développe la gestion des doublons, les temporisateurs et la transmission en pipeline, puis suis Go-Back-N et la répétition sélective face à la même perte.

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

  1. 1
    IntroductionFaire apparaître les cas de défaillance
  2. 2
    ExplicationReprésenter ce que chaque extrémité attend
  3. 3
    AnalogieDonner la même identité à une copie de remplacement
  4. 4
    DéfiRépondre à un doublon sans le livrer à nouveau
  5. 5
    ExplicationRéagir à l’absence de réponse
  6. 6
    ExempleMesurer séparément l’envoi et l’attente
  7. 7
    ExempleRemplir cet intervalle d’attente
  8. 8
    DéfiDéterminer une fenêtre pour la transmission en pipeline
  9. 9
    ExplicationLire la fenêtre Go-Back-N
  10. 10
    ExemplePerdre un paquet avec Go-Back-N
  11. 11
    DéfiRetransmettre la plage en attente d’acquittement
  12. 12
    Point cléGarder un numéro inutilisé hors de la fenêtre GBN
  13. 13
    ExplicationLa répétition sélective conserve les paquets arrivés après un manque
  14. 14
    ExempleRécupérer la même perte avec un seul remplacement
  15. 15
    DéfiFaire avancer la base en répétition sélective après un ACK tardif
  16. 16
    ExempleMettre en évidence le chevauchement des anciens et des nouveaux numéros
  17. 17
    ConseilSéparer les fenêtres avant de réutiliser les numéros
  18. 18
    DéfiChoisir entre les modèles de fenêtre
  19. 19
    LienGérer les copies qui survivent à un cycle complet
  20. 20
    RécapitulatifSuivre l’état avant de choisir quoi renvoyer
4

Suis TCP de SYN à FIN

16 étapes
Lis l’en-tête, numérote les deux flux d’octets et suis l’ouverture et la fermeture d’une connexion.

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

  1. 1
    IntroductionDistinguer les deux flux d’octets
  2. 2
    ExplicationLire un flux plutôt qu’une suite de messages
  3. 3
    ExempleInterpréter la taille de l’en-tête avant celle de la charge utile
  4. 4
    DéfiTenir compte des en-têtes réels
  5. 5
    ExplicationIndiquer le premier octet de données
  6. 6
    ExempleAvancer dans des segments de tailles différentes
  7. 7
    ExempleIncorporer un acquittement aux données
  8. 8
    DéfiMaintenir un ACK à la valeur du manque
  9. 9
    ExempleConfirmer les deux numéros initiaux
  10. 10
    DéfiVérifier les champs du dernier message de négociation
  11. 11
    ExplicationFermer un sens à la fois
  12. 12
    Point cléAttendre pour permettre la répétition de l’ACK final
  13. 13
    LienRefuser une demande d’ouverture ou s’en protéger
  14. 14
    DéfiAcquitter ensemble les données et la fermeture
  15. 15
    ConseilReconnaître la réutilisation des numéros
  16. 16
    RécapitulatifTenir compte de chaque numéro consommé
5

Récupère les pertes TCP sans faire déborder le tampon du récepteur

18 étapes
Actualise un délai de retransmission, identifie les octets manquants, calcule l’espace de réception disponible et explique la réouverture de la fenêtre.

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

  1. 1
    IntroductionDéterminer ce qui bloque la progression
  2. 2
    ExplicationChoisir une mesure exploitable du temps aller-retour
  3. 3
    ExempleActualiser d’abord l’écart
  4. 4
    ExempleActualiser la moyenne et appliquer les limites
  5. 5
    DéfiContinuer avec une deuxième mesure
  6. 6
    ConseilAugmenter le délai sans inventer de mesure
  7. 7
    ExempleLaisser un ACK ultérieur couvrir un ACK perdu
  8. 8
    ExplicationSignaler un manque par des ACK répétés
  9. 9
    DéfiCombler un manque et avancer au-delà des octets en mémoire tampon
  10. 10
    Point cléUtiliser le temporisateur de base pour le plus ancien manque
  11. 11
    ExplicationCompter d’abord les octets non lus
  12. 12
    ExempleSoustraire les données déjà en attente d’acquittement
  13. 13
    DéfiCalculer la quantité supplémentaire autorisée à l’envoi
  14. 14
    LienRécupérer après la perte d’une mise à jour de réouverture
  15. 15
    ExempleDimensionner une fenêtre pour le chemin
  16. 16
    ConseilDistinguer la mise à l’échelle des petites mises à jour
  17. 17
    DéfiRécupérer les données mais attendre de l’espace
  18. 18
    RécapitulatifAssocier chaque réponse à l’information correspondante

Couche transport : QCM

50 Questions Pratiques en 5 séries

Série 1 : Services de transport et livraison des messages10 Questions Pratiques

Question 1 sur 10

Quel service TCP permet à une application réceptrice d’obtenir les octets d’un fichier dans leur ordre initial ?
  1. Un délai réseau maximal garanti
  2. Un flux d’octets fiable et ordonné
  3. Un message par écriture de l’application
  4. Une connexion chiffrée intégrée
Afficher la réponseMasquer la réponse
Réponse : B
TCP numérote les octets et récupère les données manquantes avant de livrer le flux dans l’ordre. Il ne préserve pas les limites des écritures de l’application : trois écritures ne produisent donc pas nécessairement trois lectures. Le chiffrement nécessite un protocole de sécurité comme TLS ; la fiabilité seule ne masque pas le contenu du fichier.

Question 2 sur 10

Deux clients TCP utilisent le port source 54000 pour se connecter à la même adresse et au même port serveur. Leurs adresses IP source diffèrent. Comment le serveur distingue-t-il leur trafic ?
  1. Il attribue un nouveau port d’écoute à l’un des clients.
  2. Il réunit les deux clients dans un seul flux d’octets.
  3. Il sélectionne les sockets avec les seuls ports de destination.
  4. Il sélectionne des sockets de connexion aux quadruplets distincts.
Afficher la réponseMasquer la réponse
Réponse : D
Une connexion TCP est identifiée par les deux adresses IP et les deux ports. Les adresses source différentes rendent ces quadruplets distincts même si les ports source sont identiques. Le serveur peut conserver un seul port d’écoute ; il n’a pas besoin d’un port d’écoute distinct pour chaque client.

Question 3 sur 10

Une réponse UDP va de 203.0.113.8:123 à 192.0.2.18:57320. Quel est son port de destination ?
  1. 57320
  2. 123
  3. 17
  4. 192
Afficher la réponseMasquer la réponse
Réponse : A
Le port de destination est le port de l’extrémité réceptrice, 57320. Le port 123 identifie le service émetteur dans cette réponse et constitue donc le port source. Une réponse inverse les rôles des extrémités de la requête ; le port bien connu du service n’est pas nécessairement le port de destination dans les deux sens.

Question 4 sur 10

Un message UDP transporte 72 octets de données. Quelle valeur doit figurer dans son champ de longueur ?
  1. 72 octets
  2. 92 octets
  3. 80 octets
  4. 100 octets
Afficher la réponseMasquer la réponse
Réponse : C
La longueur UDP comprend l’en-tête UDP de 8 octets et les 72 octets de données, soit 80 octets. Ne compter que les données applicatives oublie l’en-tête de transport. Ajouter un en-tête IP ferait compter des octets extérieurs au segment UDP ; IP possède ses propres informations de longueur.

Question 5 sur 10

Une mise à jour de position dans un jeu expire dans 35 ms. La récupération d’une copie perdue prendrait 90 ms et une position plus récente est déjà disponible. Pourquoi l’application pourrait-elle renoncer à cette récupération ?
  1. La copie arriverait après son échéance d’utilité.
  2. UDP garantit que la position plus récente est exacte.
  3. Le réseau a forcément déjà livré la mise à jour perdue.
  4. Un en-tête UDP empêche l’envoi des anciennes positions.
Afficher la réponseMasquer la réponse
Réponse : A
La mise à jour récupérée arriverait 55 ms après son expiration ; son ancienne position ne serait donc plus utile à cette application. UDP ne décide pas de l’utilité des données et n’empêche pas les envois périmés ; l’application fait ce choix. La perte d’un message ne dit rien non plus de l’exactitude d’une position plus récente.

Question 6 sur 10

Un récepteur en arrêt et attente a livré le paquet 0 et attend maintenant le paquet 1. Un autre paquet 0 intact arrive. Que doit-il faire ?
  1. Le livrer à nouveau et envoyer ACK 0.
  2. Rejeter ses données et envoyer ACK 1.
  3. Rejeter ses données et ne rien renvoyer.
  4. Rejeter ses données et envoyer ACK 0.
Afficher la réponseMasquer la réponse
Réponse : D
Le numéro répété identifie une ancienne copie : les données ne doivent donc pas être livrées deux fois. Renvoyer ACK 0 permet à l’émetteur de poursuivre si le premier ACK a été perdu ou était illisible. ACK 1 indiquerait la réception du paquet suivant, que le récepteur n’a pas accepté.

Question 7 sur 10

Un protocole arrêt et attente qui ne traite que les erreurs dispose de sommes de contrôle et de retours ACK/NAK, mais pas de numéros de séquence. Pourquoi est-il risqué de renvoyer un paquet après un retour altéré ?
  1. La copie de remplacement ne peut pas porter de somme de contrôle valide.
  2. Le récepteur risque de livrer deux fois un paquet déjà accepté.
  3. L’émetteur doit changer de port source à chaque nouvel essai.
  4. Le canal de retour ne peut transporter aucune information utile.
Afficher la réponseMasquer la réponse
Réponse : B
Le retour illisible peut avoir été un ACK pour des données déjà livrées. Sans identité du paquet, le récepteur peut prendre la copie de remplacement pour de nouvelles données et la livrer deux fois. Une somme de contrôle valide indique que le contenu est intact ; elle ne distingue pas un doublon d’une nouvelle livraison.

Question 8 sur 10

Un émetteur en arrêt et attente utilise des paquets de 1 000 octets sur une liaison à 8 Mbit/s avec un temps aller-retour de 19 ms. Néglige la transmission et le traitement de l’ACK. Quel est son taux d’utilisation ?
  1. 0,005
  2. 0,95
  3. 0,05
  4. 0,50
Afficher la réponseMasquer la réponse
Réponse : C
Un paquet contient 8 000 bits ; sa transmission prend donc 1 ms. Le cycle complet dure 19 + 1 = 20 ms, ce qui donne un taux d’utilisation de 1/20 = 0,05. Utiliser 1 000 comme nombre de bits oublie la conversion des octets en bits et donne un temps de transmission incorrect.

Question 9 sur 10

Un champ de décalage des données TCP contient 9. Quelle est la longueur de l’en-tête TCP ?
  1. 36 octets
  2. 9 octets
  3. 29 octets
  4. 72 octets
Afficher la réponseMasquer la réponse
Réponse : A
Le décalage des données compte les mots de 32 bits, chacun contenant 4 octets. Une valeur de 9 donne donc 36 octets d’en-tête TCP, dont les 20 octets fixes. Il s’agit de la longueur totale de l’en-tête : ajouter encore 20 octets compterait la partie fixe une seconde fois.

Question 10 sur 10

Un émetteur du protocole du bit alterné envoie le paquet 1. Son ACK est retardé au-delà de l’expiration du délai, une copie de remplacement est donc envoyée. L’ACK initial arrive ensuite avant que la copie de remplacement n’atteigne le récepteur. L’émetteur envoie un nouveau paquet 0. Sans réordonnancement des paquets de données, que livre le récepteur parmi la copie de remplacement 1 et le nouveau paquet 0 ?
  1. Les deux paquets, car chacun est arrivé intact.
  2. Aucun des deux, car le délai de l’émetteur a expiré.
  3. Le paquet 1 seulement, car son ACK est arrivé en premier.
  4. Le paquet 0 seulement, après rejet du doublon 1.
Afficher la réponseMasquer la réponse
Réponse : D
Le récepteur a déjà livré le paquet 1 initial avant d’envoyer son ACK retardé. Il rejette donc la copie de remplacement 1 comme doublon et l’acquitte à nouveau. Le nouveau paquet 0 porte le numéro alterné attendu et est livré ; l’expiration du délai n’annule pas la livraison précédente.
Série 2 : Fenêtres glissantes et récupération après une perte10 Questions Pratiques

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

Question 1 sur 10

Avec Go-Back-N, que confirme ACK 12 ?
  1. Le paquet 12 seulement
  2. Tous les paquets jusqu’à 12 inclus
  3. Tous les paquets avant 12
  4. Les paquets après 12 seulement
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un émetteur Go-Back-N a une fenêtre de taille 6, une base à 20 et nextseqnum à 24. Aucun rebouclage ne se produit. Quels nouveaux paquets peut-il envoyer avant un autre ACK ?
  1. De 24 à 29
  2. 20 et 21
  3. 24 et 25
  4. 25 et 26
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un émetteur Go-Back-N utilise une fenêtre de 5 et envoie les paquets 10 à 14 ; le paquet 12 est perdu. Les ACK de 10 et 11 arrivent, il envoie donc 15 et 16. Toutes les données ultérieures arrivent avant l’expiration du délai du paquet 12. Que retransmet-il à cette expiration ?
  1. 12, 13, 14, 15 et 16
  2. 12 seulement
  3. 12, 13 et 14 seulement
  4. 10, 11, 12, 13 et 14
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un émetteur en répétition sélective a sa base à 30 et les paquets 30 à 33 en attente d’acquittement. Les ACK 31, 32 et 33 arrivent, mais pas ACK 30. Où se trouve la base de l’émetteur ?
  1. 31
  2. 33
  3. 34
  4. 30
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un récepteur en répétition sélective a une fenêtre de taille 4. Il accepte les paquets 8 à 11 et avance sa base à 12. ACK 9 est perdu, donc le paquet 9 est retransmis. Quelle réponse permet à l’émetteur de poursuivre correctement ?
  1. Ignorer le paquet 9, car il est hors de la fenêtre actuelle.
  2. Envoyer ACK 11, car les quatre paquets ont été reçus.
  3. Envoyer ACK 9 sans livrer à nouveau le paquet 9.
  4. Mettre le paquet 9 en mémoire tampon jusqu’au rebouclage des numéros.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une personne qui conçoit un protocole a besoin de fenêtres d’émission et de réception de même taille, de 10 paquets chacune, pour la répétition sélective. Quelle est la taille minimale du champ de numéro de séquence ?
  1. 3 bits
  2. 5 bits
  3. 4 bits
  4. 6 bits
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une transmission en pipeline envoie des paquets de 1 250 octets sur une liaison à 10 Mbit/s avec un temps aller-retour de 9 ms. Néglige la transmission et le traitement des ACK. Quelle est la plus petite fenêtre capable de maintenir l’émetteur occupé en continu ?
  1. 9 paquets
  2. 11 paquets
  3. 90 paquets
  4. 10 paquets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Quel mécanisme permet à un récepteur en arrêt et attente de distinguer un paquet de remplacement de nouvelles données ?
  1. Un numéro de séquence
  2. Un délai plus long
  3. Un débit de liaison plus élevé
  4. Une somme de contrôle seule
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Deux chemins utilisés en arrêt et attente ont des tailles de paquets et des temps aller-retour identiques. Le débit de la seconde liaison est deux fois plus élevé. Comment évoluent le taux d’utilisation et le débit utile, en négligeant les pertes et la transmission des ACK ?
  1. Les deux doublent.
  2. Le taux d’utilisation baisse ; le débit augmente de moins du double.
  3. Le taux d’utilisation reste fixe ; le débit double.
  4. Le taux d’utilisation augmente ; le débit reste fixe.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

TCP envoie trois segments consécutifs. L’ACK du premier est perdu, mais un ACK ultérieur couvrant les trois arrive avant l’expiration du délai. Quelles données faut-il renvoyer à cause de cet ACK perdu ?
  1. Le premier segment seulement
  2. Le dernier segment seulement
  3. Aucun des trois segments
  4. Les trois segments
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Octets TCP et état de connexion10 Questions Pratiques

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

Question 1 sur 10

Un programme écrit 60 octets puis 90 octets dans une socket TCP. Que peut renvoyer une seule lecture du côté récepteur ?
  1. 60 octets seulement avant une seconde lecture
  2. Exactement un message de 150 octets avec un marqueur de limite
  3. 90 octets seulement, car la seconde écriture remplace la première
  4. Les 150 octets sans marqueur de limite d’écriture
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un segment TCP commence à l’octet 8401 et transporte 640 octets de données, sans SYN ni FIN. Quel ACK confirme ce segment entier lorsque tous les octets précédents sont arrivés ?
  1. 9040
  2. 9041
  3. 8402
  4. 640
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un récepteur attend l’octet 12001. Il met en mémoire tampon 400 octets commençant à 12401, puis reçoit 250 octets commençant à 12001, puis 150 octets commençant à 12251. Quel ACK suit chacune des deux dernières arrivées ?
  1. 12251, puis 12801
  2. 12401, puis 12801
  3. 12251, puis 12401
  4. 12801, puis 12801
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Le prochain octet d’un client est 3001 et celui d’un serveur est 9101. Le client envoie 180 octets ; le serveur les reçoit et envoie 420 octets sans données serveur antérieures en attente d’acquittement. Quels numéros de séquence et d’acquittement figurent dans ce segment du serveur ?
  1. Séquence 3281 ; ACK 9521
  2. Séquence 9521 ; ACK 3181
  3. Séquence 9101 ; ACK 3181
  4. Séquence 3181 ; ACK 9101
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un client envoie SYN avec le numéro de séquence 4600. Le serveur répond par SYN-ACK avec le numéro de séquence 17000. Quel acquittement doit figurer dans l’ACK final de négociation du client ?
  1. 17000
  2. 17001
  3. 4601
  4. 17002
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

A a envoyé des données jusqu’à l’octet 7199, puis envoie FIN. B acquitte ce FIN et possède encore 300 octets applicatifs non envoyés. Quel comportement doit suivre ?
  1. B envoie ses données et peut ensuite envoyer son propre FIN ; son ACK est 7201.
  2. B doit rejeter ses données non envoyées ; son ACK est 7201.
  3. B n’envoie ses données qu’après une nouvelle négociation ; son ACK est 7200.
  4. B ferme immédiatement les deux sens ; son ACK est 7200.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

A ferme en premier et atteint TIME_WAIT après avoir reçu le FIN de B. L’ACK final de A est perdu. B retransmet son FIN. Pourquoi est-il utile de conserver maintenant l’état de connexion de A ?
  1. Cela permet à A de rouvrir le sens d’émission de B.
  2. Cela permet à A de renvoyer les données manquantes de B.
  3. Cela permet à A d’acquitter à nouveau le FIN.
  4. Cela permet à A de fixer le prochain numéro de séquence de B.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un émetteur TCP a reçu un ACK 4401 suivi de trois autres ACK 4401, causés par l’arrivée de données ultérieures au-delà d’un manque. Quel segment la retransmission rapide de base renvoie-t-elle ?
  1. Le segment se terminant à l’octet 4400
  2. Le segment envoyé le plus récemment
  3. Tous les segments après l’octet 4401
  4. Le segment commençant à l’octet 4401
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un récepteur a une capacité de 24000 octets et contient 6500 octets non lus. L’émetteur a déjà 5500 octets en attente d’acquittement dans le cadre de l’annonce actuelle. Combien d’octets supplémentaires peuvent être envoyés ?
  1. 17500 octets
  2. 12000 octets
  3. 18500 octets
  4. 6500 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

TCP envoie des segments commençant à 2001, 2501 et 3001, de 500 octets chacun. Toutes les données arrivent, mais chaque ACK est retardé au-delà de l’expiration du délai. L’émetteur renvoie 2001 ; puis ACK 3501 arrive avant l’expiration du nouveau temporisateur. Que reste-t-il à retransmettre ?
  1. Rien ; ACK 3501 confirme les trois segments de données.
  2. 2501 seulement ; 2001 est la seule copie de remplacement envoyée.
  3. 2501 et 3001 ; chacun nécessite l’expiration de son temporisateur.
  4. Les trois ; un ACK après expiration ne peut pas confirmer les données initiales.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Délais de retransmission TCP, manques et espace de réception10 Questions Pratiques

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

Question 1 sur 10

Un temporisateur de retransmission est réglé sur 1,2 s. Quel intervalle suit une expiration avec un recul exponentiel ?
  1. 0,6 s
  2. 1,2 s
  3. 2,4 s
  4. 4,8 s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

EstimatedRTT est de 200 ms et DevRTT de 20 ms. Une nouvelle mesure est de 240 ms. Avec les pondérations et l’ordre d’actualisation recommandés, quel est le délai brut lorsque la granularité de l’horloge est négligeable ?
  1. 305 ms
  2. 300 ms
  3. 285 ms
  4. 320 ms
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

EstimatedRTT est de 240 ms et DevRTT de 20 ms. Un émetteur sans horodatage a augmenté son délai de retransmission à 2 s. Un ACK pour des données retransmises arrive 150 ms après la nouvelle tentative. Plus tard, des données qui n’avaient pas été retransmises donnent une mesure valide de 320 ms. Avec une granularité d’horloge négligeable, quel délai brut faut-il calculer à partir de ces événements ?
  1. 390 ms
  2. 444 ms
  3. 350 ms
  4. 2000 ms
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un récepteur reçoit un segment TCP intact au-delà d’une plage d’octets manquante. Que doit indiquer son ACK immédiat ?
  1. La fin du segment qui vient d’arriver
  2. Le premier octet encore manquant dans le flux continu
  3. La longueur du segment reçu dans le désordre
  4. Le premier octet après toutes les données envoyées par le correspondant
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un récepteur attend l’octet 6001. Il met en mémoire tampon trois segments consécutifs de 800 octets commençant à 6801, 7601 et 8401, en envoyant immédiatement des acquittements dupliqués. Un segment de remplacement de 800 octets commençant à 6001 arrive ensuite. Quel ACK cumulatif suit ?
  1. 6801
  2. 8401
  3. 9201
  4. 6001
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un émetteur TCP a en attente d’acquittement des segments commençant à 10501, 11001, 11501 et 12001. Sa limite actuelle d’ACK cumulatif est 10501. Il reçoit deux fois ACK 10501, puis une fois ACK 11001, puis encore trois fois ACK 11001. Aucun temporisateur n’expire. Quel segment la retransmission rapide de base renvoie-t-elle ?
  1. Le segment commençant à 10501
  2. Le segment commençant à 11501
  3. Le segment commençant à 12001
  4. Le segment commençant à 11001
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Après avoir annoncé une fenêtre nulle, l’application d’un récepteur lit des données. La mise à jour annonçant la réouverture de la fenêtre est perdue. Qu’est-ce qui permet à l’émetteur de découvrir l’espace disponible ?
  1. Une retransmission automatique de chaque ACK pur
  2. Une nouvelle négociation en trois temps sur le même flux
  3. Un délai fixe qui ramène la fenêtre à son maximum
  4. Une sonde de fenêtre nulle et la réponse indiquant la fenêtre actuelle du récepteur
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un chemin a un temps aller-retour de 80 ms et peut transporter 200 Mbit/s. Un récepteur peut annoncer jusqu’à 65535 × 2^s octets. En négligeant les autres limites, quel est le plus petit décalage d’échelle qui autorise suffisamment de données en vol pour occuper pleinement le chemin ?
  1. 4
  2. 5
  3. 6
  4. 7
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un récepteur annonce ACK 51001 et rwnd 18000 alors que l’émetteur a envoyé jusqu’à l’octet 57000. L’émetteur transmet ensuite 8000 octets de plus et reçoit ACK 59001 avec rwnd 12000. Combien d’octets supplémentaires peut-il maintenant envoyer selon la nouvelle annonce ?
  1. 4000 octets
  2. 12000 octets
  3. 6000 octets
  4. 10000 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un service utilise UDP, mais a besoin d’une livraison complète et ordonnée et envoie un trafic important sur un chemin partagé. Que doit fournir le service ou un protocole au-dessus d’UDP ?
  1. La récupération, la remise dans l’ordre et un contrôle de congestion adapté
  2. Seulement un champ de somme de contrôle plus grand et un en-tête IP plus long
  3. Seulement un tampon de réception plus grand et des ports source permanents
  4. L’hypothèse que toutes les pertes sur un chemin partagé sont sans conséquence
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Diagnostiquer des suivis complets de transport10 Questions Pratiques

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

Question 1 sur 10

Une somme de contrôle UDP fournie et non nulle échoue à la vérification chez le récepteur. Que fait UDP du segment ?
  1. Il corrige les bits, puis le livre.
  2. Il rejette silencieusement le segment.
  3. Il demande un renvoi avec un NAK UDP.
  4. Il livre deux copies pour les comparer.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Deux mots d’entrée de 16 bits pour une somme de contrôle sont FFFE et 0002. Quelle est leur somme de contrôle Internet ?
  1. FFFF
  2. 0000
  3. FFFE
  4. 0001
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un protocole à répétition sélective avec des fenêtres de même taille utilise les numéros de 0 à 7 et une fenêtre de taille 5. Le récepteur accepte 0 à 4, mais tous les ACK sont perdus. Quels anciens numéros de paquet entreraient dans la nouvelle fenêtre du récepteur s’ils étaient retransmis ?
  1. 0 et 1
  2. 3 et 4
  3. 5 et 6
  4. De 0 à 4
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un émetteur Go-Back-N possède des numéros de quatre bits et a besoin d’au moins 16 paquets en vol pour occuper pleinement un chemin. Quelle est la plus petite modification permettant cette transmission en pipeline sans ambiguïté et sans changer de type de protocole ?
  1. Garder quatre bits et utiliser les 16 numéros.
  2. Garder quatre bits et augmenter seulement le tampon de réception.
  3. Garder quatre bits et remplacer les ACK cumulatifs par des ACK individuels.
  4. Utiliser des numéros de cinq bits et une fenêtre d’au moins 16.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un chemin autorise des datagrammes IPv4 de 1400 octets. L’en-tête IP fait 20 octets et le décalage des données TCP vaut 8. Combien d’octets de données peuvent tenir sans dépasser cette limite ?
  1. 1360 octets
  2. 1348 octets
  3. 1372 octets
  4. 1380 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Après une négociation avec un ISN client de 15000, le client envoie 2300 octets répartis en segments de 1000, 1000 et 300 octets, puis FIN. Tous arrivent dans l’ordre. Quel ACK confirme le FIN ?
  1. 17300
  2. 17301
  3. 17302
  4. 18002
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

EstimatedRTT est de 400 ms et DevRTT de 60 ms. Une nouvelle mesure valide est de 240 ms après une augmentation précédente du délai. Avec une granularité d’horloge négligeable et un minimum de 1 s, quel délai de retransmission résulte de cette nouvelle mesure ?
  1. 560 ms
  2. 640 ms
  3. 1120 ms
  4. 1000 ms
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un récepteur annonce ACK 8001 avec rwnd 9000. L’émetteur a envoyé jusqu’à 11000. L’application lit ensuite 2000 octets, mais aucune annonce actualisée n’atteint l’émetteur. Combien de nouveaux octets l’émetteur peut-il envoyer avec la fenêtre qu’il connaît ?
  1. 6000 octets
  2. 8000 octets
  3. 9000 octets
  4. 11000 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un serveur utilise des cookies SYN pendant une inondation de négociations inachevées. Quel événement lui permet normalement d’allouer l’état de la nouvelle connexion ?
  1. La réception de n’importe quel SYN destiné au port d’écoute
  2. L’envoi du premier SYN-ACK à un client apparent
  3. La validation du cookie renvoyé par l’ACK final
  4. L’attente d’une durée de vie maximale de segment après le SYN
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un récepteur attend l’octet 16001. Parmi quatre segments de 600 octets commençant à 16001, 16601, 17201 et 17801, le premier et le troisième sont perdus. Le deuxième et le quatrième arrivent et sont mis en mémoire tampon ; seuls deux acquittements dupliqués atteignent l’émetteur. À l’expiration du délai, le premier est retransmis et arrive. Quel ACK suit et quel manque subsiste ?
  1. ACK 18401 ; aucun manque ne subsiste.
  2. ACK 17201 ; le manque commençant à 17201 subsiste.
  3. ACK 16601 ; les deux segments ultérieurs doivent être renvoyés.
  4. ACK 17801 ; le manque commençant à 17801 subsiste.
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

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

A

Acheminement au mieux
L’acheminement au mieux tente de transporter les données sans garantir leur arrivée, leur ordre, leur intégrité, leur délai ni un débit effectif minimal.
TCP peut récupérer un segment perdu même si le service IP sous-jacent reste un service au mieux.
Acquittement
Un acquittement est un retour du récepteur confirmant la réception de données ; son sens peut être individuel ou cumulatif selon le protocole.
En répétition sélective, ACK 14 confirme le seul paquet 14, tandis qu’avec GBN, ACK 14 confirme aussi tous les paquets précédents.
Acquittement cumulatif
Un acquittement cumulatif confirme toute une suite continue de données reçues, ce qui permet à un seul ACK de couvrir plusieurs transmissions antérieures.
Un ACK cumulatif ultérieur peut rendre sans conséquence la perte d’un ACK précédent s’il arrive avant l’expiration du délai.
Acquittement différé
Un acquittement différé reporte brièvement l’acquittement de données TCP reçues dans l’ordre afin de regrouper les retours, sous réserve de limites de délai et de fréquence.
Un deuxième segment de taille maximale reçu dans l’ordre provoque un ACK cumulatif au lieu de démarrer une nouvelle longue attente.
Acquittement dupliqué
Un acquittement dupliqué répète un acquittement cumulatif existant sans confirmer de nouveaux octets, souvent parce que des données ultérieures sont arrivées au-delà d’un manque.
Trois acquittements dupliqués répondant aux conditions peuvent déclencher le remplacement d’un segment manquant avant l’expiration de son temporisateur.
Acquittement incorporé aux données
L’acquittement incorporé aux données transporte des informations d’acquittement pour les données reçues dans un segment TCP qui envoie aussi des données dans le sens inverse.
La réponse d’un serveur peut acquitter la requête tout en transportant ses propres octets numérotés indépendamment.
Acquittement individuel
Un acquittement individuel confirme un paquet identifié sans confirmer également tous les paquets qui le précèdent dans la séquence.
La réception de ACK 22 en répétition sélective n’indique pas à l’émetteur si le paquet 21 est arrivé ou s’il doit encore être remplacé.
Acquittement négatif
Un acquittement négatif est un retour indiquant que des données n’ont pas été reçues correctement et qu’une transmission de remplacement est nécessaire.
Un protocole arrêt et attente qui ne traite que les erreurs de bits envoie un NAK après la détection d’un paquet altéré par sa somme de contrôle.
Acquittement sélectif
L’acquittement sélectif est une option TCP qui signale les blocs d’octets reçus au-delà d’un manque, en complément de la limite d’acquittement cumulatif.
SACK peut montrer que deux blocs ultérieurs sont déjà en mémoire tampon alors qu’une plage intermédiaire d’octets doit encore être récupérée.
Algorithme de Karn
L’algorithme de Karn exclut les mesures ambiguës du temps aller-retour sur des données retransmises, sauf si des informations comme les horodatages identifient la transmission.
Un ACK après une nouvelle tentative peut correspondre à la copie initiale ; son instant d’arrivée ne suffit donc pas à fournir une nouvelle mesure.
Algorithme de Nagle
L’algorithme de Nagle regroupe les petites écritures de l’émetteur tant que des données antérieures ne sont pas acquittées ou jusqu’à ce que suffisamment de données en mémoire tampon puissent former un segment plein.
Une suite d’écritures de un octet peut être regroupée au lieu d’envoyer pour chacune un segment dont l’en-tête est lourd.
Arrêt et attente
L’arrêt et attente est une méthode de transfert dans laquelle l’émetteur ne garde qu’un seul paquet de données en attente d’acquittement et attend sa confirmation avant de poursuivre.
Un long aller-retour peut laisser l’émetteur inactif même lorsque sa liaison peut transmettre le paquet très rapidement.
Automate à états finis
Un automate à états finis décrit un système par son état actuel et des transitions déclenchées par des événements, qui précisent les actions à effectuer.
Un émetteur qui attend ACK 1 traite différemment un ACK correspondant et un retour contenant le mauvais numéro.

B

Base de la fenêtre d’émission
La base de la fenêtre d’émission indique les plus anciennes données non acquittées au début d’une fenêtre d’émission, ce qui limite jusqu’où de nouvelles transmissions peuvent aller.
Avec GBN, la réception de ACK 19 avance la base à 20 et peut libérer de la place pour des paquets supplémentaires.
Blocage en tête de file
Dans un flux TCP, le blocage en tête de file se produit lorsque des octets antérieurs manquants retardent la livraison d’octets ultérieurs déjà arrivés.
Un récepteur peut conserver des données audio ultérieures pendant que TCP attend les octets de remplacement d’un segment précédent.

C

Communication logique
La communication logique permet à des processus correspondants d’interagir comme s’ils étaient directement connectés, tandis que les couches inférieures transportent leurs données à travers un réseau.
Deux applications sur des hôtes différents utilisent des sockets sans gérer chaque routeur et chaque liaison du chemin qui les sépare.
Connexion en duplex intégral
Une connexion en duplex intégral permet aux deux extrémités de transmettre simultanément, avec une numérotation indépendante des flux dans chaque sens.
Un serveur peut envoyer des octets de réponse pendant que le client envoie encore des données supplémentaires sur la même connexion.
Contrôle de flux
Le contrôle de flux limite les données en attente d’acquittement de l’émetteur selon l’espace tampon disponible chez le récepteur, protégeant ainsi une application qui lit lentement.
Un récepteur dont le tampon est plein peut annoncer une fenêtre nulle même lorsque le chemin réseau dispose de capacité libre.
Cookie SYN
Un cookie SYN encode des informations de connexion vérifiables dans l’ISN d’un serveur afin qu’un état individuel puisse être alloué après un ACK final valide.
Le serveur vérifie l’acquittement reçu avant de réserver des ressources pour cette connexion particulière.
Couche transport
La couche transport fournit une communication logique entre les processus applicatifs d’hôtes différents, au-dessus du service IP entre hôtes.
Un navigateur reçoit les octets de sa propre réponse par une socket pendant qu’une autre application utilise le même hôte.

D

Décalage des données
Le décalage des données TCP donne la longueur totale de l’en-tête TCP en mots de 32 bits et indique où commence la charge utile applicative.
Un décalage des données de 6 donne un en-tête de 24 octets, contenant quatre octets au-delà de l’en-tête TCP fixe.
Délai de retransmission
Un délai de retransmission est un intervalle d’attente dont l’expiration déclenche une nouvelle transmission lorsque la confirmation attendue n’est pas arrivée.
Un paquet de données perdu ne produit aucun retour, mais l’expiration du délai donne tout de même à l’émetteur une raison de réessayer.
Demi-fermeture
Une demi-fermeture met fin à un sens d’émission TCP avec FIN tout en permettant aux données de continuer à circuler dans l’autre sens de la connexion.
Un client peut terminer l’envoi d’une requête tout en continuant à recevoir les octets restants de la réponse du serveur.
Démultiplexage
Le démultiplexage sélectionne la socket applicative de réception d’un segment de transport entrant à l’aide du protocole et des informations sur les extrémités.
L’hôte envoie une réponse DNS à la socket qui a fait la demande plutôt que de la placer dans le flux d’un navigateur.
Durée de vie maximale d’un segment
La durée de vie maximale d’un segment est une limite supérieure utilisée pour déterminer combien de temps un segment TCP peut rester dans le réseau avant d’expirer.
TIME_WAIT utilise deux fois la MSL pour laisser expirer l’ancien trafic de la connexion et permettre la répétition de l’ACK final.

E

Encapsulation
L’encapsulation place l’unité de données d’une couche dans l’unité d’une autre couche, avec un nouvel en-tête qui décrit les informations d’acheminement de cette dernière.
IP encapsule un segment de transport en ajoutant l’en-tête IP utilisé pour l’acheminer vers l’hôte de destination.
Espace des numéros de séquence
Un espace des numéros de séquence est l’ensemble fini des identifiants de paquets ou d’octets disponibles, réutilisés de façon cyclique après le dépassement de leur valeur maximale.
Avec des numéros de paquet de trois bits, le numéro après 6 est 7 et la valeur après 7 est 0.
Expiration prématurée du délai d’attente
Une expiration prématurée du délai d’attente se produit lorsqu’un émetteur réessaie avant que la confirmation d’une transmission initiale réussie ait eu le temps de revenir.
Le récepteur rejette les données de la copie de remplacement inutile, mais l’acquitte à nouveau pour permettre à l’émetteur de poursuivre.

É

Écart lissé du temps aller-retour (DevRTT)
L’écart lissé du temps aller-retour mesure de façon lissée l’écart entre les mesures récentes du temps aller-retour et l’estimation précédente ; il sert à fixer la marge du délai de retransmission.
Un délai de chemin fluctuant augmente la marge liée à l’écart même lorsque son temps aller-retour moyen ne change que légèrement.
Échéance de lecture
Une échéance de lecture est l’instant auquel un bloc audio ou vidéo reçu doit être disponible au plus tard pour sa présentation prévue.
Un bloc audio manquant récupéré après son instant de lecture ne peut pas combler le manque que l’auditeur a déjà entendu.

F

Fenêtre de réception
La fenêtre de réception est la capacité annoncée par le récepteur pour les données TCP en attente d’acquittement ; elle change à mesure que les données arrivent et que l’application lit les données stockées.
Si la fenêtre annoncée est de 10000 octets et que 4000 sont déjà en attente d’acquittement, seuls 6000 octets supplémentaires peuvent être envoyés.
Fenêtre du récepteur
Dans la répétition sélective, une fenêtre du récepteur est la plage de numéros de séquence actuellement acceptables pour de nouvelles données, à partir de la base de livraison.
Un paquet situé au-delà d’un manque peut être accepté si son numéro se trouve dans la fenêtre actuelle du récepteur en répétition sélective.
Fenêtre glissante
Une fenêtre glissante est une plage mobile de numéros de séquence qui limite les paquets pouvant être en attente d’acquittement ou acceptables à un instant donné.
Un ACK GBN qui fait avancer la fenêtre libère une position à son extrémité droite pour l’envoi d’un nouveau paquet.
Flux d’octets
Un flux d’octets est une suite ordonnée d’octets sans limites de messages applicatifs intégrées, telle que celle livrée par TCP à son récepteur.
Une lecture peut renvoyer des octets provenant de plusieurs écritures antérieures ; l’application vérifie donc ses propres limites de message.

G

Go-Back-N
Go-Back-N est un protocole de transfert fiable en pipeline avec des ACK cumulatifs, un temporisateur pour le plus ancien paquet et un récepteur qui n’accepte les paquets que dans l’ordre.
Un paquet manquant entraîne le rejet des paquets ultérieurs arrivés dans le désordre, puis leur renvoi après l’expiration du délai.

I

Inondation SYN
Une inondation SYN est une attaque qui envoie de nombreuses demandes d’ouverture de connexion sans terminer leurs négociations, ce qui consomme les ressources du serveur.
Une file de demandes inachevées peut empêcher un serveur d’accepter les connexions de clients légitimes.

L

Limite de message
Une limite de message sépare un message applicatif d’un autre ; UDP préserve ces séparations tandis que TCP transporte un flux d’octets sans délimitation des messages.
Deux envois UDP créent deux messages : le récepteur ne les réunit donc pas en un seul message UDP.

M

Mise à l’échelle de la fenêtre
La mise à l’échelle de la fenêtre multiplie les champs de fenêtre TCP ultérieurs par une puissance de deux négociée à l’établissement, ce qui permet des fenêtres de réception supérieures à 65535 octets.
Un décalage d’échelle de 3 interprète une valeur de champ ultérieure de 12000 comme une fenêtre annoncée de 96000 octets.
Mise en mémoire tampon des données reçues dans le désordre
La mise en mémoire tampon des données reçues dans le désordre stocke les données valides reçues au-delà d’un manque jusqu’à l’arrivée des données antérieures manquantes, afin que la livraison ordonnée puisse reprendre.
Une fois que le paquet 4 comble le manque, les paquets 5 et 6 en mémoire tampon peuvent être livrés sans nouvelle transmission.
Multiplexage
Le multiplexage recueille les données sortantes de plusieurs sockets applicatives et ajoute des informations de transport afin que le trafic puisse partager le réseau.
Un hôte envoie le trafic du navigateur et celui de la messagerie par la même interface, avec des informations de port différentes.

N

Négociation en trois temps
La négociation en trois temps est l’échange TCP de SYN, SYN-ACK et ACK qui établit l’état des extrémités et confirme les deux numéros de séquence initiaux.
L’ACK final confirme le SYN du serveur et peut transporter en même temps les premières données applicatives du client.
Numéro d’acquittement
Un numéro d’acquittement TCP identifie le prochain octet attendu du correspondant et confirme tous les octets qui le précèdent dans le flux continu.
ACK 4001 confirme les octets jusqu’à 4000 inclus même si le récepteur a aussi mis en mémoire tampon des données au-delà d’un manque ultérieur.
Numéro de port
Un numéro de port est un identifiant de transport de 16 bits qui aide à sélectionner une extrémité applicative sur un hôte ; TCP et UDP possèdent des espaces de ports distincts.
Un service DNS peut recevoir des requêtes sur le port UDP 53 et écouter aussi les connexions TCP sur le port 53.
Numéro de séquence
Le numéro de séquence d’un segment de données TCP identifie son premier octet de données dans le flux de ce sens, avec une arithmétique modulo 2^32.
Un segment de 700 octets commençant à 2001 est suivi de nouvelles données commençant à 2701 lorsqu’aucun drapeau de contrôle n’intervient.
Numéro de séquence initial
Un numéro de séquence initial est le numéro TCP de départ choisi par une extrémité et porté dans son SYN avant le début des données applicatives.
Lorsque SYN utilise 27000, le premier octet applicatif utilise normalement le numéro de séquence 27001.

O

Option TCP
Une option TCP est une information d’en-tête de longueur variable qui étend l’en-tête fixe, comme la MSS, la mise à l’échelle de la fenêtre, les horodatages ou les acquittements sélectifs.
Une option d’horodatage allonge l’en-tête et réduit l’espace de charge utile dans un datagramme IP de taille fixe.

P

PAWS
La protection contre le rebouclage des numéros de séquence utilise les horodatages TCP pour rejeter les segments périmés lorsque les numéros d’octets réutilisés pourraient à eux seuls paraître actuels.
Une connexion rapide peut parcourir ses numéros d’octets de 32 bits avant qu’une ancienne copie retardée ait disparu.
Port éphémère
Un port éphémère est un port local temporaire généralement choisi par le système d’exploitation pour la communication réseau d’un client.
La requête du client utilise le port source temporaire 55120, et la réponse utilise cette valeur comme port de destination.
Principe de bout en bout
Le principe de bout en bout place la vérification d’une propriété requise sur tout le chemin aux extrémités capables de vérifier si cette propriété est respectée.
Une somme de contrôle de transport vérifie les données reçues même lorsque les liaisons individuelles possèdent leurs propres vérifications des erreurs.
Produit débit-délai
Le produit débit-délai est le débit d’une liaison ou d’un chemin multiplié par le temps aller-retour ; il estime les données en vol nécessaires pour soutenir ce débit.
Un chemin à 100 Mbit/s avec un temps aller-retour de 0,1 s nécessite environ 10 millions de bits, soit 1,25 Mo, en vol pour rester occupé.
Protocole du bit alterné
Le protocole du bit alterné utilise les numéros de séquence 0 et 1 avec l’arrêt et attente, des acquittements et un temporisateur pour gérer les erreurs et les pertes.
Après la perte d’un ACK, un numéro de paquet répété permet au récepteur d’éviter de livrer deux fois les mêmes données.
Pseudo-en-tête
Un pseudo-en-tête regroupe des informations d’adressage IP et de protocole incluses dans le calcul d’une somme de contrôle de transport, sans devenir un en-tête de transport supplémentaire.
La somme de contrôle UDP inclut les informations d’adressage de destination ainsi que l’en-tête UDP et les données.

Q

Quadruplet
Le quadruplet d’une connexion TCP est la combinaison de son adresse IP source, de son port source, de son adresse IP de destination et de son port de destination.
Deux connexions à un même serveur web restent distinctes lorsque leurs clients utilisent des adresses source différentes.
QUIC
QUIC est un protocole de transport sécurisé sur UDP qui fournit des flux fiables et un contrôle de congestion, et transporte le trafic HTTP/3.
Une connexion web utilisant HTTP/3 obtient un acheminement fiable grâce à QUIC, même si UDP lui-même ne fournit aucune récupération.

R

Rebouclage des numéros de séquence
Le rebouclage des numéros de séquence réutilise le plus petit numéro après la plus grande valeur d’un espace de séquence fini, ce qui exige des règles de comparaison cyclique.
Après que TCP a utilisé les 2^32 valeurs d’octets, les numéros se répètent même si la connexion peut continuer à transporter des données.
Recul exponentiel
Le recul exponentiel double le délai de retransmission actuel après son expiration, augmentant l’attente entre les tentatives échouées répétées.
Des expirations successives peuvent faire passer un intervalle d’attente de 1 s à 2 s, puis à 4 s.
Réinitialisation
Une réinitialisation TCP est un segment dont RST est activé et qui refuse ou interrompt brutalement une connexion au lieu de mener à terme un échange ordonné de FIN.
Un SYN envoyé à un port TCP sans socket d’écoute reçoit normalement une réinitialisation de l’hôte de destination.
Répétition sélective
La répétition sélective est un protocole de transfert fiable avec des ACK individuels par paquet, des temporisateurs logiques par paquet et une mise en mémoire tampon des données reçues dans le désordre chez le récepteur.
Si seul le délai du paquet 7 expire, son émetteur peut remplacer 7 sans renvoyer les paquets acquittés avec succès.
Report circulaire de retenue
Le report circulaire de retenue ajoute tout dépassement au-delà du bit de poids fort d’un mot à ses positions de poids faible lors d’une addition en complément à un.
L’addition de FFFF et 0001 donne 10000 avant le report, puis 0001 après l’ajout de la retenue.
Retransmission automatique sur demande
La retransmission automatique sur demande est une méthode de récupération pour le transfert fiable qui combine la détection des erreurs, le retour du récepteur et des transmissions de remplacement.
Après qu’un NAK a signalé une altération, l’émetteur utilise sa copie stockée du paquet pour effectuer une nouvelle transmission.
Retransmission rapide
Dans l’algorithme de base, la retransmission rapide renvoie le segment TCP présumé manquant après trois acquittements dupliqués, sans attendre l’expiration du délai.
Les segments ultérieurs arrivant au-delà d’un manque fournissent un retour qui permet à l’émetteur d’agir avant l’expiration de son temporisateur.

S

Segment
Un segment est une unité de la couche transport contenant un en-tête de transport et des données applicatives, transportée dans un datagramme IP.
Un émetteur TCP ajoute un en-tête à un bloc d’octets d’un fichier avant de transmettre le segment à la couche IP.
Socket
Une socket est une interface d’extrémité par laquelle un processus applicatif envoie des données sur un réseau et en reçoit.
Un serveur TCP conserve une socket d’écoute pendant que les clients acceptés communiquent par des sockets de connexion.
Somme de contrôle Internet
La somme de contrôle Internet est le complément bit à bit d’une somme en complément à un de mots de 16 bits, après report des retenues ; elle sert à détecter les erreurs de transmission.
Un hôte récepteur inclut la somme de contrôle dans la somme avec report et vérifie si le résultat ne contient que des uns.
Sonde de fenêtre nulle
Une sonde de fenêtre nulle est une petite transmission de l’émetteur qui provoque une réponse indiquant la fenêtre actuelle du récepteur pendant que l’envoi ordinaire de nouvelles données est en pause.
Le sondage permet à un émetteur de découvrir que de l’espace s’est libéré si la mise à jour de fenêtre précédente du récepteur a été perdue.
Syndrome de la fenêtre stupide
Le syndrome de la fenêtre stupide est un transfert inefficace en de nombreux segments TCP minuscules, souvent favorisé par de très petites écritures ou augmentations de fenêtre annoncées.
Annoncer quelques octets nouvellement libérés à la fois peut faire dominer la surcharge des en-têtes sur les données utiles.

T

Taille maximale de segment
La taille maximale de segment est la plus grande charge utile de données applicatives annoncée pour les segments TCP, hors en-têtes de transport et réseau.
Un datagramme IPv4 de 1500 octets avec deux en-têtes de 20 octets laisse 1460 octets pour les données applicatives.
Taux d’utilisation de l’émetteur
Le taux d’utilisation de l’émetteur est la proportion du temps écoulé pendant laquelle un émetteur place activement les bits des paquets sur sa liaison sortante.
Un taux d’utilisation de 0,1 signifie que l’émetteur transmet pendant un dixième du temps mesuré et attend pendant le reste.
TCP
TCP est un protocole de transport orienté connexion qui fournit un flux d’octets fiable, ordonné et en duplex intégral entre deux extrémités applicatives.
L’application reçoit un seul flux ordonné même lorsque les datagrammes IP sont arrivés dans un ordre différent.
Temps aller-retour estimé (EstimatedRTT)
Le temps aller-retour estimé est l’estimation lissée de TCP, actualisée en pondérant l’ancienne estimation et chaque nouvelle mesure valide.
Utiliser un poids de 1/8 pour une nouvelle mesure modifie moins l’estimation à cause d’un ACK retardé que si cette mesure la remplaçait entièrement.
Temps aller-retour mesuré (SampleRTT)
Le temps aller-retour mesuré est l’intervalle entre l’envoi de données et la réception d’un ACK qui les couvre, à condition que la mesure du temps soit sans ambiguïté.
Sans horodatage, un ACK couvrant des données retransmises ne peut pas révéler quelle copie a déclenché la réponse.
TIME_WAIT
TIME_WAIT est un état de fermeture TCP qui conserve les informations de connexion pour répéter l’ACK final et laisser expirer les anciens segments.
Si l’ACK final est perdu, l’extrémité qui a fermé en premier peut encore répondre à un FIN retransmis par le correspondant.
Transfert fiable de données
Le transfert fiable de données livre des données applicatives correctes, dans l’ordre, sans perte ni doublon, grâce à une récupération au-dessus d’un canal non fiable.
Un paquet de remplacement répare une transmission échouée sans créer de seconde copie dans les données livrées.
Transmission en pipeline
La transmission en pipeline permet à plusieurs paquets de données de rester non acquittés simultanément, en utilisant la liaison pendant que les paquets précédents attendent un retour.
Un émetteur peut lancer un deuxième paquet avant que l’ACK du premier ait terminé son aller-retour.

U

UDP
UDP est un protocole de transport sans connexion qui transporte des messages distincts en utilisant les ports pour leur acheminement et un champ de somme de contrôle Internet.
Un client DNS peut envoyer sa requête UDP initiale sans échanger d’abord des messages d’établissement de transport.

À 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