Os 14 bytes na frente do cabeçalho IP são o cabeçalho Ethernet, os últimos dois bytes dos quais ( 0800
) indicam o protocolo de camada superior (IP).
Estou analisando pacotes enviados de um dispositivo de telemetria MT4000. Eu configurei um ouvinte no terminal (Linux) e configurei para exibir os pacotes sendo recebidos em hexadecimal.
Até agora, o pacote de entrada é assim:
10:57:54.973363 IP 31.70.199.41.30000 > Dans-iPod.30000: UDP, length 37
0x0000: 0019 216b a7b2 0018 3f49 8ac1 0800 4568 ..!k....?I....Eh
0x0010: 0041 007a 0000 ed11 245c 1f46 c729 c0a8 .A.z....$\.F.)..
0x0020: 0156 7530 7530 002d c20f 000a 0200 2020 .Vu0u0.-........
0x0030: 2020 2020 2020 2031 2020 2020 2020 2030 .......1.......0
0x0040: 3132 3938 3130 3030 3239 3832 3133 20 12981000298213.
Usando este gráfico do guia de referência do MT4000, tentei combinar o hex para os usos corretos.
* Não consigo postar a imagem, pois ainda não tenho 10 reputação. Você pode encontrar o detalhamento do pacote UDP no guia de referência da API do MT4000, ou acho que apenas um detalhamento padrão do pacote UDP.
O guia sugere que o Byte 0 deve conter um "campo de 8 bits para versão e comprimento. Esta API suporta apenas a versão 4 com comprimento de cabeçalho IP de 5 * 4 = 20 bytes. Esse campo deve ser definido como 0x45.2"
Usando esta informação, eu posso ver que o número do byte da versão 15, em vez de 0. Tudo depois disso corresponde, mas não consigo encontrar uma explicação para os primeiros 14 bytes: 0019 216b a7b2 0018 3f49 8ac1 0800
Qualquer ajuda seria muito apreciada, obrigado antecipadamente,
Ed
Tags udp