- 掩码(mask)
根据掩码来判断网络位
掩码的定义:和IP地址的表示方法异样,但是必须是连续的0和1组成,而且前面必须是1,后面必须是0(如:8位掩码(是8进制),8进制转2进制:255.0.0.0_2进制为:11111111.00000000.0000000.00000000 /8).
掩码的1标记了网络位,0标注了主机位
就是说:转换为2进制后,第一位是1开头的就是网络位,0开头的就是主机位
- 计算机是通过“相与运算”算出来的网络位这些
如:
192.168.1.1/24 (8进制,下面为转为换二进制的数)
1100000.10101000.00000001.00000001 ——IP地址
11111111.11111111.11111111.00000000——掩码
11000000.10101000.00000001.00000000——网络位
================================================================================
VLSM——可变长子网掩码
本质:增加子网掩码的长度,网络位的数量增加了,导致网络的数量增加了,代价是主机位少了,代表每个网络的可用IP地址数量减少了

下面内容来源于百度百科:
- 定义
VLSM(Variable Length Subnet Mask,可变长子网掩码)规定了如何在一个进行了子网划分的网络中的不同部分使用不同的子网掩码。这对于网络内部不同网段需要不同大小子网的情形来说很有效。
- 简介
VLSM其实就是相对于类的IP地址来说的。A类的第一段是网络号(前八位),B类地址的前两段是网络号(前十六位),C类的前三段是网络号(前二十四位)。而VLSM的作用就是在类的IP地址的基础上,从它们的主机号部分借出相应的位数来做网络号,也就是增加网络号的位数。各类网络可以用来再划分子网的位数为:A类有二十四位可以借,B类有十六位可以借,C类有八位可以借(可以再划分的位数就是主机号的位数。实际上不可以都借出来,因为IP地址中必须要有主机号的部分,而且主机号部分剩下一位是没有意义的,所以在实际中可以借的位数是在上面那些数字中再减去2,借的位作为子网部分)。
这是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码。开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个子网进一步分成多个小子网时有更大的灵活性。如果没有VLSM,一个子网掩码只能提供给一个网络。这样就限制了要求的子网数上的主机数。另外,VLSM是基于比特位的,而类网络是基于8位组的。
在实际工程实践中,能够进一步将网络划分成三级或更多级子网。同时,能够考虑使用全0和全1子网以节省网络地址空间。某局域网上使用了27位的掩码,则每个子网可以支持30台主机(25-2=30);而对于WAN连接而言,每个连接只需要2个地址,理想的方案是使用30位掩码(22-2=2),然而同主类别网络相同掩码的约束,WAN之间也必须使用27位掩码,这样就浪费28个地址。
- 原理
可变长子网掩码实际上是相对于标准的有类子网掩码而言的,对于有类的IP地址的网络号部分的位数就相当于默认掩码的长度。A类的第一段是网络号(前八位),B类地址的前两段是网络号(前十六位),C类的前三段是网络号(前二十四位)。而VLSM的作用就是在有类的P地址的基础上,从他们的主机号部分借出相应的位数来做网络号,也就是增加网络号的位数,增加了掩码的长度。各类网络可以用来再划分的位数为:A类有二十四位可以借,B类有十六位可以借,C类有八位可以借(可以再划分的位数就是主机号的位数。实际上不可以都借出来,因为P地址中必须要有主机号的部分,而且主机号部分剩下一位是没有意义的,剩下1位的时候不是代表主机号就是代表广播号,所以实际最多可以借位数为主机位数减去2)。这是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码。开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个网分成多个子网时有更大的灵活性。如果没有ⅥISM,一个子网掩码只能提供给一个网络。这样就限制了要求的子网数上的主机数。
- 基本算法

=============================================================================
某公司,有四个部门,分别是A,B,C,D,每个部门需要20个IP地址,该公司申请了一个C类地址块,192.168.134.0/24,请给出合理的子网划分方案。
自行转换成8进制为:
192.168.134.0/24
11000000.10101000.10010011.00000000——地址段
11111111.11111111.11111111.00000000——掩码
根据网络数量来划分
由于该公司有4个网络,所以需要增加两位子网掩码

增加后就变为了:

弊端:这个就满足了ABCD4个类的使用需求, 但是,如果由于公司发展,城里了一个新的E部门,该部门也需要20个IP地址,那么这个就无法扩展了!!!!
所以根据主机数量来分析更为稳妥
根据主机数量来划分
由于每个网络需要20个IP地址,那么需要的主机位就是: 2^n-2>20 ,n最小是5,所以需要5个主机位就够用了

