UPnP:修订间差异
Luckas-bot(留言 | 贡献) 小 機器人 新增: ca:Universal Plug and Play |
小 添加摘要图片 |
||
(未显示28个用户的44个中间版本) | |||
第3行: | 第3行: | ||
|G2=Windows |
|G2=Windows |
||
}} |
}} |
||
'''通用即插即用'''(UPnP)是由[[通用即插即用论坛]](UPnP™ Forum)提出的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。UPnP 通过定义和发布基于开放、因特网通讯网协议标准的 UPnP 设备控制协议来实现这一目标。 |
|||
[[File:UPnP logo.png|thumb|UPnP 图标]] |
|||
UPnP 这个词是从[[隨插即用]](Plug-and-play)衍生而来的。隨插即用是一种热拔插技术。 |
|||
'''通用即插即用'''({{lang-en|Universal Plug and Play}},简称'''UPnP''')是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。UPnP通过定义和发布基于开放、因特网通讯网协议标准的UPnP设备控制协议来实现这一目标。 |
|||
== 概述 == |
|||
UPnP这个概念是从[[隨插即用]](Plug-and-play)衍生而来的,隨插即用是一种热拔插技术。 |
|||
UPnP 体系允许 PC 间的点对点连接、网际互连和无线设备。它是一种基于 TCP/IP、UDP 和 HTTP 的分布式、开放体系。 |
|||
== 概述 == |
|||
UPnP 使得任意两个设备能在 LAN 控制设备的管理下相互通信。其特性包括: |
|||
UPnP体系允许PC间的点对点连接、网际互连和无线设备。它是一种基于[[TCP/IP]]、[[用户数据报协议|UDP]]和[[HTTP]]的分布式、开放体系。 |
|||
UPnP使得任意两个设备能在[[區域網路|LAN]]控制设备的管理下相互通信。其特性包括: |
|||
* 媒体和设备独立。UPnP 技术可以应用在许多媒体上,包括电话线、电线(PLC)、以太网、IR(IrDA)、RF(Wi-Fi,蓝牙)和Firewire(1394)。无需任务设备驱动;而是采用共同的协议。 |
|||
* 用户界面(UI)控制。UPnP 技术使得设备厂商可以通过网页浏览器来控制设备並进行交互。 |
|||
* 操作系统和程序语言独立。任何操作系统和程序语言均可以用于构建 UPnP产品。UPnP 并没有设定或限制运行于控制设备上的应用程序 API;OS厂商可以建立满 足他们客户需求的 API。UPnP使得厂商可以像开发常规应用程序一样来控制设备 UI 和交互。 |
|||
* 基于因特网技术。UPnP 构建于 IP, TCP, UDP, HTTP,和 XML 等许多协议之上。 |
|||
* 编程控制。UPnP 体系同时支持常规应用程序编程控制。 |
|||
* 扩展性。每个 UPnP 设备都可以有构建于基本体系之上、与具体设备相关的服务。 |
|||
* 传输介质和设备独立。UPnP技术可以应用在许多媒体上,包括[[电话线]]、[[电线]]([[電力線通信]]PLC)、[[以太网]]、[[紅外通訊技術]](IrDA)、[[無線電]]([[Wi-Fi]],[[蓝牙]])和[[Firewire]](1394)。无需任务设备驱动;而是采用共同的协议。 |
|||
UPnP 支持零配置,"看不见的网络" 和自动检测;任何设备能自动加入一个网络, |
|||
* [[用户界面]](UI)控制。UPnP技术使得设备厂商可以通过网页浏览器来控制设备並进行交互。 |
|||
获取一个 IP 地址,宣布自己的名字,根据请求检查自身功能以及检测出其它设备 |
|||
* 操作系统和程序语言独立。任何操作系统和程序语言均可以用于构建UPnP产品。UPnP并没有设定或限制运行于控制设备上的应用程序[[API]];OS厂商可以建立满足他们客户需求的API。UPnP使得厂商可以像开发常规应用程序一样来控制设备UI和交互。 |
|||
和它们的功能。DHCP 和 DNS 服务是可选的,并只有它们在网络上存在的时候才会 |
|||
* 基于因特网技术。UPnP构建于IP、TCP、UDP、HTTP,和[[XML]]等许多协议之上。 |
|||
使用。设备可以自动离开网络而不会遗留下任何不需要的状态信息。 |
|||
* 编程控制。UPnP体系同时支持常规应用程序编程控制。 |
|||
* 扩展性。每个UPnP设备都可以有构建于基本体系之上、与具体设备相关的服务。 |
|||
UPnP支持零配置,"看不见的网络"和自动检测;任何设备能自动加入一个网络,获取一个IP地址,广播自己的名字,根据请求检查自身功能以及检测出其它设备和它们的功能。[[DHCP]]和[[DNS]]服务是可选的,并只有它们在网络上存在的时候才会使用。设备可以自动离开网络而不会遗留下任何不需要的状态信息。 |
|||
UPnP 的基础是 IP 地址解析。每一个设备都应当有一个 DHCP 客户端并在连入网 |
|||
络的时候自动搜索 DHCP 服务。如果没有找到 DHCP 服务,也就是说网络是缺乏管 |
|||
理状态,那么设备必须给自己设定一个地址。如果在和 |
UPnP的基础是IP地址解析。每一个设备都应当有一个DHCP客户端并在连入网络的时候自动搜索DHCP服务。如果没有找到DHCP服务,也就是说网络是缺乏管理状态,那么设备必须给自己设定一个地址。如果在和DHCP服务器交互的过程中,设备获得了一个域名(比如通过DNS服务器或者DNS传递),那么它应当在接下来的网络操作中使用这个域名;否则,设备应当使用它的IP地址。 |
||
设备获得了一个域名(比如通过 DNS 服务器或者 DNS 传递),那么它应当在接下 |
|||
来的网络操作中使用这个域名;否则,设备应当使用它的 IP 地址。 |
|||
== 协议 == |
== 协议 == |
||
=== 发现 === |
=== 发现 === |
||
给定一个IP地址,UPnP网络中的第一步是发现。UPnP的發現協議,是基于简单服务发现协议([[SSDP]])。当一个设备被加入到网络中,UPnP检测协议允许该设备向控制点广播自己的服务。类似地,当一个控制点加入到网络中的时候,它也能够搜索到网络中存在的、感兴趣的设备相关信息。裝置之間交換的發現訊息,主要包含此裝置的必要資訊以及其所提供的一項服務,例如裝置的類型、標識和指向詳細資訊的連結(網路位置)。 |
|||
=== 描述 === |
|||
给定一个IP地址,UPnP 网络中的第一步是发现。当一个设备被加入到网络中, |
|||
UPnP网络的下一步是描述。当一个控制点检测到一个设备时,它对该设备仍然知之甚少。为了使控制点了解更多关于该设备的信息或者和设备进行交互,控制点必须从设备发出的检测信息中包含的URL获取更多的信息。某个设备的UPnP描述是XML的方式,包括品牌、厂商相关信息,如型号名和编号、序列号、厂商名、品牌相关URL等。描述还包括一个嵌入式设备和服务列表,以及控制、事件传递和存在相关的URL。对于每种设备,描述还包括一个命令或动作列表,包括响应何种服务,针对各种动作的参数;这些变量描述出运行时设备的状态信息,并通过它们的数据类型、范围和事件来进行描述。 |
|||
UPnP检测协议允许该设备向控制点广播自己的服务。类似地,当一个控制点加入到 |
|||
网络中的时候,它也能够搜索到网络中存在的、感兴趣的设备相关信息。这两种类 |
|||
型的基础交互是一种仅包含少量、重要相关设备信息或者它的某个服务。比如,类 |
|||
型、标识和指向更详细信息的链接。UPnP 检测协议是基于简单服务发现协议([[SSDP]])的。 |
|||
=== |
=== 控制 === |
||
UPnP网络的下一步是控制。当一个控制点获取到设备描述信息之后,它就可以向该设备发送指令了。为了实现此,控制点发送一个合适的控制消息至服务相关控制URL(包含在设备描述中)。控制消息也是通过简单对象访问协议([[SOAP]])用XML来描述的。类似函数调用,服务通过返回动作相关的值来回应控制消息。动作的效果,如果有的话,会反应在用于刻画运行中服务的相关变量。 |
|||
=== 事件通知 === |
|||
UPnP 网络的下一步是描述。当一个控制点检测到一个设备时,它对该设备仍然知 |
|||
下一步是事件通知。一个UPnP描述包括一组命令列表和刻画运行时状态信息的变量。服务在这些变量改变的时候进行更新,控制点可以进行订阅以获取相关改变。服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它们的当前数值。这些消息也是采用XML的格式,用{{Tsl|en|GENA|通用事件通知体系}}进行格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送,它包括服务相关的变量名及值。为了支持多个控制点并存的情形,事件通知被设计成对于所有的控制点都平行通知。因此,所有的订阅者同等地收到所有事件通知。 |
|||
甚少。为了使控制点了解更多关于该设备的信息或者和设备进行交互,控制点必须 |
|||
从设备发出的检测信息中包含的 URL 获取更多的信息。某个设备的 UPnP 描述是 |
|||
XML 的方式,包括品牌、厂商相关信息,如型号名和编号、序列号、厂商名、品牌 |
|||
相关 URL 等。描述还包括一个嵌入式设备和服务列表,以及控制、事件传递和存 |
|||
在相关的 URL。对于每种设备,描述还包括一个命令或动作列表,包括响应何种服 |
|||
务,针对各种动作的参数;这些变量描述出运行时设备的状态信息,并通过它们的 |
|||
数据类型、范围和事件来进行描述。 |
|||
=== |
=== 存在 === |
||
最后一步是存在。如果设备带有存在URL,那么控制点可以通过它来获取设备存在信息,即在浏览器中加载URL,并允许用户来进行相关控制或查看操作。具体支持哪些操作则是由存在页面和设备完成的。 |
|||
=== NAT穿透 === |
|||
UPnP 网络的下一步是控制。当一个控制点获取到设备描述信息之后,它就可以向该 |
|||
UPnP为NAT([[网络地址转换]])穿透带来了一个解决方案:[[互联网网关设备协议]](IGD)。[[NAT穿透]]允许UPnP数据包在没有用户交互的情况下,无障碍的通过[[路由器]]或者[[防火墙]](假如那个[[路由器]]或者[[防火墙]]支持NAT)。 |
|||
设备发送指令了。为了实现此,控制点发送一个合适的控制消息至服务相关控制 |
|||
URL(包含在设备描述中)。控制消息也是通过简单对象访问协议(SOAP)用 XML 来描 |
|||
述的。类似函数调用,服务器通过返回动作相关的值来回应控制消息。动作的效果, |
|||
如果有的话,会反应在用于刻画运行中服务的相关变量。 |
|||
== 未来的发展 == |
|||
===UPnP影音媒体服务器=== |
|||
UPnP影音媒体服务器存储和共享数字媒体,比如:图片、电影或是音乐。 |
|||
下一步是事件通知。一个 UPnP 描述包括一组命令列表和刻画运行时状态信息的变 |
|||
量。服务在这些变量改变的时候进行更新,控制点可以进行订阅以获取相关改变。 |
|||
服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它 |
|||
们的当前数值。这些消息也是采用 XML 的格式,用通用事件通知体系(GENA)进行 |
|||
格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送,它包括服务相 |
|||
关的变量名及值。为了支持多个控制点并存的情形,事件通知被设计成对于所有的 |
|||
控制点都平行通知。因此,所有的订阅者同等地收到所有事件通知。 |
|||
=== 存在 === |
|||
最后一步是存在。如果设备带有存在 URL,那么控制点可以通过它来获取设备存在 |
|||
信息,即在浏览器中加载 URL,并允许用户来进行相关控制或查看操作。具体支持 |
|||
哪些操作则是由存在页面和设备完成的。 |
|||
===NAT traversal=== |
|||
UPnP为[[NAT traversal|NAT(网络地址转换)traversal]]带来了一个解决方案:[[Internet Gateway Device|IGD(Internet 网关设备)]] 协议。NAT traversal 允许UpnP数据包在没有用户交互的情况下,无障碍的通过[[路由器]] 或者 [[防火墙]],(假如那个[[路由器]] 或者 [[防火墙]] 支持 [[网络地址转换|NAT]])。。 |
|||
==未来的发展== |
|||
==UPnP 影音媒体服务器== |
|||
UPnP 影音媒体服务器存储和共享数字媒体,比如:图片、电影或是音乐。 |
|||
== 參考資料 == |
== 參考資料 == |
||
{{refbegin}} |
|||
* [http://upnp.org/standardizeddcps/default.asp UPnP™ Forum Universal Plug and Play Device Standards] |
|||
* [http://upnp.org/standardizeddcps/default.asp UPnP™ Forum Universal Plug and Play Device Standards] {{Wayback|url=http://upnp.org/standardizeddcps/default.asp |date=20210330004731 }} |
|||
* [[Golden G. Richard]]:<cite>Service and Device Discovery : Protocols and Programming</cite>, McGraw-Hill Professional, ISBN 0-07-137959-2 |
* [[Golden G. Richard]]:<cite>Service and Device Discovery : Protocols and Programming</cite>, McGraw-Hill Professional, ISBN 0-07-137959-2 |
||
* [[Michael Jeronimo]],[[Jack Weast]]:<cite>UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play</cite>, Intel Press, ISBN 0-9717861-1-9 |
* [[Michael Jeronimo]],[[Jack Weast]]:<cite>UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play</cite>, Intel Press, ISBN 0-9717861-1-9 |
||
{{refend}} |
|||
<references/> |
|||
== 外部連結 == |
== 外部連結 == |
||
===文件=== |
=== 文件 === |
||
* [http://www.upnp.org UPnP™ Forum] |
* [http://www.upnp.org UPnP™ Forum]{{Wayback|url=http://www.upnp.org/ |date=20050708020002 }} |
||
* [http://www.dlna.org DLNA (Digital Living Network Alliance)] |
* [http://www.dlna.org DLNA (Digital Living Network Alliance)] {{Wayback|url=http://www.dlna.org/ |date=20220119145435 }} |
||
* [http://developer.java.sun.com/developer/technicalArticles/jini/JiniVision/jiniology.html The Jini, Vision] |
* [https://web.archive.org/web/20031011210932/http://developer.java.sun.com/developer/technicalArticles/jini/JiniVision/jiniology.html The Jini, Vision] |
||
* [ |
* [https://web.archive.org/web/20070311050352/http://cswl.com/whitepapers/upnp-devices.html technique comparison] |
||
* [http://www.microsoft.com/whdc/device/ |
* [https://web.archive.org/web/20071006001030/http://www.microsoft.com/whdc/device/netAttach/UPnP/default.mspx Microsoft WHDC UPnP webpage & links] |
||
* [http://www.microsoft.com/technet/prodtechnol/winxppro/evaluate/upnpxp.mspx Universal Plug and Play in Windows XP] |
* [https://web.archive.org/web/20070504044032/http://www.microsoft.com/technet/prodtechnol/winxppro/evaluate/upnpxp.mspx Universal Plug and Play in Windows XP] |
||
=== 新聞 === |
=== 新聞 === |
||
* [http://www.theinquirer.net/default.aspx?article=38860 Security firm predicts Microsoft Windows UPnP exploit by the end of the week] at The Inquirer (Wednesday, 11 April 2007) |
* [https://web.archive.org/web/20070716123550/http://www.theinquirer.net/default.aspx?article=38860 Security firm predicts Microsoft Windows UPnP exploit by the end of the week] at The Inquirer (Wednesday, 11 April 2007) |
||
** [http://www.microsoft.com/athome/security/update/bulletins/200704.mspx Microsoft security updates for April 2007] to fix the above [[Microsoft Windows]] UPnP security issue. |
** [https://web.archive.org/web/20070515102455/http://www.microsoft.com/athome/security/update/bulletins/200704.mspx Microsoft security updates for April 2007] to fix the above [[Microsoft Windows]] UPnP security issue. |
||
[[Category:网络协议]] |
[[Category:网络协议]] |
||
[[ca:Universal Plug and Play]] |
|||
[[cs:Universal Plug and Play]] |
|||
[[da:Universal Plug and Play]] |
|||
[[de:Universal Plug and Play]] |
|||
[[en:Universal Plug and Play]] |
|||
[[es:Universal Plug and Play]] |
|||
[[fi:UPnP]] |
|||
[[fr:Universal Plug and Play]] |
|||
[[hu:Universal Plug and Play]] |
|||
[[it:Universal Plug and Play]] |
|||
[[ja:Universal Plug and Play]] |
|||
[[ko:유니버설 플러그 앤 플레이]] |
|||
[[lt:Universal Plug and Play]] |
|||
[[nl:UPnP]] |
|||
[[no:UPnP]] |
|||
[[pl:UPnP]] |
|||
[[pt:Upnp]] |
|||
[[ru:UPnP]] |
|||
[[sv:UPnP]] |
|||
[[tr:UPnP]] |
2024年3月7日 (四) 00:54的最新版本
通用即插即用(英語:Universal Plug and Play,简称UPnP)是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。UPnP通过定义和发布基于开放、因特网通讯网协议标准的UPnP设备控制协议来实现这一目标。
UPnP这个概念是从隨插即用(Plug-and-play)衍生而来的,隨插即用是一种热拔插技术。
概述
[编辑]UPnP体系允许PC间的点对点连接、网际互连和无线设备。它是一种基于TCP/IP、UDP和HTTP的分布式、开放体系。
UPnP使得任意两个设备能在LAN控制设备的管理下相互通信。其特性包括:
- 传输介质和设备独立。UPnP技术可以应用在许多媒体上,包括电话线、电线(電力線通信PLC)、以太网、紅外通訊技術(IrDA)、無線電(Wi-Fi,蓝牙)和Firewire(1394)。无需任务设备驱动;而是采用共同的协议。
- 用户界面(UI)控制。UPnP技术使得设备厂商可以通过网页浏览器来控制设备並进行交互。
- 操作系统和程序语言独立。任何操作系统和程序语言均可以用于构建UPnP产品。UPnP并没有设定或限制运行于控制设备上的应用程序API;OS厂商可以建立满足他们客户需求的API。UPnP使得厂商可以像开发常规应用程序一样来控制设备UI和交互。
- 基于因特网技术。UPnP构建于IP、TCP、UDP、HTTP,和XML等许多协议之上。
- 编程控制。UPnP体系同时支持常规应用程序编程控制。
- 扩展性。每个UPnP设备都可以有构建于基本体系之上、与具体设备相关的服务。
UPnP支持零配置,"看不见的网络"和自动检测;任何设备能自动加入一个网络,获取一个IP地址,广播自己的名字,根据请求检查自身功能以及检测出其它设备和它们的功能。DHCP和DNS服务是可选的,并只有它们在网络上存在的时候才会使用。设备可以自动离开网络而不会遗留下任何不需要的状态信息。
UPnP的基础是IP地址解析。每一个设备都应当有一个DHCP客户端并在连入网络的时候自动搜索DHCP服务。如果没有找到DHCP服务,也就是说网络是缺乏管理状态,那么设备必须给自己设定一个地址。如果在和DHCP服务器交互的过程中,设备获得了一个域名(比如通过DNS服务器或者DNS传递),那么它应当在接下来的网络操作中使用这个域名;否则,设备应当使用它的IP地址。
协议
[编辑]发现
[编辑]给定一个IP地址,UPnP网络中的第一步是发现。UPnP的發現協議,是基于简单服务发现协议(SSDP)。当一个设备被加入到网络中,UPnP检测协议允许该设备向控制点广播自己的服务。类似地,当一个控制点加入到网络中的时候,它也能够搜索到网络中存在的、感兴趣的设备相关信息。裝置之間交換的發現訊息,主要包含此裝置的必要資訊以及其所提供的一項服務,例如裝置的類型、標識和指向詳細資訊的連結(網路位置)。
描述
[编辑]UPnP网络的下一步是描述。当一个控制点检测到一个设备时,它对该设备仍然知之甚少。为了使控制点了解更多关于该设备的信息或者和设备进行交互,控制点必须从设备发出的检测信息中包含的URL获取更多的信息。某个设备的UPnP描述是XML的方式,包括品牌、厂商相关信息,如型号名和编号、序列号、厂商名、品牌相关URL等。描述还包括一个嵌入式设备和服务列表,以及控制、事件传递和存在相关的URL。对于每种设备,描述还包括一个命令或动作列表,包括响应何种服务,针对各种动作的参数;这些变量描述出运行时设备的状态信息,并通过它们的数据类型、范围和事件来进行描述。
控制
[编辑]UPnP网络的下一步是控制。当一个控制点获取到设备描述信息之后,它就可以向该设备发送指令了。为了实现此,控制点发送一个合适的控制消息至服务相关控制URL(包含在设备描述中)。控制消息也是通过简单对象访问协议(SOAP)用XML来描述的。类似函数调用,服务通过返回动作相关的值来回应控制消息。动作的效果,如果有的话,会反应在用于刻画运行中服务的相关变量。
事件通知
[编辑]下一步是事件通知。一个UPnP描述包括一组命令列表和刻画运行时状态信息的变量。服务在这些变量改变的时候进行更新,控制点可以进行订阅以获取相关改变。服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它们的当前数值。这些消息也是采用XML的格式,用通用事件通知体系进行格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送,它包括服务相关的变量名及值。为了支持多个控制点并存的情形,事件通知被设计成对于所有的控制点都平行通知。因此,所有的订阅者同等地收到所有事件通知。
存在
[编辑]最后一步是存在。如果设备带有存在URL,那么控制点可以通过它来获取设备存在信息,即在浏览器中加载URL,并允许用户来进行相关控制或查看操作。具体支持哪些操作则是由存在页面和设备完成的。
NAT穿透
[编辑]UPnP为NAT(网络地址转换)穿透带来了一个解决方案:互联网网关设备协议(IGD)。NAT穿透允许UPnP数据包在没有用户交互的情况下,无障碍的通过路由器或者防火墙(假如那个路由器或者防火墙支持NAT)。
未来的发展
[编辑]UPnP影音媒体服务器
[编辑]UPnP影音媒体服务器存储和共享数字媒体,比如:图片、电影或是音乐。
參考資料
[编辑]- UPnP™ Forum Universal Plug and Play Device Standards (页面存档备份,存于互联网档案馆)
- Golden G. Richard:Service and Device Discovery : Protocols and Programming, McGraw-Hill Professional, ISBN 0-07-137959-2
- Michael Jeronimo,Jack Weast:UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play, Intel Press, ISBN 0-9717861-1-9
外部連結
[编辑]文件
[编辑]- UPnP™ Forum(页面存档备份,存于互联网档案馆)
- DLNA (Digital Living Network Alliance) (页面存档备份,存于互联网档案馆)
- The Jini, Vision
- technique comparison
- Microsoft WHDC UPnP webpage & links
- Universal Plug and Play in Windows XP
新聞
[编辑]- Security firm predicts Microsoft Windows UPnP exploit by the end of the week at The Inquirer (Wednesday, 11 April 2007)
- Microsoft security updates for April 2007 to fix the above Microsoft Windows UPnP security issue.