專利名稱:一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法及系統(tǒng)。
背景技術(shù):
隨著以太網(wǎng)絡(luò)向著多業(yè)務(wù)承載方向的發(fā)展,特別是一些業(yè)務(wù)對網(wǎng)絡(luò)的可靠性、實 時性要求越來越高,以太網(wǎng)廣泛采用了冗余的組網(wǎng)提高網(wǎng)絡(luò)可靠性。并且在以太網(wǎng)的冗余 組網(wǎng)中,通常要求快速保護倒換,達到50ms以下。目前這種快速保護倒換的技術(shù)有互聯(lián)網(wǎng) 工程任務(wù)組(IETFJnternet Engineering TaskForce)的 RFC3619、國際電信聯(lián)盟(ITU-T, International TelecommunicationUnion)的 G. 8032 等。例如在ITU-T提出的G. 8032標(biāo)準(zhǔn)中,為環(huán)形拓撲以太網(wǎng)的以太層定義了自動保護 切換協(xié)議與機制。這種網(wǎng)絡(luò)保護方法適用于環(huán)形拓撲的以太網(wǎng),其實現(xiàn)大致為在環(huán)形拓撲 以太網(wǎng)中,選擇一段鏈路為環(huán)保護鏈路,當(dāng)以太網(wǎng)環(huán)網(wǎng)的鏈路都無故障時,環(huán)保護鏈路的兩 個相鄰節(jié)點中,至少有一個節(jié)點阻塞與環(huán)保護鏈路連接的端口,防止被保護數(shù)據(jù)從環(huán)保護 鏈路上通過,這樣,以太網(wǎng)環(huán)網(wǎng)上任何兩個節(jié)點之間只有唯一的通信路徑,因此以太網(wǎng)環(huán)網(wǎng) 中不會產(chǎn)生通信路徑的閉環(huán),防止了閉環(huán)和網(wǎng)絡(luò)風(fēng)暴;當(dāng)以太網(wǎng)環(huán)網(wǎng)的鏈路出現(xiàn)故障時,如 果該故障鏈路不是環(huán)保護鏈路,則阻塞與環(huán)保護鏈路相鄰端口的節(jié)點,打開環(huán)保護鏈路上 阻塞的端口,使得被保護數(shù)據(jù)可以從環(huán)保護鏈路上通過,環(huán)保護鏈路上任何兩個節(jié)點之間 產(chǎn)生了新的通信路徑,保障了通信路徑的重新連通,提高了網(wǎng)絡(luò)的可靠性。圖1為現(xiàn)有基于G. 8032的以太網(wǎng)環(huán)網(wǎng)保護示意圖,如圖1所示,節(jié)點Si、S2、S3 和S4組成了以太網(wǎng)環(huán)網(wǎng),節(jié)點Sl和S4之間的鏈路為環(huán)保護鏈路,節(jié)點Sl為環(huán)保護鏈路所 屬節(jié)點,節(jié)點Sl通過控制端口 11的阻塞和打開使環(huán)保護鏈路阻塞或者打開,這里的端口 阻塞是指被阻塞的節(jié)點端口不能完成被保護數(shù)據(jù)的轉(zhuǎn)發(fā)功能,但是仍然能夠接收或者發(fā)送 G. 8032的協(xié)議幀。當(dāng)圖1中的以太網(wǎng)環(huán)網(wǎng)鏈路無故障時,節(jié)點Sl阻塞端口 11,防止被保護 數(shù)據(jù)從環(huán)保護鏈路上通過即被節(jié)點Sl轉(zhuǎn)發(fā),節(jié)點S2和S3之間的被保護數(shù)據(jù)流量通信路徑 僅為S2<->S3,而不可能是S2<->S1<->S4<->S3,因此環(huán)網(wǎng)中不會產(chǎn)生通信路徑的閉環(huán),防 止了網(wǎng)絡(luò)風(fēng)暴。圖2為圖1中出現(xiàn)鏈路故障后的以太網(wǎng)環(huán)網(wǎng)保護示意圖,如圖2所示,假設(shè)節(jié) 點S2和S3檢測到鏈路故障,那么,首先節(jié)點S2和S3分別阻塞與故障鏈路相連的端口 22和端口 31,并發(fā)送鏈路故障告警協(xié)議幀通知其他節(jié)點進行保護切換;接著,環(huán)保護鏈路 所屬節(jié)點Sl收到鏈路故障告警協(xié)議幀后,打開阻塞的與環(huán)保護鏈路相連的端口 11,以太 網(wǎng)環(huán)網(wǎng)上各個節(jié)點刷新地址轉(zhuǎn)發(fā)表,以實現(xiàn)網(wǎng)絡(luò)保護切換。在進行保護切換后,被保護數(shù) 據(jù)可以從打開的環(huán)保護鏈路上通過,而不能從故障鏈路通過。如圖2所示,節(jié)點之間的被 保護數(shù)據(jù)流量在新的通信路徑上傳輸,節(jié)點S2和S3之間的被保護數(shù)據(jù)流量通信路徑是 S2<->S1<->S4<->S3。這里,鏈路故障是引起保護倒換的其中一種情況,還包括手工倒換,強 行倒換等情況,在引起保護倒換后會有專門的模塊向其他節(jié)點發(fā)送保護倒換請求,故障檢 測以及保護倒換請求的產(chǎn)生的具體實現(xiàn)屬于本領(lǐng)域技術(shù)人員公知技術(shù),這里不再贅述。
上述這些以太網(wǎng)的組網(wǎng)中,由于通常會阻塞網(wǎng)絡(luò)中的某個或者某些端口,流量的 傳輸路徑和網(wǎng)絡(luò)的物理拓撲并不完全一致,而且隨著保護切換,流量的傳輸路徑還會發(fā)生 變化,因此,實際運行中,為了能夠直觀便捷地發(fā)現(xiàn)整體網(wǎng)絡(luò)中的節(jié)點位置、節(jié)點數(shù)量、拓撲 狀況、路徑是否可達、保護協(xié)議是否正常運行等信息,需要能夠及時發(fā)現(xiàn)以太網(wǎng)拓撲的變化 并進行管理,然而,目前尚未存在可以應(yīng)用于以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方案。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法及系統(tǒng), 實現(xiàn)了應(yīng)用于以太網(wǎng)拓撲發(fā)現(xiàn)的方案,從而能夠直觀便捷地發(fā)現(xiàn)整體網(wǎng)絡(luò)中的節(jié)點位置、 節(jié)點數(shù)量、拓撲狀況、路徑是否可達、保護協(xié)議是否正常運行等拓撲信息。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法,該方法包括設(shè)置拓撲管理域;拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的拓撲發(fā)現(xiàn)幀(DiscFrame);拓撲管理域內(nèi)收到所述DiscFrame的節(jié)點,將DiscFrame中的節(jié)點信息結(jié)合拓撲 信息表進行運算,獲得拓撲管理域的拓撲信息。其中,獲得拓撲管理域的拓撲信息后,將所述拓撲信息記錄在拓撲信息表中;其 中,所述拓撲信息表包括拓撲關(guān)系和拓撲中的節(jié)點信息。其中,所述節(jié)點信息包括節(jié)點標(biāo)識符、端口信息。其中,當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲信息表為空時,通過運算獲得拓 撲管理域的拓撲信息具體包括將DiscFrame中攜帶的節(jié)點信息,按照DiscFrame中的順序提取出來后,獲得所述 拓撲信息并寫入所述拓撲信息表中。其中,當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲信息表不為空時,通過運算獲得 拓撲管理域的拓撲信息具體包括將DiscFrame中的節(jié)點信息與拓撲信息表進行比較;當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表的拓撲關(guān)系 超集時,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系與拓撲信息表中的 拓撲關(guān)系相同,且所述拓撲中的節(jié)點信息中,除節(jié)點標(biāo)識符以外的其他信息不相同時,用 DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓 撲關(guān)系的子集,且交集部分的節(jié)點信息中有除節(jié)點標(biāo)識符以外的其他信息不相同時,清空 相應(yīng)的拓撲信息表,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓 撲關(guān)系的子集,且交集部分的節(jié)點信息相同,不更新所述的拓撲信息表。其中,將DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算后還包括丟棄或?qū)?所述DiscFrame修改后轉(zhuǎn)發(fā)出去。其中,所述節(jié)點信息以節(jié)點信息表的形式存在于所述DiscFrame中;5
如果收到DiscFrame的節(jié)點標(biāo)識符已經(jīng)存在于DiscFrame的節(jié)點信息中,則丟棄 所述DiscFrame,否則,將自身的節(jié)點信息添加在DiscFrame的節(jié)點信息表末尾后,向除接 收所述DiscFrame的端口以外的端口轉(zhuǎn)發(fā)所述DiscFrame。一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)系統(tǒng),該系統(tǒng)包括設(shè)置單元、發(fā)送單元、和運算單元; 其中,設(shè)置單元,用于設(shè)置拓撲管理域;發(fā)送單元,用于拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的DiscFrame ;運算單元,用于拓撲管理域內(nèi)收到所述DiscFrame的節(jié)點,將DiscFrame中的節(jié)點 信息結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。其中,該系統(tǒng)還包括拓撲信息記錄單元,用于收到所述DiscFrame的節(jié)點將所述 拓撲信息記錄在拓撲信息表中;其中,所述拓撲信息表包括拓撲關(guān)系和拓撲中的節(jié)點信 肩、ο其中,所述節(jié)點信息包括節(jié)點標(biāo)識符、端口信息;所述運算單元,進一步用于當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲信息表為空 時,將DiscFrame中的節(jié)點信息,按照DiscFrame中的順序提取出來后,獲得所述拓撲信息 并寫入所述拓撲信息表中。其中,所述節(jié)點信息包括節(jié)點標(biāo)識符、端口信息;所述運算單元,進一步用于當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲信息表不為 空時,將DiscFrame中的節(jié)點信息與拓撲信息表進行比較;當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表的拓撲關(guān)系 超集時,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系與拓撲信息表中的 拓撲關(guān)系相同,且所述拓撲中的節(jié)點信息中,除節(jié)點標(biāo)識符以外的其他信息不相同時,用 DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓 撲關(guān)系的子集,且交集部分的節(jié)點信息中有除節(jié)點標(biāo)識符以外的其他信息不相同時,清空 相應(yīng)的拓撲信息表,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓 撲關(guān)系的子集,且交集部分的節(jié)點信息相同,不更新所述拓撲信息表。其中,所述節(jié)點信息以節(jié)點信息表的形式存在于所述DiscFrame中;該系統(tǒng)還包括丟棄或轉(zhuǎn)發(fā)判斷單元,用于丟棄或?qū)⑺鯠iscFrame修改后轉(zhuǎn)發(fā) 出去;其中,如果收到DiscFrame的節(jié)點標(biāo)識符已經(jīng)存在于DiscFrame的節(jié)點信息中,則丟棄 所述DiscFrame,否則,將自身的節(jié)點信息添加在DiscFrame的節(jié)點信息表末尾后,向除接 收所述DiscFrame的端口以外的端口轉(zhuǎn)發(fā)所述DiscFrame。本發(fā)明設(shè)置拓撲管理域;拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的拓撲發(fā) 現(xiàn)幀(DiscFrame,Topology Discovery Frame);拓撲管理域內(nèi)收到 DiscFrame 的節(jié)點,將 DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。采用本發(fā)明,將DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算,能獲得拓撲管理域的拓撲信息,從而實現(xiàn)了應(yīng)用于以太網(wǎng)拓撲發(fā)現(xiàn)的方案,能夠直觀便捷地發(fā)現(xiàn)整體 網(wǎng)絡(luò)中的節(jié)點位置、節(jié)點數(shù)量、拓撲狀況、路徑是否可達、保護協(xié)議是否正常運行等拓撲信 息。
圖1為現(xiàn)有基于G. 8032的以太網(wǎng)環(huán)網(wǎng)保護示意圖;圖2為圖1中出現(xiàn)鏈路故障后的以太網(wǎng)環(huán)網(wǎng)保護示意圖;圖3為本發(fā)明方法的實現(xiàn)流程示意圖;圖4為節(jié)點發(fā)送和轉(zhuǎn)發(fā)DiscFrame的示意圖;圖5為圖1拓撲切到圖2后拓撲收集的示意圖。
具體實施例方式本發(fā)明的基本思想是本發(fā)明設(shè)置拓撲管理域;拓撲管理域內(nèi)任意節(jié)點發(fā)送包括 自身節(jié)點信息的DiscFrame ;拓撲管理域內(nèi)收到DiscFrame的節(jié)點,將DiscFrame中的節(jié)點 信息結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。下面結(jié)合附圖對技術(shù)方案的實施作進一步的詳細描述。如圖3所示,一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法,該方法包括以下步驟步驟101、設(shè)置拓撲管理域。步驟102、拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的DiscFrame。步驟103、拓撲管理域內(nèi)收到DiscFrame的節(jié)點,將DiscFrame中的節(jié)點信息結(jié)合 拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。步驟104、將DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算后,丟棄或?qū)?DiscFrame修改后轉(zhuǎn)發(fā)出去。這里,節(jié)點信息以節(jié)點信息表的形式存在于DiscFrame中。步驟104的具體過 程為如果收到DiscFrame的節(jié)點標(biāo)識符已經(jīng)存在于DiscFrame的節(jié)點信息中,則丟棄該 DiscFrame ;否則,將自身的節(jié)點信息添加在DiscFrame的節(jié)點信息表末尾后,向除接收該 DiscFrame的端口以外的端口轉(zhuǎn)發(fā)該DiscFrame。針對以上由步驟101 104構(gòu)成的技術(shù)方案而言,本發(fā)明不限于步驟101 104 的順序。管理域內(nèi)的節(jié)點發(fā)送DiscFrame可以是域內(nèi)所有節(jié)點平等的發(fā)送,也可以是某些 節(jié)點發(fā)送,有些節(jié)點不發(fā)。這里,步驟103中獲得拓撲管理域的拓撲信息后還包括收到DiscFrame的節(jié)點將 通過運算獲得的拓撲信息記錄在拓撲信息表中。其中,拓撲信息表包括拓撲關(guān)系和拓撲中 的節(jié)點信息。其中,拓撲關(guān)系是指基于節(jié)點標(biāo)識符的節(jié)點之間的連接關(guān)系,比如跳數(shù)、鄰接 關(guān)系、拓撲形狀等。這里,節(jié)點信息以節(jié)點信息表的形式存在于DiscFrame中;節(jié)點信息包括節(jié)點標(biāo) 識符、端口信息。這里需要指出的是拓撲關(guān)系可根據(jù)節(jié)點信息計算得到。節(jié)點信息還可能 包括鄰居信息和發(fā)送端口號等等。這里,步驟103的通過運算獲得拓撲信息在不同情況下采用的實現(xiàn)方式不同,以下分別闡述。
第一種情況收到DiscFrame的節(jié)點接收端口上的拓撲信息表為空的情況。此時,拓撲信息的運算方式具體包括將DiscFrame中的節(jié)點信息,按照 DiscFrame中的順序提取出來后,獲得所述拓撲信息并寫入所述接收端口的拓撲信息表中。第二種情況收到DiscFrame的節(jié)點接收端口上的拓撲信息表不為空的情況,拓 撲信息的運算方式具體包括以下四種具體實現(xiàn)。一、將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表的拓撲關(guān)系 超集時,用DiscFrame中的節(jié)點信息更新接收端口的拓撲信息表。二、將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系與拓撲信息表中的拓撲關(guān) 系相同,且拓撲中的節(jié)點信息中,除節(jié)點標(biāo)識符以外的其他信息不相同時,用DiscFrame中 的節(jié)點信息更新接收端口的拓撲信息表。三、將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息中有除節(jié)點標(biāo)識符以外的其他信息不相同時,清空接收 端口上的拓撲信息表,用DiscFrame中的節(jié)點信息更新接收端口的拓撲信息表。四、將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息相同,不更新接收端口上的拓撲信息表。綜上所述,本發(fā)明主要包括以下內(nèi)容本發(fā)明設(shè)置一個拓撲管理域;拓撲管理域內(nèi)任意節(jié)點按照一定規(guī)律發(fā)送 DiscFrame,比如定時發(fā)送DiscFrame、接口 linkup時連續(xù)發(fā)送若干個DiscFrame,或根據(jù) 一定的指令進行發(fā)送等。DiscFrame中包含節(jié)點信息列表(NodeList,NodeInformation List);節(jié)點在發(fā)送DiscFrame前先將自身的節(jié)點信息填充到該NodeList中。其中,節(jié)點信 息包含節(jié)點標(biāo)識符(Nodeld,Node Identif ier)、端口信息、鄰居信息、發(fā)送端口號等;其中 的NodeId在該拓撲管理域中是唯一的,也是必填信息。拓撲管理域內(nèi)的其他節(jié)點收到DiscFrame后,進行必要的處理后,比如記錄下接 收端口號,檢查報文等,提取DiscFrame內(nèi)的信息進行比較和運算后獲得該拓撲管理域的 拓撲信息,并記錄在拓撲信息表中,同時根據(jù)比較和運算的結(jié)果判斷是丟棄還是繼續(xù)向除 收包端口以外的端口上的其他節(jié)點轉(zhuǎn)發(fā)該DiscFrame。如果繼續(xù)轉(zhuǎn)發(fā)DiscFrame,則當(dāng)前收 到DiscFrame的節(jié)點需將自身的節(jié)點信息添加在該DiscFrame的末尾。針對以上涉及到的“提取DiscFrame內(nèi)的信息進行比較和運算后獲得該拓撲管理 域的拓撲信息”而言,拓撲管理域內(nèi)節(jié)點收到DiscFrame后的所述比較和運算包括如下內(nèi) 容一、如果接收端口上的拓撲信息表為空,則將該DiscFrame的NodeList中的節(jié)點 信息,按照NodeList中的順序提取出來后進行處理后獲得拓撲信息并保存在該端口的拓 撲信息表中。其中,所謂處理指將NodeList中的節(jié)點信息提取出來后,寫入拓撲信息表 中。
二、如果該接收端口上的拓撲信息表不為空,則將該DiscFrame的NodeList中的 信息與拓撲信息表進行比較a)如果前者 所包含的拓撲關(guān)系是后者的拓撲關(guān)系一個超集,則用前者的信息來更 新該端口的拓撲信息表。b)如果前者所包含的拓撲關(guān)系與后者的拓撲關(guān)系相同,但前者與后者的節(jié)點信息 中有除NodeId以外的其他信息不相同,則用前者的信息來更新端口的拓撲信息表。其中, 除NodeId以外的其他信息包括端口的轉(zhuǎn)發(fā)或阻塞狀態(tài)、鄰居信息等。c)如果前者所包含的拓撲關(guān)系是后者的拓撲關(guān)系的一個子集,但交集部分的節(jié)點 信息中有除節(jié)點標(biāo)識符以外的其他信息不相同,則清空該端口上已有的拓撲信息表,并用 前者的信息來更新該端口的拓撲信息表,否則不更新該端口上已有的拓撲信息表。針對以上涉及的“根據(jù)比較和運算的結(jié)果判斷是丟棄還是繼續(xù)向除收包端口以 外的端口上的其他節(jié)點轉(zhuǎn)發(fā)該DiscFrame而言,如果所述的DiscFrame的NodeList中有 NodeId與本節(jié)點的NodeId相同,則停止轉(zhuǎn)發(fā),否則,該節(jié)點將自身的節(jié)點信息添加在該 DiscFrame的NodeList末尾后繼續(xù)向除接收該DiscFrame以外的端口上轉(zhuǎn)發(fā)。這里,上述節(jié)點和端口,均指屬于該拓撲管理域的節(jié)點和端口。這里,拓撲關(guān)系是指基于節(jié)點標(biāo)識符的節(jié)點之間的連接關(guān)系,比如跳數(shù)、鄰接關(guān) 系、拓撲形狀等。這里,拓撲信息表包含拓撲關(guān)系和拓撲節(jié)點信息。通過上述的方法,拓撲管理域內(nèi)任意節(jié)點均可獲得該拓撲管理域的拓撲信息表, 配置簡單,拓撲管理域內(nèi)節(jié)點處理邏輯完全一致。能夠直觀便捷的發(fā)現(xiàn)整體網(wǎng)絡(luò)中的節(jié)點 位置、拓撲狀況、路徑是否可達等信息,提高了以太網(wǎng)的可維護性。以下對本發(fā)明進行舉例闡述。實例一以圖1所示拓撲為例,應(yīng)用本發(fā)明的拓撲發(fā)現(xiàn)方案,節(jié)點發(fā)送和轉(zhuǎn)發(fā) DiscFrame 的實例。圖4所示為本發(fā)明實施例中節(jié)點發(fā)送和轉(zhuǎn)發(fā)DiscFrame的示意圖,以圖1所示拓 撲為例,圖4中畫出了 Sl和S3發(fā)送的DiscFrame在保護域內(nèi)被轉(zhuǎn)發(fā)的生命周期過程。并 在下面的實施方式中闡述了以Sl為例計算網(wǎng)絡(luò)拓撲的過程。Sl在tO時刻分別向自身的端口 11和12發(fā)送DiscFrame FSll和FS12, FSll經(jīng) 過S4-S3-S2的轉(zhuǎn)發(fā),在t8時刻回到Si。FS12經(jīng)過S2-S3-S4的轉(zhuǎn)發(fā),在tlO時刻回到Si。S3在t2時刻分別向自身的端口 31和32發(fā)送DiscFrame FS31和FS32, FS31經(jīng) 過S2的轉(zhuǎn)發(fā)在t7時刻到達Si,Sl經(jīng)過處理后又向S4轉(zhuǎn)發(fā)出去。FS32經(jīng)過S4的轉(zhuǎn)發(fā),在 t9時刻到達Si,Sl經(jīng)過處理后又向S2轉(zhuǎn)發(fā)出去。Sl計算網(wǎng)絡(luò)拓撲過程的實施方式,即以Sl為例,通過對接收到的DiscFrame的 處理來進行拓撲收集的過程。包括以下內(nèi)容一、Sl在t7時刻從12端口收到FS31,因12端口的拓撲信息表為空,因此將拓撲 鏈“31(12朽-(2的52(22朽-(3的53”記錄到端口 12的拓撲信息表中,并將本節(jié)點的節(jié)點 信息添加到報文的NodeList中后向端口 11轉(zhuǎn)發(fā)。拓撲鏈括號內(nèi)的數(shù)字為端口號,字母F 表示端口是轉(zhuǎn)發(fā)(Forwarding)狀態(tài)。二、Sl在t8時刻從端口 12收到FS11,將FSll報文內(nèi)的NodeList提取和處理后,獲得拓撲鏈為 “Si (12F) -(21F) S2 (22F) -(31F) S3 (32F) -(41F) S4 (42F)-(IlB) Sl”,是一個單 環(huán),將此拓撲信息與拓撲信息表中的拓撲鏈“Si (12F) - (21F) S2 (22F) - (31F) S3”進行比較, 發(fā)現(xiàn)前者是后者的超集,因此,用前者更新該端口上的拓撲信息表。其中字母B表示端口是 阻塞(Blocked)狀態(tài)。因報文FSll中含有NodeId為Sl的節(jié)點信息,因此,停止轉(zhuǎn)發(fā)該報文。三、Sl在t9時刻從端口 11收到FS32,將FS32報文內(nèi)的NodeList提取和處理后, 獲得端口 11上的拓撲鏈為“S1(11B)-(42F)S4(41F)-(32F)S3”,將此拓撲信息與拓撲信息 表中的拓撲鏈進行比較,因端口 11上的拓撲信息表為空,因此將此拓撲信息記錄到端口 11 的拓撲信息表中。四、Sl在tlO時刻從端口 11收到FS12,將FS12報文內(nèi)的NodeList提取和處理 后,獲得拓撲鏈為 “Si (IlB) -(42F) S4 (41F) -(32F) S3 (31F) -(22F) S2 (21F) -(12F) Si”,是一 個單環(huán),將此拓撲信息與拓撲信息表中的拓撲鏈“Sl (1 IB) - (42F) S4 (41F) - (32F) S3”進行比 較,發(fā)現(xiàn)前者是后者的超集,因此,用前者更新該端口上的拓撲信息表。因報文FS12中含有 NodeId為Sl的節(jié)點信息,因此,停止轉(zhuǎn)發(fā)該報文。當(dāng)這個拓撲保持穩(wěn)定狀態(tài),Sl上收集到的拓撲為一個單環(huán),分別為端口11 上的 Sl (1 IB) - (42F) S4 (41F) - (32F) S3 (31F) - (22F) S2 (21F) - (12F) Sl0端口12 上的 Sl (12F) - (21F) S2 (22F) - (31F) S3 (32F) - (41F) S4 (42F) - (1 IB) Sl0實例二 圖1拓撲切到圖2后拓撲收集的實例。以圖5為例,當(dāng)圖1中S2和S3之間的鏈路發(fā)生故障,根據(jù)G8032的保護倒換方 法,S2的端口 22和S3的端口 31被Block,節(jié)點Sl打開原先阻塞的端口 11 (狀態(tài)切換為 Forwarding),網(wǎng)絡(luò)拓撲如圖2所示。假設(shè)此時Sl收到S3發(fā)出的FS32報文,Sl提取報文中的NodeList,獲得11端 口上的拓撲鏈為“ S1 (1 IF) - (42F) S4 (4IF) - (32F) S3 (31B) ”,與拓撲信息表中11端口上的 “Si (IlB) -(42F) S4 (41F) -(32F) S3 (31F) -(22F) S2 (21F) -(12F) Sl,,比較后,發(fā)現(xiàn)前者所包含 的拓撲關(guān)系是后者的拓撲關(guān)系的一個子集,但交集部分Sl節(jié)點端口 11的狀態(tài)不相同或S3 的端口 31的狀態(tài)不同,則清空端口 11上的拓撲信息表,并用前者的信息來更新端口 11的 拓撲信息表。隨后,Sl收到S2發(fā)出的FS21。Sl提取報文中的NodeList,獲得端口 12上的拓撲鏈 為 “Si (12F) - (21F) S2 (22B),,與拓撲信息表中端 口 12 上的 “Si (12F) - (21F) S2 (22F) - (31F) S3 (32F) - (41F) S4 (42F) - (1 IB) Sl ”比較后,發(fā)現(xiàn)前者所包含的拓撲關(guān)系是后者的拓撲關(guān)系 的一個子集,但交集部分S2節(jié)點端口 22的狀態(tài)不相同,則清空端口 12上的拓撲信息表,并 用前者的信息來更新端口 12的拓撲信息表。此時Sl上收集到的拓撲為一個鏈,分別為端口11 上的 S1(11F)-(42F)S4(41F)-(32F)S3(31B)。端口12 上的 S1(12F)_(21F)S2(22B)。一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)系統(tǒng),該系統(tǒng)包括設(shè)置單元、發(fā)送單元、和運算單 元。其中,設(shè)置單元,用于設(shè)置拓撲管理域。發(fā)送單元,用于拓撲管理域內(nèi)任意節(jié)點發(fā) 送包 括自身節(jié)點信息的DiscFrame。運算單元,用于拓撲管理域內(nèi)收到DiscFrame的節(jié)點,將 DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。
這里,該系統(tǒng)還包括拓撲 信息記錄單元,用于收到DiscFrame的節(jié)點將拓撲信息 記錄在拓撲信息表中;其中,拓撲信息表包括拓撲關(guān)系和拓撲中的節(jié)點信息。這里,以下對節(jié)點信息,以及運算單元的具體實現(xiàn)進行闡述。節(jié)點信息以節(jié)點信息表的形式存在于DiscFrame中;節(jié)點信息包括節(jié)點標(biāo)識符、
端口信息。運算單元的具體實現(xiàn)包括以下兩種情況。第一種情況收到DiscFrame的節(jié)點接收端口上的拓撲信息表為空的情況。運算單元,進一步用于當(dāng)收到DiscFrame的節(jié)點接收端口上的拓撲信息表為空 時,將DiscFrame中的節(jié)點信息,按照DiscFrame中的順序提取出來后,獲得所述拓撲信息 并寫入所述接收端口的拓撲信息表中。第二種情況收到DiscFrame的節(jié)點接收端口上的拓撲信息表不為空的情況。一、運算單元,進一步用于當(dāng)收到DiscFrame的節(jié)點接收端口上的拓撲信息表不 為空時,將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表的拓撲關(guān)系 超集時,用DiscFrame中的節(jié)點信息更新接收端口的拓撲信息表。二、運算單元,進一步用于當(dāng)收到DiscFrame的節(jié)點接收端口上的拓撲信息表不 為空時,將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系與拓撲信息表中的拓撲關(guān) 系相同,且拓撲中的節(jié)點信息中,除節(jié)點標(biāo)識符以外的其他信息不相同時,用DiscFrame中 的節(jié)點信息更新接收端口的拓撲信息表。三、運算單元,進一步用于當(dāng)收到DiscFrame的節(jié)點接收端口上的拓撲信息表不 為空時,將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息中有除節(jié)點標(biāo)識符以外的其他信息不相同時,清空接收 端口上的拓撲信息表,用DiscFrame中的節(jié)點信息更新接收端口的拓撲信息表。四、運算單元,進一步用于當(dāng)收到DiscFrame的節(jié)點接收端口上的拓撲信息表不 為空時,將DiscFrame中的節(jié)點信息與拓撲信息表進行比較。當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息相同,不更新接收端口上的拓撲信息表。這里,節(jié)點信息以節(jié)點信息表的形式存在于DiscFrame中。該系統(tǒng)還包括丟棄或 轉(zhuǎn)發(fā)判斷單元,用于丟棄或?qū)iscFrame修改后轉(zhuǎn)發(fā)出去。如果收到DiscFrame的節(jié)點標(biāo) 識符已經(jīng)存在于DiscFrame的節(jié)點信息中,則丟棄該DiscFrame,否則,將自身的節(jié)點信息 添加在DiscFrame的節(jié)點信息表末尾后,向除接收該DiscFrame的端口以外的端口轉(zhuǎn)發(fā)該 DiscFrame0以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法,其特征在于,該方法包括設(shè)置拓撲管理域;拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的拓撲發(fā)現(xiàn)幀(DiscFrame);拓撲管理域內(nèi)收到所述DiscFrame的節(jié)點,將DiscFrame中的節(jié)點信息結(jié)合拓撲信息 表進行運算,獲得拓撲管理域的拓撲信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲得拓撲管理域的拓撲信息后,將所述拓 撲信息記錄在拓撲信息表中;其中,所述拓撲信息表包括拓撲關(guān)系和拓撲中的節(jié)點信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述節(jié)點信息包括節(jié)點標(biāo)識符、端口信肩、ο
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲 信息表為空時,通過運算獲得拓撲管理域的拓撲信息具體包括將DiscFrame中攜帶的節(jié)點信息,按照DiscFrame中的順序提取出來后,獲得所述拓撲 信息并寫入所述拓撲信息表中。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲 信息表不為空時,通過運算獲得拓撲管理域的拓撲信息具體包括將DiscFrame中的節(jié)點信息與拓撲信息表進行比較;當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表的拓撲關(guān)系超集 時,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系與拓撲信息表中的拓 撲關(guān)系相同,且所述拓撲中的節(jié)點信息中,除節(jié)點標(biāo)識符以外的其他信息不相同時,用 DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息中有除節(jié)點標(biāo)識符以外的其他信息不相同時,清空相應(yīng) 的拓撲信息表,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息相同,不更新所述的拓撲信息表。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,將DiscFrame中的節(jié)點信息結(jié)合拓撲信息 表進行運算后還包括丟棄或?qū)⑺鯠iscFrame修改后轉(zhuǎn)發(fā)出去。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述節(jié)點信息以節(jié)點信息表的形式存在 于所述DiscFrame中;如果收到DiscFrame的節(jié)點標(biāo)識符已經(jīng)存在于DiscFrame的節(jié)點信息中,則丟棄所述 DiscFrame,否則,將自身的節(jié)點信息添加在DiscFrame的節(jié)點信息表末尾后,向除接收所 述DiscFrame的端口以外的端口轉(zhuǎn)發(fā)所述DiscFrame。
8.一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)系統(tǒng),其特征在于,該系統(tǒng)包括設(shè)置單元、發(fā)送單元、 和運算單元;其中,設(shè)置單元,用于設(shè)置拓撲管理域;發(fā)送單元,用于拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的DiscFrame ;運算單元,用于拓撲管理域內(nèi)收到所述DiscFrame的節(jié)點,將DiscFrame中的節(jié)點信息 結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,該系統(tǒng)還包括拓撲信息記錄單元,用于 收到所述DiscFrame的節(jié)點將所述拓撲信息記錄在拓撲信息表中;其中,所述拓撲信息表 包括拓撲關(guān)系和拓撲中的節(jié)點信息。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述節(jié)點信息包括節(jié)點標(biāo)識符、端口信息;所述運算單元,進一步用于當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲信息表為空時, 將DiscFrame中的節(jié)點信息,按照DiscFrame中的順序提取出來后,獲得所述拓撲信息并寫 入所述拓撲信息表中。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述節(jié)點信息包括節(jié)點標(biāo)識符、端口信息;所述運算單元,進一步用于當(dāng)收到所述DiscFrame的節(jié)點相應(yīng)的拓撲信息表不為空 時,將DiscFrame中的節(jié)點信息與拓撲信息表進行比較;當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表的拓撲關(guān)系超集 時,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系與拓撲信息表中的拓 撲關(guān)系相同,且所述拓撲中的節(jié)點信息中,除節(jié)點標(biāo)識符以外的其他信息不相同時,用 DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息中有除節(jié)點標(biāo)識符以外的其他信息不相同時,清空相應(yīng) 的拓撲信息表,用DiscFrame中的節(jié)點信息更新所述拓撲信息表;或者,當(dāng)發(fā)現(xiàn)DiscFrame中的節(jié)點信息中所揭示的拓撲關(guān)系為拓撲信息表中的拓撲關(guān) 系的子集,且交集部分的節(jié)點信息相同,不更新所述拓撲信息表。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述節(jié)點信息以節(jié)點信息表的形式存在 于所述DiscFrame中;該系統(tǒng)還包括丟棄或轉(zhuǎn)發(fā)判斷單元,用于丟棄或?qū)⑺鯠iscFrame修改后轉(zhuǎn)發(fā)出去; 其中,如果收到DiscFrame的節(jié)點標(biāo)識符已經(jīng)存在于DiscFrame的節(jié)點信息中,則丟棄所述 DiscFrame,否則,將自身的節(jié)點信息添加在DiscFrame的節(jié)點信息表末尾后,向除接收所 述DiscFrame的端口以外的端口轉(zhuǎn)發(fā)所述DiscFrame。
全文摘要
本發(fā)明公開了一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)方法,該方法包括設(shè)置拓撲管理域;拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的拓撲發(fā)現(xiàn)幀(DiscFrame);拓撲管理域內(nèi)收到DiscFrame的節(jié)點,將DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。本發(fā)明還公開了一種以太網(wǎng)拓撲發(fā)現(xiàn)的實現(xiàn)系統(tǒng),該系統(tǒng)中,發(fā)送單元,用于拓撲管理域內(nèi)任意節(jié)點發(fā)送包括自身節(jié)點信息的DiscFrame;運算單元,用于拓撲管理域內(nèi)收到DiscFrame的節(jié)點,將DiscFrame中的節(jié)點信息結(jié)合拓撲信息表進行運算,獲得拓撲管理域的拓撲信息。采用本發(fā)明的方法及系統(tǒng),實現(xiàn)了應(yīng)用于以太網(wǎng)拓撲發(fā)現(xiàn)的方案。
文檔編號H04L12/56GK102055646SQ20091020742
公開日2011年5月11日 申請日期2009年11月3日 優(yōu)先權(quán)日2009年11月3日
發(fā)明者魏月華 申請人:中興通訊股份有限公司