|
IP 路由和子网 [size=1.25] 本文介绍了 IP 路由的基础知识。我们将考虑一个简单网络的示例,并在数据包从一个节点路由到另一个节点时跟踪它的生命周期。将讨论每个节点的路由表。 在深入了解 IP 路由之前,我们需要了解 IP 地址。这将在下一节中介绍。 IP 地址分类IP 地址是 32 位整数,以熟悉的基于点的符号表示。基于点的表示法只不过是 IP 地址每个字节的十进制表示。例如,十六进制值为 0x800A080B 的 IP 地址表示为 128.10.8.11。 互联网,顾名思义,是网络的网络。因此,要唯一标识 Internet 上的主机,需要知道网络的 id 和网络中的主机 id。因此IP地址由两部分组成,网络ID和主机ID。网络 ID 是分配给 Internet 中网络的编号。Host id 表示分配给网络中主机的 id。 下图显示了不同类别的 IP 地址。这些地址的不同之处在于分配给网络和主机 ID 的位数。不同类别的地址服务于不同的需求。例如,A 类 IP 地址适用于 Internet 由少量网络组成但每个网络由大量主机组成的情况。另一方面,C 类寻址适用于具有大量网络的互联网,每个网络只有少量主机。 互联网示例子网下图描述了一个由三个网络 128.8、128.9.1 和 128.9.2 组成的小型 Internet。严格来说,互联网由 128.8 网络和 128.9.1 和 128.9.2 子网(子网)组成。正如我们在上一节中看到的,128.8 和 128.9 应该被归类为 B 类 IP 地址的网络部分。在这个网络中 128.9 通过使用两字节主机 id 的一个字节作为子网 id 被划分为两个子网(128.9.1 和 128.9.2)。 另一种看法是,128.9.1 和 128.9.2 子网中 IP 地址的前三个字节用于路由数据包。从路由的角度来看,IP 地址中的其他位是无关紧要的。通过将子网掩码与路由条目相关联来指定应该用于路由的位的规范。在本例中,子网掩码为 255.255.255.0 (0xFFFFFF00)。 IP 路由互联网中的网络通过路由器相互连接。路由器将流量从一个网络/子网传输到另一个网络/子网。路由器维护一个路由表来决定如何路由 IP 数据包。每个路由条目由目标地址、子网掩码和“路由到”字段组成。当需要将消息路由到 IP 地址时,请执行以下步骤: - 目标 IP 地址使用子网掩码进行掩码,然后与路由表中所有条目的目标字段进行比较。
- 这种比较可能会产生与多个条目的匹配,将选择具有最长子网掩码的条目。例如,目的地为 128.8.1.2 的数据包到达主机 A 将匹配对应于 128.8.1.2 和 128.8.0 的条目。将选择对应于 128.8.1.2 的条目,因为它具有更长的子网掩码。
- 一旦选择了一个条目,就会查询“路由到”字段,并且采取的操作取决于该字段的内容:
, D# V& ]* _0 e0 S- 如果“路由到”字段包含 SELF,则数据包是针对该节点的。IP数据包被传递给操作系统进行应用程序处理
- 如果“路由到”字段包含 LAN 接口 ID,则数据包的目的地是直接连接到路由器/主机的 LAN。在这种情况下,数据包直接在 LAN 上路由。
- 如果“路由到”字段包含 IP 地址,则数据包被转发到指定的 IP 地址。数据包的进一步路由将由指定的 IP 地址执行。; A# S I7 a! z! Y
0 H' b% f% {, B. `! |8 t
注意: IP 路由还支持默认条目。如果数据包不匹配任何其他条目,则根据默认条目进行路由。 多个 IP 地址互联网的另一个重要方面是互联网中的一个节点可以有多个 IP 地址。每个接口将有一个 IP 地址。例如上图中的Router有3个IP地址,即。128.8.1.1、128.9.1.1 和 128.9.2.1。 数据包从主机 A 到主机 C 的路由在这里,我们将跟踪从主机 A 发送到主机 C 的 IP 数据包所采用的路径。显示了以太网 MAC 标头和 IP 标头中的路由相关字段。 主机 A 向主机 C 发起一个 IP 数据包- 应用程序通过将消息发送到 128.9.2.2 IP 地址(主机 C 的 IP 地址)向主机 C 发送消息。
- 此 IP 地址与 128.9.0.0 对应的条目匹配。所选条目的“路由至”字段包含另一个 IP 地址 - 128.8.1.1。这是路由器的 IP 地址。
- 再次访问 128.8.1.1 的 IP 路由表。
- 匹配 128.8.1.1 的条目包含 LAN 0 接口 ID。这指定目标节点直接连接到主机。
- 此数据包被传递给设备驱动程序。
- 设备驱动程序查询 ARP 缓存以识别与 128.8.1.1 对应的以太网 MAC 地址。(ARP在另一篇文章中介绍)。
- 以太网帧被发送到 ARP 找到的 MAC 地址。4 D) M* @1 m( r5 W0 l- }
在 128.8 局域网上发送的数据包是: 以太网 MAC 标头 | IP 数据包负载 | 目标 MAC 地址 | 源 MAC 地址 | 目标 IP 地址 | 源 IP 地址 | 有效载荷 | | 路由器 MAC 地址 | 主机 A MAC 地址 | 128.9.2.2 | 128.8.1.2 | | 路由器将IP数据包发送到主机C- 路由器接收以太网帧并将其传递给 IP 层。
- 查询 IP 路由表并找到对应于 128.9.2 子网的匹配条目。
- 数据包在 LAN 2 接口上路由。
- 主机 C 的 MAC 地址是从 ARP 缓存中找到的。
- 以太网帧寻址到主机 C MAC 地址。
8 ~& K2 m8 S1 C( J% d
通过 128.9.2 LAN 发送的数据包是: 以太网 MAC 标头 | IP 数据包负载 | 目标 MAC 地址 | 源 MAC 地址 | 目标 IP 地址 | 源 IP 地址 | 有效载荷 | | 主机 C MAC 地址 | 路由器 MAC 地址 | 128.9.2.2 | 128.8.1.2 | | 主机C收到IP包- 主机 C 接收以太网帧并将其传递给 IP 层。
- 搜索 IP 路由表并检测到与 128.9.2.2 条目匹配。
- “路由到”字段包含 SELF,因此消息被传递到更高层以传递给应用程序。
- c8 M6 ]8 F! @: K
0 z) x5 b7 T2 X( c |