正如在 第 1 章 中提到的,IP 网络协议将地址理解为 32 位数字。每台机器都必须分配一个在其网络环境中唯一的数字。[1] 如果您正在运行一个不与其他网络进行 TCP/IP 通信的本地网络,您可以根据个人喜好分配这些数字。有一些 IP 地址范围已被保留用于此类私有网络。这些范围在 表 2-1 中列出。然而,对于 Internet 上的站点,数字由中央权威机构 网络信息中心 (NIC) 分配。[2]
为了便于阅读,IP 地址被分成四个八位数字,称为 八位字节。例如,quark.physics.groucho.edu 的 IP 地址为 0x954C0C04,写成 149.76.12.4。这种格式通常被称为 点分十进制表示法。
这种表示法的另一个原因是 IP 地址被分为 网络 号(包含在前面的八位字节中)和 主机 号(其余部分)。当向 NIC 申请 IP 地址时,您不会为计划使用的每个主机分配一个地址。相反,您会获得一个网络号,并被允许根据您的喜好将此范围内的所有有效 IP 地址分配给您网络上的主机。
主机部分的大小取决于网络的大小。为了适应不同的需求,定义了几类网络,定义了划分 IP 地址的不同位置。网络类别的描述如下
A 类网络包括 1.0.0.0 到 127.0.0.0。网络号包含在第一个八位字节中。此类提供 24 位主机部分,每个网络大约允许 160 万台主机。
B 类包含网络 128.0.0.0 到 191.255.0.0;网络号在 первые два 八位字节中。此类允许 16,320 个网络,每个网络有 65,024 台主机。
C 类网络的范围从 192.0.0.0 到 223.255.255.0,网络号包含在前三个八位字节中。此类允许近 200 万个网络,最多可容纳 254 台主机。
地址落在 224.0.0.0 到 254.0.0.0 范围内的地址要么是实验性的,要么是为特殊用途保留的,并且不指定任何网络。IP 多播是一种允许将材料一次传输到 Internet 上多个点的服务,已被分配了此范围内的地址。
如果我们回到第 1 章中的示例,我们发现 149.76.12.4,即 quark 的地址,指的是 B 类网络 149.76.0.0 上的主机 12.4。
您可能已经注意到,并非先前列表中的所有可能值都允许用于主机部分的每个八位字节。这是因为八位字节 0 和 255 保留用于特殊目的。主机部分所有位都为 0 的地址是指网络本身,而主机部分所有位都为 1 的地址称为 广播地址。这指的是指定网络上的所有主机。因此,149.76.255.255 不是有效的主机地址,而是指网络 149.76.0.0 上的所有主机。
许多网络地址被保留用于特殊目的。0.0.0.0 和 127.0.0.0 是其中两个地址。第一个被称为 默认路由,后者是 环回地址。默认路由与 IP 路由数据报的方式有关。
网络 127.0.0.0 保留用于您主机本地的 IP 流量。通常,地址 127.0.0.1 将被分配给您主机上的一个特殊接口,即 环回接口,它就像一个闭合电路。从 TCP 或 UDP 传递到此接口的任何 IP 数据包都将返回给它们,就好像它刚刚从某个网络到达一样。这允许您开发和测试网络软件,而无需使用“真实”网络。环回网络还允许您在独立主机上使用网络软件。这可能不像听起来那么罕见;例如,许多 UUCP 站点根本没有 IP 连接,但仍然希望运行 INN 新闻系统。为了在 Linux 上正常运行,INN 需要环回接口。
来自每个网络类别的一些地址范围已被 выделены 并指定为“保留”或“私有”地址范围。这些地址保留供私有网络使用,并且不会在 Internet 上路由。构建自己 Intranet 的组织通常使用它们,但即使是小型网络也经常发现它们很有用。保留的网络地址显示在 表 2-1 中。
[1] | Internet 上最常用的 Internet 协议版本是版本 4。在设计称为 IP 版本 6 的替代品方面投入了大量精力。IPv6 使用不同的寻址方案和更大的地址。Linux 已经实现了 IPv6,但尚未准备好在本书中对其进行记录。Linux 内核对 IPv6 的支持良好,但还需要修改大量网络应用程序以支持它。敬请关注。 |
[2] | 通常,IP 地址将由您购买 IP 连接的提供商分配给您。但是,您也可以通过发送电子邮件至 hostmaster@internic.net 或使用 http://www.internic.net/ 上的表格直接向 NIC 申请您网络的 IP 地址。 |