您的位置:控制工程论坛网论坛 » 嵌入式系统 » 子网计算菜鸟入门

马军成

马军成   |   当前状态:在线

总积分:13914  2024年可用积分:0

注册时间: 2006-12-01

最后登录时间: 2022-06-28

空间 发短消息加为好友

子网计算菜鸟入门

马军成  发表于 2014/1/22 16:51:20      1318 查看 0 回复  [上一主题]  [下一主题]

手机阅读

子网计算菜鸟入门

 

实关于子网计算的文章很多,无论是书本上还是网络上都能找到,但有一点大家可能都忘记了,那就是在学会计算子网之前,必 须要对IP地址和子网掩码的原理做一个比较正确地理解,可以说,理解了原理之后,任何文章都是一个方法的问题了。对于网络入门者来说,如果不明白原理,那么这些数字192.168…..只会让我们的头脑越来越迷糊。本人也是这么过来的,在这里用一种比较诙谐的方式写下自己的一点学习经验,只希望初学者们把这个问题弄明白,共同提高。

《猪八戒夜战子网》

从培训中心出来,八戒闷闷不乐,低头不语,回到住处后也一声不吭的倒头便睡,悟空和沙僧不明就里,莫名其妙。沙僧更是纳闷:“自从上网络培训班取经以来,二师兄总是喜笑颜开,外了讨好漂亮的女班任更是一反常态地用功学习,今天到底是哪里不开心了呢?”悟空一摆手:“莫管他,呆子肯定是想回高老庄了”。


入夜时分,八戒悄悄地起来,到外屋点起灯,把《网络基础培训》教材打开,双手托腮,认真地看了起来:


“IP地址共32位,每8位为一个八位组,其中的第1个八位组决定了该地址的分类”


“为什么要用IP地址来表示网络主机呢,用网卡的MAC地址不是也可以吗”八戒心中刚刚涌起这个疑问便立刻想起了课堂上田中老师的话:“同一物理网络上的主机只有在它们相互知道对方的MAC地址的基础上才能通信,但是因为本地网卡的MAC地址和不同的网络类型有很大的关系,以太网,令牌环网,FDDI等等,为了使主机的网络地址与计算机硬件能够相对独立出来,以增强网络的路由选择能力,IP地址就在一定程度上代替了网卡的MAC地址”


原来如此!八戒暗暗点头,怪不得无论是安装windows还是linux,总是把TCP/IP协议自己安上,看来IP地址是我们上网的身份证呀!八戒接着向下看:


“IP地址有两部分组成:网络地址和主机地址,分配给两者的位数随地址类型的不同而变化,见下表:



地址类型
第一个八位组的模式
第一个八位组的取值范围
有效网络号
网络地址的总的个数
每个网络内的主机个数
A
0xxxxxxx
1-126
1.0.0.0-126.0.0.0
126
2^24-2
B
10xxxxxx
128-191
128.1.0.0-191.254.0.0
2^16-2
2^16-2
C
110xxxxx
192-223
192.0.1.0-223.255.254.0
2^21-2
254
D
1110xxxx
224-239
   
E
1111xxxx
240-254
   


个表有什么用呢?也许只是告诉我们看到一个IP地址的第一个反应是知道它是属于哪一类的吧。八戒安慰着自己,又看到了下一个表格:保留地址,这个我可明白,八戒心想,有一些IP地址在实际运作中被保留起来代表一些特定的事物,往往不能用来表示某一台具体的主机,必须要学会看懂这些地址。

保留IP地址
用途
127.0.0.1
本地回环地址,用于测试本机的网络配置
0.0.0.0
在路由器上用来指定缺省路由
主机地址全为0
代表某一个子网,而不是具体的主机
主机地址全为1
代表某一个子网的广播地址



看来对于IP地址而言,概念上也不是很难理解,至少现在看到一个IP地址地址我知道它的基本信息了。八戒眨了眨猪眼,喝了一杯水,又翻到了下一页。

“子网化”

看到了这几个字,八戒的眉头开始皱了起来,今天课堂上,女老师用了三个小时,费尽口舌给大家讲的就是这个问题,子网到底如何计算?八戒可是越听越迷糊,等做题时看到200.16.10.0的时候头都疼了,老师讲解的10道例题一个也没弄懂,确实郁闷之极,但八戒转念一想:这是我上培训班遇到的第一个难题,难道我堂堂天蓬元帅会被几个数字难道吗?我一定能搞定的!八戒又睁大猪眼看了起来,不想有决心是一回事,看明白又是另外一回事。半个时辰下来,八戒看的头晕脑胀,眼冒金星,不由得气极败坏,甩掉书本,便欲发作……

