本次的文章内容均为个人在网络上搜罗知识点并梳理而来,尽量用浅显易懂的方式讲解,但不会讲的很深入,因为只想给刚入行的人理解什么是子网掩码。会不定期的“修缮”文章内容,也欢迎大家指出错误和提出补充。
v-1.1版本
建议看这篇文章之前先了解以下什么是IP地址 ↓
【网络基础】通俗易懂的搞明白什么是IP地址(小白向)
前篇文章的最后我们提到IP地址用过去A-E的分类去划分网络位和主机位,会照成很多资源的浪费,利用效率低下,需要采用新的划分规则,这就是子网掩码诞生的原因之一(注意A-E的分类方式还保留)。
IP地址本身不再记录划分信息,而是通过独立于IP地址的另一串数字来辅组记录,这就是子网掩码。
这串数字也是32位的二进制数,但表示的时候也是通过十进制数展示。比如
11111111 11111111 11111111 00000000 // 连续的1代表网络位,连续的0代表主机位
// 转换
255.255.255.0
转换后的前三组的255就表示一个ip地址中前三组数是网络号,而后一组的0表示一个ip地址中后一组是主机号。比如:
IP:192.168.33.112
子网掩码:255.255.255.0
说明192.168.33是网络位,112 是主机位。这就子网掩码的功能之一。
子网掩码还可以来划分子网!
大致的了解一下什么是子网,其实我们可以简单的理解成在一个局域网中。比如两台笔记本电脑连接同一个wifi,那么他们就在同一个子网中或者说是同一个局域网中,就算路由器连接外网的网线断了,两台电脑之间也能相互通信。
子网的划分需要靠子网掩码来规定。
前面提到子网的划分需要靠子网掩码来规定,怎么判断两台设备是否在同一个子网呢。假如我们有一台A笔记本,一台B笔记本,连接的是同一个wifi,通过查询我们得知:
A笔记本:
IP:192.168.33.112 | 子网掩码:255.255.255.0
B笔记本:
IP:192.168.33.223 | 子网掩码:255.255.255.0
通过IP地址的二进制格式与子网掩码的二进制格式进行and运算,相等,说明处于同一个子网,可以直接通信;
来来来,我们来算下:
// A
11000000 10101000 00100001 01110000 // IP
11111111 11111111 11111111 00000000 // 子网掩码
// and运算理解位为乘就可以了,两者每一位都相乘得
11000000 10101000 00100001 00000000
// 转成十进制为
192.168.33.0
// 同理B运算完后为
192.168.33.0
A和B笔记本的运算结果相等,说明在同一个子网。
通过以上的讲述,我们知道了子网掩码有两个功能
Ip地址分类对应的默认子网掩码分为
当然,比之前灵活的地方在于每一类还可以继续划分子网,被称为可变长子网掩码
同过网络位扩展占用主机位,就可继续划分子网,比如C类中,我想再划分出4个子网,那么子网掩码可以为
255.255.255.192
// 转成二进制
11111111 11111111 11111111 11000000 // 连续的1代表网络位,连续的0代表主机位
可以看到网络位占用了2位主机位进行了扩展,这两位可以有00、01、10、11的组合,每个组合配合后六位数从000000到111111就可以把主机位的十进制总数255划分成
于是就把C类的主机位划分成4个子网。
举例说明:
假如有两个IP
IP 192.168.11.30 子网掩码 255.255.255.192
IP 192.168.11.61 子网掩码 255.255.255.192
可以和上面列举的对比,发现这个子网掩码的最后一组为192,对应转成二进制是11000000,说明是C类并借了2位主机位,也就是网络位有8+8+8+2=26位,那么可以这样去简要表示这俩个ip
192.168.11.30/26
192.168.11.61/26
那么这俩ip在一个子网中吗,首先26个网络号必定是C类,前三组都是1,不用算了都乘1直接确定192.168.11,最后一组C类的为0(192先不看,先看大类),那也不用算了都乘0直接确定192.168.11.0,然后最后一组是C类的再次划分192,两个ip的子网掩码都是192,必定同一个子网了。
综上,可变长子网掩码本质就是通过划分主机位来划分出子网,还要注意的是每个子网的一头一尾也是要给网络地址和广播地址的。
有了子网掩码,IP地址的网络位和主机位的划分变得更加灵活,在有限的IP资源的情况下,提高IP地址的利用率,减少IP地址的浪费。
看完来个赞,年年益寿~