1、IP 地址分类及子网掩码详解一、IP 地址分类1、分类IP 地址就是给每一个连接在 Internet 上的主机分配一个唯一的 32bit 地址(标识符) 。IP 地址的结构使我们可以 Internet 上很方便地进行寻址,这就是:先按 IP 地址中的网络号码 net-id 把网络找到,再按主机号码 host-id 把主机找到。所以 IP 地址并不只是一个计算机的号码,而是指出了连接到某个网络上的某个计算机。IP 地址由美国国防数据网DDN 的网络信息中心 NIC 进行分配。按照国际规定,IP 地址可分为 A、B、C、D、E 五类,具体划分如下:其中 A、B、C 类地址由 net-id (网络号
2、)与 host-id(主机号)字段组成,是国际互联网上公共分配的地址,每一种类别网络地址与主机地址占用的位数见下图所示:一个 IP 地址可以很容易地从其第一个十进制数字上识别出来,是属于那一个类别,各类别分别有一定的数值范围,如下表所示: D、E 类 IP 地址组成不区分网络号和主机号,D 类地址是一种组播地址,主要是留给Internet 体系结构委员会 IAB(Internet Architecture Board)使用。E 类地址保留在今后使用。下面详细介绍各类地址:A 类地址:由 1 个字节的网络号和 3 个字节的主机号组成,默认子网掩码 255.0.0.0,网络地址的最高位必须为“0”
3、 ,第一个八位位组值的范围从 0-127。其中 0.0.0.0 保留且表示任意 IP 地址,127.0.0.0 保留用户测试回环用,实际可用的网络号 126 个(2 的 7 次方-2),从 1.0.0.0 到 126.0.0.0,每个网络可容纳 16777216 个主机(2 的 24 次方)。B 类地址:由 2 个字节的网络号和 2 个字节的主机号组成,默认子网掩码255.255.0.0,网络地址的最高位必须为“10” ,第一个八位位组值的范围从 128-191。其中保留 128.0.0.0 全“0”网络号和 191.255.0.0 全“1”网络号,实际可用的网络号16382 个(2 的 14
4、 次方-2),从 128.1.0.0 到 191.254.0.0,每个网络可容纳 65536 个主机(2 的 16 次方)。C 类地址:由 3 个字节的网络号和 1 个字节的主机号组成,默认子网掩码255.255.255.0,网络地址的最高位必须为“110” ,第一个八位位组值的范围从 192-223。其中保留 192.0.0.0 全“0”网络号和 223.255.255.0 全“1”网络号,实际可用的网络号2097150 个(2 的 21 次方-2),从 192.0.1.0 到 223.255.254.0,每个网络可容纳 256 个主机(2 的 8 次方)。D 类地址:网络地址的最高位必须为
5、“1110” ,第一个八位位组值的范围从 224-239。可用的地址范围从 224.0.0.0 到 239.255.255.255。该地址为专门保留地址,并不指向特定网络,用于多点广播,多点广播地址用来一次寻址一组计算机,标识该组计算机共享同一协议族。E 类地址:网络地址的最高位必须为“11110” ,第一个八位位组值的范围从 240-255。可用的地址范围从 240.0.0.0 到 240.255.255.254,为将来使用保留。2、特殊地址 下列地址为保留作为特殊用途的,一般不适用对于 A、B、C 类地址:网络号(net-id)全“0” ,表示本网络类别;全“1” ,主机号(host-id
6、)全“0” ,表示本网络号;全“1” ,本网络广播地址; 常用的特殊地址含义全“0”IP 地址, “0.0.0.0”表示全零网络,默认网络,任意 IP 地址;全“1”IP 地址, “255.255.255.255”表示全网广播地址(原来为“0.0.0.0”),确切IP 地址;广播地址可以分为直接广播和受限广播:直接广播地址包含一个有效的网络号和一个全“1”的主机号,如你说的218.56.57.255,255 就是一个主机号,218.56.57 则是 C 类的 IP 地址网络号;受限广播 32 位全 1 的 IP 地址(255.255.255.255) ,该地址用于主机配置过程中 IP 数据报的
7、目的地址,此时主机可能还不知道它所在网络的网络掩码,甚至连它的 IP 地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。3、可用网络地址、主机地址网络类别 最大网络数第一个可用的网络号码最后一个可用的网络号码每个网络中的最大主机数A 126 1 126 16,777,214B 16,382 128.1 191.254 65,534C 2,097,150 192.0.1 223.255.254 254二、子网掩码详解一般考试中都会给定一个 IP 地址和对应的子网掩码,让你计算: 1、子网数目 2、网络号 3、主机号 4、广播地址 5、可用
8、 IP 地址范围 碰到这类题,我们应该怎么样来解题呢。方法如下: 首先,不要管这个 IP 是 A 类还是 B 类还是 C 类,IP 是哪一类对于解题是没有任何意义的,因为在很多题中 B 类掩码和 A 类或是 C 类网络一起出现,不要把这认为是一个错误,很多时候都是这样出题的。 其次,应该知道以下几点: 1、明确“子网”的含义: 子网就是把一个大网划分为几个小网,每个小网的 IP 地址数目都是一样多的。这个小网就叫做这个大网的子网。大网可以是 A 类大网,也可以是 B 类大网,还可能是 C 类大网。A 类大网中容纳了 2 的 24 次方个 IP 地址,即 16777216 个 IP 地址;B 类
9、大网中容纳着2 的 16 次方个 IP 地址,即 65536 个 IP 地址;C 类大网中容纳着 2 的 8 次方个 IP 地址,即256 个 IP 地址。 如果把 B 类大网划分为 32 个小网,那么每个小网的 IP 地址数目就是65536/32=2048;如果把 C 类大网划分为 32 个小网,那么每个小网的 IP 地址数目就是256/32=8。 2、明确“掩码”的含义: 掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”! 好多书上说,掩码是用来确定 IP 地址所在的网络号,用来判断另一个 IP 是不是与当前 IP 在同一个子网中。这也对,但是对于我们做题来说,意义不大。我们要明确
10、:掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”! 掩码是用来确定子网数目的依据! 3、牢记各类网络的默认掩码 A 类网络的默认掩码是 255.0.0.0,换算成二进制就是 11111111.00000000.00000000.00000000;默认掩码意味着没有将 A 类大网再划分为若干个小网。掩码中的 1 表示网络号,24 个 0 表示在网络号确定的情况下(用二进制表示的 IP地址的左边 8 位固定不变) ,用 24 位二进制数来表示 IP 地址的主机号部分。 (IP 地址是由网络号+主机号两部分构成) B 类网络的默认掩码是 255.255.0.0,换算成二进制就是 11111
11、111.11111111.00000000.00000000;默认掩码意味着没有将 B 类大网再划分为若干个小网。16 个 0 表示在网络号确定的情况下(用二进制表示的 IP 地址的左边 16 位固定不变)可以用 16 位二进制数来表示 IP 地址的主机号部分。 (可以把 B 类默认掩码理解为是将 A 类大网划分为 2 的 8 次方(即 256)个小网) C 类网络的默认掩码是 255.255.255.0,换算成二进制就是 11111111.11111111.11111111.00000000;默认掩码意味着没有将 C 类大网再划分为若干个小网。这里的 8 个 0 表示在网络号确定的情况下(用
12、二进制表示的 IP 地址的左边 24 位固定不变) ,可以用 8 位二进制数来表示 IP 地址的主机部分。 (可以把 C 类默认掩码理解为是将 A 类大网划分为 2 的 16 次方(即 65536)个小网,是将 B 类大网划分为 2 的 8 次方(即256)个小网) 4、关于正确有效的掩码: 正确有效的掩码应该满足一定的条件,即把十进制掩码换算成二进制后,掩码的左边部分一定要是全为 1 且中间不能有 0 出现。比方说将 255.255.248.0 转为二进制是 11111111.11111111.11111000.00000000,可以看到左边都是 1,在 1 的中间没有 0 出现(0 都在
13、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 地址/数字 这样的形式,这里的/数字就是子网掩码的另类表示法。在做题时,我
14、们要正确理解这种另类表示法。我们将 255.255.248.0 转为二进制的形式是 11111111.11111111.11111000.00000000,可以看到左边是有 21 个 1,所以我们可以将255.255.248.0 这个掩码表示为/21。反过来,当我们看到/21 时,我们就把 32 位二进制的左边填上 21 个 1,将这个 32 位二进制数每 8 位做为一节用句点隔开,再转换为十进制,就是 255.255.248.0 了。 6、网络中有两个 IP 地址不可用: 不管是 A 类还是 B 类还是 C 类网络,在不划分子网的情况下,都是有两个 IP 地址不可用的:网络号和广播地址。比如
15、在一个没有划分子网的 C 类大网中用 202.203.34.0 来表示网络号,用 202.203.34.255 来表示广播地址,因为 C 类大网的 IP 地址有 256 个,现在减去这两个 IP 地址,那么可用的 IP 地址就只剩下 256-2=254 个了。如果题目问:把一个 C 类大网划分为 4 个子网,会增加多少个不可用的 IP 地址?可以这样想:在 C 类大网不划分子网时,有两个 IP 地址不可用;现在将 C 类大网划分为 4 个子网,那么每个子网中都有 2 个 IP 地址不可用,所以 4 个子网中就有 8 个 IP 地址不可用,用 8 个 IP 地址减去没划分子网时的那两个不可用的
16、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.25
17、5.255.252 这个掩码是在 C 类默认掩码的范围之内的,意味着我们将对 C 类网络进行子网划分。因为 C 类网络的默认掩码是255.255.255.0,将 C 类默认掩码转换为二进制是 11111111.11111111.11111111.00000000,这里的 8 个 0 表示可以用 8 位二进制数来表示 IP 地址,也就是说 C 类大网中可有 2 的 8 次方个 IP 地址,也就是 256 个 IP 地址。这道题中的掩码的最后一节是 252,转换为二进制是11111100,因为 1 表示网络号,所以 111111 就表示将 C 类大网划分为(111111)2 进制个子网。将 111
18、111 转换为十进制是 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 转为十进
19、制就是 255.255.192.0,可以看到这个掩码的左边两节和 B 类默认掩码是一致的,所以这个掩码是在 B 类默认掩码的范围内,意味着我们将对 B 类大网进行子网划分。B 类掩码默类是用 16 位(16 个 0)来表示可分配的 IP地址,本题中的掩码在 B 类默认掩码的基础上多出了两个表示网络号的 1,这就是说是将B 类大网划分为(11)2 进制个子网,将(11)2 进制转换为十进制就是 4,所以本题中是将 B类大网划分为 4 个子网。 2)算网络号 用公式:将 IP 地址的二进制和子网掩码的二进制进行“与” (and)运算,得到的结果就是网络号。 “与运算”的规则是 1 和 1 得 1,
20、0 和 1 得 0,1 和 0 得 0。 172.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,所以网
21、络号是 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 得:000
22、00000.00000000.00000000.11111111 ;将 00000000.00000000.00000000.11111111 转换为十进制是 0.0.0.255,我们将左边的 0 去掉,只留右边的数字,所以我们说这个 IP 的主机号是 255。主机号是表示网络号再加上 255 就是这个 IP 地址了。 4)算广播地址 也用公式:在得到网络号的基础上,将网络号右边的表示 IP 地址的主机部分的二进制位全部填上 1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是 11111111.11111111.11000000.00000000,网络号占了 18 位
23、,所以本题中表示 IP 地址的主机部分的二进制位是 14 位,我们将网络号 172.31.128.0,转换为二进制是 10101100.00011111.10000000.00000000,然后从右边数起,将 14 个 0 全部替换为 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。三、访问列表通配符访问列表通配符与子网掩码一样都是由 32 位“0” 、 “1”二进制位组成,但子网掩码的二进制位排列规则必须从高位到低位由连续“1”到连续“0” ,而通配符不需要,可以任意搭配;通配符中“0”表示检查、匹配, “1”表示不检查、不匹配,与子网掩码意义相反。