Magic Packet White Paper

摘要

  本文介绍 Magic Packet 技术及其工作原理。

SCOPE

  PC市场有很多因素影响着PC的设计和实施、操作系统,以及附加设备。大多数情况下,这些影响因素是相辅相成的,例如CPU性能和多媒体使用,或最终用户希望每晚备份其机器,以及信息系统(IS)部门希望在整个网络中保持数据完整性。

  然而,有时这些因素在PC市场上似乎有着更直接的冲突。其中一个例子是,信息系统部希望能够进行终端节点管理(软件更新、备份等),美国政府希望通过“能源之星”计划,在电脑停止使用后不久让电脑进入睡眠状态。如果电脑在晚上5:30睡着,信息系统部门将如何处理?如果用户觉得备份硬盘比省电更重要,他会禁用电脑的省电功能吗?如果是这样的话,这一行动将使“能源之星”计划的省电意图失效,因为个人电脑在不使用时会让自己进入睡眠状态。

PROPOSAL

  AMD和Hewlett-Packard在两年前就发现了这个问题,并开始致力于寻找解决网络化绿色PC问题的方法(Green是一个行业术语,指在没有任何活动时进入低功耗模式的PC)。这种协作导致了一种工业标准机制的提议,该机制允许联网的PC完全进入休眠状态(Deep Green),但仍然允许网络管理员或某种网络管理软件通过向PC发送特定的以太网帧(specific Ethernet frame)来唤醒PC。此标准以太网帧包含以太网控制器在接收端检测到的特定数据模式。然后,以太网控制器向系统发出警报,电源管理电路将其唤醒。

  下面是关于Magic Packet技术的silicon实现的详细信息,以及一些系统和软件含义。

Magic Packet Technology Overview

  Magic Packet 技术的基本技术细节简单易懂。还有第二组细节,具体到实现。换句话说,Magic Packet 技术的 silicon- 或 gate-level 实现可能不同于AMD的方法,并且完全可以互操作,只要保持基本特性集。

  Magic Packet 技术是一种设计用于以太网控制器的功能。基本功能集包括以下内容:

  • Magic Packet Mode Enable
  • Magic Packet Frame Detection
  • Magic Packet Mode Disable

Magic Packet Mode Enable

  假设以太网控制器(Ethernet controller)正在运行并与网络通信,那么在系统进入睡眠状态之前,PC的电源管理硬件或软件必须有一种方法将以太网控制器置于Magic Packet 模式。在PCnet ISA II和PCnet PCI II设备上,这可以通过两种方式实现:在内部寄存器中设置一个位,或者将SLEEP引脚调低。这些操作中的任何一个都将禁用正常的网络活动并启用魔包模式。该设备将不再生成任何传输,并将监视所有传入帧,以确定其中任何帧是否为魔术包帧。

Magic Packet Frame Detect

  一旦LAN控制器进入Magic Packet模式,它将扫描发送到节点的所有传入帧(frames),以获取特定的数据序列,这向控制器指示这是Magic Packet frameMagic Packet 帧还必须满足所选择的局域网技术的基本要求,如源地址、目的地址(可以是接收站的IEEE地址,也可以是包含广播地址的多播地址)和CRC,特定序列由该节点的IEEE地址的16个重复组成,没有中断或中断。

  此序列可以位于数据包中的任何位置,但必须在同步流之前。同步流使扫描状态机简单得多,同步流定义为6字节的FFh。只要IEEE地址的16个副本与要唤醒的机器的地址匹配,设备也将接受多播帧。

  如果网络上特定节点的IEEE地址为11h 22h 33h 44h 55h 66h,则LAN控制器将扫描数据序列(假设为以太网帧):

DESTINATION SOURCE MISC FF FF FF FF FF
FF 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44
55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33
44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22
33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11
22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66
11 22 33 44 55 66 11 22 33 44 55 66 MISC CRC

Magic Packet Mode Disable

  有两个实例必须禁用魔包模式,并且以太网控制器返回到正常操作模式。可能是系统收到了一个魔法包帧,可能是网络管理员想备份硬盘,或者是其他一些操作导致系统进入低功耗睡眠状态,例如用户触摸键盘、移动鼠标等,电源管理硬件或软件必须禁用魔包模式并使以太网控制器恢复正常操作。在PCnet ISA II或PCnet PCI II上,这可以通过重置内部寄存器中的寄存器位或取消断言SLEEP pin来实现。

