IP地址和子网划分(二)——《子网掩码详解》

一、子网掩码

IP地址是以网络号和主机号来标识网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机要互相通信必须通过本地网关(Gateway)来传递转发数据。

1、子网掩码的概念及作用

①、子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。

②、只有通过子网掩码,才能表明一台主机所在的子网和其他子网的关系,使网络正常工作。

③、子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是远程网络上。

④、子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而浪费。

IP地址和子网划分(二)——《子网掩码详解》_第1张图片

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时表示本网络的广播地址,这是两个特殊的地址)。

 4、为什么要使用子网掩码?

前面说道,子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。

可以这么简单的理解:A主机要与B主机通信,A和B各自的IP地址与A主机的子网掩码进行“与”运算,看得出的结果:

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地址的直连路由,于是从另外一边网关接口转发出去实现互连。

IP地址和子网划分(二)——《子网掩码详解》_第2张图片

5、子网掩码的分类

 ①、缺省子网掩码

也叫默认子网掩码,即未划分子网,对应的网络号的位都是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地址和自己主机的子网掩码做“与”运算,如结果为同一网络,就可以直接通信。

And按位与运算

0&0=0;0*1=1;1&0=0;1&1=1;

同为1时,为1,否则为0

 如何根据IP地址和子网掩码,计算网络地址

①、将IP地址和子网掩码转换成二进制数。

②、将二进制形式的IP地址和子网掩码做“与”运算。

③、将得出的结果转化为十进制,便得到网络地址。

如下图:

IP地址和子网划分(二)——《子网掩码详解》_第3张图片IP地址和子网划分(二)——《子网掩码详解》_第4张图片

二、CIDR与VLSM

1、有类和无类网络, 超网和子网

我们先了解这几个概念,对于CIDR和VLSM以及子网划分都是很有用的,

  • 有类网络:也叫主类网络或标准网络,就是指把IP地址能归结到的A类、B类、C类IP,使用的是标准默认子网掩码。
  • 无类网络:相对于有类网络,无类网络IP地址的掩码是变长的。在有类网络的基础上,拿出一部分主机ID作为子网ID。
  • 超网:把多个小网络组合成一个大网络,成为超网(SuperNetting),也可以说子网掩码长度小于相对应的有类网络的叫超网。
  • 子网:有类网络划分成更小后的网络,称为子网(Subnet),也可以说子网掩码长度大于对应的有类网络的叫子网。

 2、CIDR无类别域间路由

CIDR(Classless Inter-Domain Routing,无类别域间路由)本质是消除了传统的A类、B类和C类地址以及划分子网的概念,将多个地址聚合在一起生成一个更大的网络,从而包含更多主机。

CIDR采用8-30位可变网络ID(最大可用的只能为30位,即保留2位给主机位),而不是A、B、C类网络Id所用的固定的8、16和24位。

CIDR的表示方法:IP地址/n,n表示IP地址中的前n位代表网络部分(n个二进制数1 ),其余(32-n)位代表主机部分。这种方法称为“斜线记法”,它又叫CIDR记法。

 举个例子:子网掩码255.255.255.192,用CIDR表示是多少呢?

①、首先确认的是这是个C类网络地址(C类的默认子网掩码是255.255.255.0)

②、前面三个字节都是255,转换成二进制都是1,即11111111.11111111.11111111,即24位1

③、后面一个字节是192,转换成二进制数是11000000,即1占了2位

④、子网掩码共占用了26位1,所以用CIDR表示为/26

⑤、如果网络地址为192.168.10.0,再加上CIDR,最后表示为192.168.10.0/26

CIDR支持路由聚合,能够将路由表中的许多路由表条目合并称为更少的数目,因此可以限制路由器中路由表的增大,减少路由通告,减轻路由器的负担。

3、VLSM可变长子网掩码

VLSM(Variable Length Subnet Mask,可变长子网掩码)规定了在一个有类(A、B、C类)网络内包含多个子网掩码的能力,以及对一个子网的再进行子网划分的能力。

每一个IP地址都包含了2部分:网络号和主机号。在有类网络中,32bit的IP地址被分为4段,每段8bit来表示。这使得作为网络号的前缀必须为8位,16位或24位。当网络号是24位的时候,主机号只有8位,也就是说,可分配的最小的地址快是256(2^8=256,而实际分配的主机地址还要减去2个,一个是网络地址,一个是广播地址,最后为254个),这个数量对于大多数企业来说是不够的。

而比这个大一点的IP地址块是网络号为16位的时候,这个时候可分配的地址是65536(2^16-2=65534),这个数量对于大多数公司又太多了。这导致了无论公司选择哪种类型的网络,都可能对IP地址造成大量的浪费。

IP地址如果只使用有类(A、B、C)来划分,会造成大量的浪费或不够用。VLSM的诞生有效的解决了这个问题,可以在有类网络的基础上,通过对IP地址的主机号进行再划分,把一部分划入网络号,就能划分各种类型大小的网络了。网络号也不再仅局限于8、16和24这几个数字,而是灵活变化的大小了。 

4、CIDR和VLSM的区别

  • 在使用CIDR聚合地址时,将原来有类IP地址中的网络为划出一部分作为主机位使用。
  • 在使用VLSM划分子网时,将原来有类的IP地址中的主机位按照需求划分出一部分作为网络位使用。
  • CIDR:子网掩码往左移,掩码netmask缩短了。
  • VLSM:子网掩码往右移,掩码netmask增长了。
  • CIDR是把几个有类网络合成一个大的网络(超网),用于路由地址聚合
  • VLSM是把一个有类网络分成几个小型网络(子网),用于更高效划分子网。

CIDR与VLSM总结:

在某种程度上来说,CIDR和VLSM它们之间可以看做是逆过程。

CIDR是把几个小网络聚合成一个大网络来做表示,而VLSM则是把一个大网络继续细分为几个小网络进行IP地址分配

CIDR能让路由器的路由条目得到有效的减少,从而减少路由通告,降低路由器负担;而VLSM则是充分利用IP进行地址分配来解决IP地址不被浪费的问题,节约IP地址空间,更为有效的使用。

你可能感兴趣的:(IP地址和子网划分(二)——《子网掩码详解》)