O pacote mágico não é necessariamente um pacote, ele deve consistir em um Frame, então ele só precisa de uma carga útil válida que contenha a string mágica. você pode colocar um pacote e um segmento nele, mas eles não são realmente processados pelas camadas IP e TCP / UDP.
From https://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet:
The magic packet is a broadcast frame containing anywhere within its payload 6 bytes of all 255 (FF FF FF FF FF FF in hexadecimal), followed by sixteen repetitions of the target computer's 48-bit MAC address, for a total of 102 bytes.
Since the magic packet is only scanned for the string above, and not actually parsed by a full protocol stack, it may be sent as any network- and transport-layer protocol, although it is typically sent as a UDP datagram to port 7 or 9, or directly over Ethernet as EtherType 0x0842.
para que as respostas às suas perguntas sejam não e sim, respectivamente. você não precisa usar um protocolo de camada superior, o pacote IP não precisa ser endereçado à máquina de destino, e as portas não escutam de fato ou recebem o datagrama WOL; a camada Datalink varre a carga útil da sequência mágica e, se encontrada, não passa a carga útil até a camada de Rede para processamento. Muitas implementações usam UDP \ 7 (Echo) e UDP \ 9 (Descartar), provavelmente para que os sistemas que não suportam WOL não processem o pacote de maneira potencialmente insegura. Nesses sistemas, as camadas superiores receberiam o segmento.
Observe, entretanto, que enquanto o WOL é implementado 100% em hardware e drivers, sua conformidade varia de fornecedor para fornecedor e de dispositivo para dispositivo; portanto, geralmente é meticuloso.