我可以使用以太网数据包的源 MAC 进行 UDP 回复而不是 ARP 查找吗?

我可以使用以太网数据包的源 MAC 进行 UDP 回复而不是 ARP 查找吗?

我正在一个资源非常有限的嵌入式平台上工作,需要构建自己的以太网框架。

如果我需要用 UDP 回复来回答 UDP 请求,不是是否可以仅将答复发送回请求数据包的以太网源 MAC 地址,而不是对源 IP 地址进行完整的 ARP 查找?

如果是这样,那么列出一个具体的例子,其中需要将答复发送到与请求来源不同的 MAC 地址,这将非常有用。

显然,如果请求发起者在发送请求后立即更改了自己的 MAC 地址,这将是一个简单的例子,但我们忽略这种情况。

答案1

我想到的是,如果您的主机 A 和 B 之间有非对称路由(我在问题中使用 B 作为嵌入式设备)。
即,网络设置使得从 A 到 B 的路由与从 B 到 A 的路由不同。

例子:

A -> router1 -> B
A <- router2 <- B

在这种情况下,B 会看到路由器 1 的 MAC 地址,但应该发送到路由器 2 的 MAC 地址(通过检查其路由表和 ARP 表发现)。

虽然这不是最典型的设置,但完全可能,而且与在处理数据包时切换 MAC 地址的同一网络中的主机相比,边缘情况要少得多。

相关内容