就在这个时候,一片笑声从后面传来,八戒一回头,原来是悟空和沙僧,正在每人手持一串葡萄,边吃边看自己的窘态呢。八戒有点脸红,又有点不忿:看我这么辛苦,也不来帮忙,你们还是我的好兄弟呢?悟空却不理这个话茬,反而直接向八戒发问:

"为什么要划分子网?子网划分有什么意义?"

"这个..."一个问题就把八戒问住了,是啊,子网划分有什么用处呢?我还真不知道.悟空又接着说:"不正确了解子网的概念,不明白划分子网的道理就机械地去做题,把子网计算当作单纯的算术题.能不糊涂吗?差之毫厘,谬之千里也"一句话点醒梦中人!八戒仔细一想,还真是这个道理,吃掉了沙僧手里的葡萄,八戒渐渐地静下心来,开始向悟空虚心请教:"大师兄能不能给我讲讲呢?""其实也很简单"悟空回答道.

目前IP地址采用分类编址的缺点日益明显,最突出的问题就是IP地址不够用!确切的讲是B类地址不够用.因为A类地址可提供的主机地址数十分巨大,虽然其网络地址较少,但毕竟用得不是很多.C类地址可提供更多的网络地址数,但由于每个网络可以提供的主机地址数太少(254),往往不能满足需要.所以B类地址把大量的注册申请,造成地址资源紧张.比如,某个机构需要1000个IP地址,去申请B类地址,那么无论对IP地址,还是对这个机构,都是一种浪费.因此,我们必须对现有的IP地址进行合理的子网化.用书上的话说:就是(1)可以扩展网络。通过增加路由器、创建子网来扩展网络,以连接更多的计算机。(2)减少CPU的负载和占用贷款。一个网络内计算机越多,占用资源越多,发的广播越多,CPU处理这些广播所用资源越多。(3)便于管理,通过将大的网络划分称几个小的子网可以在某个子网内的硬件出现故障后不会影响整个网络,通过管理手段提高了网络的安全性,而且可以在不同的子网内使用不同的介质,好处多多"

"这么说,子网掩码就是这个作用了?"

"对,子网化就是通过从原先用于分配主机地址的位数中分出一部分位数来形成子网地址,减少了子网内主机地址的数目,但是多出了一些新的子网,而子网掩码的作用就是用于从IP地址中提取出整个网络地址部分(包括主网地址和子网地址).让我们知道这台主机到底处于哪一个子网中"

"既然如此,没有子网掩码的IP地址就不能算是一个真正有用的IP地址了,对吧?"八戒问道。

“是的,具体说来,我们要用IP地址和子网掩码作二进制的“与”运算,其结果就是这个IP的网络地址,举个例子吧”

IP地址: 11.16.10.1 子网掩码:255.0.0.0
先分别变成二进制
00001011.00010000.00001010.00000001
11111111.00000000.00000000.00000000
这两行进行了&运算的结果 00001011.00000000.00000000.00000000 这就是11.16.10.1的网络地址

八戒仔细的想了一下,好像明白了,又好像不明白.沙僧看出了这一点,"二师兄,老师说过了,多看一些例子就能理解了,我们必须先理论,后实践,再理论,再实践,多次反复才能进步"

悟空插嘴道"沙师弟,你给八戒讲一讲例题吧"

沙僧拿出一枝笔,边写边说:

“你首先要理解"全0全1原则",就是在主网地址,子网地址,主机地址中,全0全1的地址不可用.在做IP计算时必须要注意这一点,然后就可以动手了,我们先考虑C类地址的子网化计算方法”

 

对于任意一个C类地址和子网掩码,不妨设有X位用于子网化,剩余M位用于主机分配,我们有5个问题要问:
1, 确定该地址的类型,先定出主网地址和缺省子网掩码
2, 用出分配给子网的位数能产生多少个有效子网?
答案:2^X-2
3, 每个子网能提供多少个有效主机地址?
答案:2^M-2
4, 列出每个有效的子网?
答案:子网掩码从右到左,找到的一个非全0的组(设其为P)转换成十进制后去减256,得数就是第一个有效子网号, 第二个有效子网号=第一个有效子网号X2,依此类推,最后一个有效子网=P-第一个有效子网
5, 每个有效的子网的广播地址?
本子网的广播地址=相邻的下一个子网地址-1
6, 每个子网内有效的主机地址是什么?
本子网的第一个有效地址=本子网地址+1

