DLNA协议总结
2016-10-20 11:05
197 查看
本文为原创文章,转载需要标明出处哦~~谢谢:)
一、DLNA设备发现 --- UPnP DA
基于UPnP,设备可以动态的加入网络,自动获得一个IP地址,向其他设备公布自己能提供的服务,或者获知其他设备的存在和提供的服务,这些过程都是自动完成的,彼此发现和了解后,设备能够互相调用服务以实现家庭网络设备的互相操作。
UPnP Device Architecture
UpnP DA 将家庭网络中的角色分为 控制点、设备和服务三种。它们之间的通信依靠HTTP技术,设备和相关服务的规格信息使用XML方式向其他节点公布。
服务是UPnP系统中最小的可控制单元。<动作与状态>
UPnP协议栈
注:
1、HTTP是基于TCP的协议,HTTPU是基于UDP的,HTTPMU是基于Multicast UDP的,属于两个变体,并没有被列入RFC中。
2、 简单设备发现协议 Simple Service Discovery Protocol
通用事件通知结构 GENA General Event Notification Architecture
简单对象存取协议 SOAP Simple Object Access Process
这些消息使用HTTP、HTTPU、HTTPMU发送。
UPnP DA工作机制
发现方式:
宣告:
向多播地址(239.255.255.250:1900)发送SSDP消息
相关协议介绍:
1、GENA 通过HTTP和广播UDP来发送和接收事件的通知,
1)、订阅 如果控制点对某个服务的某一事件感兴趣,则使用HTTP发送一个订阅事件的请求,该请求通常须指明订阅哪个服务、事件通知返回的位置和订阅服务的时间,也可以发送取消事件订阅的请求。
2)、事件消息 两种类型:只向有订阅关系的节点发出消息、使用HTTP协议;向多播地址发送,所有节点都能收到,使用HTTPMU协议。
2、SOAP UPnP使用SOAP发送设备控制消息。
该协议可在任何传输协议上实现应用程序之间的通信。
从发送端到接收端的单向传输。
使用XML编码格式,SOAP由<soap:Envelope>、<soap:Header>(可选)、<soap:Body>组成。
3、SSDP 提供了在局域网中发现设备的机制,SSDP只有消息头域,没有消息体。有两种发现方式:
1)、主动通知消息的定义的格式:
2)、搜索-响应方式 控制点通过HTTPMU发送多播搜索请求,服务通过HTTPU发送单播响应请求。
①设备搜索请求消息格式:
②响应消息格式
UUID (128bit的数字)
UUID = 4*<hexOctet >-2*<hexOctet>-2*<hexOctet>-2*<hexOctet>-6*<hexOctet>
hexOctet = <hexDigtit><hexDigtit>
hexDigtit = 1~9|'a'~'f'|'A'~'F'
二、DLNA设备媒体控制 --- UPnP AV
UPnP AV框架中,将家电设备分为媒体服务器 MS(来源)、
媒体播放器 MR(接收端,可播放) 和控制点 CP(控制协调MS和MR之间的动作)
UPnP允许MS和MR之间通过任意传输协议交互,CP只是初始化并配置好了设备之间的连接,并不直接参与内容的真正传输。
1、Media Server 主要是存放媒体文件 或提供能够访问到媒体文件的方法
通过Media Server,Control Point能够浏览并且选择家庭网络中的所有能够被访问的媒体文件。
Media Server提供的服务:
内容目录服务(Content Directory Service) 提供了一些浏览服务器内容的操作,Control Point可以通过SOAP协议调用这些动作。最基本的动作ContentDirectory::Browse();
连接管理服务(Connection Manager Service) 主要用于管理媒体文件传输的链接。ConnectionManager::PrepareForConnection()、ConntectionManager::ConnectionComplete();
传输控制服务(AVTransport Service)这是一个可选服务,若实现这个服务,Control Point可以用它控制媒体文件的播放。
2、Media Renderer 是用于播放从家庭网络中或得的媒体文件设备
为了支持多路播放,Renderering Control和AVTransport可以有多个实例,每个实例与一个媒体文件传输链接绑定,Control Point就可以独立地控制每一路媒体传输信号。每一路传输信号的服务实例都可以用一个唯一的InstanceID来标识,Control Point发出的调用动作信息中都有这个InstanceID,因此CP可以控制每一路传输信号。
Media Renderer提供的服务:
播放控制服务(Renderering Control Service) 提供一组操作让Control Point控制播放器亮度、对比度、音量等。RCS可以有多个实例,这些实例在ConnectionManager::PrepareForConnection()中创建。
连接管理服务(Connection Manager Service)管理与设备的网络链接。重要方法见下表。
传输控制服务(AVTransport Service) 是CP控制播放;提供的动作举例:SetAVTransportURI()、 SetNextAVTransportURI()、Play()、Stop()、Pause()。
3、Control Point 本身并不提供服务,收到用户操作指令后,协调MS和MR工作
三、基于UPnP实现DLNA
DLNA分级结构
DLNA定义的家庭设备角色
、
一、DLNA设备发现 --- UPnP DA
基于UPnP,设备可以动态的加入网络,自动获得一个IP地址,向其他设备公布自己能提供的服务,或者获知其他设备的存在和提供的服务,这些过程都是自动完成的,彼此发现和了解后,设备能够互相调用服务以实现家庭网络设备的互相操作。
UPnP Device Architecture
UpnP DA 将家庭网络中的角色分为 控制点、设备和服务三种。它们之间的通信依靠HTTP技术,设备和相关服务的规格信息使用XML方式向其他节点公布。
服务是UPnP系统中最小的可控制单元。<动作与状态>
UPnP协议栈
UPnP设备制造商定义 |
UPnP论坛定义 |
UPnP设备体系定义 |
SDDP GENA HTTPPMU (设备发现) | SSDP HTTPU (设备发现) | SOAP 设备控制 HTTP 设备描述 | GENA HTTP (设备事件) |
UDP | TCP |
IP |
1、HTTP是基于TCP的协议,HTTPU是基于UDP的,HTTPMU是基于Multicast UDP的,属于两个变体,并没有被列入RFC中。
2、 简单设备发现协议 Simple Service Discovery Protocol
通用事件通知结构 GENA General Event Notification Architecture
简单对象存取协议 SOAP Simple Object Access Process
这些消息使用HTTP、HTTPU、HTTPMU发送。
UPnP DA工作机制
寻址 | 设备获得自己的IP |
发现 | 设备向控制点广播自己的存在及能够提供的服务;控制点主动搜索网络中存在的设备与服务。该过程基于SSDP协议。 |
描述 | 控制点从设备/服务发出的发现消息解析出描述的URL,通过访问该URL获取更多信息。描述信息遵循XML语法,使用HTTP传输。 |
控制 | 控制消息通被包含在描述信息中,类似函数调用。 |
事件通知 | 控制点可以通过订阅操作,让服务通过发送事件来发布更新。该消息采用XML格式,遵循GENA。 |
展现 | 设备如果带有展现URL,控制点可以由此获得设备展现的信息。 |
宣告:
向多播地址(239.255.255.250:1900)发送SSDP消息
相关协议介绍:
1、GENA 通过HTTP和广播UDP来发送和接收事件的通知,
1)、订阅 如果控制点对某个服务的某一事件感兴趣,则使用HTTP发送一个订阅事件的请求,该请求通常须指明订阅哪个服务、事件通知返回的位置和订阅服务的时间,也可以发送取消事件订阅的请求。
2)、事件消息 两种类型:只向有订阅关系的节点发出消息、使用HTTP协议;向多播地址发送,所有节点都能收到,使用HTTPMU协议。
2、SOAP UPnP使用SOAP发送设备控制消息。
该协议可在任何传输协议上实现应用程序之间的通信。
从发送端到接收端的单向传输。
使用XML编码格式,SOAP由<soap:Envelope>、<soap:Header>(可选)、<soap:Body>组成。
3、SSDP 提供了在局域网中发现设备的机制,SSDP只有消息头域,没有消息体。有两种发现方式:
1)、主动通知消息的定义的格式:
NOTIFY * HTTP/1.1 | 起始行,表明是个SSDP的通知消息 |
HOST | 本消息法网的地址和端口,控制点监听这个地址和端口,接受设备/服务的通知消息 |
CACHE-CONTROL | max-age 本通知消息的有效时间 |
LOACATION | 一个URL地址,通过该地址可以获取设备/服务的描述信息 |
NT | 设备类型(值域:upnp:rootdevice、uuid:device-UUID、urn:schemas-upnp-org:device:device-Type:version、urn:schemas-upnp-org:service:service-Type) |
NTS | 通知消息的子类型,(值域:alive/byebye,即有效/无效) |
USN | 唯一服务名称,SSDP使用通用唯一标识符UUID作为某个设备/服务的全球唯一标识 |
①设备搜索请求消息格式:
M-SEARCH * HTTP/1.1 | 起始行,表明是一个SSDP搜索消息 |
HOST | 多播地址和端口 |
MAN | 协议查询类型,必须是ssdp:discover |
MX | 设备响应最长等待时间;设备在0和这个值之间随机选择一个时间最为延迟,避免多个设备同时响应造成网络拥堵 |
ST | 搜索的目标(值域为 ssdp:all、upnp:rootdevice、uuid:device-UUID、urn:schemas-upnp-org:devices:device-Type:version、urn:schemas-upnp-org:service:service-Type ) |
HTTP/1.1 200 OK | 起始行,表明是一个HTTP响应消息 |
CACHE_CONTROL | 消息存活时间 |
DATE | 响应生成的时间 |
EXT | N/A |
LOCATION | 设备描述的URL |
SERVER | 包含设备上的操作系统名、版本、产品名称和产品版本信息 |
ST | 与搜索消息相同 |
USN | 唯一服务名称,SSDP使用通用唯一标识符UUID作为某个设备/服务的全球唯一标识 |
UUID = 4*<hexOctet >-2*<hexOctet>-2*<hexOctet>-2*<hexOctet>-6*<hexOctet>
hexOctet = <hexDigtit><hexDigtit>
hexDigtit = 1~9|'a'~'f'|'A'~'F'
二、DLNA设备媒体控制 --- UPnP AV
UPnP AV框架中,将家电设备分为媒体服务器 MS(来源)、
媒体播放器 MR(接收端,可播放) 和控制点 CP(控制协调MS和MR之间的动作)
UPnP允许MS和MR之间通过任意传输协议交互,CP只是初始化并配置好了设备之间的连接,并不直接参与内容的真正传输。
1、Media Server 主要是存放媒体文件 或提供能够访问到媒体文件的方法
通过Media Server,Control Point能够浏览并且选择家庭网络中的所有能够被访问的媒体文件。
Media Server提供的服务:
内容目录服务(Content Directory Service) 提供了一些浏览服务器内容的操作,Control Point可以通过SOAP协议调用这些动作。最基本的动作ContentDirectory::Browse();
连接管理服务(Connection Manager Service) 主要用于管理媒体文件传输的链接。ConnectionManager::PrepareForConnection()、ConntectionManager::ConnectionComplete();
传输控制服务(AVTransport Service)这是一个可选服务,若实现这个服务,Control Point可以用它控制媒体文件的播放。
2、Media Renderer 是用于播放从家庭网络中或得的媒体文件设备
为了支持多路播放,Renderering Control和AVTransport可以有多个实例,每个实例与一个媒体文件传输链接绑定,Control Point就可以独立地控制每一路媒体传输信号。每一路传输信号的服务实例都可以用一个唯一的InstanceID来标识,Control Point发出的调用动作信息中都有这个InstanceID,因此CP可以控制每一路传输信号。
Media Renderer提供的服务:
播放控制服务(Renderering Control Service) 提供一组操作让Control Point控制播放器亮度、对比度、音量等。RCS可以有多个实例,这些实例在ConnectionManager::PrepareForConnection()中创建。
连接管理服务(Connection Manager Service)管理与设备的网络链接。重要方法见下表。
传输控制服务(AVTransport Service) 是CP控制播放;提供的动作举例:SetAVTransportURI()、 SetNextAVTransportURI()、Play()、Stop()、Pause()。
ConnectionManager::GetProtocolInfo() | 允许CP获得MR所支持的传输协议和播放类型。 |
ConnectionManager::PrepareForConnection() | 该方法可选; ConnectionID,让CP可以获得当前MR的正在使用的连接信息; AVTransport InstanceID CP可以控制播放; RendereringControlInstanceID,CP可以控制文件的播放效果。 |
ConntectionManager::ConnectionComplete() | 终止/释放连接 |
三、基于UPnP实现DLNA
DLNA分级结构
【媒体格式】Media Formats | Image、Audio、AV Media Collection、XHTML Print Documents |
【媒体传输层】Media Transport | Http 1.0/1.1、RTP |
Device Discovery&Control、 Media Managerment、RemoteUI | UpnP DA 规定设备之间如何发现和了解对方 UpnP AV 规定设备之间如何协同操作 |
【网络协议层】Network Stack | IPv4 |
【网络互联层】Network Connectivity | 以太网、Wi-Fi、蓝牙等;要求所有接入的网络类型必须支持分级QoS,保证多媒体数据正常传输 |
Home Network Devices 家庭网络设备 | DMS、DMP、DMR、DMC、DMPr |
Mobile Handled Device 移动手持设备 | M-DMS、M-DMP、M-DMD、M-DMU、M-DMC |
Home Interoperability Device 家庭互操作设备 | MIU Mobile Interoperability Unit 移动互操作单元,可实现HND和MHD之间媒体格式转换 M-NCF Moblie Network Connectivity Function 移动网络连接功能设备 提供MHD和HND所在网络之间的桥接功能 |