專利名稱:在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由信息的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信網(wǎng)絡(luò),尤其涉及有線網(wǎng)絡(luò)中的用于確定節(jié)點間的路由信息的方法和裝置。
背景技術(shù):
用戶在上網(wǎng)時,常感興趣于其主機或者其他的網(wǎng)絡(luò)節(jié)點在鏈接入網(wǎng)絡(luò)時所經(jīng)由的路由路徑,例如,該用戶所接入的網(wǎng)絡(luò)服務(wù)提供商(ISP)如何連接入一個或者多個網(wǎng)絡(luò)接入點。在英特網(wǎng)中,兩個被關(guān)注的通信網(wǎng)絡(luò)節(jié)點之間進行包交換時所經(jīng)由的路由路徑,例如,網(wǎng)絡(luò)管理員通常關(guān)心其網(wǎng)絡(luò)用戶是否能接入其網(wǎng)絡(luò)站點以及在一些被關(guān)注的網(wǎng)絡(luò)路徑上的數(shù)據(jù)包的傳輸速度。網(wǎng)絡(luò)管理員也可以根據(jù)上述信息以為其網(wǎng)絡(luò)站點選擇一個合適的網(wǎng)絡(luò)服務(wù)提供商。目前,可以實現(xiàn)上述功能的技術(shù)手段有很多種形式,例如,“路由跟蹤”(Traceroute)是一種用于獲知在運行Traceroute命令的主機和英特網(wǎng)上的其他主機之間的路由路徑的常用工具。在視窗系統(tǒng)(Windows)中,該命令具體為tracert,在Linux 系統(tǒng)中,該命令具體為tracepath,基于NT技術(shù)的Windows系統(tǒng)也提供了具有相似功能的 “PathPing”命令,然而,所有的上述工具都是檢測從運行該命令的本機到目標(biāo)主機這個方向上的單向的路由路徑。具體地,Traceroute依賴于普通的路由器執(zhí)行下述動作而完成路由器在有最大跳限(TTL)失效發(fā)生時將控制報文協(xié)議(InternetControl Message Protocol, I CMP) 超時消息返回至發(fā)送方。通過使用會盡快失效的較小的TTL值,Traceroute使得路由器沿著數(shù)據(jù)包的通常的傳送路徑上產(chǎn)生這些可以對該路由器進行標(biāo)識的ICMP消息。因此, Traceroute不可避免地存在下列缺陷。首先,該工具只能在單向上探測路由路徑,即在從本機至目標(biāo)主機的“去”的方向上,而不能探測從目標(biāo)主機至本機的“來”的方向上的路由路徑。使用Traceroute只可以探測到從發(fā)起Traceroute命令的本機至目標(biāo)主機之間的路由路徑,但通常無法滿足獲取其他主機至本機之間的路由路徑的需求。其次,Traceroute類工具/命令只能完成兩個通信節(jié)點之間的路由路徑的探測。 在很多實際的場景中,通常需要一次性地了解在多個網(wǎng)絡(luò)節(jié)點之間的雙向通信,而不是分多次地了解其中的任兩個節(jié)點之間的路由路徑然后再將多次的結(jié)果合并起來。另外,Traceroute類工具額外增加了通信網(wǎng)絡(luò)的通信載荷。并且需要來自路由路徑上的每個路由器ICMP回應(yīng),這些都占用了不少的網(wǎng)絡(luò)資源。
發(fā)明內(nèi)容
在上述背景技術(shù)中,無法一次性獲取一個或多個指定的網(wǎng)絡(luò)節(jié)點中的所有節(jié)點的兩兩組合之間的雙向的路由路徑,針對該技術(shù)問題,本發(fā)明提出了一種在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由信息的方法及裝置。
根據(jù)本發(fā)明的一個實施例,提供了一種通信網(wǎng)絡(luò)中用于確定節(jié)點間路由信息的方法包括接收來自客戶端的節(jié)點指定信息,節(jié)點指定信息用于指定至少一個節(jié)點;基于節(jié)點指定信息,根據(jù)通信網(wǎng)絡(luò)的拓?fù)湫畔?,確定節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑;將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端。其中,服務(wù)器可以為路徑跟蹤服務(wù)器、垂直服務(wù)器或二者的聯(lián)合/組合。在本發(fā)明的另一個實施例中,服務(wù)器為路徑跟蹤服務(wù)器。確定節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑的步驟,還包括根據(jù)節(jié)點指定信息,從垂直服務(wù)器中獲取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔ⅲ灰约?,根?jù)節(jié)點的拓?fù)湫畔?,確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。在本發(fā)明的另一個實施例中,服務(wù)器為垂直服務(wù)器,確定節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑的步驟,還包括基于節(jié)點指定信息,從本垂直服務(wù)器中存儲的通信網(wǎng)絡(luò)的拓?fù)湫畔⒅蝎@取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔?;根?jù)節(jié)點的拓?fù)湫畔?,確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。在本發(fā)明的另一個實施例中,通信網(wǎng)絡(luò)還包括路徑跟蹤服務(wù)器,接收來自客戶端的節(jié)點指定信息的步驟,還包括接收由路徑跟蹤服務(wù)器轉(zhuǎn)發(fā)的來自客戶端的節(jié)點指定信息;以及將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端的步驟還包括,將至少一個節(jié)點之間的路由路徑經(jīng)由路徑跟蹤服務(wù)器轉(zhuǎn)發(fā)至客戶端。本發(fā)明的方法中所接收的來自客戶端的節(jié)點指定信息可包含對一個或多個通信節(jié)點的指定,并且根據(jù)通信網(wǎng)絡(luò)的拓?fù)湫畔ⅲ梢砸淮涡缘卮_定所指定的一個或多個節(jié)點中所有的節(jié)點的兩兩組合之間的路由路徑。另外,執(zhí)行本發(fā)明方法的服務(wù)器可以為路徑跟蹤服務(wù)器或者垂直服務(wù)器,或者二者的聯(lián)合,這在通信網(wǎng)絡(luò)拓?fù)渲械墓δ苌蠈崿F(xiàn)了低耦合,網(wǎng)絡(luò)結(jié)構(gòu)清晰,執(zhí)行效率高。同時, 如果路徑跟蹤服務(wù)器和垂直服務(wù)器二者聯(lián)合執(zhí)行上述方法,則一定程度上降低了垂直服務(wù)器受網(wǎng)絡(luò)攻擊的危險。再者,本發(fā)明中的方法還獲取路由路徑的通信載荷信息并將之發(fā)送至客戶端,以幫助客戶端了解除路由路徑本身之外的其他的關(guān)于該路徑的通信相關(guān)信息。可選地,上述實施例中的節(jié)點指定信息中還包括訂閱周期值,將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端的步驟還包括,根據(jù)該訂閱周期值,將路由路徑周期地發(fā)送至客戶端。本發(fā)明的方法還根據(jù)節(jié)點指定信息中的訂閱周期值,將路由路徑周期地發(fā)送至客戶端,以免客戶端對該信息主動的頻繁查詢,減輕了網(wǎng)絡(luò)通信載荷。根據(jù)本發(fā)明的另一實施例,提供了一種在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第一裝置,該第一裝置包括第一指定信息接收模塊,用于接收來自客戶端的節(jié)點指定信息,節(jié)點指定信息用于指定至少一個節(jié)點;第一拓?fù)湫畔@取模塊,用于根據(jù)節(jié)點指定信息,從垂直服務(wù)器中獲取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔ⅲ?第一路由路徑確定模塊,用于根據(jù)節(jié)點的拓?fù)湫畔?,確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。第一路由路徑信息發(fā)送模塊,用于將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端。根據(jù)本發(fā)明的另一實施例,還提供了一種在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第二裝置,該第二裝置包括第二指定信息接收模塊,用于接收來自客戶端的節(jié)點指定信息,節(jié)點指定信息用于指定至少一個節(jié)點;第二拓?fù)湫畔@取模塊,用于基于節(jié)點指定信息,從本垂直服務(wù)器中存儲的通信網(wǎng)絡(luò)的拓?fù)湫畔⒅蝎@取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔ⅲ坏诙酚陕窂酱_定模塊,用于根據(jù)節(jié)點的拓?fù)湫畔?,確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。第二路由路徑信息發(fā)送模塊,用于將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端。
通過閱讀以下參照附圖對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、 目的和優(yōu)點將會變得更明顯。圖1為根據(jù)本發(fā)明的一實施例的客戶端和服務(wù)器構(gòu)成的通信網(wǎng)絡(luò)系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖;圖2為根據(jù)本發(fā)明的一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖;圖3為根據(jù)本發(fā)明的另一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖;圖4示出了根據(jù)本發(fā)明的又一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖;圖5示出了根據(jù)本發(fā)明的一實施例的在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第一確定裝置的結(jié)構(gòu)示意圖;圖6示出了根據(jù)本發(fā)明的另一實施例的在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第二確定裝置的結(jié)構(gòu)示意圖;其中,相同或相似的附圖標(biāo)記表示相同或相似的步驟特征或裝置(模塊)。
具體實施例方式有些用戶常常還需要網(wǎng)絡(luò)通信節(jié)點之間的路由路徑狀態(tài)的訂閱服務(wù)。除此之外, 有些用戶需要始終對所關(guān)注的節(jié)點間的路由路徑以及通信載荷(traffic load)或者其他路徑相關(guān)信息保持關(guān)注。該類業(yè)務(wù)需求類似于易信息聚合(Really Simple Syndication, RSS),可被稱為路徑信息訂閱(path status subscription)。通過該類業(yè)務(wù),終端用戶可以訂閱路徑和通信載荷情況,以及其他相關(guān)的該路徑的狀態(tài)信息。該類業(yè)務(wù)對運營商來說也是可以增強其競爭力的。運營商可以將這些訂閱信息周期性地發(fā)送至用戶或者在被訂閱信息發(fā)生變化的時候發(fā)送給用戶,這可以增大其業(yè)務(wù)流量以及提高其產(chǎn)品附加值。因此,需要一個針對通信網(wǎng)絡(luò)的路由路徑探測工具以一次性地提供多節(jié)點間的雙向路由路徑和相關(guān)信息。進而,該工具也應(yīng)支持上述的路徑狀態(tài)訂閱業(yè)務(wù)。以下結(jié)合附圖對本發(fā)明的具體實施例進行詳細(xì)的示例性描述。圖1示出了根據(jù)本發(fā)明的一實施例的客戶端和服務(wù)器構(gòu)成的通信網(wǎng)絡(luò)系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖。其中,客戶端20將其采集的節(jié)點指定信息發(fā)送至服務(wù)器10。例如但不限于,服務(wù)器10具體可以為路徑跟蹤服務(wù)器11或垂直服務(wù)器12或二者的組合。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解,在某些應(yīng)用場景下,其中的垂直服務(wù)器12也可以由簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)服務(wù)器代替。除此之外,通信網(wǎng)絡(luò)中還配置有通信節(jié)點A、B、C、D,以及若干個路由器routerl、 router2、router3、router4、router5,均未在圖中不出。圖2為根據(jù)本發(fā)明的一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖。該用于確定節(jié)點間路由路徑的方法包括節(jié)點指定信息接收步驟S11、路由路徑確定步驟S12,以及路由路徑發(fā)送S13。在步驟Sl 1中,服務(wù)器10接收來自客戶端20的節(jié)點指定信息,該節(jié)點指定信息用于指定至少一個節(jié)點。例如,用戶通過客戶端20以域名的形式指定了通信節(jié)點A、B、C,客戶端20將對通信節(jié)點A、B、C的指定信息,以路由路徑查詢消息O^thquery message)的形式發(fā)送至服務(wù)器10。服務(wù)器10 —側(cè)接收來自客戶端20的路由路徑查詢消息,該消息中的節(jié)點指定信息用于指定需要確定其間路由路徑的通信節(jié)點A、通信節(jié)點B、通信節(jié)點C。在步驟S 12中,服務(wù)器10基于上述節(jié)點指定信息,根據(jù)通信網(wǎng)絡(luò)的拓?fù)湫畔ⅲ_定節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑?;趯νㄐ殴?jié)點A、B、C的節(jié)點指定信息,服務(wù)器10根據(jù)通信網(wǎng)絡(luò)中通信節(jié)點A、 B、C之間的連接拓?fù)湫畔?,確定通信節(jié)點A、B、C之間的路由路徑。例如,A、B之間的路由路徑被確定為A — router2 — router3 — router5 — B,以及B、C之間的路由路徑被確定為 B — router5 — routerl — C。優(yōu)選地,服務(wù)器10確定通信節(jié)點A、B、C之間的所有的路由路徑,艮P A — B、B — A、A — C、C — A、C — B、B — C。在步驟S13中,服務(wù)器10將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端。例如,步驟S12中確定得到的通信節(jié)點A至B之間的路由路徑為 A — router2 — router3 — router5 — B以及通信節(jié)點B至A之間的路由路徑為 B —router5 — router3 —routerl —A,同樣地,步驟S12中的路由路徑的確定結(jié)果還可包括通信節(jié)點A和C以及通信節(jié)點B和C之間的路由路徑。則優(yōu)選地,服務(wù)器10可將上述確定得到通信節(jié)點A,B,C中的所有通信節(jié)點的兩兩組合之間的路由路徑信息以路由路徑反饋消息(Path Reply message)的形式發(fā)送至客戶端20。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解 如果路由路徑反饋消息過長而無法封裝于一個數(shù)據(jù)包中,則可被分割后封裝于若干個不同的數(shù)據(jù)包中以發(fā)送至客戶端20。圖3為根據(jù)本發(fā)明的另一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖。其中,服務(wù)器10為一個路徑跟蹤服務(wù)器11。如圖3所示,圖2所對應(yīng)的實施例中的路由路徑確定步驟S12包括兩個子步驟S121和S122。在步驟S121中,路徑跟蹤服務(wù)器11根據(jù)節(jié)點指定信息,從垂直服務(wù)器12中獲取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔?。在該實施例中,?jié)點指定信息指定了網(wǎng)絡(luò)節(jié)點A、B、C,則路徑跟蹤服務(wù)器11可以從垂直服務(wù)器12中獲取所指定的網(wǎng)絡(luò)節(jié)點中的,例如節(jié)點A的拓?fù)湫畔?。在步驟S122中,路徑跟蹤服務(wù)器11根據(jù)該節(jié)點A的拓?fù)湫畔ⅲ_定該節(jié)點至所指定的至少一個節(jié)點中的另一個節(jié)點,例如網(wǎng)絡(luò)節(jié)點B之間的路由路徑。即根據(jù)在步驟S121 中所獲得的網(wǎng)絡(luò)節(jié)點A的拓?fù)湫畔?,路徑跟蹤服?wù)器11確定網(wǎng)絡(luò)節(jié)點A至網(wǎng)絡(luò)節(jié)點B的路由路徑,例如,所確定的路由路徑的結(jié)果為,A — router2 — router3 — router5 — B。
圖4示出了根據(jù)本發(fā)明的又一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖。其中,服務(wù)器10為一個垂直服務(wù)器12,在該實施例中,如圖4所示,圖2所對應(yīng)的實施例中的路由路徑確定步驟S12包括步驟S121’和S122’。在步驟Sll中,垂直服務(wù)器12可以直接接收來自客戶端20的節(jié)點指定信息,該節(jié)點指定信息用于指定至少一個節(jié)點,例如通信節(jié)點A、B、C。在步驟S121’中,基于節(jié)點指定信息,垂直服務(wù)器12從本機中存儲的所述通信網(wǎng)絡(luò)的拓?fù)湫畔⒅蝎@取上述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔ⅰ?在該實施例中,節(jié)點指定信息指定了網(wǎng)絡(luò)節(jié)點A、B、C,則垂直服務(wù)器12可以從其本機中獲取所指定的網(wǎng)絡(luò)節(jié)點中的例如網(wǎng)絡(luò)節(jié)點A的拓?fù)湫畔?。在步驟S122’中,根據(jù)該節(jié)點的拓?fù)湫畔?,確定該節(jié)點至上述至少一個節(jié)點中的另一個節(jié)點,例如網(wǎng)絡(luò)節(jié)點B之間的路由路徑。即根據(jù)在步驟S121’中所獲得的網(wǎng)絡(luò)節(jié)點A 的拓?fù)湫畔ⅲ_定該網(wǎng)絡(luò)節(jié)點A至網(wǎng)絡(luò)節(jié)點B之間的路由路徑,其路由路徑的確定結(jié)果為, 例如 A 一 router2 一 router3 一 router5 一 B。圖7示出了根據(jù)本發(fā)明的另一實施例的在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法流程圖??蛇x地,在該實施例中,通信網(wǎng)絡(luò)還包括一個路徑跟蹤服務(wù)器11, 如圖7所示,首先,客戶端20將對至少一個節(jié)點,例如通信節(jié)點A、B、C的指定信息,以路由路徑查詢消息(Path query message)的形式發(fā)送至路徑跟蹤服務(wù)器11。路徑跟蹤服務(wù)器 11接收來自客戶端20的節(jié)點指定信息,該節(jié)點指定信息用于指定通信節(jié)點A、B、C。隨后,在步驟SIT中,垂直服務(wù)器12接收由路徑跟蹤服務(wù)器11轉(zhuǎn)發(fā)的來自客戶端20的上述對于節(jié)點A、B、C的指定信息。在步驟S121’和S122’完成之后,在步驟S13’ 中,垂直服務(wù)器12將至少一個節(jié)點之間的路由路徑經(jīng)由路徑跟蹤服務(wù)器11轉(zhuǎn)發(fā)至所述客戶端。接著,路徑跟蹤服務(wù)器11 一側(cè),響應(yīng)于垂直服務(wù)器12的指示,將該至少一個節(jié)點之間的路由路徑轉(zhuǎn)發(fā)至客戶端20。例如,將上述通信節(jié)點A、B、C之間的所有存在的路由路徑 A —B、B —A、A —C、C —A、C —B、B —C,通過路由路徑反饋消息(Path Reply message) 的形式發(fā)送至路徑跟蹤服務(wù)器11并指示路徑跟蹤服務(wù)器11將該路由路徑信息轉(zhuǎn)發(fā)至客戶端20。隨后,路徑跟蹤服務(wù)器11將上述的通信節(jié)點A、B、C之間的路由路徑發(fā)送至客戶端 20,其中,具體的路由路徑可能因具體的通信網(wǎng)絡(luò)狀態(tài)的區(qū)別而不同,在本實施例中,A —B 之間的路由路徑為,例如A — router2 — router3 — router5 — B。可選地,在本發(fā)明另一實施例中,服務(wù)器10進一步獲取路由路徑的通信載荷信息,并將通信載荷信息發(fā)送至客戶端20。其中,通信載荷信息包括但不限于數(shù)據(jù)吞吐量、傳輸時延、帶寬、丟包率等一切可反映通信載荷情況的信息。具體地,上述通信載荷信息可以根據(jù),例如該實施例的通信網(wǎng)絡(luò)的轉(zhuǎn)發(fā)信息庫中的路由表屬性中測量(metric)信息得到。 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在上述發(fā)送步驟中,路徑跟蹤服務(wù)器11在獲取路由路徑,例如 A — B之間的路由路徑A — router2 — router3 — router5 — B的通信載荷信息之后,可以直接發(fā)送該路由路徑的通信載荷信息給客戶端20,或者垂直服務(wù)器12在獲取上述A — B 之間的路由路徑的通信載荷信息之后,也可以通過路徑跟蹤服務(wù)器11轉(zhuǎn)發(fā)該通信載荷信息至客戶端20??蛇x地,在本發(fā)明另一實施例中,首先,客戶端20將對至少一個節(jié)點,例如通信節(jié)點A、B、C的指定信息和一個訂閱周期值的信息,以路由路徑查詢消息的形式發(fā)送至路徑跟蹤服務(wù)器11。對應(yīng)地,在該實施例中的方法還包括步驟服務(wù)器10,例如路徑跟蹤服務(wù)器11 或垂直服務(wù)器12根據(jù)所述訂閱周期值,將路由路徑周期地發(fā)送至客戶端20。例如,在步驟 Sll中所接收到的節(jié)點指定信息中,除了對通信節(jié)點A、B、C的指定信息之外,還包括適用于節(jié)點A、B、C的數(shù)值為k的一個訂閱周期值。則路徑跟蹤服務(wù)器11將上述的通信節(jié)點A、 B、C之間的路由路徑信息,以k為周期循環(huán)地發(fā)送至客戶端20,以保持該路由路徑信息在客戶端20上的持續(xù)更新?;蛘?,垂直服務(wù)器12也可通過路徑跟蹤服務(wù)器11將上述的通信節(jié)點A、B、C之間的路由路徑信息,以k為周期循環(huán)地轉(zhuǎn)發(fā)至客戶端20。可選地,在本發(fā)明另一實施例中,首先,客戶端20將對至少一個節(jié)點,例如通信節(jié)點A、B、C的指定信息和一個實時更新標(biāo)志信息,以路由路徑查詢消息的形式發(fā)送至路徑跟蹤服務(wù)器11。其中的實時更新標(biāo)志信息,用于指示服務(wù)器10端在檢測到通信節(jié)點A、B、C 之間的路由路徑情況發(fā)生變化時,實時地將更新后的路由路徑信息發(fā)送至客戶端20。對應(yīng)地,在該實施例中的方法還包括步驟服務(wù)器10,例如路徑跟蹤服務(wù)器11或垂直服務(wù)器12 當(dāng)檢測到的至少一個節(jié)點之間的路由路徑發(fā)生變化時,則實時地將該至少一個節(jié)點之間的更新的路由路徑發(fā)送至客戶端20。例如,在步驟Sll中所接收到的節(jié)點指定信息中,除了對通信節(jié)點A、B、C的指定信息之外,還包括適用于節(jié)點A、B、C的一個實時更新標(biāo)志信息,則路徑跟蹤服務(wù)器11保持對節(jié)點A、B、C之間的路由路徑進行實時地監(jiān)測和計算狀態(tài),當(dāng)其檢測到節(jié)點A、B、C之間的路由路徑情況發(fā)生變化時,實時地將更新后的節(jié)點A、B、C之間的路由路徑信息發(fā)送至客戶端20,以保持該路由路徑信息在客戶端20上的持續(xù)更新?;蛘?,垂直服務(wù)器12也可通過路徑跟蹤服務(wù)器11,實時地將上述的更新的通信節(jié)點A、B、C之間的路由路徑信息,轉(zhuǎn)發(fā)至客戶端20。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解本發(fā)明的實施例中,用于指定至少一個節(jié)點的節(jié)點指定信息中包括該至少一個節(jié)點的網(wǎng)絡(luò)接入標(biāo)識,或者其域名,或者其IP地址等任意一種形式或其組合,對通信節(jié)點的指定信息的具體標(biāo)識形式,并不構(gòu)成對本發(fā)明的限制。例如,在該實施例中,對通信節(jié)點A、B、C的指定信息中可以包括通信節(jié)點A的IP地址 162. 105. 74. 55以及通信節(jié)點B的網(wǎng)址m sina. com. cn以及通信節(jié)點C的網(wǎng)絡(luò)接入標(biāo)識符。在本發(fā)明的另一個實施例中,用戶通過客戶端20以域名的形式指定了通信節(jié)點 A,則客戶端20將對通信節(jié)點A以及客戶端20所在的本機的指定信息,以路由路徑查詢消息(Path query message)的形式發(fā)送至服務(wù)器10。對應(yīng)地,在步驟Sll中所接收到的節(jié)點指定信息中包括了對通信節(jié)點A以及客戶端20所在的本機的指定信息。此時,在步驟S12 中,基于該節(jié)點指定信息,路徑跟蹤服務(wù)器11或垂直服務(wù)器12根據(jù)通信網(wǎng)絡(luò)的拓?fù)湫畔ⅲ?獲取該節(jié)點指定信息所指定的A節(jié)點與客戶端20所在的本機之間的路由路徑,即客戶端20 所在的本機host — A禾口 /或A — host的路由路徑,例如host — routerl — router2 — A, A — router2 — routerl — host。在上述各實施例中的拓?fù)湫畔ⅲ梢园?,例如轉(zhuǎn)發(fā)信息庫Porwording Information Base, FIB),相應(yīng)地,步驟S12可進一步包括,基于節(jié)點指定信息,根據(jù)通信網(wǎng)絡(luò)的該轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式獲取節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述拓?fù)湫畔⒉⒉幌抻谵D(zhuǎn)發(fā)信息庫,還可以包括至少一個節(jié)點,例如通信節(jié)點A、B、C的鏈路狀態(tài),端口狀態(tài),或者通信節(jié)點A、B、C之間的距離或相鄰關(guān)系等有助于對路由路徑的通信狀態(tài)的進行確定的信息。例如,在本實施例中節(jié)點指定信息指定了通信節(jié)點A、B、C,則首先根據(jù)所獲得的節(jié)點A的單播FIB,在另一個網(wǎng)絡(luò)節(jié)點,例如B的IP單播地址和通信節(jié)點A的FIB的目標(biāo)前綴之間進行最長前綴匹配。如果不存在匹配的FIB表項(entry),則從A至B不存在路由路徑。失敗信息將被記錄并終止此次操作。接著確定從B至A之間的路由路徑。如果上述的最長前綴匹配存在匹配的FIB表項,例如entry2,則匹配表項中的“下一跳路由器”項指示了下一跳路由器,例如router2。同時,記錄router2的IP地址。接著獲取router2的FIB,并在B的IP單播地址和router2的FIB的目的前綴之間進行最長前綴匹配。如果不存在匹配的FIB表項,則從router2至B之間不存在路由路徑。失敗信息將被記錄并終止此次操作。如果存在匹配的FIB表項,例如entry3,則記錄 entry3所指示的下一跳路由器的IP地址值。獲取在此匹配的表項中“下一跳路由器”項, 如此重復(fù)地進行上述的在“下一跳路由器”與節(jié)點B之間的最長前綴匹配,直至最終得到的表項中的“下一跳路由器”項指向通信節(jié)點B自身。當(dāng)然,所有指定的節(jié)點中的兩兩組合,即A — B、B — A、A — C、C — A、C — B、B — C
之間的路由路徑信息都可依照上述步驟獲得,其中,具體的最長前綴匹配過程,在此不再贅述。在本發(fā)明的另一實施例中,網(wǎng)絡(luò)拓?fù)湫畔‵IB,此時,在步驟S121中,根據(jù)所述節(jié)點指定信息,路徑跟蹤服務(wù)器11從垂直服務(wù)器12中獲取節(jié)點指定信息所指定的至少一個節(jié)點(例如節(jié)點A,B,C)中的一個節(jié)點,例如A的轉(zhuǎn)發(fā)信息庫。接著,在步驟S122中, 根據(jù)所述節(jié)點的轉(zhuǎn)發(fā)信息庫,路徑跟蹤服務(wù)器11通過最長前綴匹配方式確定該節(jié)點A至至少一個節(jié)點中的另一個節(jié)點,例如B之間的路由路徑,此處不再贅述。在本發(fā)明的另一實施例中,網(wǎng)絡(luò)拓?fù)湫畔‵IB,此時,在步驟S121’中,基于節(jié)點指定信息,垂直服務(wù)器12從其本機中所存儲的通信網(wǎng)絡(luò)的FIB中獲取節(jié)點指定信息所指定的至少一個節(jié)點(例如節(jié)點A,B,C)中的一個節(jié)點,例如A的轉(zhuǎn)發(fā)信息庫。接著,在步驟 S122’中,根據(jù)節(jié)點A的FIB,通過最長前綴匹配方式確定該節(jié)點A至至少一個節(jié)點中的另一個節(jié)點,例如B之間的路由路徑,其中,具體的最長前綴匹配過程此處不再贅述。圖5示出了根據(jù)本發(fā)明的一實施例的在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第一確定裝置的結(jié)構(gòu)示意圖。如圖所示,第一確定裝置100包括第一指定信息接收模塊 101,第一拓?fù)湫畔@取模塊102,第一路由路徑確定模塊103,第一路由路徑信息發(fā)送模塊 104。第一確定裝置100通??梢栽O(shè)置于一個路徑跟蹤服務(wù)器11中,其中,第一指定信息接收模塊101,用于接收來自客戶端20的節(jié)點指定信息,該節(jié)點指定信息用于指定至少一個節(jié)點,例如該節(jié)點指定信息指定了節(jié)點A、B、C。第一拓?fù)湫畔@取模塊102,用于根據(jù)節(jié)點指定信息,從垂直服務(wù)器12中獲取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點,例如,節(jié)點A的拓?fù)湫畔?。第一路由路徑確定模塊103,用于根據(jù)該節(jié)點A的拓?fù)湫畔ⅲ?確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點,例如節(jié)點B,之間的路由路徑。優(yōu)選地,第一路由路徑確定模塊103確定上述節(jié)點A、B、C中所有的兩兩節(jié)點之間的路由路徑,例如A —B、 B — A、A — C、C — A、C — B以及B — C。第一路由路徑信息發(fā)送模塊104,用于將至少一個節(jié)點之間的路由路徑發(fā)送至所述客戶端20,其中的路由路徑信息包括以下各項中的任一項或任多項A — B、B — A、A — C、C — A、C — B、B — C。優(yōu)選地,該路由路徑信息包括上述的至少一個節(jié)點之間的全部路由路徑,即A — B、B — A、A — C、C — A、C — B以及B — C。在本發(fā)明的另一實施例中,拓?fù)湫畔ㄞD(zhuǎn)發(fā)信息庫,相應(yīng)地,其中的第一拓?fù)湫畔@取模塊102具體包括一個第一 FIB獲取模塊(圖中未示出),第一路由路徑確定模塊 103具體包括一個第一最長前綴匹配模塊(圖中未示出)。在該實施例中,第一 FIB獲取模塊,用于根據(jù)節(jié)點指定信息,從垂直服務(wù)器中獲取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的轉(zhuǎn)發(fā)信息庫。例如,節(jié)點指定信息指定了節(jié)點A、B、C,第一 FIB獲取模塊根據(jù)該節(jié)點指定信息,從垂直服務(wù)器12中獲取節(jié)點A 的轉(zhuǎn)發(fā)信息庫。第一最長前綴匹配模塊,用于根據(jù)節(jié)點的轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。在該實施例中,第一最長前綴匹配模塊根據(jù)上述節(jié)點A的轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式確定節(jié)點A至另一節(jié)點B之間的路由路徑,例如,該路由路徑為A — router2 — router3 — router5 — B。同樣地,第一 FIB獲取模塊和第一最長前綴匹配模塊還可以聯(lián)合地確定通信節(jié)點A、B、C之間的存在的其他的路由路徑B — A、A — C、C — A、C — B、B — C。圖6示出了根據(jù)本發(fā)明的另一實施例的在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第二確定裝置的結(jié)構(gòu)示意圖。如圖所示,第二確定裝置200包括第二指定信息接收模塊 201,第二拓?fù)湫畔@取模塊202,第二路由路徑確定模塊203,第二路由路徑信息發(fā)送模塊 204。第二確定裝置200通??梢栽O(shè)置于一個垂直服務(wù)器12中,其中,第二指定信息接收模塊201,用于接收來自客戶端20的節(jié)點指定信息,該節(jié)點指定信息用于指定至少一個節(jié)點,例如,節(jié)點A、B、C。第二拓?fù)湫畔@取模塊202,用于基于上述的節(jié)點指定信息,從本垂直服務(wù)器12中存儲的通信網(wǎng)絡(luò)的拓?fù)湫畔⒅蝎@取節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點,例如節(jié)點A的拓?fù)湫畔?。第二路由路徑確定模塊203,用于根據(jù)該節(jié)點A的拓?fù)湫畔?,確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點,例如節(jié)點B之間的路由路徑。優(yōu)選地,第二路由路徑確定模塊203確定上述節(jié)點A、B、C中所有的兩兩節(jié)點之間的路由路徑,例如A —B、B —A、A —C、C —A、C —B以及B —C。第二路由路徑信息發(fā)送模塊204,用于將至少一個節(jié)點之間的路由路徑發(fā)送至客戶端20。其中的路由路徑信息包括以下各項中的任一項或任多項A — B、B — A、A — C、C — A、C — B、B — C。優(yōu)選地,該路由路徑信息包括上述的至少一個節(jié)點之間的全部路由路徑,即A — B、B — A、A — C、C — A、C — B以及 B — C。在本發(fā)明的另一實施例中, 拓?fù)湫畔ㄞD(zhuǎn)發(fā)信息庫,相應(yīng)地,其中的第二拓?fù)湫畔@取模塊102具體包括一個第二 FIB獲取模塊(圖中未示出),第二路由路徑確定模塊 103具體包括一個第二最長前綴匹配模塊(圖中未示出)。在該實施例中,第二 FIB獲取模塊,用于根據(jù)節(jié)點指定信息,從本垂直服務(wù)器中存儲的通信網(wǎng)絡(luò)的轉(zhuǎn)發(fā)信息庫中獲取該節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的轉(zhuǎn)發(fā)信息庫。例如,節(jié)點指定信息指定了節(jié)點A、B、C,第二 FIB獲取模塊根據(jù)該節(jié)點指定信息,從該第二 FIB獲取模塊所在的垂直服務(wù)器12中獲取節(jié)點A的轉(zhuǎn)發(fā)信息庫。第二最長前綴匹配模塊,用于根據(jù)節(jié)點的轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式確定該節(jié)點至至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。在該實施例中,第二最長前綴匹配模塊根據(jù)上述節(jié)點A的轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式確定節(jié)點A至另一節(jié)點B之間的路由路徑,例如,該路由路徑為A — router2 — router3 — router5 — B。同樣地,第二 FIB獲取模塊和第二最長前綴匹配模塊還可以聯(lián)合地確定通信節(jié)點A、B、C之間的存在的其他的路由路徑 B — A、A — C、C — A、C — B、B — C。本領(lǐng)域技術(shù)人員應(yīng)能理解,本發(fā)明中所稱的各裝置既可以由硬件模塊實現(xiàn),也可以由軟件中的功能模塊實現(xiàn),還可以由集成了軟件功能模塊的硬件模塊實現(xiàn)。本領(lǐng)域技術(shù)人員應(yīng)能理解,上述實施例均是示例性而非限制性的。在不同實施例中出現(xiàn)的不同技術(shù)特征可以進行組合,以取得有益效果。本領(lǐng)域技術(shù)人員在研究附圖、說明書及權(quán)利要求書的基礎(chǔ)上,應(yīng)能理解并實現(xiàn)所揭示的實施例的其他變化的實施例。在權(quán)利要求書中,術(shù)語“包括”并不排除其他裝置或步驟;不定冠詞“一個”不排除多個;術(shù)語“第一”、“第二”用于標(biāo)示名稱而非用于表示任何特定的順序。權(quán)利要求中的任何附圖標(biāo)記均不應(yīng)被理解為對保護范圍的限制。權(quán)利要求中出現(xiàn)的多個部分的功能可以由一個單獨的硬件或軟件模塊來實現(xiàn)。某些技術(shù)特征出現(xiàn)在不同的從屬權(quán)利要求中并不意味著不能將這些技術(shù)特征進行組合以取得有益效果。
權(quán)利要求
1.一種在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法,該方法包括A.接收來自客戶端的節(jié)點指定信息,所述節(jié)點指定信息用于指定至少一個節(jié)點;B.基于所述節(jié)點指定信息,根據(jù)所述通信網(wǎng)絡(luò)的拓?fù)湫畔?,確定所述節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑;C.將所述至少一個節(jié)點之間的路由路徑發(fā)送至所述客戶端。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器為路徑跟蹤服務(wù)器,所述步驟 B還包括Bi.根據(jù)所述節(jié)點指定信息,從垂直服務(wù)器中獲取所述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔?;B2.根據(jù)所述節(jié)點的拓?fù)湫畔?,確定該節(jié)點至所述至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器為垂直服務(wù)器,所述步驟B還包括ΒΓ.基于所述節(jié)點指定信息,從本垂直服務(wù)器中存儲的所述通信網(wǎng)絡(luò)的拓?fù)湫畔⒅蝎@取所述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔?;B2’.根據(jù)所述節(jié)點的拓?fù)湫畔?,確定該節(jié)點至所述至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述通信網(wǎng)絡(luò)還包括路徑跟蹤服務(wù)器,所述步驟A還包括接收由所述路徑跟蹤服務(wù)器轉(zhuǎn)發(fā)的來自所述客戶端的節(jié)點指定信息;所述步驟C還包括將所述至少一個節(jié)點之間的路由路徑經(jīng)由所述路徑跟蹤服務(wù)器轉(zhuǎn)發(fā)至所述客戶端。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括D.獲取所述路由路徑的通信載荷信息;以及E.將所述通信載荷信息發(fā)送至所述客戶端。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述節(jié)點指定信息中還包括訂閱周期值, 所述步驟C還包括根據(jù)所述訂閱周期值,將所述路由路徑周期地發(fā)送至所述客戶端。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述節(jié)點指定信息中還包括實時更新標(biāo)志,所述步驟C還包括當(dāng)所述至少一個節(jié)點之間的路由路徑發(fā)生變化,則實時地將所述至少一個節(jié)點之間的更新的路由路徑發(fā)送至所述客戶端。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,用于指定至少一個節(jié)點的所述節(jié)點指定信息中包括所述至少一個節(jié)點的網(wǎng)絡(luò)接入標(biāo)識,或者所述至少一個節(jié)點的域名,或者所述至少一個節(jié)點的IP地址。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述至少一個節(jié)點為一個節(jié)點時,所述步驟B包括基于所述節(jié)點指定信息,根據(jù)所述通信網(wǎng)絡(luò)的拓?fù)湫畔?,獲取所述節(jié)點指定信息所指定的一個節(jié)點與所述客戶端所在的本機之間的路由路徑。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述拓?fù)湫畔ㄞD(zhuǎn)發(fā)信息庫,所述步驟B包括基于所述節(jié)點指定信息,根據(jù)所述通信網(wǎng)絡(luò)的所述轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式獲取所述節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑。
11.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述拓?fù)湫畔ㄞD(zhuǎn)發(fā)信息庫,所述步驟Bl包括根據(jù)所述節(jié)點指定信息,從垂直服務(wù)器中獲取所述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的轉(zhuǎn)發(fā)信息庫; 所述步驟B2包括根據(jù)所述節(jié)點的轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式確定該節(jié)點至所述至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。
12.根據(jù)權(quán)利要求3所述的方法,其中,所述拓?fù)湫畔ㄞD(zhuǎn)發(fā)信息庫,所述步驟ΒΓ包括基于所述節(jié)點指定信息,從本垂直服務(wù)器中存儲的所述通信網(wǎng)絡(luò)的轉(zhuǎn)發(fā)信息庫中獲取所述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的轉(zhuǎn)發(fā)信息庫;所述步驟B2’包括,根據(jù)所述節(jié)點的轉(zhuǎn)發(fā)信息庫,通過最長前綴匹配方式確定該節(jié)點至所述至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。
13.根據(jù)權(quán)利要求10-12任一項所述的方法,其特征在于,所述拓?fù)湫畔⑦€包括以下各項中的任一項或任多項-所述至少一個節(jié)點的鏈路狀態(tài); -所述至少一個節(jié)點的端口狀態(tài); -所述至少一個節(jié)點之間的距離或相鄰關(guān)系。
14.一種在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第一確定裝置,該第一確定裝置包括第一指定信息接收模塊,用于接收來自所述客戶端的節(jié)點指定信息,所述節(jié)點指定信息用于指定至少一個節(jié)點;第一拓?fù)湫畔@取模塊,用于根據(jù)所述節(jié)點指定信息,從垂直服務(wù)器中獲取所述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔?;第一路由路徑確定模塊,用于根據(jù)所述節(jié)點的拓?fù)湫畔?,確定該節(jié)點至所述至少一個節(jié)點中的另一個節(jié)點之間的路由路徑。第一路由路徑信息發(fā)送模塊,用于將所述至少一個節(jié)點之間的路由路徑發(fā)送至所述客戶端。
15.一種在通信網(wǎng)絡(luò)中用于確定節(jié)點間路由路徑的第二確定裝置,該第二確定裝置包括第二指定信息接收模塊,用于接收來自所述客戶端的節(jié)點指定信息,所述節(jié)點指定信息用于指定至少一個節(jié)點;第二拓?fù)湫畔@取模塊,用于基于所述節(jié)點指定信息,從本垂直服務(wù)器中存儲的通信網(wǎng)絡(luò)的拓?fù)湫畔⒅蝎@取所述節(jié)點指定信息所指定的至少一個節(jié)點中的一個節(jié)點的拓?fù)湫畔?;第二路由路徑確定模塊,用于根據(jù)所述節(jié)點的拓?fù)湫畔?,確定該節(jié)點至所述至少一個節(jié)點中的另一個節(jié)點之間的路由路徑;第二路由路徑信息發(fā)送模塊,用于將所述至少一個節(jié)點之間的路由路徑發(fā)送至所述客戶端。
全文摘要
本發(fā)明提出了一種在通信網(wǎng)絡(luò)的服務(wù)器中用于確定節(jié)點間路由路徑的方法,包括步驟接收來自客戶端的節(jié)點指定信息,所述節(jié)點指定信息用于指定至少一個節(jié)點;基于所述節(jié)點指定信息,根據(jù)所述通信網(wǎng)絡(luò)的拓?fù)湫畔ⅲ_定所述節(jié)點指定信息所指定的至少一個節(jié)點之間的路由路徑;將所述至少一個節(jié)點之間的路由路徑發(fā)送至所述客戶端。通過采用本發(fā)明的方法,可以一次性提供多個指定通信節(jié)點中的任意兩個節(jié)點之間的雙向的路由路徑信息以及將該信息以訂閱服務(wù)的形式提供給終端。
文檔編號H04L12/56GK102316004SQ201010216459
公開日2012年1月11日 申請日期2010年6月29日 優(yōu)先權(quán)日2010年6月29日
發(fā)明者姚春燕, 楊水根, 梁錚 申請人:上海貝爾股份有限公司