通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法
【專利摘要】本發(fā)明涉及通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法,包括:控制點在網(wǎng)絡中發(fā)送M-Search組播請求;UPnP設備對M-Search組播請求進行響應,在響應時,隨機延遲一定時間,根據(jù)控制點的IP地址以及M-Search組播請求所包含的TCP通信端口號信息與控制點之間建立TCP連接,通過該TCP連接向控制點響應設備發(fā)現(xiàn)所需信息,控制點根據(jù)信息獲取UPnP設備描述階段的設備描述信息;控制點利用UPnP設備IP地址和服務端口,向UPnP設備發(fā)送UDP格式的通信報文,實現(xiàn)控制點對UPnP設備的通信;UPnP設備獲取控制點IP地址,利用該IP地址,UPnP設備向該控制點返回下一步操作命令,實現(xiàn)UPnP設備對控制點發(fā)起的通信。
【專利說明】
通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及網(wǎng)絡通信領(lǐng)域,特別涉及一種通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法。
【背景技術(shù)】
[0002]近幾年來,隨著“數(shù)字家庭網(wǎng)絡”的興起,如何通過有線或無線的方式將多個網(wǎng)絡設備及家庭設備互聯(lián)互通,最終實現(xiàn)設備之間自動發(fā)現(xiàn)、智能互聯(lián)、相互控制、資源共享等功能,成為了目前研究的熱點。UPnP是家庭網(wǎng)絡中的一個主流協(xié)議,它是一種基于TCP/IP之上的網(wǎng)絡應用層協(xié)議,為數(shù)字設備的接入、發(fā)現(xiàn)、控制等制定了一系列的規(guī)范。UPnP能夠讓處于同一家庭網(wǎng)絡中的各種設備連接起來并協(xié)同工作,使得用戶能夠使用任意設備訪問和欣賞家庭網(wǎng)絡中的多媒體內(nèi)容。
[0003]UPnP是一個分布式開放型網(wǎng)絡體系結(jié)構(gòu),它的基礎結(jié)構(gòu)包括三個基本單元,分別為:設備、服務以及控制點。設備是指在符合UPnP標準規(guī)范的網(wǎng)絡中,連網(wǎng)的所有元素。UPnP有規(guī)定的設備模型,設備主要包括其提供的服務、設備的屬性,設備描述定義了設備的基本屬性以及接口。服務就是指所有的UPnP設備所具備并且已經(jīng)在該網(wǎng)絡中發(fā)布的功能??刂泣c的實質(zhì)也是一個UPnP設備。它的主要工作是發(fā)現(xiàn)入網(wǎng)的設備并獲取設備所提供的服務,然后控制或調(diào)用這些服務。當控制點也提供服務時,它就可被視作一個UPnP設備。UPnP完整的工作流程包括:設備尋址、設備描述、設備發(fā)現(xiàn)、設備事件、設備控制、設備展示。每一終端設備都應當時DHCP (動態(tài)主機配置協(xié)議)的客戶端自動獲取一個IP地址,并向網(wǎng)絡中其他設備廣播其服務,同時該設備也會接收該網(wǎng)絡中的其他設備的廣播,從而得知某臺設備的存在以及它所提供的服務。設備可被視為服務器,它能夠向網(wǎng)絡中的其他設備發(fā)布自己所提供的服務。也可被視為控制點客戶,它可以在網(wǎng)絡中搜索其所感興趣的服務。若在網(wǎng)絡中搜索到符合客戶搜索條件的服務,控制點在獲取到設備的描述文檔后就可以對其服務控制或調(diào)用。
[0004]UPnP定義了通信的協(xié)議,在設備和控制點之間,其體系結(jié)構(gòu)如圖1所示。TCP/IP協(xié)議可以保證設備之間的交互操作性,并具有跨越各不相同的物理介質(zhì)的能力,是UPnP協(xié)議桟的基礎。SSDP (Simple Service Discovery Protocol,簡單服務發(fā)現(xiàn)協(xié)議)主要定義在網(wǎng)絡中發(fā)現(xiàn)服務的方法和規(guī)定如何存放在XML文件中的信息格式,為用戶提供一種無需任何配置,維護和管理設備服務的機制,也即實現(xiàn)“即插即用”。HTTP可用于信息的交互,在UPnP中使用HTTP協(xié)議的變種=HTTPMU和HTTPU,采用UDP/IP,而不是TCP/IP,從而不保證可靠性。XML對設備和服務進行了統(tǒng)一的描述。
[0005]UPnP是家庭網(wǎng)關(guān)與其他外部網(wǎng)絡進行通信的核心,是人們研究的重點。但是,在利用SSDP協(xié)議發(fā)現(xiàn)設備時,由于該協(xié)議本身的不可靠性,再加上依賴局域網(wǎng)的組播機制,設備在發(fā)現(xiàn)公告信息的時候可能會發(fā)生丟包等情況,尤其在有多個設備且設備之間需要精準通信時,可能更加不可靠,導致設備發(fā)現(xiàn)難,容易丟包,而且速度慢,進而無法進行多屏互動操控。這極大影響用戶體驗和服務質(zhì)量。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的UPnP設備發(fā)現(xiàn)與通信方法所具有的設備發(fā)現(xiàn)難、易丟包、速度慢等缺陷,從而提供一種快速發(fā)現(xiàn)UPnP設備的方法。
[0007]為了實現(xiàn)上述目的,本發(fā)明提供了一種通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法,包括:
[0008]步驟I)、控制點啟動后,讀取本地保存的最近連接的UPnP設備在設備發(fā)現(xiàn)階段所需信息,進而測試該UPnP設備上的UPnP服務是否可用,如果可用,繼續(xù)通過UPnP協(xié)議獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行步驟4),如果不存在最近連接的UPnP設備或最近連接的家庭網(wǎng)絡設備上的UPnP服務不可用,執(zhí)行下一步;
[0009]步驟2)、控制點在網(wǎng)絡中主動發(fā)送M-Search組播請求;其中,所述M-Search組播請求中包括控制點的TCP通信端口號與本地時間戳;
[0010]步驟3)、UPnP設備對最新接收到的某一控制點所發(fā)送的M-Search組播請求進行響應,在響應時,隨機延遲一定時間,然后根據(jù)控制點的IP地址以及所述M-Search組播請求所包含的TCP通信端口號信息與控制點之間建立TCP連接,通過該TCP連接向控制點響應設備發(fā)現(xiàn)所需信息,控制點根據(jù)所接收到的信息獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行下一步;
[0011]步驟4)、控制點獲取UPnP設備的設備信息、設備描述信息后,利用獲取到的UPnP設備IP地址和已知的服務端口,向該UPnP設備發(fā)送UDP格式的通信報文,實現(xiàn)控制點對UPnP設備的通信;
[0012]步驟5)、UPnP設備從獲取到的UDP格式的通信報文中,獲取與其最新通信的控制點IP地址,利用該IP地址,UPnP設備向該控制點返回下一步操作命令,實現(xiàn)UPnP設備對控制點發(fā)起的通信。
[0013]上述技術(shù)方案中,在所述的步驟3)中,若UPnP設備接收到的同一控制點所發(fā)送的M-Search組播請求有多個,則比較各個M-Search組播請求中的時間戳來確定最新接收到的M-Search組播請求。
[0014]上述技術(shù)方案中,在所述的步驟3)中,若UPnP設備在響應M-Search組播請求時未獲得TCP端口信息,則采用UDP響應的方式回復響應報文,控制點根據(jù)所接收到的信息獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行步驟4)。
[0015]上述技術(shù)方案中,在所述步驟3)中,所述隨機延遲一定時間在Is內(nèi)啟動。
[0016]本發(fā)明的優(yōu)點在于:
[0017]本發(fā)明的方法能夠加快發(fā)現(xiàn)家庭網(wǎng)絡設備,使得網(wǎng)絡通信更加穩(wěn)定。
【附圖說明】
[0018]圖1是UPnP協(xié)議的體系結(jié)構(gòu);
[0019]圖2是2本發(fā)明的方法在設備發(fā)現(xiàn)階段的基本工作流程圖;
[0020]圖3是本發(fā)明的方法在多屏互動操控中應用的基本工作流程圖。
【具體實施方式】
[0021]下面通過一個具體實施案例對本發(fā)明的方法做進一步闡述,首先介紹一下具體應用場景:
[0022]在多屏互動場景中,當用戶手持移動設備想對智能電視設備進行操控、文字輸入等多屏互動操作時,常常會遇到搜索很久都發(fā)現(xiàn)不了設備或者搜索很久才發(fā)現(xiàn)設備的場景。
[0023]針對這一應用場景,本發(fā)明的方法能夠解決家庭網(wǎng)絡設備之間發(fā)現(xiàn)慢、通信不穩(wěn)定的問題,參考圖2和圖3,本發(fā)明的方法包括以下步驟:
[0024]步驟1、基于UPnP協(xié)議庫(如Cling開源庫)搭建多屏互動系統(tǒng),并部署相應的服務在UPnP設備上,使接入的UPnP設備彼此之間可以自動發(fā)現(xiàn)。
[0025]步驟2、控制點啟動后,讀取本地保存的最近連接的家庭網(wǎng)絡設備(如MediaRender)在設備發(fā)現(xiàn)階段所需信息,測試該設備上的UPnP服務是否可用,如果可用,則不用再搜索,直接可繼續(xù)通過UPnP協(xié)議獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行步驟5 ;如果控制點是首次啟動,即不存在連接過的家庭網(wǎng)絡設備的信息,或者最近連接的家庭網(wǎng)絡設備上的UPnP服務不可用,執(zhí)行步驟3。
[0026]在本步驟中,所述的最近連接的家庭網(wǎng)絡設備在設備發(fā)現(xiàn)階段所需信息包括:最近連接的家庭網(wǎng)絡設備的一些特定信息,或者該家庭網(wǎng)絡設備上所部署的某項服務的信息;例如,家庭網(wǎng)絡設備或服務的UPnP類型、家庭網(wǎng)絡設備的標識符(UUID)、設備描述文檔的URL地址。UPnP設備描述階段的設備描述信息包括:對設備的描述、對設備所提供的服務的描述。UPnP對某一設備的描述以XML形式表示出來,對設備的描述包括制造商信息,包括豐吳塊名稱和編號、序列號、制造商名稱、制造商網(wǎng)站的URL等等。對設備的描述也包括所有嵌入設備描述和URL地址集。UPnP對設備所提供的服務的描述包括一系列命令或者動作、服務響應、動作的參數(shù)。對服務的描述也包含一系列變量,這些變量描述了服務運行時刻的狀態(tài),這包括數(shù)據(jù)類型、取值范圍和事件特性的描述。
[0027]步驟3、控制點在家庭網(wǎng)絡中主動發(fā)送M-Search組播請求,控制點在生成M-Search組播請求時,在封裝完M-Search請求信息后,同時把自己的TCP通信端口號發(fā)送出去,表明自己也可以支持TCP通信,同時攜帶發(fā)送本地時間戳。
[0028]步驟4、家庭網(wǎng)絡設備接收到M-Search組播請求信息后,如果發(fā)現(xiàn)同時收到多個來自同一控制點的請求,則比較時間戳信息,只對最新的請求信息進行響應;在響應M-Search組播請求時,家庭網(wǎng)絡設備如果發(fā)現(xiàn)M-Search組播請求的報文中攜帶TCP端口信息,在Is內(nèi)啟動隨機延遲一定時間后,利用IP地址和端口信息建立與控制點的TCP連接,通過該TCP連接向控制點響應設備發(fā)現(xiàn)所需的信息,控制點根據(jù)所接收到的信息獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行下一步;家庭網(wǎng)絡設備如果在M-Search組播請求的報文中未發(fā)現(xiàn)TCP端口信息,則采用UDP響應的方式回復響應報文,控制點根據(jù)所接收到的信息獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行下一步。
[0029]與現(xiàn)有技術(shù)中的UPnP協(xié)議相比,本發(fā)明的方法在本步驟中不再采用在Is內(nèi)啟動隨機延遲后發(fā)送UDP響應報文的方式。由于TCP連接是可靠的,因此不必像UDP響應那樣重復發(fā)送多個響應報文,降低網(wǎng)絡出現(xiàn)擁塞的可能性。
[0030]本步驟中,在建立TCP連接前采用了隨機延遲的方式,因此能夠有效降低控制點同時承載的通信連接的數(shù)量。
[0031]步驟5、控制點獲取家庭網(wǎng)絡設備的設備信息、設備描述信息后,可通過UDP協(xié)議,利用獲取到的設備IP地址和已知的服務端口,向Media Render家庭網(wǎng)絡設備發(fā)送通信報文,實現(xiàn)控制點對家庭網(wǎng)絡設備的發(fā)起的多屏操控交互。
[0032]步驟6、Media Render家庭網(wǎng)絡設備從獲取到的UDP格式的通信報文中,獲取最新發(fā)送的交互操作的控制點IP地址。利用獲取到的IP地址,Media Render家庭網(wǎng)絡設備可以精準、快速的向控制點返回下一步操作命令,實現(xiàn)家庭網(wǎng)絡設備對控制點發(fā)起的多屏操控交互。
[0033]最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應當理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應涵蓋在本發(fā)明的權(quán)利要求范圍當中。
【主權(quán)項】
1.一種通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法,包括: 步驟I)、控制點啟動后,讀取本地保存的最近連接的UPnP設備在設備發(fā)現(xiàn)階段所需信息,進而測試該UPnP設備上的UPnP服務是否可用,如果可用,繼續(xù)通過UPnP協(xié)議獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行步驟4),如果不存在最近連接的UPnP設備或最近連接的家庭網(wǎng)絡設備上的UPnP服務不可用,執(zhí)行下一步; 步驟2)、控制點在網(wǎng)絡中主動發(fā)送M-Search組播請求;其中,所述M-Search組播請求中包括控制點的TCP通信端口號與本地時間戳; 步驟3)、UPnP設備對最新接收到的某一控制點所發(fā)送的M-Search組播請求進行響應,在響應時,隨機延遲一定時間,然后根據(jù)控制點的IP地址以及所述M-Search組播請求所包含的TCP通信端口號信息與控制點之間建立TCP連接,通過該TCP連接向控制點響應設備發(fā)現(xiàn)所需信息,控制點根據(jù)所接收到的信息獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行下一步; 步驟4)、控制點獲取UPnP設備的設備信息、設備描述信息后,利用獲取到的UPnP設備IP地址和已知的服務端口,向該UPnP設備發(fā)送UDP格式的通信報文,實現(xiàn)控制點對UPnP設備的通信; 步驟5) ,UPnP設備從獲取到的UDP格式的通信報文中,獲取與其最新通信的控制點IP地址,利用該IP地址,UPnP設備向該控制點返回下一步操作命令,實現(xiàn)UPnP設備對控制點發(fā)起的通信。2.根據(jù)權(quán)利要求1所述的通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法,其特征在于,在所述的步驟3)中,若UPnP設備接收到的同一控制點所發(fā)送的M-Search組播請求有多個,則比較各個M-Search組播請求中的時間戳來確定最新接收到的M-Search組播請求。3.根據(jù)權(quán)利要求1所述的通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法,其特征在于,在所述的步驟3)中,若UPnP設備在響應M-Search組播請求時未獲得TCP端口信息,則采用UDP響應的方式回復響應報文,控制點根據(jù)所接收到的信息獲取UPnP設備描述階段的設備描述信息,然后執(zhí)行步驟4)。4.根據(jù)權(quán)利要求1所述的通用即插即用UPnP設備之間發(fā)現(xiàn)與通信的方法,其特征在于,在所述步驟3)中,所述隨機延遲一定時間在Is內(nèi)啟動。
【文檔編號】H04L29/06GK105991377SQ201510044169
【公開日】2016年10月5日
【申請日】2015年1月28日
【發(fā)明人】韓銳, 黃興旺, 劉麗琴, 郭志川
【申請人】中國科學院聲學研究所