在 Microsoft Windows 计算机上配置 TCP/IP 协议时,TCP/IP 配置设置中需要 IP 地址和子网掩码,通常还需要一个默认网关。
要正确配置 TCP/IP,有必要了解 TCP/IP 网络的寻址方式以及网络和子网的划分方式。本文旨在对 IP 网络和子网的概念进行一般性介绍。本文结尾包含一个术语表。
更多信息
作为 Internet 的网络协议,TCP/IP 的成功在很大程度上归功于它将不同大小的网络和不同类型的系统连接在一起的能力。这些网络被强制定义为具有预定义大小的三个主要类(还有其他一些类别),每一类都可以由系统管理员分成更小的子网。子网掩码用于将 IP 地址分成两个部分。一部分标识主机(计算机),另一部分标识它所属的网络。查看 IP(Internet 协议)地址并研究它的组织方式可以帮助您更好地理解 IP 地址和子网掩码的工作方式。
IP 地址:网络和主机
IP 地址是一个 32 位数字,它唯一地标识 TCP/IP 网络上的主机(计算机或其他设备,如打印机或路由器)。
IP 地址通常以点分十进制格式表示,四个数字由句点分隔,例如 192.168.123.132。要了解子网掩码如何用于区分不同的主机、网络和子网,请查看以二进制表示的 IP 地址。
例如,点分十进制 IP 地址 192.168.123.132 在二进制表示法中为 32 位数字 110000000101000111101110000100。此数字的含义可能很难理解,因此它被分成四个部分,每个部分有八个二进制数字。
这些八位部分称为八位组。示例 IP 地址于是变成 11000000.10101000.01111011.10000100。此数字表示的含义只是稍微明白了一点,因此在大多数应用中,会将二进制地址转换为点分十进制格式 (192.168.123.132)。点分十进制数字是从二进制转换为十进制表示法的八位组。
为了让 TCP/IP 广域网 (WAN) 以一个网络集的形式高效工作,在网络间传递数据包的路由器并不知道信息包的目标主机的确切位置。路由器只知道主机是哪一个网络的成员,并使用存储在路由表中的信息来确定如何将数据包送达目标主机的网络。当数据包被传送到目标网络后,该数据包就会被传送到相应的主机。
为了让此过程顺利进行,IP 地址分为两个部分。IP 地址的前一部分作为网络地址,后一部分作为主机地址。以 192.168.123.132 为例,将它分为这两个部分之后,会得到:
192.168.123. 网络
.132 主机
- 或 -
192.168.123.0 ― 网络地址。
0.0.0.132 ― 主机地址。
子网掩码
第二项是子网掩码,它是 TCP/IP 正常工作所必需的。TCP/IP 协议使用子网掩码确定主机是在本地子网中还是在远程网络中。
在 TCP/IP 中,将哪部分 IP 地址用作网络地址和主机地址并不固定,所以除非您掌握详细的信息,否则无法确定上述网络地址和主机地址。此信息在另一个 32 位数字中提供,称为子网掩码。在本例中,子网掩码为 255.255.255.0。如果您不知道二进制表示法中的 255 等于 11111111,可能并不清楚该数字表示的含义;照此分析,子网掩码为:
11111111.11111111.11111111.0000000
将 IP 地址和子网掩码排列在一起比较,就可以分清该地址的网络部分和主机部分:
11000000.10101000.01111011.10000100 -- IP 地址 (192.168.123.132)
11111111.11111111.11111111.00000000 -- 子网掩码 (255.255.255.0)
前 24 位(子网掩码中的数字 1)被标识为网络地址,后 8 位(子网掩码中剩余的数字 0)被标识为主机地址。据此可以得到:
11000000.10101000.01111011.00000000 -- 网络地址 (192.168.123.0)
00000000.00000000.00000000.10000100 -- 主机地址 (000.000.000.132)
这样,我们就可以知道,在这个使用 255.255.255.0 子网掩码的示例中,网络 ID 为 192.168.123.0,主机地址为 0.0.0.132。当数据包到达 192.168.123.0 子网(从本地子网或远程网络),而且它的目标地址为 192.168.123.132 时,您的计算机将从网络接收它并对它进行处理。
几乎所有十进制子网掩码都转换为左侧全部是一、右侧全部是零的二进制数字。其他一些常见的子网掩码有:
十进制 二进制
255.255.255.192 1111111.11111111.1111111.11000000
255.255.255.224 1111111.11111111.1111111.11100000
Internet RFC 1878(从 http://www.internic.net获取)描述了可在 TCP/IP 网络中使用的有效子网和子网掩码。
网络类
Internet 地址由管理 Internet 的机构 InterNIC ( http://www.internic.net) 来分配。这些 IP 地址分成若干类。其中最常见的是 A、B 和 C 类。也有 D 和 E 类,但是最终用户通常不会使用。每个地址类都有不同的默认子网掩码。可以通过查看 IP 地址的第一个八位组来识别该 IP 地址的类别。下面是 A、B 和 C 类 Internet 地址的范围,每一类地址都有一个示例: • A 类网络使用的默认子网掩码为 255.0.0.0,第一个八位组为 0-127。地址 10.52.36.11 就是一个 A 类地址。它的第一个八位组为 10,介于 1 至 126 之间(包括 1 和 126)。
• B 类网络使用的默认子网掩码为 255.255.0.0,第一个八位组为 128-191。地址 172.16.52.63 就是一个 B 类地址。它的第一个八位组为 172,介于 128 至 191 之间(包括 128 和 191)。
• C 类网络使用的默认子网掩码为 255.255.255.0,第一个八位组为 192-223。地址 192.168.123.132 就是一个 C 类地址。它的第一个八位组为 192,介于 192 至 223 之间(包括 192 和 223)。
在某些情况下,由于网络的物理拓扑或因为网络(或主机)的数目在默认的子网掩码限制之下并不适用,所以默认子网掩码值可能不适合机构的需要。下一部分将解释如何使用子网掩码划分网络。
子网配置
系统管理员可以进一步划分 A、B 或 C 类 TCP/IP 网络或对这些网络进行子网配置。当您将 Internet 的逻辑地址结构(IP 地址和子网的抽象世界)与真实世界中使用的物理网络进行协调时,就有必要进行子网配置。
接受 IP 地址块分配的系统管理员可以用轻松符合这些地址的方式管理未经组织的网络。例如,您有一个广域网,在该广域网中,TCP/IP 路由器连接的三个网络(位于不同城市)中有 150 个主机。这三个网络中的每个网络都有 50 个主机。向您分配了 C 类网络 192.168.123.0。(此地址是为了便于说明,实际上来自 Internet 中未分配的范围。)这意味着可以将地址 192.168.123.1 至 192.168.123.254 用于您的 150 个主机。
在示例中不能使用的两个地址为 192.168.123.0 和 192.168.123.255,因为主机部分全部为一和全部为零的二进制地址无效。零地址无效的原因是使用它在未指定主机的情况下指定了网络。255 地址(在二进制表示法中全部为一的主机地址)用来向网络中的每个主机广播消息。只需记住,任何网络或子网中的第一个地址和最后一个地址不能分配给任何单独主机。
现在,您应该能够将 IP 地址给予 254 个主机。如果所有 150 台计算机都在一个网络中,则此操作会进行得很顺利。但是,您的 150 台计算机位于三个单独的物理网络中。不用为每个网络请求更多地址块,只需将网络分成使您可以在多个物理网络中使用一个地址块的子网。
在此情况下,使用使网络地址更大和可能的主机地址范围更小的子网掩码将网络分成四个子网。也就是说,您正在“借用”某些通常用于主机地址的位,并将它们用于地址的网络部分。子网掩码 255.255.255.192 给予您四个网络,每个网络有 62 个主机。由于用二进制表示 255.255.255.192 与 1111111.11111111.1111111.11000000 相同,所以此操作可以顺利进行。最后一个八位组的前两位数字变为网络地址,所以您获得了附加网络 00000000 (0)、01000000 (64)、10000000 (128) 和 11000000 (192)。(某些管理员只使用将 255.255.255.192 作为子网掩码的其中两个子网。有关此主题的更多信息,请参阅 RFC 1878。)在这四个网络中,最后 6 个二进制数字可用于主机地址。
使用子网掩码 255.255.255.192,则您的 192.168.123.0 网络变为四个网络 192.168.123.0、192.168.123.64、192.168.123.128 和 192.168.123.192。这四个网络将拥有以下有效主机地址:
192.168.123.1-62
192.168.123.65-126
192.168.123.129-190
192.168.123.193-254
再次重审,全部为一或全部为零的二进制主机地址无效,所以您不能使用最后一个八位组为 0、63、64、127、128、191、192 或 255 的地址。
现在,看两个主机地址 192.168.123.71 和 192.168.123.133,您就会了解其原理。如果使用默认 C 类子网掩码 255.255.255.0,则这两个地址都位于 192.168.123.0 网络中。但是,如果使用子网掩码 255.255.255.192,则它们位于不同网络中;192.168.123.71 位于 192.168.123.64 网络中,192.168.123.133 位于 192.168.123.128 网络中。
默认网关
如果 TCP/IP 计算机需要与另一个网络中的主机进行通信,它通常通过称为路由器的设备进行通信。在 TCP/IP 术语中,主机中指定的、用于将主机子网链接到其他网络的路由器称为默认网关。本节解释 TCP/IP 如何确定是否将数据包发送到其默认网关以到达网络中的另一台计算机或设备。
当主机尝试使用 TCP/IP 与另一个设备进行通信时,它会使用已定义的子网掩码和目标 IP 地址针对子网掩码和其自己的 IP 地址进行比较。此比较结果会告诉计算机目标是本地主机还是远程主机。
如果此过程的结果确定目标是本地主机,则计算机只将数据包发送到本地子网。如果比较结果确定目标是远程主机,则计算机将数据包转发到其 TCP/IP 属性中定义的默认网关。然后,路由器负责将数据包转发到正确的子网。
疑难解答
TCP/IP 网络问题通常是由计算机的 TCP/IP 属性中三个主要条目的错误配置导致的。了解 TCP/IP 配置中的错误如何影响网络操作后,您可以解决许多常见 TCP/IP 问题。
错误的子网掩码:如果网络将默认掩码外的其他子网掩码用于其地址类,而客户端仍使用该地址类的默认子网掩码进行配置,则可以与远程网络进行通信但无法与某些附近网络进行通信。例如,如果创建四个子网(例如在子网配置示例中),但是在 TCP/IP 配置中使用错误的子网掩码 255.255.255.0,则主机将无法确定某些计算机是否在与它们自己的子网不同的子网中。当发生此情况时,发送到作为相同 C 类地址一部分的不同物理网络中的主机的数据包将不会发送到默认网关来进行传送。此问题的常见症状是计算机可以与其本地网络中的主机以及所有远程网络进行通信,但无法与位置在附近并具有相同的 A、B 或 C 类地址的网络进行通信。要解决此问题,只需在该主机的 TCP/IP 配置中输入正确的子网掩码。
错误的 IP 地址:如果将那些 IP 地址在本地网络的不同子网中的计算机放在一起,则它们无法进行通信。它们会尝试通过路由器相互发送数据包,而该路由器却无法正确转发这些数据包。此问题的症状是计算机可以与远程网络中的主机进行通信,但是无法与其本地网络中的某些或全部计算机通信。要解决此问题,请确保同一物理网络中的所有计算机具有同一 IP 子网中的 IP 地址。如果一个网段中的 IP 地址已用完,还可使用一些解决方案进行处理,但已超出本文范围。
错误的默认网关:使用错误的默认网关配置的计算机能够与其自己网段中的主机进行通信,但是无法与某些或全部远程网络中的主机进行通信。如果一个物理网络有多个路由器,且将错误的路由器配置为默认网关,则主机能够与某些远程网络进行通信,但是无法与其他远程网络进行通信。如果组织中有一个路由器连接到内部 TCP/IP 网络,另一个路由器连接到 Internet,则此问题很常见。
参考
TCP/IP 中的两个常用参考是:
“TCP/IP Illustrated, Volume 1:The Protocols”,Richard Stevens、Addison Wesley,1994
“Internetworking with TCP/IP, Volume 1:Principles, Protocols, and Architecture”,Douglas E. Comer、Prentice Hall,1995
极力建议负责 TCP/IP 网络的系统管理员至少使用其中一个参考。
术语表
广播地址 -- 主机部分全部为一的 IP 地址。
主机 -- TCP/IP 网络中的计算机或其他设备。
Internet -- 连接在一起并共享公共范围的 IP 地址的全球网络集合。
InterNIC -- 负责管理 Internet 中的 IP 地址的机构。
IP -- 用于在 TCP/IP 网络或 Internet 上发送网络数据包的网络协议。
IP 地址 -- TCP/IP 网络或 Internet 主机的唯一 32 位地址。
网络 -- 在本文中,“网络”一词有两种含义。一种含义是指单一物理网段上的计算机组,另一种含义是指系统管理员分配的 IP 网络地址范围。
网络地址 -- 主机部分全部为零的 IP 地址。
八位组 -- 一个 8 位数字,4 个八位组构成一个 32 位 IP 地址。它们的范围是 00000000-11111111,对应于十进制值 0- 255。
数据包 -- 通过 TCP/IP 网络或广域网传输的数据单位。
RFC(Request for Comment,征求意见文件)-- 用于定义 Internet 标准的文档。
路由器 -- 在不同 IP 网络间传输网络通信的设备。
子网掩码 -- 一个 32 位数字,用于区分 IP 地址的网络部分和主机部分。
子网 -- 通过将较大的网络分成相等的部分而创建的较小网络。
TCP/IP -- 通常在 Internet 和大型网络中广泛使用的协议、标准和实用工具的集合。
广域网 (WAN) -- 大型网络,它是路由器分隔的较小网络的集合。例如,Internet 就是一个非常大的广域网。