网络层 | 网际协议IP(2)
字数 1930 2025-08-18 11:38:32
网络层 | 网际协议IP(2):划分子网与构成超网
1. 简介
在IP协议的发展历程中,IPv4地址经历了几个重要阶段:
- 早期无分类IP地址
- 分类网络(A/B/C类地址)
- 划分子网(子网划分)
- 无类别域间路由CIDR(构成超网)
本文将详细讲解划分子网和构成超网的技术原理及实现方法。
2. 划分子网
2.1 划分子网的背景
分类网络存在以下问题:
- 地址分配不灵活:企业通常选择申请更大的地址块(如B类而非C类)以防未来扩展,导致大量IP地址浪费
- 路由表负担重:每个网络都需要单独的路由表项
划分子网(RFC950)解决了这些问题:
- 将二级IP地址(网络号+主机号)变为三级IP地址(网络号+子网号+主机号)
- 提高IP地址资源利用率
- 减轻路由表负担
2.2 子网划分原理
关键概念:
- 划分子网后,IP地址结构变为:
网络号 + 子网号 + 主机号 - IP地址总长度仍为32位,只是从主机号中借用若干位作为子网号
- 对外部网络而言,IP地址仍是二级结构(网络号不变)
- 对内部网络而言,IP地址是三级结构
示例:
原始B类地址:145.13.0.0(网络号16位,主机号16位)
划分子网后:
- 网络号:145.13(16位不变)
- 子网号:从主机号借用若干位(如6位)
- 主机号:剩余位数(10位)
2.3 子网掩码
子网掩码的作用:
- 标识IP地址中哪些位是网络号+子网号,哪些位是主机号
- 由连续的1(网络位)和连续的0(主机位)组成
- 采用点分十进制表示法(如255.255.255.0)
运算规则:
- 将IP地址与子网掩码进行逐位"与"运算,得到网络地址
- "与"运算规则:1&1=1,其他组合均为0
默认子网掩码:
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
示例计算:
IP地址:172.16.123.1(B类)
子网掩码:255.255.192.0(18位网络位)
计算过程:
IP地址: 10101100.00010000.01111011.00000001
子网掩码: 11111111.11111111.11000000.00000000
与运算结果:10101100.00010000.01000000.00000000 → 172.16.64.0
确定IP地址范围:
网络地址:172.16.64.0
可用地址范围:172.16.64.1 ~ 172.16.127.254
(主机位全0和全1通常不使用)
2.4 重要注意事项
- 点分十进制表示法只是方便人类阅读,实际运算时应转换为二进制
- 子网号和主机号可能跨越点分十进制的边界
- 所有网络都必须使用子网掩码
3. 构成超网(CIDR)
3.1 CIDR的背景
随着互联网发展,分类网络和子网划分仍无法解决IP地址耗尽问题。无类别域间路由CIDR(RFC4632)应运而生,具有三大特点:
- 无类(Classless):取消A/B/C类地址划分
- 前缀(Prefix):灵活定义网络位长度
- 地址块:将前缀相同的连续IP地址组成块
3.2 CIDR表示法
斜线记法:
格式:IP地址/前缀长度
示例:128.14.35.7/20
- IP地址:128.14.35.7
- 前缀长度:20位(网络位)
- 主机位:32-20=12位
地址块计算:
示例:128.14.35.7/20
- 将主机位全部置0:128.14.32.0
- 地址块:128.14.32.0/20
- 可用地址范围:128.14.32.1 ~ 128.14.47.254
3.3 CIDR子网划分
虽然CIDR取消了传统子网概念,但仍可在内部划分逻辑子网:
- 从主机位借用若干位延长前缀
- 创建更小的地址块
示例:
原始地址块:128.14.32.0/20
划分4个子网:
- 借用2位主机位,前缀变为22位
- 四个子网:
- 128.14.32.0/22
- 128.14.36.0/22
- 128.14.40.0/22
- 128.14.44.0/22
3.4 CIDR的优势
- 提高IP地址利用率
- 支持路由聚合(减少路由表项)
- 编址更加灵活
4. 总结对比
划分子网要点:
- 二级IP变三级IP:网络号+子网号+主机号
- 网络号不变,从主机号借用若干位作为子网号
- 对外表现为二级IP,对内为三级IP
- 依赖子网掩码确定网络地址
- IP地址与子网掩码相与得到网络号
构成超网(CIDR)要点:
- 无类编址,取消传统分类
- 使用前缀表示网络位长度
- 采用地址块和斜线记法
- 支持路由聚合(超网)
- 仍可在内部进行逻辑子网划分
5. 关键公式与计算
-
子网数量计算:
- 借用n位主机位:可创建2^n个子网
-
每个子网主机数量:
- 剩余m位主机位:每个子网可用主机数为2^m-2(全0和全1通常不用)
-
CIDR地址块范围计算:
- 给定a.b.c.d/n:
- 网络地址:将后(32-n)位置0
- 广播地址:将后(32-n)位置1
- 可用地址:网络地址+1 ~ 广播地址-1
- 给定a.b.c.d/n:
通过掌握这些核心概念和计算方法,可以灵活地进行IP地址规划和网络设计。