DLNA的全稱是DIGITAL LIVING NETWORK ALLIANCE(數字生活網絡聯盟), 其宗旨是Enjoy your music, photos and videos, anywhere anytime, DLNA(Digital Living Network Alliance) 由索尼、英特爾、微軟等發起成立、旨在解決我的PC,消費電器,移動設備在內的無線網絡和有線網絡的互聯互通,使得數字媒體和內容服務的無限制的共享和增加成爲可能,目前成員公司已達280多家。html
DLNA標準包括多項協議及標準,其中最重要的部分是UPnP。對於咱們目前的需求UPnP就能知足所有要求。git
通用即插即用(英語:Universal Plug and Play,簡稱UPnP)是由「通用即插即用論壇」(UPnP™ Forum)推廣的一套網絡協議。該協議的目標是使家庭網絡(數據共享、通訊和娛樂)和公司網絡中的各類設備可以相互無縫鏈接,並簡化相關網絡的實現。UPnP經過定義和發佈基於開放、因特網通信網協議標準的UPnP設備控制協議來實現這一目標。web
UPnP這個概念是從即插即用(Plug-and-play)派生而來的,即插即用是一種熱拔插技術。瀏覽器
協議棧服務器
UPnP設備體系結構包含了設備之間、控制點之間、設備和控制點之間的通訊。完整的UPnP由設備尋址、設備發現、設備描述、設備控制、事件通知和基於Html的描述界面幾部分構成。網絡
設備架構
設備是提供服務的網路實體,是一個邏輯概念,一個屋裏設備能夠包含一個或者多個邏輯設備。例如一臺PC能夠有兩個邏輯設備———視頻播放器和圖片瀏覽器。框架
服務分佈式
服務是UPnP中最小的可控單元,它包括一系列可控制而動做和一組記錄該服務目前狀況的狀態。服務是依賴於設備存在的。ide
控制點
控制UPnP設備工做的網絡終端,主要功能包括獲取設備描述和相關服務列表;獲取感興趣的服務描述;發出控制消息控制設備動做;向感興趣的服務發出訂閱消息,以便當服務狀態改變時,自動得到時間通知。
一些術語
UUID含義是通用惟一識別碼(Universally Unique Identifier),其目的是讓分佈式系統中的全部元素,都有惟一的辨識資訊,而不須要透過中央控制端來作辨識資訊的指定。其格式爲xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),分別爲當前日期和時間,時鐘序列,全局惟一的IEEE機器識別號,若是有網卡,從網卡mac地址得到,沒有網卡以其餘方式得到。
單一設備名(Unique Device Name),基於UUID,表示一個設備。在不一樣的時間,對於同一個設備此值應該是惟一的。
Web上可用的每種資源 - HTML文檔、圖像、視頻片斷、程序等 - 由一個通用資源標誌符(Universal Resource Identifier,簡稱」URI」)進行定位。 URI通常由三部分組成:訪問資源的命名機制;存放資源的主機名;資源自身的名稱,由路徑表示。考慮下面的URI,它表示了當前的HTML 4.0規範:http://www.webmonkey.com.cn/html/html40/它表示一個可經過HTTP協議訪問的資源,位於主機www.webmonkey.com.cn上,經過路徑/html/html40訪問。
URL是URI命名機制的一個子集,URL是Uniform Resource Location的縮寫,譯爲「統一資源定位符」。通俗地說,URL是Internet上用來描述信息資源的字符串,主要用在各類www客戶程序和服務器程序上。採用URL能夠用一種統一的格式來描述各類信息資源,包括文件、服務器的地址和目錄等。
URN:URL的一種更新形式,統一資源名稱(URN,Uniform Resource Name)。惟一標識一個實體的標識符,可是不能給出實體的位置。標識持久性Internet資源。URN能夠提供一種機制,用於查找和檢索定義特定命名空間的架構文件。儘管普通的URL能夠提供相似的功能,可是在這方面,URN 更增強大而且更容易管理,由於 URN 能夠引用多個 URL。
UPnP設備的發現和控制分爲6個步驟:尋址、發現、描述、控制、事件及展示。
這三點分別在後面的三篇文章中進行介紹。
總體工做流程以下: