IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络主机,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。
一、子网掩码
1、子网掩码的概念及作用
①、子网掩码又叫网络掩码、地址掩码,必须结合IP地址一起使用。 ②、只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。 ③、子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。 ④、子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。
2、子网掩码的组成
①、同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。 ②、子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。举个栗子:如:11111111.11111111.11111111.00000000 注:左边连续的1的个数代表网络号的长度,(使用时必须是连续的,理论上也可以不连续),右边连续的0的个数代表主机号的长度。
3、子网掩码的表示方法
①、点分十进制表示法 二进制转换十进制,每8位用点号隔开 例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0
②、CIDR斜线记法:IP地址/n 例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。 注:n为1到32的数字,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2^(32-n)-2(-2的原因:主机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址)。
3、为什么要使用子网掩码?
前面说道,子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。
可以这么简单的理解:A主机要与B主机通信,A和B各自的IP地址与A主机的子网掩码进行And与运算,看得出的结果: 1、结果如果相同,则说明这两台主机是处于同一个网段,这样A可以通过ARP广播发现B的MAC地址,B也可以发现A的MAC地址来实现正常通信。 2、如果结果不同,ARP广播会在本地网关终结,这时候A会把发给B的数据包先发给本地网关,网关再根据B主机的IP地址来查询路由表,再将数据包继续传递转发,最终送达到目的地B。
计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址。路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。
在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。
4、子网掩码的分类
①、缺省子网掩码
也叫默认子网掩码,即未划分子网,对应的网络号的位都置 1 ,主机号都置 0 。
未做子网划分的IP地址:网络号+主机号 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.100/25,其子网掩码表示:255.255.255.128 意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。关于子网划分将在下篇文章讲到,这里不在阐述。
5、子网掩码和IP地址的关系
子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码做与运算,如结果为同一网络,就可以直接通信。
6. 如何根据IP地址和子网掩码,计算网络地址:
①、将IP地址与子网掩码转换成二进制数。 ②、将二进制形式的 IP 地址与子网掩码做“与”运算。 ③、将得出的结果转化为十进制,便得到网络地址。
如下图:
网络地址计算小技巧:IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。所以只要一看到IP地址和子网掩码,就能马上确认网络地址。
转载自http://blog.51cto.com/6930123/2112748