网络层
有关网络通信基础内容不再赘述,直接剖析网络层的相关知识。
网络字节序——大端字节序
大小端(取决于CPU硬件架构)CPU在内存进行数据存取时候的方向不同分出大小端
MIPS–RISC处理器-----大端:低地址存高位
X86处理器----小端:低地址存低位
请参阅小编博客:大小端及其检测方式
栗子:unsigned char buff[4] 0x01 02 03 04
buff[0]~buff[4]地址是逐步增大,数据位是从右到左越来越高。
大端 | 小端 |
---|---|
buff[0] 0x01 | buff[0] 0x04 |
buff[1] 0x02 | buff[1] 0x03 |
buff[2] 0x03 | buff[2] 0x02 |
buff[3] 0x04 | buff[3] 0x01 |
#include<iostream>
int main()
{
int a = 1;
if (((unsigned char*)(&a))[0] == 1)
printf("little\n");
else
printf("big\n");
system("pause");
}
网络数据传输:凡是存储大于一个字节(网络上传输的最小单位是字节流)的数据都必须转换成网络字节序(大端字节序)的数据。
主机字节序:大小端都有可能。