專利名稱:一種跨網(wǎng)關(guān)通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)通信領(lǐng)域,特別是一種跨網(wǎng)關(guān)數(shù)據(jù)通信的方法。
背景技術(shù):
目前的全球因特網(wǎng)所采用的協(xié)議族是TCP/IP協(xié)議族。IP是TCP/IP協(xié)議族中網(wǎng)絡(luò)層的協(xié)議,是TCP/IP協(xié)議族的核心協(xié)議。目前IP協(xié)議的版本號是4(簡稱為IPv4)?,F(xiàn)行的IPV4的IP地址是32位的,根據(jù)頭幾位再劃分為A、B、C三類地址;但由于因特網(wǎng)的迅猛發(fā)展,IP資源日漸枯竭,可供分配的IP地址越來越少,跟一日千里的因特網(wǎng)發(fā)展嚴(yán)重沖突,在IPV6還遠(yuǎn)未能全面升級的情況下,惟有以代理服務(wù)器的方式,實行內(nèi)部網(wǎng)地址跟公網(wǎng)地址進(jìn)行轉(zhuǎn)化而實現(xiàn)接入因特網(wǎng),中介作用的代理服務(wù)器就是一個網(wǎng)關(guān)NAT(英文全稱是NetworkAddress Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)。
NAT是一個IETF標(biāo)準(zhǔn),允許一個機構(gòu)以一個地址出現(xiàn)在Internet上。NAT將每個局域網(wǎng)節(jié)點的地址轉(zhuǎn)換成一個IP地址,反之亦然。它可以應(yīng)用到防火墻技術(shù)里,把個別IP地址隱藏起來不被外界發(fā)現(xiàn),使外界無法直接訪問內(nèi)部網(wǎng)絡(luò)設(shè)備,同時,它還幫助網(wǎng)絡(luò)可以超越地址的限制,合理地安排網(wǎng)絡(luò)中的公有Internet地址和私有IP地址的使用。
NAT設(shè)備在處理端口映射的方式以及與NAT外主機通信的方式上是不同的。STUN(Simple Traversal of UDP Through NATs)協(xié)議下按照這兩種方式的不同將NAT分為四種類型全通型NAT(Full Cone)、地址限制型NAT(RestrictedCone)、端口限制型NAT(PortRestricted Cone)和對稱性NAT(Symmetric)。
現(xiàn)有技術(shù)中,一個位于NAT下的私網(wǎng)終端欲與位于公網(wǎng)上的終端或位于其它NAT下的私網(wǎng)終端通信,一般的跨網(wǎng)關(guān)解決方案是在公網(wǎng)上架設(shè)跨網(wǎng)關(guān)服務(wù)器,通過跨網(wǎng)關(guān)服務(wù)器獲得私網(wǎng)終端所對應(yīng)的外網(wǎng)地址(包括IP地址和端口)。該服務(wù)器的工作模式一般為STUN模式或TURN模式。
但是這兩種模式各自存在缺陷,如STUN模式對對稱型NAT的通信沒有任何幫助,而TURN模式雖然可以實現(xiàn)各種類型的NAT通信,但是由于各類型NAT的各自特性,地址限制型NAT、端口限制型NAT以及對稱性NAT所能接收的數(shù)據(jù)包的IP地址和端口都必須是曾經(jīng)從NAT內(nèi)發(fā)送到NAT外的某個數(shù)據(jù)包的目標(biāo)IP地址和端口。目前也有采用微軟的UPnP(Universal Plug and Play)技術(shù)實現(xiàn)跨網(wǎng)關(guān)。UPnP規(guī)范是基于TCP/IP協(xié)議和針對設(shè)備彼此間通信而制訂的新的Internet協(xié)議。它的制定正是希望未來所有聯(lián)入Internet中的設(shè)備能夠不受網(wǎng)關(guān)阻礙的相互通信。因此似乎能夠成功解決跨網(wǎng)關(guān)的技術(shù)問題。但是,由于這種技術(shù)的安全性由UPnP終端來保證,因此它是不能在安全性要求較高的場合應(yīng)用的,這就限制了這種技術(shù)的廣泛應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種可以實現(xiàn)任意類型的網(wǎng)關(guān)都能接收消息,實現(xiàn)跨越所有類型的網(wǎng)關(guān)的跨網(wǎng)關(guān)通信方法。
為了解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案是一種跨網(wǎng)關(guān)通信的方法,應(yīng)用于設(shè)置在公網(wǎng)上的跨網(wǎng)關(guān)服務(wù)器、網(wǎng)關(guān)以及設(shè)置在網(wǎng)關(guān)內(nèi)的私網(wǎng)終端,包括跨網(wǎng)關(guān)服務(wù)器啟動步驟和跨網(wǎng)關(guān)通信步驟,其中所述跨網(wǎng)關(guān)服務(wù)器啟動步驟包括跨網(wǎng)關(guān)服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟以及跨網(wǎng)關(guān)服務(wù)器打開監(jiān)聽端口port0進(jìn)行監(jiān)聽步驟;所述跨網(wǎng)關(guān)通信步驟包括(1)所述私網(wǎng)終端通過網(wǎng)關(guān)向跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口port0發(fā)送分配請求;(2)網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,從而為私網(wǎng)終端分配一個端口port1;(3)所述跨網(wǎng)關(guān)服務(wù)器根據(jù)監(jiān)聽端口port0所獲得的分配請求,分配另一個端口port1-1,并在映射表內(nèi)記錄網(wǎng)關(guān)端口port1與跨網(wǎng)關(guān)服務(wù)器端口port1-1的映射關(guān)系,然后發(fā)送一個答復(fù)給網(wǎng)關(guān),從而通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到所述私網(wǎng)終端;(4)所述跨網(wǎng)關(guān)服務(wù)器的端口port1-1上收到消息后,跨網(wǎng)關(guān)服務(wù)器將根據(jù)其映射表內(nèi)所記錄的映射關(guān)系,將消息轉(zhuǎn)發(fā)到所述網(wǎng)關(guān),從而通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到所述私網(wǎng)終端上。
進(jìn)一步的,所述步驟3中,跨網(wǎng)關(guān)服務(wù)器可以在映射表內(nèi)記錄網(wǎng)關(guān)端口port1的IP地址和端口號、跨網(wǎng)關(guān)服務(wù)器的端口port1-1所在的IP地址和端口號。
進(jìn)一步的,所述步驟3中,跨網(wǎng)關(guān)服務(wù)器還可在映射表中記錄協(xié)議類型。
優(yōu)選的,所述協(xié)議類型可以為UDP,所述步驟3中,所述跨網(wǎng)關(guān)服務(wù)器是通過其監(jiān)聽端口port0發(fā)送答復(fù)給網(wǎng)關(guān)。
優(yōu)選的,所述協(xié)議類型可以為TCP,所述步驟3中,跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口port0收到來自網(wǎng)關(guān)后的私網(wǎng)終端的連接請求后,將先分配一個通信端口port1-0,并通過通信端口port1-0返回一個答復(fù)給所述私網(wǎng)終端,從而與私網(wǎng)終端建立連接;然后私網(wǎng)終端發(fā)送一個分配請求,這時跨網(wǎng)關(guān)服務(wù)器再開辟另一個監(jiān)聽端口port0-1,當(dāng)監(jiān)聽端口port0-1收到來自其它終端的連接請求時,將分配另一個端口port1-1,然后跨網(wǎng)關(guān)服務(wù)器在映射表內(nèi)記錄端口port1-1的IP地址及端口號、所述其它終端的IP地址和端口號、所述通信端口port1-0的IP地址及端口號、所述網(wǎng)關(guān)端口port1的IP地址和端口號、以及網(wǎng)關(guān)與跨網(wǎng)關(guān)服務(wù)器通信的協(xié)議類型和其它終端與跨網(wǎng)關(guān)服務(wù)器通信的協(xié)議類型。
進(jìn)一步的,所述監(jiān)聽端口port0-1在監(jiān)聽到消息后則可關(guān)閉端口,不再進(jìn)行監(jiān)聽。
進(jìn)一步的,還可包括加密步驟,該加密步驟包括A、私網(wǎng)終端從跨網(wǎng)關(guān)服務(wù)器獲得臨時用戶名和密碼;B、私網(wǎng)終端采用所獲得的臨時用戶名和密碼對發(fā)送消息進(jìn)行加密。
進(jìn)一步的,所述步驟A具體可以為所述私網(wǎng)終端向跨網(wǎng)關(guān)服務(wù)器發(fā)送一個TLS Transport Layer Security傳輸層安全連接,并將其用戶名作為欲發(fā)送消息的一個屬性,用密碼對私網(wǎng)終端發(fā)出的消息進(jìn)行加密計算,并將計算結(jié)果作為欲發(fā)送消息的另一個屬性,將消息發(fā)送給跨網(wǎng)關(guān)服務(wù)器;所述跨網(wǎng)關(guān)服務(wù)器對這條消息進(jìn)行驗證,如果驗證通過,則將生成一對新的臨時用戶名和密碼,并通過所述TLS連接返回給私網(wǎng)終端,私網(wǎng)終端在收到新的臨時用戶名和密碼后,將斷開該TLS連接。
進(jìn)一步的,所述步驟B具體可以為所述私網(wǎng)終端在通過網(wǎng)關(guān)端口port1向跨網(wǎng)關(guān)服務(wù)器發(fā)送分配請求時,將新得到的臨時用戶名作為請求的一個屬性,用新得到的臨時密碼對該請求進(jìn)行加密計算,并將計算結(jié)果作為該請求的另一個屬性,然后將帶有兩個屬性的分配請求發(fā)送給所述跨網(wǎng)關(guān)服務(wù)器,所述跨網(wǎng)關(guān)服務(wù)器接收到該分配請求后,首先驗證用戶名和密碼,在驗證通過后,才作后續(xù)處理。
進(jìn)一步的,所述跨網(wǎng)關(guān)服務(wù)器的初始化內(nèi)部映射表步驟具體為將內(nèi)部映射表清空。
在上述技術(shù)方案中,本發(fā)明由于采用私網(wǎng)終端向跨網(wǎng)關(guān)服務(wù)器登錄,從而獲得跨網(wǎng)關(guān)服務(wù)器為其所分配的地址和端口,這樣,當(dāng)其它終端欲向該私網(wǎng)終端發(fā)送消息時,不必要求該私網(wǎng)終端先與之連接,而只需要直接向其跨網(wǎng)關(guān)服務(wù)器上的所分配的地址和端口發(fā)送消息,該私網(wǎng)終端即可接收到消息。另外,本發(fā)明還通過協(xié)議類型的定義,使本發(fā)明即可適用于UDP協(xié)議通信,亦可使用與TCP協(xié)議通信。進(jìn)一步的,本發(fā)明還通過加密的方式增加了網(wǎng)絡(luò)通信的安全性。因此相對現(xiàn)有技術(shù),本發(fā)明具有方法簡單、通信無限制、安全可靠、使用范圍廣等特點。
附圖1為本發(fā)明的第一種較佳實施例的系統(tǒng)結(jié)構(gòu)原理圖;附圖2為本發(fā)明的第二種較佳實施例的系統(tǒng)結(jié)構(gòu)原理圖。
具體實施例方式
下面將結(jié)合說明書附圖及具體實施例對本發(fā)明作進(jìn)一步詳細(xì)說明。
實施例1參考附圖1,本實施例所提供的一種跨網(wǎng)關(guān)通信的方法,應(yīng)用于設(shè)置在公網(wǎng)(Internet網(wǎng))上的跨網(wǎng)關(guān)服務(wù)器、網(wǎng)關(guān)以及設(shè)置在網(wǎng)關(guān)內(nèi)的私網(wǎng)終端。適用于UDP協(xié)議。
該跨網(wǎng)關(guān)通信的方法中,首先進(jìn)行跨網(wǎng)關(guān)服務(wù)器啟動步驟。
所述跨網(wǎng)關(guān)服務(wù)器啟動步驟包括跨網(wǎng)關(guān)服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟以及跨網(wǎng)關(guān)服務(wù)器打開監(jiān)聽端口port0進(jìn)行監(jiān)聽步驟。其中,所述跨網(wǎng)關(guān)服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟具體是指如果跨網(wǎng)關(guān)服務(wù)器內(nèi)部沒有映射表,則跨網(wǎng)關(guān)服務(wù)器將建立一張映射表,該映射表由若干條記錄構(gòu)成,且每一條記錄是一個四元組,其具體內(nèi)容將在下文中描述。如果跨網(wǎng)關(guān)服務(wù)器內(nèi)部已經(jīng)存在該映射表,則清空映射表的內(nèi)容,以獲得最新的映射關(guān)系。
當(dāng)跨網(wǎng)關(guān)服務(wù)器完成映射表的設(shè)置和初始化步驟后,將打開監(jiān)聽端口port0,進(jìn)入監(jiān)聽狀態(tài)。
這時,位于網(wǎng)關(guān)下的私網(wǎng)終端與其它終端之間就可以通過所述跨網(wǎng)關(guān)服務(wù)器進(jìn)行跨網(wǎng)關(guān)的通信了。其跨網(wǎng)關(guān)通信步驟具體如下首先,所述私網(wǎng)終端通過網(wǎng)關(guān)向跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口port0發(fā)送分配請求。網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,從而為私網(wǎng)終端分配一個端口port1。
本實施例中,我們設(shè)置私網(wǎng)終端的內(nèi)網(wǎng)IP地址為10.0.1.16,其通過端口5500連接網(wǎng)關(guān)。網(wǎng)關(guān)的公網(wǎng)IP地址為202.1.1.1,它進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換時為私網(wǎng)終端分配的端口port1的端口號為2222。從而有映射關(guān)系10.0.1.165500→202.1.1.12222。
所述跨網(wǎng)關(guān)服務(wù)器根據(jù)監(jiān)聽端口port0所獲得的請求,分配另一個端口port1-1,并在映射表內(nèi)記錄網(wǎng)關(guān)端口port1與跨網(wǎng)關(guān)服務(wù)器端口port1-1的映射關(guān)系,具體為記錄網(wǎng)關(guān)端口port1的IP地址和端口號、跨網(wǎng)關(guān)服務(wù)器的端口port1-1所在的IP地址和端口號。本實施例中我們設(shè)置監(jiān)聽端口port0的IP地址及端口號為202.0.10.1684000。設(shè)置端口port1-1的IP地址及端口號為202.0.10.1695000。因此,映射表內(nèi)記錄的映射關(guān)系為202.1.1.12222→202.0.10.1695000。
跨網(wǎng)關(guān)服務(wù)器再通過端口port0發(fā)送一個答復(fù)給網(wǎng)關(guān),從而通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到所述私網(wǎng)終端。
一旦跨網(wǎng)關(guān)服務(wù)器在映射表內(nèi)記錄下私網(wǎng)終端的地址映射關(guān)系,其它終端(不論是位于公網(wǎng),還是位于網(wǎng)關(guān)下的私網(wǎng))只要獲知了跨網(wǎng)關(guān)服務(wù)器上的端口port1-1的IP地址和端口號,就可以向私網(wǎng)終端發(fā)送消息了。
所述跨網(wǎng)關(guān)服務(wù)器的端口port1-1上收到消息后,跨網(wǎng)關(guān)服務(wù)器將根據(jù)其映射表內(nèi)所記錄的映射關(guān)系,將消息通過端口port0轉(zhuǎn)發(fā)到所述網(wǎng)關(guān),從而通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到所述私網(wǎng)終端上。
如此則完成了私網(wǎng)終端接收來自其它終端的消息的步驟。
本實施例的方法中,由于來自其它終端的消息是通過跨網(wǎng)關(guān)服務(wù)器中轉(zhuǎn)的,而私網(wǎng)終端之前已經(jīng)與跨網(wǎng)關(guān)服務(wù)器互發(fā)消息過,因此,跨網(wǎng)關(guān)服務(wù)器總是能夠?qū)⑾⑥D(zhuǎn)發(fā)到私網(wǎng)終端上,而不再受到網(wǎng)關(guān)類型的限制,從而達(dá)到跨越網(wǎng)關(guān)的目的。
同樣,在本實施例中,我們也能看出,一方面本實施例只能應(yīng)用于UDP協(xié)議下,使用范圍略有局限;另一方面,私網(wǎng)終端與跨網(wǎng)關(guān)服務(wù)器之間的通信由于缺乏身份認(rèn)證,安全性不高。因此下面給出本發(fā)明的另一個較佳實施例。
實施例2參考附圖2,本實施例與實施例1同樣應(yīng)用于設(shè)置在公網(wǎng)(Internet網(wǎng))上的跨網(wǎng)關(guān)服務(wù)器、網(wǎng)關(guān)以及設(shè)置在網(wǎng)關(guān)內(nèi)的私網(wǎng)終端。不同的是,本實施例所提供的跨網(wǎng)關(guān)通信方法不僅適用于UDP協(xié)議,還適用于TCP協(xié)議。其具體流程如下與實施例1相同,本實施例的方法也首先進(jìn)行跨網(wǎng)關(guān)服務(wù)器啟動步驟。
所述跨網(wǎng)關(guān)服務(wù)器啟動步驟包括服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟以及服務(wù)器打開監(jiān)聽端口port0進(jìn)行監(jiān)聽步驟。其中,所述跨網(wǎng)關(guān)服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟具體是指如果跨網(wǎng)關(guān)服務(wù)器內(nèi)部沒有映射表,則跨網(wǎng)關(guān)服務(wù)器將建立一張映射表,該映射表由若干條記錄構(gòu)成,且每一條記錄是一個或兩個五元組,該五元組中包括協(xié)議類型,其具體內(nèi)容將在下文中描述。如果跨網(wǎng)關(guān)服務(wù)器內(nèi)部已經(jīng)存在該映射表,則清空映射表的內(nèi)容,以獲得最新的映射關(guān)系。
當(dāng)跨網(wǎng)關(guān)服務(wù)器完成映射表的設(shè)置和初始化步驟后,將打開監(jiān)聽端口port0,進(jìn)入監(jiān)聽狀態(tài)。
這時,位于網(wǎng)關(guān)下的私網(wǎng)終端與其它終端之間就可以通過所述跨網(wǎng)關(guān)服務(wù)器進(jìn)行跨網(wǎng)關(guān)的通信了。其跨網(wǎng)關(guān)通信步驟具體如下首先,進(jìn)行私網(wǎng)終端從跨網(wǎng)關(guān)服務(wù)器獲得臨時用戶名和密碼的加密步驟。
具體為所述私網(wǎng)終端通過網(wǎng)關(guān)向跨網(wǎng)關(guān)服務(wù)器發(fā)送一個TLS(Transport Layer Security,傳輸層安全)連接,并將其用戶名作為欲發(fā)送消息的一個屬性,用密碼對私網(wǎng)終端發(fā)出的整個消息進(jìn)行指紋計算,并將計算結(jié)果作為欲發(fā)送消息的另一個屬性,然后將具有這兩個屬性的消息發(fā)送給跨網(wǎng)關(guān)服務(wù)器;所述跨網(wǎng)關(guān)服務(wù)器對這條消息進(jìn)行驗證,如果驗證通過,則將生成一對新的臨時用戶名和密碼,并通過所述TLS連接返回給私網(wǎng)終端,私網(wǎng)終端在收到新的臨時用戶名和密碼后,將斷開該TLS連接。
然后,進(jìn)行私網(wǎng)終端采用所獲得的臨時用戶名和密碼對發(fā)送消息進(jìn)行加密的加密步驟。
具體為所述私網(wǎng)終端在通過網(wǎng)關(guān)端口port1向跨網(wǎng)關(guān)服務(wù)器發(fā)送消息時,將新得到的臨時用戶名作為請求的一個屬性,用新得到的臨時密碼對該請求進(jìn)行指紋計算,并將計算結(jié)果作為該請求的另一個屬性,然后將帶有兩個屬性的消息發(fā)送給所述跨網(wǎng)關(guān)服務(wù)器。
所述跨網(wǎng)關(guān)服務(wù)器接收到該消息后,首先驗證用戶名和密碼。在驗證通過后,跨網(wǎng)關(guān)服務(wù)器首先檢測與網(wǎng)關(guān)之間的協(xié)議類型,所述的協(xié)議類型包括UDP和TCP。
當(dāng)所檢測的協(xié)議類型為UDP時,該消息為分配請求,跨網(wǎng)關(guān)服務(wù)器分配端口,并將UDP作為協(xié)議類型值,并與網(wǎng)關(guān)和跨網(wǎng)關(guān)服務(wù)器的端口映射關(guān)系一起寫入所述映射表中。由于其它通信步驟與實施例1相似,因此此處不再祥述。
當(dāng)所檢測的協(xié)議類型為TCP時,該消息為連接請求。跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口port0收到來自網(wǎng)關(guān)后的私網(wǎng)終端的連接請求后,將分配一個通信端口port1-0,從而通過通信端口port1-0返回一個答復(fù)給所述私網(wǎng)終端,并保持該端口與網(wǎng)關(guān)的通信狀態(tài)。然后私網(wǎng)終端發(fā)送一個分配請求,這時跨網(wǎng)關(guān)服務(wù)器再開辟另一個監(jiān)聽端口port0-1。當(dāng)監(jiān)聽端口port0-1收到來自其它終端的連接請求時,將關(guān)閉監(jiān)聽端口port0-1,而分配另一個端口port1-1,用于與其它終端進(jìn)行通信。然后跨網(wǎng)關(guān)服務(wù)器在映射表內(nèi)記錄端口port1-1的IP地址及端口號、所述其它終端的IP地址和端口號、所述通信端口port1-0的IP地址及端口號、所述網(wǎng)關(guān)端口port1的IP地址和端口號、以及網(wǎng)關(guān)與跨網(wǎng)關(guān)服務(wù)器通信的協(xié)議類型和其它終端與跨網(wǎng)關(guān)服務(wù)器通信的協(xié)議類型。
本實施例中,可以設(shè)置私網(wǎng)終端的內(nèi)網(wǎng)IP地址為10.0.1.16,其通過端口5500連接網(wǎng)關(guān)。網(wǎng)關(guān)的公網(wǎng)IP地址為202.1.1.1,它進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換時為私網(wǎng)終端分配的端口port1的端口號為2222。從而有映射關(guān)系10.0.1.165500→202.1.1.12222。
并且設(shè)置監(jiān)聽端口port0的IP地址及端口號為202.0.10.1684000。設(shè)置通信端口port1-0的IP地址和端口號為202.0.10.1684001。設(shè)置端口port0-1的IP地址及端口號為202.0.10.1695001。設(shè)置端口portl-1的IP地址及端口號為202.0.10.1695000。另外,還設(shè)置其它終端的IP地址和端口號為202.10.1.1114000。因此,映射表內(nèi)一條記錄所包含的兩個五元組分別為202.1.1.12222,202.0.10.1684001,TCP;202.0.10.1695000,202.10.1.1114000,TCP。
因此,當(dāng)所述的其它終端想端口port0-1發(fā)送消息時,所述跨網(wǎng)關(guān)服務(wù)器可以根據(jù)映射表內(nèi)的映射關(guān)系,將該消息通過端口port1-0發(fā)送到網(wǎng)關(guān)的port1端口,從而轉(zhuǎn)發(fā)到私網(wǎng)終端。
如此則完成了私網(wǎng)終端接收消息的流程。
可以看出,本實施例相比實施例1可以實現(xiàn)UDP和TCP兩種協(xié)議下的通信,而且通信更具安全性。
顯而易見,本發(fā)明所述的跨網(wǎng)關(guān)通信的方法,不僅僅限于說明書和實施方式中所列運用,它完全可以被適用于各種適合本發(fā)明之領(lǐng)域,對于熟悉本領(lǐng)域的人員而言可容易地實現(xiàn)另外的優(yōu)點和進(jìn)行修改,因此在不背離權(quán)利要求及等同范圍所限定的一般概念的精神和范圍的情況下,本發(fā)明并不限于特定的細(xì)節(jié)、代表性的設(shè)備和這里示出與描述的圖示示例。
權(quán)利要求
1.一種跨網(wǎng)關(guān)通信的方法,應(yīng)用于設(shè)置在公網(wǎng)上的跨網(wǎng)關(guān)服務(wù)器、網(wǎng)關(guān)以及設(shè)置在網(wǎng)關(guān)內(nèi)的私網(wǎng)終端,包括跨網(wǎng)關(guān)服務(wù)器啟動步驟和跨網(wǎng)關(guān)通信步驟,其中所述跨網(wǎng)關(guān)服務(wù)器啟動步驟包括跨網(wǎng)關(guān)服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟以及跨網(wǎng)關(guān)服務(wù)器打開監(jiān)聽端口(port0)進(jìn)行監(jiān)聽步驟;所述跨網(wǎng)關(guān)通信步驟包括(1)所述私網(wǎng)終端通過網(wǎng)關(guān)向跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口(port0)發(fā)送分配請求;(2)網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,從而為私網(wǎng)終端分配一個端口(port1);(3)所述跨網(wǎng)關(guān)服務(wù)器根據(jù)監(jiān)聽端口(port0)所獲得的分配請求,分配另一個端口(port1-1),并在映射表內(nèi)記錄網(wǎng)關(guān)端口(port1)與跨網(wǎng)關(guān)服務(wù)器端口(port1-1)的映射關(guān)系,然后發(fā)送一個答復(fù)給網(wǎng)關(guān),從而通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到所述私網(wǎng)終端;(4)所述跨網(wǎng)關(guān)服務(wù)器的端口(port1-1)上收到消息后,跨網(wǎng)關(guān)服務(wù)器將根據(jù)其映射表內(nèi)所記錄的映射關(guān)系,將消息轉(zhuǎn)發(fā)到所述網(wǎng)關(guān),從而通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到所述私網(wǎng)終端上。
2.如權(quán)利要求1所述方法,其特征在于所述步驟(3)中,跨網(wǎng)關(guān)服務(wù)器在映射表內(nèi)記錄網(wǎng)關(guān)端口(port1)的IP地址和端口號、跨網(wǎng)關(guān)服務(wù)器的端口(port1-1)所在的IP地址和端口號。
3.如權(quán)利要求1或2所述方法,其特征在于所述步驟(3)中,跨網(wǎng)關(guān)服務(wù)器還在映射表中記錄協(xié)議類型。
4.如權(quán)利要求3所述方法,其特征在于所述協(xié)議類型為UDP,所述步驟(3)中,所述跨網(wǎng)關(guān)服務(wù)器是通過其監(jiān)聽端口(port0)發(fā)送答復(fù)給網(wǎng)關(guān)。
5.如權(quán)利要求3所述方法,其特征在于所述協(xié)議類型為TCP,所述步驟(3)中,跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口(port0)收到來自網(wǎng)關(guān)后的私網(wǎng)終端的連接請求后,將先分配一個通信端口(port1-0),并通過通信端口(port1-0)返回一個答復(fù)給所述私網(wǎng)終端,從而與私網(wǎng)終端建立連接;然后私網(wǎng)終端發(fā)送一個分配請求,這時跨網(wǎng)關(guān)服務(wù)器再開辟另一個監(jiān)聽端口(port0-1),當(dāng)監(jiān)聽端口(port0-1)收到來自其它終端的連接請求時,將分配另一個端口(port1-1),然后跨網(wǎng)關(guān)服務(wù)器在映射表內(nèi)記錄端口(port1-1)的IP地址及端口號、所述其它終端的IP地址和端口號、所述通信端口(port1-0)的IP地址及端口號、所述網(wǎng)關(guān)端口(port1)的IP地址和端口號、以及網(wǎng)關(guān)與跨網(wǎng)關(guān)服務(wù)器通信的協(xié)議類型和其它終端與跨網(wǎng)關(guān)服務(wù)器通信的協(xié)議類型。
6.如權(quán)利要求5所述方法,其特征在于所述監(jiān)聽端口(port0-1)在監(jiān)聽到消息后則關(guān)閉端口,不再進(jìn)行監(jiān)聽。
7.如權(quán)利要求1所述方法,其特征在于還包括加密步驟,該加密步驟包括A、私網(wǎng)終端從跨網(wǎng)關(guān)服務(wù)器獲得臨時用戶名和密碼;B、私網(wǎng)終端采用所獲得的臨時用戶名和密碼對發(fā)送消息進(jìn)行加密。
8.如權(quán)利要求7所述方法,其特征在于所述步驟A具體為所述私網(wǎng)終端向跨網(wǎng)關(guān)服務(wù)器發(fā)送一個TLS(Transport Layer Security傳輸層安全)連接,并將其用戶名作為欲發(fā)送消息的一個屬性,用密碼對私網(wǎng)終端發(fā)出的消息進(jìn)行加密計算,并將計算結(jié)果作為欲發(fā)送消息的另一個屬性,將消息發(fā)送給跨網(wǎng)關(guān)服務(wù)器;所述跨網(wǎng)關(guān)服務(wù)器對這條消息進(jìn)行驗證,如果驗證通過,則將生成一對新的臨時用戶名和密碼,并通過所述TLS連接返回給私網(wǎng)終端,私網(wǎng)終端在收到新的臨時用戶名和密碼后,將斷開該TLS連接。
9.如權(quán)利要求8所述方法,其特征在于所述步驟B具體為所述私網(wǎng)終端在通過網(wǎng)關(guān)端口(port1)向跨網(wǎng)關(guān)服務(wù)器發(fā)送分配請求時,將新得到的臨時用戶名作為請求的一個屬性,用新得到的臨時密碼對該請求進(jìn)行加密計算,并將計算結(jié)果作為該請求的另一個屬性,然后將帶有兩個屬性的分配請求發(fā)送給所述跨網(wǎng)關(guān)服務(wù)器,所述跨網(wǎng)關(guān)服務(wù)器接收到該分配請求后,首先驗證用戶名和密碼,在驗證通過后,才作后續(xù)處理。
10.如權(quán)利要求1所述方法,其特征在于所述跨網(wǎng)關(guān)服務(wù)器的初始化內(nèi)部映射表步驟具體為將內(nèi)部映射表清空。
全文摘要
本發(fā)明公開了一種跨網(wǎng)關(guān)通信的方法,應(yīng)用于設(shè)置在公網(wǎng)上的跨網(wǎng)關(guān)服務(wù)器、網(wǎng)關(guān)以及設(shè)置在網(wǎng)關(guān)內(nèi)的私網(wǎng)終端,包括服務(wù)器啟動步驟,包括服務(wù)器設(shè)置并初始化內(nèi)部映射表步驟以及服務(wù)器打開監(jiān)聽端口進(jìn)行監(jiān)聽步驟;跨網(wǎng)關(guān)通信步驟,具體為(1)私網(wǎng)終端通過網(wǎng)關(guān)向跨網(wǎng)關(guān)服務(wù)器的監(jiān)聽端口發(fā)送分配請求;(2)網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,從而為私網(wǎng)終端分配一個端口;(3)跨網(wǎng)關(guān)服務(wù)器根據(jù)監(jiān)聽端口所獲得的分配請求,分配另一個端口,并在映射表內(nèi)記錄網(wǎng)關(guān)端口與跨網(wǎng)關(guān)服務(wù)器上另一個端口的映射關(guān)系,然后發(fā)送一個答復(fù)給私網(wǎng)終端;(4)跨網(wǎng)關(guān)服務(wù)器上另一個端口上收到消息后,跨網(wǎng)關(guān)服務(wù)器將根據(jù)其映射表內(nèi)所記錄的映射關(guān)系,將消息轉(zhuǎn)發(fā)到私網(wǎng)終端上。
文檔編號H04L29/06GK1747457SQ20051009835
公開日2006年3月15日 申請日期2005年9月9日 優(yōu)先權(quán)日2005年9月9日
發(fā)明者陳紹新, 江峰 申請人:北京中星微電子有限公司