franksunny的个人技术空间
获得人生中的成功需要的专注与坚持不懈多过天才与机会。 ——C.W. Wendte

 

IP地址与子网掩码

 

一般考试中都会给定一个IP地址和对应的子网掩码,让你计算
1
、子网数目
2
、网络号
3
、主机号
4
、广播地址
5
、可用IP地址范围
碰到这类题,我们应该怎么样来解题呢。方法如下:

首先,不要管这个IPA类还是B类还是C类,IP是哪一类对于解题是没有任何意义的,因为在很多题中B类掩码和A类或是C类网络一起出现,不要把这认为是一个错误,很多时候都是这样出题的。

其次,应该知道以下几点:

1、明确子网的函义:

子网就是把一个大网划分为几个小网,每个小网的IP地址数目都是一样多的。这个小网就叫做这个大网的子网。大网可以是A类大网,也可以是B类大网,还可能是C类大网。
A
类大网中容纳了224次方个IP地址,即16777216IP地址;B类大网中容纳着216次方个IP地址,即65536IP地址;C类大网中容纳着28次方个IP地址,即256IP地址。

如果把B类大网划分为32个小网,那么每个小网的IP地址数目就是65536/32=2048;如果把C类大网划分为32个小网,那么每个小网的IP地址数目就是256/32=8

 

2、明确掩码的函义:

掩码的作用就是用来告诉电脑把大网划分为多少个小网”! 好多书上说,掩码是用来确定IP地址所在的网络号,用来判断另一个IP是不是与当前IP在同一个子网中。这也对,但是对于我们做题来说,意义不大。我们要明确:掩码的作用就是用来告诉电脑把大网划分为多少个小网”! 掩码是用来确定子网数目的依据!

 

3、牢记各类网络的默认掩码

A类网络的默认掩码是255.0.0.0,换算成二进制就是11111111.00000000.00000000.00000000;默认掩码意味着没有将A类大网再划分为若干个小网。掩码中的1表示网络号,240表示在网络号确定的情况下(用二进制表示的IP地址的左边8位固定不变),用24位二进制数来表示IP地址的主机号部分。(IP地址是由网络号+主机号两部分构成)B类网络的默认掩码是255.255.0.0,换算成二进制就是11111111.11111111.00000000.00000000;默认掩码意味着没有将B类大网再划分为若干个小网。160表示在网络号确定的情况下(用二进制表示的IP地址的左边16位固定不变)可以用16位二进制数来表示IP地址的主机号部分。(可以把B类默认掩码理解为是将A类大网划分为28次方(256)个小网)C类网络的默认掩码是255.255.255.0,换算成二进制就是11111111.11111111.11111111.00000000;默认掩码意味着没有将C类大网再划分为若干个小网。这里的80表示在网络号确定的情况下(用二进制表示的IP地址的左边24位固定不变),可以用8位二进制数来表示IP地址的主机部分。(可以把C类默认掩码理解为是将A类大网划分为216次方(65536)个小网,是将B类大网划分为28次方(即256)个小网)

 

4、关于正确有效的掩码:

正确有效的掩码应该满足一定的条件,即把十进制掩码换算成二进制后,掩码的左边部分一定要是全为1且中间不能有0出现。比方说将255.255.248.0转为二进制是11111111.11111111.11111000.00000000,可以看到左边都是1,在1的中间没有0出现(0都在1的右边),这样就是一个有效的掩码。我们再来看254.255.248.0,转成二进制是11111110.11111111.11111000.00000000,这不是一个正确有效的掩码,因为在1中间有一个0的存在。再来看255.255.249.0,转为二进制是11111111.11111111.11111001.00000000,这也不是一个正确有效的掩码,因为在1中间也有0的存在。

 

5、关于子网掩码的另类表示法:

有些题目中不是出现如255.255.248.0这样的子网掩码,而是出现 IP地址/数字 这样的形式,这里的/数字就是子网掩码的另类表示法。在做题时,我们要正确理解这种另类表示法。我们将255.255.248.0转为二进制的形式是 11111111.11111111.11111000.00000000,可以看到左边是有211,所以我们可以将255.255.248.0这个掩码表示为/21。反过来,当我们看到/21时,我们就把32位二进制的左边填上211,将这个32位二进制数每8位做为一节用句点隔开,再转换为十进制,就是255.255.248.0了。

 

6、网络中有两个IP地址不可用:

不管是A类还是B类还是C类网络,在不划分子网的情况下,都是有两个IP地址不可用的:网络号和广播地址。比如在一个没有划分子网的C类大网中用202.203.34.0来表示网络号,用202.203.34.255来表示广播地址,因为C类大网的IP地址有256个,现在减去这两个IP地址,那么可用的IP地址就只剩下256-2=254个了。如果题目问:把一个C类大网划分为4个子网,会增加多少个不可用的IP地址?可以这样想:在C类大网不划分子网时,有两个IP地址不可用;现在将C类大网划分为4个子网,那么每个子网中都有2IP地址不可用,所以4个子网中就有8IP地址不可用,用8IP地址减去没划分子网时的那两个不可用的IP地址,得到结果为6个。所以在将C类大网划分为4个子网后,将会多出6个不可用的IP地址。

 

7、根据掩码来确定子网的数目

