一種分布式虛擬現(xiàn)實(shí)系統(tǒng)網(wǎng)絡(luò)構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種虛擬現(xiàn)實(shí)技術(shù),特別是一種可擴(kuò)展的分布式虛擬現(xiàn)實(shí)系統(tǒng)網(wǎng)絡(luò)構(gòu)建技術(shù)。
【背景技術(shù)】
[0002]分布式虛擬現(xiàn)實(shí)系統(tǒng)將虛擬現(xiàn)實(shí)與網(wǎng)絡(luò)通訊相結(jié)合,提供一個(gè)共享虛擬空間以支持對(duì)象的仿真以及多個(gè)分布用戶的交互和通訊。盡管近年來(lái)網(wǎng)絡(luò)速度和主機(jī)處理能力在不斷提高,但當(dāng)虛擬現(xiàn)實(shí)系統(tǒng)中存在大量的用戶和對(duì)象時(shí),即使每個(gè)用戶只需要少量帶寬,成千上萬(wàn)的用戶通訊需求累加起來(lái)也必定超過(guò)網(wǎng)絡(luò)所能承受的限度,且在異構(gòu)的廣域網(wǎng)中各個(gè)用戶的接入速度和主機(jī)處理能力均有差異,速度慢的主機(jī)必然影響其他主機(jī)的響應(yīng)速度乃至降低整個(gè)環(huán)境的響應(yīng)性能。
[0003]興趣管理思想的提出實(shí)現(xiàn)了分布式虛擬現(xiàn)實(shí)系統(tǒng)中的對(duì)象通訊局部化,使得只有近距離的對(duì)象才能進(jìn)行通訊,有效地降低整個(gè)虛擬環(huán)境的通訊量,成為解決分布式虛擬現(xiàn)實(shí)系統(tǒng)的可擴(kuò)展性問(wèn)題的關(guān)鍵技術(shù)。興趣管理方法從提出至今,已有數(shù)十種不同的實(shí)現(xiàn)方法,根據(jù)實(shí)現(xiàn)興趣管理的通訊結(jié)構(gòu)的不同,大致可以分為:客戶/服務(wù)器結(jié)構(gòu)(Client-Server)、對(duì)等結(jié)構(gòu)(Peer-to-Peer)和混合結(jié)構(gòu)。
[0004]客戶/服務(wù)器結(jié)構(gòu)通常在服務(wù)器端實(shí)現(xiàn)興趣管理,可以比較容易地維護(hù)全局的空間信息,并做最準(zhǔn)確的信息過(guò)濾;但由于服務(wù)器容易成為瓶頸,且一旦服務(wù)器發(fā)生故障,整個(gè)虛擬環(huán)境系統(tǒng)將無(wú)法正常工作,并且通訊時(shí)延較大,兩個(gè)網(wǎng)絡(luò)距離很近的主機(jī)之間的通訊也必須經(jīng)過(guò)服務(wù)器轉(zhuǎn)發(fā)。對(duì)等結(jié)構(gòu)則采用在發(fā)送端實(shí)現(xiàn)興趣管理,每個(gè)主機(jī)均運(yùn)行相同的程序并維護(hù)整個(gè)虛擬環(huán)境的數(shù)據(jù)拷貝,因而不存在瓶頸,系統(tǒng)健壯性好;但通常需要一個(gè)服務(wù)器來(lái)解決新來(lái)者(new comer)加入的問(wèn)題,即新加入者需要從某個(gè)服務(wù)器上獲得關(guān)于其他主機(jī)的信息,其他主機(jī)也需要從該服務(wù)器上獲得新加入者的信息。為了克服這兩種結(jié)構(gòu)各自的缺點(diǎn),F(xiàn)unkhouser提出了混合結(jié)構(gòu),雖然較好地解決了服務(wù)器瓶頸、場(chǎng)景數(shù)據(jù)的分布等問(wèn)題,但是對(duì)分布式虛擬現(xiàn)實(shí)系統(tǒng)中所要求的可擴(kuò)展性和用戶對(duì)通訊內(nèi)容的頻繁的動(dòng)態(tài)變更這兩個(gè)問(wèn)題的解決都顯得束手無(wú)策。
[0005]
【發(fā)明內(nèi)容】
[0006]為了解決以上問(wèn)題,本發(fā)明采用基于內(nèi)容的發(fā)布-訂購(gòu)模式,把組播路由算法和主動(dòng)路由技術(shù)結(jié)合起來(lái),發(fā)明一種在分布式虛擬現(xiàn)實(shí)系統(tǒng)中具有較強(qiáng)可擴(kuò)展性的網(wǎng)絡(luò)架構(gòu)構(gòu)建技術(shù)。
[0007]本算法解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
提出一種基于CBT組播樹(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),實(shí)現(xiàn)了對(duì)象在不斷運(yùn)動(dòng)變化的狀態(tài)下能與其他對(duì)象進(jìn)行快速準(zhǔn)確的動(dòng)態(tài)通訊,使得在虛擬現(xiàn)實(shí)系統(tǒng)中可以容納大量對(duì)象進(jìn)行通訊。
[0008]提出一種基于發(fā)布/訂購(gòu)模式的通訊協(xié)議,能根據(jù)數(shù)據(jù)包的內(nèi)容進(jìn)行主動(dòng)過(guò)濾和轉(zhuǎn)發(fā),能有效地減輕系統(tǒng)的網(wǎng)絡(luò)負(fù)載,具有較好的可擴(kuò)展性。
[0009]提出一種適合快速路由匹配算法,加快了匹配的速度,有效地提高了路由器的數(shù)據(jù)處理效率。
[0010]本算法的有益效果是:采用CBT組播樹(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),使得虛擬對(duì)象可現(xiàn)實(shí)進(jìn)行快速準(zhǔn)確的動(dòng)態(tài)通訊;采用基于發(fā)布/訂購(gòu)模式的通訊協(xié)議,減輕系統(tǒng)的網(wǎng)絡(luò)負(fù)載;采用快速路由匹配算法,高了路由器的數(shù)據(jù)處理效率。
[0011]
【具體實(shí)施方式】
[0012]下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明。
[0013]1.系統(tǒng)的通訊拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)
在系統(tǒng)構(gòu)建中,我們采用CBT(Core-based Tree)作為基本的通訊架構(gòu)。在CBT中每個(gè)參與者可以同時(shí)擔(dān)當(dāng)發(fā)布者和訂購(gòu)者的角色,并共享一棵組播樹(shù),同時(shí)通過(guò)CBT連接的任意參與者都可以進(jìn)行通訊,且無(wú)論是進(jìn)行訂購(gòu)還是發(fā)布數(shù)據(jù)的流向都是任意的,屬于一種雙向共享組播樹(shù)的結(jié)構(gòu)。CBT不僅結(jié)構(gòu)簡(jiǎn)單,易于擴(kuò)展,而且與SBT (Source-based Tree)的通訊結(jié)構(gòu)相比,能有效地減少主動(dòng)路由器上的存儲(chǔ)規(guī)模。同時(shí),該結(jié)構(gòu)與發(fā)布-訂購(gòu)模式相結(jié)合,對(duì)象可以在任何時(shí)刻通過(guò)簡(jiǎn)單地向路由器發(fā)送新的訂購(gòu)信息,藉此改變通訊關(guān)系,因此對(duì)象間通訊關(guān)系的改變是完全動(dòng)態(tài)的,實(shí)現(xiàn)了對(duì)象在不斷運(yùn)動(dòng)變化的狀態(tài)下能與其他對(duì)象進(jìn)行快速準(zhǔn)確的動(dòng)態(tài)通訊,使得在虛擬現(xiàn)實(shí)系統(tǒng)中容納大量對(duì)象進(jìn)行通訊成為可能,提高了分布式虛擬現(xiàn)實(shí)系統(tǒng)的可擴(kuò)展性。
[0014]在基于CBT通訊拓?fù)浣Y(jié)構(gòu)的分布式虛擬現(xiàn)實(shí)系統(tǒng)中,路由器被組織成樹(shù)狀結(jié)構(gòu),作為根節(jié)點(diǎn)的路由器(Core AR)被稱(chēng)為核心路由器,負(fù)責(zé)整棵共享組播樹(shù)的構(gòu)造和維護(hù)。其余的路由器則作為非葉子結(jié)點(diǎn)進(jìn)行層次狀組織,連接作為葉子節(jié)點(diǎn)的參與者和服務(wù)器。在此通訊架構(gòu)中,用戶將自身興趣通過(guò)興趣表達(dá)式的形式向最近的主動(dòng)路由器訂購(gòu),CBT樹(shù)則負(fù)責(zé)維護(hù)所有用戶的訂購(gòu)信息;同時(shí)用戶也將自身最新的數(shù)據(jù)信息通過(guò)最近的路由器向CBT樹(shù)發(fā)送,經(jīng)過(guò)CBT樹(shù)中路由器的匹配和過(guò)濾,最終到達(dá)對(duì)其感興趣的用戶。
[0015]2.系統(tǒng)的路由協(xié)議設(shè)計(jì)
我們將設(shè)計(jì)基于發(fā)布/訂購(gòu)模式的通訊協(xié)議:SRP(Subscript1n Routing Protocol)和RDP (Realtime Datagram Delivery Protocol)??紤]到訂購(gòu)/發(fā)布信息動(dòng)態(tài)的,而且其最大長(zhǎng)度可能會(huì)超過(guò)網(wǎng)絡(luò)中數(shù)據(jù)包的最大幀的長(zhǎng)度,如果直接在網(wǎng)絡(luò)層進(jìn)行訂購(gòu)信息的管理,還需要實(shí)現(xiàn)數(shù)據(jù)包的重組,因此,我們將上述協(xié)議配置在路由器的應(yīng)用層,直接利用現(xiàn)有的協(xié)議(如UDP和TCP)對(duì)數(shù)據(jù)包進(jìn)行發(fā)送。
[0016]SRP 包括的 UPDATE、QUIT、SUBSCRIBE、REPLY、ECH0_REQUEST、ECH0_REPLY 六個(gè)消息,其作用主要是構(gòu)造組播樹(shù)、傳播路由信息、維護(hù)組播樹(shù)、退出組播樹(shù)。SRP協(xié)議中的所有消息通過(guò)UDP數(shù)據(jù)包進(jìn)行發(fā)送,其中UPDATE消息和QUIT消息的發(fā)送采取Best-efforts方式,不保證可靠性,而SUBSCRIBE、REPLY、ECH0_REQUEST、ECH0_REPLY消息通過(guò)SRP協(xié)議中的重傳機(jī)制保證點(diǎn)到點(diǎn)的可靠性。SRP不同類(lèi)型消息在路由器上的處理方式為:
①在路由器尚未加入組播樹(shù)的情況下,如果是