專利名稱:航空電信網(wǎng)的動態(tài)負載分配方法
技術領域:
本發(fā)明涉及一種基于航空電信網(wǎng)(Aeronautical TelecommunicationsNetwork,簡稱ATN)路由器與路由器之間合理利用相等最小代價的多條路徑的動態(tài)負載分配方法,屬于網(wǎng)絡通信領域。
背景技術:
在鏈路狀態(tài)路由協(xié)議中,存在相等最小代價路徑的問題。路由區(qū)域中的每個結(jié)點都周期性地泛洪鏈路狀態(tài)信息,使得區(qū)域中的每一個結(jié)點都維持著一個相同的鏈路狀態(tài)數(shù)據(jù)庫。鏈路狀態(tài)路由協(xié)議根據(jù)鏈路狀態(tài)數(shù)據(jù)庫,采用迪杰斯特拉算法(Dijkstra’s algorithm,用于解決有向圖中最短路徑問題),計算最短路徑。但在實際應用中,對于到達同一個目的地址的數(shù)據(jù)包可能計算出多條最短路徑。當沒有算法控制時,多條最短路徑被認為是一種冗余,數(shù)據(jù)包被任意地從某個路徑轉(zhuǎn)發(fā)。然而隨著網(wǎng)絡負載的增加,合理地利用相等最小代價的多條路徑已變得非常重要。
目前解決路由域中存在多個最短路徑時選路的問題時通常采用的是等代價多路徑(Equal Cost Multi-path,簡稱ECMP)技術和優(yōu)化的多路徑(Optimized Multi-path,簡稱OMP)技術。
1、ECMP技術ECMP是一種在出現(xiàn)多路徑的結(jié)點上均勻分配流量的算法。ECMP算法不根據(jù)鏈路負載來進行流量分配,即不考慮路徑下游的情況,只是簡單地把數(shù)據(jù)包均勻分配給各路徑。目前,實現(xiàn)ECMP的方法有三種(1)數(shù)據(jù)包循環(huán)轉(zhuǎn)發(fā)(Round Robin)數(shù)據(jù)包循環(huán)轉(zhuǎn)發(fā)(Round Robin)算法的優(yōu)點是實現(xiàn)了流量在各個等價最短路徑的均勻分配,但由于輪換地從每個路徑轉(zhuǎn)發(fā),不能保證數(shù)據(jù)包原有的順序。對于在傳輸層采用面向連接的協(xié)議來說,各條等價路徑的延遲差較長時,傳輸層的數(shù)據(jù)包順序被打亂,將影響協(xié)議的性能。但當各條等價鏈路的時延相近,或路由協(xié)議的鏈路代價尺度采用時延尺度時,Round Robin算法仍舊可以實現(xiàn)流量的均勻分配。在航空電信網(wǎng)ATN中,當代價尺度采用時延尺度時,或各個等價路徑的時延相近時,包循環(huán)轉(zhuǎn)發(fā)(Round Robin)算法可以很好地實現(xiàn)流量分配。
(2)在轉(zhuǎn)發(fā)目錄表中,根據(jù)目的地址前綴選擇下一跳根據(jù)目的地址前綴選擇下一跳方法,這種方法進行的流量分配很粗略。由于地址前綴很短,在一個有多個路徑的結(jié)點處,容易使大量數(shù)據(jù)分組從同一個路徑轉(zhuǎn)發(fā),從而不能達到流量的最佳分配。
(3)基于源地址、目的地址對的哈希(Hash)函數(shù)法轉(zhuǎn)發(fā)該算法將Hash函數(shù)作用于數(shù)據(jù)包的源地址和目的地址,生成一個2個字節(jié)的數(shù)值,根據(jù)該數(shù)值確定轉(zhuǎn)發(fā)路徑。這樣,對于有相同源地址、目的地址的數(shù)據(jù)包來說,在有多個最短徑的結(jié)點處可保證從同一條路徑轉(zhuǎn)發(fā),避免了接收端的數(shù)據(jù)包失序問題。基于源地址、目的地址對的Hash函數(shù)循環(huán)冗余校驗碼(Cyclic Redundancy Check,簡稱CRC)轉(zhuǎn)發(fā)的具體方法如下首先,在存在等價多路徑的結(jié)點上,Hash函數(shù)算法將兩個字節(jié)的CRC的取值范圍0~65535均勻分配給每一個路徑,使得每個路徑有一個相等的取值空間。當一個分組到達時,查找轉(zhuǎn)發(fā)路由表,如果有多于一個下一跳轉(zhuǎn)發(fā)地址,基于源地址和目的地址用Hash函數(shù)計算一下CRC校驗值,然后找出CRC值落在哪一個路徑空間,該分組就從哪個路徑轉(zhuǎn)發(fā)。
基于源地址、目的地址對的Hash函數(shù)轉(zhuǎn)發(fā)的方法在統(tǒng)計上實現(xiàn)各路徑均勻轉(zhuǎn)發(fā),并且考慮到了相同源地址、目的地址數(shù)據(jù)包的順序性,但是,該算法沒有考慮到網(wǎng)絡的實時變化情況,只是實現(xiàn)了均勻流量分配,而不能根據(jù)網(wǎng)絡狀況分配流量,不能實現(xiàn)最佳流量分配。
2、OMP技術當多條等價路徑出現(xiàn)時,在各等價路徑上平均分配數(shù)據(jù)流往往不是最佳的方法。由于它沒有考慮到下游結(jié)點和鏈路負載的動態(tài)變化情況,就可能造成在多條等價路徑結(jié)點的下游一些路徑擁塞時,另一些路徑卻閑置的情況。
OMP技術正是基于這種考慮,在網(wǎng)絡運行中采用了一種動態(tài)地分配數(shù)據(jù)流的方法。該方法可以根據(jù)網(wǎng)絡的動態(tài)流量變化,非均勻地轉(zhuǎn)發(fā)數(shù)據(jù)包。在開放最短路徑優(yōu)先(Open shortest path first,簡稱OSPF)OMP協(xié)議中,通過泛洪鏈路狀態(tài)來通告區(qū)域內(nèi)的鏈路負載情況;通過泛洪路徑狀態(tài)來通告區(qū)域間的鏈路負載狀況。
但是,OMP算法的缺點是每隔15秒一次的泛洪對網(wǎng)絡流量的估測并不精確,對于15秒之內(nèi)的突發(fā)業(yè)務流,OMP技術顯得無能為力,此外,泛洪加重了網(wǎng)絡的負擔,額外地占用了網(wǎng)絡資源。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于ATN路由器與路由器之間合理地利用相等最小代價的多條路徑的動態(tài)負載分配方法,以解決路由域中存在多個等價最短路徑時選路的問題,克服現(xiàn)有技術不能根據(jù)鏈路負載來進行流量分配或不能實時根據(jù)下游結(jié)點和鏈路負載的動態(tài)變化情況分配網(wǎng)絡流量的缺點,從而合理地利用相等最小代價的多條路徑,有效地調(diào)節(jié)網(wǎng)絡流量,更好地利用網(wǎng)絡資源。
為實現(xiàn)上述目的,本發(fā)明的下述實施例包括在一個路由區(qū)域中包括一個或一個以上具有多條等效最短路徑的上游結(jié)點和位于所述上游結(jié)點下游路徑中一個或一個以上具有一條或多條等效最短路徑的下游結(jié)點;所述上游結(jié)點收到所述下游結(jié)點發(fā)來的擁塞發(fā)生報告后,將此后收到的、具有同一目的地的無連接網(wǎng)絡協(xié)議(Connectionless Network Protocol,簡稱CLNP)數(shù)據(jù)包更多地由所述上游結(jié)點其他等效最短路徑發(fā)送。
本發(fā)明實施例所述的航空電信網(wǎng)的動態(tài)負載分配方法還包括所述上游結(jié)點在所述下游結(jié)點的擁塞狀態(tài)解除后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點擁塞前的等效最短路徑發(fā)送。
所述下游結(jié)點處于偽擁塞狀態(tài)時向其上游結(jié)點報告擁塞發(fā)生。
所述下游結(jié)點偽擁塞狀態(tài)解除后,則所述下游結(jié)點向其上游結(jié)點報告擁塞解除。
若所述上游結(jié)點為此路由區(qū)域中第一個上游結(jié)點,則所述第一個上游結(jié)點對經(jīng)過的所述CLNP包的選項部分進行擴展,添加結(jié)點參數(shù),并將擴展后的CLNP包繼續(xù)轉(zhuǎn)發(fā)給下游結(jié)點;所述結(jié)點參數(shù)至少包括所述上游結(jié)點的地址以及經(jīng)過的所述上游結(jié)點一個下游路徑的編號值。
若所述上游結(jié)點不是此路由區(qū)域中第一個上游結(jié)點,則CLNP包經(jīng)過所述上游結(jié)點時刷新包中的結(jié)點參數(shù)選項為當前的上游結(jié)點地址和經(jīng)過的當前上游結(jié)點的下游路徑的編號值。
上述方案中,上游結(jié)點收到所述下游結(jié)點發(fā)來的擁塞發(fā)生報告后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點其他等效最短路徑發(fā)送前還包括所述下游結(jié)點所在的路徑擁塞時,根據(jù)收到的CLNP包的結(jié)點參數(shù),生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點擁塞前的等效最短路徑發(fā)送前包括所述下游結(jié)點根據(jù)收到的CLNP包的結(jié)點參數(shù),生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
其中擁塞匯報數(shù)據(jù)信息用于下游結(jié)點向上游結(jié)點匯報下游狀況;所述擁塞匯報數(shù)據(jù)信息至少包括類型模塊、結(jié)點地址模塊、目的地址模塊及路徑模塊,其中類型為擁塞發(fā)生或擁塞解除,結(jié)點地址模塊為所述下游結(jié)點最鄰近的所述上游結(jié)點地址,即所述CLNP包中結(jié)點參數(shù)的地址,目的地址模塊為所述CLNP包的目的地址,路徑模塊為擁塞發(fā)生或擁塞解除的所述下游結(jié)點所在路徑的編號值,即所述CLNP包中結(jié)點參數(shù)中的路徑編號。
上述方案中,向其上游結(jié)點報告擁塞發(fā)生前包括所述下游結(jié)點根據(jù)收到的CLNP包的結(jié)點參數(shù),在刷新所述結(jié)點參數(shù)前生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
下游結(jié)點向其上游結(jié)點發(fā)送擁塞解除報告包括所述下游結(jié)點根據(jù)收到的CLNP包的結(jié)點參數(shù),在刷新所述結(jié)點參數(shù)前生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
其中擁塞匯報數(shù)據(jù)信息至少包括類型模塊、結(jié)點地址模塊、目的地址模塊及路徑模塊,其中類型為擁塞發(fā)生或擁塞解除,地址模塊為收到的所述CLNP包刷新前的結(jié)點參數(shù)中的結(jié)點地址,即所述上游結(jié)點的地址,目的地址模塊為所述CLNP包的目的地址,路徑模塊為擁塞發(fā)生或擁塞解除的所述下游結(jié)點所在路徑的編號值,即所述CLNP包中刷新前的結(jié)點參數(shù)中的路徑編號。
本發(fā)明實施例所述的航空電信網(wǎng)的動態(tài)負載分配方法還包括在所述路由區(qū)域內(nèi),還包括中間結(jié)點,所述中間結(jié)點收到CLNP包時,不添加結(jié)點參數(shù)選項,擁塞控制采用通常的ATN擁塞控制方法;所述中間結(jié)點是指在所述第一個上游結(jié)點之前,不具有多條等價下游路徑的結(jié)點。
所述路由區(qū)域內(nèi)的第一個上游結(jié)點擁塞時,所述第一個上游結(jié)點向其源端系統(tǒng)通告。
若CLNP包在所述路由區(qū)域內(nèi)傳輸時沒有發(fā)生擁塞,則在所述路由區(qū)域的最后一個收到所述CLNP包的結(jié)點處刪除結(jié)點參數(shù)選項。
因此,本發(fā)明的一個實施例在網(wǎng)絡中有多條等價路徑出現(xiàn)時,充分考慮到下游結(jié)點和鏈路負載的動態(tài)變化情況,合理地利用相等最小代價的多條路徑,調(diào)節(jié)了網(wǎng)絡流量,避免了擁塞,有效地提高了網(wǎng)絡資源利用率。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
圖1為本發(fā)明具體實施例對于某一個數(shù)據(jù)流的通路拓撲圖;圖2為本發(fā)明具體實施例一對于結(jié)點2的擁塞處理方法流程圖;圖3為本發(fā)明具體實施例一對于結(jié)點5的擁塞處理方法流程圖;圖4為本發(fā)明具體實施例一基于循環(huán)轉(zhuǎn)發(fā)算法的擁塞處理方法示意圖;圖5為本發(fā)明具體實施例二基于Hash函數(shù)的ECMP的擁塞處理方法示意圖;圖6為本發(fā)明具體實施例仿真用流量拓撲圖;圖7為不采用本發(fā)明具體實施例一的方法沒有擁塞時隊列長度仿真圖;圖8為采用本發(fā)明具體實施例一的方法沒有擁塞時隊列長度仿真圖;圖9為不采用本發(fā)明具體實施例一的擁塞方法時隊列長度仿真圖;圖10為采用本發(fā)明具體實施例一的方法擁塞時隊列長度仿真圖;圖11為不采用本發(fā)明具體實施例二的方法沒有擁塞時隊列長度仿真圖;圖12為采用本發(fā)明具體實施例二的方法沒有擁塞時隊列長度仿真圖;圖13為不采用本發(fā)明具體實施例二的方法擁塞時隊列長度仿真圖;圖14為采用本發(fā)明具體實施例二的方法擁塞時隊列長度仿真圖。
具體實施例方式
針對網(wǎng)絡中對一個CLNP包的目的地址具有多條等價最短路徑的情況,本發(fā)明給出了兩個具體的實施例,下面分別描述。
具體實施例一具體實施例一將Round Robin ECMP與本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法相結(jié)合,如圖1所示為一個路由區(qū)域內(nèi)對于某一個數(shù)據(jù)流的通路拓撲圖,本發(fā)明針對圖1的通路拓撲圖的具體實施例的技術方案為在一個路由區(qū)域中,包括一個或一個以上具有多條等效最短路徑的上游結(jié)點和位于所述上游結(jié)點下游路徑中一個或一個以上具有一條或多條等效最短路徑的下游結(jié)點。圖1中結(jié)點2和結(jié)點5即為所述的上游結(jié)點,結(jié)點3、結(jié)點4、結(jié)點5和結(jié)點8為所述上游結(jié)點2的所述下游結(jié)點,結(jié)點6和結(jié)點7為所述上游結(jié)點5的所述下游結(jié)點,結(jié)點1是中間結(jié)點,所謂中間結(jié)點是指在所述第一個上游結(jié)點之前,不具有多條等價下游路徑的結(jié)點,中間結(jié)點不是本發(fā)明實施例定義的上游結(jié)點或下游結(jié)點。
在圖1所示的路由區(qū)域內(nèi),中間結(jié)點1收到CLNP包時,還沒有經(jīng)過所述上游結(jié)點2或結(jié)點5,所以在結(jié)點1處不添加結(jié)點參數(shù)選項,擁塞控制采用通常的ATN擁塞控制方法。
CLNP包在經(jīng)過第一個上游結(jié)點即圖1中結(jié)點2時,對所述CLNP包的選項部分進行擴展,添加結(jié)點參數(shù),擴展后的CLNP包繼續(xù)向下游轉(zhuǎn)發(fā);所述結(jié)點參數(shù)至少包括結(jié)點地址和結(jié)點下游路徑編號。結(jié)點地址為結(jié)點2的地址;下游路徑編號是一個0~255之間的正整數(shù),用于在所述上游結(jié)點處有多個等價最短路徑時記錄該CLNP包所選擇的路徑,這里即為所述CLNP包經(jīng)過的所述結(jié)點2的下游路徑的編號值。上述結(jié)點地址和下游路徑編號統(tǒng)稱為參數(shù)值模塊。
上述結(jié)點參數(shù)除參數(shù)值模塊外還包括參數(shù)代碼、參數(shù)長度等內(nèi)容。所述參數(shù)代碼用于指定結(jié)點參數(shù)的類型,這里設為二進制數(shù)“11111111”,所述參數(shù)長度用于指示參數(shù)值部分的長度,這里參數(shù)長度為3,指示參數(shù)值部分有3個字節(jié)。
以后當又遇到一個所述上游結(jié)點即圖1中結(jié)點5時,刷新包中的結(jié)點參數(shù)選項為當前的結(jié)點5的地址和經(jīng)過的當前結(jié)點5的下游路徑的編號值。這樣,CLNP包中的結(jié)點參數(shù)始終保持為經(jīng)過的最鄰近的一個所述上游結(jié)點的信息。
若CLNP包在圖1的路由區(qū)域內(nèi)傳輸時沒有發(fā)生擁塞,則在所述路由區(qū)域的最后一個收到所述CLNP包的結(jié)點處刪除結(jié)點參數(shù)選項。
若CLNP包在圖1的路由區(qū)域內(nèi)傳輸時發(fā)生了擁塞,根據(jù)擁塞發(fā)生的位置不同,有不同的處理方法。由于本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法針對路由區(qū)域中存在多條等價最短路徑的情況,因此只分析圖1中與具有多條等價最短路徑的結(jié)點2和結(jié)點5有關的擁塞處理方法,下面分別詳細說明。
如圖2所示,與結(jié)點2有關的擁塞處理步驟為步驟11上游結(jié)點2收到其一個下游路徑中的結(jié)點3發(fā)來的擁塞發(fā)生報告后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包更多地由結(jié)點2的其他等效最短路徑2-4-8發(fā)送;步驟13上游結(jié)點2在下游結(jié)點3的擁塞狀態(tài)解除后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由上游結(jié)點2的等效最短路徑發(fā)送2-3-5或2-4-8正常發(fā)送;步驟15結(jié)點2處于偽擁塞狀態(tài)且又收到去往下游路徑的CLNP數(shù)據(jù)包時,由于結(jié)點2是所述路由區(qū)域中第一個具有多條等價最短下游路徑的結(jié)點,故結(jié)點2采用隨機早期檢測(Random Early Detecting,簡稱RED)算法或其它擁塞控制算法,向源端端系統(tǒng)通告。
結(jié)點2處于偽擁塞狀態(tài)是指雖然結(jié)點2沒有擁塞發(fā)生,但結(jié)點2的所有下游等價路徑即路徑2-3-5與路徑2-4-8中都有結(jié)點向結(jié)點2報告擁塞發(fā)生。
其中步驟13前包括步驟12結(jié)點2判斷結(jié)點3的擁塞是否解除,是則執(zhí)行步驟13,否則執(zhí)行步驟14;步驟14在步驟15前,具體為步驟14判斷結(jié)點2是否處于偽擁塞狀態(tài),是則執(zhí)行步驟15,否則繼續(xù)執(zhí)行步驟11。
上述與結(jié)點2有關的處理方法中,步驟11前包括步驟111結(jié)點3發(fā)生擁塞時,根據(jù)收到的CLNP包的結(jié)點參數(shù),生成一擁塞匯報數(shù)據(jù)信息;步驟112結(jié)點3將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給結(jié)點2。
步驟12前包括步驟121結(jié)點3根據(jù)收到的CLNP包的結(jié)點參數(shù),生成一擁塞匯報數(shù)據(jù)信息;步驟122結(jié)點3將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給結(jié)點2。
其中,所述擁塞匯報數(shù)據(jù)信息用于所述下游結(jié)點向所述上游結(jié)點匯報下游狀況,所述擁塞匯報數(shù)據(jù)信息至少包括類型模塊、結(jié)點地址模塊、目的地址模塊及路徑模塊,其中類型為擁塞發(fā)生或擁塞解除,結(jié)點地址模塊為所述下游結(jié)點最鄰近的所述上游結(jié)點地址,即所述CLNP包中結(jié)點參數(shù)的地址,目的地址模塊為所述CLNP包的目的地址,路徑模塊為擁塞發(fā)生或擁塞解除的所述下游結(jié)點所在路徑的編號值,即所述CLNP包中結(jié)點參數(shù)中的路徑編號,上述幾個模塊分別位于所述擁塞匯報數(shù)據(jù)信息的三個部分,即固定部分、地址部分和選項部分中,下面分別詳細介紹。
擁塞匯報數(shù)據(jù)信息的固定部分采取與CLNP包相同的報文格式,包括協(xié)議標識、長度指示、版本號、生存時間、類型、數(shù)據(jù)包長、校驗和等字段,其中協(xié)議標識為二進制“10000001”,特指此為一擁塞匯報數(shù)據(jù)信息,類型即上述類型模塊,其為二進制“00000”時用于向上游結(jié)點報告擁塞解除,為“00001”時用于向上游結(jié)點報告擁塞發(fā)生;地址部分包括所述上游結(jié)點地址和CLNP包目的地址,均由20字節(jié)組成,上游結(jié)點地址即上述結(jié)點地址模塊,其為所述下游結(jié)點最鄰近的所述上游結(jié)點地址,獲得方法是將本地擁塞結(jié)點處的地址替換成最鄰近的所述上游結(jié)點的地址,上游最鄰近結(jié)點地址可以從上游發(fā)來的CLNP包的結(jié)點參數(shù)中獲得;CLNP包目的地址即上述目的地址模塊,其為上游結(jié)點發(fā)來的所述下游結(jié)點收到的CLNP包的目的地址;選項部分為結(jié)點參數(shù)模塊,其從所述下游結(jié)點收到的CLNP包中的結(jié)點參數(shù)得到,參數(shù)值部分包括上述路徑模塊,其為CLNP包中結(jié)點參數(shù)的參數(shù)值模塊中下游路徑的編號值,即CLNP包所經(jīng)過的所述下游結(jié)點所在路徑的編號值,結(jié)點參數(shù)模塊還包括參數(shù)代碼和參數(shù)長度信息,參數(shù)代碼與CLNP包中的結(jié)點參數(shù)代碼相同為二進制“11111111”,參數(shù)長度為二進制“00000001”,指示參數(shù)值部分長度為1字節(jié)。
步驟111-112中,擁塞匯報數(shù)據(jù)信息的類型為擁塞發(fā)生,步驟121-122中,若結(jié)點3的擁塞解除,則擁塞匯報數(shù)據(jù)信息的類型為擁塞解除,若結(jié)點3的擁塞仍然沒有解除,則擁塞匯報數(shù)據(jù)信息的類型仍為擁塞發(fā)生。
如圖3所示,與結(jié)點5有關的處理流程為步驟21結(jié)點5收到其一個下游路徑中的結(jié)點6發(fā)來的擁塞發(fā)生報告后,將以后收到的同目的地的CLNP包更多地從所述結(jié)點5的其它等價路徑即路徑5-7發(fā)送;步驟23結(jié)點5在下游結(jié)點6的擁塞狀態(tài)解除后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由結(jié)點5的等效最短路徑5-6或5-7正常發(fā)送;步驟25結(jié)點5處于偽擁塞狀態(tài)時向其上游結(jié)點2發(fā)送擁塞發(fā)生報告;經(jīng)過步驟25后,結(jié)點2收到結(jié)點5的擁塞發(fā)生報告,將以后應發(fā)往結(jié)點5所在路徑的數(shù)據(jù)包更多地從結(jié)點2的其它下游路徑即2-4-8發(fā)送,這樣經(jīng)過路徑2-5-8轉(zhuǎn)發(fā)的數(shù)據(jù)包減少,結(jié)點5的擁塞情況得到緩解。此時若結(jié)點5仍然收到所有下游路徑的擁塞發(fā)生報告,則偽擁塞狀態(tài)沒有解除,結(jié)點5繼續(xù)向其上游結(jié)點2發(fā)送擁塞發(fā)生報告;否則若結(jié)點5收到其中一個下游路徑的擁塞解除報告,則所述結(jié)點5的偽擁塞狀態(tài)解除,執(zhí)行下述步驟27;步驟27結(jié)點5偽擁塞狀態(tài)解除后,向其上游結(jié)點2報告擁塞解除。
其中,步驟23前還包括步驟22結(jié)點5根據(jù)收到的擁塞報告判斷結(jié)點6的擁塞是否解除,是則執(zhí)行步驟23,否則執(zhí)行步驟24。
其中步驟24在步驟25前,具體為步驟24判斷結(jié)點5是否處于偽擁塞狀態(tài),是則執(zhí)行步驟25,否則執(zhí)行步驟21。
步驟27前還包括
步驟26結(jié)點5根據(jù)收到的下游路徑的擁塞報告判斷偽擁塞狀態(tài)是否解除,是則執(zhí)行步驟27,否則執(zhí)行步驟25。
上述與結(jié)點5有關的處理方法中,步驟21前包括與步驟11前相同的步驟,步驟22前包含與步驟12前相同的步驟,這里不再贅述。
步驟25具體為結(jié)點5根據(jù)收到的CLNP包中的結(jié)點參數(shù)選項,在刷新該CLNP包的結(jié)點參數(shù)前生成一擁塞匯報數(shù)據(jù)信息;結(jié)點5將所述擁塞匯報數(shù)據(jù)信息向上游結(jié)點2發(fā)送。
步驟27具體為結(jié)點5根據(jù)收到的CLNP包中的結(jié)點參數(shù)選項,在刷新該CLNP包的結(jié)點參數(shù)前生成一擁塞匯報數(shù)據(jù)信息;所述結(jié)點5將所述擁塞匯報數(shù)據(jù)信息向上游結(jié)點2發(fā)送。
其中所述擁塞匯報數(shù)據(jù)信息與前面描述的相同,但需注意的是由于結(jié)點5是一具有多條等效下游路徑的結(jié)點,因此CLNP包在經(jīng)過所述結(jié)點5時會刷新所述CLNP包的結(jié)點參數(shù)為結(jié)點5的信息,所以上述步驟中生成擁塞匯報數(shù)據(jù)信息應在所述CLNP包的結(jié)點參數(shù)被刷新前進行,即結(jié)點參數(shù)中的信息必須是所述結(jié)點5的上游結(jié)點2的信息,其中擁塞匯報數(shù)據(jù)信息的類型根據(jù)所述結(jié)點5的狀態(tài)確定,若所述結(jié)點5處于偽擁塞狀態(tài),則類型為擁塞發(fā)生,否則為擁塞解除;地址模塊為所述結(jié)點5的上游結(jié)點2的地址;路徑為所述上游結(jié)點2的下游結(jié)點5所在的路徑編號。
綜上所述可以推出,當結(jié)點2的下游所有等價最短路徑都報告擁塞,且結(jié)點2不是路由區(qū)域中的第一個所述上游結(jié)點,則結(jié)點2繼續(xù)向它的上游結(jié)點報告擁塞發(fā)生,這樣,經(jīng)過層層疊代,一直追溯到該區(qū)域的第一個上游結(jié)點。如果第一個上游結(jié)點也擁塞,則所述第一個上游結(jié)點向源端端系統(tǒng)通告。
上述本發(fā)明的具體實施例一中,結(jié)點2和結(jié)點5的等價最短路徑都是2條,如圖4所示,為進一步說明本發(fā)明的具體實施例一,假設在結(jié)點2或結(jié)點5處去往某一目的地的等價路徑有n條,在下游結(jié)點不發(fā)生擁塞時,采用循環(huán)分配算法,將CLNP包均勻地從每一個路徑發(fā)出。
當結(jié)點2或結(jié)點5的下游路徑,例如路徑1發(fā)生擁塞時,根據(jù)上述設定,步驟11或步驟21具體為所述結(jié)點2或結(jié)點5收到下游路徑1中結(jié)點的擁塞匯報數(shù)據(jù)信息后,為所述路徑1加一個初始為狀態(tài)1和狀態(tài)2兩個狀態(tài)的狀態(tài)循環(huán)轉(zhuǎn)換表;以后來的CLNP包需要從所述路徑1發(fā)送時,如果所述路徑1處在狀態(tài)1,則從所述路徑1發(fā)送數(shù)據(jù)包,并跳到狀態(tài)2;否則不發(fā)送數(shù)據(jù)包,跳到狀態(tài)1,同時從所述結(jié)點2或結(jié)點5的其它等價路徑轉(zhuǎn)發(fā)數(shù)據(jù)包;判斷所述擁塞路徑1的擁塞是否解除,是則去掉狀態(tài)循環(huán)轉(zhuǎn)換表,從路徑1正常發(fā)送數(shù)據(jù);否則若還收到路徑1的擁塞發(fā)生報告,就在所述路徑1的狀態(tài)循環(huán)表中再加一個狀態(tài)3,只在其中一個狀態(tài)從所述路徑1轉(zhuǎn)發(fā)數(shù)據(jù)包,其余狀態(tài)從其他路徑轉(zhuǎn)發(fā)數(shù)據(jù),這樣會有更多應該從所述路徑1轉(zhuǎn)發(fā)的數(shù)據(jù)從其它非擁塞路徑轉(zhuǎn)發(fā);重復上述過程直到擁塞解除正常轉(zhuǎn)發(fā)數(shù)據(jù),或直到所述結(jié)點2或結(jié)點5的每一個下游路徑都報告擁塞發(fā)生,則停止增加狀態(tài)循環(huán)表。
其中,從所述結(jié)點2或結(jié)點5的其它等價路徑轉(zhuǎn)發(fā)數(shù)據(jù)包具體為檢查所述結(jié)點2或結(jié)點5的下一路徑,即路徑2,若所述結(jié)點2或結(jié)點5沒有收到路徑2的擁塞發(fā)生報告,則從所述路徑2轉(zhuǎn)發(fā)CLNP包;否則采用上述同樣的方法處理。
綜上所述可知,若所述上游結(jié)點的多個下游路徑擁塞,則在每一個擁塞路徑處設立狀態(tài)循環(huán)轉(zhuǎn)換表。若所述上游結(jié)點每一個下游路徑的結(jié)點都有多個狀態(tài),達到設定的狀態(tài)極限時,則所述下游結(jié)點向其上游結(jié)點報告擁塞發(fā)生,直到該區(qū)域內(nèi)的第一個結(jié)點。
具體實施例二不同于具體實施例一將基于Round Robin算法的ECMP與本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法相結(jié)合,具體實施例二是將本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法用于基于Hash函數(shù)的ECMP中。
由于在采用鏈路狀態(tài)算法的路由協(xié)議中,Hash函數(shù)ECMP被廣泛應用?;贖ash函數(shù)ECMP,并且利用本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法,也可以達到最佳分配網(wǎng)絡流量的效果。
具體實施例二的其它部分與具體實施例一相同,不同的是當擁塞發(fā)生時采用的轉(zhuǎn)發(fā)策略,下面詳細說明。
采用與具體實施例一相同的方法,圖1中結(jié)點2或結(jié)點5處去往某一目的地的等價路徑有n條,如圖5所示,路由器對收到的CLNP包計算源地址與目的地址的CRC校驗值,由于路由器所收到的CLNP包源地址和目的地址的隨機性,所以所述結(jié)點2或結(jié)點5可以實現(xiàn)將流量均勻地分配給各個等價路徑。
若結(jié)點2或結(jié)點5收到其一個下游路徑,例如路徑1中的結(jié)點發(fā)來的擁塞發(fā)生報告后,具體實施例一中步驟11或步驟21在具體實施例二中為結(jié)點2或結(jié)點5收到下游路徑1的擁塞發(fā)生報告,則將路徑1標記為1,以后再收到CLNP包計算其CRC校驗碼,當CRC校驗碼的數(shù)值落在路徑1轉(zhuǎn)發(fā)的范圍內(nèi)時,按下式計算轉(zhuǎn)發(fā)路徑α[2]=(α[1]*k)mod 65536(1)其中,α[1]=α,α即該CLNP包的CRC校驗值;K=n,即該結(jié)點的等價路徑的個數(shù);將α[1]乘以k后,對模65536取余數(shù),得到α[2]的值,根據(jù)α[2]的值落入的區(qū)間范圍決定轉(zhuǎn)發(fā)路徑,這樣就把下游出現(xiàn)擁塞的路徑1的數(shù)據(jù)包均勻的分在了路徑1、路徑2、直到路徑n上;根據(jù)收到的下游路徑1的擁塞匯報數(shù)據(jù)信息判斷擁塞是否解除,是則去掉路徑標記,正常發(fā)送數(shù)據(jù);否則將路徑1標記為2,按下式計算轉(zhuǎn)發(fā)路徑α[3]=(α[2]*k)mod 65536(2)其中,α[2]從公式(1)計算得到,根據(jù)α[3]的值落入的區(qū)間范圍決定轉(zhuǎn)發(fā)路徑,這樣,將有更多地應該從路徑1轉(zhuǎn)發(fā)的數(shù)據(jù)包從其它路徑轉(zhuǎn)發(fā);重復上述過程,當路徑1的標記為i時,按下式計算轉(zhuǎn)發(fā)路徑
α[i+1]=(α[i]*k)mod 65536,其中i代表擁塞的路徑標記。
可見,某個路徑的標記越多,從該路徑轉(zhuǎn)發(fā)的數(shù)據(jù)包就越少,該路徑的擁塞情況也就得到了緩解。
重復上述過程直到擁塞解除恢復正常數(shù)據(jù)傳輸,或直到所述結(jié)點2或結(jié)點5的所有等價路徑都報告擁塞發(fā)生時,所述結(jié)點停止增加標記,采用與具體實施例一同樣的方法向上游結(jié)點通告路徑狀況。
由上述具體實施例一和二可以看出,本發(fā)明在網(wǎng)絡中有多條等價路徑出現(xiàn)時,充分考慮到下游結(jié)點和鏈路負載的動態(tài)變化情況,合理地利用相等最小代價的多條路徑,調(diào)節(jié)了網(wǎng)絡流量,避免了擁塞,有效地提高了網(wǎng)絡資源利用率。
為了更進一步說明采用本發(fā)明航空電信網(wǎng)的動態(tài)負載分配方法的效果,對上述具體實施例的處理結(jié)果進行了仿真,說明如下。
仿真網(wǎng)絡數(shù)據(jù)流的通路拓撲及鏈路時延如圖6所示。在某一區(qū)域內(nèi),按Dijkstra算法,數(shù)據(jù)流經(jīng)A-R1.....D,有兩個等價鏈路A-R1-R2-D和A-R1-R3-D。
1、仿真沒有導致?lián)砣耐话l(fā)業(yè)務流時,本發(fā)明實施例一對隊列的改善情況。
在結(jié)點A下一跳為R1且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.1的泊松分布,平均到達間隔為10毫秒;在結(jié)點C下一跳為R2且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.0625的泊松分布,平均到達間隔為16毫秒,仿真時間為6秒。
仿真結(jié)果分別如圖7、圖8所示,當不采用本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法時,在6s內(nèi),隊列長度呈上升趨勢;當采用本發(fā)明的動態(tài)負載分配方法時,隊列長度控制在20%以內(nèi),可見在沒有導致?lián)砣耐话l(fā)業(yè)務流時,采用本發(fā)明實施例的技術方案對隊列有相當?shù)母纳啤?br>
2、仿真有導致?lián)砣耐话l(fā)業(yè)務流時,本發(fā)明實施例一對隊列擁塞的避免情況。
在結(jié)點A下一跳為R1且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.1的泊松分布,平均到達間隔為10毫秒;在結(jié)點C下一跳為R2且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.083的泊松分布,平均到達間隔為12毫秒,仿真時間為6秒。
仿真結(jié)果如圖9、圖10所示,當不采用本發(fā)明的動態(tài)流量分配方法,C點流量加大時,在1.8秒開始丟棄數(shù)據(jù)包,隊列占有率100%;而當采用本發(fā)明航空電信網(wǎng)的動態(tài)負載分配方法時,數(shù)據(jù)包不會被丟棄,而隊列占有率不到20%,采用本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法有效地避免了擁塞,提高了網(wǎng)絡資源利用效率。
3、仿真沒有導致?lián)砣耐话l(fā)業(yè)務流時,本發(fā)明實施例二對隊列的改善情況。
在結(jié)點A下一跳為R1且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.1的泊松分布,平均到達間隔為10毫秒;在結(jié)點C下一跳為R2且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.0625的泊松分布,平均到達間隔為16毫秒,仿真時間6秒。
如圖11所示,當不采用本發(fā)明的航空電信網(wǎng)的動態(tài)負載分配方法時,在6s內(nèi),隊列長度呈上升趨勢;當采用航空電信網(wǎng)的動態(tài)負載分配方法時,仿真結(jié)果如圖12所示,隊列長度控制在20%以內(nèi)。
4、仿真有導致?lián)砣耐话l(fā)業(yè)務流時,本發(fā)明實施例二對隊列擁塞的避免情況。
在結(jié)點A下一跳為R1且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.1的泊松分布,平均到達間隔為10毫秒;在結(jié)點C下一跳為R2且經(jīng)過D點的數(shù)據(jù)包隊列的到達為λ=0.083的泊松分布,平均到達間隔為12毫秒,仿真時間為6秒。
如圖13所示,當不采用本發(fā)明的動態(tài)負載分配方法,C點流量加大時,在1.3秒開始丟棄數(shù)據(jù)包,隊列擁塞;而當采用本發(fā)明的動態(tài)負載分配方法時,仿真結(jié)果如圖14所示,數(shù)據(jù)包不會被丟棄,而隊列占有率控制在20%以內(nèi),可見,在路由域內(nèi)存在多條等價路徑時,采用本發(fā)明具體實施例的航空電信網(wǎng)的動態(tài)負載分配方法有效地避免了擁塞,提高了網(wǎng)絡資源利用效率。
最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
權利要求
1.一種航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于包括在一個路由區(qū)域中包括一個或一個以上具有多條等效最短路徑的上游結(jié)點和位于所述上游結(jié)點下游路徑中一個或一個以上具有一條或多條等效最短路徑的下游結(jié)點;所述上游結(jié)點收到所述下游結(jié)點發(fā)來的擁塞發(fā)生報告后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包更多地由所述上游結(jié)點其他等效最短路徑發(fā)送。
2.根據(jù)權利要求1所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,還包括所述上游結(jié)點在所述下游結(jié)點的擁塞狀態(tài)解除后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點擁塞前的等效最短路徑發(fā)送。
3.根據(jù)權利要求2所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,還包括所述下游結(jié)點處于偽擁塞狀態(tài)時向其上游結(jié)點報告擁塞發(fā)生或所述下游結(jié)點偽擁塞狀態(tài)解除后,所述下游結(jié)點向其上游結(jié)點報告擁塞解除。
4.根據(jù)權利要求1所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,若所述上游結(jié)點為此路由區(qū)域中第一個上游結(jié)點,則所述第一個上游結(jié)點對經(jīng)過的所述CLNP包的選項部分進行擴展,添加結(jié)點參數(shù),并將擴展后的CLNP包繼續(xù)轉(zhuǎn)發(fā)給下游結(jié)點;所述結(jié)點參數(shù)至少包括所述上游結(jié)點的地址以及經(jīng)過的所述上游結(jié)點一個下游路徑的編號值;若所述上游結(jié)點不是此路由區(qū)域中第一個上游結(jié)點,則CLNP包經(jīng)過所述上游結(jié)點時刷新包中的結(jié)點參數(shù)選項為當前的上游結(jié)點地址和經(jīng)過的當前上游結(jié)點的下游路徑的編號值。
5.根據(jù)權利要求1或4所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,所述上游結(jié)點收到所述下游結(jié)點發(fā)來的擁塞發(fā)生報告后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點其他等效最短路徑發(fā)送前還包括所述下游結(jié)點所在的路徑擁塞時,根據(jù)收到的CLNP包的結(jié)點參數(shù),生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
6.根據(jù)權利要求2或4所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,所述將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點擁塞前的等效最短路徑發(fā)送前包括所述下游結(jié)點根據(jù)收到的CLNP包的結(jié)點參數(shù),生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
7.根據(jù)權利要求3所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,所述向其上游結(jié)點報告擁塞發(fā)生前或所述下游結(jié)點向其上游結(jié)點報告擁塞解除包括所述下游結(jié)點根據(jù)收到的CLNP包的結(jié)點參數(shù),在刷新所述結(jié)點參數(shù)前生成一擁塞匯報數(shù)據(jù)信息;所述下游結(jié)點將生成的擁塞匯報數(shù)據(jù)信息發(fā)送給所述上游結(jié)點。
8.根據(jù)權利要求1-3任一所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,還包括在所述路由區(qū)域內(nèi),還包括中間結(jié)點,所述中間結(jié)點收到CLNP包時,不添加結(jié)點參數(shù)選項,擁塞控制采用通常的ATN擁塞控制方法。
9.根據(jù)權利要求1-3任一所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,還包括所述路由區(qū)域內(nèi)的第一個上游結(jié)點擁塞時,所述第一個上游結(jié)點向其源端系統(tǒng)通告。
10.根據(jù)權利要求1-3任一所述的航空電信網(wǎng)的動態(tài)負載分配方法,其特征在于,還包括若CLNP包在所述路由區(qū)域內(nèi)傳輸時沒有發(fā)生擁塞,則在所述路由區(qū)域的最后一個收到所述CLNP包的結(jié)點處刪除結(jié)點參數(shù)選項。
全文摘要
本發(fā)明涉及一種航空電信網(wǎng)的動態(tài)負載分配方法,包括在一個路由區(qū)域中包括一個或一個以上具有多條等效最短路徑的上游結(jié)點和位于所述上游結(jié)點下游路徑中一個或一個以上具有一條或多條等效最短路徑的下游結(jié)點;所述上游結(jié)點收到所述下游結(jié)點發(fā)來的擁塞發(fā)生報告后,將此后收到的、具有同一目的地的CLNP數(shù)據(jù)包由所述上游結(jié)點其他等效最短路徑發(fā)送。本發(fā)明在網(wǎng)絡中有多條等價路徑出現(xiàn)時,充分考慮到下游結(jié)點和鏈路負載的動態(tài)變化情況,有效地提高了網(wǎng)絡資源利用率。
文檔編號H04L12/28GK101018203SQ200710062848
公開日2007年8月15日 申請日期2007年1月18日 優(yōu)先權日2007年1月18日
發(fā)明者張軍, 劉鋒, 楊驥 申請人:北京航空航天大學