帧如何检索接收者的 MAC 地址?

帧如何检索接收者的 MAC 地址?

我正在学习一本名为“Network+”的书Mike Meyers 推出的一体化 CompTia Network+

在第 2 章中,他讨论了框架以及如何将它们表示为容器,并且框架内的数据包含接收者的 mac 地址、发送者的 mac 地址、数据和序列号。

我不明白的是,如果发送方通过网络向接收方发送文件,并且此帧包含此数据,那么该帧在发送之前如何知道接收方的 MAC 地址是什么?

对于 TCP/IP,当它包含收件人的 IP 地址时,可以理解它如何检索该值。但我不明白它如何检索 MAC 地址,因为如果该帧来自发送方计算机,进入路由器并将自身复制到网络上存在的每台计算机,它如何获得 MAC 地址并知道要去哪里?

如果我说的没有道理,请告诉我。

答案1

发送者传输 ARP 请求(或在 IPv6 中为邻居请求)。基本上,这是一个大喊“哪个 MAC 拥有此 IP?”的帧。

然后,该 IP 的所有者将回复一个几乎相同的数据包,指出“我有这个 IP”。该答案也包含 MAC。

这只适用于本地网络。对于不在本地网络上的所有 IP 流量,数据包都会发送到默认网关。(显然,该默认网关是本地网络上的一台计算机)。

编辑1:链接到相关维基百科关于 ARP 的文章

编辑2:ARP 请求“谁有这个”显然是一个广播。

答案2

计算机使用 ARP 协议或从其自己的 ARP 缓存中查找 MAC 地址。

帧不会通过路由器(您指的是集线器或交换机)传递,而是被解封装,然后重新封装为新的帧,并使用新的 MAC 地址作为下一跳。帧和 MAC 地址仅适用于本地网段,它们永远不会超出该网段。

相关内容