什么是子网掩码?

子网掩码(Subnet Mask)是一种用于指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

去找公司运维问出口ip,得到答复说:XX.XX.XX.128/25 这个网段一百多个ip都是我们的ip
内心:???100+的ip?这个25代表什么?应该是误把255打成25了吧!恩,对的,应该是想说XX.XX.XX.128到XX.XX.XX.255这差不多有100多个的!!
是问了问这个25是什么,运维大哥回答说这是子网掩码。?????

我们可以将IP地址比作一个人的住址,其中包含了省、市、区和具体的门牌号信息。子网掩码的作用就像是一个过滤器,它可以帮助计算机确定一个IP地址是否与本地网络在同一个“市区”内。

19bff215820bf63e8898a3eda564d558.png

以IPv4地址为例,其子网掩码通常是一个32位的数字,其中前一部分为连续的1,后一部分为连续的0。例如,常见的子网掩码有255.255.255.0、255.255.0.0、255.0.0.0等。其中,连续的1部分表示网络地址,连续的0部分表示主机地址。

当计算机需要发送数据到另一个IP地址时,它会将目标IP地址和子网掩码进行按位与运算。如果结果与自己所在的网络地址相同,则说明目标IP地址在同一个本地网络内;否则,说明目标IP地址在不同的网络中,需要将数据发送到默认网关进行转发。

子网掩码不能单独存在,必须结合IP地址一起使用。它的作用是将某个IP地址划分成网络地址和主机地址两部分。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。

在TCP/IP协议中,SUBNET MASK子网掩码)的作用是用来区分网络上的主机是否在同一网络取段内。在大型网络中,CLASS A的SUBNET MASK为255.0.0.0,CLASS B的SUBNET MASK为255.255.0.0,CLASS C的SUBNET MASK为255.255.255.0。

假设我们有一个192.168.1.1的IP地址,我们知道它的子网掩码是255.255.255.0。这意味着前三个八位组(24位)是网络部分,最后一个八位组(8位)是主机部分。因此,这个IP地址的网络部分是192.168.1,主机部分是1。

如果我们有一个192.168.1.2的IP地址,它的子网掩码也是255.255.255.0。这意味着它也在同一个网络段上,因为它们的网络部分(前三个八位组)相同。但是,这两个IP地址的主机部分是不同的,因此它们指向网络上的不同主机。

89e618d4ce75e77c6894fb6f35e2a258.png

举几个例子,可以加深理解子网掩码的用途。

例子1:
假设有一个IP地址为192.168.1.100,它的子网掩码为255.255.255.0。将这两个数值进行“与”运算后,得到的结果是192.168.1.0,这就是该IP地址所属的网络地址。通过这种方式,可以将一个IP地址划分成若干个子网,以便于网络管理员进行管理和控制。

例子2:
假设一个网络中需要容纳100台主机,使用子网掩码255.255.255.0可以将该网络划分成256个子网,每个子网最多包含254台主机。这样就可以更好地管理和控制网络,提高网络的性能和安全性。

例子3:
如果一个IP地址的子网掩码为255.0.0.0,说明它是A类IP地址。如果是255.255.0.0,则说明它是B类IP地址。如果是255.255.255.0,则说明它是C类IP地址。这些分类是依据子网掩码来进行的,而不同类别的IP地址拥有不同的网络标识和主机标识。

8ce9622d2ddae79315f3de1c9993c7b0.png

主机地址和网络地址

网络地址: 可以简单理解我们平时常说的网段 主机地址: 是在这个网段中不同设备的地址

子网掩码

子网掩码的作用:将 IP 地址划分成网络地址和主机地址两部分。

子网掩码是一个网络掩码,地址掩码,是用来指明 IP 地址的哪些标识是主机所在的子网,以及哪些标识是主机的位掩码,子网掩码不能单独存在,必须和 IP 结合使用。

A类的默认子网掩码 255.0.0.0
B类的默认子网掩码 255.255.0.0  
C类的默认子网掩码 255.255.255.0

子网掩码的计算方式

子网掩码的位数决定可能的子网数目和子网的主机数目。

根据子网数

利用子网数来计算

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

1.将子网数目转化为二进制来表示 2.取得该二进制的位数,为 N 3. 取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。

如欲将B类IP地址168.195.0.0划分成27个子网:

1)27=11011

2)该二进制为五位数,N = 5

3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0

9c3f21df6dcc978898fbbeba63582579.png

根据主机数

利用主机数来计算

1)将主机数目转化为二进制来表示
2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:

