專利名稱:一種對(duì)等網(wǎng)中消息交互的方法及裝置、系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式通信網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種對(duì)等網(wǎng)中消息交互的方法及裝置、系統(tǒng)。
背景技術(shù):
對(duì)等網(wǎng)絡(luò)(P2P,Peer to Peer)是一種分布式網(wǎng)絡(luò),網(wǎng)絡(luò)的參與者共享他們所擁有的資源和服務(wù)。通常這些資源和服務(wù)的共享包括信息的共享與交換、計(jì)算資源(如CPU)和存儲(chǔ)資源(如緩存和磁盤空間)的共享等。P2P打破了傳統(tǒng)的客戶端/服務(wù)器(C/S,Client/Server)模式,在P2P網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的地位都是對(duì)等的。每個(gè)節(jié)點(diǎn)既充當(dāng)服務(wù)器為其他節(jié)點(diǎn)提供服務(wù),同時(shí)也享用其他節(jié)點(diǎn)提供的服務(wù)。資源定位和發(fā)現(xiàn)協(xié)議(RELOAD, Resource Locate And Discovery)是互聯(lián)網(wǎng)工程 任務(wù)組(IETF, Internet Engineering Task Force)的 P2P 會(huì)話初始協(xié)議(SIP, SessionInitiation Protocol)工作組定義的一種應(yīng)用于對(duì)等網(wǎng)絡(luò)的資源定位和發(fā)現(xiàn)協(xié)議。RELOAD對(duì)等網(wǎng)中節(jié)點(diǎn)主要有對(duì)等體(Peer)和客戶端(Client)兩種。其中,對(duì)等體負(fù)責(zé)對(duì)等網(wǎng)資源的存儲(chǔ)和消息路由,具有公網(wǎng)地址、處理能力強(qiáng)、自身資源豐富等特性,是對(duì)等網(wǎng)的主要節(jié)點(diǎn)。客戶端一般不具備對(duì)等體的特性,可以通過自身的接入節(jié)點(diǎn)(默認(rèn)的接入節(jié)點(diǎn)為該客戶端的負(fù)責(zé)節(jié)點(diǎn),但也可以是任意的對(duì)等體)接入對(duì)等網(wǎng),可以完全利用對(duì)等網(wǎng)的路由機(jī)制與對(duì)等網(wǎng)中其它對(duì)等體、以及其他客戶端進(jìn)行通信。RELOAD對(duì)等網(wǎng)中,現(xiàn)有的客戶端只能獲知自身接入節(jié)點(diǎn)的地址信息,同時(shí)對(duì)等網(wǎng)中也只有所述客戶端的接入節(jié)點(diǎn)能夠獲知所述客戶端的地址信息。客戶端與對(duì)等網(wǎng)網(wǎng)絡(luò)側(cè)進(jìn)行消息交互的過程中,在客戶端與接入節(jié)點(diǎn)建立連接后,客戶端發(fā)往對(duì)等網(wǎng)中目的對(duì)等體的消息必須經(jīng)過接入節(jié)點(diǎn)中轉(zhuǎn),對(duì)等網(wǎng)中除接入節(jié)點(diǎn)以外的其他對(duì)等體發(fā)往客戶端的所有消息也必須經(jīng)過所述接入節(jié)點(diǎn)中轉(zhuǎn)才能到達(dá)客戶端。如此,使得客戶端與對(duì)等網(wǎng)網(wǎng)絡(luò)側(cè)的信息交互必須全部經(jīng)過其接入節(jié)點(diǎn)中轉(zhuǎn)才能夠?qū)崿F(xiàn),而不能直接到達(dá)客戶端或目的對(duì)等體,增加了消息的路由跳數(shù),并且在客戶端與對(duì)等網(wǎng)信息交互消息量很大時(shí),接入節(jié)點(diǎn)難以滿足大量消息的轉(zhuǎn)發(fā),因而引起接入節(jié)點(diǎn)的性能瓶頸,此外,還會(huì)降低消息交互的處理效率和成功率。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種對(duì)等網(wǎng)中消息交互的方法及裝置、系統(tǒng),以解決現(xiàn)有對(duì)等網(wǎng)中客戶端與對(duì)等網(wǎng)網(wǎng)絡(luò)側(cè)進(jìn)行消息交互時(shí)消息路由跳數(shù)多、引起接入節(jié)點(diǎn)性能瓶頸以及影響降低消息交互的處理效率和成功率的問題。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種對(duì)等網(wǎng)中消息交互的方法,所述方法包括客戶端獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,對(duì)等體獲取客戶端的地址信息并保存到本地的客戶端列表,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息。在上述方案中,所述客戶端獲取對(duì)等網(wǎng)路由表,包括所述客戶端從作為自身接入節(jié)點(diǎn)的對(duì)等體下載對(duì)等網(wǎng)路由表并保存。在上述方案中,根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息,包括所述客戶端查詢本地的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的對(duì)等體的地址信息時(shí),直接向所述目的對(duì)等體發(fā)送消息。在上述方案中,所述對(duì)等體獲取客戶端的地址信息并保存到本地的客戶端列表,包括 作為客戶端的接入節(jié)點(diǎn)的對(duì)等體,獲取所述客戶端的地址信息,并將所述客戶端的地址信息保存本地的客戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,將所述客戶端的地址信息通知給與所述客戶端相關(guān)的其他各對(duì)等體,所述其他各對(duì)等體分別將所述客戶端地址信息保存到本地的客戶端列表。在上述方案中,所述客戶端將所述客戶端的地址信息通知給與所述客戶端相關(guān)的其他各對(duì)等體,包括所述客戶端根據(jù)所述對(duì)等網(wǎng)路由表,將自身的地址信息通知給與自身相關(guān)的對(duì)等體。在上述方案中,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息,包括所述對(duì)等體查詢本地的客戶端列表,從所述客戶端列表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。在上述方案中,所述方法還包括所述客戶端從對(duì)等體獲取所述客戶端列表,并根據(jù)所述客戶端列表,向目的客戶端發(fā)送消息。在上述方案中,根據(jù)所述客戶端列表,向目的客戶端發(fā)送消息,包括所述客戶端查詢本地的客戶端列表和本地路由表,在查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。在上述方案中,所述方法還包括所述對(duì)等體接收到需要轉(zhuǎn)發(fā)到目的客戶端的消息時(shí),查詢本地的客戶端列表,在本地的客戶端列表中包含有所述目的客戶端的地址信息時(shí),將所述消息直接轉(zhuǎn)發(fā)給所述目的客戶端。在上述方案中,所述方法還包括客戶端實(shí)時(shí)獲取當(dāng)前的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表。在上述方案中,所述客戶端實(shí)時(shí)獲取當(dāng)前的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表,為所述客戶端與作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體?;?,實(shí)時(shí)更新本地的對(duì)等網(wǎng)路由表。在上述方案中,所述客戶端實(shí)時(shí)獲取當(dāng)前的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表,為在所述客戶端的接入節(jié)點(diǎn)失效后,所述客戶端與重新確定為接入節(jié)點(diǎn)的對(duì)等體?;?,實(shí)時(shí)更新本地的對(duì)等網(wǎng)路由表。
在上述方案中,所述客戶端實(shí)時(shí)獲取當(dāng)前的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表,為作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體,在對(duì)等網(wǎng)調(diào)整后,向所述客戶端發(fā)送更新后的對(duì)等網(wǎng)路由表,所述客戶端接收所述對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表。在上述方案中,所述方法還包括所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表。在上述方案中,所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表,包括在所述客戶端失效后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表; 所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體更新客戶端列表,所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。在上述方案中,所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表,包括在所述客戶端退出對(duì)等網(wǎng)后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體所述客戶端已退出對(duì)等網(wǎng),所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。在上述方案中,所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表,包括在對(duì)等網(wǎng)調(diào)整后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體更新客戶端列表,所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。本發(fā)明還提供了一種客戶端,所述客戶端包括第一獲取單元和第一發(fā)送單元,其中,第一獲取單元,用于獲取對(duì)等網(wǎng)路由表;第一發(fā)送單元,用于根據(jù)所述第一獲取單元獲取的對(duì)等網(wǎng)路由表,向目的對(duì)等體發(fā)送消息。在上述方案中,所述客戶端還包括第一存儲(chǔ)單元,用于保存所述第一獲取單元獲取的對(duì)等網(wǎng)路由表;所述第一獲取單元,用于從客戶端的接入節(jié)點(diǎn)下載對(duì)等網(wǎng)路由表。在上述方案中,所述第一發(fā)送單元,用于查詢所述第一存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的對(duì)等體的地址信息時(shí),直接向所述目的對(duì)等體發(fā)送消息。在上述方案中,所述客戶端還包括第一更新單元;所述第一獲取單元,用于實(shí)時(shí)獲取對(duì)等網(wǎng)路由表;
所述第一更新單元,用于根據(jù)所述第一獲取單元獲取的對(duì)等網(wǎng)路由表,更新所述第一存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表。本發(fā)明還提供了一種對(duì)等體,所述對(duì)等體包括第二獲取單元、第二存儲(chǔ)單元和第二發(fā)送單元,其中,第二獲取單元,用于獲取客戶端的地址信息并保存到所述第二存儲(chǔ)單元保存的客戶端列表中;第二發(fā)送單元,用于根據(jù)所述第二存儲(chǔ)單元保存的客戶端列表,向目的客戶端發(fā)送消息。在上述方案中,所述第二發(fā)送單元,用于查詢所述第二存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。
在上述方案中,所述第二發(fā)送單元,還用于在接收到需轉(zhuǎn)發(fā)至目的客戶端的消息時(shí),查詢所述第二存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。在上述方案中,所述第二獲取單元,用于從客戶端或作為客戶端接入節(jié)點(diǎn)的對(duì)等體,獲取所述客戶端的地址信息。在上述方案中,所述對(duì)等體還包括第二更新單元,用于在對(duì)等網(wǎng)調(diào)整后、和/或客戶端失效后、和/或?qū)Φ染W(wǎng)中有對(duì)等體失效后、和/或客戶端退出對(duì)等網(wǎng)后,更新所述第二存儲(chǔ)單元保存的客戶端列表;和/或,用于在接收到作為客戶端接入節(jié)點(diǎn)的對(duì)等體或客戶端發(fā)送的通知后,根據(jù)所述通知更新所述第二存儲(chǔ)單元保存的客戶端列表。本發(fā)明還提供了一種對(duì)等網(wǎng)系統(tǒng),所述系統(tǒng)包括客戶端和兩個(gè)或兩個(gè)以上的對(duì)等體,其中,客戶端,用于獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,所述對(duì)等體,用于獲取客戶端的地址信息并保存到本地的客戶端列表,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息。本發(fā)明中,客戶端根據(jù)獲取的對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,對(duì)等體根據(jù)保存有客戶端地址信息的客戶端列表向目的客戶端發(fā)送消息,如此,使得與對(duì)等網(wǎng)交互信息量大的客戶端接入至對(duì)等網(wǎng)后可以直接與對(duì)等體交互消息,不需要經(jīng)由接入節(jié)點(diǎn)中轉(zhuǎn),有效地避免接入節(jié)點(diǎn)的性能瓶頸問題,并減少了客戶端與對(duì)等網(wǎng)消息路由的跳數(shù),并且,客戶端與對(duì)等網(wǎng)的路由關(guān)系可以隨對(duì)等網(wǎng)的調(diào)整而及時(shí)調(diào)整,有效地提升了客戶端與對(duì)等網(wǎng)信息的交互效率。
圖I為本發(fā)明中客戶端的組成結(jié)構(gòu)示意圖;圖2為本發(fā)明中對(duì)等網(wǎng)系統(tǒng)一種實(shí)施例的組成結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例一中客戶端接入對(duì)等網(wǎng)的流程示意圖;圖4為本發(fā)明實(shí)施例二中客戶端尋址對(duì)等網(wǎng)的流程示意圖;圖5為本發(fā)明實(shí)施例三中對(duì)等網(wǎng)中的一個(gè)對(duì)等體尋址客戶端的流程示意圖6為本發(fā)明實(shí)施例四中對(duì)等網(wǎng)中客戶端之間互相尋址的流程示意圖;圖7為本發(fā)明實(shí)施例五中對(duì)等網(wǎng)調(diào)整時(shí)更新對(duì)等網(wǎng)路由表、以及調(diào)整本地客戶端列表的流程示意圖;圖8為本發(fā)明實(shí)施例六中接入節(jié)點(diǎn)失效后更新對(duì)等網(wǎng)路由表的流程示意圖;圖9為本發(fā)明實(shí)施例七中客戶端失效后更新客戶端列表的流程示意圖;圖10為本發(fā)明實(shí)施例八中客戶端退出對(duì)等網(wǎng)時(shí)更新客戶端列表的流程示意圖。
具體實(shí)施例方式本發(fā)明的基本思想是讓客戶端保存并維護(hù)包含有對(duì)等網(wǎng)中相關(guān)對(duì)等體地址信息的對(duì)等網(wǎng)路由表,對(duì)等網(wǎng)中相關(guān)對(duì)等體也可以保存并維護(hù)包含有客戶端地址/[目息的客戶端 地址列表,客戶端根據(jù)自身保存的對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息,對(duì)等體根據(jù)自身保存的客戶端地址列表,向客戶端發(fā)送消息。如此,使得客戶端和對(duì)等體之間可以直接進(jìn)行消息交互,不需要經(jīng)過客戶端的接入節(jié)點(diǎn)中轉(zhuǎn),避免在客戶端與對(duì)等網(wǎng)的網(wǎng)絡(luò)側(cè)之間交互的消息量很大時(shí),引起接入節(jié)點(diǎn)的性能瓶頸,提高對(duì)等網(wǎng)中消息交互的處理效率和成功率。本發(fā)明的對(duì)等網(wǎng)中消息交互的方法,主要可以包括客戶端獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,對(duì)等體獲取客戶端的地址信息,并根據(jù)所述客戶端的地址信息向所述客戶端發(fā)送消息。這里,所述客戶端可以從作為自身接入節(jié)點(diǎn)的對(duì)等體下載對(duì)等網(wǎng)路由表并保存。所述客戶端可以查詢本地的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的對(duì)等體的地址信息時(shí),則直接向所述目的對(duì)等體發(fā)送消息。例如,客戶端尋址對(duì)等網(wǎng)時(shí),客戶端查詢本地的對(duì)等網(wǎng)路由表,如果查詢到目的對(duì)等體的地址信息時(shí),則直接向所述目的對(duì)等體發(fā)送消息,如果沒有查詢到目的對(duì)等體的地址信息,則可以按照現(xiàn)有的路由機(jī)制路由消息至最近的對(duì)等體,再由該對(duì)等體將所述消息發(fā)送到目的對(duì)等體。其中,作為客戶端的接入節(jié)點(diǎn)的對(duì)等體,獲取所述客戶端的地址信息,并將所述客戶端的地址信息保存本地的客戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,將所述客戶端的地址信息通知給與所述客戶端相關(guān)的其他各對(duì)等體,所述其他各對(duì)等體分別將所述客戶端地址信息保存到本地的客戶端列表。發(fā)送消息時(shí),所述對(duì)等體查詢本地的客戶端列表,從所述客戶端列表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。這里,所述客戶端可以根據(jù)所述對(duì)等網(wǎng)路由表,將自身的地址信息通知給與自身相關(guān)的對(duì)等體。這里,所述方法還可以包括所述客戶端從對(duì)等體獲取所述客戶端列表,并根據(jù)所述客戶端列表,向目的客戶端發(fā)送消息。具體地,客戶端可以從作為自身接入節(jié)點(diǎn)的對(duì)等體上獲取客戶端列表。所述客戶端可以查詢本地的客戶端列表和本地路由表,在查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。這里,所述方法還可以包括所述對(duì)等體接收到需要轉(zhuǎn)發(fā)到目的客戶端的消息時(shí),查詢本地的客戶端列表,在本地的客戶端列表中包含有所述目的客戶端的地址信息時(shí),將所述消息直接轉(zhuǎn)發(fā)給所述目的客戶端。
其中,客戶端還可以實(shí)時(shí)獲取當(dāng)前的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表。具體地,所述客戶端可以與作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體?;睿瑢?shí)時(shí)更新本地的對(duì)等網(wǎng)路由表。在所述客戶端的接入節(jié)點(diǎn)失效后,所述客戶端可以與重新確定為接入節(jié)點(diǎn)的對(duì)等體?;?,實(shí)時(shí)更新本地的對(duì)等網(wǎng)路由表。作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體,在對(duì)等網(wǎng)調(diào)整后,向所述客戶端發(fā)送更新后的對(duì)等網(wǎng)路由表,所述客戶端接收所述對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表。其中,所述對(duì)等體還可以實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表。具體地,在所述客戶端失效后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客 戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體更新客戶端列表,所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。這里,在所述客戶端退出對(duì)等網(wǎng)后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體所述客戶端離開對(duì)等網(wǎng),所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。這里,在對(duì)等網(wǎng)調(diào)整后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表;所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體更新客戶端列表,所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。相應(yīng)的,本發(fā)明還提供了一種客戶端,如圖I所示,所述客戶端包括第一獲取單元和第一發(fā)送單元,其中,第一獲取單元,用于獲取對(duì)等網(wǎng)路由表;第一發(fā)送單元,用于根據(jù)所述第一獲取單元獲取的對(duì)等網(wǎng)路由表,向目的對(duì)等體發(fā)送消息。其中,所述客戶端還可以包括第一存儲(chǔ)單元,用于保存所述第一獲取單元獲取的對(duì)等網(wǎng)路由表;所述第一獲取單元,用于從客戶端的接入節(jié)點(diǎn)下載對(duì)等網(wǎng)路由表。其中,所述第一發(fā)送單元,具體可以用于查詢所述第一存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的對(duì)等體的地址信息時(shí),直接向所述目的對(duì)等體發(fā)送消息。其中,所述客戶端還包括第一更新單元;所述第一獲取單元,用于實(shí)時(shí)獲取對(duì)等網(wǎng)路由表;所述第一更新單元,用于根據(jù)所述第一獲取單元獲取的對(duì)等網(wǎng)路由表,更新所述第一存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表。本發(fā)明還提供了一種對(duì)等體,所述對(duì)等體包括第二獲取單元、第二存儲(chǔ)單元和第二發(fā)送單元,其中,第二獲取單元,用于獲取客戶端的地址信息并保存到所述第二存儲(chǔ)單元保存的客戶端列表中;第二發(fā)送單元,用于根據(jù)所述第二存儲(chǔ)單元保存的客戶端列表,向目的客戶端發(fā)送消息。其中,所述第二發(fā)送單元,用于查詢所述第二存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。其中,所述第二發(fā)送單元,還用于在接收到需轉(zhuǎn)發(fā)至目的客戶端的消息時(shí),查詢所述第二存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。
其中,所述第二獲取單元,用于從客戶端或作為客戶端接入節(jié)點(diǎn)的對(duì)等體,獲取所述客戶端的地址信息。其中,所述對(duì)等體還包括第二更新單元,用于在對(duì)等網(wǎng)調(diào)整后、和/或客戶端失效后、和/或?qū)Φ染W(wǎng)中有對(duì)等體失效后、和/或客戶端退出對(duì)等網(wǎng)后,更新所述第二存儲(chǔ)單元保存的客戶端列表;和/或,用于在接收到作為客戶端接入節(jié)點(diǎn)的對(duì)等體或客戶端發(fā)送的通知后,根據(jù)所述通知更新所述第二存儲(chǔ)單元保存的客戶端列表。本發(fā)明還提供了一種對(duì)等網(wǎng)系統(tǒng),所述系統(tǒng)包括客戶端和兩個(gè)或兩個(gè)以上的對(duì)等體,其中,客戶端,用于獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,所述對(duì)等體,用于獲取客戶端的地址信息并保存到本地的客戶端列表,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息。圖2為本發(fā)明的對(duì)等網(wǎng)系統(tǒng)的一種實(shí)施例的組成架構(gòu)示 意圖,該對(duì)等網(wǎng)系統(tǒng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3、對(duì)等體4和客戶端,其中,對(duì)等體I為客戶端的接入節(jié)點(diǎn)。各對(duì)等體中保存有客戶端列表,客戶端中保存有對(duì)等網(wǎng)路由表。實(shí)施例一本實(shí)施例中,在客戶端加入對(duì)等網(wǎng)的流程中,客戶端獲取對(duì)等網(wǎng)路由表,對(duì)等體獲取客戶端的地址信息,生成客戶端地址列表。如圖3所示,本實(shí)施例中的對(duì)等網(wǎng)包括對(duì)等體
I、對(duì)等體2、對(duì)等體3和客戶端。具體地,參照?qǐng)D3所示,客戶端接入對(duì)等網(wǎng)的流程可以包括以下步驟步驟301,客戶端選取對(duì)等體I作為自身的接入節(jié)點(diǎn),向?qū)Φ润wI發(fā)出加入對(duì)等網(wǎng)請(qǐng)求,對(duì)等體I獲取客戶端的地址信息;具體地,客戶端可以按照對(duì)等網(wǎng)的默認(rèn)方式,選取自身的負(fù)責(zé)節(jié)點(diǎn)作為自身的接入節(jié)點(diǎn),本實(shí)施例中,客戶端在對(duì)等網(wǎng)的負(fù)責(zé)節(jié)點(diǎn)為對(duì)等體1,則客戶端選擇對(duì)等體I作為自身的接入節(jié)點(diǎn)。實(shí)際應(yīng)用中,客戶端還可以選取對(duì)等網(wǎng)中其他任意節(jié)點(diǎn)(如對(duì)等體2或?qū)Φ润w3)作為自身的接入節(jié)點(diǎn)。具體地,對(duì)等體I可以從客戶端發(fā)出的加入對(duì)等網(wǎng)請(qǐng)求中,提取到客戶端的地址信息。步驟302,客戶端從所述對(duì)等體I中下載對(duì)等網(wǎng)路由表并保存,如此,客戶端能夠利用所述對(duì)等網(wǎng)路由表直接發(fā)送消息給目的對(duì)等體。步驟303,對(duì)等體I將所述客戶端的地址信息保存到本地的客戶端列表,繼續(xù)步驟304 ;這里,客戶端列表用于保存客戶端的標(biāo)識(shí)、地址等信息。步驟304,對(duì)等體I向?qū)Φ染W(wǎng)中其他與所述客戶端相關(guān)的對(duì)等體通知所述客戶端的地址信息,或者,客戶端根據(jù)獲取的對(duì)等網(wǎng)路由表,向?qū)Φ染W(wǎng)中除自身接入節(jié)點(diǎn)外的、與自身相關(guān)的對(duì)等體通知所述客戶端的地址信息。如此,使得對(duì)等網(wǎng)中的對(duì)等體可以根據(jù)客戶端的地址信息,直接發(fā)送或路由消息至客戶端。具體地,對(duì)等網(wǎng)中除對(duì)等體I以外、與所述客戶端相關(guān)的對(duì)等體,可以由具體的對(duì)等網(wǎng)算法來確定,基本原則是盡量選擇在客戶端接入節(jié)點(diǎn)的尋址路徑上的對(duì)等體。本實(shí)施例中,除客戶端的接入節(jié)點(diǎn)即對(duì)等體I外、與客戶端相關(guān)的對(duì)等體為對(duì)等體2。例如,對(duì)于默認(rèn)的哈希(Chord)算法,在對(duì)等體的本地路由表中包含有所述客戶端的接入節(jié)點(diǎn)的相關(guān)信息(如接入節(jié)點(diǎn)的地址信息)時(shí),則認(rèn)為該對(duì)等體為與所述客戶端相關(guān)的對(duì)等體。這里,所述對(duì)等網(wǎng)中接收到上述通知的對(duì)等體,將所述客戶端的地址信息保存至本地的客戶端列表。步驟305,對(duì)等體I向客戶端返回加入對(duì)等網(wǎng)的響應(yīng)消息。實(shí)施例二本實(shí)施例中,如圖4所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3和客戶端。具體地,參照?qǐng)D4所示,客戶端尋址對(duì)等網(wǎng)的流程可以包括以下步驟步驟401,客戶端成功加入對(duì)等網(wǎng);步驟402,客戶端需要與對(duì)等網(wǎng)中的對(duì)等體3進(jìn)行通信; 步驟403,客戶端從自身保存的對(duì)等網(wǎng)路由表中,查詢是否有所述對(duì)等體3的地址信息,如果有,則繼續(xù)步驟404,否則,繼續(xù)步驟405 ;步驟404,客戶端根據(jù)查詢到的對(duì)等體3的地址信息,直接向所述對(duì)等體3發(fā)送消息;步驟405,客戶端按照路由算法,確定自身保存的對(duì)等網(wǎng)路由表中對(duì)等體2與所述對(duì)等體3最近,則從所述對(duì)等網(wǎng)路由表中查詢到對(duì)等體2的地址信息,并將發(fā)往對(duì)等體3的消息路由給對(duì)等體2。這里,客戶端可以利用對(duì)等網(wǎng)路由表,按照現(xiàn)有對(duì)等體之間的路由方式將消息路由至對(duì)等網(wǎng)路由表中距離對(duì)等體3最近的對(duì)等體,即對(duì)等體2。步驟406,對(duì)等體2將所述客戶端發(fā)送的消息轉(zhuǎn)發(fā)至所述對(duì)等體3。具體地,在對(duì)等體2上按照現(xiàn)有的路由算法將所述消息路由至對(duì)等體3,該過程為現(xiàn)有技術(shù),在此不再贅述。本實(shí)施例中,客戶端可以根據(jù)已獲取的對(duì)等網(wǎng)路由表,在本地直接尋址對(duì)等體,避免了消息經(jīng)由客戶端的接入節(jié)點(diǎn)轉(zhuǎn)發(fā),解決了接入節(jié)點(diǎn)的瓶頸問題,同時(shí)也減少了客戶端將消息傳遞至目的對(duì)等體的路由跳數(shù)。實(shí)施例三本實(shí)施例中,如圖5所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3和客戶端。具體地,參照?qǐng)D5所示,對(duì)等網(wǎng)中的一個(gè)對(duì)等體尋址客戶端的流程可以包括以下步驟步驟501,客戶端成功加入對(duì)等網(wǎng);步驟502,對(duì)等網(wǎng)中對(duì)等體3需要與客戶端通信;步驟503,對(duì)等體3查詢本地的客戶端列表,是否包含有所述客戶端的地址信息,如果是,則繼續(xù)步驟504,否則,繼續(xù)步驟505 ;步驟504,對(duì)等體3根據(jù)本地客戶端列表中所述客戶端的地址信息,直接向所述客戶端發(fā)送消息,結(jié)束當(dāng)前流程。步驟505,對(duì)等體3按照對(duì)等網(wǎng)路由算法,將發(fā)送給客戶端的消息發(fā)送至本地路由表中距離所述客戶端最近的對(duì)等體2 ;具體地,對(duì)等體3通過查詢本地路由表,確定本地路由表中對(duì)等體2與所述客戶端最近,則將發(fā)送給所述客戶端的消息路由至對(duì)等體2,具體過程為現(xiàn)有技術(shù),在此不再贅述。
步驟506,對(duì)等體2按照上述步驟503-505的流程,轉(zhuǎn)發(fā)所述消息,直至所述消息路由至所述客戶端,結(jié)束當(dāng)前流程。具體地,對(duì)等體2可以查詢本地的客戶端列表,如果本地的客戶端列表中包含有所述客戶端的地址信息,則直接將所述消息轉(zhuǎn)發(fā)至所述客戶端,如果本地的客戶端列表中不包含所述客戶端的地址信息,則查詢本地路由表,將所述消息轉(zhuǎn)發(fā)至本地路由表與所述客戶端最近的對(duì)等體I中,再由對(duì)等體I將所述消息轉(zhuǎn)發(fā)至所述客戶端。本實(shí)施例中,對(duì)等體通過查詢本地的客戶端列表,在本地的客戶端列表中存有所述客戶端的地址信息時(shí),便可以直接將消息路由至客戶端,不需要將消息經(jīng)由接入節(jié)點(diǎn)轉(zhuǎn)發(fā),解決了接入節(jié)點(diǎn)的瓶頸問題,同時(shí)減少了對(duì)等體與客戶端之間消息的路由跳數(shù)。實(shí)施例四
本實(shí)施例中,如圖6所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3、客戶端I和客戶端2。具體地,參照?qǐng)D6所示,對(duì)等網(wǎng)中客戶端之間互相尋址的流程可以包括以下步驟步驟601,客戶端I和客戶端2成功加入對(duì)等網(wǎng);步驟602,客戶端I需要與客戶端2通信;步驟603,客戶端I查詢本地路由表和客戶端列表,是否包含有客戶端2的地址信息,如果是,則繼續(xù)步驟604,如果不是,繼續(xù)步驟605 ;這里,客戶端I可以從自身的接入節(jié)點(diǎn)獲取客戶端列表并保存到本地。步驟604,客戶端I根據(jù)客戶端2的地址信息,直接向客戶端2發(fā)送消息,結(jié)束當(dāng)前流程。步驟605,客戶端I按照對(duì)等網(wǎng)路由算法,將發(fā)往客戶端2的消息發(fā)送至本地的對(duì)等網(wǎng)路由表中距離客戶端2最近的對(duì)等體2 ;步驟606,對(duì)等體2查詢本地的客戶端列表,是否包含有客戶端2的地址信息,如果是,則繼續(xù)步驟607,如果不是,繼續(xù)步驟608 ;步驟607,對(duì)等體2根據(jù)本地客戶端列表中客戶端2的地址信息,直接將所述發(fā)送客戶端2的消息轉(zhuǎn)發(fā)至客戶端2,結(jié)束當(dāng)前流程。步驟608,對(duì)等體2按照對(duì)等網(wǎng)路由算法,將發(fā)往客戶端2的消息轉(zhuǎn)發(fā)至本地路由表中距離客戶端2最近的對(duì)等體3 ;步驟609,對(duì)等體3按照上述步驟606-608的流程,轉(zhuǎn)發(fā)所述發(fā)送客戶端2的消息,直至所述發(fā)往客戶端2的消息轉(zhuǎn)發(fā)至客戶端2,結(jié)束當(dāng)前流程。本實(shí)施例中,客戶端可以通過查詢本地的客戶端列表,在本地的客戶端列表中存有所述客戶端的地址信息時(shí),便可以直接將消息路由至客戶端,此外,轉(zhuǎn)發(fā)所述消息的對(duì)等體也可以通過查詢本地的客戶端列表,在本地的客戶端列表中存有所述客戶端的地址信息時(shí),直接將所述消息轉(zhuǎn)發(fā)至客戶端,如此,不需要將消息經(jīng)由接入節(jié)點(diǎn)轉(zhuǎn)發(fā),解決了接入節(jié)點(diǎn)的瓶頸問題,同時(shí)減少了對(duì)等網(wǎng)中消息的路由跳數(shù)。實(shí)施例五本實(shí)施例中,如圖7所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3、和客戶端。具體地,參照?qǐng)D7所示,對(duì)等網(wǎng)調(diào)整時(shí)更新對(duì)等網(wǎng)路由表、以及調(diào)整本地客戶端列表的流程可以包括以下步驟
步驟701,客戶端選取對(duì)等體I作為自身的接入節(jié)點(diǎn),并成功加入對(duì)等網(wǎng);步驟702,對(duì)等網(wǎng)組成及結(jié)構(gòu)變更,例如,有新的對(duì)等體加入對(duì)等網(wǎng)、或者對(duì)等網(wǎng)中有對(duì)等體失效退出。步驟703,對(duì)等網(wǎng)中各對(duì)等體更新自身的對(duì)等網(wǎng)路由表,其中,對(duì)等體I也更正死神的對(duì)等網(wǎng)路由表;步驟704,對(duì)等體I將更新后的對(duì)等網(wǎng)路由表發(fā)送給客戶端;步驟705,客戶端接收對(duì)等體I發(fā)送的對(duì)等網(wǎng)路由表,并更新自身保存的對(duì)等網(wǎng)路由表,向?qū)Φ润w返回更新響應(yīng);步驟706,對(duì)等體I或客戶端更新對(duì)等網(wǎng)中相應(yīng)對(duì)等體的客戶端列表。具體地,對(duì)等體I或客戶端向相應(yīng)的對(duì)等體發(fā)起客戶端列表的更新指示,所述相 應(yīng)的對(duì)等體根據(jù)所述更新指示,更新本地的客戶端列表。這里,在對(duì)等網(wǎng)的組成結(jié)構(gòu)變更后,需要更新對(duì)等網(wǎng)中各對(duì)等體的客戶端列表,例如,原來與所述客戶端不相關(guān)的對(duì)等體,在對(duì)等網(wǎng)變更后,可能成為與所述客戶端相關(guān)的對(duì)等體,此時(shí),就需要向該對(duì)等體發(fā)起添加客戶端地址信息的更新指示,該對(duì)等體接收到所述更新指示后,將所述客戶端的地址信息保存到本地的客戶端列表中,以便后續(xù)可以直接將消息發(fā)送給所述客戶端;再例如,對(duì)于原來與客戶端相關(guān)的對(duì)等體,在對(duì)等網(wǎng)變更后,可能成為與所述客戶端不相關(guān)的對(duì)等體,此時(shí),就需要向該對(duì)等體發(fā)起刪除客戶端地址信息的更新指示,該對(duì)等體接收到所述更新指示后,將本地客戶端列表中保存的所述客戶端地址信息刪除。其中,對(duì)等體I和客戶端可以根據(jù)具體的對(duì)等網(wǎng)算法,確定對(duì)等網(wǎng)變更前后與所述客戶端相關(guān)的對(duì)等體,由此,可以確定需要添加客戶端地址信息的對(duì)等體、和/或需要?jiǎng)h除客戶端地址信息的對(duì)等體。具體地,客戶端列表的更新可以由客戶端或客戶端的接入節(jié)點(diǎn)發(fā)起,由相應(yīng)的對(duì)等體執(zhí)行。實(shí)施例六本實(shí)施例中,如圖8所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3、和客戶端。本發(fā)明中,客戶端需要實(shí)時(shí)從其接入節(jié)點(diǎn)獲取最新的對(duì)等網(wǎng)路由表,與接入節(jié)點(diǎn)保活,在客戶端的接入節(jié)點(diǎn)失效后,客戶端需要及時(shí)地與新的接入節(jié)點(diǎn)建立連接,并從新的接入節(jié)點(diǎn)處獲得并更新的對(duì)等網(wǎng)路由表,以免過期的對(duì)等網(wǎng)路由表影響消息的正確路由。參照?qǐng)D8所示,接入節(jié)點(diǎn)失效后更新對(duì)等網(wǎng)路由表的流程可以包括以下步驟步驟801,客戶端選取對(duì)等體I作為自身的接入節(jié)點(diǎn),并成功加入對(duì)等網(wǎng);步驟802,客戶端與對(duì)等體I保活;具體地,客戶端實(shí)時(shí)從對(duì)等體I獲取對(duì)等網(wǎng)路由表,并根據(jù)實(shí)時(shí)獲取的對(duì)等網(wǎng)路由表,更新本地的對(duì)等網(wǎng)路由表。步驟803,客戶端感知到對(duì)等體I失效;這里,客戶端在預(yù)設(shè)時(shí)間內(nèi)未接收到對(duì)等體I發(fā)送的對(duì)等網(wǎng)路由表,則客戶端與對(duì)等體I?;钍。兄綄?duì)等體I失效。步驟804,對(duì)等網(wǎng)調(diào)整自身組成及結(jié)構(gòu)后,由對(duì)等體2作為所述客戶端的新接入節(jié)點(diǎn),向所述客戶端發(fā)送對(duì)等網(wǎng)路由表的更新消息,該更新消息中包含有當(dāng)前的對(duì)等網(wǎng)路由表。具體地,客戶端等待對(duì)等網(wǎng)調(diào)整完畢后,對(duì)等網(wǎng)中客戶端的新接入節(jié)點(diǎn)向客戶端發(fā)送對(duì)等網(wǎng)路由表的更新消息;或者為防止對(duì)等網(wǎng)出現(xiàn)異常,客戶端在預(yù)設(shè)的時(shí)間內(nèi)未接收到新接入節(jié)點(diǎn)發(fā)送的對(duì)等網(wǎng)路由表更新信息,則主動(dòng)選取新接入節(jié)點(diǎn),向該新接入節(jié)點(diǎn)發(fā)起新的加入對(duì)等網(wǎng)請(qǐng)求 ,重新加入對(duì)等網(wǎng),該新接入節(jié)點(diǎn)向所述客戶端發(fā)送對(duì)等網(wǎng)路由表或?qū)Φ染W(wǎng)路由表更新消息。步驟805,客戶端更新本地的對(duì)等網(wǎng)路由表;步驟806,客戶端繼續(xù)與對(duì)等體2?;?。這里,步驟806的具體實(shí)現(xiàn)過程與步驟802相似,在此不再贅述。本實(shí)施例中,新的接入節(jié)點(diǎn)或客戶端還可以按照對(duì)等網(wǎng)的具體算法,向?qū)Φ染W(wǎng)中相關(guān)的對(duì)等體通知所述客戶端的地址信息,具體實(shí)現(xiàn)過程與實(shí)施例五中步驟707相似,在此不再贅述。實(shí)施例七本實(shí)施例中,如圖9所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3、和客戶端。本發(fā)明中,客戶端需要實(shí)時(shí)從其接入節(jié)點(diǎn)獲取最新的對(duì)等網(wǎng)路由表,與接入節(jié)點(diǎn)?;睿诳蛻舳耸Ш?,客戶端的接入節(jié)點(diǎn)需要及時(shí)通知對(duì)等網(wǎng)中與所述客戶端相關(guān)的對(duì)等體,刪除所述客戶端的地址信息。參照?qǐng)D9所示,客戶端失效后更新客戶端列表的流程可以包括以下步驟步驟901-902,與步驟801-802完全相同;步驟903,對(duì)等體I感知到客戶端失效。這里,對(duì)等體I在預(yù)設(shè)時(shí)間內(nèi)未接收到客戶端返回的更新響應(yīng),對(duì)等體I與客戶端?;钍?,則對(duì)等體I感知到客戶端失效。步驟904,對(duì)等體I將所述客戶端的地址信息從本地的客戶端列表中刪除,更新本地的客戶端列表;步驟905,對(duì)等體I按照對(duì)等網(wǎng)的具體算法,通知對(duì)等網(wǎng)中存有所述客戶端的地址信息的各對(duì)等體,更新客戶端列表。具體地,對(duì)等體I按照對(duì)等網(wǎng)的具體算法,向?qū)Φ染W(wǎng)中存有所述客戶端的地址信息的各對(duì)等體發(fā)送通知消息,通知所述各對(duì)等體將所述客戶端的地址信息刪除;所述各對(duì)等體接收到所述通知消息后,將所述客戶端的地址信息從本地的客戶端列表中刪除,并向所述對(duì)等體I返回通知響應(yīng)。本實(shí)施例中,對(duì)等體I按照對(duì)等網(wǎng)的具體算法,確定當(dāng)前對(duì)等網(wǎng)中只有對(duì)等體2保存有所述客戶端的地址信息,則向?qū)Φ润w2發(fā)送所述通知消息,對(duì)等體2接收所述通知消息,并將所述客戶端的地址信息從本地的客戶端列表中刪除,向所述對(duì)等體I返回通知響應(yīng)。實(shí)施例八本實(shí)施例中,如圖10所示,對(duì)等網(wǎng)包括對(duì)等體I、對(duì)等體2、對(duì)等體3、和客戶端。如圖10所示,客戶端退出對(duì)等網(wǎng)時(shí),更新客戶端列表的流程可以包括如下步驟步驟1001,客戶端選取對(duì)等體I作為自身的接入節(jié)點(diǎn),并成功加入對(duì)等網(wǎng);步驟1002,客戶端退出對(duì)等網(wǎng);
步驟1003,客戶端向?qū)Φ润wI發(fā)出離開對(duì)等網(wǎng)消息;步驟1004,對(duì)等體I更新本地的客戶端列表,將所退出客戶端的地址信息從本地的客戶端列表中刪除;步驟1005,對(duì)等體I或客戶端,向?qū)Φ染W(wǎng)中保存有所述客戶端地址信息的對(duì)等體2發(fā)送客戶端離開對(duì)等網(wǎng)的通知消息。具體地,對(duì)于對(duì)等網(wǎng)中其它已經(jīng)存有該客戶端地址信息的對(duì)等體,可以采用兩種方式通知一種是客戶端的接入節(jié)點(diǎn)向?qū)Φ染W(wǎng)中存有所述客戶端地址信息的對(duì)等體,發(fā)送客戶端離開對(duì)等網(wǎng)的通知信息;另一種是由客戶端向?qū)Φ染W(wǎng)中存有所述客戶端地址信息的對(duì)等體,發(fā)送客戶端離開對(duì)等網(wǎng)的通知信息。步驟1006,對(duì)等體2接收到所述客戶端離開對(duì)等網(wǎng)的通知消息后,更新本地的客戶端列表。
具體地,所述對(duì)等體2接收到所述客戶端離開對(duì)等網(wǎng)消息后,將所述客戶端的地址信息從本地的客戶端列表中刪除。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述方法包括 客戶端獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,對(duì)等體獲取客戶端的地址信息并保存到本地的客戶端列表,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息。
2.根據(jù)權(quán)利要求I所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述客戶端獲取對(duì)等網(wǎng)路由表,包括 所述客戶端從作為自身接入節(jié)點(diǎn)的對(duì)等體下載對(duì)等網(wǎng)路由表并保存。
3.根據(jù)權(quán)利要求I所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息,包括 所述客戶端查詢本地的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的對(duì)等體的地址信息時(shí),直接向所述目的對(duì)等體發(fā)送消息。
4.根據(jù)權(quán)利要求I所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述對(duì)等體獲取客戶端的地址信息并保存到本地的客戶端列表,包括 作為客戶端的接入節(jié)點(diǎn)的對(duì)等體,獲取所述客戶端的地址信息,并將所述客戶端的地址信息保存本地的客戶端列表; 所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,將所述客戶端的地址信息通知給與所述客戶端相關(guān)的其他各對(duì)等體,所述其他各對(duì)等體分別將所述客戶端地址信息保存到本地的客戶端列表。
5.根據(jù)權(quán)利要求4所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述客戶端將所述客戶端的地址信息通知給與所述客戶端相關(guān)的其他各對(duì)等體,包括 所述客戶端根據(jù)所述對(duì)等網(wǎng)路由表,將自身的地址信息通知給與自身相關(guān)的對(duì)等體。
6.根據(jù)權(quán)利要求I所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息,包括 所述對(duì)等體查詢本地的客戶端列表,從所述客戶端列表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。
7.根據(jù)權(quán)利要求I至6任一項(xiàng)所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述方法還包括 所述客戶端從對(duì)等體獲取所述客戶端列表,并根據(jù)所述客戶端列表,向目的客戶端發(fā)送消息。
8.根據(jù)權(quán)利要求7所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,根據(jù)所述客戶端列表,向目的客戶端發(fā)送消息,包括 所述客戶端查詢本地的客戶端列表和本地路由表,在查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。
9.根據(jù)權(quán)利要求I至6任一項(xiàng)所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述方法還包括 所述對(duì)等體接收到需要轉(zhuǎn)發(fā)到目的客戶端的消息時(shí),查詢本地的客戶端列表,在本地的客戶端列表中包含有所述目的客戶端的地址信息時(shí),將所述消息直接轉(zhuǎn)發(fā)給所述目的客戶端。
10.根據(jù)權(quán)利要求I至6任一項(xiàng)所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述方法還包括 客戶端實(shí)時(shí)獲取當(dāng)如的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表。
11.根據(jù)權(quán)利要求10所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述客戶端實(shí)時(shí)獲取當(dāng)如的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表,為 所述客戶端與作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體?;睿瑢?shí)時(shí)更新本地的對(duì)等網(wǎng)路由表。
12.根據(jù)權(quán)利要求10所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述客戶端實(shí)時(shí)獲取當(dāng)如的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表,為 在所述客戶端的接入節(jié)點(diǎn)失效后,所述客戶端與重新確定為接入節(jié)點(diǎn)的對(duì)等體?;睿瑢?shí)時(shí)更新本地的對(duì)等網(wǎng)路由表。
13.根據(jù)權(quán)利要求10所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述客戶端實(shí)時(shí)獲取當(dāng)如的對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表,為 作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體,在對(duì)等網(wǎng)調(diào)整后,向所述客戶端發(fā)送更新后的對(duì)等網(wǎng)路由表,所述客戶端接收所述對(duì)等網(wǎng)路由表,并更新本地的對(duì)等網(wǎng)路由表。
14.根據(jù)權(quán)利要求I至6任一項(xiàng)所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述方法還包括 所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表。
15.根據(jù)權(quán)利要求14所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表,包括 在所述客戶端失效后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表; 所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體更新客戶端列表,所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。
16.根據(jù)權(quán)利要求14所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表,包括 在所述客戶端退出對(duì)等網(wǎng)后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表; 所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體所述客戶端已退出對(duì)等網(wǎng),所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。
17.根據(jù)權(quán)利要求14任一項(xiàng)所述對(duì)等網(wǎng)中消息交互的方法,其特征在于,所述對(duì)等體實(shí)時(shí)獲取客戶端的地址信息,并更新本地的客戶端列表,包括 在對(duì)等網(wǎng)調(diào)整后,作為所述客戶端接入節(jié)點(diǎn)的對(duì)等體更新本地的客戶端列表; 所述作為客戶端的接入節(jié)點(diǎn)的對(duì)等體或所述客戶端,通知與所述客戶端相關(guān)的其他各對(duì)等體更新客戶端列表,所述其他各對(duì)等體根據(jù)所述通知,分別更新本地的客戶端列表。
18.一種客戶端,其特征在于,所述客戶端包括第一獲取單元和第一發(fā)送單元,其中, 第一獲取單元,用于獲取對(duì)等網(wǎng)路由表; 第一發(fā)送單元,用于根據(jù)所述第一獲取單元獲取的對(duì)等網(wǎng)路由表,向目的對(duì)等體發(fā)送消息。
19.根據(jù)權(quán)利要求18所述客戶端,其特征在于,所述客戶端還包括第一存儲(chǔ)單元,用于保存所述第一獲取單元獲取的對(duì)等網(wǎng)路由表; 所述第一獲取單元,用于從客戶端的接入節(jié)點(diǎn)下載對(duì)等網(wǎng)路由表。
20.根據(jù)權(quán)利要求19所述客戶端,其特征在于,所述第一發(fā)送單元,用于查詢所述第一存儲(chǔ)單兀保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的對(duì)等體的地址彳目息時(shí),直接向所述目的對(duì)等體發(fā)送消息。
21.根據(jù)權(quán)利要求19或20所述客戶端,其特征在于,所述客戶端還包括第一更新單元; 所述第一獲取單元,用于實(shí)時(shí)獲取對(duì)等網(wǎng)路由表; 所述第一更新單元,用于根據(jù)所述第一獲取單元獲取的對(duì)等網(wǎng)路由表,更新所述第一存儲(chǔ)單兀保存的對(duì)等網(wǎng)路由表。
22.—種對(duì)等體,其特征在于,所述對(duì)等體包括第二獲取單元、第二存儲(chǔ)單元和第二發(fā)送單元,其中, 第二獲取單元,用于獲取客戶端的地址信息并保存到所述第二存儲(chǔ)單元保存的客戶端列表中; 第二發(fā)送單元,用于根據(jù)所述第二存儲(chǔ)單元保存的客戶端列表,向目的客戶端發(fā)送消肩、O
23.根據(jù)權(quán)利要求22所述的對(duì)等體,其特征在于,所述第二發(fā)送單元,用于查詢所述第二存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。
24.根據(jù)權(quán)利要求22所述的對(duì)等體,其特征在于,所述第二發(fā)送單元,還用于在接收到需轉(zhuǎn)發(fā)至目的客戶端的消息時(shí),查詢所述第二存儲(chǔ)單元保存的對(duì)等網(wǎng)路由表,從所述對(duì)等網(wǎng)路由表中查詢到目的客戶端的地址信息時(shí),直接向所述目的客戶端發(fā)送消息。
25.根據(jù)權(quán)利要求22所述的對(duì)等體,其特征在于,所述第二獲取單元,用于從客戶端或作為客戶端接入節(jié)點(diǎn)的對(duì)等體,獲取所述客戶端的地址信息。
26.根據(jù)權(quán)利要求22至25任一項(xiàng)所述的對(duì)等體,其特征在于,所述對(duì)等體還包括 第二更新單元,用于在對(duì)等網(wǎng)調(diào)整后、和/或客戶端失效后、和/或?qū)Φ染W(wǎng)中有對(duì)等體失效后、和/或客戶端退出對(duì)等網(wǎng)后,更新所述第二存儲(chǔ)單元保存的客戶端列表;和/或,用于在接收到作為客戶端接入節(jié)點(diǎn)的對(duì)等體或客戶端發(fā)送的通知后,根據(jù)所述通知更新所述第二存儲(chǔ)單元保存的客戶端列表。
27.—種對(duì)等網(wǎng)系統(tǒng),其特征在于,所述系統(tǒng)包括客戶端和兩個(gè)或兩個(gè)以上的對(duì)等體,其中, 客戶端,用于獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息; 和/或,所述對(duì)等體,用于獲取客戶端的地址信息并保存到本地的客戶端列表,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息。
全文摘要
本發(fā)明公開了一種對(duì)等網(wǎng)中消息交互的方法,所述方法包括客戶端獲取對(duì)等網(wǎng)路由表,并根據(jù)所述對(duì)等網(wǎng)路由表向目的對(duì)等體發(fā)送消息;和/或,對(duì)等體獲取客戶端的地址信息并保存到本地的客戶端列表,根據(jù)所述本地的客戶端列表向目的客戶端發(fā)送消息。本發(fā)明還公開了一種客戶端、對(duì)等體以及對(duì)等網(wǎng)系統(tǒng),使得與對(duì)等網(wǎng)交互信息量大的客戶端接入至對(duì)等網(wǎng)后可以直接與對(duì)等體交互消息,不需要經(jīng)由接入節(jié)點(diǎn)中轉(zhuǎn),有效地避免了接入節(jié)點(diǎn)的性能瓶頸問題,并減少了客戶端與對(duì)等網(wǎng)消息路由的跳數(shù),并且,客戶端與對(duì)等網(wǎng)的路由關(guān)系可以隨對(duì)等網(wǎng)的調(diào)整而及時(shí)調(diào)整,有效地提升了客戶端與對(duì)等網(wǎng)信息的交互效率。
文檔編號(hào)H04L12/721GK102868710SQ20111018683
公開日2013年1月9日 申請(qǐng)日期2011年7月5日 優(yōu)先權(quán)日2011年7月5日
發(fā)明者周興旺, 陳志峰, 李漓春 申請(qǐng)人:中興通訊股份有限公司