Tim Jansen's Blog (deutsch)


2006/01/23

Die UPnP AV Architektur (Teil 1)


(Teil 1, Teil 2, Teil 3)
Da den meisten Lesern wohl nicht ganz klar ist, was ein UPnP-fähiges Gerät ist, wie UPnP funktioniert und was ein solches Gerät können sollte, wollte ich hier eine Einführung in die UPnP AV Architektur schreiben. Der erste Teil über UPnP selbst ist allerdings schon deutlich länger ausgefallen, als ich ursprünglich erwartet habe. Daher veröffentliche ich diesen Teil jetzt, und der Rest kommt dann in 1-2 weiteren Teilen im Laufe der Woche.

UPnP (Universal Plug and Play)

UPnP ist ein von einem Firmenkonsortium um Microsoft und Intel ins Leben gerufener Standard, der die Kommunikation zwischen Netzwerkgeräten aller Art vereinfachen soll. Der UPnP-Standard selbst beinhaltet praktisch keine Funktionen an, sondern dient vielmehr als Basis für die verschiedenen UPnP-Profile. Je nachdem, wo man nachliest, gibt es verschiedene Namen für das, was ich hier "Profil" nenne: in alten UPnP Texten werden sie als Device Control Protocol (DCP) bezeichnet. In neueren heissen sie Device Standard.
Ich bleibe hier erstmal bei "Profil". Profile werden gewöhnlich vom UPnP Forum definiert und beschreiben die Schnittstelle, die eine bestimmte Geräteart zu Verfügung stellen muss. UPnP-Geräte mit gleichem Profil sollten untereinander kompatibel sein, auch wenn sie von verschiedenen Herstellern stammen. In der Praxis ist das leider nicht immer so einfach, aber meistens funktioniert es. Beispiele für UPnP-Profile sind das Printer-Profil für Drucker, das sehr weit verbreitete IGD (Internet Gateway Device) Profil für Internet-Router, und das hier beschriebene AV Profil für Geräte, die mit Audio oder Videodaten hantieren. Dementsprechend gibt es auch keine Geräte, die einfach nur UPnP implementieren, sondern sie implementieren immer auch mindestens ein Profil. Leider geben die meisten Hersteller nicht an, welches Profil ein Gerät unterstützt, sondern zeigen einfach nur das wenig aussagekräftige UPnP Logo. Man muss es also gewöhnlich anhand der Art des Gerätes erahnen.

UPnP Funktionen

Folgende Funktionen werden im UPnP Basisstandard (genannt UPnP Device Architecture) definiert und müssen von jedem UPnP Gerät beherscht werden:

  1. Das Icon eines UPnP Gerätes
    Das Finden von Geräten im Netz. Man muss also nicht zwangsläufig die Adresse eines Gerätes wissen und irgendwo eingeben, sondern kann sich eine Liste aller UPnP-Geräte angezeigen lassen. Bei Windows XP bemerkt man diese Funktion sofort, wenn man ein neues UPnP-Gerät anschliesst, denn es taucht dann automatisch als Icon in der Netzwerkumgebung auf.
    Das Protokoll, dass dies möglich macht, heisst SSDP und basiert auf einer recht merkwürdigen HTTP-Abart namens HTTPU bzw HTTPMU.
  2. Die Beschreibung des Gerätes. Diese umfasst den Namen des Gerätes, sein Icon und einen Link auf eine Präsentationsseite des Gerätes, die man im Browser anschauen kann. Wenn man in Windows XP das Icon eines UPnP-Gerätes doppelklickt, dann kommt man auf genau diese Seite. Üblicher Weise kann man dort sein Gerät konfigurieren. Die Geräte-Beschreibung beinhaltet ausserdem eine Auflistung aller Profile des Gerätes bzw der daraus resultierenden Fähigkeiten
    (genannt Services). Die Beschreibungen liegen in einem XML-Format vor.
  3. Ein System für Benachrichtigungen, dass von den Services der Profile benutzt werden kann. Ein Beispiel für eine Benachrichtigung ist eine Nachricht, wenn ein Drucker fertig geworden ist. Das Protokoll nennt sich GENA und wird auch von SSDP benutzt.
  4. Ein System zum Verschicken von Kommandos an ein Gerät. Wenn
    beispielsweise im Lighting Controls-Profil eine Fernbedienung eine Lampe anschalten will, dann schickt sie ein entsprechendes Kommando an die Lampe (beziehungsweise deren Schalter). Das Protokoll für Kommandos ist SOAP.


