Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-6-10 为 UPnP 低功耗设备定义了待机服务,规定了设备在低功耗状态下保持网络存在的机制。待机服务是低功耗设备架构的强制组件,通过基于代理的网络交互使设备能够关闭其主处理和通信子系统,同时在网络中保持响应状态。
待机服务解决的基本挑战是低功耗运行期间的网络透明性。当设备进入待机状态时,它无法直接响应发现探测或控制请求。没有待机服务,设备在网络其他参与者看来将显示为离线,造成可靠性问题和用户困扰。该服务通过提供代理系统来解决此问题,该代理系统维护设备的网络身份并代表其响应查询。
待机服务定义了一种代理-服务器架构,其中低功耗设备(服务器)将其网络存在委托给代理组件。代理代表休眠设备维护四个关键数据结构:设备描述文档、服务控制协议定义(SCPD)、当前状态变量表和待处理操作队列。当控制点发现并与休眠设备交互时,代理使用这些缓存数据响应,如同设备本身在响应。
标准详细规定了唤醒代理机制。当控制点向休眠设备发送操作请求时,代理拦截该请求并根据预定义的唤醒条件进行评估。如果请求需要设备级处理,代理使用带外通道(通常是以太网设备的 WoL 魔术包或本地连接设备的 GPIO 中断)向设备发送唤醒信号。代理然后缓冲请求并在设备发出就绪信号后转发。
待机服务的一个重要优化是代理过滤能力。并非所有网络事件都需要唤醒设备。代理可以配置过滤器,确定哪些操作触发唤醒,哪些可以完全在代理层处理。例如,设备元数据查询可以从缓存中回答,而更改设备设置的命令需要唤醒设备。
| 代理组件 | 缓存数据 | 更新频率 | 唤醒触发 |
|---|---|---|---|
| 设备描述 | 设备类型、友好名称、制造商信息 | 注册时 | 元数据查询 |
| SCPD | 服务操作、参数、状态变量 | 服务变更时 | 操作调用 |
| 状态变量 | 所有状态变量的当前值 | 事件驱动 | 变量查询 |
| 操作队列 | 来自控制点的待处理操作请求 | 每次请求 | 操作执行 |
实施待机服务时,工程师必须仔细设计唤醒决策逻辑。标准定义了一个 WakeCriteria 数据结构,包含操作名称模式、服务标识符和可选的参数匹配规则。代理根据这些条件评估传入请求,仅在找到匹配时才唤醒设备。这种方法在确保重要请求得到及时处理的同时,最大限度地减少了不必要的唤醒。
待机服务支持多种代理发现方法。除了标准 UPnP 发现协议外,设备还可以通过 DNS 服务发现(DNS-SD)和 DNS SRV 记录通告其代理关联。这种混合方法确保在不同网络配置下实现稳健的代理发现,包括不可靠转发多播流量的子网。
安全考虑在待机服务架构中至关重要。代理必须验证唤醒信号以防止可能耗尽设备电池的恶意唤醒攻击。标准强制要求唤醒信号包含加密随机数,并且必须可由休眠设备验证。此外,代理必须验证发送操作请求的控制点具有适当授权,然后才能启动设备唤醒。
ISO/IEC 29341-6-10 待机服务是实现节能 UPnP 网络的关键使能技术。通过提供在低功耗状态下保持网络存在的复杂代理架构,它弥合了节能与网络可靠性之间的差距。实施该服务的工程师必须仔细调整唤醒条件、代理缓存策略和安全机制,以在其特定部署场景中实现最佳性能。