Diagnostique mensagens comuns do tcpdump e do Wireshark, como perda de pacotes, retransmissão e problemas de janela.
Contexto
tcpdump e Wireshark são ferramentas de análise de protocolos de rede. O Wireshark é compatível com Linux, Windows e macOS. Instâncias Linux na nuvem normalmente não possuem interface gráfica, portanto use o tcpdump para captura de pacotes nessas instâncias. Consulte Capturar pacotes de rede para instruções de instalação e uso.
Mensagens comuns do tcpdump
[Packet size limited during capture]
Sintoma: O pacote completo possui 171 bytes, mas apenas os primeiros 96 bytes foram capturados.
No. Time Source Destination Protocol Info
1 0.000000 Client Server TCP 48113-443 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PE
2 0.001482 Server Client TCP 443-48113 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1
3 0.001501 Client Server TCP 48113-443 [ACK] Seq=1 Ack=1 Win=5856 Len=0 TSval=4157
4 0.009432 Client Server SSL [Packet size limited during capture]
5 0.010923 Server Client TCP 443-48113 [ACK] Seq=1 Ack=106 Win=5792 Len=0 TSval=43
Frame 4: 171 bytes on wire (1368 bits), 96 bytes captured (768 bits)Causa possível: O pacote completo não foi capturado devido às configurações padrão da ferramenta de captura.
Solução: Alguns sistemas operacionais limitam o tcpdump aos primeiros 96 bytes por quadro por padrão. Use o parâmetro -s para especificar o tamanho da captura:
sudo tcpdump -i eth0 -s 1000 -w tcpdump.capMensagens comuns do Wireshark
[TCP Previous segment not captured]
Sintoma: Ocorre perda de pacotes ou pacotes perdidos durante a captura.
No. Time Source Destination Protocol Info
1 0.000000 Client Server TCP 48113-443 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PE
2 0.001482 Server Client TCP 443-48113 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1
3 0.001501 Client Server TCP 48113-443 [ACK] Seq=1 Ack=1 Win=5856 Len=0 TSval=4157
4 0.009432 Client Server SSL [Packet size limited during capture]
5 0.010923 Server Client TCP 443-48113 [ACK] Seq=1 Ack=106 Win=5792 Len=0
6 0.011691 Client Server SSL [TCP Previous segment not captured]
Transmission Control Protocol, Src Port: 443, Dst Port: 48113, Seq: 1449, Ack: 106, Len: 667Causa possível: O segmento TCP anterior não foi capturado, resultando em um segmento de dados incompleto. Isso é causado normalmente por perda de pacotes ou pela ferramenta de captura perdendo pacotes.
Solução: Analise os resultados da captura para determinar a situação específica.
Na transmissão TCP, os segmentos de dados do mesmo host devem ser contínuos. O Seq de cada segmento subsequente deve ser igual ao Seq do segmento anterior mais o comprimento do payload (Seq + Len - comprimento do cabeçalho TCP). O Ack do receptor é igual ao Seq do emissor mais o comprimento do payload, indicando o próximo byte esperado (exceto durante handshakes de três ou quatro vias). Se o Seq de um segmento subsequente exceder o Seq anterior mais o comprimento do payload sem nenhum segmento intermediário observado, as seguintes situações podem existir:
-
Captura de pacotes perdidos (TCP Previous segment not captured): Se um
Acksubsequente cobrir o intervalo deSeqnão capturado (por exemplo, o emissor enviaSeq=1000andSeq=2000, e o receptor retornaAck=2000), o receptor confirmou os dados intermediários, mas a ferramenta de captura os perdeu. -
Perda de pacotes: Se um
Acksubsequente não cobrir o intervalo deSeqnão capturado (por exemplo, o emissor enviaSeq=1000andSeq=2000, e o receptor retornaAck=1000), o receptor não confirmou os dados intermediários, indicando possível perda de pacotes. -
Segmentos de rede podem chegar fora de ordem. O receptor confirma repetidamente o último
Ackcontíguo viaSeqaté que o segmento ausente chegue.
Lógica de processamento fora de ordem e de janela:
-
Se o
Seqdo segmento exceder a janela de recepção (Window), o receptor o descarta. A recuperação depende de timeout ou retransmissão rápida. -
Se o Seq do segmento exceder a janela de recepção (Window), o receptor o descarta. A recuperação depende de timeout ou retransmissão rápida.
[TCP ACKed unseen segment]
Sintoma: A mensagem [TCP ACKed unseen segment] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
32 1.256720 Server Client TCP [Continuation to #26] 445-2199 [ACK] Seq=6889 Ack=885 Win=65535 Len=1448
33 1.256729 Server Client TCP 2199-445 [ACK] Seq=885 Ack=8337 Len=2920 Len=0
34 1.256961 Client Server TCP [TCP ACKed unseen segment] 2199-445 [ACK] Seq=885 Ack=11233 Win=2920 Len=0
35 1.257191 Server Client TCP [Continuation to #26] [TCP Previous segment not captured] 445-2199 [ACK] Seq=11233Causa possível: Esta mensagem indica que um pacote foi confirmado, mas o pacote original não foi visto na captura. No exemplo, o pacote na linha 32 possui um número de sequência (Seq) de 6889 e um comprimento (Len) de 1448. A soma é 8337 (6889 + 1448), portanto o próximo Seq esperado do servidor deveria ser 8337. No entanto, o pacote na linha 35 possui Seq de 11233. Isso significa que os segmentos entre 8337 e 11232 não foram capturados. Apenas a confirmação subsequente foi capturada, enquanto os pacotes de dados anteriores foram perdidos. Os dados ausentes deveriam ter aparecido antes da linha 34.
Solução: Esta é uma das mensagens mais comuns do Wireshark. Analise os resultados da captura para determinar a situação específica.
[TCP Out-of-Order]
Problema: A mensagem [TCP Out-of-Order] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
3360 5.007813 Server Client TCP 49454-8888 [ACK] Seq=2712622 Ack=2761 Win=32768
3361 5.007813 Client Server TCP 8888-49454 [ACK] Seq=2761 Ack=2639576 Win=2457
3362 5.007813 Server Client TCP [TCP Out-of-Order] 49454-8888 [ACK] Seq=2685642
3363 5.007813 Client Server TCP 8888-49454 [ACK] Seq=2761 Ack=2664291 Win=2457Causa possível: O Wireshark sinaliza um pacote como fora de ordem quando seu Seq é menor que o Seq + Len do pacote anterior. Reordenação de pequena amplitude (por exemplo, 2, 1, 3, 4, 5) tem pouco impacto. Reordenação de grande amplitude (por exemplo, 2, 3, 4, 5, 1) gera Dup ACK suficientes para causar retransmissão rápida.
Solução: Reordenação de pequena amplitude ocasional pode ser ignorada. Se reordenação de grande amplitude ocorrer com frequência, use ferramentas como MTR para análise adicional, ou verifique os logs em dispositivos intermediários, como switches e roteadores.
[TCP Dup ACK]
Problema: A mensagem [TCP Dup ACK] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
3 0.007813 Client Server TCP [Continuation to #] 55448-445 [ACK] Ack=243 Len=888
4 0.007813 Client Server TCP [TCP Previous segment not captured] 55448-445 [ACK]
5 0.007813 Server Client TCP 445-55448 [ACK] Seq=243 Ack=1 Win=65535
6 0.007813 Client Server TCP 445-55448 [ACK] Seq=243 Ack=1 Win=885
7 0.007813 Server Client TCP [TCP Dup ACK] 8888-49454 Ack=1466 Win=1 Len=0
8 0.007813 Server Client TCP [TCP Dup ACK] 8888-49454 Ack=1466 Win=1 Len=0
9 0.007813 Server Client TCP [TCP Dup ACK] 8888-49454 [ACK] Seq=2185
10 0.007813 Server Client TCP [TCP Dup ACK] 443-33448 [ACK] Seq=2185Causa possível: ACKs duplicados ocorrem quando o receptor recebe pacotes com valores de Seq maiores que o esperado (devido à entrega fora de ordem ou perda de pacotes). O receptor responde com o Seq esperado para cada pacote recebido, produzindo ACKs duplicados.
Solução: Se isso ocorrer com frequência, use ferramentas como MTR para análise adicional, ou verifique os logs em dispositivos intermediários, como switches e roteadores.
[TCP Retransmission]
Problema: A mensagem [TCP Retransmission] aparece durante a captura de pacotes.
Filter: tcp.seq == 1012852
No. Time Source Destination Protocol Info
1053 0.804688 Client Server TCP 49454-8888 [ACK] Seq=1012852 Ack=1105 Win=32768 Len=...
1225 0.937500 Client Server TCP [TCP Retransmission] 49454-8888 [ACK] Seq=1012852 Ack...Causa possível: Esta mensagem indica que um pacote foi retransmitido. Se um pacote é perdido e nenhum pacote subsequente chega para acionar ACKs duplicados no receptor, a retransmissão rápida não ocorre. O emissor deve aguardar o timer de retransmissão expirar e então realizar uma retransmissão por timeout. No exemplo, o cliente enviou o pacote 1053, mas não recebeu confirmação. Após mais de 100 ms, retransmitiu os dados no pacote 1225.
Solução: Se isso ocorrer com frequência, use ferramentas como MTR para análise adicional, ou verifique os logs em dispositivos intermediários, como switches e roteadores.
O TCP garante transmissão confiável definindo um timer ao enviar dados. Se nenhuma confirmação chegar antes do timer expirar, os dados são retransmitidos. A RFC2988 define o cálculo do tempo de retransmissão, que o Linux ainda utiliza. Consulte as seções RTT e RTO na documentação TCP-IP para mais detalhes.
[TCP Fast Retransmission]
Problema: A mensagem [TCP Fast Retransmission] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
1169 0.828125 Server Client TCP 49454-8888 [ACK] Seq=1098048 Ack=1105 Win=32768 Len=1448
...
1171 0.828125 Client Server TCP 8888-49454 [ACK] Seq=2761 Ack=991851 Win=2457 Len=0
...
1174 0.867188 Client Server TCP [TCP Dup ACK 1171#1] 8888-49454 [ACK] Seq=1105 Ack=991851
1175 0.867188 Client Server TCP [TCP Dup ACK 1171#2] 8888-49454 [ACK] Seq=1105 Ack=991851
1176 0.867188 Client Server TCP [TCP Dup ACK 1171#3] 8888-49454 [ACK] Seq=1105 Ack=991851
1177 0.867188 Server Client TCP [TCP Fast Retransmission] 49454-8888 [ACK] Seq=991851Causa possível: Esta mensagem indica uma retransmissão rápida. Quando um emissor recebe três ou mais ACKs duplicados, ele presume que o pacote original foi perdido e o retransmite imediatamente sem aguardar o timer de retransmissão expirar. No exemplo, após receber três ACKs duplicados, o servidor retransmite os dados com Seq 991851 no pacote 1177.
Solução: Se isso ocorrer com frequência, use ferramentas como MTR para análise adicional, ou verifique os logs em dispositivos intermediários, como switches e roteadores.
A retransmissão rápida oferece uma alternativa à detecção de perda baseada em timeout. Quando o receptor envia três ACKs duplicados consecutivos, o emissor retransmite o segmento não confirmado sem aguardar o timer de retransmissão expirar.
[TCP zerowindow]
Problema: A mensagem [TCP zerowindow] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
3258 3.140625 Server Client TCP Seq=467 Ack=11928601 Win=15872 Len=0
3259 3.140625 Server Client TCP Seq=467 Ack=11931449 Win=13025 Len=0
3260 3.140625 Server Client TCP Seq=467 Ack=11934174 Win=10300 Len=0
3261 3.140625 Server Client TCP Seq=467 Ack=11940137 Win=3517 Len=0
3262 3.140625 Server Client TCP [TCP ZeroWindow] Seq=467 Ack=11941327 Win=0 Len=0
3263 3.140625 Server Client TCP [TCP ZeroWindow] 8888-62758 Seq=467 Ack=... Win=0
3265 3.140625 Server Client TCP [TCP ZeroWindow] 8888-62758 [ACK] Win=0
3267 3.167969 Server Client TCP [TCP ZeroWindow] 8888-62758 [PSH, ACK] Seq=7743 Win=0Causa possível: Esta mensagem indica que a janela de recepção do receptor é zero. Isso significa que seu buffer está cheio e não pode aceitar mais dados. O campo Win= no cabeçalho TCP indica o espaço de buffer disponível. Um valor de Win=0 sinaliza ao par para interromper o envio de dados, como mostrado no exemplo.
Solução: Isso pode indicar capacidade de processamento insuficiente no receptor ou largura de banda de rede insuficiente. Análise adicional é necessária.
[TCP window Full]
Sintoma: A mensagem [TCP Window Full] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
71 3.392855 middle east britain TCP [TCP Window Full] 64560-12345 [ACK] Seq=202344 Ack=1
72 3.393142 middle east britain TCP 12345-64560 [ACK] Seq=1 Ack=142521 Win=5792 Len=0
73 3.395832 middle east britain TCP [TCP Window Full] 64560-12345 [ACK]
74 3.396350 middle east britain TCP 12345-64560 [ACK]
75 3.407549 middle east britain TCP [TCP Window Full]
76 4.002180 britain middle east TCP ...
78 4.004231 britain middle east TCP 64560-12345 Seq=1 Ack=51089
[Bytes in flight: 65535]
[iRTT: 0.040960000 seconds]Causa possível: Esta mensagem indica que a janela de envio do emissor está cheia. Isso significa que o emissor enviou dados suficientes para preencher a janela anunciada pelo receptor e deve interromper o envio de dados.
Solução: Isso pode indicar capacidade de processamento insuficiente no receptor ou largura de banda de rede insuficiente. Análise adicional é necessária.
Bytes in flight é igual à janela de recepção do par, o que significa que o número de bytes enviados menos os bytes confirmados mais recentemente é igual aos bytes pendentes (Seq + Len = Ack, onde Ack é a confirmação mais recente). Os dois campos a seguir indicam que a transmissão foi pausada e requerem atenção.
Bytes in flight é igual à janela do receptor, o que significa que os bytes pendentes do emissor preenchem toda a janela (Seq + Len = Ack, onde Ack é a confirmação mais recente). Os dois campos a seguir indicam que a transmissão foi pausada e requerem alta atenção.
[TCP segment of a reassembled PDU]
Problema: A mensagem [TCP segment of a reassembled PDU] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info Length
86 5.011522 Client Server SMB Read AndX Request, FID: 0x00a4, 14215 bytes ...
87 5.014424 Server Client SMB Read AndX Response, FID: 0x004a, 14215 bytes ...
88 5.014024 Client Server TCP TCP segment of a reassembled PDU
89 5.014028 Client Server TCP TCP segment of a reassembled PDU
90 5.014028 Server Client TCP TCP segment of a reassembled PDU
91 5.014028 Server Client TCP TCP segment of a reassembled PDU
...
Frame 86: 1311 bytes on wire (10504 bits), 1311 bytes captured (10504 bits)Causa possível: O Wireshark pode agrupar virtualmente pacotes TCP pertencentes à mesma PDU da camada de aplicação.
Solução: Acesse Edit > Preferences > Protocol > TCP, and verify that "Allow sub dissector to reassemble TCP streams" is enabled. The ACK confirmation packet numbers should match.
[Continuation to #X]
Problema: A mensagem [Continuation to #X] aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
38 5.011522 Client Server SMB Read AndX Request, FID: 0x00a4, 14215 bytes at offset D
39 5.014424 Server Client SMB Read AndX Response, FID: 0x004a, 14215 bytes
40 5.014019 Server Client TCP 445-2212 [ACK] Seq=1331 Ack=1913 Win=65535 Len=1448
41 5.014024 Server Client TCP [Continuation to #39] 445-2212 [ACK] Len=1448
42 5.014028 Server Client TCP [Continuation to #39] 445-2212 [ACK] Len=1448
43 5.014028 Server Client TCP [Continuation to #97] 445-2212 [ACK]
44 5.014032 Server Client TCP [Continuation to #97] 445-2212 [ACK]
45 5.014047 Server Client TCP [Continuation to #97] 445-2212 [ACK]Causa possível: A opção "Allow sub dissector to reassemble TCP streams" está desativada.
Solução: Acesse Edit > Preferences > Protocol > TCP, and enable "Allow sub dissector to reassemble TCP streams".
Time-to-live exceeded (Fragment reassembly time exceeded)
Sintoma: A mensagem "Time-to-live exceeded (Fragment reassembly time exceeded)" aparece durante a captura de pacotes.
No. Time Source Destination Protocol Info
... ... Beijing Shanghai ICMP Time-to-live exceeded (Fragment reassembly time exceeded)
... ... Beijing Shanghai ICMP Time-to-live exceeded (Fragment reassembly time exceeded)
...Causa possível: Esta mensagem ICMP indica que o time-to-live (TTL) expirou porque o limite de tempo para remontagem de pacotes fragmentados foi excedido. Isso acontece quando um host recebe alguns fragmentos de um pacote, mas não consegue receber todos dentro de um determinado tempo. Por exemplo, se pacotes enviados de Shanghai para Pequim forem fragmentados e alguns fragmentos se perderem no caminho, o host de destino em Pequim não consegue remontar o pacote original e envia esta mensagem de erro ICMP de volta à origem.
Solução: Se isso persistir, verifique as tabelas de roteamento, use MTR para solucionar loops de rede, ajuste o valor inicial de TTL ou MTU, ou otimize a largura de banda da rede.