【网际互联】IPv4 编址 - 图1

网络层连接

在讨论IP编址之前,我们需要简述一下主机与路由器连入网络的方法。

一台主机通常只有一条链路连接到网络

主机中的IP想发送一个数据报时,它就在该链路上发送。

主机与物理链路之间的边界叫做接口( interface)。

现在考虑一台路由器及其接口。因为路由器的任务是从链路上接收数据报并从某些其他链路转发出去,路由器必须拥有两条或更多条链路与它连接。

路由器与它的任意条链路之间的边界也叫做接口。

一台路由器因此有多个接口,每个接口有其链路。

因为每台主机与路由器都能发送和接收IP数据报,IP 要求每台主机和路由器接口拥有自己的IP地址。

因此,一个 IP 地址技术上是与一个接口相关联的,而不是与包括该接口的主机或路由器相关联的。

image.png

IPv4 地址标准

每个IP地址长度为 32 比特 (等价为4字节),因此总共有【网际互联】IPv4 编址 - 图3个可能的IP地址,即约有40亿个可能的IP地址。

这些地址般按所谓点分十进制记法 (dotted-decimal notation) 书写,即地址中的每个字节用它的十进制形式书写,各字节间以句号 (点) 隔开。例如,考虑 IP 地址 193.32.216.9,193 是该地址第一个 8 比特的十进制等价数,32 是该地址第二个 8 比特的十进制等价数,依次类推。

因此,地址 193. 32. 216. 9的二进制记法是: 11000001 00100000 11011000 00001001

在全球因特网公网中的每台主机和路由器上的每个接口,必须有一个全球唯一的 IP 地址

然而,这些地址不能随意地自由选择。一个接口的 IP 地址的一部分需要由其连接的子网来决定 。

用 IP 的术语来说,互联主机接口与路由器接口的网络形成个子网 (sub-net) [RFC950]。

【网际互联】IPv4 编址 - 图4

例如 IP 编址为这个子网分配一个地址: 223.1.1.0/24, 其中的/24记法,有时称为子网掩码( network mask),指示了32比特中的最左侧24比特定义了子网地址。

一个具有多个以太网段和点对点链路的组织 (如一个公司或学术机构) 将具有多个子网,在给定子网上的所有设备都具有相同的子网地址。

原则上,不同的子网能够具有完全不同的子网地址。然而,在实践中,它们的子网地址经常有许多共同之处。

为了理解其中的道理,我们来关注在全球因特网中是如何处理编址的。

地址分配策略

因特网的地址分配策略被称为无类别域间路由选择 (ClasslessInterdomainRouting, CIDR) [ RFC 4632]。

CIDR 将子网寻址的概念一般化了。因为对于子网寻址,32比特的 IP地址被划分为两部分,并且也具有点分十进制数形式 a.b.c.d/x, 其中x指示了地址的第一部分中的比特数。

形式为 a. b.c. d/x 的地址的 x 最高比特构成了IP地址的网络部分,并且经常被称为该地址的前缀 (prefx) (或网络前缀)。

image.png

一个组织通常被分配一块连续的地址, 即具有相同前缀的一段地址。

在这种情况下,该组织内部的设备的IP地址将共享共同的前缀。

这相当大地减少了在这些路由器中转发表的长度,因为形式为 a.b.c.d/x 单一表项足以将数据报转发到该组织内的任何目的地。

一个地址的剩余 32-x 比特可认为是用于区分该组织内部设备的,其中的所有设备具有相同的网络前缀。

当该组织内部的路由器转发分组时,才会考虑这些比特。

分类编址

在 CIDR 被采用之前,IP 地址的网络部分被限制为长度为8、16或24比特,这是种称为分类编址(classful ddressing) 的编址方案,这是因为具有8、16 和24比特子网地址的子网分别被称为A、B和C类网络。

一个 IP 地址的网络部分正好为1、2或3字节的要求,已经在支持数量迅速增加的具有小规模或中等规模子网的组织方面出现了问题。

一个C类(/24) 子网仅能容纳多达【网际互联】IPv4 编址 - 图6台主机(【网际互联】IPv4 编址 - 图7, 其中的两个地址预留用于特殊用途),这对于许多组织来说太小了。

然而一个B类(/16) 子网可支持多达65534台主机,又太大了。

【网际互联】IPv4 编址 - 图8

在分类编址方法下,比方说一个有2000台主机的组织通常被分给个B类(/16)地址。这就导致了B类地址空间的迅速损耗以及所分配的地址空间的利用率低。

例如,为具有2000台主机的组织分配了一个B类地址,就具有足以支持多达65534个接口的地址空间,剩下的超过63000个地址却不能被其他组织使用。

还有另一种类型的IP地址,即 IP广播地址 255. 255. 255. 255。

当一台主机发出一个目的地址为 255.255.255. 255 的数据报时,该报文会交付给同一个网络中的所有主机。

路由器也会有选择地向邻近的子网转发该报文 (虽然它们通常不这样做)。

【网际互联】IPv4 编址 - 图9