要了解网络掩码(子网掩码)得先了解什么是IP地址
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。(可以类比电话号码理解)
按照目前使用的IPv4的规定,对IP地址强行定义了一些保留地址,即:“网络地址”和“广播地址”。所谓“网络地址”就是指“主机号”全为“0”的IP地址,如:125.0.0.0(A类地址);而“广播地址”就是指“主机号”全为“255”时的IP地址,如:125.255.255.255(A类地址)。
ip地址又分为ABC类
1. A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。
2. B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
3. C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
补:最高位
ipv4地址是由4字节32比特构成的,最高位就是二进制的最前面的位数
比如1.0.0.0为一个A类地址转换为二进制为
00000001 ,00000000 ,00000000 , 00000000
A类地址最高位就是0
网络掩码(子网掩码)
补:大多数情况下网络掩码和子网掩码可以画等号。
子网掩码,是用来标识两个IP地址是否同属于一个子网。
它也是一组32位长的二进制数值,其每一位上的数值代表不同含义:为“1”(ture)则代表该位是网络位;若为“0”则代表该位是主机位。和IP地址一样,人们同样使用“点式十进制”来表示子网掩码,如:255.255.0.0。
如果两个IP地址分别转化为二进制与同一个子网掩码转化为二进制进行按位“与(and)”计算后得到相同的结果,即表明这两个IP地址处于同一个子网中。也就是说,使用这两个IP 地址的两台计算机就像同一单位中的不同部门,虽然它们的作用、功能、乃至地理位置都可能不尽相同,但是它们都处于同一个网络中。
计算网络掩码
一:知道网络前缀后缀
什么是前缀后缀呢
例:
最常用的子网掩码:255.255.255.0(Windows 默认掩码)
最常见的前缀长度:24(Android 手机默认的网络前缀)
前缀长度是如何得来呢
把子网掩码变为二进制,255.255.255.0
二进制 = 11111111 - 11111111 - 11111111 - 00000000
这里数一数有24个1,一个255(10进制)相当于8个1(2进制),这里3*8=24
所以二进制前面有多少个1则网络前缀就是多少,后缀就是数一下后面有多少个0
二:无须划分成子网的IP地址。
一般来说,此时计算该IP地址的子网掩码非常地简单,可按照其定义就可写出。例如:某个IP地址为12.26.43.0,无须再分割子网
做法:判断是A,B,C哪一类地址
这里我们可以知道它是一个A类地址,其子网掩码应该是255.0.0.0;若此IP地址是一个B类地址,则其子网掩码应该为255.255.0.0;如果它是C类地址,则其子网掩码为255.255.255.0。其它类推。
三:需要划分成子网的ip地址
在这种情况下,如何方便快捷地对于一个IP地址进行划分,准确地计算每个子网的掩码,方法的选择很重要。下面我介绍两种比较便捷的方法:
当然,在求子网掩码之前必须先清楚要划分的子网数目,以及每个子网内的所需主机数目。
方法一:利用子网数来计算。
1.首先,将子网数目从十进制数转化为二进制数;
2.接着,统计由子网数目得到的二进制数的位数,设为N;
3.最后,先求出此IP地址对应的地址类别的子网掩码。再将求出的子网掩码的主机地址部分(也就是“主机号”)的前N位全部置1,这样即可得出该IP地址划分子网的子网掩码。
例如:需将B类IP地址167.194.0.0划分成28个子网:
1)(28)10=(11100)2;
2)此二进制的位数是5,则N=5;
3)此IP地址为B类地址,而B类地址的子网掩码是255.255.0.0,且B类地址的主机地址是后2位(即0-255.1-254)。于是将子网掩码255.255.0.0中的主机地址前5位全部置1
也就是说主机位置二进制初始为00000000这里将前面的五位变为1也就是变为11111000
,就可得到255.255.248.0,而这组数值就是划分成 28个子网的B类IP地址 167.194.0.0的子网掩码。
方法二:利用主机数来计算。
1.首先,将主机数目从十进制数转化为二进制数;
2.接着,如果主机数小于或等于254(注意:应去掉保留的两个IP地址),则统计由“第一步”中得到的二进制数的位数,设为N;如果主机数大于 254,则 N>8,也就是说主机地址将超过8位;
3.最后,使用255.255.255.255将此类IP地址的主机地址位数全部置为1,然后按照“从后向前”的顺序将N位全部置为0,所得到的数值即为所求的子网掩码值。
例如:需将B类IP地址167.194.0.0划分成若干个子网,每个子网内有主机500台:
1)(500)10=(111110100)2;
这里还有一种简便方法:不需要计算出500二进制准确数值,只需要找到最高位就可以知道有多少位数了具体做法如下:
512 256 128 64 32 16 8 4 2 1
1
然后就不用计算后面的了
2)此二进制的位数是9,则N=9;
3)将该B类地址的子网掩码255. 255.0.0的主机地址全部置 1,得到255.255.255.255。然后再从后向前将后9位置0,可得:11111111. 11111111.11111110.00000000即255.255.254.0。这组数值就是划分成主机为500台的B类IP地址 167.194.0.0的子网掩码。
借鉴于———
标签:0.0,后缀,主机,网络,255.255,地址,IP地址,掩码,子网掩码 From: https://www.cnblogs.com/xxpanda/p/16848875.html