TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP

Diagnostiquer les options TCP SACK, DSACK et sack_perm dans les PCAP Wireshark. Couvre les accusés de réception sélectifs, la récupération de perte de paquets, la réorganisation, les ACK en double et les retransmissions parasites.

sac TCP, dsack, accusé de réception sélectif, sac en double, perte de paquets, reordering, analyse pcap

L'analyse de la retransmission TCP devient beaucoup plus précise lorsque l'accusé de réception sélectif est disponible. Les utilisateurs recherchent « TCP SACK pcap », « DSACK Wireshark », « dupliquer SACK », « retransmission parasite », « réorganisation TCP contre perte de paquets » et « capture sélective de paquets ACK » lorsqu'une trace montre des ACK en double, des retransmissions et des paquets dans le désordre, mais la cause première n'est pas claire.

La chirurgie PCAP est utile car la preuve SACK est contenue dans les options TCP. Si vous supprimez les mauvais paquets, perdez la poignée de main ou séparez les ACK des données, le diagnostic devient plus faible.

Ce que SACK ajoute

Les ACK TCP traditionnels reconnaissent le prochain octet attendu. Si un segment est manquant mais que des segments ultérieurs arrivent, le récepteur ne peut que continuer à accuser l'écart.

SACK laisse le récepteur dire : "Il me manque toujours cette plage antérieure, mais j'ai reçu ces plages ultérieures."

Cela permet de distinguer :

  • Perte réelle de paquets.
  • Livraison hors commande.
  • Paquets en double.
  • Comportement du récepteur.
  • Comportement de récupération de l'expéditeur.

SACK doit être négocié

La capacité SACK est négociée dans le SYN et le SYN-ACK. Si la capture démarre après la poignée de main, vous ne savez peut-être pas si SACK a été autorisé.

Conservez toujours :

  • SYN.
  • SYN-ACK.
  • Option SACK autorisée.
  • Option d'échelle de fenêtre.
  • Option d’horodatage si présente.

C'est pourquoi un « petit pcap autour de la retransmission » peut s'avérer insuffisant.

Dupliquer des ACK avec des blocs SACK

Les ACK en double ne signifient pas tous la même chose. Un ACK en double avec des blocs SACK peut indiquer à l'expéditeur exactement quelles plages d'octets ultérieures sont arrivées.

Preuves à inspecter :

  • Numéro ACK.
  • SACK bord gauche et bord droit.
  • Blocs SACK répétés.
  • Nouvelles informations SACK.
  • Si les données manquantes apparaissent ultérieurement.
  • La retransmission comble-t-elle le vide?

C’est bien plus efficace que de simplement compter les ACK en double.

Perte de paquets ou réorganisation

Si un segment arrive en retard mais n'est pas perdu, SACK peut indiquer que des données ultérieures ont déjà été reçues. L'expéditeur peut retransmettre, puis le paquet d'origine peut également arriver. Cela peut paraître compliqué.

Questions :

  • Le segment original est-il arrivé en retard ?
  • La retransmission est-elle arrivée en premier ?
  • DSACK a-t-il signalé ultérieurement des données en double ?
  • Existe-t-il un chemin qui réorganise les paquets ?
  • Les salves traversent-elles plusieurs liens, tunnels ou chemins à charge équilibrée ?

La chirurgie PCAP peut aider à isoler la plage de séquences exacte et à comparer l’ordre des paquets.

Ce que signifie DSACK

Duplicate SACK peut signaler que des données en double ont été reçues. Ceci est utile pour identifier les retransmissions parasites ou les réorganisations.

Les preuves DSACK peuvent suggérer :

  • L'expéditeur a retransmis inutilement.
  • Le réseau a livré les données originales en retard.
  • Le point de capture a vu des doublons.
  • Le récepteur a obtenu à la fois les octets d'origine et les octets retransmis.
  • Paquets dupliqués par la Middlebox.

C'est une conclusion différente de « le paquet a été perdu ».

Retransmissions parasites

Une retransmission n'est pas toujours une preuve de perte. Il peut être déclenché par :

  • Reordering.
  • Comportement ACK retardé.
  • Capturez les artefacts de déchargement.
  • Délai de retransmission trop court.
  • Compression ACK.
  • Calendrier de virtualisation.
  • Asymétrie du chemin.

