版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/loveCC_orange/article/details/79337818
子网掩码出现的历史背景
从现在来看,在ARPANET的早期,IP地址的设计确实不够合理
- IP地址空间的利用率有时很低
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏
- 两级IP地址不够灵活
所以,为了解决IP地址上面出现的这些问题,从1985年起在IP地址中有增加了一个“子网号字段”,使两级IP地址变为了三级IP地址,这样使用起来更加灵活,这样的方法叫做划分子网。
划分子网的基本思路
- 一个拥有多个物理网络的单位,可以根据自己的需要将物理网络划分为若干个子网,这是单位的内部操作,单位网络对外仍然表现为一个网络
- 划分子网的方法就是从网络的主机号借用若干位作为子网号,这样主机号也减少了相应的位数
经过上述划分以后,二级IP地址就变为了三级IP地址
- 二级IP地址:网络号+主机号
- 三级IP地址:网络号+子网号+主机号
有了划分子网的思路以后,就该解决数据包转发的问题了,因为数据包首部不包含子网划分相关的信息,路由器如何才能找到目的主机所在的子网呢?这个时候就产生了子网掩码。下面给出子网掩码的官方定义:
子网掩码(subnet mask)又叫网络掩码、 地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
子网掩码用连续的1代表网络位,用连续的0代表主机位。这里是为了避免可能出现的差错才推荐使用连续的1带边网络位,RFC文档中并没有规定!!!
这里给出一个二级IP和三级IP的例子(B类IP地址,三级IP对应的子网号为8位)
二级IP地址:
二级IP的子网掩码:
11111111 |
11111111 |
00000000 |
00000000 |
255 |
255 |
0 |
0 |
三级IP地址:
三级IP地址的子网掩码:
11111111 |
11111111 |
11111111 |
00000000 |
255 |
255 |
255 |
0 |
这里说明一下,子网掩码是因为划分子网的需要而产生的,二级地址没有划分子网,也有子网掩码是因为这样做便于查找路由表。因特网现在规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。
二级IP使用默认子网掩码
- A类地址默认子网掩码:255.0.0.0
- B类地址默认子网掩码:255.255.0.0
- C类地址默认子网掩码:255.255.255.0
B类地址的子网划分选择
子网号的位数 |
子网掩码 |
子网数 |
每个子网的主机数 |
2 |
255.255.192.0 |
2 |
16382 |
3 |
255.255.224.0 |
6 |
8190 |
4 |
255.255.240.0 |
14 |
4094 |
5 |
255.255.248.0 |
30 |
2046 |
6 |
255.255.252.0 |
62 |
1022 |
7 |
255.255.254.0 |
126 |
510 |
8 |
255.255.255.0 |
254 |
254 |
9 |
255.255.255.128 |
510 |
126 |
10 |
255.255.255.192 |
1022 |
62 |
11 |
255.255.255.224 |
2046 |
30 |
12 |
255.255.255.240 |
4094 |
14 |
13 |
255.255.255.248 |
8190 |
6 |
14 |
255.255.255.252 |
16382 |
2 |
注:表中子网数去掉了全0和全1的两种情况,现在全0和全1的子网也可以用,但是使用要谨慎
网络地址的计算
例题:已知IP地址是141.14.72.24,子网掩码是255.255.192.0,其网络地址是多少?
子网掩码变为二进制为:
11111111 |
11111111 |
11000000 |
00000000 |
IP地址:
子网掩码与IP地址进行按位与运算,求得网络地址为:141.14.64.0
使用子网时分组的转发
路由表中包含的三项内容:
- 目的网络地址
- 子网掩码
- 下一跳IP地址(路由器直连接口的IP)
无分类编址CIDR(构成超网)
为了解决IP地址资源耗尽和路由表中项目数急剧增长的问题,在使用VLSM的技术上又进一步研究出了无分类编址方法,即无分类域间路由选择CIDR
CIDR的两个特点:
- CIDR消除了传统的A类、B类、C类地址以及划分子网的概念,将IP地址重新划分为两部分前面部分是网络前缀,后面是主机部分,这是没有分类的二级IP地址
- CIDR采用斜线记法,称为CIDR记法,比如192.168.2.4/24表示网络前缀有24位
- CIDR把网络前缀都想听的连续的IP地址组成一个“CIDR地址块”
只要知道CIDR地址块中的任何一个地址,就可以知道这个地址快的起始地址和最大地址,以及地址块中的地址数。
例,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,从中我们可以看出:
- 网络前缀有20位,主机位有12位
- IP地址写为二进制为:10000000.00001110.00100011.00000111
- 所以地址块的块地址为:128.14.32.0
- 地址块的广播地址为:128.14.47.255
由于一个CIDR地址块中有许多地址,所以在路由表中就利用CIR地址块来查找目的网络,这种地址的聚合称为“路由聚合”,或者称为构成超网。
最长前缀匹配
在使用ICDR时,由于采用了网络前缀这种记法,IP地址由网络前缀和主机号两部分组成,这样的话路由器在查找路由表时可能得到不止一个匹配结果,此时我们的办法是:从匹配结果中选择最长网络前缀的路由进行匹配,称为最长匹配或者最佳匹配。