网络基础1
根据网路覆盖范围划分为:局域网(2km),城域网(20km),广域网
IP地址-网络中主机的唯一标识
- IPV4:
数据类型-uint32_t 无符号四个字节的整数,不到43亿–存在IP地址不够用
DHCP 动态地址分配技术-解决IP地址不够问题
NAT 网络地址转换技术 - IPV6:
数据类型-uint8_t addr[16] 16个字节的整数,但是不兼容IPV4
端口PORT-一台主机上唯一标识一个进程
- 数据类型:uint16_t 无符号两个字节的整数0~65535
- 特性: 一个端口只能被一个进程占用;
一个进程可以使用多个端口
- 网络中的每条数据描述都包括:源端口/源IP地址/目的端口/目的IP地址/协议(五元组)
协议protocol-网络通信中数据格式约定
协议分层
- ISO-OSI分层模式:应用层-表示层-会话层-传输层-网络层-链路层-物理层
- TCP/IP分层模式:应用层-传输层-网络层-链路层-物理层
2.1 应用层:负责应用程序间的数据沟通;典型协议:HTTP;典型设备:PC
2.2 传输层:负责应用程序间的数据传输;典型协议:TCP/UDP;典型设备:PC
2.3 网路层:负责地址管理与路由选择;典型协议:IP;典型设备:路由器
2.4 链路层:负责相邻设备之间的数据帧传输与识别;典型协议Ethernet-以太网协议;典型设备:交换机
2.5 物理层:负责光电信号的传输:典型协议:以太网协议;典型设备:集线器
数据传输流程-封装与分用的过程
- 传送:在发送端主机上原始数据会经TCP/IP协议栈五层网络结构模型,层层封装打包发送
- 接收:接受到打包到的信息,在TCP/IP模型中各层使用各层的可识别信息进行层层分用。
网络字节序-大端字节序
- 网络通信中将大端字节序设为标准
- 字节序:CPU在内存中对数进行存取的顺序
- 字节序分类
2.1 大端字节序:低地址存高位
2.2 小端字节序:低地址存低位 - 主机字节序由CPU架构决定 X86–小端字节序
3.1 Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;
3.2 而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端——可以在大小端之间切换。 - 判断主机字节序的简单方法
通过共用体实现
unoin tmp{int a; uchar b;} tmp.a = 1;if(tmp.b == 1){这是小端}