例题1:IP:200.16.10.0,掩码:255.255.255.252
我们按照上面的6步来
1, C类地址,缺省子网掩码255.255.255.0
2, 252变为二进制11111100,用了6位划子网,则有62个子网
3, M=2,每个子网提供俩主机(少了点)
4, 256-252=4.则第一个子网:200.16.10.4 余下类推
5, 第一个子网的广播地址=200.16.10.7
6, 第一个子网的第一个有效地址=200.16.10.5

例题2:IP:200.16.10.0,掩码:255.255.255.224
我们按照上面的6步来
1, C类地址,缺省子网掩码255.255.255.0
2, 224变为二进制11100000,用了3位划子网,则有6个子网
3, M=5,每个子网提供30主机
4, 256-224=32,则第一个子网:200.16.10.32余下类推
5, 第一个子网的广播地址=200.16.10.63
6, 第一个子网的第一个有效地址=200.16.10.33

例题3:IP:200.16.10.0,掩码:255.255.255.240
1, C类地址,缺省子网掩码255.255.255.0
2, 240变为二进制11110000,用了4位划子网,则有14个子网
3, M=4,每个子网提供14个主机
4, 256-240=16,则第一个子网:200.16.10.16余下类推
5, 第一个子网的广播地址=200.16.10.31
6, 第一个子网的第一个有效地址=200.16.10.17
第一个子网的最后一个有效地址=200.16.10.30

例题4:IP:200.16.10.0,掩码:255.255.255.248
1, C类地址,缺省子网掩码255.255.255.0
2, 248变为二进制11111000,用了5位划子网,则有30个子网
3, M=3,每个子网提供6个主机
4, 256-248=8,则第一个子网:200.16.10.8余下类
5, 第一个子网的广播地址=200.16.10.15
6, 第一个子网的第一个有效地址=200.16.10.8
第一个子网的最后一个有效地址=200.16.10.14

“这样看来,对于一个C类地址来说,当子网掩码为255.255.255.240时,所能提供的主机地址数目是最多的,对吧?"八戒已经在作总结了."C类地址的计算还是很容易麽,因为能够借用来划分子网的位数就这么几个.

位数 掩码 子网 主机
2 255.255.255.192 2 62
3 255.255.255.224 6 30
4 255.255.255.240 14 14
5 255.255.255.248 30 6
6 255.255.255.252 62 2

到了现在,八戒终于明白一些了,不由得想自己来试验一下,悟空却装作不知道,说"既然八戒已经学会C类地址的计算.给他一个题目做做吧."说完,悟空就在纸上写了这样一个题目.IP:199.141.27.0 .子网掩码255.255.255.240 请你选出下列地址中的有效的主机地址?

A. 199.141.27.33
B. 199.141.27.112
C. 199.141.27.119
D. 199.141.27.126
E. 199.141.27.175
F. 199.141.27.208

八戒不慌不忙,开始计算, 240转换为二进制是11110000,用了4位划分子网,则有效的子网数目2^4-2=14个.256-240=16,第一个有效的子网段199.141.27.16,第二个199.141.27.32,依此类推出所有网段:
199.141.27.16
199.141.27.32
199.141.27.48
199.141.27.64
199.141.27.80
199.141.27.96
199.141.27.112
199.141.27.128
199.141.27.144
199.141.27.160
199.141.27.176
199.141.27.192
199.141.27.208
199.141.27.224
真的是14个耶.八戒心中暗喜.经过对比和筛选,八戒发现:B是一个网段地址,E是199.141.27.176的广播地址,F也是网段地址,只有A,C,D才是有效的主机地址."二师兄果然厉害,一下子就作对了!"沙僧由衷的赞叹道.
“不忙,C类地址很容易的,B类的就不容易了,因为C类仅有一个八位组参与子网划分,而B类的选择要大得多,最多可以中14未参与划分子网,计算起来要注意.下面给出几个B类地址计算的例题,看看上面的5个问题是否还适用?

