專利名稱:層次式交換網絡節點域的一種控制方法
技術領域:
本發明涉及網絡管理和交換控制的方法與系統。
從邏輯上看,層次式交換網絡的骨干網結構是由多個層次結構組成的樹型結構。簡單樹型結構雖然因為兩個節點之間鏈路唯一而簡化了路由,但是一條信道或節點的失效會導致該信道或節點下連的子樹失去連接性,從而造成一批下屬子樹的斷連,而且這種唯一的路徑不能滿足靈活的路由需求。因此,層次式交換網絡的拓撲結構不采用簡單樹型結構,而是對嚴格的樹型結構加以擴展,采用基于邏輯節點域、邏輯鏈路、短接鏈路的擴展結構來避免簡單樹型結構的缺點。
基于邏輯節點域與邏輯鏈路的擴展是指以邏輯節點(或稱節點域)替代樹型結構的節點,以邏輯鏈路替代樹型結構的分支,以邏輯節點和邏輯鏈路為基本元素按樹型結構組織成邏輯上的樹型結構網絡,保持層次樹型結構的特點。在物理實現角度看,每個邏輯節點域中有多個節點,這些節點互聯保證了交換節點容量的可擴展性和路徑選擇的靈活性;而每條邏輯鏈路又包含了多條物理鏈路,從而擴展了邏輯鏈路的帶寬。這種擴展方法既保持了樹型結構的特點,又保證了可靠性和可擴展性。
基于短接的擴展是指在不同的子樹間增加直接鏈路,從而使得子樹間存在第二條有效路徑,因而子樹間的流量不一定需要它們共同的祖先節點轉發。短接鏈路是局部自治的,只有短接鏈路兩端直接關聯的節點域才感知此短接的存在,對其它節點域透明。這種擴展方法主要解決嚴格層次結構的靈活性和效率問題,既保持了拓撲的層次性,又具有靈活的拓撲結構,從而提供最大的聯網靈活性,并且在將現有網狀連接的網絡轉換成層次式交換網絡時能保留已有的任意連接的拓撲結構。
擴展后的層次式交換網絡是以節點域、邏輯鏈路、短接鏈路作為基本元素構造的層次網絡。層次式交換網絡的管理和交換控制過程以節點域為基本單位,獨立于其它節點域,因而節點域是一個自治域Autonomous Domain(AD)。由于節點域本身是一個規模有限、功能相對單一的系統,因此需要高性能、高可靠的管理和控制方法。
目前存在的自治域系統控制方法有RIP(路由信息協議Routing InformationProtocol)、OSPF(開放的最短路徑優先Open Shortest Path First)、PNNI(專用網絡間接口Private Network-Network Interface Specification)、以及MPLS(多協議標記交換Multiprotocol Label Switching)。這些方法和系統面向大規模、松散的自治系統,都有復雜的路由信息交換與路由計算過程。路由器依靠如OSPF或IS-IS(中間系統-中間系統Intermediate System to Intermediate System)的路由協議交換信息,參與當前整個自治系統內的路由、管理與控制操作。由于這些協議復雜且交互范圍大,互操作能力弱,導致故障恢復時間、負載平衡能力、資源利用率不理想如依賴于如RIP、OSPF、IS-IS等內部網關協議的失效檢測和故障信息發布,當自治域較大時,其收斂時間達分鐘級,故障恢復時間長,因此會造成TCP連接的中斷;而自治系統內部的負載均衡主要依賴于基于AS內部粗粒度協議級路由協議的負載均衡功能,如OSPF的等價多路徑功能,這些功能相對較弱;如Z.Wang和J.Crowcroft(Shortest Path Firstwith Emergency Exits,Proceedings of the 1990 ACM SIGCOMM Conference,1990)、D.Sidhu等(Finding Disjoint Paths in Networks,Proceedings of the 1991 ACM SIGCOMMConference,1991)、S.Bahk和M.E.Zarki(Dynamic Multi-path Routing and How itCompares with Other Dynamic Routing Algorithms for High Speed Wide Area Networks,Proceedings of the 1992 ACM SIGCOMM Conference,Vol.22,Oct.1 992)所提出的多路徑路由方案,由于其存儲、計算開銷大,因此大大增加了路由協議的復雜度。
為了提高路由器的轉發速度和提供服務質量保證,人們試圖盡量用交換來代替路由,提出了綜合網絡核心交換和網絡邊緣IP路由二者的優點而產生的IP/MPLS路由/標記交換結構。在IP/MPLS結構下,路由是永遠避不開的,只能做到部分地減少路由表查找次數,并沒有從根本上解決問題第一,沒有消除路由表復雜的生成過程、龐大的路由表、及對路由表費時的查詢工作;第二,不能對各個獨立的、時間上隨機到達的IP包是否屬于同一個流進行有效的認定;第三,當流的數量很大時,識別流的計算開銷以及保存流狀態的存儲開銷都很大;第四,由于難以預測一個流的長度,因此對于一個短流,可能剛為其建立標記交換路徑它就馬上就結束了,其效果比路由還差;第五,采用標記交換提高了復雜度,例如標記的生成、分配、管理等,使得核心網內部越做越復雜,增加了Internet核心的復雜性。
綜上所述,已有的協議功能復雜、效率不高,不能滿足節點域管理與控制的需求。發明目的由于層次式交換網絡是為了建立大規模的核心骨干網絡,而節點域是其管理與控制的基本單位,因此節點域的設計目標是提高可靠性和性能、增加節點域吞吐量、減少延遲和內部擁塞、實現節點域負載平衡和故障恢復、以及減少內部控制和管理的復雜度。這些設計目標是通過節點域控制方法的設計來實現的,因此評價節點域控制方法的標準包括可擴展性、容錯能力、負載均衡能力。本發明所設計的節點域交換控制方法要解決的問題包括(1)控制和管理一個邏輯節點域內的各個交換機,使其對外像一個交換機一樣,對內則有效、合理地發揮每個物理交換機的作用;(2)控制和管理一條邏輯鏈路內的各外部輸出鏈路,使其對外像一條鏈路一樣,對內均衡地在各不同速率的外部輸出鏈路上分擔通信量。
發明的技術方案本發明所采用的技術方案是將節點域控制方法分為兩個部分,即節點域管理方法和節點域交換控制方法。節點域管理方法通過實時檢測交換機和鏈路的狀態得到節點域內部各種配置表;節點域交換控制方法根據內部配置表控制數據包在節點域的轉發。
節點域是介于松散的自治系統(Autonomous System,即AS)與緊密集中的單一系統之間的一種半自治、半集中系統。當前Internet是一種自治系統,采用松散的非集中控制方式;而采用集中控制的單一系統追求單系統性能,存在可擴展性和靈活性問題。節點域內部拓撲采用密集互聯方式,內部交換能力相對于外部鏈路帶寬足夠大。由于節點域的功能單一、位置集中、規模適當,因此本方法在節點域內部節點間采用輕量級高效率的控制方法,將內部節點整合成一個虛擬的單一映象系統,并且提供更有效的資源共享、負載均衡、容錯能力,提高節點域的整體性能。
1.本發明使用的基本術語(1)層次式交換(Hierarchical Switching)網絡的拓撲與地址采用層次結構且嚴格匹配,數據包轉發依賴目標地址的相應層次實現數據包的交換。
(2)層次式交換網絡(Hierarchically Switched Network,即HSNET)指符合層次式交換的網絡,在該網絡中使用層次式交換。
(3)節點域也叫邏輯節點或虛擬節點,是HSNET基本邏輯元素之一,指由一組互相連接的交換機和其他功能的服務器(如策略服務器、帶寬代理服務器、各類管理信息庫等)所組成的自治域。
(4)節點節點域內部的交換機和其他功能服務器,統稱為節點。
(5)根域處于層次式交換網絡頂層的節點域,根域可以與其他HSNET網絡或非HSNET網絡進行互聯。
(6)父域處于某節點域直接上層的節點域。
(7)子域處于某節點域直接下層的節點域。
(8)兄弟域某節點域直接下層的所有節點域互稱兄弟域。
(9)鏈路在數據鏈路層實現節點間通信的媒介或設施,如PPP鏈路、以太網、X.25、幀中繼、ATM網、或高層隧道等。
(10)外部鏈路本節點域與其他節點域相連的鏈路。
(11)內部鏈路連接本節點域內部節點的鏈路。
(12)邏輯鏈路也稱虛擬鏈路,是HSNET基本邏輯元素之一。一條邏輯鏈路指本節點域連接其他某節點域的所有外部鏈路的集合。一個節點域的邏輯鏈路包括一個指向父節點域的邏輯鏈路、若干個指向子節點域的邏輯鏈路、以及若干個短接邏輯鏈路。
(13)端口端口是節點用來與鏈路連接的部件。在節點域中,端口由節點ID和端口在該節點的標號標識。端口一般包括輸入、輸出兩部分。在節點域內,依據所連接的鏈路不同分為外部端口和內部端口。
(14)外部端口與外部鏈路相連的端口稱外部端口。一個外部端口可以分為輸入外部端口和輸出外部端口兩部分。
(15)內部端口與內部鏈路相連的端口稱內部端口。
(16)邏輯端口與邏輯鏈路一一對應的端口,是邏輯鏈路所包含的外部鏈路在本節點域的外部端口集合。
(17)鄰居連接到同一鏈路的節點互稱鄰居。
(18)邊界節點與其他網絡(HSNET網絡或非HSNET網絡)相連的節點。
(19)邊界端口與其他網絡(HSNET網絡或非HSNET網絡)相連的端口。
2.節點域的結構從邏輯上看,節點域是層次式交換網絡樹型結構的一個節點,邏輯鏈路是層次式交換網絡樹型結構的一條邊,而短接鏈路則在樹型結構任意兩個節點間建立局部的快速通道;從物理實現角度看,每個節點域內部多個交換機互聯保證了節點域的容量可擴展性以及可靠性,每條邏輯鏈路包含多條物理鏈路擴展了邏輯鏈路的帶寬和可靠性,短接鏈路將兩個節點域兩端直接關聯以便提高網絡的效率和路徑選擇的靈活性。以節點域、邏輯鏈路、短接鏈路為基本元素,按樹型結構組織成邏輯上的層次式網絡,這種層次式交換網絡保持層次結構特點,同時提高了網絡的可擴展性、可靠性和靈活性。
圖1是節點域結構示意圖,(1)是層次式交換網絡的一個節點域,(2)是邏輯鏈路,(3)是短接邏輯鏈路,(4)是服務器,(5)是交換機。節點域(1)是樹型結構上的一個交換節點,其功能如同一個交換機。連接兩個相鄰節點域間的外部鏈路集合抽象為邏輯鏈路(2),每個邏輯鏈路由多條外部鏈路組成。對于某一節點域而言,有一上行邏輯鏈路和一組下行邏輯鏈路上行邏輯鏈路連接父節點域;下行邏輯鏈路有多條,連接多個子節點域。
節點域為其關聯的邏輯鏈路分配邏輯鏈路號。邏輯鏈路號用兩個字節的無符號整數表示,范圍為0-65535。邏輯端口號與邏輯鏈路號一致。同時每個節點域具有層次式交換網絡地址的前綴和交換字段。各節點域獨立決定自己交換字段的長度,并且指派交換字段的值作為子域及指向該子域下行邏輯鏈路的邏輯號。節點域地址前綴是其父域地址前綴與父域為其分配的邏輯端口號的組合,長度為父域地址前綴長度及其父域交換字段長度之和。
3.節點域管理方法由于層次式交換網絡的拓撲結構特征,導致任意兩個節點域點間的邏輯交換路徑是確定的。節點域管理方法利用節點域規模小、功能單一的特點,設計高效、快速、簡單的輕量級管理方法,實現快速自愈。節點域的管理主要包括獲得當前節點域的配置信息、獲得節點域拓撲信息、獲得交換機與鏈路狀態信息、以及生成邏輯鏈路表和內部轉發表,為數據包的交換打下基礎。因此節點域管理方法包括(1)配置交換機的基本信息對于節點域內每個交換機,配置節點域的地址前綴(用“地址前綴/前綴長度”表示,即Prefix/Length)、本交換機在節點域的編號(SID)、各端口編號(PID)、外部端口的邏輯端口號(LPort)信息。端口有四種不同的屬性上行外部端口、下行外部端口、短接端口和內部端口,在交換機配置表中,其端口號取值范圍隱含了端口的屬性信息。
(2)獲得節點域拓撲信息(即鄰居發現)交換機的每個端口有一個Hello應答間隔計時器。交換機從某端口發送Hello包后,啟動計時器,Hello包包含其所在節點域的地址前綴、本交換機在節點域的編號、本端口在交換機的編號、以及該端口所在的邏輯端口信息。鄰居收到Hello包后,在其鄰接數據庫中進行登記,組裝應答Hello包,包內包含接收端口相應信息,并將應答包從Hello包到達的端口發送回去。發送端口收到應答Hello包后,停止計時器,并在自己的鄰接數據庫中記錄;否則若Hello應答間隔計時器超時,則在自己的鄰接數據庫中記錄,重新設置Hello應答間隔計時器超時閾值,重新開始上述過程。因此鄰接數據庫中記錄與本交換機相鄰的交換機及鏈路狀態信息。
(3)獲得鏈路狀態的信息節點域內每個交換機組裝自己的鏈路狀態分組,每個鏈路狀態分組包含該交換機在節點域的編號和鄰接數據庫中鄰接關系信息。每個交換機采用泛洪擴散法在節點域中擴散各自的鏈路狀態分組信息,新的非重復鏈路狀態分組記錄在交換機的鏈路狀態數據庫中。經過此過程,每個交換機的鏈路狀態數據庫中就包含了節點域中所有交換機、內部鏈路、外部鏈路的配置信息。
(4)生成邏輯鏈路表、短接節點域前綴表、域內轉發表邏輯鏈路表的表項包括邏輯端口號(LPort)、交換機標識(SID)、交換機輸出端口標識(PID)、輸出端口帶寬(Bandwidth)、信道狀態(Status)。短接節點域前綴表的表項包括與本節點域有短接關系的節點域前綴、對應的邏輯鏈路號、以及當前該短接鏈路的狀態。節點域內每個交換機有一個域內轉發表,包括三個表項D_SID、NHP、Metrics,指示到達域內其它交換機D_SID的下一跳輸出端口NHP及其代價Metrics。這三個表的生成過程是,從鏈路狀態數據庫中檢索所有外部端口的信息,并按照邏輯號進行分類和排序,得到邏輯鏈路表;從鏈路狀態數據庫中檢索所有短接端口的信息,并按照邏輯號進行分類和排序,得到短接節點域前綴表;根據鏈路狀態表中信息,構造節點域內部拓撲,計算最短路徑,生成域內轉發表。
(5)更新是指對節點域當前狀態進行檢測,如果發現更新事件,則更新節點域相關的配置信息。更新事件的來源有兩類一種是初始化觸發;一種是自動檢測觸發。初始化觸發是指當管理員增加交換機、增添鏈路或重新配置交換機后,重新啟動交換機,觸發更新過程。自動檢測觸發是指通過自動檢測,實時檢測節點域內交換機和鏈路狀態,若發現異常則觸發更新過程。自動檢測判斷鏈路及其兩端端口是否正常的依據是兩端能否連續正確接收到數據包,方法是保證鏈路上有連續的數據包傳輸;當發送方沒有數據包發送時,則發送KeepAlive數據包,KeepAlive數據包到達交換機后被拋棄。交換機每個端口有一個數據包到達間隔計時器,數據包到達后計時器置初值,重新開始計時;當計時器超時,則觸發更新同步過程,即觸發交換機鄰居發現過程。如果得到的鄰居狀態信息與鄰接數據庫內容一致,該過程停止;否則,更新鄰接數據庫,重新組裝、擴散鏈路狀態分組與過程,更新各交換機鏈路狀態數據庫。
4.節點域交換控制方法在節點域,數據包層次式交換有三個過程確定邏輯端口、選擇目標外部端口、和選擇下一跳輸出端口。從外部端口首次到達節點域的包需要進行確定邏輯端口,選擇目標外部端口,然后選擇下一跳端口送往下一節點;而從內部端口到達的包,只需要進行最后階段的操作,即根據前面選定的目標外部端口選擇下一跳,逐跳到達目標外部端口。對于最后一個過程,由于節點進行下一跳選擇時需要知道目標外部輸出端口信息(稱為內部交換標記ISL),因此當數據包首次進入該節點域并完成目標外部端口選擇時,需要對包進行ISL封裝。
第一步是確定邏輯端口。為數據包交換確定邏輯端口號過程的目的在于確定該數據包到達下一個節點域需要經過的邏輯鏈路,因此邏輯端口號與邏輯鏈路號一致。邏輯鏈路號用兩個字節的無符號整數表示,范圍為0-65535其中0-1023號碼空間用于標識下行邏輯鏈路,1024-2047號碼空間用于標識短接邏輯鏈路,65535(FFFF)用于標識上行邏輯鏈路,65534(FFFE)用于標識節點域所有內部鏈路,2048-65533號碼空間保留。當節點域存在短接擴展時,確定邏輯端口需要查找短接節點域前綴表。即如果兩個節點域間存在短接邏輯鏈路,則需要分別在兩個節點域的短接節點域前綴表中登記對方節點域的網絡地址前綴,并分別獨立分配邏輯鏈路號。短接節點域前綴表的表項包括與本節點域有短接關系的節點域前綴CNDPrefix,對應的邏輯鏈路號LPort,以及當前該短接鏈路的狀態Status。有無短接鏈路擴展兩種情況下確定邏輯端口的具體過程如下(1)在節點域沒有短接鏈路擴展時,確定邏輯端口的過程為數據包自某交換機的外部輸入端口首次進入節點域,在該交換機比較本節點域網絡地址前綴與包目的地址對應的部分是否相同。若相同,通過數據包目的IP地址在本層的交換字段確定下行邏輯鏈路(同時也就確定了邏輯端口);若不同,則選擇上行邏輯鏈路,其邏輯端口號為65535。
(2)當節點域存在短接擴展時,確定邏輯端口具體過程為數據包自某交換機的外部輸入端口首次進入節點域,在該交換機比較本節點域網絡地址前綴與包目的地址對應的部分是否相同。若相同,通過數據包目的IP地址在本層的交換字段確定下行邏輯鏈路(同時也就確定了邏輯端口);若不同,則采用最長匹配的方法用數據包目的地址的相應部分匹配查找短接節點域前綴表若查找成功,則選擇最長匹配的查尋記錄中相應的邏輯端口號;若查找不成功,則選擇上行邏輯鏈路,其邏輯端口號為65535。
第二步是選擇目標外部端口過程。選擇目標外部端口過程是指根據負載平衡機制和邏輯鏈路狀態表,從選定的邏輯鏈路(端口)所包含的外部鏈路(端口)中選擇一個外部輸出鏈路(輸出外部端口)。一個邏輯鏈路由多條外部物理鏈路組成,同樣地,一個邏輯端口也由多個外部端口組成。在節點域,外部端口標識由交換機標識SID與該交換機端口標識PID組合唯一確定。每個節點域有邏輯鏈路表,描述到相鄰節點域的邏輯鏈路信息。邏輯鏈路表的表項包括(1)LPort邏輯端口號,與邏輯鏈路號一致;(2)SID交換機標識;(3)PID交換機輸出端口標識;(4)Bandwidth輸出端口帶寬,單位是Mbps;(5)Status指出信道正常還是失效,用一個字節表示。
外部輸出鏈路的負載分配可以采用基于流的分配,即保證同一數據流穿過節點域經過相同的路徑,不同的數據流盡可能均衡地分布到邏輯鏈路的所有外部輸出鏈路;也可以采用基于包的分配,即不考慮每個IP包與流的次序關系,以包為單位根據各外部輸出鏈路的狀態對包作獨立的外部輸出鏈路分配。另外,基于TCP協議的應用要求網絡層盡量保證流內包次序,而保證流內包次序的負載平衡的策略包括兩種一種是本地化策略,即節點域內的流量轉發盡可能地在本地節點完成,各個節點在選擇外部出口鏈路時為本地外部鏈路賦予較大的權值;另一種是分布式策略,即選擇外部輸出端口時考慮負載平衡,負載平衡在各個外部輸入端口依賴局部信息獨立地進行。
分布式方法包括兩部分第一部分是基于Hash計算的流聚類及目標外部鏈路的選擇。本步驟的目標是將大量普通數據流通過Hash計算映射到有限的Hash空間上,每個Hash空間對應一個外部端口。映射到相同Hash空間的所有普通數據流聚合為一個宏流,以宏流作為負載分配的基本單位,宏流所對應的Hash空間指定的外部端口即為其選定的目標外部端口。在節點的每個外部輸入端口,對應于每個邏輯端口Pi有一張Hash表,如圖2。圖2是外部端口Hash表示意圖,(A)表示目標邏輯端口號i對應的Hash表起始位置,(B)表示目標邏輯端口號i對應的HASH表終止位置,(C)是目標邏輯端口號i對應的Hash表范圍,(D)、(E)、(F)、…等是Hash表內容,即邏輯端口號i下的某一個外部端口號,即外部輸出端口ρij∈Pi,j=1,…,記錄Hash值與外部輸出端口映射關系。當一包到達節點域的某個外部輸入端口,首先從包中抽取源、目標IP地址。假定所確定的邏輯端口號為i;然后以源、目標IP地址為輸入參數用Hash函數計算Hash值;根據計算結果查找與邏輯端口i相應的Hash表,得到相應的外部輸出端口ρij,由此得到該包的目標外部輸出端口號。
第二部分是基于歷史記錄對Hash表進行調整。保證負載平衡的關鍵是如何確定Hash表的內容。所采用的方法是在外部輸入端口處,采用時間窗口方法記錄分配給邏輯鏈路各外部出口鏈路的流量。根據記錄結果判斷負載分配是否均衡,不均衡則觸發對Hash表的調節機制。即當指向某外部輸出端口的負載超過了其配載因子達到一預定的閾值,則減少該外部輸出端口占據Hash表表項數目,增加負載小的外部輸出端口占據Hash表表項數目。調整表項數目根據當前各外部端口號在Hash表內的分布以及實際測量的鏈路負載情況確定。
一種Hash表調整方法是在鏈路利用率最大和最小的兩個鏈路間進行負載均衡,調整兩個鏈路在Hash表中所占的表項數目,使得兩個鏈路的鏈路利用率趨向一致。鏈路利用率可以通過下列公式計算μij=φij/τC(ϵij)]]>其中,τ為時間窗口寬度,φij表示在時間窗口τ內分配到鏈路εij的流量,C(εij)表示外部鏈路的帶寬。設μsi=maxj=1,Λ,H(μij),μti=minj=1,Λ,H(μij)]]>分別為邏輯鏈路i中當前最大的、最小的鏈路利用率,設Ns、Nt為當前ρis、ρit在Hash表中出現的次數。可以通過下列公式確定調整的Hash表表項數目zz=(μsi-μti)×C(ϵti)×Nsμsi×(C(ϵsi)+C(ϵti))]]>具體的調整過程是將內容為ρis的z個Hash表表項內容改寫為ρit。
第三步對數據包進行ISL封裝及內部選路。確定外部輸出鏈路(即輸出外部端口)后,要對包進行ISL封裝。ISL用于節點域內部交換,在幀頭和IP包頭間插入目標外部端口信息。節點域內每個交換機有一個域內轉發表,包括三個表項D_SID、Next_Hop、和Metrics,指示到達域內其他交換機D_SID的下一跳輸出端口Next_Hop和代價Metrics。節點域內部節點依據此標簽信息中目標節點號SID查找域內轉發表選路,逐跳到達目標外部端口所在的SID節點,在該節點脫去ISL標記,并從該節點的PID端口發送出去,完成包在本節點域內的轉發。
圖3是ISL封裝IP包格式其中(A)是FLAG字段,4比特;(B)是保留字段RES,4比特;(C)是EPID字段,24比特;(D)是IP包;(E)是ISL。ISL由三個字段組成,分別為FLAG、RES、以及EPID。FLAG位模式為1111時標識ISL封裝,RES保留,EPID字段填入包的目標外部輸出端口號EPID,EPID由交換機號SID(8位)和端口號PID(16位)組成。有益效果本發明的有益效果包括(1)節點域的功能單一、位置集中、規模適當,節點域管理運行輕量級快速協議,協議簡單并且局限于節點域內部,使得協議收斂速度快、效率高,對網絡事件響應及時。此特點是提高節點域性能的基礎。
(2)節點域的管理具有局部自治性,節點域控制信息局限于交換節點內部,無須在整個網絡上傳播控制信息,因而大大降低了網絡協議的復雜度,無須考慮與其它節點域的互操作問題,不僅簡化了網絡控制協議,而且簡化了交換機的設計。
(3)節點域的交換控制采用IP交換代替IP路由,不需要查詢龐大的路由表,可以使路由器退化成交換機。由于層次式交換網絡是按照層次結構構造的,網絡的地址也是按照層次結構分配的,而且網絡的地址與網絡的結構是匹配的,這使得各層節點數據包的轉發可以按照目的IP地址的相應交換字段簡單地進行交換。與標記交換如MPLS相比,交換的依據是IP包的目的地址的相應交換字段,而不需要分配、管理、檢索特別的標記。層次式交換簡化了交換機的復雜度,消除了復雜的路由計算和對龐大路由表的查找,可以用硬件完成大多數交換功能,提高了交換機的性能,減輕了路由器的瓶頸問題。
(4)節點域的交換控制采用分布式的自適應負載平衡機制實現目標邏輯鏈路中各物理鏈路鏈路的負載平衡,進而實現在節點域內部分布流量,可以提高網絡可靠性和資源利用率。
(5)節點域的管理依據不間斷的監測數據包,故障檢測時間大大減小,達毫秒級。同時由于節點域的邏輯鏈路由多條輸出鏈路組成,可以同時提供多條互不相關的轉發路徑,因此當出現交換機或鏈路失效時,節點域使用快速的故障恢復機制可自動避開失效節點或鏈路,將數據流自動切換到其它可用輸出鏈路上,從而使得節點域內部故障對外透明。
下面以節點域(D5)為例說明節點域的管理方法。
(1)配置節點域(D5)基本信息根據圖4中節點域(D5)的內部配置描述,設(D5)內各個交換機配置節點域地址前綴為001111111111111111111111000011010000101011/42,交換字段為42/8,則配置節點域(D5)交換機的基本信息如表1至表4所示。
表1交換機1各端口的基本配置信息
表2交換機2各端口的基本配置信息
表3交換機3各端口的基本配置信息
表4交換機4各端口的基本配置信息另外,交換機1的端口6還需配置目標短接節點域前綴0011111111111111111111110001011000010011/40;交換機4的端口4還需配置目標短接節點域前綴0011111111111111111111110001011000010011/40。
(2)鄰居發現以交換機(1)為例,交換機(1)從自己的(6)個端口向其鄰居發送Hello包。其它交換機收到來自交換機(1)的Hello后,在自己的鄰接數據庫中登記Hello包內鄰居信息,組裝應答Hello包,從原路發回。當交換機(1)收到應答Hello包,則把包內信息記錄在鄰居數據庫中。
(3)生成邏輯鏈路表、短接節點域前綴表表、域內轉發表在(D5),每個交換機有三張表。即邏輯鏈路表、短接鏈路表、和內部轉發表。以交換機1為例說明,三個表分別見表5、6、7。
(4)更新假定交換機(1)端口(3)連接的鏈路發生故障,當該端口相應的數據包到達間隔計時器超時,則觸發交換機(1)的更新同步過程,修改內部轉發表,將去往目的交換機(2)的下一跳輸出端口修改為(4),即經交換機(3)轉發。
在圖4所示綜合實施例中,包含四個層次式交換控制方法實施例,分別描述層次式交換在基本、短接、缺層和多宿主條件下的特征。
(1)一個基本層次交換實施例是在上述網絡環境中,接入網(E)內的一臺主機(M)與(H)的一臺主機(N)進行通信,這里主要分析數據包在(D5)的交換過程。假定在(E),(M)的SLA地址為7,接口號為EUI-64-M,則其地址IPM表示為0011111111111111111111110000110100000001110100010000101100000111EUI-64-M;在(H),(N)的SLA地址為6,接口號為EUI-64-N,則其地址IPN表示為0011111111111111111111110000110100001010110001101000111000000110EUI-64-N。在(D5),每個交換機有三張表邏輯鏈路表、短接鏈路表和內部轉發表,如下表5、表6、表7所示。
表5邏輯鏈路表
表6短接鏈路表
表7內部轉發表則主機(M)的一個數據包P發送到主機(N)的過程如下1)P的源地址填充為IPM,目的地址填充為IPN。
2)(E)內路由器將其轉發至(D7),(D7)比較自身的地址前綴和P的目的地址IPN對應的部分,結果不相等則選擇上行鏈路,發送至(D4)。
3)在(D4)經過類似過程,P到達(D2)。
4)(D2)比較自身的地址前綴和P的目的地址IPN對應的部分,結果相等;根據(D2)的交換字段屬性32/10選取IPN對應部分,其值為43,則選擇下行鏈路號為43的邏輯鏈路,將P發送至(D5)。
5)假定P到達交換機(3),首先確定其邏輯鏈路;即比較(D5)自身的地址前綴和P的目的地址IPN對應的部分,結果相等;根據(D5)的交換字段屬性42/8選取IPN對應部分,其值為26,則選擇下行鏈路號為26的邏輯鏈路。
6)根據邏輯鏈路號26查找(D5)邏輯鏈路表,根據外部端口號(SID/PID)為1/1、2/6得到兩條外部鏈路;根據外部端口選擇算法選擇其中一條,假定選擇的外部鏈路的端口號為2/6。
7)交換機(3)對數據包進行ISL封裝,封裝格式如圖15所示;封裝后的包在節點域根據ISL標記查找內部轉發表,由于目標D_SID為2,查得結果是從內部端口1將包送出,到達交換機2;在交換機2收到包后,知道應從自己的外部端口6發出,脫去ISL封裝,將P發送到(D9)。
8)(D9)將包P發送到(H),到達主機(N),完成數據包P從(M)到(N)的發送。
(2)一個使用短接鏈路的層次式交換實施例是在上述網絡環境中,接入網(G)內的一臺主機(S)與(J)的一臺主機(T)進行通信。這里主要分析數據包在(D5)使用短接鏈路的交換過程。假定在(G),(S)的SLA地址為7,接口號為EUI-64-S,則其地址IPS表示為0011111111111111111111110000110100001010110000101000111100000111EUI-64-S;在(J),(T)的SLA地址為6,接口號為EUI-64-T,則其地址IPT表示為0011111111111111111111110001011000010011001101010001101000000110EUI-64-T。如果(D5)與(D6)之間沒有短接鏈路,則(S)與(T)的通信與基本層次交換實施例類似,即(S)發送的包經過(D8)、(D5)、(D2)、(D1)、(D3)、(D6)、(D10),最終到達(J)內主機(T)。由于(D5)與(D6)之間實際上有短接鏈路,假定數據包從(D5)內交換機(2)進入節點域(D5),則首先確定其邏輯鏈路;比較(D5)自身的地址前綴和P的目的地址IPT對應的部分,結果不相等,然后用P的目的地址IPT查找短接鏈路表,與表中地址前綴0011111111111111111111110001011000010011/40匹配成功,則選擇表中對應記錄的邏輯鏈路號1088;1088由兩條物理信道組成,分別從交換機(1)的端口(6)和交換機(4)的端口(4)連接到節點域(D6);根據負載平衡的選路機制,假定選用了交換機(1)的端口(6);從交換機(2)的內部轉發表查得,要想送到交換機(1)則需要從交換機(1)的內部端口(2)發出;然后由交換機(1)將包P從端口(6)的短接鏈路發送到(D6),再經(D6)轉發到(D10),最終到達(J)內主機(T),因此沒有經過上層節點域(D2)、(D1)、(D3)。
(3)一個使用缺層連接的層次式技術實施例是在上述網絡環境中,接入網(E)內的一臺主機(U)與接入網(I)的一臺主機(V)通信。則從(U)發出的數據包經(D7)、(D4)、(D2)、(D1)到達(D3),經(D3)轉發直接到達(I),進而到達主機(V);從(V)發出的數據包經(I)直接到達(D3),經(D3)上傳到(D1),再經過(D2)、(D4)到達(D7),進而到達主機(U)。
(4)一個使用多宿主連接的層次式技術實施例是在上述網絡環境中,接入網(F)內的一臺主機(X)與接入網(J)的一臺主機(Y)通信。其中接入網(F)采用多宿主連接分別接入(D7)與(D8),F有兩個地址前綴00111111111111111111111100001101000000011101000100010111/56(宿主D7)和00111111111111111111111100001101000010101100001010000111/56(宿主D8),所以(F)內主機有兩套地址。(F)內主機與外部主機通信時可以選擇任意一個地址作為源地址,因此選擇不同的地址數據包經過的路徑可能不一樣。如選擇宿主(D7)的地址前綴組合的主機地址,則向(J)發送的數據包通過的邏輯路徑為(D7)、(D4)、(D2)、(D1)、(D3)、(D6)、(D10);如選擇宿主(D8)的地址前綴組合的主機地址,則向(J)發送的數據包通過的邏輯路徑為(D8)、(D5)、(D2)、(D1)、(D3)、(D6)、(D10)。
采用保證流內包次序的分布式負載方法以(D5)上行邏輯鏈路65535為例說明其負載均衡過程。邏輯鏈路65535由三條物理鏈路組成,查找邏輯鏈路表并計算配載因子,見表8。
表8配載因子計算結果則外部端口Hash表初始化若假定外部端口Hash表空間為0~127,其大小為128,則在節點域的每個外部輸入端口,對應于邏輯鏈路65535,有一個外部端口Hash表,該表初始化時至多有57項的內容指向交換機(2)的端口(2),至多有15項的內容指向交換機(3)的端口(2),至多有57項的內容指向交換機(4)端口(3)。表項的內容交叉循環依次填充外部端口號,同時為各外部端口號計數,若某外部端口號計數超過其應占表項份額后則停止填充該外部端口號,繼續按上述方法填充剩余外部端口號,直到Hash表填滿為止。
權利要求
1.層次式交換網絡節點域的一種控制方法,層次式交換網絡的拓撲結構是由多個交換層次組成樹型結構,網絡的地址空間按層次結構分配,并且拓撲結構的層次與地址結構的層次是嚴格匹配的;由于簡單樹型結構中任意兩個節點的鏈路是唯一的,因此數據包按照層次地址進行交換;其中以邏輯節點替代樹型結構的節點,以邏輯鏈路替代樹型結構的分支,邏輯節點稱為節點域,其特征在于節點域控制方法包括節點域管理方法和節點域交換控制方法,節點域管理方法通過實時檢測交換機和鏈路的狀態得到節點域內部各種配置表,節點域交換控制方法根據內部配置表控制數據包在節點域的轉發;節點域管理包括(1)配置交換機基本信息;(2)通過發送數據包和應答數據包進行鄰居發現;(3)鏈路狀態分組組裝并且采用泛洪擴散法在節點域中擴散各自的鏈路狀態分組信息;(4)生成邏輯鏈路表、短接節點域前綴表、和域內轉發表。
2.根據權利要求1所述的層次式交換網絡節點域的控制方法,其特征在于節點域交換控制過程包括確定邏輯端口、選擇目標外部端口、和選擇下一跳輸出端口三個階段;其中各節點域確定邏輯端口通過數據包交換字段的位置與長度,來確定該數據包到達下一個節點域需要經過的邏輯鏈路;選擇目標外部端口過程從選定的邏輯鏈路所包含的外部鏈路中,根據負載平衡機制選擇一個外部輸出鏈路;當數據包首次進入該節點域并完成目標外部端口選擇時,需要對包進行內部交換標記封裝;以后當選擇下一跳輸出端口時,則直接輸出到已知的目標外部輸出端口。
3.根據權利要求1所述的層次式交換網絡節點域的控制方法,其特征在于邏輯鏈路表的表項包括邏輯端口號、交換機標識、交換機輸出端口標識、輸出端口帶寬、信道狀態;從鏈路狀態數據庫中檢索所有外部端口的信息,并按照邏輯號進行分類和排序,得到邏輯鏈路表。
4.根據權利要求1所述的層次式交換網絡節點域的控制方法,其特征在于短接節點域前綴表的表項包括與本節點域有短接關系的節點域前綴、對應的邏輯鏈路號、以及當前該短接鏈路的狀態;從鏈路狀態數據庫中檢索所有短接端口的信息,并按照邏輯號進行分類和排序,得到短接節點域前綴表。
5.根據權利要求1所述的層次式交換網絡節點域的控制方法,其特征在于域內轉發表指示到達域內其它交換機的下一跳輸出端口及其代價;根據鏈路狀態表中信息,構造節點域內部拓撲,計算最短路徑,生成域內轉發表。
6.根據權利要求1所述的層次式交換網絡節點域的控制方法,其特征在于節點域管理還包括更新;更新過程檢測節點域當前狀態,更新節點域相關的配置信息;包括當管理員增加交換機、增添鏈路或重新配置交換機后,重新啟動交換機所觸發的更新過程;以及通過自動檢測過程進行的更新過程,該過程根據收發兩端能否連續正確接收到數據包來確定是否需要更新,當交換機端口的數據包到達間隔計時器超時時,觸發更新過程。
7.根據權利要求2所述的層次式交換網絡節點域的控制方法,其特征在于節點域交換控制過程采用保證流內包次序的分布式負載平衡策略;采用基于Hash計算的流聚類來選擇目標外部鏈路,即當一包到達節點域的某個外部輸入端口,首先從包中抽取源、目標IP地址,以源、目標IP地址為輸入參數用Hash函數計算Hash值,根據計算結果查找與該邏輯端口相應的HASH表得到該包的目標外部輸出端口號。
8.根據權利要求7所述的層次式交換網絡節點域的控制方法,其特征在于節點域交換控制過程采用基于Hash計算的流聚類來選擇目標外部鏈路,同時采用基于測量的Hash表調整方法;在外部輸入端口處,采用時間窗口方法實時測量分配給邏輯鏈路各外部出口鏈路的流量,根據測量結果判斷負載分配是否均衡,不均衡則對Hash表進行調節機制;即當指向某外部輸出端口的負載超過了其配載因子預定的閾值,則減少該外部輸出端口占據Hash表表項數目,增加負載小的外部輸出端口所占據的Hash表表項數目。
9.根據權利要求7所述的層次式交換網絡節點域的控制方法,其特征在于Hash表調整方法是在鏈路利用率最大和最小的兩個鏈路間進行負載均衡,調整兩個鏈路在Hash表中所占的表項數目,使得兩個鏈路的鏈路利用率趨向一致。
全文摘要
本發明涉及層次式交換網絡節點域的一種控制方法。節點域控制方法包括節點域管理方法和節點域交換控制方法。節點域管理方法通過實時檢測交換機和鏈路的狀態得到節點域內部各種配置表,節點域交換控制方法根據內部配置表控制數據包在節點域的轉發。本方法可以提高層次式交換網絡節點域的可靠性和性能,增加節點域吞吐量,減少延遲和內部擁塞,實現節點域負載平衡和故障恢復,減少內部控制和管理的復雜度。
文檔編號H04Q1/20GK1440159SQ0312152
公開日2003年9月3日 申請日期2003年3月31日 優先權日2003年3月31日
發明者李俊, 錢華林, 葛敬國, 馬宏偉, 方蕾, 牛廣鋒, 代長城 申請人:中國科學院計算機網絡信息中心