專利名稱:交換設(shè)備建立拓?fù)浣Y(jié)構(gòu)的方法、交換設(shè)備以及堆疊系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信中的堆疊系統(tǒng)領(lǐng)域,特別是指 一種交換設(shè)備建立拓4卜 結(jié)構(gòu)的方法、交換設(shè)備以及堆疊系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,大吞吐量數(shù)據(jù)交換和各種智能應(yīng)用的需求日 益增加,對于網(wǎng)絡(luò)的整體帶寬的要求也不斷提高。為了使數(shù)據(jù)交換設(shè)備滿足大 型網(wǎng)絡(luò)對端口數(shù)量的要求,并且對數(shù)據(jù)交換設(shè)備能夠統(tǒng)一管理, 一般在較大型 網(wǎng)絡(luò)中都采用設(shè)備堆疊的方式。用戶可以通過堆疊端口和堆疊線將多臺交換設(shè) 備連接起來,組成一個環(huán)型或鏈型的堆疊系統(tǒng)。
在堆疊系統(tǒng)中,每個交換設(shè)備(Unit)都需要有一個唯一的標(biāo)識, 一般是 采用交換設(shè)備的MAC ( Media Access Control,々某體接入控制)地址作為唯一 的標(biāo)識。堆疊拓樸發(fā)現(xiàn)的目的主要是形成各Unit間的地址映射表、選舉管 理交換設(shè)備的主設(shè)備(Master Unit)和主設(shè)備異常退出時接替成為主設(shè)備的備 設(shè)備(Slave Unit )。
目前堆疊系統(tǒng)拓樸發(fā)現(xiàn)都采用狀態(tài)機(jī)原理,主要有兩種方法
一種方法是在各Unit的Flash (閃速)存^f渚器中寫入所有Unit的MAC, 然后啟動所有Unit。在拓樸發(fā)現(xiàn)過程中,每一臺Unit都向其他Unit發(fā)送帶有 MAC地址和標(biāo)識項的拓樸發(fā)現(xiàn)報文,所述標(biāo)識項是利用本地時鐘值作為輸入 參數(shù)生成的。各臺Unit收到拓樸發(fā)現(xiàn)報文后,建立鄰居關(guān)系,根據(jù)MAC和標(biāo) 識項選舉Master Unit和Slave Unit。最后Master Unit進(jìn)行拓樸計算,發(fā)送拓樸 報文進(jìn)行收斂,形成各Unit間的地址映射表。
另 一種方法是在各Unit的Flash (閃速)存儲器中寫入本Unit的MAC 和優(yōu)先級,要求堆疊系統(tǒng)中Unit的MAC各不相同,然后啟動所有Unit。每一 臺Unit向其他Unit發(fā)送帶有MAC地址、優(yōu)先級以及堆疊端口信息的拓樸發(fā)現(xiàn)報文,并在接收到其他Unit發(fā)送的拓樸發(fā)現(xiàn)報文后,從中獲取其他Unit的 MAC地址和優(yōu)先級。再^l據(jù)堆疊端口信息和其^f也Unit的MAC地址信息生成 新的堆疊拓樸發(fā)現(xiàn)報文,并向其他Unit發(fā)送,建立鄰居關(guān)系。之后根據(jù)MAC 和優(yōu)先級選舉Master Unit和Slave Unit。最后Master Unit進(jìn)行拓樸計算,發(fā)送 拓樸報文進(jìn)行收斂,形成各Unit間的地址映射表。
這兩種堆疊系統(tǒng)拓樸發(fā)現(xiàn)方法的前提是在堆疊系統(tǒng)中所有Unit同時初 始化完成。但是堆疊系統(tǒng)中各Unit的類型有可能不同,導(dǎo)致各Unit啟動時的 初始化時間有所不同,因此,會造成拓樸發(fā)現(xiàn)錯誤,希望成為主設(shè)備的Unit 由于初始化時間較長而不能被選舉為主設(shè)備,造成堆疊系統(tǒng)主設(shè)備選舉和備設(shè) 備選舉錯誤。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種交換設(shè)備建立拓樸結(jié)構(gòu)的方法、交換 設(shè)備以及堆疊系統(tǒng),能夠解決由于交換設(shè)備啟動時間不同而引起的拓樸發(fā)現(xiàn)錯 誤的問題。
為解決上述技術(shù)問題,本發(fā)明的實(shí)施例提供技術(shù)方案如下 一方面,提供一種堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法,包括.' 步驟一,交換設(shè)備在滿足以下兩個條件的任一條件時,轉(zhuǎn)向步驟二,否則, 重新執(zhí)行步驟一;所述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù) 定時間為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件 的條件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā) 現(xiàn)報文;
步驟二,所述交換設(shè)備向所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報
文;
步驟三,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)。
其中,所述步驟一包括
所述交換設(shè)備判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時的時間之 差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;
如果所述第一判斷結(jié)果為是,則轉(zhuǎn)向所迷步驟二;如果所述第一判斷結(jié)果 為否,則所述交換設(shè)備判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓 樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;
如果所述第二判斷結(jié)果為是,則轉(zhuǎn)向所述步驟二;如果所述第二判斷結(jié)果 為否,則重新執(zhí)行所述步驟一。
其中,所述步驟一包括
所述交換設(shè)備判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸 發(fā)現(xiàn)報文,生成第二判斷結(jié)果;
如果所述第二判斷結(jié)果為是,則轉(zhuǎn)向所迷步驟二;如果所述第二判斷結(jié)果 為否,則所述交換設(shè)備判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時的時間 之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為使所述 堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;
如果所述第一判斷結(jié)果為是,則轉(zhuǎn)向所述步驟二;如果所述第一判斷結(jié)果 為否,則重新執(zhí)行所述步驟一。
其中,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)的步驟包括
所述交換設(shè)備和所述其他交換設(shè)備建立鄰居關(guān)系;
所述交換設(shè)備選舉所述堆疊系統(tǒng)中的主設(shè)備;
所述交換設(shè)備選舉所述堆疊系統(tǒng)中的備設(shè)備;
所述交換設(shè)備進(jìn)行拓樸計算。
其中,所述預(yù)定時間大于或等于所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的 初始化時間與所述交換設(shè)備初始化時間之間的差。
其中,所述預(yù)定時間的范圍為10秒至20秒之間。 另一方面,提供一種交換設(shè)備,包括
判斷單元,用于判斷所述交換設(shè)備是否滿足以下兩個條件的任一條件,所 述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述交換 設(shè)備所在的堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的條 件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文;
發(fā)送單元,用于當(dāng)滿足所述兩個條件的任一條件時,向所述堆疊系統(tǒng)中的 其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文;
拓樸發(fā)現(xiàn)單元,用于進(jìn)行拓樸發(fā)現(xiàn)。 其中,所述判斷單元包括
第一判斷子單元,用于判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時的 時間之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為使 所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;當(dāng)所述第一判斷結(jié)果 為是時,啟動所述發(fā)送單元;
第二判斷子單元,用于當(dāng)所述第一判斷結(jié)果為否時,判斷是否收到所述堆
疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;當(dāng)所述第 二判斷結(jié)果為是時,啟動所述發(fā)送單元;當(dāng)所述第二判斷結(jié)果為否時,啟動所 述第一判斷子單元。
或者,所述判斷單元包括
第二判斷子單元,用于判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送 的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;當(dāng)所述第二判斷結(jié)果為是時,啟動所述 發(fā)送單元;
第一判斷子單元,用于當(dāng)所述第二判斷結(jié)果為否時,判斷所述當(dāng)前時間與 所述交換設(shè)備初始化完成時的時間之差是否超過預(yù)定時間長度,生成第一判斷 結(jié)果;所述預(yù)定時間長度為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時 間長度;當(dāng)所述第一判斷結(jié)果為是時,啟動所述發(fā)送單元;當(dāng)所述第一判斷結(jié) 果為否時,啟動所述第二判斷子單元。
其中,所述預(yù)定時間大于或等于所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的 初始化時間與所述交換設(shè)備初始化時間之間的差。
另一方面,提供一種堆疊系統(tǒng),包括至少兩個交換設(shè)備,
所述交換設(shè)備包括
判斷單元,用于判斷所述交換設(shè)備是否滿足以下兩個條件的任一條件,所 述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的條件二為所述交 換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文;
發(fā)送單元,用于當(dāng)滿足所述兩個條件的任一條件時,向所述堆疊系統(tǒng)中的 其他交換設(shè)備發(fā)送拓纟卜發(fā)現(xiàn)報文;
拓樸發(fā)現(xiàn)單元,用于進(jìn)行拓樸發(fā)現(xiàn)。
本發(fā)明的實(shí)施例具有以下有益效果
上述方案中,在建立拓樸結(jié)構(gòu)的過程中,堆疊系統(tǒng)中啟動時間最短的交換 設(shè)備最先進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),并向其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文,其他交換 設(shè)備收到拓樸發(fā)現(xiàn)報文后,也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),這樣,保證堆疊系統(tǒng)的所有 交換設(shè)備都能被及時發(fā)現(xiàn),使得系統(tǒng)中各個交換設(shè)備開始進(jìn)行拓4卜發(fā)現(xiàn)的時間 差別很小,避免了堆疊系統(tǒng)中各交換設(shè)備的啟動時間之間的差異,引起的拓樸 發(fā)現(xiàn)錯誤。
圖1為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的一實(shí)施 例的流程示意圖2為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的另一實(shí) 施例的流程示意圖3為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的另一實(shí) 施例的流程示意圖4為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的應(yīng)用場 景的流程示意圖5為本發(fā)明所述的交換設(shè)備的結(jié)構(gòu)示意圖6為本發(fā)明所述的交換設(shè)備中拓樸發(fā)現(xiàn)單元的結(jié)構(gòu)示意圖7為本發(fā)明所述的堆疊系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的實(shí)施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面 將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。本發(fā)明的實(shí)施例針對現(xiàn)有技術(shù)中是堆疊系統(tǒng)各交換設(shè)備由于初始化時間 不同而造成堆疊系統(tǒng)無法正確拓樸發(fā)現(xiàn)的問題,提供一種交換設(shè)備建立拓樸結(jié) 構(gòu)的方法、交換設(shè)備以及堆疊系統(tǒng)。
如圖1所示,為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的
一實(shí)施例,包括
步驟ll,交換設(shè)備在滿足以下兩個條件的任一條件時,轉(zhuǎn)向步驟12,否 則,重新執(zhí)行步驟11;所述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間, 所述預(yù)定時間為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩 個條件的條件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的 拓樸發(fā)現(xiàn)報文;
步驟12,所述交換設(shè)備向所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn) 報文;
步驟13,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)。
上述方案中,在建立拓樸結(jié)構(gòu)的過程中,堆疊系統(tǒng)中啟動時間最短的交換 設(shè)備最先進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),并向其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文,其他交換 設(shè)備收到拓樸發(fā)現(xiàn)報文后,也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),這樣,保證堆疊系統(tǒng)的所有 交換設(shè)備都能被及時發(fā)現(xiàn),使得系統(tǒng)中各個交換設(shè)備開始進(jìn)行拓樸發(fā)現(xiàn)的時間 差別很小,避免了堆疊系統(tǒng)中各交換設(shè)備的啟動時間之間的差異,引起的拓樸 發(fā)現(xiàn)錯誤。
其中,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)的步驟包括 所述交換設(shè)備和所述其他交換設(shè)備建立鄰居關(guān)系; 所述交換設(shè)備選舉所述堆疊系統(tǒng)中的主設(shè)備; 所述交換設(shè)備選舉所述堆疊系統(tǒng)中的備設(shè)備; 所述交換設(shè)備進(jìn)行拓樸計算。
所述預(yù)定時間可以根據(jù)所述堆疊系統(tǒng)中所有交換設(shè)備的初始化時間設(shè)置。 所述預(yù)定時間大于或等于所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的初始化時 間與所述交換設(shè)備完成初始化的時間之差??蛇x的,所述預(yù)定時間大于或等于 所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的初始化時間,這樣,在實(shí)現(xiàn)上比較簡單??蛇x的,所述預(yù)定時間的范圍可以為10秒至20秒之間。
上述方案中,如果所述交換設(shè)備在堆疊系統(tǒng)中啟動時間最短,則該交換設(shè) 備最先進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),并向其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文,使得其他交 換設(shè)備也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài)。如果所述交換設(shè)備啟動時間比較長,在收到其他 交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文后,也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),然后和其他設(shè)備建立 拓樸結(jié)構(gòu),選舉所述堆疊系統(tǒng)中的主設(shè)備和備設(shè)備等。
如圖2所示,為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的 另一實(shí)施例,包括
步驟21,所述交換設(shè)備判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時 的時間之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為 使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;如果所述第一判斷 結(jié)果為是,則轉(zhuǎn)向所述步驟23;如果所述第一判斷結(jié)果為否,則執(zhí)行步驟22
步驟22,所述交換設(shè)備判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā) 送的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;如果所述第二判斷結(jié)果為是,則轉(zhuǎn)向 所迷步驟23;如果所述第二判斷結(jié)果為否,則重新執(zhí)行步驟21。
步驟23,所述交換設(shè)備向所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn) 報文;
步驟24,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)。
如圖3所示,為本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法的 另一實(shí)施例,包括
步驟31,所述交換設(shè)備判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā) 送的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;如果所述第二判斷結(jié)果為是,則轉(zhuǎn)向 所述步驟33;如果所述第二判斷結(jié)果為否,則轉(zhuǎn)向步驟32;
步驟32,所述交換設(shè)備判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時 的時間之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為 使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;如果所述第 一判斷 結(jié)果為是,則轉(zhuǎn)向所述步驟33;如果所述第一判斷結(jié)果為否,則重新執(zhí)行步 驟31。
ii步驟33,所述交換設(shè)備向所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)
報文;
步驟34,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)。
如圖4所示,以下描述本發(fā)明所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的 方法的應(yīng)用場景。
本發(fā)明在堆疊拓樸發(fā)現(xiàn)的狀態(tài)機(jī)中增加Block (阻塞)狀態(tài)、Disc (拓樸 發(fā)現(xiàn))狀態(tài)、Timeout (超時)事件和DISK_PKT (收到拓樸發(fā)現(xiàn)報文)事件。
步驟41:交換設(shè)備在初始化完成后,啟動拓樸發(fā)現(xiàn)過程,將堆疊拓樸狀 態(tài)機(jī)設(shè)置為Block狀態(tài),進(jìn)入Block狀態(tài),并記錄此時的系統(tǒng)時間,等待Timeout 事件,Timeout事件可以通過定時器實(shí)現(xiàn)。
步驟42:交換設(shè)備讀取當(dāng)前的系統(tǒng)時間;
步驟43:交換設(shè)備將當(dāng)前的系統(tǒng)時間和開始拓樸發(fā)現(xiàn)的時間做差,判斷 是否超過設(shè)置的Timeout時間,如果超過,轉(zhuǎn)到步驟45,否則,執(zhí)行步驟44;
步驟44:交換設(shè)備判斷是否收到其他Unit發(fā)送的拓樸發(fā)現(xiàn)報文,如果收 到,執(zhí)行步驟45,否則,轉(zhuǎn)到步驟42;
步驟45:交換設(shè)備觸發(fā)DISC一PKT事件,進(jìn)入Disc狀態(tài),轉(zhuǎn)到步驟47;
步驟46:交換設(shè)備觸發(fā)Timeout事件,進(jìn)入Disc狀態(tài),轉(zhuǎn)到步驟47;
步驟47:交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn),建立鄰居關(guān)系,完成主設(shè)備和備設(shè)備選
舉和拓樸計算。
其中,Timeout時間根據(jù)組成堆疊系統(tǒng)的所有類型的交換設(shè)備的初始化時 間之間的差異而確定, 一般為10-20s,確保堆疊系統(tǒng)中各種類型的交換設(shè)備都 能完成初始化,進(jìn)入Block狀態(tài)。交換設(shè)備的初始化時間主要由以下幾個方面 決定
1、 交換設(shè)備的類型不同類型的交換設(shè)備的硬件實(shí)現(xiàn)可能略有不同,造 成在設(shè)備初始化時,PCI (Peripheral Component Interconnect,周邊元件擴(kuò)展接 口 )芯片掛接、PHY (Physical Layer,物理層)芯片初始化、BSP (Board Support Package,板級支持包)流程有所不同,初始化時間不同;
2、 交換設(shè)備的交換芯片個數(shù)交換設(shè)備的交換芯片越多,設(shè)備初始化時要做的工作就越多,初始化時間就越長,不同交換芯片個數(shù)的設(shè)備進(jìn)行堆疊時 初始化時間就存在較大差異;
3、交換設(shè)備的生產(chǎn)工藝不同批次的交換設(shè)備的生產(chǎn)工藝可能稍有差別, 造成設(shè)備初始化的時間略有不同。
Timeout時間如果設(shè)置過長,會對堆疊系統(tǒng)的啟動性能產(chǎn)生影響,要求設(shè) 置的時間盡可能短?;谏鲜鋈N情況,如果不同交換芯片個數(shù)的交換設(shè)備不 能組成堆疊系統(tǒng),Timeout時間一般可以設(shè)置在5-10s;否則Timeout時間一般 可以設(shè)置在15-20s。
本發(fā)明實(shí)施例中,首先進(jìn)入Block狀態(tài)的Unit會觸發(fā)Timeout事件,進(jìn)入 Disc (拓樸發(fā)現(xiàn))狀態(tài),開始向其他Unit發(fā)送拓樸發(fā)現(xiàn)報文,其他Unit收到 拓樸發(fā)現(xiàn)報文時會觸發(fā)DISK_PKT事件,從Block狀態(tài)進(jìn)入Disc狀態(tài),以此 類推,所有Unit都進(jìn)入Disc狀態(tài)。Blcok狀態(tài)既可以通過Timeout事件進(jìn)入 Disc狀態(tài),也可以通過DISC—PKT事件進(jìn)入Disc狀態(tài),避免一些Unit已經(jīng)進(jìn) 入Disc狀態(tài)而其他交換設(shè)備還等待Timeout事件,導(dǎo)致拓樸發(fā)現(xiàn)錯誤。
在拓樸發(fā)現(xiàn)過程中, 一臺設(shè)備進(jìn)入Disc狀態(tài)后開始發(fā)送拓樸發(fā)現(xiàn)報文時, 其他設(shè)備也會陸續(xù)進(jìn)入Disc狀態(tài),保證堆疊系統(tǒng)的所有Unit都能被及時發(fā)現(xiàn), 建立鄰居關(guān)系,保證主設(shè)備和備設(shè)備選舉和拓樸計算的正確性。能夠屏蔽堆疊 系統(tǒng)中各交換設(shè)備的啟動時間之間的差異,對拓樸發(fā)現(xiàn)的影響,解決了由于各 Unit初始化時間不同而造成的主設(shè)備選舉和備設(shè)備選舉錯誤的問題。
如圖5所示,為本發(fā)明所述的一種交換設(shè)備50,包括
判斷單元51,用于判斷所述交換設(shè)備是否滿足以下兩個條件的任一條件, 所述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述交 換設(shè)備所在的堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的 條件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)
報文;
發(fā)送單元52,用于當(dāng)滿足所述兩個條件的任一條件時,向所述堆疊系統(tǒng) 中的其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文;
拓樸發(fā)現(xiàn)單元53,用于進(jìn)行拓樸發(fā)現(xiàn)。 其中,所述判斷單元51包括第一判斷子單元511,用于判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成
時的時間之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度 為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;當(dāng)所述第 一判斷 結(jié)果為是時,啟動所述發(fā)送單元;
第二判斷子單元512,用于當(dāng)所述第一判斷結(jié)果為否時,判斷是否收到所 述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;當(dāng)所 述第二判斷結(jié)果為是時,啟動所述發(fā)送單元;當(dāng)所述第二判斷結(jié)果為否時,啟 動所述第一判斷子單元。
或者,所述判斷單元51包括
第二判斷子單元512,用于判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備 發(fā)送的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;當(dāng)所述第二判斷結(jié)果為是時,啟動 所述發(fā)送單元;
第一判斷子單元511,用于當(dāng)所述第二判斷結(jié)果為否時,判斷所述當(dāng)前時 間與所述交換設(shè)備初始化完成時的時間之差是否超過預(yù)定時間長度,生成第一 判斷結(jié)果;所述預(yù)定時間長度為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化 的時間長度;當(dāng)所述第一判斷結(jié)果為是時,啟動所述發(fā)送單元;當(dāng)所述第一判 斷結(jié)果為否時,啟動所述第二判斷子單元。 如圖6所示,所述拓樸發(fā)現(xiàn)單元53包括 關(guān)系建立子單元531 ,用于和所述其他交換設(shè)備建立鄰居關(guān)系; 第一選舉子單元532,用于選舉所述堆疊系統(tǒng)中的主設(shè)備; 第二選舉子單元533,用于選舉所述堆疊系統(tǒng)中的備設(shè)備; 拓樸計算子單元534,用于進(jìn)行拓樸計算。
其中,所述預(yù)定時間根據(jù)所述堆疊系統(tǒng)中所有交換設(shè)備的初始化時間設(shè) 置。所述預(yù)定時間大于或等于所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的初始化 時間與所述交換設(shè)備的初始化時間之間的差。所述預(yù)定時間的范圍為10秒 至20秒之間。
上述方案中,在建立拓樸結(jié)構(gòu)的過程中,堆疊系統(tǒng)中啟動時間最短的交換 設(shè)備最先進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),并向其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文,其他交換設(shè)備收到拓樸發(fā)現(xiàn)報文后,也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),這樣,保證堆疊系統(tǒng)的所有 交換設(shè)備都能被及時發(fā)現(xiàn),使得系統(tǒng)中各個交換設(shè)備開始進(jìn)行拓樸發(fā)現(xiàn)的時間 差別很小,避免了堆疊系統(tǒng)中各交換設(shè)備的啟動時間之間的差異,引起的拓樸 發(fā)現(xiàn)錯誤。
如圖7所述,為本發(fā)明所述的一種堆疊系統(tǒng)70,包括至少兩個交換設(shè)備,
分別為第一交換設(shè)備50和第二交換設(shè)備60。第二交換設(shè)備60與第 一交換設(shè)備 50具有相同的單元。
所述第 一交換設(shè)備50包括
判斷單元51,用于判斷所述交換設(shè)備是否滿足以下兩個條件的任一條件, 所述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述交 換設(shè)備所在的堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的 條件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)
報文;
發(fā)送單元52,用于當(dāng)滿足所述兩個條件的任一條件時,向所述堆疊系統(tǒng) 中的其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文;
拓樸發(fā)現(xiàn)單元53,用于進(jìn)行拓樸發(fā)現(xiàn)。
上述方案中,如果第一交換設(shè)備50在堆疊系統(tǒng)中啟動時間最短,則在預(yù) 定時間后,進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),并向第二交換設(shè)備60發(fā)送拓樸發(fā)現(xiàn)報文,使 第二交換設(shè)備60也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài)。如杲第 一交換設(shè)備50啟動時間比較長, 在收到第二交換設(shè)備60發(fā)送的拓樸發(fā)現(xiàn)報文后,也進(jìn)入拓樸發(fā)現(xiàn)狀態(tài),然后 和第二交換設(shè)備60建立拓樸結(jié)構(gòu),選舉所述堆疊系統(tǒng)中的主設(shè)備和備設(shè)備等。
所述方法實(shí)施例是與所述裝置實(shí)施例相對應(yīng)的,在方法實(shí)施例中未詳細(xì)描 述的部分參照裝置實(shí)施例中相關(guān)部分的描述即可,在裝置實(shí)施例中未詳細(xì)描述 的部分參照方法實(shí)施例中相關(guān)部分的描述即可。
本領(lǐng)域普通4支術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟 是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機(jī)可 讀取存儲介質(zhì)中,該程序在執(zhí)行時,包括如上述方法實(shí)施例的步驟,所述的存 儲介質(zhì),如磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或
15隨機(jī)存儲記憶體(Random Access Memory, RAM)等。
在本發(fā)明各方法實(shí)施例中,所述各步驟的序號并不能用于限定各步驟的先 后順序,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,對 各步驟的先后變化也在本發(fā)明的保護(hù)范圍之內(nèi)。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技 術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若千改進(jìn)和潤飾, 這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種堆疊系統(tǒng)中交換設(shè)備建立拓?fù)浣Y(jié)構(gòu)的方法,其特征在于,包括步驟一,交換設(shè)備在滿足以下兩個條件的任一條件時,轉(zhuǎn)向步驟二,否則,重新執(zhí)行步驟一;所述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的條件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓?fù)浒l(fā)現(xiàn)報文;步驟二,所述交換設(shè)備向所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送拓?fù)浒l(fā)現(xiàn)報文;步驟三,所述交換設(shè)備進(jìn)行拓?fù)浒l(fā)現(xiàn)。
2. 根據(jù)權(quán)利要求1所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法,其 特征在于,所述步驟一包括所述交換設(shè)備判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時的時間之 差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為使所述堆 疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;如果所述第一判斷結(jié)果為是,則轉(zhuǎn)向所述步驟二;如果所述第一判斷結(jié)果 為否,則所述交換設(shè)備判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓 樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;如果所述第二判斷結(jié)果為是,則轉(zhuǎn)向所述步驟二;如果所述第二判斷結(jié)果 為否,則重新扭J于所述步驟一。
3. 根據(jù)權(quán)利要求1所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法,其 特征在于,所述步驟一包括所述交換設(shè)備判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸 發(fā)現(xiàn)報文,生成第二判斷結(jié)果;如果所述第二判斷結(jié)果為是,則轉(zhuǎn)向所述步驟二;如果所述第二判斷結(jié)果 為否,則所述交換設(shè)備判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時的時間 之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;如果所述第一判斷結(jié)果為是,則轉(zhuǎn)向所述步驟二;如果所述第一判斷結(jié)果 為否,則重新4丸"f亍所述步驟一。
4. 根據(jù)權(quán)利要求1所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法,其 特征在于,所述交換設(shè)備進(jìn)行拓樸發(fā)現(xiàn)的步驟包括所述交換設(shè)備和所述其他交換設(shè)備建立鄰居關(guān)系; 所述交換設(shè)備選舉所述堆疊系統(tǒng)中的主設(shè)備; 所述交換設(shè)備選舉所述堆疊系統(tǒng)中的備設(shè)備; 所述交換設(shè)備進(jìn)行拓樸計算。
5. 根據(jù)權(quán)利要求1所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法,其 特征在于,所述預(yù)定時間大于或等于所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的 初始化時間與所述交換設(shè)備的初始化時間之間的差。
6. 根據(jù)權(quán)利要求1所述的堆疊系統(tǒng)中交換設(shè)備建立拓樸結(jié)構(gòu)的方法,其 特征在于,所述預(yù)定時間的范圍為10秒至20秒之間。
7. —種交換設(shè)備,其特征在于,包括判斷單元,用于判斷所述交換設(shè)備是否滿足以下兩個條件的任一條件,所 述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述交換 設(shè)備所在的堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的條 件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文;發(fā)送單元,用于當(dāng)滿足所述兩個條件的任一條件時,向所述堆疊系統(tǒng)中的 其他交換設(shè)備發(fā)送拓樸發(fā)現(xiàn)報文;拓樸發(fā)現(xiàn)單元,用于進(jìn)行拓樸發(fā)現(xiàn)。
8. 根據(jù)權(quán)利要求7所述的交換設(shè)備,其特征在于, 所述判斷單元包括第一判斷子單元,用于判斷所述當(dāng)前時間與所述交換設(shè)備初始化完成時的 時間之差是否超過預(yù)定時間長度,生成第一判斷結(jié)果;所述預(yù)定時間長度為使 所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間長度;當(dāng)所述第 一判斷結(jié)果為是時,啟動所述發(fā)送單元;第二判斷子單元,用于當(dāng)所述第一判斷結(jié)果為否時,判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;當(dāng)所述第 二判斷結(jié)果為是時,啟動所述發(fā)送單元;當(dāng)所述第二判斷結(jié)果為否時,啟動所 述第一判斷子單元;或者,所述判斷單元包括第二判斷子單元,用于判斷是否收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送 的拓樸發(fā)現(xiàn)報文,生成第二判斷結(jié)果;當(dāng)所述第二判斷結(jié)果為是時,啟動所述 發(fā)送單元;第一判斷子單元,用于當(dāng)所述第二判斷結(jié)果為否時,判斷所述當(dāng)前時間與 所迷交換設(shè)備初始化完成時的時間之差是否超過預(yù)定時間長度,生成第 一判斷 結(jié)果;所述預(yù)定時間長度為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時 間長度;當(dāng)所述第一判斷結(jié)果為是時,啟動所述發(fā)送單元;當(dāng)所述第一判斷結(jié) 果為否時,啟動所述第二判斷子單元。
9. 根據(jù)權(quán)利要求7所述的交換設(shè)備,其特征在于,所述預(yù)定時間大于或 等于所述堆疊系統(tǒng)中所有交換設(shè)備中的最長的初始化時間與所述交換設(shè)備的 初始^匕時間之間的差。
10. —種堆疊系統(tǒng),包括至少兩個交換設(shè)備,其特征在于, 所述交換設(shè)備包括判斷單元,用于判斷所述交換設(shè)備是否滿足以下兩個條件的任一條件,所 述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述堆疊 系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的條件二為所述交 換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓樸發(fā)現(xiàn)報文;發(fā)送單元,用于當(dāng)滿足所述兩個條件的任一條件時,向所述堆疊系統(tǒng)中的 其他交換設(shè)備發(fā)送拓4卜發(fā)現(xiàn)報文;拓樸發(fā)現(xiàn)單元,用于進(jìn)行拓樸發(fā)現(xiàn)。
全文摘要
本發(fā)明提供一種交換設(shè)備建立拓?fù)浣Y(jié)構(gòu)的方法、交換設(shè)備以及堆疊系統(tǒng),涉及數(shù)據(jù)通信中的堆疊系統(tǒng)領(lǐng)域,為解決由于交換設(shè)備啟動時間不同而引起的拓?fù)浒l(fā)現(xiàn)錯誤的問題而發(fā)明。所述方法包括步驟一,交換設(shè)備在滿足以下兩個條件的任一條件時,轉(zhuǎn)向步驟二,否則,重新執(zhí)行步驟一;所述兩個條件的條件一為當(dāng)前時間超過預(yù)定時間,所述預(yù)定時間為使所述堆疊系統(tǒng)中所有交換設(shè)備都完成初始化的時間;所述兩個條件的條件二為所述交換設(shè)備收到所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送的拓?fù)浒l(fā)現(xiàn)報文;步驟二,所述交換設(shè)備向所述堆疊系統(tǒng)中的其他交換設(shè)備發(fā)送拓?fù)浒l(fā)現(xiàn)報文;步驟三,交換設(shè)備進(jìn)行拓?fù)浒l(fā)現(xiàn)。本發(fā)明能夠應(yīng)用于交換設(shè)備啟動時間不同的堆疊系統(tǒng)中。
文檔編號H04L12/56GK101621466SQ20091009048
公開日2010年1月6日 申請日期2009年8月13日 優(yōu)先權(quán)日2009年8月13日
發(fā)明者軒 王 申請人:中興通訊股份有限公司