Wake-on-LAN (WoL) je računalniški omrežni standard Ethernet ali token ring, ki omogoča vklop ali prebujanje računalnika z omrežnim sporočilom.
- Sporočilo običajno pošlje ciljnemu računalniku program, ki se izvaja v napravi, povezani v isto lokalno omrežje, kot je pametni telefon.
- Prav tako je možno sprožiti sporočilo iz drugega omrežja z uporabo oddaj, usmerjenih v podomrežje, ali storitve prehoda WOL.
- Enakovredni izrazi vključujejo wake on WAN oddaljeno wake-up power on by LAN power up by LAN resume by LAN resume on LAN and wake up on LAN.
Načelo delovanja
- Wake-on-LAN ('WOL') se izvaja s pomočjo posebej zasnovanega paketa, imenovanega čarobni paket, ki se pošlje vsem računalnikom v omrežju, med njimi tudi računalniku, ki ga je treba prebuditi.
- Čarobni paket vsebuje naslov MAC ciljnega računalnika in identifikacijsko številko, vgrajeno v vsako omrežno vmesniško kartico ('NIC') ali druge ethernetne naprave v računalniku, ki omogoča njegovo edinstveno prepoznavanje in naslavljanje v omrežju.
- Ugasnjeni ali izklopljeni računalniki, ki podpirajo Wake-on-LAN, bodo vsebovali omrežne naprave, ki lahko 'poslušajo' dohodne pakete v načinu nizke porabe energije, medtem ko je sistem izklopljen.
- Če je prejet čarobni paket, ki je usmerjen na naslov MAC naprave, omrežna kartica signalizira napajalniku ali matični plošči računalnika, da sproži prebujanje sistema, podobno kot bi to storili s pritiskom na gumb za vklop.
- Čarobni paket je poslan na sloj podatkovne povezave (plast 2 v modelu OSI) in ko je poslan, se oddaja vsem priključenim napravam v danem omrežju z uporabo omrežnega oddajnega naslova; IP-naslov (plast 3 v modelu OSI) ni uporabljen.
Da bi Wake-on-LAN deloval, morajo deli omrežnega vmesnika ostati vključeni. To porabi majhno količino energije v stanju pripravljenosti, veliko manj kot običajna delovna energija. Onemogočanje wake-on-LAN, ko ni potrebno, lahko zato nekoliko zmanjša porabo energije na računalnikih, ki so izklopljeni, vendar še vedno priključeni v električno vtičnico.
Struktura čarobnega paketa
Čarobni paket je oddajni okvir, ki kjer koli znotraj svoje nosilnosti vsebuje 6 bajtov od vseh 255 (FF FF FF FF FF FF v šestnajstiški obliki), ki mu sledi šestnajst ponovitev 48-bitnega naslova MAC ciljnega računalnika za skupno 102 bajta.
Ker je čarobni paket samo pregledan za zgornji niz in ga dejansko ne razčleni celoten sklad protokolov, se lahko pošlje kot kateri koli protokol omrežne in transportne plasti, čeprav se običajno pošlje kot datagram UDP na vrata 0 7 ali 9 ali neposredno prek Etherneta kot EtherType 0x0842.
Standardni čarobni paket ima naslednje osnovne omejitve:
- Zahteva naslov MAC ciljnega računalnika (morda zahteva tudi geslo SecureOn).
- Ne posredujte potrdila o dostavi.
- Morda ne bo delovalo zunaj lokalnega omrežja.
- Zahteva strojno podporo za Wake-On-LAN na ciljnem računalniku.
- Večina brezžičnih vmesnikov 802.11 ne vzdržuje povezave v stanjih nizke porabe energije in ne more prejeti čarobnega paketa.
Izvedba Wake-on-LAN je zasnovana tako, da je zelo preprosta in da jo hitro obdela vezje, ki je prisotno na omrežni vmesniški kartici, z minimalno porabo energije. Ker Wake-on-LAN deluje pod plastjo protokola IP, je potreben naslov MAC, zaradi česar so naslovi IP in imena DNS nesmiselni.
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; }
Izhod:
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).
Referenca:
https://en.wikipedia.org/wiki/Wake-on-LAN