子网掩码(Subnet Mask)又叫网络掩码、地址掩码,是
计算机网络中的一个重要概念。子网掩码是一个 32 位的 2 进制数,用于表示网络地址和主机地址,其对应网络地址的所有位都置为 1,对应于主机地址的所有位都置为 0。
子网掩码有多种表示方法,包括
二进制(如255.255.255.0)、
十进制(点分表示法)和CIDR表示法(如“/24”),它们用于明确指定IP地址中的网络和主机部分。这些表示方法在不同的网络环境中使用,提供了不同层次的精确性和灵活性。
子网掩码必须配合IP地址一起使用,可以确定 IP 地址的网络部分和主机部分,以帮助网络设备识别本地网络和远程网络,从而实现以下功能:确定网络地址、广播地址、区分本地和远程网络、支持子网划分,并确保数据在网络中正确传输和路由。
发展历程
在早期网络设计阶段,即20世纪60年代到80年代初,子网掩码的概念尚未引入,网络设计采用了基本的
网络拓扑和地址分配方式。在这个时期,IPv4地址分配采用了类别地址方案,将 IP 地址划分为A类、B类、C类、D类和E类,这限制了网络的灵活性,导致了地址浪费和不均匀的资源分配。因此需要引入子网掩码来合理的分配有限的互联网资源。
20世纪80年代,子网掩码的引入赋予了网络更大的灵活性和管理能力,让网络管理员可以更细致地划分 IP 地址,从而更有效地利用网络资源。子网掩码的概念将IP地址划分为网络地址部分和主机地址部分,通过
二进制中的"1"和"0"的组合来界定。这一演进允许网络管理员根据需求创建更小的子网,增强了网络设计的灵活性,适应了不同规模和需求的网络。此外,子网掩码的配置和使用有助于降低地址资源浪费,增强网络的安全性和隔离性。
在20世纪90年代,CIDR(
无类别域间路由)的推出标志着网络技术的一项重大进步。这时期子网掩码的发展进入了一个新阶段,以应对早期互联网中的IP地址分配和路由表管理问题。传统的类别地址划分方式(A类、B类、C类)导致了IP地址浪费和庞大的路由表,因为每个组织都获得了固定大小的地址空间,无论实际需求如何。CIDR引入了可变长度子网掩码(VLSM),允许根据需求分配可变数量的地址,从而更高效地利用地址空间。CIDR的斜线表示法(例如,/24)指定子网掩码的长度,使网络管理员能够更灵活地划分IP地址。这一创新减小了路由表的规模,提高了网络性能,简化了路由器配置,成为现代互联网基础设施中不可或缺的一部分。CIDR的出现对网络的规模和效率产生了深远影响,促使网络架构朝着更加灵活和高效的方向发展。
2019年IPv4资源的耗尽标志着互联网的迅猛发展带来的挑战。这一事件促使了IPv6的引入。IPv6采用了128位的地址空间,为互联网提供了广泛的地址空间,以满足未来需求。IPv6没有子网掩码的概念,支持前缀长度的配置,允许网络管理员更好地划分地址块。这不仅解决了IPv4资源枯竭问题,还为未来的网络增长提供了
可持续性。目前IPv6的使用更多是通过IPv4转IPv6隧道通信技术来使用的,因此,IPv6取代IPv4还是需要很长的时间,目前子网掩码的存在仍具有重要意义。
子网掩码的表示
点分十进制表示
这是最常见的子网掩码表示方法。它使用四个
十进制数字,每个数字的范围在0到255之间,表示子网掩码的四个8位组成部分。
将
二进制数转换为十进制数的方法是将每个二进制位与其对应的权值相乘,然后将结果相加。例如,二进制数11011010转换为十进制数为218。
例如子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0
CIDR斜线记法
CIDR(
无类别域间路由)表示法的形式通常是IP地址后面跟斜线和数字,数字表示子网掩码网络标识部分的位数,也就是表示这32位数字中有多少位数为1。在传统的 IP 地址分配中,IP 地址通常分为类别(Class),例如 A 类、B 类、C 类等,每个类别拥有固定数量的主机和网络地址。但是,CIDR 引入了一种更灵活的方法,它不再依赖于固定的类别,而是允许网络管理员根据需要分配任意数量的地址。
例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000,前24位为1。
例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,
二进制表示为11111111.11111111.11110000.00000000,前20位为1。
CIDR表示法更灵活,允许更精确地表示子网掩码的长度。
子网掩码的原理
子网掩码地址划分的原理
子网掩码在IPv4网络中的工作原理是通过将32位的IP地址与相应的32位子网掩码进行逐位
逻辑与运算,将IP地址分割成两部分:网络部分和主机部分。子网掩码中的"1"位与IP地址中的对应位相与,将生成网络标识部分,而子网掩码中的"0"位与IP地址中的对应位相与将生成主机标识部分。
与运算是
计算机中一种基本的逻辑运算方式,符号表示为\u0026,也可以表示为 and。参加运算的两个数据,按
二进制位进行“与”运算。运算规则:0\u00260=0;0\u00261=0;1\u00260=0;1\u00261=1;即:两位同时为“1”,结果才为“1”,否则为0。
例如,对于IP地址192.168.10.11和子网掩码255.255.255.0,通过与运算,得到的网络地址是192.168.10.0,这表示该IP地址属于192.168.10.0这个网络,而主机地址部分是11,即这个网络中的第11台主机。
子网掩码划分子网的原理
子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。
子网划分的方法:
例如:对B类网络135.41.0.0/16需要划分为20个能容纳200台主机的网络。
因为2^4\u003c20\u003c2^5,所以子网位需要占用5个主机位就可以分成32个子网,满足20个子网的要求。
B类网络的默认子网掩码为255.255.0.0,
二进制形式为11111111.11111111.00000000.00000000,子网位占用了5位主机位,所以划分子网后的子网掩码为:11111111.11111111.11111000.00000000,
十进制为:255.255.248.0。
如果以此划分子网,主机位还有11位,可以分配的主机ID有2^11=2048,去掉主机位全0和全1的情况,还有2046个主机ID分配,但是目前只需要200个主机,会造成大量的资源浪费,为了更有效地利用资源我们也可以根据子网所需主机数来划分子网,还以上例来说2^7\u003c200\u003c2^8,也就是说"在B类网络的16位主机位中,保留8位主机位,其它的8位当成子网位。
B类网络135.41.0.0划分成256个能容纳254台主机的子网。此时的子网掩码为11111111.11111111.11111111.00000000,转换为十进制为 255.255.255.0。
子网掩码的分类
缺省子网掩码
也叫默认子网掩码,即未划分子网,对应的网络号的位都置 1 ,主机号都置 0 。
未做子网划分的IP地址:网络号+主机号
A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24
不同类别的网络(A、B、C)分别适用于大型组织和
互联网服务提供商、中等规模组织,以及小型组织和家庭网络,根据其默认子网掩码的大小和可用IP地址数量来满足不同规模和需求的网络。
自定义子网掩码
自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上可以认为是将主机号分为两个部分:子网号、子网主机号。形式如下:
未做子网划分的IP地址:网络号+主机号
做子网划分后的IP地址:网络号+子网号+子网主机号
也就是说IP地址在划分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。子网掩码是32位
二进制数,它的子网主机标识用部分为全“0”。利用子网掩码可以判断两台主机是否在同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。
如:192.168.1.100/25,其子网掩码表示:255.255.255.128,意思就是将192.168.1.0这个
网段的主机位的最高1位划分为了子网。
子网掩码的功能
划分子网
子网掩码允许将大的IP地址空间划分为多个较小的子网。这有助于组织和管理网络资源,减少网络上的通信量,节省IP地址,便于管理。使用子网掩码划分子网后,子网内可以通信,跨子网不能通信,子网间通信应该使用
路由器,并正确配置
静态路由信息。例如,某学校内部的校园网或者某公司内部的网络,都属于是一个子网。
划分网络和主机、路由和数据转发
子网掩码的核心功能是将一个IP地址划分为两部分,即网络标识和主机标识。它通过与IP地址进行按位与运算,将IP地址分解为网络标识和主机标识,从而能够精确识别设备所属的网络以及设备本身。
这种划分网络和主机的机制为路由和数据转发提供了关键的基础。通过子网掩码的运用,网络设备能够精确定位数据包的目标网络,从而使数据包能够被有效地引导至其正确的目的地,从而确保了网络通信的高效运行。
VLSM可变长子网掩码
VLSM(Variable Length Subnet Mask,可变长子网掩码)规定了在一个有类(A、B、C类)网络内包含多个子网掩码的能力,以及对一个子网的再进行子网划分的能力。VLSM技术打破传统的以类(class)为标准的地址划分方法,是为了缓解IP地址紧缺而产生的。他的作用是节约IP地址空间;减少路由表大小。
举一个例子说明:在有类网络中,每个32位的IP地址分为网络号和主机号两部分。当网络号为24位时,主机号为8位,只能有2^8=256个地址,实际上只有254个用于主机。这对多数企业来说太少。而当网络号为16位时,主机号为16位,就会有2^16=65536个地址,对多数公司来说太多。这样的设计容易造成IP地址的浪费。VLSM则有效的解决了IP资源浪费的问题。
IPv6和子网掩码
在IPv6中,是没有子网掩码的概念的,相比 IPv4的地址空间而言,IPv6可以提供2^128个地址空间,几乎不会被耗尽,可以满足未来网络的任何应用,因此不太需要子网,自然没有子网掩码的概念。
一个IPv6地址可以分为如下两部分:
目前(2023年)IPv6的使用更多是通过IPv4转IPv6隧道通信技术来使用的,因此,IPv6取代IPv4还是需要很长的时间,目前子网掩码的存在仍具有重要意义。