一旦帧到达主家庭路由器并转发到第一个网络核心路由器,链路层 LAN 以太网头数据会发生什么?
路由器是网络层设备,根据 IP 目标地址进行转发。本地网络交换机根据帧头中的 MAC 地址进行转发。要将帧发送到家庭路由器,路由器 MAC 地址会放置在源自主机的帧头中,但将帧从家庭路由器发送到 WAN 中的下一个路由器时,MAC 地址不起作用,因为这是基于 IP 完成的。
那么,当帧到达家庭路由器并转发到下一个路由器时,MAC 地址会发生什么情况?会被删除吗?是否有协议可以发现下一个路由器的 MAC 地址(如本地网络中的 ARP);是否真的需要下一个路由器的 MAC 地址?
答案1
当数据包跨越子网边界(例如到达 LAN 的路由器)时,MAC 地址将被丢弃,因为它在子网之外毫无意义。如果您访问他人机器的唯一方法涉及路由器,则无法恢复其 MAC 地址。(原始 MAC 地址不会传输到下一跳。)第 3 层数据(第 2 层数据包的有效负载)需要重新打包。
当路由器需要将数据包发送到链中的下一个路由器时,发生的情况取决于第 2 层协议。如果仍在使用以太网,则发送的数据包中将包含一些 MAC 地址。(您可以构建通过串行端口相互通信的路由器。)理论上,即使使用以太网也可以避免使用 ARP,因为路由表可以将目标 IP 地址映射到物理端口,从而消除将 MAC 地址映射到这些端口的类似交换机的功能。尽管如此,所有以太网数据包中仍然有一个 MAC 地址字段。
答案2
第 3 层设备(路由器、主机等)将从封装的数据包中剥离第 2 层帧,并将帧信息作为不需要的信息丢弃。然后,路由器将数据包切换到通往目的地的路径中的下一个接口。
在下一个接口,路由器将为下一个接口的第 2 层协议构建一个新的帧。并非所有的第 2 层协议都使用 MAC 地址。在使用 MAC 地址的协议中,有些使用 48 位 MAC 地址,有些使用 64 位 MAC 地址。无论下一个接口的第 2 层协议是什么,都会为该协议构建一个新帧,并且任何先前的帧信息都已丢失(新帧可能用于与旧帧完全不同的第 2 层协议)。