DLNA协议分析
1、简介
DLNA最初是有sony,英特尔,微软等公司于2003年发起,包含吴物理层,网络层,传输层,设备发现,控制媒体管理,媒体格式,流媒体协议和用户接口一系列功能的家庭媒体互联互通协议。
2.协议架构
物理层:基本包含所有物理层协议,包括802.11,蓝牙,802.3等
网络层: 必须支持ipv4,ipv6可选
设备发现: UPNP协议,用户感知新设备加入局域网的协议
媒体管理: 媒体服务器和媒体播放器支持以下形式:
Content Directory Service(CDS): 列出可播放资源
Connection Manager Service(CMS): 用于传递媒体资源从服务端到播放端.
AVTransport Service: 媒体控制,暂停/播放,快进/快退.
Rendering Control Service: 控制音量或亮度等功能.
媒体传输协议: 首选http,rtp为可选方式(rtp具备更好的媒体传输效率)
媒体格式: DLNA设备需要支持以下协议:
Append:
Video
Audio
Images
H264
H265
AVS
远程用户接口: 通用用户接口
设备角色
M-DMS/DMS: 媒体源,如:手机,MP3.
M-DMP/DMP: 媒体播放器:电视,pc,平板等.
DMR:类似player,但是仅仅是单独渲染内容,自身不存在控制属性.(基本没用)
M-DMC/DMC:位置DMS和DMR之间的控制器. 例如: 路由器.
UPNP (universal plug and play)
upnp是DLNA的基础协议,用于发现新加入局域网的设备,协议架构如下:
寻址
所有设备应当支持DNCP作为动态获取ip的方式,upnp设备应当获取一个独立的ip在169.254 ~ 169.16.
设备发现
新加入的设备首先要通告控制节点。一个新的控制节点在局域网内扫描所有的设备,确实是否支持upnp。
SSDP是基于UDP的应用层协议,用于设备通告或撤回它的服务,或者控制节点搜索设备。具备http的包头但是没有内容。
描述
控制节点以xml的格式从设备获取信息:
设备描述: 描述当前为什么设备,TV,PC或者是其他设备
服务描述: 描述设备的能力。
控制
Simple Object Access Protocol (SOAP) 基于UDP实现三种配置用于控制节点控制设备: UPnP Control Request,UPnP Control Response, UPnP Control Error Response.
事件
由于局域网内设备的状态可能发生改变,所有upnp需要一套完善的机制确保控制节点可以及时知晓设备状态变化。
以订阅通告模式可以实现此功能,(有点类似wifiaware)
转存失败重新上传取消
呈现方式
使用URL在控制节点呈现设备能力是最好的解决办法,因为URL可以以html方式预览。(XML是信息交换方式,URL是展示给用户的方式)
|