无类别域间路由(Classless Inter-Domain Routing, CIDR):理解IP网络和子网划分(传统的IP地址类ABCDE:分类网络)

文章目录

[1](#1)

无类别域间路由(CIDR):理解IP网络和子网划分

引言

无类别域间路由(Classless Inter-Domain Routing, CIDR)是一种用于在互联网上创建独立的IP地址分配策略的方法。这种方法允许更细粒度的IP地址分配,从而提供了比传统的IP地址类A、B、C更高效的使用[2](#2)

传统的IP地址类

在早期的互联网历史中,IP地址被分为五个类别:A、B、C、D和E。每一种类别都有一个特定的地址范围,并且被设计用于特定大小的网络。这就是所谓的"分类网络"(Classful Network)。

  • 类A(Class A):这个类别的网络可以支持超过1600万个主机(设备)。类A的地址从1.0.0.0到126.0.0.0,其中前8位(即第一个数字)表示网络部分,剩余24位表示主机部分。

  • 类B(Class B):类B网络可以支持最多65534个主机。类B地址从128.0.0.0到191.255.0.0,其中前16位(即前两个数字)表示网络部分,剩余的16位表示主机部分。

  • 类C(Class C):类C网络可以支持最多254个主机。类C地址从192.0.0.0到223.255.255.0,其中前24位(即前三个数字)表示网络部分,剩余的8位表示主机部分。

类D和类E不用于常规的网络操作。类D地址被保留用于多播,而类E地址被保留作为未来使用或实验性质的用途。

然而,这种分类方法很快显得太过死板,无法适应快速增长和变化的互联网需求。比如,如果一家公司需要超过254台但少于65534台的设备,那么他们只能申请一个类B网络,这就浪费了大量的IP地址。这也是后来发展出CIDR的原因,它允许更灵活的IP地址分配。

关于"IP地址的浪费"

IP地址的浪费主要是由于传统的IP地址分配方式引起的。在CIDR(无类别域间路由)出现之前,IP地址是按照固定的类A、B、C来分配的。

  • 类A网络有16,777,214个可用的IP地址
  • 类B网络有65,534个可用的IP地址
  • 类C网络有254个可用的IP地址

如果一家公司需要超过254台但少于65534台的设备,按照传统的分配方式,他们只能申请一个类B网络。即使他们只使用了其中的一部分IP地址,剩余的IP地址也不能被其他人使用,这就导致了大量IP地址的浪费。

而CIDR通过变长子网掩码(VLSM)可以更灵活地分配IP地址,从而减少了IP地址的浪费。例如,对于需要超过254台但少于65534台设备的公司,可以将一个类B网络分成多个小网络,每个小网络的大小刚好满足公司的需求,剩余的IP地址可以分配给其他需要的人,从而实现IP地址的有效利用。

IP地址与CIDR

IP地址概述

互联网协议地址(Internet Protocol address,IP地址)是指分配给每个连接到互联网的设备的数字标签。在最常见的IPv4中,一个IP地址通常表示为四个十进制数,每个数位介于0和255之间,以点(.)分隔,例如192.0.2.0。

网络号与主机号

[3](#3)

CIDR记法(网络 = 网络地址/子网掩码

CIDR在表示IP地址和其相关网络时,会采用一个"斜线"记法。例如,192.0.2.0/24就代表了一个包含256个IP地址的网络,其中192.0.2.0是网络的基础地址,24表示子网掩码的位数,即这个网络中有24位是网络前缀,剩下的8位是用于该网络内部的主机。

表示一个网络 192.0.2.0/24

这个网络的网络部分 (192.168.2).x

这个网络的主机部分 192.0.2.(x)

python 复制代码
ip_network = '192.0.2.0/24'
base_address = ip_network.split('/')[0]
subnet_mask = int(ip_network.split('/')[1])

网络和广播地址

在一个CIDR块中,有两个地址不能被赋予主机:网络地址和广播地址。网络地址是CIDR块中的第一个地址,广播地址是最后一个。例如,在192.0.2.0/24中,192.0.2.0是网络地址,192.0.2.255是广播地址。

python 复制代码
network_address = '192.0.2.0'
broadcast_address = '192.0.2.255'

CIDR的优势

减少路由表项

CIDR的引入极大地减少了路由表项的数量。在CIDR出现之前,每一个IP地址都需要在路由表中单独列出。但是,通过将IP地址组织成CIDR块,可以使用一个表项来表示整个块,从而显著降低了路由表的大小[4](#4)

缓解IPv4地址耗尽

通过更灵活的分配IP地址,CIDR也有助于缓解IPv4地址空间的耗尽问题。在CIDR出现之前,IP地址只能按照固定大小的块(类A、B或C)进行分配。这种方式在处理小型网络时浪费了大量的地址。然而,CIDR允许任何大小的地址块被分配,从而使得地址空间的使用变得更加高效[5](#5)

CIDR地址分配示例

例如,如果一个公司需要500个IP地址,按照早期的策略,他们将会被分配一个类B地址,即使他们只使用了其中的一小部分,其余的大约65000个地址将无法被其他组织使用,从而造成浪费。

然而,在CIDR中,地址可以按照任何大小进行划分。对于上述例子,我们可以为这家公司分配一个/23(包含512个地址)的网络,或者两个/24网络(每个包含256个地址)。这种方式下,公司能够得到接近他们所需数量的地址,同时也极大地减少了未使用地址的浪费。

python 复制代码
# Example of allocating one /23 networks
network1 = '192.0.2.0/23',地址范围从192.0.2.0 - 192.0.3.255,共512个地址

# Or allocate two /24 network
network1 = '192.0.2.0/24',地址范围从192.0.2.0 - 192.0.2.255,共256个地址
network2 = '192.0.6.0/24',地址范围从192.0.6.0 - 192.0.6.255,共256个地址

这种灵活的地址分配策略使得IPv4地址空间的使用变得更加高效,并且缓解了因为过度分配而导致的IPv4地址耗尽问题。

结论

CIDR是一种强大且灵活的工具,它使得IP地址的分配和管理变得更加简单和高效。无论是在减少路由表的大小,还是在缓解IPv4地址空间的耗尽方面,CIDR都起到了重要的作用。因此,对于任何需要理解或管理IP地址的人来说,理解CIDR都是非常重要的。

参考文献


  1. 参考文章:计算机网络(第四章)二 ↩︎

  2. Wikipedia: Classless Inter-Domain Routing ↩︎

  3. 参考文章:一文完全理解IP ↩︎

  4. How CIDR Works ↩︎

  5. RFC 4632 - Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan ↩︎

相关推荐
2401_8742751724 分钟前
websocket
网络·笔记·websocket·网络协议·学习
mzhan01741 分钟前
wireshark: Display Filter Reference
网络·测试工具·wireshark
炎码工坊1 小时前
云原生安全:网络协议TCP详解
网络协议·tcp/ip·网络安全·云原生·云计算
鲨鱼吃橘子1 小时前
HTTPS协议原理
网络·c++·网络协议·算法·http·https
MIT_CompNote_探索者2 小时前
Linux操作系统向上提供了哪些系统调用?
linux·服务器·网络
le1616163 小时前
TCP建立连接为什么不是两次握手,而是三次,为什么不能在第二次握手时就建立连接?
java·网络·tcp/ip·面试
源力祁老师3 小时前
Odoo: Owl Props 深度解析技术指南
前端·javascript·网络
白熊1887 小时前
【图像大模型】IP-Adapter:图像提示适配器的技术解析与实践指南
网络·网络协议·tcp/ip
天氰色等烟雨9 小时前
HTTP Digest 认证:原理剖析与服务端实现详解
网络·网络协议·http
zym大哥大10 小时前
网络层IP协议
linux·服务器·网络