陳 磊, 張永剛, 周小林, 鄭立榮
(復(fù)旦大學(xué) 信息科學(xué)與工程學(xué)院,上海 200433)
基于郵件協(xié)議的NAT穿越遠(yuǎn)程升級(jí)與控制系統(tǒng)
陳 磊, 張永剛, 周小林, 鄭立榮
(復(fù)旦大學(xué) 信息科學(xué)與工程學(xué)院,上海 200433)
提出了一種新的實(shí)現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)穿越的方案:利用郵件服務(wù)器的POP3和SMTP協(xié)議傳遞相關(guān)IP地址和端口等信息,并通過(guò)“打洞”技術(shù),實(shí)現(xiàn)客戶(hù)端和設(shè)備結(jié)點(diǎn)之間的UDP連接.相比于利用程序服務(wù)器進(jìn)行“打洞”從而實(shí)現(xiàn)NAT穿越的方案,該方案運(yùn)營(yíng)成本更低,系統(tǒng)穩(wěn)定性更高,系統(tǒng)可移植性更強(qiáng).基于該NAT穿越方案,結(jié)合多設(shè)備結(jié)點(diǎn)、多種網(wǎng)絡(luò)環(huán)境的情況,引入固件升級(jí)模塊,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)物聯(lián)網(wǎng)智能設(shè)備的遠(yuǎn)程升級(jí)和控制系統(tǒng),并對(duì)系統(tǒng)的穩(wěn)健性進(jìn)行了探討.
NAT穿越; 點(diǎn)對(duì)點(diǎn)連接; POP3; SMTP; UDP
目前,物聯(lián)網(wǎng)技術(shù)已經(jīng)獲得巨大發(fā)展[1],點(diǎn)對(duì)點(diǎn)(P2P)技術(shù)已經(jīng)滲透到基礎(chǔ)設(shè)施、工業(yè)生產(chǎn)以及人們的生活中[2],越來(lái)越多的用戶(hù)和設(shè)備結(jié)點(diǎn)需要接入互聯(lián)網(wǎng)進(jìn)行信息交換和處理,因此也導(dǎo)致了IPv4地址資源面臨枯竭.國(guó)內(nèi)外普遍采用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)技術(shù)作為讓多設(shè)備連入互聯(lián)網(wǎng)的過(guò)渡手段[3].然而,NAT技術(shù)的“對(duì)外不可見(jiàn)”特性阻礙了系統(tǒng)中結(jié)點(diǎn)的P2P連接[4].
本課題研究NAT環(huán)境下,物聯(lián)網(wǎng)設(shè)備結(jié)點(diǎn)的一種建立P2P連接方式:利用郵件服務(wù)器的POP3和SMTP協(xié)議進(jìn)行NAT穿越的技術(shù).與常用的利用程序服務(wù)器進(jìn)行NAT穿越的方法對(duì)比,其優(yōu)勢(shì)在于:
1)可以減少成本.傳統(tǒng)的程序服務(wù)器不僅需要工程人員自行搭建或租借,而且后期的維護(hù)也是一筆不小的開(kāi)銷(xiāo).而本文作者使用的郵箱為互聯(lián)網(wǎng)中常見(jiàn)的個(gè)人郵箱,可以免費(fèi)長(zhǎng)期使用.
2)系統(tǒng)更加穩(wěn)定.相比于程序服務(wù)器,郵件服務(wù)器運(yùn)行時(shí)間上不間斷,技術(shù)上更加成熟,不易產(chǎn)生傳輸錯(cuò)誤.并且由于只需要對(duì)客戶(hù)端和設(shè)備端進(jìn)行程序的開(kāi)發(fā),可以有效避免程序服務(wù)器上出現(xiàn)錯(cuò)誤.
3)拓展性更強(qiáng).由于減少了服務(wù)器上相應(yīng)程序的開(kāi)發(fā),進(jìn)行系統(tǒng)移植時(shí),只需要修改客戶(hù)端和設(shè)備端程序,因此該方案具有更強(qiáng)的拓展性.
圖1 系統(tǒng)總結(jié)構(gòu)架
圖1為本研究的物聯(lián)網(wǎng)智能設(shè)備的遠(yuǎn)程升級(jí)和控制系統(tǒng)的整體架構(gòu).該系統(tǒng)主要分為3個(gè)部分:客戶(hù)端,設(shè)備結(jié)點(diǎn)和郵件服務(wù)器.
當(dāng)客戶(hù)端和設(shè)備結(jié)點(diǎn)處于不同NAT網(wǎng)絡(luò)下時(shí),兩者之間難以直接進(jìn)行通信連接.目前已有多種方案可以解決客戶(hù)端和設(shè)備端之間的通信問(wèn)題,其中較常用的Simple Traversal of UDP over NATs(STUN)方案利用程序服務(wù)器作為中介進(jìn)行NAT穿越.本研究利用郵件服務(wù)器替代STUN方案中的程序服務(wù)器,建立客戶(hù)端與設(shè)備端之間的P2P連接,實(shí)現(xiàn)客戶(hù)端對(duì)在線設(shè)備結(jié)點(diǎn)進(jìn)行信息查詢(xún)、P2P連接及遠(yuǎn)程固件升級(jí)等操作.因此,該系統(tǒng)主要包括兩個(gè)步驟:1)客戶(hù)端查看在線設(shè)備信息;2)客戶(hù)端連接或升級(jí)指定設(shè)備端.
反復(fù)進(jìn)行第一步操作,直到客戶(hù)端選定特定設(shè)備后進(jìn)入第二步,進(jìn)行連接或升級(jí)操作.當(dāng)?shù)诙酵瓿珊?一個(gè)完整的遠(yuǎn)程控制流程結(jié)束.
在該系統(tǒng)中,包含了客戶(hù)端、設(shè)備結(jié)點(diǎn)和郵箱三方之間的通信情況.分別設(shè)計(jì)了2套通信協(xié)議,分別對(duì)應(yīng)于與郵箱的通信情況以及客戶(hù)端和設(shè)備結(jié)點(diǎn)之間的通信情況.
2.1 與郵箱通信協(xié)議的制定
利用POP3協(xié)議和SMTP協(xié)議實(shí)現(xiàn)客戶(hù)端和設(shè)備的郵件收發(fā)功能[5].當(dāng)一方利用SMTP協(xié)議發(fā)送郵件,另一方通過(guò)POP3協(xié)議以某種頻率登錄相應(yīng)郵箱并查詢(xún)郵件,就能進(jìn)行近似于即時(shí)的傳遞信息.
設(shè)計(jì)客戶(hù)端、設(shè)備端與郵箱之間通信的協(xié)議如下:郵件類(lèi)型:設(shè)備ID:公網(wǎng)IP:port:私網(wǎng)IP:port:seq.
1)郵件類(lèi)型.該字段是通信協(xié)議的標(biāo)志,用于區(qū)分該通信協(xié)議郵件的類(lèi)型.字段分為4種類(lèi)型,分別為Update、Re_Up、State、Re_St.
2)設(shè)備ID.由于在該系統(tǒng)中需要對(duì)多設(shè)備進(jìn)行管理,因此讓每個(gè)設(shè)備擁有唯一的ID以標(biāo)識(shí)設(shè)備.通過(guò)在通信協(xié)議中增加設(shè)備ID字段,客戶(hù)端可以指定特定設(shè)備進(jìn)行連接,設(shè)備返回狀態(tài)信息時(shí)也能標(biāo)注狀態(tài)信息的來(lái)源.
3)IP和port.該字段表示客戶(hù)端或設(shè)備所在IP及其綁定端口.
4)Seq.該字段表示客戶(hù)端和設(shè)備端在一次完整升級(jí)過(guò)程中,通過(guò)郵箱傳遞信息的次數(shù).通過(guò)添加該字段,客戶(hù)端或設(shè)備可以判斷該郵件是否為此次升級(jí)步驟中有用的郵件,避免了之前進(jìn)行NAT穿越殘留的郵件干擾.
2.2 客戶(hù)端與設(shè)備結(jié)點(diǎn)通信協(xié)議的制定
考慮到采用UDP協(xié)議能夠提高NAT穿越的成功率,因此客戶(hù)端和設(shè)備結(jié)點(diǎn)是采用UDP協(xié)議進(jìn)行通信的.但是UDP面向非連接的特性使得接收方無(wú)法感知報(bào)文發(fā)送時(shí)的先后順序,以及是否有丟失報(bào)文的情況[6].因此,在程序設(shè)計(jì)中需要建立一定機(jī)制,保障數(shù)據(jù)的可靠傳輸.
圖2 協(xié)議結(jié)構(gòu)
圖2為客戶(hù)端與設(shè)備結(jié)點(diǎn)通信協(xié)議結(jié)構(gòu).該協(xié)議結(jié)構(gòu)主要分為6個(gè)部分:opcode,block,IP,Port,MAC和Message.opcode是命令字符,根據(jù)發(fā)送數(shù)據(jù)包的目的不同,opcode字段的值也不同.block是該數(shù)據(jù)包的編碼,主要是當(dāng)發(fā)送方將數(shù)據(jù)分開(kāi)發(fā)送時(shí),接收方通過(guò)該字段判斷報(bào)文的先后順序.IP、PORT和MAC可以存儲(chǔ)發(fā)送方的地址信息.Message字段存儲(chǔ)所需傳輸?shù)钠渌畔?
圖3 客戶(hù)端查看在線設(shè)備信息流程
相較于程序服務(wù)器通過(guò)運(yùn)行特定程序,實(shí)現(xiàn)保存、接收和發(fā)送信息等功能,郵箱只能通過(guò)郵件的接收和發(fā)送,被動(dòng)地實(shí)現(xiàn)存儲(chǔ)和發(fā)送信息的功能.因此,設(shè)計(jì)了客戶(hù)端查看設(shè)備結(jié)點(diǎn)在線情況及設(shè)備信息的方案,如圖3所示.
為了具有代表性,圖3中包含了設(shè)備結(jié)點(diǎn)與客戶(hù)端在同一NAT子網(wǎng)下及設(shè)備結(jié)點(diǎn)與客戶(hù)端在不同NAT子網(wǎng)下兩種情況.
在該方案中,客戶(hù)端是主動(dòng)發(fā)起連接方,設(shè)備結(jié)點(diǎn)是等待被連接方.因此,將設(shè)備結(jié)點(diǎn)設(shè)置為“查詢(xún)郵箱”階段,即定時(shí)訪問(wèn)郵箱,查詢(xún)是否有相應(yīng)設(shè)備端的指令郵件.下面是該方案的具體流程:
1)客戶(hù)端發(fā)送“請(qǐng)求設(shè)備結(jié)點(diǎn)在線情況”的郵件至郵箱,并設(shè)置T1時(shí)間后,查詢(xún)郵箱.
2)設(shè)備結(jié)點(diǎn)處于“查詢(xún)郵箱”階段,查詢(xún)時(shí)間間隔為T(mén)2.當(dāng)某個(gè)設(shè)備結(jié)點(diǎn)查詢(xún)到“請(qǐng)求設(shè)備結(jié)點(diǎn)在線信息”的郵件時(shí),便返回一封包含有該設(shè)備結(jié)點(diǎn)ID及其他設(shè)備信息的郵件至郵箱.
3)在設(shè)定時(shí)間結(jié)束后,客戶(hù)端登錄郵箱并查詢(xún)郵件,記錄下設(shè)備結(jié)點(diǎn)返回的郵件內(nèi)容信息.
值得注意的是,為保證所有在線的設(shè)備結(jié)點(diǎn)返回的郵件均能被客戶(hù)端讀取,考慮到存在時(shí)間延遲(主要為設(shè)備端登陸郵箱至發(fā)送郵件所花時(shí)間),因此設(shè)置T1=90 s,T2=60 s.
經(jīng)過(guò)上述流程,客戶(hù)端已匯總所有的在線設(shè)備結(jié)點(diǎn)返回的郵件信息.若客戶(hù)端未能查詢(xún)到某設(shè)備結(jié)點(diǎn)返回的郵件,則認(rèn)為該設(shè)備處于離線狀態(tài).值得注意的是,在進(jìn)入下一步驟之前,客戶(hù)端查看設(shè)備結(jié)點(diǎn)在線情況的步驟可以反復(fù)進(jìn)行.
客戶(hù)端經(jīng)查詢(xún)?cè)O(shè)備結(jié)點(diǎn)在線情況后,已獲取在線設(shè)備結(jié)點(diǎn)ID及IP地址等信息,便可以選定某一在線設(shè)備進(jìn)行連接.
圖4 客戶(hù)端連接指定設(shè)備結(jié)點(diǎn)
客戶(hù)端連接特定設(shè)備結(jié)點(diǎn)的具體流程如圖4所示.
由圖4可知流程如下:
1)客戶(hù)端發(fā)送請(qǐng)求NAT穿越郵件至郵箱,郵件主題中包含了所要連接設(shè)備結(jié)點(diǎn)的ID.
2)設(shè)備結(jié)點(diǎn)查詢(xún)郵箱.
3)當(dāng)發(fā)現(xiàn)該郵件主題中ID號(hào)與自身ID相同時(shí),便向客戶(hù)端地址進(jìn)行“打洞”.打洞是網(wǎng)絡(luò)通信的常用技術(shù),其從服務(wù)器上獲得目標(biāo)主機(jī)的外網(wǎng)端口和地址,可向目標(biāo)端口和地址傳輸一個(gè)數(shù)據(jù)包.若郵件主題中ID號(hào)與自身ID不同,則不作應(yīng)答.
4)指定設(shè)備結(jié)點(diǎn)“打洞”完成后,便返回一封確認(rèn)郵件至郵箱.
5)客戶(hù)端查詢(xún)到該郵件.
6)客戶(hù)端向指定設(shè)備結(jié)點(diǎn)發(fā)送UDP數(shù)據(jù)包進(jìn)行連接.
7)設(shè)備結(jié)點(diǎn)收到來(lái)自客戶(hù)端的數(shù)據(jù)包,向客戶(hù)端返回?cái)?shù)據(jù)包.客戶(hù)端和指定設(shè)備結(jié)點(diǎn)P2P連接建立.
在建立P2P連接之前,客戶(hù)端和設(shè)備結(jié)點(diǎn)是通過(guò)收發(fā)郵件進(jìn)行通信的,若沒(méi)有對(duì)郵件進(jìn)行特定處理,由于郵件的堆積,很容易產(chǎn)生郵件干擾問(wèn)題.
通過(guò)對(duì)郵件進(jìn)行編碼,達(dá)到解決郵件互相干擾問(wèn)題的目的.具體的運(yùn)行機(jī)制如圖5所示.
圖5 解決郵件互相干擾問(wèn)題
圖5中設(shè)置了兩個(gè)典型的設(shè)備結(jié)點(diǎn):設(shè)備1在客戶(hù)端第一次請(qǐng)求在線設(shè)備結(jié)點(diǎn)信息之前,就已經(jīng)連入網(wǎng).設(shè)備2為后連入網(wǎng)的設(shè)備.在該方案中,設(shè)s為seq字段的值,客戶(hù)端和設(shè)備端程序中分別設(shè)置變量c和d,初始值為1.下面進(jìn)行具體分析:
1)客戶(hù)端發(fā)送“請(qǐng)求在線”郵件,該郵件主題中s=c=1.郵件發(fā)送完成之后,c=c+1=2.
2)設(shè)備結(jié)點(diǎn)檢測(cè)到“請(qǐng)求在線”郵件,判斷c<=s是否成立.若是,該設(shè)備結(jié)點(diǎn)返回一封包含該設(shè)備ID及其他設(shè)備信息的確認(rèn)郵件至郵箱,并置c=s+1=2,客戶(hù)端在一定時(shí)間后訪問(wèn)郵箱,下載并即時(shí)刪除設(shè)備結(jié)點(diǎn)返回的郵件.若不成立,則設(shè)備端認(rèn)為該郵件已閱讀過(guò),不會(huì)進(jìn)行下一步操作.
第一步和第二步交替進(jìn)行,則可解決客戶(hù)端請(qǐng)求設(shè)備結(jié)點(diǎn)在線情況中郵件干擾問(wèn)題.當(dāng)客戶(hù)端經(jīng)過(guò)n次查詢(xún)?cè)O(shè)備結(jié)點(diǎn)在線情況結(jié)束后,則進(jìn)入客戶(hù)端連接在線設(shè)備結(jié)點(diǎn)步驟.此時(shí),c=d=n.
3)客戶(hù)端發(fā)送“請(qǐng)求連接”郵件,郵件主題中包含指定連接設(shè)備的ID,并令s=c=n,郵件發(fā)送完成后,將c置為初始值1.設(shè)備結(jié)點(diǎn)檢測(cè)到該郵件,判斷郵件ID與自身設(shè)備ID是否相符,以及c<=s是否成立.如果兩者都成立,則進(jìn)入相應(yīng)連接狀態(tài),置c=1.如果兩者有一項(xiàng)不成立,置c=0.
以上步驟是一個(gè)完整的系統(tǒng)流程.在一個(gè)流程結(jié)束后,客戶(hù)端和設(shè)備結(jié)點(diǎn)返回初始狀態(tài)(置c=d=1),準(zhǔn)備下一流程.
考慮到實(shí)際情況,采用“閱后即刪”和對(duì)郵件進(jìn)行編號(hào)相結(jié)合的方法,即在對(duì)郵件進(jìn)行編號(hào)的基礎(chǔ)上,對(duì)原有設(shè)計(jì)進(jìn)行相應(yīng)改進(jìn):
第一步驟中,當(dāng)客戶(hù)端收集完設(shè)備結(jié)點(diǎn)在線信息后,客戶(hù)端負(fù)責(zé)刪除“請(qǐng)求在線”郵件以及設(shè)備結(jié)點(diǎn)返回的郵件.
第二步驟中,指定連接的設(shè)備結(jié)點(diǎn)負(fù)責(zé)刪除客戶(hù)端的“請(qǐng)求連接”郵件,客戶(hù)端負(fù)責(zé)刪除設(shè)備結(jié)點(diǎn)返回的郵件.
由于在該系統(tǒng)中,一個(gè)完整的客戶(hù)端查看設(shè)備結(jié)點(diǎn)在線情況并進(jìn)行連接的流程,所耗時(shí)間大于2 min,而刪除郵件指令的響應(yīng)時(shí)間在1 min以?xún)?nèi).因此,采用兩個(gè)方法結(jié)合的辦法,可以有效避免郵件的互相干擾問(wèn)題.
在設(shè)備端與設(shè)備結(jié)點(diǎn)建立P2P連接后,基于以下兩點(diǎn)增加設(shè)備端的固件升級(jí)功能:
1)開(kāi)發(fā)人員不可能在初期設(shè)計(jì)出十全十美的程序,程序的漏洞也許在程序發(fā)布后才體現(xiàn)出來(lái),需要采取固件升級(jí)的方法解決程序bug.
2)隨著需求的不斷提升,現(xiàn)有的設(shè)備功能不能滿(mǎn)足需求.因此需要進(jìn)行固件升級(jí)增加相應(yīng)功能.
而在一個(gè)物聯(lián)網(wǎng)系統(tǒng)中可能存在成百上千個(gè)設(shè)備結(jié)點(diǎn),這些設(shè)備結(jié)點(diǎn)也可能處于不同地點(diǎn).如果讓開(kāi)發(fā)人員至現(xiàn)場(chǎng)直接對(duì)設(shè)備結(jié)點(diǎn)進(jìn)行固件升級(jí)工作,將會(huì)是一個(gè)龐大的工程.因此,物聯(lián)網(wǎng)系統(tǒng)中設(shè)備結(jié)點(diǎn)的固件升級(jí)與本研究的遠(yuǎn)程連接相結(jié)合,有一定現(xiàn)實(shí)意義.所選用的固件升級(jí)模塊的具體設(shè)計(jì)方案參見(jiàn)文獻(xiàn)[7].
實(shí)驗(yàn)仿真主要包括兩個(gè)部分:1)客戶(hù)端查看在線設(shè)備結(jié)點(diǎn)信息;2)客戶(hù)端與指定在線設(shè)備建立P2P連接及遠(yuǎn)程固件升級(jí).
在本章的實(shí)驗(yàn)仿真中,設(shè)置了一個(gè)運(yùn)行在VS2013上的客戶(hù)端程序,以及兩個(gè)設(shè)備結(jié)點(diǎn):S20C開(kāi)發(fā)平臺(tái),并將客戶(hù)端和設(shè)備結(jié)點(diǎn)分別設(shè)置在同一局域網(wǎng)下及不同NAT子網(wǎng)下兩種網(wǎng)絡(luò)環(huán)境.
下面分別闡述和分析實(shí)驗(yàn)結(jié)果.
7.1 查看在線設(shè)備結(jié)點(diǎn)信息部分
圖6 客戶(hù)端查看設(shè)備結(jié)點(diǎn)信息的程序運(yùn)行截圖
首先,第一步驟為點(diǎn)擊“Online Devices”按鍵,發(fā)送請(qǐng)求在線設(shè)備結(jié)點(diǎn)情況的郵件.當(dāng)所有在線設(shè)備結(jié)點(diǎn)查詢(xún)到該郵件并返回設(shè)備信息郵件后,在線設(shè)備欄顯示在線設(shè)備結(jié)點(diǎn)的ID.這時(shí)可以通過(guò)選擇設(shè)備列表中的在線設(shè)備結(jié)點(diǎn),在設(shè)備信息欄中查詢(xún)?cè)撛O(shè)備結(jié)點(diǎn)的詳細(xì)信息.在客戶(hù)端界面的Status Bar中顯示了客戶(hù)端程序運(yùn)行狀態(tài).當(dāng)?shù)谝徊襟E完成后,在線設(shè)備結(jié)點(diǎn)ID顯示在Online Devices中(本例在線設(shè)備為Device 1和Device 2).在Device List中選定某個(gè)在線設(shè)備結(jié)點(diǎn),則其相應(yīng)信息顯示在Device Information欄中,如圖6所示.
圖7為設(shè)備結(jié)點(diǎn)(Device 1)檢測(cè)到客戶(hù)端發(fā)送的郵件并返回相應(yīng)郵件.
圖7 Device 1的程序運(yùn)行截圖
圖8顯示了客戶(hù)端發(fā)送的請(qǐng)求在線設(shè)備信息郵件和設(shè)備結(jié)點(diǎn)(Device 1和Device 2)返回的郵件.
圖8 步驟1郵箱中的郵件信息
7.2 遠(yuǎn)程連接與升級(jí)部分
當(dāng)?shù)谝徊襟E完成之后,可以進(jìn)入遠(yuǎn)程連接與升級(jí)部分.首先點(diǎn)擊“Updating File”按鈕,選擇本地的升級(jí)文件.之后在Device List中選擇待固件升級(jí)的在線設(shè)備ID(本例為Device 1),選中的設(shè)備ID會(huì)在Devices for Updating欄里顯示.接下來(lái)再點(diǎn)擊“Update”按鈕,執(zhí)行連接設(shè)備結(jié)點(diǎn)及固件升級(jí)操作.
值得注意的是,在設(shè)備端“打洞”之后,客戶(hù)端會(huì)先嘗試進(jìn)行局域網(wǎng)連接,若在一定時(shí)間內(nèi)設(shè)備端沒(méi)有響應(yīng),則嘗試不同NAT子網(wǎng)的連接.
圖9 不同NAT子網(wǎng)下,客戶(hù)端與設(shè)備結(jié)點(diǎn)建立連接界面
圖9為不同NAT子網(wǎng)下,客戶(hù)端與設(shè)備結(jié)點(diǎn)建立連接界面,方框中顯示了客戶(hù)端與設(shè)備結(jié)點(diǎn)在不同NAT子網(wǎng)下時(shí),兩者成功進(jìn)行NAT穿越并建立P2P連接,之后進(jìn)行遠(yuǎn)程固件升級(jí).
圖10為設(shè)備端的調(diào)試信息,圖中方框部分是客戶(hù)端與設(shè)備端建立P2P連接之后,設(shè)備端(該例為Device 1)的程序運(yùn)行固件升級(jí)部分.
圖11為步驟2郵箱中郵件信息,顯示了遠(yuǎn)程連接與固件升級(jí)的步驟中,客戶(hù)端和設(shè)備端在建立P2P連接時(shí)通過(guò)郵件進(jìn)行地址交換.
分析了NAT和NAT穿越理論、郵件服務(wù)器的特點(diǎn),提出了一種新的解決NAT之間通信問(wèn)題的方案——利用郵件服務(wù)器的NAT穿越方法,設(shè)計(jì)了一個(gè)遠(yuǎn)程控制系統(tǒng),并對(duì)系統(tǒng)進(jìn)行仿真測(cè)試.與原有的利用服務(wù)器進(jìn)行NAT穿越的方法對(duì)比,本方案具有降低成本,增加系統(tǒng)穩(wěn)定性以及更強(qiáng)的拓展性等優(yōu)點(diǎn),在小規(guī)模、低強(qiáng)度,對(duì)系統(tǒng)速度要求不高的應(yīng)用情況下,可以作為一種替代方案使用.
圖10 設(shè)備端的調(diào)試信息
圖11 步驟2郵箱中郵件信息
[1] 毛燕琴,沈蘇彬.物聯(lián)網(wǎng)信息模型與能力分析 [J].軟件學(xué)報(bào),2014(8):1685-1695.
Mao Y Q,Shen S B.Information model and capability analysis of the Internet of things.Journal of Software,2014,25(8):1685-1695.
[2] 閆薇.基于P2P技術(shù)的視頻會(huì)議系統(tǒng)的研究與設(shè)計(jì) [D].哈爾濱:哈爾濱理工大學(xué),2007.
Yan W.Research and design of video conferencing system based on P2P [D].Harbin:Harbin University of Science and Technology,2007.
[3] 彭祥.第三方不完全代理的TCP穿透NAT的技術(shù)研究 [D].長(zhǎng)沙:湖南師范大學(xué),2014.
Peng X.The research on NAT traversal of TCP based on incomplete third-party agent server [D].Changsha:Hunan Normal University,2014.
[4] 曹申會(huì).NAT穿越技術(shù)研究與實(shí)現(xiàn) [D].南京:南京郵電大學(xué),2013.
Cao S H.The study and implementation of NAT traversal technology [D].Nanjing:Nanjing University of Posts and Telecommunications,2013.
[5] 李志博,余正紅,尹朝慶,等.郵件服務(wù)智能代理的研究 [D].武漢:武漢理工大學(xué),2007.
Li Z B,Yu Z H,Yin C Q,et al.The research on Internet agent for mail server [D].Wuhan:Wuhan University of Technology,2007.
[6] 黃亮.一個(gè)基于UDP協(xié)議的P2P即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn) [D].武漢:華中科技大學(xué),2011.
Huang L.The design and implementation of an UDP-based P2P instant messaging software [D].Wuhan:Huazhong University of Science and Technology,2011.
[7] 鄭澤銘.物聯(lián)網(wǎng)智能設(shè)備遠(yuǎn)程固件升級(jí)的設(shè)計(jì)與實(shí)現(xiàn) [D].上海:復(fù)旦大學(xué),2015.
Zheng Z M.Design and implementation of remote upgrading for IoT [D].Shanghai:Fudan University,2015.
(責(zé)任編輯:包震宇,顧浩然)
Remote upgrade and control system of NAT crossingbased on mail protocol
Chen Lei, Zhang Yonggang, Zhou Xiaolin, Zheng Lirong
(School of Information Science and Technology,Fudan University,shanghai 200433,China)
This paper proposes a new scheme which uses transmits information such as related IP address and port by the mail server POP3 and SMTP protocol to realize net address turning (NAT) crossing.The UDP connection between client and device node is realized by using "burrow" technology.Compared to the scheme that uses procedure server to realize NAT crossing schemes by the "burrow" technology,our scheme has advantages of saving operating costs,improving the stability of the system and enhancing the transferability of the system.With multiple equipment node,and a variety of network environment,we introduces the firmware update module,designs and realizes the remote upgrade and the control system of an intelligent device of Internet of Things based on the proposed scheme,and discusses the robustness of the system.
NAT crossing; P2P connection; POP3; SMTP; UDP
10.3969/J.ISSN.1000-5137.2017.01.026
2016-11-27
國(guó)家科技支撐課題項(xiàng)目(2015BAD17B04)
陳 磊(1993-),男,碩士研究生,主要從事網(wǎng)絡(luò)通信方面的研究.E-mail:14210720168@fudan.edu.cn
導(dǎo)師簡(jiǎn)介: 周小林(1973-),男,副教授,主要從事無(wú)線通信、移動(dòng)通信、信號(hào)處理等方面的研究.E-mail:zhouxiaolin@fudan.edu.cn(通信聯(lián)系人)
TN 929.5
A
1000-5137(2017)01-0156-07