基本概念:
主机字节序:
就是自己的主机内部,内存中数据的处理方式,可以分为两种:
大端字节序(big-endian):按照内存的增长方向,高位数据存储于低位内存中
小端字节序(little-endian):按照内存的增长方向,高位数据存储于高位内存中
网络序是大端的
深层次讨论
说起来很抽象,看图:
0X12345678这个数哪里是高位哪里是低位呢?显然12是高位,78是低位。一般的电脑本地都是小端模式(上图中的下半部分),这种模式显然很符合计算机的逻辑——将低位的数据放在低地址。但人习惯从左往右看数据,在这里人们首先看到的是12,最后才看到78.
数据在网络中传输是符合人的感觉的——先传送的是数据高位(在这里是12),再传送数据低位(78),这表明网络序是大端的。
这样就存在一个问题,当我从一台A主机发送到B主机时,0X12345678在A主机上存放的顺序是上图下半部分小端字节序,