Используя Wireshark, я пытаюсь отладить ошибку, которую я испытываю с одним из моих приложений. У меня возникают трудности с пониманием того, как содержимое пакета форматируется и отображается в Wireshark. Чтобы лучше понять, пожалуйста, подумайте об этом:

Я записываю следующие данные в качестве префикса в сообщение TCP, отправленное из моего приложения:

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

Применив соответствующий фильтр, Wireshark отображает следующее шестнадцатеричное представление для первых 5 байтов сообщения:

0x34    
0x93
0x04 
0x00 
0x00

Первый байт 0x34 соответствует буферу версий, который я написал из своего приложения, поскольку десятичное представление 0x34 фактически равно 52!

Тем не менее, следующие четыре байта, по-видимому, не представляют длину буфера сообщений 1171 согласно значению, которое я записал в буфер из моего приложения.

Шестнадцатеричное значение 1171 составляет 0x493. Я запутался, потому что, учитывая шестнадцатеричный код, напечатанный в блоке кода выше, значение кажется правильным, только назад! Почему это?

1 ответ1

2

Это, вероятно, эффект порядка байтов. Байты могут быть отправлены с прямым или прямым порядком байтов, это всего лишь вопрос удобства и аппаратной поддержки. Очевидно, ваша сетевая связь использует порядок байтов, как это делают Intel-совместимые процессоры в памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .