一種動態選擇出口路徑的方法
2023-06-17 20:19:11
專利名稱:一種動態選擇出口路徑的方法
技術領域:
本發明涉及數據通信領域,具體的說涉及到達某一目的網絡具有多條出口路徑時地路徑選擇方法。
背景技術:
在數據通信網絡中的交換節點——路由器上,一般採用報文逐跳轉發的機制,路由器使用路由表來保存各目的網絡的可達路徑信息。當一個數據報文到達後,路由器根據數據報文的目的地址,查找路由器的路由表,找出對應的路由表項,然後將數據報文發往該路由表項描述的下一跳網絡。如果一條路由項下具有多個網絡出口或者多個下一條地址,即到一個目的網絡存在不止一條可用路徑,這種情況下,路徑的選擇常用以下幾種處理方法
第一種是隨機選擇其中的一條路由,將數據報文進行轉發。這種方法可能導致某條鏈路負載過重,形成擁塞,但另外其它可用鏈路非常空閒,資源浪費。
第二種是按數據報文的負載均衡,在指向目的網絡的路由項下的所有出口或下一跳中,按照一定的順序循環選擇,將數據報文依次發送。這種方法可能將屬於同一條流的數據報文沿多個路徑上發送,在路徑的延遲不一樣時,很可能出現到達目的端亂序的情況。
第三種是按流的負載均衡,在指向目的網絡的路由項下的所有出口或下一跳中,隨即或順序選擇一個,將同一條流(源、目的地址,協議號,源、目的埠相同的五元組報文)的數據始終從此出口發送。這種方法雖然解決了按包負載均衡會產生亂序的問題,但是仍沒有達到按照優化路徑發送的要求,有可能讓一條流始終經過一條延遲較大的路徑。
發明內容
本發明的目的在於克服以上技術的缺點,在多廣域口負載均衡的網絡系統中,提供一種動態選擇最優網絡路徑的方法,使得當數據報文有多條路徑可達目的網絡的時候,能夠準確的選擇延遲最小的最優的路徑。
為實現上述目的,本發明提供一種動態選擇出口路徑的方法,用於多廣域口負載均衡的網絡系統中,包括如下步驟
系統根據待發送報文的目的地址,首先查找路由表,如果對應單一出接口路徑,則將該報文按照路由表中對應接口轉發出去;否則再查找動態出口緩存表,如果動態出口緩存表中有對應表項,則將該報文按照對應表項中的出接口轉發出去,否則在所述緩存表中創建一表項記錄當前目的地址,並探測延遲最小的出接口,將其存入該表項,並設置當前表項的老化時間,在老化時間內,系統按照動態出口緩存表發送所有到同一目的地址的數據報文。
進一步的,以上所述創建表項到達老化時間後開始失效,並在規定時間內等待更新。
進一步的,如果該表項沒有在規定時間內得到更新,則從動態出口緩存表中刪除該表項。
進一步的,以上所說的更新表項是指重新探測到達該表項中目的地址的延遲最小的出接口。
進一步的,以上所述動態出口緩存表至少包括目的地址和出接口兩個欄位。
進一步的說,所述探測延遲最小的出接口包括如下步驟
a.發送探測報文到所有負載均衡出接口;
b.記錄最早收到匹配的回應報文的出接口;
c.確定b中記錄的出接口為延遲最小出接口。
進一步的,以上步驟a所述探測報文是TCP報文或者UDP報文或者ICMP報文。
進一步的,以上步驟a所述探測報文是非TCP或者UDP或者ICMP的IP報文。
進一步的,以上步驟b中所述回應報文是指對探測報文的確認報文。
進一步的,以上步驟b包括系統丟掉從其它出接口收到的回應報文。
本發明的有益效果是,通過第一次對路由表中所有出接口路徑進行延遲探測,記錄返回最快的路徑,在一定時間內將到同一目的地址的數據報文按照探測的最優出接口進行轉發,該方法簡單實用,效率高且結果準確,特別適用於多ISP接入的路由器。
圖1本發明基本流程圖。
圖2是本發明實施方式網絡示意圖。
具體實施例方式
下面結合實施例,詳細描述本發明的技術方案。
某企業使用路由器接入網際網路,為增加帶寬並備份帶寬,同時選擇了兩個ISP作為接入服務供應商。兩個服務供應商提供的接入鏈路分別連接在企業接入路由器的兩個以太接口上,如ISPA的網絡通過路由器以太口f0接入,ISP B的網絡通過路由器以太口f1接入,路由器以太口f2連接企業內部網絡。當企業內部某個應用需要訪問外部位於ISPA網絡中的地址為10.10.10.10的伺服器時,數據報文從接口f2進入路由器,系統首先查找路由表,發現到目的地址10.10.10.10可以通過f0到達,也可以通過f1到達,則在動態出口緩存表中查找含有目的地址10.10.10.10的記錄項,如果沒有找到,則將該訪問連接請求的數據報文作為探測報文;同時發向f0和f1兩個接口。在路由器動態出口緩存表中添加一條記錄項
目的地址10.10.10.10
出接口空白
時間當前時間
並同時記錄探測報文信息源、目的地址、協議號,如果探測報文是UDP報文,還應該記錄源埠和目的埠;如果探測報文是TCP報文,還記錄源埠、目的埠、序列號,這些信息用來判斷回應報文。由於目的地址為10.10.10.10的伺服器位於ISPA的網絡上,所以通過ISPA網絡訪問該伺服器要快得多,當通過f0發送的探測報文的回應報文先到達路由器時,系統查找動態出口緩存表,查找到目的地址為10.10.10.10的記錄項後,將f0接口填入出接口欄位,探測過程完成。以後內部網絡訪問10.10.10.10的所有數據報文均由出接口f0發送。當後續系統從f1接口收到前述探測報文的回應報文的時候,系統檢查動態出口緩存表,發現10.10.10.10已經有出接口,將該回應報文丟棄。
本發明根據動態出口緩存表中每一條記錄的時間項來項設定是否達到老化時間,一般可以設定老化時間為30分鐘,老化時間從記錄創建時開始計時。當動態出口緩存表中目的地址為10.10.10.10的記錄到達老化時間後,出接口失效,並啟動一定時器。在規定的時間內,如果內網沒有發出任何到達10.10.10.10報文,該記錄會徹底刪除;通過定時刪除機制,可以避免路由器動態出口緩存表中出現過多的無用記錄,導致內存的耗費。如果在定時器超時前,內網又發出訪問10.10.10.10的數據報文,由於出接口已經失效,會再次觸發探測機制,並且將該訪問報文作為探測報文,再次從f0和f1發出,最快收到回應報文的接口會作為新的出接口,並重新計算老化時間。利用記錄老化刷新機制,實現了出接口隨網絡環境改變而更新的功能。
在發出探測報文,並等待回應報文過程中,當路由器又從內網收到訪問地址為10.10.10.10伺服器的報文時,判斷如果該報文是TCP探測報文的重傳報文,仍然從多個接口發出該報文;否則,為了避免增加網絡負擔,不再進行報文多接口發送的動作,而是由選路程序,根據本地帶寬、流量等因素選擇一個接口發出,此時即是使用常規的負載均衡技術,直到收到了回應報文,更新出接口,這樣發往目的地10.10.10.10的數據報文就按照動態出口緩存表中的出接口進行轉發。
權利要求
1.一種動態選擇出口路徑的方法,其特徵在於,包括以下步驟系統根據待發送報文的目的地址,首先查找路由表,如果對應單一出接口路徑,則將該報文按照路由表中對應接口轉發出去;否則再查找動態出口緩存表,如果動態出口緩存表中有對應表項,則將該報文按照對應表項中的出接口轉發出去,否則在所述緩存表中創建一表項記錄當前目的地址,並探測延遲最小的出接口,將其存入該表項,並設置當前表項的老化時間,在老化時間內,系統按照動態出口緩存表發送所有到同一目的地址的數據報文。
2.根據權利要求1所述動態選擇出口路徑的方法,其特徵在於所述創建表項到達老化時間後開始失效,並在規定時間內等待更新。
3.根據權利要求2所述動態選擇出口路徑的方法,其特徵在於如果該表項沒有在規定時間內得到更新,則從動態出口緩存表中刪除該表項。
4.根據權利要求2或3所述動態選擇出口路徑的方法,其特徵在於所述更新表項是指重新探測到達該表項中目的地址的延遲最小的出接口。
5.根據權利要求1所述動態選擇出口路徑的方法,其特徵在於所述動態出口緩存表至少包括目的地址和出接口兩個欄位。
6.根據權利要求1所述的動態選擇出口路徑的方法,其特徵在於,所述探測延遲最小的出接口包括如下步驟
a.發送探測報文到所有負載均衡出接口;
b.記錄最早收到匹配的回應報文的出接口;
c.確定b中記錄的出接口為延遲最小出接口。
7.根據權利要求6所述動態選擇出口路徑的方法,其特徵在於所述步驟a中,所述探測報文是TCP報文或者UDP報文或者ICMP報文。
8.根據權利要求6所述動態選擇出口路徑的方法,其特徵在於所述步驟a中,所述探測報文是非TCP或者UDP或者ICMP的IP報文。
9.根據權利要求6所述的動態選擇出口路徑的方法,其特徵在於所述步驟b中,所述回應報文是指對探測報文的確認報文。
10.根據權利要求6所述的動態選擇出口路徑的方法,其特徵在於所述步驟b中,包括以下步驟,系統丟掉從其它出接口收到的回應報文。
全文摘要
一種動態選擇出口路徑的方法,涉及數據通信領域。用於多廣域口負載均衡的網絡系統中,包括如下步驟系統根據待發送報文的目的地址,首先查找路由表,如果對應多個出接口路徑,則再查找動態出口緩存表中,按照動態出口緩存表中對應的表項轉發數據報文,如無對應表項則探測延遲最小的出接口,將其存入動態出口緩存表,並設置當前表項的生存時間,在生存時間失效之前,系統按照動態出口緩存表發送所有到同一目的地址的數據報文。本發明通過第一次對路由表中所有出接口路徑進行延遲探測,在一定時間內將到同一目的地址的數據報文按照探測的最優出接口進行轉發,該方法簡單實用,效率高且結果準確。
文檔編號H04L29/06GK1829197SQ20061002071
公開日2006年9月6日 申請日期2006年4月14日 優先權日2006年4月14日
發明者黃居貴, 徐放, 付盛, 劉奇志, 舒弋, 杜勇 申請人:邁普(四川)通信技術有限公司