IP地址分类与子网掩码相关计算

若无特殊说明,本文所有的ip都默认表示ipv4。

前言

IP地址的编址方法共经过了三个历史阶段:

1
2
3
(1) 分类的IP地址。这是最基本的编址方法,在1981年就通过了相应的标准协议。
(2) 子网的划分。这是对最基本的编址方法的改进,其标准RFC 950在1985年通过。
(3) 构成超网。这是比较新的无分类编址方法。1993年提出后很快就得到推广应用。

本文仅设计IP地址分类和子网的划分。

一、五类IP地址

每个IP地址包括 网络ID 和 主机ID 两个标识码。
同一个物理网络上的所有主机都使用同一个网络ID,网络上的每一台主机都有一个主机ID与之对应。
根据网络ID的不同将IP地址分为A、B、C、D、E类5种类型。
ip分类

A类地址的第一组数字为1~126。
其中0代表任何地址,127为环回测试地址,数字0和127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。
B类地址的第一组数字为128~191。
C类地址的第一组数字为192~223。

在IP地址A、B、C三种主要类型里,各保留了3个区域作为私有地址,私有地址空间专为不与公网相连的网络而预留(比如用做内网ip)。
其地址范围如下:
A类地址: 10.0.0.0~10.255.255.255
B类地址: 172.16.0.0~172.31.255.255
C类地址: 192.168.0.0~192.168.255.255

IP地址分类详细介绍

1
2
3
n: 表示该二进制位是网络位 
H: 表示该二进制位是主机位
X: 表示该二进制位无特定作用

分类规则《计算机网络》谢希仁著
A类、B类和C类地址的网络号字段(在图中这个字段是灰色的)分别为1,2和3字节长
而在网络号字段的最前面有1∼3位的类别位,其数值分别规定为0,10和110。

注:
由于近年来已经广泛使用无分类IP地址进行路由选择,A类、B类和C类地址的区分已成为历史
但由于很多文献和资料都还使用传统的分类IP地址,而且从概念的演进上更清晰,因此我们在这里还要从分类IP地址讲起
——《计算机网络》谢希仁著


A类(0.0.0.0 - 127.255.255.255)

A类IP地址由1字节的网络地址和3字节主机地址组成,它主要为大型网络而设计的。

1
2
3
  0.  0.  0.  0 = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH

1)网络号:
理论上A类网络有128(2^7)个
然而实际上并没有这么多,只有126(2^7 - 2)个,实际地址范围是 1.0.0.1 ~ 126.255.255.254
因为网络号全0(0.x.x.x)的地址是保留地址,意思是“本网络”。
全1(127.x.x.x)的地址也是保留地址,保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用。
若主机发送一个目的地址为环回地址(例如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。
目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。

2)主机号:
A类IP地址默认子网掩码为255.0.0.0。
每个网络能容纳 16777214(2^24 - 2) 个主机。
这里减2的原因是:
全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0)
而全1表示“所有的(all)”,因此全1的主机号字段表示该网络上的所有主机。

B类(128.0.0.0 - 191.255.255.255)

B类IP地址由2个字节的网络地址和2个字节的主机地址组成

1
2
3
128.  0.  0.  0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH

1)网络号
因为B类ip最高位必须是”10”(二进制),只有14(2^8-2)个地址位可用,且前面有’10’了,后面就不可能出现全0或者全1了。
所以,不用像A类地址一样减2。
但实际上B类网络地址128.0.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0。
因此B类地址可指派的网络数有16383(2^14 - 1)个。
可用地址范围从128.1.0.0 ~ 191.255.255.255

2)主机号
B类IP地址默认子网掩码为255.255.0.0。
每个网络能容纳 65534(2^16 - 2) 个主机,减2的原因同上面A类地址的主机,需要减去全0和全1的主机号。

C类(192.0.0.0 - 223.255.255.255)

C类IP地址由3字节的网络地址和1字节的主机地址组成

1
2
3
192.  0.  0.  0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH

1)网络号
和B类IP地址类似,C类ip最高位必须是”110”(二进制),只有2097154(2^21)个地址可用,且不会出现全0或全1.
同样,不用减2且保留一个不指派的192.0.0.0。
因此,C类地址可指派的网络数有2097151(2^21 - 1)个。
可用地址范围从192.0.1.0 ~ 223.255.255.255
可以指派的最小ip地址为 192.0.1.0

2)主机号
C类IP地址默认子网掩码为255.255.255.0。
每个网络能容纳254(2^8 - 2)个主机。

小结

前三类IP地址指派范围
IP地址指派范围《计算机网络》谢希仁著
不使用的特殊IP地址
特殊ip地址《计算机网络》谢希仁著


D类(224.0.0.0 - 239.255.255.255)

1
2
3
224.  0.  0.  0 = 11100000.00000000.00000000.00000000
239.255.255.255 = 11101111.11111111.11111111.11111111
1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

用于多点广播(multicast address)。
D类IP地址第一个字节以 “1110” 开始,第一个数最小为224(二进制11100000)。
它并不指向特定的网络,目前这一类地址被用在多点广播中。
多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

E类(240.0.0.0 - 255.255.255.254)

1
2
3
240.  0.  0.  0 = 11110000.00000000.00000000.00000000
255.255.255.255 = 11111111.11111111.11111111.11111111
1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

E类IP地址都保留用于将来和实验使用。
E类IP地址第一个字节以 “1111” 开始,第一个数最小为240(二进制11110000)。

特殊的IP网址

0.0.0.0 表示当前主机
255.255.255.255 表示当前子网的广播地址。
IP地址中凡是以”1110”开头的。
IP地址中不能以十进制”127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试。
如:127.0.0.1可以代表本机IP地址,用 “http://127.0.0.1“ 就可以测试本机中配置的Web服务器。
网络ID的第一个8位组也不能全置为”0”,全”0”表示本地网络。


二、子网掩码

子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分,划分IP地址中哪一部分是网络号,哪一部分是机器号。
子网掩码是一个32位二进制码,而且它的1和0必须是连续的,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。

子网掩码不能单独存在,须IP地址一起使用。
IP地址分为网络号和主机号。
网络号表示主机所属网络,主机号表示主机本身。
网络号与主机号的位数与IP地址分类有关。

ip地址子网掩码如何换算?

如: 192.168.1.53/27
换算成二进制为:
11000000.10101000.00000001.00110101

1)子网掩码?
网段为27,表示子网掩码有27个1
因此,子网掩码为如下

1
11111111 11111111 11111111 11100000

换算成十进制为

1
255.255.255.224

2)计算子网数?
子网数为2^m, m为子网掩码中借的1的个数,这里为3
因此子网数为:

1
2^3 = 8

3)计算可用的主机数?
主机数为2^n - 2, n为子网掩码中0的个数,这里为5
所以主机数为

1
2^5 - 2 = 30

4)计算网络地址?
IP与掩码相与得网络地址

1
2
3
4
5
6
11000000.10101000.00000001.00110101
11111111 11111111 11111111 11100000
=>
11000000.10101000.00000001.00100000
转换为十进制为:
192.168.1.32

5)计算广播地址?
广播地址则要把网络地址的主机位全换成1

1
2
3
4
5
11000000.10101000.00000001.00100000 的主机位为后5位
所以可得广播地址为
11000000.10101000.00000001.00111111
转换为十进制为:
192.168.1.63

6)可用ip范围

1
192.168.1.33 ~ 192.168.1.62

相关链接

分类网络-维基百科
IP地址的分类及范围详解
子网划分
子网相关在线计算