新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STM32和W5500的UPnP自動(dòng)端口映射功能實(shí)現(xiàn)

基于STM32和W5500的UPnP自動(dòng)端口映射功能實(shí)現(xiàn)

作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
文章開始之前讓我們設(shè)想下面的幾個(gè)情形:我們在辦公室內(nèi)就能訪問到生產(chǎn)車間的網(wǎng)絡(luò)攝像機(jī),而無需到監(jiān)控室查看生產(chǎn)情況;在下班之前,或在回去的路上,就可以先打開家里的空調(diào)器和廚房設(shè)備,等進(jìn)入家門,立刻就是一個(gè)溫度宜人的環(huán)境――廚房里的飯也做好了;我們想在電視機(jī)上回味一下幾天前在景區(qū)拍的照片,把相機(jī)或者DV聯(lián)網(wǎng)就可以了,無需再去拷貝。工作生活都如此方便,將是一個(gè)很愜意的事情。
實(shí)現(xiàn)這些場景的網(wǎng)絡(luò)設(shè)備都要基于一種叫端口映射的網(wǎng)絡(luò)技術(shù)。端口映射就是路由器將外網(wǎng)某一個(gè)端口與內(nèi)網(wǎng)中某個(gè)設(shè)備的IP地址和端口號建立起一一對應(yīng)關(guān)系。內(nèi)網(wǎng)主動(dòng)訪問外網(wǎng)時(shí),路由器主動(dòng)建立了映射關(guān)系,內(nèi)外網(wǎng)間就可以通信。但是外網(wǎng)要主動(dòng)訪問內(nèi)網(wǎng)是不可行的,因?yàn)椴恢纼?nèi)網(wǎng)的設(shè)備IP和端口,只能和路由器外網(wǎng)通信。路由器可以進(jìn)行手動(dòng)配置端口映射,但是便攜式設(shè)備經(jīng)常移動(dòng),內(nèi)網(wǎng)的IP地址也是不是固定的,每次使用都要手動(dòng)配置路由器顯然是個(gè)麻煩的事情。本文就為你講解如何使用UPnP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備自動(dòng)配置路由器進(jìn)行端口映射。

一、UPnP協(xié)議簡介
UPnP(Universal Plug and Play,即插即用)是各種各樣的智能設(shè)備、無線設(shè)備和個(gè)人電腦等實(shí)現(xiàn)遍布全球的對等網(wǎng)絡(luò)連接(P2P)的結(jié)構(gòu)。使用UPnP達(dá)到的效果是任何設(shè)備一旦連接上網(wǎng)絡(luò),所有在網(wǎng)絡(luò)上的設(shè)備馬上就能知道有新設(shè)備加入,這些設(shè)備彼此之間能互相通信,更能直接使用或者控制它,一切都不需要人工設(shè)置。
1.1 UPnP結(jié)構(gòu)
服務(wù)、設(shè)備和控制點(diǎn)是UPnP網(wǎng)絡(luò)的基本組件,如圖1:


圖 1 UPnP組件圖
? 設(shè)備(Device):家電、手機(jī)、智能設(shè)備、無線設(shè)備、電腦等等都可以稱之為設(shè)備。
? 服務(wù)(Service):是指設(shè)備在不同情況下的動(dòng)作和設(shè)備的狀態(tài)。
? 控制點(diǎn)(Control Point):指的是可以發(fā)現(xiàn)并控制其他設(shè)備的控制設(shè)備。在UPnP網(wǎng)絡(luò)中,設(shè)備可以和控制點(diǎn)合并為同一臺設(shè)備。

1.2 UPnP工作流程
UPnP定義了設(shè)備之間、設(shè)備和控制點(diǎn)、控制點(diǎn)之間通信的協(xié)議。完整的UPnP有設(shè)備尋址、設(shè)備發(fā)現(xiàn)、設(shè)備描述、設(shè)備控制、事件通知和基于HTML的描述等幾部分構(gòu)成。UPnP協(xié)議最底層是TCP/IP協(xié)議,UPnP實(shí)現(xiàn)的工作流程如圖2所示:

圖2 UPnP實(shí)現(xiàn)的工作流程
尋址:就是找個(gè)可用IP地址。一般都采用DHCP服務(wù),使設(shè)備自動(dòng)得到一個(gè)IP地址。
發(fā)現(xiàn):加入到網(wǎng)絡(luò)中,設(shè)備會定期的以組播的方式表明自身的存在以及告知(Advertise)它提供的服務(wù);控制點(diǎn)則是網(wǎng)絡(luò)中廣播search packets來發(fā)現(xiàn)具有某些服務(wù)的設(shè)備,具有該服務(wù)的設(shè)備以單播的方式應(yīng)答。
描述:控制點(diǎn)可以從發(fā)現(xiàn)消息中得到設(shè)備描述的URL(可以認(rèn)為是瀏覽器地址),通過URL取回設(shè)備描述的信息。
控制、事件和展示則是控制點(diǎn)獲取描述之后進(jìn)行的各種通信交互。其中控制是控制點(diǎn)對設(shè)備進(jìn)行的操作;事件為設(shè)備向控制點(diǎn)定期發(fā)送其感興趣的信息,展示可以認(rèn)為是設(shè)備的一個(gè)功能,它給控制點(diǎn)一個(gè)URL,可以登錄到設(shè)備的網(wǎng)頁服務(wù)器。

上一頁 1 2 3 下一頁

關(guān)鍵詞: STM32W5500端口映

評論


技術(shù)專區(qū)

關(guān)閉