PDA

查看完整版本 : Ip地址与子网掩码知识


Erika
2007-07-23, 12:22 PM
IP地址与子网掩码知识



IP地址与网络分类
(1)IP地址
不同的物理网络技术有不同的编址方式;不同物理网络中的主机,

有不同的物理网络地址。网间技术是将不同物理网络技术统一起来

的高层软件技术。网间技术采用一种全局通用的地址格式,为全网

的每一网络和每一主机都分配一个网间地址,以此屏蔽物理网络地

址的差异。IP协议提供一种全网间通用的地址格式,并在统一管理

下进行地址分配,保证一个地址对应一台网间主机(包括网关),

这样物理地址的差异被IP层所屏蔽。IP层所用到的地址叫做网间地

址,又叫IP地址。它由网络号和主机号两部分组成,统一网络内的

所有主机使用相同的网络号,主机号是唯一的。IP地址是一个32为

的二进制数,分成4个字段,每个字段8位。
(2)三类主要的网络地址
  我们知道,从LAN到WAN,不同种类网络规模相差很大,必须区

别对待。因此按网络规模大小,将网络地址分为主要的三类,如下


  A类:
0 1 2 3 8 16 24
  3 1 0网络号主机号
B类:1 0网络号主机号
  C类:1 1 0网络号主机号
  A类地址用于少量的(最多27个)主机数大于216的大型网,每

个A类网络可容纳最多224台主机;B类地址用于主机数介于28~216

之间数量不多不少的中型网,B类网络最多214个;C类地址用于每个

网络只能容纳28台主机的大量小型网,C类网络最多221个。
  除了以上A、B、C三个主类地址外,还有另外两类地址,如下:
  D类:1 1 1 0多目地址
  E类:1 1 1 1 0留待后用
  其中多目地址(multicast address)是比广播地址稍弱的多点

传送地址,用于支持多目传输技术。E类地址用于将来的扩展之用。
  (3)TCP/IP规定网络地址
  除了一般地标识一台主机外,还有几种具有特殊意义的特殊形

式。
  *广播地址
  TCP/IP规定,主机号全为“1”的网络地址用于广播之用,叫做

广播地址。所谓广播,指同时向网上所有主机发送报文。
  *有限广播
  前面提到的广播地址包含一个有效的网络号和主机号,技术上

称为直接广播(directed boradcasting)地址。在网间网上的任何

一点均可向其他任何网络进行直接广播,但直接广播有一个缺点,

就是要知道信宿网络的网络号。
  有时需要在本网络内部广播,但又不知道本网络网络号。

TCP/IP规定,32比特全为“1”的网间网地址用于本网广播,该地址

叫做有限广播地址(limited broadcast address)。
  *“0”地址
  TCP/IP协议规定,各位全为“0”的网络号被解释成“本”网络


  *回送地址
  A类网络地址127是一个保留地址,用于网络软件测试以及本地

机进程间通信,叫做回送地址(loopback address)。无论什么程

序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任

何网络传输。
  TCP/IP协议规定,一、含网络号127的分组不能出现在任何网络

上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定

可以看出,主机号全“0”全“1”的地址在TCP/IP协议中有特殊含

义,不能用作一台主机的有效地址。
二、子网掩码
(1)子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今

天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对

IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带

来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻

径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关

寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要

的是将增加内外部路径刷新时的开销,从而加重网络负担。
  因此,迫切需要寻求新的技术,以应付网间网规模增长带来的

问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地

址的增减,因此解决问题的思路集中在:如何减少网络地址。于是

IP网络地址的多重复用技术应运而生。
  通过复用技术,使若干物理网络共享同一IP网络地址,无疑将

减少网络地址数。
  子网编址(subnet addressing)技术,又叫子网寻径

(subnetrouting),英文简称subnetting,是最广泛使用的IP网络

地址复用方式,目前已经标准化,并成为IP地址模式的一部分。
  一般的,32位的IP地址分为两部分,即网络号和主机号,我们

分别把他们叫做IP地址的“网间网部分”和“本地部分”。子网编

址技术将本地部分进一步划分为“物理网络”部分和“主机”部分

,如图:
  网间网部分物理网络主机
  网间网部分.本地部分
  其中“物理网络”用于标识同一IP网络地址下的不同物理网络

,既是“子网”。
  (2)子网掩码IP协议标准规定:每一个使用子网的网点都选择一

个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为

网络地址(包括网间网部分和物理网络号)中的一位;若位模式中

的某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模

式:11111111 11111111 11111111 00000000中,前三个字节全1,

代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代

表对应IP地址中最后的一个字节为主机地址。这种位模式叫做子网

模(subnet mask)或“子网掩码”。
  为了使用的方便,常常使用“点分整数表示法”来表示一个IP

地址和子网掩码,例如B类地址子网掩码(11111111 11111111

11111111 00000000)为:
  255.255.25.0 IP协议关于子网掩码的定义提供一种有趣的灵活

性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网

掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的

路由器支持在子网中使用低序或无序的位,因此在实际应用中通常

各网点采用连续方式的子网掩码。像255.255.255.64和

255.255.255.160等一类的子网掩码不推荐使用。
  (3)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出

一个网络地址的网络号和主机号。
  例如:有一个C类地址为:
  192.9.200.13其缺省的子网掩码为:
  255.255.255.0则它的网络号和主机号可按如下方法得到:

将IP地址192.9.200.13转换为二进制11000000 00001001

11001000 00001101
将子网掩码255.255.255.0转换为二进制11111111 11111111

11111111 00000000
将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分

11000000 00001001 11001000 00001101 AND 11111111 11111111

11111111 00000000 11000000 00001001 11001000 00000000结果为

