前文回顾:
- 自学网络协议(一):HTTP请求与响应——GET和POST真的不一样吗?
- 自学网络协议(二):OSI第一层——物理层Physical layer
- 自学网络协议(三):OSI第二层——机器通信那点事
- 自学网络协议(四):OSI第三层——网络层的作用(上)
- 自学网络协议(五):网间通信——子网掩码
前面我们大致描述了IP地址范围,这一节来给各位演示一下用一个“特殊的方法”来轻而易举的划分网络资源。
让我们举一个“栗子”:10.45.185.24 / 255.255.248.0
我们规定【神奇数字】的计算者是:256 —— 子网掩码的有效数字
子网掩码的有效数字对应子网掩码的第三个字节、对应于IP地址中的第三个字节
256-248=8
接下来,我们要找到小于或等于185(IP地址中的第三个字节)的“8”的倍数中的最大值:
- 8*10=80<185
- 8*20=160<185
- 8*24=192>185
停!
我们找到了。和第一个地址有关的数值是184(185-1),和最后一个地址有关的数值是191(192-1)
因此,此网络的第一个地址是10.45.184.0
,最后一个地址是10.45.191.255
很简单,不是吗?
我们再来看一个例子:假设你负责一个公司某个部门的网络,是192.168.160.0 / 255.255.224.0
。这个部门有三个群组:550名技术人员、130名商务人员、10名经理。现在,让你从网络中给它们划出3个子网。
- 【神奇数字】是:256-224=32
- 地址的有效字节是160(正好是32的倍数!)。因此,160是和网络上第一个地址有关的数值;而160+32-1=191是和网络上最后一个地址有关的数值
- 因此,网络上第一个地址是
192.168.160.0
,最后一个地址是192.169.191.255
然后,我们来划分子网范围:
上面我们知道了三个群组各自的人数,我们也知道一个网络的地址范围大小取决于其子网掩码。因此,我们又使用了这个公式:
网络中可用IP地址数=2的“子网掩码中0的个数”次方个
- 2 ^ 9 =512 < 550 < 2 ^ 10 =1024 —— 对于550名技术人员,网络上要包含1024个地址。因此子网掩码有10位为0,即
11111111.11111111.11111100.00000000
->255.255.252.0
- 对于130名商务人员,有 2 ^ 7 =128 < 130 < 2 ^ 8 =256 ——其子网掩码为
255.255.255.0
- 对于10名经理,2 ^ 3 =8 < 10 < 2 ^ 4 =16 —— 其子网掩码是
255.255.255.240
得到了三个子网的子网掩码,接下来“一展身手”算出地址范围即可:
- 【神奇数字】是:256-252=4
- 对于技术人员,160是4的倍数,下一个4的倍数是164。164-1=163,则此网络最后一个地址为
192.168.163.255
- 对于商务人员,其地址紧跟技术人员之后:第一个地址是
192.168.164.0
,但这个的子网掩码比较特殊,其二进制划分正好是发生在两个字节之间。因此推算出其最后一个地址是192.168.164.255
(感兴趣的可用【神奇数字】再算一遍)、 - 经理也一样,紧跟在商务人员之后,第一个地址是
192.168.165.0
,【神奇数字】是:256-240=16,16-1=15,其网络上最后一个地址是192.168.165.15
网络资源并没有被分配完…