如果路由器工作在网络层,路由器如何在LAN和WAN之间的数据链路头和尾之间改变数据链路头和尾?

网络工程 路由
2021-07-11 22:22:42

参考图6-9,CCNA Official Cert Guide 200-301 Volume 1说明,为了通过WAN发送帧,路由器R1改变帧头和帧尾。但是,由于路由器工作在网络层,为什么路由器可以更改数据链路头和尾,以及如何更改?谢谢你。在此处输入图片说明

图 3-9

3个回答

路由器不会“更改数据链路标头”。它在接收时丢弃一个封装帧并创建一个新的封装帧用于传输。

路由器在网络之间转发。这些网络使用特定的数据链路层 (L2) 协议,路由器使用该协议到达下一跳。为此,它将要传输的数据包封装在(新的)L2 帧中并转发它。请注意,成帧取决于该链路上使用的 L2 协议,这些协议可能有很大差异(以太网、Wi-Fi、PPP、HDLC、ATM、光纤通道、Infiniband 等)-谢谢@ilkkachu!

下一跳移除帧并查看数据包,只要需要到达目的地,就重复该过程。

将 L2 帧视为数据包通过特定网络传输时的载体。当然,数据包又是传输层数据报的载体。(这也是应用层数据的载体。)

当我们说路由器“在网络层运行”时,我们的意思是它的主要功能——路由数据包——是基于网络层信息(IP 地址)。但实际上,所有 IP 设备都使用所有层(在 TCP/IP 模型中)以便与其他设备进行通信。

路由器的功能很简单,就是从一个接口接收数据包,然后从另一个接口发送出去,希望将数据包距离目的地更近一跳。路由器使用路由表来存储选定的到达目标网络的路由,并使用硬件转发表来存储路由数据包所需的确切信息。转发表中的每条路由都指向一个 FEC(转发等效类),该 FEC(转发等效类)存储有关如何转发数据包的信息(并且所有与该路由匹配的数据包都被平等对待)。此信息包括:出口端口 + L2 封装 + VLAN(可能还有 MPLS 封装)。最初路由器不知道如何转发数据包,即使它手头有正确的路由。路由器在转发表中安装路由时,必须使用自己的控制协议来学习 FEC 信息。例如:路由器通过 192.1.1.2 从 OSPF 学习到以下路由:10.0.0.0/24,并接受它作为最好的。现在它想将它安装在硬件转发表中。

但是路由器甚至还不知道如何将数据包发送到下一跳 192.1.1.2 - 所以它所做的,在这种情况下,是在路由表中查找 192.1.1.2 并找出如何到达它 -所以让我们假设 192.1.1.2 通过端口 3 直接连接到我们的路由器 - 所以现在 FEC 持有端口 3。而且,路由器还不能真正使用这个转发条目,它不知道 192.1.1.2 的 MAC 地址. 所以它使用ARP来找出。现在 FEC 拥有发送数据包所需的所有信息,并且可以安装和使用转发表项:10.0.0.0/24 ---> 出口端口 3 + 目标 MAC(通过 ARP 学习)。为了完成图片,路由器使用端口 3 的源 MAC,现在帧已完成,可以传输数据包。