这部分的内容大多来源于网络及官方文档,依照本身的翻译理解整理所成。东西比較多,从头慢慢看仍是可以懂个大概的。git
文件夹:web
1、DNLA的创建浏览器
2、DLNA的成员网络
3、DLNA标准的制定架构
4、DLNA的设备app
5、DLNA的架构框架
6、云时代的数字家庭(待填坑)ide
扩展阅读I: UPnP的工做过程------------DLNA基础协议框架布局
扩展阅读II UPnP AV(Audio/Video) Architecture---------------DLNA媒体应用框架)ui
1、DNLA的创建
DLNA 成立于2003 年6 月24 日, 其前身是DHWG (Digital Home Working Group 数字家庭工做组),由Sony、Intel、Microsoft等发起成立、旨在解决我的PC ,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增加成为可能。DLNA的口号是Enjoy your music, photos and videos, anywhere anytime。该组织的官方站点是http://www.dlna.org . 页面主色调green,black,white,silver和gray,后面要讲到的UPnP的主业也是相同的调调,这两个关系挺大的,后面讲。
2、DLNA的成员
这个组织将增长者分为两个层次,最高层次为promoter, 其次为contributor。promoter制定标准和协议,contributor可以分享这个组织的资源,也可以提交标准,參与讨论。现在绝大多数的电子制造商都增长了该组织,至少是contributor,而且年费还很是贵。成员名单可以从http://www.dlna.org/about_us/roster/中可以找到。
下图是2008年DLNA的promoter:
下图是2011年的promoter:
从上面两个图咱们可以看见,DLNA的骨干成员包含以Intel为首的芯片制造商;以HP为首的PC制造商,以Sony,Panasonic,Sharp,Samsung,LG 为首的家电、消费电子制造商;以CISCO,HUWEI,MOTOROLA,ERICSSON为首的电信设备/移动终端/标准商;一家独大的Microsoft软件/操做系统商等等。
值得注意的有几点:
1.DLNA这个东西基本Intel,Microsoft两个领域巨头在推,一个搞芯片,一个搞系统。AMD没出现在2011的promoter名单中;Google来年会不会掺一脚很差说。还有QUALCOMM也參加进来了,这几年的智能手机芯片处理器他家的也比較多,而且他家还有很是多专利可以吃。
2.2011就剩HP一个大PC商了,其它大PC商如Acer,Asus都还不是promoter,他们确定要抢着增长的。lenovo不只从promotor名单中消失了,天然也不会是contributor了,和AMD同样。最開始时lenovo是很是积极的,在DHWG的时候也是骨干成员,回来中国搞了一个“IGRS闪联”,退出的缘由不知道和这个有没有关系。IGRS在很是大程度上和DLNA是比較相似的,框架协议和UPnP也是比較像的。
3.Awox和Cablelabs都是作互联多媒体设备的。Broadcom主要是作移动消费电子,有硬件solution,也有产芯片。
4.ACCESS(爱可视)是作软件的。现在软件的需求很是大,给第三方提供软件solution是一块很是大的蛋糕。cyberlink和arcsoft也在作这方面,已经有些成熟的软件solution了,像EMC,NeuSoft也有在作。
5.运营商開始增长了,像at&t美国电报电话公司,at&t也挺厉害的,处处搞签约机,像是跟PSP VITA也签了。之后中国移动联通不知道会不会也跑来參加(有点难...)。
6.dts和dolby都是作音视频标准的,他们基本是跑来收钱的,你机器上到他们的专利你就得付钱,跟之后确定其它人也会跑来收钱。
3、DLNA标准的制定
该组织旨在创建一个基于开放的工业标准的互操做平台,并将确立技术设计规则,供企业开发数字家庭有关的产品。其工做目标是依据开放工业标准制定媒体格式,传输和协议互操做性的指南和规范,和其它工业标准化组织进行联络,提供互操做性測试,并进行数字家庭市场计划的制定和实施。
DLNA并不是创造技术,而是造成一种解决的方案,一种你们可以遵照的规范。因此DLNA选择的各类技术和协议都是眼下所应用很是普遍的技术和协议。因此很是多家都要參加,但愿DLNA採纳本身的协议和标准,之后本身好办事,可以的话顺便吃点专利费。慷慨向上确定打只是Intel和Microsoft的,仅仅能跟着他们走,可以提起其它方面的协议和标准。DLNA的标准写在DLNA GUIDELINES里面,就是你们开会一块儿写出来的,再开会不停改动的一个standard,一个specification。參加DLNA的商家必须按这个标准走,这样你们的设备才干相互通讯。
4、DLNA的设备
在讲DLNA的架构以前先讲一下DLNA规定的设备分类,这些设备就是DLNA标准运行的物理和逻辑对象。
这是一个DLNA 设备的类图。
1.Home NetWork Device(HND)。这类设备指家庭设备,具备比較大的尺寸及较全面的功能,主要与移动设备差异开来,下属5类设备:
(1)Digital Media Server(DMS)。数字媒体server,提供媒体获取、记录、存储和输出功能。同一时候,内容保护功能是对DMS的强制要求。DMS老是包括DMP的功能,并且肯能包括其它智能功能,包括设备/用户服务的管理;丰富的用户界面;媒体管理/收集和分发功能。DMS的样例有PC、数字机顶盒(附带联网,存储功能)和摄像机等等。
(2)DMP。数字媒体播放器。能从DMS/M-DMS上查找并获取媒体内容并播放和渲染显示。比方智能电视、家庭影院等。
(3)DMC。数字媒体控制器,查找DMS的内容并创建DMS与DMR之间的链接并控制媒体的播放。如遥控器。
(4)DMR。数字媒体渲染设备。经过其它设备配置后,可以播放从DMS上的内容。与DMP的差异在于DMR仅仅有接受媒体和播放功能,而没查找有浏览媒体的功能。比方显示器、音箱等。
(5)DMPr。数字媒体打印机,提供打印服务。网络打印机,一体化打印机就属于DMPr。
2.Mobile Handheld Devices(MHD)手持设备。相比家庭设备,手持设备的功能相对简化一些,支持的媒体格式也会不一样。
(1)M-DMS。与DMS相似,如移动电话,随身音乐播放器等。
(2)M-DMP。与DMP相似。比方智能移动电视。
(3)M-DMD。移动多媒体下载设备。如随身音乐播放器,车载音乐播放器和智能电子相框等
(4)M-DMU。移动多媒体下载设备。如摄像设备和手机等。
(5)M-DMC。与DMC相似。P如DA,智能遥控器。 手持设备未定义M-DMR,因为手持设备会讲究便利性,会附加查找控制功能,
要否则就仅仅是普通的移动电视或收音机了。
3.Networked Infrastructure Devices (NID) 联网支持设备。
(1)Mobile Network Connectivity Function (M-NCF)。移动网络链接功能设备。提供各类设备接入移动网络的物理介质。 DLNA的但愿是全部实现无线化。
(2)Interoperability Unit (MIU)媒体交互设备。提供媒体格式的转换以支持各类设备需要。
设想一下这样一个scenario:你下了班回到家,掏出手机拨到家庭模式,而后就在手机上遥控打开了等离子电视和PC,而后把订阅的新闻经过PC下载完毕后打到等离子电视上播放。这时手机就是一个DMC/M-DMC,等离子电视是一个DMR,PC就是DMS。而后你手机上收到一张朋友从巴西传来的照片,你看完以后把它同步到PC上存储起来,这样手机现在的身份是M-DMU,而后你把这张图片放到电子相框里面。这个电子相框就是一个M-DMD,相框也有play的能力,因此他又是一个M-DMP。因此说这些设备的功能角色都是不定的,界限也不是那么严格。在DLNA Guidelines v1.0的时候尚未智能手机,后来在v1.5增长了。这个设备分类仅仅是定义了功能,而且功能也会变的。之后还会出其余新设备,像pad,tab,touch各类各样,到时候标准也会变的。
5、DLNA的架构
DLNA架构是个互联系统,所以在逻辑上它也相似OSI(Open System Interconnection,开放系统互连)七层网络模型。
DLNA架构分为例如如下图7个层次:
DLNA ARCHITECTURE
(1) NetWorking Connectivity 网络互联方式:包含物理链接的标准,有有线的,比方符合IEEE802.3标准的Ethernet,;有无线
的 ,比方符合IEEE802.11a/g标准的WiFi,能作到54Mbps,蓝牙(802.15)等,技术都很是成熟。现在OFDM和MIMO(802.11n)已经能作到300Mbps了,早就超过比較普及的100Mbps的Ethernet了,仅仅只是产品尚未普及,之后确定会用到。
(2) NetWorking Stack 网络协议栈:DLNA的互联传输基本上是在IPV4协议簇的基础上的。用TCP或者UDP来传都可以。这一层至关于OSI网络层。
(3)Device Discovery&Control 设备发现和控制。
这个层次是比較essential的,是DLNA的基础协议框架。DLNA用UPnP协议来实现设备的发现和控制。如下重点看一下UPnP。
这一部分可以看一下http://upnp.org/sdcps-and-certification/standards/device-architecture-documents/里的文档。UPnP的工做过程 一文也作了具体说明。如下归纳总结性地说一说。
UPnP,英文是Universal Plug and play,翻译过来就是通用即插即用。UPnP最開始Apple和Microsoft在搞,后来Apple不作了,Microsoft还在继续作,Intel也加进来作,Sony,Moto等等也有增长。UPnP有个站点http://www.upnp.org/,咱们发现DLNA的网页和UPnP的网页很是像,颜色也差点儿相同,就可以知道他们关系很是好了。DNLA主要是在推UPnP。
微软官方站点对UPnP的解释:通用即插即用 (UPnP) 是一种用于 PC 机和智能设备(或仪器)的常见对等网络链接的体系结构,尤为是在家庭中。UPnP 以 Internet 标准和技术(好比 TCP/IP、HTTP 和 XML)为基础,使这种设备彼此可本身主动链接和协同工做,从而使网络(尤为是家庭网络)对不少其它的人成为可能。
举个样例。咱们在本身的PC(win7)里面打开网络服务的UPnP选项,而后再家庭网络中共享一个装着视频的目录,而后买一台SmartTV回来打开就可以找到这台PC的共享目录,而后就直接在电视上选文件播放了。
UPnP的另一个做用是给家庭网内的devices作本身主动的网络地址转换NAT(NAT,Network Address Translation)和port映射(Port Mapping),因为家庭网络里面没有那么多IP,所有的devices可能都要经过同一个ip出去。转换映射以后,家庭网络内外的devices就可以经过internet自由地相互链接,而不受内网地址不可訪问的阻碍。
UPnP Device Architecture 1.0中会说明设备是如何经过UPnP来相互发现和控制,以及传递消息的。咱们会专门用一章的篇幅来说一下UPnP Device Architecture,可见下文中的扩展阅读I: UPnP的工做过程
(4)Media Management媒体管理。媒体管理包含媒体的识别、管理、分发和记录(保存),UPnP AV Architecture:1 and UPnP Printer Architecture:1这两个属于UPnP的文档会说明怎样进行媒体管理。我将在 扩展阅读II:UPnP AV Architecture 一文中略微具体介绍UPnP AV设备和CP之间的交互模型及媒体的控制。
UPnP AV Architecture 定义了UPnP AV设备间媒体传送以及和CP间的交互。UPnP AV也定义了两种UPnP AV设备:UPnP AV MediaServer(MS)和UPnP AV MediaRender(MR),以及他们具备的4种服务:
1)Content Directory Service(CDS):能将可訪问的媒体内容列出。
2)Connection Manager Service(CMS):决定媒体内容可以经过何种方式由UPnP AV Media Server传送至UPnP AV MediaRender。
3)AVTransport Service:控制媒体内容,比方播放、中止、暂停、查找等。
4)Rendering Control Service:控制以何种方式播放内容,比方音量、静音、亮度等。
UPnP Printer Architecture:1 定义了打印设备和CP的交互模型,这将再也不细说。
(5) Media Transport 媒体传输:这一层用HTTP(HyperText Transfer Protocol)超文本传输协议。就是平时咱们上网用的媒体传输协议。HTTP用TCP可靠传输,也有混合UDP方式的HTTP。现在HTTP的最新版本号是HTTP1.1。可选协议是RTP。
exsample:咱们输入一个网址,回车,给server发一个request,用TCP咱们就可以等server给咱们消息,说明server收到咱们的消息了,不然咱们就重发;接着server给咱们TCP包,咱们收一个就给server回信说咱们收到了,要是server收不到回信,他就以为包丢掉了,会再传一个相同的包过来。不停地回信就是会比較慢。
那假设咱们用UDP会如何?就是说咱们不给server回信说咱们收到编号是x的包了,server也就不给咱们重发丢掉的包了,这样咱们就丢包了。
但是咱们传stream的时候,比方视频流,不用存,看完就完了,这样的时候就可以用UDP来传。加上局域网里面QoS原本就很是高,丢包都是不太可能的。因此UDP确定会用。局域网多播的时候也用UDP,这个在后面讲。
媒体的传输方案例如如下:
1)从DMS/M-DMS至DMP/M-DMP,即便不立刻播放。
2)从一个DMS到还有一个DMS,这时接收方DMS播放接收媒体内容,表现为一个DMP;也可以不立刻播放,可能仅仅是存储或者处理。
媒体传输 模式有三种:
1)流传输。当DMR/DMP需要实时渲染接收媒体,媒体具时序性。
2)交互传输。不包括时序的媒体,如图片传输。
3)后台传输。非实时的媒体传输,比方上传下载等。
(6)Media Formats媒体格式。格式Formats在这里等同于编码格式Codec,平时咱们说的编码格式比方Mpeg-2,AVC,x264就是视频编码格式;PCM,mp3(MPEG-2 Layer 3),aac,flac就是音频编码格式。而avi,rmvb,mkv这些是媒体封装格式,包括视频音频可能还有字幕流。比方一个常见的后缀为mkv的文件,它的视频Codec是x264,音频是aac,它的视音频编码属于Mpeg-4 Codec Family。
咱们知道不一样设备对编码格式的支持能力不一样,Media Formats这一部分规定了设备应该具备的格式支持能力。如下的表是DLNA支持的所有编码格式:
DLNA-proved format
Video |
Audio |
Images |
|
MPEG-1 MPEG-2 H.263 MPEG-4 Part 2 MPEG-4 Part 10 WMV9 VC-1 |
LPCM MPEG-1/2 L2 MPEG-1/2 L3 MPEG-4 AAC LC MPEG-4 AAC LTP MPEG-4 HE AAC MPEH-4 BSAC |
AC-3 ATRAC3plus WMA WMA Professional AMR AMR-WB+ G.726 |
JPEG PNG GIF TIFF
|
针对家庭设备和手持设备,DLNA有不一样的格式规定:
(7)Remote UI 远程用户接口。说白了就是遥控器。比方说有个TV,咱们说不管是用遥控器仍是直接在TV上按button,效果是同样的。只是二者button的排列布局是不同的。好了,现在到DLNA了,我想用手机当遥控器可不可以?固然可以,仅仅要得到TV上button的功能,传到手机上来,模拟一个遥控器就行了。DLNA现在想用浏览器的方式,TV给你一个XML,手机上就出现遥控器界面了,有点像webQQ,webOS那种,这样在手机上就不需要client了,TV功能更新了,手机直接跟TV要新的XML,很是方便。
-------------------------------------------------------------------------------------------------------------------------------
扩展阅读I: UPnP的工做过程
UPnP的工做过程分为6步:
(1)寻址(Addressing)。
地址是整个UPnP系统工做的基础条件,每个设备都应当是DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)的客户。当设备首次与网络创建链接后,利用DHCP服务,使设备获得一个IP地址。这个IP地址可以是DHCP系统指定的,也可以是由设备选择的。当局域网内没有提供DHCP服务时,UPnP设备将依照Auto-IP的协议,从169.254/169.16地址范围获取一个局域网内惟一的IP地址。设备还可以使用friendly name,这就需要域名解析服务(DNS)来转换name和IP。这个过程用到的东西都是现存的,而且是很是普及的,市面上买的路由器都会有。
(2)发现(Discovery)。
发现是 UPnP工做第一步。 当一个设备被加入到网络后,UPnP的发现协议赞成该设备向网络上的Control Points(CPs)通知(advise)本身拥有的服务。相同,当一个CP被加入到网络后,UPnP发现协议赞成该CP搜索网络上可用的设备。这两种状况下的组播消息一般是设备和服务的基本信息,如它的类型,惟一标识符,当前状态參数等等。要注意设备信息和服务信息都是要组播出去的。发现的过程可以用如下Figure 1-1来描写叙述。
如下具体叙述UPnP发现设备用到的协议:SSDP(Simple Service Discovery Protocol,简单服务发现协议),说明设备是怎样向网络通知或者撤销本身可以提供的服务;CP是怎样搜索设备以及设备是怎样回应搜索的。
SSDP格式套用HTTP1.1的部分消息头字段,但是和HTTP不一样,SSDP是採用UDP传输的,而且SSDP没有Message Body,就是说SSDP仅仅有信头而没有信件内容的。
SSDP第一个要填充的字段是star - line,说明这是个什么类型的消息。
比方填"NOTIFY * HTTP/1.1/r/n",就说明这个SSDP消息是个通知消息,通常设备增长网络或者离开网络都要NOTIFY,更新本身的服务后也要NOTIFY一下。别的设备看见这个消息的star - line就知道有设备状态变了,本身就打开这个消息看一下有没有需要更新的。假设填"NOTIFY * HTTP/1.1/r/n",就要填LOCATION字段,填一个description URL,CP可以经过这个地址来取得设备的具体信息。
填"M-SEARCH * HTTP/1.1/r/n"就是要搜索了;respone别人的搜索就填"HTTP/1.1 200 OK/r/n"。
SSDP第二个要填充的字段是目的地址HOST。比方填上"HOST: 239.255.255.250:1900",就是组播(multicast)搜索,这里239.255.255.250是组播地址,就是说这条消息会给网络里面该组地址的设备发,1900是SSDP协议的port号。假设HOST地址是特定地址,那这就是单播(unicast)。Respone不填这个字段,他会在ST字段里面填respone address,就是发来搜索信息的设备的地址,Respone消息的话还会发送一个包括本身地址URL的字段,Respone的意思就是跟Searcher说:我好像是你要找的人,个人电话是XXX,具体状况请CALL我。Respone也是UDP单播。
日后的字段就不细说了。经过字段的组合可以发送很是多不一样的信息。
(3)描写叙述(Description)
前面咱们说了CP想要一个device更具体的信息,就打给它的URL跟它要。返回来的东西一般是个XML(Extensible Markup Language,是种结构化的数据。和HTML比較像,有tag和data,具体不说了本身去查),描写叙述分为两部分:一个是device description,是device的物理描写叙述,就是说这个device是什么;另外一个是service descriptions,就是device的服务描写叙述了,就是device能干些什么。这些device和device service的描写叙述的格式也是有要求的,开发商也可以本身定义,仅仅要符合UPnP Forum的规范。
这里略微解释一下设备描写叙述和服务描写叙述。
首先说设备,比方一个家庭影院,有显示屏,有功放音响,还有蓝光机。那么这个家庭影院home threatre,就是一个根设备(root device),它下属有Screen,Amplifier,BDplayer这些从设备。home threatre的描写叙述XML中会有一个device list,列出Screen,Amplifier,BDplayer这些设备的基本信息及这些设备描写叙述的URL,以及设备的presentationURL(这相似于webserver,经过訪问presentationURL,本地会载入一个网页,在这个网页上可以操做设备及其余拥有的服务);还会有一个sevice list,里面列出home threatre可调用的服务基本信息及服务描写叙述URL。
再来是服务,经过訪问服务描写叙述URL,可以取得服务描写叙述XML,里面会具体介绍服务的信息,包含干什么用的,属于哪一个设备,有哪些action,需要哪些參数,怎么调用等等。
(4)控制(Control)
拿到device description和service descriptions之后,那咱们怎么去遥控这些设备呢?
在设备描写叙述部分,device description还有关于怎样控制device的描写叙述,会给出一个Control URL,CP可以向这个URL发送不一样的控制信息就可以控制device了,而后device也可以返回一个信息反馈。
这样的CP和device之间沟通讯息依照Simple Object Access Protocol (SOAP)的格式来写。SOAP经过HTTP来传,现在的版本号是1.1,叫作SOAP 1.1 UPnP Profile。这个Profile把控制/反馈信息分红三种:UPnP Control Request,UPnP Control Response和UPnP Control Error Response,都比較好理解。SOAP协议是有信内容Body的,和SSDP不同。消息Body里面就可以写想调用的动做了,叫作Action invocation,可能还要传參数,比方想播放一个视频,要把视频的URL传过去;device收到后要respone,表示能不能运行调用,出错的话会返回一个错误代码。
(5)事件(Eventing)
在服务进行的整个时间内,仅仅要变量值发生了变化或者模式的状态发生了改变,就产生了一个事件,该事件服务提供者(某设备的某个服务)会把该事件向整个网络进行多播(multicast)。而且,CP也可以事先向事件server订阅事件信息,就像RSS订阅同样,保证将该CP感兴趣的事件及时准确地单播传送过来(unicast)。
如下是一个Unicast eventing 的architecture图,CP是subscriber,server是publisher。
subscriber(通常是个CP)向publisher(通常是个service)发送订阅消息(subscribe),更新订阅消息(renewal),退订消息(cancel)。publisher向subscriber推送订阅(event:SIDX)。
事件的订阅和推送这块用的通讯协议是GENA(General Event Notification Architecture) ,经过HTTP/TCP/IP传送。GENA的格式就不细说了,具体请參阅UPnP-arch-DeviceArchitecture-v1.1。如下列出订阅过程供參考:
1.订阅。subscriber发送订阅消息主要包括事件URL(evenURL),服务ID号(service identifier),这两个可以在设备服务描写叙述信息中找到,以及寄送地址(delivery URL)。还会包括一个订阅期限(duration)。
2.成功订阅。publisher收到订阅信息,假设容许订阅的话就会为每个新subscriber 生成一个惟一的subscriber identifier并记录subscriber 的duration和delivery URL。还会记录一个顺序增加event key用来保证事件确实推送到subscriber那里。比方说有个新事件,key是6,而后把这个事件推送给某个subscriber那里,subscriber那里记录的event key是4,现在收到的事件key是6,他就知道他没收到key为5的事件,这样他就向publisher索要漏收的事件,从而保证两方变量值或状态的一致。
3.首次推送。订阅容许订阅以后还会向subscriber发送一组初始变量或状态值,进行首次同步。
4.续订。subscriber必须在订阅到期前发送renewal续订。
5.订阅到期。订阅到期后publisher会把subscriber的信息删除,subscriber又回到订阅前的状态。
6.退订。subscriber发送cancel信息将会取消订阅。subscriber因非正常退出网络的话,则不会退订直到订阅到期。
7.订阅操做失败信息。当订阅、续订和退订不能被publisher接收或者出现错误时,publisher会发送一个错误代码。
再简单说下多播(multicast,或者叫组播,本文中二者等同)和单播。even的组播採用UDP/IP,和SSDP同样,就是port号变成了7900。下图是几个协议的所处层的位置,可以清楚地看到它们之间的区别。首先关于IP多播,要知道仅仅存在UDP多播,没有TCP多播这回事。为何呢?多播的重点是提升网络效率,将同一数据包发送给尽量多的可能未知的计算机。像这样的对网内所有设备的频繁消息通知採用多播是为了减少网络负担,SSDP也是同样。
但是SSDP和multicast这样的採用UDP方式的协议存在一个问题,就是可靠性不够。解决的办法就是屡次通知,但是通常不会超过三次以避免添加网络负担,这样就得不偿失了。像SSDP的话会採用按期广播advertice的方式,使各类各样缘由而没收到advertice的CP又一次得到advertice,又攻克了UDP丢包的问题。
前面在寻址的时候用到的DHCP用的是UDP广播(broadcast)。当一个新的设备增长网络时,他想要分个IP,但又不知道DHCPserver的IP地址,因此他就在网内广播,用255.255.255.255地址来通知所有计算机。DHCPserver收到请求后会为他申请并返回一个IP地址。
(6)表达(Presentation)
仅仅要获得了设备的URL,就可以取得该设备表达的URL,取得该设备表达的HTML,而后可以将此HTML归入CP的本地浏览器上。这部分还包含与用户对话的界面,以及与用户进行会话的处理。所以设备表达可以理解成“遥控器”。这部分定义描写叙述界面,规范界面以及传输界面内容。远程界面是供CP用户使用的,CP用户经过远程界面完毕设备描写叙述的获取,控制设备,订阅收取设备事件等等。
好了, 到此,UPnP的工做过程的解说就结束了。总结一下:
UPnP分为6个步骤:
先是Addressing,设备增长网络,经过DHCP或者Auto-IP得到IP;这部分在闪联IGRS中是未定义的。
而后是Discovery,採用SSDP协议(UDP),用multicast/unicast可以完毕设备的上线和离线通知和组播搜索设备,设备用unicast(单播,UDP)响应CP的搜索。
往下是Description,经过HTTP协议(TCP)取回来是一个XML文档,包括物理描写叙述和服务描写叙述;
再来是Control,採用SOAP协议(HTTP/TCP),完毕CP和devices之间的交互;
Eventing,採用GENA协议(HTTP/TCP),完毕设备事件消息的订阅和推送,为保证可靠性,故是TCP传输;事件的推送还有multicast (UDP)。
最后是Presentation。UPnP并未定义Presentation应该有哪些东西。一个HTML嘛,哪样写得好哪样来!
扩展阅读II UPnP AV(Audio/Video) Architecture
1.概述
如下是解说UPnP AV的会用到的一些对象术语。
Table1-1: Default Short Names for the AV Specifications
AV Specification Name |
Short Name |
AVTransport |
AVT |
ConnectionManager |
CM |
ContentDirectory |
CD |
MediaRenderer |
MR |
MediaServer |
MS |
RenderingControl |
RCS |
ScheduledRecording |
SRS |
在UPnP AV Architecture:1 (Document Version: 1.1) 文档最開始的是这样介绍的UPnP AV的:
本文档描写叙述了整体的UPnP AV 架构。该架构是UPnP AV设备和服务范例的基础架构。
该架构定义了 UPnP 控制端与 UPnP AV设备基本交互,并且与特定设备类型,媒体内容格式与传输协议无关。它支持如电视机,录像机和 CD / DVD 播放机 / 本身主动点唱机,机顶盒,音响系统,MP3播放器,精巧图像照相机,摄像机,电子相框,以及PC 等各类设备,。该AV 架构赞成设备支持不一样格式的多媒体格式(如MPEG2, MPEG4 和 JPEG 格式, MP3, Windows 媒体架构( WMA ),位图(BMP ), NTSC 制式, PAL 制式, ATSC标准等)和多种类型的传输协议,如 IEC-61883/IEEE-1394,HTTP GET, RTP 协议, HTTP 的 PUT/邮政, TCP / IP 协议等)。下面各节描写叙述了AV架构,以及怎样各类UPnP AV设备和服务协同工做,使各类终于用户的状况。
“与特定设备类型,媒体内容格式与传输协议无关”的内在含意是UPnP AV Architecture仅仅是提供了某种机制、模型,并无规定採用
何种技术来实现。技术的实现部分在 UPnP Device Architecture中有说明。
UPnP AV Architecture 定义了UPnP AV设备间媒体传送以及和CP间的交互。 UPnP AV 也定义了两种 UPnP AV 设备:UPnP AV MediaServer( MS)和 UPnP AV MediaRender(MR ),以及他们具备的 4 种服务:
1)Content Directory Service(CDS):能将可訪问的媒体内容列出。
2)Connection Manager Service(CMS):决定媒体内容可以经过何种方式由UPnP AV Media Server传送至 UPnP AV MediaRender 。
3)AVTransport Service:控制媒体内容,比方播放、中止、暂停、查找等。
4)Rendering Control Service:控制以何种方式播放内容,比方音量、静音、亮度等。
2.UPnP AV 设备的交互模型
在设备交互中, CP 是最重要的,因为 Action 通常是由CP发出的。UPnP AV 架构对 CP 的功能要求有 10条:发现 AV设备,得到所需的内容列表,得到渲染器支持的协议/ 格式,比較/匹配协议 / 格式,配置server/渲染器,选择所需的内容,開始内容传输,调整渲染參数,反复:选择下一个内容,断开server和渲染器链接。
CP可以是MediaServer,也可以是MediaRenderer,也可能仅仅是遥控器remote control。依据CP的角色,概括出如下三种常见的AV设备交互模型:
(1)2-Box Pull Model
这样的状况下CP是MediaRenderer,它可以是一个智能手机。CP主动向MediaServer索取媒体内容,得到内容以后播放媒体,是拉(pull)的方式。
CP要作的是 得到媒体列表>选取所需内容>匹配协议 / 格式,MediaServer需要 选取所需内容>匹配协议/格式>開始传输。
(2)2-Box Push Model
这样的状况下CP是MediaServer,它可以是一个一体机。CP主动向MediaRenderer推送(push)媒体。
CP要作的是 本地选取所需内容>匹配协议 / 格式>传输;MediaRenderer需要只需要 匹配协议/格式>接收媒体。
(3)3-box model
在 3-box model中,CP只做为一个遥控器。也分为pull和push两种方式。
当pull方式时,CP向Renderer发送Server及Server上所需媒体内容的URL,让Renderer去取;
当push方式时,CP向Server发Renderer的URL,让Server去向Renderer推送媒体内容。
本文结束。