upnp: universal plag and play,通用即插即用
urn : uniform resource name,統一資源名稱,用於定位服務,與位址無關
url : universal resource location,統一資源定位符,一般是乙個鏈結形式,如:
uri : uniform resource indentifier,統一資源識別符號, urn和url都屬於uri,不過在upnp中,沒有uri
udn : unique device name,唯一裝置名,格式為 uuid:upnp-string 例如: uuid:upnp-tvemulator-1_0-1234567890001
sid : subscribe id,訂閱註冊號 格式為uuid:8-4-4-4-12 例如: uuid:920ebc56-594c-11e6-81a4-9c1bd9c2d948
devicetype : 裝置型別,如: urn:schemas-upnp-org:device:tvdevice:1
friendlyname : 裝置友好名稱,主要是方便使用者記憶,比長串的裝置型別字串好多了
scpdurl : 服務的url,如 :
servicetype : 服務型別,以urn標示,如:urn:schemas-upnp-org:service:tvcontrol:1
serviceid : 服務id號,如: urn:upnp-org:serviceid:tvcontrol1
cp:control point,控制點
upnp原理(2014-03-21 16:02):
這篇部落格講解了基本的controlpoint(控制點)與裝置之間的控制結構
介紹了基本upnp控制的流程(裝置編址註冊-->發現-->描述-->控制-->事件-->表達)
upnp的工作過程(2013-11-10 15:38):
這篇部落格將6個步驟講得非常詳細,要仔細閱讀
upnp分為6個步驟:
先是addressing,裝置加入網路,通過dhcp或者auto-ip獲得ip;這部分在閃聯igrs中是沒有定義的。
然後是discovery,採用ssdp協議(udp),用multicast/unicast可以完成裝置的上線和離線通知和組播搜尋裝置,裝置用unicast(單播,udp)響應cp的搜尋。
往下是description,通過http協議(tcp)取回來是乙個xml文件,包含物理描述和服務描述;
再來是control,採用soap協議(http/tcp),完成cp和devices之間的互動;
eventing,採用gena協議(http/tcp),完成裝置事件訊息的訂閱和推送,為保證可靠性,故是tcp傳輸;事件的推送還有multicast (udp)。
最後是presentation。upnp並沒有定義presentation應該有哪些東西。乙個html嘛,哪樣寫得好哪樣來!
ssdp協議(****** service discovery protocol,簡單服務發現協議),允許上線的裝置發布廣播,通知cp自己擁有的服務.當乙個cp進入網路後,ssdp協議允許它搜尋網路上的可用裝置.
soap協議(****** object access protocol,簡單物件訪問協議),允許cp向裝置的controlurl傳送操作請求,soap協議含有訊息body,包含action invocation,指示如何控制裝置
gena協議(general event notification architecture,普通事件通知體系),允許cp和裝置之間進行訂閱訊息
dlna介紹(2011-05-03 16:49):
主要講了dlna(digital life networking alliance,數字生活網路聯盟)
為什麼要了解dlna呢,因為我們所使用的upnp協議技術,最初是為dlna服務的,屬於其中一層
很多裝置的描述標準也是dlna制定的.
upnp 構成了其裝置發現&控制,**管理和遠端ui這一層(很重要的一層)
關於裝置描述和服務描述檔案(2015-01-08 20:13):
裝置描述檔案(devicedesc.xml)定義裝置,以及裝置所提供的服務種類
服務描述檔案(service_scdp.xml)定義服務所需要的動作和服務所涉及的變數,狀態等..
具體到libupnp的使用,這裡有幾篇:
官網link:
arm linux下upnp使用(2012-06-24 18:42):
upnp程式設計(2012-11-22 15:17)(很詳細很好):
編譯與sample實驗(2013-03-07 11:20):
UPNP 學習筆記整理 一
前言由於工作需要學習upnp協議,特意找了很多資料,網上看了很多牛人blog.自己也通過整理筆記,加深自己記憶印象.本人習慣 先看整體流程,再看實現細節和術語,否則開始沒有框架的感性認識,容易迷失在術語和細節從而浮躁打擊信心.看了框架後,一定要看官方文件,那裡的細節知識才是最準確的.因為其他人的文章...
ubus 相關資料整理
ubuntu編譯ubus及相關依賴庫 大昱的部落格 csdn部落格 交叉編譯libubox eric csdn部落格 openwrt ubus編譯安裝 segmentfault 思否 好!ubuntu編譯ubus及相關依賴庫 大昱的部落格 csdn部落格 看起來靠譜 openwrt ubus 移植到...
InstallShield相關資料整理
最近在研究使用安裝包打包,簡單研究之後選擇installshield來實現安裝包打包,一開始非常簡單,但是開始之後總是磕磕碰碰非常不順利,網上大量google baidu之後發現如下資料,特此備忘 installshield 海洋女神 安裝的本質就是拷貝 installshield 實現iis 元件...