自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法
【專利摘要】自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,算法運(yùn)行在二層交換機(jī)上。本算法設(shè)計特殊BPDU報文,BPDU報文中的linkup消息在環(huán)網(wǎng)中轉(zhuǎn)發(fā)比較來確定環(huán)網(wǎng)中的根交換機(jī)和環(huán)網(wǎng)的兩個端口。交換機(jī)在啟動時和發(fā)現(xiàn)端口連上時,發(fā)linkup消息來判斷成環(huán)的端口和根交換機(jī);收到自己的linkup消息,計算兩個成環(huán)端口,判斷自己是否是根交換機(jī),如果是根交換機(jī)發(fā)出完成消息和通知消息,如果不是發(fā)通知消息。收到通知消息后轉(zhuǎn)發(fā)該消息,發(fā)送linkup消息確定自己的環(huán)網(wǎng)端口;收到完成消息,設(shè)置連接上的端口為轉(zhuǎn)發(fā)狀態(tài),清空mac地址表,轉(zhuǎn)發(fā)該消息。交換機(jī)定時掃描連接變化,發(fā)現(xiàn)成環(huán)的端口掉線,發(fā)出linkdown消息,根交換機(jī)處理該消息并發(fā)送響應(yīng)消息。
【專利說明】自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明為自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法屬于網(wǎng)絡(luò)通信領(lǐng)域。具體涉及一種在以太網(wǎng)交換機(jī)上運(yùn)行的軟件算法。
【背景技術(shù)】
[0002]現(xiàn)代工業(yè)通訊環(huán)境中采用以太網(wǎng)作為傳輸網(wǎng)絡(luò)越來越普遍,工業(yè)通訊對數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性要求很高,以太網(wǎng)交換機(jī)為基礎(chǔ)構(gòu)建的工業(yè)通訊網(wǎng)絡(luò)必須做出一定的改進(jìn)來滿足這種要求。本發(fā)明設(shè)計自適應(yīng)以太網(wǎng)單環(huán)網(wǎng)算法來保證通訊的穩(wěn)定性和可靠性。自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法工作在數(shù)據(jù)鏈路層,主要在交換機(jī)上運(yùn)行,支持交換機(jī)之間的單環(huán)形拓?fù)浣Y(jié)構(gòu),使用交換芯片的特定功能和本發(fā)明提供的算法使交換機(jī)物理上的環(huán)形拓?fù)浣Y(jié)構(gòu)轉(zhuǎn)換成邏輯上的線性拓?fù)浣Y(jié)構(gòu)。
[0003]交換機(jī)是構(gòu)建以太網(wǎng)的核心網(wǎng)絡(luò)設(shè)備,交換機(jī)之間一般直接采用線性連接,但是線性連接有個缺點(diǎn):當(dāng)線性連接中有一條線路故障將導(dǎo)致整個網(wǎng)絡(luò)通訊中斷。工業(yè)環(huán)境中交換機(jī)可采用環(huán)形拓?fù)浣Y(jié)構(gòu)連接,避免其中的一條線路故障導(dǎo)致的網(wǎng)絡(luò)癱瘓。采用環(huán)形拓?fù)浣Y(jié)構(gòu)連接的交換機(jī)一般采用私有環(huán)網(wǎng)協(xié)議和標(biāo)準(zhǔn)RSTP協(xié)議,標(biāo)準(zhǔn)RSTP協(xié)議具有冗余備份和鏈路切換功能,不過鏈路切換的時間在幾秒到幾十秒之間,自愈時間太長不能滿足工業(yè)要求。私有環(huán)網(wǎng)協(xié)議需要管理員設(shè)置根交換機(jī)和設(shè)置成環(huán)端口,使用上不便捷。如果操作員誤連錯誤,交換機(jī)端口會造成網(wǎng)絡(luò)風(fēng)暴。
[0004]為了克服傳統(tǒng)RSTP協(xié)議自愈時間太長的缺點(diǎn),本發(fā)明提出自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,本算法支持環(huán)形拓?fù)浣Y(jié)構(gòu),具有冗余備份和鏈路切換功能,可以自動選擇交換機(jī)的成環(huán)端口,同時自動選擇或按照管理員的設(shè)置選擇環(huán)網(wǎng)中一臺交換機(jī)作為根交換機(jī)。根交換機(jī)執(zhí)行冗余備份和鏈路切換功能,在連接變化和網(wǎng)絡(luò)重新連接時智能的重新選擇成環(huán)端口和根交換機(jī),同時網(wǎng)絡(luò)斷開的切換時間和連接恢復(fù)后的自愈時間在20ms以內(nèi)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明需要用到交換機(jī)的交換芯片的特定功能,包括:交換機(jī)的端口狀態(tài)、交換機(jī)的連接狀態(tài)和BPDU (橋接管理幀)。現(xiàn)在交換芯片大部分都支持這些功能,比如馬維爾公司的6095F、6061F等芯片,博通公司的BCM53242、BCM53262等芯片。交換機(jī)的端口狀態(tài)通常有四種:轉(zhuǎn)發(fā)狀態(tài)、阻塞狀態(tài)、禁用狀態(tài)、學(xué)習(xí)狀態(tài)。本發(fā)明使用其中的兩種:轉(zhuǎn)發(fā)狀態(tài)和阻塞狀態(tài),轉(zhuǎn)發(fā)狀態(tài)允許所有的數(shù)據(jù)幀通過,阻塞狀態(tài)只允許BPDU通過,其他報文不允許通過。BPDU是交換機(jī)的一種特定的報文,它作用是管理交換機(jī)的連接,BPDU可以被處于阻塞狀態(tài)的交換機(jī)端口收發(fā)處理,可以用它實(shí)現(xiàn)具體的網(wǎng)絡(luò)協(xié)議。Brou可以指定報文的出端口,分析BPDU可以得到報文的入端口。本發(fā)明應(yīng)用BPDU的出端口和入端口來計算交換機(jī)的參與環(huán)網(wǎng)的成環(huán)端口,用BPDU消息的收發(fā)處理來完成算法主要功能。在實(shí)際網(wǎng)絡(luò)中除了 BPDU消息的數(shù)據(jù)通信外,大量的是普通的數(shù)據(jù)流,這些數(shù)據(jù)流很多需要占用cpu的處理時間,BPDU消息的重要性高于普通數(shù)據(jù)流,如果BPDU的數(shù)據(jù)流沒有及時處理會造成網(wǎng)絡(luò)風(fēng)暴,所以需要優(yōu)先處理BPDU的數(shù)據(jù),打開交換機(jī)的QOS功能,讓BPDU數(shù)據(jù)在最高優(yōu)先級隊(duì)列中,交換機(jī)優(yōu)先處理BPDU。
[0006]本發(fā)明設(shè)計一種特殊的BPDU幀,包含交換機(jī)的出端口、交換機(jī)的優(yōu)先級、根交換機(jī)的mac地址等信息。該BPDU幀可以用下面的數(shù)據(jù)結(jié)構(gòu)表達(dá),其中desjnac是算法采用的特殊的組播目的地址,交換機(jī)在收到該特殊組播目的地址的數(shù)據(jù)幀后直接轉(zhuǎn)發(fā)到交換機(jī)的CPU處理。source_mac為發(fā)包交換機(jī)的mac地址,具有唯一性;bcm_type為交換芯片的類型,每個廠家各不一樣;bcmt_tag字段可以規(guī)定數(shù)據(jù)幀的出端口和BPDU數(shù)據(jù)幀的優(yōu)先級,同時交換機(jī)收到BPDU幀后交換芯片修改它,修改后的字段中包含幀的入口信息;cmd為消息的類型,用以區(qū)分不同作用的各種消息;id為交換機(jī)的優(yōu)先級標(biāo)示;depth表明數(shù)據(jù)幀經(jīng)過的交換機(jī)的個數(shù);out_port指出數(shù)據(jù)出端口 ;root_mac為環(huán)網(wǎng)中根交換機(jī)的mac地址;reserve_data為保留區(qū)域,可在以后擴(kuò)充。對于特定的交換芯片而言,bcm_type, bcm_tag這兩個字段的位置和大小可能不一樣,需要開發(fā)者按照芯片的說明進(jìn)行修改,下面的結(jié)構(gòu)體可以支持博通公司的BCM53242、BCM53262芯片。
[
【權(quán)利要求】
1.自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:交換機(jī)在啟動時各自發(fā)送linkup消息來探測環(huán)網(wǎng)是否成環(huán),同時判斷網(wǎng)絡(luò)中的根交換機(jī)并檢測自己的成環(huán)端口,link up消息被鄰居交換機(jī)接收處理并轉(zhuǎn)發(fā)最終回到源發(fā)送方;源發(fā)送方檢測出成環(huán),發(fā)送通知消息激發(fā)其他交換機(jī)開始同樣的探測過程;網(wǎng)絡(luò)中的交換機(jī)收到通知消息時發(fā)送link up消息開啟自己的探測過程,并轉(zhuǎn)發(fā)通知消息,最后通知消息回到發(fā)送方停止轉(zhuǎn)發(fā);交換機(jī)檢測出自己是根交換機(jī)后,發(fā)送完成消息,鄰居交換機(jī)收到完成消息后打開阻塞的端口并轉(zhuǎn)發(fā)該消息,最后完成消息回到發(fā)送方停止轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:交換機(jī)在初始化BPDU消息報文時將根交換機(jī)的優(yōu)先級設(shè)置為自己的優(yōu)先級,根交換機(jī)的mac地址設(shè)置為自己的mac地址,設(shè)置消息的發(fā)出端口并在該端口發(fā)出link up消息,鄰居交換機(jī)收到link up消息的交換機(jī)用自己的優(yōu)先級與報文中的優(yōu)先級進(jìn)行比較,用自己的mac和報文中的根交換機(jī)mac地址進(jìn)行比較,如果自己的配置高則進(jìn)行替換,同時轉(zhuǎn)發(fā)該消息,該消息回到源發(fā)送方后停止轉(zhuǎn)發(fā)。
3.根據(jù)權(quán)利要求1和權(quán)利要求2所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:自己的配置高則進(jìn)行替換,用自己的優(yōu)先級替換消息中優(yōu)先級,用自己的mac地址替換消息中的根交換機(jī)的mac地址,替換完成后,向除接收端口以外所有連接上的端口進(jìn)行轉(zhuǎn)發(fā)。
4.根據(jù)權(quán)利要求1所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:linkup消息經(jīng)過轉(zhuǎn)發(fā)回到源發(fā)送方,源發(fā)送方從報文中讀取出端口,并計算出報文的入端口,出端口和入端口就是交換機(jī)參與環(huán)網(wǎng)的成環(huán)端口,比較根交換機(jī)mac和自己mac,若相等則確認(rèn)自己是根交換機(jī),如果是根交換機(jī)則設(shè)置一個成環(huán)端口為備份端口,備份端口設(shè)置為阻塞狀態(tài),另一個為傳輸端口,傳輸端口設(shè)置為轉(zhuǎn)發(fā)狀態(tài),根交換機(jī)發(fā)通知消息和完成消息,非根交換機(jī)發(fā)通知消息。
5.根據(jù)權(quán)利要求1所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:交換機(jī)的端口在初始化時設(shè)置為阻塞狀態(tài),發(fā)出`link up消息,同時打開定時器,如果定時器超時沒有收到自己發(fā)的link up消息,則把端口設(shè)置為轉(zhuǎn)發(fā)狀態(tài)。
6.根據(jù)權(quán)利要求書I和權(quán)利要求書4所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:交換機(jī)收到通知消息則轉(zhuǎn)發(fā)該消息,同時發(fā)送link up消息來確定自己的成環(huán)端口,收到完成消息則把自己的連上的端口狀態(tài)設(shè)置成轉(zhuǎn)發(fā)狀態(tài),清空mac地址表,轉(zhuǎn)發(fā)完成消息。
7.根據(jù)權(quán)利要求1所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:交換機(jī)周期性檢測自己端口的連接狀態(tài),如果發(fā)現(xiàn)有新的端口連上,判斷自己的兩個環(huán)網(wǎng)端口是否檢測出來,如果檢測出成環(huán)端口,把剛連接上的端口設(shè)置為轉(zhuǎn)發(fā)狀態(tài),否則發(fā)送link up消息檢測鏈路是否成環(huán);如果發(fā)現(xiàn)有新的交換機(jī)鏈路斷開,斷開的端口同時是自己的成環(huán)端口,發(fā)送linkdown消息,通知根交換機(jī)處理,根交換機(jī)收到后,把備份端口設(shè)置為轉(zhuǎn)發(fā)狀態(tài),清空mac地址表,發(fā)出link down的響應(yīng)消息,源發(fā)送方在收到響應(yīng)消息后停止發(fā)送link down消息。
8.根據(jù)權(quán)利要求1所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:打開交換機(jī)的Q0S,讓本算法的消息報文在最高優(yōu)先級隊(duì)列,交換機(jī)優(yōu)先處理本算法的消息報文;配置交換機(jī)限制未知多播和廣播報文涌入Cpu端口的速度;在交換機(jī)多播地址轉(zhuǎn)發(fā)表中添加一條記錄,記錄的內(nèi)容是算法采用的本算法的消息報文幀的目的多播mac地址對應(yīng)的兩個成環(huán)端口和cpu端P ο
9.根據(jù)權(quán)利要求1所述自適應(yīng)的以太網(wǎng)單環(huán)網(wǎng)算法,其特征是:當(dāng)環(huán)網(wǎng)中存在不支持該算法交換機(jī)時也能運(yùn)行,環(huán)網(wǎng)中的根交換機(jī)周期發(fā)送hello探測消息,同時打開定時器,如果根交換機(jī)超時沒有收到hello消息,它假設(shè)網(wǎng)絡(luò)有故障,設(shè)置備份端口為轉(zhuǎn)發(fā)狀態(tài),清空mac地址表,發(fā)出更新消息,環(huán)網(wǎng)中的交換機(jī)收到更新消息,清空mac地址表,轉(zhuǎn)發(fā)該消肩、ο`
【文檔編號】H04L12/933GK103685079SQ201410000956
【公開日】2014年3月26日 申請日期:2014年1月2日 優(yōu)先權(quán)日:2014年1月2日
【發(fā)明者】周厚明, 崔磊 申請人:武漢邁威實(shí)達(dá)軟件有限公司