Я прочитал, что для его работы необходимо отправить волшебный пакет WOL (wake on lan) на порт 7 или 9 целевой машины (с включенным WOL в H/W).
Это правильно? Если нет, то как обрабатывается пакет WOL?
Я прочитал, что для его работы необходимо отправить волшебный пакет WOL (wake on lan) на порт 7 или 9 целевой машины (с включенным WOL в H/W).
Это правильно? Если нет, то как обрабатывается пакет WOL?
Магический пакет обязательно не является пакетом вообще, он должен состоять из фрейма, поэтому ему просто нужна действительная полезная нагрузка, которая содержит магическую строку. Вы можете поместить пакет и сегмент в него, но они фактически не обрабатываются уровнями IP и TCP/UDP.
Из https://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet:
Магический пакет - это широковещательный кадр, содержащий в любом месте в его полезной нагрузке 6 байтов всех 255 (FF FF FF FF FF FF в шестнадцатеричном формате), за которыми следуют шестнадцать повторений 48-битного MAC-адреса целевого компьютера, что в сумме составляет 102 байта.
Поскольку магический пакет сканируется только на наличие приведенной выше строки и фактически не анализируется полным стеком протоколов, он может быть отправлен как любой протокол сетевого и транспортного уровня, хотя обычно он отправляется в виде дейтаграммы UDP на порт 7 или 9. или напрямую через Ethernet как EtherType 0x0842.
так что ответы на ваши вопросы - нет и да соответственно. вам вообще не нужно использовать протокол верхнего уровня, пакет IP не обязательно должен быть адресован целевому компьютеру, а порты фактически не слушают или не принимают дейтаграмму WOL; слой Datalink сканирует полезную нагрузку для магической строки и, если найден, вообще не передает полезную нагрузку на сетевой уровень для обработки. Многие реализации используют UDP\7 (Echo) и UDP\9 (Discard), вероятно, так, чтобы системы, которые не поддерживают WOL, не обрабатывали пакет потенциально небезопасным способом. В этих системах верхние слои получают сегмент.
Тем не менее, обратите внимание, что, хотя WOL реализован на 100% в оборудовании и драйверах, его соответствие варьируется от поставщика к поставщику и от устройства к устройству, поэтому он часто бывает привередливым.