
UPNP
通用即插即用(英语:Universal Plug and Play,简称UPnP)是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网路协定。该协定的目标是使家庭网路(数据共享、通信和娱乐)和公司网路中的各种设备能够相互无缝连线,并简化相关网路的实现。UPnP通过定义和发布基于开放、网际网路通讯网协定标準的UPnP设备控制协定来实现这一目标。
UPnP这个概念是从即插即用(Plug-and-play)派生而来的,即插即用是一种热拔插技术。
基本介绍
- 中文名:通用即插即用
- 外文名:Universal Plug and Play
- 简称:UPnP
- 简单定义:P2P的结构
- 由来:即插即用
- 学科:通信技术
概述
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穿透
UPnP为NAT(网路地址转换)穿透带来了一个解决方案:网际网路网关设备协定(IGD)。NAT穿透允许UPnP数据包在没有用户互动的情况下,无障碍的通过路由器或者防火墙(假如那个路由器或者防火墙支持NAT)。
套用
网路地址转换
在数量以百万计而且数目仍然在继续增长的家庭网路出现很久以前,Internet上的定址系统就已经开发出来了。实际上,在Internet尚处于幼年的时候所开发的这个定址系统到目前为止仍然能够正常工作真可以说是一个奇蹟。
因为Internet地址资源正在迅速被耗尽,大多数的家庭网路都使用网路地址转换(NAT)技术建立了一个网关。NAT是Internet工程任务组(IETF)制订的一种标準,它允许私有网路中的多台PC或设备共享一个全球唯一的公共地址(所使用私有地址的範围为10.0.0.0/8、192.168.0.0/16和172.0.0.0/12)。作为对IP位址短缺的一种临时补救措施,NAT可以很好地完成很多工作--例如Windows XP的Internet连线共享就使用NAT,就像很多网关设备(例如DSL和线缆数据机)所做的一样。
但问题是:NAT希望所有的网路应用程式都以一种标準方式(即在数据包头中使用IP位址)进行通信,但是有些网路程式未预计到NAT的存在。他们使用了NAT无法转换的嵌入式IP位址。
NAT 穿越技术
NAT穿越技术允许网路应用程式对它们是否位于一个具有UPnP能力的NAT设备之后进行检测。然后,这些程式将获得共享的全球可路由IP位址,并且配置连线埠映射以将来自NAT外部连线埠的数据包转发到应用程式使用的内部连线埠上--所有这一切都是自动完成的,用户无需手动映射连线埠或者进行其它工作。NAT穿越技术允许网路设备或者点对点应用程式通过动态开启和闭合与外部服务之间的通信连线埠穿过NAT网关与外界通信。
安全性
由于UPnP技术的简单性和坚持开放标準,UPnP技术已经得到了众多设备厂商的採纳。Windows XP率先实现了对UPnP技术的支持,但是,它现在还存在一些安全漏洞,攻击者可以使用这些漏洞减慢您的PC的运行速度,或者,在极少数的情况下,攻击者可以对他在您的系统中的许可权进行提升。但是,如果你在Windows XP中安装了防火墙,这些问题都将不称其为问题。实际上,Windows XP自身就附带了一个Internet连线防火墙,默认情况下,该防火墙安装在您的Internet连线上,因此能够保护您免遭Internet攻击者的攻击。UPnP中的这个安全性漏洞已经得到了修补。Microsoft 安全性公告MS01-059对该问题进行了讨论,并且提供了与此有关的更多资源连结,你可以通过这些连结查看知识库文章了解更多信息,或者下载相应的安全补丁。
特色
1. 以网路为套用环境,不考虑“孤岛”中的计算机。
2. 以TCP/IP和整个Internet为基础。这样是“中立”的,不依附于任何作业系统或应用程式,不使用特定的API函式,不受程式设计语言的局限。可以无缝地接入传统网路。
3. 设备可以动态地进入网路中,随后获得IP位址,“学习” 或查找自己应当进行的操作和服务的信息;“感知”别的设备是否存在以及它们的作用和当前的状态 。所有这些,都应当是可自动完成的。
4. 每个设备都可读取属于自己的、特定的状态和参数;完成控制操作后应当发出“操作完成”的回响信号。如果失败,则应发出控制失败的信号。
未来的发展
UPnP影音媒体伺服器存储和共享数字媒体,比如:图片、电影或是音乐。