1. 基础网络协议
1.1. OSI 七层协议
OSI(Open Systems Interconnection)七层模型 是国际标准化组织(ISO)提出的网络通信框架,用于定义不同网络协议的分层结构和功能。每一层为上层提供服务,并依赖下层实现功能。
- 物理层(Physical Layer)
- 传输原始比特流(0和1),即基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。
- 数据链路层(Data Link Layer)
- 根据不同的协议将比特流组织成帧(Frame),提供物理寻址(MAC地址)、差错检测(CRC)、流量控制。
- 网络层(Network Layer)
- 通过逻辑寻址(IP地址)实现主机到主机的通信,负责路由选择、分组转发和拥塞控制。
- 传输层(Transport Layer)
- 提供端到端(通过进程端口实现)的可靠或不可靠数据传输,负责流量控制、差错恢复和端口寻址。
- 会话层(Session Layer)
- 建立、管理和终止会话(Session),支持数据同步和对话控制(全双工/半双工)。
- 表示层(Presentation Layer)
- 处理数据格式转换(编码/解码)、加密/解密、压缩/解压缩,确保应用层数据可读。
- 应用层(Application Layer)
- 直接为用户应用程序提供网络服务接口(如文件传输、电子邮件)。
OSI 模型更多的是用于教学和理论分析,互联网真实运行在 TCP/IP 模型上。TCP/IP 是“精简版” OSI,合并了表示层、会话层到应用层。
1.2. IP 协议
1.2.1. 概念
IP(Internet Protocol,互联网协议) 是 TCP/IP 协议栈的核心协议,负责在网络层实现 主机到主机(Host-to-Host) 的逻辑寻址和路由选择。它是无连接、不可靠的协议,依赖上层(如 TCP)保证可靠性。
1.2.2. IP 协议的版本
1. IPv4(Internet Protocol version 4)
- 地址长度:32 位(约 42.9 亿个地址),通常以点分十进制表示(如
192.168.1.1
)。 - 报文格式:
- TTL(Time To Live):防止数据包无限循环,每经过一个路由器减 1,归 0 时丢弃。
- 协议字段:标识上层协议(如
6=TCP
,17=UDP
)。 - DF/MF 标志:控制分片(DF=Don’t Fragment,MF=More Fragments)。
+-------------------------------+-------------------------------+
| 版本 (4) | 头长度 | 服务类型 (TOS) | 总长度 |
+-------------------------------+-------------------------------+
| 标识符 | 标志 (DF/MF) | 分片偏移 |
+-------------------------------+-------------------------------+
| 生存时间 (TTL) | 协议 (TCP/UDP) | 头部校验和 |
+-------------------------------+-------------------------------+
| 源 IP 地址 |
+---------------------------------------------------------------+
| 目标 IP 地址 |
+---------------------------------------------------------------+
| 可选字段 (如时间戳) |
+---------------------------------------------------------------+
| 数据 (Payload) |
+---------------------------------------------------------------+
TeX2. IPv6(Internet Protocol version 6)
- 地址长度:128 位(约 3.4×10³⁸ 个地址),通常以冒号分隔(如
2001:0db8:85a3::8a2e:0370:7334
)。 - 报文格式:
+-------------------------------+-------------------------------+
| 版本 (6) | 流量类别 | 流标签 |
+-------------------------------+-------------------------------+
| 有效载荷长度 | 下一个头部 | 跳数限制 |
+---------------------------------------------------------------+
| 源 IPv6 地址 (128 位) |
+---------------------------------------------------------------+
| 目标 IPv6 地址 (128 位) |
+---------------------------------------------------------------+
| 数据 (Payload) |
+---------------------------------------------------------------+
TeX1.2.3. IP 地址
1. IPv4 地址分类
类型 | 范围 | 私网IP范围 | 用途 | 示例 |
A 类 | 1.0.0.0 ~ 126.255.255.255 | 10.0.0.0 ~ 10.255.255.255 | 大型机构(如政府) | 10.0.0.1 |
B 类 | 128.0.0.0 ~ 191.255.255.255 | 172.16.0.0 ~ 172.31.255.255 | 中型企业 | 172.16.0.1 |
C 类 | 192.0.0.0 ~ 223.255.255.255 | 192.168.0.0 ~ 192.168.255.255 | 小型网络 | 192.168.1.1 |
D 类 | 224.0.0.0 ~ 239.255.255.255 | 组播(Multicast) | 224.0.0.5 (OSPF) | |
E 类 | 240.0.0.0 ~ 255.255.255.255 | 保留(实验用途) |
2. 特殊用途 IP 地址
- 127.0.0.1:本地回环(Loopback),仅本机访问。
- 0.0.0.0:默认路由地址。
1.2.4. 子网划分
子网划分是将一个大的IP网络划分为多个更小的逻辑子网(Subnet)的过程,目的是提高IP地址利用率、优化网络性能、增强安全性。
子网划分的核心要素是改变子网掩码位数,子网掩码将一个IP地址标识为网络和主机两部分,由网络部分标识一个子网。
示例:
子网划分步骤(以 192.168.1.0/24 为例)
步骤 1:确定要划分的子网个数及每个子网主机数。
需求:划分为 4 个子网,每个子网容纳至少 50 台主机。
步骤 2:确定新子网掩码。
需要 4 个子网 → 2²=4 → 得出子网掩码需占用2个主机位。
原掩码 /24(11111111.11111111.11111111.00000000)→ 新掩码 /26(11111111.11111111.11111111.11000000)。
步骤 3:验证子网主机数。
每个子网的主机数 = 2的(32-26)次方−2=62(满足 ≥50 的需求)。
TeX1.3. ARP 协议
ARP(地址解析协议)用于通过 已知IP地址 获取对应的 MAC地址,是局域网(LAN)通信的基础协议。
在数据链路层传输数据时主要使用物理网卡的 MAC 地址,但我们在网络传输数据时使用的是 IP 地址,此时就需要使用 ARP 协议来通过 IP 地址获取 MAC 地址。
ARP 工作流程(以主机A访问主机B为例):
主机A向整个局域网发送ARP请求(广播),ARP请求中包含主机A的 MAC 和 IP 及主机B的 IP 地址,当主机B收到请求匹配上自己的 IP 地址,则返回自己的 MAC 地址给主机A(单播),其他未匹配上的主机则丢弃请求,此时主机A获取主机B的 MAC 地址。
1.4. TCP/UDP 协议
2. DNS 服务
在互联网中通过 IP 地址标识主机,但 IP 地址不方便记忆,所以引入了域名的概念,DNS 的作用就是将域名或主机名解析为 IP 地址。
2.1. DNS 服务器分类
- 根域名服务器(Root DNS Server):管理顶级域(TLD)服务器的地址(如
.com
、.org
的权威服务器),不直接解析域名,仅返回 TLD 服务器的地址。 - 顶级域名服务器(TLD DNS Server):管理二级域名(如
example.com
)的权威服务器地址。 - 权威域名服务器(Authoritative DNS Server):存储特定域名(如
example.com
)的 完整 DNS 记录(A、MX、CNAME 等)。 - 递归解析服务器(Recursive DNS Server):又叫缓存 DNS 服务器,代表客户端 递归查询 所有层级的 DNS 服务器,最终返回完整结果并缓存。
2.2. DNS 的两种查询方式
递归查询:客户端只需发起一次请求,后续工作由递归服务器完成,递归服务器负责逐级查询,直到找到答案或报错。
迭代查询:例如根服务器和 TLD 服务器通常只接受迭代查询,只返回自己知道的最佳答案,不代替客户端完成全部查询。由客户端或递归服务器需自行发起多次查询。
DNS 查询流程完整示例:访问 www.example.com
。
- 客户端向递归服务器(如
8.8.8.8
)发起查询。 - 递归服务器查询根服务器,获知
.com
TLD 服务器地址。 - 递归服务器查询
.com
TLD 服务器,获知example.com
的权威服务器地址。 - 递归服务器查询
example.com
的权威服务器,获取www.example.com
的 A 记录(IP 地址)。 - 递归服务器将 IP 返回客户端,并缓存结果。
2.3. DNS 缓存优先级
应用程序缓存 -> 本地系统缓存 -> 本地计算机/etc/hosts文件 -> DNS 服务器(ISP DNS缓存>递归or迭代搜索)