引言

在现实生活中,我们通过地址找到一个人的家:

  • 国家街道门牌号

在网络世界中,我们通过IP地址找到一台计算机:

  • 93.184.216.34

IP地址是网络层最核心的概念之一,理解它对于掌握计算机网络至关重要。

第一性原理:为什么需要IP地址?

问题:如何在全球网络中找到一台计算机?

假设全球有50亿台设备联网,如何唯一标识每一台?

方案1:随机编号

  • ❌ 无法路由(不知道往哪个方向发送)
  • ❌ 需要全局查找表(太大,无法维护)

方案2:层次化编号(IP地址)

  • ✅ 可以路由(根据前缀决定方向)
  • ✅ 分段查找(路由器只需维护部分信息)
  • ✅ 可扩展(支持更多设备)

IP地址的设计哲学

  1. 全球唯一性:每个公网IP只能分配给一台设备
  2. 层次化结构:网络部分 + 主机部分
  3. 可路由性:路由器根据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(保留,实验用)

分类地址的问题

  1. 浪费严重:B类网络有6.5万个IP,但很多公司只需几千个
  2. 不够灵活:只能选择A/B/C三种固定大小
  3. 路由表膨胀:互联网路由表越来越大

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子网掩码可用主机数用途
/32255.255.255.2551单个主机
/31255.255.255.2542点对点链路
/30255.255.255.2522点对点链路
/29255.255.255.2486极小网络
/28255.255.255.24014很小网络
/27255.255.255.22430小网络
/26255.255.255.19262小网络
/25255.255.255.128126中小网络
/24255.255.255.0254标准C类
/16255.255.0.065,534标准B类
/8255.0.0.016,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网络

总结

核心要点

  1. IP地址的本质

    • 32位二进制数(IPv4)
    • 网络部分 + 主机部分
    • 全球唯一(公网IP)
  2. CIDR与子网掩码

    • 灵活划分网络
    • IP地址/前缀长度
    • 子网掩码区分网络和主机
  3. 公网IP vs 私网IP

    • 私网IP:10.x.x.x, 172.16-31.x.x, 192.168.x.x
    • 公网IP:其他
    • NAT实现内网到公网的转换
  4. 子网划分

    • 根据需求分配合适大小的网段
    • 预留空间用于扩展
    • 使用CIDR表示法

下一篇预告

下一篇我们将学习 MAC地址与ARP协议,理解数据链路层的寻址机制,以及为什么既需要IP地址又需要MAC地址。


思考题

  1. 如果一个公司有1000台设备,应该申请多大的网段?
  2. 为什么私网IP段是这三个(10.x.x.x/172.16-31.x.x/192.168.x.x)?
  3. IPv6有那么多地址,为什么IPv4还在使用?

欢迎在评论区分享你的思考!