logo

Wake-on-LAN (WoL) è uno standard di rete per computer Ethernet o token ring che consente a un computer di essere acceso o risvegliato da un messaggio di rete. 

  • Il messaggio viene solitamente inviato al computer di destinazione da un programma eseguito su un dispositivo connesso alla stessa rete locale come uno smartphone.
  • È anche possibile avviare il messaggio da un'altra rete utilizzando trasmissioni dirette alla sottorete o un servizio gateway WOL.
  • Termini equivalenti includono riattivazione tramite WAN, riattivazione remota, accensione tramite LAN, accensione tramite LAN, ripresa tramite LAN, ripresa su LAN e riattivazione su LAN.

Principio di funzionamento  

  • Wake-on-LAN ("WOL") viene implementato utilizzando un pacchetto appositamente progettato chiamato pacchetto magico che viene inviato a tutti i computer in una rete tra cui il computer da riattivare.
  • Il pacchetto magico contiene l'indirizzo MAC del computer di destinazione, un numero identificativo integrato in ciascuna scheda di interfaccia di rete ("NIC") o altri dispositivi Ethernet in un computer che consente di riconoscerlo e indirizzarlo in modo univoco su una rete.
  • I computer spenti o dotati di funzionalità Wake-on-LAN conterranno dispositivi di rete in grado di "ascoltare" i pacchetti in ingresso in modalità a basso consumo mentre il sistema è spento.
  • Se viene ricevuto un pacchetto magico indirizzato all'indirizzo MAC del dispositivo, la scheda di rete segnala all'alimentatore o alla scheda madre del computer di avviare la riattivazione del sistema, proprio come farebbe premendo il pulsante di accensione.
  • Il pacchetto magico viene inviato sul livello di collegamento dati (livello 2 nel modello OSI) e una volta inviato viene trasmesso a tutti i dispositivi collegati su una determinata rete utilizzando l'indirizzo di trasmissione della rete; l'indirizzo IP (livello 3 nel modello OSI) non viene utilizzato.

Affinché Wake-on-LAN funzioni, è necessario che alcune parti dell'interfaccia di rete rimangano attive. Ciò consuma una piccola quantità di energia in standby, molto inferiore alla normale energia operativa. La disattivazione della wake-on-LAN quando non è necessaria può quindi ridurre leggermente il consumo energetico sui computer spenti ma ancora collegati a una presa di corrente.



Struttura del pacchetto magico  
Il pacchetto magico è un frame broadcast contenente ovunque all'interno del suo payload 6 byte su tutti i 255 (FF FF FF FF FF FF in esadecimale) seguito da sedici ripetizioni dell'indirizzo MAC a 48 bit del computer di destinazione per un totale di 102 byte. 
Poiché il pacchetto magico viene scansionato solo per la stringa sopra e non effettivamente analizzato da uno stack di protocolli completo, può essere inviato come qualsiasi protocollo a livello di rete e trasporto sebbene venga generalmente inviato come datagramma UDP alla porta 0 7 o 9 o direttamente su Ethernet come EtherType 0x0842.

array vs arraylist

Un pacchetto magico standard presenta le seguenti limitazioni di base:   

  1. Richiede l'indirizzo MAC del computer di destinazione (potrebbe richiedere anche una password SecureOn).
  2. Non fornire una conferma di consegna.
  3. Potrebbe non funzionare al di fuori della rete locale.
  4. Richiede il supporto hardware di Wake-On-LAN sul computer di destinazione.
  5. La maggior parte delle interfacce wireless 802.11 non mantengono un collegamento negli stati di basso consumo e non possono ricevere un pacchetto magico.

L'implementazione del Wake-on-LAN è progettata per essere molto semplice e per essere rapidamente elaborata dalla circuiteria presente sulla scheda di interfaccia di rete con un fabbisogno energetico minimo. Poiché Wake-on-LAN opera al di sotto del livello del protocollo IP, è richiesto l'indirizzo MAC e rende privi di significato gli indirizzi IP e i nomi DNS.

C
// C program to remotely Power On a PC over the // internet using the Wake-on-LAN protocol. #include  #include  #include  #include  #include  #include    #include  #include  int main() {  int i;  unsigned char toSend[102]mac[6];  struct sockaddr_in udpClient udpServer;  int broadcast = 1 ;  // UDP Socket creation  int udpSocket = socket(AF_INET SOCK_DGRAM 0);  // Manipulating the Socket  if (setsockopt(udpSocket SOL_SOCKET SO_BROADCAST  &broadcast sizeof broadcast) == -1)  {  perror('setsockopt (SO_BROADCAST)');  exit(EXIT_FAILURE);  }  udpClient.sin_family = AF_INET;  udpClient.sin_addr.s_addr = INADDR_ANY;  udpClient.sin_port = 0;  //Binding the socket  bind(udpSocket (struct sockaddr*)&udpClient sizeof(udpClient));  for (i=0; i<6; i++)  toSend[i] = 0xFF;  // Let the MAC Address be ab:cd:ef:gh:ij:kl  mac[0] = 0xab; // 1st octet of the MAC Address  mac[1] = 0xcd; // 2nd octet of the MAC Address  mac[2] = 0xef; // 3rd octet of the MAC Address  mac[3] = 0xgh; // 4th octet of the MAC Address  mac[4] = 0xij; // 5th octet of the MAC Address  mac[5] = 0xkl; // 6th octet of the MAC Address  for (i=1; i<=16; i++)  memcpy(&toSend[i*6] &mac 6*sizeof(unsigned char));  udpServer.sin_family = AF_INET;  // Broadcast address  udpServer.sin_addr.s_addr = inet_addr('10.89.255.255');  udpServer.sin_port = htons(9);  sendto(udpSocket &toSend sizeof(unsigned char) * 102 0  (struct sockaddr*)&udpServer sizeof(udpServer));  return 0; } 

Produzione: 

This program will power on the switched-off PC  
whose MAC Address is used in this program (the
PC and the Host computer must be connected over
LAN).

Riferimento :  
https://en.wikipedia.org/wiki/Wake-on-LAN
 

Crea quiz