Estou usando o Wireshark para rastrear pacotes WoL que estou enviando do meu telefone para dois computadores na minha LAN.
Tenho o Wireshark ligado no meu computador e estou monitorando o outro computador no Teamviewer, com o Wireshark aberto nele, e as duas janelas estão lado a lado, em tempo real, para teste.
Encontrei diferenças ambíguas.
Quando o pacote mágico é enviado para o endereço WAN, o Wireshark mostra apenas os pacotes WoL que correspondem ao computador para o qual foram criados.
Quando enviado para os endereços IP internos dos computadores:
Para PC 1 - O PC 2 rastreia menos pacotes e todos têm endereço de broadcast como destino.
Para o PC 2 - mesmo número de pacotes em cada dispositivo, mas no PC 1 mostra que todos têm endereço de broadcast como destino.
Por que existem essas diferenças e discrepâncias? O Wireshark não deveria apenas mostrar o tráfego da internet objetivamente?
Tentei testar o Wireshark nos computadores da minha LAN em tempo real e esperava que eles mostrassem exatamente os mesmos pacotes.
Um dos propósitos de um switch é reduzir os pacotes na rede indo para uma porta específica. Se o switch souber qual máquina está em uma porta, ele enviará apenas pacotes de transmissão e pacotes ethernet endereçados àquela máquina para a porta. Como o switch sabe qual máquina está em uma porta varia um pouco por switch e pode envolver um cache com base na atividade passada.
Além disso, se você endereçar um pacote TCP em vez de um pacote ethernet para uma máquina, a máquina que envia o pacote deve primeiro enviar um pacote ARP para obter o endereço ethernet para preencher. (A menos que você tenha codificado a tabela arp na máquina de origem). Isso geralmente significa que um pacote WoL não pode ser endereçado por IP porque a máquina estará desligada ou dormindo demais para responder à solicitação ARP. (No entanto, algumas placas suportam responder ao ARP sem SO, e alguns SOs suportam acordar apenas o suficiente para responder ao arp e ao ping, então isso pode ir para qualquer lado.)
Essas razões são as razões pelas quais alguns métodos de pacote WoL suportam apenas wake por endereço ethernet, ou exigem o endereço ethernet para preencher o pacote. Mas essas coisas não são profundamente padronizadas e há variações.