2008年8月20日 星期三

UPnP Protocol 介紹


1.想要Implement UPnP的Protocol,就要去找UPnP-DeviceArchitecture-v1.0.pdf,這個檔案。


他有6個大項:








































IDItemDescritption
0Addressing就是取得IP啦,沒有IP無法幹活阿。
1Discovery就是如何搜尋網路上的Device,此功能僅限Control Point使用,Device並無法互相找到。
2DescriptionDevice被找到後,就要跟Cotrol Point敘述他的能力,他會給Control Point一份以XML格式的文件,來敘述他的能力。
3Control這裡所講的就是Control Point如何控制Device,簡單來說,Control Poing跟Device間的溝通,是透過傳遞一種SOAP格式的封包,其實是SOAP的Header包裹XML的內容,這份XML的內容就是Control Point要Device做的事情。
4Eventing這段講的是Control Point如何註冊Device的某項Service,註冊完後,這個Service有什麼狀態改變,就會透過Eventing protocol通知Control point,譬如說你要去戲院訂票,戲院票賣完了就要通知你,Control point跟Device間也是會有很多的訊息互換的。
5PresentationPresentation指的是Device會提供一個以HTML base的Interface來讓使用者控制或是得知其狀態。

2.接下來就必須介紹一下UPNP的Protocol Stack了,你會發現還蠻簡單的,從下往上是:

























1IPIP Protocol
2UDP/TCPUDP/TCP Protocol
3HTTP(muticast, uicast)HTTP封包格式,以muticast或unicast傳送,muticast傳送方式使用於SSDP Protocol,GENA或是SOAP則使用unicast傳送。
4SSDP,GENA,SOAPSSDP是搜尋網路上UPnP Device的Protocol,GENA是用來Subscribe跟做Eventing的Protocol,SOAP則是用來傳送Action的Protocol

3.接下來,我以一個時間軸的流程圖,來說明整個UPnP從Search到可以使用的流程:



UPnP time diagram.JPG


Step 1. Control Point發送SSDP封包,搜尋網路上的Device,Device接到搜尋封包的時候,必須回應SSDP封包,這個回應的封包裡面,有該Device的Description的URL。


Step 2.Control Point根據Description的URL,去跟Device要一份資料下來,根據這份Description,Control Point可以知道該Device擁有的Service跟其Service所提供的功能(Action)。


Step 3.Control Point針對他所想要使用的Service進行註冊的動作(Subscibe),Device必須回覆註冊成功的訊息。


Step 4.Control Point註冊結束後,便可以開始使用該Device的功能了,這個例子以UPnP燈為例,可以執行開燈關燈的動作。


Step 5.Device有了Control Point的註冊資訊後,必須以Eventing Protocol的機制回復他目前的狀態值。


0 意見: