我正在一个资源非常有限的嵌入式平台上工作,需要构建自己的以太网框架。
如果我需要用 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 地址的同一网络中的主机相比,边缘情况要少得多。