网络层

有关网络通信基础内容不再赘述,直接剖析网络层的相关知识。

网络字节序——大端字节序

大小端(取决于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");
}

网络层
网络数据传输:凡是存储大于一个字节(网络上传输的最小单位是字节流)的数据都必须转换成网络字节序(大端字节序)的数据。
主机字节序:大小端都有可能。