SILICON IMPLEMENTATION

  Magic Packet 技术的实现细节可能因设备而异,只要拥有基本功能。由于以太网控制器已经具有内置的地址匹配电路来识别寻址到该节点的常规帧(regular frames addressed),因此该电路可以在 Magic Packet 模式的情况下重复使用。必须实现一种新的操作模式,允许电源管理软件或硬件进入和离开Magic Packet模式。必须在地址匹配电路中添加一个计数器,以计算IEEE地址的16次重复,如果正在处理的数据与IEEE地址不匹配,则使用另一个电路重置计数器。

  将 Magic Packet 技术添加到现有的以太网控制器上不需要太多的设计工作、时间或 silicon area。这是使用IEEE地址作为魔术包帧标识符的解决方案的主要原因之一,因为已经存在与此数据流匹配的电路。

SYSTEM IMPLENTATION

  要在PC中使用 Magic Packe t技术,必须进行一些修改以确保功能的正常运行。让我们以一个主板实现为例,其中以太网控制器将位于主板上,一个RJ-45连接器从计算机背面出来。随着以太网成为台式局域网的事实标准,这种实现变得越来越普遍。

  首先,让我们说明当以太网控制器接收到一个 Magic Packet frame 时,它唤醒系统所需的硬件步骤。现在大多数台式机已经有了相当先进的电源管理电路,要么内置在芯片组中,要么作为主板上的独立功能块。在本例中,将诸如LED 3的LED管脚之一连接到电源管理电路中是一件简单的事情。Magic Packet frame 指示只是另一个可能的警报电源管理电路,系统需要唤醒。如何将LED 3引脚连接到系统的电源管理电路中的细节显然是系统、芯片组和特定设计的,因此这里将不详细介绍。

  第二阶段,启用和禁用 Magic Packet 模式,可以在硬件或软件中完成。如果在硬件中完成,电源管理电路必须在将机器置于休眠模式之前驱动休眠引脚激活。这将停止所有正常的网络活动,并将以太网控制器置于魔包模式。在接收到魔术包帧或感应到一些其他活动(如键盘或鼠标移动)时,硬件必须解除对SLEEP#pin的断言,以将以太网控制器从魔术包模式中移除并使控制器恢复正常操作。

  如果需要,第二阶段也可以在软件中完成。在大多数系统上,BIOS或其他软件将知道系统的状态,并在关闭系统的各个组件时进行协作。在这种情况下,如果BIOS参与子系统的上下电(if the BIOS is involved in the powering up and down of subsystems),那么当系统断电进入睡眠状态时,它可以在以太网控制器中设置一个位以启用 Magic Packet 模式。当系统唤醒时,无论出于什么原因,然后,BIOS将通过取消断言相同的位来禁用Magic Packet模式,以关闭Magic Packet帧检测功能,并将以太网控制器返回到正常操作模式。

Driver Implications

  网络操作系统驱动程序可能需要修改,以支持 Magic Packet 操作模式,也可能不需要修改。如果硬件或BIOS负责启用和禁用Magic Packet模式,则可能根本不需要更改驱动程序。这是因为操作者不需要知道系统是否处于唤醒或休眠状态。如果系统进入休眠状态,然后由于某种原因唤醒,只要以太网控制器处于与驱动程序上次访问它时相同的状态,包括寄存器和缓冲区指针,那么驱动程序就可以继续工作,好像什么都没发生一样。当然,如果系统长时间处于休眠状态,PC机可能已经从网络上注销,但要重新建立到服务器的链接,取决于上层,而不是驱动程序。

  然而,尽管如此,驱动程序可能是支持Magic Packet技术的最佳场所。例如,驱动程序可以监视所有高级电源管理(APM)调用,如果被告知系统将进入睡眠状态,则驱动程序可以启用Magic Packet模式。当APM调用指示系统正在唤醒时,驱动程序可以禁用Magic Packet模式,验证以太网控制器的状态,并继续正常活动。

