專利名稱:一種實(shí)現(xiàn)數(shù)據(jù)通訊的系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通訊技術(shù)領(lǐng)域,尤其涉及一種采用點(diǎn)對(duì)點(diǎn)(P2P)技術(shù)實(shí)現(xiàn)多方數(shù)據(jù)通訊的系統(tǒng)及其方法。
背景技術(shù):
當(dāng)前,隨著數(shù)據(jù)通訊技術(shù)的不斷發(fā)展,已經(jīng)能夠?qū)崿F(xiàn)多個(gè)通訊方之間的多方數(shù)據(jù)通訊。例如,可以在多個(gè)通訊方之間進(jìn)行音視頻數(shù)據(jù)的傳輸,從而實(shí)現(xiàn)這些通訊方之間的影音交互。
在現(xiàn)有技術(shù)中,對(duì)于各個(gè)通訊方例如端口號(hào)和IP地址的網(wǎng)絡(luò)信息采用統(tǒng)一管理方式,采用一個(gè)網(wǎng)絡(luò)信息管理服務(wù)器統(tǒng)一保存和管理各個(gè)通訊方的網(wǎng)絡(luò)信息,在數(shù)據(jù)通訊過程中,各個(gè)通訊方從網(wǎng)絡(luò)信息管理服務(wù)器獲得對(duì)方的網(wǎng)絡(luò)信息,以根據(jù)該網(wǎng)絡(luò)信息與對(duì)方建立數(shù)據(jù)連接,實(shí)現(xiàn)和對(duì)方的數(shù)據(jù)通訊。
采用如上方式,雖然能夠?qū)崿F(xiàn)數(shù)據(jù)通訊,但是,由于采用網(wǎng)絡(luò)信息管理服務(wù)器對(duì)各個(gè)通訊方的網(wǎng)絡(luò)信息進(jìn)行統(tǒng)一管理,因此,一旦該服務(wù)器發(fā)生故障,則會(huì)導(dǎo)致大量通訊方無法獲得對(duì)方的網(wǎng)絡(luò)信息,無法建立和目的通訊方的數(shù)據(jù)連接,從而使得數(shù)據(jù)通訊在很大范圍內(nèi)不能得以實(shí)現(xiàn)。
另外,在現(xiàn)有技術(shù)中,一部分?jǐn)?shù)據(jù)通訊是通過中轉(zhuǎn)服務(wù)器中轉(zhuǎn)數(shù)據(jù)得以實(shí)現(xiàn)。采用中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù),雖然能夠?qū)崿F(xiàn)數(shù)據(jù)通訊,但是,具有如下缺點(diǎn)由于在數(shù)據(jù)通訊過程中,數(shù)據(jù)需要通過中轉(zhuǎn)服務(wù)器進(jìn)行中轉(zhuǎn),而所中轉(zhuǎn)的數(shù)據(jù)通常又都是例如音頻、視頻等數(shù)據(jù)量較大的數(shù)據(jù),因此,需要中轉(zhuǎn)服務(wù)器具有較大的帶寬,從而增加了中轉(zhuǎn)服務(wù)器的實(shí)現(xiàn)成本,另外,由于中轉(zhuǎn)服務(wù)器自身帶寬畢竟有限,采用中轉(zhuǎn)服務(wù)器只能支持有限數(shù)量通訊方之間的數(shù)據(jù)中轉(zhuǎn),如果通訊方數(shù)量較多,則需投入大量的中轉(zhuǎn)服務(wù)器,從而進(jìn)一步增加了數(shù)據(jù)通訊的實(shí)現(xiàn)成本。此外,如果中轉(zhuǎn)服務(wù)器在數(shù)據(jù)通訊過程中發(fā)生故障,則會(huì)導(dǎo)致通過該中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)所進(jìn)行的多方數(shù)據(jù)通訊中斷,從而導(dǎo)致一定范圍內(nèi)的數(shù)據(jù)通訊癱瘓。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)數(shù)據(jù)通訊的系統(tǒng)及其方法,無須對(duì)各個(gè)通訊方的網(wǎng)絡(luò)信息采用統(tǒng)一管理的方式,從而避免由于該統(tǒng)一管理方式所帶來的由于網(wǎng)絡(luò)信息管理服務(wù)器發(fā)生故障而使得數(shù)據(jù)通訊在較大范圍內(nèi)無法實(shí)現(xiàn)的問題,另外,本發(fā)明的目的還在于在數(shù)據(jù)通訊過程中不采用中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù),從而避免由此帶來的成本增加、容易導(dǎo)致通訊癱瘓的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種實(shí)現(xiàn)數(shù)據(jù)通訊的系統(tǒng),該系統(tǒng)包括各個(gè)通訊節(jié)點(diǎn),通訊節(jié)點(diǎn)之間根據(jù)網(wǎng)絡(luò)信息建立連接并利用該連接實(shí)現(xiàn)數(shù)據(jù)通訊,該系統(tǒng)包括超級(jí)節(jié)點(diǎn)層,該超級(jí)節(jié)點(diǎn)層中包括至少兩個(gè)超級(jí)節(jié)點(diǎn),其中各個(gè)超級(jí)節(jié)點(diǎn)用于保存與之邏輯上最臨近的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,還用于進(jìn)行超級(jí)節(jié)點(diǎn)之間的消息轉(zhuǎn)發(fā),將保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息發(fā)送給源通訊節(jié)點(diǎn)。
其中,所述超級(jí)節(jié)點(diǎn)為所述通訊節(jié)點(diǎn)中的部分通訊節(jié)點(diǎn)。
其中,所述超級(jí)節(jié)點(diǎn)是網(wǎng)絡(luò)類型為公網(wǎng)類型或者混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型的通訊節(jié)點(diǎn)。
其中,所述超級(jí)節(jié)點(diǎn)為帶寬和在線時(shí)長(zhǎng)大于等于設(shè)定的帶寬和在線時(shí)長(zhǎng)的通訊節(jié)點(diǎn)。
其中,該系統(tǒng)進(jìn)一步包括中央服務(wù)器,用于收集各個(gè)超級(jí)節(jié)點(diǎn)的網(wǎng)絡(luò)信息,并指導(dǎo)各個(gè)超級(jí)節(jié)點(diǎn)更新自身的路由表。
本發(fā)明還提供了一種實(shí)現(xiàn)數(shù)據(jù)通訊的方法,該方法包括步驟A源通訊節(jié)點(diǎn)向與其物理上最臨近的超級(jí)節(jié)點(diǎn)發(fā)送查詢目的通訊節(jié)點(diǎn)的請(qǐng)求,自該超級(jí)節(jié)點(diǎn)開始,查找到與目的通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn),該超級(jí)節(jié)點(diǎn)將其保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn);步驟B源通訊節(jié)點(diǎn)利用得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,建立與目的通訊節(jié)點(diǎn)之間的連接,通過該連接傳輸數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)通訊。
其中,步驟A之前,該方法進(jìn)一步包括步驟a將系統(tǒng)中的部分通訊節(jié)點(diǎn)確定為超級(jí)節(jié)點(diǎn);其中,每個(gè)超級(jí)節(jié)點(diǎn)中保存有與之連接的通訊節(jié)點(diǎn)或超級(jí)節(jié)點(diǎn)的路由信息;步驟b通訊節(jié)點(diǎn)登錄與之物理上最臨近的超級(jí)節(jié)點(diǎn),自該超級(jí)節(jié)點(diǎn)開始,各個(gè)超級(jí)節(jié)點(diǎn)之間利用各自所保存的路由信息,依次轉(zhuǎn)發(fā)登錄的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,直至將登錄的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)并記錄到與登錄的通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn)中。
其中,步驟a中所述將系統(tǒng)中的部分通訊節(jié)點(diǎn)確定為超級(jí)節(jié)點(diǎn)包括步驟a1依次讀取網(wǎng)絡(luò)中各個(gè)通訊節(jié)點(diǎn)的信息;步驟a2根據(jù)讀取的當(dāng)前通訊節(jié)點(diǎn)的信息,判斷當(dāng)前通訊節(jié)點(diǎn)的網(wǎng)絡(luò)類型是否為公網(wǎng)或混合網(wǎng)絡(luò)地址轉(zhuǎn)換,如果是,則繼續(xù)執(zhí)行步驟a3,否則,確定當(dāng)前通訊節(jié)點(diǎn)不是超級(jí)節(jié)點(diǎn),然后返回步驟a1,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷;步驟a3判斷當(dāng)前通訊節(jié)點(diǎn)的帶寬及在線時(shí)長(zhǎng)是否大于等于預(yù)先設(shè)定的帶寬及在線時(shí)長(zhǎng),如果是,則確定當(dāng)前通訊節(jié)點(diǎn)為超級(jí)節(jié)點(diǎn),否則,確定當(dāng)前通訊節(jié)點(diǎn)不是超級(jí)節(jié)點(diǎn),然后返回步驟a1,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷。
其中,所述與通訊節(jié)點(diǎn)物理上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn),將所述與通訊節(jié)點(diǎn)邏輯上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn),步驟b包括步驟b1通訊節(jié)點(diǎn)登錄系統(tǒng)后,登錄到該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn)上,并將其網(wǎng)絡(luò)信息發(fā)送到該物理超級(jí)節(jié)點(diǎn)上;步驟b2該物理超級(jí)節(jié)點(diǎn)根據(jù)該登錄通訊節(jié)點(diǎn)網(wǎng)絡(luò)信息中的ID號(hào)碼,查找得到其保存的各個(gè)ID號(hào)碼中與該ID號(hào)碼最接近的ID號(hào)碼,并將登錄通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn),網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)到的超級(jí)節(jié)點(diǎn)重復(fù)上述轉(zhuǎn)發(fā)過程,直至將所述網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)至所述通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn)上并保存。
其中,所述與通訊節(jié)點(diǎn)物理上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn),將所述與通訊節(jié)點(diǎn)邏輯上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn),步驟A包括步驟A1源通訊節(jié)點(diǎn)向該源通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,其中,該查詢請(qǐng)求中包括目的通訊節(jié)點(diǎn)的ID號(hào)碼;步驟A2所述物理超級(jí)節(jié)點(diǎn)在本地查找是否保存有目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,如果存在,則直接將該網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn),并結(jié)束本流程,否則,該物理超級(jí)節(jié)點(diǎn)根據(jù)目的通訊節(jié)點(diǎn)的ID號(hào)碼,在該物理超級(jí)節(jié)點(diǎn)所保存的各個(gè)ID號(hào)碼中查找與該ID號(hào)碼最接近的ID號(hào)碼,然后,將查詢請(qǐng)求轉(zhuǎn)發(fā)到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn),查詢請(qǐng)求轉(zhuǎn)發(fā)到的超級(jí)節(jié)點(diǎn)重復(fù)上述轉(zhuǎn)發(fā)過程,直至將查詢請(qǐng)求轉(zhuǎn)發(fā)到所述目的通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn);步驟A3所述目的通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn)將其保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn)。
其中,步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括源通訊節(jié)點(diǎn)根據(jù)獲取得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中的內(nèi)網(wǎng)IP地址和端口號(hào),直接向目的通訊節(jié)點(diǎn)的內(nèi)網(wǎng)IP地址和端口號(hào)發(fā)送連接請(qǐng)求,建立源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間的連接。
其中,步驟A之前,該方法進(jìn)一步包括對(duì)所述通訊節(jié)點(diǎn)進(jìn)行簡(jiǎn)單穿越方式測(cè)試,獲取通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào),將該外網(wǎng)IP地址和端口號(hào)添加到該通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中;步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括源通訊節(jié)點(diǎn)根據(jù)獲取得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中的外網(wǎng)IP地址和端口號(hào),直接向目的通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào)發(fā)送連接請(qǐng)求,建立源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間的連接。
其中,步驟A之前,該方法進(jìn)一步包括對(duì)所述通訊節(jié)點(diǎn)進(jìn)行簡(jiǎn)單穿越方式測(cè)試,獲取通訊節(jié)點(diǎn)的外網(wǎng)IP地址、端口號(hào)、和網(wǎng)絡(luò)類型,將該外網(wǎng)IP地址、端口號(hào)、和網(wǎng)絡(luò)類型添加到該通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中;步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括源通訊節(jié)點(diǎn)根據(jù)自身的網(wǎng)絡(luò)類型以及目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)類型判斷采用何種方式進(jìn)行連接如果一方是公網(wǎng)另一方是混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型,則混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型一方讓另一方主動(dòng)連接過來;如果雙方既不是公網(wǎng)也不是混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型,則源通訊節(jié)點(diǎn)發(fā)送穿越請(qǐng)求給目的通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn),該物理超級(jí)節(jié)點(diǎn)將該請(qǐng)求分別轉(zhuǎn)發(fā)給源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn),源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)接收到請(qǐng)求后,分別向?qū)Ψ降耐饩W(wǎng)IP地址和端口號(hào)發(fā)送UDP穿越的數(shù)據(jù)包,以實(shí)現(xiàn)源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間建立連接。
其中,步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括同時(shí)采用內(nèi)網(wǎng)直連、外網(wǎng)直連、以及通過UDP穿越的方式建立連接,如果任何一種方式建立連接成功,則停止采用其余方式建立連接。
其中,如果所述三種方式均不能建立連接,該方法進(jìn)一步包括源通訊節(jié)點(diǎn)發(fā)送查找中轉(zhuǎn)種子的請(qǐng)求到其所連接的超級(jí)節(jié)點(diǎn)上,超級(jí)節(jié)點(diǎn)通過中央服務(wù)器或者其它超級(jí)節(jié)點(diǎn)獲取能夠進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的通訊節(jié)點(diǎn)的信息,然后將該信息返回給源通訊節(jié)點(diǎn),源通訊節(jié)點(diǎn)根據(jù)該信息建立中轉(zhuǎn)通道,與目的通訊節(jié)點(diǎn)建立連接。
其中,源通訊節(jié)點(diǎn)建立中轉(zhuǎn)通道包括建立多條中轉(zhuǎn)通道,其中的一條通道作為主通道,其余通道作為備份通道;該方法進(jìn)一步包括如果進(jìn)行數(shù)據(jù)通訊的主通道斷開連接,則立即將數(shù)據(jù)通訊切換到其余備份通道。
其中,超級(jí)節(jié)點(diǎn)利用其保存的路由信息進(jìn)行所述轉(zhuǎn)發(fā),該方法進(jìn)一步包括對(duì)各個(gè)超級(jí)節(jié)點(diǎn)中的路由信息進(jìn)行更新。
其中,所述對(duì)路由信息進(jìn)行更新包括超級(jí)節(jié)點(diǎn)定期向中央服務(wù)器發(fā)送路由表更新請(qǐng)求,中央服務(wù)器返回最新的路由表給該超級(jí)節(jié)點(diǎn)。
其中,所述對(duì)路由信息進(jìn)行更新包括各個(gè)超級(jí)節(jié)點(diǎn)之間相互交換路由信息以不斷更新各自的路由表。
可見,采用本發(fā)明,將各個(gè)通訊方的網(wǎng)絡(luò)信息分散在與各自邏輯上最接近的超級(jí)節(jié)點(diǎn)中進(jìn)行保存,從而實(shí)現(xiàn)對(duì)于各個(gè)通訊方網(wǎng)絡(luò)信息的分散管理。在此情況下,即使保存有網(wǎng)絡(luò)信息的某個(gè)超級(jí)節(jié)點(diǎn)發(fā)生故障,則也只會(huì)影響到與該超級(jí)節(jié)點(diǎn)邏輯上最接近的通訊節(jié)點(diǎn)的數(shù)據(jù)通訊,不會(huì)造成數(shù)量較多的通訊方無法實(shí)現(xiàn)建立數(shù)據(jù)連接,從而提高了數(shù)據(jù)通訊實(shí)現(xiàn)的可靠性。另外,在本發(fā)明中,數(shù)據(jù)不再經(jīng)過中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā),從而避免了由于采用中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)多個(gè)通訊方的數(shù)據(jù)而帶來的成本增加、容易導(dǎo)致大范圍數(shù)據(jù)癱瘓的問題。
圖1為本發(fā)明所提供的系統(tǒng)的示意圖。
圖2為實(shí)現(xiàn)本發(fā)明的流程圖。
圖3為實(shí)現(xiàn)本發(fā)明步驟201的流程圖。
圖4為實(shí)現(xiàn)本發(fā)明步驟202的流程圖。
圖5為實(shí)現(xiàn)本發(fā)明步驟203的流程圖。
具體實(shí)施例方式
本發(fā)明為一種實(shí)現(xiàn)數(shù)據(jù)通訊的系統(tǒng)及其方法,將通訊系統(tǒng)中的部分通訊節(jié)點(diǎn)(peer)確定為超級(jí)節(jié)點(diǎn)(super peer),各個(gè)超級(jí)節(jié)點(diǎn)組成超級(jí)節(jié)點(diǎn)層;在通訊節(jié)點(diǎn)登錄系統(tǒng)時(shí)每個(gè)通訊節(jié)點(diǎn)登錄與其物理上最臨近的超級(jí)節(jié)點(diǎn),該物理上最臨近的超級(jí)節(jié)點(diǎn)通過超級(jí)節(jié)點(diǎn)之間的轉(zhuǎn)發(fā),將該通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息登記到與該通訊節(jié)點(diǎn)的ID最臨近的超級(jí)節(jié)點(diǎn)中;在源通訊節(jié)點(diǎn)需要向目的通訊節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí)源通訊節(jié)點(diǎn)向與其物理上最臨近的超級(jí)節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,該物理上最臨近的超級(jí)節(jié)點(diǎn)通過超級(jí)節(jié)點(diǎn)之間的轉(zhuǎn)發(fā),首先在本地進(jìn)行查找,如果查找不到目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,則將該查詢請(qǐng)求發(fā)送至與目的通訊節(jié)點(diǎn)的ID最臨近的超級(jí)節(jié)點(diǎn)上,該與目的通訊節(jié)點(diǎn)的ID最臨近的超級(jí)節(jié)點(diǎn)將目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn),以使得源通訊節(jié)點(diǎn)能夠根據(jù)該網(wǎng)絡(luò)信息建立與目的通訊節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接,從而實(shí)現(xiàn)數(shù)據(jù)通訊。
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
參見圖1,本發(fā)明所提供的系統(tǒng)包括各個(gè)用于進(jìn)行數(shù)據(jù)通訊的通訊節(jié)點(diǎn),其中,包括超級(jí)節(jié)點(diǎn)層,該層中的各個(gè)超級(jí)節(jié)點(diǎn)組成圖1所示的超級(jí)節(jié)點(diǎn)層,超級(jí)節(jié)點(diǎn)層中的各個(gè)超級(jí)節(jié)點(diǎn)用于進(jìn)行消息的轉(zhuǎn)發(fā)以實(shí)現(xiàn)在通訊節(jié)點(diǎn)登錄系統(tǒng)時(shí),通過超級(jí)節(jié)點(diǎn)層中的各個(gè)超級(jí)節(jié)點(diǎn)之間的消息轉(zhuǎn)發(fā),將該登錄系統(tǒng)通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息保存到與登錄系統(tǒng)的通訊節(jié)點(diǎn)在邏輯上最臨近的超級(jí)節(jié)點(diǎn)中;以及,在源通訊節(jié)點(diǎn)查詢目的通訊節(jié)點(diǎn)時(shí),通過超級(jí)節(jié)點(diǎn)層中的各個(gè)超級(jí)節(jié)點(diǎn)之間的消息轉(zhuǎn)發(fā),將目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息由與該目的通訊節(jié)點(diǎn)在邏輯上最臨近的超級(jí)節(jié)點(diǎn)返回給源通訊節(jié)點(diǎn)。
其中,在該系統(tǒng)中,各個(gè)超級(jí)節(jié)點(diǎn)具有如下屬性1、為了保證進(jìn)行數(shù)據(jù)傳輸?shù)耐ㄓ嵐?jié)點(diǎn)都能夠登錄到超級(jí)節(jié)點(diǎn)上,因此,超級(jí)節(jié)點(diǎn)的網(wǎng)絡(luò)類型必須為公網(wǎng)類型或者混合網(wǎng)絡(luò)地址轉(zhuǎn)換(Full Cone)類型;2、為了提高整個(gè)網(wǎng)絡(luò)的效率,超級(jí)節(jié)點(diǎn)的帶寬和在線時(shí)長(zhǎng)需要大于等于預(yù)先設(shè)定的帶寬和在線時(shí)長(zhǎng);其中,預(yù)先設(shè)定的在線時(shí)長(zhǎng)可以根據(jù)實(shí)際情況進(jìn)行改變,在網(wǎng)絡(luò)形成初期,該預(yù)先設(shè)定的在線時(shí)長(zhǎng)較小,而在網(wǎng)絡(luò)形成較長(zhǎng)時(shí)間后,該預(yù)先設(shè)定的在線時(shí)長(zhǎng)相應(yīng)地也應(yīng)設(shè)定為較大的值。
其中,每個(gè)超級(jí)節(jié)點(diǎn)都分別具有一張路由表,在該路由表中保存著與該超級(jí)節(jié)點(diǎn)連接的其它超級(jí)節(jié)點(diǎn)的ID和網(wǎng)絡(luò)信息,所述的網(wǎng)絡(luò)信息包括網(wǎng)絡(luò)類型、內(nèi)外網(wǎng)IP地址和端口號(hào),利用該路由表,超級(jí)節(jié)點(diǎn)層中的各個(gè)超級(jí)節(jié)點(diǎn)能夠根據(jù)登錄系統(tǒng)的通訊節(jié)點(diǎn)或者目的通訊節(jié)點(diǎn)的ID號(hào),在路由表中查找該超級(jí)節(jié)點(diǎn)范圍內(nèi)與所述通訊節(jié)點(diǎn)在ID號(hào)上最接近的超級(jí)節(jié)點(diǎn),然后,路由到該超級(jí)節(jié)點(diǎn)上,該超級(jí)節(jié)點(diǎn)再利用其上的路由表進(jìn)行如上所述的查找及路由,直至路由到與所述通訊節(jié)點(diǎn)在ID號(hào)上最接近的超級(jí)節(jié)點(diǎn)上。
參見圖1,本發(fā)明所提供的系統(tǒng)還可以包括中央Server,該中央Server包括一個(gè)或一個(gè)以上的服務(wù)器,用于收集各個(gè)超級(jí)節(jié)點(diǎn)的網(wǎng)絡(luò)信息,并指導(dǎo)各個(gè)超級(jí)節(jié)點(diǎn)更新自身的路由表;本發(fā)明所提供的系統(tǒng)也可不具有該Server層,并不影響本發(fā)明的實(shí)現(xiàn)。
下面結(jié)合附圖,對(duì)本發(fā)明所提供的方法進(jìn)行詳細(xì)介紹。
參見圖2,本發(fā)明所提供的方法包括步驟201將系統(tǒng)中的部分通訊節(jié)點(diǎn)確定為超級(jí)節(jié)點(diǎn);其中,每個(gè)超級(jí)節(jié)點(diǎn)中保存有與之連接的通訊節(jié)點(diǎn)或超級(jí)節(jié)點(diǎn)的路由信息;步驟202通訊節(jié)點(diǎn)登錄與之物理上最臨近的超級(jí)節(jié)點(diǎn),自該超級(jí)節(jié)點(diǎn)開始,各個(gè)超級(jí)節(jié)點(diǎn)之間利用各自所保存的路由信息,依次轉(zhuǎn)發(fā)登錄的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,直至將登錄的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)并記錄到與登錄的通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn)中;步驟203源通訊節(jié)點(diǎn)向與其物理上最臨近的超級(jí)節(jié)點(diǎn)發(fā)送查詢目的通訊節(jié)點(diǎn)的請(qǐng)求,自該超級(jí)節(jié)點(diǎn)開始,各個(gè)超級(jí)節(jié)點(diǎn)之間利用各自所保存的路由信息,依次轉(zhuǎn)發(fā)該查詢請(qǐng)求,直至將該查詢請(qǐng)求轉(zhuǎn)發(fā)到與目的通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn)中,該超級(jí)節(jié)點(diǎn)將其保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn);步驟204源通訊節(jié)點(diǎn)利用得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,建立與目的通訊節(jié)點(diǎn)之間的連接,通過該連接傳輸數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)通訊。
下面結(jié)合具體實(shí)例,對(duì)以上步驟的具體實(shí)現(xiàn)進(jìn)行詳細(xì)介紹。其中,在該實(shí)例中,采用ID號(hào)作為各個(gè)通訊節(jié)點(diǎn)或超級(jí)節(jié)點(diǎn)的路由信息,所述與通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn)為ID號(hào)與該通訊節(jié)點(diǎn)最接近的超級(jí)節(jié)點(diǎn);并且,為了描述方便,將所述與通訊節(jié)點(diǎn)物理上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn)(PSP),將所述與通訊節(jié)點(diǎn)邏輯上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn)(LSP)。
(一)步驟201的具體實(shí)現(xiàn)參見圖3,在本發(fā)明實(shí)施例中,通過以下步驟實(shí)現(xiàn)步驟201步驟301依次讀取網(wǎng)絡(luò)中各個(gè)通訊節(jié)點(diǎn)的信息;步驟302根據(jù)讀取的當(dāng)前通訊節(jié)點(diǎn)的信息,判斷當(dāng)前通訊節(jié)點(diǎn)的網(wǎng)絡(luò)類型是否為公網(wǎng)或Full Cone,如果是,則繼續(xù)執(zhí)行步驟303,否則,確定當(dāng)前通訊節(jié)點(diǎn)不是超級(jí)節(jié)點(diǎn),然后返回步驟301,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷;步驟303判斷當(dāng)前通訊節(jié)點(diǎn)的帶寬及在線時(shí)長(zhǎng)是否大于等于預(yù)先設(shè)定的帶寬及在線時(shí)長(zhǎng),如果是,則確定當(dāng)前通訊節(jié)點(diǎn)為超級(jí)節(jié)點(diǎn),然后返回步驟301,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷;否則,確定當(dāng)前通訊節(jié)點(diǎn)不是超級(jí)節(jié)點(diǎn),然后返回步驟301,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷;其中,在本步驟中,預(yù)先設(shè)定的在線時(shí)長(zhǎng)可以根據(jù)網(wǎng)絡(luò)運(yùn)行情況改變?cè)诰W(wǎng)絡(luò)形成初期,該預(yù)先設(shè)定的在線時(shí)長(zhǎng)較小,在網(wǎng)絡(luò)運(yùn)行一段時(shí)間之后,該預(yù)先設(shè)定的在線時(shí)長(zhǎng)較長(zhǎng)。
(二)步驟202的具體實(shí)現(xiàn)參見圖4,在本發(fā)明實(shí)施例中,實(shí)現(xiàn)步驟202需要以下步驟步驟401通訊節(jié)點(diǎn)登錄系統(tǒng)后,通過向該登錄通訊節(jié)點(diǎn)的PSP發(fā)送Pub消息登錄到該通訊節(jié)點(diǎn)的PSP上,并將該登錄通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息發(fā)送到該P(yáng)SP上;步驟402所述的PSP根據(jù)該登錄通訊節(jié)點(diǎn)網(wǎng)絡(luò)信息中的ID號(hào)碼,首先在該P(yáng)SP本地查找是否保存有目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,如果存在,則直接將該網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn),并結(jié)束本流程,否則,在該P(yáng)SP所保存的各個(gè)ID號(hào)碼中查找與該ID號(hào)碼最接近的ID號(hào)碼,然后,通過轉(zhuǎn)發(fā)Pub消息,將登錄通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息路由到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn);步驟403當(dāng)前路由到的超級(jí)節(jié)點(diǎn)在其所保存的各個(gè)ID號(hào)碼中,查找得到與登錄通訊節(jié)點(diǎn)最接近的ID號(hào)碼,然后,通過轉(zhuǎn)發(fā)Pub消息,將登錄通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息路由到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn)上;步驟404當(dāng)前路由到的超級(jí)節(jié)點(diǎn)判斷其保存的ID號(hào)碼中是否還有更接近登錄通訊節(jié)點(diǎn)的ID號(hào)碼的ID號(hào)碼,如果是,則返回步驟403,直至查找得到網(wǎng)絡(luò)的所有通訊節(jié)點(diǎn)的ID號(hào)碼中與登錄通訊節(jié)點(diǎn)的ID號(hào)碼最接近的ID號(hào)碼,然后執(zhí)行步驟405,否則,直接執(zhí)行步驟405;步驟405當(dāng)前路由到的超級(jí)節(jié)點(diǎn)作為登錄通訊節(jié)點(diǎn)的LSP保存登錄通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息。
(三)步驟203的具體實(shí)現(xiàn)參見圖5,實(shí)現(xiàn)步驟203需要以下步驟步驟501源通訊節(jié)點(diǎn)向該源通訊節(jié)點(diǎn)的PSP發(fā)送查詢請(qǐng)求,其中,該查詢請(qǐng)求中包括目的通訊節(jié)點(diǎn)的ID號(hào)碼;步驟502源通訊節(jié)點(diǎn)的PSP根據(jù)目的通訊節(jié)點(diǎn)的ID號(hào)碼,在該P(yáng)SP所保存的各個(gè)ID號(hào)碼中查找與該ID號(hào)碼最接近的ID號(hào)碼,然后,將查詢請(qǐng)求路由到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn);步驟503當(dāng)前路由到的超級(jí)節(jié)點(diǎn)在其所保存的各個(gè)ID號(hào)碼中,查找得到與目的通訊節(jié)點(diǎn)最接近的ID號(hào)碼,然后,將查詢請(qǐng)求路由到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn)上;步驟504當(dāng)前路由到的超級(jí)節(jié)點(diǎn)判斷其保存的ID號(hào)碼中是否還有更接近目的通訊節(jié)點(diǎn)的ID號(hào)碼的ID號(hào)碼,如果是,則返回步驟503,直至查找得到網(wǎng)絡(luò)的所有通訊節(jié)點(diǎn)的ID號(hào)碼中與目的通訊節(jié)點(diǎn)的ID號(hào)碼最接近的ID號(hào)碼,然后執(zhí)行步驟505,否則,直接執(zhí)行步驟505;
步驟505當(dāng)前路由到的超級(jí)節(jié)點(diǎn)作為目的通訊節(jié)點(diǎn)的LSP,將其所保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn)。
(四)步驟204的具體實(shí)現(xiàn)在本發(fā)明實(shí)施例中,可以采用如下方式建立源通訊節(jié)點(diǎn)與目的通訊節(jié)點(diǎn)之間的連接1、通過內(nèi)網(wǎng)直連建立連接源通訊節(jié)點(diǎn)根據(jù)獲取得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中的內(nèi)網(wǎng)IP地址和端口號(hào),直接向目的通訊節(jié)點(diǎn)的內(nèi)網(wǎng)IP地址和端口號(hào)發(fā)送連接請(qǐng)求,從而建立源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間的連接;其中,所述連接請(qǐng)求可以通過TCP和UDP兩種形式進(jìn)行發(fā)送,可以根據(jù)具體應(yīng)用選擇其中的一種來發(fā)送連接請(qǐng)求對(duì)于音視頻數(shù)據(jù)通訊,通常設(shè)置為優(yōu)先采用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)方式發(fā)送連接請(qǐng)求,對(duì)于一些傳輸可靠性要求較高的應(yīng)用,則優(yōu)先采用傳輸控制協(xié)議(TCP)方式發(fā)送連接請(qǐng)求。在具體應(yīng)用中,如果優(yōu)先采用TCP發(fā)送連接請(qǐng)求,則在采用TCP方式無法建立連接的情況下,還可進(jìn)一步嘗試采用UDP方式嘗試建立連接,同理,如果優(yōu)先采用UDP方式發(fā)送連接請(qǐng)求而無法建立連接時(shí),同樣可以進(jìn)一步采用TCP方式嘗試建立連接。
2、通過外網(wǎng)直連建立連接采用此種方式建立連接,需要在通訊節(jié)點(diǎn)登錄系統(tǒng)前,進(jìn)行UDP對(duì)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的簡(jiǎn)單穿越方式(Stun)測(cè)試,以獲取該通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào),該登錄通訊節(jié)點(diǎn)將獲取得到的外網(wǎng)IP地址和端口號(hào)添加到其網(wǎng)絡(luò)信息中;在此情況下,源通訊節(jié)點(diǎn)所獲取的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中包括有該目的通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào),源通訊節(jié)點(diǎn)直接向目的通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào)發(fā)送連接請(qǐng)求,從而建立源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間的連接,具體實(shí)現(xiàn)過程與上述通過內(nèi)網(wǎng)直連方式建立連接的過程類似,在此不再贅述;3、通過UDP穿越方式建立連接采用此種方式建立連接,需要在通訊節(jié)點(diǎn)登錄系統(tǒng)前,進(jìn)行Stun測(cè)試,以獲取該通訊節(jié)點(diǎn)的外網(wǎng)IP地址、端口號(hào)、和網(wǎng)絡(luò)類型;在此情況下,源通訊節(jié)點(diǎn)所獲取的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中包括有該目的通訊節(jié)點(diǎn)的外網(wǎng)IP地址、端口號(hào)、和網(wǎng)絡(luò)類型,源通訊節(jié)點(diǎn)根據(jù)自身的網(wǎng)絡(luò)類型以及目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)類型判斷采用何種方式進(jìn)行連接如果一方是公網(wǎng)另一方是FullCone,則FullCone一方可以讓另一方主動(dòng)連接過來;如果雙方既不是公網(wǎng)也不是FullCone,則源通訊節(jié)點(diǎn)發(fā)送穿越請(qǐng)求給目的通訊節(jié)點(diǎn)的PSP,目的通訊節(jié)點(diǎn)的PSP將該請(qǐng)求分別轉(zhuǎn)發(fā)給源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn),源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)接收到請(qǐng)求后,分別向?qū)Ψ降耐饩W(wǎng)IP地址和端口號(hào)發(fā)送UDP穿越的數(shù)據(jù)包,以實(shí)現(xiàn)源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間建立連接。
在實(shí)際應(yīng)用中,上述三種連接方式同時(shí)進(jìn)行,如果任何一種方式建立成功,則停止采用其余的連接方式建立連接,如果三種連接方式均不能建立連接,則源通訊節(jié)點(diǎn)發(fā)送查找中轉(zhuǎn)種子的請(qǐng)求到其所連接的超級(jí)節(jié)點(diǎn)上,超級(jí)節(jié)點(diǎn)通過中央Server或者其它超級(jí)節(jié)點(diǎn)獲取能夠進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的通訊節(jié)點(diǎn)的信息,然后將該信息返回給源通訊節(jié)點(diǎn),源通訊節(jié)點(diǎn)根據(jù)該信息建立中轉(zhuǎn)通道,與目的通訊節(jié)點(diǎn)建立連接;其中,如果有多個(gè)通訊節(jié)點(diǎn)能夠進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),則源通訊節(jié)點(diǎn)可以根據(jù)這些通訊節(jié)點(diǎn)的信息建立多條中轉(zhuǎn)通道,其中的一條通道作為主通道,其余通道作為備份通道,如果主通道斷開連接則立即切換到其余備份通道,從而減少由于第三方通訊節(jié)點(diǎn)退出而引起的雙方通訊失敗的問題。
在實(shí)際應(yīng)用中,由于系統(tǒng)中的各個(gè)通訊節(jié)點(diǎn)會(huì)出現(xiàn)退出系統(tǒng)以及登錄系統(tǒng)的變化,因此,需要對(duì)各個(gè)超級(jí)節(jié)點(diǎn)中的路由表進(jìn)行更新,在本發(fā)明實(shí)施例中,可以采用以下兩種方式進(jìn)行路由表更新1、在有中央Server的情況下,各個(gè)超級(jí)節(jié)點(diǎn)與中央Server保持連接,中央Server保存有所有超級(jí)節(jié)點(diǎn)的信息,超級(jí)節(jié)點(diǎn)定期向中央Server發(fā)送路由表更新請(qǐng)求,中央Server返回最新的路由表給該超級(jí)節(jié)點(diǎn);2、在沒有中央Server的情況下,各個(gè)超級(jí)節(jié)點(diǎn)之間相互交換路由信息,從而不斷更新各自的路由表。
采用本發(fā)明提供的系統(tǒng)和方法,能夠?qū)崿F(xiàn)多方通訊,其具體應(yīng)用主要有兩種方式(1)會(huì)議模式,主席對(duì)各個(gè)參會(huì)人員的語音處理后中轉(zhuǎn)給其他參會(huì)人員,以實(shí)現(xiàn)多人語音,在其他人需要加入會(huì)議時(shí),首先查找主席,然后通過上面的方式和主席建立連接,將自己的數(shù)據(jù)發(fā)送給主席,主席進(jìn)行處理后轉(zhuǎn)發(fā)給其他人,主席可以對(duì)不同人的語音進(jìn)行混音,然后將混音后的數(shù)據(jù)發(fā)送給其他人。
(2)點(diǎn)對(duì)點(diǎn)模式,每?jī)牲c(diǎn)間建立數(shù)據(jù)通道,如多人視頻用戶采用本發(fā)明提供的方法直接和所有需要進(jìn)行數(shù)據(jù)通訊的用戶建立,然后利用該連接發(fā)送應(yīng)用數(shù)據(jù)。如多人的視頻會(huì)議,A希望看到B和C的視頻,A分別和B、C建立數(shù)據(jù)通道,以實(shí)現(xiàn)多人視頻通訊。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)數(shù)據(jù)通訊的系統(tǒng),該系統(tǒng)包括各個(gè)通訊節(jié)點(diǎn),通訊節(jié)點(diǎn)之間根據(jù)網(wǎng)絡(luò)信息建立連接并利用該連接實(shí)現(xiàn)數(shù)據(jù)通訊,其特征在于,該系統(tǒng)包括超級(jí)節(jié)點(diǎn)層,該超級(jí)節(jié)點(diǎn)層中包括至少兩個(gè)超級(jí)節(jié)點(diǎn),其中各個(gè)超級(jí)節(jié)點(diǎn)用于保存與之邏輯上最臨近的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,還用于進(jìn)行超級(jí)節(jié)點(diǎn)之間的消息轉(zhuǎn)發(fā),將保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息發(fā)送給源通訊節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述超級(jí)節(jié)點(diǎn)為所述通訊節(jié)點(diǎn)中的部分通訊節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述超級(jí)節(jié)點(diǎn)是網(wǎng)絡(luò)類型為公網(wǎng)類型或者混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型的通訊節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述超級(jí)節(jié)點(diǎn)為帶寬和在線時(shí)長(zhǎng)大于等于設(shè)定的帶寬和在線時(shí)長(zhǎng)的通訊節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括中央服務(wù)器,用于收集各個(gè)超級(jí)節(jié)點(diǎn)的網(wǎng)絡(luò)信息,并指導(dǎo)各個(gè)超級(jí)節(jié)點(diǎn)更新自身的路由表。
6.一種實(shí)現(xiàn)數(shù)據(jù)通訊的方法,其特征在于,該方法包括步驟A源通訊節(jié)點(diǎn)向與其物理上最臨近的超級(jí)節(jié)點(diǎn)發(fā)送查詢目的通訊節(jié)點(diǎn)的請(qǐng)求,自該超級(jí)節(jié)點(diǎn)開始,查找到與目的通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn),該超級(jí)節(jié)點(diǎn)將其保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn);步驟B源通訊節(jié)點(diǎn)利用得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,建立與目的通訊節(jié)點(diǎn)之間的連接,通過該連接傳輸數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)通訊。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟A之前,該方法進(jìn)一步包括步驟a將系統(tǒng)中的部分通訊節(jié)點(diǎn)確定為超級(jí)節(jié)點(diǎn);其中,每個(gè)超級(jí)節(jié)點(diǎn)中保存有與之連接的通訊節(jié)點(diǎn)或超級(jí)節(jié)點(diǎn)的路由信息;步驟b通訊節(jié)點(diǎn)登錄與之物理上最臨近的超級(jí)節(jié)點(diǎn),自該超級(jí)節(jié)點(diǎn)開始,各個(gè)超級(jí)節(jié)點(diǎn)之間利用各自所保存的路由信息,依次轉(zhuǎn)發(fā)登錄的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,直至將登錄的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)并記錄到與登錄的通訊節(jié)點(diǎn)邏輯上最接近的超級(jí)節(jié)點(diǎn)中。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,步驟a中所述將系統(tǒng)中的部分通訊節(jié)點(diǎn)確定為超級(jí)節(jié)點(diǎn)包括步驟a1依次讀取網(wǎng)絡(luò)中各個(gè)通訊節(jié)點(diǎn)的信息;步驟a2根據(jù)讀取的當(dāng)前通訊節(jié)點(diǎn)的信息,判斷當(dāng)前通訊節(jié)點(diǎn)的網(wǎng)絡(luò)類型是否為公網(wǎng)或混合網(wǎng)絡(luò)地址轉(zhuǎn)換,如果是,則繼續(xù)執(zhí)行步驟a3,否則,確定當(dāng)前通訊節(jié)點(diǎn)不是超級(jí)節(jié)點(diǎn),然后返回步驟a1,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷;步驟a3判斷當(dāng)前通訊節(jié)點(diǎn)的帶寬及在線時(shí)長(zhǎng)是否大于等于預(yù)先設(shè)定的帶寬及在線時(shí)長(zhǎng),如果是,則確定當(dāng)前通訊節(jié)點(diǎn)為超級(jí)節(jié)點(diǎn),否則,確定當(dāng)前通訊節(jié)點(diǎn)不是超級(jí)節(jié)點(diǎn),然后返回步驟a1,繼續(xù)對(duì)其它通訊節(jié)點(diǎn)進(jìn)行判斷。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述與通訊節(jié)點(diǎn)物理上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn),將所述與通訊節(jié)點(diǎn)邏輯上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn),步驟b包括步驟b1通訊節(jié)點(diǎn)登錄系統(tǒng)后,登錄到該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn)上,并將其網(wǎng)絡(luò)信息發(fā)送到該物理超級(jí)節(jié)點(diǎn)上;步驟b2該物理超級(jí)節(jié)點(diǎn)根據(jù)該登錄通訊節(jié)點(diǎn)網(wǎng)絡(luò)信息中的ID號(hào)碼,查找得到其保存的各個(gè)ID號(hào)碼中與該ID號(hào)碼最接近的ID號(hào)碼,并將登錄通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn),網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)到的超級(jí)節(jié)點(diǎn)重復(fù)上述轉(zhuǎn)發(fā)過程,直至將所述網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)至所述通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn)上并保存。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述與通訊節(jié)點(diǎn)物理上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn),將所述與通訊節(jié)點(diǎn)邏輯上最臨近的超級(jí)節(jié)點(diǎn)稱為該通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn),步驟A包括步驟A1源通訊節(jié)點(diǎn)向該源通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,其中,該查詢請(qǐng)求中包括目的通訊節(jié)點(diǎn)的ID號(hào)碼;步驟A2所述物理超級(jí)節(jié)點(diǎn)在本地查找是否保存有目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,如果存在,則直接將該網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn),并結(jié)束本流程,否則,該物理超級(jí)節(jié)點(diǎn)根據(jù)目的通訊節(jié)點(diǎn)的ID號(hào)碼,在該物理超級(jí)節(jié)點(diǎn)所保存的各個(gè)ID號(hào)碼中查找與該ID號(hào)碼最接近的ID號(hào)碼,然后,將查詢請(qǐng)求轉(zhuǎn)發(fā)到該最接近的ID號(hào)碼所對(duì)應(yīng)的超級(jí)節(jié)點(diǎn),查詢請(qǐng)求轉(zhuǎn)發(fā)到的超級(jí)節(jié)點(diǎn)重復(fù)上述轉(zhuǎn)發(fā)過程,直至將查詢請(qǐng)求轉(zhuǎn)發(fā)到所述目的通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn);步驟A3所述目的通訊節(jié)點(diǎn)的邏輯超級(jí)節(jié)點(diǎn)將其保存的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息返回給源通訊節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括源通訊節(jié)點(diǎn)根據(jù)獲取得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中的內(nèi)網(wǎng)IP地址和端口號(hào),直接向目的通訊節(jié)點(diǎn)的內(nèi)網(wǎng)IP地址和端口號(hào)發(fā)送連接請(qǐng)求,建立源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間的連接。
12.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟A之前,該方法進(jìn)一步包括對(duì)所述通訊節(jié)點(diǎn)進(jìn)行簡(jiǎn)單穿越方式測(cè)試,獲取通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào),將該外網(wǎng)IP地址和端口號(hào)添加到該通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中;步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括源通訊節(jié)點(diǎn)根據(jù)獲取得到的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中的外網(wǎng)IP地址和端口號(hào),直接向目的通訊節(jié)點(diǎn)的外網(wǎng)IP地址和端口號(hào)發(fā)送連接請(qǐng)求,建立源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間的連接。
13.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟A之前,該方法進(jìn)一步包括對(duì)所述通訊節(jié)點(diǎn)進(jìn)行簡(jiǎn)單穿越方式測(cè)試,獲取通訊節(jié)點(diǎn)的外網(wǎng)IP地址、端口號(hào)、和網(wǎng)絡(luò)類型,將該外網(wǎng)IP地址、端口號(hào)、和網(wǎng)絡(luò)類型添加到該通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息中;步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括源通訊節(jié)點(diǎn)根據(jù)自身的網(wǎng)絡(luò)類型以及目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)類型判斷采用何種方式進(jìn)行連接如果一方是公網(wǎng)另一方是混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型,則混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型一方讓另一方主動(dòng)連接過來;如果雙方既不是公網(wǎng)也不是混合網(wǎng)絡(luò)地址轉(zhuǎn)換類型,則源通訊節(jié)點(diǎn)發(fā)送穿越請(qǐng)求給目的通訊節(jié)點(diǎn)的物理超級(jí)節(jié)點(diǎn),該物理超級(jí)節(jié)點(diǎn)將該請(qǐng)求分別轉(zhuǎn)發(fā)給源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn),源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)接收到請(qǐng)求后,分別向?qū)Ψ降耐饩W(wǎng)IP地址和端口號(hào)發(fā)送UDP穿越的數(shù)據(jù)包,以實(shí)現(xiàn)源通訊節(jié)點(diǎn)和目的通訊節(jié)點(diǎn)之間建立連接。
14.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟B所述源通訊節(jié)點(diǎn)建立與目的通訊節(jié)點(diǎn)之間的連接包括同時(shí)采用內(nèi)網(wǎng)直連、外網(wǎng)直連、以及通過UDP穿越的方式建立連接,如果任何一種方式建立連接成功,則停止采用其余方式建立連接。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,如果所述三種方式均不能建立連接,該方法進(jìn)一步包括源通訊節(jié)點(diǎn)發(fā)送查找中轉(zhuǎn)種子的請(qǐng)求到其所連接的超級(jí)節(jié)點(diǎn)上,超級(jí)節(jié)點(diǎn)通過中央服務(wù)器或者其它超級(jí)節(jié)點(diǎn)獲取能夠進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的通訊節(jié)點(diǎn)的信息,然后將該信息返回給源通訊節(jié)點(diǎn),源通訊節(jié)點(diǎn)根據(jù)該信息建立中轉(zhuǎn)通道,與目的通訊節(jié)點(diǎn)建立連接。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,源通訊節(jié)點(diǎn)建立中轉(zhuǎn)通道包括建立多條中轉(zhuǎn)通道,其中的一條通道作為主通道,其余通道作為備份通道;該方法進(jìn)一步包括如果進(jìn)行數(shù)據(jù)通訊的主通道斷開連接,則立即將數(shù)據(jù)通訊切換到其余備份通道。
17.根據(jù)權(quán)利要求6所述的方法,其特征在于,超級(jí)節(jié)點(diǎn)利用其保存的路由信息進(jìn)行所述轉(zhuǎn)發(fā),該方法進(jìn)一步包括對(duì)各個(gè)超級(jí)節(jié)點(diǎn)中的路由信息進(jìn)行更新。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述對(duì)路由信息進(jìn)行更新包括超級(jí)節(jié)點(diǎn)定期向中央服務(wù)器發(fā)送路由表更新請(qǐng)求,中央服務(wù)器返回最新的路由表給該超級(jí)節(jié)點(diǎn)。
19.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述對(duì)路由信息進(jìn)行更新包括各個(gè)超級(jí)節(jié)點(diǎn)之間相互交換路由信息以不斷更新各自的路由表。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)數(shù)據(jù)通訊的系統(tǒng)及方法,將系統(tǒng)中的部分通訊節(jié)點(diǎn)確定為超級(jí)節(jié)點(diǎn),各個(gè)超級(jí)節(jié)點(diǎn)根據(jù)各自的路由表進(jìn)行消息轉(zhuǎn)發(fā)以實(shí)現(xiàn)在通訊節(jié)點(diǎn)登錄系統(tǒng)時(shí),通過各個(gè)超級(jí)節(jié)點(diǎn)之間的消息轉(zhuǎn)發(fā),將該登錄系統(tǒng)通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息保存到與登錄系統(tǒng)的通訊節(jié)點(diǎn)在邏輯上最臨近的超級(jí)節(jié)點(diǎn)中;以及,在源通訊節(jié)點(diǎn)查詢目的通訊節(jié)點(diǎn)時(shí),通過超級(jí)節(jié)點(diǎn)層中的各個(gè)超級(jí)節(jié)點(diǎn)之間的消息轉(zhuǎn)發(fā),將目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息由與該目的通訊節(jié)點(diǎn)在邏輯上最臨近的超級(jí)節(jié)點(diǎn)返回給源通訊節(jié)點(diǎn)。源通訊節(jié)點(diǎn)利用獲得的目的通訊節(jié)點(diǎn)的網(wǎng)絡(luò)信息,建立與目的通訊節(jié)點(diǎn)的連接,利用該連接實(shí)現(xiàn)數(shù)據(jù)通訊。
文檔編號(hào)H04L12/54GK1878118SQ200510074948
公開日2006年12月13日 申請(qǐng)日期2005年6月6日 優(yōu)先權(quán)日2005年6月6日
發(fā)明者朱冶, 張寶和, 吳波, 伍海君, 方斌 申請(qǐng)人:騰訊科技(深圳)有限公司