vignette|Logo d'Universal Plug and Play. L’Universal Plug and Play (UPnP) est un ensemble de protocoles réseau promulgué par l'UPnP Forum.
Le but de l'UPnP est de permettre à des périphériques de se connecter aisément et de simplifier la mise en œuvre de réseaux à la maison (partages de fichiers, communications, divertissements) ou dans les entreprises. UPnP le permet en définissant et en publiant les protocoles de commande UPnP au-dessus des standards de communication d'Internet.
Le terme UPnP est dérivé de Plug and Play, une technologie pour attacher dynamiquement les périphériques à l'ordinateur.
La compatibilité de matériels avec l'UPnP s'est développé durant les années 2000. Par exemple en France, chez le fournisseur d'accès à Internet (FAI) Orange, c'est à partir de la Livebox 2, sortie en 2009, que la box de ce FAI a inclus la fonction UPnP..
Présentation
L'architecture UPnPArchitecture UPnP - upnp.org (fichier compressé de ) permet une mise en réseau poste à poste d'ordinateurs personnels, d'appareils réseaux et de périphériques sans fil. C'est une architecture ouverte, distribuée, basée sur les protocoles TCP/IP, UDP et HTTP.
UPnP permet la communication entre deux dispositifs quelconques sur le réseau local. Parmi ses possibilités :
Indépendance vis-à-vis des médias et des périphériques : UPnP peut être utilisé sur plusieurs supports dont le courant porteur en ligne, l'Ethernet, l'IrDA, les radiofréquences (Wi-Fi, Bluetooth), FireWire, MoCA. Aucun pilote spécifique n'est utilisé, des protocoles communs leur sont préférés. Contrôle par interface utilisateur (UI Control). L'architecture d'UPnP permet le contrôle des dispositifs par une interface utilisateur visible depuis un navigateur web. Indépendance vis-à-vis du système d'exploitation et du langage de programmation. Tout système d'exploitation et tout langage de programmation peut être utilisé pour créer des produits UPnP. UPnP ne spécifie ni ne contraint d'API pour les applications exécutées sur des points de contrôle ; les fournisseurs de systèmes d'exploitation peuvent créer les API dont les clients ont besoin. Basé sur les technologies internet : entre autres IP, TCP, UDP, HTTP et XML. Contrôle applicatif. L'architecture d'UPnP permet également un contrôle par des applications conventionnelles, des programmes. Extensibilité. Chaque produit UPnP peut implémenter des services spécifiques à ses périphériques au-dessus de l'architecture de base.
L'architecture UPnP supporte la zéro configuration, le et la découverte automatique pour plusieurs catégories de périphériques. Chaque périphérique peut joindre dynamiquement un réseau, obtenir une adresse IP, annoncer son nom, préciser ses possibilités sur simple demande et interroger les autres périphériques sur leur présence et leurs capacités. Les serveurs DHCP et DNS sont facultatifs et ne sont utilisés que s'ils sont présents sur le réseau. Les périphériques peuvent se déconnecter du réseau automatiquement sans laisser d'informations erronées.
La base du réseau UPnP est l'adressage IP. Chaque périphérique doit avoir un client DHCP et rechercher un serveur DHCP quand il est connecté pour la première fois au réseau. Si aucun serveur DHCP n'est disponible, c'est-à-dire que le réseau n'est pas géré, le périphérique s'assigne lui-même une adresse. Si, durant les transactions DHCP, le périphérique obtient un nom de domaine, par exemple, par un serveur DNS ou via le DNS forwarding, le périphérique devrait utiliser ce nom pour chaque opération réseau sinon il doit utiliser son adresse IP.
Le protocole
Découverte (« Discovery ») Pour une adresse IP donnée, la première étape de la gestion d'un réseau UPnP est la découverte de services.
Quand un périphérique est connecté au réseau, le protocole de découverte d'UPnP permet à ce dispositif de prévenir les points de contrôle du réseau de ses services. Parallèlement, quand un point de contrôle est connecté au réseau, le protocole de découverte permet à ce point de contrôle de rechercher les dispositifs intéressants sur le réseau. Les échanges fondamentaux dans ces deux cas, sont des messages contenant les informations spécifiques essentielles sur le dispositif et un de ses services, comme son type, son identifiant ou un pointeur vers des informations plus détaillées. Le protocole de découverte UPnP est basé sur SSDP.
Description L'étape suivante dans un réseau UPnP est la description. Quand un point de contrôle a découvert un dispositif, il ne lui connaît que peu d'informations.
Pour qu'un point de contrôle puisse en apprendre davantage sur le dispositif et ses possibilités, ou pour interagir avec celui-ci, il doit récupérer la description du dispositif depuis l'URL fournie par celui-ci dans le message de découverte.
La description UPnP d'un dispositif est exprimée en XML et comprend des informations spécifiques au fournisseur du dispositif comme le nom du modèle, le numéro de série ou le nom du fournisseur, des URL vers les sites web des fournisseurs. Ces descriptions incluent également une liste des dispositifs embarqués ou services ainsi que les URL pour les commandes, les contrôles ou les présentations. Pour chaque service, la description inclut une liste de commandes ou d'actions auxquelles le service répond et les paramètres ou arguments pour chacune de ces actions.
La description de service inclut également la liste des variables décrivant l'état de ce service pendant son exécution en termes de types de données, de plage de valeurs ou de caractéristiques d'évènements.
Contrôle (« Control ») L'étape suivante est le contrôle. Après qu'un point de contrôle a reçu une description du dispositif, celui-ci peut envoyer des actions au service d'un dispositif.
Pour cela, un point de contrôle envoie un message de contrôle approprié à l'URL de contrôle du service (fournie par la description du dispositif). Les messages de contrôle sont également décrits en XML en utilisant SOAP. Comme tout appel de fonction, en réponse aux messages de contrôle, les services renvoient des valeurs spécifiques aux actions. Les effets de ces actions, le cas échéant, sont visibles par le changement des variables qui décrivent l'état d'exécution du service.
Notification d'événements (« Event notification ») Après le contrôle vient la notification d'évènement. Une description de service UPnP inclut une liste d'actions auxquelles le service répond et une liste des variables qui caractérisent le service à l'exécution. Quand ses variables changent, le service publie des mises à jour.
Les mises à jour sont des messages XML de type contenant le nom des variables et leurs valeurs. Les points de contrôles peuvent s'abonner pour les recevoir : un message initial particulier est envoyé quand un point de contrôle s'inscrit, ce message contient les noms et les valeurs de toutes les variables pour permettre à l'abonné de s'initialiser. Pour supporter les scénarios de réseaux à plusieurs points de contrôle, la notification est prévue pour que tous les points de contrôles soient informés uniformément des effets de chaque action. En conséquence, tout abonné reçoit des messages d'évènements pour toutes les variables « notifiantes » qui ont changé et des messages d'événements sont envoyés, quelle que soit la raison pour laquelle l'état de la variable a changé (que le changement soit le résultat d'une action ou parce que l'état du service a changé).
Présentation La dernière étape d'un réseau UPnP est la présentation. Si un dispositif a une URL de présentation, un point de contrôle peut recevoir une page depuis cette URL, charger la page dans un navigateur web et, selon les capacités de la page, permettre à un utilisateur de contrôler le dispositif et/ou de voir l'état d'un dispositif. Les possibilités d'une telle page peuvent changer en fonction des capacités du périphérique qui présente la page à l'utilisateur.
Standards audio et vidéo (« UPnP AV standards ») UPnP AV (pour UPnP Audio and Video) est un groupe à l'intérieur du standard UPnP supervisé par la DLNA (anciennement : Digital Home Working Group), qui est un regroupement de constructeurs et vendeurs de l'industrie du divertissement à la maison (home entertainment) proposant le label « DLNA CERTIFIED » (« Certifié DLNA ») pour les produits qui respectent leur guide d'interopérabilité pour périphériques réseau.
Les membres du forum DLNA et
Le , le Forum UPnP a annoncé la disponibilité des « Spécifications étendues AV », cette réalisation est la version 2 des spécifications Audio et Vidéo UPnP Forum Releases Enhanced AV Specifications Taking Home Network to the Next Level - upnp.org, 12 juillet 2006 , avec de nouvelles classes MediaServer version 2.0 et un MediaRenderer version 2.0. Ces perfectionnements sont créés par l'ajout de possibilités aux classes de dispositifs MediaServer et MediaRenderer permettant un meilleur niveau d'interopérabilité entre les MediaServers et MediaRenderers de différents constructeurs.
Les composants audio et vidéo d'UPnP AV UPnP MediaServer DCP : le serveur UPnP (un dispositif « esclave ») qui partage ses médias (comme l'audio, la vidéo, des images) avec les clients UPnP du réseau. UPnP MediaServer ControlPoint : le client UPnP (un dispositif « maitre ») qui peut détecter automatiquement les serveurs UPnP du réseau pour rechercher et visionner leurs fichiers. UPnP MediaRenderer DMR : dispositif « esclave » pouvant afficher du contenu. UPnP MediaRenderer DMP : dispositif pouvant afficher du contenu, mais pas en mode esclave. UPnP RenderingControl DCP : dispositif permettant de contrôler les paramètres de rendu d'un contenu : volume, brillance ... UPnP Remote User Interface (RUI) client/server : clients et serveurs UPnP qui peuvent envoyer des commandes sur le réseau (comme enregistrer, programmer, lecture, pause, stop, etc.). Web4CE (CEA 2014) for UPnP Remote UI CEA: Technology & Standards - Consumer Electronics Association - Standard CEA-2014 conçu par le Home Network Committee R7 de la Consumer Electronics Association. Protocole basé sur des pages web pour les Remote User Interfaces des réseaux UPnP et Internet (Web4CE). Ce standard permet à un réseau résidentiel UPnP de fournir son interface (affichage et points de contrôles) comme une page web pour l'afficher sur n'importe quel périphérique connecté. C'est-à-dire que vous pouvez contrôler les périphériques du réseau résidentiel avec n'importe quelle méthode de communication basée sur la navigation web pour les dispositifs CE sur un réseau résidentiel utilisant ethernet et une version spéciale de HTML appelé . QoS (Quality of Service) - La QoS est un service important (mais non obligatoire) pour l'utilisation d'UPnP AV. QoS se réfère au contrôle des mécanismes proposant différentes priorités aux différents utilisateurs des flux de données, ou garantit un certain niveau de performance à un flux de données en accord avec les requêtes des applications. Étant donné que l'UPnP AV est généralement utilisé pour délivrer des médias en lecture en continu, les garanties QoS sont spécialement importantes si le réseau a une capacité limitée comme les réseaux publics comme l'Internet. QoS pour l'UPnP consiste en services de Sink Device (dispositif client récepteur) et Source Device (dispositif source émetteur). Avec des classes comme Traffic Class qui indique le type de trafic dans le flux de données (par exemple : audio ou vidéo). Traffic identifier (TID) qui identifie les paquets uniques de données dans le flux. Traffic Specification (TSPEC) qui contient les paramètres définissant les caractéristiques du trafic du flux (par exemple les opérations requises et l'ordonnancement). Traffic Stream (TS) qui est un flux unidirectionnel de données qui prend son origine à la source et se termine aux récepteurs d'un ou plusieurs dispositifs (sinks).
Traduction des adresses UPnP utilise le protocole (IGD) pour la traduction des adresses réseaux ().