Análise PCAP de perda de pacotes: retransmissões, ACKs duplicados e onde os pacotes desapareceram
Como usar capturas de pacotes para diagnosticar perda de pacotes, retransmissões TCP, ACKs duplicados, polarização de ponto de captura e se a perda ocorreu na rede ou no host.
A perda de pacotes é um dos tópicos de solução de problemas de rede mais pesquisados porque os sintomas são amplos: "downloads lentos, vídeo congelado, uploads com falha, qualidade VoIP ruim, fluxos RTSP quebrados, retransmissões TCP, atraso no jogo, instabilidade da VPN e tempos limite de HTTP. Os usuários procuram por "análise de perda de pacotes pcap", "significado de retransmissão TCP", "ACK duplicado Wireshark" e "como encontrar perda de pacotes no pcap" porque precisam de provas, não de suposições." Uma captura de pacote pode ser muito útil, mas somente se você interpretá-la com cuidado. Uma retransmissão em uma captura não prova automaticamente que a rede descartou um pacote. Pode provar que o ponto de captura não viu um pacote, o remetente retransmitiu porque não recebeu um ACK ou o receptor viu dados fora de ordem.
A cirurgia PCAP é útil neste fluxo de trabalho porque as investigações de perda de pacotes geralmente exigem o corte de uma captura grande para uma conversa, preservando carimbos de data e hora, comparando pontos de captura e mantendo intactas as evidências do número de sequência.
Como é a perda de pacotes no TCP
O TCP tenta se recuperar da perda. Nas capturas de pacotes, isso pode aparecer como:
- Retransmissions
- Retransmissões rápidas
- ACKs duplicados
- Pacotes fora de ordem
- Blocos ACK seletivos
- Lacunas nos números de sequência
- Longos atrasos antes da retomada dos dados
- Rendimento reduzido após perda
A captura pode rotular um pacote como retransmissão, mas o rótulo é uma interpretação. A evidência subjacente são números de sequência, reconhecimentos, tempo e direção.
ACKs duplicados
Um ACK duplicado significa que o receptor está reconhecendo o mesmo número de sequência novamente. Isso geralmente acontece porque ele recebeu dados além de um segmento ausente e ainda está aguardando os bytes ausentes.
Exemplo:
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 -->Resposta por evidência de pacotes para “Análise PCAP de perda de pacotes: retransmissões, ACKs duplicados e onde os pacotes desapareceram”
A resposta direta é que label do analisador ou mensagem do aplicativo não determina causa. Comece por ponto de captura e direção, prove o último limite correto e o primeiro falho. Em “Análise PCAP de perda de pacotes: retransmissões, ACKs duplicados e onde os pacotes desapareceram”, outro revisor deve localizar packet, gap ou intervalo que sustenta cada frase e saber o que poderia refutá-la.
Colocar a captura no caminho
Registre client, server e proxy, load balancer, NAT ou firewall. Informe interface, local, clock, sistema e direções visíveis. Captura no client prova o que chegou ali, não que o server não enviou. Captura no server prova saída naquele ponto, não o caminho. Antes de comparar pontos, corrija clock offset e alinhe flow tuple, TCP sequence ou transaction ID.
Verifique snap length, dropped packets, offload, capture filter, ring buffer e início. Bad checksum no host pode ser offload artifact. Segmento grande pode ser GRO/TSO e não existir assim no fio. Packet ausente de arquivo limitado não vira network loss antes de provar que o ponto deveria vê-lo.
Ler limites em ordem
| Limite | Prova de sucesso | Prova de falha útil |
|---|---|---|
| Link/IP | direction, addresses e rota coerentes | ARP/NDP ausente, ICMP, MTU, assimetria |
| TCP | SYN, SYN-ACK, ACK e sequence | retransmission, RST, zero window, timeout |
| TLS | ClientHello, ServerHello e progresso | alert ou limite SNI/ALPN/certificate |
| Aplicação | request completo e response associado | status, gap ou close precoce |
| Usuário | response time ou failure window | stall ligado a limite |
Pare no primeiro limite sem sucesso. Se TCP não completa, não comece por HTTP. Se request chega ao proxy e não ao upstream, o limite está no proxy ou caminho. Se chega ao upstream sem response antes de timeout, ACK e avanço de bytes separam application delay de network loss.
Separar observação e hipótese
Observação pode ser apontada: “Client enviou até certa sequence, sender repetiu segmento três vezes e não apareceu ACK avançado neste ponto”. A hipótese é “o caminho perdeu o segmento”. Outra captura ou dropped records podem refutá-la. Para cada hipótese registre prova a favor e contrária.
Retransmission e duplicate ACK não definem culpado. Reordering, loss, capture artifact e receiver delay criam labels parecidos. Relacione direction, sequence, ACK, SACK, RTT, window e tempo da aplicação. Em DNS/DHCP alinhe transaction ID e tentativas; em HTTP request/response; em TLS direção do handshake.
Preservar original
Calcule checksum e não altere o original. Filtre, recorte e redija working copy. Registre input, transformação, hora, packet count antes/depois, checksum e razão. Após timestamp rewrite ou exclusão de packets, a cópia não suporta certas conclusões de timing ou sequence.
Troque addresses e identificadores por aliases constantes. Não remova port, direction ou length necessários. Separe o mapa secreto. Use limites de captura e export e visão geral PCAP Surgery.
QA antes de publicar
Título e resposta tratam do mesmo flow? Cada duração informa clock e pontos? Primeiro failure boundary está claro? Há alternativa? O teste muda uma variável? Original permanece? Limite a conclusão: “Este arquivo prova comportamento junto ao client no intervalo, não execução interna do server”.
O termo Semrush validado PCAP analyzer pertence somente ao produto. Este artigo não inventa volume ou KD.
<!-- pcap-localized-evidence-foundation-v1:end --><!-- pcap-localized-flow-verdicts-v1:start -->Livro de flow e teste de exclusão
Para “Análise PCAP de perda de pacotes: retransmissões, ACKs duplicados e onde os pacotes desapareceram”, crie uma linha por direção: endpoints com alias, primeiro/último packet, bytes enviados e reconhecidos, resets, retransmissions, requests e responses. Não una conexões pelo hostname; source port, início e initial sequence separam sessions. Com NAT ou proxy, registre a relação sem esperar iguais sequence ou ports.
Calcular TCP, não contar labels
Siga next expected sequence do receiver. Payload avança sequence pelo comprimento; SYN e FIN consomem número. Duplicate ACK fixo após segmentos superiores apoia loss ou reordering. SACK blocks mostram ranges recebidos, não local de perda. Retransmission no sender e ausente no receiver exige teste do caminho; original ausente no sender capture exige capture loss ou offload.
Separe fast retransmit após duplicate ACKs de RTO após silêncio. Compare RTT anterior, advertised window, zero-window probes, burst e tamanho. Overlap, spurious retransmission e capture no meio do flow mudam o label; não use quantidade de labels como loss.
Medir tempo por limites
Use request first byte, request complete, response first byte e response complete. TTFB não é server time automaticamente. Retransmission antes da response pode acrescentar network delay; request reconhecido e silêncio longo apoia application wait. Informe valor, unidade, clock e ponto.
Em dois pontos alinhe packet distinto nas duas direções, estime offset e use intervals internos. Se clock for incerto, dê range. Compare janelas boas e falhas com duração e load semelhantes.
Perguntas de protocolo
DNS: ID, nome, tipo e retry resolver. DHCP: Discover, Offer, Request e ACK do mesmo client identifier. TLS: última handshake message por direção e alert. HTTP: autor de 4xx/5xx e upstream flow. TCP close: sender de FIN/RST e bytes sem ACK.
Teste decisivo e entrega
Escolha duas hipóteses e um teste separador. Captura no outro extremo separa network loss de measurement loss; desativar offload em teste verifica artifact; request igual em path fixo verifica intermittency; log upstream versus packet boundary verifica application delay. Escreva resultados esperados antes.
Aceite quando reviewer repete cálculo com metadata e encontra limite e restrição iguais. Entregue checksum original/derived, filter, packet ranges e passos trim/redaction. Feche com owner, ação e condição mensurável.
Revisão de reprodução
Abra nova connection e repita três vezes com entradas e filtros iguais. Ports e initial sequence podem mudar, mas limite, direção e padrão devem repetir. Informe sucessos e falhas. Uma correção muda uma variável e deve gerar a mudança prevista nos packets, não apenas esconder a mensagem.
Abra a cópia derivada em outro sistema. O reviewer encontra aliases, clock, capture point, último sucesso, primeira falha e alternativa. Procure hostname, query, header e payload sensível depois de redaction, mantendo lengths e directions necessários. Liste o não testado: direção oposta, IPv6, reconnect ou outra carga.
Feche como provado no escopo, ainda reproduzível ou aberto por captura específica. “Rede corrigida” é amplo demais após um flow.
Controle contrário e confiança
Antes de fechar “{{TITLE}}”, escreva previsão contrária. Se network path causa o problema, qual padrão aparece nos dois pontos ao mover a captura? Se é server delay, request bytes ficam reconhecidos sem response? Expectativas anteriores evitam reinterpretar depois.
Ligue confiança à evidência. “Alta” exige repetição e dois pontos ou prova independente; “média”, captura completa com alternativa aberta; “baixa”, apenas label ou timing aproximado. Confiança não torna hypothesis um fact, mas ordena a próxima ação.
Para falha lenta ou intermitente, meça além do intervalo típico. Compare taxas: retransmissions por megabyte, falhas por connection e percentis de latency sob carga parecida. Registre idle, reconnect, DNS cache e TLS session reuse, pois mudam a segunda execução.
Entregue tabela de flow, timeline de cinco eventos, primeira diferença, teste de exclusão, resultado da correção e escopo não testado. Packet numbers apontam à cópia derivada e um mapa temporal volta ao original. O receptor deve repetir o veredito sem secrets ou sessão do autor.
Registro de versão e aprovação
Original, working copy e report recebem IDs diferentes. O manifest registra tamanho, packet count, capture start/end, checksum, ferramenta e versão. Novo export cria versão sem substituir a anterior. Preserve o filter real; “tráfego do server” não é reproduzível.
Ligue cada claim final a packet ou intervalo e marque observed, calculated ou inferred. Observed é field visível; calculated, conta sequence/tempo repetível; inferred, explicação a testar. Ao resumir, inferred não vira observed.
O reviewer registra nome, hora, resultado e questões abertas. Após corrigir, novo run começa do mesmo estado e preserva antes/depois. “Pass” vale para flow, direção, duração e carga declarados; o restante fica fora do escopo.
Confirme que a resposta curta responde ao título, a tabela preserva as duas direções e os links internos abrem a mesma locale. Registre data e reviewer da página rendered. Se houver fallback inglês ou seção ausente no HTML, corrija antes da submission. Verifique também mobile e desktop: heading, tabela e código devem permanecer legíveis sem esconder o veredito ou o aviso sobre capture point. Faça uma última verificação do canonical e dos links na página gerada, registrando status code, idioma e destino. Repita a busca por dados sensíveis no HTML final e no JSON-LD. Registre também qualquer redirect encontrado e confirme que não cria cadeia. A revisão final deve ficar assinada e datada.
<!-- pcap-localized-flow-verdicts-v1:end -->