一種優(yōu)化網(wǎng)絡訪問路徑的方法及裝置制造方法
【專利摘要】本發(fā)明的實施例公開一種優(yōu)化網(wǎng)絡訪問路徑的方法及裝置。優(yōu)化網(wǎng)絡訪問路徑的方法包括:接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息;針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序;依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求;如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。應用本發(fā)明,可以提升用戶訪問網(wǎng)絡的成功率。
【專利說明】一種優(yōu)化網(wǎng)絡訪問路徑的方法及裝置
【技術(shù)領域】
[0001]本發(fā)明涉及計算機網(wǎng)絡通信技術(shù),尤其涉及一種優(yōu)化網(wǎng)絡訪問路徑的方法及裝置。
【背景技術(shù)】
[0002]動態(tài)路由協(xié)議(DRP,Dynamic Routing Protocols)是用于在路由器(網(wǎng)絡節(jié)點)之間交換網(wǎng)絡拓撲信息,以生成路由表的協(xié)議。其中,利用動態(tài)路由協(xié)議交換網(wǎng)絡拓撲信息的多個路由器之間互為鄰居關(guān)系,即每一路由器將自身生成的用于路由表維護的協(xié)議報文發(fā)送給所有的鄰居,同時接收其他鄰居發(fā)送的協(xié)議報文,以獲知整個網(wǎng)絡的拓撲信息,例如,在網(wǎng)絡拓撲發(fā)生變化的情況下,路由器之間通過協(xié)議報文相互交換更新后的網(wǎng)絡拓撲信息,并根據(jù)更新的網(wǎng)絡拓撲信息,利用路由算法動態(tài)計算出從當前網(wǎng)絡節(jié)點到達網(wǎng)絡中其他網(wǎng)絡節(jié)點的路由表項信息,并依據(jù)路由表項信息組成的網(wǎng)絡訪問路徑,計算各網(wǎng)絡訪問路徑的代價,從中確定出一條或幾條代價較小的優(yōu)選網(wǎng)絡訪問路徑,然后將確定的優(yōu)選網(wǎng)絡訪問路徑添加到路由表中作為一路由表項。這樣,在后續(xù)應用中,根據(jù)用戶發(fā)送的用戶數(shù)據(jù)報中包含的目的網(wǎng)絡節(jié)點信息,查詢路由表,從而獲取到達目的網(wǎng)絡節(jié)點的優(yōu)選網(wǎng)絡訪問路徑,并依據(jù)獲取的優(yōu)選網(wǎng)絡訪問路徑,將接收的用戶數(shù)據(jù)報轉(zhuǎn)發(fā)至優(yōu)選網(wǎng)絡訪問路徑中的下一跳躍點(網(wǎng)絡節(jié)點),直至目的網(wǎng)絡節(jié)點。這樣,通過動態(tài)路由協(xié)議,路由器可以動態(tài)共享網(wǎng)絡拓撲信息并對路由表進行動態(tài)更新,以滿足網(wǎng)絡變化以及用戶數(shù)據(jù)報路由轉(zhuǎn)發(fā)的需求。
[0003]但上述依據(jù)路由表中路由表項對用戶數(shù)據(jù)報進行轉(zhuǎn)發(fā)的方法,由于路由表中的路由表項通過協(xié)議報文的可達性生成,如果用戶數(shù)據(jù)報中包含的目的網(wǎng)絡節(jié)點沒有處于網(wǎng)絡連通狀態(tài),而用戶數(shù)據(jù)報需要進行網(wǎng)絡訪問行為,這時,雖然至目的網(wǎng)絡節(jié)點的優(yōu)選網(wǎng)絡訪問路徑可達,但無法為用戶提供網(wǎng)絡訪問;或者,如果用戶數(shù)據(jù)報中包含的目的網(wǎng)絡節(jié)點為網(wǎng)絡外節(jié)點,而由于網(wǎng)絡內(nèi)的各網(wǎng)絡節(jié)點(路由器)相對于網(wǎng)絡外的各網(wǎng)絡節(jié)點,可能具有不同的權(quán)限。例如,一些公司、學校以及企事業(yè)單位,基于安全的考慮,在網(wǎng)絡內(nèi)只設置有限的網(wǎng)絡節(jié)點(路由器)具有訪問外部網(wǎng)絡的權(quán)限并可進行動態(tài)更新,因而,基于網(wǎng)絡內(nèi)協(xié)議報文可達性構(gòu)建的路由表中確定的一條或多條優(yōu)選網(wǎng)絡訪問路徑,在用戶數(shù)據(jù)報轉(zhuǎn)發(fā)至網(wǎng)絡內(nèi)的最后一跳躍點后,可能由于該最后一跳躍點不具有訪問外部網(wǎng)絡的權(quán)限,從而使得用戶數(shù)據(jù)報不能達到目的網(wǎng)絡節(jié)點,也就是說,現(xiàn)有路由表中依據(jù)路由表項信息確定的優(yōu)選或最優(yōu)網(wǎng)絡訪問路徑,并不表示可以訪問外部網(wǎng)絡或處于連網(wǎng)狀態(tài),從而導致用戶訪問網(wǎng)絡失敗,降低了用戶訪問網(wǎng)絡的成功率,影響了用戶的正常網(wǎng)絡訪問行為,降低了用戶的網(wǎng)絡業(yè)務體驗。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實施例提供一種優(yōu)化網(wǎng)絡訪問路徑的方法及裝置,提升用戶訪問網(wǎng)絡的成功率。
[0005]為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0006]一方面,本發(fā)明實施例提供一種優(yōu)化網(wǎng)絡訪問路徑的方法,包括:
[0007]接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息;
[0008]針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序;
[0009]依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求;
[0010]如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
[0011]本發(fā)明實施例提供的優(yōu)化網(wǎng)絡訪問路徑的方法,在通過網(wǎng)絡拓撲信息獲取路由表項信息,利用路由表項信息生成網(wǎng)絡訪問路徑,并從多條網(wǎng)絡訪問路徑中得到優(yōu)選網(wǎng)絡路徑后,再針對優(yōu)選網(wǎng)絡路徑發(fā)起網(wǎng)絡訪問,并將處于網(wǎng)絡連通狀態(tài)的優(yōu)選網(wǎng)絡路徑作為最優(yōu)網(wǎng)絡路徑存儲在路由表中。這樣,在用戶數(shù)據(jù)報需要進行網(wǎng)絡訪問的情況下,可以成功接入網(wǎng)絡,用戶訪問網(wǎng)絡的成功率高。
[0012]另一方面,本發(fā)明實施例提供一種優(yōu)化網(wǎng)絡訪問路徑的裝置,包括:路由表項信息獲取模塊、網(wǎng)絡訪問路徑代價排序模塊、網(wǎng)絡訪問請求模塊以及路徑優(yōu)化模塊,其中,
[0013]路由表項信息獲取模塊,用于接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息;
[0014]網(wǎng)絡訪問路徑代價排序模塊,用于針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序;
[0015]網(wǎng)絡訪問請求模塊,用于依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求;
[0016]路徑優(yōu)化模塊,如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述外部目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
[0017]本發(fā)明實施例提供的優(yōu)化網(wǎng)絡訪問路徑的裝置,路由表項信息獲取模塊通過網(wǎng)絡拓撲信息獲取路由表項信息,利用路由表項信息生成網(wǎng)絡訪問路徑,網(wǎng)絡訪問路徑代價排序模塊對網(wǎng)絡訪問路徑進行排序,并從排序的多條網(wǎng)絡訪問路徑中得到優(yōu)選網(wǎng)絡路徑,網(wǎng)絡訪問請求模塊針對優(yōu)選網(wǎng)絡路徑發(fā)起網(wǎng)絡訪問,路徑優(yōu)化模塊將處于網(wǎng)絡連通狀態(tài)的優(yōu)選網(wǎng)絡路徑作為最優(yōu)網(wǎng)絡路徑存儲在路由表中。這樣,最優(yōu)網(wǎng)絡路徑為可達且處于網(wǎng)絡連通狀態(tài)的路徑,在用戶數(shù)據(jù)報需要進行網(wǎng)絡訪問的情況下,可以成功接入網(wǎng)絡,用戶訪問網(wǎng)絡的成功率高。
【專利附圖】
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0019]圖1為本發(fā)明實施例優(yōu)化網(wǎng)絡訪問路徑的方法流程示意圖;
[0020]圖2為本發(fā)明實施例優(yōu)化網(wǎng)絡訪問路徑的裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。
[0022]應當明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0023]圖1為本發(fā)明實施例優(yōu)化網(wǎng)絡訪問路徑的方法流程示意圖。參見圖1,該方法包括:
[0024]步驟101,接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息;
[0025]本步驟中,作為可選實施例,源網(wǎng)絡節(jié)點上運行動態(tài)路由協(xié)議的網(wǎng)絡接口可能接收到各種不同協(xié)議的協(xié)議報文,因而,在所述接收協(xié)議報文之后,獲取網(wǎng)絡拓撲信息之前,該方法可以進一步包括:
[0026]源網(wǎng)絡節(jié)點從接收的協(xié)議報文中,識別出動態(tài)路由協(xié)議的協(xié)議報文,并依據(jù)識別出的動態(tài)路由協(xié)議的協(xié)議報文執(zhí)行所述獲取網(wǎng)絡拓撲信息的流程。
[0027]本步驟中,對于每一協(xié)議的協(xié)議報文,都有區(qū)別于其他協(xié)議報文的特征,例如,特定的端口號、特定的字段值等,因而,根據(jù)協(xié)議報文的特征可實現(xiàn)動態(tài)路由協(xié)議的協(xié)議報文的識別。
[0028]本發(fā)明實施例中,網(wǎng)絡中的每一網(wǎng)絡節(jié)點需要構(gòu)建和維護路由表。在構(gòu)建和維護路由表時,可以有如下兩種方式。
[0029]作為一可選實施例,接收協(xié)議報文,獲取網(wǎng)絡拓撲信息包括:
[0030]All,當前網(wǎng)絡節(jié)點向鄰居網(wǎng)絡節(jié)點發(fā)送hello報文,攜帶自身的鏈路狀態(tài)通告(LSA, Link-State Advertisement)信息,并請求獲取鄰居網(wǎng)絡節(jié)點的LSA信息;
[0031]本步驟中,hello報文為協(xié)議報文的一種,LSA信息包括有關(guān)鄰居網(wǎng)絡節(jié)點和通道成本的信息,列出了當前路由器(網(wǎng)絡節(jié)點)所有的鏈路或網(wǎng)絡接口,并說明鏈路或網(wǎng)絡接口的狀態(tài),沿每條鏈路或網(wǎng)絡接口方向出站的代價,以及該鏈路或網(wǎng)絡接口上已有的鄰居網(wǎng)絡節(jié)點。
[0032]A12,根據(jù)接收的hello報文,解析獲取LSA信息作為網(wǎng)絡拓撲信息。
[0033]本發(fā)明實施例中,路由器(網(wǎng)絡節(jié)點)啟動后,發(fā)送hello報文,該hello報文中包含該路由器IP地址以及自身LSA信息,同時接收鄰居網(wǎng)絡節(jié)點的hello報文,記錄該鄰居網(wǎng)絡節(jié)點的IP地址以及LSA信息,作為網(wǎng)絡拓撲信息,如果網(wǎng)絡拓撲信息發(fā)生變化,則根據(jù)該網(wǎng)絡拓撲信息更新存儲的相應網(wǎng)絡拓撲信息。
[0034]作為另一可選實施例,接收協(xié)議報文,獲取網(wǎng)絡拓撲信息包括:
[0035]A21,源網(wǎng)絡節(jié)點向目的網(wǎng)絡節(jié)點發(fā)送路由通路檢測消息;
[0036]本步驟中,源網(wǎng)絡節(jié)點為當前網(wǎng)絡節(jié)點,目的網(wǎng)絡節(jié)點可以是鄰居網(wǎng)絡節(jié)點,也可以是其它非鄰居網(wǎng)絡節(jié)點。路由通路檢測消息是協(xié)議報文中的一種。
[0037]本發(fā)明實施例中,路由通路檢測消息包括消息頭和消息體,其中,消息頭中包含功能類型參數(shù)、消息類型參數(shù)、事務ID參數(shù)以及長度參數(shù)等,用以分別定義該路由通路檢測消息的功能類型、消息類型、事務標識及消息長度等;消息體中包含指示源網(wǎng)絡節(jié)點,即路由通路檢測消息的發(fā)送方的源標識符(SID, Source Identifier)參數(shù)和指示目的網(wǎng)絡節(jié)點,即路由通路檢測消息的接收方的目標標識符(DID, Destinat1n Identifier)參數(shù)。
[0038]本發(fā)明實施例中,通過將路由通路檢測消息中用于指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)值設置為等于源網(wǎng)絡節(jié)點的源標識符(SID,Source Identifier) 0這樣,后續(xù)流程中,目的網(wǎng)絡節(jié)點在接收到路由通路檢測消息后,根據(jù)目標標識符參數(shù)值,向源網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)路由通路檢測消息。
[0039]實際應用中,源網(wǎng)絡節(jié)點將路由通路檢測消息封裝在用戶數(shù)據(jù)報協(xié)議(UDP,UserDatagram Protocol)/網(wǎng)際互聯(lián)協(xié)議(IP, Internet Protocol)報文中,經(jīng)源網(wǎng)絡節(jié)點的數(shù)據(jù)鏈路層發(fā)送給目的網(wǎng)絡節(jié)點。其中,UDP/IP報文中包含源網(wǎng)絡節(jié)點的IP地址和目的網(wǎng)絡節(jié)點的IP地址。
[0040]A22,如果在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于可達狀態(tài),將可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息;
[0041]如果在預設時間內(nèi)沒有接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于不可達狀態(tài),將不可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息。
[0042]本步驟中,目的網(wǎng)絡節(jié)點在接收到UDP/IP報文后,對該UDP/IP報文解封裝,并對解封裝后的路由通路檢測消息進行解析,獲取DID參數(shù),與自身的DID參數(shù)進行比較:
[0043]如果兩者相同,則接收該路由通路檢測消息;本發(fā)明實施例中,為了檢測可達性,需要目的網(wǎng)絡節(jié)點返回信息,因而,通過將路由通路檢測消息中用于指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)值設置為等于源網(wǎng)絡節(jié)點的源標識符。
[0044]如果兩者不相同,則查找本地是否存儲有獲取的DID參數(shù)值對應的網(wǎng)絡節(jié)點的IP地址(即源網(wǎng)絡節(jié)點的IP地址),如果有,則根據(jù)查找到的IP地址,將該路由通路檢測消息封裝在UDP/IP報文中,發(fā)送給所述查找到的IP地址對應的網(wǎng)絡節(jié)點(即源網(wǎng)絡節(jié)點);如果沒有,則將該路由通路檢測消息封裝在UDP/IP報文中,發(fā)送給默認網(wǎng)絡節(jié)點。一般地,默認網(wǎng)絡節(jié)點中存儲有網(wǎng)絡中所有網(wǎng)絡節(jié)點的ID及IP地址信息。因此,當默認網(wǎng)絡節(jié)點接收到目的網(wǎng)絡節(jié)點發(fā)送的UDP/IP報文時,根據(jù)路由通路檢測消息中的DID參數(shù)值找到對應的源網(wǎng)絡節(jié)點的IP地址,將該路由通路檢測消息封裝在UDP/IP報文中,發(fā)送給該源網(wǎng)絡節(jié)點,從而完成可達性檢測。
[0045]實際應用中,源網(wǎng)絡節(jié)點還可通過自定義路由通路檢測消息中的消息類型參數(shù)值來唯一標識該路由通路檢測消息,以便于源網(wǎng)絡節(jié)點對后續(xù)接收到的路由通路檢測消息進行識別,以確定是否是發(fā)出的路由通路檢測消息。這樣,該方法進一步包括:
[0046]如果在預設時間內(nèi)接收到多個路由通路檢測消息,則將接收到的多個路由通路檢測消息中的消息類型參數(shù)值,分別與發(fā)送的路由通路檢測消息中的消息類型參數(shù)值相比較,如果有任一消息類型參數(shù)值相同,則確定在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息。
[0047]或者,
[0048]源網(wǎng)絡節(jié)點也可以通過自定義路由通路檢測消息的功能類型參數(shù)值來唯一標識該路由通路檢測消息。這樣,該方法進一步包括:
[0049]如果在預設時間內(nèi)接收到多個路由通路檢測消息,則將接收到的多個路由通路檢測消息中的功能類型參數(shù)值,分別與發(fā)送的路由通路檢測消息中的功能類型參數(shù)值相比較,如果有任一功能類型參數(shù)值相同,則確定在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息。
[0050]進一步地,當源網(wǎng)絡節(jié)點同時向多個目的網(wǎng)絡節(jié)點發(fā)送路由通路檢測消息時,還可以通過自定義路由通路檢測消息中的事務ID參數(shù)值,以對發(fā)送的路由通路檢測消息進行標識,以區(qū)分不同路由通路檢測消息對應的不同目的網(wǎng)絡節(jié)點。
[0051]本發(fā)明實施例中,作為可選實施例,可以設置在路由表中存儲網(wǎng)絡拓撲信息,路由表項信息包括:指向目的網(wǎng)絡節(jié)點的各路由構(gòu)成的網(wǎng)絡訪問路徑信息以及該網(wǎng)絡訪問路徑的路由度量值,后續(xù)中,依據(jù)該路由度量值以及預先設置的權(quán)重系數(shù),可以計算得到網(wǎng)絡訪問路徑代價。其中,作為可選實施例,網(wǎng)絡訪問路徑信息可以包括:網(wǎng)絡標識(ID,I dent ifier)、目的網(wǎng)絡節(jié)點地址、轉(zhuǎn)發(fā)地址、網(wǎng)絡接口以及躍點數(shù),其中,
[0052]網(wǎng)絡ID,為源網(wǎng)絡節(jié)點所在網(wǎng)絡的ID ;
[0053]轉(zhuǎn)發(fā)地址是源網(wǎng)絡節(jié)點的硬件地址或IP地址,例如,對于直接連接網(wǎng)絡的路由器,轉(zhuǎn)發(fā)地址可以是連接到網(wǎng)絡的接口地址;
[0054]網(wǎng)絡接口為源網(wǎng)絡節(jié)點將數(shù)據(jù)包轉(zhuǎn)發(fā)到網(wǎng)絡ID時所使用的網(wǎng)絡接口,實際應用中,網(wǎng)絡接口可以是一個端口號或其他類型的邏輯標識符;
[0055]本發(fā)明實施例中,對于一個源網(wǎng)絡節(jié)點(路由器),可能安裝有多個網(wǎng)卡或多個虛擬網(wǎng)卡,則每一網(wǎng)卡或虛擬網(wǎng)卡對應一網(wǎng)絡接口。
[0056]作為可選實施例,為了有效降低源網(wǎng)絡節(jié)點中的路由計算量,還可以設置路由計算設備,由設置的路由計算設備分擔一部分源網(wǎng)絡節(jié)點中的路由計算量。因而,該方法還可以進一步包括:
[0057]A31,在路由計算設備中設置多個虛擬網(wǎng)絡接口,與網(wǎng)絡中運行動態(tài)路由協(xié)議的網(wǎng)絡節(jié)點的網(wǎng)絡接口分別相連,并設置虛擬網(wǎng)絡接口與相連的網(wǎng)絡節(jié)點的網(wǎng)絡接口具有相同的網(wǎng)絡地址;
[0058]本步驟中,網(wǎng)絡地址可以是IP地址,也可以是其他設置的可唯一標識網(wǎng)絡接口的信息。
[0059]本發(fā)明實施例中,通過設置虛擬網(wǎng)絡接口與相連的網(wǎng)絡節(jié)點的網(wǎng)絡接口具有相同的網(wǎng)絡地址,從而將網(wǎng)絡中運行動態(tài)路由協(xié)議的網(wǎng)絡節(jié)點的網(wǎng)絡接口鏡像到了路由計算設備上。
[0060]本發(fā)明實施例中,網(wǎng)絡節(jié)點是動態(tài)路由協(xié)議網(wǎng)絡中參與網(wǎng)絡拓撲信息交換、進行路由計算以及報文轉(zhuǎn)發(fā)的節(jié)點,例如,可以是邏輯上或物理上的路由器、用戶計算機等;路由計算設備是具有運算和處理能力,并具有網(wǎng)絡連接功能的設備,例如,可以是邏輯上或物理上的服務器。
[0061]A32,源網(wǎng)絡節(jié)點將接收的協(xié)議報文通過網(wǎng)絡接口轉(zhuǎn)發(fā)給路由計算設備上對應的虛擬接口 ;
[0062]A33,路由計算設備按照從源網(wǎng)絡節(jié)點鏡像得到的網(wǎng)絡拓撲信息,利用路由算法計算出接收的協(xié)議報文中到達目的網(wǎng)絡節(jié)點的路由表項信息;
[0063]本步驟中,路由計算設備從虛擬接口接收來自源網(wǎng)絡節(jié)點的協(xié)議報文,按照從該源網(wǎng)絡節(jié)點鏡像得到的網(wǎng)絡拓撲信息以及動態(tài)路由協(xié)議進行處理。這樣,通過將協(xié)議報文轉(zhuǎn)發(fā)到路由計算設備上對應的虛擬接口,由路由計算設備進行處理,可以分擔源網(wǎng)絡節(jié)點的路由計算量。
[0064]A34,路由計算設備將計算的路由表項信息通過虛擬接口發(fā)送至源網(wǎng)絡節(jié)點,以使源網(wǎng)絡節(jié)點按照接收的路由表項信息轉(zhuǎn)發(fā)協(xié)議報文。
[0065]本步驟中,路由計算設備主要負責動態(tài)路由協(xié)議的運算和處理,不涉及協(xié)議報文的轉(zhuǎn)發(fā)。
[0066]實際應用中,對于協(xié)議報文具有中轉(zhuǎn)路由的情形,路由計算設備也可以涉及協(xié)議報文的轉(zhuǎn)發(fā)。這樣,在路由計算設備計算得到路由表項信息后,可以按照計算得到路由表項信息,將協(xié)議報文直接進行轉(zhuǎn)發(fā)。例如,在計算得到路由表項信息后,按照所運行的動態(tài)路由協(xié)議,生成發(fā)送給下一跳網(wǎng)絡節(jié)點的協(xié)議報文,舉例來說,向下一跳網(wǎng)絡節(jié)點通告鏈路狀態(tài)信息的通知報文、向下一跳網(wǎng)絡節(jié)點請求其鏈路狀態(tài)信息的請求報文、維持下一跳網(wǎng)絡節(jié)點關(guān)系的報文、對接收的協(xié)議報文的響應報文等。在生成相應協(xié)議報文后,路由計算設備從虛擬接口將生成的協(xié)議報文發(fā)送至下一跳網(wǎng)絡節(jié)點。
[0067]躍點數(shù),即路由數(shù),是選取網(wǎng)絡訪問路徑的度量。實際應用中,一般選用具有最小躍點數(shù)的網(wǎng)絡訪問路徑。
[0068]本發(fā)明實施例中,當前源網(wǎng)絡節(jié)點用于為經(jīng)過該源網(wǎng)絡節(jié)點的每一數(shù)據(jù)包(用戶數(shù)據(jù)報)計算并獲取一條最優(yōu)傳輸路徑,即最優(yōu)網(wǎng)絡訪問路徑,并依據(jù)獲取的最優(yōu)傳輸路徑傳輸該數(shù)據(jù)包,從而使該數(shù)據(jù)包能夠有效地傳送到目的網(wǎng)絡節(jié)點。
[0069]本發(fā)明實施例中,路由算法包括:路由信息協(xié)議(RIP, Routing Informat1nProtocol)算法、開放最短路徑優(yōu)先(0SPF,0pen Shortest Path First)算法、中間系統(tǒng)到中間系統(tǒng)(IS-1S, Intermediate System to Intermediate System)算法、邊界網(wǎng)關(guān)協(xié)議(BGP, Border Gateway protocol)算法等。
[0070]步驟102,針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序;
[0071]本步驟中,按照網(wǎng)絡訪問路徑代價從小至大進行排序后,選取排序前N位的網(wǎng)絡訪問路徑,作為路由表中的路由表項。其中,N為自然數(shù)。
[0072]步驟103,依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求;
[0073]本步驟中,由于從源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點,可能具有多條可達的優(yōu)選網(wǎng)絡訪問路徑,但該多條可達的優(yōu)選網(wǎng)絡訪問路徑并不一定處于網(wǎng)絡連通狀態(tài),因而,本發(fā)明實施例中,進行網(wǎng)絡連通狀態(tài)檢測。
[0074]本發(fā)明實施例中,對目的網(wǎng)絡節(jié)點發(fā)起網(wǎng)絡訪問請求,該目的網(wǎng)絡節(jié)點可以是網(wǎng)絡訪問路徑中的目的網(wǎng)絡節(jié)點,也可以是其它需要經(jīng)過該網(wǎng)絡訪問路徑的網(wǎng)絡節(jié)點。
[0075]步驟104,如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
[0076]本步驟中,可以對多條可達的優(yōu)選網(wǎng)絡訪問路徑進行網(wǎng)絡連通狀態(tài)檢測,并將返回有網(wǎng)絡連通信息的一條或多條優(yōu)選網(wǎng)絡訪問路徑作為最優(yōu)網(wǎng)絡訪問路徑,存儲在路由表中。如果沒有接收到對應的網(wǎng)絡連通信息,則不作處理,即采用現(xiàn)有的路由表。
[0077]作為可選實施例,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求,如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息包括:
[0078]B11,依據(jù)所述網(wǎng)絡訪問路徑,向預先設置的目的網(wǎng)絡節(jié)點發(fā)送網(wǎng)絡連通檢測請求;
[0079]本步驟中,網(wǎng)絡訪問請求為網(wǎng)絡連通檢測請求,通過模擬windows系統(tǒng)的網(wǎng)絡連通狀態(tài)檢測(NCSI,Network Connectivity Status Indicator)機制,設置網(wǎng)絡連通檢測請求按照當前的網(wǎng)絡訪問路徑進行轉(zhuǎn)發(fā),最后達到目的網(wǎng)絡節(jié)點,以獲取因特網(wǎng)連接狀態(tài)。
[0080]本發(fā)明實施例中,網(wǎng)絡連通檢測請求包括:域名服務器(DNS, Domain NameServer)解析請求、超文本傳輸協(xié)議(HTTP, Hypertext Transfer Protocol)請求等。例如,以目的網(wǎng)絡節(jié)點為msftncs1.com為例,如果為HTTP請求,則具體為:http://www.msftncs1.com/ncs1.txt ;如果為 DNS 解析請求,則具體為:dns.msftncs1.com。
[0081]B12,在預先設置的時間內(nèi)接收到目的網(wǎng)絡節(jié)點返回的網(wǎng)絡連通檢測請求響應,進行解析,獲取目的網(wǎng)絡節(jié)點對應的頁面或域名服務器解析結(jié)果。
[0082]本步驟中,網(wǎng)絡連通信息包括但不限于:目的網(wǎng)絡節(jié)點對應的頁面信息以及域名服務器解析結(jié)果信息。
[0083]對應于前述的HTTP請求,則經(jīng)過解析網(wǎng)絡訪問請求響應(網(wǎng)絡連通檢測請求響應),得到目的網(wǎng)絡節(jié)點(msftncs1.com)對應的ncs1.txt頁面,包含以下文本行,其中,包含的文本行沒有終止新行或其他非打印字符:
[0084]Microsoft NCSI
[0085](頁面標題禁用緩存)
[0086]則表示在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息。
[0087]對應于前述的DNS解析請求,則經(jīng)過解析網(wǎng)絡訪問請求響應,得到域名服務器解析結(jié)果,具體為=131.107.255.255,則表示在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息。
[0088]本發(fā)明實施例中,通過模擬NCSI,向DNS服務器dns.msftncs1.com發(fā)起DNS解析請求,如果DNS解析請求響應中的DN解析結(jié)果為:131.107.255.255,表明至該目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問路徑處于因特網(wǎng)(Internet)連接狀態(tài),否則,表明至該目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問路徑雖處于可達狀態(tài),但處于因特網(wǎng)非連接狀態(tài)。這樣,作為可選實施例,該方法可以進一步包括:
[0089]如果在預先設置的時間內(nèi)沒有接收到網(wǎng)絡連通檢測請求響應,或者,解析獲取的不是目的網(wǎng)絡節(jié)點對應的頁面,或者,解析獲取的不是域名服務器解析結(jié)果,確定當前網(wǎng)絡訪問路徑處于網(wǎng)絡非連接狀態(tài),讀取排序的下一網(wǎng)絡訪問路徑,返回執(zhí)行步驟B11。
[0090]本發(fā)明實施例中,還可以對路由表進行維護,因而,作為一可選實施例,該方法可以進一步包括:
[0091]注冊監(jiān)聽路由表變化的通知,以使路由表鏈路狀態(tài)發(fā)生變化時,調(diào)整路由表。
[0092]本步驟中,通過API NotifyRouteChange注冊路由表變更通知。當網(wǎng)絡節(jié)點接收到路由表變更通知,通過路由通路檢測消息以及網(wǎng)絡連通檢測請求,判斷網(wǎng)絡訪問路徑和網(wǎng)絡連接狀態(tài)是否發(fā)生變化,如果發(fā)生變化,更新路由表以及網(wǎng)絡訪問路徑和網(wǎng)絡連接狀態(tài),并等待下一次路由表變更通知。這樣,通過循環(huán)判斷即可實時獲取得到網(wǎng)絡節(jié)點當前最優(yōu)的上網(wǎng)路徑及連網(wǎng)狀態(tài)。
[0093]本發(fā)明實施例中,如果出現(xiàn)硬件變動、和/或,軟件變動,則判斷網(wǎng)絡連接狀態(tài)發(fā)生變化。其中,硬件變動可以包括網(wǎng)卡的啟用、禁用、損壞、恢復或網(wǎng)絡切換,軟件變動可以包括防火墻規(guī)則變動、準入軟件變動等。
[0094]作為另一可選實施例,該方法還可以進一步包括:
[0095]步驟105,接收用戶數(shù)據(jù)報,根據(jù)用戶數(shù)據(jù)報中的目的網(wǎng)絡節(jié)點,查詢存儲有最優(yōu)網(wǎng)絡訪問路徑的路由表,獲取至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑,并依據(jù)獲取的所述最優(yōu)網(wǎng)絡訪問路徑轉(zhuǎn)發(fā)所述用戶數(shù)據(jù)報。
[0096]本步驟中,當該路由器接收到用戶發(fā)送的用戶數(shù)據(jù)報后,根據(jù)用戶數(shù)據(jù)報中的目的網(wǎng)絡節(jié)點,查詢存儲有最優(yōu)網(wǎng)絡訪問路徑的路由表,獲取至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑,依據(jù)獲取的所述最優(yōu)網(wǎng)絡訪問路徑轉(zhuǎn)發(fā)所述用戶數(shù)據(jù)報。這樣,無論用戶數(shù)據(jù)報是否需要網(wǎng)絡訪問,都可以順利到達目的網(wǎng)絡節(jié)點。
[0097]實際應用中,可以通過GetIpForwardTable 函數(shù)或 GetBestInterface API 函數(shù)讀取路由表進行查詢。例如,利用GetIpForwardTable函數(shù)、CreateIpForwardEntry函數(shù)、DeleteIpForwardEntry函數(shù)、SetIpForwardEntry函數(shù)來分別獲取路由表、創(chuàng)建路由表中的路由表項、刪除路由中的路由表表項和修改路由表中的路由表項。舉例來說,前述的將最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中可通過CreateIpForwardEntry函數(shù)實現(xiàn)。
[0098]實際應用中,在讀取路由表后,也可以利用GetBestRoute函數(shù)、GetBestInterface函數(shù)獲得到達目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑以及該最優(yōu)網(wǎng)絡訪問路徑對應源網(wǎng)絡節(jié)點(當前網(wǎng)絡節(jié)點)的網(wǎng)絡接口。因而,該方法還可以進一步包括:
[0099]根據(jù)所述最優(yōu)網(wǎng)絡訪問路徑,調(diào)用GetBestInterface函數(shù),獲取所述最優(yōu)網(wǎng)絡訪問路徑對應的網(wǎng)絡接口信息。
[0100]本步驟中,由于一個網(wǎng)絡節(jié)點中可能具有多個網(wǎng)卡,對應有多個網(wǎng)絡接口,這樣,通過獲取所述最優(yōu)網(wǎng)絡訪問路徑對應的網(wǎng)絡接口信息,可以獲知能夠提供上網(wǎng)的是哪一個網(wǎng)卡或哪些網(wǎng)卡。
[0101]當然,實際應用中,也可以使用缺省路由表(Default route)中的缺省路由記錄,例如,如果在路由表中沒有找到與目的網(wǎng)絡節(jié)點匹配的路由路徑時,即對接收的用戶數(shù)據(jù)報進行轉(zhuǎn)發(fā)使用的路由,可以使用缺省路由。在路由表中,缺省路由以目的網(wǎng)絡節(jié)點為
0.0.0.0、子網(wǎng)掩碼為0.0.0.0的形式出現(xiàn)。也就是說,如果用戶數(shù)據(jù)報的目的網(wǎng)絡節(jié)點地址不能與任何路由相匹配,則將使用缺省路由轉(zhuǎn)發(fā)該數(shù)據(jù)包。
[0102]由上述可見,本發(fā)明實施例的優(yōu)化網(wǎng)絡訪問路徑的方法,在通過網(wǎng)絡拓撲信息獲取路由表項信息,利用路由表項信息生成網(wǎng)絡訪問路徑,并從多條網(wǎng)絡訪問路徑中得到優(yōu)選網(wǎng)絡路徑后,對優(yōu)選網(wǎng)絡路徑發(fā)起網(wǎng)絡訪問,從而確定該優(yōu)選網(wǎng)絡路徑是否處于網(wǎng)絡連通狀態(tài),并將處于網(wǎng)絡連通狀態(tài)的優(yōu)選網(wǎng)絡路徑作為最優(yōu)網(wǎng)絡路徑存儲在路由表中。這樣,在用戶數(shù)據(jù)報需要進行網(wǎng)絡訪問的情況下,可以成功接入網(wǎng)絡,避免了僅僅依據(jù)路徑可達性確定的優(yōu)選網(wǎng)絡訪問路徑,其可能無權(quán)限訪問外部網(wǎng)絡或處于連網(wǎng)狀態(tài)導致的用戶訪問網(wǎng)絡失敗的情形發(fā)生,提升了用戶訪問網(wǎng)絡的成功率,保障了用戶的正常網(wǎng)絡訪問行為,從而提升了用戶的網(wǎng)絡業(yè)務體驗;進一步地,通過模擬NCSI獲取發(fā)起網(wǎng)絡訪問并獲取網(wǎng)絡連通狀態(tài),相對于嘗試連接其他網(wǎng)絡服務器獲取網(wǎng)絡連通狀態(tài),安全可靠性更高;而且,通過注冊監(jiān)聽路由表變化的通知的方式維護路由表,無需實時檢查路由表中的路由表項,只需在路由表有變化時進行檢查并更新,節(jié)約了維護路由表的資源開銷,無需實時調(diào)用檢查路由表就能實時知道最優(yōu)網(wǎng)絡訪問路徑,獲取最優(yōu)網(wǎng)絡訪問路徑的效率聞。
[0103]圖2為本發(fā)明實施例優(yōu)化網(wǎng)絡訪問路徑的裝置結(jié)構(gòu)示意圖。參見圖2,該裝置包括:路由表項信息獲取模塊201、網(wǎng)絡訪問路徑代價排序模塊202、網(wǎng)絡訪問請求模塊203以及路徑優(yōu)化模塊204,其中,
[0104]路由表項信息獲取模塊201,用于接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息;
[0105]本發(fā)明實施例中,路由算法包括:路由信息協(xié)議算法、開放最短路徑優(yōu)先算法、中間系統(tǒng)到中間系統(tǒng)算法、邊界網(wǎng)關(guān)協(xié)議算法等。
[0106]作為一可選實施例,路由表項信息獲取模塊201包括:報文發(fā)送單兀、網(wǎng)絡拓撲信息獲取單元以及路由表項信息獲取單元(圖中未示出),其中,
[0107]報文發(fā)送單元,用于向鄰居網(wǎng)絡節(jié)點發(fā)送hello報文,攜帶自身的鏈路狀態(tài)通告信息,并請求獲取鄰居網(wǎng)絡節(jié)點的LSA信息;
[0108]網(wǎng)絡拓撲信息獲取單元,用于根據(jù)接收的hello報文,解析獲取LSA信息作為網(wǎng)絡拓撲息;
[0109]路由表項信息獲取單元,用于根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息。
[0110]較佳地,該路由表項信息獲取模塊201還可以進一步包括:
[0111]識別單元,用于從接收的hello報文中,識別出動態(tài)路由協(xié)議的協(xié)議報文,并將識別出的動態(tài)路由協(xié)議的協(xié)議報文輸出至網(wǎng)絡拓撲信息獲取單元。
[0112]作為另一可選實施例,路由表項信息獲取模塊201包括:路由通路檢測消息編輯單元、發(fā)送單元、網(wǎng)絡拓撲信息獲取單元以及路由表項信息獲取單元(圖中未示出),其中,
[0113]路由通路檢測消息編輯單元,用于將路由通路檢測消息中用于指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)值設置為等于源網(wǎng)絡節(jié)點的源標識符;
[0114]本發(fā)明實施例中,路由通路檢測消息包括消息頭和消息體,其中,消息頭中包含功能類型參數(shù)、消息類型參數(shù)、事務ID參數(shù)以及長度參數(shù)等,用以分別定義該路由通路檢測消息的功能類型、消息類型、事務標識及消息長度等;消息體中包含指示源網(wǎng)絡節(jié)點的源標識符參數(shù)和指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)。
[0115]發(fā)送單元,用于向目的網(wǎng)絡節(jié)點發(fā)送路由通路檢測消息;
[0116]網(wǎng)絡拓撲信息獲取單元,如果在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于可達狀態(tài),將可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息;
[0117]如果在預設時間內(nèi)沒有接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于不可達狀態(tài),將不可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息;
[0118]本發(fā)明實施例中,目的網(wǎng)絡節(jié)點在接收到UDP/IP報文后,對該UDP/IP報文解封裝,并對解封裝后的路由通路檢測消息進行解析,獲取DID參數(shù),與自身的DID參數(shù)進行比較:
[0119]如果兩者相同,則接收該路由通路檢測消息;本發(fā)明實施例中,為了檢測可達性,需要目的網(wǎng)絡節(jié)點返回信息,因而,通過將路由通路檢測消息中用于指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)值設置為等于源網(wǎng)絡節(jié)點的源標識符。
[0120]如果兩者不相同,則查找本地是否存儲有獲取的DID參數(shù)值對應的網(wǎng)絡節(jié)點的IP地址(即源網(wǎng)絡節(jié)點的IP地址),如果有,則根據(jù)查找到的IP地址,將該路由通路檢測消息封裝在UDP/IP報文中,發(fā)送給所述查找到的IP地址對應的網(wǎng)絡節(jié)點(即源網(wǎng)絡節(jié)點);如果沒有,則將該路由通路檢測消息封裝在UDP/IP報文中,發(fā)送給默認網(wǎng)絡節(jié)點。一般地,默認網(wǎng)絡節(jié)點中存儲有網(wǎng)絡中所有網(wǎng)絡節(jié)點的ID及IP地址信息。因此,當默認網(wǎng)絡節(jié)點接收到目的網(wǎng)絡節(jié)點發(fā)送的UDP/IP報文時,根據(jù)路由通路檢測消息中的DID參數(shù)值找到對應的源網(wǎng)絡節(jié)點的IP地址,將該路由通路檢測消息封裝在UDP/IP報文中,發(fā)送給該源網(wǎng)絡節(jié)點,從而完成可達性檢測。
[0121]路由表項信息獲取單元,用于根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息。
[0122]網(wǎng)絡訪問路徑代價排序模塊202,用于針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序;
[0123]網(wǎng)絡訪問請求模塊203,用于依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求;
[0124]本發(fā)明實施例中,作為一可選實施例,網(wǎng)絡訪問請求模塊203包括:網(wǎng)絡連通檢測請求單元以及網(wǎng)絡連通檢測單元(圖中未示出),其中,
[0125]網(wǎng)絡連通檢測請求單元,用于依據(jù)所述網(wǎng)絡訪問路徑,向預先設置的目的網(wǎng)絡節(jié)點發(fā)送網(wǎng)絡連通檢測請求;
[0126]本發(fā)明實施例中,網(wǎng)絡連通檢測請求包括:域名服務器(DNS, Domain NameServer)解析請求、超文本傳輸協(xié)議(HTTP, Hypertext Transfer Protocol)請求等。例如,以目的網(wǎng)絡節(jié)點為msftncs1.com為例,如果為HTTP請求,則具體為:http://www.msftncs1.com/ncs1.txt ;如果為 DNS 解析請求,則具體為:dns.msftncs1.com。
[0127]網(wǎng)絡連通檢測單元,用于在預先設置的時間內(nèi)接收到目的網(wǎng)絡節(jié)點返回的網(wǎng)絡連通檢測請求響應,進行解析,獲取目的網(wǎng)絡節(jié)點對應的頁面或域名服務器解析結(jié)果。
[0128]本發(fā)明實施例中,網(wǎng)絡連通信息包括但不限于:目的網(wǎng)絡節(jié)點對應的頁面信息以及域名服務器解析結(jié)果信息。
[0129]對應于前述的HTTP請求,則經(jīng)過解析網(wǎng)絡訪問請求響應(網(wǎng)絡連通檢測請求響應),得到目的網(wǎng)絡節(jié)點(msftncs1.com)對應的ncs1.txt頁面,包含以下文本行,其中,包含的文本行沒有終止新行或其他非打印字符:
[0130]Microsoft NCSI
[0131](頁面標題禁用緩存)
[0132]則表示在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息。
[0133]對應于前述的DNS解析請求,則經(jīng)過解析網(wǎng)絡訪問請求響應,得到域名服務器解析結(jié)果,具體為=131.107.255.255,則表示在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息。
[0134]較佳地,網(wǎng)絡連通檢測單元還可以進一步用于在預先設置的時間內(nèi)沒有接收到網(wǎng)絡連通檢測請求響應,或者,解析獲取的不是目的網(wǎng)絡節(jié)點對應的頁面,或者,解析獲取的不是域名服務器解析結(jié)果,確定當前網(wǎng)絡訪問路徑處于網(wǎng)絡非連接狀態(tài),讀取排序的下一網(wǎng)絡訪問路徑,輸出網(wǎng)絡連通檢測請求單元。
[0135]路徑優(yōu)化模塊204,如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述外部目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
[0136]本發(fā)明實施例中,可通過調(diào)用CreateIpForwardEntry函數(shù),將最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
[0137]作為可選實施例,該裝置進一步包括:
[0138]監(jiān)測模塊205,用于注冊監(jiān)聽路由表變化的通知,以使路由表鏈路狀態(tài)發(fā)生變化時,調(diào)整路由表。
[0139]本發(fā)明實施例中,通過調(diào)用API NotifyRouteChange注冊路由表變更通知。
[0140]本發(fā)明實施例中,如果出現(xiàn)硬件變動、和/或,軟件變動,則判斷網(wǎng)絡連接狀態(tài)發(fā)生變化。其中,硬件變動可以包括網(wǎng)卡的啟用、禁用、損壞、恢復或網(wǎng)絡切換,軟件變動可以包括防火墻規(guī)則變動、準入軟件變動等。
[0141]作為另一可選實施例,該裝置還可以進一步包括:
[0142]查詢轉(zhuǎn)發(fā)模塊206,用于接收用戶數(shù)據(jù)報,根據(jù)用戶數(shù)據(jù)報中的目的網(wǎng)絡節(jié)點,查詢存儲有最優(yōu)網(wǎng)絡訪問路徑的路由表,獲取至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑,并依據(jù)獲取的所述最優(yōu)網(wǎng)絡訪問路徑轉(zhuǎn)發(fā)所述用戶數(shù)據(jù)報。
[0143]本發(fā)明實施例中,可以通過調(diào)用GetIpForwardTable函數(shù)或GetBestInterfaceAPI函數(shù)讀取路由表,并調(diào)用GetBestRoute函數(shù)從讀取的路由表中,獲得到達目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑。
[0144]作為再一可選實施例,該裝置還可以進一步包括:
[0145]網(wǎng)絡接口信息獲取模塊207,用于根據(jù)所述最優(yōu)網(wǎng)絡訪問路徑,調(diào)用GetBestInterface函數(shù),獲取所述最優(yōu)網(wǎng)絡訪問路徑對應的網(wǎng)絡接口信息。
[0146]本發(fā)明實施例中,由于一個網(wǎng)絡節(jié)點中可能具有多個網(wǎng)卡,對應有多個網(wǎng)絡接口,這樣,通過獲取所述最優(yōu)網(wǎng)絡訪問路徑對應的網(wǎng)絡接口信息,可以獲知能夠提供上網(wǎng)的是哪一個網(wǎng)卡或哪些網(wǎng)卡。
[0147]本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0148]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以權(quán)利要求的保護范圍為準。
【權(quán)利要求】
1.一種優(yōu)化網(wǎng)絡訪問路徑的方法,其特征在于,該方法包括: 接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息; 針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序; 依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求; 如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進一步包括: 注冊監(jiān)聽路由表變化的通知,以使路由表鏈路狀態(tài)發(fā)生變化時,調(diào)整路由表。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進一步包括: 接收用戶數(shù)據(jù)報,根據(jù)用戶數(shù)據(jù)報中的目的網(wǎng)絡節(jié)點,查詢存儲有最優(yōu)網(wǎng)絡訪問路徑的路由表,獲取至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑,并依據(jù)獲取的所述最優(yōu)網(wǎng)絡訪問路徑轉(zhuǎn)發(fā)所述用戶數(shù)據(jù)報。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,調(diào)用GetIpForwardTable函數(shù)或GetBestInterface API函數(shù)讀取路由表進行所述查詢,調(diào)用GetBestRoute函數(shù)獲得至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進一步包括: 根據(jù)所述最優(yōu)網(wǎng)絡訪問路徑,調(diào)用GetBestInterface函數(shù),獲取所述最優(yōu)網(wǎng)絡訪問路徑對應的網(wǎng)絡接口信息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求,如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息包括: 依據(jù)所述網(wǎng)絡訪問路徑,向預先設置的目的網(wǎng)絡節(jié)點發(fā)送網(wǎng)絡連通檢測請求; 在預先設置的時間內(nèi)接收到目的網(wǎng)絡節(jié)點返回的網(wǎng)絡連通檢測請求響應,進行解析,獲取目的網(wǎng)絡節(jié)點對應的頁面或域名服務器解析結(jié)果。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述網(wǎng)絡連通檢測請求為域名服務器解析請求,所述網(wǎng)絡連通信息為域名服務器解析結(jié)果信息;或者, 所述網(wǎng)絡連通檢測請求為超文本傳輸協(xié)議請求,所述網(wǎng)絡連通信息為目的網(wǎng)絡節(jié)點對應的頁面信息。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法進一步包括: 如果在預先設置的時間內(nèi)沒有接收到網(wǎng)絡連通檢測請求響應,或者,解析獲取的不是目的網(wǎng)絡節(jié)點對應的頁面,或者,解析獲取的不是域名服務器解析結(jié)果,確定當前網(wǎng)絡訪問路徑處于網(wǎng)絡非連接狀態(tài),讀取排序的下一網(wǎng)絡訪問路徑,返回執(zhí)行所述依據(jù)所述網(wǎng)絡訪問路徑的流程。
9.根據(jù)權(quán)利要求1至8任一項所述的方法,其特征在于,在所述接收協(xié)議報文之后,獲取網(wǎng)絡拓撲信息之前,所述方法進一步包括: 源網(wǎng)絡節(jié)點從接收的協(xié)議報文中,識別出動態(tài)路由協(xié)議的協(xié)議報文,并依據(jù)識別出的動態(tài)路由協(xié)議的協(xié)議報文執(zhí)行所述獲取網(wǎng)絡拓撲信息的流程。
10.根據(jù)權(quán)利要求1至8任一項所述的方法,其特征在于,所述接收協(xié)議報文,獲取網(wǎng)絡拓撲信息包括: 當前網(wǎng)絡節(jié)點向鄰居網(wǎng)絡節(jié)點發(fā)送hello報文,攜帶自身的鏈路狀態(tài)通告信息,并請求獲取鄰居網(wǎng)絡節(jié)點的LSA信息; 根據(jù)接收的hello報文,解析獲取LSA信息作為網(wǎng)絡拓撲信息。
11.根據(jù)權(quán)利要求1至8任一項所述的方法,其特征在于,所述接收協(xié)議報文,獲取網(wǎng)絡拓撲信息包括: 源網(wǎng)絡節(jié)點向目的網(wǎng)絡節(jié)點發(fā)送路由通路檢測消息; 如果在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于可達狀態(tài),將可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲息; 如果在預設時間內(nèi)沒有接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于不可達狀態(tài),將不可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述路由通路檢測消息中用于指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)值設置為等于源網(wǎng)絡節(jié)點的源標識符。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法進一步包括: 如果在預設時間內(nèi)接收到多個路由通路檢測消息,則將接收到的多個路由通路檢測消息中的消息類型參數(shù)值,分別與發(fā)送的路由通路檢測消息中的消息類型參數(shù)值相比較,如果有任一消息類型參數(shù)值相同,則確定在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息。
14.根據(jù)權(quán)利要求1至8任一項所述的方法,其特征在于,所述方法進一步包括: 在路由計算設備中設置多個虛擬網(wǎng)絡接口,與網(wǎng)絡中運行動態(tài)路由協(xié)議的網(wǎng)絡節(jié)點的網(wǎng)絡接口分別相連,并設置虛擬網(wǎng)絡接口與相連的網(wǎng)絡節(jié)點的網(wǎng)絡接口具有相同的網(wǎng)絡地址;源網(wǎng)絡節(jié)點將接收的協(xié)議報文通過網(wǎng)絡接口轉(zhuǎn)發(fā)給路由計算設備上對應的虛擬接Π ; 路由計算設備按照從源網(wǎng)絡節(jié)點鏡像得到的網(wǎng)絡拓撲信息,利用路由算法計算出接收的協(xié)議報文中到達目的網(wǎng)絡節(jié)點的路由表項信息; 路由計算設備將計算的路由表項信息通過虛擬接口發(fā)送至源網(wǎng)絡節(jié)點,以使源網(wǎng)絡節(jié)點按照接收的路由表項信息轉(zhuǎn)發(fā)協(xié)議報文。
15.一種優(yōu)化網(wǎng)絡訪問路徑的裝置,其特征在于,該裝置包括:路由表項信息獲取模塊、網(wǎng)絡訪問路徑代價排序模塊、網(wǎng)絡訪問請求模塊以及路徑優(yōu)化模塊,其中, 路由表項信息獲取模塊,用于接收協(xié)議報文,獲取網(wǎng)絡拓撲信息,根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息; 網(wǎng)絡訪問路徑代價排序模塊,用于針對每一目的網(wǎng)絡節(jié)點,計算該目的網(wǎng)絡節(jié)點的各路由表項信息對應的網(wǎng)絡訪問路徑代價,并按照網(wǎng)絡訪問路徑代價從小至大進行排序;網(wǎng)絡訪問請求模塊,用于依序按照排序的網(wǎng)絡訪問路徑,發(fā)起對目的網(wǎng)絡節(jié)點的網(wǎng)絡訪問請求; 路徑優(yōu)化模塊,如果在預先設置的時間內(nèi)接收到網(wǎng)絡訪問請求對應的網(wǎng)絡連通信息,將該網(wǎng)絡訪問路徑作為至所述外部目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑存儲在路由表中。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,進一步包括: 監(jiān)測模塊,用于注冊監(jiān)聽路由表變化的通知,以使路由表鏈路狀態(tài)發(fā)生變化時,調(diào)整路由表。
17.根據(jù)權(quán)利要求15所述的裝置,其特征在于,進一步包括: 查詢轉(zhuǎn)發(fā)模塊,用于接收用戶數(shù)據(jù)報,根據(jù)用戶數(shù)據(jù)報中的目的網(wǎng)絡節(jié)點,查詢存儲有最優(yōu)網(wǎng)絡訪問路徑的路由表,獲取至所述目的網(wǎng)絡節(jié)點的最優(yōu)網(wǎng)絡訪問路徑,并依據(jù)獲取的所述最優(yōu)網(wǎng)絡訪問路徑轉(zhuǎn)發(fā)所述用戶數(shù)據(jù)報。
18.根據(jù)權(quán)利要求15所述的裝置,其特征在于,進一步包括: 網(wǎng)絡接口信息獲取模塊,用于根據(jù)所述最優(yōu)網(wǎng)絡訪問路徑,調(diào)用GetBestInterface函數(shù),獲取所述最優(yōu)網(wǎng)絡訪問路徑對應的網(wǎng)絡接口信息。
19.根據(jù)權(quán)利要求15至18任一項所述的裝置,其特征在于,所述網(wǎng)絡訪問請求模塊包括:網(wǎng)絡連通檢測請求單元以及網(wǎng)絡連通檢測單元,其中, 網(wǎng)絡連通檢測請求單元,用于依據(jù)所述網(wǎng)絡訪問路徑,向預先設置的目的網(wǎng)絡節(jié)點發(fā)送網(wǎng)絡連通檢測請求; 網(wǎng)絡連通檢測單元,用于在預先設置的時間內(nèi)接收到目的網(wǎng)絡節(jié)點返回的網(wǎng)絡連通檢測請求響應,進行解析,獲取目的網(wǎng)絡節(jié)點對應的頁面或域名服務器解析結(jié)果。
20.根據(jù)權(quán)利要求19所述的裝置,其特征在于, 所述網(wǎng)絡連通檢測請求為域名服務器解析請求,所述網(wǎng)絡連通信息為域名服務器解析結(jié)果息; 所述網(wǎng)絡連通檢測請求為超文本傳輸協(xié)議請求,所述網(wǎng)絡連通信息為目的網(wǎng)絡節(jié)點對應的頁面信息。
21.根據(jù)權(quán)利要求19所述的裝置,其特征在于,所述網(wǎng)絡連通檢測單元進一步用于在預先設置的時間內(nèi)沒有接收到網(wǎng)絡連通檢測請求響應,或者,解析獲取的不是目的網(wǎng)絡節(jié)點對應的頁面,或者,解析獲取的不是域名服務器解析結(jié)果,確定當前網(wǎng)絡訪問路徑處于網(wǎng)絡非連接狀態(tài),讀取排序的下一網(wǎng)絡訪問路徑,輸出網(wǎng)絡連通檢測請求單元。
22.根據(jù)權(quán)利要求15至18任一項所述的裝置,其特征在于,所述路由表項信息獲取模塊包括:報文發(fā)送單元、網(wǎng)絡拓撲信息獲取單元以及路由表項信息獲取單元,其中, 報文發(fā)送單元,用于向鄰居網(wǎng)絡節(jié)點發(fā)送hello報文,攜帶自身的鏈路狀態(tài)通告信息,并請求獲取鄰居網(wǎng)絡節(jié)點的LSA信息; 網(wǎng)絡拓撲信息獲取單元,用于根據(jù)接收的hello報文,解析獲取LSA信息作為網(wǎng)絡拓撲信息; 路由表項信息獲取單元,用于根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息。
23.根據(jù)權(quán)利要求15至18任一項所述的裝置,其特征在于,所述路由表項信息獲取模塊進一步包括: 識別單元,用于從接收的hello報文中,識別出動態(tài)路由協(xié)議的協(xié)議報文,并將識別出的動態(tài)路由協(xié)議的協(xié)議報文輸出至網(wǎng)絡拓撲信息獲取單元。
24.根據(jù)權(quán)利要求15至18任一項所述的裝置,其特征在于,所述路由表項信息獲取模塊包括:路由通路檢測消息編輯單元、發(fā)送單元、網(wǎng)絡拓撲信息獲取單元以及路由表項信息獲取單元,其中, 路由通路檢測消息編輯單元,用于將路由通路檢測消息中用于指示目的網(wǎng)絡節(jié)點的目標標識符參數(shù)值設置為等于源網(wǎng)絡節(jié)點的源標識符; 發(fā)送單元,用于向目的網(wǎng)絡節(jié)點發(fā)送路由通路檢測消息; 網(wǎng)絡拓撲信息獲取單元,如果在預設時間內(nèi)接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于可達狀態(tài),將可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息; 如果在預設時間內(nèi)沒有接收到所述目的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)的路由通路檢測消息,確定源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的路徑處于不可達狀態(tài),將不可達狀態(tài)作為源網(wǎng)絡節(jié)點至目的網(wǎng)絡節(jié)點的網(wǎng)絡拓撲信息; 路由表項信息獲取單元,用于根據(jù)獲取的網(wǎng)絡拓撲信息,利用路由算法計算出所述協(xié)議報文中目的網(wǎng)絡節(jié)點的路由表項信息。
【文檔編號】H04L12/741GK104243320SQ201410458458
【公開日】2014年12月24日 申請日期:2014年9月10日 優(yōu)先權(quán)日:2014年9月10日
【發(fā)明者】李偉健, 徐建新 申請人:珠海市君天電子科技有限公司