O analisador marca um pacote como tendo um checksum inválido, e um ficheiro descarregado parece estar errado, pelo que as duas observações se juntam numa única história sobre corrupção na VPN. São medições diferentes feitas em pontos diferentes. Uma descreve o que o mecanismo de captura viu antes de o adaptador de rede concluir o seu trabalho; a outra descreve os bytes que a aplicação armazenou. Determinar qual das duas mudou realmente é todo o diagnóstico.

Onde a captura se situa em relação ao adaptador

Uma captura de pacotes é um instantâneo num ponto de um caminho que contém várias transformações. Entre a pilha do anfitrião e o cabo estão a segmentação, o cálculo do checksum e, na receção, a coalescência. Um ponto de captura mostra o estado nesse instante, que raramente é idêntico à trama final no cabo. Lê-la como se fosse o cabo é precisamente a forma como um campo de preenchimento se transforma numa acusação.

Assim, a pergunta útil sobre qualquer campo suspeito não é se parece errado, mas onde foi observado. Anote a interface de captura, a versão do analisador e a camada do pacote junto à constatação; sem essas três, um rótulo de checksum não pode ser interpretado de todo.

O que o offload de transmissão faz a um rasto

Com o offload do checksum de transmissão ativo, o adaptador calcula o checksum e preenche o campo depois de o anfitrião ter colocado o pacote em fila. Uma captura do lado do anfitrião regista, por isso, um valor de preenchimento, e o analisador relata um checksum que o cabo nunca transportou. O offload de segmentação cria um artefacto semelhante, porque o anfitrião pode entregar ao adaptador um único buffer grande que mais tarde se torna várias tramas.

A referência sobre o offload do Wireshark descreve ambos os efeitos e nota que reconhecer checksums parciais depende da versão do analisador e do tipo de pacote. É por isso que uma ferramenta de captura mais antiga e uma mais recente podem discordar sobre o mesmo rasto enquanto ambas o leem corretamente.

A encapsulação acrescenta um segundo objeto

Uma VPN insere um segundo pacote na imagem. A interface do túnel mostra o pacote interno que a aplicação realmente enviou, enquanto a interface física mostra a ligação externa encapsulada que o transporta. Um checksum ou comprimento retirado do pacote interno não pertence à trama externa, e comparar os dois como se descrevessem o mesmo objeto produz um disparate.

Quando for preciso comparar, compare o comparável: interno com interno, externo com externo, no mesmo ponto do caminho. Um par de campos que não coincide prova apenas que foram medidos dois objetos diferentes. Anote de que interface veio cada rasto, porque uma captura de túnel que parece limpa nada diz sobre o que o adaptador emitiu.

Prove a integridade do ficheiro com hashes

Para o próprio ficheiro, calcule um hash do conteúdo de uma fonte reproduzível e do resultado armazenado, e compare os resumos. Isso responde a uma pergunta diferente de qualquer rótulo por pacote, e responde-a sobre o objeto que realmente importa ao utilizador.

sha256sum payload.bin
sha256sum /srv/transfer/payload.bin
cmp -l payload.bin /srv/transfer/payload.bin | head

Resumos iguais fecham a questão da corrupção para essa transferência. Resumos diferentes abrem uma mais estreita: encontre a fase mais precoce em que os bytes divergem e verifique se algo transformou o ficheiro de propósito. Uma gravação parcial, um anexo recodificado e uma página de erro armazenada com o nome de ficheiro esperado alteram bytes sem qualquer defeito de rede.

Localize um caminho do adaptador sem o tornar permanente

Para um problema reproduzível que segue um único dock ou adaptador, mantenha fixos o perfil VPN, a aplicação, o objeto de teste e o destino, e repita a transferência através de uma interface alternativa suportada. Um resultado que muda com o adaptador localiza a falha nesse caminho; ainda não identifica uma definição do controlador nem prova um defeito de todo o modelo.

Desativar o offload globalmente é um teste tentador e um mau valor predefinido. Uma definição para todo o anfitrião afeta tráfego muito para além da experiência e pode ter um custo real de desempenho, por isso trate qualquer alteração dessas como temporária, registe-a e reverta-a. Use os diagnósticos suportados pelo fabricante antes de manter uma solução alternativa emprestada de outra máquina.

O relatório deve indicar qual dos três resultados mudou: a interpretação de um pacote pelo analisador, os bytes completos da aplicação ou a reprodutibilidade de um caminho do adaptador. Levam a três ações seguintes diferentes, e apenas uma delas diz respeito à cifra.

Artigos relacionados