天天看點

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由<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作為某個裝置/服務的全球唯一辨別

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*<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提供的服務:
    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所在網絡之間的橋接功能

繼續閱讀