UPnP Begriffe


Präsentationsseite eines Terratec Noxons
Bevor ich über das AV-Profil selbst schreibe, hier noch die drei wohl
wichtigsten Begriffe der UPnP-Architektur:
  • Device (Gerät): Diesen Begriff kann man sich weitestgehend als kleinen Kasten mit Netzwerkanschluss oder Antenne, also als physisches Gerät, vorstellen. Der UPnP Standard erlaubt auch Spezialfälle, die mehrere Funktionen vereinen, wie Drucker/Scanner-Kombigeräte, aber für den AV-Standard sind diese nicht so wichtig. Geräte verhalten sich im UPnP-Standard passiv, dass heisst sie empfangen nur Kommandos vom Control Point (s.u.), nehmen aber niemals von sich aus Kontakt zum Control Point oder zu anderen Geräten auf.
  • Control Point: die Control Points sind der aktive Gegenpart zum Gerät. Von der Funktion her kann man sie als eine Art Fernbedienung betrachten. Der Control Point kann Geräte suchen, deren Status überwachen und Kommandos an diese schicken. Im Gegensatz zu Geräten kann man die Control Points selbst nicht im Netzwerk suchen, und sie können auch keine Kommandos empfangen.
    Ein Control Point könnte als richtige Fernbedienung mit kleinem Bildschirm und WLAN implementiert werden, aber heutzutage sind Control Points meistens Programme, die auf einem Computer laufen. Beispielsweise ist der Druckertreiber ein Control Point für einen UPnP-fähigen Drucker. Speziell für das AV-Profil ist es wichtig zu wissen, dass ein Control Point auch in einem Gerät integriert sein kann.
    Control Points müssen immer für ein oder mehrere Profile (oder genaugenommen Services eines Profiles, s.u.) entwickelt werden. Man kann also mit einem Control Point für Drucker keine Lichtschalter anschalten.
  • Service: Ein Service ist eine Sammlung von Kommandos und
    Ereignissen, die ein Gerät unterstützt. Services werden von den Profilen beschrieben und von den Geräten zur Verfügung gestellt. Dabei werden in manchen Profilen, insbesonders dem AV-Profil, mehrere Services beschrieben und Geräte können mehrere Services implementieren, abhängig von der Art und den Fähigkeiten des jeweiligen Gerätes.


Sicherheit

Und noch ein letztes Wort zum Thema Sicherheit: UPnP ist in erster Linie für den Einsatz zuhause gedacht. Es gibt bei normalen UPnP-Geräten keine Authentifizierung, keine Passwörter, nichts dergleichen. Jeder, der sich im lokalen Netz befindet, kann auf jedes Gerät zugreifen und dort auch alles mit diesen tun. Systeme ausserhalb dieses Netzes, also vor allem solche im Internet, haben dagegen keine Rechte und können im Normalfall auch gar nicht erst auf UPnP-Geräte zugreifen. Im hauseigenen LAN sollte das Fehlen eines Berechtigungssystems kein Problem sein und macht UPnP Geräte wesentlich einfacher zu handhaben. Man sollte seine UPnP Geräte jedoch nicht in ein Netzwerk stellen, das auch anderen zugänglich ist (offener WLAN Hotspot, Campus-Netzwerk etc) - jedenfalls nicht ohne die UPnP-Geräte durch durch eine Firewall oder ähnliches vom nicht-vertrauenswürdigen Netz abzuschirmen.

zu Teil 2.



Kommentare

der dsm 320 von d-link wird nicht mehr angeboten. nachfolge zunächst der (überteuerte) dsm320rd.

viele infos zu den d-link geräten im wiki: dsm320firmwareupdate.pbwiki.com
grüße hansi

 


Kommentar veröffentlichen

This page is powered by Blogger. Isn't yours? Creative Commons License
All text in this blog is licensed under a Creative Commons License.
(Images containing screenshots etc are excluded)