Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-1-1定义了基础性的UPnP设备架构1.0版,这是UPnP协议套件的首个标准化版本。该版本确立了所有后续UPnP标准所扩展和完善的基线协议和设备交互模型。作为29341系列的基石,它规定了设备和控制点的强制性行为。
1.0版引入了六层协议栈,至今仍是UPnP的核心支柱:通过DHCP/Auto-IP进行寻址、通过SSDP进行发现、使用XML获取设备和服务的描述文档、基于SOAP的控制、GENA事件通知以及可选的呈现页面。该架构在当时是革命性的,它将零配置网络技术带入了消费电子领域。
1.0版的描述模型使用XML模式来定义设备和服务能力。设备描述文档(通过SSDP LOCATION标头中嵌入的URL获取)包含制造商元数据、型号信息以及指向服务描述文档的链接。
每个服务描述文档定义了:动作列表(控制点可以调用的方法)、状态变量(反映设备运行时状态的类型化数据)以及服务控制协议定义。状态变量可以是事件型(变更时发送通知)或非事件型。支持的数据类型包括布尔型、数值类型(i1、ui1、i2、ui2、i4、ui4、int、r4、r8、number)、字符串、日期/时间类型和二进制数据(bin.base64、bin.hex)。
| 状态变量类型 | 说明 | 使用示例 |
|---|---|---|
| Boolean | 真/假标志 | PowerStatus, ConnectionState |
| ui1 | 无符号8位整数(0-255) | VolumeLevel, ChannelNumber |
| i4 | 有符号32位整数 | ErrorCode, TimeRemaining |
| string | UTF-8编码文本 | DeviceName, FriendlyName |
| r4 | 32位浮点数 | Temperature, Position |
| bin.base64 | Base64编码的二进制数据 | FirmwareImage, IconData |
| dateTime | ISO 8601日期/时间 | LastUpdate, AlarmTime |
| uri | 统一资源标识符 | DeviceURL, IconURL |
UPnP v1.0的现场经验揭示了几个工程最佳实践。首先,控制点必须实现健壮的超时处理——SSDP M-SEARCH响应可能延迟,且设备可能在不发送SSDP byebye消息的情况下变得无响应。其次,设备中的XML解析器应能抵抗格式错误的SOAP请求,防止设备协议栈崩溃。
关于多播稳定性,标准建议SSDP NOTIFY消息应发送时加入最多100毫秒的随机抖动,以避免大量设备同时开机时(停电后的常见场景)造成网络风暴。类似地,M-SEARCH响应应包含介于0和设备CACHE-CONTROL标头中指定的Advertisement Age之间的随机延迟。