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