本發(fā)明涉及通信領域,具體而言,涉及一種雙向轉發(fā)檢測BFD報文的發(fā)送方法及裝置。
背景技術:
雙向轉發(fā)檢測(Bidirectional Forwarding Detection簡稱為BFD)協(xié)議提供了一個通用的標準化的介質無關和協(xié)議無關的快速故障檢測機制。
BFD在兩臺網(wǎng)絡設備上建立會話,用來檢測網(wǎng)絡設備間的雙向轉發(fā)路徑,為上層應用服務。BFD本身并沒有鄰居發(fā)現(xiàn)機制,而是靠被服務的上層應用通知其鄰居信息以建立會話。會話建立后會周期性地快速發(fā)送檢測報文,如果在檢測時間內(nèi)沒有收到BFD報文,則認為該雙向轉發(fā)路徑發(fā)生了故障,通知被服務的上層應用進行相應的處理。
BFD正常工作時,會話的狀態(tài)為UP,表示鏈路為穩(wěn)定狀態(tài)。BFD會話在UP狀態(tài)時,會按照配置的間隔發(fā)送檢測報文。每當雙方設備收到BFD檢測報文時,就會重置檢測時間定時器,保持會話UP狀態(tài)。如果在檢測時間內(nèi)沒有收到BFD檢測報文,則認為鏈路可能發(fā)生了故障,BFD會話會遷移到DOWN狀態(tài)。
BFD需要在兩臺設備上配置,假設兩臺設備分別為A和B,BFD當前正常保持UP狀態(tài)。當用戶在B設備上刪除會話操作時,會同時發(fā)生如下兩個事件:
1、B設備立刻停止發(fā)送檢測報文;
2、B設備在刪除會話時,會向A設備會發(fā)送一個狀態(tài)值置為ADMINDOWN的BFD控制報文。此報文為協(xié)議報文,目的是通知A設備刪除會話;A設備收到此報文后,會直接將BFD會話刪除。
假設A和B設備BFD的檢測時間為t1,由于刪除時,B設備立刻停止發(fā)送檢測報文,A設備在t1時間內(nèi)若未收到B發(fā)來的檢測報文,則A設備的BFD就會報檢測DOWN。與此同時,B設備發(fā)送ADMINDOWN協(xié)議報文到達A,A設備收到該報文進行處理并且將該條BFD刪除的時間為t2。若t1>t2,ADMINDOWN先處理完,則會話可以正常刪除,沒有問題;若t1<t2,則BFD會認為是檢測DOWN,認為該鏈路發(fā)生故障,BFD關聯(lián)到業(yè)務時,會將流量迅速切換到備份鏈路。因此,在刪除遠端會話時,如果不迅速處理ADMINDOWN這種報文,提高處理效率,在鏈路并無故障的情況下,會導致 主備鏈路誤切。
在分布式架構中,設備分為主控和線卡,圖1是相關技術中主控和線卡BFD會話的示意圖,如圖1所示,協(xié)議棧均建在主控上,主控還負責所有在線線卡的管理;而線卡負責接收和發(fā)送報文。線卡從端口收到報文,解析器解析為協(xié)議報文后,均需要送給主控處理,BFD保活報文則送給BFD定時器處理。在網(wǎng)絡配置比較多的情況下,主控經(jīng)常會遇到CPU比較忙的情況,往往在處理別的優(yōu)先級更高的協(xié)議,或者其他線卡的管理,對BFD協(xié)議報文往往不能實時處理,不能及時通知線卡刪除BFD會話。若不能及時響應BFD的ADMINDOWN報文而刪除會話,超過檢測周期后會產(chǎn)生BFD報檢測DOWN,則會導致誤切。這種情況往往會出現(xiàn)在網(wǎng)絡可靠性要求很高的網(wǎng)絡上,BFD檢測周期配置一般都比較短,則更容易產(chǎn)生這種情況。
因此,相關技術中的上送主控處理這種方式處理BFD報文時,無法保證及時正確處理相應的BFD報文,容易發(fā)生誤切。針對相關技術中上述問題,目前尚未提出有效的解決方案。
技術實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種雙向轉發(fā)檢測BFD報文的發(fā)送方法及裝置,以至少解決相關技術中對于BFD報文的處理容易發(fā)生誤處理的問題。
根據(jù)本發(fā)明的一個方面,提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送方法,包括:在雙向轉發(fā)檢測BFD會話建立時,分布式系統(tǒng)中的線卡解析出接收到的BFD報文的類型;所述線卡激活與所述類型相對應的定時器;在所述定時器超時,所述線卡向分布式系統(tǒng)中的主控發(fā)送與所述定時器對應的BFD報文。
進一步地,所述BFD報文類型包括:用于刪除BFD會話的ADMINDOWN報文和除ADMINDOWN報文以外的其他報文。
進一步地,在所述報文為所述ADMINDOWN報文時,所述線卡激活與所述類型中指定報文對應的定時器包括:所述線卡激活與所述ADMINDOWN報文對應的第一定時器,其中,所述第一定時器的定時時間小于與除ADMINDOWN報文以外的其他報文對應的第二定時器的定時時間。
進一步地,在所述線卡向分布式系統(tǒng)中的主控發(fā)送與所述定時器對應的BFD報文之前,所述方法還包括:屏蔽所述第二定時器。
進一步地,在所述定時器超時,所述線卡向分布式系統(tǒng)中的主控發(fā)送與所述定時器對應的BFD報文包括:在所述第一定時器超時,所述線卡向所述分布式系統(tǒng)中的主控發(fā)送所述ADMINDOWN報文。
根據(jù)本發(fā)明的另一個方面,提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送裝置,位于分布式系統(tǒng)中的線卡測,包括:解析模塊,用于在雙向轉發(fā)檢測BFD會話建立時,解析出接收到的BFD報文的類型;激活模塊,用于激活與所述類型相對應的定時器;發(fā)送模塊,用于在所述定時器超時,向分布式系統(tǒng)中的主控發(fā)送與所述定時器對應的BFD報文。
進一步地,所述BFD報文類型包括:用于刪除BFD會話的ADMINDOWN報文和除ADMINDOWN報文以外的其他報文。
進一步地,在所述報文為所述ADMINDOWN報文時;所述激活模塊,還用于激活與所述ADMINDOWN報文對應的第一定時器,其中,所述第一定時器的定時時間小于與除ADMINDOWN報文以外的其他報文對應的第二定時器的定時時間。
進一步地,在所述線卡向分布式系統(tǒng)中的主控發(fā)送與所述定時器對應的BFD報文之前,所述裝置還包括:屏蔽模塊,用于屏蔽所述第二定時器。
進一步地,所述發(fā)送模塊,還用于在所述第一定時器超時,所述線卡向所述分布式系統(tǒng)中的主控發(fā)送所述ADMINDOWN報文。
在本發(fā)明中,采用在雙向轉發(fā)檢測BFD會話建立時,根據(jù)分布式系統(tǒng)中的線卡解析出接收到的BFD報文的類型,激活與報文類型相對應的定時器,在相應的定時器超時時,線卡向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文的方式,解決了相關技術中BFD報文的處理容易發(fā)生誤處理的問題,填補了相關技術的空白。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是相關技術中主控和線卡BFD會話的示意圖;
圖2是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測BFD報文的發(fā)送方法的流程圖;
圖3是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測BFD報文的發(fā)送裝置的結構框圖;
圖4是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測BFD報文的發(fā)送裝置的可選結構框圖一;
圖5是根據(jù)本發(fā)明可選實施例的改進BFD刪除時誤報DOWN而導致誤切的系統(tǒng)框架圖;
圖6是根據(jù)本發(fā)明實施例的改進BFD刪除時誤報DOWN而導致誤切方法的流程圖。
具體實施方式
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本發(fā)明。
本實施例提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送方法,圖2是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測BFD報文的發(fā)送方法的流程圖,如圖2所示,該方法的步驟包括:
步驟S202:在雙向轉發(fā)檢測BFD會話建立時,分布式系統(tǒng)中的線卡解析出接收到的BFD報文的類型;
步驟S204:線卡激活與類型相對應的定時器;
步驟S206:在定時器超時,線卡向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文。
通過本實施例中的步驟S202至步驟S206,采用在雙向轉發(fā)檢測BFD會話建立時,根據(jù)分布式系統(tǒng)中的線卡解析出接收到的BFD報文的類型,激活與報文類型相對應的定時器,在相應的定時器超時時,線卡向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文的方式,解決了相關技術中BFD報文的處理容易發(fā)生誤處理的問題,填補了相關技術的空白。
對于本實施例中涉及到得BFD報文類型可以包括:用于刪除BFD會話的ADMINDOWN報文和除ADMINDOWN報文以外的其他報文。
而在報文為ADMINDOWN報文時,本實施例步驟S204中的線卡激活與類型中指定報文對應的定時器的方式,在本實施例的一個可選實施方式中可以通過如下方式來實現(xiàn):線卡激活與ADMINDOWN報文對應的第一定時器,其中,第一定時器的定時時間小于與除ADMINDOWN報文以外的其他報文對應的第二定時器的定時時間。
也就是說,在BFD報文中有ADMINDOWN報文時,激活與該ADMINDOWN報文對應的第一定時器,由于該第一計時器的定時時間小于除ADMINDOWN報文以外的其他報文對應的第二計時器的定時時間,使得可以及時處理ADMINDOWN報文,及通知主控刪除該BFD會話。
為了更好的及時處理ADMINDOWN報文,在本實施例的另一個可選實施方式中,在線卡向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文之前,本實 施例的方法還可以包括:屏蔽第二定時器。通過該方式,防止了第二定時器超時,更加確保了能夠及時處理ADMINDOWN報文。
可選地,對于本實施例的中步驟S206中的,在定時器超時,線卡向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文的方式,可以通過如下方式來實現(xiàn)包括:在第一定時器超時,線卡向分布式系統(tǒng)中的主控發(fā)送ADMINDOWN報文。
在本實施例中還提供了一種雙向轉發(fā)檢測BFD報文的發(fā)送裝置,該裝置用于實現(xiàn)上述實施例及可選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構想的。
圖3是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測BFD報文的發(fā)送裝置的結構框圖,如圖3所示,該裝置位于分布式系統(tǒng)中的線卡測,該裝置包括:解析模塊32,用于解析出接收到的雙向轉發(fā)檢測BFD報文的類型;激活模塊34,與解析模塊32耦合連接,用于激活與類型相對應的定時器;發(fā)送模塊36,與激活模塊34耦合連接,用于在定時器超時,向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文。
可選地,BFD報文包括:用于刪除BFD會話的ADMINDOWN報文和除ADMINDOWN報文以外的其他報文。
可選地,在報文為ADMINDOWN報文時,該激活模塊34,還用于激活與ADMINDOWN報文對應的第一定時器,其中,第一定時器的定時時間小于與除ADMINDOWN報文以外的其他報文對應的第二定時器的定時時間。
可選地,該發(fā)送模塊36,還用于在第一定時器超時,線卡向分布式系統(tǒng)中的主控發(fā)送ADMINDOWN報文。
圖4是根據(jù)本發(fā)明實施例的雙向轉發(fā)檢測BFD報文的發(fā)送裝置的可選結構框圖一,如圖4所示,在線卡向分布式系統(tǒng)中的主控發(fā)送與定時器對應的BFD報文之前,該裝置還包括:屏蔽模塊42,與發(fā)送模塊36耦合連接,用于屏蔽第二定時器。
下面結合本發(fā)明實施例的可選實施例對本發(fā)明進行舉例說明;
本可選實施例提供了一種改進BFD刪除時誤報DOWN而導致誤切的方法及相應系統(tǒng),圖5是根據(jù)本發(fā)明可選實施例的改進BFD刪除時誤報DOWN而導致誤切的系統(tǒng)框架圖,如圖5所示,該系統(tǒng)包括:
解析器501,用于報文到達線卡接口后,進入解析器中解析報文,并解析出報文的類型,對報文進行不同的處理。該解析器501能夠解析出普通BFD檢測 報文和BFD ADMINDOWN報文。
BFD定時器502,用于在BFD會話建立時創(chuàng)建,經(jīng)過解析器501解析出的每個普通檢測報文,都會送到BFD定時器502,進行復位等操作。
超短定時器503,用于在被解析器501解析出為ADMINDOWN的報文時激活該超短定時器503,此時超短定時器就會立刻開始計時,其中,超短定時器的時間遠遠低于BFD定時器的時間。由于時間遠遠短于BFD定時器,因此可以立即超時。激活該超短定時器503的同時會屏蔽BFD定時器502。
主控協(xié)議棧504,用于在超短定時器503超時后,會通知主控協(xié)議棧,主控協(xié)議棧會下發(fā)線卡的刪除操作。
圖6是根據(jù)本發(fā)明實施例的改進BFD刪除時誤報DOWN而導致誤切方法的流程圖,如圖6所示,該方法的步驟包括:
步驟S602:報文解析;在解析出為ADMINDOWN報文時,執(zhí)行步驟S604,在解析出為其他普通報文時,執(zhí)行步驟S612;
其中,報文到達線卡接口后,解析出報文的類型,對報文進行不同的處理。該模塊需要能夠解析出普通BFD檢測報文和BFD ADMINDOWN報文;
步驟S604:解析出為BFD ADMINDOWN報文激活超短定時器;
步驟S606:屏蔽BFD定時器,以防止BFD定時器超時;
步驟S608:被激活的超短定時器超時后,通知主控協(xié)議棧刪除會話;
步驟S610:超短定時器任務完成;
步驟S612:BFD正常檢測報文;
步驟S614:BFD定時器被屏蔽,超時后不做任何操作;
步驟S616:普通流程完成。
相關技術中是將協(xié)議報文上送主控,由主控的BFD協(xié)議棧下發(fā)刪除。本可選實施例不需要將報文上送主控協(xié)議棧處理,而是在線卡上直接處理這種特殊的協(xié)議報文。線卡上不需要建立協(xié)議棧,而是在會話創(chuàng)建時,除了本來應該創(chuàng)建的BFD會話定時器(對應于第二定時器)之外,再創(chuàng)建另一個較短周期的定時器(對應于第一定時器),此定時器的時間設置遠遠低于會話本身的檢測周期。當線卡收到BFD報文后,經(jīng)過解析器解析出ADMINDOWN報文后,激活該定時器,并且屏蔽本來會話的定時器,這樣本來會話就不會誤報DOWN,在該超短定時器的超時事件時,通知協(xié)議層面刪除會話。
在另外一個實施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實施例及優(yōu)選實施方式中描述的技術方案。
在另外一個實施例中,還提供了一種存儲介質,該存儲介質中存儲有上述軟件,該存儲介質包括但不限于:光盤、軟盤、硬盤、可擦寫存儲器等。
顯然,本領域的技術人員應該明白,上述本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
上述僅為本發(fā)明的可選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。