Analyse PCAP de perte de paquets : retransmissions, ACK en double et emplacement des paquets disparus
Comment utiliser les captures de paquets pour diagnostiquer la perte de paquets, les retransmissions TCP, les ACK en double, la polarisation du point de capture et si une perte s'est produite sur le réseau ou l'hôte.
La perte de paquets est l'un des sujets de dépannage réseau les plus recherchés car les symptômes sont nombreux: "téléchargements lents, vidéo gelée, échecs de téléchargement, mauvaise qualité VoIP, flux RTSP interrompus, retransmissions TCP, décalage de jeu, instabilité VPN et délais d'attente HTTP. Les utilisateurs recherchent « analyse pcap de perte de paquets », « signification de la retransmission TCP », « ACK Wireshark en double » et « comment trouver la perte de paquets dans pcap » car ils ont besoin de preuves, pas de suppositions." Une capture de paquets peut prouver beaucoup de choses, mais seulement si vous l’interprétez attentivement. Une retransmission en une seule capture ne prouve pas automatiquement que le réseau a abandonné un paquet. Cela peut prouver que le point de capture n'a pas vu de paquet, que l'expéditeur a retransmis parce qu'il n'a pas reçu d'ACK ou que le destinataire a vu des données dans le désordre.
La chirurgie PCAP est utile dans ce flux de travail, car les enquêtes sur la perte de paquets nécessitent souvent de réduire une capture volumineuse à une seule conversation, de conserver les horodatages, de comparer les points de capture et de conserver intactes les preuves des numéros de séquence.
À quoi ressemble la perte de paquets dans TCP
TCP essaie de se remettre de la perte. Dans les captures de paquets, cela peut apparaître comme :
- Retransmissions
- Retransmissions rapides
- ACK en double
- Paquets hors service
- Blocs ACK sélectifs
- Lacunes dans les numéros de séquence
- Longs délais avant la reprise des données
- Débit réduit après perte
La capture peut étiqueter un paquet comme étant une retransmission, mais l'étiquette est une interprétation. Les preuves sous-jacentes sont les numéros de séquence, les accusés de réception, le timing et la direction.
ACK en double
Un ACK en double signifie que le récepteur reconnaît à nouveau le même numéro de séquence. Cela se produit généralement parce qu'il a reçu des données au-delà d'un segment manquant et qu'il attend toujours les octets manquants.
Exemple:
Sender -> Receiver: Seq 1000 Len 1000
Sender -> Receiver: Seq 2000 Len 1000
Sender -> Receiver: Seq 3000 Len 1000
Receiver -> Sender: ACK 2000
Receiver -> Sender: ACK 2000
Receiver -> Sender: ACK 2000
Sender -> Receiver: Retransmit Seq 2000 Len 1000
Retransmission timeout
When investigating, measure:
Capture point bias
Example:
Capture loss vs network loss
Signs of capture loss include:
TCP SACK evidence
Out-of-order is not always loss
When analyzing:
UDP packet loss
Checklist for packet loss PCAP analysis
Use this process:
Why edited capture files need care
Final diagnosis
<!-- pcap-localized-evidence-foundation-v1:start -->Réponse fondée sur les paquets pour « Analyse PCAP de perte de paquets : retransmissions, ACK en double et emplacement des paquets disparus »
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 « Analyse PCAP de perte de paquets : retransmissions, ACK en double et emplacement des paquets disparus », 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 --><!-- pcap-localized-flow-verdicts-v1:start -->Registre de flow et test d’exclusion
Pour « Analyse PCAP de perte de paquets : retransmissions, ACK en double et emplacement des paquets disparus », créez une ligne par direction : endpoints sous alias, premier/dernier packet, bytes envoyés et acquittés, resets, retransmissions, requests et responses. Ne fusionnez pas deux connexions à cause du hostname ; source port, début et initial sequence séparent les sessions. Avec NAT ou proxy, documentez la relation sans attendre les mêmes sequence ou ports.
Calculer TCP plutôt que compter les labels
Suivez la next expected sequence du receiver. Le payload avance sequence de sa longueur ; SYN et FIN consomment aussi un numéro. Un Duplicate ACK stable après des segments supérieurs soutient loss ou reordering. Les SACK blocks montrent les ranges reçus, pas le lieu de perte. Retransmission visible côté sender mais absente côté receiver appelle un test du segment intermédiaire ; original absent côté sender appelle capture loss ou offload.
Séparez fast retransmit après duplicate ACKs et RTO après silence. Comparez RTT antérieur, advertised window, zero-window probes, burst et taille. Chaque label n’est pas une perte : overlap, spurious retransmission ou capture au milieu du flow changent l’analyse.
Mesurer le temps par frontières
Utilisez request first byte, request complete, response first byte et response complete. TTFB n’est pas automatiquement le temps server. Retransmission avant response peut ajouter network delay ; request acquitté puis long silence soutient application wait. Donnez valeur, unité, clock et point.
Avec deux points, alignez un packet distinctif dans les deux directions, estimez offset puis utilisez les intervals internes. Si les clocks sont incertaines, fournissez une plage. Comparez fenêtres réussies et défaillantes de durée et charge proches.
Questions de protocole
DNS : ID, nom et type correspondent-ils, retry change-t-il resolver ou source port ? DHCP : Discover, Offer, Request et ACK appartiennent-ils au même client identifier ? TLS : dernier handshake message par direction et alert visible ou chiffré ? HTTP : qui génère 4xx/5xx, un upstream flow précède-t-il ? TCP close : qui envoie FIN/RST et quels bytes restent non acquittés ?
Test décisif et remise
Choisissez deux hypothèses et un test séparateur. Une capture à l’autre extrémité sépare network loss et measurement loss ; désactiver offload en test vérifie artifact ; request identique sur path fixe teste intermittency ; log upstream face à packet boundary teste application delay. Écrivez les résultats attendus avant.
La recette exige qu’un reviewer refasse le calcul depuis les metadata, trouve la même frontière et comprenne les limites. Livrez checksums original/dérivé, filter, packet ranges et étapes trim/redaction. Terminez par owner, action et condition mesurable.
Revue de reproductibilité
Ouvrez une nouvelle connection et répétez trois fois avec les mêmes entrées et filtres. Ports et initial sequence peuvent changer, mais frontière, direction et motif doivent se répéter. Rapportez succès et échecs. Une correction change une variable et doit produire la variation de packets prévue, pas seulement masquer le message.
Ouvrez la copie dérivée ailleurs. Le reviewer retrouve alias, clock, capture point, dernier succès, premier échec et alternative. Recherchez hostname, query, header et payload sensible après redaction, tout en gardant longueurs et directions utiles. Citez les éléments non testés : sens opposé, IPv6, reconnect ou autre charge.
Clôturez comme prouvé dans le périmètre, toujours reproductible ou ouvert faute d’une capture nommée. « Réseau corrigé » est trop large pour un seul flow.
Contrôle contraire et niveau de confiance
Avant de fermer « {{TITLE}} », écrivez une prédiction contraire. Si le network path est responsable, quel motif doit apparaître aux deux points lorsque la mesure se déplace ? Si c’est server delay, les request bytes restent-ils acquittés sans response ? Écrire les attentes avant le test évite une interprétation opportuniste.
Liez confiance et preuves. « Élevée » exige répétition plus deux points ou preuve indépendante ; « moyenne », une capture complète avec alternative ouverte ; « faible », un label ou timing approximatif. La confiance ne transforme pas hypothesis en fact, mais ordonne l’action suivante.
Pour un défaut lent ou intermittent, mesurez au-delà de l’intervalle habituel. Comparez des taux : retransmissions par mégaoctet, échecs par connection et percentiles de latency à charge comparable. Notez idle, reconnect, DNS cache et TLS session reuse, qui rendent le second essai différent.
La remise contient table de flow, timeline de cinq événements, première différence, test d’exclusion, résultat de correction et périmètre non testé. Les packet numbers visent la copie dérivée et une correspondance temporelle retourne à l’original. Le destinataire doit reproduire le verdict sans secrets ni session de l’auteur.
<!-- pcap-localized-flow-verdicts-v1:end -->