專利名稱:雙向轉發(fā)檢測報文的發(fā)送方法及設備的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及一種雙向轉發(fā)檢測報文的發(fā)送方法及設備。
背景技術:
為了減少網(wǎng)絡設備故障對業(yè)務的影響、提高網(wǎng)絡可用性,網(wǎng)絡設備的一個日見重 要的特征是能夠快速檢測相鄰系統(tǒng)間的通訊故障,以便盡快創(chuàng)建其它路徑,從而確保業(yè)務 不中斷。雙向轉發(fā)檢測(BidirectionalForwarding Detection,簡稱為 BFD)是一種鏈路 故障檢測的方法,提供兩個各種系統(tǒng)之間的低負載、快速地失效檢測,包括直聯(lián)物理鏈路、 虛電路、隧道、多跳路由路徑等。BFD也可以理解為一個簡單的“Hello”協(xié)議,在很多方面與 路由協(xié)議的檢測部分很相似。例如,在一對系統(tǒng)間的每條路徑上定期地發(fā)送BFD協(xié)議報文, 一旦一個系統(tǒng)足夠長的時間內(nèi)收不到包,就可以確定它到鄰居間的雙向路徑發(fā)生了問題。在相關技術中,當兩個系統(tǒng)間存在多鏈路(例如,多端口聚合)直連時,BFD協(xié)議 報文只會選擇從一個物理端口發(fā)送出去,具體從哪一個物理端口發(fā)送出去,則依賴于相應 的鏈路聚合協(xié)議設定的策略。這樣,當BFD協(xié)議報文的發(fā)送端口出現(xiàn)故障時,由于鏈路聚合 切換的速率比較慢(大于50ms),而BFD最快可以提供IOms級檢測,此時就可能會出現(xiàn)BFD 誤報檢測到鏈路故障,導致上層協(xié)議誤切。當然,為避免誤切,可以將BFD檢測周期加大,確 保鏈路聚合切換期間BFD會話不報鏈路故障。但是,這樣會降低BFD檢測鏈路故障的時效 性、延長網(wǎng)絡收斂時間,進而影響到業(yè)務。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種雙向轉發(fā)檢測報文的發(fā)送方案,以至少解決上述 的相 關技術中多鏈路直連時無法保持BFD會話的穩(wěn)定性的問題。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種雙向轉發(fā)檢測BFD報文 的發(fā)送方法。根據(jù)本發(fā)明的雙向轉發(fā)檢測BFD報文的發(fā)送方法,包括以下步驟發(fā)送端設備與 接收端設備完成BFD協(xié)商建立BFD會話后,發(fā)送端設備查找鏈路聚合端口中處于激活狀態(tài) 的成員端口 ;發(fā)送端設備將BFD報文依次通過查找到的處于激活狀態(tài)的成員端口發(fā)送給接 收端設備。進一步地,發(fā)送端設備將BFD報文依次通過查找到的處于激活狀態(tài)的成員端口發(fā) 送給接收端設備包括發(fā)送端設備記錄查找到的處于激活狀態(tài)的成員端口,并按照記錄次 序使用查找到的處于激活狀態(tài)的成員端口將BFD報文發(fā)送給接收端設備。進一步地,在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的激活狀態(tài)發(fā)生改變的情況 下,發(fā)送端設備更新查找到的處于激活狀態(tài)的成員端口的記錄。進一步地,發(fā)送端設備記錄查找到的處于激活狀態(tài)的成員端口包括發(fā)送端設備 將查找到的處于激活狀態(tài)的成員端口的信息存儲到BFD報文發(fā)送鏈表中。
進一步地,在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的狀態(tài)由激活切換為未激活 的情況下,發(fā)送端設備將狀態(tài)由激活切換為未激活的成員端口的信息從BFD報文發(fā)送鏈表 中刪除;在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的狀態(tài)由未激活切換為激活的情況下, 發(fā)送端設備在BFD報文發(fā)送鏈表中添加狀態(tài)由未激活切換為激活的成員端口的信息。進一步地,BFD會話的重復檢測次數(shù)大于等于當前的成員鏈路的總數(shù)。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一個方面,還提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送設備。根據(jù)本發(fā)明的雙向轉發(fā)檢測BFD報文的發(fā)送設備,包括查找模塊,用于在與接收 端設備完成BFD協(xié)商建立BFD會話后,查找鏈路聚合端口中處于激活狀態(tài)的成員端口 ;發(fā)送 模塊,用于將BFD報文依次通過查找到的處于激活狀態(tài)的成員端口發(fā)送給接收端設備。進一步地,查找模塊包括記錄單元,用于存儲查找到的處于激活狀態(tài)的成員端進一步地,發(fā)送設備還包括更新模塊,用于在鏈路聚合協(xié)議通告聚合鏈路的成員 鏈路的激活狀態(tài)發(fā)生改變的情況下,更新記錄單元中存儲的查找到的處于激活狀態(tài)的成員 端口的記錄。進一步地,BFD會話的重復檢測次數(shù)大于等于當前的成員鏈路的總數(shù)。通過本發(fā)明,采用將BFD報文通過鏈路聚合端口中處于激活狀態(tài)的成員端口依次 發(fā)送出去的方式,解決了相關技術中多鏈路直連時無法保持BFD會話的穩(wěn)定性的問題,提 高了系統(tǒng)的處理能力和性能。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測報文的發(fā)送方法的流程圖;圖2是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測報文的發(fā)送設備的結構框圖;圖3是根據(jù)本發(fā)明優(yōu)選實施例的雙向轉發(fā)檢測報文的發(fā)送設備的結構框圖;圖4是根據(jù)本發(fā)明實施例的路由器A和路由器B之間通過聚合鏈路直連的示意 圖;圖5是根據(jù)本發(fā)明實施例的BFD報文發(fā)送鏈路表項的示意圖;圖6是根據(jù)本發(fā)明實施例的BFD報文發(fā)送鏈路表創(chuàng)建的流程圖;圖7是根據(jù)本發(fā)明實施例的BFD報文發(fā)送鏈路表更新的流程圖;圖8是根據(jù)本發(fā)明實施例的聚合鏈路場景下BFD報文發(fā)送的流程圖。
具體實施例方式下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可以相互組合。根據(jù)本發(fā)明實施例,提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送方法,圖1是根據(jù)本 發(fā)明實施例的雙向轉發(fā)檢測報文的發(fā)送方法的流程圖,如圖1所示,該方法包括以下步驟步驟S102,發(fā)送端設備與接收端設備完成BFD協(xié)商建立BFD會話后,發(fā)送端設備查找鏈路聚合端口中處于激活狀態(tài)的成員端口; 步驟S104,發(fā)送端設備將BFD報文依次通過查找到的處于激活狀態(tài)的成員端口發(fā) 送給接收端設備。通過上述步驟,采用將BFD報文通過鏈路聚合端口中處于激活狀態(tài)的成員端口依 次發(fā)送出去的方式,解決了相關技術中多鏈路直連時無法保持BFD會話的穩(wěn)定性的問題, 提高了系統(tǒng)的處理能力和性能。優(yōu)選地,在步驟S104中,發(fā)送端設備可以記錄查找到的處于激活狀態(tài)的成員端 口,并按照記錄次序使用查找到的處于激活狀態(tài)的成員端口將BFD報文發(fā)送給接收端設 備。該方法可以使得發(fā)送端設備按照記錄查找到的處于激活狀態(tài)的成員端口的順序,使用 該成員端口依次發(fā)送BFD報文,提高了系統(tǒng)的穩(wěn)定性。優(yōu)選地,在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的激活狀態(tài)發(fā)生改變的情況 下,發(fā)送端設備更新查找到的處于激活狀態(tài)的成員端口的記錄。該方法可以提高系統(tǒng)的有 效性。優(yōu)選地,發(fā)送端設備記錄查找到的處于激活狀態(tài)的成員端口包括發(fā)送端設備將 查找到的處于激活狀態(tài)的成員端口的信息存儲到BFD報文發(fā)送鏈表中。該方法實現(xiàn)簡單、 可操作性強。優(yōu)選地,在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的狀態(tài)由激活切換為未激活的 情況下,發(fā)送端設備將狀態(tài)由激活切換為未激活的成員端口的信息從BFD報文發(fā)送鏈表中 刪除;在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的狀態(tài)由未激活切換為激活的情況下,發(fā) 送端設備在BFD報文發(fā)送鏈表中添加狀態(tài)由未激活切換為激活的成員端口的信息。該方法 提高了系統(tǒng)的有效性和準確性。優(yōu)選地,BFD會話的重復檢測次數(shù)大于等于當前的成員鏈路的總數(shù)。這樣,可以提 高系統(tǒng)的可靠性和穩(wěn)定性。對應于上述方法,本發(fā)明實施例還提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送設 備,圖2是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測報文的發(fā)送設備的結構框圖,如圖2所示,該 發(fā)送設備20包括查找模塊22,用于在與接收端設備完成BFD協(xié)商建立BFD會話后,查找 鏈路聚合端口中處于激活狀態(tài)的成員端口 ;發(fā)送模塊24,耦合至查找模塊22,用于將BFD報 文依次通過查找到的處于激活狀態(tài)的成員端口發(fā)送給接收端設備。通過上述設備,采用將BFD報文通過鏈路聚合端口中處于激活狀態(tài)的成員端口依 次發(fā)送出去的方式,解決了相關技術中多鏈路直連時無法保持BFD會話的穩(wěn)定性的問題, 提高了系統(tǒng)的處理能力和性能。圖3是根據(jù)本發(fā)明優(yōu)選實施例的雙向轉發(fā)檢測報文的發(fā)送設備的結構框圖,如圖 3所示,查找模塊22包括記錄單元222,用于存儲查找到的處于激活狀態(tài)的成員端口。優(yōu)選地,發(fā)送設備20還包括更新模塊26,耦合至記錄單元222,用于在鏈路聚合 協(xié)議通告聚合鏈路的成員鏈路的激活狀態(tài)發(fā)生改變的情況下,更新記錄單元222中存儲的 查找到的處于激活狀態(tài)的成員端口的記錄。優(yōu)選地,BFD會話的重復檢測次數(shù)大于等于當前的成員鏈路的總數(shù)。下面結合優(yōu)選實施例和附圖對上述實施例的實現(xiàn)過程進行詳細說明。優(yōu)選實施例一
本實施例為克服現(xiàn)有技術中存在的多鏈路直連的場景下BFD會話無法保持穩(wěn)定 性的問題,提供了一種在部分鏈路出現(xiàn)故障時,BFD會話狀態(tài)不會振蕩,上層協(xié)議不會誤切, 業(yè)務不會中斷的方法。該方法可以應用于發(fā)送端設備中(發(fā)送端設備和接收端設備之間至 少通過兩條直連鏈路通信),包括以下步驟步驟1,通過多鏈路直連的兩臺設備完成BFD協(xié)商 ,建立BFD會話。需要說明的是, 在具體實施過程中,需要確保當前的鏈路數(shù)不比BFD會話的重復檢測次數(shù)大,其中,當前的 成員鏈路總數(shù)可以由當前組網(wǎng)配置來決定,重復檢測次數(shù)可以由網(wǎng)絡管理員根據(jù)經(jīng)驗值自 行配置。步驟2,發(fā)送端設備遍歷聚合鏈路所有處于active狀態(tài)(即,激活狀態(tài))的成員鏈 路,依次從其中的一條active成員鏈路發(fā)送BFD報文到接收端設備。步驟3,鏈路聚合協(xié)議通告聚合鏈路的成員鏈路狀態(tài)改變(active鏈路切換為 inactive鏈路,或者新增active鏈路),發(fā)送端設備更新聚合鏈路發(fā)送BFD報文的成員鏈 路集合??梢?,本發(fā)明實施例是多鏈路直連場景下保證BFD會話穩(wěn)定性的方法,采用該方 法可以避免在多鏈路直連的場景下BFD報文的發(fā)送依賴于鏈路聚合協(xié)議設定策略,從而使 得在部分鏈路狀態(tài)切換的情形下,BFD會話狀態(tài)仍保持穩(wěn)定、上層應用協(xié)議不誤切、業(yè)務不 中斷。同時,當多鏈路全部出現(xiàn)故障時,該方法能夠及時檢測到故障,通知上層協(xié)議快速切 換,保證業(yè)務流量在最短時間內(nèi)恢復。優(yōu)選實施例二本實施例提供了一種BFD報文的發(fā)送方法,是BFD報文發(fā)送的具體鏈路不再依賴 于鏈路聚合協(xié)議設定的策略,而是依次從聚合鏈路的所有成員鏈路中的一條鏈路發(fā)送出 去。這樣,在BFD會話的重復檢測次數(shù)η (BFD會話超時時間檢測周期)不小于成員鏈路 總數(shù)m的情況下,即使部分成員鏈路出現(xiàn)故障,也能夠保證BFD會話的穩(wěn)定性。例如,考慮到BFD檢測會話down是以在重復檢測次數(shù)η*檢測周期時間內(nèi)未收到對 端發(fā)送的BFD報文為依據(jù)的,那么,極端境況下假使聚合鏈路的m-1個成員鏈路出現(xiàn)故障, 對端就會在(m-1廣檢測周期時間內(nèi)收不到對端發(fā)過來的BFD報文。而η不小于m,也就是 η > m-l0這樣就可以保證即使m-1個成員鏈路down也不會誤報鏈路故障。只有在m個也 就是所有成員鏈路down的情況下,才會上報聚合鏈路故障。圖4是根據(jù)本發(fā)明實施例的路由器A和路由器B之間通過聚合鏈路直連的示意 圖,如圖4所示,本發(fā)明實施例是多鏈路直連場景保證BFD會話穩(wěn)定性的方法,應用于發(fā)送 端設備中,其中,發(fā)送端設備和接收端設備之間至少通過兩條直連鏈路通信。圖5是根據(jù)本發(fā)明實施例的BFD報文發(fā)送鏈路表項的示意圖,在具體實施過程中, 在發(fā)送端設備需要維護一張BFD報文發(fā)送鏈路表,表項如圖5所示。發(fā)送端設備在多鏈路 聚合場景下,需要遍歷相同多鏈路聚合端口對應的所有BFD報文發(fā)送鏈路表項,一次從一 個active成員端口將BFD報文發(fā)送出去。圖6是根據(jù)本發(fā)明實施例的BFD報文發(fā)送鏈路表創(chuàng)建的流程圖,如圖6所示,首 先,設備需要創(chuàng)建BFD報文發(fā)送鏈路表,包括以下步驟步驟S602,設備遍歷多鏈路聚合端口的所有成員端口。例如,兩臺設備間BFD會話 協(xié)商成功后,確認設備間通過多鏈路聚合端口直連,然后設備遍歷多鏈路聚合端口的所有成員端口。步驟S604,設備在遍歷過程中,將處于active狀態(tài)的成員端口按照圖5所示的表 項添加到BFD報文發(fā)送鏈路表中。步驟S606,將BFD報文發(fā)送鏈路表中的該多鏈路聚合端口對應的第一個表項置上 發(fā)包標識。BFD會話的下個報文就從該表項中記錄的active成員端口發(fā)送出去。優(yōu)選實施例三在BFD報文發(fā)送過程中,多鏈路聚合端口可能會添加新的成員端口,或者處于 active狀態(tài)的成員端口會切換為inactive狀態(tài),這樣就必須同步更新BFD報文發(fā)送鏈路表。圖7是根據(jù)本發(fā)明實施例的BFD報文發(fā)送鏈路表更新的流程圖,如圖7所示,包括 以下步驟步驟S702,鏈路聚合協(xié)議通告聚合鏈路的某個成員鏈路的狀態(tài)發(fā)生改變。步驟S704,判斷成員鏈路當前的狀態(tài)。如果鏈路聚合協(xié)議通告的成員鏈路為 inactive進入步驟S706 ;否則,進入步驟S712。步驟S706,根據(jù)鏈路聚合協(xié)議通告的鏈路聚合端口和成員端口找到對應的BFD報 文發(fā)送鏈路表表項。步驟S708,如果找到的BFD報文發(fā)送鏈路表項已置上發(fā)包標識,則清空發(fā)包標識, 并且找到BFD報文發(fā)送鏈路表中的下一個表項置上發(fā)包標識。步驟S710,將找到的BFD報文發(fā)送鏈路表項從BFD報文發(fā)送鏈路表中刪除。
步驟S712,將鏈路聚合協(xié)議通告的聚合鏈路端口和active成員端口添加到BFD報 文發(fā)送鏈路表中。步驟S714,如果BFD報文發(fā)送鏈路表中鏈路聚合協(xié)議通告的聚合鏈路端口下的所 有表項都未置上發(fā)包標識,則新添加的表項置上發(fā)包標識。優(yōu)選實施例四本實施例提供了一種BFD報文的發(fā)送方法,下面詳細描述發(fā)送端設備使用該方法 發(fā)送BFD報文的過程。圖8是根據(jù)本發(fā)明實施例的聚合鏈路場景下BFD報文發(fā)送的流程圖, 如圖8所示,該方法包括以下步驟步驟S802,BFD會話協(xié)商成功后,需要從鏈路聚合端口發(fā)送BFD報文,根據(jù)鏈路聚 合端口查找BFD報文發(fā)送鏈路表中置上發(fā)包標識的表項。步驟S804,將BFD報文從查找到的表項中記錄的active成員端口,發(fā)送出去。步驟S806,根據(jù)已查找到表項,查找相同鏈路聚合端口下的下一個表項,并置上發(fā) 包標識。綜上所述,通過本發(fā)明實施例采用將BFD報文通過鏈路聚合端口中處于激活狀態(tài) 的成員端口依次發(fā)送出去的方式,提高了多鏈路聚合場景下BFD會話的穩(wěn)定性。顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示 出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本 發(fā)明不限制于任何特定的硬件和軟件結合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技 術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
一種雙向轉發(fā)檢測BFD報文的發(fā)送方法,其特征在于,包括以下步驟發(fā)送端設備與接收端設備完成BFD協(xié)商建立BFD會話后,所述發(fā)送端設備查找鏈路聚合端口中處于激活狀態(tài)的成員端口;所述發(fā)送端設備將BFD報文依次通過查找到的所述處于激活狀態(tài)的成員端口發(fā)送給所述接收端設備。
2.根據(jù)權利要求1所述的方法,其特征在于,所述發(fā)送端設備將所述BFD報文依次通過 查找到的所述處于激活狀態(tài)的成員端口發(fā)送給所述接收端設備包括所述發(fā)送端設備記錄查找到的所述處于激活狀態(tài)的成員端口,并按照記錄次序使用查 找到的所述處于激活狀態(tài)的成員端口將所述BFD報文發(fā)送給所述接收端設備。
3.根據(jù)權利要求2所述的方法,其特征在于,在鏈路聚合協(xié)議通告聚合鏈路的成員鏈 路的激活狀態(tài)發(fā)生改變的情況下,所述發(fā)送端設備更新查找到的所述處于激活狀態(tài)的成員 端口的記錄。
4.根據(jù)權利要求2所述的方法,其特征在于,所述發(fā)送端設備記錄查找到的所述處于 激活狀態(tài)的成員端口包括所述發(fā)送端設備將查找到的所述處于激活狀態(tài)的成員端口的信息存儲到BFD報文發(fā) 送鏈表中。
5.根據(jù)權利要求4所述的方法,其特征在于,在所述鏈路聚合協(xié)議通告聚合鏈路的成 員鏈路的狀態(tài)由激活切換為未激活的情況下,所述發(fā)送端設備將狀態(tài)由激活切換為未激活 的成員端口的信息從所述BFD報文發(fā)送鏈表中刪除;在所述鏈路聚合協(xié)議通告聚合鏈路的 成員鏈路的狀態(tài)由未激活切換為激活的情況下,所述發(fā)送端設備在所述BFD報文發(fā)送鏈表 中添加狀態(tài)由未激活切換為激活的成員端口的信息。
6.根據(jù)權利要求1至5中任一項所述的方法,其特征在于,所述BFD會話的重復檢測次 數(shù)大于等于當前的成員鏈路的總數(shù)。
7.一種雙向轉發(fā)檢測BFD報文的發(fā)送設備,其特征在于,包括查找模塊,用于在與接收端設備完成BFD協(xié)商建立BFD會話后,查找鏈路聚合端口中處 于激活狀態(tài)的成員端口;發(fā)送模塊,用于將BFD報文依次通過查找到的所述處于激活狀態(tài)的成員端口發(fā)送給所 述接收端設備。
8.根據(jù)權利要求7所述的發(fā)送設備,其特征在于,所述查找模塊包括記錄單元,用于存儲查找到的所述處于激活狀態(tài)的成員端口。
9.根據(jù)權利要求8所述的發(fā)送設備,其特征在于,所述發(fā)送設備還包括更新模塊,用于在鏈路聚合協(xié)議通告聚合鏈路的成員鏈路的激活狀態(tài)發(fā)生改變的情況 下,更新所述記錄單元中存儲的查找到的所述處于激活狀態(tài)的成員端口的記錄。
10.根據(jù)權利要求7至9中任一項所述的發(fā)送設備,其特征在于,所述BFD會話的重復 檢測次數(shù)大于等于當前的成員鏈路的總數(shù)。
全文摘要
本發(fā)明公開了一種雙向轉發(fā)檢測報文的發(fā)送方法及設備,該方法包括以下步驟發(fā)送端設備與接收端設備完成BFD協(xié)商建立BFD會話后,發(fā)送端設備查找鏈路聚合端口中處于激活狀態(tài)的成員端口;發(fā)送端設備將BFD報文依次通過查找到的處于激活狀態(tài)的成員端口發(fā)送給接收端設備。通過本發(fā)明提高了系統(tǒng)的處理能力和性能。
文檔編號H04L12/56GK101989953SQ20101054631
公開日2011年3月23日 申請日期2010年11月9日 優(yōu)先權日2010年11月9日
發(fā)明者王金 申請人:中興通訊股份有限公司