Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298423
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类:

2012-05-08 13:37:39

原文地址:子网掩码 作者:Arthursky

子网掩码
开放分类: 、、、、
子网掩码(subnet mask)是每个网管必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置。以下我们就来深入浅出地讲解什么是子网掩码。

IP地址的结构
要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。

子网掩码不能单独存在,它必须结合一起使用。子网掩码只有一个作用,就是将某个IP地址划分成和两部分。
子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。附图所示的就是IP地址为“192.168.1.1”和子网掩码为“255.255.255.0”的对照。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。这对于采用的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

子网掩码的术语是扩展的网络前缀码不是一个地址,但是可以确定一个网络层地址哪一部分是网络号,哪一部分是主机号,1 的部分代表网络号,掩码为 0的部分代表主机号。子网掩码的作用就是获取主机 IP的网络地址信息,用于区别主机通信不同情况,由此选择不同路。其中 A类网络的子网掩码为 255.0.0.0;B类网络为 255.255.0.0;C类网络地址为:255.255.255.0  

如何通过子网掩码来确定网络号或者网络地址?
通过 IP 地址的二进制与子网掩码的二进制进行与运算进行定某个设备的网络地址,  
也就是说通过子网掩码分辨一个网络的网络部分和主机部分子网掩码一旦设置,网络地址和主机地址就固定了。
相对于使用子网掩码来识别网络地址,早期的使用类别进行网络地址的分类存在着地址大量浪费的不足。

子网一个最显著的特征就是具有子网掩码。与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:11111111111111111111111100000000,采用十进制的形式为:255.255.255.0。

1.子网掩码的概念
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

2.确定子网掩码数
用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

定义子网掩码的步骤为:

A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73”,主机标识为“a.b”。

B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第三个字节的前四位确定子网掩码。前四位都置为“1”(即把第三字节的最后四位作为主机位,其实在这里有个简单的规律,非网路位的前几位置1远网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第三个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。

C、把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11110000.00000000”

D、把这个数转化为间断十进制形式为:“255.255.240.0”

这个数为该网络的子网掩码。

3.IP掩码的标注
A、无子网的标注法

对无子网的IP地址,可写成主机号为0的掩码。如IP地址210.73.140.5,掩码为255.255.255.0,也可以缺省掩码,只写IP地址。

B、有子网的标注法

有子网时,一定要二者配对出现。以C类地址为例。

1.IP地址中的前3个字节表示网络号,后一个字节既表明子网号,又说明主机号,还说明两个IP地址是否属于一个网段。如果属于同一网络区间,这两个地址间的信息交换就不通过路由器。如果不属同一网络区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。例如:对于IP地址为210.73.140.5的主机来说,其主机标识为00000101,对于IP地址为210.73.140.16的主机来说它的主机标识为00010000,以上两个主机标识的前面三位全是000,说明这两个IP地址在同一个网络区域中,这两台主机在交换信息时不需要通过路由器进行。10.73.60.1的主机标识为00000001,210.73.60.252的主机标识为11111100,这两个主机标识的前面三位000与011不同,说明二者在不同的网络区域,要交换信息需要通过路由器。其子网上主机号各为1和252。

2.掩码的功用是说明有子网和有几个子网,但子网数只能表示为一个范围,不能确切讲具体几个子网,掩码不说明具体子网号,有子网的掩码格式(对C类地址)。


子网掩码和ip地址的关系  

注意这讲的都是有类网!

    子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。  
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。  
请看以下示例:  
运算演示之一:aa  
I P 地址  192.168.0.1  
子网掩码  255.255.255.0  
AND运算  
转化为二进制进行运算:  
I P 地址 11000000.10101000.00000000.00000001  
子网掩码 11111111.11111111.11111111.00000000  
AND运算  

     11000000.10101000.00000000.00000000  
转化为十进制后为:  

      192.168.0.0  


运算演示之二:  
I P 地址  192.168.0.254  
子网掩码  255.255.255.0  
AND运算  

转化为二进制进行运算:  
I P 地址 11000000.10101000.00000000.11111110  
子网掩码 11111111.11111111.11111111.00000000  
AND运算  

     11000000.10101000.00000000.00000000  
转化为十进制后为:  

      192.168.0.0  



运算演示之三:  
I P 地址  192.168.0.4  
子网掩码  255.255.255.0  
AND运算  

转化为二进制进行运算:  
I P 地址 11000000.10101000.00000000.00000100  
子网掩码 11111111.11111111.11111111.00000000  
AND运算  

     11000000.10101000.00000000.00000000  
转化为十进制后为:  

      192.168.0.0  


  通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0  

  所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。我现在单位使用的代理服务器,内部网络就是这样规划的。  

也许你又要问,这样的子网掩码究竟有多少了IP地址可以用呢?你可以这样算。  
根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对255.255.255.0的分析。可得出:  
  前三位IP码由分配下来的数字就只能固定为192.168.0  所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-1),即256-1=255一般末位为0或者是255的都有其特殊的作用。  

