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发送设备控制消息。
  1. 该协议可在任何传输协议上实现应用程序之间的通信。
  2. 从发送端到接收端的单向传输。
  3. 使用XML编码格式,SOAP由(可选)、组成。

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作为某个设备/服务的全球唯一标识
2)、 搜索-响应方式 控制点通过HTTPMU发送多播搜索请求,服务通过HTTPU发送单播响应请求。
①设备搜索请求消息格式:
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 (128bit的数字)
UUID = 4*-2*-2*-2*-6*
hexOctet =
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提供的服务:
    1. 内容目录服务(Content Directory Service) 提供了一些浏览服务器内容的操作,Control Point可以通过SOAP协议调用这些动作。最基本的动作ContentDirectory::Browse();
    2. 连接管理服务(Connection Manager Service) 主要用于管理媒体文件传输的链接。ConnectionManager::PrepareForConnection()、ConntectionManager::ConnectionComplete();
    3. 传输控制服务(AVTransport Service)这是一个可选服务,若实现这个服务,Control Point可以用它控制媒体文件的播放。

2、 Media Renderer 是用于播放从家庭网络中或得的媒体文件设备
  • 为了支持多路播放,Renderering Control和AVTransport可以有多个实例,每个实例与一个媒体文件传输链接绑定,Control Point就可以独立地控制每一路媒体传输信号。每一路传输信号的服务实例都可以用一个唯一的InstanceID来标识,Control Point发出的调用动作信息中都有这个InstanceID,因此CP可以控制每一路传输信号。
  • Media Renderer提供的服务:
    1. 播放控制服务(Renderering Control Service) 提供一组操作让Control Point控制播放器亮度、对比度、音量等。RCS可以有多个实例,这些实例在ConnectionManager::PrepareForConnection()中创建。
    2. 连接管理服务(Connection Manager Service)管理与设备的网络链接。重要方法见下表。
    3. 传输控制服务(AVTransport Service) 是CP控制播放;提供的动作举例:SetAVTransportURI()、 SetNextAVTransportURI()、Play()、Stop()、Pause()。
ConnectionManager::GetProtocolInfo()    
允许CP获得MR所支持的传输协议和播放类型。
ConnectionManager::PrepareForConnection()
该方法可选;
ConnectionID,让CP可以获得当前MR的正在使用的连接信息;
AVTransport InstanceID CP可以控制播放;
RendereringControlInstanceID,CP可以控制文件的播放效果。
ConntectionManager::ConnectionComplete()
 终止/释放连接

3、 Control Point 本身并不提供服务,收到用户操作指令后,协调MS和MR工作



三、基于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,保证多媒体数据正常传输

  • DLNA定义的家庭设备角色

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所在网络之间的桥接功能











你可能感兴趣的:(智能家庭网络)