鸣涧 发表于 2022-7-26 16:57:15

DLNA协议分析

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是展示给用户的方式)

页: [1]
查看完整版本: DLNA协议分析