引言
在现实生活中,我们通过地址找到一个人的家:
- 国家 → 省 → 市 → 区 → 街道 → 门牌号
在网络世界中,我们通过IP地址找到一台计算机:
- 93.184.216.34
IP地址是网络层最核心的概念之一,理解它对于掌握计算机网络至关重要。
第一性原理:为什么需要IP地址?
问题:如何在全球网络中找到一台计算机?
假设全球有50亿台设备联网,如何唯一标识每一台?
方案1:随机编号
- ❌ 无法路由(不知道往哪个方向发送)
- ❌ 需要全局查找表(太大,无法维护)
方案2:层次化编号(IP地址)
- ✅ 可以路由(根据前缀决定方向)
- ✅ 分段查找(路由器只需维护部分信息)
- ✅ 可扩展(支持更多设备)
IP地址的设计哲学
- 全球唯一性:每个公网IP只能分配给一台设备
- 层次化结构:网络部分 + 主机部分
- 可路由性:路由器根据IP前缀转发数据包
IPv4:32位地址
基本格式
二进制表示:11000000.10101000.00000001.01100100 十进制表示:192.168.1.100 十六进制表示:C0.A8.01.64
每个点分十进制数字范围:0-255(2^8 = 256)
IPv4地址总数
32位 = 4字节 = 2^32 = 4,294,967,296个地址
约43亿个地址
问题:全球人口超过80亿,IPv4地址不够用!
解决方案:
- NAT(网络地址转换)
- 私网IP复用
- IPv6(128位地址)
分类地址(历史知识)
早期互联网使用分类地址(Classful Addressing),已淘汰,但需了解:
A类地址
格式:0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:1.0.0.0 - 126.255.255.255
网络数:128个(2^7)
每个网络主机数:16,777,214个(2^24 - 2)
用途:超大型网络(如MIT、IBM)
B类地址
格式:10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:128.0.0.0 - 191.255.255.255
网络数:16,384个(2^14)
每个网络主机数:65,534个(2^16 - 2)
用途:中型网络(如大学、公司)
C类地址
格式:110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:192.0.0.0 - 223.255.255.255
网络数:2,097,152个(2^21)
每个网络主机数:254个(2^8 - 2)
用途:小型网络(如小公司、家庭)
D类和E类
- D类:224.0.0.0 - 239.255.255.255(多播地址)
- E类:240.0.0.0 - 255.255.255.255(保留,实验用)
分类地址的问题
- 浪费严重:B类网络有6.5万个IP,但很多公司只需几千个
- 不够灵活:只能选择A/B/C三种固定大小
- 路由表膨胀:互联网路由表越来越大
1993年,CIDR取代了分类地址!
CIDR:无类别域间路由
什么是CIDR?
CIDR(Classless Inter-Domain Routing):无类别域间路由
核心思想:不再固定网络前缀长度,而是灵活划分。
CIDR表示法
IP地址/前缀长度
示例:
192.168.1.0/24 # 前24位是网络部分,后8位是主机部分
10.0.0.0/8 # 前8位是网络部分,后24位是主机部分
172.16.0.0/12 # 前12位是网络部分,后20位是主机部分
子网掩码
子网掩码用于区分网络部分和主机部分:
192.168.1.0/24
IP地址: 192.168.1.0
11000000.10101000.00000001.00000000
子网掩码:255.255.255.0
11111111.11111111.11111111.00000000
↑────────前24位为1──────────↑ ↑8位为0↑
计算方法:
- 前缀长度24位 → 前24位为1,后8位为0
- 转换为十进制:255.255.255.0
常见CIDR与子网掩码对照
| CIDR | 子网掩码 | 可用主机数 | 用途 |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | 单个主机 |
| /31 | 255.255.255.254 | 2 | 点对点链路 |
| /30 | 255.255.255.252 | 2 | 点对点链路 |
| /29 | 255.255.255.248 | 6 | 极小网络 |
| /28 | 255.255.255.240 | 14 | 很小网络 |
| /27 | 255.255.255.224 | 30 | 小网络 |
| /26 | 255.255.255.192 | 62 | 小网络 |
| /25 | 255.255.255.128 | 126 | 中小网络 |
| /24 | 255.255.255.0 | 254 | 标准C类 |
| /16 | 255.255.0.0 | 65,534 | 标准B类 |
| /8 | 255.0.0.0 | 16,777,214 | 标准A类 |
主机数计算公式:2^(32-前缀长度) - 2
公网IP vs 私网IP
私网IP(内网IP)
以下三个IP段是私网IP,不能在公网路由:
10.0.0.0/8
范围:10.0.0.0 - 10.255.255.255
主机数:16,777,216个(约1677万)
172.16.0.0/12
范围:172.16.0.0 - 172.31.255.255
主机数:1,048,576个(约104万)
192.168.0.0/16
范围:192.168.0.0 - 192.168.255.255
主机数:65,536个(约6.5万)
用途:
- 家庭网络:192.168.x.x
- 企业内网:10.x.x.x 或 172.16-31.x.x
- 云服务器内网:10.x.x.x
特点:
- ✅ 可以重复使用(不同网络可以用相同的私网IP)
- ✅ 不占用公网IP资源
- ❌ 无法直接访问互联网(需要NAT转换)
公网IP
除私网IP外的其他IP都是公网IP,可以在公网路由。
示例:
- Google:8.8.8.8
- 阿里云DNS:223.5.5.5
- Cloudflare DNS:1.1.1.1
特殊IP地址
0.0.0.0/8 # 本网络(用于路由表默认路由)
127.0.0.0/8 # 环回地址(本机)
127.0.0.1 # 本机环回地址(localhost)
169.254.0.0/16 # 链路本地地址(DHCP失败时自动分配)
224.0.0.0/4 # 多播地址(D类)
255.255.255.255 # 广播地址(全网广播)
NAT:网络地址转换
为什么需要NAT?
问题:IPv4地址不够用,家庭/企业有多台设备,但只有1个公网IP。
解决方案:NAT(Network Address Translation)
NAT工作原理
内网设备1:192.168.1.100:52341
内网设备2:192.168.1.101:52342
↓
家用路由器
(公网IP:123.45.67.89)
↓
公网:123.45.67.89:12345 → 93.184.216.34:80
123.45.67.89:12346 → 93.184.216.34:80
NAT映射表:
123.45.67.89:12345 ↔ 192.168.1.100:52341
123.45.67.89:12346 ↔ 192.168.1.101:52342
NAT的优缺点
优点:
- ✅ 节省公网IP地址
- ✅ 提供一定的安全性(内网设备不直接暴露)
- ✅ 允许内网自由规划IP
缺点:
- ❌ 无法从外网主动访问内网设备(需要端口映射)
- ❌ 增加延迟(需要查表转换)
- ❌ 某些协议不支持NAT(如FTP的主动模式)
子网划分实战
场景:为微服务集群规划IP
你有一个 10.0.0.0/16 的网段,需要划分给不同的微服务:
需求:
- Web服务器:需要100个IP
- 应用服务器:需要500个IP
- 数据库服务器:需要50个IP
- 缓存服务器:需要30个IP
划分方案
原始网段:10.0.0.0/16(65,534个IP)
划分:
1. Web服务器:10.0.0.0/25(126个IP)
范围:10.0.0.0 - 10.0.0.127
2. 应用服务器:10.0.1.0/23(510个IP)
范围:10.0.1.0 - 10.0.2.255
3. 数据库服务器:10.0.3.0/26(62个IP)
范围:10.0.3.0 - 10.0.3.63
4. 缓存服务器:10.0.3.64/27(30个IP)
范围:10.0.3.64 - 10.0.3.95
5. 预留空间:10.0.4.0/22(1022个IP)
用于未来扩展
子网计算技巧
快速计算可用主机数:
/32 → 1个IP
/31 → 2个IP
/30 → 4个IP(可用2个)
/29 → 8个IP(可用6个)
/28 → 16个IP(可用14个)
/27 → 32个IP(可用30个)
/26 → 64个IP(可用62个)
/25 → 128个IP(可用126个)
/24 → 256个IP(可用254个)
规律:2^(32-前缀长度) 个IP,减去网络地址和广播地址(各1个)
实战工具:在线子网计算器
推荐工具:
IPv6:未来的网络
IPv6地址格式
2001:0db8:85a3:0000:0000:8a2e:0370:7334
简写规则:
1. 去掉前导零:2001:db8:85a3:0:0:8a2e:370:7334
2. 连续的0用::替代:2001:db8:85a3::8a2e:370:7334
IPv6的优势
- ✅ 地址空间巨大:2^128 ≈ 340万亿亿亿亿个地址
- ✅ 不需要NAT
- ✅ 更好的安全性(内置IPsec)
- ✅ 更好的移动性支持
IPv4与IPv6过渡
- 双栈:同时支持IPv4和IPv6
- 隧道:通过IPv4网络传输IPv6数据包
- NAT64:IPv6访问IPv4网络
总结
核心要点
IP地址的本质
- 32位二进制数(IPv4)
- 网络部分 + 主机部分
- 全球唯一(公网IP)
CIDR与子网掩码
- 灵活划分网络
- IP地址/前缀长度
- 子网掩码区分网络和主机
公网IP vs 私网IP
- 私网IP:10.x.x.x, 172.16-31.x.x, 192.168.x.x
- 公网IP:其他
- NAT实现内网到公网的转换
子网划分
- 根据需求分配合适大小的网段
- 预留空间用于扩展
- 使用CIDR表示法
下一篇预告
下一篇我们将学习 MAC地址与ARP协议,理解数据链路层的寻址机制,以及为什么既需要IP地址又需要MAC地址。
思考题:
- 如果一个公司有1000台设备,应该申请多大的网段?
- 为什么私网IP段是这三个(10.x.x.x/172.16-31.x.x/192.168.x.x)?
- IPv6有那么多地址,为什么IPv4还在使用?
欢迎在评论区分享你的思考!