tcpdump trunca para 1472 bytes dados úteis em pacotes UDP durante a captura

3

Estou escrevendo um aplicativo que funciona com rede. Para realizar alguns testes eu preciso reproduzir o fluxo que eu tive um dia antes. Mas, ao mesmo tempo, não é permitido parar o ouvinte atual em funcionamento. Eu também não posso reescrever o programa existente, a fim de salvar o fluxo de entrada. Para resolver minha tarefa, decidi usar o tcpdump.

Eu rodei o tcpdump na máquina de destino com o comando:

tcpdump -w capture.cap -n "dst host host.domain.com and port 5555"

Quando eu leio o capture.cap com o tcpick ou com o scapy. Eu posso ver que todos os dados úteis que foram maiores que 1472 bytes são truncados para estar com o comprimento 1472. Mas no cabeçalho ainda está escrito o comprimento original do pacote. Como posso julgar, o pacote UDP divide os vários e depois concatena novamente. Mas o tcpdump provavelmente filtra todos os pacotes sem cabeçalho (que deve aparecer apenas no primeiro pacote)

Existe alguma maneira de descarregar pacotes UDP completos?

    
por Gavelock 20.11.2014 / 18:08

2 respostas

9

Se um pacote IP for maior que o MTU do link de rede no qual o pacote está sendo enviado, o IP o fragmentará em pacotes IP que podem caber na rede; isso é feito pela camada IP, não pela camada UDP.

O MTU de uma Ethernet é normalmente de 1500 bytes (o tamanho máximo do pacote Ethernet é 1518, que inclui 14 bytes de cabeçalho, 1500 bytes de carga útil e 4 bytes de FCS). Um cabeçalho IPv4 é de 20 bytes, se não tiver opções, e um cabeçalho UDP é de 8 bytes, portanto, o tamanho máximo da carga útil UDP é 1500-28 = 1472.

Então, o IP divide o pacote em dois ou mais fragmentos, e os reagrupa na máquina receptora.

Veja a questão relacionada para uma discussão de por que o tcpdump não está capturando nenhum fragmento além do primeiro fragmento.

    
por 20.11.2014 / 18:25
0

O uso de -s 0 garante que todo o pacote / quadro seja capturado. Se estiver fragmentado, você saberá da análise do dump.

Experimente o wireshark para um analisador de GUI dos dados pcap. Ele irá colorir a saída, etc.

    
por 21.11.2014 / 03:12