SACK et DSACK aident à prouver si les données étaient réellement manquantes ou simplement en retard.

Le point de capture est important

Si le pcap est unilatéral ou pris derrière un NAT, l'interprétation de SACK peut être délicate. Un paquet peut être absent de votre point de capture mais présent chez le récepteur.

Pratique utile :

  • Comparez les captures côté expéditeur et côté récepteur.
  • Gardez les horodatages synchronisés.
  • Conserver les numéros de séquence.
  • Évitez de supprimer les paquets ACK uniquement.
  • Notez l’emplacement de déchargement et de capture.

L'analyse SACK sans paquets ACK n'est pas une analyse.

Liste de contrôle de débogage

Utilisez ce flux de travail :

  1. Conservez la poignée de main TCP.
  2. Confirmez que SACK est autorisé.
  3. Recherchez le premier ACK en double.
  4. Décodez les blocs SACK.
  5. Mappez les plages SACK aux paquets de données.
  6. Identifiez les plages de séquences retransmises.
  7. Vérifiez DSACK.
  8. Séparez la perte de la réorganisation.
  9. Vérifiez le point de capture et le contexte de déchargement.
  10. Conservez les paquets avant/après autour de l’événement de récupération.

Diagnostic final

TCP SACK et DSACK fournissent des preuves précises de la perte de paquets, de la réorganisation, de la livraison en double et des retransmissions parasites. La clé est de préserver les options de prise de contact, les paquets ACK uniquement, les blocs SACK et les plages de séquences retransmises.

PCAP Surgery aide à conserver ces preuves intactes afin que l’analyse des pertes TCP puisse aller au-delà des décomptes génériques d’ACK en double.

<!-- pcap-localized-evidence-foundation-v1:start -->

Réponse fondée sur les paquets pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP »

La réponse directe est qu’un label d’analyse ou un message applicatif ne suffit pas à désigner la cause. Commencez par le point de capture et la direction, puis prouvez la dernière frontière réussie et la première en échec. Pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP », un autre lecteur doit retrouver le packet, le trou ou l’intervalle soutenant chaque phrase et savoir quel élément pourrait la réfuter.

Placer la capture sur le chemin

Consignez client, serveur et tout proxy, load balancer, NAT ou firewall. Indiquez interface, lieu, horloge, système et directions visibles. Une capture côté client prouve ce qui y arrive, pas que le serveur n’a rien envoyé. Côté serveur, elle prouve la sortie à cet endroit, pas le trajet. Avant de comparer deux points, corrigez clock offset et alignez flow tuple, TCP sequence ou transaction ID.

Vérifiez snap length, dropped packets, offload, capture filter, ring buffer et heure de départ. Un mauvais checksum sur l’hôte peut être un offload artifact. Un grand segment peut venir de GRO/TSO sans exister ainsi sur le fil. Un packet absent d’un fichier limité n’est pas une network loss tant que le point devait réellement le voir.

Lire les frontières dans l’ordre

Frontière Preuve de réussite Preuve d’échec utile
Link et IP direction, adresses et route cohérentes ARP/NDP absent, ICMP, MTU, asymétrie
TCP SYN, SYN-ACK, ACK et sequence retransmission, RST, zero window, timeout
TLS ClientHello, ServerHello et progression alert ou frontière SNI/ALPN/certificate
Application request complet et réponse associée status, trou ou fermeture précoce
Usage response time ou failure window blocage lié à une frontière

Arrêtez-vous à la première frontière sans réussite. Si TCP n’est pas établi, ne commencez pas par HTTP. Si le request atteint le proxy mais pas l’upstream, la limite se situe dans le proxy ou son chemin. S’il atteint l’upstream sans response avant timeout, ACK et progression des bytes séparent application delay et network loss.

Séparer observation et hypothèse

Une observation est pointable : « Le client a envoyé jusqu’à une sequence, l’émetteur a répété un segment trois fois et aucun ACK progressif n’apparaît ici. » L’hypothèse est : « le chemin a perdu le segment ». Une autre capture ou des dropped records peuvent la réfuter. Pour chaque hypothèse, écrivez une preuve favorable et une preuve contraire.

Retransmission ou duplicate ACK ne désigne pas le responsable. Reordering, loss, capture artifact et receiver delay peuvent produire des labels proches. Reliez direction, sequence, ACK, SACK, RTT, window et temps applicatif. Pour DNS/DHCP, associez transaction ID, adresses et essais ; pour HTTP, request et response ; pour TLS, direction du handshake.