挪用了3位主机位为网络位,所以掩码变成了27位(挪用多少主机位就用24加挪用的主机位数量,这就是:24+3)

按照上面根据主机数量来划分,最终划分出了8个网络,每个网络的主机位数量是5个,可用IP地址就是2^5-2=32-2=30个,可以满足abcd四个网络的需求,而且也便于后期扩展,其中:
网络地址:192.168.134.0/27
可用地址:192.168.134.1/27~192.168.134.30/27
网关地址:192.168.134.30/27 (网络的出口,必不可少)
广播地址:192.168.134.31/27
某公司,abcd四个部门,a部门需要100个IP地址,B部门需要50个IP地址,C和D部门需要25个IP地址,现在公司申请了一个c类地址块,请给出合理的子网划分方案
自行转换成8进制为:
192.168.147.0/24
11000000.10101000.10010011.00000000——地址段
11111111.11111111.11111111.00000000——掩码
根据主机数量来划分
A需要100个IP地址,2^n-2>100_n=7,所以需要7个主机位

上面第一次子网划分后,把192.168.147.0/25分配给A以后,现在还剩下一个192.168.147.128/25
现在进行第二次子网划分:根据需求,B需要50个ip地址,2^n-2>50_n=6,需要6个主机位, 现在还剩7个主机位,则:

上面第二次划分子网后,把192.168.147.128/26分配给B网络,每个网络里面有6个主机位,所以又2^6-2=62个可用ip地址,满足B网络的需求,还剩一个192.168.147.192/28
现在进行第三次子网划分:根据需求,c和d两个网络各需要20个ip地址,那么20个IP地址需要2^n-2>20_n=5,需要5个主机位,现在还有6个主机位,可以拿出5个主机位用来当做新的网络位,则:

27位掩码可用IP为:2^5-2=30个可用IP地址,所以把这两个地址分配分配给C和D,就满足使用条件了。
总结
上面的所有划分中,分为三次划分
- 第一次划分
192.168.147.0/25——用来分配给A
192.168.146.128/25——继续用来划分
- 第二次划分
192.168.147.128/26——用来分配给B
192.168.147.192/26——继续用来划分
- 第三次划分
192.168.147.192/27——用来分配给C
192.168.147.224/27——用来分配给D
- 最终
a部门需要100个地址:192.168.147.0/25——2^7-2=126个地址_满足
b部门需要50个IP地址:192.168.147.128/26——2^6-2=62个地址_满足
C部门需要25个地址:192.168.147.192/27——2^5-2=30个地址_满足
D部门需要25个地址:192.168.147.192/27——2^5-2=30个地址_满足
========================================================================

题目解析:注意,上图中是有2个路由,不是单纯的一个路由50个hosts,而是二级路由一个需要50个主机位,第一个路由到后面二级路由之间也需要网络,还需要2个地址用来做路由器的接口ip,所以上面一共需要6个网络地址。 怕你没懂,我把答案附下图,让你明白是什么意思,后面再做分析。

分析:
根据主机数量进行分析,所以查看50个IP地址需要多少个主机位2^n-2>50_n=6 所以呢,需要6个主机位
那现在有的网络是172.16.32.0/20,转换为二进制如下:
172.16.32.0/20
10101100.00010000.0010 | 0000.00000000——IP地址范围
11111111.11111111.1111|0000.00000000——掩码
由于需要6个主机位,所以在现有网络中的12个主机位里面使用6个主机位。

上面红色标记的部分就是使用的6个主机位,那么还剩下6个主机位,那就使用这个6个主机位用作网络位

上述就是掩码增长后的网络,上述棕色的部分是新的网络位,那这些新的网络位实际上是原来的“主机位”,主机位是不是可以即为0又为1

现在,分了2^6=64个网络,那这64个网络里面,每个网络里有多少个IP地址?
2^6-2=62个,是否能满足一个网络50个IP地址? 能满足。
我现在有4个网络需要50个IP地址,那就从这64个网络中,拿出4个,给上
面有需要的网络用,那么还剩下60个网络那现在图里面还剩下4个网络,这4个网络,每个网络需要2个IP地址,分别作为路由器的接口IP。

2个IP地址需要多少个主机位?
2^n-2>=2_n=2,需要两个主机位就足够了
由于上面第一次子网划分还剩下60个网络,从里面拿出来一个

该网络有6个主机位,那我现在需要2个主机位

上面红色标记的部分是我需要的主机位,还剩下4个主机位,使用这4个主机位用来作为新的网络位,总共16个网络

