参考文章
IP地址_百度百科
IP地址和子网掩码划分_大 叔.的博客-CSDN博客_ip地址分类和子网掩码
IP地址和子网划分学习笔记之《子网掩码详解》_JavaAlliance-CSDN博客_子网划分和子网掩码
https://jingyan.baidu.com/article/ae97a646d936ddbbfd461d02.html
192.168.1.0 就是个网络地址,代表了这个网络的所有用户;还有一个是广播地址,是192.168.1.255 ,其他的都是主机地址;
如果按照国际划分的网络分类进行使用那么最小的也是包含254台主机,那么哪里有这么大的公司,一下就有这么多台主机,那么就需要变成子网掩码:
网络位越长那么这个网络中包含的主机数越少;
进行接1位;出现128个主机,和两个网络(192.168.1.0和192.168.1.128两个网络)
有效的子网划分只能划分到0/30 不能在多了;
1.先规划最大的主机需求网络;
2.之后在进行细化;
CIDR 既然可以向后划分,也可以向后划分,
这是把一个网络汇总成大网络;
----------------------------------------------------------------------------------------------------------------------
如 192.168.1.53/27
需要计算 具体的子网掩码
子网数
可用的主机数
最大可容纳主机数
网络地址
广播地址
一看192.开头就是C类的地址了,然后C类地址默认是24位子网掩码,即:255.255.255.0。
我们得知192.168.1.53/27 的相应掩码是
11111111.11111111.11111111.11100000
所有可用的主机数为主机号所剩下的5位掩码中算出。
注:8位主机号减少网络号借去的3位,所剩下5位。即n=8-m=5
其中m为网络号位数,n为主机号位数。
即最多可以容纳的主机数为 32
可用的主机数为 30
计算公式如下图所示:
好了,我们已经算出192.168.1.53/27 ,每个网段最大容纳的主机数和可以主机数了,下面我们来计算子网掩码的10进制数是多少。
由步骤2,我们得知192.168.1.53/27 的相应掩码是
11111111.11111111.11111111.11100000
即转换成相应的10进制数是255.255.255.224,转换公式如下图:
我们也计算出了192.168.1.53/27的掩码是255.255.255.224了
子网数是8个。
现在我们来算算并找出网络地址和广播地址。
网络地址是192.168.1.32
广播地址是192.168.1.63
如下图:
补充:
前面说道,子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关(指路由器
)将数据包转发送到目的地。
可以这么简单的理解:A主机要与B主机通信,A和B各自的IP地址与A主机的子网掩码进行And与运算,看得出的结果:
1、结果如果相同,则说明这两台主机是处于同一个网段,这样A可以通过ARP广播发现B的MAC地址,B也可以发现A的MAC地址来实现正常通信。
2、如果结果不同,这时候A会把发给B的数据包先发给本地网关,网关再根据B主机的IP地址来查询路由表,再将数据包继续传递转发,最终送达到目的地B。
重点:计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址(注意:这是路由器的接口ip地址,不是路由器自己本身的ip,本文下面会有讲解这两个的区别的)。路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。
在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。
讲解:图中的路由器的接口ip有两个,一个是192.168.10.1,另一个是192.168.11.1, 这是接口ip,接口ip之间就相当于加了中间桥梁一样,接口ip之间可以相互通信。 路由器自己本身其实也有ip,只是这里我们不做考虑。
①、缺省子网掩码
未做子网划分的IP地址:网络号+主机号
(提示,ABCDE类网络讲解请参考:A、B、C、D和E类IP地址_JavaAlliance-CSDN博客)
A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24
②、自定义子网掩码
将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:
做子网划分后的IP地址:网络号+子网号+子网主机号(解释:这里把原主机号做了进一步划分拆解,拆解成了子网号+子网主机号
)
比如:192.168.1.0/30这个地址本来属于c类的(只需要通过ip地址的第一个字节,就可以判断是哪一类地址,一看这个ip地址的第一个字节是192,所以是C类地址),标准/24的,但是如果一个地方的人只有几个人用这个网段的地址给/24的,最多可以254个人用,浪费,所以在这个基础上再划分子网号+子网主机号,子网主机号只用最后32-30=2位,30-24=6位就表示子网号了
再举个栗子:
如:192.168.1.100/25,(解释:一看这个ip地址的第一个字节是192,所以是C类地址,而C类地址的特点是前3个字节都是网络号,第4个字节是主机号。如果不懂ABCDE五类地址的划分,请回顾文章:A、B、C、D和E类IP地址_JavaAlliance-CSDN博客)其子网掩码表示:255.255.255.128
意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。关于子网划分将在下篇文章讲到,这里不在阐述。
子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码做与运算,如结果为同一网络,就可以直接通信。
And按位与运算:
与运算是计算机中一种基本的逻辑运算方式,符号表示为&,也可以表示为 and。
参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0;0&1=0;1&0=0;1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0
如何根据IP地址和子网掩码,计算网络地址:
①、将IP地址与子网掩码转换成二进制数。
②、将二进制形式的 IP 地址与子网掩码做“与”运算。
③、将得出的结果转化为十进制,便得到网络地址。
如下图:
网络地址计算小技巧:IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。所以只要一看到IP地址和子网掩码,就能马上确认网络地址。