Préserver l’original

Calculez le checksum et gardez l’original inchangé. Filtrez, coupez et masquez une working copy. Journalisez input, transformation, heure, packet count avant/après, checksum résultat et motif. Après timestamp rewrite ou suppression de packets, cette copie ne convient plus à certaines mesures de temps ou de séquence.

Remplacez adresses et identifiants de façon stable pour suivre le même endpoint. Ne retirez pas ports, directions ou longueurs nécessaires. Gardez la table secrète séparée. Consultez les limites de capture et d’export et le parcours PCAP Surgery.

QA avant publication

Titre et réponse traitent-ils le même flow ? Chaque durée cite-t-elle horloge et points ? La première frontière défaillante est-elle claire ? Une alternative est-elle testée ? Une seule variable change-t-elle ? L’original subsiste-t-il ? Limitez la conclusion : « Cette capture prouve le comportement côté client pendant cet intervalle, pas l’exécution interne du serveur. »

Le terme Semrush validé PCAP analyzer reste la propriété exclusive du produit. Cet article ne revendique ni volume ni KD non mesurés.

<!-- pcap-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->

Réponse directe et limite d’acceptation

La réponse courte à « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP » est la suivante : Diagnostiquer les options TCP SACK, DSACK et sack_perm dans les PCAP Wireshark. Couvre les accusés de réception sélectifs, la récupération de perte de paquets, la réorganisation, les ACK en double et les retransmissions parasites. Considérez cette phrase comme un résultat à vérifier, et non comme une promesse valable pour toute entrée, tout appareil, tout projet ou tout environnement. Un résultat complet consigne l’état initial, l’action exacte, la sortie visible et la condition qui prouve la fin de la tâche dans PCAP Surgery.

Procédure fondée sur les preuves

Commencez par un cas petit et répétable avant de modifier un projet complet. Notez version de l’application, système, identité de l’entrée ou de l’appareil, réglages pertinents et résultat attendu. Exécutez une action volontaire, conservez la première transition inattendue et comparez-la à un cas nominal si possible. Plusieurs changements simultanés masquent la condition qui a créé ou corrigé le problème.

Point de contrôle 1 : TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sackperm et

Traitez « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP » comme une porte d’acceptation distincte pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP ». Consignez l’état avant l’action, le premier changement visible et l’état final. Si le résultat diffère de l’objectif décrit, revenez au dernier point confirmé au lieu de poursuivre sur des hypothèses.

Point de contrôle 2 : Diagnostiquer les options TCP SACK, DSACK et sackperm dans les PCAP Wireshark. Couvre les

Transformez « Diagnostiquer les options TCP SACK, DSACK et sack_perm dans les PCAP Wireshark. Couvre les accusés de réception sélectifs, la récupération de perte de » en critère réussite/échec reproductible. Indiquez ce qui doit être présent, absent et quelle reprise reste sûre. Conservez le projet ou la capture d’origine jusqu’à ce que la copie corrigée réussisse le même contrôle.

Point de contrôle 3 : Ce que SACK ajoute

Traitez « Ce que SACK ajoute » comme une porte d’acceptation distincte pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP ». Consignez l’état avant l’action, le premier changement visible et l’état final. Si le résultat diffère de l’objectif décrit, revenez au dernier point confirmé au lieu de poursuivre sur des hypothèses.

Point de contrôle 4 : SACK doit être négocié

Transformez « SACK doit être négocié » en critère réussite/échec reproductible. Indiquez ce qui doit être présent, absent et quelle reprise reste sûre. Conservez le projet ou la capture d’origine jusqu’à ce que la copie corrigée réussisse le même contrôle.

Point de contrôle 5 : Dupliquer des ACK avec des blocs SACK

Traitez « Dupliquer des ACK avec des blocs SACK » comme une porte d’acceptation distincte pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP ». Consignez l’état avant l’action, le premier changement visible et l’état final. Si le résultat diffère de l’objectif décrit, revenez au dernier point confirmé au lieu de poursuivre sur des hypothèses.

Point de contrôle 6 : Perte de paquets ou réorganisation

