IP地址最初的设计为两级编址。也就是说,要想抵达因特网中的一台主机,首先必须抵达其网络,然后才能找到主机。很快人们发现这样的两级编址还不够。原因有以下两点
- 首先,一个被授权使用A类或B类地址块的组织,由于安全性和管理方面的考虑,有必要将自己的大网络进一步划分为若干个子网。
- 其次,因为A类和B类地址块已几乎耗尽,而C类地址块又太小,无法满足大多数组织的需要,所以预计拥有A类或B类地址块使用权的组织可以将其地址划分为多个较小的子地址块,并与其他组织一起分享。
将一个地址块分割为若干个较小地址块的思想成为子网划分。
在子网划分(subnetting)时,一个网络被划分为若干个较小的子网络(子网),其中每个子网都有自己的子网地址。
例:
如果我们把电话号码中的本地号码看成是由交换局号和用户号组成的。那么在电话系统中页存在三级编码
(626)358-1301
其中626是区号,358是交换局,而1301则指的是用户连接。
例:
下图所示为子网划分之前的一个网络,它使用的是B类地址。我们有大约2的16次方台主机,却只有一个网络。整个网络仅通过一条连接与因特网中的一个路由器进行连接。
请注意,在网络地址中出现的/16表示的是网络标识的长度(B类)
下图是上图的网络在子网划分之后的情况。
整个网络仍然是通过相同的路由器连接到因特网。
但是,网络使用了一个专用路由器将它划分为四个子网。其他因特网上的设备看到的只是一个网络,但是实际上内部是由四个子网组成的。此时,每个子网都可以拥有2的14次方台主机。这样的一个网络可以属于一所具有四个独立校区(或大楼)的大学。
在子网划分后,每个校区都有自己的子网,但是对于其余因特网来说,整个大学是一个网络。
请注意。/16和/18分别表示的是网络标识长度和子网标识长度
子网掩码
在前面讨论过网络掩码(默认掩码)。当一个网络没有子网划分时,使用的是网络掩码。而当我们将一个网络划分成若干个子网后,就要为每个子网建立一个子网掩码。
一个子网由子网标识和主机标识两部分组成,如图:
子网划分增加了网络标识的长度,同时也减少了主机标识的长度。当我们把一个网络划分为s个子网且每个子网的主机数相同时,我们可以如下计算每个子网的子网标识:
其中n是网络标识的长度,nsub是各子网标识的长度,而s是子网的数目(它必须是2的乘方)
子网地址
当一个网络划分子网后,子网的首地址就是它的子网标识符,也是路由器在为分组选择路由使之到达正确的子网要用到的。
给定某个子网中的任意地址,路由器就可以找出其子网掩码。用子网掩码对给定的地址做与运算。
例题:
在上面的题目里,我们把一个网络划分为了四个子网。已知其中子网2中有一个地址为141.14.120.77,我们可以求出该子网的地址如下:
地址:141.14.120.77
掩码:255.255.192.0
子网掩码:141.14.64.0
这里第三组数据的计算方法是:如果两个字节都不等于0或255,我们可以把这两个字节分别写成具有八个项的多项式之和,且每一项都是2的乘方,然后我们选择各对应的项中较小的(如果相等则任选一个),最后再把选出的项累加起来就得到了结果。
例题:
题目需要3个部门,分别为50、25、20台。
这里取最大的值50,即每个部门的主机数大于等于50
子网划分的核心思想:网络号不变,借用主机号来产生新的网络
因为是C类地址,所以网络号是24位的,并且划分前后不变
那么剩下部分就是32-24=8位(子网号+主机号)
假设子网号为 n;主机号就是8-n
刚说了题目要划分至少3个部门,那么子网号:2的n次方要大于等于3
又因为,主机数要大于等于50,则2的8-n次方 减2 大于等于50
(-2是因为全0【网络地址】和全1【广播地址】要去掉)
可得到 n=2
表示子网2个位,4个子网
主机号8-2=6个位,2的6次方=64个主机数
确定子网掩码:
原来网络号是24位,加上现在的子网2位,即26位
11111111.11111111.11111111.11000000
转换为十进制255.255.255.192
确定子网的网络地址:
网络号不变,主机号全0
200.1.1.00 000000/26
200.1.1.01 000000/26
200.1.1.10 000000/26
200.1.1.11 000000/26
唯一在变化的是这个子网号,组合一下就是四种可能性
再转换一下
200.1.1.0/26
200.1.1.64/26
200.1.1.128/26
200.1.1.192/26
确定广播地址:
网络号不变,主机号全1
200.1.1.00 111111/26
200.1.1.01 111111/26
200.1.1.10 111111/26
200.1.1.11 111111/26
唯一在变化的是这个子网号,组合一下就是四种可能性
再转换一下
200.1.1.63/26
200.1.1.127/26
200.1.1.191/26
200.1.1.255/26
最后答案:
构造超网
子网划分并不能解决分类编址中地址耗尽的问题,因为大多数机构组织并不愿意和别人共享自己的地址块。
那么可以构造超网(supernetting)来解决。
在构造超网时,一个组织可把若干个C类地址块合并成为一个更大的地址段。换言之,多个网络合并成为一个超网。
使用这种方法时,一个组织可申请多个C类地址块,而不只一个。例如,如果一个组织需要1000个地址,那么它就可以申请获取四个C类地址。
超网掩码
超网掩码(supernet mask)和子网掩码正好相反。
C类子网掩码中1的个数要比C类默认掩码中的1的个数多
而C类超网掩码中1多个数要比默认掩码中1的个数少
下图描绘的是子网掩码和超网掩码的区别。