无分类编值(CIDR
)表示法
传统模式(有类别的IP地址划分)
在IP地址的早期分配中,地址被分为A、B、C三类,每类具有不同的网络和主机部分的长度:
- A类:第一个八位字节范围从1到126,后三个八位字节作为主机号。例如,
10.0.0.0
是A类地址,网络部分是第一个字节10
,主机部分是后三个字节。 - B类:第一个八位字节范围从128到191,前两个字节作为网络号,后两个字节作为主机号。例如,
172.16.0.0
是B类地址。 - C类:第一个八位字节范围从192到223,前三个字节作为网络号,最后一个字节作为主机号。例如,
192.168.1.0
是C类地址。
缺点:
- 不灵活:固定的网络和主机位长使得地址分配不够灵活,无法满足不同规模网络的需求。
- 地址浪费:由于固定的网络和主机位划分,很多地址被分配给了不需要那么多主机地址的大型网络,造成地址空间的浪费。
- 路由表膨胀:随着网络数量的增加,路由器的路由表迅速增长,导致路由效率降低。
CIDR(Classless Inter-Domain Routing)
CIDR 表示法是一种用于表示IP地址和它们的子网掩码的方法。CIDR 提供了一种更灵活的方式来定义网络的大小,与传统的A、B、C类地址划分相比,CIDR 允许更有效地分配和使用IP地址空间。
- 无类别限制:CIDR消除了传统的A、B、C类地址的限制,允许任意长度的网络前缀。
- 更有效的地址分配:CIDR允许基于网络的具体需求来分配地址,减少了地址空间的浪费。
- 路由聚合:CIDR允许多个网络地址块聚合为一个单一的路由,简化了路由表,提高了路由效率。
基本组成部分
- IP地址:这是标准的点分十进制格式的IP地址,如
192.168.1.0
。 - 子网掩码长度:一个正斜杠
/
后面跟着一个数字,表示网络部分的位数。**例如/24
表示前24位是网络地址,剩下的8位是主机地址。
计算逻辑
让我们通过一个具体的例子来详细说明CIDR的计算逻辑。假设我们有一个IP地址 192.168.1.64
和一个CIDR表示法 /26
,我们将计算这个网络的相关参数。
- 确定网络前缀长度
/26
表示网络前缀长度为26位。这意味着IP地址的前26位是网络部分,剩下的6位是主机部分。
. 转换为子网掩码- 将26位网络前缀转换为子网掩码,得到
255.255.255.192
。这是因为前26位都是1,转换成十进制就是:
11111111.11111111.11111111.11000000
- 计算网络地址
- 要找到网络地址,我们保留IP地址
192.168.1.64
的前26位,并将主机部分的位清零。 - 由于
64
的二进制是01000000
,它的前6位(主机部分)是000000,因此:
192.168.1.64 的二进制: 11000000.10101000.00000001.01000000
网络地址(清零主机部分): 11000000.10101000.00000001.00000000(即192.168.1.0)
- 计算广播地址
- 广播地址是将网络地址的主机部分所有位设置为1得到的。因此,对于网络
192.168.1.0
(二进制中的主机部分是000000),我们将其转换为:
主机部分全为1: 11000000.10101000.00000001.00111111(即192.168.1.63)
- 确定IP地址范围
- 网络地址是
192.168.1.0
。 - 广播地址是
192.168.1.63
。 - 这意味着在这个网络中,从
192.168.1.0
到192.168.1.63
的所有IP地址都属于这个网络。注意,这个范围内的地址包括网络地址和广播地址。
5.可用的主机地址数量
- 由于网络地址和广播地址不能分配给主机,可用的主机地址数量是
2^(主机位数) - 2
。 - 主机位数 = 子网掩码中主机部分为0的个数 也即 32 - 子网掩码长度
- 在这个例子中,是
2^6 - 2 = 64 - 2 = 62
个可用的主机地址。
192.168.1.64/26 表示 192.168.1.0 到 192.168.1.63 的IP地址范围。其中/26
表示网络部分占用了前26位,剩下的6位用于主机。 10.0.0.0/8
:表示10.0.0.0
到10.255.255.255
的IP地址范围,其中/8
表示网络部分占用了前8位,剩下的24位用于主机。这个网络可以有256 * 256 = 65,536
个可能的IP地址。
CIDR 地址表示方法通过结合基础 IP 地址和前缀长度,提供了一种有效的方法来描述 IP 地址块的大小和位置。它在现代网络中广泛应用,为路由和 IP 地址管理提供了极大的灵活性和效率。