IP地址和子网掩码的算法

我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP 
A类IP段 1.0.0.0 到127.255.255.255 
B类IP段 128.0.0.0 到191.255.255.255 
C类IP段 192.0.0.0 到223.255.255.255 

XP默认分配的子网掩码每段只有255或0 
A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑 
B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑 
C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑 

我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。 

要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。) 

把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。 
255.0.0.0 11111111.00000000.00000000.00000000 
255.255.0.0 11111111.11111111.00000000.00000000 
255.255.255.0 11111111.11111111.11111111.00000000 
这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电脑,也就是256台,但是有两个IP是不能用的,那就是最后一段不能为0和255,减去这两台,就是254台。我们再来做一个。 
255.255.248.0这个子网掩码可以最多容纳多少台电脑? 
计算方法: 
把将其转换为二进制的四段数字(每段要是8位,如果是0,可以写成8个0,也就是00000000) 
11111111.1111111.11111000.00000000 
然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2046台电脑。 
一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。 
一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适? 
首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。 
2的m次方=560 
首先,我们确定2一定是大于8次方的,因为我们知道2的8次方是256,也就是C类IP的最大容纳电脑的数目,我们从9次方一个一个试2的9次方是512,不到560,2的10次方是1024,看来2的10次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0。 

分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。 
相信好多人都和偶一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我样把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。 
192.168.0.1 
11000000.10101000.00000000.00000001 
(这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。) 
IP 11000000.10101000.00000000.00000001 
子网掩码 11111111.11111111.11111111.00000000 
在这里,向大家说一下到底怎么样才算同一网段。 
要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。 
算法只要把IP和子网掩码的每位数AND就可以了。 
AND方法:0和1=0 0和0=0 1和1=1 
如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位 
IP 11000000.10101000.00000000.00000001 
子网掩码 11111111.11111111.11111111.00000000 
得出AND结果 11000000.10101000.00000000.00000000 
转换为十进制192.168.0.0,这就是网络标识, 
再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND 
得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1, 
这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。 

我们再来看看这个改为默认子网掩码的B类IP 
如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗? 
先将这些转换成二进制 
188.188.0.111 10111100.10111100.00000000.01101111 
188.188.5.222 10111100.10111100.00000101.11011010 
255.255.254.0 11111111.11111111.11111110.00000000 
分别AND,得 
10111100.10111100.00000000.00000000 
10111100.10111100.00000100.00000000 
网络标识不一样,即不在同一网段。 
判断是不是在同一网段,你会了吧,下面,我们来点实际的。 
一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适? 
子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0 
我们现在要确定的是IP如何分配,首先,选一个B类IP段,这里就选188.188.x.x吧 
这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1和IP中的?对就起来,0和*对应起来,如下:) 
255.255.252.0 11111111.11111111.11111100.00000000 
188.188.x.x 10111100.10111100.??????**.******** 
网络标识 10111100.10111100.??????00.00000000 
由此可知,?处随便填(只能用0和1填,不一定全是0和1),我们就用全填0吧,*处随便,这样呢,我们的IP就是 
10111100.10111100.000000**.********,一共有530台电脑,IP的最后一段1~254可以分给254台计算机,530/254=2.086,采用进1法,得整数3,这样,我们确定了IP的第三段要分成三个不同的数字,也就是说,把000000**中的**填三次数字,只能填1和0,而且每次的数字都不一样,至于填什么,就随我们便了,如00000001,00000010,00000011,转换成二进制,分别是1,2,3,这样,第三段也确定了,这样,就可以把IP分成188.188.1.y,188.188.2.y,188.188.3.y,y处随便填,只要在1~254范围之内,并且这530台电脑每台和每台的IP不一样,就可以了。 


有人也许会说,既然算法这么麻烦,干脆用A类IP和A类默认子网掩码得了,偶要告诉你的是,由于A类IP和A类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码^_^
CCNA考试中,还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有10台主机,那么对于这个子网就需要10+1+1+1=13个IP地址。(注意加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。)13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。 

  如果一个子网有14台主机,不少同学常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17 ,大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。 

无类的内部域路由(CIDR) 
  子网掩码 CIDR值 
  255.0.0.0 /8 
  255.127.0.0 /9 
  255.192.0.0 /10 
  255.224.0.0 /11 
  255.240.0.0 /12 
  255.248.0.0 /13 
  255.252.0.0 /14 
  255.254.0.0 /15 
  255.255.0.0 /16 
  255.255.128.0 /17 
  255.255.192.0 /18 
  255.255.224.0 /19 
  255.255.240.0 /20 
  255.255.248.0 /21 
  255.255.252.0 /22 
  255.255.254.0 /23 
  255.255.255.0 /24 
  255.255.255.128 /25 
  255.255.255.192 /26 
  255.255.255.224 /27 
  255.255.255.240 /28 
  255.255.255.248 /29 
  255.255.255.252 /30 

C类地址的子网划分 
  在一个C类地址中,只有八位是可以用来定义主机的。记住,子网位必须是由左到右进行定义的,这中间,不能跳过某些位。也就是说,C类子网掩码只能是: 
  二进制 十进制 速记 
  10000000 128 /25 
  11000000 192 /26 
  11100000 224 /27 
  11110000 240 /28 
  11111000 248 /29 
  11111100 252 /30 
  11111110 254 /31(无效)
A类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/22 255.192.0.0 2/4194302 
3/21 255.224.0.0 6/2097150 
4/20 255.240.0.0 14/1048574 
5/19 255.248.0.0 30/524286 
6/18 255.252.0.0 62/262142 
7/17 255.254.0.0 126/131070 
8/16 255.255.0.0 254/65536 
9/15 255.255.128.0 510/32766 
10/14 255.255.192.0 1022/16382 
11/13 255.255.224.0 2046/8190 
12/12 255.255.240.0 4094/4094 
13/11 255.255.248.0 8190/2046 
14/10 255.255.252.0 16382/1022 
15/9 255.255.254.0 32766/510 
16/8 255.255.255.0 65536/254 
17/7 255.255.255.128 131070/126 
18/6 255.255.255.192 262142/62 
19/5 255.255.255.224 524286/30 
20/4 255.255.255.240 1048574/14 
21/3 255.255.255.248 2097150/6 
22/2 255.255.255.252 4194302/2 
B类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/14 255.255.192.0 2/16382 
3/13 255.255.224.0 6/8190 
4/12 255.255.240.0 14/4094 
5/11 255.255.248.0 30/2046 
6/10 255.255.252.0 62/1022 
7/9 255.255.254.0 126/510 
8/8 255.255.255.0 254/254 
9/7 255.255.255.128 510/126 
10/6 255.255.255.192 1022/62 
11/5 255.255.255.224 2046/30 
12/4 255.255.255.240 4094/14 
13/3 255.255.255.248 8190/6 
14/2 255.255.255.252 16382/2 
C类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/6 255.255.255.192 2/62 
3/5 255.255.255.224 6/30 
4/4 255.255.255.240 14/14 
5/3 255.255.255.248 30/6 

6/2 255.255.255.252 62/2

引用:http://windows9.blog.51cto.com/1004206/249881

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值