專利名稱:?;顧C(jī)制的實(shí)現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種?;顧C(jī)制的實(shí)現(xiàn)方法和裝置。
背景技術(shù):
目前,常用的交換機(jī)堆疊系統(tǒng)主要包括一個(gè)主交換機(jī)和若千個(gè)成員交換 機(jī),每個(gè)交換機(jī)上均設(shè)置一個(gè)或多個(gè)堆疊端口,交換機(jī)之間通過(guò)堆疊端口進(jìn)行 連接,形成某種拓樸結(jié)構(gòu),通過(guò)對(duì)該拓樸結(jié)構(gòu)進(jìn)行運(yùn)算之后就能夠獲得堆疊系 統(tǒng)的轉(zhuǎn)發(fā)路徑,從而借助該轉(zhuǎn)發(fā)路徑實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)的傳輸,保證數(shù) 據(jù)的正常交互。但是,如果某個(gè)交換機(jī)上的堆疊端口的狀態(tài)發(fā)生了改變(例如, 堆疊端口的關(guān)閉或開(kāi)啟、堆疊端口的連接方式發(fā)生改變),則表示堆疊系統(tǒng)的 拓樸結(jié)構(gòu)發(fā)生了變化,轉(zhuǎn)發(fā)路徑也隨之變化,此時(shí),如果仍按照目前的轉(zhuǎn)發(fā)路 徑進(jìn)行數(shù)據(jù)傳輸,會(huì)導(dǎo)致數(shù)據(jù)的丟失,目前主要通過(guò)?;顧C(jī)制對(duì)交換機(jī)堆疊系 統(tǒng)進(jìn)行管理。
下面對(duì)現(xiàn)有?;顧C(jī)制的工作原理進(jìn)行筒單說(shuō)明堆疊系統(tǒng)中的某個(gè)成員交 換機(jī)的端口狀態(tài)發(fā)生變化時(shí),該成員交換機(jī)會(huì)將發(fā)生變化的堆疊端口的狀態(tài)信 息攜帶在狀態(tài)變化?;顖?bào)文中發(fā)送給主交換機(jī),主交換機(jī)根據(jù)該狀態(tài)信息重新 對(duì)堆疊系統(tǒng)進(jìn)行拓樸運(yùn)算,獲得新的轉(zhuǎn)發(fā)路徑;之后,主交換機(jī)會(huì)將該新的轉(zhuǎn)
發(fā)路徑發(fā)送給該堆疊系統(tǒng)中的所有成員交換機(jī)。另外,堆疊系統(tǒng)的主交換機(jī)的 端口狀態(tài)發(fā)生變化時(shí),主交換機(jī)會(huì)根據(jù)變化后的端口狀態(tài)信息重新對(duì)堆疊系統(tǒng) 進(jìn)行拓樸運(yùn)算,獲得新的轉(zhuǎn)發(fā)路徑,并將新的轉(zhuǎn)發(fā)路徑發(fā)送給堆疊系統(tǒng)中的所 有成員交換機(jī)。
可以看出,上述?;顧C(jī)制只適用于堆疊端口狀態(tài)變化的情況,并且,由主 交換機(jī)執(zhí)行堆疊端口狀態(tài)變化后的拓樸運(yùn)算并獲得新的轉(zhuǎn)發(fā)路徑,再將新的轉(zhuǎn) 發(fā)路徑發(fā)送給各成員交換機(jī),該過(guò)程耗費(fèi)時(shí)間較長(zhǎng),導(dǎo)致數(shù)據(jù)的傳輸效率較低。
4針對(duì)相關(guān)技術(shù)中?;顧C(jī)制存在漏洞、且?;頭L制的處理效率低下的問(wèn)題, 目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中?;顧C(jī)制存在漏洞、且?;顧C(jī)制的處理效率低下的問(wèn)題, 本發(fā)明提出一種?;顧C(jī)制的實(shí)現(xiàn)方法,能夠減少?;顢?shù)據(jù)的丟失概率以及提高 保活機(jī)制的處理效率。
針對(duì)相關(guān)技術(shù)中保活機(jī)制存在漏洞、且?;顧C(jī)制的處理效率低下的問(wèn)題, 本發(fā)明還提出一種?;顧C(jī)制的實(shí)現(xiàn)裝置,能夠減少保活數(shù)據(jù)的丟失概率以及提 高?;顧C(jī)制的處理效率。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 一種?;顧C(jī)制的實(shí)現(xiàn)方法,包括
對(duì)于所述系統(tǒng)中的每個(gè)設(shè)備,所述設(shè)備在預(yù)定情況下計(jì)算所述系統(tǒng)的拓樸 信息,其中,所述預(yù)定情況包括以下至少之一所述設(shè)備在預(yù)定時(shí)間內(nèi)沒(méi)有接 收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第 一?;顖?bào)文、所述設(shè)備接收到所述系統(tǒng) 中任一其他設(shè)備發(fā)送的第二?;顖?bào)文;其中,所述第一保活報(bào)文用于指示設(shè)備 的運(yùn)行狀態(tài)信息、所述第二保活報(bào)文用于指示設(shè)備的端口狀態(tài)變化信息。
優(yōu)選地,該方法還包括
如果所述設(shè)備在預(yù)定時(shí)間內(nèi)接收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第一 保活報(bào)文,則保存該第 一保活報(bào)文中所指示的設(shè)備的運(yùn)行狀態(tài)信息。
其中,如果所述設(shè)備在預(yù)定時(shí)間內(nèi)沒(méi)有接收到除所述設(shè)備之外的任一設(shè)備 發(fā)送的第 一?;顖?bào)文,則所述設(shè)備計(jì)算所述系統(tǒng)的拓樸信息的操作具體包括
活報(bào)文或發(fā)送所述第 一?;顖?bào)文失敗的設(shè)備之外的所有設(shè)備的端口狀態(tài)信息, 計(jì)算所述系統(tǒng)的拓樸信息。
其中,如果所述設(shè)備接收除所述設(shè)備之外的任一設(shè)備發(fā)送的第二保活報(bào) 文,則所述設(shè)備計(jì)算所述系統(tǒng)的拓樸信息的操作具體包括
所述設(shè)備根據(jù)其保存的除發(fā)送所述第二?;顖?bào)文之外的所有設(shè)備的端口 狀態(tài)信息、以及所述第二?;顖?bào)文中指示的設(shè)備的端口的狀態(tài)變化信息,計(jì)算所述系統(tǒng)的拓樸信息。
優(yōu)選地,該方法還包括
所述系統(tǒng)的各設(shè)備之間通過(guò)設(shè)備上的端口直接發(fā)送第一保活報(bào)文和/或第
二?;顖?bào)文;或者,
所述系統(tǒng)的各設(shè)備之間通過(guò)設(shè)備上的端口逐跳轉(zhuǎn)發(fā)第 一?;顖?bào)文和/或第 二?;顖?bào)文。
其中,所述運(yùn)行狀態(tài)信息包括以下至少之一設(shè)備的MAC地址、設(shè)備的 端口信息、設(shè)備的端口連接方式,所迷端口狀態(tài)變化信息包括以下至少之一 設(shè)備端口的開(kāi)啟、i殳備端口的關(guān)閉、設(shè)備端口連接方式的變化。
優(yōu)選地,所述系統(tǒng)可以為以下之一交換機(jī)堆疊系統(tǒng)、路由器堆疊系統(tǒng)。
一種?;顧C(jī)制的實(shí)現(xiàn)裝置,設(shè)置于包括多個(gè)設(shè)備的系統(tǒng)內(nèi)的每個(gè)設(shè)備中, 其中,所述系統(tǒng)中的多個(gè)設(shè)備能夠兩兩進(jìn)行通信,該裝置包括
報(bào)文接收模塊,用于接收所述系統(tǒng)中其他設(shè)備發(fā)送的第一?;顖?bào)文和第二 ?;顖?bào)文;
拓樸計(jì)算模塊,用于在預(yù)定情況下計(jì)算所述系統(tǒng)的拓樸信息,其中,所述 預(yù)定情況包括以下至少之一所述報(bào)文接收^t塊在預(yù)定時(shí)間內(nèi)沒(méi)有接收到所述 系統(tǒng)中任一其他設(shè)備發(fā)送的第 一?;顖?bào)文、所述報(bào)文接收模塊接收到所述系統(tǒng) 中任一其他設(shè)備發(fā)送的第二保活報(bào)文;
其中,所述第一?;顖?bào)文用于指示設(shè)備的運(yùn)行狀態(tài)信息、所述第二保活報(bào) 文用于指示設(shè)備的端口狀態(tài)變化信息。
優(yōu)選地,還包括
存儲(chǔ)模塊,用于存儲(chǔ)來(lái)自所述其他設(shè)備的第一保活報(bào)文中所指示的設(shè)備的 運(yùn)4亍狀態(tài)信息。
其中,如果所述報(bào)文接收模塊在預(yù)定時(shí)間周期內(nèi)沒(méi)有接收到除所述報(bào)文接 收模塊所在所述設(shè)備之外的任一設(shè)備發(fā)送的第一保活報(bào)文,則所述拓樸計(jì)算模 塊根據(jù)所述存儲(chǔ)模塊中存儲(chǔ)的所述系統(tǒng)中除未向本設(shè)備發(fā)送所述第 一?;顖?bào) 文或發(fā)送所述第一?;顖?bào)文失敗的設(shè)備之外所有設(shè)備的端口狀態(tài)信息,計(jì)算所 述系統(tǒng)的拓樸信息。
本發(fā)明通過(guò)根據(jù)設(shè)備的運(yùn)行狀態(tài)和端口狀態(tài)來(lái)確定是否重新計(jì)算系統(tǒng)的拓樸信息,減少了數(shù)據(jù)的丟失概率,并且系統(tǒng)中的每個(gè)設(shè)備均執(zhí)行拓樸運(yùn)算, 相比于現(xiàn)有技術(shù),能夠降低數(shù)據(jù)的中斷時(shí)間,從而提高數(shù)據(jù)的傳輸效率。
圖1是才艮據(jù)本發(fā)明實(shí)施例的?;顧C(jī)制的實(shí)現(xiàn)方法的步驟流程圖2是根據(jù)本發(fā)明實(shí)施例的發(fā)送保活報(bào)文的處理流程圖3是根據(jù)本發(fā)明實(shí)施例的接收?;顖?bào)文的處理流程圖4是根據(jù)本發(fā)明實(shí)施例的堆疊系統(tǒng)的組成結(jié)構(gòu)連接圖5是根據(jù)本發(fā)明實(shí)施例的?;顧C(jī)制的實(shí)現(xiàn)裝置的組成結(jié)構(gòu)連接圖。
具體實(shí)施例方式
圖1是本發(fā)明實(shí)施例的?;顧C(jī)制的實(shí)現(xiàn)方法的步驟流程圖,該方法可以應(yīng) 用于包括多個(gè)設(shè)備的系統(tǒng),其中,該系統(tǒng)中的多個(gè)設(shè)備能夠兩兩進(jìn)行通信,例 如,采用級(jí)連方式進(jìn)行連接的多個(gè)設(shè)備組成的系統(tǒng),具體實(shí)現(xiàn)方法如下
步驟SlOl、對(duì)于系統(tǒng)中的每個(gè)設(shè)備,設(shè)備在預(yù)定情況下計(jì)算系統(tǒng)的拓樸 信息,其中,預(yù)定情況包括以下至少之一設(shè)備在預(yù)定時(shí)間內(nèi)沒(méi)有接收到系統(tǒng) 中任一其他設(shè)備發(fā)送的第一?;顖?bào)文、設(shè)備接收到系統(tǒng)中任一其他設(shè)備發(fā)送的 第二?;顖?bào)文;其中,第一?;顖?bào)文用于指示設(shè)備的運(yùn)行狀態(tài)信息、第二?;?報(bào)文用于指示設(shè)備的端口狀態(tài)變化信息,具體地,運(yùn)行狀態(tài)信息可以包括以下 至少之一設(shè)備的力某體接入控制(Media Access Control,筒稱為MAC )地址、 設(shè)備的端口信息、設(shè)備的端口連接方式,端口狀態(tài)變化信息可以包括以下至少 之一設(shè)備端口的開(kāi)啟、設(shè)備端口的關(guān)閉、設(shè)備端口連接方式的變化。
針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提出上述解決方案,下面從以下兩個(gè) 方面對(duì)本發(fā)明進(jìn)行說(shuō)明,為了清楚描述,下面以系統(tǒng)中的某一個(gè)設(shè)備(簡(jiǎn)稱為 設(shè)備A)為例對(duì)本發(fā)明的技術(shù)方案進(jìn)行描述,當(dāng)然,系統(tǒng)中每個(gè)設(shè)備都執(zhí)行與 設(shè)備A類似的操作。
第一、由于第一保活報(bào)文指示設(shè)備的運(yùn)行狀態(tài)信息,表示設(shè)備是否正常運(yùn) 行。如果設(shè)備A接收到來(lái)自系統(tǒng)中其他設(shè)備的第一?;顖?bào)文,則表示設(shè)備處 于正常運(yùn)行狀態(tài),設(shè)備A會(huì)保存并更新接收到的每個(gè)第一?;顖?bào)文中所指示
7的設(shè)備運(yùn)行狀態(tài)信息,以為后續(xù)的拓樸運(yùn)算做準(zhǔn)備;但如果設(shè)備A在一定時(shí) 間內(nèi)沒(méi)有接收到來(lái)自某個(gè)設(shè)備(例如設(shè)備B)的第一?;顖?bào)文,則表示設(shè)備B 處于非正常運(yùn)行狀態(tài)(例如,設(shè)備B的CPU失效或設(shè)備B當(dāng)機(jī)等),在這種 情況下,設(shè)備B即使接收到系統(tǒng)中的其他設(shè)備發(fā)送的網(wǎng)絡(luò)數(shù)據(jù),但無(wú)法對(duì)數(shù) 據(jù)進(jìn)行處理和傳輸,此時(shí),設(shè)備A會(huì)根據(jù)其本地保存的系統(tǒng)中除設(shè)備B以外 的所有設(shè)備(包括設(shè)備A本身,假設(shè)共5個(gè)設(shè)備,A, B, C, D, E, A沒(méi)收 到B的第一?;顖?bào)文,則A進(jìn)行拓樸計(jì)算時(shí)需要根據(jù)C、 D、 E、以及A的運(yùn) 行狀態(tài)信息)的運(yùn)行狀態(tài)信息進(jìn)行拓樸運(yùn)算,獲得新的轉(zhuǎn)發(fā)路徑以進(jìn)行網(wǎng)絡(luò)數(shù) 據(jù)的傳輸。由于系統(tǒng)中的其他設(shè)備(例如,設(shè)備C、設(shè)備D等)都會(huì)執(zhí)行與 設(shè)備A類似的操作,且保存的各設(shè)備的運(yùn)行狀態(tài)信息均相同,則系統(tǒng)中除設(shè) 備B以外的其他設(shè)備執(zhí)行拓樸運(yùn)算的參數(shù)均相同,這樣每個(gè)設(shè)備計(jì)算出的轉(zhuǎn) 發(fā)路徑也都相同。這樣,就可以解決設(shè)備自身出現(xiàn)問(wèn)題(例如,設(shè)備的中央處 理器失效),此時(shí)設(shè)備的端口狀態(tài)可能未發(fā)生改變,但設(shè)備已經(jīng)無(wú)法進(jìn)行數(shù)據(jù) 的處理及轉(zhuǎn)發(fā),導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)丟失的問(wèn)題。
第二、由于第二?;顖?bào)文用于指示設(shè)備的端口狀態(tài)變化信息,只有當(dāng)某個(gè) 設(shè)備的端口狀態(tài)發(fā)生變化時(shí),才會(huì)向其他所有設(shè)備發(fā)送第二?;顖?bào)文。例如, 設(shè)備A接收到設(shè)備B的第二?;顖?bào)文,指示設(shè)備B的端口 3由開(kāi)啟狀態(tài)轉(zhuǎn)為 關(guān)閉狀態(tài),此時(shí),設(shè)備A會(huì)判斷出系統(tǒng)的拓樸結(jié)構(gòu)發(fā)生了變化,導(dǎo)致轉(zhuǎn)發(fā)路 徑也發(fā)生了變化。這樣,設(shè)備A會(huì)根據(jù)保存的除設(shè)備B以外的所有設(shè)備(包 括設(shè)備A本身)、以及設(shè)備B的新的端口結(jié)構(gòu),重新進(jìn)行拓樸運(yùn)算,獲得新的 轉(zhuǎn)發(fā)路徑以進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的傳輸。同樣,由于系統(tǒng)中的其他設(shè)備(例如,設(shè)備 C、設(shè)備D等)都會(huì)執(zhí)行與設(shè)備A類似的操作,且保存的各設(shè)備的運(yùn)行狀態(tài) 信息均相同,則系統(tǒng)中除設(shè)備B以外的其他設(shè)備執(zhí)行拓樸運(yùn)算的參數(shù)均相同, 這樣每個(gè)設(shè)備計(jì)算出的轉(zhuǎn)發(fā)路徑也都相同。這樣,就可以解決成員設(shè)備發(fā)送給 主設(shè)備的狀態(tài)變化保活報(bào)文丟失,主設(shè)備無(wú)法獲知系統(tǒng)的拓樸結(jié)構(gòu)已經(jīng)發(fā)生了 變化,此時(shí)系統(tǒng)仍按照已有的轉(zhuǎn)發(fā)路徑進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的傳輸,但由于系統(tǒng)拓樸 結(jié)構(gòu)的變化已經(jīng)使得轉(zhuǎn)發(fā)路徑發(fā)生變化,會(huì)導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)的傳輸路徑發(fā)生錯(cuò) 誤,造成網(wǎng)絡(luò)數(shù)據(jù)丟失的問(wèn)題。狀態(tài)發(fā)生異常和僅依靠一個(gè)設(shè)備進(jìn)行拓樸運(yùn)算易導(dǎo)致數(shù)據(jù)丟失的問(wèn)題,彌補(bǔ)了現(xiàn)有?;顧C(jī)制的缺陷,降低了數(shù)據(jù)丟失的概率,通過(guò)系統(tǒng)中的每個(gè)設(shè)備均執(zhí)行拓樸運(yùn)算,降低了數(shù)據(jù)的中斷時(shí)間,提高了數(shù)據(jù)的傳輸效率。
步驟S103,設(shè)備之間通過(guò)新的轉(zhuǎn)發(fā)路徑進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的傳輸。根據(jù)新的轉(zhuǎn)發(fā)路徑,系統(tǒng)的各設(shè)備之間通過(guò)設(shè)備上的端口直接發(fā)送第一保
活報(bào)文和/或第二?;顖?bào)文和/或網(wǎng)絡(luò)數(shù)據(jù);或者,系統(tǒng)的各設(shè)備之間通過(guò)設(shè)備上的端口逐跳轉(zhuǎn)發(fā)第一?;顖?bào)文和/或第二?;顖?bào)文和/或網(wǎng)絡(luò)數(shù)據(jù)(即, 一個(gè)設(shè)備通過(guò)一個(gè)與之相連的設(shè)備將報(bào)文和/或數(shù)據(jù)轉(zhuǎn)發(fā)到另 一設(shè)備)。
為了更好的對(duì)本發(fā)明進(jìn)行說(shuō)明,下面以交換機(jī)堆疊系統(tǒng)為例進(jìn)行說(shuō)明,本領(lǐng)域技術(shù)人員可知,對(duì)于其它包括多個(gè)設(shè)備且多個(gè)設(shè)備能夠兩兩進(jìn)行通信的系統(tǒng),例如,采用級(jí)連方式進(jìn)行連接的多個(gè)設(shè)備組成的系統(tǒng),本發(fā)明同樣是可以實(shí)現(xiàn)的。
圖2是本發(fā)明實(shí)施例的交換機(jī)堆疊系統(tǒng)中交換機(jī)發(fā)送?;顖?bào)文的過(guò)程流程圖,該處理具體包括
步驟S201,堆疊系統(tǒng)中的每個(gè)交換機(jī)(包括主交換機(jī)和成員交換機(jī))預(yù)先為系統(tǒng)中的其他所有交換機(jī)分別設(shè)定一個(gè)定時(shí)器,例如,堆疊系統(tǒng)包括三臺(tái)交換機(jī)交換機(jī)l、交換機(jī)2和交換機(jī)3,在設(shè)置定時(shí)器時(shí),交換機(jī)l會(huì)在本地為交換機(jī)2設(shè)置定時(shí)器12,為交換機(jī)3設(shè)置定時(shí)器13,交換機(jī)2會(huì)在本地為交換機(jī)1設(shè)置定時(shí)器21,為交換機(jī)3設(shè)置定時(shí)器23,交換機(jī)3會(huì)在本地為交換機(jī)1設(shè)置定時(shí)器31 ,為交換機(jī)2設(shè)置定時(shí)器32。以交換機(jī)1為例,說(shuō)明定時(shí)器所起的作用交換機(jī)2會(huì)周期性地向交換機(jī)1發(fā)送普通?;顖?bào)文(對(duì)應(yīng)于上文所述的第一?;顖?bào)文),如果交換機(jī)1在定時(shí)器12超時(shí)前接收到交換機(jī)2發(fā)送的普通?;顖?bào)文(交換機(jī)1可以通過(guò)報(bào)文中的MAC地址識(shí)別報(bào)文的發(fā)起者),會(huì)判斷出交換機(jī)2正常運(yùn)行,并將定時(shí)器12清零,定時(shí)器從O開(kāi)始計(jì)時(shí),如果定時(shí)器的值大于某一閾值(定時(shí)器12超時(shí)),即交換機(jī)2在一定時(shí)間內(nèi)沒(méi)有向交換機(jī)1發(fā)送普通?;顖?bào)文、或交換機(jī)2發(fā)送的普通?;顖?bào)文未被交換機(jī)1接收到,交換機(jī)1會(huì)認(rèn)為交換機(jī)2非正常運(yùn)行。
并且,根據(jù)報(bào)文的類型,預(yù)先將報(bào)文分為兩類, 一類是普通?;顖?bào)文(對(duì)應(yīng)于上文所述的第一保活報(bào)文),該報(bào)文可以為廣播報(bào)文, 一類是狀態(tài)變化保活報(bào)文(對(duì)應(yīng)于上文所述的第二?;顖?bào)文),上文已經(jīng)對(duì)第一?;顖?bào)文和第二保活報(bào)文進(jìn)行了說(shuō)明,這里不再贅述。
步驟S202,堆疊系統(tǒng)中的每臺(tái)交換機(jī),會(huì)判斷其堆疊端口的狀態(tài)是否發(fā)
生了改變,例如,堆疊端口的開(kāi)啟、關(guān)閉、或連接方式的變化,如果判斷結(jié)果
為是,處理進(jìn)行到步驟S203,否則處理進(jìn)行到步驟S204。
步驟S203,堆疊端口狀態(tài)發(fā)生變化的交換機(jī)會(huì)主動(dòng)向系統(tǒng)中的所有其他交換機(jī)發(fā)送狀態(tài)變化?;顖?bào)文,然后重新計(jì)算拓樸。根據(jù)堆疊系統(tǒng)的拓樸結(jié)構(gòu),各交換機(jī)之間通過(guò)直接發(fā)送或逐跳轉(zhuǎn)發(fā)的方式,將普通?;顖?bào)文從堆疊端口發(fā)
狀態(tài)進(jìn)行更新,并重新計(jì)算系統(tǒng)的拓樸,達(dá)到快速收斂,減少數(shù)據(jù)中斷時(shí)間的目的。
步驟S204,如果堆疊端口的狀態(tài)沒(méi)有發(fā)生變化,交換機(jī)會(huì)周期性地向其他所有交換機(jī)發(fā)送普通?;顖?bào)文。同樣地,根據(jù)堆疊系統(tǒng)的拓樸結(jié)構(gòu),各交換機(jī)之間通過(guò)直接發(fā)送或逐跳轉(zhuǎn)發(fā)的方式,將普通?;顖?bào)文從堆疊端口發(fā)送出去。
步驟S205,交換機(jī)會(huì)監(jiān)控其本地的定時(shí)器,判斷是否有定時(shí)器計(jì)時(shí)超時(shí),如果判斷結(jié)果為是,處理進(jìn)行到步驟S206,否則進(jìn)行到步驟S207。
步驟S206,交換機(jī)會(huì)更新并保存其接收到的各交換機(jī)的運(yùn)行狀態(tài)信息,并將成功向其發(fā)送了普通?;顖?bào)文的設(shè)備所對(duì)應(yīng)的定時(shí)器清零。
步驟S207,交換機(jī)在一定時(shí)間內(nèi)未接收到某臺(tái)交換機(jī)的普通保活報(bào)文,即某臺(tái)交換機(jī)對(duì)應(yīng)的定時(shí)器超時(shí),交換機(jī)會(huì)根據(jù)當(dāng)前的最新拓樸情況重新計(jì)算系統(tǒng)的拓樸信息,生成新的轉(zhuǎn)發(fā)路徑。
參照?qǐng)D3,示出了本發(fā)明實(shí)施例的交換機(jī)堆疊系統(tǒng)中交換機(jī)接收?;顖?bào)文的過(guò)程流程圖,包括
步驟S301,堆疊系統(tǒng)中的每臺(tái)交換機(jī)接收到來(lái)自其他交換機(jī)的?;顖?bào)文之后,會(huì)判斷該?;顖?bào)文的類型,如果是狀態(tài)變化?;顖?bào)文,處理進(jìn)行到步驟S302;如果是普通保活報(bào)文,則處理進(jìn)行到步驟S303。
步驟S302,交換機(jī)會(huì)根據(jù)狀態(tài)變化?;顖?bào)文中指示的端口變化情況,更新系統(tǒng)的拓樸信息,生成新的轉(zhuǎn)發(fā)路徑。
10步驟S303,交換機(jī)會(huì)根據(jù)普通?;顖?bào)文中的MAC地址,將相應(yīng)交換機(jī)記錄為alive,將該交換機(jī)的定時(shí)器清零。
下面以堆疊系統(tǒng)包括三臺(tái)交換為例對(duì)本發(fā)明進(jìn)行i兌明,如圖4所示,堆疊系統(tǒng)包括交換機(jī)1 、交換機(jī)2和交換機(jī)3,其中,交換機(jī)1的堆疊端口為A和B,交換機(jī)2的堆疊端口為C和D,交換機(jī)3的堆疊端口為E和F,其中,A和C相連接,D和E相連接,B和F相連接,需要說(shuō)明的是,如果B和F沒(méi)有連接,則交換機(jī)1與交換機(jī)3之間的數(shù)據(jù)交互需要通過(guò)交換機(jī)2進(jìn)行逐跳轉(zhuǎn)發(fā)。并且,每臺(tái)交換機(jī)都在本地為其余每臺(tái)交換機(jī)分別創(chuàng)建一個(gè)定時(shí)器,具體創(chuàng)建過(guò)程以及定時(shí)器的功能上文已描述,這里不再贅述。下面以交換機(jī)l為例對(duì)本發(fā)明進(jìn)行說(shuō)明,交換機(jī)2、交換機(jī)3的操作均與交換機(jī)1的操作類似。
在具體實(shí)現(xiàn)過(guò)程中,交換機(jī)1會(huì)周期性地通過(guò)堆疊端口 A和B向交換機(jī)2和交換機(jī)3直接發(fā)送普通保活報(bào)文。交換機(jī)2和交換機(jī)3接收到來(lái)自交換機(jī)1的普通?;顖?bào)文之后,把本地保存的交換機(jī)1的記錄置為alive,同時(shí)將對(duì)應(yīng)于交換機(jī)1的定時(shí)器清零,重新開(kāi)始計(jì)時(shí)。
如果交換機(jī)2的CPU不工作但轉(zhuǎn)發(fā)芯片依然正常工作的話,交換機(jī)2就不會(huì)向交換機(jī)1和交換機(jī)3發(fā)送普通?;顖?bào)文,交換機(jī)1本地記錄交換機(jī)2的定時(shí)器就會(huì)超時(shí),這時(shí),交換機(jī)1會(huì)把交換機(jī)2從拓樸中去掉,重新計(jì)算堆疊系統(tǒng)的拓樸信息,生成新的轉(zhuǎn)發(fā)路徑,即交換機(jī)l根據(jù)其本身的運(yùn)行狀態(tài)信息和本地保存的交換機(jī)3的運(yùn)行狀態(tài)信息執(zhí)行拓樸運(yùn)算。同樣地,交換機(jī)3會(huì)把交換機(jī)2從拓樸中去掉,根據(jù)交換機(jī)3本身的運(yùn)行狀態(tài)信息和本地保存的交換機(jī)1的運(yùn)行狀態(tài)信息執(zhí)行拓樸運(yùn)算。由于交換機(jī)1和交換機(jī)3中保存的拓樸結(jié)構(gòu)是一樣的,并且計(jì)算拓樸的算法也相同,所以計(jì)算出的轉(zhuǎn)發(fā)路徑也相同。
如果交換機(jī)2的C端口狀態(tài)發(fā)生變化,例如由link up變?yōu)閘ink down,則交換機(jī)2會(huì)向交換機(jī)1和交換機(jī)3發(fā)送狀態(tài)變化保活報(bào)文,該報(bào)文中會(huì)攜帶有C端口由link up變?yōu)閘ink down的信息。交換機(jī)1接收到該報(bào)文后,會(huì)根據(jù)C端口的狀態(tài)、交換機(jī)1本身的運(yùn)行狀態(tài)信息以及保存的交換機(jī)3的運(yùn)行狀態(tài)信息執(zhí)行拓樸運(yùn)算。同樣地,交換機(jī)3會(huì)根據(jù)C端口的狀態(tài)、交換機(jī)3本身的運(yùn)行狀態(tài)信息以及保存的交換機(jī)1的運(yùn)行狀態(tài)信息執(zhí)行拓樸運(yùn)算。類似地,由于交換機(jī)1和交換機(jī)3中保存的拓樸結(jié)構(gòu)是一樣的,并且計(jì)算拓樸的算法也相同,所以計(jì)算出的轉(zhuǎn)發(fā)路徑也相同。
通過(guò)上述描述,可以看出在交換機(jī)堆疊系統(tǒng)中,所有交換機(jī)均正常運(yùn)行后,可以將該堆疊系統(tǒng)作為一個(gè)整體,為了便于堆疊系統(tǒng)的管理,在主交換機(jī)監(jiān)控各成員交換機(jī)狀態(tài)的同時(shí),每個(gè)成員交換機(jī)也監(jiān)控主交換機(jī)的運(yùn)行狀態(tài), 一旦某個(gè)交換機(jī)出現(xiàn)問(wèn)題,可以及時(shí)地對(duì)該交換機(jī)進(jìn)行處理,以保證堆疊系統(tǒng)的正
常運(yùn)行。例如,交換機(jī)的中央處理器(Central Processing Unit,簡(jiǎn)稱為CPU )的運(yùn)行出現(xiàn)問(wèn)題或堆疊端口的狀態(tài)發(fā)生變化時(shí),可以通過(guò)本發(fā)明所述的?;顧C(jī)制對(duì)交換機(jī)堆疊系統(tǒng)進(jìn)行處理,快速響應(yīng)系統(tǒng)中發(fā)生的錯(cuò)誤情況,減少網(wǎng)絡(luò)數(shù)據(jù)的丟失??梢钥闯?,在本發(fā)明的技術(shù)方案中,由于每個(gè)設(shè)備均能夠進(jìn)行拓樸計(jì)算,并且每個(gè)設(shè)備能夠?qū)⑹欠裨谠试S的時(shí)間周期內(nèi)接收來(lái)自其他設(shè)備的?;顖?bào)文作為拓樸計(jì)算的觸發(fā)條件,所以能夠有效避免相關(guān)技術(shù)中的?;顧C(jī)制在設(shè)備本身故障而端口正常、以及主設(shè)備不能成功接收來(lái)自其他設(shè)備的?;顖?bào)文的情況下失效的問(wèn)題,進(jìn)一步完善了保活機(jī)制,提高了?;钐幚淼男?。
參照?qǐng)D5,示出了本發(fā)明實(shí)施例一種?;顧C(jī)制的實(shí)現(xiàn)裝置的組成結(jié)構(gòu)圖,該裝置可以設(shè)置于包括多個(gè)設(shè)備的系統(tǒng)內(nèi)的每個(gè)設(shè)備中,其中,該系統(tǒng)中的多個(gè)設(shè)備能夠兩兩進(jìn)行通信,例如,將該?;顧C(jī)制的實(shí)現(xiàn)裝置設(shè)置于采用級(jí)連方式進(jìn)行連接的系統(tǒng)內(nèi)的每個(gè)設(shè)備中,裝置包括
報(bào)文接收模塊501,用于接收系統(tǒng)中其他設(shè)備發(fā)送的第一?;顖?bào)文和第二?;顖?bào)文;
拓樸計(jì)算模塊502,用于在預(yù)定情況下計(jì)算系統(tǒng)的拓樸信息,其中,預(yù)定情況包括以下至少之一報(bào)文接收模塊在預(yù)定時(shí)間內(nèi)沒(méi)有接收到系統(tǒng)中任一其他設(shè)備發(fā)送的第一?;顖?bào)文、報(bào)文接收模塊接收到系統(tǒng)中任一其他設(shè)備發(fā)送的第二保活報(bào)文;
其中,第一?;顖?bào)文用于指示設(shè)備的運(yùn)行狀態(tài)信息、第二保活報(bào)文用于指示設(shè)備的端口狀態(tài)變化信息,具體地,運(yùn)行狀態(tài)信息可以包括以下至少之一設(shè)備的MAC地址、設(shè)備的端口信息、設(shè)備的端口連接方式,端口狀態(tài)變化信息可以包括以下至少之一設(shè)備端口的開(kāi)啟、設(shè)備端口的關(guān)閉、設(shè)備端口連接方式的變化。
進(jìn)一步地,上述裝置還可以包括
12存儲(chǔ)模塊503 ,用于存儲(chǔ)來(lái)自其他設(shè)備的第 一?;顖?bào)文中所指示的設(shè)備的運(yùn)行狀態(tài)信息。
利用上述裝置實(shí)現(xiàn)?;顧C(jī)制的過(guò)程如下如果報(bào)文接收模塊501在預(yù)定時(shí)間周期內(nèi)沒(méi)有接收到除報(bào)文接收模塊501所在設(shè)備之外的任一設(shè)備發(fā)送的第一保活報(bào)文,則拓樸計(jì)算模塊502根據(jù)存儲(chǔ)模塊503中存儲(chǔ)的系統(tǒng)中除未向本設(shè)備發(fā)送第一?;顖?bào)文或發(fā)送第一保活報(bào)文失敗的設(shè)備之外所有設(shè)備的端口狀態(tài)信息,計(jì)算系統(tǒng)的拓樸信息;如果報(bào)文接收模塊501接收到除報(bào)文接收模塊501所在設(shè)備之外的任一設(shè)備發(fā)送的第二?;顖?bào)文,則拓樸計(jì)算模塊502根據(jù)存儲(chǔ)模塊503中存儲(chǔ)的該系統(tǒng)中除發(fā)送第二保活報(bào)文之外的所有設(shè)備的端口狀態(tài)信息、以及該第二保活報(bào)文中指示的設(shè)備的端口的狀態(tài)變化信息,計(jì)
算系統(tǒng)的拓樸信息。
通過(guò)本發(fā)明提出的?;顧C(jī)制的實(shí)現(xiàn)裝置,解決了因設(shè)備的CPU失效或通知主交換機(jī)的報(bào)文丟失而導(dǎo)致數(shù)據(jù)丟失的問(wèn)題,并且端口狀態(tài)發(fā)生變化后的拓樸運(yùn)算由各個(gè)設(shè)備自己進(jìn)行,提高了數(shù)據(jù)的傳輸效率。相比于現(xiàn)有技術(shù),本發(fā)
明提供的?;顧C(jī)制不僅適用于端口狀態(tài)變化的情況,對(duì)系統(tǒng)中設(shè)備運(yùn)行錯(cuò)誤等情況也會(huì)估文出正確的處理。
圖5是與前面方法對(duì)應(yīng)的裝置,裝置的工作過(guò)程以及工作原理在方法部分已經(jīng)進(jìn)行了詳細(xì)描述,在此不再贅述,參照方法中相應(yīng)部分的描述即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種?;顧C(jī)制的實(shí)現(xiàn)方法,應(yīng)用于包括多個(gè)設(shè)備的系統(tǒng),其中,所述系統(tǒng)中的多個(gè)設(shè)備能夠兩兩進(jìn)行通信,其特征在于,所述方法包括對(duì)于所述系統(tǒng)中的每個(gè)設(shè)備,所述設(shè)備在預(yù)定情況下計(jì)算所述系統(tǒng)的拓?fù)湫畔?,其中,所述預(yù)定情況包括以下至少之一所述設(shè)備在預(yù)定時(shí)間內(nèi)沒(méi)有接收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第一保活報(bào)文、所述設(shè)備接收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第二保活報(bào)文;其中,所述第一?;顖?bào)文用于指示設(shè)備的運(yùn)行狀態(tài)信息、所述第二?;顖?bào)文用于指示設(shè)備的端口狀態(tài)變化信息。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 如果所述設(shè)備在預(yù)定時(shí)間內(nèi)接收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第一保活報(bào)文,則保存該第 一?;顖?bào)文中所指示的設(shè)備的運(yùn)行狀態(tài)信息。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,如果所述設(shè)備在預(yù)定時(shí)間 內(nèi)沒(méi)有接收到除所述設(shè)備之外的任一設(shè)備發(fā)送的第一?;顖?bào)文,則所述設(shè)備計(jì) 算所述系統(tǒng)的拓樸信息的操作具體包括所述設(shè)備根據(jù)其保存的所述系統(tǒng)中除未向所述設(shè)備發(fā)送所述第 一保活報(bào)所述系統(tǒng)的拓樸信息。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,如果所述設(shè)備接收除所述 設(shè)備之外的任一設(shè)備發(fā)送的第二?;顖?bào)文,則所述設(shè)備計(jì)算所述系統(tǒng)的拓樸信 息的操作具體包括所述設(shè)備根據(jù)其保存的所述系統(tǒng)中除發(fā)送所述第二保活報(bào)文之外的所有 設(shè)備的運(yùn)行狀態(tài)信息、以及所述第二?;顖?bào)文中指示的設(shè)備的端口狀態(tài)變化信 息,計(jì)算所述系統(tǒng)的拓樸信息。
5. 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,還包括 所述系統(tǒng)的各設(shè)備之間通過(guò)設(shè)備上的端口直接發(fā)送第一?;顖?bào)文和/或第二?;顖?bào)文;或者,所述系統(tǒng)的各設(shè)備之間通過(guò)設(shè)備上的端口逐跳轉(zhuǎn)發(fā)第一?;顖?bào)文和/或第二保活報(bào)文。
6. 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述運(yùn)行狀態(tài)信息包括以下至少之一設(shè)備的媒體接入控制地址、設(shè)備的端口信息、設(shè)備 的端口連接方式,所述端口狀態(tài)變化信息包括以下至少之一 設(shè)備端口的開(kāi)啟、 設(shè)備端口的關(guān)閉、設(shè)備端口連接方式的變化。
7. 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述系統(tǒng)為 以下之一交換機(jī)堆疊系統(tǒng)、路由器堆疊系統(tǒng)。
8. —種保活機(jī)制的實(shí)現(xiàn)裝置,設(shè)置于包括多個(gè)設(shè)備的系統(tǒng)內(nèi)的每個(gè)設(shè)備 中,其中,所述系統(tǒng)中的多個(gè)設(shè)備能夠兩兩進(jìn)行通信,其特征在于,所述裝置 包括報(bào)文接收模塊,用于接收所述系統(tǒng)中其他設(shè)備發(fā)送的第一保活報(bào)文和第二 ?;顖?bào)文;拓樸計(jì)算模塊,用于在預(yù)定情況下計(jì)算所述系統(tǒng)的拓樸信息,其中,所述 預(yù)定情況包括以下至少之一所述報(bào)文接收模塊在預(yù)定時(shí)間內(nèi)沒(méi)有接收到所述 系統(tǒng)中任一其他設(shè)備發(fā)送的第 一?;顖?bào)文、所述報(bào)文接收模塊接收到所述系統(tǒng) 中任一其他設(shè)備發(fā)送的第二?;顖?bào)文;其中,所述第一?;顖?bào)文用于指示設(shè)備的運(yùn)行狀態(tài)信息、所述第二?;顖?bào) 文用于指示設(shè)備的端口狀態(tài)變化信息。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括存儲(chǔ)模塊,用于存儲(chǔ)來(lái)自所述其他設(shè)備的第一保活報(bào)文中所指示的設(shè)備的 運(yùn)行狀態(tài)信息。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,如果所述才艮文接收模塊在 預(yù)定時(shí)間周期內(nèi)沒(méi)有接收到除所述報(bào)文接收模塊所在所述設(shè)備之外的任一設(shè) 備發(fā)送的第一?;顖?bào)文,則所述拓樸計(jì)算模塊根據(jù)所述存儲(chǔ)模塊中存儲(chǔ)的所述 系統(tǒng)中除未向本設(shè)備發(fā)送所述第 一?;顖?bào)文或發(fā)送所述第 一?;顖?bào)文失敗的 設(shè)備之外所有設(shè)備的運(yùn)行狀態(tài)信息,計(jì)算所述系統(tǒng)的拓樸信息。
全文摘要
本發(fā)明公開(kāi)了一種?;顧C(jī)制的實(shí)現(xiàn)方法和裝置,其中,該方法包括對(duì)于系統(tǒng)中的每個(gè)設(shè)備,所述設(shè)備在預(yù)定情況下計(jì)算所述系統(tǒng)的拓?fù)湫畔?,其中,所述預(yù)定情況包括以下至少之一所述設(shè)備在預(yù)定時(shí)間內(nèi)沒(méi)有接收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第一?;顖?bào)文、所述設(shè)備接收到所述系統(tǒng)中任一其他設(shè)備發(fā)送的第二?;顖?bào)文;其中,所述第一?;顖?bào)文用于指示設(shè)備的運(yùn)行狀態(tài)信息、所述第二?;顖?bào)文用于指示設(shè)備的端口狀態(tài)變化信息。通過(guò)根據(jù)設(shè)備的運(yùn)行狀態(tài)和端口狀態(tài)來(lái)確定是否重新計(jì)算系統(tǒng)的拓?fù)湫畔?,減少了數(shù)據(jù)的丟失概率,并且系統(tǒng)中的每個(gè)設(shè)備均執(zhí)行拓?fù)溥\(yùn)算,可以降低數(shù)據(jù)的中斷時(shí)間,提高數(shù)據(jù)的傳輸效率。
文檔編號(hào)H04L12/56GK101635675SQ20091009051
公開(kāi)日2010年1月27日 申請(qǐng)日期2009年8月19日 優(yōu)先權(quán)日2009年8月19日
發(fā)明者炎 鄭, 陳建光, 馬鳳鳴 申請(qǐng)人:中興通訊股份有限公司