Universal Plug and Play (UPnP) je sada síťových protokolů vyhlašovaných UPnP Forem. Cílem UPnP je umožnit jednoduché připojení periferních součástí počítače a zjednodušit zavádění sítí v domácnostech (sdílení dat, komunikace a zábava) i podnicích. UPnP toho dosahuje definováním a publikováním řídicích protokolů UPnP zařízení postavených na otevřených, na Internetu založených komunikačních standardech.
Termín UPnP je odvozen od plug-and-play, což je technologie pro automatickou konfiguraci hardwarových zařízení připojených k počítači.
UPnP architektura[1] umožňuje peer-to-peer spojení počítačů, síťových zařízení a zařízení pro bezdrátovou komunikaci. Jedná se o distribuovanou otevřenou technologii založenou na standardech jako jsou TCP/IP, UDP, HTTP a XML.
UPnP architektura podporuje automatickou konfiguraci sítě. Zařízení kompatibilní s UPnP od libovolného výrobce se může dynamicky připojit k síti, obdržet IP adresu, na vyžádání oznámit své schopnosti a dozvědět se schopnosti ostatních zařízení v síti. DHCP a DNS servery jsou volitelné a jsou použity jen když jsou dostupné v síti. Zařízení mohou opustit síť automaticky bez zanechání nežádoucích stavových informací.
Další vlastnosti UPnP:
Základem UPnP sítí je IP adresování. Každé zařízení musí mít DHCP klienta a hledat DHCP server když se poprvé připojí do sítě. Pokud není DHCP server dostupný, tak si musí jednotka zařízení přiřadit adresu sama. Pokud během DHCP transakce obdrží jednotka jméno (např. přes DNS), může toto jméno používat v komunikaci v podsíti.
První krok po obdržení IP adresy je zjišťování ostatních zařízení na síti. Po připojení zařízení do sítě mu UPnP Discovery protokol umožní ohlásit své služby kontrolním bodům na síti. Podobně, pokud je přidán kontrolní bod, Discovery protokol mu umožní hledat na síti požadovaná zařízení. Základní prvek je v obou případech zpráva Discovery, obsahující několik základních specifik o daném zařízení či jeho službách, například jeho typ, identifikátor a ukazatel na detailnější informace. UPnP Discovery protokol je založen na SSDP (Simple Service Discovery Protocol) navrženém firmami Microsoft a Hewlett-Packard.
Dalším krokem UPnP je Popis. Poté, co kontrolní bod v předchozím kroku objeví zařízení, stále o něm nemá dostatek informací (o zařízení a jeho službách). Musí tedy získat popis zařízení z URL poskytnutého v Discovery zprávě. Popis zařízení je v UPnP poskytován ve formě XML a zahrnuje výrobní údaje jako například jméno a označení zařízení, sériové číslo, název výrobce a URL na jeho webové stránky, apod. Popis také zahrnuje seznam integrovaných zařízení a služeb, URL pro jejich ovládání. Ke každé službě je také poskytnut seznam příkazů či akcí na které služba reaguje, jejich parametry a proměnné, které určují stav služby.
Po obdržení popisu zařízení může kontrolní bod komunikovat se službami daného zařízení. Komunikace probíhá přes kontrolní zprávy, posílané na URL služby (poskytnuté v popisu). Zprávy jsou ve formě XML a používají SOAP (Simple Object Access Protocol). Po obdržení kontrolní zprávy služba vrací specifické hodnoty, případné účinky akce jsou vyjádřeny změnami stavových proměnných.
Popis služby zahrnuje seznam akcí na které služba reaguje a seznam proměnných které charakterizují stav služby. Služba zveřejňuje aktualizace pokud dojde ke změně některé z těchto proměnných a kontrolní bod může odebírat tyto aktualizované informace. Aktualizace probíhá posláním zprávy o události. Zpráva o události obsahuje název jedné nebo více stavových proměnných a jejich aktualizované hodnoty. Tyto zprávy jsou vyjádřeny v XML a jsou formátovány pomocí GENA (General Event Notification Architecture). Při prvním přihlášení kontrolního bodu je odeslána speciální inicializační zpráva, obsahující jména a hodnoty všech proměnných, sloužící k inicializaci stavu služby na straně kontrolního bodu. Pro podporu více kontrolních bodů je zasíláni zpráv navrženo tak, aby měl každý kontrolní bod stejný přehled o všech změnách. Každý z odběratelů zpráv dostává všechny zprávy o událostech a jsou mu zaslány zprávy o všech proměnných které se změnily.
Finálním krokem v UPnP je prezentace. Pokud má zařízení URL k prezentaci, může kontrolní bod získat stránku z této URL, zobrazit ji v prohlížeči a případně umožnit uživateli ovládat zařízeni, či zjistit jeho stav. Stupeň této prezentace závisí na možnostech daného zařízení a jeho prezentační stránky.
UPnP AV je zkratka pro UPnP Audio a Video a je zahrnuta do skupiny UPnP standardů spravovaných DLNA (Digital Living Network Alliance), fórem výrobců a prodejců, kteří pracují v domácím zábavním průmyslu a nabízejí značku "DLNA CERTIFIED (Certifikováno DLNA) pro výrobky které dodržují doporučení pro interakci síťových zařízení vydané DLNA.
Členové DLNA fóra „sdílejí vizi spolupracující domácí sítě osobních počítačů, spotřební elektroniky a mobilních zařízení, vytvářející prostředí pro bezproblémové sdílení digitálních médií a služeb“. Zaměření DLNA spočívá ve vytvoření základu v podobě návodů a direktiv pro vývoj, založených na otevřených standardech. Dne 12. července 2006 oznámilo UPnP Fórum vydání zdokonalených AV specifikací, které představovala 2. verze UPnP AV specifikací.[2] Tato verze představila nové třídy MediaServer a MediaRender ve verzi 2.0, jejichž zdokonalení umožňovalo širší možnosti interakce mezi MediaServery a MediaRenderery od rozdílných výrobců.
Jedno z řešení pro NAT traversal, nazvané IGD (Internet Gateway Device) Protokol, je implementováno přes UPnP. Mnoho routerů a firewallů se používá jako Internetové brány, umožňující jakémukoliv lokálnímu UPnP zařízení provádět množství akcí, zahrnující získání externí IP adresy zařízení, zjištění existujícího namapování portů a namapovat či odebrat port. Namapováním portu může UPnP zařízení za Internetovou bránou vytvořit tunel v bráně a umožnit externí adrese spojení s interním klientem.
UPnP protokol neimplementuje žádnou autentizaci, takže UPnP zařízení musí implementovat jejich vlastní autentizační mechanismy, nebo implementovat Device Security Service. Hodně UPnP zařízení však postrádá autentizační mechanismy a standardně předpokládá, že lokální systémy a jejich uživatelé jsou plně důvěryhodní. Routery a firewally na kterých běží UPnP IGD protokol, jsou napadnutelné, protože kostra IGD implementace opomíjí standardní autentizační metodu. Například programy vytvořené v Adobe Flash jsou schopné generování specifických HTTP dotazů. Router s implementací UPnP IGD protokolu pak může být pomocí těchto dotazů kontrolován škodlivými stránkami, stačí, aby uživatel s routerem, na kterém je povoleno UPnP, tyto stránky pouze navštívil. Kód vložený do Flashového objektu na stránce pak může bez vědomí uživatele provést následující akce:
Tyto problémy se vztahují pouze k UPnP vlastnosti Firewall-hole-punching. Nevztahují se k routerům nepodporujícím UPnP, či k routerům s vypnutou podporou UPnP. Také ne všechny routery mají věci jako nastavení DNS řešeno přes UPnP, protože implementace mnoha vlastností specifikace pro routery s podporou UPnP je volitelná.
Kandidátem na nástupce UPnP je DPWS (Devices Profile for Web Services), který řeší mnoho problémů UPnP. Klient DPWS je například součástí Windows Vista. Další alternativou je návrh NAT-PMP předložený firmou Apple v roce 2005.
UPnP 1.1 bylo na podzim roku 2008 ratifikováno UPnP fórem jako nástupce UPnP 1.0.
V tomto článku byl použit překlad textu z článku Universal_Plug_and_Play na anglické Wikipedii.