NOS Implications 

  Magic Packet技术对网络操作系统(NOS)的影响仍在确定中,但有几点需要强调。首先也是最重要的是,许多当前的NOS周期性地向一个终端节点发送一个数据包,以确定PC是否仍然存在,并在X次重试后注销任何没有响应此Ping的站点。多年来,这一直让笔记本电脑用户感到沮丧,因为笔记本电脑的设计是在几分钟不活动后进入暂停模式。

  这种ping和随后不响应的pc机的注销将不得不改变,事实上,这个过程正在被改变。最广泛使用的NOS就是Novell Interware。Novell Netware 4.1中有新选项,允许网络管理员禁用此功能。

  另一个问题目前存在于对等网络操作系统中,例如工作组的Windows。问题是,用户可能在数小时后尝试登录到另一个用户的计算机,此时该计算机已进入Magic Packet模式,并且对正常的网络流量没有响应。在这种情况下,用户将无法作为服务器连接到另一台计算机。

Infrastructure Implications

  自从实现了Magic Packet技术以来,关于Magic Packet Frame是否能够真正到达远程PC并为其供电的问题一直存在,这些问题通常围绕Magic Packet Frame是否能够桥接并路由到远程PC而展开,远程PC可能在下一个建筑物中,也可能在全国范围内。

Bridges

  首先,让我们解决桥接问题。由于Magic Packet FrameStandard Ethernet frame,所以网桥没有理由不适当地转发它。Magic Packet FrameStandard Ethernet frame之间的唯一区别是6字节IEEE地址的16个副本,该地址被携带在 frame 的数据部分。网桥甚至不关心 frame 的数据部分是什么,它只关心目标地址。这个问题还被问到“如果一个网桥已经从网桥地址数据库中删除了Magic Packet Frame要发送到的终端节点的地址,会发生什么?这座桥会把框架扔掉吗?答案是否定的。如果网桥不知道某个特定地址位于哪个端口,则网桥必须将frame 转发到所有端口。这将保证frame 被发送到的节点将接收到它。

Routers

  下一步我们将关注网络中的路由器。许多网络被路由器隔开;路由器几乎总是用来将一栋楼的局域网连接到另一栋楼的局域网。路由器用于对局域网进行分段,并减少局域网每个分段上的节点数和广播消息数。同样,如上所述,由于Magic Packet Frame只是一个简单的以太网Frame,在数据字段中有一个特定的数据模式,所以路由器没有理由不像其他任何Frame那样路由该Frame。而且由于Magic Packet Frame是独立于协议的,所以不管局域网运行的是什么协议,不管它是TCP/IP、IPX还是其他协议。只要帧的数据部分完好无损地到达目的地,它就会唤醒目标机器。

Address Aging in Routes

  在进行基础设施讨论时出现了一个重大问题。这集中于路由器中ARP(地址解析协议)表的老化,而不是网桥。在网桥中,当一个地址从数据库中删除时,传入的Frame将被发送到网桥上的所有端口。再说一遍,这是一座桥的定义。然而,在路由器中,当接收到其地址不在数据库中的帧时,路由器将向网络发送ARP,以从Frame被寻址到的节点寻找响应。如果机器处于Magic Packet模式,它将不会响应这个ARP,路由器将只是扔掉Frame。显然,这将否定通过路由网络远程唤醒休眠PC的能力。

  然而,IBM工程师提出了一种解决上述问题的方法,他们一直在研究这个问题,并提出了一种解决这个问题的新方法。程序或系统管理员将向路由器发送“子网定向广播”以转发到目标计算机所在的子网,而不是向目标计算机发送普通Frame。以下是一个逐步的过程,以确保远程唤醒路由器以外的站点。

  在这个场景中,假设使用中的两个网络由两个路由器(路由器1和路由器2)分开。这些路由器的本地子网分别被描述为子网A和子网B。下面是这个假设网络的一个例子,以供参考。下图将以IP internet为例:

