- Universal Plug and Play
-
Universal Plug and Play (UPnP) dient zur herstellerübergreifenden Ansteuerung von Geräten (Stereoanlagen, Router, Drucker, Haussteuerungen) über ein IP-basierendes Netzwerk, mit oder ohne zentrale Kontrolle durch ein Residential Gateway. Es basiert auf einer Reihe von standardisierten Netzwerkprotokollen und Datenformaten.
UPnP wurde ursprünglich von der Firma Microsoft eingeführt; heute spezifiziert das UPnP-Forum den UPnP-Standard und zertifiziert Geräte, die dem Standard entsprechen.
Inhaltsverzeichnis
Überblick
UPnP zeichnet sich insbesondere durch folgende Merkmale aus:
- Ein Kontrollpunkt (z. B. Handheld) kann die Geräte (z. B. Stereoanlage) ohne Interaktion des Benutzers finden.
- Alle Transportmedien, die IP-Kommunikation unterstützen, können verwendet werden, z. B. Ethernet, Funk (Bluetooth, Wireless LAN), FireWire (IEEE 1394).
- Es werden standardisierte Protokolle und Verfahren wie IP, UDP, Multicast, TCP, HTTP, XML, SOAP etc. verwendet.
- Ein UPnP-Gerät oder -Kontrollpunkt kann auf jedem IP-fähigen Betriebssystem und mit den verschiedensten Programmiersprachen realisiert werden.
- UPnP bietet Möglichkeiten für herstellerspezifische Erweiterungen.
Ablauf (UPnP Networking)
Adressierung (Addressing)
Da die Basis von UPnP ein IP-Netzwerk ist, muss ein Gerät oder Kontrollpunkt zuerst über eine gültige IP-Adresse verfügen. Auf welchem Wege diese IP-Adresse erhalten wurde (z.B. DHCP, Zeroconf, manuelle IP-Konfiguration), spielt dabei keine Rolle.
Lokalisierung (Discovery)
Sobald ein UPnP-Gerät über eine IP-Adresse verfügt, muss es seine Existenz im Netzwerk an die Kontrollpunkte melden. Dies erfolgt via UDP über die Multicast-Adresse 239.255.255.250:1900 auf der Basis des Simple Service Discovery Protocol (SSDP). Ebenso können Kontrollpunkte nach UPnP-Geräten im Netzwerk suchen. In beiden Fällen enthält die „discovery message“ nur die wichtigsten Angaben über das Gerät und seine Dienste, wie z. B. den Gerätenamen, Gerätetyp und eine URL zur genauen Beschreibung des Gerätes.
Beschreibung (Description)
Nachdem ein Kontrollpunkt ein Gerät gefunden hat, holt er sich per HTTP über TCP/IP die Beschreibung des Gerätes von der URL, welche ihm bei der ganzen Lokalisierung mitgeteilt wurde. Diese stellt das Gerät in Form eines XML-Dokumentes zur Verfügung. Die Beschreibung beinhaltet Informationen über den Hersteller, die Seriennummer, URL-Adressen für die Steuerung, Ereignisse und die Präsentation. Für jeden Service, den ein Gerät anbietet, werden Kommandos und Aktionen sowie Datentypen und Datenbereiche spezifiziert. Die Beschreibung beinhaltet neben den Diensten, die es anbietet, auch alle eingebetteten Geräte mit deren Diensten.
Steuerung (Control)
Anhand der Informationen, die der Kontrollpunkt aus dem Beschreibungsdokument des Gerätes erhalten hat, kann er nun SOAP-Mitteilungen an die Steuerungs-URL des Gerätes schicken, um dieses zu steuern.
Ereignismeldungen (Event Notification)
Damit ein Gerät nicht dauernd den Zustand eines Dienstes bzw. einer Statusvariablen abfragen muss (enthalten im Beschreibungsdokument des Gerätes), nutzt UPnP die XML-basierte General Event Notification Architecture (GENA). Mit GENA können Kontrollpunkte Informationen zum Gerätestatus abonnieren; somit werden sie bei jeder Änderung einer Statusvariablen automatisch informiert. Dazu werden „event messages“ verschickt, die den Zustand der abonnierten Variablen enthalten, die sich geändert haben.
Präsentation (Presentation)
Die Präsentation ist eine Alternative zur Steuerung und den Ereignismeldungen. Über die Presentation-URL, welche bei der Beschreibung (Description) bekanntgegeben wird, kann mittels Webbrowser auf das Gerät zugegriffen werden. Dies gibt dem Hersteller die Möglichkeit, neben dem standardisierten Zugriff via UPnP eine alternative Benutzeroberfläche zur Verfügung zu stellen.
Praktischer Einsatz
UPnP bietet mit dem IGD-Protokoll (Internet Gateway Device) eine Möglichkeit, auf für den Benutzer einfache Weise Router anzuweisen, Ports zu öffnen und entsprechende Anfragen aus dem Internet an einen Rechner weiterzuleiten, der via NAT an das Internet angebunden ist. Derartige Weiterleitungen sind beispielsweise für Filesharing und Dateitransfers in Instant-Messaging-Programmen notwendig. Anwendung findet dies beispielsweise in µTorrent, Pidgin 2, Apple iChat, eMule ab Version 0.48a, Miranda IM ab Version 0.6, Transmission, Vuze und ANts P2P.
Der Bequemlichkeit der automatischen Portkonfiguration gegenüber steht ein Verlust an Sicherheit, denn die Firewall eines UPnP-fähigen Routers kann dadurch von einem eventuell auf den Computer gelangten Schadprogramm unwirksam gemacht werden. Dieser Verlust entsteht aber erst, nachdem ein PC im lokalen Netz mit einer Schadsoftware infiziert ist. Ohne Zugriff auf das LAN ist IGD kein Verlust an Sicherheit. Zu bedenken ist allerdings, dass seit Januar 2008 Schadsoftware bekannt ist, die sich z. B. in Adobe Flash oder in JavaScript versteckt und ohne Nutzerinteraktion auch beim bloßen Besuchen von Webseiten mit einem aktuellen Internet-Browser auf dem Rechner ausgeführt werden kann und somit ungebetenen Gästen das Eindringen ins lokale Netzwerk ermöglicht.[1]
Ein weiteres verbreitetes Einsatzfeld ist die Verteilung von Multimediainhalten im lokalen Netzwerk. Dabei werden auf einem PC oder NAS Dateien mittels eines UPnP-MediaServers bereitgestellt. Entsprechende Endgeräte (UPnP-MediaRenderer) können die Inhalte des Servers durchsuchen, filtern, sortieren und natürlich wiedergeben. Welche Formate wiedergegeben werden, hängt dabei vom Endgerät ab. UPnP-MediaRenderer werden bereits seit einigen Jahren von diversen Herstellern angeboten.
Literatur
- Golden G. Richard: Service and Device Discovery: Protocols and Programming, McGraw-Hill Professional, ISBN 0071379592
- Michael Jeronimo, Jack Weast: UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play, Intel Press, ISBN 0971786119
Siehe auch
- Digital Living Network Alliance (DLNA) - herstellerneutrale Weiterentwicklung von UPnP AV
- NAT-PMP – Alternative zu UPnP
- OSGi – Middleware-Standard (Java-Framework) für die Einbindung von UPnP in Service-Gateways
- Jini
Weblinks
- UPnP™ Forum, Universal Plug and Play Device Architecture
- UPnP Implementers Corporation
- Cybergarage Open Source UPnP Stack (C++ und Java)
- Cling Open Source UPnP stack and tools (Java)
- libupnp Open-Source-UPnP-Stack in C
- Developer Tools for UPnP™ Technologies (Nachfolger der Intel Server und Tools for UPnP™)
- zertifizierte UPnP-Geräte
- miniupnp kleine (lightweight) Open-Source-UPnP-Bibliothek (library) und Server (englisch, französisch)
- MediaTomb OpenSource Media Server in C++
- upnp-database.info Community based approach to generate a database with UPnP devices' capabilities
- miniupnp UPnP IGD client lightweight library and UPnP IGD daemon (working with XBOX & PS3)
Einzelnachweise
Wikimedia Foundation.