Я работаю над встроенной платформой с очень ограниченными ресурсами, где мне нужно создавать собственные фреймы Ethernet.
Если мне нужно ответить на запрос UDP ответом UDP, это когда-нибудь не Можно просто отправить ответ обратно на MAC-адрес источника Ethernet пакета запроса вместо выполнения полного поиска ARP исходного IP-адреса?
Если это так, будет очень полезен список конкретных примеров, когда ответ должен быть отправлен на другой MAC-адрес, отличный от того, с которого пришел запрос.
Ясно, что если отправитель запроса изменил свой собственный MAC-адрес сразу после отправки запроса, это был бы тривиальный пример, но давайте проигнорируем этот случай.
Мне приходит в голову асимметричная маршрутизация между хостами A и B (я использую B для встроенного устройства в вопросе).
Т.е. настройка сети такова, что маршрут от A до B не такой, как от B до A.
Пример:
A -> router1 -> B
A <- router2 <- B
В этом случае B увидит MAC-адрес router1, но должен отправить MAC-адрес router2 (обнаруженный путем изучения его таблицы маршрутизации, а затем таблицы ARP).
Не самая типичная настройка, но вполне возможная и в меньшей степени пограничная, чем хост в той же сети, который переключает MAC-адреса так же, как вы обрабатываете пакет.