Magic Packet White Paper_第1张图片

  想要唤醒远程站点的管理器向包含该站点的子网发送一个IP子网定向广播UDP数据报。此方案强制唤醒数据包以广播MAC地址发送到子网B(由路由器2发送)。

    1. 管理器队列使用目标IP地址将唤醒UDP数据报,作为目标站子网的子网定向广播。

    2. 管理器中的IP堆栈将帧发送到路由器1的MAC目标地址。

    3. UDP数据报最终根据唤醒UDP数据报中IP报头的网络地址部分转发到路由器2

    4. 路由器2接收唤醒UDP数据报,意识到该数据包位于正确的目标网络,并识别出该数据包是子网定向广播数据包。

    5. 路由器2将IP子网定向广播唤醒UDP数据报发送到MAC广播地址。

    6. 目标站通过匹配16个重复地址将广播Frame识别为Magic Packet Frame,并触发来自以太网控制器的唤醒信号。

    7. 目标站现在被唤醒了!

  虽然比第一次概念上使用Magic Packet技术稍微复杂一些,但是确保目标系统通过路由网络远程唤醒的能力是使用该技术的关键。这可以确保使用具有TCP/IP的广域Internet唤醒世界上任何站点的能力,只要路由器将通过定向子网广播。

 PC System Design Implications

  根据系统的设计和体系结构,在现有系统或新设计的系统中添加Magic Packet技术支持可以是简单的,也可以是复杂的。必须解决一下问题,才能保证Magic Packet技术支持的功能正常。

Maintain Ethernet Power

  以太网控制器的电源必须始终保持,从而允许以太网控制器扫描所有传入的数据包以获取Magic Packet Frame

Add Support to Power Management Circuitry

  在正常系统中,电源管理电路会查找几个事件中的任何一个来唤醒系统。会导致系统唤醒的事件,如键盘输入或鼠标移动。为了使用Magic Packet技术,电源管理必须包括一个Magic Packet Frame作为唤醒系统的条件。

Enable / Disable Magic Packet Mode

  系统必须有一个机制来启用和禁用以太网控制器中的Magic Packet操作模式。这可以在硬件或软件中完成,并且明显依赖于所使用的以太网控制器。当系统进入低功耗模式时,必须启用Magic Packet模式;当系统退出低功耗模式时,无论是在接收到Magic Packet Frame还是其他事件(如键盘输入)后,都必须禁用Magic Packet模式。

Sleep Mode Power Consumption

  个人电脑的耗电问题越来越重要,不仅对政府,通过环保署正在实施的能源之星计划,而且对大公司的管理信息系统管理者来说,这些管理者可以很容易地看到,通过使用电力管理的个人电脑,降低电费,可以立即节省成本。

  然而,对于如何最好地将计算机置于断电状态,有两种想法。首先是将电脑置于所谓的待机操作模式。在这种模式下,计算机实际上是有活力的,可以为整个主板供电。在这种模式下,低功耗是通过减慢处理器时钟、降低硬盘驱动器的转速和使显示器处于低功耗状态来实现的。但是,通过待机模式可以节省的电量是有限制的。事实上,随着更大的处理器和更大的DRAM阵列消耗更多的功率,无论系统运行的时钟频率如何,这一点可能变得更加明显。

  第二种方法,也是可以与Magic Packet技术一起使用的方法,是将系统置于通常称为挂起模式的状态。在挂起模式下,系统通常会完全停止。CPU停止,甚至可能断电,尽管目前很少有系统这样做。整个系统板可能会断电,只留下电源管理电路通电,以检测某种可能指示系统应通电的活动。在这种情况下,以太网控制器也将通电,接收来自网络的帧,寻找一个Magic Packet Frame,这将指示电源管理系统应被唤醒。

CONCLUSIOIN

  在这篇白皮书中,我发现了一些问题,涉及到sleeping Green PC以及它在网络上的工作方式,以及使用Magic Packet技术使PC进入极低功耗状态,并且仍然可以由网络管理员管理。AMD从Magic Packet技术提案中得到的回应非常积极,许多主要系统开发人员和addin卡供应商都对该技术表示了兴趣。通过采用Magic Packet技术作为行业标准机制,允许远程唤醒休眠的PC机,这些供应商正在进一步实现将非操作PC机的功耗降低到尽可能低的目标。

  AMD相信,Magic Packet技术将在网络PC的可管理性方面发挥重要作用,特别是在企业局域网环境中,终端节点管理正变得越来越重要。AMD正与许多PC、网络接口卡和软件供应商合作,以确保这项技术的标准化和互操作性。

 

你可能感兴趣的:(Magic Packet White Paper)