Я пытаюсь понять, почему пробуждение на LAN-фреймах в простейшей форме предназначено для широковещательного адреса Ethernet (FF: FF: FF: FF: FF: FF), а не для адреса машины, на которую нужно включить .
Связано ли это с внутренней таблицей сетевого коммутатора, которая назначает MAC-адрес портам?
В соответствии с Спецификация AMD пункт назначения не обязательно должен быть адресом для всех. Это также может быть адрес принимающей станции или адрес многоадресной рассылки. В полезная нагрузка это отдельная история. Это должна быть последовательность ff: ff: ff: ff: ff: ff, за которой следует MAC-адрес принимающей станции, повторенный 16 раз.
Отсутствие записи о станции в CAM-таблице коммутатора в данном случае значения не имеет. Если запись отсутствует, пакет должен быть перенаправлен на все порты.
Да. Поскольку сопоставления истекают через некоторое время (обычно это 4 часа, если я правильно помню), его необходимо транслировать, чтобы у него была возможность достичь целевой машины после того, как сопоставления исчезнут.
Редактировать:
Исправление: Если срок действия сопоставлений истекает, сообщение все равно будет транслироваться.
Единственная причина, по которой вам может понадобиться использовать широковещательную рассылку, - это случай, если машина физически переместилась на другой порт, и вы попытались использовать пакеты Magic, чтобы разбудить машину до истечения срока действия сопоставлений. Похоже, это было бы удобно в центре обработки данных, но я не могу сказать, действительно ли это используется.
Хотя приведенный мною пример, вероятно, никогда не произойдет, вероятно, именно поэтому обычно выбирают широковещательную передачу - она более надежна в случае плохих / устаревших сопоставлений.