本文仅讨论IP地址和子网划分问题,不涉及其他的网络计算和子网划分技术。同时本文也不再进行IP地址、网络地址、广播地址等等这些基础知识的介绍,网上大把的有。现在进入正题。
IP地址和子网划分的计算
首先我们先来看一个简单例题:求一个IP地址为192.168.100.5,子网掩码为255.255.255.0。请求出网络地址、广播地址、可用主机地址范围以及可用主机数。
我们先看下二进制算法:
1、首先将IP地址和子网掩码换算为二进制如下,子网掩码连续为1的是网络地址,全0 的为主机地址,由于本例给出的是C类地址,进行与运算得出的结果是网络地址。
| 网络地址(网络ID) | 主机ID | |
IP地址 | 192.168.100.5 | 11000000 10101000 01100100 | 00000101 |
子网掩码 | 255.255.255.0 | 11111111 11111111 11111111 | 00000000 |
与运算 | | ||
网络地址为: | 192.168.100.0 | 11000000 10101000 01100100 | 00000000 |
2、将上面的网络地址的网络地址部分保持不变,主机号全变为1,结果即为广播地址
网络地址为: | 192.168.100.0 | 11000000 10101000 01100100 00000000 |
将主机位全变为1 | 192.168.100.255 | 11000000 10101000 01100100 11111111 |
或运算 | | |
广播地址为: | 192.168.100.255 | 11000000 10101000 01100100 11111111 |
3、先说地址范围就是在本网段包含的所有主机,这里所求的可用主机范围【即不包括网络地址和广播地址,因为全0和全1不能作为可以主机地址】为:网络地址+1~广播地址-1,由上可知,可用的主机地址范围为192.168.100.1~192.168.100.254,也就是说像192.168.100.2、192.168.100.20、192.168.100.50、192.168.100.100、192.168.100.230这样的IP地址都是在同一个网段,也就是说它们可以相互通信。
4、可用主机数为:2^主机号的位数-2,减2是因为主机地址不包括网络地址和广播地址。本例的主机位数为8位,即主机的可用主机数为:2^8-2=254。就是说可以有254台计算机在同一网段相互通信。
以上就是用学校教的一般方法所做的,真正了解的人就可以知道在上面我其实还省略很多细节步骤,因为用这个自带编辑器写这种东西很麻烦,我省略的很多。但即使这样,也是比较麻烦的。下面我讲一下利用增量是怎样算的。
还是这个例题,如果使用增量算法怎么算呢?:求一个IP地址为192.168.100.5,子网掩码为255.255.255.0。请求出网络地址、广播地址、可用主机地址范围以及可用主机数。
首先我讲下什么是增量,主要就是要记住我上面所说的二进制进阶,2^1=2 、2^2=4 、 2^3=8 、 2^4=16 ......个人认为一直要记到2^12=4096。当你能随时反应出2^n等于多少时,增量算法你就很容易掌握。先求网络地址,当你看到192开头你就要马上知道这是个标准的C类地址,再看下子网掩码,你就可以马上说出网络地址和广播地址是192.168.100.0和192.168.100.255.因为网络号和主机号分的很清楚,知道了网络地址,就可以马上算出可用的主机地址范围和可用主机数,因为这是个标准的C类地址。。。。写到这里才发现,这个例题太简单,根本突出不了增量算法的优势,第一次写博文,没有考虑好,请大家原谅且继续往下看。我下面将再举一个关于IP计算和子网划分的例子,因为只有有难度的计算和划分才能突出增量算法的简单。
增量算法
例题:某单位需要将一个C类网络地址为192·168·100·0,子网掩码地址为255·255·255·0的IP地址划分为4个子网,求每个子网的网络地址,广播地址以及可用主机范围和可用主机数。
1、首先要考虑划分4个子网需要将主机借几位,如果全0全1可用的话,那就借2位主机位就可以了,因为2^2=4.正好4个子网,如果全0全1不可用的话,那就需要借3位,也就是2^3=8个子网,很容易看出本例只需要4个子网,却划分出了8个子网,全0全1 不可用的话,也浪费了2个子网。所以大家在实际应用中要注意子网的合理“借位”以及划分,做到尽量不浪费IP地址段和IP地址。这里我不细说。
2、根据借的位数来改变子网掩码,因为本例借了3个主机位,所以子网掩码增加3位【借的为主机位的高3位】,子网地址为255.255.255.224
3、因为子网掩码改变了,不是标准的子网掩码的形式,这样计算网络地址和广播地址就不是很方便,但用增量算法就很简单了! 根据现在的子网掩码【255.255.255.224】来看,我们可以看到,借了3位之后,子网掩码的第4段变成了224,关键就在这里,在说之前,先讲一个常识,IP地址分4段,每一段的最大值为255,实际上有256个地址,因为是从0开始算的。增量都是以256算的。本例我们先将256-224=32,就得到了每个子网可用的主机数和可用地址范围,(这里要说下32有什么用?32=2^5,因为向主机号借了3位。所有3+5=8,正好是IP地址每个段的位数,便于验证)全0全1不可用的话可用主机数为30个,可用的话就是32个。主机范围等下再讲。这样很容易就得到了可用主机数,觉得没用?那继续看,因为我们划分了8个子网,所以32*8是不是等于256.也就是说每个子网的增量为32,这样就得到了子网的增量,是不是就是说网络地址和广播地址都得到了呢!是的。需要注意的是增量为32,实际地址是指0~31共有32个地址。那主机范围不也就出来了吗?那就是0~31、32~63、64~95、96~127、128~159、160~191、192~223、224~255。大家数一下是不是共8个子网段啊!然后再加上IP的前三段192.168.100。是不是整个问题就解决了呢!是不是完全不要算二进制呢!其实只要熟悉了增量算法且能举一反三、灵活运用,只要不是极度复杂的计算和划分,哪怕是无类别域间路由选择(CIDR)也就是超网地址的划分和计算。都可以不用笔,直接心算就可以得知结果。下面我用表格整理下。
子网序号 | 网络地址 | 地址范围 | 广播地址 | 备注 |
1 | 192.168.100.0 | 192.168.100.0-192.168.100.31 | 192.168.100.31 | 全0组合一般不使用 |
2 | 192.168.100.32 | 192.168.100.32-192.168.100.63 | 192.168.100.63 |
|
3 | 192.168.100.64 | 192.168.100.64-192.168.100.95 | 192.168.100.95 |
|
4 | 192.168.100.96 | 192.168.100.96-192.168.100.127 | 192.168.100.127 |
|
5 | 192.168.100.128 | 192.168.100.128-192.168.100.159 | 192.168.100.159 |
|
6 | 192.168.100.160 | 192.168.100.160-192.168.100.191 | 192.168.100.191 |
|
7 | 192.168.100.192 | 192.168.100.192-192.168.100.223 | 192.168.100.223 |
|
8 | 192.168.100.224 | 192.168.100.224-192.168.100.255 | 192.168.100.255 | 全1组合一般不使用 |
【全0全1不可用】每个子网中所含的主机数为:25-2=30 |
由于时间有限,先就写到这里,以后有时间,再来补例题,继续往下讲!有不懂的,可以再在评论上提出疑问,我有时间会一一解答!