说到DLNA,UPnP协议就一定要提到,这点从DLNA分层就能看出来。
UPnP是Universal Plug and Play的缩写,亦即通用即插即用。这个协议是由intel和microsoft主导的,主要针对家庭网络和企业网络。
UPnP组织论坛地址是: http://www.upnp.org .
UPnP架构以IP技术为基础,使家庭网络和企业网络设备自动连接和协同工作。
UPnP基础协议是UPnP Device Architecture,最新的版本是1.1。这个UDA架构给出了局域网内设备如何发现对方,了解对方以及与对方交流的流程。
UPnP使用的技术包括IP, TCP, UDP, HTTP, XML。
UPnP设备加入网络的过程
UPnP设备加入网络首先要获得IP(即使DHCP服务不提供的情况下)。
接下来的步骤称之为 发现或者寻找 。如果一个控制点(Control Point)加入到网络中,会发送一个广播协议,所有局域网的UPnP设备会做出响应。如果一个设备加入网络,会定时发送广播自己的设备信息和服务信息,以便感兴趣的控制点能找到。这个发现对方的过程是基于SSDP协议的。 请注意,这里的设备指的是具备存储内容的设备,例如媒体服务器,或者播放媒体的设备,例如播放器,或者网关设备。而控制点(CP)扮演的是客户端,不具备存储内容,播放媒体或者网关等设备的功能,只能浏览设备内容。
控制点和设备发现了对方,下一步就是 描述 ,意思是控制点了解设备有哪些功能。在这一个阶段,设备会告诉控制点设备的信息,设备可以提供的服务以及服务包含哪些命令,还包括命令所需要的参数。
控制点了解了设备的能力后,下一步就是 控制 。根据设备提供的服务和命令列表,控制点可以发送指令来控制设备做出回应。例如浏览设备内容, 控制点可以发送Browse指令得到设备内容,并呈现给用户。控制点发送的控制指令是通过SOAP协议使用XML描述的。
控制的下一步是 事件 。一个UPnP描述包括一组命令列表和描述运行时状态信息的变量。服务在 这些变量改变的时候进行更新,控制点可以进行订阅以获取相关改变。 服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它们的当前数值。这些消息也是采用 XML 的格式,用GENA协议进行格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送,它包括服务相关的变量名及值。为了支持多个控制点并存的情形, 事件被设计成对于所有的控制点都并行通知。因此,所有的订阅者同等地收到所有事件通知。
最后一步是 表现 。如果设备带有表现URL,那么控制点可以通过它来获取设备表现信息,即在浏览器中加载URL,并允许用户来进行相关控制或查看操作。具体支持哪些操作则是由表现页面和设备完成的。
上面说到有控制点和设备两个概念。控制点英文称之为Control Point ,简称为CP;设备称之为device 。控制点不能称之为一个设备,它只具备浏览设备内容的能力,这一点是需要强调的。
我们用图形来描述UPnP的协议栈和UPnP设备交互过程:
UPnP设备交互过程
UPnP的应用场景包括哪些呢?
典型应用场景
随着PC成为网络的中心并提供日益丰富的介质和连接服务,在设备与PC相连之后,越来越多的应用将被开发出来。下面的例子只是其中很小的一部分:
智能家庭网络 许多智能家居环境使用了现存的家庭控制网络,例如家庭网络来控制和监控整个家居环境,比如灯光,安防和其他家庭设备。这些网络可以连接PC上,但是除了 PC之外,不能被其他的设备存取。使用UPnP设备可以桥接这些网络成为一个网络,并提供用户更多设备存取家庭网络中的设备。在实现时也无须对家庭网络中 的现有布线和设备进行昂贵的升级,只需要将设备变成UPnP设备并能够与控制点通讯并接受控制点的控制命令。 数字音视频文件管理 可以在PC和其他设备上播放的数字化音视频文件在近几年正在成指数级的增长。一个家庭中,可能有几台计算机或者其他设备用于保存这些文件。使用UPnP可 以使这些分布在不同PC的文件统一管理。这些设备能被发现然后被其他控制点(比如个人电脑、UPnP接收器)控制,播放器可以通过家庭网络获得这些音视频 文件并播放它们,用户可以在电视上欣赏这些音视频文件。 数字图片库 许多家庭使用数字相机拍照,或者将已有照片扫描保存,然后将这些照片上载到他们的计算机中保存。在计算机中对其进行分类,或者以幻灯片的形式进行显示。随 着照片的增加,照片可能保存在多种设备或者多种介质上,比如光盘、硬盘、Flash卡。使用UPnP技术,图片库可以自己作为一个设备存在,并自动在网络 上声明。这使得一个照片库可能临时为多个应用程序使用,例如可以进行幻灯片显示的同时,在电子像框、机顶盒和电视上进行显示。
UPnP设备包括哪些类型呢?
1. 基本设备。这实际上是一个抽象设备,不提供任何服务。 2. UPnP AV设备。这个为DLNA框架提供的设备类型,包含media server, media render。 3. UPnP Printer设备。提供打印服务。 4. 网关设备(IGD)。这个应用非常广泛,很多路由器包含这个设备的服务。 5. UPnP Scanner设备。提供扫描服务。 6. 数字摄像头。提供摄像头类似的服务。 7. 亮灯控制。这是UPnP设备协议的一个标准例子服务。
下面的图包含了以上UPnP设备类型。
我们主要看UPnP AV设备以及他们能提供哪些服务和配套的内部设备。
在UPnP Device Architecture基础上,UPnP组织增加了UPnP AV Architecture,规定了音视频设备与控制点之间的交互过程和音视频设备提供的服务。
这个架构包含两种AV设备和一个控制点。一种AV设备为Media Server,保存各种音视频、图像等多媒体资料;另一种设备为Media Render,可以从Media Server获取多媒体数据并在本地进行播放。
下面的图描述了这三个组件(Media Server,Media Render,Control Point)的交互过程。
从这个图,我们还可以看出来Media Server提供的服务至少包含内容目录(Content Directoy)、连接管理(Connection Manager)和音视频传输(AVTransport),简称为CDS, CMS和AVT。其中CDS和CMS是必须提供的服务,而AVT则是可选的服务。
而Media Render提供的服务至少包含播放控制(Rendering Control)、连接管理(Connection Manager)和音视频传输(AVTransport),简称为RCS, CMS和AVT。其中RCS和CMS是必须提供的服务,而AVT则是可选的服务。
在这个架构中,还提供了这个三个组件在实际应用中交互模型,有兴趣的朋友可以进一步阅读。