那么你可能要问了:如果我的子网掩码不是255.255.255.0呢?你也可以这样做啊假设你的子网掩码是255.255.128.0  

那么你的局域网内的ip地址的前两位肯定是固定的了  
这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器  

1、十进制128 = 二进制1000 0000  

2、IP码要和子网掩码进行AND运算

3、  
I P 地址 11000000.10101000.1*******.********  
子网掩码 11111111.11111111.10000000.00000000  
AND运算  

     11000000.10101000.10000000.00000000  
转化为十进制后为:  

      192 . 168. 128 . 0  

4、可知我们内部网可用的IP地址为:  

11000000.10101000.10000000.00000000  
       到  
11000000.10101000.11111111.11111111  

5、转化为十进制:  

192 . 168.128.0 到192 . 168.255.255  

6、0和255通常作为网络的内部特殊用途。通常不使用。  

7、于是最后的结果如下:我们单位所有可用的IP地址为:  
192.168.128.1-192.168.128.254  
192.168.129.1-192.168.129.254  
192.168.130.1-192.168.130.254  
192.168.131.1-192.168.131.254
. . . . . . . . . . . . .  
192.168.139.1-192.168.139.254  
192.168.140.1-192.168.140.254  
192.168.141.1-192.168.141.254  
192.168.142.1-192.168.142.254  
192.168.143.1-192.168.143.254
. . . . . . . . . . . . .  
192.168.254.1-192.168.254.254  
192.168.255.1-192.168.255.254  

8、总数为(255-128+1)*(254-1+1) =128 * 254 = 32512  



9、看看的结果是否正确  

  (1)、设定IP地址为192.168.128.1  

    Ping 192.168.129.233通过测试  

    访问
  (2)、设定IP地址为192.168.255.254  

    Ping 192.168.129.233通过测试  

    访问
10、结论  

  以上证明我们的结论是对的。  



现在你就可以看你的子网中能有多少台机器了  

255.255.255.128  
分解:  
11111111.11111111.11111111.1000000  
所以你的内部网络的ip地址只能是  
xxxxxxxx.xxxxxxxx.xxxxxxxx.0???????  
到  
xxxxxxxx.xxxxxxxx.xxxxxxxx.01111111   
 
网络地址
开放分类:
一个 IP地址的网络部分被称为网络号或者网络地址主机可以与具有相同的网络号的设备直接通讯
在没有连接设备的情况下,即使共享相同的物理网段,网络号不同则无法进行通讯  
IP 地址的网络地址使路由器可以将分组置于正确的网段上 IP 地址网络号后的主机号可以使路
由器能够二层帧封装的分组传送到网络上的一台特定的主机使主机号与 MAC 地址进行正确的映射
中的关键问题在于使用子网掩码来确定或者获取远程主机的网络地址信息  
网络地址之后的部分为主机地址  
作为同一个网络的网络地址必须是相同的,但是作为同一个网络的主机地址必须是不同的  
在同一个网络中的主机才能够直接进行通信,这种情况下的网络称为平面网络,比如:192.168.1.1/24
和 192.168.1.2/24,网络 ID一样,主机 ID不同  
如不是同一个网络的主机之间通信必须通过设备对数据进行转发,这种情况下的网络称为层次网络
阅读(519) | 评论(0) | 转发(0) |
0

上一篇:select

下一篇:测试lcd

给主人留下些什么吧!~~