例题1:IP:172.16.0.0 子网掩码:255.255.192.0
1, B类地址,缺省子网掩码:255.255.0.0
2, 192变成二进制11000000,用了2位,则有2个有效子网
3, 14位用于主机地址,则每个子网的主机数(2^14-2)个
4, 256-192=64,则第一个子网172.16.64.0
5, 第一个子网的广播地址=172.16.127.255
6, 第一个子网的第一个有效地址=172.16.64.1
第一个子网的最后一个有效地址=172.16.127.254
"好像有一点不同吧",悟空笑道.
"确实如此,就是网络地址跨越两个八位组需要注意,其他的一样"八戒道:"让我自己来看下一道题吧

例题2:IP:172.16.0.0 子网掩码:255.255.254.0
1, B类地址,缺省子网掩码:255.255.0.0
2, 254变成二进制11111110,用了7位,则有126个子网
3, 9位用于主机地址,则每个子网的主机数(2^9-2)个
4, 256-254=2,则第一个子网172.16.2.0
5, 第一个子网的广播地址=172.16.3.255
6, 第一个子网的第一个有效地址=172.16.2.1
第一个子网的最后一个有效地址=172.16.3.254

例题3:IP:172.16.0.0 子网掩码:255.255.255.0"
1, B类地址,缺省子网掩码:255.255.0.0
2, 255变成二进制11111111,用了8位,则有254个子网
3, 8位用于主机地址,则每个子网的主机数(2^8-2)个
4, 256-255=1,则第一个子网172.16.1.0
5, 第一个子网的广播地址=172.16.1.255
6, 第一个子网的第一个有效地址=172.16.1.1
第一个子网的最后一个有效地址=172.16.1.254

例题4:IP:172.16.0.0 子网掩码:255.255.255.128
1, B类地址,缺省子网掩码:255.255.0.0
2, 255.128变成二进制11111111.10000000,用了9位,则有510个子网
3, 7位用于主机地址,则每个子网的主机数126个
4, 因为本题要涉及两个八位组,所以要分别计算,
对于第四个八位组,可能的子网有256-128=128.0;
对于第三个八位组,可能的子网有256-255=1,2,.....我们要对这两个结果进行排列组合,结论正好是510个子网,
第一个子网应该是172.16.0.128
第一个子网应该是172.16.1.0
5, 第一个子网的广播地址=172.16.0.255
6, 第一个子网的第一个有效地址=172.16.0.129
第一个子网的最后一个有效地址=172.16.0254

这最后一道例题看起来很复杂,八戒开始有一点糊涂,不明白子网的地址是如何计算来的,但是当八戒用二进制把子网掩码列出来时,再加上“全0全1原则”的运用,我们的老猪终于把这道题弄明白了。但当他高兴地抬起头来发出点感慨的时候,发现悟空和沙僧竟然不知道什么时候溜走了,更加令人奇怪的是,当八戒进到内室,竟然发现悟空和沙僧都睡得很熟的样子,好像从来没有起来过,而桌子上的葡萄还和昨天晚上摆放的一模一样,半点有没有动过……

 

《最传统的子网计算方法》

第二天的课程还是有关子网的计算,黑板上写着题目“传统的子网计算方法”漂亮的女老师用教鞭敲了敲黑板,开始说道:

“在这里的“传统”两个字只是表明这里的计算方法来自于思科出版的官方教材,之所以我们要把这种方法单独介绍一下,是因为这种教学方法相对来说更有循序渐进,有浅入深的味道。如果我们是一个从来接触过IP计算的初学者,用这种方法学习非常有效。因此,如果大家上次课没有听明白,可以结合本节理解一下。

我们的教材里面把IP计算分成了五个板块,用一种类似考试答题的形式一步一步地阐述IP计算。

1,给出IP地址和子网掩码,求所在子网号
2,给出IP地址和子网掩码,求所在子网的广播地址
3,给出IP地址和子网掩码,求子网的有效主机地址
4,给出网络号和子网掩码,求有效的子网
5,给出网络号和子网掩码,求子网数目和主机数目”

"好像和上节课差不多"八戒小声嘟囔道

"在每一个板块中,又分别用十进制和二进制作了IP计算的举例,下面我们就开始学习,因为大家对十进制和二进制之间的转换已经比较熟悉了,我们只看十进制的例子:"

来自各界的学生们开始正襟危坐,集中精神听讲,魔家四兄弟也把牌收了起来,拿出印有“菊花会员专用”字样的笔记本准备做笔记。

1, 给出IP地址和子网掩码,求所在子网号

