【计算机网络】IP地址和子网掩码(子网掩码篇)
为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少,这时我们就提出了子网掩码的概念,今天我们就来学习一下这个有趣的知识吧。这一种想了解更多《计算机网络》相关内容请订阅内容【计算机网络】。注:本教程为《计算机网络基础课》,适用于《计算机网络》初学
文章目录
前言
为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少,这时我们就提出了子网掩码的概念,今天我们就来学习一下这个有趣的知识吧。这一种想了解更多《计算机网络》相关内容请订阅内容【计算机网络】。
注:本教程为《计算机网络基础课》,适用于《计算机网络》初学以及考研一轮复习的同学学习,并非为考研复习课,内容更偏向基础知识
什么是子网掩码?
子网掩码(Subnet Mask)是一个用于区分IP地址中网络部分和主机部分的数字串。它通过与IP地址进行按位与(AND)操作,来确定一个IP地址是属于哪个子网以及该子网内可以有多少台主机。子网掩码的作用主要是帮助网络设备理解如何有效地路由数据包。
- 子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。
- 只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
- 子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。
- 子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。
子网掩码有助于减少网络广播的范围,提高网络性能。在没有子网掩码之前,所有的设备都处在同一个大的广播域中,任何广播都会发送给网络上的所有设备,这会导致网络拥塞和不必要的资源消耗。通过使用子网掩码,可以将网络划分为多个更小的子网,每个子网都有自己的广播域,从而减少了广播的范围,提高了网络的效率和安全性。
注:在计算子网掩码时,我们要注意IP地址中的保留地址,即" 0"地址和广播地址,它们是指主机地址或网络地址全为" 0"或" 1"时的IP地址,它们代表着本网络地址和广播地址,一般是不能被计算在内的。
子网掩码的组成
子网掩码通常是由一系列的1和0组成,其中1代表网络部分,0代表主机部分。例如,对于IPv4地址,一个常见的子网掩码是255.255.255.0,这个掩码表示前三个字节(即24位)是网络部分,最后一个字节(即8位)是主机部分。这意味着,使用这个子网掩码的IP地址,前三个字节必须相同才能属于同一个子网,而最后一个字节可以是0到255之间的任意值(但全0和全1有特殊用途,通常不用作主机地址),表示子网内可以有254个可用的主机地址(因为0和255被保留)。
组成规则
- 长度:子网掩码的长度固定为32位,通常以点分十进制(Dotted Decimal)的形式表示,如255.255.255.0。
- 二进制表示:在二进制形式下,子网掩码由连续的1和连续的0组成。左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
表示方法
- 点分十进制表示:与IP地址格式相同,
二进制转换十进制,每8位用点号隔开
,如255.0.0.0、255.255.255.0
等。 - CIDR表示法:
IP地址/n
,在IP地址后加上“/”符号以及一个数字(1-32),表示子网掩码中网络标识位的长度,如192.168.1.1/24
,其子网掩码为255.255.255.0
。
子网掩码的分类
标准(默认)子网掩码:
- A类地址:默认子网掩码为255.0.0.0,表示网络部分占用前8位,主机部分占用后24位。
- B类地址:默认子网掩码为255.255.0.0,表示网络部分占用前16位,主机部分占用后16位。
- C类地址:默认子网掩码为255.255.255.0,表示网络部分占用前24位,主机部分占用后8位。
注:这些默认子网掩码适用于不需要进一步划分子网的简单网络
变长子网掩码(VLSM):
变长子网掩码允许在同一网络地址空间内使用不同长度的子网掩码。这意味着可以根据需要为不同的子网分配不同数量的主机地址,从而实现更灵活的网络规划。
例如,在一个C类地址空间(如192.168.1.0/24)中,可以使用255.255.255.128(/25)作为子网掩码来创建一个子网,该子网包含128个地址(包括网络地址和广播地址),但其中只有126个可用作主机地址。然后,可以使用255.255.255.192(/26)进一步划分子网,每个子网包含64个地址,但只有62个可用作主机地址。
无类别域间路由(CIDR):
CIDR不仅是一个表示方法,它还推动了子网掩码的灵活使用。CIDR通过前缀长度(即子网掩码中1的个数)来定义IP地址块的大小,而不是传统的点分十进制子网掩码。
例如,192.168.1.0/24表示一个C类地址空间,其子网掩码为255.255.255.0。CIDR表示法使得子网划分和聚合变得更加简单和直观。
全零和全一子网掩码:
在某些特殊情况下,可能会遇到全零(0.0.0.0)或全一(255.255.255.255)
的子网掩码,但它们通常不用于子网划分。
全零子网掩码(0.0.0.0)通常用于默认路由或表示“不指定”的子网掩码。
全一子网掩码(255.255.255.255)通常用于表示单个IP地址的广播地址,或者在某些特殊情况下用于限制广播范围到单个子网。
子网掩码的计算
对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。
确定IP地址类别及默认子网掩码
首先,根据IP地址的首段范围确定其所属类别(A类、B类、C类等),并确定该类IP地址的默认子网掩码。例如:
A类地址(1.0.0.0到126.255.255.255)的默认子网掩码是255.0.0.0。
B类地址(128.0.0.0到191.255.255.255)的默认子网掩码是255.255.0.0。
C类地址(192.0.0.0到223.255.255.255)的默认子网掩码是255.255.255.0。
计算子网掩码
根据子网数量计算
将子网数目转化为二进制:例如,如果需要将一个网络划分为4个子网,则子网数目为4,转化为二进制为100。
确定二进制位数N:上例中二进制100有3位,所以N=3。
修改默认子网掩码:对于B类地址,默认子网掩码是255.255.0.0。将前两位保持不变(代表网络部分),然后取N位(本例中为3位)放在第三位字节的开头,其余位用0填充。因此,新的子网掩码为255.255.224.0(因为224是11100000,前3位为1,后5位为0)。
根据主机数量计算
将主机数目转化为二进制:如果每个子网需要容纳250台主机,则主机数目加2(为网络地址和广播地址留出空间)后为252,转化为二进制是11111100。
确定二进制位数N:上例中二进制11111100有8位,但因为主机部分不能全为0或全为1,且至少需要一位用于区分不同的主机,所以实际可用的主机位数是N-2(去掉全0和全1的情况)。但在这里,我们直接考虑N作为需要置1的位数。
修改默认子网掩码:同样以B类地址为例,将默认子网掩码255.255.0.0的主机部分(最后一个字节)全部置为1,得到255.255.255.255。然后,从后向前将N位(本例中考虑8位,但实际划分时可能需要根据具体情况调整)置为0。然而,由于这种方法直接考虑N位可能不准确(因为需要去掉全0和全1的特殊情况),通常更推荐使用基于子网数目的方法来计算,并确保子网内主机数的实际分配符合需求。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)