天天看點

DLNA中的UPnP技術淺析

分類: DLNA/UPnP 2010-12-13 21:54  3495人閱讀  評論(3)  收藏  舉報

        說到DLNA,UPnP協定就一定要提到,這點從DLNA分層就能看出來。

        UPnP是Universal Plug and Play的縮寫,亦即通用即插即用。這個協定是由intel和microsoft主導的,主要針對家庭網絡和企業網絡。

        UPnP組織論壇位址是: http://www.upnp.org .

        UPnP架構以IP技術為基礎,使家庭網絡和企業網絡裝置自動連接配接和協同工作。

        UPnP基礎協定是UPnP Device Architecture,最新的版本是1.1。這個UDA架構給出了區域網路内裝置如何發現對方,了解對方以及與對方交流的流程。

        UPnP使用的技術包括IP, TCP, UDP, HTTP, XML。

UPnP裝置加入網絡的過程

        UPnP裝置加入網絡首先要獲得IP(即使DHCP服務不提供的情況下)。

        接下來的步驟稱之為 發現或者尋找 。如果一個控制點(Control Point)加入到網絡中,會發送一個廣播協定,所有區域網路的UPnP裝置會做出響應。如果一個裝置加入網絡,會定時發送廣播自己的裝置資訊和服務資訊,以便感興趣的控制點能找到。這個發現對方的過程是基于SSDP協定的。 

        請注意,這裡的裝置指的是具備存儲内容的裝置,例如媒體伺服器,或者播放媒體的裝置,例如播放器,或者網關裝置。而控制點(CP)扮演的是用戶端,不具備存儲内容,播放媒體或者網關等裝置的功能,隻能浏覽裝置内容。

        控制點和裝置發現了對方,下一步就是 描述 ,意思是控制點了解裝置有哪些功能。在這一個階段,裝置會告訴控制點裝置的資訊,裝置可以提供的服務以及服務包含哪些指令,還包括指令所需要的參數。

        控制點了解了裝置的能力後,下一步就是 控制 。根據裝置提供的服務和指令清單,控制點可以發送指令來控制裝置做出回應。例如浏覽裝置内容, 控制點可以發送Browse指令得到裝置内容,并呈現給使用者。控制點發送的控制指令是通過SOAP協定使用XML描述的。

        控制的下一步是 事件 。一個UPnP描述包括一組指令清單和描述運作時狀态資訊的變量。服務在 這些變量改變的時候進行更新,控制點可以進行訂閱以擷取相關改變。 服務通過發送事件消息來釋出更新。事件消息包括一個或多個狀态資訊變量以及它們的目前數值。這些消息也是采用 XML 的格式,用GENA協定進行格式化。一個特殊的初始化消息會在控制點第一次訂閱的時候發送,它包括服務相關的變量名及值。為了支援多個控制點并存的情形, 事件被設計成對于所有的控制點都并行通知。是以,所有的訂閱者同等地收到所有事件通知。

        最後一步是 表現 。如果裝置帶有表現URL,那麼控制點可以通過它來擷取裝置表現資訊,即在浏覽器中加載URL,并允許使用者來進行相關控制或檢視操作。具體支援哪些操作則是由表現頁面和裝置完成的。

        上面說到有控制點和裝置兩個概念。控制點英文稱之為Control Point ,簡稱為CP;裝置稱之為device 。控制點不能稱之為一個裝置,它隻具備浏覽裝置内容的能力,這一點是需要強調的。

        我們用圖形來描述UPnP的協定棧和UPnP裝置互動過程:

DLNA中的UPnP技術淺析

UPnP協定棧

DLNA中的UPnP技術淺析

UPnP裝置互動過程

UPnP的應用場景包括哪些呢?

典型應用場景

        随着PC成為網絡的中心并提供日益豐富的媒體和連接配接服務,在裝置與PC相連之後,越來越多的應用将被開發出來。下面的例子隻是其中很小的一部分:

智能家庭網絡 

        許多智能家居環境使用了現存的家庭控制網絡,例如家庭網絡來控制和監控整個家居環境,比如燈光,安防和其他家庭裝置。這些網絡可以連接配接PC上,但是除了 PC之外,不能被其他的裝置存取。使用UPnP裝置可以橋接這些網絡成為一個網絡,并提供使用者更多裝置存取家庭網絡中的裝置。在實作時也無須對家庭網絡中 的現有布線和裝置進行昂貴的更新,隻需要将裝置變成UPnP裝置并能夠與控制點通訊并接受控制點的控制指令。 

數字音視訊檔案管理 

        可以在PC和其他裝置上播放的數字化音視訊檔案在近幾年正在成指數級的增長。一個家庭中,可能有幾台計算機或者其他裝置用于儲存這些檔案。使用UPnP可 以使這些分布在不同PC的檔案統一管理。這些裝置能被發現然後被其他控制點(比如個人電腦、UPnP接收器)控制,播放器可以通過家庭網絡獲得這些音視訊 檔案并播放它們,使用者可以在電視上欣賞這些音視訊檔案。

數字圖檔庫 

        許多家庭使用數字相機拍照,或者将已有照片掃描儲存,然後将這些照片上載到他們的計算機中儲存。在計算機中對其進行分類,或者以幻燈片的形式進行顯示。随 着照片的增加,照片可能儲存在多種裝置或者多種媒體上,比如CD光牒、硬碟、Flash卡。使用UPnP技術,圖檔庫可以自己作為一個裝置存在,并自動在網絡 上聲明。這使得一個照片庫可能臨時為多個應用程式使用,例如可以進行幻燈片顯示的同時,在電子像框、機頂盒和電視上進行顯示。

UPnP裝置包括哪些類型呢?

1. 基本裝置。這實際上是一個抽象裝置,不提供任何服務。

2. UPnP AV裝置。這個為DLNA架構提供的裝置類型,包含media server, media render。

3. UPnP Printer裝置。提供列印服務。

4. 網關裝置(IGD)。這個應用非常廣泛,很多路由器包含這個裝置的服務。

5. UPnP Scanner裝置。提供掃描服務。

6. 數字攝像頭。提供攝像頭類似的服務。

7. 亮燈控制。這是UPnP裝置協定的一個标準例子服務。

下面的圖包含了以上UPnP裝置類型。

DLNA中的UPnP技術淺析

我們主要看UPnP AV裝置以及他們能提供哪些服務和配套的内部裝置。

        在UPnP Device Architecture基礎上,UPnP組織增加了UPnP AV Architecture,規定了音視訊裝置與控制點之間的互動過程和音視訊裝置提供的服務。

        這個架構包含兩種AV裝置和一個控制點。一種AV裝置為Media Server,儲存各種音視訊、圖像等多媒體資料;另一種裝置為Media Render,可以從Media Server擷取多媒體資料并在本地進行播放。

下面的圖描述了這三個元件(Media Server,Media Render,Control Point)的互動過程。

DLNA中的UPnP技術淺析

        從這個圖,我們還可以看出來Media Server提供的服務至少包含内容目錄(Content Directoy)、連接配接管理(Connection Manager)和音視訊傳輸(AVTransport),簡稱為CDS, CMS和AVT。其中CDS和CMS是必須提供的服務,而AVT則是可選的服務。

        而Media Render提供的服務至少包含播放控制(Rendering Control)、連接配接管理(Connection Manager)和音視訊傳輸(AVTransport),簡稱為RCS, CMS和AVT。其中RCS和CMS是必須提供的服務,而AVT則是可選的服務。

        在這個架構中,還提供了這個三個元件在實際應用中互動模型,有興趣的朋友可以進一步閱讀。