Transformez « Perte de paquets ou réorganisation » en critère réussite/échec reproductible. Indiquez ce qui doit être présent, absent et quelle reprise reste sûre. Conservez le projet ou la capture d’origine jusqu’à ce que la copie corrigée réussisse le même contrôle.

Point de contrôle 7 : Ce que signifie DSACK

Traitez « Ce que signifie DSACK » comme une porte d’acceptation distincte pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP ». Consignez l’état avant l’action, le premier changement visible et l’état final. Si le résultat diffère de l’objectif décrit, revenez au dernier point confirmé au lieu de poursuivre sur des hypothèses.

Point de contrôle 8 : Retransmissions parasites

Transformez « Retransmissions parasites » en critère réussite/échec reproductible. Indiquez ce qui doit être présent, absent et quelle reprise reste sûre. Conservez le projet ou la capture d’origine jusqu’à ce que la copie corrigée réussisse le même contrôle.

Point de contrôle 9 : Le point de capture est important

Traitez « Le point de capture est important » comme une porte d’acceptation distincte pour « TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sack_perm et la retransmission dans les PCAP ». Consignez l’état avant l’action, le premier changement visible et l’état final. Si le résultat diffère de l’objectif décrit, revenez au dernier point confirmé au lieu de poursuivre sur des hypothèses.

Point de contrôle 10 : Liste de contrôle de débogage

Transformez « Liste de contrôle de débogage » en critère réussite/échec reproductible. Indiquez ce qui doit être présent, absent et quelle reprise reste sûre. Conservez le projet ou la capture d’origine jusqu’à ce que la copie corrigée réussisse le même contrôle.

Matrice d’acceptation

Point Preuve à conserver Critère de réussite
TCP SACK et DSACK dans Wireshark : diagnostiquer la perte de paquets, l'option sackperm et la retransmission dans les PC État initial, une action et état obtenu Une seconde personne reproduit le résultat
Diagnostiquer les options TCP SACK, DSACK et sackperm dans les PCAP Wireshark. Couvre les accusés de réception sélectifs État initial, une action et état obtenu Une seconde personne reproduit le résultat
Ce que SACK ajoute État initial, une action et état obtenu Une seconde personne reproduit le résultat
SACK doit être négocié État initial, une action et état obtenu Une seconde personne reproduit le résultat
Dupliquer des ACK avec des blocs SACK État initial, une action et état obtenu Une seconde personne reproduit le résultat
Perte de paquets ou réorganisation État initial, une action et état obtenu Une seconde personne reproduit le résultat

Isolation, reprise et transmission

Arrêtez-vous à la première limite en échec. Conservez source, projet, session ou capture, dupliquez avant toute modification destructive et changez une variable par essai. Rejouer un flux entier après plusieurs changements peut modifier le résultat sans expliquer pourquoi.

Distinguez absence de preuve et preuve d’absence. Une vue vide peut signaler mauvaise entrée, portée, filtre, permission, appareil, période ou état du projet. Vérifiez acquisition ou import avant d’interpréter décodeur, éditeur, rapport ou export.

Avant transmission, rouvrez l’artefact durable et inspectez début, point de décision et fin. Notez version, plateforme, configuration, attente, observation et reproduction minimale. Retirez ou masquez les données sensibles et confirmez l’autorisation du destinataire.

Questions et réponses

Quelle est la manière fiable la plus rapide de commencer ?

Utilisez le plus petit cas représentatif, écrivez le résultat attendu et ne changez qu’une variable. Validez le parcours de base avant d’ajouter filtres, effets, modifications, automatisation ou grande source.

Quelles preuves faut-il conserver ?

Gardez identité de l’entrée, version, plateforme, réglages, action exacte, première transition inattendue et sortie finale. Fermez puis rouvrez projet, session, rapport ou export avant de le considérer durable.

Quand faut-il répéter la procédure ?

Répétez-la après un changement pertinent d’application, système, pilote, firmware, modèle, source ou processus. Conservez le cas accepté précédent comme référence non modifiée.

Quand le résultat est-il transmissible ?

Lorsqu’une seconde personne autorisée identifie l’entrée, répète l’action, obtient le même résultat, comprend les limites et ouvre l’artefact sans état local non documenté.

Guides associés

Ces pages dans la même langue couvrent les étapes voisines sans changer le propriétaire canonique du sujet :

<!-- multilingual-blog-closeout:end -->