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 defines the foundational UPnP Device Architecture Version 1.0, the initial standardized release of the UPnP protocol suite. This version establishes the baseline protocols and device interaction models that all subsequent UPnP standards extend and refine. As the cornerstone of the 29341 series, it specifies the mandatory behaviors for both devices and control points.
Version 1.0 introduced the six-layer protocol stack that remains the backbone of UPnP today: addressing via DHCP/Auto-IP, discovery through SSDP, device and service description retrieval using XML, SOAP-based control, GENA eventing, and optional presentation pages. This architecture was revolutionary at its time for bringing zero-configuration networking to consumer electronics.
The description model in version 1.0 uses XML schemas to define device and service capabilities. The device description document (retrieved via the URL embedded in the SSDP LOCATION header) contains manufacturer metadata, model information, and links to service description documents.
Each service description document defines: a list of actions (methods that control points can invoke), state variables (typed data that reflects the device’s runtime state), and service control protocol definitions. State variables can be evented (sending notifications on change) or non-evented. The data types supported include Boolean, numeric types (i1, ui1, i2, ui2, i4, ui4, int, r4, r8, number), string, date/time types, and binary data (bin.base64, bin.hex).
| State Variable Type | Description | Usage Example |
|---|---|---|
| Boolean | True/False flag | PowerStatus, ConnectionState |
| ui1 | Unsigned 8-bit integer (0-255) | VolumeLevel, ChannelNumber |
| i4 | Signed 32-bit integer | ErrorCode, TimeRemaining |
| string | UTF-8 encoded text | DeviceName, FriendlyName |
| r4 | 32-bit floating point | Temperature, Position |
| bin.base64 | Base64-encoded binary | FirmwareImage, IconData |
| dateTime | ISO 8601 date/time | LastUpdate, AlarmTime |
| uri | Uniform Resource Identifier | DeviceURL, IconURL |
Field experience with UPnP v1.0 has revealed several engineering best practices. First, control points must implement robust timeout handling — SSDP M-SEARCH responses can be delayed, and devices may become unresponsive without sending an SSDP byebye message. Second, the XML parser in the device should be resistant to malformed SOAP requests that could crash the device stack.
For multicast stability, the standard recommends that SSDP NOTIFY messages be sent with a random jitter of up to 100 milliseconds to avoid network storms when many devices power on simultaneously (a common scenario after a power outage). Similarly, M-SEARCH responses should include a random delay between 0 and the Advertisement Age specified in the device’s CACHE-CONTROL header.