3.4.1 IP寻址
或许设计互联网协议最富有挑战之处是构造主机的命名和寻址方案以及将IP数据包路由到目的地的方案。分配主机网络地址的方案和计算机连接到它们的方案需要满足以下一些需求:
- 这必须是通用的——任何主机必须可以发送数据包给互联网中的任何其他主机。
- 地址空间的使用,必须是有效的——预知互联网的最终规模、网络数量和所需的主机地址数量是不可能的。地址空间必须仔细地分割以确保地址不会用完。1978—1982年,当开发TCP/IP协议时,108认为提供232(即约40亿,大致等于当时全世界的人口总数)的可寻址的主机就足够了。但这种判断已经被证明是目光短浅的,原因如下:
—互联网的增长速度远远超过了当初的预测。
—地址空间的分配和使用比预期的要低效得多。
- 寻址方案必须有助于开发灵活有效的路由方案,但地址本身并不能包括太多的用于将数据包路由到目的地的信息。
所选的方案为互联网中的每个主机都分配一个IP地址——一个32比特的数字标识符,其中包括一个网络标识符(唯一标识了互联网中的某个子网)、一个主机标识符(唯一标识了到该网络的主机连接)。这些地址将放在IP数据包中并被路由到目的地。
互联网地址空间所采用的设计如图3-15所示。一共有4类已分配的互联网地址——A、B、C、D。D类地址为互联网组播通信保留,组播通信仅在一些互联网路由器中实现,其进一步的讨论见4.4.1节。E类地址包括一些未分配的地址,为满足未来的需求而保留。
这些包含网络标识符和主机标识符的32比特互联网地址通常写成由点分开的4个十进制数字序列。每个十进制数字表示一个字节或IP地址的8比特组(octets)。每一类网络地址的允许值如图3-16所示。
三类地址用于满足不同类型组织的需要。A类地址(在每个子网中能容纳224台主机)是为非常大的网络准备的,例如US NSFNet和其他全国性的广域网。B类地址可分配给网络中的计算机超过255台的组织,而C类地址则是分配给所有其他的网络。
主机标识符为0和全1(二进制)的互联网地址将留作特殊用途。主机标识符为0的地址代表“本机”,若主机标识符为全1,则表示这是一个广播消息,并将消息发送到与地址的网络标识符部分指定的网络连接的主机上。
网络标识符是由互联网编号管理局(IANA)分配给其网络与互联网相连的组织。连接到互联网的计算机的主机标识符是由相关网络的管理员来分配的。
既然主机的地址包括一个网络标识符,那么连接到多个网络的计算机必须在每个网络中都有独立的地址。每次计算机移到一个新的网络,它的互联网地址必须改变。这些需求导致了实质性的管理开销,在使用便携计算机的情况下就会有这种开销。
IP地址分配方案在实际中并不是很有效。主要的困难是,用户组织中的网络管理员不能很容易地预测出未来他们对主机地址需求的增长,一般都会过高地估计,从而选择B类地址。到了1990年前后,按照当时的IP地址分配速度,到1996年前后就可能用完所有的地址。当时采取了三个步骤。第一步是开始开发新的IP协议和寻址方案,结果也就是现在的IPv6。
第二步是从根本上修改IP地址的分配方案。一个新的旨在更加有效地利用IP地址空间的地址分配和路由方案诞生了,该方案称为无等级域间路由(CIDR),我们将在3.4.3节中讨论CIDR。图3-10中的局域网拥有多个C类地址规模的子网,从138.37.88~138.37.95,这些子网通过路由器连接。路由器负责将IP数据包传送到所有的子网,同时也负责处理子网间和子网到互联网其他部分的流量。该图也说明了使用CIDR划分一个B类地址空间,形成若干C类地址规模的子网。
第三步是使未注册的计算机能通过实现了网络地址翻译(NAT)方案的路由器间接地访问互联网。我们在3.4.3节讨论该方案。