4.路由.md

学习地址:

路由器

以太网交换机工作在第二层即数据链路层,用于在同一网络内部转发以太网帧。

但是,当源和目的IP地址位于不同网络时,以太网帧必须发送给路由器。路由器负责在不同网络间传输报文,通过路由表来决定最佳转发路径。当主机将报文发送至不同IP地址时,由于主机无法直接与本地网络以外的设备通信,报文被转发至默认网关。默认网关就是数据流从本地网络路由至远端设备的目的地。它通常用来连接本地网与公共网。

报文的转发过程

路由器在一个接口接收报文并将它从另一个接口转发出去。路由器主要执行以下三个步骤:

  1. 将第二层的帧头和帧尾移除,解析出第三层报文。
  2. 检查 IP 报文的目的 IP 地址,在路由表中查找最佳路由。
  3. 如果路由器找到一条最佳路径,则将三层报文封装到新的二层帧中,并将帧转发到输出端口。

如下图所示:

../Router-trans.jpg

过程详解

发送报文

PC 1 发送报文给PC 2 时:

  1. 首先必须确定目的 IPv4 地址是否位于同一网络。
    1. PC 1 通过将自己的 IPv4 地址与子网掩码做操作,来判断 PC 1 所属的网段。
    2. 接下来,PC 1 对目的 IPv4 地址与 PC 1 的子网掩码做同样的操作。
  2. 如果目的网络地址与PC 1网段相同,则PC 1不使用默认网关,而是在 ARP 缓存中查找目的 IPv4 地址的设备MAC地址。如果MAC地址不在缓存中,则 PC 1 产生一个 ARP 请求来获取地址并将报文发给目的地址。
  3. 如果目的网络地址位于另一网络,则PC 1将报文转发至默认网关。
    1. 要确定默认网关的 MAC 地址,PC 1 在它的 ARP 表中查找默认网关的 IPv4 地址以及相应的 MAC 地址。
    2. 如果 ARP 表中没有默认网关的对应表项,则 PC 1 发送 ARP 请求。路由器 R1 回复 ARP 响应。之后 PC 1 将报文转发至默认网关的 MAC 地址,即路由器 R1 的 Fa0/0 接口。

路由器转发

R1 从 PC 1 接收到以太网帧后执行以下步骤:

  1. R1 检查目的 MAC 地址,与接收端口 FastEthernet 0/0 相匹配,因此,将帧复制到 buffer。

  2. R1 识别以太网类型为 0x800,意味着以太网帧的数据部分包含 IPv4 报文。

  3. R1 解封装该以太网帧。

  4. 由于目的 IPv4 地址与 R1 直连的任何网络都不相符,R1 在路由表中查找包含该目的 IPv4 地址主机的网络地址。