Universal Plug and Play (UPnP) este un set de protocoale de rețea de pe Internet Protocol (IP), care permite dispozitivelor conectate în rețea, cum ar fi computerele personale, imprimantele, gateway-urile de internet, punctele de acces Wi-Fi și dispozitivele mobile să își descopere reciproc prezența în rețea fără probleme și să stabilească servicii funcționale de rețea. UPnP este destinat în principal rețelelor rezidențiale (din locuințe) fără dispozitive din clasa întreprinderilor.
Protocolul UPnP presupune că rețeaua rulează protocolul de internet (IP), apoi folosește HTTP împreună cu IP pentru a oferi descrierea dispozitivului/serviciului, acțiuni, transfer de date și notificări ale evenimentelor. Cererile de căutare a dispozitivelor și anunțurile acestora sunt suportate prin rularea HTTP împreună cu UDP (portul 1900) folosind multicast (cunoscut sub numele de HTTPMU). Răspunsurile la cererile de căutare sunt trimise și prin UDP, dar sunt trimise, în acest caz, folosind unicast (cunoscut sub numele de HTTPU).
Conceptual, UPnP extinde tehnologia Plug and Play — o tehnologie concepută pentru atașarea dinamică a dispozitivelor direct la un computer — adăugând conectarea la rețea cu configurație zero (zero-configuration networking), fiind concepută pentru rețelele wireless ale locuințelor și ale birourilor mici. Dispozitivele UPnP sunt plug-and-play, în sensul că, atunci când sunt conectate la o rețea, stabilesc automat configurații funcționale cu alte dispozitive, eliminând necesitatea ca utilizatorii să configureze și să adauge manual dispozitive prin intermediul adreselor IP.
UPnP este în general considerat nepotrivit pentru implementarea în mediile de afaceri pe motive de economie, complexitate și consecvență: baza multicast îl face dificil de utilizat, consumând prea multe resurse de rețea în rețelele cu un număr mare de dispozitive; controalele de acces simplificate nu se potrivesc bine în mediile complexe.
Prezentare generală
Arhitectura UPnP permite conectarea reciprocă a dispozitivelor electronice de larg consum, a dispozitivelor mobile, a computerelor personale și a electrocasnicelor în rețea. Este un protocol distribuit, cu arhitectură deschisă, bazat pe standarde stabilite, cum ar fi Suita Protocolului Internet (TCP/IP), HTTP, XML și SOAP. Punctele de control UPnP (prescurtat CP) sunt dispozitive care utilizează protocoale UPnP pentru a controla dispozitivele controlate prin UPnP (prescurtat CD).
Arhitectura UPnP acceptă conectarea la rețea cu configurare zero (zero-configuration networking). Un dispozitiv compatibil cu UPnP de la orice furnizor : se poate conecta dinamic la o rețea, poate obține o adresă IP, își poate anunța numele (adresa IP), își poate promova sau transmite capabilitățile la cerere și poate afla despre prezența și capabilitățile altor dispozitive. Serverele Dynamic Host Configuration Protocol (DHCP) și Domain Name System (DNS) sunt opționale și sunt utilizate numai dacă sunt disponibile în rețea. Dispozitivele se pot deconecta automat de la rețea fără a lăsa informații despre stare.
UPnP a fost publicat oficial sub forma unui standard internațional în 73 de părți denumit ISO/IEC 29341 în decembrie 2008.
Alte caracteristici ale UPnP includ:
Independența față de medii și dispozitive Tehnologia UPnP poate rula pe multe medii care acceptă IP, inclusiv Ethernet, FireWire, Infraroșu (IrDA), cablu (G.hn) și frecvențe radio (Bluetooth, Wi-Fi). Nu este necesar suport special pentru driverele dispozitivelor; în schimb, se utilizează protocoale comune de rețea. Controlul interfeței utilizatorului (UI) Opțional, arhitectura UPnP permite dispozitivelor să prezinte o interfață a utilizatorului prin intermediul unui browser web (consultați Prezentarea mai jos). Independența față de sistemul de operare și de limbajul de programare Orice sistem de operare și orice limbaj de programare poate fi folosit pentru a construi produse UPnP. Stivele UPnP sunt disponibile pentru majoritatea platformelor și sistemelor de operare, atât în forme închise, cât și open-source. Control programatic Arhitectura UPnP permite, de asemenea, controlul programatic al aplicațiilor convenționale. Extensibilitate Fiecare produs UPnP poate avea servicii specifice dispozitivului suprapuse la arhitectura de bază. Pe lângă combinarea serviciilor definite de Forumul UPnP în diverse moduri, furnizorii își pot defini propriile tipuri de dispozitive și servicii, și pot extinde dispozitivele și serviciile standard cu acțiuni definite de furnizor, variabile de stare, elemente de structură a datelor și valori ale variabilelor.
Protocol
UPnP utilizează tehnologii comune ale internetului. Acesta presupune că rețeaua trebuie să ruleze Protocolul Internet (IP) și apoi utilizează HTTP, SOAP și XML pe lângă IP, pentru a oferi descrierea dispozitivului/serviciului, acțiuni, transfer de date și generarea evenimentelor. Cererile de căutare a dispozitivelor și anunțurile sunt susținute prin rularea HTTP împreună cu UDP folosind multicast (combinație cunoscută sub numele de HTTPMU). Răspunsurile la cererile de căutare sunt trimise, de asemenea, prin UDP, dar sunt trimise în schimb folosind unicast (combinație cunoscută sub numele de HTTPU). UPnP folosește UDP datorită costului redus, fiindcă UDP nu necesită confirmarea datelor primite și retransmiterea pachetelor corupte. Specificațiile HTTPU și HTTPMU au fost inițial trimise ca , dar au expirat în 2001; aceste specificații au fost integrate ulterior în specificațiile UPnP propriu-zise.
UPnP utilizează portul UDP 1900, iar toate porturile TCP utilizate sunt derivate din mesajele „activ” și „de răspuns”.
Atribuirea adreselor Fundamentul rețelelor UPnP este atribuirea adreselor IP. Fiecare dispozitiv trebuie să implementeze un client DHCP și să caute un server DHCP atunci când dispozitivul este conectat pentru prima dată la rețea. Dacă nu este disponibil niciun server DHCP, dispozitivul trebuie să își atribuie o adresă. Procesul prin care un dispozitiv UPnP își atribuie o adresă este cunoscut în Arhitectura Dispozitivelor UPnP sub denumirea de AutoIP. În Arhitectura Dispozitivelor UPnP Versiunea 1.0, AutoIP este definit în cadrul specificației în sine; în Arhitectura Dispozitivelor UPnP Versiunea 1.1, AutoIP face referire la IETF. Dacă în timpul tranzacției DHCP, dispozitivul obține un nume de domeniu, de exemplu, printr-un server DNS sau prin redirecționare DNS, dispozitivul ar trebui să utilizeze acel nume în operațiunile ulterioare de rețea; în caz contrar, dispozitivul ar trebui să utilizeze adresa sa IP.
Descoperire Odată ce un dispozitiv a stabilit o adresă IP, următorul pas în protocolul UPnP este descoperirea. Protocolul de descoperire UPnP este cunoscut sub numele de Simple Service Discovery Protocol (SSDP). Când un dispozitiv este adăugat la rețea, SSDP permite acelui dispozitiv să își promoveze serviciile către punctele de control din rețea. Acest lucru este realizat prin trimiterea de mesaje SSDP "alive" (tradus din engl. "în viață"). Când un punct de control este adăugat la rețea, SSDP permite acelui punct de control să caute activ dispozitivele de interes în rețea sau să asculte pasiv mesajele SSDP "alive" ale dispozitivelor. Schimbul fundamental este un mesaj de descoperire care conține câteva specificații esențiale despre dispozitiv sau unul dintre serviciile acestuia, de exemplu, tipul, identificatorul și un indicator (locația de rețea), care duce către informații mai detaliate.
Descriere După ce un punct de control a descoperit un dispozitiv, punctul de control știe, momentan, foarte puține lucruri despre dispozitiv. Pentru ca punctul de control să afle mai multe despre dispozitiv și capacitățile acestuia sau să interacționeze cu dispozitivul, acesta trebuie să preia descrierea dispozitivului din locația (adresa URL) furnizată de dispozitiv în mesajul de descoperire. Descrierea dispozitivului UPnP este exprimată în XML și include informații specifice producătorului, cum ar fi numele și numărul modelului, numărul de serie, numele producătorului, adrese URL (de prezentare) către site-uri web specifice furnizorului etc. Descrierea include, de asemenea, o listă a oricăror servicii încorporate. Pentru fiecare serviciu, documentul denumit "Descriere dispozitiv" listează adresele URL pentru control, evenimente și descrierea serviciului. Fiecare descriere a unui serviciu include o listă de comenzi sau acțiuni la care serviciul răspunde și parametri sau argumente pentru fiecare acțiune; descrierea unui serviciu include și o listă de variabile; aceste variabile modelează starea serviciului la momentul execuției și sunt descrise în funcție de tipul lor de date, intervalul și caracteristicile evenimentului.
Control După ce a recuperat o descriere a dispozitivului, punctul de control poate trimite acțiuni către serviciul dispozitivului. Pentru a face acest lucru, un punct de control trimite un mesaj de control adecvat către adresa URL de control pentru serviciu (furnizată în descrierea dispozitivului). Mesajele de control sunt exprimate și în XML folosind protocolul . La fel ca apelurile de funcții, serviciul returnează orice valori specifice acțiunii ca răspuns la mesajul de control. Efectele acțiunii, dacă există, sunt modelate prin modificări ale variabilelor care descriu starea serviciului în timpul execuției.
Notificarea evenimentelor O altă capacitate a rețelelor UPnP este notificarea evenimentelor sau eventingul. Protocolul de notificare al evenimentelor definit în Arhitectura Dispozitivelor UPnP este cunoscut sub numele de Arhitectură Generală de Notificare a Evenimentelor (GENA). O descriere UPnP pentru un serviciu include o listă de acțiuni la care răspunde serviciul și o listă de variabile care modelează starea serviciului la momentul execuției. Serviciul publică actualizări atunci când aceste variabile se modifică, iar un punct de control se poate abona pentru a primi aceste informații. Serviciul publică actualizări prin trimiterea de mesaje de eveniment. Mesajele de eveniment conțin numele uneia sau mai multor variabile de stare și valoarea curentă a acelor variabile. Aceste mesaje sunt exprimate, de asemenea, în XML. Un mesaj special de eveniment inițial este trimis atunci când un punct de control se abonează pentru prima dată; acest mesaj de eveniment conține numele și valorile tuturor variabilelor participante la eveniment și permite abonatului să își inițializeze modelul stării serviciului. Pentru a susține scenarii cu puncte de control multiple, eventingul este conceput pentru a menține toate punctele de control informate în mod egal despre efectele oricărei acțiuni. Prin urmare, tuturor abonaților li se trimit toate mesajele de eveniment, abonații primesc mesaje de eveniment pentru toate variabilele „participante la eveniment” care s-au modificat, iar mesajele de eveniment sunt trimise indiferent de motivul pentru care s-a modificat variabila de stare (fie ca răspuns la o acțiune solicitată, fie pentru că starea pe care o are serviciul s-a modificat).
Prezentare Ultimul pas în protocolul UPnP este prezentarea. Dacă un dispozitiv are o adresă URL destinată pentru prezentare, atunci punctul de control poate prelua o pagină de la această adresă URL, poate încărca pagina într-un browser web și, în funcție de capacitățile paginii, poate permite unui utilizator să controleze dispozitivul și/sau să vizualizeze starea acestuia. Gradul în care fiecare dintre aceste acțiuni pot fi realizate depinde de capacitățile specifice ale paginii de prezentare și ale dispozitivului.
Standarde audio/video