Universal Plug and Play (UPnP) è un protocollo di rete creato dall'UPnP Forum. L'obiettivo della tecnologia UPnP è quello di permettere a diversi terminali di connettersi l'uno all'altro e di semplificare drasticamente l'utilizzo di reti domestiche (condivisione dati, comunicazioni e intrattenimento) e aziendali. Il termine UPnP deriva da Plug and play che in inglese significa letteralmente Inserisci e utilizza e che indica la possibilità di utilizzare un componente non appena viene connesso al computer o alla rete.
L'architettura UPnP permette la creazione di una rete Peer-to-peer tra personal computer e periferiche di rete, wireless e non. È un'architettura aperta e distribuita basata sui protocolli Internet (IP, TCP, UDP (porta 1900) e HTTP).
UPnP permette la comunicazione di due periferiche nella rete in cui sia presente una periferica di controllo (un server o un router).
Indipendenza dal mezzo trasmissivo: UPnP è compatibile con linee telefoniche, linee a onde convogliate, Ethernet, IrDA, Wi-Fi, Bluetooth e Firewire.
Nessun driver richiesto, in quanto vengono utilizzati protocolli comuni.
Controllo con interfaccia grafica. I dispositivi possono essere controllati da un'interfaccia web tramite un web browser.
Indipendenza dal sistema operativo e dai vari linguaggi di programmazione. Tutti i sistemi e i linguaggi possono essere utilizzati per gestire un dispositivo UPnP.
Tecnologie Internet-Based. UPnP è basato in particolare su IP, TCP, UDP, HTTP e XML.
L'architettura UPnP supporta zero-configuration, invisible networking, e la ricerca automatica di periferiche: ogni dispositivo può automaticamente connettersi a una rete, ottenere un indirizzo IP, annunciare il suo nome, offrire le sue funzionalità alla rete e conoscere la presenza e le funzionalità degli altri dispositivi. Non sono indispensabili server DHCP o DNS, ma vengono utilizzati se presenti. Inoltre i dispositivi possono lasciare la rete automaticamente senza inviare informazioni sullo stato.
invece per l'apertura delle porte vedi la voce instradamento, spiegato da wikipedia in questo
link