在物联网或者网络通信的过程中难免会发生数据的交换,因为每台主机不同,其存储数据方式可能为大端存储(Big endian)和小端存储(Little endian),因此在数据传输的过程中是以网络字节序为标准顺序,考虑与协议的一致性,在程序发送数据包的过程中,将主机字节序转为网络字节序,收到数据包的主机再将网络字节序转为该主机的主机字节序,从而完成两台主机的通信。
主机字节序:
主机内部内存中数据的处理方式。
在不同的CPU处理器下,有不同的字节序类型,而字节序是指整数在内存中存储的顺序叫做主机序。最常见的主机序有两种:
大端存储(Big endian):最高有效位存于最低内存地址处,最低有效位存于最高内存处。(最直观的字节序,即数据位从左到右的顺序按照从低到高顺序写出即为内存地址。
小端存储(Little endian):最高有效位存于最高内存地址处,最低有效位存于最低内存处。(符合人思维的字节序低地址存低位)
网络字节序
网络字节顺序是TCP/IP中规定好的一种数据表示格式
网络字节序是TCP/IP中规定好的一种数据表示格式,他与CPU类型,操作系统无关,是可以保证数据在不同主机之间传输能够被正确解释的一种标准,网络字节序是采用大端存储(Big endian)。
为了实现两个存储方式不同的主机在传输时,需要借助字节序转换函数。