192.9.200.0,即网络号为192.9.200.0。
将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部

分11000000 00001001 11001000 00001101 AND 00000000 00000000

00000000 11111111 00000000 00000000 00000000 00001101结果为

0.0.0.13,即主机号为13。  
  (4)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出

一个网络地址的网络号和主机号。
  例如:有一个C类地址为:
  192.9.200.13 其缺省的子网掩码为:
  255.255.255.0 则它的网络号和主机号可按如下方法得到:
将IP地址192.9.200.13转换为二进制11000000 00001001

11001000 00001101
将子网掩码255.255.255.0转换为二进制11111111 11111111

11111111 00000000
将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分

11000000 00001001 11001000 00001101 AND 11111111 11111111

11111111 00000000 11000000 00001001 11001000 00000000结果为

192.9.200.0,
即网络号为192.9.200.0。
将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部

分11000000 00001001 11001000 00001101 AND 00000000 00000000

00000000 11111111 00000000 00000000 00000000 00001101 结果

为0.0.0.13,即主机号为13。
  三、子网划分与实例根据以上分析,建议按以下步骤和实例定

义子网掩码。
  1、将要划分的子网数目转换为2的m次方。如要分8个子网,

8=23。
  2、取上述要划分子网数的2的m次方的幂。如23,即m=3。
  3、将上一步确定的幂m按高序占用主机地址m位后转换为十进制

。如m为3 则是11100000,转换为十进制为224,即为最终确定的子

网掩码。如果是C类网,则子网掩码为255.255.255.224;如果是B类

网,则子网掩码为255.255.224.0;如果是C类网,则子网掩码为

255.224.0.0。
  在这里,子网个数与占用主机地址位数有如下等式成立:2m=n

。其中,m表示占用主机地址的位数;n表示划分的子网个数。根据

这些原则,将一个C类网络分成4个子网。若我们用的网络号为192.

9.200,则该C类网内的主机IP地址就是192.9.200.1~

192.9.200.254(因为全“0”和全“1”的主机地址有特殊含义,不

作为有效的IP地址),现将网络划分为4个部分,按照以上步骤:
  4=22,取22的幂,即2,则二进制为11,占用主机地址的高序位

即为11000000,转换为十进制为192。这样就可确定该子网掩码为:

192.9.200.192,4个子网的IP地址范围分别为:
  二进制十进制
11000000 00001001 11001000 00000001 11000000 00001001

11001000 00111110 192.9.200.1
192.9.200.62
11000000 00001001 11001000 01000001 11000000 00001001

11001000 01111110 192.9.200.65
192.9.200.126
11000000 00001001 11001000 10000001 11000000 00001001

11001000 10111110 192.9.200.129
192.9.200.190
11000000 00001001 11001000 11000001 11000000 00001001

11001000 11111110 192.9.200.193
192.9.200.254
  在此列出A、B、C三类网络子网数目与子网掩码的转换表,以供

参考。
A类:
子网数目 占用位数    子网掩码    子网中主机数
 2     1    255.128.0.0    8,388,606
 4     2    255.192.0.0    4,194,302
 8     3    255.224.0.0    2,097,150
 16     4    255.240.0.0    1,048,574
 32     5    255.248.0.0    524,286
 64     6    255.252.0.0    262,142
 128    7    255.254.0.0    131,070
 128    8    255.255.0.0    65,534
B类:
子网数目 占用位数    子网掩码    子网中主机数
 2     1    255.255.128.0   32,766
 4     2    255.255.192.0   16,382
 8     3    255.255.224.0   8,190
 16     4    255.255.240.0   4,094
 32     5    255.255.248.0   2,046
 64     6    255.255.252.0   1,022
 128    7    255.255.254.0   510
 256    8    255.255.255.0   254
C类:
子网数目 占用位数    子网掩码    子网中主机数
 2     1    255.255.255.128   126
 4     2    255.255.255.192   62
 8     3    255.255.255.224   30
 16     4    255.255.255.240   14
 32     5    255.255.255.248   6
 64     6    255.255.255.252   2
子网掩码和ip地址的关系
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络

的根据。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运

算后,如果得出的结果是相同的,则说明这两台计算机是处于同一

个子网络上的,可以进行直接的通讯。就这么简单。
请看以下示例:
运算演示之一:aa
I P 地址  192.168.0.1
子网掩码  255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11010000.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 地址:11010000.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 地址 11010000.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 地址 00010000.01001001.1*******.********
子网掩码 11111111.11111111.10000000.00000000
AND运算00010000.01001001.10000000.00000000
转化为十进制后为:
      16 . 73 . 128 . 0
4、可知我们内部网可用的IP地址为:

00010000.01001001.10000000.00000000       到

00010000.01001001.11111111.11111111
5、转化为十进制:
16.73.128.0 到 16.73.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.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
FAINT!!!!@#!@把我们公司都买了还买不了这么多的机器呢!?

¥!?#
9、看看的结果是否正确
  (1)、设定IP地址为192.168.128.1
    Ping 192.168.129.233通过测试
    访http://192.168.129.233 (http://192.168.129.233/)可以显示出主页
  (2)、设定IP地址为192.168.255.254
    Ping 192.168.129.233通过测试
    访http://192.168.129.233 (http://192.168.129.233/)可以显示出主页
10、结论
  以上证明我们的结论是对的。
现在你就可以看你的子网中能有多少台机器了
255.255.255.128
分解:11111111.11111111.11111111.1000000
所以你的内部网络的ip地址只能是

xxxxxxxx.xxxxxxxx.xxxxxxxx.0???????
到xxxxxxxx.xxxxxxxx.xxxxxxxx.01111111