第一种情况,无子网掩码,计算步骤如下:
Step 1 十进制写下IP地址
Step 2 根据网络类型,抄写网络地址
Step 3 剩下的部分补0
第二种情况,简单的子网掩码,计算步骤如下:
Step 1 十进制写下IP地址
Step 2 根据子网掩码,抄写网络地址
Step 3 剩下的部分补0
第三种情况,复杂的子网掩码,计算步骤如下:
Step 1 十进制写下IP地址
Step 2 十进制写下子网掩码
Step 3 检查子网掩码,如果有数值介于0和255之间的八位组,这就是复杂的子网掩码,该八位组被认为是“关键组“其他的三个八位组被认为是“无义组”,在这里写下“关键组的”位置(1-4)
Step 4 用256减去关键组的值,写出得数,我们称之“倍数”
Step 5 把所有关键组左边的无义组照抄
Step 6 把所有关键组左边的无义组填入0
Step 7 找到原始的IP地址中的关键组,计算每一个“倍数”的整数倍数的值,(0倍,1倍,2倍,…)找到这些值中和关键组的数值最相近的数(这个值必须小于关键组的值)。写在剩余的空白处

“这就是给出IP地址和子网掩码,求所在子网号的计算方法,前两种情况很简单,我们考试中常遇到的是第三种情况。步骤虽然很多,
但熟练了就能很快的完成,下面接着看”

2,给出IP地址和子网掩码,求子网的广播地址

第一种情况,无子网掩码或者简单子网掩码,计算步骤如下:
Step 1 十进制写下IP地址
Step 2 根据网络类型,照抄网络地址
Step 3 剩余的部分补0
第二种情况,复杂的子网掩码,计算步骤如下:
Step 1 十进制写下IP地址.
Step 2 十进制写下子网掩码
Step 3 检查子网掩码,如果有数值介于0和255之间的八位组,这就是复杂的子网掩码,该八位组被认为是“关键组“其他的三个八位组被认为是“无义组”,在这里写下“关键组的”位置(1-4)
Step 4 用256减去关键组的值,写出得数,我们称之“倍数”
Step 5 把所有关键组左边的无义组照抄
Step 6 把所有关键组左边的无义组填入255
Step 7 找到原始的IP地址中的关键组,计算每一个“倍数”的整数倍数的值,(0倍,1倍,2倍,…)找到这些值中比关键组的数值刚刚大一点的数。把这个数减去1写在剩余的空白处

“请大家注意区别计算子网地址和广播地址之间的不同之处,下面再看:”

3,给出IP地址和子网掩码,求子网的有效主机地址

“如果上面两个问题搞明白了,这个问题就很容易理解了,有效的主机地址自然是子网地址+1和广播地址-1之间的地址了,看图就可以了”

4,给出网络号和子网掩码,求有效的子网数目

“这个问题上节课讲过了,八戒能否复述一下?”田中老师问

“这有何难?子网掩码从右到左,找到的一个非全0的组(设其为P)转换成十进制后去减256,得数就是第一个有效子网号, 第二个有效子网号=第一个有效子网号X2,依此类推,最后一个有效子网=P-第一个有效子网。”猪八戒把昨天夜里学到的东西拿了出来。

“你能给大家举两个例子吗?”

“当然可以,请同学们看图:基本方法都是一样的,首先找到子网掩码中到底用了几位划分子网,计算出子网的数目之后,用256减
去关键组的数值第一个有效子网号,然后按倍数递增就行了”

“看来八戒同学对子网计算已经完全理解了。第五个问题你也来回答好吗?老师笑眯眯地对八戒说:

5,给出网络号和子网掩码,求子网数目和主机数目”

“这个问题最简单了”,八戒说道(底下的同学都伸长了耳朵)“假设在主机地址中用了X位划分子网,则有效的子网数目应该是2^M-2。每个有效的子网数目就是(主机地址位数-X)^2-2。”八戒很得意的样子

沙僧和悟空在下面领着同学们热烈鼓掌。

“下面我做一下总结”田中老师说道:“通过这两天的学习,大家对于子网划分方面的计算有了一个初步的认识,学到了一些基础知识,事实上划分子网的方法很多,我们每个人可以选择自己喜欢的方法,但一定要明白子网划分的作用,理解了概念才能深入地学习,否则以后面对真正的,包括许多不同种网络设备的环境,才能做到心中有数!明天我给大家介绍一些比较深入的子网概念,现在下课。”

今天放学后的八戒和昨天判若两人,高高兴兴的哼着“the answer is blowing in the wind”步履轻松地和师兄师弟向宿舍走去!

1楼 0 0 回复