一种基于WOL协议跨Internet远程唤醒的解决方案

⼀种基于WOL协议跨Internet远程唤醒的解决⽅案
1 引⾔
WOL(Wake-On-LAN)是⼀种⽤于远程唤醒局域⽹内主机的⼀种解决⽅案。但对于跨⽹络的远程唤醒功能由于⽹络中路由器的限制,这种解决⽅案只能在主控机和被控机位于同⼀⼴播域的情况下使⽤。本⽂提出了⼀种廉价、低耗且实⽤的WOL-Proxy的设计⽅案,利⽤单⽚机技术,实现了基于WOL的跨⽹络远程唤醒主机的功能。
2 ⼯作原理
可被远程唤醒的计算机必须有其电源、主板和⽹卡等硬件的⽀持。该计算机的电源是必需符合ATX 2.03标准的ATX电源,+5VStandby电流⾄少应在720mA以上,否则某些耗电较⼤的⽹卡可能⽆法启动;主板必须⽀持WOL,并在其BIOS中的电源管理菜单中启⽤这项功能;⽹卡也必须⽀持WOL,其与普通⽹卡的区别主要表现在:(1)早期⽀持WOL的⽹卡都有⼀个3针的WOL接⼝,并通过⼀根3芯电缆与主板相连,以获得供电;(2)⽀持⽹络启动功能的⽹卡都有⼀块⽀持WOL的芯⽚。
具备上述硬件要求的计算机便可被运⾏在局域⽹内另外⼀台计算机上的⼀些实⽤软件唤醒了。这种软件通常会在局域⽹内⼴播⼀个UDP数据包,端⼝不限,数据内容是⼀个有着特定格式的数据包:Magic Pa
cket,其格式为:6个0xFF加16个⽬标⽹卡MAC地址,因此该Magic Packet总长度为。6+16*6=102个字节,如表1所⽰。只有指定的⽀持WOL的⽹卡才会处理这个数据包,并唤醒这台计算机。
表1:Magic Packet数据报格式
字  节含  义1~6字节是6个重复的0xFF 表⽰该包是⽹络唤醒数据包
内容FF-FF-FF-FF-FF-FF
字节7~12字节是⽬标⽹卡MAC地址
内容00-14-2A-C3-D4-BB
字节13~18字节是⽬标⽹卡MAC地址
内容00-14-2A-C3-D4-BB
字节/内容……
字节97~102字节是⽬标⽹卡MAC地址
内容00-14-2A-C3-D4-BB
3 传统⽅式的局限性
由于WOL采⽤了⼴播的⽅式发送唤醒数据包,因⽽跨⽹络的远程唤醒必须得到路由器的IP directed broadcast ⽀持。但这种⼴播很少有实际的⽤途,却经常成为⿊客进⾏ "smurf" 式“拒绝服务”攻击的⼯具,因此路由器⼀般都“禁⽤”这种⼴播。
4 解决⽅案
既然通常情况下路由器不⽀持跨⽹络⼴播,因此若想利⽤WOL技术实现跨⽹络的远程唤醒功能,就可以通过在局域⽹内配置⼀台“服务器”的⽅式来实现。⽐如利⽤局域⽹内的IIS服务器,安装⼀个Wake On Lan for ASP(Active Server Pages) 组件后,便可通过Web的⽅式发送远程唤醒请求,然后此Web服务器便将该请求在本地局域⽹⼴播,从⽽使得“好像”是从远程“直接”唤醒了⽬标计算机。但对于⼩型局域⽹,运⾏⼀台Web服务器似乎有点太浪费了。因此本⽂提出了⼀种在单⽚机上实现⼀个WOL-Proxy的解决⽅案, 这种⽅案廉价、低耗且实⽤。
设计⼀个WOL-Proxy,在芯⽚选择上,中央处理器可采⽤常⽤的MCS51系列的芯⽚,⽹络通讯模块采⽤RTL8019AS以太⽹控制器,这些芯⽚都具有性能优良,价格低廉的特点。单⽚机WOL-Proxy的硬件实现如图1所⽰。
图1: 单⽚机WOL-Proxy电路图
软件上,实现远程接收唤醒命令数据,将其重新组装成Magic Packet包,然后在本地LAN⼴播,需要实现⼀个TCP/IP协议⼦集,包括ARP、ICMP、IP、UDP等协议。在此,定义⼀个基于UDP的应⽤协议:⽹络唤醒代理转发请求协议(WOL-Proxy Protocol),如表2所⽰。整个UDP包的长度为2+2+2+2+6=14字节。于通过指定的⽬的端⼝(2345)和报⽂长度(14)便可处理知道请求的服务类型。假设需要唤醒的⽬标机器的MAC地址为:00-14-2A-C3-D4-BB,系统运⾏过程如图2所⽰。
表2:⽹络唤醒代理转发请求协议(WOL-Proxy Protocol)
UDP
源端⼝(2B)XX-XX⽬的端⼝(2B)09-29
长度(2B)00-0E校验和(2B)XX-XX
⽬标机器MAC地址(6B)XX-XX-XX-XX-XX-XX
图2:唤醒远程计算机流程图
表3:响应信号以太⽹帧:
⽬的MAC地址(6B)FF-FF-FF-FF-FF-FF
源MAC地址
(6B)
01-0C-76-8A-
93-3B
类型(2B)08-00(IP)
IP 报⽂版本、报头长度(1B)45服务类型(1B)00
总长度
(2B)
00-
82
标识符(2B)00-00标记、偏移量
(2B)
00-00
⽣存期
(1B)
14
协议类型(1B)11(UDP)校验和(2B)3F-F5
源IP(4B)08-06-00-01⽬的IP(4B)CA-70-93-FF
UDP
报⽂
源端⼝(2B)00-00⽬的端⼝(2B)00-00长度(2B)00-6E校验和(2B)28-E4
数据
(Magic Packet 包)
(102B)FF-FF-FF-FF-FF-FF
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
00-14-2A-C3-D4-BB - 00-14-2A-C3-D4-BB
5 结束语
本⽂实现的基于WOL的跨Internet远程唤醒技术,从理论上跨越了由于路由器禁⽌IP directed broadcast⽽造成WOL⽆法跨局域⽹应⽤的限制。⽽且造价低廉,耗电极少,⾮常适⽤于⽇益普及的中⼩型局域⽹络管理;在未来,如果空调等家⽤电器也被接⼊家庭局域⽹,只要它们的⽹卡⽀持WOL,便可使⽤本⽂提出的⽅案,轻松地进⾏远程管理。再者,如果在上述单⽚机系统内加⼊A/D、D/A等接⼝,实现了TCP/IP协议的单⽚机系统,必将在更加⼴阔的领域内发挥更⼤的作⽤。此外,从⽹络安全上考虑,由于单⽚机系统本⾝已具备⼀定的计算能⼒,因此将本系统实现为更加安全的⽹络应⽤也是可能的。
参考⽂献
[1] 李章林,张⽴民. TCP/IP在51单⽚机上的实现特点和⽅法[C]. “2003年全国单⽚机和嵌⼊式系统年会”论⽂集(出版地不详). 2003年.
[2] 刘波等.基于IP⼴播的计算机远程唤醒机制及其实现[J].计算机应⽤研究.2004年第7期.237-238,247
[3] 万光毅等. SoC单⽚机实验、实践与应⽤设计[M].北京:北京航空航天⼤学出版社.2006年.425-431
[4] 范建华等. TCP/IP详解,卷1:协议[M].北京:机械⼯业出版社.2000年.

本文发布于:2024-09-24 19:18:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/89591.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:唤醒   远程   实现   计算机   请求
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议