学习地址:
路由器
以太网交换机工作在第二层即数据链路层,用于在同一网络内部转发以太网帧。
但是,当源和目的IP地址位于不同网络时,以太网帧必须发送给路由器。路由器负责在不同网络间传输报文,通过路由表来决定最佳转发路径。当主机将报文发送至不同IP地址时,由于主机无法直接与本地网络以外的设备通信,报文被转发至默认网关。默认网关就是数据流从本地网络路由至远端设备的目的地。它通常用来连接本地网与公共网。
报文的转发过程
路由器在一个接口接收报文并将它从另一个接口转发出去。路由器主要执行以下三个步骤:
- 将第二层的帧头和帧尾移除,解析出第三层报文。
- 检查 IP 报文的目的 IP 地址,在路由表中查找最佳路由。
- 如果路由器找到一条最佳路径,则将三层报文封装到新的二层帧中,并将帧转发到输出端口。
如下图所示:
过程详解
发送报文
PC 1 发送报文给PC 2 时:
- 首先必须确定目的 IPv4 地址是否位于同一网络。
- PC 1 通过将自己的 IPv4 地址与子网掩码做
与
操作,来判断 PC 1 所属的网段。 - 接下来,PC 1 对目的 IPv4 地址与 PC 1 的子网掩码做同样的
与
操作。
- PC 1 通过将自己的 IPv4 地址与子网掩码做
- 如果目的网络地址与PC 1网段相同,则PC 1不使用默认网关,而是在 ARP 缓存中查找目的 IPv4 地址的设备MAC地址。如果MAC地址不在缓存中,则 PC 1 产生一个 ARP 请求来获取地址并将报文发给目的地址。
- 如果目的网络地址位于另一网络,则PC 1将报文转发至默认网关。
- 要确定默认网关的 MAC 地址,PC 1 在它的 ARP 表中查找默认网关的 IPv4 地址以及相应的 MAC 地址。
- 如果 ARP 表中没有默认网关的对应表项,则 PC 1 发送 ARP 请求。路由器 R1 回复 ARP 响应。之后 PC 1 将报文转发至默认网关的 MAC 地址,即路由器 R1 的 Fa0/0 接口。
路由器转发
R1 从 PC 1 接收到以太网帧后执行以下步骤:
R1 检查目的 MAC 地址,与接收端口 FastEthernet 0/0 相匹配,因此,将帧复制到 buffer。
R1 识别以太网类型为 0x800,意味着以太网帧的数据部分包含 IPv4 报文。
R1 解封装该以太网帧。
由于目的 IPv4 地址与 R1 直连的任何网络都不相符,R1 在路由表中查找包含该目的 IPv4 地址主机的网络地址。