首先看题中给出的掩码是属于哪个默认掩码的范围内,这样我们就可以知道是对A类还是B类还是C类大网来划分子网。比方说202.117.12.36/30,我们先把/30这种另类的掩码表示法转换为我们习惯的表示法: 11111111.11111111.11111111.11111100,转为十进制是255.255.255.252。我们可以看到,这个掩码的左边三节与C类默认掩码相同,只有第四节与C类默认掩码不同,所以我们认为255.255.255.252这个掩码是在C类默认掩码的范围之内的,意味着我们将对C类网络进行子网划分。因为C类网络的默认掩码是255.255.255.0,将C类默认掩码转换为二进制是11111111.11111111.11111111.00000000,这里的80表示可以用8位二进制数来表示IP地址,也就是说C类大网中可有28次方个IP地址,也就是256IP地址。这道题中的掩码的最后一节是252,转换为二进制是11111100,因为1表示网络号,所以111111就表示将C类大网划分为(1111112进制个子网。将111111转换为十进制是64,所以就表示将C类大网划分为64个子网,每个子网的IP地址数目是256/64=4,去除子网中的第一个表示子网号的IP地址和最后一个表示广播地址的IP地址,子网中的可分配的IP地址数目就是子网中的总的IP地址数目再减去2,也就是4-2=2个。

 

8、综合实例:

已知172.31.128.255/18,试计算:

1、子网数目,

2、网络号,

3、主机号,

4、广播地址,

5、可分配IP的起止范围

解:

1、             算子网数目

首先将/18换成为我们习惯的表示法:

11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。B类掩码默类是用16(160)来表示可分配的IP地址,本题中的掩码在B类默认掩码的基础上多出了两个表示网络号的1,这就是说是将B类大网划分为(11)2进制个子网,将(11)2进制转换为十进制就是4,所以本题中是将B类大网划分为4个子网。

 

2、             算网络号

用公式:IP地址的二进制和子网掩码的二进制进行and)运算,得到的结果就是网络号与运算的规则是111010100172.31.128.255转为二进制是10101100.00011111.10000000.11111111,掩码是:11111111.11111111.11000000.00000000所以:
10101100.00011111.10000000.11111111
11111111.11111111.11000000.00000000
10101100.00011111.10000000.00000000
10101100.00011111.10000000.00000000转换为十进制就是172.31.128.0,所以网络号是172.31.128.0

 

3、             算主机号

也用公式:IP地址的二进制和(子网掩码的二进制的反码)进行运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。由于掩码是11111111.11111111.11000000.00000000所以其反码表示为00000000.00000000.00111111.11111111,再将IP地址的二进制和掩码的反码表示法进行运算:
10101100.00011111.10000000.11111111
00000000.00000000.00111111.11111111
00000000.00000000.00000000.11111111
00000000.00000000.00000000.11111111转换为十进制是0.0.0.255,我们将左边的0去掉,只留右边的数字,所以我们说这个IP的主机号是255。主机号是表示网络号再加上255就是这个IP地址了。

 

4、             算广播地址

也用公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是11111111.11111111.11000000.00000000,网络号占了18位,所以本题中表示IP地址的主机部分的二进制位是14位,我们将网络号172.31.128.0,转换为二进制是10101100.00011111.10000000.00000000,然后从右边数起,将140全部替换为1,即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是172.31.191.255

 

5、             算可用IP地址范围

因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 到广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254

posted on 2007-08-05 22:03 frank.sunny 阅读(1537) 评论(5)  编辑 收藏 引用 所属分类: 概念扫盲

FeedBack:
# re: IP地址与子网掩码
2007-08-30 19:57 | 114668170
兄弟你子网掩码算错了吧
应是这个吧:172.31.128.0

128二进制形式是这个1000 0000
所以广播地址为:172.31.255.255

可用地址范围为:
172.31.128.1~172.31.255.254
  回复  更多评论
  
# re: IP地址与子网掩码
2007-09-27 19:13 | 空情邻
问题:最后一个可用的c类网络号是什么?  回复  更多评论
  
# re: IP地址与子网掩码
2007-09-28 08:51 | frank.sunny
@114668170
这位仁兄,此文虽然不是我写的,我也是转载别人的,但是我不知道你对子网掩码的理解是怎样,不知道你赞同“掩码的左边部分一定要是全为1且中间不能有0出现”这个观点不?

再有,我不知道你赞同“在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址”这个观点不?

欢迎进行讨论,前阵子工作没定下来,所以一直漂,没关心这个空间,不好意思,回晚了

  回复  更多评论
  
# re: IP地址与子网掩码
2007-09-28 09:00 | frank.sunny
@空情邻

你想问最后一个可用的C类网IP地址吧
我想应该是,这个看过文档应该能算出来的啊,关键是你根据给的大网的IP来算广播地址,广播地址减1就是最后一个IP地址了。

不知道你干嘛用,基础知识你也可以看看http://www.qqread.com/net-knowledge/h171766708.html,以及相关网页  回复  更多评论
  
# re: IP地址与子网掩码
2010-05-19 18:20 | wow
dfagdasdfa  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



常用链接

留言簿(13)

随笔分类

个人其它博客

基础知识链接

最新评论

阅读排行榜

评论排行榜