Valores hexadecimais são aparentemente retrocedidos ao analisar pacotes usando o Wireshark

0

Usando o Wireshark, estou tentando depurar um erro que estou tendo em um dos meus aplicativos. Estou tendo dificuldade em entender como o conteúdo do pacote está sendo formatado e exibido no Wireshark. Para entender melhor, considere isto:

Eu escrevo os seguintes dados como um prefixo para uma mensagem TCP enviada do meu aplicativo:

1b version buffer, value 52
4b message buffer length, value 1171 

Tendo aplicado o filtro apropriado, o Wireshark exibe a seguinte representação hexadecimal para os primeiros 5 bytes da mensagem:

0x34    
0x93
0x04 
0x00 
0x00

O primeiro byte 0x34 corresponde ao buffer de versão que escrevi do meu aplicativo, já que a representação decimal de 0x34 é de fato 52!

No entanto, os quatro bytes restantes não parecem representar o comprimento do buffer de mensagem 1171, conforme o valor que eu escrevi para o buffer do meu aplicativo.

O valor hexadecimal de 1171 é 0x493. Estou confuso porque, dado o hexadecimal impresso no bloco de código acima, o valor parece estar correto apenas para trás! Por que é isso?

    
por User 12345678 31.05.2013 / 10:20

1 resposta

2

É provavelmente um efeito da endianness . Bytes podem ser enviados como little endian ou big endian, é apenas uma questão de conveniência e suporte de hardware. Aparentemente, sua comunicação de rede está usando little endian, assim como CPUs compatíveis com Intel fazem na memória.

    
por 31.05.2013 / 10:41