IP(Internet Protocol,互联网协议)是 TCP/IP 协议族中最核心的协议之一,工作在 OSI 模型的网络层(第三层)。它的主要任务是实现网络设备之间的逻辑寻址和数据包路由,让数据能够从源主机跨越多个网络到达目标主机。
核心功能
IP 协议提供三大核心能力:
- **逻辑寻址**:为每台网络设备分配唯一的 IP 地址,标识其在网络中的位置
2. **数据包封装与分片**:将上层数据封装为 IP 数据包,必要时进行分片传输
3. **路由选择**:通过路由算法确定数据包从源到目的的最佳路径
IP 地址分类
IPv4 地址结构
IPv4 地址是 32 位二进制数,通常表示为点分十进制(如 192.168.1.1)。地址分为两部分:
- **网络号**:标识所属网络
- **主机号**:标识网络中的具体设备
传统分类地址(有类地址)
|------|-----------|-------------|------|
| 类别 | 首字节范围 | 默认子网掩码 | 用途 |
| A类 | 0-127 | 255.0.0.0 | 大型网络 |
| B类 | 128-191 | 255.255.0.0 | 中型网络 |
| C类 | 192-223 | 255.255.255.0 | 小型网络 |
| D类 | 224-239 | - | 组播地址 |
| E类 | 240-255 | - | 保留实验 |
特殊地址
- **127.0.0.1**:本地回环地址(localhost)
- **0.0.0.0**:表示所有网络接口
- **255.255.255.255**:广播地址
- **私有地址范围**:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
IP 数据包结构
IPv4 数据包头部包含以下关键字段:
- **版本(4位)**:IPv4 为 4,IPv6 为 6
- **首部长度(4位)**:标识 IP 头部长度
- **总长度(16位)**:整个 IP 数据包的长度
- **标识、标志、片偏移**:用于分片和重组
- **生存时间 TTL(8位)**:防止数据包无限循环,每经过一跳路由器减 1
- **协议(8位)**:标识上层协议(TCP=6, UDP=17, ICMP=1)
- **源 IP 地址(32位)**
- **目的 IP 地址(32位)**
路由基础
路由表
每台路由器和主机都维护一张路由表,决定数据包的转发方向:
目标网络 子网掩码 下一跳 接口
0.0.0.0 0.0.0.0 192.168.1.1 eth0 ← 默认路由
192.168.1.0 255.255.255.0 0.0.0.0 eth0 ← 直连网络
10.0.0.0 255.0.0.0 192.168.1.2 eth0 ← 静态路由
路由类型
- **直连路由**:路由器直接连接的网络
- **静态路由**:管理员手动配置
- **动态路由**:通过 RIP、OSPF、BGP 等协议自动学习
NAT 网络地址转换
NAT 是解决 IPv4 地址短缺的关键技术,允许多个内网设备共享一个公网 IP:
- **SNAT(源 NAT)**:修改出站数据包的源地址
- **DNAT(目的 NAT)**:修改入站数据包的目的地址(端口映射)
- **PAT/NAPT**:端口地址转换,多对一映射
IPv6 简介
IPv6 使用 128 位地址,表示为 8 组 16 进制数(如 2001:0db8:85a3::8a2e:0370:7334)。主要改进:
- 地址空间极大扩展(2^128 个地址)
- 简化头部格式,提高路由效率
- 内置安全性(IPsec)
- 支持自动配置
常见问题排查
|------|------|
| 命令 | 用途 |
| `ping | 测试连通性 |
| `traceroute | 追踪路由路径 |
| `ip addr` / `ifconfig` | 查看本机 IP |
| `route -n` / `ip route` | 查看路由表 |
| `netstat -rn` | 查看路由和连接 |
总结
IP 协议是互联网的基石,理解它的寻址方式、数据包结构和路由机制,是掌握网络通信的基础。虽然 IPv4 仍在广泛使用,但 IPv6 的过渡正在加速,未来网络将拥有更充足的地址空间和更高效的传输能力。