我现在需要4个网络,所以从上面第二次子网划分的16个网络中,
拿出4个分配给需要的网络,剩下的,作为保留。
综上已经满足所有需求了,至此,还剩
59个—— 62个可用IP地址的网络(172.16../26)
12个—— 2个可用IP地址的网络(172.16.33.*/30)
思考:第二个网络分配的时候,上面用的是30位掩码,也可以用31位掩码,只有2个IP(因为这个只用来路由连接,可以不需要广播地址和网络地址,只需要2个网关即可),可以自行尝试用31位掩码来给这路由通讯做分配。
==========================================================================
先来看几个非常规IP:
192.168.0.0/16
192.0.0.0/8
0.0.0.0/0 缺省网络(可以表示任何网络)
CIDR(Classless Inter-Domain Routing,无类域间路由选择)它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。它可以将好几个IP网络结合在一起,使用一种无类别的域际路由选择算法,使它们合并成一条路由从而较少路由表中的路由条目减轻Internet路由器的负担。
CIDR 还使用“斜线记法”,它又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应于三级编址中子网掩码中比特1的个数)。 IP地址::={<网络前缀>,<主机号>} / 网络前缀所占位数
CIDR仅将IP地址划分为网络前缀和主机号两个部分,可以说又回到了二级IP地址的表示,不过大家要注意,最后面用“/”斜线分隔,在其后写上了网络前缀所占的位数,这样就不需要告知路由器地址掩码,仅需要通过网络前缀所占的位数就可以得到地址掩码,为了统一,CIDR中的地址掩码依然称为子网掩码。
CIDR表示法给出任何一个IP地址,就相当于给出了一个CIDR地址块,这是由连续的IP地址组成的,所以CIDR表示法构成了超网,实现了路由聚合,即从一个IP地址就可以得知一个CIDR地址块。例如:已知一个IP地址是:128.14.35.7/20,那么这个已知条件告诉大家的并不仅仅是一个IP地址这么简单,我们来分析一下。
128.14.35.7/20 = 10000000 00001110 00100011 00000111
即前20位是网络前缀,后12位是主机号,那么我们通过令主机号分别为全0和全1就可以得到一个CIDR地址块的最小地址和最大地址,即
最小地址是:128.14.32.0 = 10000000 00001110 00100000 00000000
最大地址是:128.14.47.255 = 10000000 00001110 00101111 11111111
子网掩码是:255.255.240.0 = 11111111 11111111 11110000 00000000
因此就可以看出来,这个CIDR地址块可以指派(47-32+1)*256=4096个地址,这里没有把全0和全1除外。
CIDR是把几个标准网络合成一个大的网络
VLSM是把一个标准网络分成几个小型网络(子网)
CIDR是子网掩码往左边移了,VLSM是子网掩码往右边移了
在CIDR表示法中也可以进行进一步的子网划分,和前面的子网划分类似,我们只需要从主机号中借走一定的位数即可,这里与前面的基本子网划分不同,借走2位时可以划分成4个子网,不用减2,其他位数类似。下面通过一个例子来讲解CIDR中的子网划分。
例:
某个机构拥有一个大的CIDR地址块,即206.0.64.0/18,现在某个高校需要申请一个较大的CIDR地址块以供学校使用,学校内部又分为4个系,由于每个系的人数不一样,所以要给人数较多的系分配较多的IP地址,人数较少的系分配较少的IP地址,现在采用以下的分配方案:
机构分配给该高校一个CIDR地址块:206.0.68.0/22,然后该高校内部的分配方案如下:
一系:206.0.68.0/23,一系内部又分为206.0.68.0/25、206.0.68.128/25、206.0.69.0/25和206.0.69.128/25四个子网。
二系:206.0.70.0/24,二系内部又分为206.0.70.0/26、206.0.70.64/26、206.0.70.128/26和206.0.70.192/26四个子网。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。


既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
面试资料整理汇总


这些面试题是我朋友进阿里前狂刷七遍以上的面试资料,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。
面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了
在这里祝大家能够拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
s/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />
面试资料整理汇总
[外链图片转存中…(img-8nLmDli1-1713705568597)]
[外链图片转存中…(img-1tlSZkfL-1713705568597)]
这些面试题是我朋友进阿里前狂刷七遍以上的面试资料,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。
面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了
在这里祝大家能够拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
本文详细介绍了掩码位数原理,VLSM(可变长子网掩码)技术以及CIDR(无类域间路由选择)的概念。通过实例展示了如何根据网络和主机数量进行子网划分,以及如何利用VLSM有效地分配IP地址。同时,探讨了CIDR如何实现路由聚合和地址块计算。
699

被折叠的 条评论
为什么被折叠?



