概念
IP地址是给因特网上每一个主机(或路由器)的每一个接口分配一个全世界唯一的32位标识符,其最重要的文档是RFC 791。IP地址由ICANN(Internet Corporation for Assigned Names and Numbers,因特网名字与号码指派公司)进行分配。
IP地址是分给一个主机上的一个接口的,其标志着一个主机(或路由器)和一条链路的接口,所以当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,这种主机称为多归属主机(multihomed host)。比如,路由器总是具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同网络号的IP地址。自认,这个接口是指网卡上的接口,主机上可以有多个接口是依靠安装多个网卡或一个网卡多个网口实现的,待确认。
对主机和路由器来说,IP地址都是32位的二进制代码,为了提高可读性,我们常常把32位的IP地址中的每8位用其等效的十进制数字表示,并且在这些数字之间加上一个点,这就叫做点分十进制记法。示例如下图所示。
IP地址的编址方法共经过了三个历史阶段:
- 分类的IP地址:最基本的编址方法,1981年通过了相应的标准协议。
- 子网的划分:对最基本的编址方法的改进,其标准RFC 950在1985年通过。
- 构成超网:新的无分类编址方法,1993年提出后很快得到推广。
接下来将对这三种编址方法进行介绍。
分类的IP地址
为了更好地满足不同用户的要求、节省IP资源——有的网络拥有很多主机,而有的网络上的主机则很少,所以对IP地址进行了分类。当某个单位申请到一个IP地址时,比如A类地址5.0.0.0
,实际上是获得了具有该类IP地址网络号5.x.x.x
的一块网络地址区域(因为主机号可以由该单位自行分配,所以x
可以由该单位随意指派,只需保证该单位管辖的范围内无重复主机号即可)。通过对IP地址进行分类,尽可能的减少了单位电脑不多,却申请占用了一整个网络号,造成浪费的情况。
分类的IP地址带来的另外一个好处是,路由器仅根据目的主机所连接的网络号(自认,即目的IP的网络号字段)来转发分组,从而是路由表中的项目数大幅减少,减少了路由表所占的存储空间以及查找路由表的时间。不同网络号的局域网必须使用路由器进行互连。
分类的每一类IP地址都由两个固定长度的字段组成,第一个字段是网络号(net-id),标志主机(或路由器)所连接到的网络,在整个因特网范围内必须是唯一的,且网络号最前面有1~3位的类别位(分别对应A类地址、B类地址、C类地址),其数值分别规定为0,10,110,如下图所示;第二个字段是主机号(host-id),标志该主机(或路由器),在第一个字段——网络号所指明的网络范围内必须是唯一的。
IP地址可定义为IP地址::={<网络号>,<主机号>}
。
有特殊含义的IP地址如下所示。
单播与多播的含义及区别详见此博客。
A类地址(单播)
IP地址空间共有4294967296个地址,即232,A类地址空间共有231个地址(因为A类地址首位为0)。
如上图所示,因为A类地址的网络号字段占一个字节,且第一位已固定为0,所以只有7位可供使用。可指派的网络号是126个,即27-2,减2的原因是
- ①IP地址中的全0表示“这个(this)”(之前看到博客有提到0.0.0.0是通配符,待确认、理解),网络号字段为全0的IP地址是个保留地址,意思是本网络。
- ②网络号为127(即01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用,比如主机发送一个目的地址为环回地址(比如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。
A类地址的主机号占3字节,因此每一个A类网络中的最大主机数是16777214个,即224-2,减2的原因是
- ①主机号字段全0表示该IP地址是“本主机”所连接到的单个网络地址。比如,主机的IP地址是5.6.7.8,则该主机所在的网络地址就是5.0.0.0
- ②主机号字段全1表示“所有的(all)”,即该网络号代表的网络上所有的主机
B类地址(单播)
B类地址空间共约有230个地址,占整个IP地址空间的25%。
如上图所示,因为B类地址的网络号字段占2个字节,且前两位已固定为10,所以只有14位可供使用。可指派的网络数是16383,即214-1,减1的原因是B类网络地址128.0.0.0是不指派的,B类最小网络地址是128.1.0.0。
B类地址的主机号占2个字节,因此每一个B类网络中的最大主机数是65534,即216-2,减2的原因是要扣除全0和全1的主机号,如A类地址中的主机号部分所述。
C类地址(单播)
C类地址空间共约有229个地址,占整个IP地址的12.5% 。
如上图所示,因为C类地址的网络号字段占3个字节,且前三位已固定为110,所以只有21位可供使用。
可指派的网络数是2097151个,即221-1,减1的原因是,C类网络地址192.0.0.0是不指派的,可以指派的C类最小网络地址是192.0.1.0。
C类地址的主机号占1个字节,因此每一个C类网络中的最大主机数是254个,即28-2。