1) 700=1010111100
2)该二进制为十位数,N = 10
3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255

然后再从后向前将后10位置0,即为:11111111.11111111.11111100.00000000

即255.255.252.0。这就是划分成主机为700台的B类IP地址168.195.0.0的子网掩码。

如何根据子网掩码计算网络地址和主机标识

子网掩码与IP地址一样是32位地址,然后将IP地址与子网掩码进行与运算即可得到网络地址

举个例子:

IP地址为192.168.10.2,子网掩码为255.255.255.240。
先将十进制转换成二进制:
IP地址:11000000 10101000 00001010 00000010
子网掩码:11111111 11111111 11111111 11110000
进行与运算:--------------------------
          11000000 10101000 00001010 00000000
则可得其网络标识为192.168.10.0,主机标识为2。

XX.XX.XX.128/25

回到开头的,已经说过了子网掩码也是32位的地址,那么开头的25怎么转化呢?

25的意思是网络号为25,就代表连续的25个1,然后剩下的用0补齐

即11111111 11111111 11111111 10000000

(1)主机号:主机号+网络号=32,32-25=7 
(2)网络地址:当7位主机号全为0,也就是XX.XX.XX.128 
(3)广播地址:当7位主机号全为1,也就是XX.XX.XX.255 
(4)可用地址数量:7位主机号有2 ^ 7 种结果,但是要去掉网络地址和广播地址,即:2^7-2=126(这个也就是运维所说的一百多个ip)

a4c109e6cb4763d2d19b244963c55efe.png

总之,子网掩码是一种非常重要的概念,它用于区分网络上的主机是否在同一网络段上。这在构建和维护大型网络时非常有用,因为它可以帮助网络管理员更有效地管理和跟踪网络上的主机和设备。

### 什么是子网掩码子网掩码是一种用于划分IP地址结构的32位数字,它与IP地址结合使用,帮助设备识别网络地址和主机地址的边界。子网掩码由连续的1和连续的0组成,其中连续的1表示网络位,连续的0表示主机位。例如,标准的IPv4地址`192.168.1.1`与其子网掩码`255.255.255.0`配合使用时,前24位代表网络地址,后8位代表主机地址[^3]。 子网掩码网络通信中起到了关键作用。它使得设备能够判断目标IP地址是否位于本地子网中,从而决定是直接通信还是通过路由器转发数据包。这种划分方式提高了网络管理的灵活性和效率,并有助于减少广播域的大小,优化网络性能[^1]。 ### 子网掩码网络通信中的功能和作用 子网掩码的主要功能是将一个IP地址划分为网络地址和主机地址两部分。通过与IP地址进行按位“与”操作,可以提取出网络地址。例如,当一个设备想要判断另一个IP地址是否属于同一子网时,它会将自己的IP地址与子网掩码进行“与”运算,再将目标IP地址与同一子网掩码进行“与”运算,如果结果相同,则说明目标IP在同一子网内,可以直接通信;否则,需要通过网关进行转发[^1]。 在早期的IP地址分类(A类、B类、C类)中,默认的子网划分方式存在资源浪费的问题。例如,C类网络最多只能容纳254个主机,而某些网络可能只需要几个IP地址,导致大量地址被浪费。子网掩码的引入解决了这一问题,它允许网络管理员根据实际需求灵活划分子网,从而更有效地利用IP地址空间[^5]。 此外,子网掩码还支持更细粒度的网络划分,即子网划分(Subnetting)。通过自定义子网掩码,可以将一个大的网络进一步划分为多个逻辑子网,每个子网可以独立管理,提高网络的安全性和可管理性。例如,一个公司可以将其内部网络划分为多个部门子网,每个子网拥有自己的子网掩码网络地址[^1]。 ### 示例:子网掩码的使用 以下是一个使用Python的IP地址和子网掩码判断两个IP是否在同一子网的示例: ```python import ipaddress # 定义两个IPv4地址和子网掩码 ip1 = ipaddress.IPv4Address('192.168.1.10') ip2 = ipaddress.IPv4Address('192.168.1.20') subnet_mask = ipaddress.IPv4Address('255.255.255.0') # 计算网络地址 network_address1 = ip1 & subnet_mask network_address2 = ip2 & subnet_mask # 判断是否在同一子网 if network_address1 == network_address2: print("IP地址位于同一子网") else: print("IP地址不在同一子网") ``` 通过这种方式,子网掩码网络通信中实现了高效的路由决策和子网划分,提升了网络的整体性能和资源利用率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值