手機投屏技術原理

基礎概念

DLNA

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

UPnP

通用即插即用(英語:Universal Plug and Play,簡稱UPnP)是由「通用即插即用論壇」(UPnP™ Forum)推廣的一套網絡協議。該協議的目標是使家庭網絡(數據共享、通訊和娛樂)和公司網絡中的各類設備可以相互無縫鏈接,並簡化相關網絡的實現。UPnP經過定義和發佈基於開放、因特網通信網協議標準的UPnP設備控制協議來實現這一目標。web

UPnP這個概念是從即插即用(Plug-and-play)派生而來的,即插即用是一種熱拔插技術。瀏覽器

協議棧服務器

UPnP設備體系結構包含了設備之間、控制點之間、設備和控制點之間的通訊。完整的UPnP由設備尋址、設備發現、設備描述、設備控制、事件通知和基於Html的描述界面幾部分構成。網絡

UPnP協議棧

  1. UPnP是一個多層協議構成的框架體系,每一層都以相鄰的下層爲基礎,同時又是相鄰上層的基礎。直至達到應用層爲止。該圖中的最下面是就是IP和TCP,共兩層,負責設備的IP地址。
  2. 三層是HTTP、HTTPU、HTTPMU,這一層,屬於傳送協議層。傳送的是內容都通過「封裝」後,存放在特定的XML文件中的。對應的SSDP、GENA、SOAP指的是保存在XML文件中的數據格式。到這一層,已經解決了UPnP設備的IP地址和傳送信息問題。
  3. 第四層是UPnP設備體系定義,僅僅是一個抽象的、公用的設備模型。任何UPnP設備都必須使用這一層。
  4. 第五層是UPnP論壇的各個專業委員會的設備定義層,在這個論壇中,不一樣電器設備由不一樣的專業委員會定義,例如:電視委員會只負責定義網絡電視設備部分,空調器委員會只負責定義網絡空調設備部分,依此類推。全部的不一樣類型的設備都被定義成一個專門的架構或者模板,供創建設備的時候使用。能夠推知,進入這一層,設備已經被指定了明確用途。固然,這些都必須遵照標準化的規範。從目前看,UPnP已經能夠支持大部分的設備:從電腦、電腦外設,移動設備和家用消費類電子設備等等,無所不包,隨着這個體系的普及,將可能有更多的廠家認可這一標準,最終,可能演化爲公認的行業標準。
  5. 最上層,也就是應用層,由UPnP設備製造廠商定義的部分。這一層的信息是由設備製造廠商來「填充」 的,這部分通常有設備廠商提供的、對設備控制和操做的底層代碼,而後,就是名稱序列號呀,廠商信息之類的東西。

設備架構

設備是提供服務的網路實體,是一個邏輯概念,一個屋裏設備能夠包含一個或者多個邏輯設備。例如一臺PC能夠有兩個邏輯設備———視頻播放器和圖片瀏覽器。框架

服務分佈式

服務是UPnP中最小的可控單元,它包括一系列可控制而動做和一組記錄該服務目前狀況的狀態。服務是依賴於設備存在的。ide

控制點

控制UPnP設備工做的網絡終端,主要功能包括獲取設備描述和相關服務列表;獲取感興趣的服務描述;發出控制消息控制設備動做;向感興趣的服務發出訂閱消息,以便當服務狀態改變時,自動得到時間通知。

UPnP組件

一些術語

  • UUID

UUID含義是通用惟一識別碼(Universally Unique Identifier),其目的是讓分佈式系統中的全部元素,都有惟一的辨識資訊,而不須要透過中央控制端來作辨識資訊的指定。其格式爲xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),分別爲當前日期和時間,時鐘序列,全局惟一的IEEE機器識別號,若是有網卡,從網卡mac地址得到,沒有網卡以其餘方式得到。

  • UDN

單一設備名(Unique Device Name),基於UUID,表示一個設備。在不一樣的時間,對於同一個設備此值應該是惟一的。

  • URI

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

URL是URI命名機制的一個子集,URL是Uniform Resource Location的縮寫,譯爲「統一資源定位符」。通俗地說,URL是Internet上用來描述信息資源的字符串,主要用在各類www客戶程序和服務器程序上。採用URL能夠用一種統一的格式來描述各類信息資源,包括文件、服務器的地址和目錄等。

  • URN

URN:URL的一種更新形式,統一資源名稱(URN,Uniform Resource Name)。惟一標識一個實體的標識符,可是不能給出實體的位置。標識持久性Internet資源。URN能夠提供一種機制,用於查找和檢索定義特定命名空間的架構文件。儘管普通的URL能夠提供相似的功能,可是在這方面,URN 更增強大而且更容易管理,由於 URN 能夠引用多個 URL。

實現

工做機制

UPnP設備的發現和控制分爲6個步驟:尋址、發現、描述、控制、事件及展示。

UPnP工做機制

這三點分別在後面的三篇文章中進行介紹。

總體流程

總體工做流程以下:

UPnP總體工做流程

相關文章
相關標籤/搜索