使用 Wireshark 分析数据包时,十六进制值似乎倒过来了

使用 Wireshark 分析数据包时,十六进制值似乎倒过来了

我尝试使用 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

这可能是字节顺序。字节可以以小端或大端发送,这只是一个方便性和硬件支持的问题。显然,您的网络通信正在使用小端,就像 Intel 兼容 CPU 在内存中所做的那样。

相关内容