UPnP
通用即插即用(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检测协议允许该设备向控制点广播自己的服务。类似地,当一个控制点加入到 网络中的时候,它也能够搜索到网络中存在的、感兴趣的设备相关信息。这两种类 型的基础交互是一种仅包含少量、重要相关设备信息或者它的某个服务。比如,类 型、标识和指向更详细信息的链接。UPnP 检测协议是基于简单服务发现协议(SSDP)的。
描述
UPnP 网络的下一步是描述。当一个控制点检测到一个设备时,它对该设备仍然知之 甚少。为了使控制点了解更多关于该设备的信息或者和设备进行交互,控制点必须 从设备发出的检测信息中包含的 URL 获取更多的信息。某个设备的 UPnP 描述是 XML 的方式,包括品牌、厂商相关信息,如型号名和编号、序列号、厂商名、品牌 相关 URL 等。描述还包括一个嵌入式设备和服务列表,以及控制、事件传递和存 在相关的 URL。对于每种设备,描述还包括一个命令或动作列表,包括响应何种服 务,针对各种动作的参数;这些变量描述出运行时设备的状态信息,并通过它们的 数据类型、范围和事件来进行描述。
控制
UPnP 网络的下一步是控制。当一个控制点获取到设备描述信息之后,它就可以向该 设备发送指令了。为了实现此,控制点发送一个合适的控制消息至服务相关控制 URL(包含在设备描述中)。控制消息也是通过简单对象访问协议(SOAP)用 XML 来描 述的。类似函数调用,服务通过返回动作相关的值来回应控制消息。动作的效果, 如果有的话,会反应在用于刻画运行中服务的相关变量。
事件通知
下一步是事件通知。一个 UPnP 描述包括一组命令列表和刻画运行时状态信息的变 量。服务在这些变量改变的时候进行更新,控制点可以进行订阅以获取相关改变。 服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它 们的当前数值。这些消息也是采用 XML 的格式,用通用事件通知体系(GENA)进行 格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送,它包括服务相 关的变量名及值。为了支持多个控制点并存的情形,事件通知被设计成对于所有的 控制点都平行通知。因此,所有的订阅者同等地收到所有事件通知。
存在
最后一步是存在。如果设备带有存在 URL,那么控制点可以通过它来获取设备存在 信息,即在浏览器中加载 URL,并允许用户来进行相关控制或查看操作。具体支持 哪些操作则是由存在页面和设备完成的。
NAT traversal
UPnP为NAT(网络地址转换)traversal带来了一个解决方案:IGD(Internet Gateway Device) 协议。NAT traversal 允许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.