计算机网络基础之 IP 地址详解
一、IP 地址概述
IP 地址(Internet Protocol Address)是分配给网络中每台设备的逻辑地址,用于在网络中进行标识和通信。
1.1 IP 地址的作用
- 设备标识:在网络中唯一标识一台设备(主机、路由器等)
- 寻址与路由:指导数据包从源地址到目的地址的转发路径
- 网络分层:通过 IP 地址的网络部分区分不同的网络
1.2 IP 地址的版本
| 版本 | 地址长度 | 地址格式 | 示例 |
|---|---|---|---|
| IPv4 | 32 位 | 点分十进制 | 192.168.1.100 |
| IPv6 | 128 位 | 冒号分隔十六进制 | 2001:0db8::8a2e:0370:7334 |
本文重点讲解 IPv4,IPv6 部分将在最后做简要介绍。
二、IPv4 地址基础
2.1 地址结构
IPv4 地址长度为 32 位(4 字节),用点分十进制表示:
11000000.10101000.00000001.01100100
192 . 168 . 1 . 100
每个字节取值范围:0 ~ 255(2⁸ - 1)。
2.2 二进制与十进制转换
十进制转二进制:逐字节除 2 取余
192 = 128 + 64 → 11000000
168 = 128 + 32 + 8 → 10101000
1 = 1 → 00000001
100 = 64 + 32 + 4 → 01100100
二进制转十进制:按位权展开求和
11000000 = 1×2⁷ + 1×2⁶ = 128 + 64 = 192
2.3 地址总数
32 位地址空间,理论总地址数:
2³² = 4,294,967,296(约 43 亿)
三、IP 地址分类
传统的 IP 地址分为五类(A、B、C、D、E),根据首字节的高位位模式区分。
3.1 分类表
| 类别 | 高位位模式 | 网络位 | 主机位 | 网络号范围 | 默认子网掩码 |
|---|---|---|---|---|---|
| A 类 | 0 |
8 位 | 24 位 | 1.0.0.0 ~ 126.0.0.0 | 255.0.0.0(/8) |
| B 类 | 10 |
16 位 | 16 位 | 128.0.0.0 ~ 191.255.0.0 | 255.255.0.0(/16) |
| C 类 | 110 |
24 位 | 8 位 | 192.0.0.0 ~ 223.255.255.0 | 255.255.255.0(/24) |
| D 类 | 1110 |
--- | --- | 224.0.0.0 ~ 239.255.255.255 | 组播地址 |
| E 类 | 1111 |
--- | --- | 240.0.0.0 ~ 255.255.255.255 | 保留,未使用 |
3.2 各类地址容量
A 类:每个网络可容纳 2²⁴ - 2 = 16,777,214 台主机,共 126 个网络
B 类:每个网络可容纳 2¹⁶ - 2 = 65,534 台主机,共 16,384 个网络
C 类:每个网络可容纳 2⁸ - 2 = 254 台主机,共 2,097,152 个网络
减 2 的原因:主机位全 0 为网络地址 ,主机位全 1 为广播地址,二者不能分配给主机。
3.3 快速判断地址类别
首字节 1 ~ 126 → A 类
首字节 128 ~ 191 → B 类
首字节 192 ~ 223 → C 类
首字节 224 ~ 239 → D 类(组播)
首字节 240 ~ 255 → E 类(保留)
特殊记忆:127 开头的地址(127.0.0.1)是回环地址(Loopback),不归属任何类别。
四、特殊 IP 地址
4.1 私有地址(Private Address)
私有地址用于局域网内部通信,不能直接在公网路由。
| 类别 | 私有地址范围 | CIDR 表示 |
|---|---|---|
| A 类 | 10.0.0.0 ~ 10.255.255.255 | 10.0.0.0/8 |
| B 类 | 172.16.0.0 ~ 172.31.255.255 | 172.16.0.0/12 |
| C 类 | 192.168.0.0 ~ 192.168.255.255 | 192.168.0.0/16 |
常见场景:
- 家庭路由器通常分配
192.168.1.x或192.168.0.x - 企业内网可能使用
10.x.x.x或172.16.x.x ~ 172.31.x.x
私有网络通过 NAT(Network Address Translation) 技术访问公网。
4.2 其他特殊地址
| 地址 | 含义 |
|---|---|
0.0.0.0 |
未指定地址,表示"本网络"或"任意地址" |
127.0.0.1 |
回环地址(Loopback),指向本机 |
255.255.255.255 |
有限广播地址,对本网络所有主机广播 |
169.254.0.0/16 |
链路本地地址(APIPA),DHCP 获取失败时自动分配 |
五、子网掩码与子网划分
5.1 子网掩码
子网掩码用于区分 IP 地址中的网络部分 和主机部分。
IP 地址: 192 . 168 . 1 . 100
子网掩码: 255 . 255 . 255 . 0
─────网络部分──────── ───主机部分──
掩码中 1 对应网络位,0 对应主机位。
用 CIDR 表示法:192.168.1.100/24(24 个 1,即前 24 位为网络位)。
5.2 计算网络地址与广播地址
以 192.168.1.100/24 为例:
IP 地址: 11000000.10101000.00000001.01100100(192.168.1.100)
掩码: 11111111.11111111.11111111.00000000(255.255.255.0)
网络地址 = IP AND 掩码 = 192.168.1.0
广播地址 = 网络地址 + 主机位取反 = 192.168.1.255
可用地址范围:192.168.1.1 ~ 192.168.1.254(共 254 个)
5.3 子网划分示例
将 192.168.1.0/24 划分为 4 个子网:
- 从主机位借用 2 位(2² = 4 个子网)
- 新掩码:
/26(24 + 2 = 26),即255.255.255.192
| 子网 | 网络地址 | 可用地址范围 | 广播地址 |
|---|---|---|---|
| 子网 1 | 192.168.1.0/26 | 192.168.1.1 ~ 192.168.1.62 | 192.168.1.63 |
| 子网 2 | 192.168.1.64/26 | 192.168.1.65 ~ 192.168.1.126 | 192.168.1.127 |
| 子网 3 | 192.168.1.128/26 | 192.168.1.129 ~ 192.168.1.190 | 192.168.1.191 |
| 子网 4 | 192.168.1.192/26 | 192.168.1.193 ~ 192.168.1.254 | 192.168.1.255 |
每个子网有 64 个地址,其中可用主机地址 62 个(减去网络地址和广播地址)。
5.4 子网划分公式
子网数 = 2ⁿ(n 为从主机位借用的位数)
每个子网可用主机数 = 2ᵐ - 2(m 为剩余主机位数)
六、CIDR(无类别域间路由)
6.1 什么是 CIDR
CIDR(Classless Inter-Domain Routing)打破了传统的 A/B/C 类地址分类限制,允许使用任意长度的网络前缀。
表示方法:IP地址/前缀长度
192.168.1.0/24 → 前 24 位为网络位
10.0.0.0/8 → 前 8 位为网络位
172.16.0.0/12 → 前 12 位为网络位
6.2 CIDR 的优势
- 灵活性:不再受限于 A/B/C 类的固定划分
- 聚合路由:将多个小网络合并为一个路由条目,减小路由表
- 高效利用:按需分配地址,避免浪费
6.3 路由聚合示例
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
可聚合为:
192.168.0.0/22 → 一条路由覆盖以上 4 个网络
七、VLSM(可变长子网掩码)
VLSM 允许在同一个网络中使用不同长度的子网掩码,根据各子网的实际主机数量分配地址。
示例:将 192.168.1.0/24 按需分配:
| 需求 | 分配 | 掩码 | 可用主机数 |
|---|---|---|---|
| 100 台主机 | 192.168.1.0/25 | 255.255.255.128 | 126 |
| 50 台主机 | 192.168.1.128/26 | 255.255.255.192 | 62 |
| 25 台主机 | 192.168.1.192/27 | 255.255.255.224 | 30 |
| 10 台主机 | 192.168.1.224/28 | 255.255.255.240 | 14 |
原则:先满足大网需求,再从小到大依次分配剩余空间。
八、常见子网掩码速查表
| CIDR | 子网掩码 | 可用主机数 | 地址总数 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,214 | 16,777,216 |
| /16 | 255.255.0.0 | 65,534 | 65,536 |
| /24 | 255.255.255.0 | 254 | 256 |
| /25 | 255.255.255.128 | 126 | 128 |
| /26 | 255.255.255.192 | 62 | 64 |
| /27 | 255.255.255.224 | 30 | 32 |
| /28 | 255.255.255.240 | 14 | 16 |
| /29 | 255.255.255.248 | 6 | 8 |
| /30 | 255.255.255.252 | 2 | 4 |
| /32 | 255.255.255.255 | 1 | 1 |
九、NAT(网络地址转换)
9.1 为什么需要 NAT
IPv4 地址数量有限(约 43 亿),而全球设备远超此数。NAT 技术让多台内网设备共享一个公网 IP 访问外网。
9.2 NAT 工作原理
内网主机 NAT 路由器 公网服务器
192.168.1.10 公网 IP: 1.2.3.4 5.6.7.8
发送请求:
192.168.1.10:5000 → 1.2.3.4:5000 → 5.6.7.8:80
(替换源地址)
接收响应:
5.6.7.8:80 → 1.2.3.4:5000 → 192.168.1.10:5000
(还原目标地址)
9.3 NAT 类型
| 类型 | 说明 |
|---|---|
| 静态 NAT | 一对一固定映射,内网 IP ↔ 公网 IP |
| 动态 NAT | 从公网地址池动态分配 |
| NAPT(PAT) | 多对一,通过端口区分不同内网主机(最常用) |
十、IPv6 简介
10.1 IPv6 地址格式
128 位地址,用 8 组十六进制表示,每组 16 位:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
简化规则:
- 每组前导零可省略:
0000→0 - 连续的全零组可用
::替代(只能用一次)
简化后:
2001:db8:85a3::8a2e:370:7334
10.2 IPv6 地址空间
2¹²⁸ = 340,282,366,920,938,463,463,374,607,431,768,211,456
约为 IPv4 地址空间的 2⁹⁶ 倍(7.9×10²⁸ 倍),足以"为地球上每一粒沙子分配一个地址"。
10.3 IPv6 地址类型
| 类型 | 前缀 | 说明 |
|---|---|---|
| 全球单播地址 | 2000::/3 | 相当于 IPv4 公网地址 |
| 链路本地地址 | fe80::/10 | 相当于 IPv4 的 169.254.0.0/16 |
| 唯一本地地址 | fc00::/7 | 相当于 IPv4 私有地址 |
| 回环地址 | ::1/128 | 相当于 IPv4 的 127.0.0.1 |
10.4 IPv4 与 IPv6 对比
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 地址数量 | 约 43 亿 | 约 3.4×10³⁸ |
| 地址表示 | 点分十进制 | 冒号分隔十六进制 |
| 头部大小 | 20~60 字节(可变) | 固定 40 字节 |
| 广播 | 支持 | 不支持(用组播替代) |
| 安全性 | 可选(IPsec) | 内置支持 |
| NAT | 必需 | 通常不需要 |
| 配置 | 手动/DHCP | 支持 SLAAC 自动配置 |
十一、实用命令
Linux / macOS
bash
# 查看 IP 地址
ip addr show
# 或
ifconfig
# 查看路由表
ip route show
# 或
netstat -rn
# 查看 DNS 配置
cat /etc/resolv.conf
# Ping 测试
ping -c 4 8.8.8.8
# 查看端口占用
netstat -tlnp
# 或
ss -tlnp
Windows
cmd
# 查看 IP 地址
ipconfig
# 查看 IP 地址详细信息
ipconfig /all
# 查看路由表
route print
# Ping 测试
ping 8.8.8.8
# 查看端口占用
netstat -ano | findstr "8080"
# 追踪路由
tracert 8.8.8.8
十二、常见面试题
Q1:子网掩码 255.255.255.248 对应多少可用主机?
255.255.255.248 = /29,主机位 3 位,可用 = 2³ - 2 = 6 台。
Q2:192.168.10.130/25 的网络地址和广播地址是什么?
/25 掩码为 255.255.255.128。130 的二进制是 10000010,最高位为 1,所以属于第二个子网。
- 网络地址:192.168.10.128
- 广播地址:192.168.10.255
- 可用范围:192.168.10.129 ~ 192.168.10.254
Q3:为什么主机位全 0 和全 1 不能分配?
- 主机位全 0:表示网络本身(网络地址)
- 主机位全 1:表示向该网络所有主机广播(广播地址)
Q4:ping 127.0.0.1 成功说明什么?
说明本机 TCP/IP 协议栈正常工作,但不代表网卡硬件或网线正常。
Q5:A、B、C 类地址中为什么 127 开头不是 A 类?
127.0.0.0/8 整个网段被保留为回环地址,不用于网络通信。A 类的可用范围实际是 1.0.0.0 ~ 126.0.0.0。
十三、总结
IP 地址核心知识点:
┌─────────────────────────────────────────────────────┐
│ IPv4 地址 = 网络部分 + 主机部分 │
│ 子网掩码区分网络位与主机位 │
│ CIDR 打破传统分类,实现灵活分配 │
│ VLSM 允许不同子网使用不同掩码 │
│ NAT 解决 IPv4 地址不足问题 │
│ IPv6 是未来方向,128 位地址空间 │
└─────────────────────────────────────────────────────┘