版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37933685/article/details/79063219
个人博客:https://suveng.github.io/blog/
1. 传统划分,取主机号,造成IP浪费。
2. CIDR划分法,防止IP浪费。老设备不支持。
ipv4地址划分
ipv4的地址是32位二进制。分四个字节,用10进制表示。
ipv4分5类地址
0*** **** | **** **** | **** **** | **** ****
*为0或1任意
地址范围0.0.0.0-127.255.255.255
(0段和127段不使用)10** **** | **** **** | **** **** | **** ****
*为0或1任意
地址范围128.0.0.1-191.255.255.255
110* **** | **** **** | **** **** | **** ****
*为0或1任意
地址范围:192.0.0.1-223.255.255.255
1110 **** | **** **** | **** **** | **** ****
*为0或1任意
地址范围224.0.0.0-239.255.255.255
1111 **** | **** **** | **** **** | **** ****
*为0或1任意
IP地址结构=网络号+主机号
每一类IP有默认的网络号
类别 | 网络号 | 主机号 | 子网掩码 |
---|---|---|---|
A类 | 前8位 | 32-8=24位 | 255.0.0.0 |
B类 | 前16位 | 32-16=16位 | 255.255.0.0 |
C类 | 前24位 | 32-24=8位 | 255.255.255.0 |
划分子网就是取主机号的任意位用作网络号的扩展,后面称这几位为子网号
现在来假设取了一个C类IP地址,取2位子网号,就是从主机号取了2位。还剩下6位主机号
那么两位二进制就有4种情况。00 01 10 11
,按道理来讲,可以划分4个子网,每个子网里面有 2^6=64台主机才对。 8-2=6位。
但是事实不是的,为了避免子网的网络号,广播地址重复冲突。需要去掉00 01
这两种情况。具体原因在下面.
引用CSDN某位大佬的博文。但是忘了那个了,抱歉。 看看RFC950提到的原因: 假设我们有一个网络:192.168.0.0/24,我们现在需要两个子网,那么按照RFC950,应该使用/26而不是/25,得到两个可以使用的子网192.168.0.64和192.168.0.128 对于192.168.0.0/24,网络地址是192.168.0.0,广播地址是192.168.0.255 对于192.168.0.0/26,网络地址是192.168.0.0,广播地址是192.168.0.63 对于192.168.0.64/26,网络地址是192.168.0.64,广播地址是192.168.0.127 对于192.168.0.128/26,网络地址是192.168.0.128,广播地址是192.168.0.191 对于192.168.0.192/26,网络地址是192.168.0.192,广播地址是192.168.0.255 你可以看出来,对于第一个子网,网络地址和主网络的网络地址是重叠的,对于最后一个子网,广播地址和主网络的广播地址也是重叠的。这样的重叠将导致极大的混乱。比如,一个发往192.168.0.255的广播是发给主网络的还是子网的?这就是为什么在当时不建议使用全0和全1子网。
还需要计算子网掩码,因为每个子网都需要网络号和广播地址。子网掩码(一共32位)只需要将源IP的网络号+子网号置1,用上面的例子就是255.255.255.192(这是化成10进制),数据报发过来的时候只需要目标IP地址和子网掩码进行与运算,就能知道地址到底是哪个的网络,这个需要路由和交换机的知识。
整个的流程就是
如果前面的都懂的话,那么这个CIDR就基本没问题了。
我们通常看见的是210.110.2.65/24这种IP地址形式,那么后面的24是什么?
很明显,这是个c类地址,所以默认的子网掩码就是24位。那么ip后面这个24就是默认的c类地址的子网掩码了。但是还会遇见210.110.2.65/26这种不是默认c类地址的掩码,那么就是上面的所说的子网划分了,划分的子网26-24=2,也就取了2位主机号。但是用cidr划分的就是4个子网而不是上面的2个子网。为什么?!
这就算是cidr的魅力,他的目的就是为了减少传统分法的ip浪费。
然而,人们认识到子网划分的IP地址浪费严重,后来IETF就研究出了其他一些技术,比如可变长子网掩码VLSM,该技术是在子网上进一步划分子网,可提高IP地址资源的利用率;后来在此基础上研究出了无类别域间路由CIDR,即消除了传统的A/B/C等分类以及划分子网,才是采用网络前缀和主机号的方式来分配IP地址,这使得IP地址的利用率更好。这两者的具体技术暂时不阐述。 就目前来说,现在可以使用全0和全1子网。但我们现在学习时,还强调子网划分时要去掉全0全1,这是何道理呢?我个人认为: (1)目前有些网络建设较早,设备也不更新,老设备可能不支持CIDR,那么也就不支持全0全1的子网了。 (2)我们建企业网(单位网络)时,一般是使用私有地址来分配内部主机,小企业使用C类的192.168.0.0网络,中型企业使用172.16.0.0(私有部分)网络,如果还不够用,还有10.0.0.0网络。 既然私有地址如此丰富,为何不去掉全0全1的子网呢?因为真要使用全0全1的子网,还需要在路由器上进行一些特殊的配置。