專利名稱:具備自動(dòng)建立機(jī)制的堆疊管理器協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及在一個(gè)數(shù)據(jù)通信網(wǎng)中的堆疊交換機(jī)系統(tǒng)的管理。更具體地說,本發(fā)明涉及一種容錯(cuò)堆疊交換機(jī)系統(tǒng),它適于檢測、處理交換機(jī)故障并從交換機(jī)故障中恢復(fù)。
背景技術(shù):
在一個(gè)分組交換網(wǎng)中的堆疊交換機(jī)系統(tǒng)中,各個(gè)交換機(jī)經(jīng)由在每個(gè)交換機(jī)上存在的一對指定堆疊端口操作性地互連。堆疊交換機(jī)系統(tǒng)一般依次連接,系統(tǒng)拓?fù)涞奶卣饕话闶且粋€(gè)閉合回路,稱為環(huán),或者是一個(gè)開交換機(jī)串,這里稱為鏈。每個(gè)堆疊交換機(jī)適于在它自己的數(shù)據(jù)端口以及其他堆疊交換機(jī)的數(shù)據(jù)端口之間通過利用堆疊交換機(jī)標(biāo)識符經(jīng)由堆疊端口傳送分組而進(jìn)行交換,其中堆疊交換機(jī)標(biāo)識符的使用有助于將這些分組有效的傳輸和交換到適當(dāng)?shù)亩询B交換機(jī)。目前,可以例如通過用戶手工配置給堆疊交換機(jī)分配交換機(jī)標(biāo)識符。但同時(shí)仍有需要堆疊交換機(jī)適于自動(dòng)地和確定性地并依次地,也就是說,根據(jù)交換機(jī)在環(huán)或鏈中的次序,分配標(biāo)識符給參與的交換機(jī)。
目前,堆疊交換機(jī)系統(tǒng)還易于出現(xiàn)標(biāo)識符指派重復(fù)的情況,其中當(dāng)組合來自不同系統(tǒng)的兩個(gè)堆疊交換機(jī),或者一個(gè)用戶被錯(cuò)誤地兩次指派了同一個(gè)標(biāo)識符時(shí)就會(huì)出現(xiàn)上述情況。在當(dāng)前系統(tǒng)中,堆疊交換機(jī)自動(dòng)地關(guān)機(jī),這不幸地可以切斷系統(tǒng)的連通性,形成了堆疊交換機(jī)孤島。存在一種需要,要求堆疊交換機(jī)適于保持兩個(gè)相鄰交換機(jī)間的通信鏈路,并且具有重復(fù)標(biāo)識符的交換機(jī)不能在堆疊交換機(jī)系統(tǒng)中轉(zhuǎn)發(fā)分組。這種情況下,還需要(1)定義選舉哪個(gè)交換機(jī)會(huì)成功,并且能夠?qū)⒒钴S但不工作的交換機(jī)保持在某種狀態(tài)的標(biāo)準(zhǔn),在前述狀態(tài)下該交換機(jī)還能接收管理命令;以及(2)解決沖突而不需要人工介入。
目前,堆疊交換機(jī)系統(tǒng)也采用在第一主堆疊交換機(jī)和被管堆疊交換機(jī)之間進(jìn)行消息交換來確定各自的工作狀態(tài)。然而,在某些情況下,第一主機(jī)可能沒有計(jì)算資源來立即響應(yīng)一個(gè)狀態(tài)檢查,這種情況下被管設(shè)備可能錯(cuò)誤地推斷出第一主機(jī)發(fā)生故障,并且開始選舉一個(gè)新的第一主機(jī)。結(jié)果,堆疊交換機(jī)系統(tǒng)可能會(huì)有兩個(gè)第一主機(jī),從而導(dǎo)致整個(gè)系統(tǒng)出現(xiàn)故障。因此,需要堆疊交換機(jī)適于處理間歇性的中斷,而不會(huì)過早啟動(dòng)系統(tǒng)管理的改變。
發(fā)明內(nèi)容
本發(fā)明的優(yōu)選實(shí)施方式特征在于一種交換設(shè)備,用來在一個(gè)包括多個(gè)堆疊交換機(jī)的堆疊交換機(jī)系統(tǒng)中執(zhí)行通透轉(zhuǎn)發(fā)操作。該交換設(shè)備最好包括多個(gè)端口和一個(gè)路由引擎,用來在端口之間轉(zhuǎn)發(fā)分組。該多個(gè)端口包括多個(gè)數(shù)據(jù)端口和多個(gè)堆疊端口,也就是第一堆疊端口和第二堆疊端口,用于將交換機(jī)連接到其他堆疊交換機(jī)。該路由引擎適于實(shí)現(xiàn)這里所稱的通透模式。如果通透模式被禁止,路由引擎例如根據(jù)與分組關(guān)聯(lián)的目的地址信息,在多個(gè)端口之間轉(zhuǎn)發(fā)分組。然而,如果通透模式被選通,路由引擎自動(dòng)地將在第一堆疊端口上接收的分組轉(zhuǎn)發(fā)給第二堆疊端口,并自動(dòng)地將在第二堆疊端口上接收的分組轉(zhuǎn)發(fā)給第一堆疊端口。在數(shù)據(jù)端口上接收的分組一般被丟棄。這樣,交換機(jī)可以維持堆疊交換機(jī)系統(tǒng)的最小連通性,而不需要完全地運(yùn)作或者完全地集成到堆疊交換機(jī)系統(tǒng)中。例如在兩個(gè)堆疊交換機(jī)擁有相同標(biāo)識符時(shí),可以采用通透模式。
本發(fā)明的優(yōu)選實(shí)施方式還特征在于一種交換設(shè)備,用于自動(dòng)地分配堆疊交換機(jī)標(biāo)識符。多個(gè)堆疊交換機(jī)中的每一個(gè)--包括一個(gè)負(fù)責(zé)分配的第一主堆疊交換機(jī)和適于承擔(dān)第一主機(jī)的職責(zé)的所有被管堆疊交換機(jī)一包括兩個(gè)堆疊端口和一個(gè)堆疊管理器,后者適于識別一個(gè)需要工作堆疊交換機(jī)標(biāo)識符的堆疊交換機(jī),并自動(dòng)地向所述一個(gè)或多個(gè)堆疊交換機(jī)的每一個(gè)分配一個(gè)工作堆疊交換機(jī)標(biāo)識符集合中的一個(gè)標(biāo)識符。該工作堆疊交換機(jī)標(biāo)識符集合最好包括有序整數(shù),盡管本領(lǐng)域的技術(shù)人員會(huì)理解,因?yàn)橐恍?biāo)識符以前分配給一個(gè)或多個(gè)堆疊交換機(jī),所以這個(gè)序列中可能會(huì)出現(xiàn)間隔。隨后按照所述一個(gè)或多個(gè)堆疊交換機(jī)在一個(gè)序列的有序位置分配有序整數(shù)。假定所有堆疊交換機(jī)都沒有以前存在的標(biāo)識符,那么得到的交換機(jī)可能以升序依次編號,例如從第一主機(jī)為“1”開始。如果堆疊交換機(jī)有一個(gè)環(huán)拓?fù)?,假定第一主機(jī)已經(jīng)分配了標(biāo)識符,從該標(biāo)識符集合,分配最小的可用標(biāo)識符給它第一堆疊端口上的相鄰堆疊交換機(jī),分配最大的可用標(biāo)識符給它第二堆疊端口上的相鄰堆疊交換機(jī)。如果在一個(gè)鏈拓?fù)渲校钚〉目捎脴?biāo)識符一般會(huì)分配給第一主機(jī),或者能夠通過第一主機(jī)的一個(gè)堆疊端口到達(dá)的交換機(jī),并且可用標(biāo)識符在需要時(shí)依次分配給各個(gè)交換機(jī),就像堆疊交換機(jī)呈環(huán)形連接。這樣得到的標(biāo)識符分配更好地反映了堆疊交換機(jī)的有序位置,從感覺上來講,比目前采用的現(xiàn)有技術(shù)的分配方案要更為用戶友好。
本發(fā)明的優(yōu)選實(shí)施方式還特征在于一種交換設(shè)備,用于自動(dòng)地和臨時(shí)地禁止由堆疊交換機(jī)交換的以監(jiān)視堆疊系統(tǒng)的狀態(tài)和檢測拓?fù)渥兓谋O(jiān)管消息。該系統(tǒng)一般包括一個(gè)或多個(gè)被管堆疊交換機(jī)和用于管理這些設(shè)備的一個(gè)第一主堆疊交換機(jī)。被管堆疊交換機(jī)適于發(fā)送監(jiān)管消息給多個(gè)堆疊交換機(jī)中的一個(gè)或多個(gè),包括第一主機(jī)。第一主機(jī)則在可能的情況下,適于對監(jiān)管消息做出反應(yīng),或者發(fā)送一個(gè)監(jiān)管暫停消息以臨時(shí)地阻止多個(gè)被管堆疊交換機(jī)中的一個(gè)或多個(gè)發(fā)送監(jiān)管消息。第一主機(jī)也可以解除監(jiān)管暫停消息來恢復(fù)標(biāo)準(zhǔn)操作。在某些實(shí)施方式中,如果第一主機(jī)無法返回到正常工作狀態(tài),被管設(shè)備也可以在一個(gè)預(yù)定時(shí)間段之后,自動(dòng)地恢復(fù)監(jiān)管消息的定期發(fā)送。
本發(fā)明的優(yōu)選實(shí)施方式的特征還在于一種用于在系統(tǒng)初始化,或者指定的第一主機(jī)變得不工作時(shí),從多個(gè)堆疊交換機(jī)中選舉一個(gè)第一主堆疊交換機(jī)的方法。該方法包括以下步驟為多個(gè)堆疊交換機(jī)中的每一個(gè)產(chǎn)生一個(gè)選舉鍵,在多個(gè)堆疊交換機(jī)之間交換每個(gè)堆疊交換機(jī)的選舉鍵;將具有最小選舉鍵的堆疊交換機(jī)指定為臨時(shí)第一堆疊交換機(jī)。交換機(jī)的選舉鍵包括相關(guān)堆疊交換機(jī)的啟動(dòng)時(shí)間--也就是例如日期、小時(shí)、分鐘和秒--交換機(jī)在啟動(dòng)之后到達(dá)預(yù)定工作狀態(tài)所需的時(shí)間。在優(yōu)選實(shí)施方式中,啟動(dòng)時(shí)間與交換機(jī)適于對包括存在其他堆疊交換機(jī)的網(wǎng)絡(luò)拓?fù)溟_始進(jìn)行初步評估的時(shí)間相關(guān)聯(lián)。
本發(fā)明通過例子來說明,但并不局限于附圖,在附圖中圖1是一種按照本發(fā)明優(yōu)選實(shí)施方式的集成堆疊交換機(jī)系統(tǒng)(ISS)的功能框圖;圖2是一種按照本發(fā)明優(yōu)選實(shí)施方式的在ISS系統(tǒng)中采用的堆疊交換機(jī)的功能框圖;圖3是一個(gè)按照本發(fā)明優(yōu)選實(shí)施方式的代表起動(dòng)過程中堆疊交換機(jī)各階段的狀態(tài)圖;圖4是一個(gè)按照本發(fā)明優(yōu)選實(shí)施方式的對應(yīng)于圖3的可堆疊性確定狀態(tài)的流程圖;圖5是一個(gè)按照本發(fā)明優(yōu)選實(shí)施方式的對應(yīng)于圖3的發(fā)現(xiàn)狀態(tài)的流程圖;圖6A和6B一起是按照本發(fā)明優(yōu)選實(shí)施方式的對應(yīng)于圖3的選舉狀態(tài)的流程圖;圖7A和7B一起是按照本發(fā)明優(yōu)選實(shí)施方式的對應(yīng)于圖3的單元號碼指派狀態(tài)的流程圖;圖8A和8B是按照本發(fā)明優(yōu)選實(shí)施方式的分別對應(yīng)于單元號碼分配前后的ISS示例系統(tǒng);圖9A和9B是按照本發(fā)明優(yōu)選實(shí)施方式的分別對應(yīng)于單元號碼分配前后的ISS示例系統(tǒng);圖10A和10B是按照本發(fā)明優(yōu)選實(shí)施方式的分別對應(yīng)于單元號碼分配前后的ISS示例系統(tǒng);圖11是一個(gè)按照本發(fā)明優(yōu)選實(shí)施方式的代表性的堆疊選舉消息;以及圖12是一個(gè)按照本發(fā)明優(yōu)選實(shí)施方式的代表性的堆疊監(jiān)管消息。
具體實(shí)施例方式
在圖1中示出了在一個(gè)數(shù)據(jù)通信網(wǎng)中的一種集成堆疊交換機(jī)(ISS)系統(tǒng)的功能框圖。網(wǎng)絡(luò)120包括多個(gè)堆疊交換機(jī)100-103,它們操作性地依次連接,借助于堆疊鏈路110-113,例如雙絞線或光纖電纜,形成例如一個(gè)鏈或環(huán)拓?fù)洹=粨Q設(shè)備100-103最好是可堆疊交換機(jī),可通過一個(gè)或多個(gè)本領(lǐng)域技術(shù)人員將其稱為堆疊端口的特定用途端口相互連接。多個(gè)堆疊交換機(jī)100-103,這里也稱為堆疊單元和單元,適于在ISS 120的其他交換機(jī)以及通過例如一個(gè)或多個(gè)局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、城域網(wǎng)(MAN)或者互聯(lián)網(wǎng)連接到ISS的一個(gè)或多個(gè)端點(diǎn)站或其他可尋址實(shí)體之間傳送分組化的數(shù)據(jù)。
在優(yōu)選實(shí)施方式中,堆疊交換機(jī)100-103是適于在由開放系統(tǒng)互連(OSI)參考模型定義的第二層(數(shù)據(jù)鏈路層)和第三層(網(wǎng)絡(luò)層)處執(zhí)行協(xié)議數(shù)據(jù)單元(PDU),最好是幀和分組,的交換和路由操作的多層交換機(jī),盡管它們也可以完成4-7層交換操作。堆疊交換機(jī)100-103的每個(gè)一般能夠充當(dāng)一個(gè)獨(dú)立的網(wǎng)橋、交換機(jī)或路由器。但是,通過優(yōu)選實(shí)施方式的集成堆疊管理器協(xié)議(ISMP),堆疊交換機(jī)100-103互相協(xié)作以模擬一個(gè)比對獨(dú)立操作的各個(gè)交換機(jī)100-103僅進(jìn)行簡單綜合功能要強(qiáng)得多的單個(gè)交換設(shè)備。得到的ISS120適于提供具有增強(qiáng)的容錯(cuò)性和用戶方便性的可擴(kuò)展的網(wǎng)絡(luò)能力。具體來說,優(yōu)選實(shí)施方式的ISS 120可以動(dòng)態(tài)地?cái)U(kuò)展以包括另外的堆疊交換機(jī),檢測不工作的堆疊交換機(jī)和堆疊鏈接,動(dòng)態(tài)地環(huán)繞--在某些情況下通過--不工作的堆疊交換機(jī)進(jìn)行路由,并且自動(dòng)地配置堆疊交換機(jī)100-103以產(chǎn)生一個(gè)非冗佘的識別方案以有利于堆疊交換機(jī)間轉(zhuǎn)發(fā)操作。
圖2示出了一個(gè)在優(yōu)選實(shí)施方式的ISS系統(tǒng)中采用的堆疊交換機(jī)的功能框圖。該堆疊交換機(jī)包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口模塊(NIM)204、一個(gè)或多個(gè)交換控制器(網(wǎng)絡(luò)處理器)206,以及一個(gè)管理模塊220,所有這些最好互相協(xié)作,以經(jīng)由外部端口202中的每一個(gè)接收入數(shù)據(jù)業(yè)務(wù)量并發(fā)送出數(shù)據(jù)業(yè)務(wù)量。對于本實(shí)施方式,從另一網(wǎng)絡(luò)節(jié)點(diǎn)流入交換機(jī)200的數(shù)據(jù)稱為入數(shù)據(jù),它包括入?yún)f(xié)議數(shù)據(jù)單元。相反,從內(nèi)部傳送到外部端口202,用以發(fā)送給另一網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)稱為出數(shù)據(jù),它包括出PDU。多個(gè)外部端口202的每一個(gè)都是雙工端口,適于接收入數(shù)據(jù)并發(fā)送出數(shù)據(jù)。
NIM 204和204S最好包括適于經(jīng)由網(wǎng)絡(luò)通信鏈路(未示出)交換例如以太網(wǎng)幀和IP分組等之類的PDU的一個(gè)或多個(gè)物理層接口和媒質(zhì)訪問控制(MAC)接口。在多個(gè)外部端口202中,兩個(gè)示例性的堆疊端口202S用于將該特定堆疊交換機(jī)200集成到ISS 120中。與兩個(gè)堆疊端口202S相關(guān)聯(lián)的NIM 204S例如是標(biāo)準(zhǔn)以太網(wǎng)端口,適于根據(jù)堆疊配置模式與其它堆疊交換機(jī)進(jìn)行堆疊間通信以及與各種兼容節(jié)點(diǎn)交換傳統(tǒng)數(shù)據(jù)業(yè)務(wù)量PDU。入PDU借助于一個(gè)或多個(gè)入數(shù)據(jù)總線205A,從多個(gè)NIM 204和204S被傳送給交換控制器206。類似地,出PDU經(jīng)由一個(gè)或多個(gè)出數(shù)據(jù)總線205B從交換控制器206被發(fā)送給多個(gè)NIM 204和204S。
管理模塊220一般包括一個(gè)策略管理器224,用于保持和實(shí)現(xiàn)業(yè)務(wù)量策略。由策略管理器224所實(shí)現(xiàn)的策略最好部分基于來自源學(xué)習(xí)操作的第二層和/或第三層尋址信息,從其它路由設(shè)備接收的路由信息,以及由網(wǎng)絡(luò)管理員利用例如簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)消息226通過一個(gè)配置管理器222上載的過濾規(guī)則。在轉(zhuǎn)發(fā)表254中集中表示從源學(xué)習(xí)、其他網(wǎng)絡(luò)節(jié)點(diǎn)和管理員得到的業(yè)務(wù)量策略,路由引擎230可利用它們。
除了業(yè)務(wù)量策略之外,管理模塊220還包括一個(gè)中央管理模塊(CMM)210,用以實(shí)現(xiàn)下面詳細(xì)討論的ISS堆疊交換功能。優(yōu)選實(shí)施方式的CMM 210包括一個(gè)端口狀態(tài)模塊212和一個(gè)堆疊管理器214。端口狀態(tài)模塊212適于利用例如保持活躍信號,監(jiān)視堆疊端口202S的工作狀態(tài),識別連接到堆疊端口202S的相鄰堆疊交換機(jī)的存在。
優(yōu)選實(shí)施方式中的CMM 210還包括一個(gè)堆疊管理器214,適于參與確定每個(gè)堆疊交換機(jī)管理責(zé)任的選舉,處理用以監(jiān)控其他交換機(jī)的狀態(tài)的監(jiān)管消息,以及如果需要,還充當(dāng)其責(zé)任可以包括分配唯一單元標(biāo)識符給一個(gè)或多個(gè)堆疊交換機(jī)100-103以及分配處理器標(biāo)識符給堆疊交換機(jī)100-103的網(wǎng)絡(luò)處理器的第一主交換機(jī)(PMS)或第二主交換機(jī)(SMS)。在優(yōu)選實(shí)施方式中,堆疊管理器214具有能夠基于僅與相鄰鄰居的消息交換來完全工作的通信協(xié)議。這是因?yàn)檫\(yùn)行在堆疊交換機(jī)100-103上的堆疊管理器214實(shí)例必須能夠甚至在知道交換機(jī)堆疊ISS的拓?fù)渲?,與運(yùn)行在遠(yuǎn)端交換機(jī)上的其他實(shí)例通信。
此外,堆疊管理器214適于確定ISS堆疊交換機(jī)拓?fù)?,處理ISS120堆疊交換機(jī)之間交換的拓?fù)湎嚓P(guān)的消息。具體來說,堆疊管理器214發(fā)送ISS拓?fù)湔埱?,發(fā)送已知的ISS拓?fù)湫畔⒔o其他堆疊交換機(jī),維護(hù)一個(gè)或多個(gè)本地拓?fù)浔?。在一些?shí)施方式中,堆疊管理器214還負(fù)責(zé)檢測一個(gè)單元的丟失,一個(gè)另外單元的插入(從而產(chǎn)生一個(gè)阱),從堆疊中移走一個(gè)單元,以及確定相關(guān)CMM 210的工作狀態(tài)。
優(yōu)選實(shí)施方式中的堆疊管理器214保持并更新一個(gè)或多個(gè)堆疊交換機(jī)鄰居表218,最好是一個(gè)與每個(gè)堆疊端口202S相關(guān)聯(lián)的表。鄰居表218是一個(gè)可以通過相關(guān)聯(lián)的堆疊端口202S到達(dá)的堆疊交換機(jī)的列表。在優(yōu)選實(shí)施方式中,鄰居堆疊交換機(jī)按順序排列,其中與該端口直接相鄰的單元排在第一。兩個(gè)堆疊端口的每一個(gè)都維護(hù)一個(gè)列出了通過該堆疊端口可以到達(dá)的所有相鄰堆疊交換機(jī)的鄰居表218。如果ISS 120的拓?fù)涫黔h(huán)形配置,那么這兩張鄰居表218有著相同的相鄰堆疊交換機(jī)列表,但次序相反。
交換機(jī)200最好包括至少一個(gè)網(wǎng)絡(luò)處理器206,其能夠進(jìn)行但不局限于開放系統(tǒng)互連(OSI)參考模型中所定義的第二層(數(shù)據(jù)鏈路)和第三層(網(wǎng)絡(luò))的交換操作。用以將外部端口202連接到一個(gè)有線和/或無線通信鏈路的可能的第二層協(xié)議集合包括電子電氣工程師協(xié)會(huì)(IEEE)802.3和IEEE 802.11標(biāo)準(zhǔn),而可能的第三層協(xié)議集合包括互聯(lián)網(wǎng)工程師任務(wù)組(IETF)請求評論(RFC)791所定義的互聯(lián)網(wǎng)協(xié)議(IP)版本4和IETF RFC 1883所定義的IP版本6。
網(wǎng)絡(luò)處理器206最好包括一個(gè)路由引擎230和一個(gè)隊(duì)列管理器240。路由引擎230包括一個(gè)分類器232,它從數(shù)據(jù)總線205A接收入PDU,檢查該P(yáng)DU的一個(gè)或多個(gè)字段,利用內(nèi)容可尋址存儲(chǔ)器233將該P(yáng)DU分類到多個(gè)流中的一個(gè),以及從在高速存儲(chǔ)器中保持的轉(zhuǎn)發(fā)表254中檢索出轉(zhuǎn)發(fā)信息。從轉(zhuǎn)發(fā)表254中檢索出的轉(zhuǎn)發(fā)信息最好包括但不局限于一個(gè)流標(biāo)識符,用于指定為準(zhǔn)備出該特定PDU所必需的那些轉(zhuǎn)發(fā)操作,其中該流標(biāo)識符可以包括下一跳地址,以及服務(wù)類別(COS)或服務(wù)質(zhì)量(QOS)規(guī)定。
轉(zhuǎn)發(fā)處理器234接收到帶有相關(guān)轉(zhuǎn)發(fā)信息的入PDU,并且在發(fā)送到適當(dāng)?shù)某龆丝谥埃瑘?zhí)行一個(gè)或多個(gè)轉(zhuǎn)發(fā)操作。這些轉(zhuǎn)發(fā)操作最好包括但不限于重新封裝數(shù)據(jù)的頭變換,將一個(gè)或多個(gè)VLAN標(biāo)記追加到一個(gè)PDU的VLAN標(biāo)記推操作,從一個(gè)PDU中去除一個(gè)或多個(gè)VLAN標(biāo)記的VLAN標(biāo)記出操作,保留網(wǎng)絡(luò)資源的服務(wù)質(zhì)量(QoS),監(jiān)控客戶業(yè)務(wù)量的計(jì)費(fèi)和記賬,多協(xié)議標(biāo)簽交換(MPLS)管理,選擇性地過濾PDU的鑒權(quán),接入控制,包括地址解析協(xié)議(ARP)控制的高層學(xué)習(xí),用于再生和重定向PDU用于業(yè)務(wù)量分析的端口鏡像,源學(xué)習(xí),用于確定相對優(yōu)先級的服務(wù)類別(CoS),其中通過該相對優(yōu)先級分配交換機(jī)資源給PDU,用于制定策略和業(yè)務(wù)量整形的顏色標(biāo)記,以及用于例如在ISS 120的交換機(jī)100-103之間有效地分發(fā)PDU的堆疊交換機(jī)間標(biāo)記管理。
在轉(zhuǎn)發(fā)處理器234之后,PDU被送到并存儲(chǔ)在隊(duì)列管理器240中,直至有帶寬可用于發(fā)送PDU給適當(dāng)?shù)某龆丝凇>唧w而言,出PDU緩存在緩沖器242中的多個(gè)優(yōu)先級隊(duì)列的一個(gè)或多個(gè)中,直至由調(diào)度器244經(jīng)由輸出數(shù)據(jù)總線205B將它們發(fā)送給外部端口202。
網(wǎng)絡(luò)處理器206可以配備有一個(gè)內(nèi)部交換結(jié)構(gòu)(未示出),可以將交換機(jī)的每個(gè)外部端口202連接到該交換機(jī)上的每個(gè)其它端口。在優(yōu)選實(shí)施方式中,該內(nèi)部交換結(jié)構(gòu)可以配置成將來自兩個(gè)堆疊端口202S的每一個(gè)的入業(yè)務(wù)量通過信道傳送到其他堆疊端口,旁路了分類器232和轉(zhuǎn)發(fā)處理器234,以實(shí)現(xiàn)下面將詳細(xì)討論的通透模式。
圖3示出了一個(gè)狀態(tài)圖,其表示由一個(gè)ISS堆疊交換機(jī)從啟動(dòng)到完全工作模式所采用的自動(dòng)建立機(jī)制的各個(gè)階段。在初始化之后,堆疊交換機(jī)200進(jìn)入可堆疊性確定狀態(tài)302,在其中該交換機(jī)確定它是被配置成充當(dāng)一個(gè)獨(dú)立交換機(jī),還是一個(gè)堆疊交換機(jī)??梢愿鶕?jù)堆疊端口202S的物理和工作存在來確定可堆疊性。在本發(fā)明的某種實(shí)施方式中,在一個(gè)交換機(jī)中也可以沒有堆疊端口。如果該交換機(jī)被配置成進(jìn)行獨(dú)立操作304,堆疊管理器214被禁止,該交換機(jī)根據(jù)具有所有數(shù)據(jù)端口202的多層交換機(jī)工作。然而,當(dāng)被配置成作為一個(gè)堆疊交換機(jī)時(shí),端口狀態(tài)模塊212監(jiān)控堆疊端口,看是否有保持活躍消息或指示相鄰單元存在的其他消息。在沒有相鄰堆疊交換機(jī)的情況下,該交換機(jī)確定它是一個(gè)堆疊306,并進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308,在該狀態(tài)它在標(biāo)準(zhǔn)數(shù)據(jù)端口202上接收并發(fā)送數(shù)據(jù)業(yè)務(wù)量,同時(shí)監(jiān)控堆疊端口202S,以引入一個(gè)或多個(gè)另外的堆疊單元。
而在可堆疊性確定狀態(tài)302中如果在堆疊端口202S上檢測出了一個(gè)或多個(gè)交換機(jī),交換機(jī)200進(jìn)入到發(fā)現(xiàn)狀態(tài)310,以確定ISS 120的拓?fù)?。堆疊交換機(jī)200隨后可以進(jìn)入到選舉狀態(tài)312,在該狀態(tài)ISS 120的堆疊交換機(jī)執(zhí)行職責(zé)確定處理,用以識別哪些單元充當(dāng)?shù)谝恢鹘粨Q機(jī)(PMS)和第二主交換機(jī),這里也分別稱作第一主機(jī)和第二主機(jī)。
第一主機(jī)負(fù)責(zé)ISS管理功能,包括例如單元標(biāo)識符的分配和分發(fā),ISS中的所有堆疊交換機(jī)通過單元標(biāo)識符相互尋址,以及所有的命令行接口輸入的處理和同步映像一也就是說,同步堆疊交換機(jī)上的不同軟件版本。第二主機(jī)指定為是該第一主機(jī)的接任者,如果第一主機(jī)故障或者變得不工作,它承擔(dān)第一主機(jī)的職責(zé)。盡管支持優(yōu)選實(shí)施方式的ISMP協(xié)議的堆疊交換機(jī)的每一個(gè)都可以承擔(dān)第一和第二主機(jī)的工作,但剩余的堆疊交換機(jī)聽從主交換機(jī),直至其中的任何一個(gè)后來按照下面詳細(xì)討論的層次選舉處理被選為主機(jī)。
第一主機(jī)從選舉狀態(tài)312進(jìn)入到單元號碼指派狀態(tài)314,而每一個(gè)其他堆疊交換機(jī)進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308。在單元號碼指派狀態(tài)314中,選出的第一主機(jī)分配一個(gè)工作單元標(biāo)識符(OEID)給每個(gè)尚未分配給一個(gè)單元標(biāo)識符的堆疊交換機(jī)。如果有效,將OEID設(shè)置成等于在交換機(jī)永久存儲(chǔ)器中保存的單元標(biāo)識符(SEID)。雖然堆疊交換機(jī)使用OEID在其他堆疊交換機(jī)之間收發(fā)消息,但OEID只在堆疊交換機(jī)生命周期內(nèi)有效,也就是說直至重啟。如果一個(gè)堆疊交換機(jī)在啟動(dòng)時(shí)有一個(gè)有效的SEID,OEID被設(shè)置成等于SEID。否則,由第一主機(jī)通過單元號碼分配機(jī)制分配給堆疊交換機(jī)一個(gè)OEID,此時(shí)將SEID設(shè)置成等于OEID。
工作在轉(zhuǎn)發(fā)狀態(tài)308時(shí),交換機(jī)200適于轉(zhuǎn)入到監(jiān)管狀態(tài)316和通透(PT)狀態(tài)320并從監(jiān)管狀態(tài)316和通透(PT)狀態(tài)320轉(zhuǎn)回。在監(jiān)管狀態(tài)316中,交換機(jī)200發(fā)送監(jiān)管消息給它的兩個(gè)相鄰鄰居以進(jìn)行監(jiān)管,類似于用于交換保持活躍消息的保持活躍機(jī)制。例如,在一個(gè)新堆疊交換機(jī)被插入ISS 120或者移走一個(gè)已有的交換機(jī)時(shí),交換機(jī)200自動(dòng)地和其他堆疊交換機(jī)交換拓?fù)湫畔?,并且更新其堆疊交換機(jī)鄰居表。如果第一和第二主機(jī)同時(shí)出現(xiàn)故障,其余的堆疊交換機(jī)--其很可能在轉(zhuǎn)發(fā)狀態(tài)308中--進(jìn)入到選舉狀態(tài)312,以選出一個(gè)新的主機(jī)。如果第二主機(jī)發(fā)生故障,并沒有選舉,而是第一主機(jī)選擇空閑單元的一個(gè)擔(dān)任第二主機(jī)的職責(zé)。一旦選定了該單元,第一主機(jī)將新的指派通過一個(gè)被授予最高權(quán)限的選舉指示消息告知整個(gè)堆疊。如果第一主機(jī)發(fā)生故障,并沒有真正的選舉,而是第二主機(jī)將自己提升到成為新的第一主機(jī),并選擇空閑單元的一個(gè)成為新的第二主機(jī)。一旦選定了該單元,新的第一主機(jī)將新的指派通過一個(gè)被授予最高權(quán)限的選舉指示消息告知整個(gè)堆疊。
在通透(PT)狀態(tài)320中,堆疊交換機(jī)的數(shù)據(jù)端口202完全被禁止,以及路由引擎230被配置成將來自它兩個(gè)堆疊端口202S中任意一個(gè)的數(shù)據(jù)業(yè)務(wù)量傳送到相反的堆疊端口。在PT狀態(tài)320中,路由引擎230有效地模擬了在兩個(gè)相鄰堆疊交換機(jī)的堆疊端口之間的一個(gè)固定有線連接,這樣,防止了堆疊交換機(jī)系統(tǒng)120的連續(xù)性否則將有一個(gè)中斷。通透可以用于保持,而不是關(guān)閉與一個(gè)公共單元相鄰的堆疊交換機(jī)間的連續(xù)性,從而維護(hù)了ISS 120,否則,其中沒有實(shí)現(xiàn)示例性實(shí)施方式的堆疊交換機(jī)系統(tǒng)將會(huì)切斷它們的環(huán)拓?fù)?,或者生成兩個(gè)獨(dú)立的鏈。
在優(yōu)選實(shí)施方式中,一個(gè)單元可以回到該通透模式,其中例如兩個(gè)單元擁有相同的OEID。多個(gè)堆疊交換機(jī)最初可以擁有相同的OEID,它們配置了例如相同的廠商設(shè)置的缺省EID或者保持在永久存儲(chǔ)器中的相同的用戶定義的SEID。在兩個(gè)或多個(gè)單元擁有相同的OEID時(shí),除了兩個(gè)或多個(gè)堆疊交換機(jī)中的一個(gè)之外,所有堆疊交換機(jī)都轉(zhuǎn)移到PT狀態(tài)320,直至第一主機(jī)分配給每個(gè)堆疊交換機(jī)一個(gè)新的唯一OEID,并且此時(shí),它們可以返回到轉(zhuǎn)發(fā)狀態(tài)308。具體而言,第一主機(jī)采用一個(gè)全局單元標(biāo)識符(GID),向在通透狀態(tài)320中的單元發(fā)送一個(gè)它的新OEID,以及重新配置該單元以及使它返回到轉(zhuǎn)發(fā)狀態(tài)308必要的其他管理命令。全局單元標(biāo)識符(GID)包括OEID和一個(gè)或多個(gè)附加標(biāo)識符,例如堆疊交換機(jī)的媒質(zhì)訪問控制(MAC)地址,或者例如交換機(jī)的系列號,從而即使兩個(gè)交換機(jī)的OEID相同,也能唯一地識別每個(gè)堆疊交換機(jī)。
如所示,一個(gè)堆疊交換機(jī)可以在發(fā)現(xiàn)狀態(tài)310和監(jiān)管狀態(tài)316之間的任一方向上轉(zhuǎn)移,因?yàn)楸O(jiān)管是需要的,并且早在其中一個(gè)堆疊交換機(jī)檢測到一個(gè)鄰居的發(fā)現(xiàn)狀態(tài)310執(zhí)行,所以,必須執(zhí)行下面詳細(xì)描述的監(jiān)管任務(wù)。
A.可堆疊性確定狀態(tài)圖4示出了一個(gè)對應(yīng)于圖3的可堆疊性確定狀態(tài)的流程圖。在堆疊單元初始化之后,端口狀態(tài)模塊212確定該交換機(jī)是否被網(wǎng)絡(luò)管理員配置成作為一個(gè)可堆疊交換機(jī)工作。如果不是,堆疊端口狀態(tài)決定框402的答案是否定的,交換機(jī)作為一個(gè)獨(dú)立交換機(jī)進(jìn)行標(biāo)準(zhǔn)的轉(zhuǎn)發(fā)操作,而不具備采用ISMP的集成堆疊交換機(jī)系統(tǒng)的優(yōu)勢。如果該交換機(jī)被配置成作為一個(gè)堆疊交換機(jī)工作,中央管理模塊210和堆疊管理器214特別地啟動(dòng)(步驟404)一個(gè)模式定時(shí)器,該定時(shí)器定義了分配給交換機(jī)的,用以確定到一個(gè)或多個(gè)另外堆疊交換機(jī)的連通性的時(shí)間。為了檢測出這些如果存在的堆疊交換機(jī),堆疊管理器214在堆疊端口202S上監(jiān)聽是否存在保持活躍消息或者指示堆疊鏈路是工作著的其它類型信號。其他檢測機(jī)制可以監(jiān)控由堆疊交換機(jī)所產(chǎn)生的電信號,或者可以交換相互關(guān)聯(lián)的保持活躍消息,它們采用消息序列號來與發(fā)送的在前保持活躍消息建立關(guān)系,從而確保雙向通信。在證實(shí)了一個(gè)相鄰堆疊交換機(jī)之后,堆疊鏈路工作測試(步驟408)的答案是肯定的,交換機(jī)200進(jìn)入到發(fā)現(xiàn)狀態(tài)310。在沒有一個(gè)相鄰堆疊交換機(jī),并且模式檢測時(shí)間到期的情況下,模式定時(shí)器消逝測試410的答案是肯定的,堆疊交換機(jī)200初始化成一個(gè)堆疊(狀態(tài)306),從而使網(wǎng)絡(luò)管理員能夠以后連接一個(gè)或多個(gè)堆疊交換機(jī)到堆疊端口202S,以構(gòu)造一個(gè)ISS 120。
B.發(fā)現(xiàn)狀態(tài)圖5是一個(gè)對應(yīng)于圖3的發(fā)現(xiàn)狀態(tài)(狀態(tài)310)的流程圖。在進(jìn)入發(fā)現(xiàn)狀態(tài)310之后,堆疊交換機(jī)200啟動(dòng)初步監(jiān)管行動(dòng)501,并且確定ISS 120的多個(gè)堆疊交換機(jī)的拓?fù)洹3醪奖O(jiān)管行動(dòng)501包括一個(gè)監(jiān)管定時(shí)器的開始和保持活躍消息的初始發(fā)送。盡可能早在啟動(dòng)處理中從堆疊交換機(jī)發(fā)送出保持活躍消息,以增加一個(gè)相鄰堆疊交換機(jī)在斷定不存在通過相關(guān)堆疊端口可到達(dá)的交換機(jī)之前,檢測出特定堆疊交換機(jī)的概率。在某些實(shí)施方式中,一個(gè)堆疊交換機(jī)還將在接收的保持活躍消息中的信息與本地?cái)?shù)據(jù)相比較,以初步確定職責(zé)指派中的改變和拓?fù)洌簿褪鞘欠窀淖兞说谝换虻诙鳈C(jī)。
學(xué)習(xí)拓?fù)渌芑ǖ臅r(shí)間由發(fā)現(xiàn)時(shí)間周期定義,它始于(步驟502)進(jìn)入發(fā)現(xiàn)狀態(tài)310。請求已知堆疊交換機(jī)身份的拓?fù)湔埱笙㈦S后從檢測到一個(gè)相鄰堆疊的堆疊端口202S的每一個(gè)發(fā)出(步驟504)。類似地,交換機(jī)200也監(jiān)控(步驟506)它的堆疊端口202S,看是否從相鄰堆疊交換機(jī)發(fā)來拓?fù)湎嚓P(guān)消息,直至發(fā)現(xiàn)時(shí)間間隔已經(jīng)過去。
如果在任一堆疊端口202S上檢測到一個(gè)拓?fù)湔埱?,接收到拓?fù)湔埱鬁y試514的答案是肯定的,并且單元200以一個(gè)拓?fù)渲甘鞠?yīng)答(步驟516)。拓?fù)渲甘鞠ㄋ赖腎SS 120的一個(gè)或多個(gè)堆疊交換機(jī)的列表,也就是與相反堆疊端口相關(guān)聯(lián)的堆疊鄰居表218中所列的單元。當(dāng)檢測到拓?fù)渲甘?,接收拓?fù)渲甘緶y試512的回答是肯定的,并且該交換機(jī)200將(步驟518)已知堆疊交換機(jī)的拓?fù)渑c接收的該堆疊交換機(jī)列表的拓?fù)湎啾容^。如果拓?fù)洳煌?,并且如果由每個(gè)堆疊交換機(jī)所提供的堆疊交換機(jī)標(biāo)識符在ISS 120內(nèi)是唯一的(測試522),堆疊交換機(jī)200更新(步驟524)它的鄰居表218中的一個(gè)--也就是與在其上接收到拓?fù)渲甘鞠⒌亩询B端口相關(guān)聯(lián)的那個(gè)--更新內(nèi)容為新近學(xué)習(xí)的堆疊交換機(jī)的身份,最好包括OEID、SEID、MAC地址、交換機(jī)硬件類型和啟動(dòng)時(shí)間。在優(yōu)選實(shí)施方式中,如果相鄰堆疊交換機(jī)存在,堆疊交換機(jī)自動(dòng)地發(fā)送(步驟526)一個(gè)具有從兩個(gè)堆疊端口202S中的另一個(gè)新近學(xué)習(xí)的拓?fù)涞母峦負(fù)渲甘窘o該相鄰堆疊交換機(jī)。
如果由與第一堆疊端口相關(guān)聯(lián)的堆疊鄰居表,稱為第一堆疊鄰居表,所給出的拓?fù)浜陀膳c堆疊端口202S對中的第二堆疊端口相關(guān)聯(lián)的堆疊鄰居表,稱為第二堆疊鄰居表,所給出的拓?fù)湎嗤拖喾?,則環(huán)路檢測測試528的答案是肯定的,并且交換機(jī)200進(jìn)入到選舉階段312。然而,如果一個(gè)堆疊交換機(jī)檢測到它使用的工作單元標(biāo)識符與另一交換機(jī)的相同--例如,這可能發(fā)生在其中多個(gè)堆疊交換機(jī)擁有相同的缺省值或者用戶定義的堆疊交換機(jī)標(biāo)識符時(shí)--具有低優(yōu)先級標(biāo)識符的交換機(jī)立即轉(zhuǎn)移到通透(PT)狀態(tài)320,以防止出現(xiàn)尋址不確定。
假定在ISS 120中沒有檢測到環(huán)路,發(fā)現(xiàn)時(shí)間將消逝,在沒有發(fā)現(xiàn)相鄰堆疊交換機(jī)的情況下,堆疊交換機(jī)200進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308,或者如果在ISS 120中檢測到一個(gè)或多個(gè)相鄰堆疊交換機(jī)(測試530),則轉(zhuǎn)移到選舉狀態(tài)312。
在完成了發(fā)現(xiàn)狀態(tài)310之后,所有堆疊交換機(jī)最好交換了拓?fù)渲甘鞠⒑蛯W(xué)習(xí)了在ISS 120中存在的所有其它堆疊交換機(jī)的OEID。在優(yōu)選實(shí)施方式中,堆疊交換機(jī)還傳播每個(gè)堆疊交換機(jī)的啟動(dòng)時(shí)間和MAC地址,它們和OEID一起,構(gòu)成了一個(gè)選舉鍵,用于按照下面描述的過程,輔助進(jìn)行堆疊選舉。
C.選舉狀態(tài)圖6A和6B一起給出了對應(yīng)于圖3的選舉狀態(tài)的流程圖。在進(jìn)入選舉狀態(tài)312之后,堆疊交換機(jī)200確定堆疊交換機(jī)的管理職責(zé),也就是該交換機(jī)充當(dāng)?shù)谝欢询B交換機(jī)、第二堆疊交換機(jī)還是一個(gè)空閑堆疊交換機(jī)。第一主機(jī),其根據(jù)定義包括主CMM,是負(fù)責(zé)分配工作單元標(biāo)識符的交換機(jī),而第二堆疊交換機(jī)與第一主機(jī)同步,在第一主機(jī)變得不工作時(shí),準(zhǔn)備承擔(dān)第一主機(jī)的職責(zé)。
如果識別了第一主機(jī),第一主機(jī)已知測試602的答案是肯定的。如果堆疊交換機(jī)200本身是第一主機(jī)(測試604),如果第二主機(jī)尚未識別(測試610),該交換機(jī)進(jìn)入確定(步驟612)第二主機(jī)。在優(yōu)選實(shí)施方式中,選擇的第二主機(jī)是具有僅次于第一主機(jī)的最低選舉鍵的堆疊交換機(jī)。在優(yōu)選實(shí)施方式中,將自己視為第一主機(jī)的堆疊交換機(jī)發(fā)送(步驟614)一個(gè)選舉指示,向在ISS 120中的所有其它交換機(jī)宣稱它自己是第一主機(jī)。如果第一主機(jī)已知,但不同于當(dāng)前堆疊交換機(jī)200,該交換機(jī)進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308,并聽從第一主機(jī)進(jìn)行必要的ISS 120管理操作,包括例如下面將詳細(xì)討論的新堆疊交換機(jī)標(biāo)識符的指派。
在沒有已知第一主機(jī)的情況下,堆疊交換機(jī)200確定(步驟606)第二主機(jī)是否已知。如果交換機(jī)200自身是第二堆疊交換機(jī),該交換機(jī)將自己升級為第一主機(jī),并在轉(zhuǎn)移到單元號碼指派狀態(tài)314之前發(fā)送(步驟614)選舉指示消息。如果當(dāng)前堆疊交換機(jī)知道第二主機(jī)不是它自己,該堆疊交換機(jī)認(rèn)為自己承擔(dān)空閑職責(zé),進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308。
在不知道第一和第二主機(jī)的情況下,堆疊交換機(jī)200按照圖6B給出的過程,嘗試確定,也就是選舉ISS 120的一個(gè)單元。具體來說,多個(gè)堆疊交換機(jī)最好遵從一個(gè)層次編號方案來識別具有最小選舉鍵(以下定義)的單元,盡管本領(lǐng)域技術(shù)人員已知的各種其它優(yōu)先級方案也可能適用。該選舉鍵最好包括交換機(jī)的啟動(dòng)時(shí)間、OEID和MAC地址。啟動(dòng)時(shí)間代表了交換機(jī)加電并進(jìn)入可堆疊性確定步驟302的時(shí)間。OEID最好是一個(gè)8比特號碼,用以從ISS 120的所有其它堆疊交換機(jī)中唯一地識別每個(gè)堆疊交換機(jī)。OEID一般由第一主機(jī)自動(dòng)地指派,盡管網(wǎng)絡(luò)管理員也可以定義一個(gè)或更多。
發(fā)現(xiàn)了所有堆疊交換機(jī),并且將每個(gè)交換機(jī)的選舉鍵傳播給ISS120中的所有其它交換機(jī)之后,當(dāng)前堆疊交換機(jī)200首先通過比較(步驟620)它的選舉鍵和所有堆疊交換機(jī)的選舉鍵,本地確定它是否應(yīng)該承擔(dān)第一主機(jī)的職責(zé)。如果當(dāng)前交換機(jī)200確定它具有一個(gè)較低優(yōu)先級的選舉鍵,競選成功者測試(步驟622)的答案是否定的,該交換機(jī)轉(zhuǎn)移到轉(zhuǎn)發(fā)狀態(tài)308。然而,如果當(dāng)前交換機(jī)200確定它具有優(yōu)先級最高的選舉鍵,并且因此是競選成功者,那么該交換機(jī)臨時(shí)承擔(dān)第一主機(jī)的職責(zé),啟動(dòng)(步驟624)一個(gè)規(guī)定了分配給交換機(jī)完成選舉并匯聚到下一狀態(tài)的時(shí)間周期的選舉定時(shí)器,最好是三秒。優(yōu)選實(shí)施方式中的堆疊交換機(jī)200還分發(fā)一個(gè)或多個(gè)選舉請求消息(步驟626),以通知ISS中的其他單元它臨時(shí)承擔(dān)第一主機(jī)的職責(zé)。
本領(lǐng)域中普通技術(shù)人員會(huì)理解,選舉請求消息和選舉定時(shí)器的一個(gè)目的是防止兩個(gè)或多個(gè)單元無意間災(zāi)難性地把自己升級為同一ISS 120中的PMS。如果例如在發(fā)現(xiàn)階段(狀態(tài)310)期間一個(gè)堆疊單元或堆疊鏈路出現(xiàn)故障或者一個(gè)新單元在發(fā)現(xiàn)階段完成之后立即加電,這樣臨時(shí)將ISS 120劃分成兩個(gè)或多個(gè)分離的部分,每個(gè)部分選出一個(gè)不同的第一主機(jī),那么ISS 120中的一個(gè)或多個(gè)堆疊交換機(jī)相信它是第一主機(jī)。為了防止這種情況導(dǎo)致ISS 120癱瘓,確定它自己是第一主機(jī)的優(yōu)選實(shí)施方式的每個(gè)堆疊交換機(jī)分發(fā)(步驟626)一個(gè)或多個(gè)選舉請求消息,最好是三個(gè),給臨時(shí)承擔(dān)第一主機(jī)的職責(zé)的所有其它堆疊交換機(jī),這樣,提供給競爭交換機(jī)一個(gè)示例性的機(jī)制,用以通過通知和鍵比較來輔助第一主機(jī)的仲裁。
如上所述,如果在選舉定時(shí)器消逝(測試632)之前,交換機(jī)200檢測出(測試636)另一個(gè)選舉請求,該交換機(jī)比較(步驟644)它的選舉鍵和臨時(shí)以第一主機(jī)工作的其它堆疊交換機(jī)的選舉鍵?;谧罡邇?yōu)先級選舉鍵選擇勝出的交換機(jī)通過重發(fā)(步驟648)它的選舉請求來重新表明它自己是第一主機(jī),而失敗的交換機(jī)則進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308。勝出的第一主機(jī)分發(fā)(步驟642)選舉指示消息給所有的堆疊單元,以告知它們新的第一和第二主機(jī)的身份。除了第二主機(jī)之外,其它目前沒有指定職責(zé)的單元在接收到該消息之后,都承擔(dān)空閑職責(zé)。
在選舉時(shí)間消逝之前,接收到一個(gè)選舉指示(測試634)的堆疊交換機(jī)通過進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308而不發(fā)送任何進(jìn)一步的選舉請求消息,來實(shí)施該消息。一般而言,接收到選舉指示消息的各個(gè)單元必須總是聽從該消息,除非另一單元已經(jīng)承擔(dān)了第一主機(jī)的職責(zé)。這種例外是需要的,以協(xié)調(diào)因?yàn)槎询B合并情況,或者環(huán)上出現(xiàn)兩個(gè)故障而導(dǎo)致多個(gè)第一主機(jī)出現(xiàn)在同一堆疊的情況。
在沒有其他堆疊交換機(jī)試圖充當(dāng)?shù)谝恢鳈C(jī)的情況下,選舉定時(shí)器消逝(測試632),堆疊交換機(jī)200指派(步驟640)一個(gè)第二主機(jī),發(fā)送一個(gè)選舉指示(步驟642);并進(jìn)入到單元號碼指派狀態(tài)314。
如上所討論,在優(yōu)選實(shí)施方式中,選舉狀態(tài)312采用兩類選舉消息,也就是(a)由單元用來請求第一主機(jī)職責(zé)或者請求當(dāng)前主機(jī)的身份的選舉請求消息,以及(b)由第一主機(jī)用來向其他堆疊成員廣播它的身份,以及第二主機(jī)的身份的選舉指示消息。圖11給出了一個(gè)優(yōu)選實(shí)施方式中采用的代表性的堆疊選舉消息格式。堆疊選舉消息1100包括一個(gè)消息類型字段1102,用以區(qū)分一個(gè)選舉請求和一個(gè)選舉指示;一個(gè)始發(fā)者身份鍵1104,包括一個(gè)OEID和MAC地址對,它最好唯一標(biāo)識該單元,將其與ISS 120中所有其它單元區(qū)分開,而不管兩個(gè)單元是否擁有相同的OEID;一個(gè)跳計(jì)數(shù)字段1106,用以跟蹤在到達(dá)目的堆疊交換機(jī)時(shí),該消息傳播所經(jīng)過的單元數(shù)目;一個(gè)第一選舉鍵字段1108,包括由發(fā)起單元所識別的第一堆疊交換機(jī)的啟動(dòng)時(shí)間、OEID和MAC地址;以及一個(gè)第二選舉鍵字段1110,包括由發(fā)起單元所識別的第二堆疊交換機(jī)的啟動(dòng)時(shí)間、OEID和MAC地址。跳計(jì)數(shù)字段1106最初由發(fā)出該消息的堆疊交換機(jī)根據(jù)一個(gè)預(yù)定的數(shù)定義。在經(jīng)由它們的堆疊端口從單元到單元發(fā)送消息的過程中,跳計(jì)數(shù)在每個(gè)中間堆疊交換機(jī)處減量,直至跳計(jì)數(shù)為0,此時(shí)刪除該消息。
D.單元號碼指派狀態(tài)圖7A和7B一起給出了對應(yīng)于圖3的單元號碼指派狀態(tài)的流程圖。在進(jìn)入單元號碼指派狀態(tài)314之后,ISS 120的第一堆疊交換機(jī)確定那些還沒有一個(gè)唯一插槽編號或者具有一個(gè)未指定的插槽編號,例如一個(gè)制造商定義的缺省值的單元的OEID。如前所述,OEID用于在堆疊交換機(jī)之間尋址PDU和控制消息。在可能的情況下,第一主機(jī)最好嘗試以開始于1或者最小的可用整數(shù)值的有順序的分配OEID給連續(xù)的交換機(jī)。
如第一堆疊交換機(jī)(PSS)OEID測試702所示,PSS評估它自己的工作單元標(biāo)識符,在需要時(shí),(步驟704)給它自己指派最小的可用OEID。為了方便網(wǎng)絡(luò)管理員,第一主機(jī)最好指派了單元標(biāo)識符1,如果其以前沒有指派給另一單元,那么它應(yīng)該可用。第一主機(jī)依次對每一個(gè)通過與第一堆疊端口鄰居表相關(guān)聯(lián)的索引_A,以及與第二堆疊端口鄰居表相關(guān)聯(lián)的索引_B與兩個(gè)堆疊端口202S相關(guān)聯(lián)的鄰居表218中給出的每一個(gè)堆疊交換機(jī)進(jìn)行相應(yīng)的操作。如上所述,索引_A被初始化(步驟706)為1,對應(yīng)于第一鄰居表中給出的第一單元,之后增量(步驟714)索引_A。如果第一鄰居表中給出了一個(gè)或多個(gè)相鄰堆疊交換機(jī),鄰居_A測試708的答案是肯定的,并且為每一個(gè)具有未指定OEID(710)的鄰居指派(步驟712)一個(gè)從最小的可用單元標(biāo)號開始的OEID。一個(gè)單元在第一次啟動(dòng)或者它的配置信息被清除時(shí)通常不會(huì)有OEID。如果該單元以前啟動(dòng)過,并且分配有一個(gè)OEID,那么該單元通常會(huì)有一個(gè)OEID,它以SEID的形式保留在永久存儲(chǔ)器中。每一個(gè)端口_A鄰居堆疊交換機(jī),也就是由數(shù)量_鄰居_A所給出的總數(shù),在需要時(shí)指派一個(gè)OEID,此時(shí)索引_A大于數(shù)量_鄰居_A,以及鄰居_A測試708的答案是否定的。如果ISS 120的特征是例如一個(gè)環(huán)路拓?fù)洌總€(gè)堆疊交換機(jī)能夠從第一堆疊端口訪問,因此,在圖7A中所給出的過程下指派一個(gè)OEID。這種情況下,圖7B的環(huán)路測試720的答案是肯定的,以及指派的OEID被傳送到每個(gè)可應(yīng)用單元。
參看圖7B,在完成可從第一堆疊端口訪問的單元的OEID指派過程后,第一主機(jī)為從第二堆疊端口可訪問的單元指派OEID。在優(yōu)選實(shí)施方式中,進(jìn)行指派的順序取決于ISS 120的拓?fù)?,以及從各個(gè)堆疊端口可以訪問的單元的數(shù)量。如果ISS 120拓?fù)涞奶卣魇且粋€(gè)鏈,并且有從兩個(gè)堆疊端口202S都可以訪問的單元,則從最遠(yuǎn)的單元開始,以升序向離開第二堆疊端口的單元指派OEID。該OEID指派方案因此指派OEID給在一個(gè)鏈中的單元的時(shí)候,就像這些單元在一個(gè)環(huán)中連接一樣,從而提供了一種便于網(wǎng)絡(luò)管理員使用的直觀編號方案。具體來說,如果有單元可以通過第一堆疊端口到達(dá)--也就是說,數(shù)量_鄰居_A測試722是否定的--離端口_B最遠(yuǎn)的相鄰堆疊交換機(jī)--由鄰居表中索引_B=數(shù)量_鄰居_B給出--指派(步驟732)最小可用單元標(biāo)號,如果該單元還沒有指派(測試730)OEID。如減量步驟734表明,減小索引_B,根據(jù)需要指派OEID給下一個(gè)最近的堆疊交換機(jī),直至處理完離開該第二堆疊端口的相鄰堆疊交換機(jī)。在每個(gè)單元都指派了OEID之后,索引_B測試726的答案是肯定的,單元標(biāo)識符以O(shè)EID指派消息的形式,傳送(步驟728)給它們各自的堆疊交換機(jī),并且第一主機(jī)進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)308。
與上面的描述相反,在沒有相鄰堆疊交換機(jī)可以從第一堆疊端口訪問時(shí)--也就是數(shù)量_鄰居_A等于0,以及測試722是肯定的--開始于鄰居_B表中首先列出的單元所給出的相鄰鄰居,OEID指派一般從最小可用OEID開始。具體來說,鄰居_B表中索引_B所指位置處的堆疊交換機(jī)--也就是鄰居_B[索引_B]--指派(步驟746)了最小可用OEID,直至需要OEID的各個(gè)單元都指派了OEID(步驟744),并且遍歷了整個(gè)鄰居_B表,這發(fā)生在索引_B大于數(shù)量_鄰居_B,并且鄰居測試步驟742的回答是否定時(shí)。
圖8A和8B分別給出了在指派單元號碼給左邊之前,以及指派單元號碼給右邊之后,ISS系統(tǒng)800的例子。在這些例子中,ISS 800包括四個(gè)堆疊交換機(jī)801-804,以環(huán)路或環(huán)的形式連接。在單元號碼指派狀態(tài)314之前,每個(gè)單元都有一個(gè)未指定的OEID,并且第三交換機(jī)803擔(dān)當(dāng)?shù)谝恢鳈C(jī)的職責(zé)。按照本發(fā)明,第三交換機(jī)803給自己指派了最小的可用OEID,也就是一(1),并且以依次遞增的方式指派可以從第一堆疊端口,也就是端口_A,訪問的單元。如圖8B所示,與PSS 803端口_A相鄰的堆疊交換機(jī)804指派了OEID二(2),下一最近的堆疊交換機(jī)801指派了OEID三(3),離第一主機(jī)803端口_A最遠(yuǎn)的堆疊交換機(jī)802指派了OEID四(4)。在從第一主機(jī)接收到廣播所有單元的OEID的消息后,各個(gè)堆疊交換機(jī)801-804在易失存儲(chǔ)器中存儲(chǔ)它自己的新OEID指派,將它自己的SEID設(shè)置成與它的新OEID相等,將它自己的SEID存儲(chǔ)到永久存儲(chǔ)器中。從來自第一主機(jī)的廣播OEID的消息還包括與各個(gè)OEID相關(guān)聯(lián)的MAC地址。
圖9A和9B分別給出了在指派單元號碼給左邊之前,以及指派單元號碼給右邊之后,ISS系統(tǒng)900的例子。在這些例子中,ISS 900包括四個(gè)堆疊交換機(jī)901-904,以鏈的形式連接。在單元號碼指派狀態(tài)314之前,每個(gè)單元都有一個(gè)未指定的OEID,并且第三交換機(jī)903擔(dān)當(dāng)?shù)谝恢鳈C(jī)的職責(zé)。按照本發(fā)明,第三交換機(jī)903給自己指派了最小的可用OEID,也就是一(1),并且以依次遞增的方式指派可以從第一堆疊端口,也就是端口_A,訪問的單元。如圖9B所示,與第一主機(jī)903端口_A相鄰的堆疊交換機(jī)904指派了OEID二(2)。由于存在一個(gè)或多個(gè)堆疊交換機(jī)與第一主機(jī)903的堆疊端口_A相鄰,第一主機(jī)從離端口_B最遠(yuǎn)的堆疊交換機(jī)開始,以升序指派OEID。具體而言,第一主機(jī)903指派下一最小可用的單元編號,也就是OEID三(3)給遠(yuǎn)端堆疊交換機(jī)901,而在第一主機(jī)方向中下一堆疊交換機(jī)902則指派了OEID四(4)。這樣,由PSS 903的自動(dòng)單元號碼指派導(dǎo)致了一個(gè)單元號碼的依次上升序列,堆疊交換機(jī)鏈好像是一個(gè)環(huán),從而為網(wǎng)絡(luò)管理員自動(dòng)地提供了一種方便且直觀的編號協(xié)定。
圖10A和10B分別給出了在指派單元號碼之前,以及指派單元號碼之后,ISS系統(tǒng)1000的例子。在這些例子中,ISS 1000包括四個(gè)堆疊交換機(jī)1001-1004,以環(huán)的形式連接。在單元號碼指派狀態(tài)314之前,一些但不是全部單元有以前指定的單元編號,也就是第一單元有OEID二(2),第三單元有OEID一(1)。和前面一樣,第三交換機(jī)1003擔(dān)當(dāng)?shù)谝恢鳈C(jī)的職責(zé)。按照本發(fā)明,與第一主機(jī)1003端口_A相鄰的堆疊交換機(jī)1004被指派了最小的可用單元編號,也就是OEID三(3)。繼續(xù)到通過第一主機(jī)1003端口_A可以到達(dá)的下一堆疊交換機(jī),第一主機(jī)以升序的形式指派可用OEID。具體來說,第一主機(jī)1003指派下一最小可用單元編號四(4)給堆疊交換機(jī)1002。
E.轉(zhuǎn)發(fā)狀態(tài)再次參看圖3,在單元號碼指派狀態(tài)314之后,ISS的堆疊交換機(jī)適于轉(zhuǎn)移到轉(zhuǎn)發(fā)狀態(tài)308,在其中各個(gè)交換機(jī)100-103適于發(fā)送數(shù)據(jù)業(yè)務(wù)量給所有其它交換機(jī)。在優(yōu)選實(shí)施方式中,堆疊交換機(jī)之間的通信可以采用一個(gè)交換機(jī)間標(biāo)簽,用于有效地轉(zhuǎn)發(fā)PDU經(jīng)過ISS120,而各個(gè)接收單元不執(zhí)行獨(dú)立的分類和轉(zhuǎn)發(fā)操作,這些操作非常消耗資源并且有時(shí)候是不必要的,其中假定堆疊交換機(jī)彼此依次連接。優(yōu)選實(shí)施方式中采用的交換機(jī)間標(biāo)簽包括一個(gè)協(xié)議標(biāo)識符,源單元的OEID,目的單元的OEID,它們前綴到經(jīng)過ISS傳送的PDU。在源和目的單元之間的堆疊交換機(jī)接收到PDU后,該中間單元檢查協(xié)議標(biāo)識符標(biāo)簽,確定自己不是目的單元,將PDU轉(zhuǎn)發(fā)到與接收到該P(yáng)DU的端口相反的端口。目的單元在接收之后,從PDU中移去標(biāo)簽,將該P(yáng)DU轉(zhuǎn)發(fā)給數(shù)據(jù)端口202,從而通往在該P(yáng)DU中所指定的最終目的節(jié)點(diǎn)。
F.通透狀態(tài)如圖3所示,優(yōu)選實(shí)施方式的一個(gè)或多個(gè)堆疊交換機(jī)適于從一個(gè)或多個(gè)其它狀態(tài),包括轉(zhuǎn)發(fā)狀態(tài)308,轉(zhuǎn)移到通透狀態(tài)320。通透(PT)狀態(tài)320提供了一種機(jī)制,在禁止一個(gè)單元的交換功能時(shí),它能夠防止數(shù)據(jù)業(yè)務(wù)量在ISS 120上中斷,同時(shí)仍允許網(wǎng)絡(luò)管理員監(jiān)控并發(fā)送配置命令給禁止的單元。具體而言,例如禁止執(zhí)行交換和路由選擇操作的單元轉(zhuǎn)移到通透狀態(tài)320,其中從一個(gè)堆疊端口202S接收的業(yè)務(wù)量轉(zhuǎn)發(fā)給相反的堆疊端口。數(shù)據(jù)端口202則相反,在一種禁止業(yè)務(wù)量收發(fā)的阻塞模式下。本領(lǐng)域技術(shù)人員會(huì)理解,即使一個(gè)特定單元不能執(zhí)行第二層交換和第三層路由選擇,PT狀態(tài)320仍能維護(hù)ISS上的傳輸連續(xù)性。
在優(yōu)選實(shí)施方式中,一個(gè)單元在以下情況中的一條或多條下,進(jìn)入PT狀態(tài)320交換控制器標(biāo)識符(SCID)不夠;堆疊中單元太多;相同的OEID,也就是同一OEID被兩個(gè)或多個(gè)單元使用;以及通過管理命令的用戶請求。在優(yōu)選實(shí)施方式中,第一主機(jī)被禁止工作在PT狀態(tài)320。只有職責(zé)為第二主機(jī)、空閑或未指派的堆疊交換機(jī)才能在該狀態(tài)下工作。在PT狀態(tài)320中的單元可以承擔(dān)第二主機(jī)或者空閑的職責(zé),而不需要重啟。
在優(yōu)選實(shí)施方式中,在PT狀態(tài)320中的單元由一個(gè)特殊范圍的通透單元標(biāo)識符(PTID)來唯一標(biāo)識。PTID與OEID相似,只是PTID是一個(gè)運(yùn)行時(shí)間值,用以讓該堆疊中所有軟件應(yīng)用程序都能識別在通透狀態(tài)中的單元,而OEID是所有其它狀態(tài),包括例如轉(zhuǎn)發(fā)狀態(tài)308使用的主要單元標(biāo)識符。PTID的范圍最好與OEID范圍同延,并具有數(shù)字偏移量。如果,例如單元數(shù)量在1和100之間變化,PTID的范圍可以從101到200,也就是單元的最大數(shù)量加100。PTID由第一主機(jī)利用通透指派消息來指派,該通透指派消息包括一個(gè)或多個(gè)單元的列表--由MAC地址和OEID識別--這些是進(jìn)入PT狀態(tài)320以及改變的原因。
在進(jìn)入PT狀態(tài)320之前,進(jìn)入通透模式的交換機(jī)的堆疊管理器214必須將狀態(tài)變化通知給感興趣的軟件應(yīng)用程序,通知應(yīng)用程序該單元不再作為標(biāo)準(zhǔn)堆疊單元工作,并允許交換機(jī)禁止所有的網(wǎng)絡(luò)用戶端口202。此外,堆疊管理器214還通知ISS 120中的所有單元該交換機(jī)轉(zhuǎn)入PT狀態(tài)320,并且提供進(jìn)入該狀態(tài)的理由,以及連同交換機(jī)的原OEID。一個(gè)單元最好產(chǎn)生適當(dāng)?shù)娜罩疽约肮芾碲?,以將該事件告警給網(wǎng)絡(luò)管理員。
當(dāng)一個(gè)單元轉(zhuǎn)移到PT狀態(tài)320時(shí),由第一主機(jī)指派一個(gè)PTID,該P(yáng)TID被發(fā)送給該單元,并且在任何消息交互中使用PTID,而不是以前的OEID。在PT狀態(tài)320中的單元一般只通過堆疊管理器協(xié)議傳輸與管理應(yīng)用程序進(jìn)行通信。
從拓?fù)浣嵌瓤矗瑸榱舜_定跳計(jì)數(shù),將PT狀態(tài)320中的單元看作是一個(gè)跳。例如,在由1-101-4-5-6給出的一個(gè)堆疊交換機(jī)序列中,其中與101相關(guān)聯(lián)的單元是在通透模式,單元4與單元1相差兩跳。因此,在通透狀態(tài)下的單元的堆疊管理器214在進(jìn)行傳輸之前,負(fù)責(zé)對接收的消息中的跳計(jì)數(shù)字段進(jìn)行相減操作。在內(nèi)部傳播機(jī)制的變化中,其中沒有采用跳計(jì)數(shù)字段,該單元總是將接收的消息轉(zhuǎn)發(fā)給相反的堆疊端口202S。
在通透狀態(tài)320中的一個(gè)單元適于在堆疊端口之間發(fā)送數(shù)據(jù)業(yè)務(wù)量,并接收由第一主機(jī)發(fā)往PTID的ISS管理消息。在優(yōu)選實(shí)施方式中,通透單元接收并處理以下接收的堆疊協(xié)議消息監(jiān)管消息、拓?fù)湔埱?、拓?fù)渲甘鞠ⅰ⑦x舉指示消息、SCID標(biāo)識符指派和重載請求,也就是重啟一個(gè)單元的請求。通透單元最好還適于產(chǎn)生并發(fā)送以下堆疊協(xié)議消息監(jiān)管消息、拓?fù)湔埱笙⒁约巴負(fù)渲甘鞠?。在通透狀態(tài)中的一個(gè)單元一般不作為一個(gè)候選者參與選舉處理。然而,它最好能訪問第一和第二主機(jī)單元的身份。它最好也參與識別重復(fù)主機(jī)、重復(fù)OEID以及甚至重復(fù)PTID的處理,在兩個(gè)堆疊合并,以及每個(gè)堆疊有一個(gè)具有相同PTID的PT單元時(shí),上述情況可能發(fā)生。
以下段落總結(jié)了一個(gè)單元如何響應(yīng)SCID被過度消耗的情況,堆疊交換機(jī)多得ISS無法支持的情況,有重復(fù)OEID的情況,以及用戶通過管理命令間接地請求通透狀態(tài)的情況,到達(dá)通透操作模式??偨Y(jié)段落中的編號是為了分類各個(gè)例子,并不反映示例性步驟的獨(dú)特順序排列。
SCID的過度消耗1.將一個(gè)單元放入PT狀態(tài)320的決定由第一主機(jī)作出。第一主機(jī)分發(fā)一個(gè)具有被指令進(jìn)入PT狀態(tài)的單元列表以及各個(gè)單元的原因的通透指派消息。為需要進(jìn)入PT狀態(tài)320的各個(gè)單元分配一個(gè)PTID。
2.在接收到一個(gè)PT指派消息后,一個(gè)單元檢查它是否被指令轉(zhuǎn)移到通透狀態(tài)。如果是,該單元將它的OEID改變?yōu)樵谠撓⒅兄付ǖ腜TID,并記下進(jìn)入通透模式的原因。該單元隨后3.清除與SCID請求消息相關(guān)聯(lián)的一個(gè)標(biāo)記比特,以停止請求一個(gè)SCID;4.更新它的職責(zé)為通透;5.通知感興趣的應(yīng)用程序;以及6.對它的網(wǎng)絡(luò)處理器206的交換結(jié)構(gòu)(未示出)進(jìn)行編程,使得從堆疊端口_A接收到的傳統(tǒng)用戶業(yè)務(wù)量從堆疊端口_B發(fā)出,或者相反。
堆疊中單元過多1.將一個(gè)單元放入PT狀態(tài)320的決定由第一主機(jī)作出。第一主機(jī)分發(fā)一個(gè)具有被指令進(jìn)入PT狀態(tài)的單元列表以及各個(gè)單元的原因的通透指派消息。為需要進(jìn)入PT狀態(tài)320的各個(gè)單元分配一個(gè)PTID。
2.在接收到一個(gè)PT指派消息后,一個(gè)單元檢查它是否被指令轉(zhuǎn)移到通透狀態(tài)。如果是,該單元將它的OEID改變?yōu)樵谠撓⒅兄付ǖ腜TID,并記下進(jìn)入通透模式的原因。該單元隨后3.更新它的職責(zé)為通透;4.通知感興趣的應(yīng)用程序;以及5.對它的網(wǎng)絡(luò)處理器206的交換結(jié)構(gòu)(未示出)進(jìn)行編程,使得從堆疊端口_A接收到的傳統(tǒng)用戶業(yè)務(wù)量從堆疊端口_B發(fā)出,或者相反。
重復(fù)OEID1.進(jìn)入PT狀態(tài)320的決定首先由本地堆疊單元發(fā)起。當(dāng)一個(gè)單元知道另一堆疊單元具有相同OEID時(shí),它比較它的選舉鍵和遠(yuǎn)端重復(fù)單元的選舉鍵。如果它的選舉鍵比該另一個(gè)單元的選舉鍵優(yōu)先級低,則該本地單元放棄該OEID。
2.該單元將其OEID改變成一個(gè)專用(特殊)值,這里稱為堆疊重復(fù)單元標(biāo)識符,例如值254,它是一個(gè)臨時(shí)ID,在收到PTID之前使用。
3.當(dāng)?shù)谝恢鳈C(jī)通過例如拓?fù)浠虮O(jiān)管消息,檢測到有一個(gè)單元的PTID等于該堆疊重復(fù)單元標(biāo)識符時(shí),它分配一個(gè)唯一的PTID給該單元,并通過一個(gè)其中的字段原因設(shè)置為指示重復(fù)OEID的PT指派消息將該新的PTID分發(fā)給該單元。為需要進(jìn)入通透模式的各個(gè)單元分配一個(gè)新的PTID。
4.在接收到一個(gè)PT指派消息后,一個(gè)單元檢查它是否被指令轉(zhuǎn)移到PT狀態(tài)320。如果是,該單元將它的OEID改變成在該消息中指定的PTID,并記下進(jìn)入通透模式的原因。該單元隨后5.更新它的職責(zé)為通透;6.通知感興趣的應(yīng)用程序;以及7.對它的網(wǎng)絡(luò)處理器206的交換結(jié)構(gòu)(未示出)進(jìn)行編程,使得從堆疊端口_A接收到的傳統(tǒng)用戶業(yè)務(wù)量從堆疊端口_B發(fā)出,或者相反。
在通過管理命令用戶請求時(shí)在一些情況下,即使沒有出現(xiàn)沖突或者缺少資源情況,PT狀態(tài)320仍可能有用。本發(fā)明的實(shí)施方式提供了一種管理命令,網(wǎng)絡(luò)管理員可以通過它來“清除”SEID,也就是在永久存儲(chǔ)器中存儲(chǔ)的單元編號。盡管不必采用PT狀態(tài)320來更新保留的單元標(biāo)識符,當(dāng)單元數(shù)量達(dá)到最大時(shí),將一個(gè)單元放入通透狀態(tài)可以有助于對堆疊進(jìn)行重新編號。例如,假定堆疊單元的最大數(shù)量是4,允許的OEID的范圍是[1..4],各個(gè)單元最初配置成一個(gè)1-4-3-2環(huán),這些單元需要重新編號,使得最終配置是1-2-3-4。
如果該實(shí)現(xiàn)需要重啟用以使保存在永久存儲(chǔ)器中的新的單元標(biāo)識符成為工作單元標(biāo)識符,那么一般不分割該堆疊而達(dá)到這一點(diǎn)的唯一方法最好是通過重啟整個(gè)堆疊。可以采用以下過程a)堆疊清除OEID=2為通透狀態(tài),從而導(dǎo)致工作拓?fù)銸EID為1-4-3-101,SEID為1-4-3-0;b)堆疊為具有OEID=4的單元設(shè)置SEID=2OEID為1-4-3-101,SEID為1-2-3-0;c)重載單元OEID=4,從而在重啟之后,OEID為1-2-3-101,SEID為1-2-3-0;d)重載單元PTID=101,從而在重啟之后,OEID為1-2-3-4,SEID為1-2-3-4;通過這種方式,實(shí)際上只是重啟了需要重新編號的單元。
用戶請求轉(zhuǎn)移到通透狀態(tài)的事件序列如下1.進(jìn)入通透模式的決定首先由第一主機(jī)作出。第一主機(jī)分發(fā)一個(gè)具有被指令進(jìn)入PT狀態(tài)的單元列表以及其中字段原因被設(shè)置為管理清除插槽的通透指派消息。為需要進(jìn)入PT狀態(tài)的各個(gè)單元分配一個(gè)PTID。
2.在接收到一個(gè)PT指派消息后,一個(gè)單元檢查它是否被指令轉(zhuǎn)移到通透狀態(tài)320。如果是,該單元將它的OEID改變?yōu)樵谠撓⒅兄付ǖ腜TID,并記下進(jìn)入通透模式的原因。該單元隨后3.從永久存儲(chǔ)器中清除該SEID;4.更新它的職責(zé)為通透;5.通知感興趣的應(yīng)用程序;以及6.對它的網(wǎng)絡(luò)處理器206的交換結(jié)構(gòu)(未示出)進(jìn)行編程,使得從堆疊端口_A接收到的傳統(tǒng)用戶業(yè)務(wù)量從堆疊端口_B發(fā)出,或者相反。
G.監(jiān)管狀態(tài)再次參看圖3,優(yōu)選實(shí)施方式的所有堆疊交換機(jī)都適于產(chǎn)生定期的監(jiān)管消息,并把它們發(fā)送到與它們的相鄰鄰居。通過這種方式,每個(gè)堆疊交換機(jī)能夠監(jiān)控網(wǎng)絡(luò)拓?fù)涞淖兓?。具體來說,監(jiān)管消息的交換使得單元能夠檢測出何時(shí)一個(gè)相鄰鄰居插入到堆疊中,檢測出何時(shí)通往相鄰鄰居的物理連接被改變,檢測出與一個(gè)鄰居的通信是否已經(jīng)丟失,即使與該鄰居之間的物理鏈路仍然工作。在優(yōu)選實(shí)施方式中,ISS 120的各個(gè)堆疊交換機(jī)定期地從一個(gè)或多個(gè)其它狀態(tài),包括發(fā)現(xiàn)狀態(tài)310、選舉狀態(tài)312、單元號碼指派狀態(tài)314、轉(zhuǎn)發(fā)狀態(tài)308以及通透狀態(tài)320,轉(zhuǎn)移到監(jiān)管狀態(tài)316。然而,本領(lǐng)域技術(shù)人員會(huì)理解,拓?fù)浔O(jiān)管狀態(tài)316和轉(zhuǎn)發(fā)狀態(tài)308可以同時(shí)工作,因此能夠合并成單個(gè)狀態(tài)。
圖12給出了按照優(yōu)選實(shí)施方式的堆疊監(jiān)管消息的內(nèi)容。該監(jiān)管消息包括一個(gè)消息類型1202,它將該消息識別為一個(gè)監(jiān)管消息;一個(gè)始發(fā)方信息字段1204,包括發(fā)送單元的OEID、MAC地址、始發(fā)堆疊端口和單元硬件類型;一個(gè)第一識別鍵字段1206,包括由發(fā)送單元所識別的第一主機(jī)的OEID和MAC地址;一個(gè)第二識別鍵字段1208,包括由發(fā)送單元所識別的第二主機(jī)的OEID和MAC地址;一個(gè)單獨(dú)標(biāo)記字段1210,其被設(shè)置時(shí)表明發(fā)送單元在相反的堆疊端口上沒有相鄰堆疊交換機(jī);一個(gè)SCID請求矩陣字段1212,提供了一個(gè)其處理器ID,例如交換控制器ID未知或未指派的堆疊單元的列表。
根據(jù)在進(jìn)入發(fā)現(xiàn)狀態(tài)310后被初始化501的監(jiān)管定時(shí)器從堆疊端口202S發(fā)送監(jiān)管消息。在優(yōu)選實(shí)施方式中,監(jiān)管消息每秒定期地發(fā)送,盡管時(shí)間可以根據(jù)例如拓?fù)涓淖?。如下面詳?xì)描述,例如,可以采用監(jiān)管消息交換(1)作為一種保持活躍機(jī)制;(2)在ISS120中檢測出(a)拓?fù)涓淖儯?b)具有重復(fù)OEID的單元,(c)ISS中的重復(fù)第一或第二主機(jī);(3)激活驗(yàn)證堆疊完整性的處理;以及(4)如果需要,采取行動(dòng)以糾正并更新堆疊拓?fù)浜投询B單元信息。
在優(yōu)選實(shí)施方式中,堆疊交換機(jī)200適于監(jiān)控堆疊鏈路狀態(tài),以確定到一個(gè)鄰居的物理堆疊鏈路何時(shí)工作或不工作。當(dāng)一個(gè)堆疊鏈路開始工作時(shí),該單元發(fā)送一個(gè)拓?fù)湔埱笙⒔o該新近檢測出來的鄰居。當(dāng)一個(gè)堆疊鏈路停止工作時(shí),該單元進(jìn)行(a)重置對應(yīng)于停止工作的堆疊鏈路的鄰居列表;(b)從相反堆疊端口發(fā)送一個(gè)拓?fù)渲甘鞠?,以將拓?fù)渥兓瘋鞑ソo其他鄰居;(c)處理職責(zé)改變,包括選擇一個(gè)新的第二主機(jī),如果已知第一主機(jī)已經(jīng)發(fā)生故障接管第一主機(jī)的職責(zé),如果ISS 120上不再有第一或第二主機(jī),請求第一主機(jī)的職責(zé)。
如上所述,監(jiān)管消息由各個(gè)堆疊單元定期地發(fā)送給它兩邊的相鄰鄰居。這種交換使得各個(gè)堆疊交換機(jī)能夠很快地(a)檢測出何時(shí)一個(gè)相鄰鄰居被插入到ISS 120;(b)檢測出何時(shí)修改了與一個(gè)相鄰鄰居的物理連接,例如何時(shí)調(diào)換了一個(gè)堆疊鏈路電纜;(c)證實(shí)一個(gè)已有鄰居仍然活躍;以及(d)檢測--基于預(yù)期具有一個(gè)或多個(gè)連續(xù)監(jiān)管消息,但沒有從一個(gè)鄰居收到--何時(shí)即使與一個(gè)鄰居之間的物理鏈路仍然工作,但與該鄰居的通信已經(jīng)丟失。如果沒有收到一個(gè)或多個(gè)連續(xù)監(jiān)管消息,則堆疊交換機(jī)200假定該鄰居不再工作,并且在已知第二主機(jī)發(fā)生故障的情況下,激活職責(zé)改變處理,以選擇一個(gè)新的第二主機(jī),在已知第一主機(jī)發(fā)生故障的情況下接管該第一主機(jī)的職責(zé),或者如果在堆疊上不再有第一或第二主機(jī)時(shí),請求第一主機(jī)的職責(zé)。
由堆疊交換機(jī)200所采取的行動(dòng)取決于特定類型的拓?fù)涓淖?。如果收到一個(gè)監(jiān)管消息,并且檢測出任何ISS拓?fù)涓淖?,堆疊交換機(jī)200生成一個(gè)拓?fù)渲甘鞠?,然后將它發(fā)送到相反的堆疊鏈路。如果收到一個(gè)監(jiān)管消息,并檢測到一個(gè)新的鄰居,堆疊交換機(jī)200針對相反的堆疊鏈路,發(fā)送給該新的鄰居已知的ISS拓?fù)?,也就是在與相反堆疊端口相關(guān)聯(lián)的鄰居表中列出的堆疊交換機(jī)鄰居。如果收到一個(gè)設(shè)置了一個(gè)單獨(dú)標(biāo)記的監(jiān)管消息,堆疊交換機(jī)200通過移去通過發(fā)送該監(jiān)管消息的單元能夠到達(dá)的任何鄰居來更新相關(guān)聯(lián)的鄰居表。如果收到了一個(gè)沒有設(shè)置單獨(dú)標(biāo)記的監(jiān)管消息,并且與該堆疊端口相關(guān)聯(lián)的鄰居表表明存在一個(gè)單個(gè)鄰居,堆疊交換機(jī)200發(fā)送一個(gè)拓?fù)湔埱笙⒔o該監(jiān)管消息的始發(fā)方。如果收到一個(gè)監(jiān)管消息,并且堆疊鏈路的電纜線路改變了,堆疊交換機(jī)200重置或否則清除與接收該消息的堆疊鏈路相關(guān)聯(lián)的鄰居表,并且通過一個(gè)拓?fù)渲甘景l(fā)送已知拓?fù)浣o該鄰居。在執(zhí)行了適當(dāng)?shù)捻憫?yīng)之后,堆疊交換機(jī)200轉(zhuǎn)移回進(jìn)入監(jiān)管狀態(tài)316之前的狀態(tài)。
本領(lǐng)域一般技術(shù)人員會(huì)明白,監(jiān)管消息交換具有許多優(yōu)點(diǎn)。具體來說,由于鄰居監(jiān)控特征可以快速地檢測出鄰居故障,以及當(dāng)一個(gè)堆疊鏈路停止工作時(shí),或者一個(gè)相鄰鄰居沒有對多個(gè)連續(xù)監(jiān)管消息做出反應(yīng)時(shí),立即處理職責(zé)變化得到的快速接管。此外,某些實(shí)施方式中的堆疊交換機(jī)可以臨時(shí)地禁止監(jiān)管狀態(tài)316,也就是例如防止監(jiān)管消息的傳輸。如果例如發(fā)生了故障,并且第一主機(jī)預(yù)見到關(guān)機(jī)和重啟,正在準(zhǔn)備一個(gè)事后的調(diào)查分析文件時(shí),第一主機(jī)可以分發(fā)一個(gè)監(jiān)管暫停消息給所有堆疊單元。作為對該監(jiān)管暫停消息的響應(yīng),ISS 120的單元停止監(jiān)管消息的發(fā)送,它如果沒有得到響應(yīng),會(huì)導(dǎo)致堆疊交換機(jī)錯(cuò)誤地假定已失去了第一主機(jī),并轉(zhuǎn)向第二主機(jī),從而在原第一主機(jī)完成事后的調(diào)查分析文件的準(zhǔn)備之后,導(dǎo)致出現(xiàn)了兩個(gè)第一主機(jī)。在第一主機(jī)完成事后的調(diào)查分析文件的準(zhǔn)備之后,可以由它自動(dòng)地重新選通監(jiān)管狀態(tài)。在某些實(shí)施方式中,在由超時(shí)參數(shù)所定義的預(yù)定時(shí)間段之后,由單元自己自動(dòng)地重新選通監(jiān)管狀態(tài)316,以處理其中監(jiān)管狀態(tài)沒有被第一主機(jī)重新選通的情況。該超時(shí)參數(shù)應(yīng)當(dāng)足夠得長,使得第一主機(jī)能夠完成事后的調(diào)查分析文件的準(zhǔn)備。
在某些實(shí)施方式中,在接收到一個(gè)監(jiān)管消息之后,一個(gè)單元還檢查它本地的SCID矩陣。如果一個(gè)單元請求SCID,該單元檢查它本地SCID矩陣的本地拷貝,看看它是否知道該特定單元的SCID指派。如果是的,它通過內(nèi)部傳播機(jī)制,發(fā)送一個(gè)SCID指派消息給所有堆疊成員。如果監(jiān)管消息的接收方不知道SCID指派,它將設(shè)置一個(gè)對應(yīng)于在全局SCID矩陣中的請求方單元的標(biāo)記,并且將更新后的矩陣傳送給相反的鄰居單元。
盡管以上描述包含了很多規(guī)定,但這些規(guī)定不應(yīng)當(dāng)被理解成限制本發(fā)明的范圍,而是僅提供了對本發(fā)明一些當(dāng)前優(yōu)選實(shí)施方式的說明。
因此,本發(fā)明通過例子來公開,但不局限于這些例子,應(yīng)當(dāng)參考所附的權(quán)利要求書來確定本發(fā)明的范圍。
權(quán)利要求
1.一種交換設(shè)備,用來在一個(gè)包括多個(gè)堆疊交換機(jī)的堆疊交換機(jī)系統(tǒng)中執(zhí)行通透轉(zhuǎn)發(fā)操作,該交換設(shè)備包括多個(gè)端口,適于收發(fā)協(xié)議數(shù)據(jù)單元(PDU),包括多個(gè)數(shù)據(jù)端口,以及多個(gè)堆疊端口,每個(gè)所述堆疊端口可操作地連接到所述多個(gè)堆疊交換機(jī)中的一個(gè);以及一個(gè)路由引擎,適于如果通透模式被禁止,根據(jù)與所述PDU關(guān)聯(lián)的目的地址信息,在所述多個(gè)端口之間轉(zhuǎn)發(fā)分組;以及如果所述通透模式被選通,將從所述多個(gè)堆疊端口接收的PDU轉(zhuǎn)發(fā)給各個(gè)其它堆疊端口,而和與所述PDU相關(guān)聯(lián)的目的地址信息無關(guān)。
2.根據(jù)權(quán)利要求1的交換設(shè)備,其中如果所述通透模式被選通,所述路由引擎還適于丟棄從所述多個(gè)數(shù)據(jù)端口接收的入PDU。
3.根據(jù)權(quán)利要求1的交換設(shè)備,其中如果所述多個(gè)堆疊交換機(jī)中的兩個(gè)或更多個(gè)具有一個(gè)相同的堆疊交換機(jī)標(biāo)識符,那么選通所述通透模式。
4.根據(jù)權(quán)利要求1的交換設(shè)備,其中通過所述多個(gè)堆疊端口之一從所述多個(gè)堆疊交換機(jī)接收的所述PDU包括一個(gè)包含跳數(shù)的頭,并且該交換設(shè)備適于在將所述PDU轉(zhuǎn)發(fā)給另一堆疊交換機(jī)之前,對所述跳數(shù)進(jìn)行相減操作。
5.一種用于從多個(gè)堆疊交換機(jī)中選擇一個(gè)第一主堆疊交換機(jī)的方法,該方法包括以下步驟為所述多個(gè)堆疊交換機(jī)中的每一個(gè)產(chǎn)生一個(gè)選舉鍵,其中所述選舉鍵包括一個(gè)相關(guān)聯(lián)堆疊交換機(jī)的啟動(dòng)時(shí)間;在所述多個(gè)堆疊交換機(jī)之間交換每個(gè)堆疊交換機(jī)的選舉鍵;將具有最低選舉鍵的堆疊交換機(jī)指定為臨時(shí)第一堆疊交換機(jī)。
6.根據(jù)權(quán)利要求5的選舉方法,其中選舉鍵還包括一個(gè)與該堆疊交換機(jī)相關(guān)聯(lián)的媒質(zhì)訪問控制(MAC)地址和一個(gè)堆疊交換機(jī)標(biāo)識符。
7.根據(jù)權(quán)利要求5的選舉方法,其中所述選舉鍵是一個(gè)矢量,并且所述開啟時(shí)間是該矢量最重要的值。
8.根據(jù)權(quán)利要求7的選舉方法,其中所述MAC地址是該矢量最不重要的值。
9.根據(jù)權(quán)利要求5的選舉方法,其中該方法還包括以下步驟初始化一個(gè)選舉定時(shí)器;以及從所述臨時(shí)第一主堆疊交換機(jī)發(fā)送一個(gè)或多個(gè)選舉請求給所述多個(gè)堆疊交換機(jī),直至所述選舉定時(shí)器超時(shí)。
10.根據(jù)權(quán)利要求9的選舉方法,其中該方法還包括以下步驟針對從所述多個(gè)堆疊交換機(jī)的其他成員發(fā)出的選舉請求,監(jiān)控所述臨時(shí)第一主堆疊交換機(jī)的一個(gè)或多個(gè)堆疊端口;如果所述臨時(shí)第一主堆疊交換機(jī)收到來自另一個(gè)堆疊交換機(jī)的一個(gè)選舉請求比較所述臨時(shí)第一主堆疊交換機(jī)的選舉鍵和在接收到的選舉請求中的選舉鍵;如果所述臨時(shí)第一主堆疊的選舉鍵較高級,從所述臨時(shí)第一主堆疊交換機(jī)發(fā)送一個(gè)或多個(gè)附加選舉請求;以及如果所述臨時(shí)第一主堆疊的選舉鍵較低級,轉(zhuǎn)移到一個(gè)協(xié)議數(shù)據(jù)單元(PDU)轉(zhuǎn)發(fā)狀態(tài)。
11.根據(jù)權(quán)利要求10的選舉方法,其中該方法還包括步驟如果在所述選舉定時(shí)器超時(shí)之前,所述臨時(shí)第一主堆疊交換機(jī)不能從另一個(gè)堆疊交換機(jī)接收到一個(gè)具有一個(gè)較高級選舉鍵的選舉鍵,將所述臨時(shí)第一主堆疊交換機(jī)指派為承擔(dān)第一主堆疊交換機(jī)的職責(zé)。
12.根據(jù)權(quán)利要求10的選舉方法,其中該方法還包括步驟由所述第一主堆疊交換機(jī)為所述多個(gè)堆疊交換機(jī)的一個(gè)或多個(gè)指派工作堆疊交換機(jī)標(biāo)識符。
全文摘要
本發(fā)明公開了一種堆疊交換機(jī),用于執(zhí)行通透轉(zhuǎn)發(fā)操作,分配堆疊交換機(jī)標(biāo)識符給多個(gè)堆疊交換機(jī),臨時(shí)性地禁止由堆疊交換機(jī)所交換的監(jiān)管消息,以及選舉一個(gè)第一主堆疊交換機(jī)。在通透模式下,堆疊交換機(jī)自動(dòng)地在堆疊端口之間轉(zhuǎn)發(fā)分組,而與它們的目的地址無關(guān),以在禁止傳統(tǒng)橋接以及路由尋址操作的同時(shí)維持相鄰堆疊交換機(jī)之間的連通性。有序標(biāo)識符也最好按照各個(gè)堆疊交換機(jī)的有序位置分配,以更好地反映這些交換機(jī)的拓?fù)洹T摻粨Q機(jī)也最好適于臨時(shí)地禁止監(jiān)管消息在堆疊交換機(jī)之間的傳輸,以防止在交換機(jī)資源較少時(shí)對網(wǎng)管功能的重新指派。該交換機(jī)也可以基于該交換機(jī)開始工作的時(shí)間,執(zhí)行一個(gè)堆疊交換機(jī)標(biāo)識符編號方案。
文檔編號H04L29/06GK1770739SQ200510117028
公開日2006年5月10日 申請日期2005年10月28日 優(yōu)先權(quán)日2004年10月28日
發(fā)明者伊格內(nèi)修斯·桑托索, 羅伯托·亨里克·雅各布·達(dá)·席爾瓦, 蒂莫西·希克斯, 文森特·馬格雷特 申請人:阿爾卡特公司